JP2016076963A - ビデオコーディングにおける並列コンテキスト計算 - Google Patents

ビデオコーディングにおける並列コンテキスト計算 Download PDF

Info

Publication number
JP2016076963A
JP2016076963A JP2015236746A JP2015236746A JP2016076963A JP 2016076963 A JP2016076963 A JP 2016076963A JP 2015236746 A JP2015236746 A JP 2015236746A JP 2015236746 A JP2015236746 A JP 2015236746A JP 2016076963 A JP2016076963 A JP 2016076963A
Authority
JP
Japan
Prior art keywords
context
transform coefficient
scan
context support
validity information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015236746A
Other languages
English (en)
Inventor
ムハンメド・ジェイド・コバン
Zeyd Coban Muhanmmed
ユンフェイ・ジェン
Yunfei Zheng
ジョエル・ソール・ロジャルス
Sole Rojals Joel
ラジャン・エル.・ジョシ
L Joshi Rajan
マルタ・カークゼウィックズ
Karczewicz Marta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016076963A publication Critical patent/JP2016076963A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Abstract

【課題】並列処理に対応した、ビデオデータのコーディング方法を提供する。【解決手段】量子化変換係数に関連する有効性情報を走査するための走査経路を識別した後、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍(並列フレンドリーコンテキストサポート152A〜152E)を決定する。該コンテキストサポート近傍については、走査経路中にある1つまたは複数のコンテキストサポート要素を除外する。更に、除外されなかったコンテキストサポート近傍を使用して有効性情報をコーディングすることをも含む。【選択図】図5C

Description

優先権の主張
本出願は、その内容全体が参照により本明細書に組み込まれる、2010年11月16日に出願された米国仮出願第61/414,245号、および2010年12月22日に出願された米国仮出願第61/426,440号の利益を主張する。
本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)、今度の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスが、一般にブロックと呼ばれることもあるコーディングユニットに区分され得る。各ブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接参照ブロックに対する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
[0005]概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示の技法は、ビデオデータをエントロピーコーディングすることに関する。たとえば、本開示の態様は、量子化変換係数をエントロピーコーディングするためのコンテキストサポート近傍を決定することに関する。一例では、本開示の技法は、特定の走査経路に沿って位置する1つまたは複数の変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍が、走査経路中に位置するコンテキストサポート要素を含まないことを保証することに関する。走査経路中にコンテキストサポート要素がない場合、走査経路中に位置する量子化変換係数のすべてに関連する有効性情報をコーディングするためのコンテキストが並列に計算され得る(たとえば、並列コンテキスト計算)。本開示の態様は、変換された残差ビデオデータに関連する有効性情報を走査するための走査順序を発生することにも関する。たとえば、本開示の態様は、複数の有効フラグのコンテキストが並列に計算されることを可能にする走査順序を発生し、それにより有効フラグコーディングのためのコンテキストプリフェッチングを可能にすることを含む。本開示のいくつかの態様によれば、そのような走査順序は、推論的(speculative)計算を使用した複数の有効フラグのコーディングをも可能にし得る。
[0006]一例では、ビデオデータをコーディングするための方法は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、コンテキストサポート近傍は、走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングすることと、を備える。
[0007]別の例では、ビデオデータをコーディングするための装置は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、コンテキストサポート近傍は、走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングするように構成された1つまたは複数のプロセッサを備える。
[0008]別の例では、ビデオデータをコーディングするための装置は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、コンテキストサポート近傍は、走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングする手段と、を備える。
[0009]別の例では、コンピュータプログラム製品は、実行されたとき、1つまたは複数のプロセッサに、量子化変換係数に関連する有効性情報を走査するための走査経路を識別させ、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定させ、コンテキストサポート近傍は、走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングさせる命令を記憶したコンピュータ可読媒体を備える。
[0010]別の例では、ビデオデータをコーディングする方法は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、有効性情報を走査するための並列スレッドの数を決定することと、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成することと、を含む。
[0011]別の例では、ビデオデータをコーディングするための装置は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、有効性情報を走査するための並列スレッドの数を決定し、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成するように構成された1つまたは複数のプロセッサを含む。
[0012]別の例では、ビデオデータをコーディングするための装置は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定する手段と、有効性情報を走査するための並列スレッドの数を決定する手段と、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成する手段と、を含む。
[0013]別の例では、コンピュータプログラム製品は、実行されたとき、1つまたは複数のプロセッサに、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定させ、有効性情報を走査するための並列スレッドの数を決定させ、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成させる命令を記憶したコンピュータ可読媒体を含む。
[0014]1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 本開示で説明する、有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオエンコーダの一例を示すブロック図。 本開示で説明する、有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオデコーダの一例を示すブロック図。 本開示の態様による、変換係数位置の例示的なジグザグ走査を示す概念図。 量子化変換係数を走査するためのジグザグ走査パターンを示す概念図。 図5Aの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。 図5Aの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る別の並列フレンドリーコンテキストサポート近傍の概念図。 量子化変換係数を走査するための水平走査パターンを示す概念図。 図6Aの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。 量子化変換係数を走査するための垂直走査パターンを示す概念図。 図7Aの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。 図7Aの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る別の並列フレンドリーコンテキストサポート近傍の概念図。 本開示の態様による、特定の走査パターンについての並列フレンドリーコンテキストサポート近傍を判断する例示的な方法を示すフローチャート。 本開示の態様による、並列フレンドリー走査順序を生成する例示的な方法を示すフローチャート。 並列フレンドリー走査順序を生成する例示的な方法を示すフローチャート。 図10Aに示す例示的な方法の続きの図。 変換係数のブロックについての例示的なコンテキストサポート近傍を示す概念図。 図10Aおよび図10Bに示す方法と図11Aに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。 変換係数のブロックについての別の例示的なコンテキストサポート近傍を示す概念図。 図10Aおよび図10Bに示す方法と図12Aに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。 変換係数のブロックについての別の例示的なコンテキストサポート近傍を示す概念図。 図10Aおよび図10Bに示す方法と図13Aに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。
[0037]概して、本開示では、ビデオデータをコーディングするための技法について説明する。より詳細には、本開示では、変換された残差ビデオデータに関連する変換係数を走査するための走査順序を生成することに関する技法について説明する。符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダは、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロックのピクセル値を、前にコーディングされたピクチャのピクセル値に対して予測することを伴う。
[0038]イントラ予測またはインター予測の後に、ビデオエンコーダはブロックの残差ピクセル値を計算し得る。残差値は、概して、予測ピクセル値データと、コーディングされているブロック、すなわち、コード化ブロックの実際のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの1つまたは複数のブロックに関連し得る。ブロックの残差値をさらに圧縮するために、残差値は、変換係数のセットに変換され得る。その変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の2次元行列に対応する。言い換えれば、元のピクセル領域ブロック中のピクセルとちょうど同数の変換係数が変換領域ブロック中にあり得る。
[0039]ビデオエンコーダは、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を0に低減し得る。量子化の後に、ビデオエンコーダは、量子化変換係数を走査して、量子化変換係数の2次元行列から1次元ベクトルを生成し得る。
[0040]ビデオエンコーダは、次いで、データをなお一層圧縮するために、得られたアレイをエントロピー符号化し得る。いくつかの例では、ビデオエンコーダは、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable-length coding)を使用して、アレイの様々な可能な量子化変換係数を表すために可変長コード(VLC:variable length code)を使用するように構成され得る。他の例では、ビデオエンコーダは、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC: context-adaptive binary arithmetic coding)を使用して、得られた量子化係数を符号化するためにバイナリ算術コーディングを使用するように構成され得る。さらに他の例では、ビデオエンコーダは、Probability Interval Partitioning Entropy Codes(PIPE)を使用して量子化変換係数を符号化するように構成され得る。
[0041]CABAC、PIPEなどのコンテキスト適応型コーディング、または他のコンテキスト適応型コーディング方式は、一般に、ビデオデータのブロックに関連するシンボルを符号化するためにコンテキストに作用するコンテキストモデルを選択することを伴う。コンテキストは、たとえば、現在コーディングされているシンボルに隣接するシンボルについて値がゼロであるのか非ゼロであるのかに関係し得る。コンテキストモデルは特定の確率モデルに関連し得る。
[0042]H.264/AVCおよび新生の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格では、エントロピーコーディングは、ブロック中の有効変換係数(すなわち、非ゼロ変換係数)の位置を識別することを含み得る。いくつかの例では、有効変換係数の相対位置は、それらの係数のレベル(たとえば、値)より前に符号化され得る。有効係数のロケーションをコーディングするプロセスは、有効マップコーディングと呼ばれることがある。有効マップ(SM:significance map)は1および0の「マップ」を含み得、その場合、1は有効係数のロケーションを示す。たとえば、ビデオデータのブロックについての有効マップ(SM)は、バイナリ値、すなわち、1および0の2次元アレイを含み得、1は、ブロック内の有効係数の位置を示し、0は、ブロック内の非有効な、または0値の係数の位置を示す。有効マップの1および0は「有効係数フラグ」と呼ばれることがある。さらに、有効マップは1および0の別の2次元アレイを含み得、1は、ブロックに関連する走査順序に応じたブロック内の最後有効係数の位置を示し、0は、ブロック内のすべての他の係数の位置を示す。この場合、1および0は「最後有効係数フラグ」と呼ばれる。
[0043]有効マップがコーディングされた後、(たとえば、絶対値および符号として表される)各残差変換係数のレベルがコーディングされ得る。たとえば、有効マップ情報、レベル情報、符号情報などをコーディングするために、ビデオエンコーダは、たとえば、1つまたは複数のビットまたは「ビン」を備える単項コード(または他のコード)を使用して、各非ゼロ残差変換係数の絶対値を2進形態に変換し得る(これは「2値化」と呼ばれることがある)。ブロックについての各有効係数フラグおよび最後有効係数フラグは、単一のビンをすでに備え、したがって2値化をバイパスし得る。
[0044]ビデオデータのブロックについての各ビンは、そのブロックについての残差変換係数レベル情報に対応するにせよ、そのブロックについてのシンタックス情報に対応するにせよ、所与の値(たとえば、「0」または「1」)を有する上記ビンの可能性を示す、上記ビンについての確率推定値を使用してコーディングされる。確率推定値は、「コンテキストモデル」とも呼ばれる確率モデル内に含まれる。確率モデルは、上記ビンについてのコンテキストを決定することによって選択され、これはコンテキストサポート近傍によって識別され得る。すなわち、コンテキストサポート近傍は、変換係数に関連する特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストの相対位置を識別し得る。コンテキスト(たとえば、コンテキスト近傍位置にある実効値)は確率モデルを決定する。
[0045]したがって、上記で説明したように、変換係数をコーディングすることは、変換係数に関連する有効性、レベル、符号などを表すフラグおよび/またはシンボルなど、いくつかのフラグおよび/またはシンボルをコーディングすることを含み得る。したがって、本明細書で行われる変換係数をコーディングするプロセスに対して本明細書で行われる一般的な言及は、変換係数に関連する有効フラグ、レベル、最後有効係数フラグ、符号、または他の情報をコーディングすることのいずれかまたはすべてを指すことがあることを理解されたい。
[0046]上述のように、高効率ビデオコーディング(HEVC)と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。今度の規格は、非公式にITU−T H.265と呼ばれることもあるが、そのような名称は公式になされたものでない。この規格化の取り組みは、HEVCテストモデル(HM:HEVC Test Model)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは35個ものイントラ予測符号化モードを提供する。
[0047]HMでは、ビデオデータのブロックをコーディングユニット(CU:coding unit)と呼ぶ。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット(LCU:largest coding unit)を定義し得る。概して、CUは、CUがサイズ差異を有しないことを除いて、H.264に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。
[0048]LCUは4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
[0049]分割されないCUは、1つまたは複数の予測ユニット(PU:prediction unit)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照フレーム、および/または動きベクトルの参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。(1つまたは複数の)PUを定義するCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
[0050]1つまたは複数のPUを有するCUはまた、1つまたは複数の変換ユニット(TU:transform unit)を含み得る。PUを使用した予測の後に、ビデオエンコーダは、PUに対応するCUの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUの対応するPUよりも大きいことも小さいこともある。いくつかの例では、TUの最大サイズは、対応するCUのサイズであり得る。本開示ではまた、CU、PU、またはTUのいずれかを指すために「ブロック」という用語を使用する。
[0051]概して、本開示の技法は、ビデオデータを走査し、エントロピーコーディングすることに関する。すなわち、たとえば、本開示の技法は、TUの量子化変換係数に関連する有効性情報、ならびに量子化変換係数に関連する符号(sign)、量子化変換係数のレベル、特定の量子化変換係数が変換係数のブロック中の最後有効係数であるかどうかなど、他の情報を走査し、エントロピーコーディングすることに関し得る。
[0052]一例では、本開示の技法は、特定の走査経路に沿って位置する1つまたは複数の変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍が、当該走査経路中に位置するコンテキストサポート要素を含まないことを保証することに関する。すなわち、たとえば、本開示の技法は、特定の走査経路中の変換係数のすべてに関連する有効フラグについての並列コンテキスト計算を可能にするコンテキストサポート近傍を決定することを含む。そのようなコンテキストサポート近傍は、コンテキストプリフェッチングを可能にし、推論的(speculative)計算を使用した複数の有効フラグのコーディングをも可能にし得る。たとえば、特定の走査経路中にコンテキストサポート要素がない場合、走査経路中に位置する量子化変換係数のすべてに関連する有効性情報をコーディングするためのコンテキストが並列に計算され得る(たとえば、これは「並列コンテキスト計算」と呼ばれることがある)。また、特定の走査経路からのコンテキストサポート要素を除くことは、走査経路中に位置するすべての変換係数についてのコンテキストのプリフェッチングを可能にし(たとえば、これは「コンテキストプリフェッチング」と呼ばれることがある)、推論的計算を使用した複数の有効フラグのコーディングを可能にし得る。投機的計算の一例が、http://phenix.int−evry.fr/jct/doc_end_user/current_document.php?id=1131において公的に入手可能なJCTVC−C062、「TE8: TI Parallel Context Processing (PCP) Proposal」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月、に記載されている。本開示では、そのような概念は、有効性情報の並列コーディングをサポートすることと呼ばれることがある。
[0053]別の例では、本開示の技法は、変換された残差ビデオデータに関連する有効性情報を走査するための走査順序を生成することにも関し得る。本開示の態様は、並列コンテキスト計算を可能にする走査順序を生成し、それにより有効フラグコーディングのためのコンテキストプリフェッチングを可能にすることを含み得る。本開示のいくつかの態様によれば、そのような走査順序は、推論的計算を使用した複数の有効フラグのコーディングをも可能にし得る。上述のように、本開示では、そのような概念は、有効性情報の並列コーディングをサポートすることと呼ばれ得る。
[0054]本開示では、概して、量子化変換係数が非ゼロであるかどうかを示す情報としての「有効性情報」に言及する。たとえば、上述のように、変換および量子化の後に、ビデオデータのブロックに関連するいくつかの残差値がゼロに低減され得る。残りの非ゼロ量子化変換係数は「有効(significant)」と呼ばれることがある。ビデオエンコーダは、有効フラグを使用してそのような非ゼロ量子化変換係数を識別し得る。すなわち、ビデオエンコーダは、2次元変換係数行列の各位置について有効フラグを設定し得る。ビデオエンコーダは、量子化変換係数が非ゼロである位置について有効フラグを1の値に設定し得る。一方、ビデオエンコーダは、量子化変換係数が0である位置について有効フラグを0の値に設定し得る。その結果得られる、(たとえば、量子化変換係数のグリッドに対応する)有効フラグの2次元グリッドは、上記で説明したように、有効マップと呼ばれ得る。
[0055]本開示では、概して、変換係数に関連する特定のシンボルまたはフラグ(たとえば、変換係数の符号、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど)をエントロピーコーディングするためのコンテキストを識別する、(たとえば、「コンテキストテンプレート」とも呼ばれる)「コンテキストサポート近傍」にも言及する。たとえば、コンテキスト適応型コーディング(CABAC)は、一般に、ビデオデータのブロックに関連するシンボルを符号化するためにコンテキストに作用するコンテキストモデルを選択することを伴う。コンテキストは、たとえば、現在コーディングされているシンボルに隣接するシンボルについて値がゼロであるのか非ゼロであるのかに関係し得る。コンテキストサポート近傍は、現在符号化されているシンボルに対するコンテキスト要素の相対位置を識別し得る。すなわち、たとえば、コンテキストサポート近傍は、現在符号化されているシンボルに隣接する(たとえば、一般に、現在符号化されているシンボルの上に位置する、および現在符号化されているシンボルの左に位置する)5つの前にコーディングされたシンボルの位置を識別し得る。コンテキストは、そのような隣接位置におけるシンボルの値を含む。
[0056]さらに、本開示では、概して、変換係数に関連する特定のシンボルまたはフラグ(たとえば、変換係数の符号、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど)が2次元ブロックまたは行列から1次元アレイに直列化される順序としての「走査順序」に言及する。たとえば、走査順序は、変換係数が直列化されるとき、2次元行列中の有効フラグと変換係数との相対位置を参照することによって変換係数が直列化されるシーケンスを識別し得る。
[0057]本開示では、変換係数に関連する特定のシンボルまたはフラグ(たとえば、変換係数の符号(sign)、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど)が2次元行列から1次元アレイに直列化される経路としての「走査経路」にも言及することがある。すなわち、走査経路は、2次元行列を通るトレースされた経路(たとえば、45度の角度で変換係数のブロックを横断する対角線経路)を参照することによって変換係数が直列化されるシーケンスを識別し得る。したがって、走査経路は、たとえば、変換係数のブロックに対して、特定の方向を有し得る。すなわち、走査経路が45度の角度で変換係数のブロックを横断する場合、走査経路は、対角線方向と呼ばれ得る。同様に、走査経路が水平線に沿って左から右に(またはその逆に)変換係数のブロックを横断する場合、走査経路は、水平方向と呼ばれ得る。走査経路が垂直線に沿って上から下に(またはその逆に)変換係数のブロックを横断する場合、走査経路は、垂直方向と呼ばれ得る。
[0058]いくつかの例では、走査経路は、概して、走査順序における変換係数の特定のブロックを横切る単一の横断を指すことがある。したがって、変換係数のブロックは2つ以上の走査経路を含み得る。一例では、説明のために、水平方向の走査順序を使用して走査される変換係数の8×8ブロックが、8つの走査経路(たとえば、変換係数の各行について1つの水平方向の走査経路)を有し得る。
[0059]「走査順序」と「走査経路」という用語は両方とも、変換係数の2次元行列が直列化される方法について説明するために使用され得、本明細書では互換的に使用され得る。
[0060]本開示の技法は、走査経路中の変換係数の有効フラグをコーディングするためのコンテキストの並列計算を可能にするコンテキストサポート近傍を決定することを含む。本開示のいくつかの態様によれば、ビデオコーダが、初めに、ビデオデータのブロックの量子化変換係数に関連する有効性情報を走査するための走査経路を識別し得る。すなわち、特定のTUについて、ビデオコーダは、有効性情報(たとえば、有効フラグ)を直列化するために特定の方向への方向付けを有する走査経路を決定し得る。例として、対角線方向の走査経路、垂直方向の走査経路、および水平方向の走査経路を含む。
[0061]走査経路を識別した後に、ビデオコーダは、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。たとえば、上述のように、ビデオコーダは、(たとえば、TUの相対的右上隅からTUの左下隅への)対角線方向のパターンを使用して変換係数に関係する有効性情報および他の情報(たとえば、符号(sign)、レベルなど)を走査することによって、変換係数に関係する有効性情報および他の情報を直列化し得る。右上から左下およびジグザグなど、他の対角線方向のパターンも使用され得る。ビデオコーダは、コンテキストサポート近傍が対角走査経路に沿ったいずれかの要素を含むかどうかを決定し得る。すなわち、TUの特定の変換係数位置について、ビデオコーダは、コンテキストサポート近傍が(たとえば、45度の角度で)右上にあるまたは(たとえば、45度の角度で)左下にある特定の変換係数位置に隣接する要素を含むかどうかを決定し得る。
[0062]以下でより詳細に説明するように、コンテキストの並列計算を可能にするためにコンテキストサポート近傍中のすべてのデータが利用可能でなければならない(たとえば、すでにコーディングされていなければならない)ので、そのようなコンテキスト近傍サポート要素(たとえば、走査経路に沿った要素)に依拠することは、有効性情報についてのコンテキストを並列に計算するビデオコーダの能力を妨げ得る。コンテキストサポート近傍が走査経路に沿った要素を含む場合、コーダは、現在の位置についてのコンテキストを決定する前に、現在コーディングされている位置に先行する走査経路中のコンテキストサポート要素がコーディングを完了するのを待つことを強制され得る。この遅延は、有効性情報を効率的に処理するビデオコーダの能力を低減する。
[0063]したがって、本開示の態様は、走査方向によって定義された経路(たとえば、「走査経路」)中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外することによって、並列コンテキスト計算のためのコンテキストサポート近傍を最適化することに関する。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピーコーダは、走査経路に沿って有効性情報についてのすべてのコンテキストを並列に計算することができる。これは、必要とされる情報のすべてが、前にコーディングされた走査経路(または複数の走査経路)に関連する、前にコーディングされた有効性情報に属するからである。
[0064]本開示の他の態様は、有効性情報についてのコンテキストの計算を並列に可能にする走査順序を決定することを含む。たとえば、本開示の技法は、同時に2つ以上の有効フラグについてのコンテキストの計算を可能にする走査順序を生成することを含む。
[0065]有効性情報についてのコンテキストの並列計算のための走査順序は、いくつかの変数に基づいて生成され得る。一例では、並列コンテキスト計算のための走査順序は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数(たとえば、並列に計算されるべき有効フラグについてのコンテキストの所望の数)とに基づいて生成され得る。以下でより詳細に説明するように、走査順序生成プロセスへの入力変数のうちの1つまたは複数を変更することによって、多種多様な方向を示す、有効性情報についてのコンテキストの並列計算を可能にする(「並列フレンドリー」)走査順序が生成され得る。
[0066]本明細書で説明するように、「並列フレンドリー」は、概して、並列の2つ以上の変換係数に関連する有効フラグ(または符号(sign)、レベルなど、変換係数に関連する他の情報)についての並列コンテキスト計算を可能にするコンテキストサポート近傍および/または走査順序を決定する能力を指すことがある。さらに、「並列フレンドリー」は、概して、2つ以上の変換係数についてのコンテキストのプリフェッチングを実行する能力を指すこともあり、これは、推論的計算を使用した複数の有効フラグのコーディングを可能にし得る。
[0067]コンテキストサポート近傍は、上述のように、特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストを識別し得る。すなわち、有効性情報をエントロピーコーディングするとき、コンテキストサポート近傍は、現在コーディングされている有効フラグに対するコンテキスト要素の相対位置を識別し得る。いくつかの事例では、コンテキストサポート近傍は固定であり得る。
[0068]1次優先度メトリックは、生成された走査順序の方向に影響を及ぼすように設計され得る。たとえば、走査順序方向は、有効性情報が走査される一般的な順序を示し得る。すなわち、走査順序が垂直方向である場合、ビデオデータのブロックの相対的左にある変換係数に関連する有効性情報は、ブロックの相対的右にある変換係数に関連する有効性情報よりも好まれ(favored)得る(たとえば、ブロックの相対的右にある変換係数に関連する有効性情報よりも前に走査され得る)。たとえば、量子化変換係数の最左列に関連する有効性情報は、量子化変換係数の最右列に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が水平方向の場合、ビデオデータのブロックの相対的上部にある変換係数に関連する有効性情報は、ブロックの相対的下部にある変換係数に関連する有効性情報よりも好まれ(favored)得る(たとえば、ブロックの相対的下部にある変換係数に関連する有効性情報よりも前に走査され得る)。たとえば、量子化変換係数の最上行に関連する有効性情報は、量子化変換係数の最下行に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が対角線方向の場合、ビデオデータのブロックの相対的左上部分にある変換係数に関連する有効性情報は、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも好まれる(たとえば、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも前に走査され得る)。
[0069]本開示のいくつかの態様によれば、1次優先度メトリックは、生成された走査順序の方向に影響を及ぼし得る、走査順序生成プロセス中に適用される関数を含み得る。すなわち、一例では、1次優先度メトリックは、変換係数の列に沿った有効性情報よりも変換係数の行に沿った有効性情報を走査することを好む(favor)関数であり得る。2次優先度メトリックは、発生された走査の方向にさらに影響を及ぼし得る、走査順序生成プロセス中に同じく適用される別の関数を含み得る。いくつかの例では、2次優先度メトリックはタイブレーカー(tiebreaker)として適用され得る。すなわち、2つの有効フラグが(たとえば、1次優先度メトリックにより)等しい優先度を有することを1次優先度メトリックが示す場合、2次優先度メトリックは、そのようなタイ(tie)を解決するために適用され得る。
[0070]走査順序生成プロセスに入力される並列スレッドの数は、生成された走査順序がサポートできる並列量に影響を及ぼすために使用され得る。たとえば、入力される並列スレッドの数は、生成された走査がサポートできる並列量に影響を及ぼす、あらかじめ定義された定数(たとえば、2、3、4など)であり得る。すなわち、入力される並列スレッドの数、2は、2つの有効フラグが並列に効率的にエントロピーコーディングされることを可能にする走査順序を生成し得る。同様に、入力される並列スレッドの数、3は、3つの有効フラグが並列に効率的にエントロピーコーディングされることを可能にする走査順序を生成し得、以下同様である。
[0071]本開示のいくつかの態様によれば、並列フレンドリー走査順序を生成するために使用される要素(たとえば、コンテキストサポート近傍、1次優先度メトリック、2次優先度メトリック、および並列スレッドの所望の数)のうちの1つまたは複数を変更することは、得られた走査順序の方向を変化させ得る。たとえば、1次優先度メトリックおよび/または2次優先度メトリックを変更することは、得られた走査順序の方向を変化させ得る。すなわち、特定のコンテキストサポート近傍が与えられれば、1次優先度メトリックおよび/または2次優先度メトリックは、水平方向の走査、垂直方向の走査、または対角線方向の走査を生成するように変更され得る。
[0072]このようにして、本開示では、異なる方向を有する並列フレンドリー走査順序を生成するための技法について説明する。異なる方向を有する並列フレンドリー走査順序を実装することは、コーディングと並列化との両方の観点から走査の効率を増加させ得る。たとえば、概して最も効率的な走査順序は、非ゼロ変換係数を直列化アレイの前部のほうへパックし、これによりエントロピーコーディング効率を増加させる。その上、概して最も効率的な走査順序は、0値変換係数の比較的長いランを有し、それによりエントロピーコーディング効率をさらに増加させる。すなわち、非ゼロ変換係数を変換係数の直列化アレイの前部のほうへパックすること、ならびに0値変換係数のランを増加させることにより、より少ないビットで変換係数がシグナリングされることが可能になり得る。
[0073]しかしながら、非ゼロ変換係数をアレイの前部のほうへパックし、0の長いランを作成するように設計されたにすぎない走査順序は、必ずしも並列フレンドリーであるとは限らない。たとえば、特定の走査順序は、非ゼロ変換係数をアレイの前部のほうへパックし得るが、有効フラグをコーディングするためのコンテキストの並列計算のために最適化されないことがある。すなわち、第2の有効フラグと並列にコーディングされている有効フラグのコンテキストサポート近傍が第2の有効フラグに依拠する場合、走査順序は並列フレンドリーでないことがある。上述のように、有効性情報を並列に効率的にエントロピーコーディングするために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない(たとえば、すでにコーディングされていなければならない)。
[0074]本開示の技法は、異なる方向性を有するいくつかの並列フレンドリー走査順序を生成し、実装することに関する。並列フレンドリー走査は、たとえば、並列フレンドリー走査を生成するために使用される要素のうちの1つまたは複数を変更することによって設計環境において生成され得る。これらの並列フレンドリー走査順序のうちの1つまたは複数は、ビデオデータを走査し、エントロピーコーディングするとき、ビデオエンコーダおよびビデオデコーダによって記憶され、使用され得る。ビデオコーダは、走査方向の明示的シグナリング、またはイントラ予測モードなどの他のファクタに基づいて、いくつかの記憶された並列フレンドリー走査から走査を選択し得る。
[0075]一例では、イントラ予測の後に、予測のために使用されたイントラ予測モードに基づいて変換係数を走査することが有益であり得る。すなわち、分離可能な方向性変換が残差値の2次元行列に適用された後でも、得られた2次元変換係数行列は、依然として何らかの方向性を示し得る。たとえば、垂直イントラ予測モードを使用してCUを予測することを考慮されたい。予測、変換、および量子化の後に、CUに関連する非ゼロ量子化変換係数は水平方向に沿って(たとえば、2次元行列の相対的上部に沿って)存在する傾向があり得る。したがって、2次元行列中の非ゼロ係数が、得られた1次元ベクトルの始端のほうへさらに圧縮され得るように、水平方向に変換係数を走査することが有益であり得る。
[0076]本開示のいくつかの態様によれば、設計環境における開発者は、最初に所望の並列スレッドの数を決定することによって、特定の方向を有する並列フレンドリー走査順序を生成し得る。開発者は、次いで、特定の方向を示す走査順序を生成するようにコンテキストサポート近傍と、1次優先度関数と、2次優先度関数とを選択し得る。上述のように、いくつかの例では、ビデオデータを走査し、エントロピーコーディングするとき、ビデオエンコーダおよびビデオデコーダが使用するために、いくつかの並列フレンドリー走査順序が生成され、記憶され得る。概して、並列フレンドリー走査順序は、有効性情報についてのコンテキストの並列計算を可能にし得る。たとえば、並列フレンドリー走査順序は、複数のコンテキストのプリフェッチングを可能にし、複数の有効フラグをエントロピーコーディングするための推論的計算を可能にし得る。
[0077]動作中、ビデオコーダは、有効性情報についてのコンテキストの並列計算を可能にしながら、エントロピーコーディング効率を増加させる最も高い可能性を有する特定の方向を有する、特定の並列フレンドリー走査順序を選択し得る。その選択は、いくつかの例では、ビデオデータを予測するために使用される予測モード、または変換プロセス中に適用される特定の変換などのコーディングメトリックに基づいて行われ得る。
[0078]本開示のいくつかの態様によれば、有効性情報をエントロピーコーディングするためにエントロピーコーディング中に並列フレンドリー走査順序が適用される。そのような走査順序は、有効性情報についてのコンテキストの並列計算を可能にし得る。たとえば、並列フレンドリー走査順序は、複数のコンテキストのプリフェッチングを可能にし、同時に複数の有効フラグをエントロピーコーディングするための推論的計算を可能にする。複数の有効フラグのエントロピーコーディングのためのCABAC方式の例は、http://phenix.int−evry.fr/jct/doc_end_user/current_document.php?id=1330において公的に入手可能であり、その全体が参照により組み込まれる、JCTVC−C227、「Parallelization of HHI Transform Coding」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月と、http://phenix.int−evry.fr/jct/doc_end_user/current_document.php?id=1131において公的に入手可能であり、その全体が参照により組み込まれる、JCTVC−C062、「TE8: TI Parallel Context Processing (PCP) Proposal」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月と、に記載されている。
[0079]図1は、有効性情報を効率的に走査し、エントロピーコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、あるいは、通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである、任意のワイヤレスデバイスを備え得る。
[0080]ただし、有効性情報を効率的に走査し、エントロピーコーディングすることに関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用され得る。したがって、通信チャネル16は、符号化ビデオデータの送信または記憶に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得る。
[0081]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、本開示の変換ユニットの符号化および復号のための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0082]図1の図示のシステム10は一例にすぎない。有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0083]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ発生ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
[0084]宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、ビデオ符号化プロセスは、有効性情報を並列に効率的に走査し、エントロピーコーディングするための、本明細書で説明する技法のうちの1つまたは複数を実装し得る。チャネル16を介して通信される情報は、同じくビデオデコーダ30によって使用される、ビデオエンコーダ20によって定義されるシンタックス情報を含み得、そのシンタックス情報は、コード化ビデオデータのコーディングユニットまたは他のユニット、たとえば、ピクチャのグループ(GOP:group of pictures)、スライス、フレームなどの特性および/または処理を記述するシンタックス要素を含む。4分木データ構造が、最大コーディングユニットのためのシンタックス情報の一部を形成し得る。すなわち、各LCUは、4分木の形態のシンタックス情報を含み、それはLCUがどのようにサブCUに分割されるかと、LCUとサブCUとがどのように符号化されるかに関するシグナリング情報を記述し得る。
[0085]ビデオデコーダ30は、4分木を使用して、受信されたピクチャのCUをどのように復号すべきかを決定し得る。ビデオデコーダ30は、次いで、CUを復号し、復号されたビデオデータをディスプレイデバイス32に送り得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0086]図1の例では、通信チャネル16は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0087]ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、ビデオ圧縮規格に従って動作し得る。別の例として、ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。ただし、本開示の技法は、特定のコーディング規格に限定されず、現在利用可能であるかまたは将来出現し得るHEVCまたは他の規格またはプロプライエタリ(proprietary)コーディングプロセスに適用され得る。他の例にはMPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0088]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0089]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令を実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
[0090]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ(GOP)は、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれる多数のフレームを記述するシンタックスデータを、GOPのヘッダ中に、またはGOPの1つまたは複数のフレームのヘッダ中に、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のコーディングユニットに対して動作する。コーディングユニットはLCUまたはサブCUに対応し得、CUという用語はLCUまたはサブCUを指すことがある。LCUのヘッダ情報は、LCUのサイズ、LCUが分割され得る回数(本開示ではCU深さと呼ぶ)、および他の情報を記述し得る。各ビデオフレームは複数のスライスを含み得、各スライスは複数のLCUを含み得る。
[0091]本開示では、「N×N」と「N by N」は、垂直寸法と水平寸法とに関するブロック(たとえば、CU、PU、またはTU)のピクセル寸法、たとえば、16×16ピクセルまたは16 by 16ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、正の整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0092]CUのPUは、(ピクセル領域とも呼ばれる)空間領域におけるピクセルデータを備え得、一方、CUのTUは、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域における係数を備え得る。場合によっては、TUは、空間領域における残差データを指すこともある。残差データは、概して、PUの値と、入力ビデオデータからのコロケート(collocated)非符号化ピクセルの値との間のピクセル差分を表す。TUは、変換領域における量子化値を含み得る。TUの係数を変換するためにDCTが使用されるとき、TUの係数は周波数領域にあると言われることがある。
[0093]ビデオエンコーダ20は、有効性情報を効率的に走査し、エントロピーコーディングするための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオエンコーダ30は、有効性情報を効率的に走査し、エントロピーコーディングするためのこれらの技法のいずれかまたはすべてを実装し得る。すなわち、本開示のいくつかの態様によれば、ビデオデコーダ30は、ビデオエンコーダ20と対称である方法で動作し得る。
[0094]ビデオエンコーダ20は、LCUを受信し、そのLCUを、各々がサブCUを備える、4つの象限(quadrant)に分割すべきかどうか、またはそのLCUを分割せずに符号化すべきかどうかを決定し得る。LCUをサブCUに分割すると決定した後に、ビデオエンコーダ20は、各サブCUを、各々がサブCUを備える、4つの象限に分割すべきかどうかを決定し得る。ビデオエンコーダ20は、CUを分割すべきかどうかを再帰的に決定することを続け、分割の最大数はLCU深さによって示される。ビデオエンコーダ20は、LCUとそのLCUのサブCUとの分割を示す4分木データ構造を与え得る。LCUは4分木のルートノードに対応し得る。4分木の各ノードはLCUのCUに対応し得る。さらに、各ノードは、対応するCUが分割されるかどうかを示す分割フラグ値を含み得る。
[0095]LCUが分割される場合、たとえば、ビデオエンコーダ20は、LCUが分割されることを示すためにルートノードにおいて分割フラグの値を設定する。次いで、ビデオエンコーダ20は、もしあれば、LCUのサブCUのうちのどれが分割されるのかを示すためにルートノードの子ノードの値を設定する。分割されないCUは4分木データ構造のリーフノードに対応し、リーフノードは子ノードを有しない。
[0096]ビデオエンコーダ20は、4分木データ構造中のリーフノードに対応するLCUの各サブCUを符号化し得る。例として、本開示では、イントラ予測符号化に関係する技法について説明する。したがって、この仮定の下で、ビデオエンコーダ20は、4分木データ構造中のリーフノードに対応する各CUのための予測ユニット(PU)を形成し得る。いくつかの例では、ビデオエンコーダ20は、LCUのための35個の異なるイントラ予測モードのうちの1つを選択し、4分木のルートノードにおいてその選択されたイントラ予測モードをシグナリングし得る。次いで、リーフノードに対応する各CUについて、ビデオエンコーダ20は、CUと同じサイズを有する1つのPUを形成すべきか、またはCUの4つの象限を表す4つのPUを形成すべきかを決定し得る。各PUは、選択されたイントラ予測モードに従って、隣接する、前にコーディングされたCUから取り出された予測データに対応する。
[0097]イントラ予測コーディングまたはインター予測コーディングを行ってCUのためのPUを生成した後、ビデオエンコーダ20は、残差データを計算して、CUのための1つまたは複数の変換ユニット(TU)を生成し得る。残差データは、符号化されていないピクチャのピクセルと、CUのPUの予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含む1つまたは複数のTUを形成し得る。ビデオエンコーダ20は、次いで、それらのTUを変換し得る。ビデオエンコーダ20は、CUのためのPUをイントラモード予測するために使用されるイントラ予測モードに基づいて変換を選択し得る。いくつかの例では、ビデオエンコーダ20は、2つ以上の変換、すなわち、カスケード変換をTUに適用するように構成され得る。
[0098]TUのための残差データを変換することによって、ビデオエンコーダ20は変換係数の行列を生成する。この行列は、概して、変換への入力ブロックと同じサイズを有する。概して、変換プロセスは、データをさらに圧縮する量子化のために残差データを準備する。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、それらの係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0099]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るベクトルを生成するために、あらかじめ定義された走査順序を利用して量子化変換係数(たとえば、有効性、レベル、符号、最後有効係数など)を走査し得る。たとえば、ビデオエンコーダ20は、対角線(ジグザグ、または右上から左下、または左下から右上)パターン、水平方向パターン、または垂直方向パターンを適用して量子化変換係数を走査し得る。
[0100]本開示のいくつかの態様によれば、あらかじめ定義された走査順序を適用するのではなく、ビデオエンコーダ20は、並列フレンドリー走査順序を生成し得るか、またはいくつかの並列フレンドリー走査順序がプリプログラムされ得る。たとえば、ビデオエンコーダ20は、いくつかの変数を使用して有効フラグコンテキストの並列計算を可能にするための走査順序を発生し得る。いくつかの例では、図9〜図10Bに関してより詳細に説明するように、ビデオエンコーダ20は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
[0101]別の例では、ビデオエンコーダ20は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの1つを適用し得る。すなわち、ビデオエンコーダ20は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。ビデオエンコーダ20は、たとえば、別のコーディングメトリック(たとえば、予測モード、変換など)に基づいて、特定の並列フレンドリー走査順序を選択し得る。
[0102]1次元ベクトルを形成するための変換行列の走査後におよび/またはその走査中に、ビデオエンコーダ20は、たとえば、CAVLC、CABAC、PIPE、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、または別のエントロピーコーディング方法に従って、1次元ベクトルをエントロピー符号化し得る。
[0103]CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
[0104]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロか否かに関係し得る。ビデオエンコーダ20は、有効係数フラグおよび最後係数フラグを含む有効性情報など、シンタックス要素をもエントロピー符号化し得る。
[0105]さらに、CABAC、PIPE、または別のコンテキスト適応型方式を実行するとき、ビデオエンコーダ20は、コンテキストサポート近傍を決定し、適用し得る。本開示の態様によれば、ビデオエンコーダ20は、有効性情報についてのコンテキストの効率的な並列計算をサポートするコンテキストサポート近傍を適用し得る。一例では、ビデオエンコーダ20は、走査中に適用されるあらかじめ定義された方向の走査(たとえば、対角走査)を識別し、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。以下でより詳細に説明するように、ビデオエンコーダ20は、次の要素についての有効フラグコンテキストを決定できる前に、符号化されるべき1つの要素を待つことを強制され得ので、そのようなコンテキスト近傍サポート要素(たとえば、走査経路中に位置する要素)に依拠することは、有効性コンテキスト情報を並列に計算するビデオコーダの能力を妨げ得る。この遅延は、有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
[0106]ビデオデコーダ30は、ビデオエンコーダ20の方法と本質的に対称的な方法で動作し得る。たとえば、ビデオデコーダ30は、符号化されたPUデータとTUデータとを含む符号化されたCUを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ30は、この受信データを逆エントロピー符号化して、復号された量子化係数を形成し得る。ビデオエンコーダ20が可変長コードアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ30は、受信コードワードに対応するシンボルを決定するために1つまたは複数のVLCテーブルを使用し得る。ビデオエンコーダ20が算術コーディングアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ30は、データを符号化するためにビデオエンコーダ20によって使用されたのと同じコンテキストモデルに対応するコンテキストモデルを使用して、そのデータを復号し得る。さらに、ビデオデコーダ30は、ビデオエンコーダ20と同じ方法でコンテキストサポート近傍を適用し得る。
[0107]ビデオデコーダ30は、次いで、ビデオエンコーダ20によって使用される走査をミラーリングする走査を使用して、復号された係数を走査して、変換係数の直列化アレイから変換係数の2次元アレイを生成し得る。たとえば、本開示の態様によれば、ビデオデコーダ30は、並列フレンドリー走査順序を生成し得るか、またはいくつかの並列フレンドリー走査順序がプリプログラムされ得る。たとえば、ビデオデコーダ30は、いくつかの変数を使用して有効フラグコンテキストの並列計算を可能にするための走査順序を生成し得る。いくつかの例では、図9〜図10Bに関してより詳細に説明するように、ビデオデコーダ30は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の配向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
[0108]別の例では、ビデオデコーダ30は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの1つを適用し得る。すなわち、ビデオデコーダ30は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。ビデオデコーダ30は、たとえば、別のコーディングメトリック(たとえば、予測モード、変換など)に基づいて、特定の並列フレンドリー走査順序を選択し得る。
[0109]ビデオデコーダ30は、それによって、エントロピー復号プロセスから得られた1次元ベクトルから2次元行列を形成し得る。次に、ビデオデコーダ30は、走査によって生成された2次元行列中の係数を逆量子化し得る。ビデオデコーダ30は、次いで、2次元行列に1つまたは複数の逆変換を適用し得る。逆変換は、ビデオエンコーダ20によって適用された変換に対応し得る。ビデオデコーダ30は、たとえば、PUを形成するために使用されるイントラ予測モードに基づいて、および、特定のサイズのTUのために複数の変換が利用可能である場合は、現在復号されているCUに対応する4分木のルートにおいてシグナリングされた情報に基づいて、適用すべき逆変換を決定し得る。
[0110]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0111]図2は、本開示で説明する、有効性情報を効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラ(I)モードは、いくつかの空間ベースの圧縮モードのいずれかを指すことがあり、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
[0112]図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームストア64と、加算器50と、変換ユニット52と、量子化ユニット54と、係数走査ユニット55と、エントロピーコーディングユニット56とを含む。図2に示す変換ユニット52は、実際の変換を実行するユニットであり、CUのTUと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
[0113]符号化プロセス中に、ビデオエンコーダ20はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。
[0114]モード選択ユニット40は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの1つを選択し、残差ブロックデータを発生するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に与える。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。
[0115]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックである。動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
[0116]動き推定ユニット42は、予測ユニットを参照フレームストア64に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。いくつかの例では、ビデオエンコーダ20は、参照フレームストア64に記憶された参照フレームのサブ整数ピクセル位置の値を計算する。たとえば、ビデオエンコーダ20は、参照フレームの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を計算する。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定ユニット42は、計算された動きベクトルをエントロピーコーディングユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって識別される参照サンプルを取り出すことによって、現在のCUの予測ユニットについての予測値を計算し得る。
[0117]イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代わりとして、受信ブロックをイントラ予測符号化し得る。イントラ予測ユニット46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右、上から下への符号化順序を仮定すると、現在のブロックの上ブロック、右上ブロック、左上ブロック、または左ブロックに対して受信ブロックを符号化し得る。イントラ予測ユニット46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、35個の方向性予測モードで構成され得る。
[0118]イントラ予測ユニット46は、たとえば、様々なイントラ予測モードの誤差値またはレートひずみを計算し(たとえば、所定のひずみを超えることなしに圧縮を最大にすることを試み)、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値をコンバイン(combine)し、そのコンバインされた値をPU中の1つまたは複数のピクセル位置に適用する機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット46は、PUと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット46は、次いで、PUを加算器50に送り得る。
[0119]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測ユニット46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックは値の2次元行列に対応し、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルと、コーディングされるべき元のブロック中のコロケートピクセルとの間の差分に対応し得る。
[0120]変換ユニット52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成し得る。変換ユニット52は、離散コサイン変換(DCT)、方向性変換、または概念的に同様の変換などの変換をTUに適用して、変換係数を備えるビデオブロックを生成する。したがって、変換ユニット52は、イントラ予測ユニット46から受信されたイントラ予測モードの指示に基づいてTUに適用すべき変換を選択し得る。
[0121]変換ユニット52は、量子化ユニット54に得られた変換係数を送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。上述のように、量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を0に低減し得る。
[0122]量子化の後に、エントロピーコーディングユニット56は、量子化変換係数を走査して量子化変換係数を2次元行列から1次元アレイに直列化し得る。変換係数に関連するシンタックス要素は、特定の係数が有効である(たとえば、非ゼロである)かどうかを示す有効係数フラグと、特定の係数が走査される最後係数であるかどうかを示す最後係数フラグとを含み得る。いくつかの事例では、エントロピーコーディングユニット56は、最後有効係数の位置をシグナリングし、その後に有効マップをシグナリングすることが続き、その後に係数レベルおよび/または符号をシグナリングすることが続き得る。いくつかの例では、エントロピーコーディングユニット56は、量子化変換係数レベルと同じ順序で有効マップを走査し得る。他の例では、エントロピーコーディングユニット56は、量子化変換係数レベルと反対の方向に有効マップを走査し得る。
[0123]概して、エントロピーコーディングユニット56は、あらかじめ定義された方向の走査パターンを適用して量子化変換係数を走査し得る。一例では、エントロピーコーディングユニット56は、たとえば、図4および図5Aに関して図示および説明するように、対角(ジグザグ)パターンを適用して量子化変換係数を走査し得る。別の例では、エントロピーコーディングユニット56は、水平方向パターン(たとえば、図6A)または垂直方向パターン(たとえば、図7A)を適用して量子化変換係数を走査し得る。
[0124]あらかじめ定義された走査順序を使用した走査中におよび/またはその走査後に、エントロピーコーディングユニット56は、直列化量子化変換係数をエントロピー符号化し得る。変換係数をエントロピー符号化するために、エントロピーコーディングユニット56は、CABAC、PIPE、または別のコンテキスト適応型エントロピーコーディングプロセスを実行するためのコンテキストモデルを選択し得る。エントロピーコーディングユニット56は、たとえば、前に走査されたN個の係数の中の有効係数の数および/または相対位置に基づいてコンテキストモデルを選択し得、ただし、Nは、走査されているブロックのサイズに関係し得る整数値である。エントロピーコーディングユニット56はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測データがイントラ予測モードを使用して予測されたとき、エントロピーコーディングユニット56はさらに、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。
[0125]エントロピーコーディングユニット56は、適切なコンテキストモデルを決定するためのコンテキストを識別するために、変換係数をエントロピー符号化するとき、コンテキストサポート近傍を決定し、適用し得る。たとえば、エントロピーコーディングユニット56は、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、変換係数をエントロピーコーディングするためのコンテキストの相対位置を識別し得る。述べたように、コンテキスト(たとえば、コンテキスト近傍位置にある実効値)は確率モデルを決定し得る。
[0126]いくつかの例では、エントロピーコーディングユニット56は、並列フレンドリーコンテキストサポート近傍を決定し得る(または並列フレンドリーコンテキストサポート近傍がプリプログラムされ得る)。たとえば、本開示の態様によれば、エントロピーコーディングユニット56は、有効フラグをコーディングするためのコンテキストの並列計算をサポートするコンテキストサポート近傍を実装し得る。すなわち、エントロピーコーディングユニット56は、有効フラグをコーディングするためのコンテキストの並列計算を可能にする位置におけるコンテキストを識別し得る。一例では、エントロピーコーディングユニット56は、初めに、量子化変換係数に関連する有効性情報を走査するように実装されているあらかじめ定義された方向の走査経路を識別し得る(たとえば、ジグザグ、水平方向、垂直方向など)。走査経路を識別した後に、エントロピーコーディングユニット56は、有効性情報をエントロピーコーディングするために使用されるコンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。
[0127]そのようなコンテキスト近傍サポート要素(たとえば、走査経路に沿った要素)に依拠することは、有効性情報を並列に処理するビデオコーダの能力を妨げ得る。たとえば、有効フラグコンテキストを並列に計算するために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない(たとえば、すでにコーディングされていなければならない)。コンテキストサポート近傍が走査経路に沿った要素を含む場合、コーダは、現在の位置についての有効フラグをコーディングする前に、現在コーディングされている位置に先行する走査経路中のコンテキストサポート要素がコーディングを完了するのを待つことを強制され得る。この遅延は、走査経路上の係数についての有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
[0128]したがって、本開示の態様によれば、エントロピーコーディングユニット56は、走査方向によって定義された経路(たとえば、「走査経路」)中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外し得る。すなわち、エントロピーコーディングユニット56は、現在の変換係数についてのコンテキストを決定するとき、除外されるコンテキストサポート近傍要素(たとえば、位置)に関連する有効フラグを考慮しないことがある。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピーコーディングユニット56は、走査経路に沿った係数についての有効フラグコンテキストを並列に計算し得る。いくつかの例では、エントロピーコーディングユニット56は、有効フラグコンテキストの並列計算と複数のビンの符号化とを実行するために、(たとえば、JCTVC−C227、「Parallelization of HHI Transform Coding」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月、および/またはJCTVC−C062、「TE8: TI Parallel Context Processing (PCP) Proposal」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月、に記載されている)上記の方式を適用し得る。
[0129]別の例では、あらかじめ定義された走査順序を適用し、コンテキストサポート近傍を潜在的に修正するのではなく、エントロピーコーディングユニット56は、並列フレンドリー走査順序を生成し、適用し得る。すなわち、エントロピーコーディングユニット56は、いくつかの変数を使用して有効性情報についてのコンテキストの並列計算を可能にする走査順序を生成し、適用し得る。たとえば、エントロピーコーディングユニット56は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
[0130]さらに別の例では、エントロピーコーディングユニット56は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの1つを適用し得る。すなわち、ビデオエンコーダ20は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。エントロピーコーディングユニット56は、たとえば、別のコーディングメトリックに基づいて、特定の並列フレンドリー走査順序を選択し、適用し得る。すなわち、エントロピーコーディングユニット56は、イントラ予測ユニット46または変換ユニット52から選択されたイントラ予測モードの指示を受信し、イントラ予測モードに基づいて並列フレンドリー走査順序を適用し得る。
[0131]たとえば、あらかじめ定義されたコンテキストサポート近傍と、1次優先度メトリックと、2次優先度メトリックと、所望の並列スレッドの数とに基づいて、特定の並列フレンドリー走査順序が生成される例では、エントロピーコーディングユニット56は、並列フレンドリー走査順序を生成するために使用されるコンテキストサポート近傍を実装し得る。すなわち、エントロピーコーディングユニット56は、シンタックス要素(たとえば、有効性情報)を並列にエントロピー符号化するために、並列フレンドリー走査順序を生成するために使用されるコンテキストサポート近傍を適用し得る。いくつかの例では、上述のように、エントロピーコーディングユニット56は、有効フラグコンテキストの並列計算と複数のビンの符号化とを実行するために、(たとえば、JCTVC−C227、「Parallelization of HHI Transform Coding」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月、および/またはJCTVC−C062、「TE8: TI Parallel Context Processing (PCP) Proposal」、3rd JCT−VC Meeting、Guangzhou、CN、2010年10月、に記載されている)上記の方式を適用し得る。
[0132]場合によっては、エントロピーコーディングユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピーコーディングユニット56はマクロブロックおよびパーティションのCBP値を決定するように構成され得る。また、場合によっては、エントロピーコーディングユニット56は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを実行し得る。
[0133]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームストア64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームストア64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0134]図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。ビデオデコーダ30は、本開示で説明する、有効性情報を効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得る。
[0135]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームストア82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを発生し得る。イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のフレームの現在のブロックについての予測データを発生し得る。
[0136]いくつかの例では、エントロピー復号ユニット70または逆量子化ユニット76は、ビデオエンコーダ20によって使用された走査をミラーリングする走査を使用して受信値を走査し得る。図3の例では、ビデオデコーダ30は、(たとえば、ビデオエンコーダ20によって適用されるあらかじめ決定された走査順序と対称の)あらかじめ決定された方向の走査順序を適用すること、ビデオエンコーダ20によってシグナリングされた走査順序を適用すること、またはビデオエンコーダ20に関して説明したのと同じプロセスを使用していくつかの記憶された走査順序から適切な走査順序を識別することを行うように構成され得る。
[0137]本開示の態様によれば、ビデオデコーダ30は、量子化変換係数のブロックに関連する有効性情報を並列に走査し、エントロピー復号するように構成され得る。すなわち、エントロピー復号ユニット70は、ビデオエンコーダ20によって生成された並列フレンドリー走査順序と対称である並列フレンドリー走査順序を生成し、適用し得る。たとえば、エントロピー復号ユニット70は、たとえば、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数とを含む、いくつかの変数を使用して、複数の有効フラグコンテキストの計算を並列に可能にする走査順序を生成し、適用し得る。
[0138]さらに別の例では、エントロピー復号ユニット70は、(たとえば、図2に示したビデオエンコーダ20に関して説明した走査順序生成技法などの)本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの1つを適用し得る。すなわち、ビデオデコーダ30は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。エントロピー復号ユニット70は、たとえば、使用される予測モード、または受信されたビットストリームを符号化するために使用される変換など、別のコーディングメトリックに基づいて、特定の並列フレンドリー走査順序を選択し、適用し得る。
[0139]本開示の態様によれば、エントロピー復号ユニット70は、上記でビデオエンコーダ20に関して説明したのと同じ方法でコンテキストサポート近傍を識別し、適用するように構成され得る。すなわち、たとえば、エントロピー復号ユニット70は、適切なコンテキストモデルを決定するためのコンテキストを識別するために、変換係数をエントロピー復号するとき、コンテキストサポート近傍を決定し、適用し得る。たとえば、エントロピー復号ユニット70は、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、変換係数をエントロピーコーディングするためのコンテキストの相対位置を識別し得る。述べたように、コンテキスト(たとえば、コンテキスト近傍位置にある実効値)は確率モデルを決定し得る。
[0140]いくつかの例では、エントロピー復号ユニット70は、並列フレンドリーコンテキストサポート近傍を決定し得る(または並列フレンドリーコンテキストサポート近傍がプリプログラムされ得る)。エントロピー復号ユニット70は、有効フラグをコーディングするためのコンテキストの並列計算をサポートするコンテキストサポート近傍を実装し得る。一例では、エントロピー復号ユニット70は、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得、走査経路中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外し得る。すなわち、エントロピー復号ユニット70は、現在の変換係数についてのコンテキストを決定するとき、除外されるコンテキストサポート近傍要素(たとえば、位置)に関連する有効フラグを考慮しない。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピー復号ユニット70は、走査経路に沿ってすべての有効フラグを復号するためのコンテキストを並列に計算し得る。
[0141]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、H.264復号規格またはHEVCによって定義された従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。
[0142]逆変換ユニット58は、逆変換、たとえば、逆DCT、逆整数変換、逆回転変換、または逆方向性変換を適用する。いくつかの例では、逆変換ユニット78は、受信されたイントラ予測符号化ブロックについてシグナリングされるイントラ予測モードに基づいて逆変換を決定し得る。イントラ予測モードに基づいて、ブロックが、2つ以上の変換が可能であるサイズのブロックである場合、逆変換ユニット78は、現在のブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて現在のブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換ユニット78は、カスケード逆変換を適用し得、たとえば、最初に逆回転変換を適用し、続いて逆方向性変換を適用し得る。
[0143]動き補償ユニット72は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0144]動き補償ユニット72およびイントラ予測ユニット74は、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されるLCUのサイズと、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報と、各分割がどのように符号化されるかを示すモード(たとえば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化PUについての1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化ビデオシーケンスを復号するための他の情報とを決定する。
[0145]加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって発生される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理することもある。復号ビデオブロックは、次いで、参照フレームストア82に記憶され、参照フレームストア82は、その後の動き補償のための参照ブロックを与え、また、ディスプレイデバイス(図1のディスプレイデバイス32など)上での提示のために復号ビデオを生成する。
[0146]図4は、変換係数位置120A〜120P(変換係数位置120)の例示的なジグザグ走査を示す概念図である。ビデオエンコーダ20は、たとえば、残差ブロックへのDCTの適用の後に、図4のジグザグ走査を使用して係数のブロックを走査するように構成され得る。さらに、ビデオエンコーダ20は、同じ方法で、有効性情報などの関連するシンタックス要素のブロックを走査するようにも構成され得る。すなわち、一例では、ビデオエンコーダ20は、図4のジグザグ走査に従って有効性情報のブロックを走査するように構成され、同じまたは逆の順序で係数レベルを走査するように構成され得る。
[0147]図4に示す例では、ジグザグ走査は、変換係数位置120Aから開始し、次いで変換係数位置120Bに進み、次いで変換係数位置120Eに進み、次いで変換係数位置120Iに進み、次いで変換係数位置120Fに進み、次いで変換係数位置120Cに進み、次いで変換係数位置120Dに進み、次いで変換係数位置120Gに進み、次いで変換係数位置120Jに進み、次いで変換係数位置120Mに進み、次いで変換係数位置120Nに進み、次いで変換係数位置120Kに進み、次いで変換係数位置120Hに進み、次いで変換係数位置120Lに進み、次いで変換係数位置120Oに進み、最後に変換係数位置120Pに進む。同様に、右上から左下への対角走査は、120A、120B、120E、120C、120F、120I、120D、120G、120J、120M、120H、120K、120N、120L、120O、および120Pという順序で変換係数位置を通る。左下から右上への対角走査は、120A、120E、120B、120I、120F、120C、120M、120J、120G、120D、120N、120K、120H、120O、120L、および120Pという順序で変換係数位置を通る。
[0148]ジグザグ走査を実行することによって、変換係数の2次元配列は、変換係数位置120の各々の値を含む1次元アレイに変換され得る。これらの値は、アレイ中で走査順に配列され得る。たとえば、変換係数位置120Aの値がアレイ中の最初にあり得、その後に変換係数位置120B、120E、120I、120Fなどの値が続き得る。
[0149]図4のジグザグ走査は、変換係数を形成するために残差ブロックに適用されるDCTに関連付けられ得る。概して、DCTは、変換係数位置120に関連するピクセルのエネルギーを変換ブロックの左上隅に圧縮する。したがって、最低周波数係数は、概して、DCT後に左上隅の近くに生じ得、最高周波数係数は、概して、DCT後に右下隅の近くに生じ得る。したがって、ジグザグ走査は、アレイ中でより低い周波数係数がより高い周波数係数よりも早く配置されることを保証することを試みるように構成され得る。このようにして、ビデオエンコーダは、より高い周波数係数に対応するはずである、アレイ中の後のほうの係数をゼロアウトすることによって、データを圧縮し得る。
[0150]他の変換のために他のあらかじめ定義された走査パターンも定義され得る。たとえば、各変換は、より低い値(lower magnitude)の係数よりも早く、その変換から生じるより高い値(higher magnitude)の係数をアレイ中で配置するように設計された走査パターンに関連付けられ得る。上記変換のうちの1つにより、より高い値の係数が変換係数のブロックの左端の列に沿って生じ得(たとえば、垂直方向に配向)、その場合、変換係数位置120Aから開始し、次いで変換係数位置120Eに進み、次いで変換係数位置120Iに進み、次いで変換係数位置120Mに進み、次いで変換係数位置120Bなどに進む、対応する走査が定義され得る。別の例として、方向性変換のうちの別の1つにより、より高い値の係数が変換係数のブロックの最上行に沿って生じ得(たとえば、水平方向に配向)、その場合、変換係数位置120Aから開始し、次いで変換係数位置120Bに進み、次いで変換係数位置120Cに進み、次いで変換係数位置120Dに進み、次いで変換係数位置120Eなどに進む、対応する走査が定義され得る。
[0151]本開示の技法は、一般に、有効性情報を効率的に走査し、エントロピーコーディングすることに関する。図4に示すジグザグ走査パターンの場合、本開示の態様は、エントロピーコーディング中に、走査経路に沿ったどのコンテキスト要素をも含まないコンテキストサポート近傍を適用することを含む。すなわち、たとえば、変換係数位置120Gに関係する変換係数に関連する有効性情報をエントロピーコーディングするとき、コンテキストサポート近傍は、位置120D、120J、または120Mにおけるコンテキスト要素を含まないであろう。
[0152]そのようなコンテキスト近傍サポート要素に依拠することは、複数の有効フラグについてのコンテキストを並列に計算するビデオコーダの能力を妨げ得る。たとえば、位置120Gについてのコンテキストを計算するために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない(たとえば、すでにコーディングされていなければならない)。コンテキストサポート近傍が、位置120D、120J、または120Mにおけるコンテキスト要素など、走査経路に沿った要素を含む場合、コーダは、そのようなコンテキストサポート要素がコーディングを完了するのを待ち、位置120Gについての有効フラグについてのコンテキストを計算することを、強制され得る。この遅延は、有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
[0153]したがって、本開示の態様は、走査方向によって定義された経路(たとえば、「走査経路」)中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外することによって、有効フラグをコーディングするためのコンテキストの並列計算のためのコンテキストサポート近傍を最適化することに関する。図4に示す例では、コンテキストサポート近傍の要素が対角走査経路中に含まれないとき、エントロピーコーダは、対角走査経路に沿って有効性情報のすべてを並列にコーディングすることができる。
[0154]図4のいくつかの態様についてビデオエンコーダ20に関して説明したが、説明した技法はビデオデコーダ30などのビデオデコーダによっても適用され得ることを理解されたい。
[0155]図5A〜図7Cは、本開示の態様による、例示的な走査パターンと対応する並列フレンドリーコンテキストサポート近傍とを示す概念図である。図5A〜図7に示す走査パターンとコンテキストサポート近傍とは非限定的な例として与えられていることと、他の走査パターンとコンテキストサポート近傍とが、本明細書で説明するコンテキストの並列計算に関係する態様を示し得ることとを理解されたい。
[0156]図5Aは、量子化変換係数を走査するための対角またはジグザグ走査パターン140を示す概念図である。たとえば、図5Aは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円141を含み、各変換係数位置は対応する量子化変換係数を有する。図5Aに示すように、変換係数は、概して対角またはジグザグパターンで走査される。すなわち、図5Aに示す2次元ブロックの変換係数は、ブロックの相対的左上からブロックの相対的右下に、およびブロックの相対的右下からブロックの相対的左上に変換係数を走査することによって、1次元アレイに直列化される。上述のように、いくつかの例では、変換係数に関連する有効性情報は、変換係数に関連するレベル情報より前に走査され得る。さらに、有効性情報は、量子化変換係数レベルと同じまたは反対の順序で走査され得る。
[0157]図5Aに示すジグザグ走査は一例として与えられているにすぎないことと、変換係数を走査するために他の対角線方向の走査が使用され得ることとを理解されたい。たとえば、別の例では、対角線方向の走査の走査経路がすべて同じ相対方向をたどり得る。すなわち、すべての走査経路が、ブロックの右上隅からブロックの左下隅への対角線方向の経路をたどり得る。別の例では、すべての走査経路が、ブロックの左下隅からブロックの右上隅への対角線方向の経路をたどり得る。
[0158]図5Bは、図5Aの対角走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス144A〜144K(まとめて、コンテキストサポート近傍要素144)によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図5Bに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている(たとえば、関連する有効性情報、レベル情報、符号情報などを有する、変換係数を含む)変換係数位置148に隣接する11個の潜在的なコンテキストサポート要素144を含む。上述のように、コンテキストサポート要素144は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、(たとえば、エントロピーコーディングユニット56またはエントロピー復号ユニット70などの)エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置148における変換係数をエントロピーコーディングするためのコンテキストの相対位置(たとえば、その位置にある実効値)を識別し得る。
[0159]図5Bのコンテキストサポート近傍は11個の潜在的なコンテキストサポート要素144を含むが、コンテキストサポート近傍は様々な構成で任意の数の要素を含んでいることがあることを理解されたい。一例では、図5Cに関して説明するように、コンテキストサポート近傍は、現在コーディングされている位置に隣接する5つのコンテキストサポート要素を含んでいることがある。他の構成も可能である。
[0160]本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍144中のコンテキストサポート要素144Gおよび144Kが除外されている(「X」で消されたものとして表されている)。すなわち、図5Aにおいて定義されたジグザグ走査経路に沿って位置する、コンテキストサポート近傍144のコンテキストサポート要素144Gおよび144Kは、コーディング中に考慮されることから除外されている。たとえば、図5Aに示すジグザグ走査パターンが図5Bに示すコンテキストサポート近傍144でオーバーレイされた場合、対角線方向の走査経路に沿って位置する、コンテキストサポート近傍144のコンテキストサポート要素144Gおよび144Kは除外されている。したがって、除外されるコンテキストサポート近傍要素(たとえば、位置)に関連する有効性情報は、現在の変換係数位置148についてのコンテキストを決定するとき、考慮されないことになる。
[0161]走査経路からのコンテキスト要素を除外することによって、エントロピーコーダは、走査経路に沿ってすべての位置についての有効フラグコンテキストを並列に計算することができる。たとえば、コンテキストサポート要素144J、144I、144F、および144Cに関連する有効フラグのコーディングを完了した後に、現在の変換係数位置148を含む次の走査経路についての有効フラグコンテキストが並列に計算され得る。
[0162]図5Cは、対角線方向の走査経路についての並列フレンドリーコンテキストサポート近傍の一例を示す概念図である。たとえば、図5Cは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円151を含み、各変換係数位置は対応する量子化変換係数を有する。現在コーディングされている変換係数位置154を通る対角線によって示されるように、図5Cに示す走査経路は対角線方向に向いている。
[0163]さらに、図5Cの例は、5つの要素を有する並列フレンドリーコンテキストサポート近傍152A〜152E(まとめて、コンテキストサポート近傍152)を示している。すなわち、コンテキストサポート近傍152は、現在の変換係数位置154に隣接し、現在の変換係数位置154の上にある第1の位置152Cと、第1の位置152Cに隣接し、第1の位置152Cの上にある第2の位置154Aと、現在の変換係数位置154に隣接し、現在の変換係数位置154の左にある第3の位置152Eと、第3の位置に隣接し、第3の位置の左にある第4の位置152Dと、第3の位置152Eに隣接し、第3の位置152Eの上にあり、第1の位置152Cに隣接し、第1の位置152Cの左にある第5の位置152Bとを含む。
[0164]上述のように、走査経路からのコンテキスト要素を除外することによって、エントロピーコーダは、走査経路に沿ってすべての位置についての有効フラグコンテキストを並列に計算することができる。
[0165]図6Aは、量子化変換係数を走査するための水平走査パターン160を示す概念図である。たとえば、図6Aは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円161を含み、各変換係数位置は対応する量子化変換係数を有する。図6Aに示すように、変換係数は、概して水平パターンで走査される。すなわち、図6Aに示す2次元ブロックの変換係数は、ブロックの各行を左から右に、上から下に変換係数を走査することによって、1次元アレイに直列化される。
[0166]図6Bは、図6Aの水平走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス164A〜164L(まとめて、コンテキストサポート近傍要素164)によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図6Bに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている変換係数位置168に隣接する11個の潜在的なコンテキストサポート要素164を含む。上述のように、コンテキストサポート要素164は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、(たとえば、エントロピーコーディングユニット56またはエントロピー復号ユニット70などの)エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置168における変換係数をエントロピーコーディングするためのコンテキストの相対位置(たとえば、その位置にある実効値)を識別し得る。
[0167]図6Bに示すように、本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍164中のコンテキストサポート要素164I、164J、164K、および164Lが除外されている(「X」で消されたものとして表されている)。すなわち、たとえば、図6Aによって定義された走査経路に沿って位置する、コンテキストサポート近傍164のコンテキストサポート要素164I、164J、164K、および164Lは除外されている。したがって、除外されるコンテキストサポート近傍要素(たとえば、位置)に関連する有効性情報は、現在の変換係数位置168についてのコンテキストを決定するとき、考慮されないことになる。
[0168]図5Bに関して上記で説明したように、走査経路からのコンテキスト要素を除外することによって、走査経路に沿った有効フラグコンテキストは並列に計算され得る。すなわち、変換係数位置168についての有効フラグコンテキストは、変換係数位置168と同じ走査経路上のすべての他の有効フラグコンテキストと並列に計算され得る。
[0169]図7Aは、量子化変換係数を走査するための垂直走査パターン180を示す概念図である。たとえば、図7Aは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円181を含み、各変換係数位置は対応する量子化変換係数を有する。図7Aに示すように、変換係数は、概して垂直パターンで走査される。すなわち、図7Aに示す2次元ブロックの変換係数は、各列で上から下に、ブロックを左から右に変換係数を走査することによって、1次元アレイに直列化される。
[0170]図7Bは、図7Aの垂直走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス184A〜184L(まとめて、コンテキストサポート要素184)によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図7Bに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている変換係数位置192に隣接する11個の潜在的なコンテキストサポート要素184を含む。上述のように、コンテキストサポート要素184は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、(たとえば、エントロピーコーディングユニット56またはエントロピー復号ユニット70などの)エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置184における変換係数をエントロピーコーディングするためのコンテキストの相対位置(たとえば、その位置にある実効値)を識別し得る。
[0171]図6Bに示すように、本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍184中のコンテキストサポート要素184B、184E、184J、および184Lが除外されている(「X」で消されたものとして表されている)。すなわち、たとえば、図7Aによって定義された走査経路に沿って位置する、コンテキストサポート近傍184のコンテキストサポート要素184B、184E、184J、および184Lは除外されている。したがって、除外されるコンテキストサポート近傍要素(たとえば、位置)に関連する有効性情報は、現在の変換係数位置188についてのコンテキストを決定するとき、考慮されないことになる。
[0172]図5Bおよび図6Bに関して上記で説明したように、走査経路からのコンテキスト要素を除外することによって、走査経路に沿った有効フラグコンテキストは並列に計算され得る。すなわち、変換係数位置188に関連する有効フラグコンテキストは、変換係数位置188と同じ走査経路上に位置するすべての他の有効フラグコンテキストと並列に計算され得る。
[0173]図7Cは、図7Aに示す走査経路のような垂直方向の走査経路についての並列フレンドリーコンテキストサポート近傍の一例を示す概念図である。たとえば、図7Cは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円191を含み、各変換係数位置は対応する量子化変換係数を有する。現在コーディングされている変換係数位置194を通る垂直線によって示されるように、図7Cに示す走査経路は垂直方向に向いている。
[0174]図7Cの例は、4つの要素を有する並列フレンドリーコンテキストサポート近傍192A〜192D(まとめて、コンテキストサポート近傍192)を示している。図7Cに示すように、本開示のいくつかの態様によれば、考慮されるべきコンテキストサポート近傍について、特定の走査経路のコンテキストサポート近傍要素のすべてが除外される必要があるとは限らない。すなわち、たとえば、図7Cに示すコンテキストサポート近傍は走査経路中のコンテキストサポート要素192Aを含むが、現在コーディングされている変換係数194に隣接して位置する(および、それの走査経路中の)変換係数195はコンテキストサポート近傍から除外されている。この例では、変換係数195は、現在コーディングされている変換係数194の直前に走査される。したがって、図7Cの例では、エントロピーコーダは、2つの位置についての有効フラグコンテキストを並列に計算することができる。すなわち、エントロピーコーダは、現在コーディングされている変換係数194と、現在コーディングされている変換係数194に隣接して位置する(走査経路中の)変換係数195とについての有効フラグコンテキストを並列に計算することができる。
[0175]他の例では、並列フレンドリー走査を生成するために、別の数(たとえば、3つ、4つなど)の、走査経路中に位置するコンテキストサポート要素が、コンテキストサポート近傍から除外され得る。このようにして、本開示の技法は、走査経路からの、現在の位置より前に走査される、1つまたは複数のコンテキストサポート近傍要素を除外することを含む。
[0176]図5A〜図7Bに関して説明したいくつかの態様では、コンテキストサポート近傍から要素を「除外」することに言及したが、コンテキストサポート近傍要素の除外は、ビデオコーダの初期構成中に、またはコーディング中にリアルタイムで、実行され得ることを理解されたい。すなわち、「除外」することは、概して、コーディング中にコンテキストサポート近傍中の要素を考慮しないことを指す。一例では、ビデオコーダは、あらかじめ決定された走査経路に沿ったコンテキストサポート要素を「除外」するかまたはそれを含まないコンテキストサポート近傍を実装するように(たとえば、設計環境において)プログラムされ得る。別の例では、ビデオコーダは、走査経路に沿ったコンテキストサポート要素を「除外」するかまたはそれを含まないように、コーディング中に「オンザフライ」でコンテキストサポート近傍を変更し得る。この例では、ビデオエンコーダとビデオデコーダの両方が、同じコンテキストサポート変更プロセスを実装するように構成され得る。
[0177]図8は、特定の走査パターンについての並列フレンドリーコンテキストサポート近傍を決定する例示的な方法200を示すフローチャートである。説明のためにビデオエンコーダ20(図2)の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図8の方法を実行するように構成され得ることを理解されたい。
[0178]ビデオエンコーダ20は、初めに、量子化変換係数を2次元ブロックから1次元アレイに直列化するために使用され得る走査パターン(または走査方向)を識別する(204)。たとえば、ビデオエンコーダ20は、走査パターンを、図5Aに示したジグザグ走査のような対角走査、図6Aに示した水平走査、または図7Aに示した垂直走査であるものとして識別し得る。
[0179]走査を識別した後に、ビデオエンコーダ20は、量子化変換係数をエントロピーコーディングするために使用されるコンテキストサポート近傍のコンテキストサポート要素を識別する(206)。概して、コンテキストサポート近傍は、特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストを識別する。一例では、コンテキストサポート近傍は、コンテキストを定義する5つの隣接ロケーションを識別し得るが(たとえば、図5Cに示したコンテキストサポート近傍を参照)、任意の数のネイバーが使用され得る。
[0180]ビデオエンコーダ20は、次いで、コンテキストサポート近傍のいずれかの要素が識別された走査経路中に含まれるかどうかを判断する(208)。コンテキストサポート近傍のコンテキスト要素が走査経路中に含まれる場合、ビデオエンコーダ20は、コンテキストサポート近傍からそのようなコンテキスト要素を除外し(210)、その後、変換係数を走査する(212)。コンテキストサポート近傍のコンテキスト要素が走査経路中に含まれない場合(たとえば、ステップ208の「いいえ」経路)、ビデオエンコーダ20は変換係数を走査すること(212)に直接進むことができる。
[0181]本開示の態様によれば、ビデオエンコーダ20は、次いで、方法200において定義されたコンテキストサポート近傍を使用して、走査経路に沿って有効フラグコンテキストを並列に計算し得る。たとえば、走査経路に沿って位置するコンテキストサポート要素をコンテキストサポート近傍から除外することによって、ビデオエンコーダ20は並列フレンドリーコンテキストサポート近傍を作成する。したがって、図5B、図6B、および図7Bに関して説明したように、ビデオエンコーダは、所与の走査経路に沿って有効フラグコンテキストを並列に計算し得る。
[0182]また、図8に関して図示および説明するステップは一例として与えたものにすぎないことを理解されたい。たとえば、方法200によって生成されるコンテキスト近傍は、設計環境において発生され、ビデオエンコーダまたはビデオデコーダに記憶され得る。したがって、方法200のステップはビデオコーディング中に「オンザフライ」で実行されないことがある。その上、図8の方法200のステップは必ずしも図8に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
[0183]図9は、並列フレンドリー走査順序を発生する例示的な方法を示すフローチャートである。説明のためにビデオエンコーダ20(図2)の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図9の方法を実行するように構成され得ることを理解されたい。
[0184]概して、方法230の態様は、複数の有効フラグコンテキストを並列に計算するための走査順序を発生することに関する。いくつかの例によれば、方法230は、有効性情報(たとえば、有効フラグ)の効率的な並列コンテキスト適応型バイナリ算術コーディング(CABAC)を可能にする走査順序を開発するために使用され得る。図9に示す例では、ビデオエンコーダ20は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数(たとえば、同時に計算されるべき有効フラグコンテキストの所望の数)とに基づいて、走査順序を発生する。ビデオエンコーダ20は、コンテキストサポート近傍を判断すること(232)によって開始する。コンテキストサポート近傍は、現在コーディングされている有効フラグに対するコンテキスト要素の相対位置を識別し得る。いくつかの例では、コンテキストサポート近傍はあらかじめ定義され得る。すなわち、コンテキストサポート近傍はビデオエンコーダ20中の固定パラメータであり得る。一例では、対角線方向の走査についてのコンテキストサポート近傍は、図5Cに示した例に従って固定であり得る。
[0185]コンテキストサポート近傍を決定した後に、ビデオエンコーダ20は1次優先度メトリックを決定する(234)。図10A〜図13Bに関してより詳細に説明するように、1次優先度メトリックは、発生された走査順序の方向に影響を及ぼすように設計され得る。たとえば、1次優先度メトリックは、発生された走査順序の方向に影響を及ぼす、走査順序生成プロセス中に適用される関数を含み得る。すなわち、一例では、1次優先度メトリックは、変換係数の列に沿った有効性情報よりも変換係数の行に沿った有効性情報を走査することを選好する関数であり得る。
[0186]次に、ビデオエンコーダ20は2次優先度メトリックを決定する(236)。1次優先度メトリックと同様に、2次優先度メトリックは、発生された走査の配向にさらに影響を及ぼし得る、走査順序発生プロセス中に同じく適用される別の関数を含み得る。いくつかの例では、2次優先度メトリックはタイブレーカーとして適用され得る。すなわち、2つの有効フラグが(たとえば、1次優先度メトリックによる)等しい優先度を有することを1次優先度メトリックが示す場合、2次優先度メトリックは、そのようなタイを解決するために適用され得る。
[0187]ビデオエンコーダ20は所望の並列スレッドの数を決定する(238)。いくつかの例では、走査順序生成プロセスに入力される並列スレッドの数は、生成された走査順序がサポートすることができる並列量に影響を及ぼすために、使用され得る。たとえば、入力される並列スレッドの数は、発生された走査がサポートすることができる並列量に影響を及ぼす、あらかじめ定義された定数(たとえば、2、3、4など)であり得る。すなわち、入力される並列スレッドの数、2は、2つの有効フラグコンテキストが並列に計算されることを可能にする走査順序を生成し得る。同様に、入力される並列スレッドの数、3は、3つの有効フラグコンテキストが並列に計算されることを可能にする走査順序を生成し得、以下同様である。
[0188]ビデオエンコーダ20は、次いで、ステップ232〜238において説明した変数に基づいて走査順序を生成する(240)。本開示のいくつかの態様によれば、並列フレンドリー走査順序を開発するために使用される要素(たとえば、コンテキストサポート近傍、1次優先度メトリック、2次優先度メトリック、および並列スレッドの所望の数)のうちの1つまたは複数を変更することは、得られた走査順序の方向を変化させ得る。たとえば、1次優先度メトリックおよび/または2次優先度メトリックを変更することは、得られた走査順序の方向を変化させ得る。すなわち、特定のコンテキストサポート近傍を仮定すれば、1次優先度メトリックおよび/または2次優先度メトリックを変更することは、水平方向に向いた走査、垂直方向に向いた走査、または対角線方向に向いた走査を生成し得る。
[0189]ビデオエンコーダ20によって行われるものとして説明したが、方法230は様々な他のデバイスによって行われ得ることを理解されたい。すなわち、たとえば、方法230は、ビデオデコーダ30などのビデオデコーダによって行われ得る。別の例では、方法230は設計環境において開発者によって行われ得る。すなわち、開発者は、異なる方向を有する並列フレンドリー走査を生成するように、ステップ232〜238において説明した変数を変更し得る。その場合、開発者は、開発された走査をビデオエンコーダ20および/またはビデオデコーダ30に記憶し得る。さらに、図9の方法のステップは必ずしも図9に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
[0190]図10Aおよび図10Bは、並列フレンドリー走査順序を生成する例示的な方法260を示すフローチャートである。いくつかの例では、方法260は、並列フレンドリー走査順序を生成するために、図9に記載した変数を使用し得る。説明のためにビデオエンコーダ20(図2)の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図10Aおよび図10Bの方法260を実行するように構成され得ることを理解されたい。
[0191]概して、本方法は、量子化変換係数を有するビデオデータの特定のブロックについての並列フレンドリー走査順序を生成するために使用され得る。「位置」は、概して、(残差ビデオデータに関係する)ブロック中の変換係数位置を指すことがある。ビデオエンコーダ20は、初めにブロックのすべての位置を未処理とマークし(262)、ならびにすべての位置を利用不可能とマークする(264)。これらの指定は、並列フレンドリー走査順序を生成する間に各位置のステータスを追跡するために使用される。
[0192]次に、ビデオエンコーダは、並列フレンドリー走査生成プロセス中に使用する変数step_indexおよびprocessed_coeffを初期化する(266)。これらの変数は、一般に0に初期化され、走査生成中に増分される。次に、ビデオエンコーダ20は、コンテキストサポート近傍が決定され得る未処理位置のリストを生成する(268)。たとえば、ビデオエンコーダ20は、コンテキストサポート近傍の値が利用可能である(たとえば、前にコーディングされている)ブロック中のいずれかの位置を識別し得る。初めに、最左上位置は、コンテキストサポート近傍が決定され得る唯一の位置であり得る。現在のブロック外にある値は有効でないと見なされ得る。ただし、ブロックが処理され、値が決定されるにつれて、追加の位置がリストに追加され得る。ビデオエンコーダ20は、リスト中の位置の数を識別し、num_candidates変数をリスト中の位置の数に設定する(270)。
[0193]ビデオエンコーダ20は、次いで1次優先度メトリックに従って昇順で候補リストをソートする。たとえば、本開示のいくつかの態様によれば、ブロックの各位置は、ブロック中のそれの相対位置に基づいてインデックス値が割り当てられる。すなわち、一例では、ブロックの各位置は、行インデックス(i)および列インデックス(j)が割り当てられ得る。したがって、最左上位置は(0,0)のインデックス値が割り当てられ得、(0,0)の真右にある位置は(0,1)のインデックス値が割り当てられ得る。位置(0,0)の真下の位置は(1,0)であり得、以下同様である。
[0194]本開示の態様によれば、1次優先度メトリックは、上記インデックス値を入力変数として利用する関数であり得る。たとえば、図11Aに関して説明するように、1次優先度メトリックは、(i)+(j)であり、それにより特定の位置についての行インデックス値と列インデックス値とを組み合わせ得る。別の例では、図12Aに関して説明するように、1次優先度メトリックは単に(i)であり得、または図13Aに関して説明するように、1次優先度メトリックは単に(j)であり得る。これらの1次優先度メトリックは単に例として与えられていることと、他の入力変数を使用する他の1次優先度メトリックが使用され得ることとを理解されたい。
[0195]1次優先度メトリックは、得られた並列フレンドリー走査順序の方向に影響を及ぼすために使用され得る。たとえば、(i)の1次優先度メトリックにより、ブロックの行における位置は候補リストの最上位のほうへソートされ得る。すなわち、低い行インデックスを有する候補が、より高い行インデックスを有する候補よりも高くソートされ得る。以下でより詳細に説明するように、リストの最上位における位置により、それらの位置は、候補リスト上のより下位の位置の前に走査され得る。
[0196]いくつかの例では、候補リスト中のいくつかの位置が「タイ(tied)」にされ得る。すなわち、候補リスト中のいくつかの位置は、1次優先度メトリックを適用した後に同じ値を有し得る。一例では、(i)+(j)の1次優先度メトリックが、同じインデックス値を有する2つの位置を生成し得る。2次優先度メトリックに従ってそのようなタイをブレークし、ソートする(274)。2次優先度メトリックは、第1の優先度メトリックと第2の優先度メトリックとが両方ともタイにならないように選定されるべきである。
[0197]ビデオエンコーダ20は、次いで、リスト中の係数の数(たとえば、num_candidates)が並列スレッドの所望の数(たとえば、num_parallel)よりも大きいかどうかを決定する(276)。いくつかの態様によれば、並列スレッドの数(たとえば、num_parallel)は、並列フレンドリー走査を生成する開発者によって選択され得る。たとえば、開発者は、並列に計算されることが望まれる有効フラグコンテキストの数に従って並列スレッドの数(たとえば、num_parallel)を設定し得る。場合によっては、生成された並列フレンドリー走査順序を最終的に使用するコーディングデバイスによって使用される並列スレッドの数は、システムによって抑制され得る。すなわち、いくつかのビデオコーダは、他のコーダよりも多くの有効フラグコンテキストを並列に計算することが可能であり得る。
[0198]並列スレッドの数よりも、候補リスト中で利用可能な候補が多い場合、(たとえば、num_candidatesがnum_parallelよりも大きく、ステップ276の「はい」分岐)、ビデオエンコーダ20は、走査発生プロセスのこの反復において処理される候補の数を識別するステップ変数(たとえば、step_num_coefficient)を、所望の並列スレッドの数に等しく設定する(278)。すなわち、所望の並列スレッドの数は、候補リストからのいくつの候補が走査順序を割り当てられることになるかを識別するために使用され得る。一例では、並列スレッドの所望の数は2に設定され得る。したがって、ビデオエンコーダ20は、候補リストからの候補のうちの2つに走査順序を割り当て得る。すなわち、ビデオエンコーダは、ステップ数(たとえば、step_num_coeff)に走査順序を割り当てる。
[0199]リスト中の候補の数(たとえば、num_candidates)が所望の並列スレッドの数(たとえば、num_parallel)よりも小さい場合(たとえば、ステップ276の「いいえ」分岐)、ビデオエンコーダ20は、リスト中に含まれる候補のみに走査順序を割り当てることになる。すなわち、ビデオエンコーダ20は、ステップ数(たとえば、step_num_coeff)を候補のリスト中の候補の数(たとえば、num_candidates)に設定する(282)。一例では、3つの並列スレッドが望まれるが、2つの候補のみが候補リスト中に含まれる(たとえば、2つの位置のみが既知のコンテキストを有する)場合、ビデオエンコーダ20は、リスト中の候補の数、すなわち、2つのみに走査順序を割り当て得る。したがって、ビデオエンコーダ20は、ステップ数(たとえば、step_num_coeff)に走査順序を割り当てる(280)。
[0200]図10Bに進むと、ビデオエンコーダ20は、次いで、(たとえば、ステップ280において)走査順序を割り当てられた位置を処理済みとマークする(284)。たとえば、ビデオエンコーダ20は、走査順序を割り当てられている位置が本プロセスの次の反復において考慮から除外されるように、それらの位置を処理済みとマークする。ビデオエンコーダ20はまた、ステップインデックス(たとえば、ステップ266において初期化されたstep_index)を1だけ増分し、処理済み係数(たとえば、ステップ266において初期化されたprocessed_coeff)の数を、ステップ280において走査順序を割り当てられた位置の数(たとえば、step_num_coeff)だけ増加させる(288)。
[0201]まだ走査順序を割り当てられていない、ブロック中の位置が依然としてある場合、ビデオエンコーダ20は、ブロック中の位置のすべてが走査順序を割り当てられるまで、本プロセスを繰り返し得る。たとえば、ビデオエンコーダ20は、処理済みの位置の総数がブロック中の位置の総数よりも小さいかどうかを判断する(290)。処理されるべき位置がより多い場合(たとえば、ステップ290の「はい」分岐)、ビデオエンコーダ20は図10Aのステップ268に戻り得る(図10Aおよび図10B中の「A」で示される遷移)。位置のすべてが処理された場合(たとえば、ステップ290の「いいえ」分岐)、本プロセスは終了する。
[0202]ビデオエンコーダ20によって行われるものとして説明したが、図10Aおよび図10Bに示す方法260は様々な他のデバイスによって行われ得ることを理解されたい。すなわち、たとえば、方法260は、ビデオデコーダ30などのビデオデコーダによって行われ得る。別の例では、方法260は設計環境において開発者によって行われ得る。すなわち、開発者は、図10Aおよび図10Bに示す方法を使用して、異なる配向を有する並列フレンドリー走査を発生するように、ステップ232〜238において説明した変数を変更し得る。その場合、開発者は、開発された走査をビデオエンコーダ20および/またはビデオデコーダ30に記憶し得る。さらに、図9の方法のステップは必ずしも図9に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
[0203]図11A、図12A、および図13Aは、変換係数のブロックについての(それぞれ、点線ボックス310、320、および330によって表される)例示的なコンテキストサポート近傍を示す概念図である。いくつかの例によれば、これらのコンテキストサポート近傍は、図10Aおよび図10Bに示した方法に従って並列フレンドリー走査順序を開発するために使用され得る。たとえば、図11A、図12A、および図13Aに示すコンテキストサポート近傍、ならびに1次優先度メトリック、2次優先度メトリック、および並列スレッドの所望の数は、並列フレンドリー走査を発生するために使用され得る。
[0204]図11B、図12B、および図13Bは、それぞれ、図10Aおよび図10Bに示した方法を使用して生成された、例示的な走査順序314、324、および334である。たとえば、図11Bは、図11Aに示すコンテキストサポート近傍と、(i)+(j)の1次優先度メトリックと、(j)の2次優先度メトリックと、並列スレッドの所望の数(たとえば、num_parallel)2とを使用して生成された例示的な走査順序である。図12Bは、図12Aに示すコンテキストサポート近傍と、(i)の1次優先度メトリックと、(i)+(j)の2次優先度メトリックと、並列スレッドの所望の数(たとえば、num_parallel)3とを使用して生成された例示的な走査順序である。図13Bは、図13Aに示すコンテキストサポート近傍と、(j)の1次優先度メトリックと、(i)+(j)の2次優先度メトリックと、並列スレッドの所望の数(たとえば、num_parallel)3とを使用して生成された例示的な走査順序である。
[0205]概して、図11A〜図13Bは、コンテキストサポート近傍と、1次優先度メトリックと、2次優先度メトリックと、所望の並列スレッドの数とを変更することが、得られた走査の配列にどのように影響を及ぼすことができるかを示している。各番号は、1次元走査内のその変換係数の位置を示す。より低い番号は、その変換係数が走査中でより早く現れることを示す。たとえば、図11Bに示す走査順序は、比較的中間のまたは対角線方向を有する。すなわち、各位置は、概してブロックの左上隅からブロックの右下隅に走査される。代替的に、図12Bに示す走査順序は、比較的顕著な水平方向を有する。すなわち、ブロックの上部行の近くの位置は、概して、下部行に沿った位置より前に走査される。別の例では、図13Bに示す走査順序は、比較的顕著な垂直方向を有する。すなわち、ブロックの左列の近くの位置は、概して、右にある列における位置より前に走査される。
[0206]本開示のいくつかの態様によれば、図11A〜図13Bに示す並列フレンドリー走査順序などの並列フレンドリー走査順序は設計環境において開発者によって生成され得る。すなわち、開発者は、並列フレンドリー走査順序をビデオエンコーダ20またはビデオデコーダ30などのコーディングデバイスに記憶するより前に、走査順序を生成し得る。その場合、ビデオコーダは、コーディング中に特定の方向を有する走査を選択する能力を有し得る。たとえば、ビデオコーダは、コーディング中に使用される予測モードまたは変換など、コーディングメトリックに基づいて、特定の方向を有する並列フレンドリー走査を選択し得る。
[0207]たとえば、ビデオエンコーダ20が垂直イントラ予測モードを使用してCUを予測することを考えられたい。予測、変換、および量子化の後に、CU中に含まれているTUに関連する非ゼロ量子化変換係数は水平方向に沿って(たとえば、2次元行列の相対的上部に沿って)存在する傾向があり得る。したがって、2次元行列中の非ゼロ係数が、得られた1次元ベクトルの始端のほうへさらに圧縮され得るように、水平方向に変換係数を走査することが有益であり得る。この例では、ビデオエンコーダ20は、図12Bに示す走査順序を選択し得る。
[0208]図11A〜図13Bは単に例として与えられている。様々な他のコンテキストサポート近傍と、優先度メトリックと、並列スレッドの所望の数とを使用して他の並列フレンドリー走査順序が生成され得ることを理解されたい。
[0209]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0210]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
[0211]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[0212]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0213]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
[0213]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] 量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を備える、ビデオデータをコーディングするための方法。
[C2] 前記量子化変換係数は第1の量子化変換係数であり、
前記方法は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算することをさらに備える、
C1に記載の方法。
[C3] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、C1に記載の方法。
[C4] 前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングすることをさらに備える、C3に記載の方法。
[C5] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C1に記載の方法。
[C6] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C1に記載の方法。
[C7] 前記有効性情報をコーディングすることは、前記有効性情報を符号化することを備える、C1に記載の方法。
[C8] 前記有効性情報をコーディングすることは、前記有効性情報を復号することを備える、C1に記載の方法。
[C9] 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、C1に記載の方法。
[C10] 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、C1に記載の方法。
[C11] 量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングするように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
[C12] 前記量子化変換係数が第1の量子化変換係数であり、
前記1つまたは複数のプロセッサは、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算するようにさらに構成された、C11に記載の装置。
[C13] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、C11に記載の装置。
[C14] 前記1つまたは複数のプロセッサは、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングするようにさらに構成された、C13に記載の装置。
[C15] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C11に記載の装置。
[C16] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C11に記載の装置。
[C17] 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、C11に記載の装置。
[C18] 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、C11に記載の装置。
[C19] 前記装置はビデオデコーダを備える、C11に記載の装置。
[C20] 前記装置はビデオエンコーダを備える、C11に記載の装置。
[C21] 前記装置はモバイルデバイスを備える、C11に記載の装置。
[C22] 量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングする手段と、
を備える、ビデオデータをコーディングするための装置。
[C23] 前記量子化変換係数は第1の量子化変換係数であり、
前記装置は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算する手段をさらに備える、C22に記載の装置。
[C24] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、C22に記載の装置。
[C25] 前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングする手段をさらに備える、C24に記載の装置。
[C26] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C22に記載の装置。
[C27] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C22に記載の装置。
[C28] 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、C22に記載の装置。
[C29] 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、C22に記載の装置。
[C30] 実行されたとき、1つまたは複数のプロセッサに、
量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
[C31] 前記量子化変換係数は第1の量子化変換係数であり、
前記命令は、1つまたは複数のプロセッサに、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算させる、C30に記載のコンピュータプログラム製品。
[C32] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、C30に記載のコンピュータプログラム製品。
[C33] 前記命令は、1つまたは複数のプロセッサに、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して前記変換係数に関連する前記有効性情報をコーディングさせる、C32に記載のコンピュータプログラム製品。
[C34] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に配向した走査経路からのコンテキストサポート要素を除外することを備える、C30に記載のコンピュータプログラム製品。
[C35] 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、C30に記載のコンピュータプログラム製品。
[C36] 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、C30に記載のコンピュータプログラム製品。
[C37] 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、C30に記載のコンピュータプログラム製品。
[C38] 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、
前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、
前記有効性情報を走査するための並列スレッドの数を決定することと、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成することと、
を備える、ビデオデータをコーディングするための方法。
[C39] 前記優先度メトリックは1次優先度メトリックであり、
前記方法は、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定することと、
前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成すること、をさらに備えるC38に記載の方法。
[C40] 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、C38に記載の方法。
[C41] 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、C38に記載の方法。
[C42] 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、C38に記載の方法。
[C43] ビデオデータをコーディングすることは、ビデオデータを符号化することを備える、C38に記載の方法。
[C44] ビデオデータをコーディングすることは、ビデオデータを復号することを備える、C38に記載の方法。
[C45] 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、
前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、
前記有効性情報を走査するための並列スレッドの数を決定し、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
[C46] 前記優先度メトリックは1次優先度メトリックであり、
前記1つまたは複数のプロセッサは、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、
前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するようにさらに構成された、C45に記載の装置。
[C47] 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、C45に記載の装置。
[C48] 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、C45に記載の装置。
[C49] 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、C45に記載の装置。
[C50] 前記装置はビデオエンコーダを備える、C45に記載の装置。
[C51] 前記装置はビデオデコーダを備える、C45に記載の装置。
[C52] 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、
前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定する手段と、
前記有効性情報を走査するための並列スレッドの数を決定する手段と、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段と、
を備える、ビデオデータをコーディングするための装置。
[C53] 前記優先度メトリックは1次優先度メトリックであり、
前記装置は、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、
前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段をさらに備える、C52に記載の装置。
[C54] 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、C52に記載の装置。
[C55] 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、C52に記載の装置。
[C56] 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、C52に記載の装置。
[C57] 実行されたとき、1つまたは複数のプロセッサに、
変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、
前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定させ、
前記有効性情報を走査するための並列スレッドの数を決定させ、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
[C58] 前記優先度メトリックは1次優先度メトリックであり、
前記命令は、1つまたは複数のプロセッサに、さらに、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定させ、
前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる、C57に記載の装置。
[C59] 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、C57に記載の装置。
[C60] 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、C57に記載の装置。
[C61] 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、C57に記載の装置。


Claims (61)

  1. 量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
    前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
    修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
    を備える、ビデオデータをコーディングするための方法。
  2. 前記量子化変換係数は第1の量子化変換係数であり、
    前記方法は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算することをさらに備える、
    請求項1に記載の方法。
  3. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項1に記載の方法。
  4. 前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングすることをさらに備える、請求項3に記載の方法。
  5. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項1に記載の方法。
  6. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項1に記載の方法。
  7. 前記有効性情報をコーディングすることは、前記有効性情報を符号化することを備える、請求項1に記載の方法。
  8. 前記有効性情報をコーディングすることは、前記有効性情報を復号することを備える、請求項1に記載の方法。
  9. 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項1に記載の方法。
  10. 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項1に記載の方法。
  11. 量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、
    前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、
    修正コンテキストサポート近傍を使用して前記有効性情報をコーディングするように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
  12. 前記量子化変換係数が第1の量子化変換係数であり、
    前記1つまたは複数のプロセッサは、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算するようにさらに構成された、請求項11に記載の装置。
  13. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項11に記載の装置。
  14. 前記1つまたは複数のプロセッサは、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングするようにさらに構成された、請求項13に記載の装置。
  15. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項11に記載の装置。
  16. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項11に記載の装置。
  17. 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項11に記載の装置。
  18. 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項11に記載の装置。
  19. 前記装置はビデオデコーダを備える、請求項11に記載の装置。
  20. 前記装置はビデオエンコーダを備える、請求項11に記載の装置。
  21. 前記装置はモバイルデバイスを備える、請求項11に記載の装置。
  22. 量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、
    前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
    修正コンテキストサポート近傍を使用して前記有効性情報をコーディングする手段と、
    を備える、ビデオデータをコーディングするための装置。
  23. 前記量子化変換係数は第1の量子化変換係数であり、
    前記装置は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算する手段をさらに備える、請求項22に記載の装置。
  24. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項22に記載の装置。
  25. 前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングする手段をさらに備える、請求項24に記載の装置。
  26. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項22に記載の装置。
  27. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項22に記載の装置。
  28. 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項22に記載の装置。
  29. 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項22に記載の装置。
  30. 実行されたとき、1つまたは複数のプロセッサに、
    量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
    前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、
    修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
    を行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
  31. 前記量子化変換係数は第1の量子化変換係数であり、
    前記命令は、1つまたは複数のプロセッサに、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算させる、請求項30に記載のコンピュータプログラム製品。
  32. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。
  33. 前記命令は、1つまたは複数のプロセッサに、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して前記変換係数に関連する前記有効性情報をコーディングさせる、請求項32に記載のコンピュータプログラム製品。
  34. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に配向した走査経路からのコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。
  35. 前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。
  36. 前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項30に記載のコンピュータプログラム製品。
  37. 前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項30に記載のコンピュータプログラム製品。
  38. 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、
    前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、
    前記有効性情報を走査するための並列スレッドの数を決定することと、
    前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成することと、
    を備える、ビデオデータをコーディングするための方法。
  39. 前記優先度メトリックは1次優先度メトリックであり、
    前記方法は、
    前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定することと、
    前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成すること、をさらに備える請求項38に記載の方法。
  40. 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項38に記載の方法。
  41. 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項38に記載の方法。
  42. 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項38に記載の方法。
  43. ビデオデータをコーディングすることは、ビデオデータを符号化することを備える、請求項38に記載の方法。
  44. ビデオデータをコーディングすることは、ビデオデータを復号することを備える、請求項38に記載の方法。
  45. 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、
    前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、
    前記有効性情報を走査するための並列スレッドの数を決定し、
    前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
  46. 前記優先度メトリックは1次優先度メトリックであり、
    前記1つまたは複数のプロセッサは、
    前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、
    前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するようにさらに構成された、請求項45に記載の装置。
  47. 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項45に記載の装置。
  48. 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項45に記載の装置。
  49. 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項45に記載の装置。
  50. 前記装置はビデオエンコーダを備える、請求項45に記載の装置。
  51. 前記装置はビデオデコーダを備える、請求項45に記載の装置。
  52. 変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、
    前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定する手段と、
    前記有効性情報を走査するための並列スレッドの数を決定する手段と、
    前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段と、
    を備える、ビデオデータをコーディングするための装置。
  53. 前記優先度メトリックは1次優先度メトリックであり、
    前記装置は、
    前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、
    前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段をさらに備える、請求項52に記載の装置。
  54. 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項52に記載の装置。
  55. 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項52に記載の装置。
  56. 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項52に記載の装置。
  57. 実行されたとき、1つまたは複数のプロセッサに、
    変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、
    前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定させ、
    前記有効性情報を走査するための並列スレッドの数を決定させ、
    前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
  58. 前記優先度メトリックは1次優先度メトリックであり、
    前記命令は、1つまたは複数のプロセッサに、さらに、
    前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定させ、
    前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる、請求項57に記載の装置。
  59. 前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項57に記載の装置。
  60. 前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項57に記載の装置。
  61. 前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項57に記載の装置。
JP2015236746A 2010-11-16 2015-12-03 ビデオコーディングにおける並列コンテキスト計算 Pending JP2016076963A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US41424510P 2010-11-16 2010-11-16
US61/414,245 2010-11-16
US201061426440P 2010-12-22 2010-12-22
US61/426,440 2010-12-22
US13/294,869 2011-11-11
US13/294,869 US9497472B2 (en) 2010-11-16 2011-11-11 Parallel context calculation in video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013539929A Division JP5886308B2 (ja) 2010-11-16 2011-11-14 ビデオコーディングにおける並列コンテキスト計算

Publications (1)

Publication Number Publication Date
JP2016076963A true JP2016076963A (ja) 2016-05-12

Family

ID=46047741

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013539929A Expired - Fee Related JP5886308B2 (ja) 2010-11-16 2011-11-14 ビデオコーディングにおける並列コンテキスト計算
JP2015236746A Pending JP2016076963A (ja) 2010-11-16 2015-12-03 ビデオコーディングにおける並列コンテキスト計算

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013539929A Expired - Fee Related JP5886308B2 (ja) 2010-11-16 2011-11-14 ビデオコーディングにおける並列コンテキスト計算

Country Status (6)

Country Link
US (1) US9497472B2 (ja)
EP (1) EP2641398A1 (ja)
JP (2) JP5886308B2 (ja)
KR (1) KR101625723B1 (ja)
CN (1) CN103250413B (ja)
WO (1) WO2012068021A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012081895A1 (ko) 2010-12-13 2012-06-21 한국전자통신연구원 인트라 예측 방법 및 그 장치
KR102086145B1 (ko) 2010-12-13 2020-03-09 한국전자통신연구원 인트라 예측 방법 및 그 장치
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US10142637B2 (en) * 2011-03-08 2018-11-27 Texas Instruments Incorporated Method and apparatus for parallelizing context selection in video processing
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
CN104041049B (zh) * 2012-01-13 2018-11-30 寰发股份有限公司 处理变换单元的方法及其装置
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9743116B2 (en) * 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
CA2868088A1 (en) * 2012-01-20 2013-07-25 Samsung Electronics Co., Ltd. Video encoding method and apparatus and video decoding method and apparatus using unified syntax for parallel processing
CN107302368B (zh) 2012-01-20 2020-07-28 Ge视频压缩有限责任公司 从数据流解码具有变换系数级别的多个变换系数的装置
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
CA2869637C (en) * 2012-04-13 2017-05-02 JVC Kenwood Corporation Picture decoding device, picture decoding method, and picture decoding program
WO2014053517A1 (en) * 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using derivation of subblock subdivision for prediction from base layer
US20140098868A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated File format for video data
CN103607588B (zh) * 2013-09-03 2016-11-02 电子科技大学 一种基于模板的残差变换系数重要图编码方法
WO2015085449A1 (en) * 2013-12-13 2015-06-18 Qualcomm Incorporated Signaling of simplified depth coding (sdc) for depth intra-and inter – prediction modes in 3d video coding
CN103747250B (zh) * 2013-12-28 2016-08-17 华中科技大学 一种H.264/AVC中4x4子宏块的并行帧内预测方法
US9936201B2 (en) 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
US9998739B2 (en) * 2015-03-06 2018-06-12 Qualcomm Incorporated Optimization for encoding video data using non-square partitions
US10574993B2 (en) * 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US10264257B2 (en) * 2015-06-30 2019-04-16 Texas Instruments Incorporated Video encoding
US10123045B2 (en) * 2015-07-24 2018-11-06 Qualcomm Incorporated Modification to block size for transform mode in display stream compression
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
CA2986600A1 (en) * 2016-11-24 2018-05-24 Ecole De Technologie Superieure Method and system for parallel rate-constrained motion estimation in video coding
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
JP2018182444A (ja) * 2017-04-07 2018-11-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
KR102381373B1 (ko) * 2017-08-16 2022-03-31 삼성전자주식회사 비정형적 분할을 이용한 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US10869060B2 (en) * 2018-01-30 2020-12-15 Google Llc Efficient context model computation design in transform coefficient coding
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US11412250B2 (en) * 2020-03-26 2022-08-09 Alibaba Group Holding Limited Method and apparatus for deriving temporal motion
CN112308805B (zh) * 2020-11-26 2022-03-08 北京的卢深视科技有限公司 深度图连通域检测去噪方法、电子设备及存储介质

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680975B1 (en) * 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
KR100403077B1 (ko) 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치 및 그 방법
US6054943A (en) 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
JP2000013609A (ja) 1998-06-23 2000-01-14 Fujitsu Ltd 符号化装置
US6658159B1 (en) 2000-03-17 2003-12-02 Hewlett-Packard Development Company, L.P. Block entropy coding in embedded block coding with optimized truncation image compression
KR20030005222A (ko) 2001-01-10 2003-01-17 코닌클리케 필립스 일렉트로닉스 엔.브이. 코딩
US6870963B2 (en) 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
CN1230000C (zh) * 2003-11-04 2005-11-30 浙江大学 视频编解码中变换系数块的扫描方法和装置
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US20060078049A1 (en) * 2004-10-13 2006-04-13 Nokia Corporation Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
US20060256854A1 (en) 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
CN100488254C (zh) * 2005-11-30 2009-05-13 联合信源数字音视频技术(北京)有限公司 一种基于上下文的熵编码方法及解码方法
JP4876122B2 (ja) * 2006-03-22 2012-02-15 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 精度スケーラビリティを可能にする符号化スキーム
BRPI0714127A2 (pt) * 2006-07-13 2012-12-25 Qualcomm Inc codificaÇço de vÍdeo com escalabilidade de granularidade fina utilizando fragmentos alinhados por ciclo.
KR100882949B1 (ko) 2006-08-17 2009-02-10 한국전자통신연구원 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8428133B2 (en) * 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
WO2009001793A1 (ja) * 2007-06-26 2008-12-31 Kabushiki Kaisha Toshiba 画像符号化と画像復号化の方法及び装置
CN100562114C (zh) * 2007-08-30 2009-11-18 上海交通大学 视频解码方法与解码装置
CN101933331B (zh) * 2007-09-06 2014-04-09 日本电气株式会社 视频编码装置、视频编码方法、视频解码方法
KR20090097689A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
JP2010004284A (ja) 2008-06-19 2010-01-07 Toshiba Corp 画像復号装置及び画像復号方法
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US8737613B2 (en) * 2008-11-20 2014-05-27 Mediatek Inc. Scanning methods of transform-based digital data processing that conditionally adjust scan order according to characteristics information and related apparatus thereof
KR101196792B1 (ko) * 2008-12-03 2012-11-05 노키아 코포레이션 Dct 계수 부호화 모드들 간의 전환
WO2010143853A2 (ko) * 2009-06-07 2010-12-16 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
RS56512B1 (sr) * 2010-04-13 2018-02-28 Ge Video Compression Llc Kodiranje mapa značaja i blokova koeficijenata transformacije
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
US9661338B2 (en) * 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US8902988B2 (en) * 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US20120163472A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
US20130182772A1 (en) 2012-01-13 2013-07-18 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
US9538175B2 (en) 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VIVIENNE SZE, MADHUKAR BUDAGAVI: "Parallelization of HHI_TRANSFORM_CODING", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 3RD M, vol. [JCTVC-C227], JPN6014027478, 5 October 2010 (2010-10-05), pages 1 - 11 *

Also Published As

Publication number Publication date
KR101625723B1 (ko) 2016-05-30
WO2012068021A1 (en) 2012-05-24
JP5886308B2 (ja) 2016-03-16
CN103250413A (zh) 2013-08-14
EP2641398A1 (en) 2013-09-25
US9497472B2 (en) 2016-11-15
CN103250413B (zh) 2016-11-16
US20120121011A1 (en) 2012-05-17
JP2014501084A (ja) 2014-01-16
KR20130086375A (ko) 2013-08-01

Similar Documents

Publication Publication Date Title
JP5886308B2 (ja) ビデオコーディングにおける並列コンテキスト計算
JP6599489B2 (ja) ビデオコーディングのための変換係数のコーディング
JP6542400B2 (ja) 係数走査のための係数グループおよび係数コーディング
JP5628438B2 (ja) ビデオコーディングのための変換係数の適応走査
JP6165798B2 (ja) イントラ予測を使用したビデオ符号化
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
JP5731013B2 (ja) Cabacを使用したビデオコーディングのためのイントラ予測モード選択の指示
JP5788517B2 (ja) ジョイントコンテキストモデルを使用した係数のエントロピーコード化
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP5823623B2 (ja) ビデオコーディングのための動きベクトル予測子候補クリッピング削除
JP5922244B2 (ja) ビデオコーディングにおいて適応ループフィルタとマージされたサンプル適応オフセット
JP5932050B2 (ja) ビデオコーディングにおけるクロマ成分のための変換ユニットパーティショニング
JP2018530246A (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
JP2018537908A (ja) ビデオデータの符号情報をコーディングすること
JP2016189598A (ja) ビデオコード化における係数の走査
JP2016006983A (ja) 変換係数の関数ベース走査順序を使用するビデオ符号化
JP5937205B2 (ja) ビデオコーディングのためのランモードベース係数コーディング
JP2013543317A5 (ja)
JP6042526B2 (ja) ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出
JP2014521256A (ja) リーフレベルコード化単位のサブセットについての変換係数のシンタックス要素の信号伝達

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170711