(57)【特許請求の範囲】
【請求項１】
ビデオ符号化プロセスにおいて残差ビデオデータに関連する変換係数を符号化する方法であって、前記方法は、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を符号化することと、
前記有効変換係数を示す前記符号化された情報に基づいて前記ブロックのための有効性マップを形成すること、
を備える、方法。
【請求項２】
前記有効変換係数のレベルを示す情報を符号化すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記有効変換係数のレベルを示す情報を符号化することは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む、請求項２に記載の方法。
【請求項４】
前記逆走査方向における前に符号化された有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定すること
をさらに備える、請求項１に記載の方法。
【請求項５】
前に符号化された有効係数が、変換係数の前記ブロックを含む変換ブロックの外に位置する場合、前記前に符号化された有効係数のための符号化されたレベル情報が０であると仮定される、請求項４に記載の方法。
【請求項６】
前記走査は対角パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項４に記載の方法。
【請求項７】
前記走査は水平パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、請求項４に記載の方法。
【請求項８】
前記走査は垂直パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項４に記載の方法。
【請求項９】
ビデオ符号化プロセスにおいて残差ビデオデータに関連する変換係数を符号化するためのシステムであって、前記システムは、
変換係数のブロックを記憶するように構成されたメモリと、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を符号化するように構成されたビデオ符号化プロセッサとを備え、
前記ビデオ符号化プロセッサは、さらに、前記有効変換係数を示す前記符号化された情報に基づいて前記ブロックのための有効性マップを形成するように構成された、システム。
【請求項１０】
前記ビデオ符号化プロセッサは、前記有効変換係数のレベルを示す情報を符号化するようにさらに構成された、請求項９に記載のシステム。
【請求項１１】
前記ビデオ符号化プロセッサは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進んで、前記有効変換係数のレベルを示す情報を符号化するようにさらに構成された、請求項１０に記載のシステム。
【請求項１２】
前記ビデオ符号化プロセッサは、前記逆走査方向における前に符号化された有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定するようにさらに構成された、請求項９に記載のシステム。
【請求項１３】
前に符号化された有効係数が、変換係数の前記ブロックを含む変換ブロックの外に位置する場合、前記前に符号化された有効係数のための符号化されたレベル情報が０であると仮定される、請求項１２に記載の装置。
【請求項１４】
前記走査は対角パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項１２に記載のシステム。
【請求項１５】
前記走査は水平パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、請求項１２に記載のシステム。
【請求項１６】
前記走査は垂直パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項１２に記載のシステム。
【請求項１７】
ビデオ符号化プロセスにおいて残差ビデオデータに関連する変換係数を符号化するためのシステムであって、前記システムは、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を符号化する手段と、
前記有効変換係数を示す前記符号化された情報に基づいて前記ブロックのための有効性マップを形成する手段と、
を備える、システム。
【請求項１８】
前記有効変換係数のレベルを示す情報を符号化する手段
をさらに備える、請求項１７に記載のシステム。
【請求項１９】
前記有効変換係数のレベルを示す情報を符号化する前記手段は、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む、請求項１７に記載のシステム。
【請求項２０】
前記逆走査方向における前に符号化された有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定する手段
をさらに備える、請求項１８に記載のシステム。
【請求項２１】
前記走査は対角パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項２０に記載のシステム。
【請求項２２】
前記走査は水平パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、請求項２０に記載のシステム。
【請求項２３】
前記走査が垂直パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項２０に記載のシステム。
【請求項２４】
実行されたとき、ビデオ符号化プロセスにおいて残差ビデオデータに関連する変換係数を符号化するためのデバイスのプロセッサに、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を符号化させ、
前記有効変換係数を示す前記符号化された情報に基づいて前記ブロックのための有効性マップを形成させる、
命令を備えるコンピュータプログラム。
【請求項２５】
プロセッサに、さらに、
前記有効変換係数のレベルを示す情報を符号化させる、
請求項２４に記載のコンピュータプログラム。
【請求項２６】
プロセッサに、さらに、
変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進んで、前記有効変換係数のレベルを示す情報を符号化させる、
請求項２５に記載のコンピュータプログラム。
【請求項２７】
プロセッサに、さらに、
前記逆走査方向における前に符号化された有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定させる、
請求項２４に記載のコンピュータプログラム。
【請求項２８】
前記走査は対角パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項２７に記載のコンピュータプログラム。
【請求項２９】
前記走査は水平パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、請求項２７に記載のコンピュータプログラム。
【請求項３０】
前記走査は垂直パターンを有し、前記前に符号化された有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、請求項２７に記載のコンピュータプログラム。
【請求項３１】
ビデオ復号プロセスにおいて残差ビデオデータに関連する変換係数を復号する方法であって、前記方法は、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を復号することと、
前記有効変換係数を示す前記復号された情報に基づいて前記ブロックのための有効性マップを形成すること、
を備える、方法。
【請求項３２】
前記有効変換係数のレベルを示す情報を復号すること
をさらに備える、請求項３１に記載の方法。
【請求項３３】
前記有効変換係数のレベルを示す情報を復号することは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む、請求項３２に記載の方法。
【請求項３４】
ビデオ復号プロセスにおいて残差ビデオデータに関連する変換係数を復号するためのシステムであって、前記システムは、
変換係数のブロックを記憶するように構成されたメモリと、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を復号するように構成されたビデオ復号プロセッサを備え、
前記ビデオ復号プロセッサは、さらに、前記有効変換係数を示す前記復号された情報に基づいて前記ブロックのための有効性マップを形成するように構成された、システム。
【請求項３５】
前記ビデオ復号プロセッサは、前記有効変換係数のレベルを示す情報を復号するようにさらに構成された、請求項３４に記載のシステム。
【請求項３６】
前記ビデオ復号プロセッサは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進んで、前記有効変換係数のレベルを示す情報を復号するようにさらに構成された、請求項３５に記載のシステム。
【請求項３７】
ビデオ復号プロセスにおいて残差ビデオデータに関連する変換係数を復号するためのシステムであって、前記システムは、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を復号する手段と、
前記有効変換係数を示す前記復号された情報に基づいて前記ブロックのための有効性マップを形成する手段と、
を備える、システム。
【請求項３８】
実行されたとき、ビデオ復号プロセスにおいて残差ビデオデータに関連する変換係数を復号するためのデバイスのプロセッサに、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報を復号させ、
前記有効変換係数を示す前記復号された情報に基づいて前記ブロックのための有効性マップを形成させる、
命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その各々の全体が参照により本明細書に組み込まれる、２０１１年３月８日に出願された米国仮出願第６１／４５０，５５５号、２０１１年３月１０日に出願された米国仮出願第６１／４５１，４８５号、２０１１年３月１０日に出願された米国仮出願第６１／４５１，４９６号、２０１１年３月１４日に出願された米国仮出願第６１／４５２，３８４号、２０１１年６月８日に出願された米国仮出願第６１／４９４，８５５号、および２０１１年６月１５日に出願された米国仮出願第６１／４９７，３４５号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスによって生成される変換係数を走査し、コーディングするための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
[0005]インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに配列される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００６】
[0006]概して、本開示では、ビデオコーディングプロセスにおいて残差ビデオデータのブロックに関連する変換係数をコーディングするためのデバイスおよび方法について説明する。本開示で説明する技法、構造および方法は、変換係数をコーディングするためにエントロピーコーディング（たとえば、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding））を使用するビデオコーディングプロセスに適用可能である。本開示の態様は、有効性（significance）マップコーディングとレベルおよび符号コーディングとの両方のための走査順序の選択、ならびに選択された走査順序に整合するエントロピーコーディングのためのコンテキストの選択を含む。本開示の技法、構造および方法は、ビデオエンコーダとビデオデコーダとの両方における使用に適用可能である。
【０００７】
[0007]本開示では、変換係数の有効性マップと変換係数のレベルとの両方をコーディングするための走査順序を一致させることを提案する。すなわち、いくつかの例では、有効性マップコーディングとレベルコーディングとのための走査順序は、同じパターンおよび方向を有するべきである。別の例では、有効性マップのための走査順序が逆方向（すなわち、より高い周波数のための係数からより低い周波数のための係数へ）であるべきであることを提案する。さらに別の例では、有効性マップコーディングとレベルコーディングとのための走査順序は、各々が逆方向に進むように一意させるべきであることを提案する。
【０００８】
[0008]本開示では、いくつかの例では、変換係数がサブセットにおいて走査されることをも提案する。特に、変換係数は、走査順序に従っていくつかの連続する係数からなるサブセットにおいて走査される。そのようなサブセットは、有効性マップ走査と係数レベル走査との両方に適用可能であり得る。
【０００９】
[0009]さらに、本開示では、いくつかの例では、有効性マップ走査と係数レベル走査とが、連続する走査においておよび同じ走査順序に従って実行されることを提案する。一態様では、走査順序は逆方向走査順序である。連続する走査は、いくつかの走査パスからなり得る。各走査パスはシンタックス要素走査パスからなり得る。たとえば、第１の走査は（変換係数のレベルのビン０とも呼ばれる）有効性マップ走査であり、第２の走査は各サブセット中の変換係数のレベルのビン１の走査であり、第３の走査は各サブセット中の変換係数のレベルのビン２の走査であり得、第４の走査は変換係数のレベルの残りのビンの走査であり、第５の走査は変換係数のレベルの符号（sign）の走査である。符号（sign）パスは、有効性マップパスの後の任意のポイントにあり得る。さらに、パスごとに２つ以上のシンタックス要素をコーディングすることによって走査パスの数が低減され得る。たとえば、コード化ビンを使用したシンタックス要素のための１つの走査パスと、バイパスビン（たとえば、残りのレベルおよび符号（sign））を使用したシンタックス要素のための第２の走査パス。このコンテキストでは、ビンは、エントロピーコーディングされたビンストリングの一部である。所与の非バイナリ値シンタックス要素がバイナリシーケンス（いわゆるビンストリング）にマッピングされる。
【００１０】
[0010]本開示では、いくつかの例では、変換係数が、２つの異なるコンテキスト領域においてＣＡＢＡＣを使用してエントロピーコーディングされることをも提案する。第１のコンテキスト領域のためのコンテキスト導出は変換係数の位置に依存し、第２の領域のためのコンテキスト導出は変換係数の因果的ネイバー（causal neighbor）に依存する。別の例では、第２のコンテキスト領域は、変換係数のロケーションに応じて２つの異なるコンテキストモデルを使用することができる。
【００１１】
[0011]本開示の一例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有効変換係数を示す情報をコーディングすることを備える。
【００１２】
[0012]本開示の別の例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムを提案する。本システムは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有効変換係数を示す情報をコーディングするように構成されたビデオコーディングユニットを備える。
【００１３】
[0013]本開示の別の例では、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムを提案する。本システムは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有効変換係数を示す情報をコーディングする手段と、有効変換係数を示すコーディングされた情報に基づいて上記ブロックのための有効性マップを形成する手段とを備える。
【００１４】
[0014]本開示の別の例では、コンピュータプログラム製品は、実行されたとき、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのデバイスのプロセッサに、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有効変換係数を示す情報をコーディングさせる命令を記憶したコンピュータ可読記憶媒体を備える。
【００１５】
[0015]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】有効性マップコーディングプロセスを示す概念図。
【図２】有効性マップコーディングのための走査パターンと方向とを示す概念図。
【図３】変換ユニットのレベルコーディングのための走査技法を示す概念図。
【図４】例示的なビデオコーディングシステムを示すブロック図。
【図５】例示的なビデオエンコーダを示すブロック図。
【図６】有効性マップおよび係数レベルコーディングのための逆方向走査順序を示す概念図。
【図７】逆方向対角走査順序による変換係数の第１のサブセットを示す概念図。
【図８】逆方向水平走査順序による変換係数の第１のサブセットを示す概念図。
【図９】逆方向垂直走査順序による変換係数の第１のサブセットを示す概念図。
【図１０】有効性マップコーディングのためのコンテキスト領域を示す概念図。
【図１１】逆方向走査順序を使用した有効性マップコーディングのための例示的なコンテキスト領域を示す概念図。
【図１２】順方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバーを示す概念図。
【図１３】逆方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバーを示す概念図。
【図１４】逆方向走査順序を使用したエントロピーコーディングのための例示的なコンテキスト領域を示す概念図。
【図１５】逆方向走査順序を使用したエントロピーコーディングのための例示的な因果的ネイバーを示す概念図。
【図１６】逆方向走査順序を使用したＣＡＢＡＣのためのコンテキスト領域の別の例を示す概念図。
【図１７】逆方向走査順序を使用したＣＡＢＡＣのためのコンテキスト領域の別の例を示す概念図。
【図１８】逆方向走査順序を使用したＣＡＢＡＣのためのコンテキスト領域の別の例を示す概念図。
【図１９】例示的なエントロピーコーディングユニットを示すブロック図。
【図２０】例示的なビデオデコーダを示すブロック図。
【図２１】例示的なエントロピー復号ユニットを示すブロック図。
【図２２】一致させた走査順序を用いた有効性マップ走査および係数レベル走査とのための例示的なプロセスを示すフローチャート。
【図２３】有効性マップ走査と係数レベル走査とエントロピーコーディングコンテキスト導出とのための例示的なプロセスを示すフローチャート。
【図２４】有効性マップ走査と係数レベル走査とエントロピーコーディングコンテキスト導出とのための別の例示的なプロセスを示すフローチャート。
【図２５】有効性マップ走査と係数レベル走査とエントロピーコーディングコンテキスト導出とのための別の例示的なプロセスを示すフローチャート。
【図２６】逆走査方向を使用した有効性マップコーディングのための例示的なプロセスを示すフローチャート。
【図２７】変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャート。
【図２８】変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャート。
【図２９】変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャート。
【図３０】複数の領域を使用したエントロピーコーディングのための例示的なプロセスを示すフローチャート。
【発明を実施するための形態】
【００１７】
[0046]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用し得る。
【００１８】
[0047]一例として、Ｊｏｉｎｔ  Ｃｏｏｐｅｒａｔｉｖｅ  Ｔｅａｍ  ｆｏｒ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニットは、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。コーディングユニットは、（必ずしもそうであるとは限らないが）一般に方形であり、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、Ｈ．２６４または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【００１９】
[0048]望ましいコーディング効率を達成するために、コーディングユニット（ＣＵ）はビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とにさらに区分され得る。予測ユニットは、Ｈ．２６４規格などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。変換ユニット（ＴＵ）は、概して、変換係数を生成するために変換が適用される残差データのブロックを指す。
【００２０】
[0049]コーディングユニットは、通常、Ｙとして示されるルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプル数で表されるＵおよびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。
【００２１】
[0050]ブロック（たとえば、ビデオデータの予測ユニット）をコーディングするために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）またはインター（ＰまたはＢ）予測（すなわち時間的予測）のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム（またはスライス）中の隣接参照ブロック中の参照サンプルに関する空間的予測を使用してイントラコーディング（Ｉ）され得、他の予測ユニットは、前にコーディングされた他のフレーム（またはスライス）中の参照サンプルのブロックに関して単方向にインターコーディング（Ｐ）されるかまたは双方向にインターコーディング（Ｂ）され得る。各場合において、参照サンプルは、コーディングされるべきブロックの予測ブロックを形成するために使用され得る。
【００２２】
[0051]予測ブロックの識別時に、元のビデオデータブロックとそれの予測ブロックとの間の差分が決定される。この差分は予測残差データと呼ばれることがあり、コーディングされるべきブロック中のピクセル値と、コード化ブロックを表すように選択された予測ブロック中のピクセル値との間のピクセル差分を示す。より良好な圧縮を達成するために、予測残差データは、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネンレーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または別の変換を使用して変換され得る。
【００２３】
[0052]ＴＵなどの変換ブロック中の残差データは、空間的ピクセル領域に存在するピクセル差分値の２次元（２Ｄ）アレイで構成され得る。変換は、周波数領域などの変換領域において残差ピクセル値を変換係数の２次元アレイに変換する。さらなる圧縮のために、変換係数は、エントロピーコーディングに先立って量子化され得る。次いで、エントロピーコーダは、量子化された変換係数にコンテキスト適応型可変長コーディング（ＣＡＶＬＣ：Context Adaptive Variable Length Coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率間隔区分エントロピーコーディング（ＰＩＰＥ：Probability Interval Partitioning Entropy Coding）などのエントロピーコーディングを適用する。
【００２４】
[0053]量子化された変換係数のブロックをエントロピーコーディングするために、ブロック中の量子化された変換係数の２次元（２Ｄ）アレイが、特定の走査順序に従って変換係数の順序付き１次元（１Ｄ）アレイ、すなわちベクトルにおいて処理されるように、走査プロセスが通常実行される。エントロピーコーディングは変換係数の１Ｄ順序で適用される。変換ユニット中の量子化された変換係数の走査は、エントロピーコーダのために変換係数の２Ｄアレイをシリアル化する。有効（すなわち、非０）係数の位置を示すための有効性マップが生成され得る。走査は、有効（すなわち、非０）係数のレベルを走査するために、および／または有効係数の符号（sign）をコーディングするために適用され得る。
【００２５】
[0054]一例として、ＤＣＴでは、しばしば、２Ｄ変換ユニットの左上隅（すなわち、低周波数領域）のほうが非０係数の確率がより高くなる。係数のシリアル化ランの一方の端部において非０係数を一緒にグループ化する確率を増加させる方法で係数を走査して、０値係数がシリアル化ベクトルの別の端部のほうへ一緒にグループ化され、ゼロのランとしてより効率的にコーディングされることを可能にすることが望ましいことがある。この理由で、走査順序は効率的なエントロピーコーディングのために重要であり得る。
【００２６】
[0055]一例として、ＨＥＶＣ規格において量子化変換係数を走査する際に使用するために、いわゆる対角（または波面（wavefront））走査順序が採用されている。代替的に、ジグザグ、水平、垂直、または他の走査順序が使用され得る。変換および量子化を介して、上述のように、変換がＤＣＴである例では、非０変換係数は、概して、ブロックの左上領域のほうの低周波数エリアに位置する。その結果、最初に左上領域を横断（traverse）し得る対角走査プロセスの後に、非０変換係数は、通常、走査の前部分に位置する可能性が高くなる。最初に右下領域を横断する（traverse）対角走査プロセスの場合、非０変換係数は、通常、走査の後ろ部分に位置する可能性が高くなる。
【００２７】
[0056]走査方向に応じて、より高い周波数において低減されたエネルギーにより、また量子化の効果により、いくつかの０係数は、一般に、走査の一方の端部においてグループ化されることになり、これにより、ビット深度の低減により、いくつかの非０係数が０値係数になり得る。シリアル化１Ｄアレイ内の係数分布のこれらの特性は、コーディング効率を改善するためにエントロピーコーダ設計において利用され得る。言い換えれば、何らかの適切な走査順序を介して１Ｄアレイの一部分に非０係数が効果的に配置され得る場合、より良好なコーディング効率が、多くのエントロピーコーダの設計により期待され得る。
【００２８】
[0057]１Ｄアレイの一方の端部により多くの非０係数を配置するこの目的を達成するために、ビデオエンコーダデコーダ（コーデック）において、変換係数をコーディングするための異なる走査順序が使用され得る。ある場合には、対角走査が効果的であり得る。他の場合には、ジグザグ、垂直または水平走査など、異なるタイプの走査がより効果的であり得る。
【００２９】
[0058]異なる走査順序は様々な方法で生成され得る。１つの例は、変換係数の各ブロックについて、いくつかの利用可能な走査順序から「最良」の走査順序が選定され得ることである。次いで、ビデオエンコーダが、各ブロックについて、それぞれのインデックスによって示される走査順序のセットのうちの最良の走査順序のインデックスの指示をデコーダに与え得る。最良の走査順序の選択は、いくつかの走査順序を適用することと、１Ｄベクトルの始端または終端の近くに非０係数を配置する際に最も効果的である走査順序を選択することとによって決定され、それにより効率的なエントロピーコーディングが促進され得る。
【００３０】
[0059]別の例では、現在ブロックの走査順序は、予測モード（Ｉ、Ｂ、Ｐ）、ブロックサイズ、変換または他のファクタなど、関連する予測ユニットのコーディングに関係する様々なファクタに基づいて決定され得る。場合によっては、エンコーダ側とデコーダ側の両方において同じ情報、たとえば、予測モードが推論され得るので、デコーダに走査順序インデックスの指示を与える必要はないことがある。代わりに、ビデオデコーダは、ブロックの予測モードの知識と、予測モードを特定の走査順序にマッピングする１つまたは複数の基準とが与えられれば、適切な走査順序を示す構成データを記憶し得る。
【００３１】
[0060]コーディング効率をさらに改善するために、利用可能な走査順序は常に一定であるとは限らない。代わりに、たとえば、すでにコーディングされた係数に基づいて走査順序が適応的に調整されるように、何らかの適応が可能にされ得る。概して、走査順序適応は、選択された走査順序に従って、０および非０係数が一緒にグループ化される可能性が高いような方法で行われ得る。
【００３２】
[0061]いくつかのビデオコーデックでは、最初の利用可能な走査順序は、純（purely）水平、純垂直、純対角、または純ジグザグ走査など、極めて規則的な形態であり得る。代替的に、走査順序は、トレーニングプロセスを通して導出され得、したがって、いくぶんランダムであるように見え得る。トレーニングプロセスは、たとえば、上述のように、非０係数と０値係数との効率的な配置に関して望ましい結果を生成する走査順序を識別するための、ブロックまたは一連のブロックへの異なる走査順序の適用を伴い得る。
【００３３】
[0062]走査順序がトレーニングプロセスから導出される場合、または多種多様な走査順序が選択され得る場合、エンコーダ側とデコーダ側の両方において特定の走査順序を保存することが有益であり得る。そのような走査順序を指定するデータはかなりの量であり得る。たとえば、３２×３２変換ブロックでは、１つの走査順序は１０２４個の変換係数位置を含んでいることがある。様々なサイズのブロックがあり得、変換ブロックの各サイズについて、いくつかの異なる走査順序があり得るので、保存される必要があるデータの総量は無視できない。対角、水平、垂直またはジグザグ順序などの規則的走査順序は、ストレージを必要としないかまたは最小のストレージを必要とし得る。しかしながら、対角、水平、垂直またはジグザグ順序は、トレーニングされた走査順序と同等であるコーディング性能を与えるのに十分な多様性を与えないことがある。
【００３４】
[0063]１つの従来の例では、Ｈ．２６４と現在開発中のＨＥＶＣ規格のために、ＣＡＢＡＣエントロピーコーダが使用されるとき、変換ブロック（すなわち、ＨＥＶＣにおける変換ユニット）中の有効係数（すなわち、非０変換係数）の位置は、係数のレベルより前に符号化される。有効係数のロケーションをコーディングするプロセスは、有効性マップコーディングと呼ばれる。係数の有効性は、係数レベルのビン０と同じである。図１に示すように、量子化変換係数１１の有効性マップコーディングが有効性マップ１３を生成する。有効性マップ１３は１および０のマップであり、１は有効係数のロケーションを示す。有効性マップは、一般に、高い割合のビデオビットレートを必要とする。また、本開示の技法は、他のエントロピーコーダ（たとえば、ＰＩＰＥ）とともに使用するために適用可能であり得る。
【００３５】
[0064]有効性マップをコーディングするための例示的なプロセスは、Ｄ．Ｍａｒｐｅ、Ｈ．Ｓｃｈｗａｒｚ、およびＴ．Ｗｉｅｇａｎｄ「Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．１３、ｎｏ．７、２００３年７月、に記載されている。このプロセスでは、有効性マップは、コード化ブロックフラグ（ＣＢＦ：Coded Block Flag）によって示されるように、ブロック中に少なくとも１つの有効係数がある場合にコーディングされ、コード化ブロックフラグは次のように定義される。
【００３６】
コード化ブロックフラグ：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１ビットシンボルであり、これは、変換係数の単一のブロック内に有効、すなわち、非０係数があるかどうかを示し、これについてコード化ブロックパターンは非０エントリを示す。ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが０である場合、関係するブロックについてさらなる情報は送信されない。
【００３７】
[0065]ブロック中に有効係数がある場合、有効性マップは、以下のようにブロック中の変換係数の走査順序に従うことによって符号化される。
【００３８】
変換係数の走査：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが非０エントリを示すサブブロックの変換係数レベルの２次元アレイが、最初に、所与の走査パターンを使用して１次元リストにマッピングされる。言い換えれば、有効係数をもつサブブロックが走査パターンに従って走査される。
【００３９】
[0066]上記走査パターンを仮定すれば、有効性マップは以下のように走査される。
【００４０】
有効性マップ：ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが、ブロックが有効係数を有することを示す場合、バイナリ値有効性マップが符号化される。走査順序における各変換係数について、１ビットシンボルｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送信される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇシンボルが１である場合、すなわち、非０係数がこの走査位置に存在する場合、さらなる１ビットシンボルｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送られる。このシンボルは、現在の有効係数がブロック内の最後の有効係数であるかどうか、またはさらなる有効係数が続くかどうかを示す。最後の走査位置に達し、有効性マップ符号化が、値１のｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇによってまだ終了されていなかった場合、最後の係数が有効でなければならないことは明らかである。
【００４１】
[0067]ＨＥＶＣについての最近の提案はｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ  ｆｌａｇを除去した。それらの提案では、有効性マップを送る前に、最後有効係数の位置のＸおよびＹ位置の指示が送られる。
【００４２】
[0068]現在、ＨＥＶＣでは、有効性マップのために３つの走査パターン、すなわち、対角、垂直、および水平が使用されることが提案されている。図２に、ジグザグ走査１７と、垂直走査１９と、水平走査２１と、対角走査１５との一例を示す。図２に示すように、これらの走査の各々は順方向に、すなわち、変換ブロックの左上隅におけるより低い周波数の変換係数から変換ブロックの右下隅におけるより高い周波数の変換係数に進む。有効性マップがコーディングされた後、各有効変換係数（すなわち、係数値）のための残りのレベルの情報（ビン１〜Ｎ、ここでＮはビンの総数である）がコーディングされる。
【００４３】
[0069]Ｈ．２６４規格において前に規定されたＣＡＢＡＣプロセスでは、４×４サブブロックの処理の後に、変換係数レベルの各々が、たとえば、単項（unary）コードに従って、２値化されて、一連のビンが生成される。Ｈ．２６４では、各サブブロックのためのＣＡＢＡＣコンテキストモデルセットは、変換係数の絶対値を符号化するｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の第１のビンと（第１４のビンまでを含む）すべての残りのビンとの両方のための５つのモデルを有する５個のコンテキストモデル×２からなる。
【００４４】
特に、ＨＥＶＣの１つの提案されるバージョンでは、残りのビンはビン１とビン２とのみを含む。係数レベルの残りは、ゴロムライスコーディングと指数ゴロムコードとでコーディングされる。
【００４５】
[0070]ＨＥＶＣでは、コンテキストモデルの選択は、Ｈ．２６４規格について提案された元のＣＡＢＡＣプロセスの場合のように実行され得る。ただし、異なるサブブロックのためにコンテキストモデルの異なるセットが選択され得る。特に、所与のサブブロックのためのコンテキストモデルセットの選定は、前にコーディングされたサブブロックのいくつかの統計値に依存する。
【００４６】
[0071]図３に、変換ユニット２５中の変換係数のレベル（レベルの絶対値およびレベルの符号（sign））を符号化するためのＨＥＶＣプロセスの１つの提案されるバージョンが従う走査順序を示す。より大きいブロックの４×４サブブロックの走査のための順方向ジグザグパターン２７、および各サブブロック内の変換係数のレベルを走査するための逆方向ジグザグパターン２３があることに留意されたい。言い換えれば、一連の４×４サブブロックは、それらのサブブロックがシーケンスにおいて走査されるように、順方向ジグザグパターンで走査される。次いで、各サブブロック内で、サブブロック内の変換係数のレベルを走査するために逆方向ジグザグ走査が実行される。したがって、変換ユニットによって形成される２次元アレイ中の変換係数は、所与のサブブロック中で逆走査された係数の後に、次に続くサブブロック中で逆走査された係数が続くように、１次元アレイにシリアル化される。
【００４７】
[0072]一例では、図３に示すサブブロック走査手法に従って走査される係数のＣＡＢＡＣコーディングは、６０個のコンテキスト、すなわち、以下で説明するように分布された、それぞれ１０個のコンテキストの６つのセットを使用し得る。４×４ブロックの場合、表１に示すように、１０個のコンテキストモデルが使用され得る（ビン１のための５つのモデルと、ビン２〜１４のための５つのモデル）。
【表１】
0005864624.tif 000002
【００４８】
[0073]表１に従って、コンテキストセット中のコンテキストモデル０〜４のうちの１つが、ビン１のために使用され、それぞれ、サブブロック中で走査されている現在符号化されている係数が、サブブロック内で１よりも大きい係数が符号化された後に符号化される場合、現在符号化されている係数がサブブロック中で走査される最初の係数である、またはサブブロック中に後続の１がない（前に符号化された係数がない）場合、サブブロック中に１つの後続の１がある（すなわち、１は符号化されたが、１よりも大きい係数は符号化されていない）場合、サブブロック中に２つの後続の１がある場合、あるいはサブブロック中に３つ以上の後続の１がある場合、である。ビン２〜１４の各々について（ただし、ＨＥＶＣの現在提案されているバージョンは、ＣＡＢＡＣを使用してビン２のみをコーディングし、係数レベルの次に続くビンは指数ゴロムコードでコーディングされる）、コンテキストモデル０〜４のうちの１つが、使用され得、それぞれ、係数がサブブロック中で走査される最初の係数であるか、または１よりも大きい前にコーディングされた係数が０個である場合、１よりも大きい１つの前にコーディングされた係数がある場合、１よりも大きい２つの前にコーディングされた係数がある場合、１よりも大きい３つの前にコーディングされた係数がある場合、あるいは１よりも大きい４つの前にコーディングされた係数がある場合、である。
【００４９】
[0074]サブブロックの順方向走査における前のコード化４×４サブブロック中の１よりも大きい係数の数に応じて、これらの１０個のモデルの６つの異なるセットがある。
【表２】
0005864624.tif 000003
【００５０】
[0075]表２に従って、コンテキストモデルのセット０〜５が、所与のサブブロックのために使用され、それぞれ、サブブロックサイズが４×４であるとき、前にコーディングされたサブブロック中に１よりも大きい０〜３つの係数がある場合、前にコーディングされたサブブロック中に１よりも大きい４〜７つの係数がある場合、前にコーディングされたサブブロック中に１よりも大きい８〜１１個の係数がある場合、前にコーディングされたサブブロック中に１よりも大きい１２〜１５個の係数がある場合、あるいは所与のサブブロックが第１の４×４サブブロック（左上のサブブロック）であるか、または前にコーディングされたサブブロック中に１よりも大きい１６個の係数がある場合である。
【００５１】
[0076]Ｈ．２６４について上記で説明したコーディングプロセスと、ＨＥＶＣについて現在提案されているコーディングプロセスは、いくつかの欠点を有する。図３に示すように、１つの欠点は、係数レベルのための走査が、サブブロックの走査の場合は順方向に進むが（すなわち、左上のサブブロックから開始する）、次いで、各サブブロック内の係数レベルの走査の場合は逆方向に進む（すなわち、各サブブロック中の右下の係数から開始する）ことである。この手法は、ブロック内で往復して進むことを暗示し、これは、データフェッチをより複雑にし得る。
【００５２】
[0077]別の欠点は、係数レベルの走査順序が有効性マップの走査順序とは異なることから生じる。ＨＥＶＣでは、有効性マップのための３つの異なる提案される走査順序、すなわち、図２に示した順方向対角、順方向水平および順方向垂直がある。レベル走査が逆方向に進むので、有効係数走査のすべてが、ＨＥＶＣについて現在提案されている係数レベルの走査とは異なる。係数レベル走査の方向およびパターンが有効性走査の方向およびパターンと一致していないので、より多くの係数レベルが検査されなければならない。たとえば、有効性マップのために水平走査が使用され、係数の第１の行の終端において最後有効係数が見られると仮定する。ＨＥＶＣにおける係数レベル走査は、第１の行のみが０とは異なる係数レベルを実際に含んでいるとき、レベル走査のために複数の行にわたる対角走査を必要とするであろう。そのような走査プロセスは不要な非効率をもたらし得る。
【００５３】
[0078]ＨＥＶＣについての現在の提案では、有効性マップの走査は、ブロックの左上隅において見られるＤＣ係数からブロックの右下隅において一般に見られる最高周波数係数へ、ブロック中で順方向に進み、係数レベルのための走査は、各４×４サブブロック内で逆方向である。このことも、より複雑でより非効率的なデータフェッチを生じ得る。
【００５４】
[0079]現在のＨＥＶＣ提案に対する別の欠点はコンテキストセットから生じる。ＣＡＢＡＣのためのコンテキストセット（上記の表２参照）は、ブロックサイズ４×４の場合、他のブロックサイズの場合とは異なる。本開示によれば、異なるコンテキストセットを記憶することに専用であるメモリが少なくなるように、すべてのブロックサイズにわたってコンテキストを一致させることが望ましいであろう。
【００５５】
[0080]また、以下でより詳細に説明するように、ＨＥＶＣのための有効性マップのための現在提案されているＣＡＢＡＣコンテキストは、走査順序が順方向である場合のみ有効である。したがって、これは逆方向有効性マップ走査を可能にしないであろう。
【００５６】
[0081]さらに、量子化係数のレベルを符号化するための上記で説明したコンテキストは、係数レベルの局所相関を活用することを試みる。これらのコンテキストは、４×４サブブロックの間の相関（表２中のコンテキストセット参照）と各サブブロック内の相関（表１中のコンテキストモデル参照）とに依存する。これらのコンテキストの欠点は依存性があまりに低いことがある（すなわち、サブブロックごとに、いくつかの他の係数によって互いに分離された係数間に低い依存性がある）ことである。また、各サブブロック内で、依存性が弱いことがある。
【００５７】
[0082]本開示では、上記で説明した欠点の一部を減らすかまたはなくし得るいくつかの異なる特徴を提案する。いくつかの例では、これらの特徴は、ビデオコーディングにおいて変換係数のより効率的で一致させた走査順序を与え得る。本開示の他の例では、これらの特徴は、提案される走査順序に一致する変換係数のＣＡＢＡＣベースのエントロピーコーディングにおいて使用されるべきコンテキストのより効率的なセットを与える。本開示で説明する技法のすべては、独立して使用され得るかまたは任意の組合せで一緒に使用され得ることに留意されたい。
【００５８】
[0083]図４は、本開示の例による、変換係数をコーディングするための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図４に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化ビデオはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。
【００５９】
[0084]本開示の例による、変換係数をコーディングするための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００６０】
[0085]図４の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００６１】
[0086]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００６２】
[0087]ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００６３】
[0088]ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、または両方の組合せを含み得る。
【００６４】
[0089]図４の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００６５】
[0090]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００６６】
[0091]図４の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００６７】
[0092]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００６８】
[0093]図４には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００６９】
[0094]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００７０】
[0095]ビデオエンコーダ２０は、ビデオコーティングプロセスにおける変換係数の符号化を改善するために本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーティングプロセスにおける変換係数の復号を改善するためにこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【００７１】
[0096]本開示の一例では、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、走査順序に従って複数の変換係数のための有効係数を示す情報をコーディングすることと、上記走査順序に従って複数の変換係数のレベルを示す情報をコーディングすることとを行うように構成され得る。
【００７２】
[0097]本開示の別の例では、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数のブロック中の有効変換係数を示す情報をコーディングするように構成され得る。
【００７３】
[0098]本開示の別の例では、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダが、ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングするように構成され得る。ビデオコーダは、走査順序に基づいて変換係数のブロックを変換係数の１つまたは複数のサブセットに配置することと、各サブセット中の変換係数のレベルの第１の部分をコーディングすることと、レベルの第１の部分は各サブセット中の変換係数の少なくとも有効性を含み、各サブセット中の変換係数のレベルの第２の部分をコーディングすることとを行うように構成され得る。
【００７４】
[0099]本開示の別の例では、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーダが、走査順序に従って複数の変換係数のための有効係数を示す情報をコーディングすることと、コーディングされた情報を少なくとも第１の領域と第２の領域とに分割することと、コンテキスト導出基準を使用してコンテキストの第１のセットに従って第１の領域中のコーディングされた情報をエントロピーコーディングすることと、第１の領域と同じコンテキスト導出基準を使用してコンテキストの第２のセットに従って第２の領域中のコーディングされた情報をエントロピーコーディングすることとを行うように構成され得る。
【００７５】
[0100]図５は、本開示で説明する、変換係数をコーディングするための技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【００７６】
[0101]図５に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図５の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測モジュール４６と、参照フレームバッファ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図５に示す変換モジュール５２は、残差データのブロックに実際の変換を適用するモジュールであり、ＣＵの変換ユニット（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図５に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００７７】
[0102]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００７８】
[0103]モード選択ユニット４０は、たとえば、各モードについての誤差（すなわち、ひずみ）結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００７９】
[0104]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００８０】
[0105]動き推定ユニット４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。いくつかの例では、ビデオエンコーダ２０は、参照フレームバッファ６４に記憶された参照フレームのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照フレームの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在ＣＵの予測ユニットについての予測値を計算し得る。
【００８１】
[0106]イントラ予測モジュール４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックをイントラ予測符号化し得る。イントラ予測モジュール４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを符号化し得る。イントラ予測モジュール４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３３個の方向性予測モードで構成され得る。
【００８２】
[0107]イントラ予測モジュール４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測モジュール４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール４６は、次いで、ＰＵを加算器５０に送り得る。
【００８３】
[0108]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００８４】
[0109]変換モジュール５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換モジュール５２は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換などの変換をＴＵに適用して、変換係数を備えるビデオブロックを生成する。変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。次いで、エントロピー符号化ユニット５６が、指定された走査順序に従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット５６が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット５４などの他の処理ユニットが走査を実行し得ることを理解されたい。
【００８５】
[0110]上述のように、変換係数の走査は２つの走査を伴い得る。１つの走査は、有効性マップを形成するために係数のうちのどれが有効（すなわち、非０）であるかを識別し、別の走査は、変換係数のレベルをコーディングする。一例では、本開示では、ブロック中の係数レベルをコーディングするために使用される走査順序が、ブロックのための有効性マップ中の有効係数をコーディングするために使用される走査順序と同じであることを提案する。ＨＥＶＣでは、ブロックは変換ユニットであり得る。本明細書で使用する走査順序という用語は、走査の方向および／または走査のパターンのいずれかを指し得る。したがって、有効性マップと係数レベルとのための走査は、走査パターンおよび／または走査方向が同じであり得る。すなわち、一例として、有効性マップを形成するために使用される走査順序が順方向での水平走査パターンである場合、係数レベルのための走査順序も順方向での水平走査パターンであるべきである。同様に、別の例として、有効性マップのための走査順序が逆方向での垂直走査パターンである場合、係数レベルのための走査順序も逆方向での垂直走査パターンであるべきである。同じことが、対角、ジグザグまたは他の走査パターンに当てはまり得る。
【００８６】
[0111]図６に、変換係数のブロック、すなわち、変換ブロックのための逆方向走査順序の例を示す。変換ブロックは、たとえば、離散コサイン変換（ＤＣＴ）など、変換を使用して形成され得る。逆方向対角パターン９、逆方向ジグザグパターン２９、逆方向垂直パターン３１、および逆方向水平パターン３３の各々が、変換ブロックの右下隅におけるより高い周波数の係数から変換ブロックの左上隅におけるより低い周波数の係数に進むことに留意されたい。したがって、本開示の一態様は、有効性マップのコーディングと係数レベルのコーディングとのための統合された（unified）走査順序を提示する。提案される技法は、有効性マップのために使用される走査順序を係数レベルコーディングのために使用される走査順序に適用する。概して、水平、垂直および対角走査パターンは、うまく動作し、したがって追加の走査パターンの必要を低減することが示されている。ただし、本開示の一般的な技法は、任意の走査パターンとともに使用するために適用可能である。
【００８７】
[0112]別の態様によれば、本開示では、有効性走査が、変換ユニット中の最後有効係数から変換ユニット中の最初の係数（すなわち、ＤＣ係数）への、逆方向走査として実行されることを提案する。逆方向走査順序の例は図６に示されている。特に、有効性走査は、より高い周波数の位置における最後有効係数からより低い周波数の位置における有効係数に進み、最終的にＤＣ係数位置に進む。
【００８８】
[0113]逆方向走査を可能にするために、最後有効係数を識別するための技法が使用され得る。最後有効係数を識別するためのプロセスは、Ｊ．Ｓｏｌｅ、Ｒ．Ｊｏｓｈｉ、Ｉ．−Ｓ．Ｃｈｏｎｇ、Ｍ．Ｃｏｂａｎ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、「Parallel Context Processing for the significance map in high coding efficiency」、ＪＣＴＶＣ−Ｄ２６２、４ｔｈ  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｄａｅｇｕ、ＫＲ、２０１１年１月、に記載されており、また、「Encoding of the position of the last significant transform coefficient in video coding」と題する、Ｊｏｅｌ  Ｓｏｌｅ  Ｒｏｊａｌｓらの、２０１０年１２月３日に出願された米国仮特許出願第６１／４１９，７４０号に記載されている。ブロック中の最後有効係数が識別されると、逆方向走査順序が有効性マップと係数レベルとの両方に適用され得る。
【００８９】
[0114]本開示では、有効性走査および係数レベル走査が、それぞれ逆方向および順方向でなく、代わりに同じ走査方向、より詳細には、ブロック中でただ１つの方向を有することをも提案する。詳細には、有効性走査および係数レベル走査が、両方とも変換ユニット中の最後有効係数から最初の係数への逆方向走査順序を使用することを提案する。したがって、有効性走査は、最後有効係数から最初の係数（ＤＣ係数）へ逆方向に実行される（ＨＥＶＣについて現在提案されている走査に対する逆方向走査）。本開示のこの態様は、有効性マップのコーディングと係数レベルのコーディングとのための統合された単方向走査順序を提示する。特に、統合された単方向走査順序は、統合された逆方向走査順序であり得る。統合された逆方向走査パターンによる有効性走査と係数レベル走査とのための走査順序は、図６に示すように逆方向対角、逆方向ジグザグ、逆方向水平または逆方向垂直であり得る。ただし、任意の走査パターンが使用され得る。
【００９０】
[0115]ＣＡＢＡＣコンテキスト導出の目的のために図３に示したように２次元サブブロックにおいて係数のセットを定義する代わりに、本開示では、走査順序に従って連続的に走査されるいくつかの係数として係数のセットを定義することを提案する。特に、係数の各セットは、ブロック全体にわたる走査順序での連続する係数を備え得る。セットの任意のサイズが考えられ得るが、走査セット中の１６個の係数のサイズが、うまく動作することがわかっている。セットサイズは固定または適応型であり得る。この定義により、セットは、（サブブロック走査方法が使用される場合は）２Ｄブロック、（水平または垂直走査が使用される場合は）矩形、または（ジグザグまたは対角走査が使用される場合は）対角形であることが可能になる。係数の対角形セットは、対角形状の一部、連続する対角形状、または連続する対角形状の一部であり得る。
【００９１】
[0116]図７〜図９に、固定４×４ブロックに配置される以外に、特定の走査順序に従って１６個の係数のサブセットに配置された係数の例を示す。図７は、逆方向対角走査順序における最初の１６個の係数からなる１６個の係数のサブセット５１を示している。次のサブセットは、この例では、単に、逆方向対角走査順序に沿った次の１６個の連続する係数からなるであろう。同様に、図８は、逆方向水平走査順序における最初の１６個の係数のための１６個の係数のサブセット５３を示している。図９は、逆方向垂直走査順序における最初の１６個の係数のための１６個の係数のサブセット５５を示している。
【００９２】
[0117]この技法は、有効性マップのための走査順序と同じである係数レベルのための走査順序に適合する。この場合、図３に示した走査順序など、係数レベルのための異なる（および時々煩雑な）走査順序の必要がない。係数レベル走査は、ＨＥＶＣについて現在提案されている有効性マップ走査のように、変換ユニット中の最後有効係数の位置からＤＣ係数位置に進む順方向走査として形成され得る。
【００９３】
[0118]ＨＥＶＣにおいて現在提案されているように、ＣＡＢＡＣを使用したエントロピーコーディングの場合、変換係数は以下のようにして符号化される。最初に、有効性マップを符号化するための、完全変換ユニット上の（有効性マップ走査順序における）１つのパスがある。次いで、レベルのビン１（第１のパス）と、係数レベルの残り（第２のパス）と、係数レベルの符号（sign）（第３のパス）とを符号化するための（係数レベル走査順序における）３つのパスがある。係数レベルコーディングのためのこれらの３つのパスは完全変換ユニットに対して行われない。代わりに、各パスは、図３に示したように、４×４サブブロックにおいて行われる。３つのパスが１つのサブブロックにおいて完了したとき、次のサブブロックは、同じ３つの符号化パスを連続的に実行することによって処理される。この手法は符号化の並列化を可能にする。
【００９４】
[0119]上記で説明したように、本開示では、係数レベルのための走査順序が、有効性マップを形成するための有効係数の走査順序と同じであるように、より一致させた方法で変換係数を走査することを提案する。さらに、係数レベルと有効係数とのための走査が、ブロック中の最後有効係数からブロック中の最初の係数（ＤＣ成分）に進む逆方向に実行されることを提案する。この逆方向走査は、現在提案されているようにＨＥＶＣに従って有効係数のために使用される走査の逆である。
【００９５】
[0120]図７〜図９を参照しながら前に説明したように、本開示では、（有効性マップを含む）係数レベルのためのコンテキストがサブセットに分割されることをさらに提案する。すなわち、係数の各サブセットについてコンテキストが決定される。したがって、この例では、必ずしも同じコンテキストが係数の走査全体のために使用されるとは限らない。代わりに、変換ブロック内の係数の異なるサブセットが、各サブセットについて個別に決定された異なるコンテキストを有し得る。各サブセットは、走査順序で連続的に走査された係数の１次元アレイを備え得る。したがって、係数レベル走査は最後有効係数から最初の係数（ＤＣ成分）に進み、その場合、その走査は、走査順序に従って連続的に走査された係数の異なるサブセットにおいて概念的に区分される。たとえば、各サブセットは、特定の走査順序について、ｎ個の連続的に走査された係数を含み得る。サブセット中の係数をそれらの走査順序に従ってグループ化することは、係数間のより良い相関を実現し、したがってより効率的なエントロピーコーディングを実現し得る。
【００９６】
[0121]本開示では、有効性マップのための追加のパスを含むために係数レベルのいくつかのパスの概念を拡張することによって変換係数のＣＡＢＡＣベースのエントロピーコーディングの並列化を高めることをさらに提案する。したがって、４つのパスを用いた一例は、すべて同じ走査順序での、（１）たとえば、有効性マップを形成するための、変換係数のための有効係数フラグ値のコーディングと、（２）変換係数のためのレベル値のビン１のコーディングと、（３）係数レベル値の残りのビンのコーディングと、（４）係数レベルの符号のコーディングとを含み得る。本開示で説明する技法を使用して、上記で概説した４パスコーディングが可能になり得る。すなわち、高周波数係数から低周波数係数へ逆方向に進む、同じ走査順序で、有効係数と変換係数のためのレベルとを走査することは、上記で説明した複数パスコーディング技法の性能をサポートする。
【００９７】
[0122]別の例では、５パス走査技法が、（１）たとえば、有効性マップを形成するための、変換係数のための有効係数フラグ値のコーディングと、（２）変換係数のためのレベル値のビン１のコーディングと、（３）変換係数のためのレベル値のビン２のコーディングと、（４）（たとえば、バイパスモードで）係数レベルの符号をコーディングすることと、（５）（たとえば、バイパスモードでの）係数レベル値の残りのビンのコーディングとを含み得、すべてのパスは同じ走査順序を使用する。
【００９８】
[0123]より少数のパスを用いた一例も採用され得る。たとえば、レベル情報と符号（sign）情報とが並列に処理される２パス走査は、（１）パスにおいて標準パスビン（たとえば、有効性、ビン１レベル、およびビン２レベル）をコーディングすることと、（２）別のパスにおいてバイパスビン（たとえば、残りのレベルおよび符号）をコーディングすることとを含み得、各パスは同じ走査順序を使用する。標準ビンは、コンテキスト導出基準によって決定された更新されたコンテキストを使用してＣＡＢＡＣで符号化されるビンである。たとえば、以下でより詳細に説明するように、コンテキスト導出基準は、現在の変換係数に対する因果的ネイバー（causal neighbor）係数のコーディングされたレベル情報を含み得る。バイパスビンは、固定コンテキストを有する、ＣＡＢＡＣで符号化されるビンである。
【００９９】
[0124]上記で説明したいくつかの走査パスの例は、係数レベルの第１の部分の第１の走査パスであって、第１の部分が有効性パスを含む、第１の走査パスと、係数レベルの第２の部分の第２の走査パスとを含むものとして一般化され得る。
【０１００】
[0125]上記で与えた例の各々では、パスは各サブセットにおいて連続的に実行され得る。連続的に走査された係数を備える１次元サブセットの使用が望ましいことがあるが、複数パス方法は、４×４サブブロックなど、サブブロックにも適用され得る。連続的に走査されたサブセットのための例示的な２パスおよび４パスプロセスを以下でより詳細に概説する。
【０１０１】
[0126]簡略化された２パスプロセスでは、変換ユニットの各サブセットについて、第１のパスは、走査順序に従ってサブセット中の係数の有効性をコーディングし、第２のパスは、同じ走査順序に従ってサブセット中の係数の係数レベルをコーディングする。走査順序は、走査方向（順方向または逆方向）と走査パターン（たとえば、水平、垂直、または対角）とによって特徴づけられ得る。そのアルゴリズムは、上記で説明したように、各サブセット中の両方のパスが同じ走査順序に従う場合、並列処理により適していることがある。
【０１０２】
[0127]より改良された４パスプロセスでは、変換ユニットの各サブセットについて、第１のパスは、サブセット中の係数の有効性をコーディングし、第２のパスは、サブセット中の係数の係数レベルのビン１をコーディングし、第３のパスは、サブセット中の係数の係数レベルの残りのビンをコーディングし、第４のパスは、サブセット中の係数の係数レベルの符号（sign）をコーディングする。この場合も、並列処理により適しているように、各サブセット中のすべてのパスが同じ走査順序を有するべきである。上記で説明したように、逆方向を用いた走査順序が、うまく動作することが示されている。第４のパス（すなわち、係数レベルの符号のコーディング）は、第１のパス（すなわち、有効性マップのコーディング）の直後に、または係数レベルの残りの値のパスの直前に行われ得ることに留意されたい。
【０１０３】
[0128]いくつかの変換サイズでは、サブセットは変換ユニット全体であり得る。この場合、変換ユニット全体のための有効係数のすべてに対応する単一のサブセットがあり、有効性走査とレベル走査とは同じ走査順序で進む。この場合、サブセット中の限られた数のｎ（たとえば、ｎ＝１６）個の係数の代わりに、サブセットは変換ユニットのための単一のサブセットであり得、単一のサブセットはすべての有効係数を含む。
【０１０４】
[0129]図５に戻ると、変換係数が走査された後、エントロピー符号化ユニット５６は、それらの係数にＣＡＶＬＣまたはＣＡＢＡＣなどのエントロピーコーディングを適用し得る。さらに、エントロピー符号化ユニット５６は、動きベクトル（ＭＶ：motion vector）情報と、ビデオデコーダ３０においてビデオデータを復号する際に有用な様々なシンタックス要素のいずれかと、を符号化し得る。シンタックス要素は、特定の係数が有効（たとえば、非０）であるかどうかを示す有効係数フラグをもつ有効性マップ、および特定の係数が最後有効係数であるかどうかを示す最後有効係数フラグを含み得る。ビデオデコーダ３０は、これらのシンタックス要素を使用して符号化ビデオデータを再構成し得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【０１０５】
[0130]シンタックス要素をエントロピー符号化するために、エントロピー符号化ユニット５６は、ＣＡＢＡＣを実行し、たとえば、前に走査されたＮ個の係数の中の有効係数の数に基づいてコンテキストモデルを選択し得、ただし、Ｎは、走査されているブロックのサイズに関係し得る整数値である。エントロピー符号化ユニット５６はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測データがイントラ予測モードを使用して予測されたとき、エントロピー符号化ユニット５６はさらに、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。
【０１０６】
[0131]さらに、本開示の別の態様によれば、ＣＡＢＡＣのためのコンテキストが係数のサブセット（たとえば、図７〜図９に示したサブセット）に分割されることを提案する。各サブセットがブロック全体にわたる走査順序での連続する係数から構成されることを提案する。サブセットの任意のサイズが考えられ得るが、走査サブセット中の１６個の係数のサイズが、うまく動作することがわかっている。この例では、サブセットは、走査順序での１６個の連続する係数であり得、操作順序は、サブブロック、対角、ジグザグ、水平、および垂直走査パターンを含む、任意の走査パターンであり得る。この提案によれば、係数レベル走査はブロック中の最後有効係数から進む。したがって、係数レベル走査は最後有効係数からブロック中の最初の係数（ＤＣ成分）に進み、その場合、その走査は、適用すべきコンテキストを導出するために係数の異なるサブセットにおいて概念的に区分される。たとえば、その走査は、走査順序でのｎ個の連続する係数のサブセットにおいて定められる（is arranged）。最後有効係数は、（ブロックの右下隅の近くで一般に見られる）ブロックの最高周波数係数からブロックのＤＣ係数（ブロックの左上隅）に向かう逆方向走査において遭遇する最初の有効係数である。
【０１０７】
[0132]本開示の別の態様では、ＣＡＢＡＣコンテキスト導出基準がすべてのブロックサイズについて一致させることを提案する。言い換えれば、上記で説明したようにブロックサイズに基づいて異なるコンテキスト導出を有する代わりに、あらゆるブロックサイズがＣＡＢＡＣコンテキストの同じ導出に依拠することになる。この方法では、ブロックのためのＣＡＢＡＣコンテキストを導出するために特定のブロックサイズを考慮に入れる必要がない。また、コンテキスト導出は、有効性コーディングと係数レベルコーディングとの両方に対して同じである。
【０１０８】
[0133]また、ＣＡＢＡＣコンテキストセットが、サブセットがサブセット０（最低周波数のための係数をもつサブセットとして定義され、すなわち、ＤＣ係数と隣接低周波係数とを含んでいる）であるか否か（すなわち、コンテキスト導出基準）に依存することを提案する。以下の表３ａおよび表３ｂを参照されたい。
【表３】
0005864624.tif 000004
【０１０９】
[0134]上記の表３ａに従って、コンテキストモデルのセット０〜２は、それぞれ、前にコーディングされたサブセット中に１よりも大きい係数が０個である場合、前にコーディングされたサブセット中に１よりも大きい１つの係数がある場合、または前にコーディングされたサブセット中に１よりも大きい２つ以上の係数がある場合に、最低周波数走査サブセット（すなわち、ｎ個の連続する係数のセット）のために使用される。コンテキストモデルのセット３〜５は、それぞれ、前にコーディングされたサブセット中にの１よりも大きい係数が０個である場合、前にコーディングされたサブセット中に１よりも大きい１つの係数がある場合、または前にコーディングされたサブセット中に１よりも大きい２つ以上の係数がある場合、最低周波数サブセットよりも高いすべてのサブセットのために使用される。
【表４】
0005864624.tif 000005
【０１１０】
[0135]表３ｂは、前のサブセット中の１よりも大きい係数の数のより正確なカウントを考慮するので良好な性能を示した、コンテキストセットの表を示している。表３ｂは、上記の表３ａの代替として使用され得る。
【０１１１】
[0136]表３ｃに、同じく代替的に使用され得るコンテキスト導出基準を用いた簡略化されたコンテキストセットの表を示す。
【表５】
0005864624.tif 000006
【０１１２】
[0137]さらに、変換ユニット中の最後有効係数を含んでいるサブセットが、一意の（unique）コンテキストセットを利用し得る。
【０１１３】
[0138]本開示では、サブセットのためのコンテキストが、前のサブセット中の１よりも大きい係数の数になお依存することをも提案する。たとえば、前のサブセット中の係数の数がスライディングウィンドウである場合、この数をｕｉＮｕｍＯｎｅとする。現在のサブ走査セットのためのコンテキストを決定するためにこの値が検査されると、その値は０に設定されない。代わりに、この値は正規化される（たとえば、ｕｉＮｕｍＯｎｅ＞＞＝２と等価であるｕｉＮｕｍＯｎｅ＝ｕｉＮｕｍＯｎｅ／４、またはｕｉＮｕｍＯｎｅ＞＞＝１と等価であるｕｉＮｕｍＯｎｅ＝ｕｉＮｕｍＯｎｅ／２を使用する）。これを行うことによって、現在コーディングされているサブセットのためのＣＡＢＡＣコンテキスト決定におけるより小さい重みを仮定すれば、直前のサブセットより前のサブセットの値がさらに考慮され得る。特に、所与のサブセットのためのＣＡＢＡＣコンテキスト決定は、直前のサブセット中の１よりも大きい係数の数だけでなく、前にコーディングされたサブセット中の１よりも大きい係数の重み付けされた数をも考慮に入れる。
【０１１４】
[0139]さらに、コンテキストセットは、（１）現在走査されているサブセット中の有効係数の数と、（２）現在のサブセットが、有効係数をもつ最後のサブセットであるかどうか（すなわち、逆方向走査順序を使用すると、これは、そのサブセットが、その係数レベルについて走査された最初のサブセットであるか否かを指す）とに依存することがある。さらに、係数レベルのためのコンテキストモデルは、現在の係数が最後の係数であるかどうかに依存することがある。
【０１１５】
[0140]ＨＥＶＣにおいて変換係数の１６×１６および３２×３２ブロックの有効性マップコーディングについて極めて適応型のコンテキスト選択手法がすでに提案されている。このコンテキスト選択手法はすべてのブロックサイズに拡張され得ることに留意されたい。図１０に示すように、この手法は１６×１６ブロックを４つの領域に分割し、ここで、より低い周波数の領域４１中の各係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［０，０］、［０，１］、［１，０］、［１，１］における左上隅における４つの係数であり、ここで、［０，０］は左上隅、ＤＣ係数を示す）はそれ自体のコンテキストを有し、上領域３７中の係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［２，０］から［１５，０］までの最上行における係数）は３つのコンテキストを共有し、左領域３５中の係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［０，２］から［０，１５］までの左列における係数）は別の３つのコンテキストを共有し、残りの領域３９中の係数（１６×１６ブロック中の残りの係数）は５つのコンテキストを共有する。領域３９中の変換係数Ｘのためのコンテキスト選択は、一例として、５つの変換係数Ｂ、Ｅ、Ｆ、Ｈ、およびＩの最大値の有効性の和に基づく。Ｘが、走査方向（この例では、ジグザグまたは対角走査パターン）に沿ったＸの同じ対角線上の他の位置とは無関係であるので、走査順序における対角線に沿った変換係数の有効性のコンテキストは、走査順序における前の対角線から並列に計算され得る。
【０１１６】
[0141]図１０に示す、有効性マップのための提案されるコンテキストは、逆方向走査が使用される場合はコンテキストがデコーダにおいて非因果的になるので、走査順序が順方向である場合のみ有効である。すなわち、デコーダは、逆方向走査が使用される場合、図１０に示す係数Ｂ、Ｅ、Ｆ、ＨおよびＩをまだ復号していない。その結果、ビットストリームは復号可能でない。
【０１１７】
[0142]しかしながら、本開示では、逆走査方向の使用を提案する。したがって、有効性マップは、図６に示したように、走査順序が逆方向であるとき、係数の間の関係する相関を有する。したがって、有効性マップのための逆方向走査を使用することは、上記で説明したように、望ましいコーディング効率を与える。また、有効性マップのための逆方向走査の使用は、係数レベルと有効性マップとのコーディングのために使用される走査を一致させるのに役立つ。有効係数の逆方向走査をサポートするために、コンテキストは、それらが逆方向走査に適合するように変更される必要がある。有効係数のコーディングが、逆方向走査に関して因果的であるコンテキストを利用することを提案する。
【０１１８】
[0143]本開示では、一例では、図１１に示すコンテキストを利用する有効性マップコーディングのための技法をさらに提案する。より低い周波数の領域４３中の各係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［０，０］、［０，１］、［１，０］における左上隅における３つの係数であり、ここで、［０，０］は左上隅、ＤＣ係数を示す）はそれ自体のコンテキスト導出を有する。上領域４５中の係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［２，０］から［１５，０］までの最上行における係数）は、上領域４５中の２つの前の係数（たとえば、コーディングされるべき係数のすぐ右の２つの係数であり、ここで、そのような係数は、逆方向走査を仮定すれば、復号目的のための因果的ネイバーである）の有効性に依存するコンテキストを有する。左領域４７中の係数（１６×１６ブロックの例では、ｘ，ｙ座標位置［０，２］から［０，１５］までの左列における係数）は、２つの前の係数（たとえば、コーディングされるべき係数のすぐ下の２つの係数であり、ここで、そのような係数は、逆方向走査配向（orientation）を仮定すれば、復号目的のための因果的ネイバー（causal neighbor）である）の有効性に依存するコンテキストを有する。図１１中の上領域４５と左領域４７との中のこれらのコンテキストは、図１０に示したコンテキスト（たとえば、図１０において、上領域３７中の係数は、左の係数に依存するコンテキストを有し、左領域３５中の係数は、上の係数に依存するコンテキストを有する）の逆であることに留意されたい。図１１に戻ると、残りの領域４９中の係数（すなわち、より低い周波数の領域４３と、上領域４５と、左領域４７との外の残りの係数）のためのコンテキストは、Ｉ、Ｈ、Ｆ、Ｅ、およびＢで示された位置における係数の有効性の和（または他の関数）に依存する。
【０１１９】
[0144]別の例では、上領域４５と左領域４７との中の係数は、領域４９中の係数とまったく同じコンテキスト導出を使用し得る。逆方向走査では、それは、Ｉ、Ｈ、Ｆ、Ｅ、およびＢで示された隣接位置が上領域４５と左領域４７との中の係数のために利用可能であるので、可能である。行／列の端部において、因果的係数Ｉ、Ｈ、Ｆ、ＥおよびＢのための位置はブロック外にあり得る。その場合、そのような係数の値は０（すなわち、非有効）であると仮定される。
【０１２０】
[0145]コンテキストを選定する際に多くのオプションがある。基本概念は、走査順序に従ってすでにコーディングされた係数の有効性を使用することである。図１０に示した例では、位置Ｘにおける係数のコンテキストは、位置Ｂ、Ｅ、Ｆ、ＨおよびＩにおける係数の有効性の和に基づいて導出される。これらのコンテキスト係数は、有効性マップについて本開示で提案する逆方向走査順序において現在の係数の前に来る。順方向走査において因果的だったコンテキストは、逆方向走査順序において非因果的に（利用可能でなく）なる。この問題に対処するための方法は、図１０中の従来の場合のコンテキストを、逆方向走査のために図１１に示すコンテキストにミラーリングすることである。最後有効係数からＤＣ係数位置へ逆方向に進む有効性走査の場合、係数Ｘのためのコンテキスト近傍は係数Ｂ、Ｅ、Ｆ、Ｈ、Ｉから構成され、それらの係数は、係数Ｘの位置に対してより高い周波数の位置に関連し、それらの係数は、係数Ｘのコーディングより前に、逆方向走査において、エンコーダまたはデコーダによってすでに処理されている。
【０１２１】
[0146]上記で説明したように、表１および表２に示したコンテキストおよびコンテキストモデルは、４×４サブブロックの間の係数レベルの局所相関を活用することを試みる。しかしながら、その依存性はあまりに低いことがある。すなわち、たとえば、サブブロックごとに、いくつかの係数によって互いに分離された係数間に低い依存性があることがある。また、各サブブロック内で、係数間の依存性が弱いことがある。本開示では、より局所のコンテキスト近傍を活用する係数レベルのためのコンテキストのセットの作成によってこれらの問題に対処するための技法について説明する。
【０１２２】
[0147]本開示では、たとえば、ＨＥＶＣまたは他の規格によるビデオコーディングにおいて、変換係数レベルのコンテキストの導出のための局所近傍を使用することを提案する。この近傍は、現在の係数のレベルとの高い相関を有する、すでに符号化された（または復号された）係数から構成される。それらの係数は、コーディングされるべき係数に空間的に隣接し得、図１１または図１３に示すような、コーディングされるべき係数の境界を画定する係数と他の近くの係数との両方を含み得る。特に、コンテキスト導出のために使用される係数はサブブロックまたは前のサブブロックに制約されない。代わりに、局所近傍は、コーディングされるべき係数の近くに空間的に位置する係数を備え得るが、それらの係数は、それらの係数がサブブロックに配置される場合、必ずしも、コーディングされるべき係数と同じサブブロック中に存在するとは限らず、または互いと同じサブブロック中に存在するとは限らないであろう。固定サブブロック中に位置する係数に依拠するのではなく、本開示では、使用される特定の走査順序を仮定すれば、利用可能である（すなわち、すでにコーディングされた）隣接係数を使用することを提案する。
【０１２３】
[0148]たとえば、前にコーディングされた係数サブセットに基づいて、異なる係数サブセットのために異なるＣＡＢＡＣコンテキストセットが指定され得る。所与の係数サブセット内で、コンテキストは、コンテキスト近傍と呼ばれることがある、局所近傍の係数に基づいて導出される。本開示によれば、コンテキスト近傍の一例が図１２に示されている。コンテキスト近傍中の係数は、コーディングされるべき係数の近くに空間的に位置し得る。
【０１２４】
[0149]図１２に示すように、順方向走査の場合、変換係数Ｘのためのレベルのコンテキストは、係数Ｂ、Ｅ、Ｆ、Ｈ、およびＩの値に依存する。順方向走査では、係数Ｂ、Ｅ、Ｆ、Ｈ、およびＩは、係数Ｘの位置に対してより低い周波数の位置に関連し、それらの係数は、係数Ｘのコーディングより前にエンコーダまたはデコーダによってすでに処理されている。
【０１２５】
[0150]ＣＡＢＡＣのためのビン１を符号化するために、コンテキストは、このコンテキスト近傍中の有効係数（すなわち、この例では、係数Ｂ、Ｅ、Ｆ、ＨおよびＩ）の数の和に依存する。コンテキスト近傍中の係数がブロックの外に出る場合、すなわち、データ損失により、その値は、係数Ｘのコンテキストを決定するために、０であると見なされ得る。ＣＡＢＡＣのためのビンの残りを符号化するために、コンテキストは、１に等しい近傍中の係数の数の和に、ならびに１よりも大きい近傍中の係数の数の和に依存する。別の例では、ビン１のためのコンテキストは、局所コンテキスト近傍中の係数のビン１値の和に依存し得る。別の例では、ビン１のためのコンテキストは、このコンテキスト近傍中の有効係数の和とビン１値の和との組合せに依存し得る。
【０１２６】
[0151]コンテキスト近傍の選択のための多くの候補がある。ただし、コンテキスト近傍は、エンコーダおよびデコーダが両方とも同じ情報へのアクセスを有するような係数から構成されるべきである。特に、近傍中の係数Ｂ、Ｆ、Ｅ、Ｉ、およびＨは、それらが、前に符号化または復号されており、係数Ｘのためのコンテキストを決定する際に参照のために利用可能であるという意味で、因果的ネイバーであるべきである。
【０１２７】
[0152]図１２を参照しながら上記で説明したコンテキストは多くの候補のうちの１つである。そのようなコンテキストは、ＨＥＶＣにおける使用について現在提案されている３つの走査、すなわち、対角、水平および垂直のいずれかに適用され得る。本開示では、係数レベルのためのコンテキストを導出するために使用されるコンテキスト近傍が、有効性マップのためのコンテキストを導出するために使用されるコンテキスト近傍と同じであり得ることを提案する。たとえば、係数レベルのためのコンテキストを導出するために使用されるコンテキスト近傍は、有効性マップのコーディングの場合のように、局所近傍であり得る。
【０１２８】
[0153]上記でより詳細に説明したように、本開示では、有効性マップを形成するための有効係数の走査のための逆方向走査順序の使用を提案する。逆方向走査順序は、図６に示したように逆方向ジグザグパターン、垂直パターンまたは水平パターンであり得る。係数レベル走査のための走査順序も逆方向パターンである場合、図１２に示すコンテキスト近傍は非因果的になるであろう。本開示では、そのコンテキスト近傍が逆方向走査順序に関して因果的であるように、そのコンテキスト近傍の位置を反転させることを提案する。図１３に、逆方向走査順序のためのコンテキスト近傍の一例を示す。
【０１２９】
[0154]図１３に示すように、最後有効係数からＤＣ係数位置へ逆方向に進むレベル走査の場合、係数Ｘのためのコンテキスト近傍は係数Ｂ、Ｅ、Ｆ、Ｈ、およびＩから構成され、それらの係数は、係数Ｘの位置に対してより高い周波数の位置に関連する。逆方向走査を仮定すれば、係数Ｂ、Ｅ、Ｆ、Ｈ、およびＩは、係数Ｘのコーディングより前に、エンコーダまたはデコーダによってすでに処理されており、したがって、それらの係数が利用可能であるという意味で、因果的である。同様に、このコンテキスト近傍は係数レベルに適用され得る。
【０１３０】
[0155]本開示では、一例では、逆方向走査をサポートするために選択されたコンテキストを利用する有効性マップコーディングのための別の技法をさらに提案する。上記で説明したように、変換係数の１６×１６および３２×３２ブロックの有効性マップコーディングのためにＨＥＶＣについて極めて適応型のコンテキスト選択手法が提案されている。たとえば、上記で図１０に関して説明したように、この手法は１６×１６ブロックを４つの領域に分割し、ここで、領域４１中の各位置はそれ自体のコンテキストセットを有し、領域３７はコンテキストを有し、領域３５は別の３つのコンテキストを有し、領域３９は５つのコンテキストを有する。変換係数Ｘのためのコンテキスト選択は、一例として、５つの位置Ｂ、Ｅ、Ｆ、Ｈ、Ｉの最大値の有効性の和に基づく。Ｘが、走査方向に沿ったＸの同じ対角線上の他の位置とは無関係であるので、走査順序における対角線に沿った変換係数の有効性のコンテキストは、走査順序における前の対角線から並列に計算され得る。
【０１３１】
[0156]コンテキスト導出のための現在のＨＥＶＣ手法は、いくつかの欠点を有する。１つの問題はブロックごとのコンテキストの数である。より多くのコンテキストを有することは、コンテキストがリフレッシュされるたびに、より多くのメモリおよびより多くの処理を暗示する。したがって、少ないコンテキストと、また、コンテキストを生成するための少ない（たとえば、前の例における４つの方法、すなわち、４つのパターンよりも少ない）方法とを有するアルゴリズムを有することが有益であろう。
【０１３２】
[0157]そのような欠点に対処するための１つの方法は、逆方向順序での、すなわち、最後有効係数（より高い周波数）からＤＣ成分（最低周波数）への、有効性マップのコーディングである。逆方向順序でのこのプロセスの結果は、順方向走査のためのコンテキストがもはや有効でなくなることである。上記で説明した技法は、逆走査方向における前にコーディングされた有効係数に基づいて、有効係数のうちの現在の有効係数を示す情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定するための方法を含む。逆方向ジグザグ走査の一例では、前にコーディングされた有効係数は、有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する。
【０１３３】
[0158]コンテキスト生成は、少なくとも、境界からの距離とＤＣ成分からの距離とに基づいて、変換ブロックの異なる位置に対して異なり得る。上記で説明した例示的な技法では、有効性マップコーディングが、図１１に示したコンテキストセットを利用することを提案した。
【０１３４】
[0159]本開示では、ブロックごとのコンテキストの数の低減によってより高い性能につながり得る逆方向有効性マップ走査のためのコンテキストセットを提案する。再び図１１を参照すると、左領域４７および上領域４５が残りの領域４９と同じコンテキスト導出を使用することを可能にすることによって、ブロックごとのコンテキストの数の低減が達成され得る。逆方向走査では、それは、Ｉ、Ｈ、Ｆ、Ｅ、およびＢで示された隣接位置が領域４７および４５における係数のために利用可能であるので、可能である。
【０１３５】
[0160]図１４に、この例によるコンテキスト導出の一例を示す。この例では、２つのコンテキスト領域のみ、すなわち、ＤＣ係数のための低周波数領域５７と、他のすべての係数のための残りの領域５９とがある。したがって、この例では、コンテキストを導出するためのわずか２つの方法を提案する。低周波数領域５７（ｘ，ｙ位置［０，０］におけるＤＣ係数）では、コンテキストはその位置に基づいて導出され、すなわち、ＤＣ係数はそれ自体のコンテキストを有する。残りの領域５７では、コンテキストは、コーディングされるべき各係数のための局所近傍中のネイバー係数の有効性に基づいて導出される。この例では、コンテキストは、図１４中のＩ、Ｈ、Ｆ、ＥおよびＢによって示される５つのネイバーの有効性の和に応じて導出される。
【０１３６】
[0161]したがって、ブロック内のコンテキストを導出するための方法の数は４から２に低減される。また、コンテキストの数は、図１１中の前の例に対して８だけ低減される（より低い周波数の領域４３について２つ、ならびに上領域４５および左領域４７の各々について３つ）。別の例では、ＤＣ係数はブロックの残りと同じ方法を使用し得、したがってブロック内のコンテキストを導出するための方法の数は１に低減される。
【０１３７】
[0162]図１５に、係数Ｘの現在の位置により、ネイバー係数の一部（この場合ＨおよびＢ）が現在ブロックの外にある、例を示す。現在の係数のネイバーのいずれかがブロック外にある場合、そのようなネイバー係数は０の有効性を有する（すなわち、それらは０値であり、したがって非有効（non-significant）である）と仮定され得る。代替的に、右下における１つまたは複数の係数のために１つまたは複数の特殊コンテキストが指定され得る。このようにして、より高い周波数の係数が、ＤＣ係数と同様にして、位置に応じたコンテキストを有し得る。ただし、ネイバーが０であると仮定することは、特に、右下の係数が、有効係数、または少なくとも大きい値の有効係数を有する低い確率を通常有することになるので、十分な結果を与え得る。
【０１３８】
[0163]図１４の例におけるコンテキストの数の低減は実装に適している。しかしながら、それにより性能がわずかに低下し得る。本開示では、性能を改善しながら依然としてコンテキストの数を低減するための、さらなる技法を提案する。特に、同じくネイバー係数に基づく、コンテキストの第２のセットを有することを提案する。コンテキスト導出アルゴリズムはまったく同じであるが、異なる確率モデルを用いたコンテキストの２つのセットが使用される。使用されるコンテキストのセットは、変換ユニット内のコーディングされるべき係数の位置に依存する。
【０１３９】
[0164]より詳細には、より低い周波数（たとえば、係数の左上ｘ，ｙ座標位置）における係数のためのコンテキストモデルとは異なる、より高い周波数の係数（たとえば、係数の右下ｘ，ｙ座標位置）のためのコンテキストモデルを使用するとき、性能の向上が示される。より高い周波数の係数からより低い周波数の係数を分離するための、したがって各々のために使用されるコンテキストモデルを分離するための、１つの方法は、係数のためのｘ＋ｙ値を計算することであり、上式で、ｘは水平位置であり、ｙは係数の垂直位置である。この値が何らかのしきい値（たとえば、４はうまく動作することが示されている）よりも小さい場合、コンテキストセット１が使用される。その値がしきい値に等しいかそれよりも大きい場合、コンテキストセット２が使用される。ここでも、コンテキストセット１および２は異なる確率モデルを有する。
【０１４０】
[0165]図１６に、この例のためのコンテキスト領域の一例を示す。この場合も、位置（０，０）におけるＤＣ係数は、それ自体のコンテキスト領域６１を有する。より低い周波数のコンテキスト領域６３は、４のしきい値に等しいかそれよりも小さいｘ＋ｙ位置における（ＤＣ係数を含まない）変換係数からなる。より高い周波数のコンテキスト領域６５は、４のしきい値よりも大きいｘ＋ｙ位置における変換係数からなる。４のしきい値は、一例として使用されており、より良い性能を提供する任意の数に調整され得る。別の例では、しきい値はＴＵサイズに依存し得る。
【０１４１】
[0166]より低い周波数のコンテキスト領域６３とより高い周波数のコンテキスト領域６５とのためのコンテキスト導出は、コンテキストを選択するためにネイバーが使用される方法に関してまったく同じであるが、採用される確率（すなわち、コンテキスト）は異なる。特に、ネイバーに基づくコンテキスト選択のための同じ基準が使用され得るが、異なる係数位置がコンテキストの異なるセットに関連し得るので、そのような基準の適用は、異なる係数位置のための異なるコンテキストの選択につながる。このようにして、異なる係数のための異なるコンテキストセットが使用され得るように、より低い周波数の係数と高い周波数の係数とが異なる統計値を有するという知識がアルゴリズムに組み込まれる。
【０１４２】
[0167]他の例では、ｘ＋ｙ関数は、係数の位置に応じて他の関数に変更され得る。たとえば、あるオプションは、ｘ＜Ｔ＆＆ｙ＜Ｔであり、Ｔはしきい値である、すべての係数に同じコンテキストセットを与えることである。図１７に、これらのコンテキスト領域をもつ変換係数のブロックの一例を示す。この場合も、位置（０，０）におけるＤＣ係数は、それ自体のコンテキスト領域６１を有し得る。より低い周波数のコンテキスト領域７３は、それのｘまたはｙ位置が４のしきい値よりも小さいかそれに等しい、（ＤＣ係数を含まない）すべての変換係数からなる。より高い周波数のコンテキスト領域は、それのｘまたはｙ位置が４のしきい値よりも大きい、すべての変換係数からなる。この場合も、４のしきい値は、一例として使用されており、より良い性能を提供する任意の数に調整され得る。一例では、しきい値はＴＵサイズに依存し得る。
【０１４３】
[0168]図１６および図１７に示した上記で説明した技法は、５つのコンテキストの２つのセットを有し、これは、依然として、図１０に示したコンテキストの数よりも少ないコンテキストの数であり、より高い性能を示す。これは、ブロックを異なるエリアに分離することと、異なるエリア中の係数のために異なるコンテキストセットを指定することと、ただし、依然として同じコンテキスト導出基準を各エリアに適用することと、によって達成される。
【０１４４】
[0169]図１８に、コンテキスト領域をもつ変換係数のブロックの別の例を示す。この例では、領域８１中のＤＣ係数と、領域８３および８５中のｘ，ｙ位置（１，０）および（０，１）における係数とは、それぞれそれら自体のコンテキストを有する。残りの領域８７はさらに別のコンテキストを有する。図１８に示す例の変形形態では、領域８３および８５はコンテキストを共有する。
【０１４５】
[0170]概して、上記で説明した技法は、有効性マップを形成するために変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆方向に変換係数のブロック中の有効係数を走査することと、ブロック中の前に走査された係数の局所近傍に基づいて有効性マップの有効係数のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定することとを含み得る。コンテキストは、有効係数の各々について、それぞれの変換係数よりも高い周波数を有する、局所近傍中の前に走査された変換係数に基づいて、決定され得る。いくつかの例では、コンテキストは、コンテキスト近傍の前に走査された係数中の有効係数の数の和に基づいて決定され得る。コーディングされるべき有効係数の各々のための局所近傍は、ブロック中のそれぞれの係数に空間的に隣接する複数の変換係数を備え得る。
【０１４６】
[0171]変換係数のブロックのＤＣ（たとえば、最左上）位置における有効係数のためのコンテキストは、ＤＣ位置における有効係数のために指定された個別のコンテキストに基づいて決定され得る。また、コンテキストは、ブロックの左側エッジおよび上部エッジにおける係数について、ブロックの左側エッジおよび上部エッジにない係数のためのコンテキストを決定するために使用される基準と実質的に同様または同等の基準を使用して決定され得る。いくつかの例では、ブロックの最右下位置における係数のためのコンテキストは、ブロックの外の隣接係数が０値係数であると仮定する基準を使用して決定され得る。また、いくつかの例では、コンテキストを決定することは、変換係数のブロック内の係数の位置に基づいて、コンテキストセット内のコンテキストの選択のための実質的に同様または同一の基準を使用して、しかし異なるコンテキストセットを使用して、係数のためのコンテキストを決定することを備え得る。
【０１４７】
[0172]本開示での上、下、右、左などへの言及は、概して、従来の方法で、左上に向かってより低い周波数の係数を有し、ブロックの右下に向かってより高い周波数の係数を有するように配置された、変換係数のブロック中のより高い周波数の係数とより低い周波数の係数との相対位置を指すために便宜上使用されており、より高い周波数の係数とより低い周波数の係数とが、異なる非従来の方法で配置され得る場合について、限定的であると見なされるべきでない。
【０１４８】
[0173]図５に戻ると、いくつかの例では、変換モジュール５２は、いくつかの変換係数（すなわち、いくつかのロケーションにおける変換係数）をゼロアウトするように構成され得る。たとえば、変換モジュール５２は、変換後のＴＵの左上クワドラントの外部にあるすべての変換係数をゼロアウトするように構成され得る。別の例として、エントロピー符号化ユニット５６は、アレイ内のある位置の後に来るアレイ内の変換係数をゼロアウトするように構成され得る。いずれの場合も、ビデオエンコーダ２０は、たとえば、走査の前または後に、変換係数のある部分をゼロアウトするように構成され得る。「ゼロアウトする」という句は、係数の値を０に等しく設定することを意味するために使用されるが、必ずしも係数をスキップまたは廃棄することを意味するとは限らない。いくつかの例では、０への係数のこの設定は、量子化から生じ得るゼロアウトに加えて行われ得る。
【０１４９】
[0174]逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームバッファ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１５０】
[0175]図１９は、図５のビデオエンコーダにおいて使用するエントロピー符号化ユニット５６の一例を示すブロック図である。図１９は、ＣＡＢＡＣエントロピーコーディングにおいて使用される走査順序と対応するコンテキストセットとを選択するためのエントロピー符号化ユニット５６の様々な機能的態様を示している。エントロピー符号化ユニット５６は、走査順序およびコンテキスト選択ユニット９０と、２Ｄ−１Ｄ走査ユニット９２と、エントロピー符号化エンジン９４と、走査順序メモリ９６とを含み得る。
【０１５１】
[0176]走査順序およびコンテキスト選択ユニット９０は、有効性マップ走査と係数レベル走査とのために２Ｄ−１Ｄ走査ユニット９２によって使用されるべき走査順序を選択する。上記で説明したように、走査順序は、走査パターンと走査方向との両方からなる。走査メモリ９６は、特定の状況のためにどの走査順序を使用すべきかを定義する命令および／またはデータを記憶し得る。例として、走査順序を選択するために、フレームまたはスライスの予測モード、ブロックサイズ、変換、または使用されるビデオデータの他の特性が使用され得る。ＨＥＶＣについての１つの提案では、イントラ予測モードの各々が特定の走査順序（サブブロック対角、水平または垂直）に割り当てられる。デコーダは、イントラ予測モードをパースし、ルックアップテーブルを使用して適用すべき走査順序を決定する。最も頻繁な有効係数の統計値を追跡するために適応型の方法が使用され得る。別の例では、走査は、走査順序における最初の最も頻繁に使用される係数に基づき得る。別の例として、走査順序およびコンテキスト選択ユニット９０は、すべての状況についてあらかじめ決定された走査順序を使用し得る。上記で説明したように、走査順序およびコンテキスト選択ユニット９０は、有効性マップ走査と係数レベル走査との両方のための走査順序を選択し得る。本開示の技法によれば、それらの２つの走査は、同じ走査順序を有し得、特に、両方とも逆方向であり得る。
【０１５２】
[0177]選択された走査順序に基づいて、走査順序およびコンテキスト選択ユニット９０は、図１１および図１３〜図１８を参照しながら上記で説明したコンテキストなど、エントロピー符号化エンジン９４においてＣＡＢＡＣのために使用されるべきコンテキストをも選択する。
【０１５３】
[0178]２Ｄ−１Ｄ走査ユニット９２は、選択された走査を変換係数の２次元アレイに適用する。特に、２Ｄ−１Ｄ走査ユニット９２は、図７〜図９を参照しながら上記で説明したように、サブセット中の変換係数を走査し得る。特に、変換係数は、走査順序に従っていくつかの連続する係数からなるサブセットにおいて走査される。そのようなサブセットは、有効性マップ走査と係数レベル走査との両方に適用可能である。さらに、２Ｄ−１Ｄ走査ユニット９２は、連続する走査としておよび同じ走査順序に従って、有効性マップ走査と係数レベル走査とを実行し得る。連続する走査は、上記で説明したように、いくつかの走査からなり得る。一例では、第１の走査は有効性マップ走査であり、第２の走査は各サブセット中の変換係数のレベルのビン１の走査であり、第３の走査は変換係数のレベルの残りのビンの走査であり、第４の走査は変換係数のレベルの符号（sign）の走査である。
【０１５４】
[0179]エントロピー符号化エンジン９４は、走査順序およびコンテキスト選択ユニット９０からの選択されたコンテキストを使用してエントロピー符号化プロセスを走査された係数に適用する。いくつかの例では、ＣＡＢＡＣのために使用されるコンテキストはすべての場合についてあらかじめ決定され得、したがって、コンテキストを選択するためのプロセスまたはユニットの必要がないことがある。エントロピー符号化プロセスは、係数が完全に走査されて１Ｄベクトルになった後に、または各係数が１Ｄベクトルに追加されるときに、係数に適用され得る。他の例では、係数は、走査順序を使用して２Ｄアレイにおいて直接処理される。場合によっては、エントロピー符号化エンジン９４は、速度および効率を上げるためにエントロピー符号化プロセスの並列化を促進するために、１Ｄベクトルの異なるセクションを並列に符号化するように構成され得る。エントロピー符号化エンジン９４は、符号化ビデオを搬送するビットストリームを生成する。ビットストリームは、別のデバイスに送信されるか、または後で取り出すためにデータ記憶アーカイブに記憶され得る。残差変換係数データに加えて、ビットストリームは、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを搬送し得る。
【０１５５】
[0180]さらに、エントロピー符号化ユニット５６は、ＣＡＢＡＣプロセスにおいて使用される走査順序および／またはコンテキストを示すために、符号化ビデオビットストリーム中のシグナリングを与え得る。走査順序および／またはコンテキストは、たとえば、フレーム、スライス、ＬＣＵ、ＣＵレベルまたはＴＵレベルなど、様々なレベルにおいてシンタックス要素としてシグナリングされ得る。あらかじめ決定された走査順序および／またはコンテキストが設定される場合、符号化ビットストリーム中のシグナリングを与える必要がないことがある。また、いくつかの例では、ビデオデコーダ３０は、シグナリングなしにパラメータ値のいくつかを推論することが可能であり得る。異なるＴＵのための異なる走査順序の定義を可能にするために、ＴＵレベルにおいて、たとえば、ＴＵ４分木ヘッダ中でそのようなシンタックス要素をシグナリングすることが望ましいことがある。例示のために符号化ビデオビットストリーム中のシグナリングについて説明するが、パラメータ値または関数を示す情報はサイド情報中でアウトオブバンドでシグナリングされ得る。
【０１５６】
[0181]このコンテキストでは、符号化ビットストリーム中で走査順序および／またはコンテキストをシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とせず、むしろ、そのようなシンタックス要素がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、（たとえば、ビデオ会議における）リアルタイム送信、ならびに（たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、ＤＶＤ、ブルーレイなどにおける）デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
【０１５７】
[0182]説明しやすいように別個の機能的ユニットとして示されているが、走査順序およびコンテキスト選択ユニット９０、２Ｄ−１Ｄ走査ユニット９２、エントロピー符号化エンジン９４、および走査順序メモリ９６の構造および機能は互いに高度に統合され得ることに留意されたい。
【０１５８】
[0183]図２０は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図２０の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測モジュール７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームバッファ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図５）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１５９】
[0184]エントロピー復号７０は、図５のエントロピー符号化ユニット５６によって使用されたプロセスの逆であるプロセスにおいて符号化ビデオをエントロピー復号する。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。イントラ予測モジュール７４は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【０１６０】
[0185]いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査順序をミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット７６において実行され得るが、走査については、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。
【０１６１】
[0186]本開示の技法によれば、ビデオデコーダ３０は、同じ走査順序に従って変換係数の有効性マップと変換係数のレベルとの両方を走査し得る。すなわち、有効性マップコーディングとレベルコーディングとのための走査順序は、同じパターンおよび方向を有するべきである。さらに、ビデオエンコーダ３０は、逆方向である、有効性マップのための走査順序を使用し得る。別の例として、ビデオエンコーダ３０は、逆方向に一致させた、有効性マップコーディングとレベルコーディングとのための走査順序を使用し得る。
【０１６２】
[0187]本開示の別の態様では、ビデオデコーダ３０はサブセット中の変換係数を走査し得る。特に、変換係数は、走査順序に従っていくつかの連続する係数からなるサブセットにおいて走査される。そのようなサブセットは、有効性マップ走査と係数レベル走査との両方に適用可能である。さらに、ビデオデコーダ３０は、同じ走査順序に従って連続する走査として有効性マップ走査と係数レベル走査とを実行し得る。一態様では、走査順序は逆方向走査順序である。連続する走査は、いくつかの走査からなり得る。一例では、第１の走査は有効性マップ走査であり、第２の走査は各サブセット中の変換係数のレベルのビン１の走査であり、第３の走査は変換係数のレベルの残りのビンの走査であり、第４の走査は変換係数のレベルの符号の走査である。
【０１６３】
[0188]ビデオデコーダ３０は、符号化ビットストリームから、ビデオエンコーダ２０によってＣＡＢＡＣのために使用された走査順序および／またはコンテキストを識別するシグナリングを受信し得る。追加または代替として、走査順序およびコンテキストは、予測モード、ブロックサイズなど、コーディングされたビデオの特性、または他の特性に基づいて、ビデオデコーダ３０によって推論され得る。別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、すべての使用事例についてあらかじめ決定された走査順序とコンテキストとを使用し得、したがって、符号化ビットストリーム中のシグナリングは必要とされないであろう。
【０１６４】
[0189]走査順序がどのように決定されるかにかかわらず、エントロピー復号ユニット７０は、走査順序の逆を使用して１Ｄベクトルを走査して２Ｄアレイにする。エントロピー復号ユニット７０によって生成された変換係数の２Ｄアレイは、量子化され得、変換係数の１Ｄベクトルを生成するためにビデオエンコーダ２０のエントロピー符号化ユニット５６によって走査された変換係数の２Ｄアレイに概して一致し得る。
【０１６５】
[0190]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１Ｄベクトルから２Ｄアレイに変換される前または変換された後に変換係数を逆量子化し得る。
【０１６６】
[0191]逆変換モジュール７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、逆ＫＬＴ、逆回転変換、逆方向性変換、または別の逆変換を適用する。いくつかの例では、逆変換モジュール７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換モジュール７８は、現在ブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換モジュール７８はカスケード逆変換を適用し得る。
【０１６７】
[0192]動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１６８】
[0193]動き補償ユニット７２およびイントラ予測モジュール７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを決定し得る。動き補償ユニット７２およびイントラ予測モジュール７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【０１６９】
[0194]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ８２に記憶され、参照フレームバッファ８２は、その後の動き補償のための参照ブロックを与え、また、（図４のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【０１７０】
[0195]上述のように、本開示で提示する、変換係数を走査するための技法は、エンコーダとデコーダの両方に適用可能である。ビデオエンコーダは、走査順序を適用して、変換係数を走査して２次元アレイから１次元アレイにし得、ビデオデコーダは、たとえば、エンコーダとは逆に走査順序を適用して、変換係数を走査して１次元アレイから２次元アレイにし得る。代替的に、ビデオデコーダは、走査順序を適用して、変換係数を走査して１次元アレイから２次元アレイにし得、ビデオエンコーダは、デコーダとは逆に走査順序を適用して、変換係数を走査して２次元アレイから１次元アレイにし得る。したがって、コーダによる走査は、エンコーダによる２Ｄ−１Ｄ走査またはデコーダによる１Ｄ−２Ｄ走査を指し得る。さらに、走査順序に従う走査は、２Ｄ−１Ｄ走査のための走査順序での走査、１Ｄ−２Ｄ走査のための走査順序での走査、１Ｄ−２Ｄ走査のための走査順序の逆での走査、または２Ｄ−１Ｄ走査のための走査順序の逆での走査を指し得る。したがって、走査順序は、エンコーダによる走査またはデコーダによる走査のために確立され得る。
【０１７１】
[0196]ビデオデコーダ３０は、ビデオエンコーダ２０の方法と本質的に対称的な方法で動作し得る。たとえば、ビデオデコーダ３０は、符号化されたＰＵデータとＴＵデータとを含む符号化されたＣＵを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ３０は、この受信データを逆エントロピー符号化して符号化量子化係数を形成し得る。ビデオエンコーダ２０が算術コーディングアルゴリズム（たとえば、ＣＡＢＡＣ）を使用してデータをエントロピー符号化したとき、ビデオデコーダ３０は、データを符号化するためにビデオエンコーダ２０によって使用されたのと同じコンテキストモデルに対応するコンテキストモデルを使用して、そのデータを復号し得る。
【０１７２】
[0197]ビデオデコーダ３０はまた、ビデオエンコーダ２０によって使用された走査をミラーリングする逆方向走査を使用して、復号された係数を逆走査し得る。係数を逆走査するために、ビデオデコーダ３０は、ビデオエンコーダ２０によって使用されたのと同じ走査順序を選択し、その走査順序は、デコーダにおいて記憶され得るかまたは符号化ビットストリーム中でエンコーダによってシグナリングされ得る。この走査順序を使用して、ビデオデコーダ３０は、それによって、エントロピー復号プロセスから得られた量子化変換係数の１次元ベクトルから２次元行列を形成する。特に、ビデオデコーダ３０は、ビデオエンコーダ２０によって使用された走査順序に従って係数を逆走査して１次元アレイから２次元アレイにする。
【０１７３】
[0198]次に、ビデオデコーダ３０は、走査順序に従って実行された逆方向走査によって生成された２次元行列中の係数を逆量子化し得る。ビデオデコーダ３０は、次いで、２次元行列に１つまたは複数の逆変換を適用し得る。逆変換は、ビデオエンコーダ２０によって適用された変換に対応し得る。ビデオデコーダ３０は、たとえば、現在復号されているＣＵに対応する４分木のルートにおいてシグナリングされた情報に基づいて、または適切な逆変換を示す他の情報を参照して、適用すべき逆変換を決定し得る。（１つまたは複数の）逆変換の適用時に、ビデオデコーダ３０は、ピクセル領域において残差ビデオデータを復元し、適用可能なとき、イントラ予測復号またはインター予測復号を適用して元のビデオデータを再構成する。
【０１７４】
[0199]図２１は、図２０のビデオデコーダにおいて使用するエントロピー復号ユニット７０の一例を示すブロック図である。図２１は、ビデオ復号プロセスにおけるＣＡＢＡＣ復号のために使用される走査順序とコンテキストとを選択するためのエントロピー復号ユニット７０の様々な機能的態様を示している。図２１に示すように、エントロピー符号化ユニット７０は、走査順序およびコンテキスト選択ユニット１００と、１Ｄ−２Ｄ走査ユニット１０２と、エントロピー復号エンジン１０４と、走査順序メモリ１０６とを含み得る。
【０１７５】
[0200]エントロピー復号エンジン１０４は、ビデオデコーダ３０に送信されたかまたは記憶デバイスからビデオデコーダ３０によって取り出された符号化ビデオをエントロピー復号する。たとえば、エントロピー復号エンジン１０４は、符号化ビデオを搬送するビットストリームにエントロピー復号プロセス、たとえば、ＣＡＶＬＣ、ＣＡＢＡＣまたは別のプロセスを適用して、変換係数の１Ｄベクトルを復元し得る。残差変換係数データに加えて、エントロピー復号エンジン１０４は、エントロピー復号を適用して、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを再生し得る。エントロピー復号エンジン１０４は、符号化ビデオビットストリーム中のシグナリングに基づいて、またはビットストリーム中の他の情報から適切なプロセスを推論することによって、どのエントロピー復号プロセス、たとえば、ＣＡＶＬＣ、ＣＡＢＡＣまたは別のプロセスを選択すべきかを決定し得る。
【０１７６】
[0201]本開示の技法によれば、エントロピー復号エンジン１０４は、２つの異なるコンテキスト領域に従ってＣＡＢＡＣを使用して符号化ビデオをエントロピー復号し得る。走査順序およびコンテキスト選択ユニット１００は、エントロピー復号エンジン１０４にコンテキスト導出を与え得る。本開示の例によれば、第１のコンテキスト領域のためのコンテキスト導出は変換係数の位置に依存し、第２の領域のためのコンテキスト導出は変換係数の因果的ネイバーに依存する。別の例では、第２のコンテキスト領域は、変換係数のロケーションに応じて２つの異なるコンテキストモデルを使用することができる。
【０１７７】
[0202]また、走査順序およびコンテキスト選択ユニット１００は、符号化ビデオビットストリーム中のシグナリングに基づいて、走査順序、および／または走査順序の指示を決定し得る。たとえば、エントロピー復号ユニット７０は、走査順序を明示的にシグナリングするシンタックス要素を受信し得る。この場合も、例示のために符号化ビデオビットストリーム中のシグナリングについて説明するが、走査順序は、サイド情報中でアウトオブバンドでエントロピー復号ユニット７０によって受信され得る。また、いくつかの例では、走査順序およびコンテキスト選択ユニット１００は、シグナリングなしに走査順序を推論することが可能であり得る。走査順序は、予測モード、ブロックサイズ、変換、または符号化ビデオの他の特性に基づき得る。図１９のメモリ９６のように、図２１のメモリ１０６は、走査順序を定義する命令および／またはデータを記憶し得る。
【０１７８】
[0203]１Ｄ−２Ｄ走査ユニット１０２は、走査順序およびコンテキスト選択ユニット１００から走査順序を受信し、走査順序を直接または逆に適用して、係数の走査を制御する。本開示の技法によれば、有効性マップ走査と係数レベルとの両方のために同じ走査順序が使用され得る。本開示の別の態様では、有効性マップ走査は逆方向であり得る。本開示の別の態様では、有効性マップ走査と係数レベル走査との両方が逆方向であり得る。
【０１７９】
[0204]本開示の別の態様によれば、１Ｄ−２Ｄ走査ユニット１０２は、変換係数の１次元アレイを走査して変換係数の１つまたは複数のサブセットにし、各サブセット中の変換係数の有効性をコーディングし、各サブセット中の変換係数のレベルをコーディングし得る。本開示の別の態様では、有効性マップ走査と係数レベル走査とが、同じ走査順序に従って連続する走査において実行される。一態様では、走査順序は逆方向走査順序である。連続する走査はいくつかの走査からなり得、その場合、第１の走査は有効性マップ走査であり、第２の走査は各サブセット中の変換係数のレベルのビン１の走査であり、第３の走査は変換係数のレベルの残りのビンの走査であり、第４の走査は変換係数のレベルの符号の走査である。
【０１８０】
[0205]エンコーダ側では、変換係数のコーディングは、変換係数の１次元アレイを形成するために、走査順序に従って変換係数を符号化することを備え得る。デコーダ側では、変換係数をコーディングすることは、変換ブロック中の変換係数の２次元アレイを再構成するために、走査順序に従って変換係数を復号することを備え得る。
【０１８１】
[0206]説明しやすいように別個の機能的ユニットとして示されているが、走査順序およびコンテキスト選択ユニット１００、１Ｄ−２Ｄ走査ユニット１０２、エントロピー復号エンジン１０４、および走査順序メモリ１０６の構造および機能は互いに高度に統合され得ることに留意されたい。
【０１８２】
[0207]図２２は、一致させた走査順序を用いた有効性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングする方法を提案する。本方法は、図４のビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダによって実行され得る。ビデオコーダは、走査順序を選択する（１２０）ように構成され得る。走査順序は、予測モード、ブロックサイズ、変換、または他のビデオ特性に基づいて選択され得る。さらに、走査順序はデフォルト走査順序であり得る。走査順序は、走査パターンと走査方向との両方を定義する。一例では、走査方向は、複数の変換係数中のより高い周波数の係数から複数の変換係数中のより低い周波数の係数に進む逆走査方向である。走査パターンは、ジグザグパターン、対角パターン、水平パターンまたは垂直パターンのうちの１つを含み得る。
【０１８３】
[0208]ビデオコーダは、走査順序に従って複数の変換係数のための有効係数を示す情報をコーディングすることと（１２２）、有効係数の複数のサブセットのための有効係数のレベルをコーディングするためのコンテキストを決定することと（１２４）、を行うようにさらに構成され得、複数のサブセットの各々は、上記走査順序に従って走査された１つまたは複数の有効係数を備える。ビデオコーダはまた、上記走査順序に従って複数の変換係数のレベルを示す情報をコーディングする（１２６）。サブセットは異なるサイズのサブセットであり得る。レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ１２２、１２４および１２６は交互配置（interleaved）され得ることに留意されたい。
【０１８４】
[0209]図２３は、有効性マップ走査と係数レベル走査とＣＡＢＡＣコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。異なるサイズのブロックのコンテキストが同じコンテキスト導出基準を使用し得るので、図２３の方法は、図２２に示した方法とはわずかに異なる。一例として、ビデオコーダは、コンテキスト導出基準に従って変換係数の第１のブロックのための第１のコンテキストを導出することと、第１のブロックは第１のサイズを有し、第１のブロックと同じコンテキスト導出基準に従って変換係数の第２のブロックのための第２のコンテキストを導出することと、第２のブロックは第２の異なるサイズを有し、を行う（１２３）。図２２のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ１２２、１２３および１２６は交互配置（interleaved）され得る。
【０１８５】
[0210]図２４は、有効性マップ走査と係数レベル走査とＣＡＢＡＣコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。サブセット中のＤＣ係数の存在に基づいてサブセットのためのコンテキストが決定されるので、図２４の方法は、図２２に示した方法とはわずかに異なる。一例として、ビデオコーダは、係数の異なるサブセットのためのコンテキストの異なるセットを、それぞれのサブセットが変換係数のＤＣ係数を含んでいるかどうかに基づいて、決定する（１２５）。図２２のように、レベル情報のためのコンテキストの判断が、前にコーディングされたネイバー係数に依存するので、ステップ１２２、１２５および１２６は交互配置（interleaved）され得る。
【０１８６】
[0211]図２５は、有効性マップ走査と係数レベル走査とＣＡＢＡＣコンテキスト導出とのための別の例示的なプロセスを示すフローチャートである。他の前のサブセット中の有効係数の重み付けされた数に基づいてコンテキストが決定されるので、図２５の方法は、図２２に示した方法とはわずかに異なる。一例として、ビデオコーダは、係数の異なるサブセットのためのコンテキストの異なるセットを、係数の直前のサブセット中の有効係数の数と、係数の他の前のサブセット中の有効係数の重み付けされた数とに基づいて、決定する（１２７）。図２２のように、レベル情報のためのコンテキストの判断が、前にコーディングされたネイバー係数に依存するので、ステップ１２２、１２７および１２６は交互配置（interleaved）され得る。
【０１８７】
[0212]図２６は、逆走査方向を使用した有効性マップコーディングのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、図４のビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダによって実行され得る。ビデオコーダは、逆方向を用いた走査順序を選択する（１４０）ことと、逆走査方向における前にコーディングされた有効係数に基づいて、有効係数のうちの現在の有効係数を示す情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定する（１４２）こととを行うように構成され得る。ビデオコーダは、有効性マップを形成するために逆走査方向に沿って有効変換係数を示す情報をコーディングする（１４６）ようにさらに構成され得る。
【０１８８】
[0213]一例では、上記走査は対角パターンを有し、前にコーディングされた有効係数は、有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する。別の例では、上記走査は水平パターンを有し、前にコーディングされた有効係数は、有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する。別の例では、上記走査は垂直パターンを有し、前にコーディングされた有効係数は、有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する。
【０１８９】
[0214]ビデオコーダは、有効変換係数のレベルを示す情報をコーディングする（１４８）ようにさらに構成され得る。有効変換係数のレベルを示す情報をコーディングするステップは、変換係数のブロック中のより高い周波数の係数から変換係数のブロック中のより低い周波数の係数へ逆走査方向に進み得る。図２２のように、レベル情報のためのコンテキストの決定が、前にコーディングされたネイバー係数に依存するので、ステップ１４２、１４６および１４８は交互配置（interleaved）され得る。
【０１９０】
[0215]図２７は、変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法を提案する。本方法は、図４のビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダによって実行され得る。ビデオコーダは、変換係数のブロックを変換係数の１つまたは複数のサブセットに配置（arrange）する（１６０）ことと、各サブセット中の変換係数の有効性（significance）をコーディングする（１６２）ことと、各サブセット中の変換係数のレベルをコーディングする（１６４）こととを行うように構成され得る。一例では、変換係数のブロックを配置することは、変換係数のブロックを変換ユニット全体に対応する変換係数の単一のセットに配置することを含み得る。別の例では、変換係数のブロックを配置することは、走査順序に基づいて変換係数のブロックを変換係数の１つまたは複数のサブセットに配置（arrange）することを含み得る。
【０１９１】
[0216]ビデオコーダは、走査順序に従って各サブセット中の変換係数の有効性（significance）をコーディングすることと、上記走査順序に従って変換係数のレベルをコーディングすることとを行うように構成され得る。有効性マップをコーディングする（１６２）ことと、レベルをコーディングする（１６４）こととは、サブセット上で２つ以上の連続する走査パスにおいて一緒に実行され得る（１６５）。
【０１９２】
[0217]図２８は、変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャートである。ビデオエンコーダは、最初に、サブセット中の変換係数の有効性（significance）をそれぞれのサブセット中の変換係数の第１の走査においてコーディングする（１７０）ことによって、連続する走査を実行し得る（１６５）。
【０１９３】
[0218]各サブセット中の係数レベルのコーディング（１６４）は、それぞれのサブセット中の変換係数の少なくとも第２の走査を含む。第２の走査は、サブセット中の変換係数のレベルのビン１をそれぞれのサブセット中の変換係数の第２の走査においてコーディングする（１７２）ことと、サブセット中の変換係数のレベルの残りのビンをそれぞれのサブセット中の変換係数の第３の走査においてコーディングする（１７４）ことと、サブセット中の変換係数のレベルの符号をそれぞれのサブセット中の変換係数の第４の走査においてコーディングする（１７６）こととを含み得る。
【０１９４】
[0219]図２９は、変換係数のサブセットによる有効性マップ走査と係数レベル走査とのための別の例示的なプロセスを示すフローチャートである。この例では、変換係数のレベルの符号(sign)のコーディング（１７６）は、レベルをコーディングする（１７２、１７４）前に実行される。
【０１９５】
[0220]図３０は、複数の領域を使用したエントロピーコーディングのための例示的なプロセスを示すフローチャートである。ビデオコーディングプロセスにおいて残差ビデオデータに関連する複数の変換係数をコーディングする方法を提案する。本方法は、図４のビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダによって実行され得る。ビデオコーダは、走査順序に従って複数の変換係数のための有効係数を示す情報をコーディングする（１８０）ことと、コーディングされた情報を第１の領域と第２の領域とに分割する（１８２）ことと、コンテキスト適応型バイナリ算術コーディングを使用してコンテキストの第１のセットに従って第１の領域中のコーディングされた情報をエントロピーコーディングする（１８４）ことと、コンテキスト適応型バイナリ算術コーディングを使用してコンテキストの第２のセットに従って第２の領域中のコーディングされた情報をエントロピーコーディングする（１８６）ことと、を行うように構成され得る。一例では、走査順序は、逆方向と対角走査パターンとを有する。本方法は３つ以上の領域にも適用され得、各領域はコンテキストのセットを有する。
【０１９６】
[0221]第１の領域と第２の領域とは、いくつかの方法で分割され得る。一例では、第１の領域は、複数の変換係数の少なくともＤＣ成分を含んでおり、第２の領域は、第１の領域中にない残りの複数の変換係数を含んでいる。
【０１９７】
[0222]別の例では、第１の領域は、ｘ＋ｙ＜Ｔによって画定された領域内のすべての変換係数を含んでおり、上式で、ｘは変換係数の水平位置であり、ｙは変換係数の垂直位置であり、Ｔはしきい値である。第１の領域は、ＤＣ係数を含んでいることがある。第２の領域は、第１の領域中にない残りの複数の変換係数を含んでいる。
【０１９８】
[0223]別の例では、第１の領域は、ｘ＜Ｔおよびｙ＜Ｔによって画定された領域内のすべての変換係数を含んでおり、上式で、ｘは変換係数の水平位置であり、ｙは変換係数の垂直位置であり、Ｔはしきい値である。第２の領域は、第１の領域中にない残りの複数の変換係数を含んでいる。
【０１９９】
[0224]別の例では、第１の領域は、ＤＣ係数を含んでおり、第２の領域は、ｘ＜Ｔおよびｙ＜Ｔによって画定された領域内の（ＤＣ係数を除く）すべての変換係数を含んでおり、上式で、ｘは変換係数の水平位置であり、ｙは変換係数の垂直位置であり、Ｔはしきい値であり、第３の領域は、第１の領域または第２の領域中にない残りの複数の変換係数を含んでいる。別の例では、上記で説明した第２の領域および第３の領域は、コンテキストを導出するための同じ方法を使用し得るが、各領域のための異なるコンテキストセットが使用される。
【０２００】
[0225]別の例では、第１の領域は、ＤＣ成分と、位置（１，０）および（０，１）における変換係数とを含む。第２の領域は、第１の領域中にない残りの複数の変換係数を含んでいる。
【０２０１】
[0226]別の例では、第１の領域は、複数の変換係数のＤＣ成分のみを含んでおり、第２の領域は、残りの複数の変換係数を含んでいる。
【０２０２】
[0227]概して、第１の領域中の各変換係数のための第１のコンテキストは、第１の領域中の各変換係数の位置に基づき、第２の領域中の各変換係数のための第２のコンテキストは、各変換係数の因果的ネイバーのコーディングされた情報に基づく。いくつかの例では、第２のコンテキストは、第２の領域中の各変換係数の位置にさらに基づく。別の例では、第２の領域中の各変換係数のための第２のコンテキストは、各変換係数の５つの因果的ネイバーのコーディングされた情報に基づく。
【０２０３】
[0228]１つまたは複数の例では、本開示において説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、それらの機能は、コンピュータ可読命令またはコードの形態でソフトウェアを実行する、１つまたは複数のプロセッサなど、ハードウェアベースの処理ユニットによって実行され得る。そのような命令またはコードは、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形の非一時的媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２０４】
[0229]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭを備えることができ、あるいは光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含む、任意の他のソリッドステート光学または磁気データ記憶媒体を備えることができ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、有形コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０２０５】
[0230]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２０６】
[0231]本開示の技法は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスまたは装置によって実行され得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。さらに、そのような技法は、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）によって実装され得る。本開示の技法を実行するように構成されたデバイスは、上述のデバイスのいずれかを含み得、場合によっては、ハードウェアと、ソフトウェアと、ファームウェアとの組合せによって形成され得る、ビデオエンコーダまたはビデオデコーダ、または複合ビデオエンコーダデコーダ、すなわち、ビデオコーデックであり得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明することがあるが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２０７】
[0232]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングする方法であって、前記方法は、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報をコーディングすること
を備える、方法。
［２］前記有効変換係数を示す前記コーディングされた情報に基づいて前記ブロックのための有効性マップを形成すること
をさらに備える、［１］に記載の方法。
［３］前記有効変換係数のレベルを示す情報をコーディングすること
をさらに備える、［１］に記載の方法。
［４］前記有効変換係数のレベルを示す情報をコーディングすることは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む、［３］に記載の方法。
［５］前記逆走査方向における前にコーディングされた有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定すること
をさらに備える、［１］に記載の方法。
［６］前にコーディングされた有効係数が変換ブロックの外に位置する場合、前記前にコーディングされた有効係数のためのコーディングされたレベル情報が０であると仮定される、［５］に記載の方法。
［７］前記走査は対角パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［５］に記載の方法。
［８］前記走査は水平パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、［５］に記載の方法。
［９］前記走査は垂直パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［５］に記載の方法。
［１０］ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムであって、前記システムは、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報をコーディングするように構成されたビデオコーディングプロセッサ
を備える、システム。
［１１］前記ビデオコーディングプロセッサは、前記有効変換係数を示す前記コーディングされた情報に基づいて前記ブロックのための有効性マップを形成するようにさらに構成された、［１０］に記載のシステム。
［１２］前記ビデオコーディングプロセッサは、前記有効変換係数のレベルを示す情報をコーディングするようにさらに構成された、［１０］に記載のシステム。
［１３］前記ビデオコーディングプロセッサは、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進んで、前記有効変換係数のレベルを示す情報をコーディングするようにさらに構成された、［１２］に記載のシステム。
［１４］前記ビデオコーティングプロセッサは、前記逆走査方向における前にコーディングされた有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定するようにさらに構成された、［１０］に記載のシステム。
［１５］前にコーディングされた有効係数が変換ブロックの外に位置する場合、前記前にコーディングされた有効係数のためのコーディングされたレベル情報が０であると仮定される、［１４］に記載の装置。
［１６］前記走査は対角パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［１４］に記載のシステム。
［１７］前記走査は水平パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、［１４］に記載のシステム。
［１８］前記走査は垂直パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［１４］に記載のシステム。
［１９］ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのシステムであって、前記システムは、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報をコーディングする手段と、
前記有効変換係数を示す前記コーディングされた情報に基づいて前記ブロックのための有効性マップを形成する手段と、
を備える、システム。
［２０］前記有効変換係数のレベルを示す情報をコーディングする手段
をさらに備える、［１９］に記載のシステム。
［２１］前記有効変換係数のレベルを示す情報をコーディングする前記手段は、変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む、［１９］に記載のシステム。
［２２］前記逆走査方向における前にコーディングされた有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定する手段
をさらに備える、［２０］に記載のシステム。
［２３］前記走査は対角パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［２２］に記載のシステム。
［２４］前記走査は水平パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、［２２］に記載のシステム。
［２５］前記走査が垂直パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［２２］に記載のシステム。
［２６］実行されたとき、ビデオコーディングプロセスにおいて残差ビデオデータに関連する変換係数をコーディングするためのデバイスのプロセッサに、
変換係数のブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進む走査を用いて、変換係数の前記ブロック中の有効変換係数を示す情報をコーディングさせる
命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［２７］プロセッサに、さらに、
前記有効変換係数を示す前記コーディングされた情報に基づいて前記ブロックのための有効性マップを形成させる、［２６］に記載のコンピュータプログラム製品。
［２８］プロセッサに、さらに、
前記有効変換係数のレベルを示す情報をコーディングさせる、［２６］に記載のコンピュータプログラム製品。
［２９］プロセッサに、さらに、
変換係数の前記ブロック中のより高い周波数の係数から変換係数の前記ブロック中のより低い周波数の係数へ逆走査方向に進んで、前記有効変換係数のレベルを示す情報をコーディングさせる、［２８］に記載のコンピュータプログラム製品。
［３０］プロセッサに、さらに、
前記逆走査方向における前にコーディングされた有効係数に基づいて、前記有効係数のうちの現在の有効係数を示す前記情報のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のためのコンテキストを決定させる、［２６］に記載のコンピュータプログラム製品。
［３１］前記走査は対角パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［３０］に記載のコンピュータプログラム製品。
［３２］前記走査は水平パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の下の位置に存在する、［３０］に記載のコンピュータプログラム製品。
［３３］前記走査は垂直パターンを有し、前記前にコーディングされた有効係数は、前記有効係数のうちの現在の有効係数が存在する走査線の右の位置に存在する、［３０］に記載のコンピュータプログラム製品。
【図１】
0005864624.tif 000007
【図２】
0005864624.tif 000008
【図３】
0005864624.tif 000009
【図４】
0005864624.tif 000010
【図５】
0005864624.tif 000011
【図６】
0005864624.tif 000012
【図７】
0005864624.tif 000013
【図８】
0005864624.tif 000014
【図９】
0005864624.tif 000015
【図１０】
0005864624.tif 000016
【図１１】
0005864624.tif 000017
【図１２】
0005864624.tif 000018
【図１３】
0005864624.tif 000019
【図１４】
0005864624.tif 000020
【図１５】
0005864624.tif 000021
【図１６】
0005864624.tif 000022
【図１７】
0005864624.tif 000023
【図１８】
0005864624.tif 000024
【図１９】
0005864624.tif 000025
【図２０】
0005864624.tif 000026
【図２１】
0005864624.tif 000027
【図２２】
0005864624.tif 000028
【図２３】
0005864624.tif 000029
【図２４】
0005864624.tif 000030
【図２５】
0005864624.tif 000031
【図２６】
0005864624.tif 000032
【図２７】
0005864624.tif 000033
【図２８】
0005864624.tif 000034
【図２９】
0005864624.tif 000035
【図３０】
0005864624.tif 000036