(57)【特許請求の範囲】
【請求項１】
ビデオコーディングデバイスが、変換係数のブロック中の量子化変換係数に関連する有効性情報を走査するための走査パターンを識別することと、前記走査パターンは、複数の走査経路を含み、前記複数の走査経路のそれぞれは前記ブロックを横切る単一の横断であり、
前記量子化変換係数を含む走査経路に基づき、前記ビデオコーディングデバイスが、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記走査経路は、前記複数の走査経路のうちの１つであり、前記走査経路中にある全てのコンテキストサポート要素は前記コンテキストサポート近傍から除外される、
前記ビデオコーディングデバイスが、前記コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を備える、ビデオデータをコーディングするための方法。
【請求項２】
前記量子化変換係数は第１の量子化変換係数であり、
前記方法は、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算することをさらに備える、
請求項１に記載の方法。
【請求項３】
前記コンテキストサポート近傍が対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記対角線方向に向いている、請求項１に記載の方法。
【請求項４】
前記コンテキストサポート近傍を決定することは、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを有するコンテキストサポート近傍を決定することを備える、請求項３に記載の方法。
【請求項５】
前記コンテキストサポート近傍が水平方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記水平方向に向いている、請求項１に記載の方法。
【請求項６】
前記コンテキストサポート近傍が垂直方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記垂直方向に向いている、請求項１に記載の方法。
【請求項７】
前記有効性情報をコーディングすることは、前記有効性情報を符号化することを備える、請求項１に記載の方法。
【請求項８】
前記有効性情報をコーディングすることは、前記有効性情報を復号することを備える、請求項１に記載の方法。
【請求項９】
前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項１に記載の方法。
【請求項１０】
１つまたは複数のプロセッサを備えるビデオデータをコーディングするための装置であって、
前記１つまたは複数のプロセッサは、
変換係数のブロック中の量子化変換係数に関連する有効性情報を走査するための走査パターンを識別し、前記走査パターンは、複数の走査経路を含み、前記複数の走査経路のそれぞれは前記ブロックを横切る単一の横断であり、
前記量子化変換係数を含む走査経路に基づき、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、ここで、前記走査経路は、前記複数の走査経路のうちの１つであり、前記走査経路中にある全てのコンテキストサポート要素は前記コンテキストサポート近傍から除外される、
前記コンテキストサポート近傍を使用して前記有効性情報をコーディングするように構成された、装置。
【請求項１１】
前記量子化変換係数は第１の量子化変換係数であり、
前記１つまたは複数のプロセッサは、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算するようにさらに構成された、請求項１０に記載の装置。
【請求項１２】
前記コンテキストサポート近傍が対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記対角線方向に向いている、請求項１０に記載の装置。
【請求項１３】
前記コンテキストサポート近傍を決定するために、前記１つまたは複数のプロセッサは、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを有するコンテキストサポート近傍を決定するように構成された、請求項１２に記載の装置。
【請求項１４】
前記コンテキストサポート近傍が水平方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記水平方向に向いている、請求項１０に記載の装置。
【請求項１５】
前記コンテキストサポート近傍が垂直方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記垂直方向に向いている、請求項１０に記載の装置。
【請求項１６】
前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項１０に記載の装置。
【請求項１７】
前記装置はビデオデコーダを備える、請求項１０に記載の装置。
【請求項１８】
前記装置はビデオエンコーダを備える、請求項１０に記載の装置。
【請求項１９】
前記装置はモバイルデバイスを備える、請求項１０に記載の装置。
【請求項２０】
ビデオデータをコーディングするための装置であって、
変換係数のブロック中の量子化変換係数に関連する有効性情報を走査するための走査パターンを識別する手段と、前記走査パターンは、複数の走査経路を含み、前記複数の走査経路のそれぞれは前記ブロックを横切る単一の横断であり、
前記量子化変換係数を含む走査経路に基づき、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、ここで、前記走査経路は、前記複数の走査経路のうちの１つであり、前記走査経路中にある全てのコンテキストサポート要素は前記コンテキストサポート近傍から除外される、
前記コンテキストサポート近傍を使用して前記有効性情報をコーディングする手段と、
を備える、ビデオデータをコーディングするための装置。
【請求項２１】
前記量子化変換係数は第１の量子化変換係数であり、
前記装置は、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算する手段をさらに備える、請求項２０に記載の装置。
【請求項２２】
前記コンテキストサポート近傍が対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記対角線方向に向いている、請求項２０に記載の装置。
【請求項２３】
前記コンテキストサポート近傍を決定する前記手段は、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを有するコンテキストサポート近傍を決定する手段を備える、請求項２２に記載の装置。
【請求項２４】
前記コンテキストサポート近傍が水平方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記水平方向に向いている、請求項２０に記載の装置。
【請求項２５】
前記コンテキストサポート近傍が垂直方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記垂直方向に向いている、請求項２０に記載の装置。
【請求項２６】
前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項２０に記載の装置。
【請求項２７】
実行されたとき、１つまたは複数のプロセッサに、
変換係数のブロック中の量子化変換係数に関連する有効性情報を走査するための走査パターンを識別することと、前記走査パターンは、複数の走査経路を含み、前記複数の走査経路のそれぞれは前記ブロックを横切る単一の横断であり、
前記量子化変換係数を含む走査経路に基づき、前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記走査経路は、前記複数の走査経路のうちの１つであり、前記走査経路中にある全てのコンテキストサポート要素は前記コンテキストサポート近傍から除外される、
前記コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を行わせる命令を記憶したコンピュータ可読媒体。
【請求項２８】
前記量子化変換係数は第１の量子化変換係数であり、
前記命令は、１つまたは複数のプロセッサに、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストをさらに計算させる、請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
前記コンテキストサポート近傍が対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記対角線方向に向いている、請求項２７に記載のコンピュータ可読媒体。
【請求項３０】
前記コンテキストサポート近傍を決定するために、前記命令は、１つまたは複数のプロセッサに、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを有するコンテキストサポート近傍を決定させる、請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記コンテキストサポート近傍が水平方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記水平方向に向いている、請求項２７に記載のコンピュータ可読媒体。
【請求項３２】
前記コンテキストサポート近傍が垂直方向に向いた走査経路からコンテキストサポート要素を除外するように、前記走査経路が変換係数の前記ブロックに対して前記垂直方向に向いている、請求項２７に記載のコンピュータ可読媒体。
【請求項３３】
前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、請求項２７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１０年１１月１６日に出願された米国仮出願第６１／４１４，２４５号、および２０１０年１２月２２日に出願された米国仮出願第６１／４２６，４４０号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、今度の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスが、一般にブロックと呼ばれることもあるコーディングユニットに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接参照ブロックに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【発明の概要】
【０００５】
[0005]概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示の技法は、ビデオデータをエントロピーコーディングすることに関する。たとえば、本開示の態様は、量子化変換係数をエントロピーコーディングするためのコンテキストサポート近傍を決定することに関する。一例では、本開示の技法は、特定の走査経路に沿って位置する１つまたは複数の変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍が、走査経路中に位置するコンテキストサポート要素を含まないことを保証することに関する。走査経路中にコンテキストサポート要素がない場合、走査経路中に位置する量子化変換係数のすべてに関連する有効性情報をコーディングするためのコンテキストが並列に計算され得る（たとえば、並列コンテキスト計算）。本開示の態様は、変換された残差ビデオデータに関連する有効性情報を走査するための走査順序を発生することにも関する。たとえば、本開示の態様は、複数の有効フラグのコンテキストが並列に計算されることを可能にする走査順序を発生し、それにより有効フラグコーディングのためのコンテキストプリフェッチングを可能にすることを含む。本開示のいくつかの態様によれば、そのような走査順序は、推論的（speculative）計算を使用した複数の有効フラグのコーディングをも可能にし得る。
【０００６】
[0006]一例では、ビデオデータをコーディングするための方法は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、コンテキストサポート近傍は、走査経路中にある１つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングすることと、を備える。
【０００７】
[0007]別の例では、ビデオデータをコーディングするための装置は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、コンテキストサポート近傍は、走査経路中にある１つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングするように構成された１つまたは複数のプロセッサを備える。
【０００８】
[0008]別の例では、ビデオデータをコーディングするための装置は、量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、コンテキストサポート近傍は、走査経路中にある１つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングする手段と、を備える。
【０００９】
[0009]別の例では、コンピュータプログラム製品は、実行されたとき、１つまたは複数のプロセッサに、量子化変換係数に関連する有効性情報を走査するための走査経路を識別させ、量子化変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定させ、コンテキストサポート近傍は、走査経路中にある１つまたは複数のコンテキストサポート要素を除外し、修正コンテキストサポート近傍を使用して有効性情報をコーディングさせる命令を記憶したコンピュータ可読媒体を備える。
【００１０】
[0010]別の例では、ビデオデータをコーディングする方法は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、有効性情報を走査するための並列スレッドの数を決定することと、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成することと、を含む。
【００１１】
[0011]別の例では、ビデオデータをコーディングするための装置は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、有効性情報を走査するための並列スレッドの数を決定し、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成するように構成された１つまたは複数のプロセッサを含む。
【００１２】
[0012]別の例では、ビデオデータをコーディングするための装置は、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定する手段と、有効性情報を走査するための並列スレッドの数を決定する手段と、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成する手段と、を含む。
【００１３】
[0013]別の例では、コンピュータプログラム製品は、実行されたとき、１つまたは複数のプロセッサに、変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定させ、有効性情報を走査するための並列スレッドの数を決定させ、コンテキスト近傍、優先度メトリック、および並列スレッドの数に基づいて、有効性情報を走査するための走査順序を生成させる命令を記憶したコンピュータ可読媒体を含む。
【００１４】
[0014]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示で説明する、有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオエンコーダの一例を示すブロック図。
【図３】本開示で説明する、有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオデコーダの一例を示すブロック図。
【図４】本開示の態様による、変換係数位置の例示的なジグザグ走査を示す概念図。
【図５Ａ】量子化変換係数を走査するためのジグザグ走査パターンを示す概念図。
【図５Ｂ】図５Ａの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。
【図５Ｃ】図５Ａの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る別の並列フレンドリーコンテキストサポート近傍の概念図。
【図６Ａ】量子化変換係数を走査するための水平走査パターンを示す概念図。
【図６Ｂ】図６Ａの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。
【図７Ａ】量子化変換係数を走査するための垂直走査パターンを示す概念図。
【図７Ｂ】図７Ａの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る並列フレンドリーコンテキストサポート近傍の概念図。
【図７Ｃ】図７Ａの走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る別の並列フレンドリーコンテキストサポート近傍の概念図。
【図８】本開示の態様による、特定の走査パターンについての並列フレンドリーコンテキストサポート近傍を判断する例示的な方法を示すフローチャート。
【図９】本開示の態様による、並列フレンドリー走査順序を生成する例示的な方法を示すフローチャート。
【図１０Ａ】並列フレンドリー走査順序を生成する例示的な方法を示すフローチャート。
【図１０Ｂ】図１０Ａに示す例示的な方法の続きの図。
【図１１Ａ】変換係数のブロックについての例示的なコンテキストサポート近傍を示す概念図。
【図１１Ｂ】図１０Ａおよび図１０Ｂに示す方法と図１１Ａに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。
【図１２Ａ】変換係数のブロックについての別の例示的なコンテキストサポート近傍を示す概念図。
【図１２Ｂ】図１０Ａおよび図１０Ｂに示す方法と図１２Ａに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。
【図１３Ａ】変換係数のブロックについての別の例示的なコンテキストサポート近傍を示す概念図。
【図１３Ｂ】図１０Ａおよび図１０Ｂに示す方法と図１３Ａに示すコンテキストサポート近傍とを使用して生成され得る例示的な走査順序の図。
【発明を実施するための形態】
【００１６】
[0037]概して、本開示では、ビデオデータをコーディングするための技法について説明する。より詳細には、本開示では、変換された残差ビデオデータに関連する変換係数を走査するための走査順序を生成することに関する技法について説明する。符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダは、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロックのピクセル値を、前にコーディングされたピクチャのピクセル値に対して予測することを伴う。
【００１７】
[0038]イントラ予測またはインター予測の後に、ビデオエンコーダはブロックの残差ピクセル値を計算し得る。残差値は、概して、予測ピクセル値データと、コーディングされているブロック、すなわち、コード化ブロックの実際のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの１つまたは複数のブロックに関連し得る。ブロックの残差値をさらに圧縮するために、残差値は、変換係数のセットに変換され得る。その変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の２次元行列に対応する。言い換えれば、元のピクセル領域ブロック中のピクセルとちょうど同数の変換係数が変換領域ブロック中にあり得る。
【００１８】
[0039]ビデオエンコーダは、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を０に低減し得る。量子化の後に、ビデオエンコーダは、量子化変換係数を走査して、量子化変換係数の２次元行列から１次元ベクトルを生成し得る。
【００１９】
[0040]ビデオエンコーダは、次いで、データをなお一層圧縮するために、得られたアレイをエントロピー符号化し得る。いくつかの例では、ビデオエンコーダは、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable-length coding）を使用して、アレイの様々な可能な量子化変換係数を表すために可変長コード（ＶＬＣ：variable length code）を使用するように構成され得る。他の例では、ビデオエンコーダは、たとえば、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）を使用して、得られた量子化係数を符号化するためにバイナリ算術コーディングを使用するように構成され得る。さらに他の例では、ビデオエンコーダは、Ｐｒｏｂａｂｉｌｉｔｙ  Ｉｎｔｅｒｖａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｅｎｔｒｏｐｙ  Ｃｏｄｅｓ（ＰＩＰＥ）を使用して量子化変換係数を符号化するように構成され得る。
【００２０】
[0041]ＣＡＢＡＣ、ＰＩＰＥなどのコンテキスト適応型コーディング、または他のコンテキスト適応型コーディング方式は、一般に、ビデオデータのブロックに関連するシンボルを符号化するためにコンテキストに作用するコンテキストモデルを選択することを伴う。コンテキストは、たとえば、現在コーディングされているシンボルに隣接するシンボルについて値がゼロであるのか非ゼロであるのかに関係し得る。コンテキストモデルは特定の確率モデルに関連し得る。
【００２１】
[0042]Ｈ．２６４／ＡＶＣおよび新生の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格では、エントロピーコーディングは、ブロック中の有効変換係数（すなわち、非ゼロ変換係数）の位置を識別することを含み得る。いくつかの例では、有効変換係数の相対位置は、それらの係数のレベル（たとえば、値）より前に符号化され得る。有効係数のロケーションをコーディングするプロセスは、有効マップコーディングと呼ばれることがある。有効マップ（ＳＭ：significance map）は１および０の「マップ」を含み得、その場合、１は有効係数のロケーションを示す。たとえば、ビデオデータのブロックについての有効マップ（ＳＭ）は、バイナリ値、すなわち、１および０の２次元アレイを含み得、１は、ブロック内の有効係数の位置を示し、０は、ブロック内の非有効な、または０値の係数の位置を示す。有効マップの１および０は「有効係数フラグ」と呼ばれることがある。さらに、有効マップは１および０の別の２次元アレイを含み得、１は、ブロックに関連する走査順序に応じたブロック内の最後有効係数の位置を示し、０は、ブロック内のすべての他の係数の位置を示す。この場合、１および０は「最後有効係数フラグ」と呼ばれる。
【００２２】
[0043]有効マップがコーディングされた後、（たとえば、絶対値および符号として表される）各残差変換係数のレベルがコーディングされ得る。たとえば、有効マップ情報、レベル情報、符号情報などをコーディングするために、ビデオエンコーダは、たとえば、１つまたは複数のビットまたは「ビン」を備える単項コード（または他のコード）を使用して、各非ゼロ残差変換係数の絶対値を２進形態に変換し得る（これは「２値化」と呼ばれることがある）。ブロックについての各有効係数フラグおよび最後有効係数フラグは、単一のビンをすでに備え、したがって２値化をバイパスし得る。
【００２３】
[0044]ビデオデータのブロックについての各ビンは、そのブロックについての残差変換係数レベル情報に対応するにせよ、そのブロックについてのシンタックス情報に対応するにせよ、所与の値（たとえば、「０」または「１」）を有する上記ビンの可能性を示す、上記ビンについての確率推定値を使用してコーディングされる。確率推定値は、「コンテキストモデル」とも呼ばれる確率モデル内に含まれる。確率モデルは、上記ビンについてのコンテキストを決定することによって選択され、これはコンテキストサポート近傍によって識別され得る。すなわち、コンテキストサポート近傍は、変換係数に関連する特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストの相対位置を識別し得る。コンテキスト（たとえば、コンテキスト近傍位置にある実効値）は確率モデルを決定する。
【００２４】
[0045]したがって、上記で説明したように、変換係数をコーディングすることは、変換係数に関連する有効性、レベル、符号などを表すフラグおよび／またはシンボルなど、いくつかのフラグおよび／またはシンボルをコーディングすることを含み得る。したがって、本明細書で行われる変換係数をコーディングするプロセスに対して本明細書で行われる一般的な言及は、変換係数に関連する有効フラグ、レベル、最後有効係数フラグ、符号、または他の情報をコーディングすることのいずれかまたはすべてを指すことがあることを理解されたい。
【００２５】
[0046]上述のように、高効率ビデオコーディング（ＨＥＶＣ）と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。今度の規格は、非公式にＩＴＵ−Ｔ  Ｈ．２６５と呼ばれることもあるが、そのような名称は公式になされたものでない。この規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３５個ものイントラ予測符号化モードを提供する。
【００２６】
[0047]ＨＭでは、ビデオデータのブロックをコーディングユニット（ＣＵ：coding unit）と呼ぶ。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。概して、ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。
【００２７】
[0048]ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００２８】
[0049]分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
【００２９】
[0050]１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」という用語を使用する。
【００３０】
[0051]概して、本開示の技法は、ビデオデータを走査し、エントロピーコーディングすることに関する。すなわち、たとえば、本開示の技法は、ＴＵの量子化変換係数に関連する有効性情報、ならびに量子化変換係数に関連する符号（sign）、量子化変換係数のレベル、特定の量子化変換係数が変換係数のブロック中の最後有効係数であるかどうかなど、他の情報を走査し、エントロピーコーディングすることに関し得る。
【００３１】
[0052]一例では、本開示の技法は、特定の走査経路に沿って位置する１つまたは複数の変換係数に関連する有効性情報をエントロピーコーディングするためのコンテキストサポート近傍が、当該走査経路中に位置するコンテキストサポート要素を含まないことを保証することに関する。すなわち、たとえば、本開示の技法は、特定の走査経路中の変換係数のすべてに関連する有効フラグについての並列コンテキスト計算を可能にするコンテキストサポート近傍を決定することを含む。そのようなコンテキストサポート近傍は、コンテキストプリフェッチングを可能にし、推論的（speculative）計算を使用した複数の有効フラグのコーディングをも可能にし得る。たとえば、特定の走査経路中にコンテキストサポート要素がない場合、走査経路中に位置する量子化変換係数のすべてに関連する有効性情報をコーディングするためのコンテキストが並列に計算され得る（たとえば、これは「並列コンテキスト計算」と呼ばれることがある）。また、特定の走査経路からのコンテキストサポート要素を除くことは、走査経路中に位置するすべての変換係数についてのコンテキストのプリフェッチングを可能にし（たとえば、これは「コンテキストプリフェッチング」と呼ばれることがある）、推論的計算を使用した複数の有効フラグのコーディングを可能にし得る。投機的計算の一例が、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝１１３１において公的に入手可能なＪＣＴＶＣ−Ｃ０６２、「TE8: TI Parallel Context Processing (PCP) Proposal」、３rd  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月、に記載されている。本開示では、そのような概念は、有効性情報の並列コーディングをサポートすることと呼ばれることがある。
【００３２】
[0053]別の例では、本開示の技法は、変換された残差ビデオデータに関連する有効性情報を走査するための走査順序を生成することにも関し得る。本開示の態様は、並列コンテキスト計算を可能にする走査順序を生成し、それにより有効フラグコーディングのためのコンテキストプリフェッチングを可能にすることを含み得る。本開示のいくつかの態様によれば、そのような走査順序は、推論的計算を使用した複数の有効フラグのコーディングをも可能にし得る。上述のように、本開示では、そのような概念は、有効性情報の並列コーディングをサポートすることと呼ばれ得る。
【００３３】
[0054]本開示では、概して、量子化変換係数が非ゼロであるかどうかを示す情報としての「有効性情報」に言及する。たとえば、上述のように、変換および量子化の後に、ビデオデータのブロックに関連するいくつかの残差値がゼロに低減され得る。残りの非ゼロ量子化変換係数は「有効（significant）」と呼ばれることがある。ビデオエンコーダは、有効フラグを使用してそのような非ゼロ量子化変換係数を識別し得る。すなわち、ビデオエンコーダは、２次元変換係数行列の各位置について有効フラグを設定し得る。ビデオエンコーダは、量子化変換係数が非ゼロである位置について有効フラグを１の値に設定し得る。一方、ビデオエンコーダは、量子化変換係数が０である位置について有効フラグを０の値に設定し得る。その結果得られる、（たとえば、量子化変換係数のグリッドに対応する）有効フラグの２次元グリッドは、上記で説明したように、有効マップと呼ばれ得る。
【００３４】
[0055]本開示では、概して、変換係数に関連する特定のシンボルまたはフラグ（たとえば、変換係数の符号、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど）をエントロピーコーディングするためのコンテキストを識別する、（たとえば、「コンテキストテンプレート」とも呼ばれる）「コンテキストサポート近傍」にも言及する。たとえば、コンテキスト適応型コーディング（ＣＡＢＡＣ）は、一般に、ビデオデータのブロックに関連するシンボルを符号化するためにコンテキストに作用するコンテキストモデルを選択することを伴う。コンテキストは、たとえば、現在コーディングされているシンボルに隣接するシンボルについて値がゼロであるのか非ゼロであるのかに関係し得る。コンテキストサポート近傍は、現在符号化されているシンボルに対するコンテキスト要素の相対位置を識別し得る。すなわち、たとえば、コンテキストサポート近傍は、現在符号化されているシンボルに隣接する（たとえば、一般に、現在符号化されているシンボルの上に位置する、および現在符号化されているシンボルの左に位置する）５つの前にコーディングされたシンボルの位置を識別し得る。コンテキストは、そのような隣接位置におけるシンボルの値を含む。
【００３５】
[0056]さらに、本開示では、概して、変換係数に関連する特定のシンボルまたはフラグ（たとえば、変換係数の符号、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど）が２次元ブロックまたは行列から１次元アレイに直列化される順序としての「走査順序」に言及する。たとえば、走査順序は、変換係数が直列化されるとき、２次元行列中の有効フラグと変換係数との相対位置を参照することによって変換係数が直列化されるシーケンスを識別し得る。
【００３６】
[0057]本開示では、変換係数に関連する特定のシンボルまたはフラグ（たとえば、変換係数の符号（sign）、変換係数のレベル、有効フラグ、特定の量子化変換係数が最後有効係数であるかどうかを示すフラグなど）が２次元行列から１次元アレイに直列化される経路としての「走査経路」にも言及することがある。すなわち、走査経路は、２次元行列を通るトレースされた経路（たとえば、４５度の角度で変換係数のブロックを横断する対角線経路）を参照することによって変換係数が直列化されるシーケンスを識別し得る。したがって、走査経路は、たとえば、変換係数のブロックに対して、特定の方向を有し得る。すなわち、走査経路が４５度の角度で変換係数のブロックを横断する場合、走査経路は、対角線方向と呼ばれ得る。同様に、走査経路が水平線に沿って左から右に（またはその逆に）変換係数のブロックを横断する場合、走査経路は、水平方向と呼ばれ得る。走査経路が垂直線に沿って上から下に（またはその逆に）変換係数のブロックを横断する場合、走査経路は、垂直方向と呼ばれ得る。
【００３７】
[0058]いくつかの例では、走査経路は、概して、走査順序における変換係数の特定のブロックを横切る単一の横断を指すことがある。したがって、変換係数のブロックは２つ以上の走査経路を含み得る。一例では、説明のために、水平方向の走査順序を使用して走査される変換係数の８×８ブロックが、８つの走査経路（たとえば、変換係数の各行について１つの水平方向の走査経路）を有し得る。
【００３８】
[0059]「走査順序」と「走査経路」という用語は両方とも、変換係数の２次元行列が直列化される方法について説明するために使用され得、本明細書では互換的に使用され得る。
【００３９】
[0060]本開示の技法は、走査経路中の変換係数の有効フラグをコーディングするためのコンテキストの並列計算を可能にするコンテキストサポート近傍を決定することを含む。本開示のいくつかの態様によれば、ビデオコーダが、初めに、ビデオデータのブロックの量子化変換係数に関連する有効性情報を走査するための走査経路を識別し得る。すなわち、特定のＴＵについて、ビデオコーダは、有効性情報（たとえば、有効フラグ）を直列化するために特定の方向への方向付けを有する走査経路を決定し得る。例として、対角線方向の走査経路、垂直方向の走査経路、および水平方向の走査経路を含む。
【００４０】
[0061]走査経路を識別した後に、ビデオコーダは、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。たとえば、上述のように、ビデオコーダは、（たとえば、ＴＵの相対的右上隅からＴＵの左下隅への）対角線方向のパターンを使用して変換係数に関係する有効性情報および他の情報（たとえば、符号（sign）、レベルなど）を走査することによって、変換係数に関係する有効性情報および他の情報を直列化し得る。右上から左下およびジグザグなど、他の対角線方向のパターンも使用され得る。ビデオコーダは、コンテキストサポート近傍が対角走査経路に沿ったいずれかの要素を含むかどうかを決定し得る。すなわち、ＴＵの特定の変換係数位置について、ビデオコーダは、コンテキストサポート近傍が（たとえば、４５度の角度で）右上にあるまたは（たとえば、４５度の角度で）左下にある特定の変換係数位置に隣接する要素を含むかどうかを決定し得る。
【００４１】
[0062]以下でより詳細に説明するように、コンテキストの並列計算を可能にするためにコンテキストサポート近傍中のすべてのデータが利用可能でなければならない（たとえば、すでにコーディングされていなければならない）ので、そのようなコンテキスト近傍サポート要素（たとえば、走査経路に沿った要素）に依拠することは、有効性情報についてのコンテキストを並列に計算するビデオコーダの能力を妨げ得る。コンテキストサポート近傍が走査経路に沿った要素を含む場合、コーダは、現在の位置についてのコンテキストを決定する前に、現在コーディングされている位置に先行する走査経路中のコンテキストサポート要素がコーディングを完了するのを待つことを強制され得る。この遅延は、有効性情報を効率的に処理するビデオコーダの能力を低減する。
【００４２】
[0063]したがって、本開示の態様は、走査方向によって定義された経路（たとえば、「走査経路」）中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外することによって、並列コンテキスト計算のためのコンテキストサポート近傍を最適化することに関する。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピーコーダは、走査経路に沿って有効性情報についてのすべてのコンテキストを並列に計算することができる。これは、必要とされる情報のすべてが、前にコーディングされた走査経路（または複数の走査経路）に関連する、前にコーディングされた有効性情報に属するからである。
【００４３】
[0064]本開示の他の態様は、有効性情報についてのコンテキストの計算を並列に可能にする走査順序を決定することを含む。たとえば、本開示の技法は、同時に２つ以上の有効フラグについてのコンテキストの計算を可能にする走査順序を生成することを含む。
【００４４】
[0065]有効性情報についてのコンテキストの並列計算のための走査順序は、いくつかの変数に基づいて生成され得る。一例では、並列コンテキスト計算のための走査順序は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の方向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数（たとえば、並列に計算されるべき有効フラグについてのコンテキストの所望の数）とに基づいて生成され得る。以下でより詳細に説明するように、走査順序生成プロセスへの入力変数のうちの１つまたは複数を変更することによって、多種多様な方向を示す、有効性情報についてのコンテキストの並列計算を可能にする（「並列フレンドリー」）走査順序が生成され得る。
【００４５】
[0066]本明細書で説明するように、「並列フレンドリー」は、概して、並列の２つ以上の変換係数に関連する有効フラグ（または符号（sign）、レベルなど、変換係数に関連する他の情報）についての並列コンテキスト計算を可能にするコンテキストサポート近傍および／または走査順序を決定する能力を指すことがある。さらに、「並列フレンドリー」は、概して、２つ以上の変換係数についてのコンテキストのプリフェッチングを実行する能力を指すこともあり、これは、推論的計算を使用した複数の有効フラグのコーディングを可能にし得る。
【００４６】
[0067]コンテキストサポート近傍は、上述のように、特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストを識別し得る。すなわち、有効性情報をエントロピーコーディングするとき、コンテキストサポート近傍は、現在コーディングされている有効フラグに対するコンテキスト要素の相対位置を識別し得る。いくつかの事例では、コンテキストサポート近傍は固定であり得る。
【００４７】
[0068]１次優先度メトリックは、生成された走査順序の方向に影響を及ぼすように設計され得る。たとえば、走査順序方向は、有効性情報が走査される一般的な順序を示し得る。すなわち、走査順序が垂直方向である場合、ビデオデータのブロックの相対的左にある変換係数に関連する有効性情報は、ブロックの相対的右にある変換係数に関連する有効性情報よりも好まれ(favored)得る（たとえば、ブロックの相対的右にある変換係数に関連する有効性情報よりも前に走査され得る）。たとえば、量子化変換係数の最左列に関連する有効性情報は、量子化変換係数の最右列に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が水平方向の場合、ビデオデータのブロックの相対的上部にある変換係数に関連する有効性情報は、ブロックの相対的下部にある変換係数に関連する有効性情報よりも好まれ(favored)得る（たとえば、ブロックの相対的下部にある変換係数に関連する有効性情報よりも前に走査され得る）。たとえば、量子化変換係数の最上行に関連する有効性情報は、量子化変換係数の最下行に関連する有効性情報の前に、完全に走査され得る。別の例では、走査順序が対角線方向の場合、ビデオデータのブロックの相対的左上部分にある変換係数に関連する有効性情報は、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも好まれる（たとえば、ブロックの相対的右下部分にある変換係数に関連する有効性情報よりも前に走査され得る）。
【００４８】
[0069]本開示のいくつかの態様によれば、１次優先度メトリックは、生成された走査順序の方向に影響を及ぼし得る、走査順序生成プロセス中に適用される関数を含み得る。すなわち、一例では、１次優先度メトリックは、変換係数の列に沿った有効性情報よりも変換係数の行に沿った有効性情報を走査することを好む（favor）関数であり得る。２次優先度メトリックは、発生された走査の方向にさらに影響を及ぼし得る、走査順序生成プロセス中に同じく適用される別の関数を含み得る。いくつかの例では、２次優先度メトリックはタイブレーカー（tiebreaker）として適用され得る。すなわち、２つの有効フラグが（たとえば、１次優先度メトリックにより）等しい優先度を有することを１次優先度メトリックが示す場合、２次優先度メトリックは、そのようなタイ(tie)を解決するために適用され得る。
【００４９】
[0070]走査順序生成プロセスに入力される並列スレッドの数は、生成された走査順序がサポートできる並列量に影響を及ぼすために使用され得る。たとえば、入力される並列スレッドの数は、生成された走査がサポートできる並列量に影響を及ぼす、あらかじめ定義された定数（たとえば、２、３、４など）であり得る。すなわち、入力される並列スレッドの数、２は、２つの有効フラグが並列に効率的にエントロピーコーディングされることを可能にする走査順序を生成し得る。同様に、入力される並列スレッドの数、３は、３つの有効フラグが並列に効率的にエントロピーコーディングされることを可能にする走査順序を生成し得、以下同様である。
【００５０】
[0071]本開示のいくつかの態様によれば、並列フレンドリー走査順序を生成するために使用される要素（たとえば、コンテキストサポート近傍、１次優先度メトリック、２次優先度メトリック、および並列スレッドの所望の数）のうちの１つまたは複数を変更することは、得られた走査順序の方向を変化させ得る。たとえば、１次優先度メトリックおよび／または２次優先度メトリックを変更することは、得られた走査順序の方向を変化させ得る。すなわち、特定のコンテキストサポート近傍が与えられれば、１次優先度メトリックおよび／または２次優先度メトリックは、水平方向の走査、垂直方向の走査、または対角線方向の走査を生成するように変更され得る。
【００５１】
[0072]このようにして、本開示では、異なる方向を有する並列フレンドリー走査順序を生成するための技法について説明する。異なる方向を有する並列フレンドリー走査順序を実装することは、コーディングと並列化との両方の観点から走査の効率を増加させ得る。たとえば、概して最も効率的な走査順序は、非ゼロ変換係数を直列化アレイの前部のほうへパックし、これによりエントロピーコーディング効率を増加させる。その上、概して最も効率的な走査順序は、０値変換係数の比較的長いランを有し、それによりエントロピーコーディング効率をさらに増加させる。すなわち、非ゼロ変換係数を変換係数の直列化アレイの前部のほうへパックすること、ならびに０値変換係数のランを増加させることにより、より少ないビットで変換係数がシグナリングされることが可能になり得る。
【００５２】
[0073]しかしながら、非ゼロ変換係数をアレイの前部のほうへパックし、０の長いランを作成するように設計されたにすぎない走査順序は、必ずしも並列フレンドリーであるとは限らない。たとえば、特定の走査順序は、非ゼロ変換係数をアレイの前部のほうへパックし得るが、有効フラグをコーディングするためのコンテキストの並列計算のために最適化されないことがある。すなわち、第２の有効フラグと並列にコーディングされている有効フラグのコンテキストサポート近傍が第２の有効フラグに依拠する場合、走査順序は並列フレンドリーでないことがある。上述のように、有効性情報を並列に効率的にエントロピーコーディングするために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない（たとえば、すでにコーディングされていなければならない）。
【００５３】
[0074]本開示の技法は、異なる方向性を有するいくつかの並列フレンドリー走査順序を生成し、実装することに関する。並列フレンドリー走査は、たとえば、並列フレンドリー走査を生成するために使用される要素のうちの１つまたは複数を変更することによって設計環境において生成され得る。これらの並列フレンドリー走査順序のうちの１つまたは複数は、ビデオデータを走査し、エントロピーコーディングするとき、ビデオエンコーダおよびビデオデコーダによって記憶され、使用され得る。ビデオコーダは、走査方向の明示的シグナリング、またはイントラ予測モードなどの他のファクタに基づいて、いくつかの記憶された並列フレンドリー走査から走査を選択し得る。
【００５４】
[0075]一例では、イントラ予測の後に、予測のために使用されたイントラ予測モードに基づいて変換係数を走査することが有益であり得る。すなわち、分離可能な方向性変換が残差値の２次元行列に適用された後でも、得られた２次元変換係数行列は、依然として何らかの方向性を示し得る。たとえば、垂直イントラ予測モードを使用してＣＵを予測することを考慮されたい。予測、変換、および量子化の後に、ＣＵに関連する非ゼロ量子化変換係数は水平方向に沿って（たとえば、２次元行列の相対的上部に沿って）存在する傾向があり得る。したがって、２次元行列中の非ゼロ係数が、得られた１次元ベクトルの始端のほうへさらに圧縮され得るように、水平方向に変換係数を走査することが有益であり得る。
【００５５】
[0076]本開示のいくつかの態様によれば、設計環境における開発者は、最初に所望の並列スレッドの数を決定することによって、特定の方向を有する並列フレンドリー走査順序を生成し得る。開発者は、次いで、特定の方向を示す走査順序を生成するようにコンテキストサポート近傍と、１次優先度関数と、２次優先度関数とを選択し得る。上述のように、いくつかの例では、ビデオデータを走査し、エントロピーコーディングするとき、ビデオエンコーダおよびビデオデコーダが使用するために、いくつかの並列フレンドリー走査順序が生成され、記憶され得る。概して、並列フレンドリー走査順序は、有効性情報についてのコンテキストの並列計算を可能にし得る。たとえば、並列フレンドリー走査順序は、複数のコンテキストのプリフェッチングを可能にし、複数の有効フラグをエントロピーコーディングするための推論的計算を可能にし得る。
【００５６】
[0077]動作中、ビデオコーダは、有効性情報についてのコンテキストの並列計算を可能にしながら、エントロピーコーディング効率を増加させる最も高い可能性を有する特定の方向を有する、特定の並列フレンドリー走査順序を選択し得る。その選択は、いくつかの例では、ビデオデータを予測するために使用される予測モード、または変換プロセス中に適用される特定の変換などのコーディングメトリックに基づいて行われ得る。
【００５７】
[0078]本開示のいくつかの態様によれば、有効性情報をエントロピーコーディングするためにエントロピーコーディング中に並列フレンドリー走査順序が適用される。そのような走査順序は、有効性情報についてのコンテキストの並列計算を可能にし得る。たとえば、並列フレンドリー走査順序は、複数のコンテキストのプリフェッチングを可能にし、同時に複数の有効フラグをエントロピーコーディングするための推論的計算を可能にする。複数の有効フラグのエントロピーコーディングのためのＣＡＢＡＣ方式の例は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝１３３０において公的に入手可能であり、その全体が参照により組み込まれる、ＪＣＴＶＣ−Ｃ２２７、「Parallelization of HHI Transform Coding」、３rd  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月と、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝１１３１において公的に入手可能であり、その全体が参照により組み込まれる、ＪＣＴＶＣ−Ｃ０６２、「TE8: TI Parallel Context Processing (PCP) Proposal」、３rd  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月と、に記載されている。
【００５８】
[0079]図１は、有効性情報を効率的に走査し、エントロピーコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、あるいは、通信チャネル１６を介してビデオ情報を通信することができ、その場合、通信チャネル１６がワイヤレスである、任意のワイヤレスデバイスを備え得る。
【００５９】
[0080]ただし、有効性情報を効率的に走査し、エントロピーコーディングすることに関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用され得る。したがって、通信チャネル１６は、符号化ビデオデータの送信または記憶に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得る。
【００６０】
[0081]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、本開示の変換ユニットの符号化および復号のための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００６１】
[0082]図１の図示のシステム１０は一例にすぎない。有効性情報を並列に効率的に走査し、エントロピーコーディングするための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００６２】
[0083]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ発生ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００６３】
[0084]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。この場合も、ビデオ符号化プロセスは、有効性情報を並列に効率的に走査し、エントロピーコーディングするための、本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、同じくビデオデコーダ３０によって使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得、そのシンタックス情報は、コード化ビデオデータのコーディングユニットまたは他のユニット、たとえば、ピクチャのグループ（ＧＯＰ：group of pictures）、スライス、フレームなどの特性および／または処理を記述するシンタックス要素を含む。４分木データ構造が、最大コーディングユニットのためのシンタックス情報の一部を形成し得る。すなわち、各ＬＣＵは、４分木の形態のシンタックス情報を含み、それはＬＣＵがどのようにサブＣＵに分割されるかと、ＬＣＵとサブＣＵとがどのように符号化されるかに関するシグナリング情報を記述し得る。
【００６４】
[0085]ビデオデコーダ３０は、４分木を使用して、受信されたピクチャのＣＵをどのように復号すべきかを決定し得る。ビデオデコーダ３０は、次いで、ＣＵを復号し、復号されたビデオデータをディスプレイデバイス３２に送り得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００６５】
[0086]図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００６６】
[0087]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ただし、本開示の技法は、特定のコーディング規格に限定されず、現在利用可能であるかまたは将来出現し得るＨＥＶＣまたは他の規格またはプロプライエタリ（proprietary）コーディングプロセスに適用され得る。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００６７】
[0088]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ぶことがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００６８】
[0089]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令を実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００６９】
[0090]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる多数のフレームを記述するシンタックスデータを、ＧＯＰのヘッダ中に、またはＧＯＰの１つまたは複数のフレームのヘッダ中に、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のコーディングユニットに対して動作する。コーディングユニットはＬＣＵまたはサブＣＵに対応し得、ＣＵという用語はＬＣＵまたはサブＣＵを指すことがある。ＬＣＵのヘッダ情報は、ＬＣＵのサイズ、ＬＣＵが分割され得る回数（本開示ではＣＵ深さと呼ぶ）、および他の情報を記述し得る。各ビデオフレームは複数のスライスを含み得、各スライスは複数のＬＣＵを含み得る。
【００７０】
[0091]本開示では、「Ｎ×Ｎ」と「Ｎ by Ｎ」は、垂直寸法と水平寸法とに関するブロック（たとえば、ＣＵ、ＰＵ、またはＴＵ）のピクセル寸法、たとえば、１６×１６ピクセルまたは１６ by １６ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、正の整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００７１】
[0092]ＣＵのＰＵは、（ピクセル領域とも呼ばれる）空間領域におけるピクセルデータを備え得、一方、ＣＵのＴＵは、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域における係数を備え得る。場合によっては、ＴＵは、空間領域における残差データを指すこともある。残差データは、概して、ＰＵの値と、入力ビデオデータからのコロケート（collocated）非符号化ピクセルの値との間のピクセル差分を表す。ＴＵは、変換領域における量子化値を含み得る。ＴＵの係数を変換するためにＤＣＴが使用されるとき、ＴＵの係数は周波数領域にあると言われることがある。
【００７２】
[0093]ビデオエンコーダ２０は、有効性情報を効率的に走査し、エントロピーコーディングするための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオエンコーダ３０は、有効性情報を効率的に走査し、エントロピーコーディングするためのこれらの技法のいずれかまたはすべてを実装し得る。すなわち、本開示のいくつかの態様によれば、ビデオデコーダ３０は、ビデオエンコーダ２０と対称である方法で動作し得る。
【００７３】
[0094]ビデオエンコーダ２０は、ＬＣＵを受信し、そのＬＣＵを、各々がサブＣＵを備える、４つの象限（quadrant）に分割すべきかどうか、またはそのＬＣＵを分割せずに符号化すべきかどうかを決定し得る。ＬＣＵをサブＣＵに分割すると決定した後に、ビデオエンコーダ２０は、各サブＣＵを、各々がサブＣＵを備える、４つの象限に分割すべきかどうかを決定し得る。ビデオエンコーダ２０は、ＣＵを分割すべきかどうかを再帰的に決定することを続け、分割の最大数はＬＣＵ深さによって示される。ビデオエンコーダ２０は、ＬＣＵとそのＬＣＵのサブＣＵとの分割を示す４分木データ構造を与え得る。ＬＣＵは４分木のルートノードに対応し得る。４分木の各ノードはＬＣＵのＣＵに対応し得る。さらに、各ノードは、対応するＣＵが分割されるかどうかを示す分割フラグ値を含み得る。
【００７４】
[0095]ＬＣＵが分割される場合、たとえば、ビデオエンコーダ２０は、ＬＣＵが分割されることを示すためにルートノードにおいて分割フラグの値を設定する。次いで、ビデオエンコーダ２０は、もしあれば、ＬＣＵのサブＣＵのうちのどれが分割されるのかを示すためにルートノードの子ノードの値を設定する。分割されないＣＵは４分木データ構造のリーフノードに対応し、リーフノードは子ノードを有しない。
【００７５】
[0096]ビデオエンコーダ２０は、４分木データ構造中のリーフノードに対応するＬＣＵの各サブＣＵを符号化し得る。例として、本開示では、イントラ予測符号化に関係する技法について説明する。したがって、この仮定の下で、ビデオエンコーダ２０は、４分木データ構造中のリーフノードに対応する各ＣＵのための予測ユニット（ＰＵ）を形成し得る。いくつかの例では、ビデオエンコーダ２０は、ＬＣＵのための３５個の異なるイントラ予測モードのうちの１つを選択し、４分木のルートノードにおいてその選択されたイントラ予測モードをシグナリングし得る。次いで、リーフノードに対応する各ＣＵについて、ビデオエンコーダ２０は、ＣＵと同じサイズを有する１つのＰＵを形成すべきか、またはＣＵの４つの象限を表す４つのＰＵを形成すべきかを決定し得る。各ＰＵは、選択されたイントラ予測モードに従って、隣接する、前にコーディングされたＣＵから取り出された予測データに対応する。
【００７６】
[0097]イントラ予測コーディングまたはインター予測コーディングを行ってＣＵのためのＰＵを生成した後、ビデオエンコーダ２０は、残差データを計算して、ＣＵのための１つまたは複数の変換ユニット（ＴＵ）を生成し得る。残差データは、符号化されていないピクチャのピクセルと、ＣＵのＰＵの予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含む１つまたは複数のＴＵを形成し得る。ビデオエンコーダ２０は、次いで、それらのＴＵを変換し得る。ビデオエンコーダ２０は、ＣＵのためのＰＵをイントラモード予測するために使用されるイントラ予測モードに基づいて変換を選択し得る。いくつかの例では、ビデオエンコーダ２０は、２つ以上の変換、すなわち、カスケード変換をＴＵに適用するように構成され得る。
【００７７】
[0098]ＴＵのための残差データを変換することによって、ビデオエンコーダ２０は変換係数の行列を生成する。この行列は、概して、変換への入力ブロックと同じサイズを有する。概して、変換プロセスは、データをさらに圧縮する量子化のために残差データを準備する。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、それらの係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００７８】
[0099]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るベクトルを生成するために、あらかじめ定義された走査順序を利用して量子化変換係数（たとえば、有効性、レベル、符号、最後有効係数など）を走査し得る。たとえば、ビデオエンコーダ２０は、対角線（ジグザグ、または右上から左下、または左下から右上）パターン、水平方向パターン、または垂直方向パターンを適用して量子化変換係数を走査し得る。
【００７９】
[0100]本開示のいくつかの態様によれば、あらかじめ定義された走査順序を適用するのではなく、ビデオエンコーダ２０は、並列フレンドリー走査順序を生成し得るか、またはいくつかの並列フレンドリー走査順序がプリプログラムされ得る。たとえば、ビデオエンコーダ２０は、いくつかの変数を使用して有効フラグコンテキストの並列計算を可能にするための走査順序を発生し得る。いくつかの例では、図９〜図１０Ｂに関してより詳細に説明するように、ビデオエンコーダ２０は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の方向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
【００８０】
[0101]別の例では、ビデオエンコーダ２０は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの１つを適用し得る。すなわち、ビデオエンコーダ２０は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。ビデオエンコーダ２０は、たとえば、別のコーディングメトリック（たとえば、予測モード、変換など）に基づいて、特定の並列フレンドリー走査順序を選択し得る。
【００８１】
[0102]１次元ベクトルを形成するための変換行列の走査後におよび／またはその走査中に、ビデオエンコーダ２０は、たとえば、ＣＡＶＬＣ、ＣＡＢＡＣ、ＰＩＰＥ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法に従って、１次元ベクトルをエントロピー符号化し得る。
【００８２】
[0103]ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【００８３】
[0104]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロか否かに関係し得る。ビデオエンコーダ２０は、有効係数フラグおよび最後係数フラグを含む有効性情報など、シンタックス要素をもエントロピー符号化し得る。
【００８４】
[0105]さらに、ＣＡＢＡＣ、ＰＩＰＥ、または別のコンテキスト適応型方式を実行するとき、ビデオエンコーダ２０は、コンテキストサポート近傍を決定し、適用し得る。本開示の態様によれば、ビデオエンコーダ２０は、有効性情報についてのコンテキストの効率的な並列計算をサポートするコンテキストサポート近傍を適用し得る。一例では、ビデオエンコーダ２０は、走査中に適用されるあらかじめ定義された方向の走査（たとえば、対角走査）を識別し、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。以下でより詳細に説明するように、ビデオエンコーダ２０は、次の要素についての有効フラグコンテキストを決定できる前に、符号化されるべき１つの要素を待つことを強制され得ので、そのようなコンテキスト近傍サポート要素（たとえば、走査経路中に位置する要素）に依拠することは、有効性コンテキスト情報を並列に計算するビデオコーダの能力を妨げ得る。この遅延は、有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
【００８５】
[0106]ビデオデコーダ３０は、ビデオエンコーダ２０の方法と本質的に対称的な方法で動作し得る。たとえば、ビデオデコーダ３０は、符号化されたＰＵデータとＴＵデータとを含む符号化されたＣＵを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ３０は、この受信データを逆エントロピー符号化して、復号された量子化係数を形成し得る。ビデオエンコーダ２０が可変長コードアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ３０は、受信コードワードに対応するシンボルを決定するために１つまたは複数のＶＬＣテーブルを使用し得る。ビデオエンコーダ２０が算術コーディングアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ３０は、データを符号化するためにビデオエンコーダ２０によって使用されたのと同じコンテキストモデルに対応するコンテキストモデルを使用して、そのデータを復号し得る。さらに、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方法でコンテキストサポート近傍を適用し得る。
【００８６】
[0107]ビデオデコーダ３０は、次いで、ビデオエンコーダ２０によって使用される走査をミラーリングする走査を使用して、復号された係数を走査して、変換係数の直列化アレイから変換係数の２次元アレイを生成し得る。たとえば、本開示の態様によれば、ビデオデコーダ３０は、並列フレンドリー走査順序を生成し得るか、またはいくつかの並列フレンドリー走査順序がプリプログラムされ得る。たとえば、ビデオデコーダ３０は、いくつかの変数を使用して有効フラグコンテキストの並列計算を可能にするための走査順序を生成し得る。いくつかの例では、図９〜図１０Ｂに関してより詳細に説明するように、ビデオデコーダ３０は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の配向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
【００８７】
[0108]別の例では、ビデオデコーダ３０は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの１つを適用し得る。すなわち、ビデオデコーダ３０は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。ビデオデコーダ３０は、たとえば、別のコーディングメトリック（たとえば、予測モード、変換など）に基づいて、特定の並列フレンドリー走査順序を選択し得る。
【００８８】
[0109]ビデオデコーダ３０は、それによって、エントロピー復号プロセスから得られた１次元ベクトルから２次元行列を形成し得る。次に、ビデオデコーダ３０は、走査によって生成された２次元行列中の係数を逆量子化し得る。ビデオデコーダ３０は、次いで、２次元行列に１つまたは複数の逆変換を適用し得る。逆変換は、ビデオエンコーダ２０によって適用された変換に対応し得る。ビデオデコーダ３０は、たとえば、ＰＵを形成するために使用されるイントラ予測モードに基づいて、および、特定のサイズのＴＵのために複数の変換が利用可能である場合は、現在復号されているＣＵに対応する４分木のルートにおいてシグナリングされた情報に基づいて、適用すべき逆変換を決定し得る。
【００８９】
[0110]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００９０】
[0111]図２は、本開示で説明する、有効性情報を効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラ（Ｉ）モードは、いくつかの空間ベースの圧縮モードのいずれかを指すことがあり、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【００９１】
[0112]図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照フレームストア６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、係数走査ユニット５５と、エントロピーコーディングユニット５６とを含む。図２に示す変換ユニット５２は、実際の変換を実行するユニットであり、ＣＵのＴＵと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００９２】
[0113]符号化プロセス中に、ビデオエンコーダ２０はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。
【００９３】
[0114]モード選択ユニット４０は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの１つを選択し、残差ブロックデータを発生するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与える。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００９４】
[0115]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックである。動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００９５】
[0116]動き推定ユニット４２は、予測ユニットを参照フレームストア６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。いくつかの例では、ビデオエンコーダ２０は、参照フレームストア６４に記憶された参照フレームのサブ整数ピクセル位置の値を計算する。たとえば、ビデオエンコーダ２０は、参照フレームの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算する。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定ユニット４２は、計算された動きベクトルをエントロピーコーディングユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在のＣＵの予測ユニットについての予測値を計算し得る。
【００９６】
[0117]イントラ予測ユニット４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代わりとして、受信ブロックをイントラ予測符号化し得る。イントラ予測ユニット４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右、上から下への符号化順序を仮定すると、現在のブロックの上ブロック、右上ブロック、左上ブロック、または左ブロックに対して受信ブロックを符号化し得る。イントラ予測ユニット４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３５個の方向性予測モードで構成され得る。
【００９７】
[0118]イントラ予測ユニット４６は、たとえば、様々なイントラ予測モードの誤差値またはレートひずみを計算し（たとえば、所定のひずみを超えることなしに圧縮を最大にすることを試み）、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値をコンバイン（combine）し、そのコンバインされた値をＰＵ中の１つまたは複数のピクセル位置に適用する機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【００９８】
[0119]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックは値の２次元行列に対応し、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルと、コーディングされるべき元のブロック中のコロケートピクセルとの間の差分に対応し得る。
【００９９】
[0120]変換ユニット５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換ユニット５２は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換などの変換をＴＵに適用して、変換係数を備えるビデオブロックを生成する。したがって、変換ユニット５２は、イントラ予測ユニット４６から受信されたイントラ予測モードの指示に基づいてＴＵに適用すべき変換を選択し得る。
【０１００】
[0121]変換ユニット５２は、量子化ユニット５４に得られた変換係数を送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。上述のように、量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を０に低減し得る。
【０１０１】
[0122]量子化の後に、エントロピーコーディングユニット５６は、量子化変換係数を走査して量子化変換係数を２次元行列から１次元アレイに直列化し得る。変換係数に関連するシンタックス要素は、特定の係数が有効である（たとえば、非ゼロである）かどうかを示す有効係数フラグと、特定の係数が走査される最後係数であるかどうかを示す最後係数フラグとを含み得る。いくつかの事例では、エントロピーコーディングユニット５６は、最後有効係数の位置をシグナリングし、その後に有効マップをシグナリングすることが続き、その後に係数レベルおよび／または符号をシグナリングすることが続き得る。いくつかの例では、エントロピーコーディングユニット５６は、量子化変換係数レベルと同じ順序で有効マップを走査し得る。他の例では、エントロピーコーディングユニット５６は、量子化変換係数レベルと反対の方向に有効マップを走査し得る。
【０１０２】
[0123]概して、エントロピーコーディングユニット５６は、あらかじめ定義された方向の走査パターンを適用して量子化変換係数を走査し得る。一例では、エントロピーコーディングユニット５６は、たとえば、図４および図５Ａに関して図示および説明するように、対角（ジグザグ）パターンを適用して量子化変換係数を走査し得る。別の例では、エントロピーコーディングユニット５６は、水平方向パターン（たとえば、図６Ａ）または垂直方向パターン（たとえば、図７Ａ）を適用して量子化変換係数を走査し得る。
【０１０３】
[0124]あらかじめ定義された走査順序を使用した走査中におよび／またはその走査後に、エントロピーコーディングユニット５６は、直列化量子化変換係数をエントロピー符号化し得る。変換係数をエントロピー符号化するために、エントロピーコーディングユニット５６は、ＣＡＢＡＣ、ＰＩＰＥ、または別のコンテキスト適応型エントロピーコーディングプロセスを実行するためのコンテキストモデルを選択し得る。エントロピーコーディングユニット５６は、たとえば、前に走査されたＮ個の係数の中の有効係数の数および／または相対位置に基づいてコンテキストモデルを選択し得、ただし、Ｎは、走査されているブロックのサイズに関係し得る整数値である。エントロピーコーディングユニット５６はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測データがイントラ予測モードを使用して予測されたとき、エントロピーコーディングユニット５６はさらに、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。
【０１０４】
[0125]エントロピーコーディングユニット５６は、適切なコンテキストモデルを決定するためのコンテキストを識別するために、変換係数をエントロピー符号化するとき、コンテキストサポート近傍を決定し、適用し得る。たとえば、エントロピーコーディングユニット５６は、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、変換係数をエントロピーコーディングするためのコンテキストの相対位置を識別し得る。述べたように、コンテキスト（たとえば、コンテキスト近傍位置にある実効値）は確率モデルを決定し得る。
【０１０５】
[0126]いくつかの例では、エントロピーコーディングユニット５６は、並列フレンドリーコンテキストサポート近傍を決定し得る（または並列フレンドリーコンテキストサポート近傍がプリプログラムされ得る）。たとえば、本開示の態様によれば、エントロピーコーディングユニット５６は、有効フラグをコーディングするためのコンテキストの並列計算をサポートするコンテキストサポート近傍を実装し得る。すなわち、エントロピーコーディングユニット５６は、有効フラグをコーディングするためのコンテキストの並列計算を可能にする位置におけるコンテキストを識別し得る。一例では、エントロピーコーディングユニット５６は、初めに、量子化変換係数に関連する有効性情報を走査するように実装されているあらかじめ定義された方向の走査経路を識別し得る（たとえば、ジグザグ、水平方向、垂直方向など）。走査経路を識別した後に、エントロピーコーディングユニット５６は、有効性情報をエントロピーコーディングするために使用されるコンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得る。
【０１０６】
[0127]そのようなコンテキスト近傍サポート要素（たとえば、走査経路に沿った要素）に依拠することは、有効性情報を並列に処理するビデオコーダの能力を妨げ得る。たとえば、有効フラグコンテキストを並列に計算するために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない（たとえば、すでにコーディングされていなければならない）。コンテキストサポート近傍が走査経路に沿った要素を含む場合、コーダは、現在の位置についての有効フラグをコーディングする前に、現在コーディングされている位置に先行する走査経路中のコンテキストサポート要素がコーディングを完了するのを待つことを強制され得る。この遅延は、走査経路上の係数についての有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
【０１０７】
[0128]したがって、本開示の態様によれば、エントロピーコーディングユニット５６は、走査方向によって定義された経路（たとえば、「走査経路」）中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外し得る。すなわち、エントロピーコーディングユニット５６は、現在の変換係数についてのコンテキストを決定するとき、除外されるコンテキストサポート近傍要素（たとえば、位置）に関連する有効フラグを考慮しないことがある。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピーコーディングユニット５６は、走査経路に沿った係数についての有効フラグコンテキストを並列に計算し得る。いくつかの例では、エントロピーコーディングユニット５６は、有効フラグコンテキストの並列計算と複数のビンの符号化とを実行するために、（たとえば、ＪＣＴＶＣ−Ｃ２２７、「Parallelization of HHI Transform Coding」、３ｒｄ  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月、および／またはＪＣＴＶＣ−Ｃ０６２、「TE8: TI Parallel Context Processing (PCP) Proposal」、３ｒｄ  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月、に記載されている）上記の方式を適用し得る。
【０１０８】
[0129]別の例では、あらかじめ定義された走査順序を適用し、コンテキストサポート近傍を潜在的に修正するのではなく、エントロピーコーディングユニット５６は、並列フレンドリー走査順序を生成し、適用し得る。すなわち、エントロピーコーディングユニット５６は、いくつかの変数を使用して有効性情報についてのコンテキストの並列計算を可能にする走査順序を生成し、適用し得る。たとえば、エントロピーコーディングユニット５６は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の方向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数とに基づいて、並列フレンドリー走査順序を生成し得る。
【０１０９】
[0130]さらに別の例では、エントロピーコーディングユニット５６は、本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの１つを適用し得る。すなわち、ビデオエンコーダ２０は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。エントロピーコーディングユニット５６は、たとえば、別のコーディングメトリックに基づいて、特定の並列フレンドリー走査順序を選択し、適用し得る。すなわち、エントロピーコーディングユニット５６は、イントラ予測ユニット４６または変換ユニット５２から選択されたイントラ予測モードの指示を受信し、イントラ予測モードに基づいて並列フレンドリー走査順序を適用し得る。
【０１１０】
[0131]たとえば、あらかじめ定義されたコンテキストサポート近傍と、１次優先度メトリックと、２次優先度メトリックと、所望の並列スレッドの数とに基づいて、特定の並列フレンドリー走査順序が生成される例では、エントロピーコーディングユニット５６は、並列フレンドリー走査順序を生成するために使用されるコンテキストサポート近傍を実装し得る。すなわち、エントロピーコーディングユニット５６は、シンタックス要素（たとえば、有効性情報）を並列にエントロピー符号化するために、並列フレンドリー走査順序を生成するために使用されるコンテキストサポート近傍を適用し得る。いくつかの例では、上述のように、エントロピーコーディングユニット５６は、有効フラグコンテキストの並列計算と複数のビンの符号化とを実行するために、（たとえば、ＪＣＴＶＣ−Ｃ２２７、「Parallelization of HHI Transform Coding」、３ｒｄ  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月、および／またはＪＣＴＶＣ−Ｃ０６２、「TE8: TI Parallel Context Processing (PCP) Proposal」、３ｒｄ  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｇｕａｎｇｚｈｏｕ、ＣＮ、２０１０年１０月、に記載されている）上記の方式を適用し得る。
【０１１１】
[0132]場合によっては、エントロピーコーディングユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピーコーディングユニット５６はマクロブロックおよびパーティションのＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピーコーディングユニット５６は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを実行し得る。
【０１１２】
[0133]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームストア６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームストア６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１１３】
[0134]図３は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示で説明する、有効性情報を効率的に走査し、エントロピーコーディングするための技法のいずれかまたはすべてを実装し得る。
【０１１４】
[0135]図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームストア８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを発生し得る。イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のフレームの現在のブロックについての予測データを発生し得る。
【０１１５】
[0136]いくつかの例では、エントロピー復号ユニット７０または逆量子化ユニット７６は、ビデオエンコーダ２０によって使用された走査をミラーリングする走査を使用して受信値を走査し得る。図３の例では、ビデオデコーダ３０は、（たとえば、ビデオエンコーダ２０によって適用されるあらかじめ決定された走査順序と対称の）あらかじめ決定された方向の走査順序を適用すること、ビデオエンコーダ２０によってシグナリングされた走査順序を適用すること、またはビデオエンコーダ２０に関して説明したのと同じプロセスを使用していくつかの記憶された走査順序から適切な走査順序を識別することを行うように構成され得る。
【０１１６】
[0137]本開示の態様によれば、ビデオデコーダ３０は、量子化変換係数のブロックに関連する有効性情報を並列に走査し、エントロピー復号するように構成され得る。すなわち、エントロピー復号ユニット７０は、ビデオエンコーダ２０によって生成された並列フレンドリー走査順序と対称である並列フレンドリー走査順序を生成し、適用し得る。たとえば、エントロピー復号ユニット７０は、たとえば、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の方向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数とを含む、いくつかの変数を使用して、複数の有効フラグコンテキストの計算を並列に可能にする走査順序を生成し、適用し得る。
【０１１７】
[0138]さらに別の例では、エントロピー復号ユニット７０は、（たとえば、図２に示したビデオエンコーダ２０に関して説明した走査順序生成技法などの）本開示で説明する走査順序生成技法を使用して生成され得る、いくつかの記憶された並列フレンドリー走査順序のうちの１つを適用し得る。すなわち、ビデオデコーダ３０は、たとえば、設計環境において開発された、いくつかの並列フレンドリー走査順序がプリプログラムされ得る。エントロピー復号ユニット７０は、たとえば、使用される予測モード、または受信されたビットストリームを符号化するために使用される変換など、別のコーディングメトリックに基づいて、特定の並列フレンドリー走査順序を選択し、適用し得る。
【０１１８】
[0139]本開示の態様によれば、エントロピー復号ユニット７０は、上記でビデオエンコーダ２０に関して説明したのと同じ方法でコンテキストサポート近傍を識別し、適用するように構成され得る。すなわち、たとえば、エントロピー復号ユニット７０は、適切なコンテキストモデルを決定するためのコンテキストを識別するために、変換係数をエントロピー復号するとき、コンテキストサポート近傍を決定し、適用し得る。たとえば、エントロピー復号ユニット７０は、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、変換係数をエントロピーコーディングするためのコンテキストの相対位置を識別し得る。述べたように、コンテキスト（たとえば、コンテキスト近傍位置にある実効値）は確率モデルを決定し得る。
【０１１９】
[0140]いくつかの例では、エントロピー復号ユニット７０は、並列フレンドリーコンテキストサポート近傍を決定し得る（または並列フレンドリーコンテキストサポート近傍がプリプログラムされ得る）。エントロピー復号ユニット７０は、有効フラグをコーディングするためのコンテキストの並列計算をサポートするコンテキストサポート近傍を実装し得る。一例では、エントロピー復号ユニット７０は、コンテキストサポート近傍が走査経路中に位置するいずれかの要素を含むかどうかを決定し得、走査経路中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外し得る。すなわち、エントロピー復号ユニット７０は、現在の変換係数についてのコンテキストを決定するとき、除外されるコンテキストサポート近傍要素（たとえば、位置）に関連する有効フラグを考慮しない。コンテキストサポート近傍の要素が走査経路中に含まれないとき、エントロピー復号ユニット７０は、走査経路に沿ってすべての有効フラグを復号するためのコンテキストを並列に計算し得る。
【０１２０】
[0141]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格またはＨＥＶＣによって定義された従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。
【０１２１】
[0142]逆変換ユニット５８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、逆回転変換、または逆方向性変換を適用する。いくつかの例では、逆変換ユニット７８は、受信されたイントラ予測符号化ブロックについてシグナリングされるイントラ予測モードに基づいて逆変換を決定し得る。イントラ予測モードに基づいて、ブロックが、２つ以上の変換が可能であるサイズのブロックである場合、逆変換ユニット７８は、現在のブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて現在のブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換ユニット７８は、カスケード逆変換を適用し得、たとえば、最初に逆回転変換を適用し、続いて逆方向性変換を適用し得る。
【０１２２】
[0143]動き補償ユニット７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１２３】
[0144]動き補償ユニット７２およびイントラ予測ユニット７４は、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるＬＣＵのサイズと、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報と、各分割がどのように符号化されるかを示すモード（たとえば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを決定する。
【０１２４】
[0145]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって発生される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理することもある。復号ビデオブロックは、次いで、参照フレームストア８２に記憶され、参照フレームストア８２は、その後の動き補償のための参照ブロックを与え、また、ディスプレイデバイス（図１のディスプレイデバイス３２など）上での提示のために復号ビデオを生成する。
【０１２５】
[0146]図４は、変換係数位置１２０Ａ〜１２０Ｐ（変換係数位置１２０）の例示的なジグザグ走査を示す概念図である。ビデオエンコーダ２０は、たとえば、残差ブロックへのＤＣＴの適用の後に、図４のジグザグ走査を使用して係数のブロックを走査するように構成され得る。さらに、ビデオエンコーダ２０は、同じ方法で、有効性情報などの関連するシンタックス要素のブロックを走査するようにも構成され得る。すなわち、一例では、ビデオエンコーダ２０は、図４のジグザグ走査に従って有効性情報のブロックを走査するように構成され、同じまたは逆の順序で係数レベルを走査するように構成され得る。
【０１２６】
[0147]図４に示す例では、ジグザグ走査は、変換係数位置１２０Ａから開始し、次いで変換係数位置１２０Ｂに進み、次いで変換係数位置１２０Ｅに進み、次いで変換係数位置１２０Ｉに進み、次いで変換係数位置１２０Ｆに進み、次いで変換係数位置１２０Ｃに進み、次いで変換係数位置１２０Ｄに進み、次いで変換係数位置１２０Ｇに進み、次いで変換係数位置１２０Ｊに進み、次いで変換係数位置１２０Ｍに進み、次いで変換係数位置１２０Ｎに進み、次いで変換係数位置１２０Ｋに進み、次いで変換係数位置１２０Ｈに進み、次いで変換係数位置１２０Ｌに進み、次いで変換係数位置１２０Ｏに進み、最後に変換係数位置１２０Ｐに進む。同様に、右上から左下への対角走査は、１２０Ａ、１２０Ｂ、１２０Ｅ、１２０Ｃ、１２０Ｆ、１２０Ｉ、１２０Ｄ、１２０Ｇ、１２０Ｊ、１２０Ｍ、１２０Ｈ、１２０Ｋ、１２０Ｎ、１２０Ｌ、１２０Ｏ、および１２０Ｐという順序で変換係数位置を通る。左下から右上への対角走査は、１２０Ａ、１２０Ｅ、１２０Ｂ、１２０Ｉ、１２０Ｆ、１２０Ｃ、１２０Ｍ、１２０Ｊ、１２０Ｇ、１２０Ｄ、１２０Ｎ、１２０Ｋ、１２０Ｈ、１２０Ｏ、１２０Ｌ、および１２０Ｐという順序で変換係数位置を通る。
【０１２７】
[0148]ジグザグ走査を実行することによって、変換係数の２次元配列は、変換係数位置１２０の各々の値を含む１次元アレイに変換され得る。これらの値は、アレイ中で走査順に配列され得る。たとえば、変換係数位置１２０Ａの値がアレイ中の最初にあり得、その後に変換係数位置１２０Ｂ、１２０Ｅ、１２０Ｉ、１２０Ｆなどの値が続き得る。
【０１２８】
[0149]図４のジグザグ走査は、変換係数を形成するために残差ブロックに適用されるＤＣＴに関連付けられ得る。概して、ＤＣＴは、変換係数位置１２０に関連するピクセルのエネルギーを変換ブロックの左上隅に圧縮する。したがって、最低周波数係数は、概して、ＤＣＴ後に左上隅の近くに生じ得、最高周波数係数は、概して、ＤＣＴ後に右下隅の近くに生じ得る。したがって、ジグザグ走査は、アレイ中でより低い周波数係数がより高い周波数係数よりも早く配置されることを保証することを試みるように構成され得る。このようにして、ビデオエンコーダは、より高い周波数係数に対応するはずである、アレイ中の後のほうの係数をゼロアウトすることによって、データを圧縮し得る。
【０１２９】
[0150]他の変換のために他のあらかじめ定義された走査パターンも定義され得る。たとえば、各変換は、より低い値（lower magnitude）の係数よりも早く、その変換から生じるより高い値（higher magnitude）の係数をアレイ中で配置するように設計された走査パターンに関連付けられ得る。上記変換のうちの１つにより、より高い値の係数が変換係数のブロックの左端の列に沿って生じ得（たとえば、垂直方向に配向）、その場合、変換係数位置１２０Ａから開始し、次いで変換係数位置１２０Ｅに進み、次いで変換係数位置１２０Ｉに進み、次いで変換係数位置１２０Ｍに進み、次いで変換係数位置１２０Ｂなどに進む、対応する走査が定義され得る。別の例として、方向性変換のうちの別の１つにより、より高い値の係数が変換係数のブロックの最上行に沿って生じ得（たとえば、水平方向に配向）、その場合、変換係数位置１２０Ａから開始し、次いで変換係数位置１２０Ｂに進み、次いで変換係数位置１２０Ｃに進み、次いで変換係数位置１２０Ｄに進み、次いで変換係数位置１２０Ｅなどに進む、対応する走査が定義され得る。
【０１３０】
[0151]本開示の技法は、一般に、有効性情報を効率的に走査し、エントロピーコーディングすることに関する。図４に示すジグザグ走査パターンの場合、本開示の態様は、エントロピーコーディング中に、走査経路に沿ったどのコンテキスト要素をも含まないコンテキストサポート近傍を適用することを含む。すなわち、たとえば、変換係数位置１２０Ｇに関係する変換係数に関連する有効性情報をエントロピーコーディングするとき、コンテキストサポート近傍は、位置１２０Ｄ、１２０Ｊ、または１２０Ｍにおけるコンテキスト要素を含まないであろう。
【０１３１】
[0152]そのようなコンテキスト近傍サポート要素に依拠することは、複数の有効フラグについてのコンテキストを並列に計算するビデオコーダの能力を妨げ得る。たとえば、位置１２０Ｇについてのコンテキストを計算するために、コンテキストサポート近傍中のすべてのデータが利用可能でなければならない（たとえば、すでにコーディングされていなければならない）。コンテキストサポート近傍が、位置１２０Ｄ、１２０Ｊ、または１２０Ｍにおけるコンテキスト要素など、走査経路に沿った要素を含む場合、コーダは、そのようなコンテキストサポート要素がコーディングを完了するのを待ち、位置１２０Ｇについての有効フラグについてのコンテキストを計算することを、強制され得る。この遅延は、有効フラグコンテキストを並列に計算するビデオコーダの能力を低減する。
【０１３２】
[0153]したがって、本開示の態様は、走査方向によって定義された経路（たとえば、「走査経路」）中にあるコンテキストサポート近傍要素を、コーディング中に考慮されることから除外することによって、有効フラグをコーディングするためのコンテキストの並列計算のためのコンテキストサポート近傍を最適化することに関する。図４に示す例では、コンテキストサポート近傍の要素が対角走査経路中に含まれないとき、エントロピーコーダは、対角走査経路に沿って有効性情報のすべてを並列にコーディングすることができる。
【０１３３】
[0154]図４のいくつかの態様についてビデオエンコーダ２０に関して説明したが、説明した技法はビデオデコーダ３０などのビデオデコーダによっても適用され得ることを理解されたい。
【０１３４】
[0155]図５Ａ〜図７Ｃは、本開示の態様による、例示的な走査パターンと対応する並列フレンドリーコンテキストサポート近傍とを示す概念図である。図５Ａ〜図７に示す走査パターンとコンテキストサポート近傍とは非限定的な例として与えられていることと、他の走査パターンとコンテキストサポート近傍とが、本明細書で説明するコンテキストの並列計算に関係する態様を示し得ることとを理解されたい。
【０１３５】
[0156]図５Ａは、量子化変換係数を走査するための対角またはジグザグ走査パターン１４０を示す概念図である。たとえば、図５Ａは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円１４１を含み、各変換係数位置は対応する量子化変換係数を有する。図５Ａに示すように、変換係数は、概して対角またはジグザグパターンで走査される。すなわち、図５Ａに示す２次元ブロックの変換係数は、ブロックの相対的左上からブロックの相対的右下に、およびブロックの相対的右下からブロックの相対的左上に変換係数を走査することによって、１次元アレイに直列化される。上述のように、いくつかの例では、変換係数に関連する有効性情報は、変換係数に関連するレベル情報より前に走査され得る。さらに、有効性情報は、量子化変換係数レベルと同じまたは反対の順序で走査され得る。
【０１３６】
[0157]図５Ａに示すジグザグ走査は一例として与えられているにすぎないことと、変換係数を走査するために他の対角線方向の走査が使用され得ることとを理解されたい。たとえば、別の例では、対角線方向の走査の走査経路がすべて同じ相対方向をたどり得る。すなわち、すべての走査経路が、ブロックの右上隅からブロックの左下隅への対角線方向の経路をたどり得る。別の例では、すべての走査経路が、ブロックの左下隅からブロックの右上隅への対角線方向の経路をたどり得る。
【０１３７】
[0158]図５Ｂは、図５Ａの対角走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス１４４Ａ〜１４４Ｋ（まとめて、コンテキストサポート近傍要素１４４）によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図５Ｂに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている（たとえば、関連する有効性情報、レベル情報、符号情報などを有する、変換係数を含む）変換係数位置１４８に隣接する１１個の潜在的なコンテキストサポート要素１４４を含む。上述のように、コンテキストサポート要素１４４は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、（たとえば、エントロピーコーディングユニット５６またはエントロピー復号ユニット７０などの）エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置１４８における変換係数をエントロピーコーディングするためのコンテキストの相対位置（たとえば、その位置にある実効値）を識別し得る。
【０１３８】
[0159]図５Ｂのコンテキストサポート近傍は１１個の潜在的なコンテキストサポート要素１４４を含むが、コンテキストサポート近傍は様々な構成で任意の数の要素を含んでいることがあることを理解されたい。一例では、図５Ｃに関して説明するように、コンテキストサポート近傍は、現在コーディングされている位置に隣接する５つのコンテキストサポート要素を含んでいることがある。他の構成も可能である。
【０１３９】
[0160]本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍１４４中のコンテキストサポート要素１４４Ｇおよび１４４Ｋが除外されている（「Ｘ」で消されたものとして表されている）。すなわち、図５Ａにおいて定義されたジグザグ走査経路に沿って位置する、コンテキストサポート近傍１４４のコンテキストサポート要素１４４Ｇおよび１４４Ｋは、コーディング中に考慮されることから除外されている。たとえば、図５Ａに示すジグザグ走査パターンが図５Ｂに示すコンテキストサポート近傍１４４でオーバーレイされた場合、対角線方向の走査経路に沿って位置する、コンテキストサポート近傍１４４のコンテキストサポート要素１４４Ｇおよび１４４Ｋは除外されている。したがって、除外されるコンテキストサポート近傍要素（たとえば、位置）に関連する有効性情報は、現在の変換係数位置１４８についてのコンテキストを決定するとき、考慮されないことになる。
【０１４０】
[0161]走査経路からのコンテキスト要素を除外することによって、エントロピーコーダは、走査経路に沿ってすべての位置についての有効フラグコンテキストを並列に計算することができる。たとえば、コンテキストサポート要素１４４Ｊ、１４４Ｉ、１４４Ｆ、および１４４Ｃに関連する有効フラグのコーディングを完了した後に、現在の変換係数位置１４８を含む次の走査経路についての有効フラグコンテキストが並列に計算され得る。
【０１４１】
[0162]図５Ｃは、対角線方向の走査経路についての並列フレンドリーコンテキストサポート近傍の一例を示す概念図である。たとえば、図５Ｃは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円１５１を含み、各変換係数位置は対応する量子化変換係数を有する。現在コーディングされている変換係数位置１５４を通る対角線によって示されるように、図５Ｃに示す走査経路は対角線方向に向いている。
【０１４２】
[0163]さらに、図５Ｃの例は、５つの要素を有する並列フレンドリーコンテキストサポート近傍１５２Ａ〜１５２Ｅ（まとめて、コンテキストサポート近傍１５２）を示している。すなわち、コンテキストサポート近傍１５２は、現在の変換係数位置１５４に隣接し、現在の変換係数位置１５４の上にある第１の位置１５２Ｃと、第１の位置１５２Ｃに隣接し、第１の位置１５２Ｃの上にある第２の位置１５４Ａと、現在の変換係数位置１５４に隣接し、現在の変換係数位置１５４の左にある第３の位置１５２Ｅと、第３の位置に隣接し、第３の位置の左にある第４の位置１５２Ｄと、第３の位置１５２Ｅに隣接し、第３の位置１５２Ｅの上にあり、第１の位置１５２Ｃに隣接し、第１の位置１５２Ｃの左にある第５の位置１５２Ｂとを含む。
【０１４３】
[0164]上述のように、走査経路からのコンテキスト要素を除外することによって、エントロピーコーダは、走査経路に沿ってすべての位置についての有効フラグコンテキストを並列に計算することができる。
【０１４４】
[0165]図６Ａは、量子化変換係数を走査するための水平走査パターン１６０を示す概念図である。たとえば、図６Ａは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円１６１を含み、各変換係数位置は対応する量子化変換係数を有する。図６Ａに示すように、変換係数は、概して水平パターンで走査される。すなわち、図６Ａに示す２次元ブロックの変換係数は、ブロックの各行を左から右に、上から下に変換係数を走査することによって、１次元アレイに直列化される。
【０１４５】
[0166]図６Ｂは、図６Ａの水平走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス１６４Ａ〜１６４Ｌ（まとめて、コンテキストサポート近傍要素１６４）によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図６Ｂに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている変換係数位置１６８に隣接する１１個の潜在的なコンテキストサポート要素１６４を含む。上述のように、コンテキストサポート要素１６４は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、（たとえば、エントロピーコーディングユニット５６またはエントロピー復号ユニット７０などの）エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置１６８における変換係数をエントロピーコーディングするためのコンテキストの相対位置（たとえば、その位置にある実効値）を識別し得る。
【０１４６】
[0167]図６Ｂに示すように、本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍１６４中のコンテキストサポート要素１６４Ｉ、１６４Ｊ、１６４Ｋ、および１６４Ｌが除外されている（「Ｘ」で消されたものとして表されている）。すなわち、たとえば、図６Ａによって定義された走査経路に沿って位置する、コンテキストサポート近傍１６４のコンテキストサポート要素１６４Ｉ、１６４Ｊ、１６４Ｋ、および１６４Ｌは除外されている。したがって、除外されるコンテキストサポート近傍要素（たとえば、位置）に関連する有効性情報は、現在の変換係数位置１６８についてのコンテキストを決定するとき、考慮されないことになる。
【０１４７】
[0168]図５Ｂに関して上記で説明したように、走査経路からのコンテキスト要素を除外することによって、走査経路に沿った有効フラグコンテキストは並列に計算され得る。すなわち、変換係数位置１６８についての有効フラグコンテキストは、変換係数位置１６８と同じ走査経路上のすべての他の有効フラグコンテキストと並列に計算され得る。
【０１４８】
[0169]図７Ａは、量子化変換係数を走査するための垂直走査パターン１８０を示す概念図である。たとえば、図７Ａは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円１８１を含み、各変換係数位置は対応する量子化変換係数を有する。図７Ａに示すように、変換係数は、概して垂直パターンで走査される。すなわち、図７Ａに示す２次元ブロックの変換係数は、各列で上から下に、ブロックを左から右に変換係数を走査することによって、１次元アレイに直列化される。
【０１４９】
[0170]図７Ｂは、図７Ａの垂直走査を使用した量子化変換係数のエントロピーコーディング中に使用され得る点線ボックス１８４Ａ〜１８４Ｌ（まとめて、コンテキストサポート要素１８４）によって示される並列フレンドリーコンテキストサポート近傍の一例である。たとえば、図７Ｂに示すコンテキストサポート近傍は、元来、現在エントロピーコーディングされている変換係数位置１９２に隣接する１１個の潜在的なコンテキストサポート要素１８４を含む。上述のように、コンテキストサポート要素１８４は、適切なコンテキストモデルを決定するためのコンテキストを識別し得る。たとえば、（たとえば、エントロピーコーディングユニット５６またはエントロピー復号ユニット７０などの）エントロピーコーディングユニットが、現在コーディングされている変換係数についてのコンテキストを決定することによってコンテキストモデルを選択し得る。コンテキストサポート近傍は、現在コーディングされている位置１８４における変換係数をエントロピーコーディングするためのコンテキストの相対位置（たとえば、その位置にある実効値）を識別し得る。
【０１５０】
[0171]図６Ｂに示すように、本開示で説明する技法によれば、コンテキストサポート近傍を並列フレンドリーにするために、コンテキストサポート近傍１８４中のコンテキストサポート要素１８４Ｂ、１８４Ｅ、１８４Ｊ、および１８４Ｌが除外されている（「Ｘ」で消されたものとして表されている）。すなわち、たとえば、図７Ａによって定義された走査経路に沿って位置する、コンテキストサポート近傍１８４のコンテキストサポート要素１８４Ｂ、１８４Ｅ、１８４Ｊ、および１８４Ｌは除外されている。したがって、除外されるコンテキストサポート近傍要素（たとえば、位置）に関連する有効性情報は、現在の変換係数位置１８８についてのコンテキストを決定するとき、考慮されないことになる。
【０１５１】
[0172]図５Ｂおよび図６Ｂに関して上記で説明したように、走査経路からのコンテキスト要素を除外することによって、走査経路に沿った有効フラグコンテキストは並列に計算され得る。すなわち、変換係数位置１８８に関連する有効フラグコンテキストは、変換係数位置１８８と同じ走査経路上に位置するすべての他の有効フラグコンテキストと並列に計算され得る。
【０１５２】
[0173]図７Ｃは、図７Ａに示す走査経路のような垂直方向の走査経路についての並列フレンドリーコンテキストサポート近傍の一例を示す概念図である。たとえば、図７Ｃは、ビデオデータのブロック中の変換係数位置を表し得るいくつかの円１９１を含み、各変換係数位置は対応する量子化変換係数を有する。現在コーディングされている変換係数位置１９４を通る垂直線によって示されるように、図７Ｃに示す走査経路は垂直方向に向いている。
【０１５３】
[0174]図７Ｃの例は、４つの要素を有する並列フレンドリーコンテキストサポート近傍１９２Ａ〜１９２Ｄ（まとめて、コンテキストサポート近傍１９２）を示している。図７Ｃに示すように、本開示のいくつかの態様によれば、考慮されるべきコンテキストサポート近傍について、特定の走査経路のコンテキストサポート近傍要素のすべてが除外される必要があるとは限らない。すなわち、たとえば、図７Ｃに示すコンテキストサポート近傍は走査経路中のコンテキストサポート要素１９２Ａを含むが、現在コーディングされている変換係数１９４に隣接して位置する（および、それの走査経路中の）変換係数１９５はコンテキストサポート近傍から除外されている。この例では、変換係数１９５は、現在コーディングされている変換係数１９４の直前に走査される。したがって、図７Ｃの例では、エントロピーコーダは、２つの位置についての有効フラグコンテキストを並列に計算することができる。すなわち、エントロピーコーダは、現在コーディングされている変換係数１９４と、現在コーディングされている変換係数１９４に隣接して位置する（走査経路中の）変換係数１９５とについての有効フラグコンテキストを並列に計算することができる。
【０１５４】
[0175]他の例では、並列フレンドリー走査を生成するために、別の数（たとえば、３つ、４つなど）の、走査経路中に位置するコンテキストサポート要素が、コンテキストサポート近傍から除外され得る。このようにして、本開示の技法は、走査経路からの、現在の位置より前に走査される、１つまたは複数のコンテキストサポート近傍要素を除外することを含む。
【０１５５】
[0176]図５Ａ〜図７Ｂに関して説明したいくつかの態様では、コンテキストサポート近傍から要素を「除外」することに言及したが、コンテキストサポート近傍要素の除外は、ビデオコーダの初期構成中に、またはコーディング中にリアルタイムで、実行され得ることを理解されたい。すなわち、「除外」することは、概して、コーディング中にコンテキストサポート近傍中の要素を考慮しないことを指す。一例では、ビデオコーダは、あらかじめ決定された走査経路に沿ったコンテキストサポート要素を「除外」するかまたはそれを含まないコンテキストサポート近傍を実装するように（たとえば、設計環境において）プログラムされ得る。別の例では、ビデオコーダは、走査経路に沿ったコンテキストサポート要素を「除外」するかまたはそれを含まないように、コーディング中に「オンザフライ」でコンテキストサポート近傍を変更し得る。この例では、ビデオエンコーダとビデオデコーダの両方が、同じコンテキストサポート変更プロセスを実装するように構成され得る。
【０１５６】
[0177]図８は、特定の走査パターンについての並列フレンドリーコンテキストサポート近傍を決定する例示的な方法２００を示すフローチャートである。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図８の方法を実行するように構成され得ることを理解されたい。
【０１５７】
[0178]ビデオエンコーダ２０は、初めに、量子化変換係数を２次元ブロックから１次元アレイに直列化するために使用され得る走査パターン（または走査方向）を識別する（２０４）。たとえば、ビデオエンコーダ２０は、走査パターンを、図５Ａに示したジグザグ走査のような対角走査、図６Ａに示した水平走査、または図７Ａに示した垂直走査であるものとして識別し得る。
【０１５８】
[0179]走査を識別した後に、ビデオエンコーダ２０は、量子化変換係数をエントロピーコーディングするために使用されるコンテキストサポート近傍のコンテキストサポート要素を識別する（２０６）。概して、コンテキストサポート近傍は、特定のシンボルまたはフラグをエントロピーコーディングするためのコンテキストを識別する。一例では、コンテキストサポート近傍は、コンテキストを定義する５つの隣接ロケーションを識別し得るが（たとえば、図５Ｃに示したコンテキストサポート近傍を参照）、任意の数のネイバーが使用され得る。
【０１５９】
[0180]ビデオエンコーダ２０は、次いで、コンテキストサポート近傍のいずれかの要素が識別された走査経路中に含まれるかどうかを判断する（２０８）。コンテキストサポート近傍のコンテキスト要素が走査経路中に含まれる場合、ビデオエンコーダ２０は、コンテキストサポート近傍からそのようなコンテキスト要素を除外し（２１０）、その後、変換係数を走査する（２１２）。コンテキストサポート近傍のコンテキスト要素が走査経路中に含まれない場合（たとえば、ステップ２０８の「いいえ」経路）、ビデオエンコーダ２０は変換係数を走査すること（２１２）に直接進むことができる。
【０１６０】
[0181]本開示の態様によれば、ビデオエンコーダ２０は、次いで、方法２００において定義されたコンテキストサポート近傍を使用して、走査経路に沿って有効フラグコンテキストを並列に計算し得る。たとえば、走査経路に沿って位置するコンテキストサポート要素をコンテキストサポート近傍から除外することによって、ビデオエンコーダ２０は並列フレンドリーコンテキストサポート近傍を作成する。したがって、図５Ｂ、図６Ｂ、および図７Ｂに関して説明したように、ビデオエンコーダは、所与の走査経路に沿って有効フラグコンテキストを並列に計算し得る。
【０１６１】
[0182]また、図８に関して図示および説明するステップは一例として与えたものにすぎないことを理解されたい。たとえば、方法２００によって生成されるコンテキスト近傍は、設計環境において発生され、ビデオエンコーダまたはビデオデコーダに記憶され得る。したがって、方法２００のステップはビデオコーディング中に「オンザフライ」で実行されないことがある。その上、図８の方法２００のステップは必ずしも図８に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
【０１６２】
[0183]図９は、並列フレンドリー走査順序を発生する例示的な方法を示すフローチャートである。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図９の方法を実行するように構成され得ることを理解されたい。
【０１６３】
[0184]概して、方法２３０の態様は、複数の有効フラグコンテキストを並列に計算するための走査順序を発生することに関する。いくつかの例によれば、方法２３０は、有効性情報（たとえば、有効フラグ）の効率的な並列コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を可能にする走査順序を開発するために使用され得る。図９に示す例では、ビデオエンコーダ２０は、あらかじめ定義されたコンテキストサポート近傍と、走査順序の方向に影響を及ぼす１次優先度メトリックと、走査順序の方向にさらに影響を及ぼす２次優先度メトリックと、並列スレッドのあらかじめ定義された数（たとえば、同時に計算されるべき有効フラグコンテキストの所望の数）とに基づいて、走査順序を発生する。ビデオエンコーダ２０は、コンテキストサポート近傍を判断すること（２３２）によって開始する。コンテキストサポート近傍は、現在コーディングされている有効フラグに対するコンテキスト要素の相対位置を識別し得る。いくつかの例では、コンテキストサポート近傍はあらかじめ定義され得る。すなわち、コンテキストサポート近傍はビデオエンコーダ２０中の固定パラメータであり得る。一例では、対角線方向の走査についてのコンテキストサポート近傍は、図５Ｃに示した例に従って固定であり得る。
【０１６４】
[0185]コンテキストサポート近傍を決定した後に、ビデオエンコーダ２０は１次優先度メトリックを決定する（２３４）。図１０Ａ〜図１３Ｂに関してより詳細に説明するように、１次優先度メトリックは、発生された走査順序の方向に影響を及ぼすように設計され得る。たとえば、１次優先度メトリックは、発生された走査順序の方向に影響を及ぼす、走査順序生成プロセス中に適用される関数を含み得る。すなわち、一例では、１次優先度メトリックは、変換係数の列に沿った有効性情報よりも変換係数の行に沿った有効性情報を走査することを選好する関数であり得る。
【０１６５】
[0186]次に、ビデオエンコーダ２０は２次優先度メトリックを決定する（２３６）。１次優先度メトリックと同様に、２次優先度メトリックは、発生された走査の配向にさらに影響を及ぼし得る、走査順序発生プロセス中に同じく適用される別の関数を含み得る。いくつかの例では、２次優先度メトリックはタイブレーカーとして適用され得る。すなわち、２つの有効フラグが（たとえば、１次優先度メトリックによる）等しい優先度を有することを１次優先度メトリックが示す場合、２次優先度メトリックは、そのようなタイを解決するために適用され得る。
【０１６６】
[0187]ビデオエンコーダ２０は所望の並列スレッドの数を決定する（２３８）。いくつかの例では、走査順序生成プロセスに入力される並列スレッドの数は、生成された走査順序がサポートすることができる並列量に影響を及ぼすために、使用され得る。たとえば、入力される並列スレッドの数は、発生された走査がサポートすることができる並列量に影響を及ぼす、あらかじめ定義された定数（たとえば、２、３、４など）であり得る。すなわち、入力される並列スレッドの数、２は、２つの有効フラグコンテキストが並列に計算されることを可能にする走査順序を生成し得る。同様に、入力される並列スレッドの数、３は、３つの有効フラグコンテキストが並列に計算されることを可能にする走査順序を生成し得、以下同様である。
【０１６７】
[0188]ビデオエンコーダ２０は、次いで、ステップ２３２〜２３８において説明した変数に基づいて走査順序を生成する（２４０）。本開示のいくつかの態様によれば、並列フレンドリー走査順序を開発するために使用される要素（たとえば、コンテキストサポート近傍、１次優先度メトリック、２次優先度メトリック、および並列スレッドの所望の数）のうちの１つまたは複数を変更することは、得られた走査順序の方向を変化させ得る。たとえば、１次優先度メトリックおよび／または２次優先度メトリックを変更することは、得られた走査順序の方向を変化させ得る。すなわち、特定のコンテキストサポート近傍を仮定すれば、１次優先度メトリックおよび／または２次優先度メトリックを変更することは、水平方向に向いた走査、垂直方向に向いた走査、または対角線方向に向いた走査を生成し得る。
【０１６８】
[0189]ビデオエンコーダ２０によって行われるものとして説明したが、方法２３０は様々な他のデバイスによって行われ得ることを理解されたい。すなわち、たとえば、方法２３０は、ビデオデコーダ３０などのビデオデコーダによって行われ得る。別の例では、方法２３０は設計環境において開発者によって行われ得る。すなわち、開発者は、異なる方向を有する並列フレンドリー走査を生成するように、ステップ２３２〜２３８において説明した変数を変更し得る。その場合、開発者は、開発された走査をビデオエンコーダ２０および／またはビデオデコーダ３０に記憶し得る。さらに、図９の方法のステップは必ずしも図９に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
【０１６９】
[0190]図１０Ａおよび図１０Ｂは、並列フレンドリー走査順序を生成する例示的な方法２６０を示すフローチャートである。いくつかの例では、方法２６０は、並列フレンドリー走査順序を生成するために、図９に記載した変数を使用し得る。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図１０Ａおよび図１０Ｂの方法２６０を実行するように構成され得ることを理解されたい。
【０１７０】
[0191]概して、本方法は、量子化変換係数を有するビデオデータの特定のブロックについての並列フレンドリー走査順序を生成するために使用され得る。「位置」は、概して、（残差ビデオデータに関係する）ブロック中の変換係数位置を指すことがある。ビデオエンコーダ２０は、初めにブロックのすべての位置を未処理とマークし（２６２）、ならびにすべての位置を利用不可能とマークする（２６４）。これらの指定は、並列フレンドリー走査順序を生成する間に各位置のステータスを追跡するために使用される。
【０１７１】
[0192]次に、ビデオエンコーダは、並列フレンドリー走査生成プロセス中に使用する変数ｓｔｅｐ＿ｉｎｄｅｘおよびｐｒｏｃｅｓｓｅｄ＿ｃｏｅｆｆを初期化する（２６６）。これらの変数は、一般に０に初期化され、走査生成中に増分される。次に、ビデオエンコーダ２０は、コンテキストサポート近傍が決定され得る未処理位置のリストを生成する（２６８）。たとえば、ビデオエンコーダ２０は、コンテキストサポート近傍の値が利用可能である（たとえば、前にコーディングされている）ブロック中のいずれかの位置を識別し得る。初めに、最左上位置は、コンテキストサポート近傍が決定され得る唯一の位置であり得る。現在のブロック外にある値は有効でないと見なされ得る。ただし、ブロックが処理され、値が決定されるにつれて、追加の位置がリストに追加され得る。ビデオエンコーダ２０は、リスト中の位置の数を識別し、ｎｕｍ＿ｃａｎｄｉｄａｔｅｓ変数をリスト中の位置の数に設定する（２７０）。
【０１７２】
[0193]ビデオエンコーダ２０は、次いで１次優先度メトリックに従って昇順で候補リストをソートする。たとえば、本開示のいくつかの態様によれば、ブロックの各位置は、ブロック中のそれの相対位置に基づいてインデックス値が割り当てられる。すなわち、一例では、ブロックの各位置は、行インデックス（ｉ）および列インデックス（ｊ）が割り当てられ得る。したがって、最左上位置は（０，０）のインデックス値が割り当てられ得、（０，０）の真右にある位置は（０，１）のインデックス値が割り当てられ得る。位置（０，０）の真下の位置は（１，０）であり得、以下同様である。
【０１７３】
[0194]本開示の態様によれば、１次優先度メトリックは、上記インデックス値を入力変数として利用する関数であり得る。たとえば、図１１Ａに関して説明するように、１次優先度メトリックは、（ｉ）＋（ｊ）であり、それにより特定の位置についての行インデックス値と列インデックス値とを組み合わせ得る。別の例では、図１２Ａに関して説明するように、１次優先度メトリックは単に（ｉ）であり得、または図１３Ａに関して説明するように、１次優先度メトリックは単に（ｊ）であり得る。これらの１次優先度メトリックは単に例として与えられていることと、他の入力変数を使用する他の１次優先度メトリックが使用され得ることとを理解されたい。
【０１７４】
[0195]１次優先度メトリックは、得られた並列フレンドリー走査順序の方向に影響を及ぼすために使用され得る。たとえば、（ｉ）の１次優先度メトリックにより、ブロックの行における位置は候補リストの最上位のほうへソートされ得る。すなわち、低い行インデックスを有する候補が、より高い行インデックスを有する候補よりも高くソートされ得る。以下でより詳細に説明するように、リストの最上位における位置により、それらの位置は、候補リスト上のより下位の位置の前に走査され得る。
【０１７５】
[0196]いくつかの例では、候補リスト中のいくつかの位置が「タイ（tied）」にされ得る。すなわち、候補リスト中のいくつかの位置は、１次優先度メトリックを適用した後に同じ値を有し得る。一例では、（ｉ）＋（ｊ）の１次優先度メトリックが、同じインデックス値を有する２つの位置を生成し得る。２次優先度メトリックに従ってそのようなタイをブレークし、ソートする（２７４）。２次優先度メトリックは、第１の優先度メトリックと第２の優先度メトリックとが両方ともタイにならないように選定されるべきである。
【０１７６】
[0197]ビデオエンコーダ２０は、次いで、リスト中の係数の数（たとえば、ｎｕｍ＿ｃａｎｄｉｄａｔｅｓ）が並列スレッドの所望の数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）よりも大きいかどうかを決定する（２７６）。いくつかの態様によれば、並列スレッドの数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）は、並列フレンドリー走査を生成する開発者によって選択され得る。たとえば、開発者は、並列に計算されることが望まれる有効フラグコンテキストの数に従って並列スレッドの数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）を設定し得る。場合によっては、生成された並列フレンドリー走査順序を最終的に使用するコーディングデバイスによって使用される並列スレッドの数は、システムによって抑制され得る。すなわち、いくつかのビデオコーダは、他のコーダよりも多くの有効フラグコンテキストを並列に計算することが可能であり得る。
【０１７７】
[0198]並列スレッドの数よりも、候補リスト中で利用可能な候補が多い場合、（たとえば、ｎｕｍ＿ｃａｎｄｉｄａｔｅｓがｎｕｍ＿ｐａｒａｌｌｅｌよりも大きく、ステップ２７６の「はい」分岐）、ビデオエンコーダ２０は、走査発生プロセスのこの反復において処理される候補の数を識別するステップ変数（たとえば、ｓｔｅｐ＿ｎｕｍ＿ｃｏｅｆｆｉｃｉｅｎｔ）を、所望の並列スレッドの数に等しく設定する（２７８）。すなわち、所望の並列スレッドの数は、候補リストからのいくつの候補が走査順序を割り当てられることになるかを識別するために使用され得る。一例では、並列スレッドの所望の数は２に設定され得る。したがって、ビデオエンコーダ２０は、候補リストからの候補のうちの２つに走査順序を割り当て得る。すなわち、ビデオエンコーダは、ステップ数（たとえば、ｓｔｅｐ＿ｎｕｍ＿ｃｏｅｆｆ）に走査順序を割り当てる。
【０１７８】
[0199]リスト中の候補の数（たとえば、ｎｕｍ＿ｃａｎｄｉｄａｔｅｓ）が所望の並列スレッドの数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）よりも小さい場合（たとえば、ステップ２７６の「いいえ」分岐）、ビデオエンコーダ２０は、リスト中に含まれる候補のみに走査順序を割り当てることになる。すなわち、ビデオエンコーダ２０は、ステップ数（たとえば、ｓｔｅｐ＿ｎｕｍ＿ｃｏｅｆｆ）を候補のリスト中の候補の数（たとえば、ｎｕｍ＿ｃａｎｄｉｄａｔｅｓ）に設定する（２８２）。一例では、３つの並列スレッドが望まれるが、２つの候補のみが候補リスト中に含まれる（たとえば、２つの位置のみが既知のコンテキストを有する）場合、ビデオエンコーダ２０は、リスト中の候補の数、すなわち、２つのみに走査順序を割り当て得る。したがって、ビデオエンコーダ２０は、ステップ数（たとえば、ｓｔｅｐ＿ｎｕｍ＿ｃｏｅｆｆ）に走査順序を割り当てる（２８０）。
【０１７９】
[0200]図１０Ｂに進むと、ビデオエンコーダ２０は、次いで、（たとえば、ステップ２８０において）走査順序を割り当てられた位置を処理済みとマークする（２８４）。たとえば、ビデオエンコーダ２０は、走査順序を割り当てられている位置が本プロセスの次の反復において考慮から除外されるように、それらの位置を処理済みとマークする。ビデオエンコーダ２０はまた、ステップインデックス（たとえば、ステップ２６６において初期化されたｓｔｅｐ＿ｉｎｄｅｘ）を１だけ増分し、処理済み係数（たとえば、ステップ２６６において初期化されたｐｒｏｃｅｓｓｅｄ＿ｃｏｅｆｆ）の数を、ステップ２８０において走査順序を割り当てられた位置の数（たとえば、ｓｔｅｐ＿ｎｕｍ＿ｃｏｅｆｆ）だけ増加させる（２８８）。
【０１８０】
[0201]まだ走査順序を割り当てられていない、ブロック中の位置が依然としてある場合、ビデオエンコーダ２０は、ブロック中の位置のすべてが走査順序を割り当てられるまで、本プロセスを繰り返し得る。たとえば、ビデオエンコーダ２０は、処理済みの位置の総数がブロック中の位置の総数よりも小さいかどうかを判断する（２９０）。処理されるべき位置がより多い場合（たとえば、ステップ２９０の「はい」分岐）、ビデオエンコーダ２０は図１０Ａのステップ２６８に戻り得る（図１０Ａおよび図１０Ｂ中の「Ａ」で示される遷移）。位置のすべてが処理された場合（たとえば、ステップ２９０の「いいえ」分岐）、本プロセスは終了する。
【０１８１】
[0202]ビデオエンコーダ２０によって行われるものとして説明したが、図１０Ａおよび図１０Ｂに示す方法２６０は様々な他のデバイスによって行われ得ることを理解されたい。すなわち、たとえば、方法２６０は、ビデオデコーダ３０などのビデオデコーダによって行われ得る。別の例では、方法２６０は設計環境において開発者によって行われ得る。すなわち、開発者は、図１０Ａおよび図１０Ｂに示す方法を使用して、異なる配向を有する並列フレンドリー走査を発生するように、ステップ２３２〜２３８において説明した変数を変更し得る。その場合、開発者は、開発された走査をビデオエンコーダ２０および／またはビデオデコーダ３０に記憶し得る。さらに、図９の方法のステップは必ずしも図９に示す順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。
【０１８２】
[0203]図１１Ａ、図１２Ａ、および図１３Ａは、変換係数のブロックについての（それぞれ、点線ボックス３１０、３２０、および３３０によって表される）例示的なコンテキストサポート近傍を示す概念図である。いくつかの例によれば、これらのコンテキストサポート近傍は、図１０Ａおよび図１０Ｂに示した方法に従って並列フレンドリー走査順序を開発するために使用され得る。たとえば、図１１Ａ、図１２Ａ、および図１３Ａに示すコンテキストサポート近傍、ならびに１次優先度メトリック、２次優先度メトリック、および並列スレッドの所望の数は、並列フレンドリー走査を発生するために使用され得る。
【０１８３】
[0204]図１１Ｂ、図１２Ｂ、および図１３Ｂは、それぞれ、図１０Ａおよび図１０Ｂに示した方法を使用して生成された、例示的な走査順序３１４、３２４、および３３４である。たとえば、図１１Ｂは、図１１Ａに示すコンテキストサポート近傍と、（ｉ）＋（ｊ）の１次優先度メトリックと、（ｊ）の２次優先度メトリックと、並列スレッドの所望の数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）２とを使用して生成された例示的な走査順序である。図１２Ｂは、図１２Ａに示すコンテキストサポート近傍と、（ｉ）の１次優先度メトリックと、（ｉ）＋（ｊ）の２次優先度メトリックと、並列スレッドの所望の数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）３とを使用して生成された例示的な走査順序である。図１３Ｂは、図１３Ａに示すコンテキストサポート近傍と、（ｊ）の１次優先度メトリックと、（ｉ）＋（ｊ）の２次優先度メトリックと、並列スレッドの所望の数（たとえば、ｎｕｍ＿ｐａｒａｌｌｅｌ）３とを使用して生成された例示的な走査順序である。
【０１８４】
[0205]概して、図１１Ａ〜図１３Ｂは、コンテキストサポート近傍と、１次優先度メトリックと、２次優先度メトリックと、所望の並列スレッドの数とを変更することが、得られた走査の配列にどのように影響を及ぼすことができるかを示している。各番号は、１次元走査内のその変換係数の位置を示す。より低い番号は、その変換係数が走査中でより早く現れることを示す。たとえば、図１１Ｂに示す走査順序は、比較的中間のまたは対角線方向を有する。すなわち、各位置は、概してブロックの左上隅からブロックの右下隅に走査される。代替的に、図１２Ｂに示す走査順序は、比較的顕著な水平方向を有する。すなわち、ブロックの上部行の近くの位置は、概して、下部行に沿った位置より前に走査される。別の例では、図１３Ｂに示す走査順序は、比較的顕著な垂直方向を有する。すなわち、ブロックの左列の近くの位置は、概して、右にある列における位置より前に走査される。
【０１８５】
[0206]本開示のいくつかの態様によれば、図１１Ａ〜図１３Ｂに示す並列フレンドリー走査順序などの並列フレンドリー走査順序は設計環境において開発者によって生成され得る。すなわち、開発者は、並列フレンドリー走査順序をビデオエンコーダ２０またはビデオデコーダ３０などのコーディングデバイスに記憶するより前に、走査順序を生成し得る。その場合、ビデオコーダは、コーディング中に特定の方向を有する走査を選択する能力を有し得る。たとえば、ビデオコーダは、コーディング中に使用される予測モードまたは変換など、コーディングメトリックに基づいて、特定の方向を有する並列フレンドリー走査を選択し得る。
【０１８６】
[0207]たとえば、ビデオエンコーダ２０が垂直イントラ予測モードを使用してＣＵを予測することを考えられたい。予測、変換、および量子化の後に、ＣＵ中に含まれているＴＵに関連する非ゼロ量子化変換係数は水平方向に沿って（たとえば、２次元行列の相対的上部に沿って）存在する傾向があり得る。したがって、２次元行列中の非ゼロ係数が、得られた１次元ベクトルの始端のほうへさらに圧縮され得るように、水平方向に変換係数を走査することが有益であり得る。この例では、ビデオエンコーダ２０は、図１２Ｂに示す走査順序を選択し得る。
【０１８７】
[0208]図１１Ａ〜図１３Ｂは単に例として与えられている。様々な他のコンテキストサポート近傍と、優先度メトリックと、並列スレッドの所望の数とを使用して他の並列フレンドリー走査順序が生成され得ることを理解されたい。
【０１８８】
[0209]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１８９】
[0210]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１９０】
[0211]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１９１】
[0212]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１９２】
[0213]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで、前記コンテキストサポート近傍は、前記走査経路中にある１つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を備える、ビデオデータをコーディングするための方法。
［２］  前記量子化変換係数は第１の量子化変換係数であり、
前記方法は、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算することをさらに備える、［１］に記載の方法。
［３］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、［１］に記載の方法。
［４］  前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングすることをさらに備える、［３］に記載の方法。
［５］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［１］に記載の方法。
［６］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［１］に記載の方法。
［７］  前記有効性情報をコーディングすることは、前記有効性情報を符号化することを備える、［１］に記載の方法。
［８］  前記有効性情報をコーディングすることは、前記有効性情報を復号することを備える、［１］に記載の方法。
［９］  前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、［１］に記載の方法。
［１０］  前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、［１］に記載の方法。
［１１］  量子化変換係数に関連する有効性情報を走査するための走査経路を識別し、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定し、ここで、前記コンテキストサポート近傍は、前記走査経路中にある１つまたは複数のコンテキストサポート要素を除外し、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングするように構成された１つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
［１２］  前記量子化変換係数が第１の量子化変換係数であり、
前記１つまたは複数のプロセッサは、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算するようにさらに構成された、［１１］に記載の装置。
［１３］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、［１１］に記載の装置。
［１４］  前記１つまたは複数のプロセッサは、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングするようにさらに構成された、［１３］に記載の装置。
［１５］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［１１］に記載の装置。
［１６］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［１１］に記載の装置。
［１７］  前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、［１１］に記載の装置。
［１８］  前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、［１１］に記載の装置。
［１９］  前記装置はビデオデコーダを備える、［１１］に記載の装置。
［２０］  前記装置はビデオエンコーダを備える、［１１］に記載の装置。
［２１］  前記装置はモバイルデバイスを備える、［１１］に記載の装置。
［２２］  量子化変換係数に関連する有効性情報を走査するための走査経路を識別する手段と、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定する手段と、前記コンテキストサポート近傍は、前記走査経路中にある１つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングする手段と、
を備える、ビデオデータをコーディングするための装置。
［２３］  前記量子化変換係数は第１の量子化変換係数であり、
前記装置は、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算する手段をさらに備える、［２２］に記載の装置。
［２４］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、［２２］に記載の装置。
［２５］  前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを備えるコンテキストサポート近傍を使用して、前記変換係数に関連する前記有効性情報をコーディングする手段をさらに備える、［２４］に記載の装置。
［２６］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［２２］に記載の装置。
［２７］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［２２］に記載の装置。
［２８］  前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、［２２］に記載の装置。
［２９］  前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、［２２］に記載の装置。
［３０］  実行されたとき、１つまたは複数のプロセッサに、
量子化変換係数に関連する有効性情報を走査するための走査経路を識別することと、
前記量子化変換係数に関連する前記有効性情報をエントロピーコーディングするためのコンテキストサポート近傍を決定することと、ここで前記コンテキストサポート近傍は、前記走査経路中にある１つまたは複数のコンテキストサポート要素を除外する、
修正コンテキストサポート近傍を使用して前記有効性情報をコーディングすることと、
を行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
［３１］  前記量子化変換係数は第１の量子化変換係数であり、
前記命令は、１つまたは複数のプロセッサに、前記走査経路中にある第２の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストと並列に、前記第１の量子化変換係数に関連する有効フラグをコーディングするためのコンテキストを計算させる、［３０］に記載のコンピュータプログラム製品。
［３２］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して対角線方向に向き、コンテキストサポート要素を除外することは、前記対角線方向に向いた走査経路中に位置するコンテキストサポート要素を除外することを備える、［３０］に記載のコンピュータプログラム製品。
［３３］  前記命令は、１つまたは複数のプロセッサに、前記変換係数に隣接し、前記変換係数の上にある第１の位置と、前記第１の位置に隣接し、前記第１の位置の上にある第２の位置と、前記変換係数に隣接し、前記変換係数の左にある第３の位置と、前記第３の位置に隣接し、前記第３の位置の左にある第４の位置と、前記第３の位置に隣接し、前記第３の位置の上にあり、前記第１の位置に隣接し、前記第１の位置の左にある第５の位置とを備えるコンテキストサポート近傍を使用して前記変換係数に関連する前記有効性情報をコーディングさせる、［３２］に記載のコンピュータプログラム製品。
［３４］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して水平方向に向き、コンテキストサポート要素を除外することは、前記水平方向に配向した走査経路からのコンテキストサポート要素を除外することを備える、［３０］に記載のコンピュータプログラム製品。
［３５］  前記走査経路は、前記変換係数を含む変換係数のブロックに対して垂直方向に向き、コンテキストサポート要素を除外することは、前記垂直方向に向いた走査経路からのコンテキストサポート要素を除外することを備える、［３０］に記載のコンピュータプログラム製品。
［３６］  前記コンテキストサポート近傍は、前記走査経路中にあるすべてのコンテキストサポート要素を除外する、［３０］に記載のコンピュータプログラム製品。
［３７］  前記コンテキストサポート近傍は、前記走査経路中にあり、かつ前記変換係数に隣接して位置するコンテキストサポート要素を除外する、［３０］に記載のコンピュータプログラム製品。
［３８］  変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定することと、
前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定することと、
前記有効性情報を走査するための並列スレッドの数を決定することと、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成することと、
を備える、ビデオデータをコーディングするための方法。
［３９］  前記優先度メトリックは１次優先度メトリックであり、
前記方法は、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された２次優先度メトリックを決定することと、
前記コンテキスト近傍、前記１次優先度メトリック、前記２次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成すること、をさらに備える［３８］に記載の方法。
［４０］  前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、［３８］に記載の方法。
［４１］  前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、［３８］に記載の方法。
［４２］  前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、［３８］に記載の方法。
［４３］  ビデオデータをコーディングすることは、ビデオデータを符号化することを備える、［３８］に記載の方法。
［４４］  ビデオデータをコーディングすることは、ビデオデータを復号することを備える、［３８］に記載の方法。
［４５］  変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定し、
前記有効性情報を走査するための走査順序の方向に影響を及ぼすように構成された優先度メトリックを決定し、
前記有効性情報を走査するための並列スレッドの数を決定し、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する
ように構成された１つまたは複数のプロセッサを備える、ビデオデータをコーディングするための装置。
［４６］  前記優先度メトリックは１次優先度メトリックであり、
前記１つまたは複数のプロセッサは、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された２次優先度メトリックを決定し、
前記コンテキスト近傍、前記１次優先度メトリック、前記２次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成するようにさらに構成された、［４５］に記載の装置。
［４７］  前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、［４５］に記載の装置。
［４８］  前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、［４５］に記載の装置。
［４９］  前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、［４５］に記載の装置。
［５０］  前記装置はビデオエンコーダを備える、［４５］に記載の装置。
［５１］  前記装置はビデオデコーダを備える、［４５］に記載の装置。
［５２］  変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定する手段と、
前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定する手段と、
前記有効性情報を走査するための並列スレッドの数を決定する手段と、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段と、
を備える、ビデオデータをコーディングするための装置。
［５３］  前記優先度メトリックは１次優先度メトリックであり、
前記装置は、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された２次優先度メトリックを決定し、
前記コンテキスト近傍、前記１次優先度メトリック、前記２次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成する手段をさらに備える、［５２］に記載の装置。
［５４］  前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、［５２］に記載の装置。
［５５］  前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、［５２］に記載の装置。
［５６］  前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、［５２］に記載の装置。
［５７］  実行されたとき、１つまたは複数のプロセッサに、
変換係数のブロックに関連する有効性情報をコーディングするためのコンテキスト近傍を決定させ、
前記有効性情報を走査するための走査順序の配向に影響を及ぼすように構成された優先度メトリックを決定させ、
前記有効性情報を走査するための並列スレッドの数を決定させ、
前記コンテキスト近傍、前記優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
［５８］  前記優先度メトリックは１次優先度メトリックであり、
前記命令は、１つまたは複数のプロセッサに、さらに、
前記有効性情報を走査するための前記走査順序の前記方向に影響を及ぼすように構成された２次優先度メトリックを決定させ、
前記コンテキスト近傍、前記１次優先度メトリック、前記２次優先度メトリック、および並列スレッドの前記数に基づいて、前記有効性情報を走査するための前記走査順序を生成させる、［５７］に記載の装置。
［５９］  前記優先度メトリックは、前記走査順序が垂直方向となるように、前記走査順序に垂直方向に影響を及ぼすように構成された、［５７］に記載の装置。
［６０］  前記優先度メトリックは、前記走査順序が対角線方向となるように、前記走査順序に対角線方向に影響を及ぼすように構成された、［５７］に記載の装置。
［６１］  前記優先度メトリックは、前記走査順序が水平方向となるように、前記走査順序に水平方向に影響を及ぼすように構成された、［５７］に記載の装置。
【図１】
0005886308.tif 000002
【図２】
0005886308.tif 000003
【図３】
0005886308.tif 000004
【図４】
0005886308.tif 000005
【図５Ａ】
0005886308.tif 000006
【図５Ｂ】
0005886308.tif 000007
【図５Ｃ】
0005886308.tif 000008
【図６Ａ】
0005886308.tif 000009
【図６Ｂ】
0005886308.tif 000010
【図７Ａ】
0005886308.tif 000011
【図７Ｂ】
0005886308.tif 000012
【図７Ｃ】
0005886308.tif 000013
【図８】
0005886308.tif 000014
【図９】
0005886308.tif 000015
【図１０Ａ】
0005886308.tif 000016
【図１０Ｂ】
0005886308.tif 000017
【図１１Ａ】
0005886308.tif 000018
【図１１Ｂ】
0005886308.tif 000019
【図１２Ａ】
0005886308.tif 000020
【図１２Ｂ】
0005886308.tif 000021
【図１３Ａ】
0005886308.tif 000022
【図１３Ｂ】
0005886308.tif 000023