ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、前記ブロックに関連する走査順序を識別する情報をコーディングすることであって、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを含む、コーディングすることを備える、方法。前記ブロックのための前記最確走査順序を判断することが、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断することを備える、請求項1に記載の方法。前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項1に記載の方法。前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用することをさらに備える、請求項1に記載の方法。前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることは、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングすることをさらに含む、請求項1に記載の方法。前記ブロックに関連する前記走査順序の前記指示をコーディングすることが、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項5に記載の方法。前記ブロックのための前記最確走査順序を判断することが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを備える、請求項1に記載の方法。前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項1に記載の方法。前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすることをさらに備える、請求項1に記載の方法。前記ブロック内の非0係数の位置を識別する情報をコーディングすることをさらに備える、請求項1に記載の方法。ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置が、前記ブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダを備え、前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするために、前記ビデオコーダは、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを行うように構成された、装置。前記ブロックのための前記最確走査順序を判断するために、前記ビデオコーダが、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断するように構成された、請求項11に記載の装置。前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項11に記載の装置。前記ビデオコーダは、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用するようにさらに構成された、請求項11に記載の装置。前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするために、前記ビデオコーダは、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングするようにさらに構成された、請求項11に記載の装置。前記ブロックに関連する前記走査順序の前記指示をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項15に記載の装置。前記ブロックのための前記最確走査順序を判断するために、前記ビデオコーダが、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するように構成された、請求項11に記載の装置。前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項11に記載の装置。前記ビデオコーダが、前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするようにさらに構成された、請求項11に記載の装置。前記ビデオコーダが、前記ブロック内の非0係数の位置を識別する情報をコーディングするようにさらに構成された、請求項11に記載の装置。前記装置が、集積回路と、マイクロプロセッサと、前記ビデオコーダを含むワイヤレス通信デバイスとのうちの少なくとも1つを備える、請求項11に記載の装置。ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、前記ブロックに関連する走査順序を識別する情報をコーディングするための手段であって、前記ブロックのための最確走査順序を判断するための手段と、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングするための手段とを含む、コーディングするための手段を備える、デバイス。前記ブロックのための前記最確走査順序を判断するための前記手段が、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断するための手段を備える、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングするための前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用するための手段をさらに備える、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序を識別する前記情報をコーディングするための前記手段は、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングするための手段をさらに含む、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序の前記指示をコーディングするための前記手段が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するための手段を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項26に記載のデバイス。前記ブロックのための前記最確走査順序を判断するための前記手段が、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定するための手段を備える、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項22に記載のデバイス。前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングするための手段をさらに備える、請求項22に記載のデバイス。前記ブロック内の非0係数の位置を識別する情報をコーディングするための手段をさらに備える、請求項22に記載のデバイス。実行されたとき、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングすることをプロセッサに行わせる命令を備えるコンピュータ可読媒体であって、前記命令が、前記ブロックに関連する走査順序を識別する情報をコーディングすることを前記プロセッサに行わせ、前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記ブロックのための最確走査順序を判断することと、前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの指示をコーディングすることとを前記プロセッサに行わせる命令を備える、コンピュータ可読媒体。前記ブロックのための前記最確走査順序を判断することを前記プロセッサに行わせる前記命令が、前記ブロックに関連する予測モードおよびサイズに基づいて前記ブロックのための最確走査順序を判断することを前記プロセッサに行わせる命令を備える、請求項32に記載のコンピュータ可読媒体。前記ブロックに関連する前記走査順序が前記最確走査順序であるかどうかの前記指示をコーディングすることを前記プロセッサに行わせる前記命令が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを前記プロセッサに行わせる命令を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項32に記載のコンピュータ可読媒体。前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令は、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記係数をコーディングするためにジグザグ走査順序を使用することを前記プロセッサにさらに行わせる、請求項32に記載のコンピュータ可読媒体。前記ブロックに関連する前記走査順序を識別する前記情報をコーディングすることを前記プロセッサに行わせる前記命令は、前記ブロックに関連する前記走査順序が前記最確走査順序でない場合、前記ブロックに関連する前記走査順序の指示をコーディングすることを前記プロセッサに行わせる命令をさらに備える、請求項32に記載のコンピュータ可読媒体。前記ブロックに関連する前記走査順序の前記指示をコーディングすることを前記プロセッサに行わせる前記命令が、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを前記プロセッサに行わせる命令を備え、前記少なくとも1つのコンテキストが、前記最確走査順序と、前記ブロックに関連する予測モードと、前記ブロックに関連するサイズとのうちの1つを含む、請求項36に記載のコンピュータ可読媒体。前記ブロックのための前記最確走査順序を判断することを前記プロセッサに行わせる前記命令が、前記ブロックのための前記最確走査順序にジグザグ走査順序を指定することを前記プロセッサに行わせる命令を備える、請求項32に記載のコンピュータ可読媒体。前記ブロックに関連する前記走査順序と、前記最確走査順序との各々が、ジグザグ走査順序と、水平走査順序と、垂直走査順序と、対角走査順序とのうちの1つを備える、請求項32に記載のコンピュータ可読媒体。前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令が、前記ブロックに関連する前記走査順序に従う前記ブロック内の最後非0係数の位置を識別する情報をコーディングすることを前記プロセッサにさらに行わせる、請求項32に記載のコンピュータ可読媒体。前記ビデオコーディングプロセス中に前記ブロックに関連する前記係数をコーディングすることを前記プロセッサに行わせる前記命令が、前記ブロック内の非0係数の位置を識別する情報をコーディングすることを前記プロセッサにさらに行わせる、請求項32に記載のコンピュータ可読媒体。本開示は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするための技法を含む、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための技法について説明する。本開示の技法は、特定のブロックのための最確走査順序を識別する情報を使用してブロックの走査順序情報をコーディングすることによって、ビデオデータのブロックをコーディングするために使用されるブロックの走査順序情報のコーディングの効率を改善し得る。言い換えれば、本技法は、ブロックの走査順序情報がコーディングされるとき、走査順序情報の圧縮を改善し得る。本開示では、コーディングという用語は、エンコーダにおいて行われる符号化、またはデコーダにおいて行われる復号を指す。同様に、コーダという用語は、一般に、エンコーダ、デコーダ、または複合エンコーダ/デコーダコーデックを指す。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致する、ビデオデータのコーディング符号化および/または復号のために設計された特定の機械を指す。概して、これらの技法の開発において実行された経験的テストにより、ビデオデータのブロックに関連する予測モードおよびサイズと、そのブロックに関連する走査順序、すなわち、そのブロックをコーディングするために使用される走査順序との間の相関が証明されている。たとえば、ブロックに関連する走査順序は、ブロックの予測データを生成するために使用される予測モードと、ブロックのサイズとに依存し得る。言い換えれば、特定の走査順序は、ブロックに関連する予測モードおよびサイズに応じて、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得る。ビデオデータのブロックをコーディングするために使用されるブロックについての走査順序情報のコーディングのコーディング効率は、上記で説明した相関を利用することによって改善され得る。特に、コーディング効率は、特定のブロックのための最確走査順序を識別する情報を使用してそのブロックの走査順序情報をコーディングすることによって改善され得る。いくつかの例では、特定のブロックのための最確走査順序は、そのブロックに関連するイントラ予測モードおよびサイズに基づいて判断され得る。たとえば、エンコーダおよびデコーダは、両方とも、ブロックに関連するイントラ予測モードおよびサイズに基づいてブロックのための最確走査順序を定義するようにプログラムされ得、エンコーダによってブロックを符号化するために最確走査順序が実際に使用されたかどうかをデコーダに示すための情報がエンコーダによってシグナリングされ得る。一例では、コーディング効率は、ビデオデータのブロックのための最確走査順序を判断することと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序が最確走査順序であるかどうかの指示をコーディングすることとによって改善され得る。この例では、ブロックに関連する走査順序が最確走査順序である場合、ブロックについてさらなる走査順序情報はコーディングされなくてよい。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合、本技法は、ブロックに関連する走査順序の指示をコーディングすることをさらに含み得る。定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされない。その結果、ブロックについての走査順序情報は、他の技法を使用したときよりも、たとえば、ブロック全体の走査順序情報を常にコーディングしたときよりも少ない情報を使用してコーディングされ得る。別の例として、コーディング効率は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することによって改善され得る。この場合も、定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序が最確走査順序であるかどうかの初期指示は、数多くの場合、ブロック全体の走査順序情報を示すことになり、さらなる走査順序情報をコーディングする必要はなくなる。さらに、ブロックに関連する走査順序が最確走査順序でない場合、ブロックを効率的にコーディングするためには、ブロックに関連する走査順序の指示をコーディングするのではなく、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することで十分であり得る。たとえば、係数をより効率的に走査し得る別の走査順序を使用するのではなく、係数をコーディングするためにジグザグ走査順序を使用することの悪影響を、上記で説明したブロックについての走査順序情報のコーディングの低減が上回り得る。さらに別の例として、コーディング効率は、ブロックのための最確走査順序にジグザグ走査順序を指定することによって改善され得る。この例では、ジグザグ走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得るので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされないことがある。さらに、最確走査順序にジグザグ走査順序を指定することによって、コーディング効率は、上記で説明したように、ブロックのための実際の最確走査順序を判断することを回避することにより、改善され得る。上記で説明した例の各々では、コーディング効率は、ブロックについての走査順序情報、すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とのうちの1つまたは複数をエントロピー符号化することによってさらに改善され得る。たとえば、走査順序情報は、コンテキスト適応型エントロピーコーディングプロセス、たとえば、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型バイナリ算術コーディングCABACプロセスを実行することによってエントロピー符号化され得る。上記で説明した例では、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得、それにより、コンテキストモデル内に含まれる確率推定値は、他の技法を使用して判断された確率推定値よりも正確になり得る。その結果、ブロックの走査順序情報はより効率的にコーディングされ得る。たとえば、この情報は、他の技法を使用したときよりも、たとえば、この情報をコーディングするために他のあまり正確でない確率推定値を使用したときよりも少ないビットを使用してコーディングされ得る。上記で説明した方法でビデオデータの1つまたは複数のブロックについての走査順序情報をコーディングすることにより、他の方法よりも効率的なコーディング方法を使用することが可能になり得る。このようにして、本開示の技法を使用すると、この情報を含むコード化ビットストリームについての相対的なビット節約があり得る。本開示の技法は、いくつかの例では、CABAC、確率間隔区分エントロピーコーディングPIPE、または別のコンテキスト適応型エントロピーコーディング方法を含む、任意のコンテキスト適応型エントロピーコーディング方法とともに使用され得る。CABACは、本開示においては、本開示で広く説明する技法に関する限定なしに、説明のために記載している。また、本技法は、たとえば、ビデオデータに加えて、一般に他のタイプのデータのコーディングに適用され得る。図1は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法を実装し得るビデオ符号化および復号システム10の一例を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、あるいは、通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである、任意のワイヤレスデバイスを備え得る。ただし、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。これらの技法は、概して、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ストリーミングインターネットビデオ送信、記憶媒体上に符号化されるか、または記憶媒体から取り出されて復号される符号化デジタルビデオを含む、符号化または復号が実行される任意のシナリオ、あるいは他のシナリオに適用され得る。したがって、通信チャネル16は必要とされず、本開示の技法は、たとえば、符号化デバイスと復号デバイスとの間にいかなるデータ通信もなしに、符号化が適用される、または復号が適用される設定に適用され得る。図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器モデム22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20および/または宛先デバイス14のビデオデコーダ30は、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。図1の図示のシステム10は一例にすぎない。ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般にコーデックと呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのために、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、上記で説明したビデオ符号化プロセスは、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するために本明細書で説明する技法のうちの1つまたは複数を実装し得る。チャネル16を介して通信される情報は、同じくビデオデコーダ30によって使用される、ビデオエンコーダ20によって定義されたシンタックス情報を含み得、そのシンタックス情報は、ビデオデータのブロックたとえば、マクロブロック、またはコーディングユニットの特性および/または処理、たとえば、ブロックの走査順序情報、および他の情報を記述するシンタックス要素を含む。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管CRT、液晶ディスプレイLCD、プラズマディスプレイ、有機発光ダイオードOLEDディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。図1の例では、通信チャネル16は、無線周波数RFスペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。他の例では、符号化または復号デバイスは、そのようなデバイス間で通信することなく本開示の技法を実装し得る。たとえば、符号化デバイスは、本開示の技法に一致して符号化ビットストリームを符号化および記憶し得る。代替的に、復号デバイスが、符号化ビットストリームを受信するかまたは取り出し、本開示の技法と一致してビットストリームを復号し得る。ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part10、アドバンストビデオコーディングAVCと呼ばれるITU-TH.264規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、MPEG-2、ITU-TH.263、および現在開発中の高効率ビデオコーディングHEVC規格がある。概して、本開示の技法について、HEVCに関して説明するが、これらの技法は、他のビデオコーディング規格と併せて同様に使用され得ることを理解されたい。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX-DEMUXユニットは、ITUH.223マルチプレクサプロトコル、またはユーザデータグラムプロトコルUDPなどの他のプロトコルに準拠し得る。ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよびデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダコーデックの一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループGOPは、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ中、GOPの1つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ、たとえば、ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ITU-TH.264規格によれば、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。他の規格、たとえば、下記でより詳細に説明するHEVCによれば、ビデオブロックは、コーディングユニットたとえば、最大コーディングユニット、またはコーディングユニットのパーティションに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、複数のスライス、すなわち、ビデオフレームの部分を含み得る。各スライスは複数のビデオブロックを含み得、それらのビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。指定のコーディング規格に応じて、ビデオブロックは、16×16、8×8、4×4、2×2など、様々なN×Nサブブロックサイズに区分され得る。本開示では、N×xNとN×byNは、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、16×x16ピクセルまたは16×by16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有しy=16、水平方向に16ピクセルを有するx=16。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。一例として、ITU-TH.264規格では、サイズが16×16ピクセルであるブロックはマクロブロックと呼ばれることがあり、16×16ピクセルよりも小さいブロックは、16×16マクロブロックのパーティションと呼ばれることがある。他の規格、たとえば、HEVCでは、ブロックはより一般的にそれらのサイズに関連して、たとえば、各々が固定サイズではなく可変サイズを有するコーディングユニットおよびそのパーティションとして定義され得る。ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、所与のビデオブロックのための残差データへの離散コサイン変換DCT、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得、残差データは、ブロックのビデオデータと、ブロックのために生成される予測データとの間のピクセル差分を表す。場合によっては、ビデオブロックは、変換領域中に量子化変換係数のブロックを備え得、所与のビデオブロックのための残差データへの変換の適用後に、得られた変換係数も量子化される。ブロック区分は、ブロックベースのビデオコーディング技法において重要な目的を果たす。ビデオデータをコーディングするためにより小さいブロックを使用すると、高レベルのディテールを含むビデオフレームのロケーションに関するデータの予測がより良好になり得、したがって、残差データとして表される生じる誤差すなわち、ソースビデオデータからの予測データの偏差が低減し得る。残差データを低減する可能性がある一方、そのような技法は、しかしながら、ビデオフレームに対してブロックがどれだけより小さく区分されるかを示す追加のシンタックス情報を必要とし得、結果としてコード化ビデオビットレートが増加し得る。したがって、いくつかの技法では、ブロック区分は、追加のシンタックス情報に起因するコード化ビデオデータのビットレートの生じる増加に対して、残差データの望ましい低減の釣り合いをとることに依存し得る。概して、ブロック、およびその様々なパーティションすなわち、サブブロックは、ビデオブロックと見なされ得る。加えて、スライスは、複数のビデオブロックたとえば、マクロブロック、もしくはコーディングユニット、および/またはサブブロックマクロブロックのパーティション、もしくはサブコーディングユニットであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。さらに、シーケンスとも呼ばれるGOPが復号可能なユニットとして定義され得る。高効率ビデオコーディングHEVCと現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。新生のHEVC規格はH.265と呼ばれることもある。この規格化の取り組みは、HEVCテストモデルHM:HEVCTestModelと呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU-TH.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは、たとえば、イントラ予測コーディングされるブロックのサイズに基づいて、35個ものイントラ予測符号化モードを与える。HMでは、ビデオデータのブロックをコーディングユニットCUと呼ぶ。CUは、圧縮のために様々なコーディングツールが適用される基本ユニットとしての役割を果たす矩形の画像領域を指し得る。H.264では、これはマクロブロックと呼ばれることもある。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大CUである最大コーディングユニットLCU:largestcodingunitを定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUはサブCUに区分、または分割され得る。LCUは、LCUがどのように区分されるかを示す4分木データ構造に関連し得る。概して、4分木データ構造は、LCUのCUごとに1つのノードを含み、ルートノードがLCUに対応し、他のノードはLCUのサブCUに対応する。所定のCUが4つのサブCUに分割された場合、分割されたCUに対応する4分木中のノードは4つの子ノードを含み、子ノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックス情報を与え得る。たとえば、4分木のノードは、そのノードに対応するCUが4つのサブCUに分割されるかどうかを示す、CUの分割フラグを含み得る。所与のCUのシンタックス情報は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。分割されないCUすなわち、所与の4分木の末端、またはリーフノードに対応するCUは、1つまたは複数の予測ユニットPU:predictionunitを含み得る。概して、PUは、対応するCUの全部または一部分を表し、CUの予測を実行するためにそのPUの参照サンプルを取り出すためのデータを含む。たとえば、CUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、CUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度たとえば、1/4ピクセル精度もしくは1/8ピクセル精度、動きベクトルがポイントする参照フレーム、および/または動きベクトルの参照リストたとえば、リスト0もしくはリスト1を記述し得る。CUの1つまたは複数のPUを定義するCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。1つまたは複数のPUを有するCUはまた、1つまたは複数の変換ユニットTU:transformunitを含み得る。上記で説明したように、1つまたは複数のPUを使用してCUを予測した後に、ビデオエンコーダは、1つまたは複数のPUに対応するCUのそれぞれの部分について1つまたは複数の残差ブロックを計算し得る。残差ブロックは、CUのビデオデータと、1つまたは複数のPUのための予測データとの間のピクセル差分を表し得る。残差値のセットは、変換され、走査され、量子化されて、量子化変換係数のセットが定義され得る。TUは、CUに関して上記で説明した4分木データ構造と実質的に同様である変換係数のパーティション情報を示すパーティションデータ構造を定義し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUの対応するPUよりも大きいことも小さいこともある。いくつかの例では、TUの最大サイズは、対応するCUのサイズに対応し得る。一例では、CUに対応する残差サンプルが、残差4分木RQT:residualquadtreeとして知られる4分木構造を使用してより小さいユニットに再分割され得る。この場合、RQTのリーフノードは、TUとして参照され得、これについて対応する残差サンプルが変換され、量子化され得る。予測データと残差データとを生成するためのイントラ予測符号化またはインター予測符号化の後に、および変換係数を生成するためのH.264/AVCにおいて使用される4×4または8×8整数変換、あるいは離散コサイン変換DCTなどの任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。量子化後に、量子化データすなわち、量子化変換係数のエントロピーコーディングが実行され得る。エントロピーコーディングは、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関して本開示の技法に準拠し得、また、コンテキスト適応型可変長コーディングCAVLC、CABAC、PIPE、または別のエントロピーコーディング方法など、他のエントロピーコーディング技法を使用し得る。たとえば、量子化変換係数の絶対値および対応する符号たとえば、1または-1として表される係数値が、エントロピーコーディング技法を使用して符号化され得る。上記で説明した予測、変換、および量子化は、指定のコーディング規格に応じて、ビデオデータの任意のブロックについて、たとえば、CUのPUおよび/またはTU、あるいはマクロブロックに対して実行され得ることに留意されたい。したがって、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用することに関係する本開示の技法は、ビデオデータの任意のブロック、たとえば、マクロブロック、またはCUのTUを含む、量子化変換係数の任意のブロックに適用され得る。さらに、ビデオデータのブロックたとえば、マクロブロック、またはCUのTUは、対応するビデオデータのルミナンス成分Y、第1のクロミナンス成分U、および第2のクロミナンス成分Vの各々を含み得る。したがって、本開示の技法は、ビデオデータの所与のブロックのY、U、およびV成分の各々に対して実行され得る。上記で説明したようにビデオデータのブロックを符号化するために、所与のブロック内の有効係数の位置に関する情報も、生成および符号化され得る。その後、有効係数の値は、上記で説明したように符号化され得る。H.264/AVCおよび新生のHEVC規格では、コンテキスト適応型エントロピーコーディングプロセス、たとえば、CABACプロセスを使用するとき、ビデオデータのブロック内の有効係数の位置は、有効係数の値を符号化するより前に符号化され得る。ブロック内のすべての有効係数の位置を符号化するプロセスは、有効性マップSM:significancemap符号化と呼ばれることがある。下記でより詳細に説明する図4A~図4Cは、量子化変換係数の4×4ブロックおよび対応するSMデータの例を示す概念図である。典型的なSM符号化プロシージャは、次のように説明され得る。ビデオデータの所与のブロックについて、SMは、ブロック内に少なくとも1つの有効係数がある場合にのみ符号化され得る。ビデオデータの所与のブロック内に有効係数が存在することは、コード化ブロックパターンにおいてたとえば、シンタックス要素codedblockpatternすなわちCBPを使用して示され得、これは、ビデオデータ中のピクセル領域に関連するルミナンスブロックおよびクロミナンスブロックなどのブロックのセットに対してコーディングされるバイナリ値である。CBP中の各ビットは、たとえば、シンタックス要素codedblockflagに対応するコード化ブロックフラグと呼ばれ、それの対応するブロック内に少なくとも1つの有効係数があるかどうかを示すために使用される。言い換えれば、コード化ブロックフラグは、変換係数の単一ブロックの内部に有効係数があるかどうかを示す1ビットシンボルであり、CBPは、関連するビデオデータブロックのセットのためのコード化ブロックフラグのセットである。コード化ブロックフラグが、対応するブロック内に有効係数がないたとえば、フラグが0に等しいことを示す場合、そのブロックについてさらなる情報は符号化されないことがある。しかしながら、コード化ブロックフラグが、対応するブロック内に少なくとも1つの有効係数が存在することを示すたとえば、フラグが1に等しい場合、そのブロックに関連する係数走査順序に従うことによって、そのブロックについてSMが符号化され得る。走査順序は、ブロック内の各係数の有効性が符号化される順序をSM符号化の一部として定義し得る。言い換えれば、走査は、係数の有効性を求めるために、係数の2次元ブロックを1次元表現に直列化し得る。様々な走査順序たとえば、ジグザグ、水平、および垂直が使用され得る。同じく下記でより詳細に説明する図5A~図5Cは、8×8ブロックのビデオデータのために使用され得る様々な走査順序のうちのいくつかの例を示す。ただし、本開示の技法は、対角走査順序と、ジグザグ、水平、垂直、および/または対角走査順序の組合せである走査順序と、部分的にジグザグ、部分的に水平、部分的に垂直、および/または部分的に対角である走査順序とを含む、多種多様な他の走査順序に対しても適用され得る。加えて、本開示の技法はまた、ビデオデータの前にコーディングされたブロックたとえば、現在コーディングされているブロックと同じブロックサイズまたはコーディングモードを有するブロックに関連する統計値に基づいて、それ自体が適応的である走査順序を考慮し得る。たとえば、適応走査順序は、場合によっては、最確走査順序であり得る。所与のブロック内に少なくとも1つの有効係数が存在することを示すコード化ブロックフラグ、およびそのブロックに関する走査順序が与えられれば、そのブロックのSMは次のように符号化され得る。最初に、量子化変換係数の2次元ブロックが、走査順序を使用して1次元アレイにマッピングされ得る。アレイ中の係数ごとに、走査順序に従って、たとえば、シンタックス要素significantcoeffflagに対応する1ビット有効係数フラグが符号化され得る。すなわち、アレイ中の各位置にバイナリ値が割り当てられ得、バイナリ値は、対応する係数が有効である場合には1に設定され、有効でないすなわち、ゼロである場合には0に設定され得る。所与の有効係数フラグが、対応する係数が有効であることを示す1に等しい場合、たとえば、シンタックス要素lastsignificantcoeffflagに対応する追加の1ビットの最後有効係数フラグも符号化され得、これは、対応する係数がアレイ内のすなわち、走査順序を与えられているブロック内の最後有効係数であるかどうかを示し得る。具体的には、各最後有効係数フラグは、対応する係数がアレイ内の最後有効係数である場合は1に設定され、そうでない場合は0に設定され得る。このようにして最後のアレイ位置に達し、SM符号化プロセスが1に等しい最後有効係数フラグによって終了しなかった場合、アレイしたがって、走査順序を与えられているブロック中の最後の係数は有効であることが推測され得、その最後のアレイ位置について最後有効係数フラグは符号化されない場合がある。図4B~図4Cは、アレイ形式ではなくマップで表された、図4Aに示すブロックのSMデータに対応する有効係数フラグおよび最後有効係数フラグのセットの例をそれぞれ示す概念図である。上記で説明した有効係数フラグおよび最後有効係数フラグは、他の例では異なる値に設定され得るたとえば、有効係数フラグは、対応する係数が有効である場合は0に設定され、対応する係数が有効でない場合は1に設定され得、最後有効係数フラグは、対応する係数が最後有効係数である場合は0に設定され、対応する係数が最後有効係数でない場合は1に設定され得ることに留意されたい。上記で説明したように、SMが符号化された後、ブロック中の各有効係数の値すなわち、たとえば、それぞれシンタックス要素coeffabslevelminus1およびcoeffsignflagによって示される、各有効係数の絶対値および符号も符号化され得る。いくつかの技法によれば、上記で説明したように、ビデオデータのブロックをコーディングするために、固定走査順序、たとえば、ジグザグ走査順序が使用され得る。他の技法によれば、ブロックをコーディングするために複数の走査順序が使用され得る。いくつかの例では、走査順序が経時的に適応され、所与の時間に係数の特定のブロックをコーディングするために現在適応されている走査順序が使用される、適応係数走査ACS:adaptivecoefficientscanningが使用され得る。さらに他の技法では、ビデオエンコーダ20は、1つまたは複数の圧縮効率メトリックに基づいていくつかの走査順序をテストし、ブロックを符号化するために最良の走査順序を選択し得る。さらに、ビデオエンコーダ20は、たとえば、ジグザグ走査順序ではインデックス0、水平走査順序では1、垂直走査順序では2を使用していくつかの走査順序のうちのいずれか1つを表し得るACSインデックスを符号化することによって、ビデオデコーダ30に走査順序を示し得る。いくつかの技法によれば、ビデオエンコーダ20は、最後有効係数が走査順序においてDC位置と通常呼ばれるブロック内の左上位置に対応する最初の位置にないときのみ、ACSインデックスを符号化し得る。以下で同じくより詳細に説明する図5に示すように、すべての可能な走査順序はDC位置から開始し得るので、ブロック内の最後唯一有効係数がDC位置にある場合、ビデオデコーダ30は、ビデオエンコーダ20によって使用された走査順序の指示を必要としないので、ビデオエンコーダ20はこのようにしてACSインデックスを符号化し得る。ブロック内の最後有効係数がDC位置にない場合、ビデオエンコーダ20は以下の方法でACSインデックスを符号化し得る。ビデオエンコーダ20は、走査順序がジグザグ走査順序であるかたとえば、bin1=0否かたとえば、bin1=1を示す第1の信号たとえば、bin1を符号化し得る。走査順序がジグザグ走査順序でない場合、ビデオエンコーダ20は、走査順序が水平走査順序であるかたとえば、bin2=0垂直走査順序であるかたとえば、bin2=1を示す第2の信号たとえば、bin2を符号化し得る。同様に、ビデオデコーダ30は、ACSインデックスを判断するために、第1の信号と第2の信号とを受信し、復号し得る。したがって、ACSインデックスを常にコーディングするのではなく、ビデオエンコーダ20および/またはビデオデコーダ30は、最後有効係数がDC位置にないときのみ、ACSインデックスをコーディングし得る。上記で説明した技法の1つの欠点は、ビデオデータのブロックの走査順序情報をコーディングするとき、ビデオエンコーダ20および/またはビデオデコーダ30が常にこの情報を全体としてコーディングし得ることである。言い換えれば、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序に応じて、たとえば、1~2ビットまたはビンを使用して、常にブロックの走査順序情報全体をコーディングし得る。さらに、ビデオエンコーダ20および/またはビデオデコーダ30がブロックの走査順序情報をコーディングするとき、上記で説明した技法は、ブロックに関連する予測モードおよびサイズと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序との間の相関を利用することができない。これらの場合、常にブロックの走査順序情報を全体としてコーディングし、上記で説明した相関を利用することなしにこの情報をコーディングすると、他の技法を使用してその情報をコーディングするときよりも、たとえば、より多くのビンを使用して、その情報をコーディングする際の効率が低くなり得る。上記で説明した技法の別の欠点は、ビデオエンコーダ20および/またはビデオデコーダ30が、コンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって、たとえば、1~2個のビンを使用して表される、ブロックの走査順序情報をさらにエントロピーコーディングするとき、本技法は、他の方法を使用して判断された確率推定値よりも正確でない確率推定値を含んでいるコンテキストモデルを使用し得ることである。そのような確率推定値を使用してブロックの走査順序情報をエントロピー符号化すると、この場合も、他の技法を使用して、たとえば、より正確な確率推定値を使用してその情報をエントロピーコーディングするときよりも、たとえば、より多くのビットを使用して、その情報をコーディングする際の効率が低くなり得る。したがって、本開示では、他の技法よりも効率的にビデオデータのブロックについての走査順序情報をコーディングすることを可能にし得る技法について説明する。一例として、走査順序情報は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序が最確走査順序であるかどうかの指示をコーディングすることとによって、より効率的にコーディングされ得る。ブロックに関連する走査順序が最確走査順序である場合、ブロックについてさらなる走査順序情報はコーディングされなくてよい。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合、本技法は、ブロックに関連する走査順序の指示をコーディングすることをさらに含み得る。定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするため使用されることになるので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされない。その結果、ブロックの走査順序情報は、他の技法を使用したときよりも少ない情報を使用してコーディングされ得る。別の例として、走査順序情報は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することよってより効率的にコーディングされ得る。この場合も、定義によれば、ビデオデータの特定のブロックのための最確走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用されることになるので、ブロックに関連する走査順序が最確走査順序であるかどうかの初期指示は、数多くの場合、ブロック全体の走査順序情報を示すことになり、さらなる走査順序情報をコーディングする必要はなくなる。さらに、ブロックに関連する走査順序が最確走査順序でない場合、ブロックを効率的にコーディングするためには、ブロックに関連する走査順序の指示をコーディングするのではなく、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用することで十分であり得る。たとえば、係数をより効率的に走査し得る別の走査順序を使用するのではなく、係数をコーディングするためにジグザグ走査順序を使用することの悪影響を、上記で説明したブロックについての走査順序情報のコーディングの低減が上回り得る。さらに別の例として、走査順序情報は、ブロックのための最確走査順序にジグザグ走査順序を指定することによってより効率的にコーディングされ得る。この例では、ジグザグ走査順序は、平均すると、ブロックをコーディングするために同じく使用され得る他の走査順序よりも頻繁にブロックをコーディングするために使用され得るので、ブロックに関連する走査順序の追加の指示は、数多くの場合、コーディングされなくてよい。さらに、最確走査順序にジグザグ走査順序を指定することによって、コーディング効率は、上記で説明したように、ブロックのための実際の最確走査順序を判断することを回避することにより、改善され得る。上記で説明した例の各々において、走査順序情報は、ブロックの走査順序情報、すなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とのうちの1つまたは複数をさらにエントロピー符号化することによって、より効率的にコーディングされ得る。たとえば、走査順序情報は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってエントロピー符号化され得る。上記で説明した例では、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得、それにより、コンテキストモデル内に含まれる確率推定値は、他の技法を使用して判断された確率推定値よりも正確になり得る。その結果、ブロックの走査順序情報はより効率的にコーディングされ得る。たとえば、この情報は、他の技法を使用したときよりも、たとえば、この情報をコーディングするために他のあまり正確でない確率推定値を使用したときよりも少ないビットを使用してコーディングされ得る。上記で説明した例では、最確走査順序は、ブロックをコーディングするために使用されるコーディングモードと、ブロックに関連するサイズとに基づいて、エンコーダおよびデコーダにおいて定義され得る。コーディングモードは、イントラ予測モードおよびインター予測モードのうちの1つであり得るが、これらの技法は、イントラ予測モードを使用してコーディングされるブロックに最も適用可能であり得る。したがって、いくつかの例では、最確走査順序の判断は、ブロックをコーディングするために複数のイントラ予測モードのうちのどれが使用されるかに基づき得る。ブロックに関連するサイズは、ブロックに関連する、CUサイズ、PUサイズ、TUサイズ、あるいは場合によってはCU、PUおよび/またはTUサイズのいくつかの組合せさえをも指し得る。本開示の技法は、上記で説明したSMコーディングのための技法、ならびに走査順序情報をコーディングするための他の技法を含む、ビデオデータのブロックについての走査順序情報をコーディングする任意の方法に適用可能であることに留意されたい。たとえば、本開示の技法は、ブロックのSMデータすなわち、最後有効係数位置情報および有効係数位置情報とは無関係に、本明細書で説明する方法でビデオデータのブロックについての走査順序情報をコーディングすることを含み得る。一例として、本技法は、ブロックについて、最後有効係数位置情報をコーディングした後に、および有効係数位置情報をコーディングする前に走査順序情報をコーディングすることを含み得る。いくつかの例では、ソースデバイス12のビデオエンコーダ20は、ビデオデータのいくつかのブロックたとえば、1つまたは複数のマクロブロック、あるいはCUのTUを符号化するように構成され得、宛先デバイス14のビデオデコーダ30は、ビデオエンコーダ20から、たとえば、モデム28および受信機26から符号化されたビデオデータを受信するように構成され得る。本開示の技法によれば、一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、図6A~図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。別の例では、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示をコーディングするようにさらに構成され得る。この例では、ブロックに関連する走査順序の指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、この場合も、ビデオエンコーダ20および/またはビデオデコーダ30が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、この場合も、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。したがって、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示をコーディングすることによってブロックの走査順序情報をコーディングするように構成され得る。別の例では、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数をコーディングするためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングした後に、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックについての追加の走査順序情報をコーディングしないように構成され得る。さらに別の例では、ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序すなわち、この特定の例では、ジグザグ走査順序でない場合、ブロックに関連する走査順序の指示をコーディングするようにさらに構成され得る。言い換えれば、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、たとえば、前にコーディングされたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。この例では、ブロックに関連する走査順序の指示をコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、この場合も、ビデオエンコーダ20および/またはビデオデコーダ30が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、この場合も、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。したがって、この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序がジグザグ走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示をコーディングすることによってブロックの走査順序情報をコーディングするように構成され得る。この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序に従うブロック内の最後非0係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報をコーディングするようにさらに構成され得る。さらに、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロック内のすべての他の非0係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報をコーディングするようにさらに構成され得る。前に説明したように、ブロックについての最後有効係数位置情報および有効係数位置情報は、ブロックについてのSMデータと総称されることがある。いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータをコーディングした後に、ビデオエンコーダ20および/またはビデオデコーダ30はまた、ブロック内の各有効係数の値たとえば、それぞれシンタックス要素coeffabslevelminus1およびcoeffsignflagによって示される、各有効係数の絶対値および符号をコーディングし得る。したがって、本開示の技法により、ビデオエンコーダ20および/またはビデオデコーダ30は、他の方法を使用したときよりも効率的にブロックの走査順序情報をコーディングすることが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダコーデックの一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。図2は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、マクロブロック、CU、およびそれらのパーティションまたはサブパーティションを含む、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモードIモードは、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測Pモードまたは双方向予測Bモードなどのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内のビデオデータの現在ブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、メモリ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ図2に図示せずも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して所与の受信ビデオブロックのインター予測コーディングを実行し得る。イントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して所与の受信ビデオブロックのイントラ予測コーディングを実行し得る。モード選択ユニット40は、コーディング結果たとえば、得られたコーディングレートおよびひずみレベルに基づいて、およびコーディングされている所与の受信ブロックを含むフレームまたはスライスについてのフレームまたはスライスタイプに基づいて、コーディングモードのうちの1つ、すなわち、1つのモードまたは複数のイントラもしくはインターコーディングモードを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に供給し、参照フレームまたは参照スライス中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に供給し得る。概して、イントラ予測は、隣接する、前にコーディングされたブロックに対して現在ブロックを予測することを伴い、一方、インター予測は、現在ブロックを時間的に予測するために動き推定および動き補償を伴う。動き推定ユニット42および動き補償ユニット44は、ビデオエンコーダ20のインター予測要素を表す。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレームまたは他のコード化ユニット内でコーディングされている現在ブロックに対する予測参照フレームまたは他のコード化ユニット内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和SAD:sumofabsolutedifference、2乗差分和SSD:sumofsquaredifference、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、ブロックのパーティションの変位を指示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。動き推定ユニット42は、ビデオブロックをメモリ64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算し得る。動き補償ユニット44はまた、この比較のために、参照フレーム、たとえば、IフレームまたはPフレームのサブ整数ピクセルを補間し得る。一例として、ITUH.264規格には、符号化されている現在フレームよりも前の表示順序を有する参照フレームを含むリスト0、および符号化されている現在フレームよりも後の表示順序を有する参照フレームを含むリスト1という2つのリストが記載されている。したがって、メモリ64に記憶されたデータは、これらのリストに従って編成され得る。動き推定ユニット42は、メモリ64からの1つまたは複数の参照フレームのブロックを、現在フレーム、たとえば、PフレームまたはBフレームの符号化されるべきブロックと比較し得る。メモリ64中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42および/または動き補償ユニット44はまた、サブ整数ピクセル位置の値がメモリ64に記憶されていない場合、メモリ64に記憶された参照フレームのサブ整数ピクセル位置の値を計算するように構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送り得る。動きベクトルによって識別される参照フレームブロックは、インター予測ブロック、または、より一般的に、予測ブロックと呼ばれることがある。動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。イントラ予測モジュール46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在ブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測モジュール46または、いくつかの例では、モード選択ユニット40は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみまたは誤差の量、ならびに符号化されたブロックを生成するために使用されるビットレートすなわち、ビット数を判断する。イントラ予測モジュール46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化されたブロックについてのひずみおよびレートから比率を計算し得る。たとえば、イントラ予測またはインター予測を使用して、現在ブロックを予測した後に、ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測モジュール46によって計算された予測データを減算することによって残差ビデオブロックを形成し得る。加算器50は、この減算演算を実行し得る1つまたは複数の構成要素を表す。変換モジュール52は、離散コサイン変換DCTまたは概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を備えるビデオブロックを生成し得る。変換モジュール52は、概念的にDCTと同様である、H.264規格によって定義された変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール52は、変換を残差ブロックに適用して、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートをさらに低減するために残差変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。量子化の後に、エントロピー符号化ユニット56は、CAVLC、CABAC、PIPE、または別のエントロピーコーディング技法を含み得る、量子化変換係数をエントロピー符号化し得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、上記で説明したエントロピーコーディング量子化変換係数に加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、符号化ビデオビットストリーム中で送信するのに適切なシンタックス要素を用いて、ブロックたとえば、マクロブロック、CU、またはLCUあるいはブロックを含んでいるビデオフレームについてのヘッダ情報を構築し得る。いくつかのコーディング規格によれば、そのようなシンタックス要素は、前に説明したように、ブロックの走査順序情報を含み得る。同じく前に説明したように、走査順序情報は、非効率的にコーディングされた場合、全体的な圧縮ビデオビットレートのうちの高いパーセンテージを消費し得る。したがって、本開示では、他の方法を使用したときよりも効率的にブロックの走査順序情報をコーディングすることを可能にし得る技法について説明する。いくつかの例として、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータのいくつかのブロックたとえば、1つまたは複数のマクロブロック、あるいはCUのTUを符号化するように構成され得る。本開示の技法によれば、一例として、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化するように構成され得る。たとえば、エントロピー符号化ユニット56は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化することとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、図6A~図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。たとえば、エントロピー符号化ユニット56は、前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックについての走査順序情報を使用して最確走査順序を判断し得る。さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化するために、エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。さらに、指示は単一ビットまたはビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が最確走査順序であるかたとえば、bin=0そうでないかたとえば、bin=1を示すようにビンを符号化し得る。別の例では、ブロックの走査順序情報を符号化するために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示を符号化するようにさらに構成され得る。この例では、ブロックに関連する走査順序の指示を符号化するために、エントロピー符号化ユニット56は、この場合も、エントロピー符号化ユニット56が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。さらに、ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1を示すようにビンを符号化するように構成され得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化するように構成され得る。したがって、この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を符号化することによってブロックの走査順序情報を符号化するように構成され得る。以下は、上記で説明した例に一致する、本開示の技法を実行するために使用され得るコンピュータコードの一例である。たとえば、このコンピュータコードは、ビデオデータのブロックのための最確走査順序に対応する走査順序インデックスの2次元アレイを構成するためのアルゴリズムを含む。この例では、特定のブロックのための最確走査順序は、そのブロックに関連するイントラ予測モードおよびサイズに基づいて判断される。したがって、2次元アレイの各行は、ビデオデータのブロックに関連するサイズに対応し、アレイの各列は、ブロックに関連するイントラ予測モードに対応する。言い換えれば、2次元アレイ内の各位置は、特定のイントラ予測モードおよびサイズに関連しているビデオデータのブロックのための最確走査順序を示す。たとえば、2次元アレイによって示されるブロックのための最確走査順序は、前に符号化されたブロックに対応する走査順序情報を使用して判断され得る。この例では、特定のブロックのための最確走査順序は、3つの走査順序インデックス、すなわち、0、1、および2のうちの1つを使用して示される。一例として、走査順序インデックスはそれぞれ、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを表し得る。他の例では、走査順序インデックスは、他の走査順序を表し得、より多いまたはより少ないインデックスを備え得る。コンピュータコードはまた、ブロックの走査順序情報を符号化するために上記で説明した2次元アレイを使用してブロックに関連するイントラ予測モードおよびサイズに基づいて判断される特定のブロックのための最確走査順序を使用する符号化アルゴリズムを含む。たとえば、このアルゴリズムは、1つと2つとの間のビンを使用してブロックの走査順序情報を符号化し、各ビンは、最確走査順序とイントラ予測モードとサイズとを含むコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって符号化される。前に説明したように、コンテキストは、特定のビンを符号化するためのコンテキストモデル内の確率推定値を選択するために使用される。特に、確率推定値は、ビンが所与の値たとえば、0または1を有する可能性を示す。別の例では、ブロックの走査順序情報をコーディングするために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数を符号化するためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化した後に、エントロピー符号化ユニット56は、ブロックについての追加の走査順序情報を符号化しないように構成され得る。さらに別の例では、ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報を符号化するために、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序すなわち、この特定の例では、ジグザグ走査順序でない場合、ブロックに関連する走査順序の指示を符号化するようにさらに構成され得る。言い換えれば、この例では、エントロピー符号化ユニット56は、たとえば、前に符号化されたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。この例では、ブロックに関連する走査順序の指示を符号化するために、エントロピー符号化ユニット56は、この場合も、エントロピー符号化ユニット56が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示は、この場合も、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1を示すようにビンを符号化し得る。この例では、第1の走査順序および第2の走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序すなわち、この特定の例では、ジグザグ走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序すなわち、この特定の例では、ジグザグ走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化し得る。したがって、この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序が最確走査順序すなわち、この特定の例では、ジグザグ走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を符号化することによってブロックの走査順序情報を符号化するように構成され得る。以下は、上記で説明した例に一致する、本開示の技法を実行するために使用されるコンピュータコードの別の例である。たとえば、このコンピュータコードは、ビデオデータのブロックのためのコンテキストインデックスの2次元アレイを構成するためのアルゴリズムを含む。この例では、特定のブロックのための各コンテキストインデックスは、ブロックに関連するイントラ予測モードおよびサイズに基づいて判断される。したがって、2次元アレイの各行は、ビデオデータのブロックに関連するサイズに対応し、アレイの各列は、ブロックに関連するイントラ予測モードに対応する。言い換えれば、2次元アレイ内の各位置は、特定のイントラ予測モードおよびサイズに関連しているビデオデータのブロックのためのコンテキストインデックスを含む。この例では、特定のブロックのための各コンテキストインデックスは、3つのインデックス、すなわち、0、1、および2のうちの1つを備える。他の例では、コンテキストインデックスはより多いまたはより少ないインデックスを備え得る。コンピュータコードはまた、ブロックの走査順序情報を符号化するために上記で説明した2次元アレイを使用してブロックに関連するイントラ予測モードおよびサイズに基づいて判断される特定のブロックのためのコンテキストインデックスを使用する符号化アルゴリズムを含む。たとえば、このアルゴリズムは、1つと2つとの間のビンを使用してブロックの走査順序情報を符号化し、各ビンは、コンテキストインデックスとイントラ予測モードとサイズとを含むコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって符号化される。前に説明したように、コンテキストは、特定のビンを符号化するためのコンテキストモデル内の確率推定値を選択するために使用される。特に、確率推定値は、ビンが所与の値たとえば、0または1を有する可能性を示す。上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンすなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビンを符号化するために、対応するコンテキストモデルは、ビンが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。エントロピー符号化ユニット56は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを符号化するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの走査順序情報を符号化し得る。この例では、エントロピー符号化ユニット56は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報を符号化するようにさらに構成され得る。たとえば、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。さらに、エントロピー符号化ユニット56は、ブロック内のすべての他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を符号化するようにさらに構成され得る。たとえば、ブロックの有効係数位置情報は、前に説明したように、同じく有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってそれぞれのシーケンスの各フラグを符号化することによって最後有効係数位置情報と有効係数位置情報とを符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する最後有効係数フラグと有効係数フラグとの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックについての最後有効係数位置情報と有効係数位置情報とを符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの最後有効係数位置情報と有効係数位置情報とを符号化し得ることに留意されたい。いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータを符号化した後に、エントロピー符号化ユニット56はまた、ブロック内の各有効係数の値たとえば、それぞれシンタックス要素coeffabslevelminus1およびcoeffsignflagによって示される、各有効係数の絶対値および符号を符号化し得る。したがって、本開示の技法により、エントロピー符号化ユニット56は、他の方法を使用したときよりも効率的にブロックの走査順序情報を符号化することが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックをメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、メモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。このように、ビデオエンコーダ20は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダの一例を表し、ブロックに関連する走査順序を識別する情報をコーディングするために、ビデオコーダは、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成される。図3は、本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測モジュール74と、逆量子化ユニット76と、逆変換モジュール78と、メモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20図2に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得る。いくつかの例では、ビデオデコーダ30は、ビデオエンコーダ20から符号化ビデオデータたとえば、1つまたは複数のマクロブロック、またはCUのTUを受信するように構成され得る。本開示の技法によれば、一例として、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号するように構成され得る。たとえば、エントロピー復号ユニット70は、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号することとを行うように構成され得る。この例では、ブロックに関連する走査順序と、最確走査順序との各々は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。この場合も、ジグザグ走査順序、水平走査順序、および垂直走査順序は例にすぎず、本開示の技法に一致する他の走査順序も定義または使用され得る。ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、図6A~図6Bを参照しながら以下でより詳細に説明するように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断するように構成され得る。さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号するために、エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。さらに、指示は単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、符号化された走査順序データを受信し、その走査順序データを復号して、走査順序が最確走査順序であるかたとえば、bin=0そうでないかたとえば、bin=1をビンが示すようにビンを判断し得る。別の例では、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する走査順序の指示を復号するようにさらに構成され得る。この例では、ブロックに関連する走査順序の指示を復号するために、エントロピー復号ユニット70は、この場合も、エントロピー復号ユニット70が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。さらに、ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の符号化された走査順序データを受信し、その追加の走査順序データを復号して、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1をビンが示すようにビンを判断するように構成され得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを判断するために追加の走査順序データを復号して、ブロックに関連する走査順序の指示を復号するように構成され得る。したがって、この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を復号することによってブロックの走査順序情報を復号するように構成され得る。別の例では、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序でない場合、ブロックに関連する係数を復号するためにジグザグ走査順序を使用するようにさらに構成され得る。したがって、この例では、ブロックのための最確走査順序を判断し、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号した後に、エントロピー復号ユニット70は、ブロックについての追加の走査順序情報を復号しないように構成され得る。さらに別の例では、ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、ブロックのための最確走査順序にジグザグ走査順序を指定するように構成され得る。この例では、上記で説明したのと同様の方法で、ブロックの走査順序情報を復号するために、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序すなわち、この特定の例では、ジグザグ走査順序でない場合、ブロックに関連する走査順序の指示を復号するようにさらに構成され得る。言い換えれば、この例では、エントロピー復号ユニット70は、たとえば、前に復号されたブロックの走査順序情報を使用して、ブロックのための最確走査順序の実際の判断を実行するのではなく、ジグザグ走査順序がブロックのための最確走査順序であると仮定するように構成され得る。この例では、ブロックに関連する走査順序の指示を復号するために、エントロピー復号ユニット70は、この場合も、エントロピー復号ユニット70が少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するように構成され得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示は、この場合も、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の符号化された走査順序データを受信し、その追加の走査順序データを復号して、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1をビンが示すようにビンを判断し得る。この例では、第1の走査順序および第2の走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序すなわち、この特定の例では、ジグザグ走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序すなわち、この特定の例では、ジグザグ走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを判断するために追加の走査順序データを復号して、ブロックに関連する走査順序の指示を復号し得る。したがって、この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序が最確走査順序すなわち、この特定の例では、ジグザグ走査順序であるかどうかの指示、および、場合によっては、ブロックに関連する走査順序の指示を復号することによってブロックの走査順序情報を復号するように構成され得る。上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンすなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビンを復号するために、対応するコンテキストモデルは、ビンが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。エントロピー復号ユニット70は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを復号するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロック、たとえば、現在復号されているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの走査順序情報を復号し得る。この例では、エントロピー復号ユニット70は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報を復号するようにさらに構成され得る。たとえば、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。さらに、エントロピー復号ユニット70は、ブロック内のすべての他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を復号するようにさらに構成され得る。たとえば、ブロックの有効係数位置情報は、前に説明したように、同じく有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってそれぞれのシーケンスの各フラグを復号することによって最後有効係数位置情報と有効係数位置情報とを復号し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する最後有効係数フラグと有効係数フラグとの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックについての最後有効係数位置情報と有効係数位置情報とを復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの最後有効係数位置情報と有効係数位置情報とを復号し得ることに留意されたい。いずれの場合も、上記で説明した方法で、ブロックについての走査順序情報、ならびに最後有効係数位置情報および有効係数位置情報、すなわち、SMデータを復号した後に、エントロピー復号ユニット70はまた、ブロック内の各有効係数の値たとえば、それぞれシンタックス要素coeffabslevelminus1およびcoeffsignflagによって示される、各有効係数の絶対値および符号を復号し得る。したがって、本開示の技法により、エントロピー復号ユニット70は、他の方法を使用したときよりも効率的にブロックの走査順序情報を復号することが可能になり得る。このようにして、本開示の技法を使用すると、走査順序情報を含むコード化ビットストリームについての相対的なビット節約があり得る。動き補償ユニット72は、ビットストリーム中で受信された動きベクトルを使用して、メモリ82中の参照フレーム中の予測ブロックを識別し得る。イントラ予測モジュール74は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。イントラ予測モジュール74は、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化されたブロックをイントラ予測するために、符号化されたブロックのイントラ予測モードの指示を使用し得る。ブロックがインター予測モード符号化される例では、動き補償ユニット72は、符号化されたブロックについての動き補償予測データを取り出すために、動きベクトルを定義する情報を受信し得る。いずれの場合も、動き補償ユニット72またはイントラ予測モジュール74は、予測ブロックを定義する情報を加算器80に供給し得る。逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化inversequantize、すなわち、逆量子化dequantizeする。逆量子化プロセスは、たとえば、H.264復号規格によって定義される、またはHEVCテストモデルによって実行されるなど、従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、各ブロックについてビデオエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。逆変換モジュール78は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。動き補償ユニット72は、符号化ブロックのためのシンタックス情報のいくつかを使用して、符号化ビデオシーケンスの1つまたは複数のフレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームまたはスライスの各ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ブロックまたはパーティションのための1つまたは複数の参照フレームおよび参照フレームリストと、符号化ビデオシーケンスを復号するための他の情報とを判断する。イントラ予測モジュール74はまた、たとえば、上記で説明したように、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために、符号化ブロックのシンタックス情報を使用し得る。加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74によって生成された対応する予測ブロックと合計して、復号ブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理し得る。復号ビデオブロックは、次いで、メモリ82に記憶され、メモリ82は、参照ブロックを後続の動き補償に供給し、また、図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために復号ビデオを生成する。このように、ビデオデコーダ30は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングするように構成されたビデオコーダの一例を表し、ブロックに関連する走査順序を識別する情報をコーディングするために、ビデオコーダは、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを行うように構成される。図4A~図4Cは、ビデオデータのブロックと、対応する有効係数位置情報および最後有効係数位置情報との一例を示す概念図である。図4Aに示すように、ビデオデータのブロック、たとえば、マクロブロック、またはCUのTUは、量子化変換係数を含み得る。たとえば、図4Aに示すように、ブロック400は、前に説明した予測、変換、および量子化技法を使用して生成される量子化変換係数を含み得る。この例では、ブロック400は2N×2Nのサイズを有し、Nは2に等しいと仮定する。したがって、同じく図4Aに示すように、ブロック400は4×4のサイズを有し、16個の量子化変換係数を含む。さらに、ブロック400に関連する走査順序は、下記でより詳細に説明する図5Aに示すようにジグザグ走査順序であると仮定する。この例では、ジグザグ走査順序に従うブロック400内の最後有効係数は、ブロック400内の位置406に位置する1に等しい量子化変換係数である。他の例では、上記で説明したように、ブロックは、ブロック400のサイズよりも小さいかまたは大きいサイズを有し得、ブロック400よりも多いかまたは少ない量子化変換係数を含み得る。さらに他の例では、ブロック400に関連する走査順序は異なる走査順序、たとえば、水平走査順序、垂直走査順序、対角走査順序、または別の走査順序であり得る。図4Bは、有効係数フラグデータ、すなわち、前に説明したようにマップまたはブロック形式で表される有効係数フラグの一例を示す。図4Bの例では、ブロック402は、図4Aに示すブロック400に対応し得る。言い換えれば、ブロック402の有効係数フラグは、ブロック400の量子化変換係数に対応し得る。図4Bに示すように、ブロック402の1に等しい有効係数フラグは、ブロック400の有効係数に対応する。同様に、ブロック402の0に等しい有効係数フラグは、ブロック400のゼロまたは非有効係数に対応する。この例では、ジグザグ走査順序に従うブロック400内の最後有効係数に対応するブロック402の有効係数フラグは、ブロック402内の位置408に位置する1に等しい有効係数フラグである。他の例では、有効係数または非有効係数を示すために使用される有効係数フラグの値は異なり得るたとえば、0に等しい有効係数フラグが有効係数に対応し得、1に等しい有効係数フラグが非有効係数に対応し得る。図4Cは、最後有効係数フラグデータ、すなわち、同じく前に説明したようにマップまたはブロック形式で表される最後有効係数フラグの一例を示す。図4Cの例では、ブロック404は、それぞれ図4Aおよび図4Bに示すブロック400およびブロック402に対応し得る。言い換えれば、ブロック404の最後有効係数フラグは、ブロック400の量子化変換係数と、ブロック402の有効係数フラグとに対応し得る。図4Cに示すように、ブロック404内の位置410に位置するブロック404の1に等しい最後有効係数フラグは、ジグザグ走査順序に従う、ブロック400の最後有効係数と、ブロック402の1に等しい有効係数フラグのうちの最後のものとに対応する。同様に、ブロック404の0に等しい最後有効係数フラグすなわち、すべての残りの最後有効係数フラグは、ブロック400のゼロまたは非有効係数と、ブロック402の1に等しいすべての有効係数フラグの、ジグザグ走査順序に従うそのような有効係数フラグの最後のもの以外のものとに対応する。走査順序に従う最後有効係数を示すために使用される最後有効係数フラグの値は異なり得るたとえば、0に等しい最後有効係数フラグが、走査順序に従う最後有効係数に対応し得、1に等しい最後有効係数フラグがすべての残りの係数に対応し得る。いずれの場合も、ブロック402の有効係数フラグと、ブロック404の最後有効係数フラグとは、ブロック400のSMデータと総称されることがある。上記で説明したように、ビデオデータのブロックについての有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの有効係数フラグを、図4Bに示すブロック402に示されるような2次元ブロック表現から1次元アレイに直列化することによって示され得る。図4A~図4Bに示すブロック400~402の例では、再びジグザグ走査順序を仮定すると、ブロック400の有効係数位置情報は、ブロック402の有効係数フラグを1次元アレイに直列化することによって示され得る。すなわち、ブロック400の有効係数位置情報は、ジグザグ走査順序に従ってブロック402の有効係数フラグのシーケンスを生成することによって示され得る。この例では、生成されるシーケンスは、ジグザグ走査順序に従うブロック402の最初の6つの有効係数フラグを表す値111111に対応し得る。生成されるシーケンスは、ジグザグ走査順序における最初のブロック位置すなわち、DC位置から開始して、ジグザグ走査順序に従うブロック400の最後有効係数に対応するすなわち、ブロック404の1に等しい最後有効係数フラグに対応するブロック位置で終わる、ブロック400内のブロック位置の範囲に対応する有効係数フラグを含んでいることがあることに留意されたい。同じく上記で説明したように、ブロックの最後有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの最後有効係数フラグを、図4Cに示すブロック404に示されるような2次元ブロック表現から1次元アレイに直列化することによって示され得る。図4A~図4Cに示すブロック400~404の例では、再びジグザグ走査順序を仮定すると、ブロック400の最後有効係数位置情報は、ブロック404の最後有効係数フラグを1次元アレイに直列化することによって示され得る。すなわち、ブロック400の最後有効係数位置情報は、ジグザグ走査順序に従ってブロック404の最後有効係数フラグのシーケンスを生成することによって示され得る。この例では、生成されるシーケンスは、ジグザグ走査順序に従うブロック404の最初の6つの最後有効係数フラグを表す値000001に対応し得る。この場合も、生成されるシーケンスは、ジグザグ走査順序における最初のブロック位置から開始して、ジグザグ走査順序に従うブロック400の最後有効係数に対応するすなわち、ブロック404の1に等しい最後有効係数フラグに対応するブロック位置で終わる、ブロック400内のブロック位置の範囲に対応する最後有効係数フラグを含んでいることがあることに留意されたい。したがって、この例では、ジグザグ走査順序に従う1に等しい最後有効係数フラグに続く最後有効係数フラグは、シーケンス中に含まれない。概して、ビデオデータのブロックに関連する走査順序に従う1に等しい最後有効係数フラグに続く最後有効係数フラグは、ブロックの最後有効係数位置情報を示すことを必要とされないことがあり得る。したがって、いくつかの例では、これらのフラグは、この情報を指示するために使用される最後有効係数フラグの生成されるシーケンスから省略される。上記で説明したように、最後有効係数が走査順序に従う最後のブロック位置たとえば、右下のブロック位置内に位置する場合には、最後のブロック位置はブロックの最後有効係数を含んでいると推測され得るので、生成されるシーケンスはその位置に対応する最後有効係数フラグを含まないことがあることにも留意されたい。したがって、この例では、生成されるシーケンスは、000000000000000の値に対応し得、最後のブロック位置に対応する最後有効係数フラグはこのシーケンス中に含まれておらず、1に等しいと推測される。図5A~図5Cは、それぞれジグザグ走査順序、水平走査順序、および垂直走査順序を使用して走査されるビデオデータのブロックの例を示す概念図である。図5A~図5Cに示すように、ビデオデータの8×8ブロック、たとえば、マクロブロック、またはCUのTUは、円を用いて示されている、対応するブロック位置中の64個の量子化変換係数を含み得る。たとえば、ブロック500~504はそれぞれ、この場合も、前に説明した予測、変換、および量子化技法を使用して生成される64個の量子化変換係数を含み得、各対応するブロック位置が円を用いて示されている。この例では、ブロック500~504は2N×2Nのサイズを有し、Nは4に等しいと仮定する。したがって、ブロック500~504は8×8のサイズを有する。図5Aに示すように、ブロック500に関連する走査順序はジグザグ走査順序である。ジグザグ走査順序は、ブロック500の量子化変換係数を、図5Aの矢印によって示されるように対角様式で走査する。同様に、図5Bおよび図5Cに示すように、ブロック502および504に関連する走査順序は、それぞれ水平走査順序および垂直走査順序である。同じく図5Bおよび図5Cの矢印によって示されるように、水平走査順序は、ブロック502の量子化変換係数を、水平線ごとに、またはラスタ様式で走査し、一方、垂直走査順序は、ブロック504の量子化変換係数を、垂直線ごとに、または回転ラスタ様式で走査する。他の例では、上記で説明したように、ブロックは、ブロック500~504のサイズよりも小さいかまたは大きいサイズを有し得、より多いまたはより少ない量子化変換係数および対応するブロック位置を含み得る。これらの例では、ブロックに関連する走査順序は、ブロックの量子化変換係数を、図5A~図5Cの8×8ブロック500~504の例において示したのと実質的に同様の方法で走査し得、たとえば、4×4ブロック、または16×16ブロックが、前に説明した走査順序のいずれかに従って走査され得る。前に説明したように、本開示の技法は、対角走査順序と、ジグザグ、水平、垂直、および/または対角走査順序の組合せである走査順序と、部分的にジグザグ、部分的に水平、部分的に垂直、および/または部分的に対角である走査順序とを含む、多種多様な他の走査順序に対しても適用され得る。図6A~図6Bは、本開示の技法に一致する、様々なサイズを有するブロックビデオデータの例と、予測データを生成するために様々な予測モードが使用されるビデオデータのブロックの例とを示す概念図である。図6Aに示すように、ブロック600、たとえば、ビデオデータのマクロブロック、またはCUのTUは、特定のサイズを有し得る。この例では、ブロック600のサイズが2N×2Nであり、Nは32に等しいと仮定する。したがって、ブロック600は64×64のサイズを有する。さらに、ブロック600は、図1を参照しながら前に説明したように、同じく図6Aに示されているブロック602~608を含む、より小さいブロックに再帰的に区分または分割されると仮定する。たとえば、ブロック602は32×32のサイズを有し、ブロック604は16×16のサイズを有し、ブロック606は8×8のサイズを有し、ブロック608は4×4のサイズを有すると仮定する。他の例では、ブロック600は、ブロック602~608よりも多いかまたは少ないより小さいブロックに区分され得る。さらに他の例では、ブロック600およびそれの任意のパーティションは、ブロック600~608のサイズとは異なるサイズを有し得る。図6Bに示すように、ブロック610A~610Iはそれぞれ、様々な予測モードのうちの1つを使用してコーディングされ得る。図6Bの様々な図は、様々な図に示す方向性矢印に従って隣接ピクセルデータから予測データが取得または導出され得る、様々な方向性予測モードを示している。DCモード、平面モード、または他の方向性予測モードなど、他のイントラ予測モードも使用されることができる。場合によっては、33個の異なるイントラ予測モードがサポートされ得る。いずれの場合も、図6Bに示すように、ブロック610A~610Iの各々は、ブロック610A~610Iの各々について示されているように一意のイントラ予測モードを使用してコーディングされ得、それぞれのブロックのピクセルを予測するためにビデオデータの隣接ブロックのピクセルが使用される。他の例では、ブロック610A~610Iは、図6Bに示されていない他の予測モードを使用してコーディングされ得る。したがって、本開示の技法によれば、図6Aに示すブロック600~608に関連するブロックサイズと、図6Bに示すブロック610A~610Iに関連する予測モードとのうちの少なくとも1つがそれぞれ、前に説明したように、ブロック600~608および610A~610Iのうちの特定の1つについての走査順序情報をコーディングするためにコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行するときにコンテキストとして使用され得る。図7は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的にコーディングするために最確走査順序を使用するための例示的な方法を示すフローチャートである。図7の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図7の技法について、ビデオエンコーダ20図1および図2および/またはビデオデコーダ30図1および図3に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図7に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。初めに、いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30が、ビデオデータのブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報をコーディングする700。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。さらに、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図7の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってシーケンスの各最後有効係数フラグをコーディングすることによって最後有効係数位置情報をコーディングし得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロックの対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの最後有効係数位置情報をコーディングし得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用してブロックの最後有効係数位置情報をコーディングし得ることに留意されたい。ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックのための最確走査順序を判断する702。たとえば、ブロックのための最確走査順序を判断するために、ビデオエンコーダ20および/またはビデオデコーダ30は、図6A~図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、前にコーディングされたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングする704。たとえば、ビデオエンコーダ20は、図8の例示的な方法においてより詳細に説明するようにこの指示を符号化し得、ビデオデコーダ30は、図9の例示的な方法においてより詳細に説明するようにこの指示を復号し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一ビットまたはビンを備え得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序が最確走査順序であるかたとえば、bin=0そうでないかたとえば、bin=1を示すようにビンをコーディングし得る。ブロックに関連する走査順序が最確走査順序である場合706、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングすることを停止する710。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素のコーディングに進み得る。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合706、ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロックに関連する走査順序の指示をコーディングする708。この場合も、ビデオエンコーダ20および/またはビデオデコーダ30は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1を示すようにビンをコーディングし得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示をコーディングし得る。上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンすなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビンをコーディングするために、対応するコンテキストモデルは、ビンが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンをコーディングするためにビンのための確率推定値を使用し得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの走査順序情報をコーディングし得る。いずれの場合も、ブロックに関連する走査順序の指示をコーディングした後に708、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングすることを停止する710。この場合も、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素のコーディングに進み得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報をコーディングする712。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、ビデオエンコーダ20および/またはビデオデコーダ30は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってシーケンスの各有効係数フラグをコーディングすることによって有効係数位置情報をコーディングし得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの前にコーディングされたブロックの対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続してコーディングされるブロックの有効係数位置情報をコーディングし得る。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、他の技法を使用してブロックの有効係数位置情報をコーディングし得ることに留意されたい。このように、図7の方法は、ビデオデータのブロックに関連する走査順序を識別する情報をコーディングする方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを含む、方法の一例を表す。図8は、本開示の技法に一致する、ビデオデータのブロックについての走査順序情報を効率的に符号化するために最確走査順序を使用するための例示的な方法を示すフローチャートである。図8の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図8の技法について、エントロピー符号化ユニット56図2に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図8に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。最初に、エントロピー符号化ユニット56が、ビデオデータのブロックを受信し得る800。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。いくつかの例では、エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報を符号化する802。たとえば、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図8の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってシーケンスの各最後有効係数フラグを符号化することによって最後有効係数位置情報を符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの最後有効係数位置情報を符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの最後有効係数位置情報を符号化し得ることに留意されたい。エントロピー符号化ユニット56は、さらに、ブロックのための最確走査順序を判断する804。たとえば、ブロックのための最確走査順序を判断するために、エントロピー符号化ユニット56は、図6A~図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、エントロピー符号化ユニット56は、前に符号化されたブロック、たとえば、現在符号化されているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化する806。エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示を符号化し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が最確走査順序であるかたとえば、bin=0そうでないかたとえば、bin=1を示すようにビンを符号化し得る。ブロックに関連する走査順序が最確走査順序である場合808、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化することを停止する816。たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合808、エントロピー符号化ユニット56は、さらに、ブロックに関連する走査順序の指示を符号化する810。この場合も、エントロピー符号化ユニット56は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示をコーディングし得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー符号化ユニット56は、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1を示すようにビンを符号化し得、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備える。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー符号化ユニット56は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を符号化し得る。上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンすなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビンを符号化するために、対応するコンテキストモデルは、ビンが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。エントロピー符号化ユニット56は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを符号化するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの走査順序情報を符号化し得る。いずれの場合も、ブロックに関連する走査順序の指示を符号化した後に810、エントロピー符号化ユニット56は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化することを停止する812。この場合も、たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。いくつかの例では、エントロピー符号化ユニット56は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を符号化する814。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー符号化ユニット56は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによってシーケンスの各有効係数フラグを符号化することによって有効係数位置情報を符号化し得る。たとえば、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの前に符号化されたブロックのための対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー符号化ユニット56はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー符号化ユニット56は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して符号化されるブロックの有効係数位置情報を符号化し得る。他の例では、エントロピー符号化ユニット56は、他の技法を使用してブロックの有効係数位置情報を符号化し得ることに留意されたい。最後に、エントロピー符号化ユニット56は、ブロックを符号化することを停止する816。たとえば、エントロピー符号化ユニット56は、上記で説明したように、他のコーディングタスク、たとえば、後続のブロックの符号化に進み得る。このように、図8の方法は、ビデオデータのブロックに関連する走査順序を識別する情報を符号化する方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示をコーディングすることとを含む、方法の一例を表す。図9は、本開示の技法に一致する、ビデオデータのブロックについての符号化された走査順序情報を効率的に復号するために最確走査順序を使用するための例示的な方法を示すフローチャートである。図9の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図9の技法について、エントロピー復号ユニット70図3に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図9に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。初めに、エントロピー復号ユニット70は、ビデオデータのブロックについての符号化された有効性データを受信する900。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す情報、すなわち、ブロックの最後有効係数位置情報を判断するために有効性データを復号する902。たとえば、ブロックに関連する走査順序は、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。このようにして、図9の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。いくつかの例では、ブロックの最後有効係数位置情報は、前に説明したように、最後有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、シーケンスの各最後有効係数フラグを生成するために有効性データを復号することによって最後有効係数位置情報を判断するために有効性データを復号し得る。たとえば、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行し得、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する最後有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの最後有効係数位置情報を復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの最後有効係数位置情報を復号し得ることに留意されたい。エントロピー復号ユニット70は、さらに、ブロックのための最確走査順序を判断する904。たとえば、ブロックのための最確走査順序を判断するために、エントロピー復号ユニット70は、図6A~図6Bを参照しながら前に説明したように、ブロックに関連する予測モードおよびサイズに基づいてブロックのための最確走査順序を判断し得る。一例として、エントロピー復号ユニット70は、前に復号されたブロック、たとえば、現在復号されているブロックと同じ関連する予測モードおよびサイズをもつブロックの走査順序情報を使用してこの判断を行い得る。最確走査順序はまた、ジグザグ走査順序と、水平走査順序と、垂直走査順序とのうちの1つを備え得る。エントロピー復号ユニット70は、さらに、ブロックについての符号化された走査順序データを受信する906。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を判断するために走査順序データを復号する908。エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示を判断するために走査順序データを復号し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。指示は単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、走査順序データを復号して、走査順序が最確走査順序であるかたとえば、bin=0そうでないかたとえば、bin=1をビンが示すようにビンを判断し得る。ブロックに関連する走査順序が最確走査順序である場合910、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号することを停止する916。たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。しかしながら、ブロックに関連する走査順序が最確走査順序でない場合910、エントロピー復号ユニット70は、さらに、ブロックについての追加の符号化された走査順序データを受信する912。エントロピー復号ユニット70は、さらに、ブロックに関連する走査順序の指示を判断するためにこの追加の走査順序データを復号する914。この場合も、エントロピー復号ユニット70は、少なくとも1つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行することによって指示を判断するために追加の走査順序データを復号し得る。たとえば、少なくとも1つのコンテキストは、最確走査順序と、ブロックに関連する予測モードと、ブロックに関連するサイズとのうちの1つを含み得る。ブロックに関連する走査順序の指示はまた、単一のビンを備え得る。たとえば、エントロピー復号ユニット70は、追加の走査順序データを復号して、走査順序が第1の走査順序であるかたとえば、bin=0第2の走査順序であるかたとえば、bin=1をビンが示すようにビンを判断し得る。この例では、第1の走査順序および第2の走査順序は、ビデオエンコーダ20とビデオデコーダ30とを備える対応するコーディングシステム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の走査順序を備え得る。他の例では、ブロックに関連する走査順序は、システム10内でビデオデータのブロックをコーディングするために同じく使用される、最確走査順序以外の、より多数たとえば、3つ、4つ、5つ、...などの走査順序のうちの1つを備え得ることに留意されたい。したがって、他の例では、エントロピー復号ユニット70は、他の技法を使用して、たとえば、複数のビンを使用して、ブロックに関連する走査順序の指示を判断するために追加の走査順序データを復号し得る。上記で説明したコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンすなわち、ブロックに関連する走査順序が最確走査順序であるかどうかの指示と、ブロックに関連する走査順序の指示とを表すために使用される各ビンを判断するために、対応するコンテキストモデルは、ビンが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。エントロピー復号ユニット70は、コンテキスト適応型エントロピーコーディングプロセスを実行することによってビンを判断するためにビンのための確率推定値を使用し得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロック、たとえば、現在コーディングされているブロックと同じ関連する予測モードおよびサイズをもつブロックのための対応するビンの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、ビンが所与の値を備える確率を反映するためにビンの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの走査順序情報を復号し得る。いずれの場合も、ブロックに関連する走査順序の指示を判断するために追加の走査順序データを復号した後に914、エントロピー復号ユニット70は、ブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号することを停止する916。この場合も、たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。いくつかの例では、エントロピー復号ユニット70は、さらに、ブロックについての残りの符号化された有効性データを受信する918。エントロピー復号ユニット70は、さらに、ブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を判断するために残りの有効性データを復号する920。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。同じく前に説明したように、エントロピー復号ユニット70は、シーケンスの各有効係数フラグを生成するために残りの有効性データを復号することによって有効係数位置情報を判断するために残りの有効性データを復号し得る。たとえば、エントロピー復号ユニット70は、コンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスたとえば、CABACプロセスを実行し得、コンテキストは、ブロックに関連する走査順序に従うブロック内のフラグの位置を含み得る。これらの例では、コンテキストモデルは、各フラグが所与の値たとえば、0または1を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット70は、ビデオデータの前に復号されたブロックのための対応する有効係数フラグの値を使用して確率推定値を判断し得る。他の例では、エントロピー復号ユニット70はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、エントロピー復号ユニット70は、更新された確率推定値を使用して、上記で説明した方法でビデオデータの後続して復号されるブロックの有効係数位置情報を復号し得る。他の例では、エントロピー復号ユニット70は、他の技法を使用してブロックの有効係数位置情報を復号し得ることに留意されたい。最後に、エントロピー復号ユニット70は、ブロックを復号することを停止する922。たとえば、エントロピー復号ユニット70は、上記で説明したように、他のコーディングタスク、たとえば、後続のブロックの復号に進み得る。このように、図9の方法は、ビデオデータのブロックに関連する走査順序を識別する情報を復号する方法であって、ブロックのための最確走査順序を判断することと、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号することとを含む、方法の一例を表す。したがって、本開示の技法によれば、符号化ビットストリームは、ビデオデータのブロックについての走査順序情報、すなわち、ブロックに関連する係数を備え得る。具体的には、ビデオエンコーダ20は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を符号化し得る。いくつかの例では、ブロックに関連する走査順序が最確走査順序でない場合、ビデオエンコーダ20は、さらに、ブロックに関連する走査順序の指示を符号化し得る。同様に、ビデオデコーダ30は、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を復号し得る。いくつかの例では、ブロックに関連する走査順序が最確走査順序でない場合、ビデオデコーダ30は、さらに、ブロックに関連する走査順序の指示を復号し得る。したがって、本開示はまた、符号化ビットストリームを含む、その上に記憶されたデータ構造を備えるコンピュータ可読媒体を企図する。コンピュータ可読媒体に記憶された符号化ビットストリームは、特定のフォーマットを使用して符号化されたビデオデータと、1つまたは複数の指示を使用して表される、ビデオデータのブロックに関連する走査順序を識別する符号化情報すなわち、ブロックの走査順序情報とを備え得る。ビットストリーム内でブロックの走査順序情報が符号化される特定のフォーマットは、ブロックに関連する走査順序がブロックのための最確走査順序であるかどうかに依存する。より具体的には、ビットストリームは、ブロックに関連する走査順序が最確走査順序であるかどうかの指示を含み得る。いくつかの例では、走査順序が最確走査順序を備えない場合、ビットストリームは、さらに、ブロックに関連する走査順序の指示を含み得る。1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdiskおよびディスクdiscは、コンパクトディスクdiscCD、レーザディスクdisc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdiskおよびブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。命令は、1つまたは複数のデジタル信号プロセッサDSPなどの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用するプロセッサという用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。本開示の技法は、ワイヤレスハンドセット、集積回路IC、またはICのセットたとえば、チップセットを含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。