"量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、を備える、ビデオデータをコーディングするための方法。前記量子化変換係数は第1の量子化変換係数であり、前記方法は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算することをさらに備える、請求項1に記載の方法。前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項1に記載の方法。前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングすることをさらに備える、請求項3に記載の方法。前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項1に記載の方法。前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項1に記載の方法。前記有効性情報をコーディングすることは、前記有効性情報を符号化することを備える、請求項1に記載の方法。前記有効性情報をコーディングすることは、前記有効性情報を復号することを備える、請求項1に記載の方法。前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項1に記載の方法。前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項1に記載の方法。量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、ここで、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して前記有効性情報をコーディングするように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。前記量子化変換係数が第1の量子化変換係数であり、前記1つまたは複数のプロセッサは、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算するようにさらに構成された、請求項11に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項11に記載の装置。前記1つまたは複数のプロセッサは、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングするようにさらに構成された、請求項13に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項11に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項11に記載の装置。前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項11に記載の装置。前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項11に記載の装置。前記装置はビデオデコーダを備える、請求項11に記載の装置。前記装置はビデオエンコーダを備える、請求項11に記載の装置。前記装置はモバイルデバイスを備える、請求項11に記載の装置。量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、修正コンテキストサポート近傍を使用して前記有効性情報をコーディングする手段と、を備える、ビデオデータをコーディングするための装置。前記量子化変換係数は第1の量子化変換係数であり、前記装置は、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算する手段をさらに備える、請求項22に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項22に記載の装置。前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングする手段をさらに備える、請求項24に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項22に記載の装置。前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項22に記載の装置。前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項22に記載の装置。前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項22に記載の装置。実行されたとき、1つまたは複数のプロセッサに、量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで前記コンテキストサポート近傍は、前記走査経路中にある1つまたは複数のコンテキストサポート要素を除外する、修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、を行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。前記量子化変換係数は第1の量子化変換係数であり、前記命令は、1つまたは複数のプロセッサに、前記走査経路中にある第2の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第1の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算させる、請求項30に記載のコンピュータプログラム製品。前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。前記命令は、1つまたは複数のプロセッサに、前記変換係数に隣接し、前記変換係数の上にある第1の位置と、前記第1の位置に隣接し、前記第1の位置の上にある第2の位置と、前記変換係数に隣接し、前記変換係数の左にある第3の位置と、前記第3の位置に隣接し、前記第3の位置の左にある第4の位置と、前記第3の位置に隣接し、前記第3の位置の上にあり、前記第1の位置に隣接し、前記第1の位置の左にある第5の位置とを備えるコンテキストサポート近傍を使用して前記変換係数に関連する前記有効性情報をコーディングさせる、請求項32に記載のコンピュータプログラム製品。前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に配向した走査経路からのコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、請求項30に記載のコンピュータプログラム製品。前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、請求項30に記載のコンピュータプログラム製品。前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項30に記載のコンピュータプログラム製品。変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、前記有効性情報を走査するための並列スレッドの数を決定することと、前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成することと、を備える、ビデオデータをコーディングするための方法。前記優先度メトリックは1次優先度メトリックであり、前記方法は、前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定することと、前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成すること、をさらに備える請求項38に記載の方法。前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項38に記載の方法。前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項38に記載の方法。前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項38に記載の方法。ビデオデータをコーディングすることは、ビデオデータを符号化することを備える、請求項38に記載の方法。ビデオデータをコーディングすることは、ビデオデータを復号することを備える、請求項38に記載の方法。変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、前記有効性情報を走査するための並列スレッドの数を決定し、前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するように構成された1つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。前記優先度メトリックは1次優先度メトリックであり、前記1つまたは複数のプロセッサは、前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するようにさらに構成された、請求項45に記載の装置。前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項45に記載の装置。前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項45に記載の装置。前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項45に記載の装置。前記装置はビデオエンコーダを備える、請求項45に記載の装置。前記装置はビデオデコーダを備える、請求項45に記載の装置。変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定する手段と、前記有効性情報を走査するための並列スレッドの数を決定する手段と、前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段と、を備える、ビデオデータをコーディングするための装置。前記優先度メトリックは1次優先度メトリックであり、前記装置は、前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定し、前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段をさらに備える、請求項52に記載の装置。前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項52に記載の装置。前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項52に記載の装置。前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項52に記載の装置。実行されたとき、1つまたは複数のプロセッサに、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定させ、前記有効性情報を走査するための並列スレッドの数を決定させ、前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。前記優先度メトリックは1次優先度メトリックであり、前記命令は、1つまたは複数のプロセッサに、さらに、前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された2次優先度メトリックを決定させ、前記コンテキスト近傍、前記1次優先度メトリック、前記2次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる、請求項57に記載の装置。前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、請求項57に記載の装置。前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、請求項57に記載の装置。前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、請求項57に記載の装置。0037概して、本開示では、ビデオデータをコーディングするための技法について説明する。より詳細には、本開示では、変換された残差ビデオデータに関連する変換係数を走査するための走査順序を生成することに関する技法について説明する。符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダは、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロックのピクセル値を、前にコーディングされたピクチャのピクセル値に対して予測することを伴う。0038イントラ予測またはインター予測の後に、ビデオエンコーダはブロックの残差ピクセル値を計算し得る。残差値は、概して、予測ピクセル値データと、コーディングされているブロック、すなわち、コード化ブロックの実際のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの1つまたは複数のブロックに関連し得る。ブロックの残差値をさらに圧縮するために、残差値は、変換係数のセットに変換され得る。その変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の2次元行列に対応する。言い換えれば、元のピクセル領域ブロック中のピクセルとちょうど同数の変換係数が変換領域ブロック中にあり得る。0039ビデオエンコーダは、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を0に低減し得る。量子化の後に、ビデオエンコーダは、量子化変換係数を走査して、量子化変換係数の2次元行列から1次元ベクトルを生成し得る。0040ビデオエンコーダは、次いで、データをなお一層圧縮するために、得られたアレイをエントロピー符号化し得る。いくつかの例では、ビデオエンコーダは、たとえば、コンテキスト適応型可変長コーディングCAVLC:contextadaptivevariablelengthcodingを使用して、アレイの様々な可能な量子化変換係数を表すために可変長コードVLC:variablelengthcodeを使用するように構成され得る。他の例では、ビデオエンコーダは、たとえば、コンテキスト適応型バイナリ算術コーディングCABAC:contextadaptivebinaryarithmeticcodingを使用して、得られた量子化係数を符号化するためにバイナリ算術コーディングを使用するように構成され得る。さらに他の例では、ビデオエンコーダは、ProbabilityIntervalPartitioningEntropyCodesPIPEを使用して量子化変換係数を符号化するように構成され得る。0041CABAC、PIPEなどのコンテキスト適応型コーディング、または他のコンテキスト適応型コーディング方式は、一般に、ビデオデータのブロックに関連するシンボルを符号化するためにコンテキストに作用するコンテキストモデルを選択することを伴う。コンテキストは、たとえば、現在コーディングされているシンボルに隣接するシンボルについて値がゼロであるのか非ゼロであるのかに関係し得る。コンテキストモデルは特定の確率モデルに関連し得る。0042H.264/AVCおよび新生の高効率ビデオコーディングHEVC:HighEfficiencyVideoCoding規格では、エントロピーコーディングは、ブロック中の有効変換係数すなわち、非ゼロ変換係数の位置を識別することを含み得る。いくつかの例では、有効変換係数の相対位置は、それらの係数のレベルたとえば、値より前に符号化され得る。有効係数のロケーションをコーディングするプロセスは、有効マップコーディングと呼ばれることがある。有効マップSM:significancemapは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-TH.265と呼ばれることもあるが、そのような名称は公式になされたものでない。この規格化の取り組みは、HEVCテストモデルHM:HEVCTestModelと呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU-TH.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは35個ものイントラ予測符号化モードを提供する。0047HMでは、ビデオデータのブロックをコーディングユニットCU:codingunitと呼ぶ。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニットLCU:largestcodingunitを定義し得る。概して、CUは、CUがサイズ差異を有しないことを除いて、H.264に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニットSCU:smallestcodingunitをも定義し得る。0048LCUは4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。0049分割されないCUは、1つまたは複数の予測ユニットPU:predictionunitを含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度たとえば、1/4ピクセル精度もしくは1/8ピクセル精度、動きベクトルが指す参照フレーム、および/または動きベクトルの参照リストたとえば、リスト0もしくはリスト1を記述し得る。1つまたは複数のPUを定義するCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。00501つまたは複数のPUを有するCUはまた、1つまたは複数の変換ユニットTU:transformunitを含み得る。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.phpid=1131において公的に入手可能なJCTVC-C062、TE8TIParallelContextProcessingProposal、3rdJCT-VCMeeting、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コンテキストサポート近傍は、上述のように、特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストを識別し得る。すなわち、有効性情報をエントロピーコーディングするとき、コンテキストサポート近傍は、現在コーディングされている有効フラグに対するコンテキスト要素の相対位置を識別し得る。いくつかの事例では、コンテキストサポート近傍は固定であり得る。00681次優先度メトリックは、生成された走査順序の方向に影響を及ぼすように設計され得る。たとえば、走査順序方向は、有効性情報が走査される一般的な順序を示し得る。すなわち、走査順序が垂直方向である場合、ビデオデータのブロックの相対的左にある変換係数に関連する有効性情報は、ブロックの相対的右にある変換係数に関連する有効性情報よりも好まれ得るたとえば、ブロックの相対的右にある変換係数に関連する有効性情報よりも前に走査され得る。たとえば、量子化変換係数の最左列に関連する有効性情報は、量子化変換係数の最右列に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が水平方向の場合、ビデオデータのブロックの相対的上部にある変換係数に関連する有効性情報は、ブロックの相対的下部にある変換係数に関連する有効性情報よりも好まれ得るたとえば、ブロックの相対的下部にある変換係数に関連する有効性情報よりも前に走査され得る。たとえば、量子化変換係数の最上行に関連する有効性情報は、量子化変換係数の最下行に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が対角線方向の場合、ビデオデータのブロックの相対的左上部分にある変換係数に関連する有効性情報は、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも好まれるたとえば、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも前に走査され得る。0069本開示のいくつかの態様によれば、1次優先度メトリックは、生成された走査順序の方向に影響を及ぼし得る、走査順序生成プロセス中に適用される関数を含み得る。すなわち、一例では、1次優先度メトリックは、変換係数の列に沿った有効性情報よりも変換係数の行に沿った有効性情報を走査することを好むfavor関数であり得る。2次優先度メトリックは、発生された走査の方向にさらに影響を及ぼし得る、走査順序生成プロセス中に同じく適用される別の関数を含み得る。いくつかの例では、2次優先度メトリックはタイブレーカーtiebreakerとして適用され得る。すなわち、2つの有効フラグがたとえば、1次優先度メトリックにより等しい優先度を有することを1次優先度メトリックが示す場合、2次優先度メトリックは、そのようなタイを解決するために適用され得る。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.phpid=1330において公的に入手可能であり、その全体が参照により組み込まれる、JCTVC-C227、ParallelizationofHHITransformCoding、3rdJCT-VCMeeting、Guangzhou、CN、2010年10月と、http://phenix.int-evry.fr/jct/doc_end_user/current_document.phpid=1131において公的に入手可能であり、その全体が参照により組み込まれる、JCTVC-C062、TE8TIParallelContextProcessingProposal、3rdJCT-VCMeeting、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:groupofpictures、スライス、フレームなどの特性および/または処理を記述するシンタックス要素を含む。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、AdvancedVideoCodingAVCと呼ばれるITU-TH.264規格など、ビデオ圧縮規格に従って動作し得る。別の例として、ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディングHEVC規格に従って動作し得、HEVCテストモデルHMに準拠し得る。ただし、本開示の技法は、特定のコーディング規格に限定されず、現在利用可能であるかまたは将来出現し得るHEVCまたは他の規格またはプロプライエタリproprietaryコーディングプロセスに適用され得る。他の例にはMPEG-2およびITU-TH.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX-DEMUXユニットは、ITUH.223マルチプレクサプロトコル、またはユーザデータグラムプロトコルUDPなどの他のプロトコルに準拠し得る。0088ITU-TH.264/MPEG-4AVC規格は、JointVideoTeamJVTとして知られる共同パートナーシップの成果として、ISO/IECMovingPictureExpertsGroupMPEGとともにITU-TVideoCodingExpertsGroupVCEGによって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU-TStudyGroupによる2005年3月付けのITU-T勧告H.264AdvancedVideoCodingforgenericaudiovisualservicesに記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。JointVideoTeamJVTはH.264/MPEG-4AVCへの拡張に取り組み続けている。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とNbyNは、垂直寸法と水平寸法とに関するブロックたとえば、CU、PU、またはTUのピクセル寸法、たとえば、16×16ピクセルまたは16by16ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有しy=16、水平方向に16ピクセルを有するx=16。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、正の整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。0092CUの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が分割されるかどうかを示す分割フラグ値を含み得る。0095LCUが分割される場合、たとえば、ビデオエンコーダ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に適用するように構成され得る。0098TUのための残差データを変換することによって、ビデオエンコーダ20は変換係数の行列を生成する。この行列は、概して、変換への入力ブロックと同じサイズを有する。概して、変換プロセスは、データをさらに圧縮する量子化のために残差データを準備する。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、それらの係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。0099いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るベクトルを生成するために、あらかじめ定義された走査順序を利用して量子化変換係数たとえば、有効性、レベル、符号、最後有効係数などを走査し得る。たとえば、ビデオエンコーダ20は、対角線ジグザグ、または右上から左下、または左下から右上パターン、水平方向パターン、または垂直方向パターンを適用して量子化変換係数を走査し得る。0100本開示のいくつかの態様によれば、あらかじめ定義された走査順序を適用するのではなく、ビデオエンコーダ20は、並列フレンドリー走査順序を生成し得るか、またはいくつかの並列フレンドリー走査順序がプリプログラムされ得る。たとえば、ビデオエンコーダ20は、いくつかの変数を使用して有効フラグコンテキストの並列計算を可能にするための走査順序を発生し得る。いくつかの例では、図9~図10Bに関してより詳細に説明するように、ビデオエンコーダ20は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす1次優先度メトリックと、走査順序の方向にさらに影響を及ぼす2次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。0101別の例では、ビデオエンコーダ20は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの1つを適用し得る。すなわち、ビデオエンコーダ20は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。ビデオエンコーダ20は、たとえば、別のコーディングメトリックたとえば、予測モード、変換などに基づいて、特定の並列フレンドリー走査順序を選択し得る。01021次元ベクトルを形成するための変換行列の走査後におよび/またはその走査中に、ビデオエンコーダ20は、たとえば、CAVLC、CABAC、PIPE、シンタックスベースコンテキスト適応型バイナリ算術コーディングSBAC:syntaxbasedcontextadaptivebinaryarithmeticcoding、または別のエントロピーコーディング方法に従って、1次元ベクトルをエントロピー符号化し得る。0103CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。0104CABACを実行するために、ビデオエンコーダ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:sumofabsolutedifference、2乗差分和SSD:sumofsquaredifference、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされている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、ParallelizationofHHITransformCoding、3rdJCT-VCMeeting、Guangzhou、CN、2010年10月、および/またはJCTVC-C062、TE8TIParallelContextProcessingProposal、3rdJCT-VCMeeting、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、ParallelizationofHHITransformCoding、3rdJCT-VCMeeting、Guangzhou、CN、2010年10月、および/またはJCTVC-C062、TE8TIParallelContextProcessingProposal、3rdJCT-VCMeeting、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によって復号された、量子化変換係数を逆量子化inversequantize、すなわち、逆量子化dequantizeする。逆量子化プロセスは、たとえば、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他の変換のために他のあらかじめ定義された走査パターンも定義され得る。たとえば、各変換は、より低い値lowermagnitudeの係数よりも早く、その変換から生じるより高い値highermagnitudeの係数をアレイ中で配置するように設計された走査パターンに関連付けられ得る。上記変換のうちの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次優先度メトリックは、ijであり、それにより特定の位置についての行インデックス値と列インデックス値とを組み合わせ得る。別の例では、図12Aに関して説明するように、1次優先度メトリックは単にiであり得、または図13Aに関して説明するように、1次優先度メトリックは単にjであり得る。これらの1次優先度メトリックは単に例として与えられていることと、他の入力変数を使用する他の1次優先度メトリックが使用され得ることとを理解されたい。01951次優先度メトリックは、得られた並列フレンドリー走査順序の方向に影響を及ぼすために使用され得る。たとえば、iの1次優先度メトリックにより、ブロックの行における位置は候補リストの最上位のほうへソートされ得る。すなわち、低い行インデックスを有する候補が、より高い行インデックスを有する候補よりも高くソートされ得る。以下でより詳細に説明するように、リストの最上位における位置により、それらの位置は、候補リスト上のより下位の位置の前に走査され得る。0196いくつかの例では、候補リスト中のいくつかの位置がタイtiedにされ得る。すなわち、候補リスト中のいくつかの位置は、1次優先度メトリックを適用した後に同じ値を有し得る。一例では、ijの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に示すコンテキストサポート近傍と、ijの1次優先度メトリックと、jの2次優先度メトリックと、並列スレッドの所望の数たとえば、num_parallel2とを使用して生成された例示的な走査順序である。図12Bは、図12Aに示すコンテキストサポート近傍と、iの1次優先度メトリックと、ijの2次優先度メトリックと、並列スレッドの所望の数たとえば、num_parallel3とを使用して生成された例示的な走査順序である。図13Bは、図13Aに示すコンテキストサポート近傍と、jの1次優先度メトリックと、ijの2次優先度メトリックと、並列スレッドの所望の数たとえば、num_parallel3とを使用して生成された例示的な走査順序である。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は単に例として与えられている。様々な他のコンテキストサポート近傍と、優先度メトリックと、並列スレッドの所望の数とを使用して他の並列フレンドリー走査順序が生成され得ることを理解されたい。02091つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。0210限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdiskおよびディスクdiscは、コンパクトディスクdiscCD、レーザディスクdisc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdisk、およびブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。0211命令は、1つまたは複数のデジタル信号プロセッサDSPなどの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用するプロセッサという用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。0212本開示の技法は、ワイヤレスハンドセット、集積回路IC、またはICのセットたとえば、チップセットを含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。0213様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。"