(57)【特許請求の範囲】
【請求項１】
ハードウェアがビデオデータを符号化するための方法であって、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を備える方法。
【請求項２】
前記第１および第２の２値列をビットストリームに符号化することが、算術符号化を含む、請求項１に記載の方法。
【請求項３】
前記第１および第２の２値列をビットストリームに符号化することが、コンテキストモデルに基づいて前記第１の２値列を符号化することを含む、請求項２に記載の方法。
【請求項４】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項１に記載の方法。
【請求項５】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項４に記載の方法。
【請求項６】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、請求項５に記載の方法。
【請求項７】
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を行うように構成されたビデオエンコーダを備えるデバイス。
【請求項８】
前記第１および第２の２値列をビットストリームに符号化するように構成されることが、算術符号化を実行するように構成されることを含む、請求項７に記載のデバイス。
【請求項９】
前記第１および第２の２値列をビットストリームに符号化するように構成されることが、コンテキストモデルに基づいて前記第１の２値列を符号化するように構成されることを含む、請求項８に記載のデバイス。
【請求項１０】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項７に記載のデバイス。
【請求項１１】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項１０に記載のデバイス。
【請求項１２】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、請求項１１に記載のデバイス。
【請求項１３】
ビデオデータを符号化するためのデバイスであって、前記デバイスが、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得するための手段と、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断するための手段と、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断するための手段と、
前記第１および第２の２値列をビットストリームに符号化するための手段と
を備えるデバイス。
【請求項１４】
前記第１および第２の２値列をビットストリームに符号化するための手段が、算術符号化を実行するための手段を含む、請求項１３に記載のデバイス。
【請求項１５】
前記第１および第２の２値列をビットストリームに符号化するための手段が、コンテキストモデルに基づいて前記第１の２値列を符号化するための手段を含む、請求項１４に記載のデバイス。
【請求項１６】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項１３に記載のデバイス。
【請求項１７】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項１６に記載のデバイス。
【請求項１８】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、請求項１７に記載のデバイス。
【請求項１９】
実行されると、１つまたは複数のプロセッサに、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を行わせる、その上に記憶された命令を備えるコンピュータ可読記憶媒体。
【請求項２０】
実行されると、１つまたは複数のプロセッサに、前記第１および第２の２値列をビットストリームに符号化させる命令が、実行されると、１つまたは複数のプロセッサに、算術符号化を実行させる命令を含む、請求項１９に記載のコンピュータ可読記憶媒体。
【請求項２１】
実行されると、１つまたは複数のプロセッサに、前記第１および第２の２値列をビットストリームに符号化させる命令が、実行されると、１つまたは複数のプロセッサに、コンテキストモデルに基づいて前記第１の２値列を符号化させる命令を含む、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項１９に記載のコンピュータ可読記憶媒体。
【請求項２３】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
ハードウェアがビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
【請求項２６】
前記符号化ビットストリームから第１の２値列と第２の２値列とを取得することが、算術復号を実行することを含む、請求項２５に記載の方法。
【請求項２７】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項２５に記載の方法。
【請求項２８】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項２７に記載の方法。
【請求項２９】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、請求項２８に記載の方法。
【請求項３０】
前記第２の２値列が１のビット長を有する、請求項２９に記載の方法。
【請求項３１】
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を行うように構成されたビデオデコーダを備えるデバイス。
【請求項３２】
前記符号化ビットストリームから第１の２値列と第２の２値列とを取得するように構成されることが、算術復号を実行するように構成されることを含む、請求項３１に記載のデバイス。
【請求項３３】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項３１に記載のデバイス。
【請求項３４】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項３３に記載のデバイス。
【請求項３５】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、請求項３４に記載のデバイス。
【請求項３６】
前記第２の２値列が１のビット長を有する、請求項３５に記載のデバイス。
【請求項３７】
ビデオデータを復号するためのデバイスであって、前記デバイスが、
符号化ビットストリームから第１の２値列と第２の２値列とを取得するための手段と、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断するための手段であって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、手段と、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断するための手段であって、前記第２の２値列が、固定長コーディング方式によって定義される、手段と
を備えるデバイス。
【請求項３８】
符号化ビットストリームから第１の２値列と第２の２値列とを取得するための手段が、算術復号を実行するための手段を含む、請求項３７に記載のデバイス。
【請求項３９】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項３７に記載のデバイス。
【請求項４０】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項３９に記載のデバイス。
【請求項４１】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、請求項４０に記載のデバイス。
【請求項４２】
前記第２の２値列が１のビット長を有する、請求項４１に記載のデバイス。
【請求項４３】
実行されると、１つまたは複数のプロセッサに、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を行わせる、その上に記憶された命令を備えるコンピュータ可読記憶媒体。
【請求項４４】
実行されると、１つまたは複数のプロセッサに、符号化ビットストリームから第１の２値列と第２の２値列とを取得させる命令が、実行されると、１つまたは複数のプロセッサに、算術復号を実行させる命令を含む、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４５】
前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４６】
Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、請求項４５に記載のコンピュータ可読記憶媒体。
【請求項４７】
前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項４８】
前記第２の２値列が１のビット長を有する、請求項４７に記載のコンピュータ可読記憶媒体。
【請求項４９】
ハードウェアがビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）＋１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
【請求項５０】
ハードウェアがビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
【請求項５１】
前記第１および第２の２値列を符号化することが、前記第１の２値列を符号化することに続いて、前記第２の２値列を符号化することを備える、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年１１月８日に出願された米国仮出願第６１／５５７，３１７号、および２０１１年１１月２０日に出願された米国仮出願第６１／５６１，９０９号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもある。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【図面の簡単な説明】
【０００６】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】例示的な係数値走査順序を示す図。
【図２Ｂ】例示的な係数値走査順序を示す図。
【図２Ｃ】例示的な係数値走査順序を示す図。
【図２Ｄ】例示的な係数値走査順序を示す図。
【図３】係数値のブロックに対する重要度マップの一例を示す図。
【図４】本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図５】本開示で説明する技法を実装し得る例示的なエントロピーエンコーダを示すブロック図。
【図６】本開示の技法に従って最後有効係数の位置を示す値の２値列を判断するための例示的な方法を示すフローチャート。
【図７】本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図８】本開示の技法に従って２値列から最後有効係数の位置を示す値を判断するための例示的な方法を示すフローチャート。
【発明の概要】
【０００７】
[0014]概して、本開示では、ビデオデータをコーディングするための技法について説明する。ビデオ符号化は、概して、特定の予測モードを使用してビデオデータのブロックを予測することと、予測ブロックとコーディングされる実際のブロックとの間の差分に基づいてブロックの残差値をコーディングすることとを含む。残差ブロックは、そのようなピクセルごとの差分を含む。残差ブロックは、変換され、量子化され得る。ビデオコーダは、変換係数を離散レベル値にマップする量子化ユニットを含み得る。本開示は、ビデオブロック内の最後有効係数（last significant coefficient）の位置をコーディングするための技法を提供する。
【０００８】
[0015]一例では、ビデオデータを符号化するための方法は、サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式（truncated unary coding scheme）に基づいて最後有効係数の位置を示す値の第１の２値列を判断することと、固定長コーディング方式に基づいて最後有効係数の位置を示す値の第２の２値列を判断することと、第１および第２の２値列をビットストリームに符号化することとを備える。
【０００９】
[0016]別の例では、ビデオデータを復号するための方法は、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを備える。
【００１０】
[0017]別の例では、ビデオデータを符号化するための装置は、サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて最後有効係数の位置を示す値の第１の２値列を判断することと、固定長コーディング方式に基づいて最後有効係数の位置を示す値の第２の２値列を判断することと、第１および第２の２値列をビットストリームに符号化することとを行うように構成されたビデオ符号化デバイスを備える。
【００１１】
[0018]別の例では、ビデオデータを復号するための装置は、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを行うように構成されたビデオ復号デバイスを備える。
【００１２】
[0019]別の例では、ビデオデータを符号化するためのデバイスは、サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得するための手段と、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて最後有効係数の位置を示す値の第１の２値列を判断するための手段と、固定長コーディング方式に基づいて最後有効係数の位置を示す値の第２の２値列を判断するための手段と、第１および第２の２値列をビットストリームに符号化するための手段とを備える。
【００１３】
[0020]別の例では、ビデオデータを復号するためのデバイスは、符号化ビットストリームから第１の２値列と第２の２値列とを取得するための手段と、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断するための手段であって、第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、手段と、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断するための手段であって、第２の２値列が、固定長コーディング方式によって定義される、手段とを備える。
【００１４】
[0021]別の例では、コンピュータ可読記憶媒体は、実行されると、ビデオデータを符号化するためのデバイスのプロセッサに、１つまたは複数のプロセッサに、サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて最後有効係数の位置を示す値の第１の２値列を判断することと、固定長コーディング方式に基づいて最後有効係数の位置を示す値の第２の２値列を判断することと、第１および第２の２値列をビットストリームに符号化することとを行わせるようにさせる、その上に記憶された命令を備える。
【００１５】
[0022]別の例では、コンピュータ可読記憶媒体は、実行されると、ビデオデータを復号するためのデバイスのプロセッサに、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを行わせる、その上に記憶された命令を備える。
【００１６】
[0023]一例では、ビデオデータを復号するための方法は、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）＋１によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを備える。
【００１７】
[0024]一例では、ビデオデータを復号するための方法は、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを備える。
【００１８】
[0025]１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面から、および特許請求の範囲から明らかになろう。
【詳細な説明】
【００１９】
[0026]本開示は、変換係数のブロック内の最後有効係数位置の位置を示すために使用されるビット列の長さを短縮する（reducing）ための技法を提供する。ビット列は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）に特に有用であり得る。一例では、低減された数のビンと、より短い短縮単項コードとを有するプログレッシブコードワード構造は、最後有効係数位置の位置を示すために使用され得る。加えて、一例では、短縮単項コードの最大長を短縮することによって、最後有効係数位置に対するＣＡＢＡＣコンテキストモデルの数も低減され得る。
【００２０】
[0027]ビデオエンコーダは、サイズＴのビデオブロック内の最後有効係数の位置を示す値の第１および第２の２値列を判断するように構成され得る。ビデオデコーダは、第１および第２の２値列に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断するように構成され得る。一例では、第１の２値列は、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、かつ第２の２値列は、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義された固定長コーディング方式に基づいてもよい。別の例では、第１の２値列は、ｌｏｇ2（Ｔ）＋１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、かつ第２の２値列は、ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された固定長コーディング方式に基づいてもよい。さらに別の例では、第１の２値列は、ｌｏｇ2（Ｔ）によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、かつ第２の２値列は、ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された固定長コーディング方式に基づいてもよい。
【００２１】
[0028]図１は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２２】
[0029]宛先デバイス１４は、リンク１６を介して復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２３】
[0030]代替的に、符号化データは、出力インターフェース２２からストレージデバイス３２に出力され得る。同様に、符号化データは、入力インターフェース２８によってストレージデバイス３２からアクセスされ得る。ストレージデバイス３２は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス３２は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス３２から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス３２からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２４】
[0031]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエア（over-the-air）テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２５】
[0032]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００２６】
[0033]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ１２によって符号化され得る。符号化ビデオデータは、ソースデバイス２０の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化ビデオデータはまた（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３２上に記憶され得る。
【００２７】
[0034]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して符号化ビデオデータを受信する。リンク１６を介して通信され、またはストレージデバイス３２上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０など、ビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【００２８】
[0035]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２９】
[0036]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ（proprietary）規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３を含む。
【００３０】
[0037]図１には示されていないが、いくつかの態様では、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、かつ適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３１】
[0038]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、本開示の技法を実行するために、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合（combined）エンコーダ／デコーダ（コーデック）の一部として統合されてよい。
【００３２】
[0039]ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデル（evolving model）に基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００３３】
[0040]概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００３４】
[0041]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、かつ形状が方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形または非方形であり得る。
【００３５】
[0042]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそのケースであるとは限らない。ＴＵは、一般にＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するために、変換され得、それは量子化され得る。
【００３６】
[0043]概して、ＰＵは、予測プロセスに関連したデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、そのＰＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、そのＰＵについての動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（resolution）（たとえば、１／４ピクセル精度（precision）または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００３７】
[0044]概して、ＴＵは、変換プロセスおよび量子化プロセスのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数のＴＵをも含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示における「ビデオブロック」という用語は、ＣＵのコーディングノード、または変換係数のブロックを指し得る。変換係数の１つまたは複数のブロックは、ＴＵを定義し得る。いくつかの特定の場合において、本開示では、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す「ビデオブロック」という用語も使用し得る。
【００３８】
[0045]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応する１つまたは複数のＴＵまたはＰＵを含み得る。ビデオブロックは、固定されたサイズまたは変化するサイズ（varying sizes）を有することもでき、かつ指定のコーディング規格に従ってサイズが異なることがある。
【００３９】
[0046]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、かつ２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００４０】
[0047]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法（dimensions）および水平寸法（dimensions）に関するビデオブロックのピクセル寸法（dimensions）、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００４１】
[0048]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、かつＴＵは、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、変換係数の１つまたは複数のブロックからＴＵを形成し得る。ＴＵはＣＵの残差データを含み得る。ビデオエンコーダ２０は、次いで、ＣＵの変換係数を生成するために、ＴＵを変換し得る。
【００４２】
[0049]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００４３】
[0050]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。図２Ａ〜図２Ｄは、いくつかの異なる例示的な走査順序を示す。他の定義された走査順序、または適合型（変化する）走査順序も使用され得る。図２Ａはジグザグ走査順序を示し、図２Ｂは水平走査順序を示し、図２Ｃは垂直走査順序を示し、かつ図２Ｄは対角（diagonal）走査順序を示す。これらの走査順序の組合せも定義され、使用され得る。いくつかの例では、本開示の技法は、ビデオコーディングプロセスにおけるいわゆる重要度マップのコーディング中に特に適用可能であり得る。
【００４４】
[0051]１つまたは複数のシンタックス要素は、係数のブロックに関連する走査順序に依存し得る、最後有効係数（すなわち非０係数）の位置を示すように定義され得る。たとえば、１つのシンタックス要素は、係数値のブロック内の最後有効係数の列位置を定義し得、別のシンタックス要素は、係数値のブロック内の最後有効係数の行位置を定義し得る。
【００４５】
[0052]図３は、係数値のブロックに対する重要度マップの一例を示す。重要度マップは右側に示され、その中で１ビットフラグは、重要、すなわち非０である、左側のビデオブロックにおける係数を識別する。一例では、（たとえば、重要度マップによって定義された）有効係数のセットと走査順序とが与えられれば、最後有効係数の位置が定義され得る。新生のＨＥＶＣ規格では、変換係数はチャンク（a chunk）にグループ化され得る。チャンクはＴＵ全体を備えてもよく、または場合によっては、ＴＵはより小さいチャンクにサブ分割され（be sub-divided）てもよい。重要度マップおよびレベル情報（絶対値およびサイン）は、チャンク中の各係数についてコーディングされる。一例では、チャンクは、４×４ＴＵおよび８×８ＴＵの場合、逆走査順序（たとえば、対角、水平、または垂直）での１６個の連続する係数からなる。１６×１６および３２×３２ＴＵの場合、４×４サブブロック内の係数はチャンクとして扱われる。シンタックス要素は、チャンク内の係数レベル情報を表すために、コーディングされシグナリングされる。一例では、すべてのシンボルは逆走査順序で符号化される。本開示の技法は、係数のブロックの最後有効係数のこの位置を定義するために使用されるシンタックス要素のコーディングを改善し得る。
【００４６】
[0053]一例として、本開示の技法は、係数のブロック（たとえば、ＴＵまたはＴＵのチャンク）の最後有効係数の位置をコーディングするために使用され得る。次いで、最後有効係数の位置をコーディングした後、レベルおよびサイン情報がコーディングされ得る。レベルおよびサイン情報のコーディングは、ファイブパス（five pass）手法に従って、（たとえば、ＴＵまたはＴＵのチャンクに対して）以下のシンボルを逆走査順序でコーディングすることによって処理し得る。
【００４７】
ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ（略してｓｉｇＭａｐＦｌａｇ）：このフラグは、チャンク中の各係数の重要度を示し得る。１以上の値を有する係数は重要であると見なされる。
【００４８】
ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ（略してｇｒ１Ｆｌａｇ）：このフラグは、係数の絶対値が非０係数（すなわち、１としてのｓｉｇＭａｐＦｌａｇを有する係数）の絶対値よりも大きいかどうかを示し得る。
【００４９】
ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｇｒｅａｔｅｒ２＿ｆｌａｇ（略してｇｒ２Ｆｌａｇ）：このフラグは、１よりも大きい絶対値を有する係数（すなわち、１としてのｇｒ１Ｆｌａｇを有する係数）について、係数の絶対値が２よりも大きいかどうかを示し得る。
【００５０】
ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ（略してｓｉｇｎＦｌａｇ）：このフラグは、非０係数のサイン情報を示し得る。たとえば、このフラグの０は正のサインを示すが、１は負のサインを示す。
【００５１】
ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎ（略してｌｅｖｅｌＲｅｍ）：変換係数レベルの残りの（remaining）絶対値である。このフラグの場合、係数−Ｘの絶対値は、ｘよりも大きい振幅を有する各係数についてコーディングされ（ａｂｓ（ｌｅｖｅｌ）−ｘ）、ｘの値はｇｒ１Ｆｌａｇおよびｇｒ２Ｆｌａｇの現在値（presents）に依存する。
【００５２】
[0054]このようにして、ＴＵまたはＴＵのチャンクの変換係数がコーディングされ得る。いずれの場合も、係数のブロックの最後有効係数の位置を定義するために使用されるシンタックス要素のコーディングに関係する本開示の技法はまた、変換係数のレベルおよびサイン情報を最終的にコーディングするための他のタイプの技法とともに使用され得る。重要度、レベルおよびサイン情報をコーディングするためのファイブパス手法は、本開示に記載した、ブロックの最後有効係数の位置のコーディングの後に使用され得る１つの例示的な技法にすぎない。
【００５３】
[0055]１次元ベクトルを形成するために量子化変換係数を走査した後、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。本開示のエントロピーコーディング技法は、ＣＡＶＬＣ、ＳＢＡＣ、ＰＩＰＥ、または他の技法などの他のエントロピーコーディング技法にも適用可能であり得るが、本技法は特に、ＣＡＢＡＣに適用可能であるものとして説明される。
【００５４】
[0056]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。可変長コーディング（ＶＬＣ）におけるコードワードは、比較的短いコードが優勢（more probable）シンボルに対応し、より長いコードが劣勢（less probable）シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長（equal-length）コードワードを使用するよりも、ビット節約を達成し得る。確率判断（probability determination）は、シンボルに割り当てられるコンテキストに基づき得る。
【００５５】
[0057]概して、ＣＡＢＡＣを使用してデータシンボルをコーディングすることは、以下のステップのうちの１つまたは複数を含み得る。
【００５６】
（１）２値化（Binarization）：コーディングされるべきシンボルが非２進値化された場合、それは、いわゆる「ビン」のシーケンスにマッピングされる。各ビンは「０」または「１」の値を有することができる。
【００５７】
（２）コンテキスト割当て（Context Assignment）：（標準モードにおける）各ビンはコンテキストに割り当てられる。コンテキストモデルは、前に符号化されたシンボルの値またはビン数など、ビンについて利用可能な情報に基づいて所与のビンのコンテキストがどのように計算されるかを判断する。
【００５８】
（３）ビン符号化（Bin encoding）：ビンは算術エンコーダを用いて符号化される。ビンを符号化するために、算術エンコーダは、入力として、ビンの値の確率、すなわち、ビンの値が「０」に等しい確率と、ビンの値が「１」に等しい確率とを必要とする。各コンテキストの（推定された）確率は、「コンテキスト状態」と呼ばれる整数値によって表される。各コンテキストはある状態を有し、したがって、その状態（すなわち、推定された確率）は、１つのコンテキストに割り当てられたビンに対して同じであり、コンテキスト間で異なる。
【００５９】
（４）状態更新（State update）：選択されたコンテキストの確率（状態）は、ビンの実際のコード化値に基づいて更新される（たとえば、ビン値が「１」であった場合、「１」の確率が増加される）。
【００６０】
[0058]確率間隔区分エントロピーコーディング（ＰＩＰＥ）は、算術コーディングの原理と同様の原理を使用し、また、主にＣＡＢＡＣに関して説明した本開示の技法と同様の技法を利用し得ることに留意されたい。しかしながら、本開示の技法はＣＡＢＡＣ、ＰＩＰＥまたは２値化技法を使用する他のエントロピーコーディング方法とともに使用され得る。
【００６１】
[0059]最近ＨＭ４．０に採用された１つの技法は、Ｖ．Ｓｅｒｅｇｉｎ、Ｉ．−Ｋ  Ｋｉｍ、「Ｂｉｎａｒｉｓａｔｉｏｎ  ｍｏｄｉｆｉｃａｔｉｏｎ  ｆｏｒ  ｌａｓｔ  ｐｏｓｉｔｉｏｎ  ｃｏｄｉｎｇ」、ＪＣＴＶＣ−Ｆ３７５、６th  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｔｏｒｉｎｏ、ＩＴ、２０１１年７月（本明細書では「Ｓｅｒｅｇｉｎ」）に記載されている。ＨＭ４．０で採用された技法は、バイパスモードを用いた固定長コードを導入することによって、ＣＡＢＡＣの最後位置コーディングに使用されるコンテキストを低減する。バイパスモードは、コンテキストモデリング手順がなく、すべてのシンボルが等しい確率状態でコーディングされることを意味する。通常モードのビンが低減する一方で、バイパスモードでコーディングされたビンの数が増加することは、コーデックのスピードアップと並列化とに役立ち得る。
【００６２】
[0060]ＨＭ４．０で採用された技法では、最後位置成分（last position component）の可能な最大の大きさ、ｍａｘ＿ｌｅｎｇｔｈは均等に２等分に分割される。第１の半分は短縮単項コードでコーディングされ、第２の半分は固定長コードでコーディングされる（ビンの数はｌｏｇ2（ｍａｘ＿ｌｅｎｇｔｈ／２）に等しい）。最悪のシナリオでは、コンテキストモデリングを使用するビンの数はｍａｘ＿ｌｅｎｇｔｈ／２に等しい。表１は、ＨＭ４．０におけるＴＵ３２×３２の２値化を示す。
【表１】
0005855759.tif 000002
【００６３】
[0061]本開示は、最後有効係数位置のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）のための技法を提供する。一例では、低減された数のビンと、より短い短縮単項コードとを有するプログレッシブ（progressive）コードワード構造が使用され得る。加えて、一例では、短縮単項コードの最大長を短縮することによって、最後有効係数位置のコンテキストモデルの数が半分に（by two）低減され得る。
【００６４】
[0062]図４は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００６５】
[0063]図４の例では、ビデオエンコーダ２０は、区分ユニット３５と、予測モジュール４１と、参照ピクチャメモリ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測モジュール４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測モジュール４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクト（blockiness artifacts）を除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（deblocking filter）（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。デブロッキングフィルタに加えて追加のループフィルタ（ループ内またはポストループ（post loop））も使用され得る。
【００６６】
[0064]図４に示すように、ビデオエンコーダ２０はビデオデータを受信し、区分ユニット３５はデータをビデオブロックに区分する。この区分は、たとえば、ＬＣＵおよびＣＵの４分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測モジュール４１は、誤り結果（たとえば、コーディングレートおよびひずみ（distortion）レベル）に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの１つ、または複数のインターコーディングモードのうちの１つなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測モジュール４１は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、かつ参照ピクチャとして使用するための符号化ブロックを再構成するために加算器６２に与え得る。
【００６７】
[0065]予測モジュール４１内のイントラ予測モジュール４６は、空間圧縮を提供するために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測モジュール４１内の動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を提供するために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【００６８】
[0066]動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを予測スライス（Ｐスライス）、双予測（bipredictive）スライス（Ｂスライス）または一般化されたＰスライスとＢスライス（ＧＰＢスライス）に指定し得る。Ｐスライスは前の連続ピクチャを参照し得る。Ｂスライスは前の連続ピクチャまたは後の（post）連続ピクチャを参照し得る。ＧＰＢスライスは、参照ピクチャの２つのリストが同一である場合を指す。動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位（displacement）を示し得る。
【００６９】
[0067]予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵにぴったり（closely）一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル（fractional pixel）位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し得、分数ピクセル精度で動きベクトルを出力し得る。
【００７０】
[0068]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵについての動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７１】
[0069]動き補償ユニット４４によって実行される動き補償は、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチ（fetching）または生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００７２】
[0070]イントラ予測モジュール４６は、上記で説明したように、動き推定ユニット４２および動き補償ユニット４４によって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測モジュール４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール４６は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、かつイントラ予測モジュール４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差（error））の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を判断する。イントラ予測モジュール４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックについてのひずみおよびレートから比率を計算し得る。
【００７３】
[0071]いずれの場合も、あるブロックについてのイントラ予測モードを選択した後、イントラ予測モジュール４６は、エントロピーコーディングユニット５６にブロックについての選択されたイントラ予測モードを示す情報を提供し得る。エントロピーコーディングユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、送信されたビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確（most probable）イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
【００７４】
[0072]予測モジュール４１が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ得、変換モジュール５２に適用され得る。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【００７５】
[0073]変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度（bit depth）を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。逆量子化ユニット５８および逆変換モジュール６０は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照ピクチャメモリ６４に記憶するための参照ブロックを生成するために、再構成された残差ブロックを動き補償ユニット４４によって生成された、動きが補償された予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７６】
[0074]量子化の後に、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ３０に送信され得るか、あるいはビデオデコーダ３０が後で送信するかまたは取り出す（retrieval）ためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【００７７】
[0075]一例では、エントロピーコーディングユニット５６は、上記で説明したＨＭ４．０で採用された技法を使用して、最後有効係数の位置を符号化し得る。他の例では、エントロピーコーディングユニット５６は、改善されたコーディングを提供し得る技法を使用して、最後有効係数の位置を符号化し得る。特に、エントロピーコーディングユニット５６は、いくつかの可能なＴＵサイズに対して、プログレッシブ最後位置コーディング方式を利用し得る。
【００７８】
[0076]一例では、最後有効係数の位置のコードワードは、その後に固定長コードサフィックス（suffix）が続く短縮単項コードプレフィックス（prefix）を含み得る。一例では、最後位置の各大きさは、最後位置がＴＵサイズ−１に等しいときを除いて、すべての可能なＴＵサイズに対して同じ２値化を使用し得る。この例外は短縮単項コーディングの特性によるものである。一例では、矩形（rectangular）変換係数内の最後有効係数の位置は、ｘ座標値とｙ座標値とを指定することによって指定され得る。別の例では、変換係数ブロックは１×Ｎベクトルの形式であってもよく、かつベクトル内の最後有効係数の位置は信号位置値によって指定され得る。
【００７９】
[0077]一例では、ＴはＴＵのサイズを定義し得る。上記で詳細に説明したように、ＴＵは形状が方形または非方形であり得る。したがって、Ｔは２次元ＴＵの行もしくは列の数またはベクトルの長さのいずれかを指し得る。短縮単項コーディング方式が、その後に１つの１ビットが続くいくつかの０ビットを与える例では、短縮単項コードプレフィックスコーディングの０の数、最後有効係数の位置はＮ＝｛０，．．．，２ｌｏｇ2（Ｔ）−１｝に従って定義され得る。短縮単項コーディング方式が、その後に１つの０ビットが続くいくつかの１ビットを与える例では、Ｎ＝｛０，．．．，２ｌｏｇ2（Ｔ）−１｝は１の数も定義し得ることに留意されたい。これらの短縮単項コーディング代替形態の各々では、２ｌｏｇ2（Ｔ）−１は、サイズＴのＴＵの短縮単項プレフィックスの最大長を定義し得る。たとえば、Ｔが３２に等しいＴＵの場合、短縮単項プレフィックスの最大長は９に等しく、Ｔが１６に等しい場合、短縮単項プレフィックスの最大長は７に等しい。
【００８０】
[0078]値ｎの短縮単項コードの場合、固定長コードサフィックスは、次のように定義される値を有する固定長２値コードの後続のｂ個のビットを含み得る：ｆ＿ｖａｌｕｅ＝｛０，．．．，２b−１｝、ただし、ｂ＝ｍａｘ（０，ｎ／２−１）。したがって、最後位置の大きさ（magnitude）、ｌａｓｔ＿ｐｏｓはｎおよびｆ＿ｖａｌｕｅから
【数１】
0005855759.tif 000003
【００８１】
として導出され得、ただし、ｍｏｄ（．）はモジュロ演算を表し、ｆ＿ｖａｌｕｅは固定長コードの値を表す。
【００８２】
[0079]表２は、３２×３２ＴＵについての式１に従って与えられた定義に従った、最後有効係数の位置の例示的な２値化を示す。表２の第２の列は、２ｌｏｇ2（Ｔ）−１の最大短縮単項プレフィックス長によって定義されたサイズＴのＴＵ内の最後有効係数の位置の可能な値に、対応する短縮単項プレフィックス値を与える。表２の第３の列は、各短縮単項プレフィックスに、対応する固定長サフィックスを与える。簡潔のために、表２は１または０のいずれかのビット値を示すＸ値を含む。Ｘ値は固定長コードに従って短縮単項プレフィックスを共有する各値を一意にマッピングすることに留意されたい。表２における最後位置成分の大きさは、ｘ座標値および／またはｙ座標値に対応し得る。
【表２】
0005855759.tif 000004
【００８３】
[0080]表３および表４は、表１に関して説明した例示的な２値化方式と、表２に関して説明した例示的な２値化方式とのビット列の最大長の比較を示す。表３に示すように、単項コードプレフィックスは、表１に関して説明した例における３２×３２ＴＵについて１６ビンの最大長を有し得る。一方、単項コードプレフィックスは、表２に関して説明した例における３２×３２ＴＵについて１６ビンの最大長を有し得る。さらに、表４に示すように、全長（overall length）は短縮単項プレフィックスと固定長サフィックスとに基づき、表２に関して説明した例のビンの最大数は、最悪の場合、すなわち、最後位置が３２×３２ＴＵの末尾に配置されるとき、２４になり得るが、表１に関して説明した例の最悪の場合は４０になり得る。
【表３】
0005855759.tif 000005
【表４】
0005855759.tif 000006
【００８４】
[0081]短縮単項コーディング方式が、その後に１つの１ビットが続くいくつかの０ビットまたはその後に１つの１ビットが続くいくつかの１ビットを短縮単項コードプレフィックスコーディングに与える別の例では、最後有効係数の位置は、Ｎ＝｛０，．．．，ｌｏｇ2（Ｔ）＋１｝に従って定義され得る。これらの短縮単項コーディング方式の各々では、ｌｏｇ2（Ｔ）＋１は、サイズＴのＴＵの短縮単項プレフィックスの最大長を定義し得る。たとえば、Ｔが３２に等しいＴＵの場合、短縮単項プレフィックスの最大長は６に等しく、Ｔが８に等しい場合、短縮単項プレフィックスの最大長は５に等しい。
【００８５】
[0082]値ｎの短縮単項コードの場合、固定長コードサフィックスは、次のように定義される値を有する固定長２値コードの後続のｂ個のビットを含み得る：ｆ＿ｖａｌｕｅ＝｛０，．．．，２b−１｝、ただし、ｂ＝ｎ−２。したがって、最後位置の大きさ、ｌａｓｔ＿ｐｏｓはｎおよびｆ＿ｖａｌｕｅから
【数２】
0005855759.tif 000007
【００８６】
として導出され得、ただし、ｆ＿ｖａｌｕｅは固定長コードの値を表す。
【００８７】
[0083]表５は、３２×３２ＴＵについての式２に従って与えられた定義に従った、最後有効係数の位置の例示的な２値化を示す。表５の第２の列は、ｌｏｇ2（Ｔ）＋１の最大短縮単項プレフィックス長によって定義されたサイズＴのＴＵ内の最後有効係数の位置の可能な値に、対応する短縮単項プレフィックス値を与える。表５の第３の列は、各短縮単項プレフィックスに、対応する固定長サフィックスを与える。簡潔のために、表２は１または０のいずれかのビット値を示すＸ値を含む。Ｘ値は固定長コードに従って短縮単項プレフィックスを共有する各値を一意にマッピングすることに留意されたい。表５における最後位置成分の大きさは、ｘ座標値および／またはｙ座標値に対応し得る。
【表５】
0005855759.tif 000008
【００８８】
[0084]短縮単項コーディング方式が、その後に１つの１ビットが続くいくつかの０ビットまたはその後に１つの１ビットが続くいくつかの１ビットを短縮単項コードプレフィックスコーディングに与える別の例では、最後有効係数の位置は、Ｎ＝｛０，．．．，ｌｏｇ2（Ｔ）｝に従って定義され得る。これらの短縮単項コーディング方式の各々では、ｌｏｇ2（Ｔ）は、サイズＴのＴＵの短縮単項プレフィックスの最大長を定義し得る。たとえば、Ｔが３２に等しいＴＵの場合、短縮単項プレフィックスの最大長は５に等しく、Ｔが８に等しい場合、短縮単項プレフィックスの最大長は５に等しい。
【００８９】
[0085]値ｎの短縮単項コードの場合、固定長コードサフィックスは、次のように定義される値を有する固定長２値コードの後続のｂ個のビットを含み得る：ｆ＿ｖａｌｕｅ＝｛０，．．．，２b−１｝、ただし、ｂ＝ｎ−１。したがって、最後位置の大きさ、ｌａｓｔ＿ｐｏｓはｎおよびｆ＿ｖａｌｕｅから
【数３】
0005855759.tif 000009
【００９０】
として導出され得、ただし、ｆ＿ｖａｌｕｅは固定長コードの値を表す。
【００９１】
[0086]表６は、３２×３２ＴＵについての式３に従って与えられた定義に従った、最後有効係数の位置の例示的な２値化を示す。表６の第２の列は、ｌｏｇ2（Ｔ）の最大短縮単項プレフィックス長によって定義されたサイズＴのＴＵ内の最後有効係数の位置の可能な値に、対応する短縮単項プレフィックス値を与える。表６の第３の列は、各短縮単項プレフィックスに、対応する固定長サフィックスを与える。簡潔のために、表６は１または０のいずれかのビット値を示すＸ値を含む。Ｘ値は固定長コードに従って短縮単項プレフィックスを共有する各値を一意にマッピングすることに留意されたい。表６における最後位置成分の大きさは、ｘ座標値および／またはｙ座標値に対応し得る。
【表６】
0005855759.tif 000010
【００９２】
[0087]表５および表６は、最後有効係数の位置をコーディングするために短縮単項プレフィックスと固定長サフィックスとを使用するいくつかの代替例を示す。表５および表６に示す例は、表２に関して与えられた例よりも短いビンが可能になる。最後有効係数の位置がｘ座標値とｙ座標値とに基づいて判断される例では、そのｘ座標値およびそのｙ座標値に対して、表１、表２、表５および表６に示す例示的な２値化方式のいずれかが独立して選択され得ることに留意されたい。たとえば、ｘ座標値は表２に関して説明した２値化方式に基づいて符号化され得るが、ｙ座標値は表６に関して説明した２値化方式に基づいて符号化され得る。
【００９３】
[0088]上記で説明したように、ＣＡＢＡＣを使用してデータシンボルをコーディングすることは、以下のステップ、２値化およびコンテキスト割当てのうちの１つまたは複数を含み得る。一例では、最後位置値コンテキストモデリングは短縮単項列の算術符号化に使用されることがあるが、コンテキストモデリングは固定２値列（binary strings）の算術符号化に使用される（すなわちバイパスされる）ことはない。短縮単項列がコンテキストモデリングを使用して符号化される場合、コンテキストは２値列のビンインデックスの各々に割り当てられる。個々のビンインデックスは、コンテキスト割当てを共有し得る。コンテキスト割当ての数は、ビンインデックスの数または短縮単項列の長さに等しい。したがって、表１、表２、表５および表６に示す例の場合、関連するコンテキストテーブルは２値化方式に従って指定され得る。表７は、上記の表２に関して上記に与えられた例示的な２値化についての異なるＴＵサイズの各ビンの可能なコンテキストインデクシング（context indexing）を示す。表７で与えられる例示的なコンテキストインデクシングはＳｅｒｅｇｉｎで与えられるコンテキストインデクシングよりも２つ少ないコンテキストを与えることに留意されたい。
【表７】
0005855759.tif 000011
【００９４】
[0089]表８から表１１はそれぞれ、コンテキストモデリング用に作成された以下の規則に従った、コンテキストインデクシングのいくつかの例を示す。
【００９５】
１．最初のＫ個のビンはコンテキストを共有しておらず、ただし、Ｋ＞１である。Ｋは各ＴＵサイズで異なり得る。
【００９６】
２．１つのコンテキストは連続するビンにのみ割り当てられ得る。たとえば、ビン３〜ビン５はコンテキスト５を使用することができる。ただし、ビン３およびビン５がコンテキスト５を使用し、ビン４がコンテキスト６を使用することは許可されない。
【００９７】
３．異なるＴＵサイズの最後のＮ個のビン、Ｎ≧０、は同じコンテキストを共有することができる。
【００９８】
４．同じコンテキストを共有するビンの数はＴＵサイズとともに増加する。
【００９９】
[0090]上記の規則１〜規則４は、表２で与えられる２値化に特に有用であり得る。しかしながら、コンテキストモデリングは実施される２値化方式に基づいて相応に調整され得る。
【表８】
0005855759.tif 000012
【表９】
0005855759.tif 000013
【表１０】
0005855759.tif 000014
【表１１】
0005855759.tif 000015
【０１００】
[0091]図５は、本開示で説明する技法を実装し得る例示的なエントロピーエンコーダ５６を示すブロック図である。エントロピーエンコーダ５６は、変換ブロック係数内の最後有効変換係数の位置を表す１つまたは複数のシンタックス要素などのシンタックス要素を受け取り、シンタックス要素をビットストリームに符号化する。シンタックス要素は、変換係数ブロック内の最後有効係数の位置のｘ座標を指定するシンタックス要素と、変換係数ブロック内の最後有効係数の位置のｙ座標を指定するシンタックス要素とを含み得る。一例では、図５に示すエントロピーエンコーダ５６はＣＡＢＡＣエンコーダであり得る。図５の例示的なエントロピーエンコーダ５６は２値化ユニット５０２と、算術符号化ユニット５０４と、コンテキスト割当てユニット５０６とを含み得る。
【０１０１】
[0092]２値化ユニット５０２はシンタックス要素を受け取り、ビン列を生成する。一例では、２値化ユニット５０２は、上記で説明した例に従って、変換係数のブロック内の有効係数の最後位置を表す値を受け取り、ビット列またはビン値を生成する。算術符号化ユニット５０４は２値化ユニット５０２からビット列を受け取り、コードワードに対して算術符号化を実行する。図５に示すように、算術エンコーダ５０４はバイパス経路からまたはコンテキストモデリングユニット５０６からビン値を受け取り得る。算術符号化ユニット５０４がコンテキストモデリングユニット５０６からビン値を受け取る場合、算術符号化ユニット５０４はコンテキスト割当てユニット５０６によって与えられたコンテキスト割当てに基づいて算術符号化を実行し得る。一例では、算術符号化ユニット５０４は、ビット列のプレフィックス部分を符号化するためにコンテキスト割当てを使用し得、コンテキスト割当てを使用することなくビット列のサフィックス部分を符号化し得る。
【０１０２】
[0093]一例では、コンテキスト割当てユニット５０６は上記の表７〜表１１で与えられた例示的なコンテキストインデクシングに基づいてコンテキストを割り当て得る。このようにして、ビデオエンコーダ２０は、サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、２ｌｏｇ2（Ｔ）−１、ｌｏｇ2（Ｔ）＋１、またはｌｏｇ2（Ｔ）によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて最後有効係数の位置を示す値の第１の２値列を判断することと、固定長コーディング方式に基づいて最後有効係数の位置を示す値の第２の２値列を判断することと、第１および第２の２値列をビットストリームに符号化することとを行うように構成されたビデオエンコーダを表す。
【０１０３】
[0094]図６は、本開示の技法に従って最後有効係数の位置を示す値の２値列を判断するための例示的な方法を示すフローチャートである。図６で説明する方法は、本明細書で説明する例示的なビデオエンコーダまたはエントロピーエンコーダのいずれかによって実行され得る。ステップ６０２において、ビデオブロック内の最後有効変換係数の位置を示す値が取得される。ステップ６０４において、最後有効係数の位置を示す値のプレフィックス２値列が判断される。プレフィックス２値列は本明細書で説明する技法のいずれかを使用して判断され得る。一例では、プレフィックス２値は、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。別の例では、プレフィックス２値は、ｌｏｇ2（Ｔ）＋１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。さらに別の例では、プレフィックス２値は、ｌｏｇ2（Ｔ）によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。プレフィックス２値列は、１組の計算を実行するエンコーダによって、ルックアップテーブルを使用するエンコーダによって、またはそれらの組合せによって判断され得る。たとえば、エンコーダは、プレフィックス２値列を判断するために、表２、表５および表６のいずれかを使用し得る。
【０１０４】
[0095]ステップ６０６において、最後有効係数の位置を示す値のサフィックス２値列が判断される。サフィックス２値列は本明細書で説明する技法のいずれかを使用して判断され得る。一例では、サフィックス２値列はｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義された固定長コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。別の例では、サフィックス２値列はｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された固定長コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。サフィックス２値列は、１組の計算を実行するエンコーダによって、ルックアップテーブルを使用するエンコーダによって、またはそれらの組合せによって判断され得る。たとえば、エンコーダは、サフィックス２値列を判断するために、表２、表５および表６のいずれかを使用し得る。ステップ６０８において、プレフィックス２値列およびサフィックス２値列はビットストリームに符号化される。一例では、プレフィックス２値列およびサフィックス２値列は算術符号化を使用して符号化され得る。ビットストリームのプレフィックス部分およびサフィックス部分は交換され得ることに留意されたい。算術符号化は、ＣＡＢＡＣ符号化プロセスの一部または別のエントロピー符号化プロセスの一部であり得る。
【０１０５】
[0096]表１２〜表１４は、表１に関して説明した例示的な２値化方式、および表２に関して説明した例示的な２値化方式のコーディング性能のシミュレーション結果の概要を与えるものである。表１２〜表１４のシミュレーション結果は、Ｆ．Ｂｏｓｓｅｎ、「Ｃｏｍｍｏｎ  ｔｅｓｔ  ｃｏｎｄｉｔｉｏｎｓ  ａｎｄ  ｓｏｆｔｗａｒｅ  ｒｅｆｅｒｅｎｃｅ  ｃｏｎｆｉｇｕｒａｔｉｏｎｓ」、ＪＣＴＶＣ−Ｆ９００によって定義された高効率の共通テスト条件を使用して得られた。表１２〜表１４の負の値は、表１に関して説明した２値化方式に比べてより低い、表２に関して説明した２値化方式のビットレートを示す。表１２〜表１４の符号化時間（Enc Time）および復号時間（Dec Time）はそれぞれ、表１に関して説明した２値化方式を使用することで生じたビットストリームを符号化する（または復号する）のに必要な時間量と比較した、表２に関して説明した２値化方式を使用することで生じたビットストリームを符号化するのに必要な時間量と、そのビットストリームを復号するのに必要な時間量とを表す。表１２〜表１４に示す実験結果からわかるように、表２に関して説明した２値化方式は、高効率イントラのみ、ランダムアクセスおよび低遅延のテスト条件において、−０．０４％、−０．０１％および−０．０３％のそれぞれのＢＤレート性能利得を与える。
【０１０６】
[0097]以下の表中のクラスＡ〜クラスＥは、ビデオデータの様々なシーケンスを表す。列Ｙ、ＵおよびＶはそれぞれ、ルーマ、Ｕクロマ、およびＶクロマのデータに対応する。表１２は、すべてのデータがイントラモードでコーディングされる構成のこのデータを要約したものである。表１３は、すべてのデータがイントラモードとインターモードの両方が利用可能である「ランダムアクセス」でコーディングされる構成のこのデータを要約したものである。表１４は、ピクチャが低遅延Ｂモードでコーディングされる構成のこのデータを要約したものである。
【表１２】
0005855759.tif 000016
【表１３】
0005855759.tif 000017
【表１４】
0005855759.tif 000018
【０１０７】
[0098]図７は、本開示で説明する技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図７の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測モジュール８１と、逆量子化ユニット８６と、逆変換モジュール８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測モジュール８１は、動き補償ユニット８２と、イントラ予測モジュール８４とを含む。ビデオデコーダ３０は、いくつかの例では、図４のビデオエンコーダ２０に関して説明した符号化パス（encoding pass）とは概して逆の（reciprocal）復号パス（decoding pass）を実行し得る。
【０１０８】
[0099]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、本明細書で説明する技法に基づいて、変換係数内の最後有効係数の位置を示す値を判断し得る。エントロピー復号ユニット８０は、予測モジュール８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０１０９】
[0100]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、予測モジュール８１のイントラ予測モジュール８４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測モジュール８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０１１０】
[0101]動き補償ユニット８２は、動きベクトルと他のシンタックス要素とを解析することによって現在ビデオスライスのビデオブロックについての予測情報を判断し、復号されている現在ビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコード化ビデオブロックについてのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを判断するために、受信されたシンタックス要素のいくつかを使用する。
【０１１１】
[0102]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを判断し得、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１１２】
[0103]逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を判断するために、同様に、適用されるべき逆量子化の程度を判断するために、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換モジュール８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１１３】
[0104]予測モジュール８１が、インター予測またはイントラ予測のいずれかに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換モジュール８８からの残差ブロックを予測モジュール８１によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、またはさもなければビデオ品質を改善するために、（コーディングループ内またはコーディングループ後の）他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のための、復号ビデオを記憶する。このようにして、ビデオデコーダ３０は、符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、第２の２値列に部分的に基づいて最後有効係数の位置を示す値を判断することであって、第２の２値列が、固定長コーディング方式によって定義される、判断することとを行うように構成されたビデオデコーダを表す。
【０１１４】
[0105]図８は、本開示の技法に従って２値列から変換係数内の最後有効係数の位置を示す値を判断するための例示的な方法を示すフローチャートである。図８で説明する方法は、本明細書で説明する例示的なビデオデコーダまたはエントロピーデコーディングユニットのいずれかによって実行され得る。ステップ８０２において、符号化ビットストリームが取得される。符号化ビットストリームはメモリからまたは送信を介して取り出され得る。符号化ビットストリームはＣＡＢＡＣ符号化プロセスまたは別のエントロピーコーディングプロセスに従って符号化され得る。ステップ８０４において、プレフィックス２値列が取得される。ステップ８０６において、サフィックス２値列が取得される。プレフィックス２値列およびサフィックス２値列は符号化ビットストリームを復号することによって取得され得る。復号は算術復号を含み得る。算術復号は、ＣＡＢＡＣ復号プロセッサまたは別のエントロピー復号プロセスの一部であり得る。ステップ８０８において、最後有効係数の位置を示す値がサイズＴのビデオブロック内で判断される。一例では、最後有効係数の位置はプレフィックス２値列に部分的に基づいて決定され、プレフィックス２値列は最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義され、Ｔはビデオブロックのサイズを定義する。一例では、最後有効係数の位置はプレフィックス２値列に部分的に基づいて判断され、プレフィックス２値列は最大ビット長がｌｏｇ2（Ｔ）＋１によって定義された短縮単項コーディング方式によって定義され、Ｔはビデオブロックのサイズを定義する。一例では、最後有効係数の位置はプレフィックス２値列に部分的に基づいて判断され、プレフィックス２値列は最大ビット長がｌｏｇ2（Ｔ）によって定義された短縮単項コーディング方式によって定義され、Ｔはビデオブロックのサイズを定義する。一例では、最後有効係数の位置はサフィックス２値列に部分的に基づき、サフィックス２値列は最大ビット長がｌｏｇ2（Ｔ）−２によって定義された固定長コーディング方式によって定義され、Ｔはビデオブロックのサイズを定義する。別の例では、第２の２値列は最大ビット長がｌｏｇ2（Ｔ）−１によって定義された固定長コーディング方式に基づいてもよく、Ｔはビデオブロックのサイズを定義する。ビットストリームのプレフィックス部分およびサフィックス部分は交換され得ることに留意されたい。
【０１１５】
[0106]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１１６】
[0107]さらに他の例では、本開示は、その上に記憶されたデータ構造を備えるコンピュータ可読媒体を企図し、データ構造は本開示に一致する符号化ビットストリームを含む。特に、符号化ビットストリームは、第１の２値列と第２の２値列とを含むエントロピーコード化ビットストリームを含み得、第１の２値列は最後有効係数の位置を示す値を示し、２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づき、第２の２値列は最後有効係数の位置を示す値を示し、固定長コーディング方式に基づく。
【０１１７】
[0108]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令またはデータ構造の形式の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１１８】
[0109]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な任意の他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１１９】
[0110]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１２０】
[0110]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ビデオデータを符号化するための方法であって、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を備える方法。
［２］前記第１および第２の２値列をビットストリームに符号化することが、算術符号化を含む、［１］に記載の方法。
［３］前記第１および第２の２値列をビットストリームに符号化することが、コンテキストモデルに基づいて前記第１の２値列を符号化することを含む、［２］に記載の方法。
［４］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［１］に記載の方法。
［５］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［４］に記載の方法。
［６］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、［５］に記載の方法。
［７］サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を行うように構成されたビデオエンコーダを備えるデバイス。
［８］前記第１および第２の２値列をビットストリームに符号化するように構成されることが、算術符号化を実行するように構成されることを含む、［７］に記載のデバイス。
［９］前記第１および第２の２値列をビットストリームに符号化するように構成されることが、コンテキストモデルに基づいて前記第１の２値列を符号化するように構成されることを含む、［８］に記載のデバイス。
［１０］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［７］に記載のデバイス。
［１１］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［１０］に記載のデバイス。
［１２］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、［１０］に記載のデバイス。
［１３］ビデオデータを符号化するためのデバイスであって、前記デバイスが、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得するための手段と、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断するための手段と、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断するための手段と、
前記第１および第２の２値列をビットストリームに符号化するための手段と
を備えるデバイス。
［１４］前記第１および第２の２値列をビットストリームに符号化するための手段が、算術符号化を実行するための手段を含む、［１３］に記載のデバイス。
［１５］前記第１および第２の２値列をビットストリームに符号化するための手段が、コンテキストモデルに基づいて前記第１の２値列を符号化するための手段を含む、［１４］に記載のデバイス。
［１６］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［１３］に記載のデバイス。
［１７］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［１６］に記載のデバイス。
［１８］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、［１６］に記載のデバイス。
［１９］実行されると、１つまたは複数のプロセッサに、
サイズＴのビデオブロック内の最後有効係数の位置を示す値を取得することと、
２ｌｏｇ2（Ｔ）−１によって定義された最大ビット長によって定義された短縮単項コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第１の２値列を判断することと、
固定長コーディング方式に基づいて前記最後有効係数の前記位置を示す前記値の第２の２値列を判断することと、
前記第１および第２の２値列をビットストリームに符号化することと
を行わせる、その上に記憶された命令を備えるコンピュータ可読記憶媒体。
［２０］実行されると、１つまたは複数のプロセッサに、前記第１および第２の２値列をビットストリームに符号化させる命令が、実行されると、１つまたは複数のプロセッサに、算術符号化を実行させる命令を含む、［１９］に記載のコンピュータ可読記憶媒体。
［２１］実行されると、１つまたは複数のプロセッサに、前記第１および第２の２値列をビットストリームに符号化させる命令が、実行されると、１つまたは複数のプロセッサに、コンテキストモデルに基づいて前記第１の２値列を符号化させる命令を含む、［２０］に記載のコンピュータ可読記憶媒体。
［２２］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［１９］に記載のコンピュータ可読記憶媒体。
［２３］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［２２］に記載のコンピュータ可読記憶媒体。
［２４］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含み、前記第２の２値列が１のビット長を有する、［２３］に記載のコンピュータ可読記憶媒体。
［２５］ビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
［２６］前記符号化ビットストリームから第１の２値列と第２の２値列とを取得することが、算術復号を実行することを含む、［２５］に記載の方法。
［２７］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［２５］に記載の方法。
［２８］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［２７］に記載の方法。
［２９］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、［２８］に記載の方法。
［３０］前記第２の２値列が１のビット長を有する、［２９］に記載の方法。
［３１］符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を行うように構成されたビデオデコーダを備えるデバイス。
［３２］前記符号化ビットストリームから第１の２値列と第２の２値列とを取得するように構成されることが、算術復号を実行するように構成されることを含む、［３１］に記載のデバイス。
［３３］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［３１］に記載のデバイス。
［３４］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［３３］に記載のデバイス。
［３５］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、［３４］に記載のデバイス。
［３６］前記第２の２値列が１のビット長を有する、［３５］に記載のデバイス。
［３７］ビデオデータを復号するためのデバイスであって、前記デバイスが、
符号化ビットストリームから第１の２値列と第２の２値列とを取得するための手段と、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断するための手段であって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、手段と、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断するための手段であって、前記第２の２値列が、固定長コーディング方式によって定義される、手段と
を備えるデバイス。
［３８］符号化ビットストリームから第１の２値列と第２の２値列とを取得するための手段が、算術復号を実行するための手段を含む、［３７］に記載のデバイス。
［３９］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［３７］に記載のデバイス。
［４０］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［３９］に記載のデバイス。
［４１］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、［４０］に記載のデバイス。
［４２］前記第２の２値列が１のビット長を有する、［４１］に記載のデバイス。
［４３］実行されると、１つまたは複数のプロセッサに、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長が２ｌｏｇ2（Ｔ）−１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を行わせる、その上に記憶された命令を備えるコンピュータ可読記憶媒体。
［４４］実行されると、１つまたは複数のプロセッサに、符号化ビットストリームから第１の２値列と第２の２値列とを取得させる命令が、実行されると、１つまたは複数のプロセッサに、算術復号を実行させる命令を含む、［４３］に記載のコンピュータ可読記憶媒体。
［４５］前記固定長コーディング方式が、ｌｏｇ2（Ｔ）−２によって定義された最大ビット長によって定義される、［４３］に記載のコンピュータ可読記憶媒体。
［４６］Ｔが３２に等しく、最後有効係数の前記位置を示す前記値が８に等しく、前記第１の２値列が７のビット長を有する、［４５］に記載のコンピュータ可読記憶媒体。
［４７］前記第１の２値列が、同じ値を有する６つの連続ビットと、反対の値を有する１つのビットとを含む、［４６］に記載のコンピュータ可読記憶媒体。
［４８］前記第２の２値列が１のビット長を有する、［４７］に記載のコンピュータ可読記憶媒体。
［４９］ビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）＋１によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
［５０］ビデオデータを復号するための方法であって、
符号化ビットストリームから第１の２値列と第２の２値列とを取得することと、
前記第１の２値列に部分的に基づいてサイズＴのビデオブロック内の最後有効係数の位置を示す値を判断することであって、前記第１の２値列が、最大ビット長がｌｏｇ2（Ｔ）によって定義された短縮単項コーディング方式によって定義される、判断することと、
前記第２の２値列に部分的に基づいて前記最後有効係数の前記位置を示す前記値を判断することであって、前記第２の２値列が、固定長コーディング方式によって定義される、判断することと
を備える方法。
【図１】
0005855759.tif 000019
【図２Ａ】
0005855759.tif 000020
【図２Ｂ】
0005855759.tif 000021
【図２Ｃ】
0005855759.tif 000022
【図２Ｄ】
0005855759.tif 000023
【図３】
0005855759.tif 000024
【図４】
0005855759.tif 000025
【図５】
0005855759.tif 000026
【図６】
0005855759.tif 000027
【図７】
0005855759.tif 000028
【図８】
0005855759.tif 000029