(57)【要約】  この開示は、映像データの残差ブロックを変換するための技法について説明する。特に、複数の異なる変換が前記映像ブロックの予測モードに基づいて選択的に前記残差ブロックに適用される。前記複数の変換の少なくとも一部は、所定の予測モードの残差ブロックに関してより良いエネルギー圧縮を提供することを目的として対応する予測モードに関して特にトレーニングされた分離可能方向性変換である。分離可能方向性変換を用いることは、分離不能方向性変換の使用よりも計算が複雑でなく及び格納上の要求が小さいという利益を提供する。さらに、分離可能方向性変換を適用時には前記残差ブロックの係数を走査するために用いられる走査順序を調整することができる。特に、前記走査順序は、エントロピーコーディングの有効性を向上させることを目的として非ゼロ係数は一次元係数ベクトルの前部付近においてグループ分けされるのがより確実に行われるように１つ以上の以前にコーディングされたブロックと関連づけられた統計値に基づいて調整することができる。【選択図】図２【特許請求の範囲】
【請求項１】
映像データを符号化する方法であって、
映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換において用いるための複数の変換を格納することであって、前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換であることと、
前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択することと、
前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換することと、
前映像ブロックの前記残差変換係数をエントロピーコーディングすること、とを備える、方法。
【請求項２】
前記分離可能方向性変換は、各々、サイズがＮ×Ｎの列変換行列と、サイズがＮ×Ｎの行変換行列と、を含み、Ｎ×Ｎは、前記映像ブロックの次元である請求項１に記載の方法。
【請求項３】
前記複数の変換は、離散コサイン変換（ＤＣＴ）又は整数変換をさらに含み、前記映像ブロックに関して前記複数の変換のうちの１つを選択することは、
前記選択された予測モードが制限された方向性を示すときに前記映像ブロックに適用するために前記離散コサイン変換（ＤＣＴ）又は前記整数変換を選択することと、
前記選択された予測モードが方向性を示すときに前記映像ブロックに適用するために前記複数の前記分離可能方向性変換のうちの１つを選択すること、とを備える請求項１に記載の方法。
【請求項４】
一方向性予測モードと少なくとも２つの一方向性予測モードを組み合わせた多方向性予測モードとを含む予測モードの組から前記映像ブロックの前記予測モードを選択することをさらに備え、
前記ＤＣＴ又は前記整数変換を選択することは、前記選択された予測モードがＤＣＴ一方向性予測モード又は実質的に直交方向を指す少なくとも２つの予測モードを組み合わせた多方向性予測モードのいずれかであるときに前記映像ブロックに適用するために前記ＤＣＴ又は前記整数変換を選択することを備える請求項３に記載の方法。
【請求項５】
予測モードの前記組は、一方向性予測モードと可能な二方向性予測モードの部分組とを含み、二方向性予測モードの前記部分組は、前記一方向性予測モードの各々を含む少なくとも１つの組み合わせを含む請求項４に記載の方法。
【請求項６】
前記選択された変換は、分離可能変換であり、前記映像ブロックは、第１の映像ブロックを備え、
係数走査順序を用いて前記第１の映像ブロックの前記残差変換係数を走査することと、
前記係数の少なくとも一部と関連づけられた統計値を収集することと、
前記収集された統計値に従って前記係数走査順序を調整することと、
少なくとも１つの後続する映像ブロックが前記第１の映像ブロックのコーディング単位内に存在するときに前記調整された係数走査順序を用いて前記少なくとも１つの後続する映像ブロックの係数を走査すること、とをさらに備える請求項１に記載の方法。
【請求項７】
前記係数の少なくも一部に関する統計値を収集することは、
前記係数の前記二次元表示の前記一部内における位置の各々が非ゼロ係数を有する回数を追跡する前記係数の前記二次元表示の前記一部内における各位置に対応するカウント値を維持することを備え、
前記係数走査順序を調整することは、前記係数位置のカウント値に基づいて降順で前記係数位置を走査する調整された係数走査順序を生成するように前記係数走査順序を調整することを備える請求項６に記載の方法。
【請求項８】
前記カウント値のうちの１つがしきいカウント値に達したときに前記収集された統計値を正規化することをさらに備え、前記収集された統計値を正規化することは、前記カウント値の各々をある係数分の１に減らすこと及び前記カウント値を一組の初期カウント値にリセットすることのうちの１つを備える請求項７に記載の方法。
【請求項９】
前記映像ブロックの前記予測モードを複数の予測モードから選択することをさらに備え、統計値を収集すること及び前記係数走査順序を調整することは、前記複数の予測モードの各々に関して別々に統計値を収集することと前記係数走査順序を調整することとを備える請求項６に記載の方法。
【請求項１０】
前記第１の映像ブロック及び前記少なくとも１つの後続する映像ブロックは、第１のコーディング単位に属し、前記走査順序を第２のコーディング単位に関して再初期化することをさらに備える請求項６に記載の方法。
【請求項１１】
前記変換は、前記映像ブロックの残差画素値を残差変換係数に変換する際に用いるための変換であり、
前記選択された変換を適用することは、前記選択された変換を前記映像ブロックに適用して前記映像ブロックの残差画素値を前記残差変換係数に変換することを備え、
エントロピーコーディングすることは、前記選択された変換を適用後に前記映像ブロックの前記残差変換係数をエントロピー符号化することを備える請求項１に記載の方法。
【請求項１２】
前記変換は、残差変換係数を前記映像ブロックの残差画素値に変換する際に用いるための逆変換であり、
前記選択された変換を適用することは、前記選択された逆変換を前記映像ブロックに適用して前記残差変換係数を前記映像ブロックの残差画素値に変換することを備え、
エントロピーコーディングすることは、前記選択された変換を適用する前に前記映像ブロックの前記残差変換係数をエントロピー復号することを備える請求項１に記載の方法。
【請求項１３】
映像データを符号化するためのデバイスであって、
映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換において用いるための複数の変換を格納し、
前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択し、及び、
前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換する変換ユニットと、
前記映像ブロックの前記残差変換係数をエントロピー符号化するエントロピーコーディングユニットと、を備え、
前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である、デバイス。
【請求項１４】
前記分離可能方向性変換は、各々、サイズがＮ×Ｎの列変換行列と、サイズがＮ×Ｎの行変換行列と、を含み、Ｎ×Ｎは、前記映像ブロックの次元である請求項１３に記載のデバイス。
【請求項１５】
前記複数の変換は、離散コサイン変換（ＤＣＴ）又は整数変換をさら含み、前記変換ユニットは、
前記選択された予測モードが制限された方向性を示すときに前記映像ブロックに適用するために前記離散コサイン変換（ＤＣＴ）又は前記整数変換を選択し、及び、
前記選択された予測モードが方向性を示すときに前記映像ブロックに適用するために前記複数の前記分離可能方向性変換のうちの１つを選択する請求項１３に記載のデバイス。
【請求項１６】
一方向性予測モードと少なくとも２つの一方向性予測モードを組み合わせた多方向性予測モードとを含む予測モードの組から前記映像ブロックの前記予測モードを選択する予測ユニットをさらに備え、
前記変換ユニットは、前記選択された予測モードがＤＣＴ一方向性予測モード又は実質的に直交方向を指す少なくとも２つの予測モードを組み合わせた多方向性予測モードのいずれかであるときに前記映像ブロックに適用するために前記ＤＣＴ又は前記整数変換を選択する請求項１５に記載のデバイス。
【請求項１７】
予測モードの前記組は、一方向性予測モードと可能な二方向性予測モードの部分組とを含み、二方向性予測モードの前記部分組は、前記一方向性予測モードの各々を含む少なくとも１つの組み合わせを含む請求項１６に記載のデバイス。
【請求項１８】
前記選択された変換は、分離可能変換であり、前記映像ブロックは、第１の映像ブロックを備え、
係数走査順序を用いて前記第１の映像ブロックの前記残差変換係数を走査し、
前記係数の少なくとも一部と関連づけられた統計値を収集し、
前記収集された統計値に従って前記係数走査順序を調整し、及び、
少なくとも１つの後続する映像ブロックが前記第１の映像ブロックのコーディング単位内に存在するときに前記調整された係数走査順序を用いて前記少なくとも１つの後続する映像ブロックの係数を走査する走査ユニットをさらに備える請求項１３に記載のデバイス。
【請求項１９】
前記走査ユニットは、
前記係数の前記二次元表示の前記一部内における位置の各々が非ゼロ係数を有する回数を追跡する前記係数の前記二次元表示の前記一部内における各位置に対応するカウント値を維持し、及び
前記係数走査順序を調整し、前記係数位置のカウント値に基づいて降順で前記係数位置を走査する調整された係数走査順序を生成するように前記係数走査順序を調整することを備える請求項１８に記載のデバイス。
【請求項２０】
前記走査ユニットは、前記カウント値のうちの１つがしきいカウント値に達したときに前記収集された統計値を正規化し、前記収集された統計値を正規化することは、前記カウント値の各々をある係数分の１に減らすこと及び前記カウント値を一組の初期カウント値にリセットすることのうちの１つを備える請求項１９に記載のデバイス。
【請求項２１】
前記予測ユニットは、前記映像ブロックの前記予測モードを複数の予測モードから選択し、
前記走査ユニットは、前記複数の予測モードの各々に関して別々に統計値を収集し及び前記係数走査順序を調整する請求項１８に記載のデバイス。
【請求項２２】
前記第１の映像ブロック及び前記少なくとも１つの後続する映像ブロックは、第１のコーディング単位に属し、前記走査ユニットは、前記走査順序を第２のコーディング単位に関して再初期化する請求項１８に記載のデバイス。
【請求項２３】
前記変換は、前記映像ブロックの残差画素値を残差変換係数に変換する際に用いるための変換であり、
前記変換ユニットは、前記選択された変換を前記映像ブロックに適用して前記映像ブロックの残差画素値を前記残差変換係数に変換し、
前記エントロピーコーディングユニットは、前記選択された変換を適用後に前記映像ブロックの前記残差変換係数をエントロピー符号化する請求項１３に記載のデバイス。
【請求項２４】
前記変換は、残差変換係数を前記映像ブロックの残差画素値に変換する際に用いるための逆変換であり、
前記変換ユニットは、前記選択された逆変換を前記映像ブロックに適用して前記残差変換係数を前記映像ブロックの残差画素値に変換し、
前記エントロピーコーディングユニットは、前記選択された変換を適用前に前記映像ブロックの前記残差変換係数をエントロピー復号する請求項１３に記載のデバイス。
【請求項２５】
前記デバイスは、無線通信デバイスを備える請求項１３に記載のデバイス。
【請求項２６】
前記デバイスは、集積回路デバイスを備える請求項１３に記載のデバイス。
【請求項２７】
映像コーディングデバイスにおいて実行された時点で映像ブロックをコーディングすることを前記デバイスに行わせる命令が格納されるコンピュータによって読み取り可能な媒体であって、前記命令は、
映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換において用いるための複数の変換を格納すること、
前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択すること、
前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換すること、及び
前映像ブロックの前記残差変換係数をエントロピー符号化することを前記デバイスに行わせ、前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である、コンピュータによって読み取り可能な媒体。
【請求項２８】
前記分離可能方向性変換は、各々、サイズがＮ×Ｎの列変換行列と、サイズがＮ×Ｎの行変換行列と、を含み、Ｎ×Ｎは、前記映像ブロックの次元である請求項２７に記載のコンピュータによって読み取り可能な媒体。
【請求項２９】
前記複数の変換は、離散コサイン変換（ＤＣＴ）又は整数辺をさら含み、前記命令は、
前記選択された予測モードが制限された方向性を示すときに前記映像ブロックに適用するために前記離散コサイン変換（ＤＣＴ）又は前記整数変換を選択すること、及び
前記選択された予測モードが方向性を示すときに前記映像ブロックに適用するために前記複数の前記分離可能方向性変換のうちの１つを選択することを前記デバイスに行わせる請求項２７に記載のコンピュータによって読み取り可能な媒体。
【請求項３０】
前記命令は、
一方向性予測モードと少なくとも２つの一方向性予測モードを組み合わせた多方向性予測モードとを含む予測モードの組から前記映像ブロックの前記予測モードを選択すること、
前記選択された予測モードがＤＣＴ一方向性予測モード又は実質的に直交方向を指す少なくとも２つの予測モードを組み合わせた多方向性予測モードのいずれかであるときに前記映像ブロックに適用するために前記ＤＣＴ又は前記整数変換を選択することを前記デバイスに行わせる請求項２９に記載のコンピュータによって読み取り可能な媒体。
【請求項３１】
前記選択された変換は、分離可能変換であり、前記映像ブロックは、第１の映像ブロックを備え、前記命令は、
係数走査順序を用いて前記第１の映像ブロックの前記残差変換係数を走査すること、
前記係数の少なくとも一部と関連づけられた統計値を収集すること、
前記収集された統計値に従って前記係数走査順序を調整すること、及び
少なくとも１つの後続する映像ブロックが前記第１の映像ブロックのコーディング単位内に存在するときに前記調整された係数走査順序を用いて前記少なくとも１つの後続する映像ブロックの係数を走査することを前記デバイスに行わせる請求項２７に記載のコンピュータによって読み取り可能な媒体。
【請求項３２】
前記命令は、
前記係数の前記二次元表示の前記一部内における前記位置の各々が非ゼロ係数を有する回数を追跡する前記係数の前記二次元表示の前記一部内における各位置に対応するカウント値を維持すること、及び
前記係数走査順序を調整することを前記デバイスに行わせ、前記係数位置のカウント値に基づいて降順で前記係数位置を走査する調整された係数走査順序を生成するように前記係数走査順序を調整することを備える請求項３１に記載のコンピュータによって読み取り可能な媒体。
【請求項３３】
前記命令は、
前記カウント値のうちの１つがしきいカウント値に達したときに前記収集された統計値を正規化することを前記デバイスに行わせ、前記収集された統計値を正規化することは、前記カウント値の各々をある係数分の１に減らすこと及び前記カウント値を一組の初期カウント値にリセットすることのうちの１つを備える請求項３２に記載のコンピュータによって読み取り可能な媒体。
【請求項３４】
前記命令は、前記複数の予測モードの各々に関して別々に統計値を収集すること及び前記係数走査順序を調整することを前記デバイスに行わせる請求項３１に記載のコンピュータによって読み取り可能な媒体。
【請求項３５】
前記第１の映像ブロック及び前記少なくとも１つの後続する映像ブロックは、第１のコーディング単位に属し、前記命令は、前記走査順序を第２のコーディング単位に関して再初期化することを前記デバイスに行わせる請求項３１に記載のコンピュータによって読み取り可能な媒体。
【請求項３６】
前記変換は、前記映像ブロックの残差画素値を残差変換係数に変換する際に用いるための変換であり、前記命令は、
前記選択された変換を前記映像ブロックに適用して前記映像ブロックの残差画素値を前記残差変換係数に変換すること、及び
前記選択された変換を適用後に前記映像ブロックの前記残差変換係数をエントロピー符号化することを前記デバイスに行わせる請求項２７に記載のコンピュータによって読み取り可能な媒体。
【請求項３７】
前記変換は、残差変換係数を前記映像ブロックの残差画素値に変換する際に用いるための逆変換であり、前記命令は、
前記選択された逆変換を前記映像ブロックに適用して前記残差変換係数を前記映像ブロックの残差画素値に変換すること、及び、
前記選択された変換を適用前に前記映像ブロックの前記残差変換係数をエントロピー復号することを前記デバイスに行わせる請求項２７に記載のコンピュータによって読み取り可能な媒体。
【請求項３８】
映像データを符号化するためのデバイスであって、
映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換において用いるための複数の変換を格納するための手段であって、前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である手段と、
前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択するための手段と、
前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換するための手段と、
前記映像ブロックの前記残差変換係数をエントロピーコーディングするための手段と、を備える、デバイス。
【請求項３９】
前記分離可能方向性変換は、各々、サイズがＮ×Ｎの列変換行列と、サイズがＮ×Ｎの行変換行列と、を含み、Ｎ×Ｎは、前記映像ブロックの次元である請求項３８に記載のデバイス。
【請求項４０】
前記複数の変換は、離散コサイン変換（ＤＣＴ）又は整数変換をさら含み、前記変換を選択する手段は、前記選択された予測モードが制限された方向性を示すときに前記映像ブロックに適用するために前記離散コサイン変換（ＤＣＴ）又は前記整数変換を選択し及び前記選択された予測モードが方向性を示すときに前記映像ブロックに適用するために前記複数の前記分離可能方向性変換のうちの１つを選択する請求項３８に記載のデバイス。
【請求項４１】
一方向性予測モードと少なくとも２つの一方向性予測モードを組み合わせた多方向性予測モードとを含む予測モードの組から前記映像ブロックの前記予測モードを選択するための手段をさらに備え、
前記変換を選択する手段は、前記選択された予測モードがＤＣ一方向性予測モード又は実質的に直交方向を指す少なくとも２つの予測モードを組み合わせた多方向性予測モードのいずれかであるときに前記映像ブロックに適用するために前記ＤＣＴ又は前記整数変換を選択する請求項４０に記載のデバイス。
【請求項４２】
予測モードの前記組は、一方向性予測モードと可能な二方向性予測モードの部分組とを含み、二方向性予測モードの前記部分組は、前記一方向性予測モードの各々を含む少なくとも１つの組み合わせを含む請求項４１に記載のデバイス。
【請求項４３】
前記選択された変換は、分離可能変換であり、前記映像ブロックは、第１の映像ブロックを備え、
係数走査順序を用いて前記第１の映像ブロックの前記残差変換係数を走査するための手段と、
前記係数の少なくとも一部と関連づけられた統計値を収集するための手段と、
前記収集された統計値に従って前記係数走査順序を調整するための手段と、をさらに備え、
前記係数を走査する手段は、少なくとも１つの後続する映像ブロックが前記第１の映像ブロックのコーディング単位内に存在するときに前記調整された係数走査順序を用いて前記少なくとも１つの後続する映像ブロックの係数を走査する請求項３８に記載のデバイス。
【請求項４４】
前記統計値を収集する手段は、
前記係数の前記二次元表示の前記一部内における前記位置の各々が非ゼロ係数を有する回数を追跡する前記係数の前記二次元表示の前記一部内における各位置に対応するカウント値を維持し、
前記調整する手段は、前記係数位置のカウント値に基づいて降順で前記係数位置を走査する調整された係数走査順序を生成するように前記係数走査順序を調整する請求項４３に記載のデバイス。
【請求項４５】
前記カウント値のうちの１つがしきいカウント値に達したときに前記収集された統計値を正規化するための手段をさらに備え、前記正規化する手段は、前記カウント値の各々をある係数分の１に減らすこと及び前記カウント値を一組の初期カウント値にリセットすることのうちの１つによって前記収集された統計値を正規化する請求項４４に記載のデバイス。
【請求項４６】
前記映像ブロックの前記予測モードを複数の予測モードから選択するための手段をさらに備え、前記統計値を収集する手段及び前記調整する手段は、前記複数の予測モードの各々に関して別々に統計値を収集し及び前記係数走査順序を調整する請求項４３に記載のデバイス。
【請求項４７】
前記第１の映像ブロック及び前記少なくとも１つの後続する映像ブロックは、第１のコーディング単位に属し、前記調整する手段は、前記走査順序を第２のコーディング単位に関して再初期化する請求項４３に記載のデバイス。
【請求項４８】
前記変換は、前記映像ブロックの残差画素値を残差変換係数に変換する際に用いるための変換であり、
前記適用する手段は、前記選択された変換を前記映像ブロックに適用して前記映像ブロックの残差画素値を前記残差変換係数に変換し、
前記エントロピーコーディングする手段は、前記選択された変換を適用後に前記映像ブロックの前記残差変換係数をエントロピー符号化する請求項３８に記載のデバイス。
【請求項４９】
前記変換は、残差変換係数を前記映像ブロックの残差画素値に変換する際に用いるための逆変換であり、
前記適用する手段は、前記選択された逆変換を前記映像ブロックに適用して前記残差変換係数を前記映像ブロックの残差画素値に変換し、
前記エントロピーコーディングする手段は、前記選択された変換を適用前に前記映像ブロックの前記残差変換係数をエントロピー復号する請求項３８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本特許出願は、参照されることによってその全内容がここに組み入れられている、米国仮特許出願番号６０／９４４，４７０（出願日：２００７年６月１５日）及び米国仮特許出願番号６０／９７９，７６２（出願日：２００７年１０月１２日）の利益を主張するものである。
【０００２】
この開示は、デジタル映像コーディングに関するものである。この開示は、より具体的には、映像ブロックの係数のエントロピーコーディングに関するものである。
【背景技術】
【０００３】
デジタル映像能力は、デジタルテレビ、デジタル直接放送システム、無線通信デバイス、例えば無線電話ハンドセット、無線放送システム、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲーム装置、ビデオゲームコンソール、等を含む広範なデバイス内に組み込むことができる。デジタル映像デバイスは、デジタル映像をより効率的に送信及び受信するための映像圧縮技法、例えばＭＰＥＧ−２、ＭＰＥＧ−４、又はＨ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）、を実装する。映像圧縮技法は、空間予測及び時間予測を行って映像シーケンスに固有の冗長性を低減させるか又は除去する。
【０００４】
映像圧縮は、一般的には、空間予測及び／又は時間予測を含む。特に、イントラコーディングは、空間予測に依存し、映像フレーム、映像フレームのスライス、等を備えることができる所定のコーディングされた単位内の映像ブロック間における空間的冗長性を低減させる又は除去する。対照的に、インターコーディングは、時間予測に依存し、映像シーケンスの連続するコーディングされた単位の映像ブロック間における時間的冗長性を低減させる又は除去する。イントラコーディングに関しては、映像符号器は、空間予測を行い、同じコーディングされた単位内のその他のデータに基づいてデータを圧縮する。インターコーディングに関しては、映像符号器は、２つ以上の隣接するコーディングされた単位のマッチする映像ブロックの動きを追跡するために動き推定及び動き補償を行う。
【０００５】
空間予測又は時間予測後は、予測プロセス中に生成された予測映像ブロックをコーディング中である原映像ブロックから減じることによって残差ブロックが生成される。従って、残差ブロックは、予測ブロックとコーディング中の現在のブロックとの間の差分を示す。映像符号器は、変換プロセス、量子化プロセス及びエントロピーコーディングプロセスを適用して残差ブロックの通信と関連づけられたビットレートをさらに引き下げることができる。変換技法は、一組の画素値を、周波数領域内におけるこれらの画素値のエネルギーを表す変換係数に変えることができる。変換係数に量子化が適用され、一般的には、所定の係数と関連づけられたビット数を制限するプロセスを含む。エントロピー符号化前に、映像符号器は、量子化された係数ブロックを一次元の係数ベクトル内まで走査する。映像符号器は、残差データをさらに圧縮するように量子化された変換係数のベクトルをエントロピー符号化する。
【０００６】
映像復号器は、係数を取り出すための逆エントロピーコーディング動作を行うことができる。さらに、受信された一次元の係数ベクトルから二次元ブロックを形成するための逆走査を復号器において行うこともできる。次に、映像復号器は、これらの係数を逆量子化及び逆変換して再構築された残差ブロックを得る。次に、映像復号器は、予測情報及び動き情報に基づいて予測映像ブロックを復号する。次に、映像復号器は、再構築された映像ブロックを生成するために及び復号された映像情報シーケンスを生成するために予測映像ブロックを対応する残差ブロックに加える。
【発明の概要】
【０００７】
この開示は、映像ブロックの残差画素値（残差ブロックと時々呼ばれる）を変換するための技法について説明する。特に、複数の異なる変換が維持され、前記映像ブロックの予測モードに基づいて選択的に前記残差ブロックに適用される。方向性変換は、例えば、所定の予測モードの残差ブロックに関するより良いエネルギー圧縮（ｃｏｍｐａｃｔｉｏｎ）を提供するために各々の予測モードごとにトレーニングすることができる。この開示により、前記複数の方向性変換の少なくとも一部は、分離可能方向性変換（ｓｅｐａｒａｂｌｅ  ｄｉｒｅｃｔｉｏｎａｌ  ｔｒａｎｓｆｏｒｍ）である。前記分離可能方向性変換の各々は、行変換行列と、列変換行列と、を含むことができる。前記行及び列変換行列は、前記変換行列の各々が適用される残差ブロックと同じ次元であることができる。４画素×４画素ブロックの場合は、前記行及び列行列は、４×４次元を有する。分離可能方向性変換を用いることは、分離不能方向性変換（ｉｎｓｅｐａｒａｂｌｅ  ｄｉｒｅｃｔｉｏｎａｌ  ｔｒａｎｓｆｏｒｍ）を使用することよりも計算上の複雑さが低く格納上の要求が小さいという利益を提供する。
【０００８】
しかしながら、分離可能方向性変換は、分離不能方向性変換の使用と同様に残差ブロックにおける方向性をキャプチャできないことがある。従って、生成された残差変換係数ブロックは、前記方向性の一部を保持することができる。従って、前記残差変換係数の二次元表示を係数の一次元係数ベクトル内まで走査するために固定された走査順序を適用することは、前記係数ベクトルの始めに向かって非ゼロ係数を効率的に圧縮することができない。前記走査順序は、この開示の他の側面により一次元係数ベクトルの始めに向かって前記係数ブロックの前記非ゼロ係数をより効率的に圧縮するように同じ予測モードを用いて以前に符号化された映像ブロックの係数統計値に基づいて調整することができる。
【０００９】
一側面においては、映像データをコーディングする方法は、映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換の際に用いるための複数の変換を格納することを備える。前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である。前記方法は、同じく、前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択することと、前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの残差変換係数との間で変換すること、とを含む。前記方法は、前記映像ブロックの前記残差変換係数をエントロピーコーディングすることをさらに含む。
【００１０】
他の側面においては、映像データをコーディングするデバイスは、映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間で変換する際に用いるための複数の変換を格納し、前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択し、及び前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換する変換ユニットを備える。前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である。前記デバイスは、前記映像ブロックの前記残差変換係数をエントロピー符号化するエントロピーコーディングユニットも含む。
【００１１】
他の側面により、コンピュータによって読み取り可能な媒体は、映像コーディングデバイスにおいて実行された時点で映像ブロックをコーディングすることを前記デバイスに行わせる命令を備える。前記命令は、映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換の際に用いるための複数の変換を格納すること、前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択すること、及び前記選択された変換を前記映像ブロックに適用して前記映像ブロックの残差画素値と前記映像ブロックの前記残差変換係数との間で変換することを前記デバイスに行わせる。前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である。これらの命令は、前記映像ブロックの前記残差変換係数をエントロピー符号化することを前記デバイスにさらに行わせる。
【００１２】
他の側面においては、映像データをコーディングするデバイスは、映像ブロックの残差画素値と前記映像ブロックの残差変換係数との間での変換の際に用いるための複数の変換を格納するための手段を備える。前記複数の変換の各々は、少なくとも１つの予測モードと関連づけられ、前記複数の変換の少なくとも一部は、分離可能方向性変換である。前記デバイスは、前記映像ブロックの予測モードに基づいて前記映像ブロックに関する前記複数の変換のうちの１つを選択するための手段と、前記選択された変換を前記映像ブロックに適用して前記映像ブロックの前記残差画素値と前記映像ブロックの前記残差変換係数との間で変換するための手段と、をさらに備える。前記デバイスは、前記映像ブロックの前記残差変換係数をエントロピーコーディングするための手段をさらに含む。
【００１３】
この開示において説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はそのいずれかの組み合わせにおいて実装することができる。ソフトウェア内に実装される場合は、前記ソフトウェアは、プロセッサにおいて実行することができ、前記プロセッサは、１つ以上のプロセッサ、例えば、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はデジタル信号プロセッサ（ＤＳＰ）、又はその他の同等の集積回路又は個別論理回路、を意味することができる。前記技法を実行するための命令を備えるソフトウェアは、最初にコンピュータによって読み取り可能な媒体内に格納し、プロセッサによってローディング及び実行することができる。
【００１４】
従って、この開示は、この開示において説明される様々な技法のうちのいずれかを実行することをプロセッサに行わせるための命令を備えるコンピュータによって読み取り可能な媒体も企図する。いくつの場合においては、前記コンピュータによって読み取り可能な媒体は、製造者に対して販売すること及び／又はデバイスにおいて用いることができるコンピュータプログラム製品の一部を成すことができる。前記コンピュータプログラム製品は、コンピュータによって読み取り可能な媒体を含むことができ、幾つかの場合においてはパッケージング材料を含むこともできる。
【００１５】
この開示の１つ以上の側面の詳細が添付図面及び以下の説明において示される。この開示において説明される技法のその他の特徴、目的、及び利点が、以下の説明と図面から、及び請求項から明確になるであろう。
【図面の簡単な説明】
【００１６】
【図１】この開示において説明されるコーディング技法を実行する映像符号化及び復号システムを示すブロック図である。
【図２】図１の映像符号器の例をさらに詳細に示すブロック図である。
【図３】図１の映像復号器の例をさらに詳細に示すブロック図である。
【図４】この開示に一致する走査順序を調整する仮説例を示す概念図である。
【図５】変換係数の走査順序を適応的に調整するように構成されたコーディングデバイスの動作例を示した流れ図である。
【図６】映像ブロックに関するヘッダ情報を符号化するように構成された符号化ユニットの動作例を示す流れ図である。
【図７】情報を符号化及び復号するためのコーディングコンテキスト選択例を示す流れ図である。
【図８】映像ブロックのヘッダ情報を復号するように構成された復号ユニットの動作例を示す流れ図である。
【発明を実施するための形態】
【００１７】
図１は、この開示において説明されるコーディング技法を実行する映像符号化及び復号システム１０を示すブロック図である。図１に示されるように、システム１０は、符号化された映像データを通信チャネル１６を介して送信先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２は、送信先デバイス１４への送信のためのコーディングされた映像データを生成する。ソースデバイス１２は、映像ソース１８と、映像符号器２０と、送信機２２と、を含むことができる。ソースデバイス１２の映像ソース１８は、映像キャプチャデバイス、例えばビデオカメラ、以前にキャプチャされた映像が入った映像アーカイブ、又は映像コンテンツプロバイダからの映像フィードを含むことができる。さらなる代替として、映像ソース１８は、コンピュータグラフィックスに基づくデータをソース映像、又はライブ映像とコンピュータによって生成された映像の組み合わせとして生成することができる。幾つかの場合においては、ソースデバイス１２は、いわゆるカメラフォン又はビデオフォンであることができ、この場合は、映像ソース１８は、ビデオカメラであることができる。各場合において、キャプチャされた、予めキャプチャされた、又はコンピュータによって生成された映像は、ソースデバイス１２から送信機２２及び通信チャネル１６を介して送信先デバイス１４に送信するために映像符号器２０によって符号化することができる。
【００１８】
映像符号器２０は、映像ソース１８から映像データを受信する。映像ソース１８から受信された映像データは、一連の映像フレームであることができる。映像符号器２０は、一連のフレームをコーディング単位に分割し、これらのコーディング単位を処理して一連の映像フレームを符号化する。コーディング単位は、例えば、フレーム全体又はフレームの一部分（すなわちスライス）であることができる。従って、幾つかの場合においては、フレームは、スライスに分割することができる。映像符号器２０は、映像データを符号化するために各コーディング単位を画素のブロック（ここにおいては映像ブロック又はブロックと呼ばれる）に分割し、個々のコーディング単位内の映像ブロックに関して作業をする。従って、コーディング単位（例えば、フレーム又はスライス）は、複数の映像ブロックを含むことができる。換言すると、映像シーケンスは、複数のフレームを含むことができ、フレームは、複数のスライスを含むことができ、スライスは、複数の映像ブロックを含むことができる。
【００１９】
映像ブロックは、固定サイズ又は可変サイズを有することができ、規定されたコーディング基準に従ってサイズが異なることができる。一例として、国際電気通信連合標準化セクター（ＩＴＵ−Ｔ）Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）（以後“Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ１０  ＡＶＣ”基準）は、様々なブロックサイズ、例えばルマ成分に関しては１６×１６、８×８、又は４×４、クロマ成分に関しては８×８におけるイントラ予測、様々なブロックサイズ、例えばルマ成分に関しては１６×１６、１６×８、８×１６、８×８、８×４、４×８、及び４×４及びクロマ成分に関しては対応するスケーリングされたサイズ、におけるインター予測をサポートする。例えば、Ｈ．２６４においては、１６×１６画素の各映像ブロックは、マクロブロック（ＭＢ）としばしば呼ばれ、より小さいサイズのサブブロックに細分割してサブブロックにおいて予測することができる。一般的には、ＭＢ及び様々なサブブロックは、映像ブロックとみなすことができる。従って、ＭＢは、映像ブロックであるとみなすことができ、パーティショニング又はサブパーティショニングされた場合は、ＭＢ自体が映像ブロックの組を定義するとみなすことができる。
【００２０】
映像ブロックの各々に関して、映像符号器２０は、ブロックに関するブロックタイプを選択する。ブロックタイプは、ブロックがインター予測又はイントラ予測のいずれを用いて予測されるか又はブロックのパーティションサイズを示すことができる。例えば、Ｈ．２６４／ＭＰＥＧ４  Ｐａｒｔ１０  ＡＶＣ基準は、
インター１６×１６と、インター１６×８と、インター８×１６と、インター８×８と、インター８×４と、インター４×８と、インター４×４と、イントラ１６×１６と、イントラ８×８と、イントラ４×４と、を含む幾つかのインター及びイントラ予測ブロックタイプをサポートする。以下において詳細に説明されるように、映像符号器２０は、映像ブロックの各々に関してブロックタイプのうちの１つを選択することができる。
【００２１】
映像符号器２０は、映像ブロックの各々に関する予測モードも選択する。イントラコーディングされた映像ブロックの場合は、予測モードは、１つ以上の以前に符号化された映像ブロックを用いて現在の映像ブロックを予測する方法を決定することができる。例えば、Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ１０  ＡＶＣ基準においては、映像符号器２０は、各イントラ４×４ブロックに関して、９つの可能な一方向予測モード、すなわち、垂直予測モード、水平予測モード、ＤＣ予測モード、対角左下方向予測モード、対角右下方向予測モード、垂直−右方向予測モード、水平−下方向予測モード、垂直−左方向予測モード及び水平−上方向予測モード、のうちの１つを選択することができる。各イントラ８×８ブロックを予測するために同様の予測モードが用いられる。イントラ１６×１６ブロックの場合は、映像符号器２０は、４つの可能な一方向性モード、すなわち、垂直予測モード、水平予測モード、ＤＣ予測モード、及び平面予測モード、のうちの１つを選択することができる。幾つかの例においては、映像符号器２０は、一方向性予測モードだけでなくこれらの一方向性予測モードの組み合わせを定義する１つ以上の多方向性予測モードも含む予測モードの組から予測モードを選択することができる。例えば、１つ以上の多方向性予測モードは、以下においてさらに詳細に説明されるように２つの一方向性予測モードを組み合わせた二方向性予測モードであることができる。
【００２２】
映像ブロックに関する予測モードを選択後は、映像符号器２０は、選択された予測モードを用いて予測された映像ブロックを生成する。予測された映像ブロックが原映像ブロックから減じられて残差ブロックが形成される。残差ブロックは、原映像ブロックの画素値と生成された予測ブロックの画素値との間の差分を定量化する一組の画素差分値を含む。残差ブロックは、二次元ブロックフォーマット（例えば、画素差分値から成る二次元行列又はアレイ）において表すことができる。
【００２３】
残差ブロックの生成に引き続き、映像符号器２０は、ブロックを符号化する前に残差ブロックに対して幾つかのその他の動作を行うことができる。映像符号器２０は、変換、例えば整数変換、ＤＣＴ変換、方向性変換、又はウェーブレット変換を画素値の残差ブロックに適用して変換係数のブロックを生成することができる。次に、映像符号器２０は、残差画素値を変換係数に変換する（残差変換係数とも呼ばれる）。残差変換係数は、変換ブロック又は係数ブロックと呼ぶことができる。変換又は係数ブロックは、分離不能変換を適用時には係数の一次元表示であり、分離可能方向性変換を適用時には係数の二次元表示であることができる。分離不能変換は、分離不能方向性変換を含むことができる。分離可能変換は、分離可能方向性変換と、ＤＣＴ変換と、整数変換と、ウェーブレット変換と、を含むことができる。
【００２４】
変換後は、映像符号器２０は、量子化を行って量子化された変換係数を生成する（量子化された係数又は量子化された残差係数とも呼ばれる）。この場合も、量子化された係数は、一次元ベクトルフォーマット又は二次元ブロックフォーマットで表示することができる。量子化は、一般的には、可能なことに係数を表すために用いられるデータ量を低減させるために係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部又は全部と関連づけられたビット深さを縮小することができる。ここにおいて用いられる“係数”という用語は、変換係数、量子化された係数又はその他の種類の係数を表すことができる。この開示の技法は、幾つかの例においては、変換係数及び量子化された変換係数と同様に残差画素値にも適用できる。しかしながら、例示することを目的として、この開示の技法は、量子化された変換係数に関して説明される。
【００２５】
分離可能変換が用いられ及び係数ブロックが二次元ブロックフォーマットで表されるときには、映像符号器２０は、二次元フォーマットから一次元フォーマットまで係数を走査することができる。換言すると、映像符号器２０は、二次元ブロックから係数を走査して係数をシリアル化（ｓｅｒｉａｌｉｚｅ）して係数の一次元ベクトル内まで走査することができる。この開示の側面のうちの１つにより、映像符号器２０は、収集された統計値に基づいて係数ブロックを一次元に変換するために用いられる走査順序を調整することができる。統計値は、二次元ブロックの各位置における所定の係数値がゼロ又は非ゼロである尤度の表示を備えることができ及び、例えば、二次元ブロックの係数位置の各々と関連づけられたカウント、確率又はその他の統計メトリックを備えることができる。幾つかの例においては、統計値は、ブロックの係数位置の部分組に関してしか収集できない。例えば特定のブロック数後に走査順序を評価時には、走査順序は、非ゼロ係数を有する確率がより高いと決定されたブロック内の係数位置が、非ゼロ係数を有する確率がより低いと決定されたブロック内の係数位置の前に走査されるような形で変更することができる。この方法により、非ゼロ係数は一次元係数ベクトルの始めに及びゼロ値係数は一次元係数ベクトルの終わりにより効率的にグループ分けするように初期走査順序を適応させることができる。これは、エントロピーコーディングに費やされるビット数を低減させることができ、その理由は、一次元係数ベクトルの始めのほうが非ゼロ係数間にはより短い連続的ゼロ群（ｒｕｎ）が存在し、一次元係数ベクトルの終わりには１つのより長い連続的ゼロ群が存在するためである。
【００２６】
係数走査に引き続き、映像符号器２０は、様々なエントロピーコーディング方法、例えば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、ラン長コーディング、等、のうちのいずれかを用いてコーディング単位の映像ブロックの各々を符号化する。ソースデバイス１２は、送信機２２及びチャネル１６を介して符号化された映像データを送信先デバイス１４に送信する。通信チャネル１６は、無線又は有線の通信媒体、例えば、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的送信ライン、又は無線媒体と有線媒体の組み合わせを備えることができる。通信チャネル１６は、パケットに基づくネットワーク、例えばローカルエリアネットワーク、広域ネットワーク、又はインターネット等のグローバルネットワーク、の一部を成すことができる。通信チャネル１６は、一般的には、ソースデバイス１２から送信先デバイス１４に符号化された映像データを送信するためのあらゆる適切な通信媒体、又は異なる通信媒体の集合を表す。
【００２７】
送信先デバイス１４は、受信機２４と、映像復号器２６と、表示デバイス２８と、を含むことができる。受信機２４は、符号化された映像ビットストリームをソースデバイス１２からチャネル１６を介して受信する。映像復号器２６は、エントロピー復号を適用して符号化された映像ビットストリームを復号し、コーディングされた単位のコーディングされた映像ブロックのヘッダ情報及び量子化された残差係数を入手する。上述されるように、ソースデバイス１２によって符号化された量子化された残差係数は、一次元ベクトルとして符号化される。従って、映像復号器２６は、コーディングされた映像ブロックの量子化された残差係数を走査して一次元の係数ベクトルを量子化された残差係数の二次元ブロックに変換する。映像符号器２０と同様に、映像復号器２６は、映像ブロックにおける所定の係数位置がゼロ又は非ゼロである尤度を示す統計値を収集し、それによって符号化プロセスにおいて用いられたのと同じ方法で走査順序を調整することができる。従って、シリアル化された量子化された変換係数の一次元ベクトル表示を変更して量子化された変換係数の二次元ブロックに戻すために可逆的（ｒｅｃｉｐｒｏｃａｌ）適応型走査順序を映像復号器２６によって適用することができる。
【００２８】
映像復号器２６は、復号されたヘッダ情報及び復号された残差情報を用いてコーディング単位のブロックの各々を再構築する。特に、映像復号器２６は、現在の映像ブロックに関する予測映像ブロックを生成し、その予測ブロックを対応する残差映像ブロックと結合して映像ブロックの各々を再構築することができる。送信先デバイス１４は、再構築された映像ブロックを、表示デバイス２８を介してユーザーに表示することができる。表示デバイス２８は、様々な表示装置、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、発光ダイオード（ＬＥＤ）ディスプレイ、有機ＬＥＤディスプレイ、又は他の型の表示ユニット、のうちのいずれかを備えることができる。
【００２９】
幾つかの場合においては、ソースデバイス１２及び送信先デバイス１４は、実質的に対称的に動作することができる。例えば、ソースデバイス１２及び送信先デバイス１４は、各々が、映像符号化及び復号構成要素を含むことができる。従って、システム１０は、例えば映像ストリーミング、映像ブロードキャスト、又はテレビ電話用のデバイス１２、１４間における一方向又は二方向の映像送信をサポートすることができる。映像符号化及び映像復号構成要素を含むデバイスは、共通の符号化、アーカイブ及び再生デバイス、例えばデジタルビデオレコーダー（ＤＶＲ）、の一部を成すことも可能である。
【００３０】
映像符号器２０及び映像復号器２６は、様々な映像圧縮基準、例えば、ムービング・ピクチャ・エキスパーツ・グループ（ＭＰＥＧ）によってＭＰＥＧ−１、ＭＰＥＧ−２及びＭＰＥＧ−４において定義される基準、ＩＴＵ−Ｔ  Ｈ．２６３基準、米国映画テレビ技術者協会（ＳＭＰＴＥ）４２１Ｍ映像ＣＯＤＥＣ規格（共通して“ＶＣ−１”と呼ばれる）、中国オーディオ及びビデオコーディング規格作業部会によって定義された規格（一般的には“ＡＶＳ”と呼ばれる）、及び規格機関によって定義されるか又は独占基準等の組織によって開発されたその他の映像コーディング基準、のうちのいずれかに従って動作することができる。図１には示されていないが、幾つかの側面においては、映像符号器２０及び映像復号器２６は、各々が、音声符号器及び復号器と一体化することができ、共通のデータストリーム又は別個のデータストリーム内の音声と映像の両方の符号化を取り扱うための適切なＭＵＸ−ＤＥＭＵＸユニット、又はその他のハードウェアとソフトウェアを含むことができる。この方法により、ソースデバイス１２及び送信先デバイス１４は、マルチメディアデータに関して機能することができる。該当する場合は、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザーデータグラムプロトコル（ＵＤＰ）等のその他のプロトコル、に準拠することができる。
【００３１】
幾つかの側面においては、映像ブロードキャストに関して、この開示において説明される技法は、２００７年７月に技術基準ＴＩＡ−１０９９として発行された順方向リンク専用（ＦＬＯ）エアインタフェース仕様“Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast”（地上移動マルチメディアマルチキャストに関する順方向リンク専用エアインタフェース仕様）（“ＦＬＯ仕様”）を用いる地上移動マルチメディアマルチキャスト（ＴＭ３）システムにおいてリアルタイムマルチメディアサービスを配送するためのエンハンストＨ．２６４映像コーディングに適用することができる。すなわち、通信チャネル１６は、ＦＬＯ仕様、等に従って無線映像情報をブロードキャストするために用いられる無線情報チャネルを備えることができる。ＦＬＯ仕様は、ビットストリーム構文及び意味論を定義する例と、ＦＬＯエアインタフェースに適する復号プロセスと、を含む。
【００３２】
代替として、映像は、その他の基準、例えばＤＶＢ−Ｈ（デジタル映像放送−ハンドヘルド）、ＩＳＤＢ−Ｔ（総合サービスデジタル放送−地上）、又はＤＭＢ（デジタルメディア放送）、に準拠してブロードキャストすることができる。従って、ソースデバイス１２は、モバイル無線端末、映像ストリーミングサーバー、又は映像ブロードキャストサーバーであることができる。しかしながら、この開示において説明される技法は、特定のタイプのブロードキャスト、マルチキャスト、又はポイント・ツー・ポイントシステムには限定されない。ブロードキャストの場合は、ソースデバイス１２は、複数の送信先デバイスに幾つかのチャネルの映像データをブロードキャストすることができ、これらの送信先デバイスの各々は、図１の送信先デバイス１４と同様であることができる。従って、図１には単一の送信先デバイス１４が示されるが、ブロードキャスト用途に関しては、ソースデバイス１２は、典型的には、数多くの送信先デバイスに同時に映像コンテンツをブロードキャストする。
【００３３】
その他の例においては、送信機２２、通信チャネル１６、及び受信機２４は、あらゆる有線又は無線の通信システムに従って通信のために構成することができ、イーサネット（登録商標）、電話（例えば、ＰＯＴＳ）、ケーブル、電線、光ファイバーシステム、及び／又は符号分割多元接続（ＣＤＭＡ又はＣＤＭＡ２０００）通信システム、周波数分割多元接続（ＦＤＭＡ）システム、直交周波数分割多元接続（ＯＦＤＭ）システム、時間分割多元接続（ＴＤＭＡ）システム、例えばＧＳＭ（グローバル移動通信システム）、ＧＰＲＳ（汎用パケット無線サービス）、又はＥＤＧＥ（エンハンストデータＧＳＭ環境）、ＴＥＴＲＡ（地上基盤無線）携帯電話システム、広帯域符号分割多元接続（ＷＣＤＭＡ）システム、高データレート１×ＥＶ−ＤＯ（Ｆｉｒｓｔ  ｇｅｎｅｒａｔｉｏｎ  Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｎｌｙ）又は１×ＥＶ−ＤＯゴールドマルチキャストシステム、ＩＥＥＥ８０２．１８システム、ＭｅｄｉａＦＬＯ（登録商標）システム、ＤＭＢシステム、ＤＶＢ−Ｈシステム、又は２つ以上のデバイス間における他のデータ通信方式のうちの１つを備える無線システムのうちの１つ以上を含む。
【００３４】
映像符号器２０及び映像復号器２６は、各々、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそのいずれかの組み合わせとして実装することができる。映像符号器２０及び映像復号器２６の各々は、１つ以上の符号器又は復号器内に含めることができ、これらのいずれも、各々のモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバー、等における結合された符号器／復号器（ＣＯＤＥＣ）の一部として統合することができる。さらに、ソースデバイス１２及び送信先デバイス１４は、各々、符号化された映像を適宜送信及び受信するための適切な変調構成要素と、復調構成要素と、周波数変換構成要素と、フィルタリング構成要素と、増幅器構成要素と、を含むことができ、無線通信をサポートする上で十分な無線周波数（ＲＦ）無線構成要素とアンテナとを含む。しかしながら、例示を容易にするために、該構成要素は、図１におけるソースデバイス１２の送信機２２及び送信先デバイス１４の受信機２４として描かれる。
【００３５】
図２は、図１の映像符号器例２０をさらに詳細に示すブロック図である。映像符号器２０は、映像フレーム内におけるブロックのイントラコーディング及びインターコーディングを行う。イントラコーディングは、空間予測に依存し、所定の映像コーディング単位、例えばフレーム又はスライス、内の映像データにおける空間冗長性を低減させるか又は除去する。イントラコーディングの場合は、映像符号器２０は、コーディング中のブロックと同じコーディング単位内の１つ以上の以前に符号化されたブロックに基づいて空間予測ブロックを形成する。インターコーディングの場合は、映像符号器２０は、２つ以上の隣接するフレーム間における非常によくマッチする映像ブロックの動きを追跡するための動き推定を行う。
【００３６】
図２の例においては、映像符号器２０は、ブロックパーティションユニット３０と、予測ユニット３２と、フレームストア３４と、変換ユニット３８と、量子化ユニット４０と、係数走査ユニット４１と、逆量子化ユニット４２と、逆変換ユニット４４と、エントロピー符号化ユニット４６と、を含む。映像符号器２０は、加算器４８Ａ及び４８Ｂ（“加算器４８”）も含む。インループデブロッキングフィルタ（示されていない）を再構築された映像ブロックに適用してブロッキングアーティファクトを減少させるか又は除去することができる。図２において異なる特徴をユニットとして描くことは、例示されるデバイスの異なる機能上の側面を強調することが意図されており、該ユニットを別個のハードウェア又はソフトウェア構成要素として実現させなければならないことは必ずしも意味しない。むしろ、１つ以上のユニットと関連づけられた機能を共通の又は別個のハードウェア又はソフトウェア構成要素内に組み入れることができる。
【００３７】
ブロックパーティションユニット３０は、映像情報（図２において“映像入”のラベルが付された映像情報）を、例えば映像フレームシーケンスの形で映像ソース１８（図１）から受信する。ブロックパーティションユニット３０は、映像フレームの各々を、複数の映像ブロックを含むコーディング単位に分割する。上述されるように、コーディング単位は、フレーム全体又はフレームの一部分（例えば、フレームのスライス）であることができる。一例においては、ブロックパーティションユニット３０は、最初に、コーディング単位の各々を、１６×１６のパーティションサイズを有する複数の映像ブロックに（すなわち、マクロブロックに）分割することができる。ブロックパーティションユニット３０は、１６×１６映像ブロックの各々を８×８映像ブロック又は４×４映像ブロック等のより小さいブロックに細分することができる。
【００３８】
映像符号器２０は、コーディング単位の映像ブロックのブロックタイプに基づいてこれらの映像ブロックの各々に関するイントラコーディング又はインターコーディングをブロックごとに行う。予測ユニット３２は、映像ブロックの選択されたパーティションサイズを示し及びそのブロックがインター予測又はイントラ予測のいずれを用いて予測されるかを示すことができるブロックタイプを映像ブロックの各々に割り当てる。インター予測の場合は、予測ユニット３２は、動きベクトルも決定する。イントラ予測の場合は、予測ユニット３２は、予測ブロックを生成するために用いる予測モードも決定する。
【００３９】
予測ユニット３２は、予測ブロックを生成する。予測ブロックは、現在の映像ブロックの予測されたバージョンであることができる。現在の映像ブロックとは、現在コーディング中の映像ブロックを意味する。インター予測の場合は、例えばインターブロックタイプがブロックに割り当てられたときには、予測ユニット３２は、現在の映像ブロックのインターコーディングに関する時間的予測を行うことができる。予測ユニット３２は、例えば、現在の映像ブロックを１つ以上の隣接する映像フレーム内のブロックと比較し、隣接フレーム内において現在の映像ブロックと最もよくマッチするブロック、例えば、隣接するフレーム内において最小のＭＳＥ、ＳＳＤ、ＳＡＤ、又はその他の差分メトリックを有するブロック、を識別する。予測ユニット３２は、隣接フレーム内の識別されたブロックを予測ブロックとして選択する。
【００４０】
イントラ予測の場合、すなわち、イントラブロックタイプがブロックに割り当てられたときには、予測ユニット３２は、共通のコーディング単位（例えば、フレーム又はスライス）内の１つ以上の以前に符号化された近隣ブロックに基づいて予測ブロックを生成することができる。予測ユニット３２は、例えば、空間予測を行い、現在のフレーム内の１つ以上の以前に符号化された近隣ブロックを用いて補間を行うことによって予測ブロックを生成することができる。現在のフレーム内の１つ以上の隣接ブロックは、例えば、フレームストア３４から取り出すことができ、フレームストア３４は、１つ以上の以前に符号化されたフレーム又はブロックを格納するためのあらゆるタイプのメモリ又はデータ格納装置を備えることができる。
【００４１】
予測ユニット３２は、一組の予測モードのうちの１つに従って補間を行うことができる。上述されるように、予測モードの組は、一方向性予測モード及び／又は多方向性予測モードを含むことができる。多方向性予測モードは、一方向性予測モードの組み合わせを定義する。一例においては、予測モードの組は、Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ  １０  ＡＶＣ基準おいて定義される一方向性予測モードと、２つの一方向性予測モードの様々な組み合わせを定義する二方向性予測モードと、を含むことができる。
【００４２】
例えばイントラ４×４ブロックタイプの場合は、予測モードの組は、Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ  １０  ＡＶＣ基準において定義される９つの一方向性予測モードと、一方向性予測モードの可能な組み合わせの部分組と、を含むことができる。従って、映像符号器２０は、一方向性予測モードの３６のすべての可能な組み合わせをサポートする代わりに、一方向性予測モードの可能な組み合わせの一部のみをサポートすることができる。そうすることは、多大なコーディングの劣化には結び付かない。イントラ予測モードの組の一例は、合計１８のイントラ予測モードを含み、以下に提供される。
【００４３】
モード０：  垂直
モード１：  水平
モード２：  ＤＣ
モード３：  対角左／下方向
モード４：  対角右／下方向
モード５：  垂直右方向
モード６：  水平下方向
モード７：  垂直左方向
モード８：  水平上方向
モード９：  垂直＋水平（モード０＋モード１）
モード１０：  ＤＣ＋垂直（モード２＋モード０）
モード１１：  ＤＣ＋水平（モード２＋モード１）
モード１２：  対角左／下方向＋水平（モード３＋モード１）
モード１３：  対角右／下方向＋垂直（モード４＋モード０）
モード１４：  垂直右方向＋水平（モード５＋モード１）
モード１５：  水平下方向＋垂直（モード６＋モード０）
モード１６：  垂直左方向＋水平（モード７＋モード１）
モード１７：  水平上方向＋垂直（モード８＋モード０）
上記の組例において、モード０乃至８は、一方向性予測モードであり、モード９乃至１７は、二方向性予測モードである。特に、モード０乃至８は、Ｈ．２６４／ＭＰＥＧ−４Ｐａｒｔ１０  ＡＶＣ基準において定義されるイントラ４×４予測モードである。モード９乃至１７は、可能な二方向予測モードの部分組である。提供される例における可能な二方向性予測モードの部分組は、各一方向性予測モードを組み入れた少なくとも１つの組み合わせを含む。各二方向性予測モードは、ＤＣ予測モード（例えば、モード１０及び１１）を含む二方向性予測モードに加えて、平行でなくそして幾つかの場合には実質的に互いに直交である補間方向を有する一方向性予測モードを組み合わせる。換言すると、二方向性予測モードの部分組は、一般的には“垂直”カテゴリからの予測モードを“水平”カテゴリからの予測モードと組み合わせる二方向性予測モードを含む。該二方向性予測モードは、イントラ予測プロセスが遠く離れている位置からの利用可能な予測画素を組み合わせそれによって現在の映像ブロック内のより多くの画素位置に関する予測品質を向上させるのを可能にする。
【００４４】
上述される予測モードの組は、例示を目的として説明されるものである。予測モードの組は、それよりも多い又は少ない予測モードを含むことができる。例えば、予測モードの組は、それよりも多い又は少ない二方向性予測モードを含むこと又は二方向性予測モードを含まないことができる。その他の例においては、予測モードの組は、一方向性予測モードの部分組のみを含むことができる。さらに、予測モードの組は、二方向性予測モードに加えて又はその代わりに３つ以上の一方向性予測モードを組み合わせた多方向性予測モードを含むことができる。さらに、上記においてはイントラ４×４ブロックタイプを基準にするが、この開示の技法は、その他のイントラブロックタイプ（例えば、イントラ８×８ブロックタイプ又はイントラ１６×１６ブロックタイプ）又はインターブロックタイプに対しても適用可能である。
【００４５】
複数の予測モードのうちのいずれの予測モードを特定のブロックに関して選択するかを決定するために、予測ユニット３２は、可能な予測モードの組の予測モードの各々に関するコーディングコスト、例えばラグランジュコスト、を推定し、最小のコーディングコストを有する予測モードを選択することができる。その他の例においては、予測ユニット３２は、可能な予測モードの組の一部のみに関するコーディングコストを推定することができる。例えば、予測モード３２は、１つ以上の近隣映像ブロックに関して選択された予測モードに基づいて可能な予測モードの組の予測モードの一部を選択することができる。予測ユニット３２は、選択された予測モードを用いて予測ブロックを生成する。
【００４６】
予測ブロックを生成後は、映像符号器２０は、加算器４８Ａにおいて予測ユニット３２によって生成された予測ブロックを現在の映像ブロックから減じることによって残差ブロックを生成する。残差ブロックは、現在の映像ブロックの画素値と予測ブロックの画素値との間の差分を定量化する一組の画素差分値を含む。残差ブロックは、二次元ブロックフォーマット（例えば、画素値の二次元行列又はアレイ）で表すことができる。換言すると、残差ブロックは、画素値を二次元表示したものである。
【００４７】
変換ユニット３８は、残差ブロックに変換を適用して残差変換係数を生成する。変換ユニット３８は、例えば、ＤＣＴ、整数変換、方向性変換、ウェーブレット変換、又はその組み合わせを適用することができる。変換ユニット３８は、予測ブロックを生成するために予測ユニット３２によって選択された予測モードに基づいて選択的に残差ブロックに変換を適用することができる。換言すると、残差情報に適用された変換は、予測ユニット３２によってブロックに関して選択された予測モードに依存することができる。
【００４８】
変換ユニット３８は、複数の異なる変換を維持し、ブロックの予測モードに基づいて選択的に残差ブロックに変換を適用することができる。複数の異なる変換は、ＤＣＴ、整数変換、方向性変換、ウェーブレット変換、又はその組み合わせを含むことができる。幾つかの例においては、変換ユニット３８は、ＤＣＴ又は整数変換と複数の方向性変換を維持し、現在の映像ブロックに関して選択された予測モードに基づいて選択的にこれらの変換を適用することができる。変換ユニット３８は、例えば、制限された方向性を示す予測モードを有する残差ブロックにＤＣＴ又は整数変換を適用すること及び有意な方向性を示す予測モードを有する残差ブロックに方向性変換のうちの１つを適用することができる。
【００４９】
上述される予測モードの組例を用いて、変換ユニット３８は、ＤＣＴ又は整数変換をモード２、９及び１２乃至１７に適用することができる。これらのモードは、ＤＣ予測、又はほぼ直交方向における２つの予測モードの組み合わせであるため制限された方向性を示ことがある。逆に、モード１、３乃至８、１０及び１１は、方向性を示すことができるモードであり、従って、変換ユニット３８は、残差映像ブロックのより良いエネルギー圧縮を達成するためにこれらのモードの各々に関して異なる方向性変換を適用することができる。換言すると、より強い方向性を有する予測モードが選択されたときには、方向性は、該予測モードの残差ブロックにおいて示すこともできる。さらに、異なる予測モードの残差ブロックは、異なる方向性の特徴を示す。従って、ＤＣＴ又はＤＣＴに類する整数変換等の変換と比較して、各予測モードに関して特にトレーニングされた方向性変換は、所定の予測モードの残差ブロックに関してより良いエネルギー圧縮を提供することができる。他方、強い方向性を有さない予測モードに関しては、ＤＣＴ又はＤＣＴに類する整数変換等の変換は、十分なエネルギー圧縮を提供する。この方法により、変換ユニット３８は、可能な予測モードの各々に関して別個の変換を維持する必要がなく、従って、変換格納上の要求を小さくする。さらに、ＤＣＴ及び／又は整数変換の適用は、計算上の複雑さの点で複雑さがより低い。
【００５０】
その他の例においては、変換ユニット３８は、可能な予測モードの各々に関して異なる方向性変換を維持し、ブロックの選択された予測モードに基づいて対応する方向性変換を適用することができる。上述される予測モードの組例に関して、変換ユニット３８は、１８の異なる方向性変換を維持することができ、これらの各々は、１８の可能なイントラ４×４予測モードのうちの１つに対応する。さらに、変換ユニット３８は、１８の可能なイントラ８×８予測モードに関する１８の異なる方向性変換、及び４つの可能なイントラ１６×１６予測モードに関する４つの異なる方向性変換及びその他のパーティションサイズのその他の予測モードに関する変換を維持することができる。ブロックの選択された予測モードに基づいて別個の方向性変換を適用することは、特に有意な方向性を示す予測モードが選択されるブロックに関して、残差エネルギーがキャプチャされる効率を向上させる。方向性変換は、例えば分離不能なKarhunen Loeve変換（ＫＬＴ）から導き出された分離不能方向性変換、又は分離可能方向性変換であることができる。幾つかの例においては、方向性変換は、トレーニングデータセットを用いて予め計算することができる。
【００５１】
ＫＬＴは、基底関数が信号の統計値から導き出される線形変換であり、従って適応型であることができる。ＫＬＴは、可能な限り少ない係数に可能な限り多くのエネルギーを投入するように設計される。ＫＬＴは、一般的には分離不能であり、従って、変換ユニット３８は、以下において詳細に説明されるように完全行列乗算を行う。分離不能方向性変換を４×４残差ブロックに適用することは、例示することを目的として説明される。異なるサイズのブロック、例えば８×８ブロック又は１６×１６ブロック、に関しても同様の技法が用いられる。
【００５２】
４×４残差ブロックＸは、画素値の４つの行及び４つの列、すなわち合計１６の画素値を有する二次元ブロックフォーマットで表される。分離不能方向性変換を適用するために、４×４残差ブロックは、画素値の、すなわち長さが１６の一次元ベクトルｘ内に再配置される。４×４残差ブロックＸは、Ｘ内の画素をラスター走査順に配置することによってベクトルｘ内に再配置される。すなわち、４×４残差ブロックＸが以下のように書かれる場合は、
【数１】
2010530188.tif 000002
【００５３】
長さ１６の残差ベクトルｘは以下のように書かれる。
【００５４】
ｘ＝［ｘ００  ｘ０１  ｘ０２  ｘ０３  ｘ１０  ｘ１１  ｘ１２  ｘ１３  ｘ２０  ｘ２１  ｘ２２  ｘ２３  ｘ３０  ｘ３１  ｘ３２  ｘ３３］
変換係数ベクトルｙは、以下の方程式（１）に従って行列乗算を行うことによって得られる。
【００５５】
Ｙ＝Ｔｘ                    （１）
ここで、Ｔは、ブロックに関して選択された予測モードに対応するサイズ１６×１６の変換行列である。変換係数ベクトルｙも、１６の係数の長さを有する一次元ベクトルである。
【００５６】
分離不能方向性変換の使用は、増大した計算コスト及び厳しくなった格納上の要求を含むことがある。一般的には、サイズＮ×Ｎの残差ブロックに関しては、分離不能方向性変換は、サイズがＮ２×Ｎ２の基低関数を要求する。すなわち、４×４残差ブロックの場合は、分離不能方向性変換は、１６×１６のサイズを有し、８×８残差ブロックの場合は、分離不能方向性変換は、６４×６４のサイズを有し、１６×１６残差ブロックの場合は、分離不能方向性変換は、２５６×２５６のサイズを有する。組の予測モードの各々に関して異なる分離不能方向性変換を用いることができるため、変換ユニット３２は、４×４ブロックに関する１８の１６×１６の方向性変換、８×８ブロックに関する１８の６４×６４の変換（上述される予測モードの組例の場合）、そして可能なことに予測モードの組がそれよりも大きい場合はそれ以上を格納することができる。この結果として、変換プロセスを実行するために必要な変換行列を格納するために大規模なメモリ資源を用いることが可能になる。分離不能方向性変換の計算コストも高い。一般的には、Ｎ×Ｎブロックにおいて分離不能方向性変換を適用することは、Ｎ２×Ｎ２乗算及びＮ２×（Ｎ２−１）加算を要求する。
【００５７】
分離不能方向性変換の代わりに、変換ユニット３２は、予測モードの各々に関する分離可能方向性変換を維持することができる。分離可能方向性変換は、分離不能方向性変換と比較してより低い格納上及び計算上のコストを有する。例えば４×４残差ブロックＸに関しては、分離可能変換は、以下の方程式（２）によって示されるように適用される。
【００５８】
Ｙ＝ＣＸＲ                        （２）
ここで、Ｙは、結果的に得られた変換係数行列であり、Ｃは、列変換行列であり、Ｒは、行変換行列であり、これらはすべて、ブロックのサイズに等しいサイズを有する（例えば、この例においては．４×４）。従って、結果的に得られた変換係数行列Ｙもサイズ４×４の二次元行列である。
【００５９】
各予測モードに関して、変換ユニット３２は、２つのＮ×Ｎ変換行列（例えば行列対Ｃ及びＲ）を格納することができ、ここで、Ｎ×Ｎは、ブロックサイズ（例えば、Ｎ＝４、８又は１６）に対応する。上述される４×４ブロックに関する１８の予測モードの組例においては、変換ユニット３２は、３６の４×４変換行列を格納し、分離不能変換を使用時に格納される１８の１６×１６変換行列よりも小さいストレージを要求する。さらに、変換ユニット３２は、２×Ｎ×Ｎ×Ｎの乗算及び２×Ｎ×Ｎ×（Ｎ−１）の加算を用いた分離可能方向性変換を行うことができ、分離不能方向性変換を行うために用いられるＮ２×Ｎ２の乗算及びＮ２×（Ｎ２−１）の加算よりも大幅に少ない演算である。テーブル１は、４×４及び８×８のブロックサイズに関して分離可能方向性変換を用いた場合と分離不能方向性変換を用いた場合の格納上及び計算上の要求を比較する。１６×１６のブロックに関する分離可能方向性変換と分離不能方向性変換との間の比較も同様の方法で行うことができる。テーブル１に示されるように、分離可能方向性変換を用いることは、分離不能方向性変換と比較して計算上の複雑さを下げること及び格納上の要求を小さくすることの両方を可能にし、この程度は、より大きいブロックサイズほどより有意になり、例えば、８×８ブロックに関する程度のほうが４×４ブロックに関する程度よりも大きい。
【表１】
2010530188.tif 000003
【００６０】
各予測モードに関する分離可能変換行列は、一組のトレーニング映像シーケンスからの予測残差を用いて得ることができる。分離不能ＫＬＴ変換の導出と同様に、行変換行列及び列変換行列をそれぞれ入手するために、単一値分解（ＳＶＤ）プロセスをトレーニングセット内の予測残差に適用することができ、最初に行方向にそして次に列方向に適用することができる。代替として、分離不能方向性変換行列、すなわち、分離不能ＫＬＴ変換行列は、最初にトレーニングセットからの予測残差を用いてトレーニングすることができ、次に、分離不能変換行列を分離可能変換行列にさらに分解することによって各予測モードに関する分離可能変換行列を得ることができる。
【００６１】
いずれの方法においても、結果的に得られた変換行列は、通常は、浮動小数点精度を有する。変換プロセスにおける固定小数点算術の使用を可能にし及び計算コストを低減させることを目的として変換行列内の係数を概算するために固定小数点精度数が用いられる。変換行列内の係数の固定小数点概算精度は、固定小数点算術を用いた変換プロセス中に必要な計算の複雑さと最高精度との間のバランスを見つけ出すことによって決定される。換言すると、変換行列の固定小数点概算の精度がより高いと、固定小数点概算の使用に起因する誤差をより小さくすることができ、これは望ましいことであるが、変換行列の固定小数点概算の精度が高すぎても、変換プロセス中に固定小数点算術をオーバーフローさせるおそれがあり、これは望ましくない。
【００６２】
画素値の残差ブロックに変換を適用後、量子化ユニット４０は、変換係数を量子化してビットレートをさらに引き下げる。量子化に引き続き、逆量子化ユニット４２及び逆変換ユニット４４は、逆量子化及び逆変換をそれぞれ適用して残差ブロックを再構築することができる（図２において“再構築残差ブロック”のラベルが付される）。加算器４８Ｂは、再構築された残差ブロックを予測ユニット３２によって生成された予測ブロックに加えてフレームストア３４内に格納するための再構築された映像ブロックを生成する。再構築された映像ブロックは、後続する映像ブロックをイントラコーディング又はインターコーディングするために予測ユニット３２によって用いることができる。
【００６３】
上述されるように、ＤＣＴ、Ｈ．２６４／ＡＶＣにおいて用いられる整数変換、及び分離可能方向性変換を含む分離可能変換が用いられるときには、その結果得られた変換係数は、二次元係数行列として表すことができる。従って、量子化に引き続き、係数走査ユニット４１は、二次元ブロックフォーマットから一次元ベクトルフォーマットまで係数を走査し、このプロセスは、係数走査としばしば呼ばれる。特に、係数走査ユニット４１は、走査順序に従って係数を走査する。この開示の一側面により、係数走査ユニット４１は、１つ以上の係数統計値に基づいて係数走査に関して用いられる走査順序を適応的に調整することができる。幾つかの例においては、予測モードの各々は異なる係数統計値を有することがあるため、係数走査ユニット４１は、走査順序を予測モードの各々に関して別々に適応的に調整することができる。
【００６４】
係数走査ユニット４１は、最初に、第１の走査順序を用いて量子化された残差ブロックの係数を走査することができる。一側面においては、第１の走査順序は、Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ１０  ＡＶＣ用途において典型的に用いられるジグザグ走査順序であることができる。係数走査ユニット４１は、最初にジグザグ走査順序を用いて走査するものとして説明されるが、この開示の技法は、特定の初期走査順序又は技法に限定されない。さらに、予測モードの各々は、異なる初期走査順序、例えばその予測モードに関して特別にトレーニングされた走査順序、を有することができる。しかしながら、ジグザグ走査順序は、例示することを目的として説明される。ジグザグ走査順序は、二次元ブロックの左上隅における係数が係数ベクトルの始めに向かって圧縮されるような形で、量子化された係数を一次元ベクトル内に配列する。ジグザグ走査順序は、制限された方向性を有する係数ブロックに関して十分な圧縮性を提供することができる。
【００６５】
残差ブロックが何らかの又は有意な方向性を有し、分離可能方向性変換を用いて変換されるときには、その結果得られる二次元変換係数ブロックは、依然としてある量の方向性を有することができる。この理由は、分離可能方向性変換を用いることは、計算の複雑さを下げ及び格納上の要求を小さくするという利益を提供する一方で、分離不能方向性変換を用いるのと同じくらい適切には残差ブロックにおける方向性をキャプチャできないことがあるためである。一例として、方向性変換を垂直予測（上述される例のモード０）に適用後は、非ゼロ係数は、水平方向に沿って存在する傾向がある。従って、ジグザグ走査順序の結果、すべての非ゼロ係数が係数ベクトルの始めに向かって圧縮されないことがある。固定されたジグザグ走査順序の代わりに走査順序が水平方向を向くように係数走査順序を適応させることによって、係数ブロックの非ゼロ係数が、ジグザグ順序で走査された場合よりも一次元係数ベクトルの始めに向かってより圧縮されるようにすることができる。このことは、一次元係数ベクトルの始めにおける非ゼロ係数間にはより短い一連のゼロが存在し、一次元係数ベクトルの終わりには１つのより長い一連のゼロが存在するため、エントロピーコーディングに費やされるビット数を減らすことができる。一次元係数ベクトルを生成するために用いられる走査順序を適応させる概念は、その他の予測モードに対しても適用される。例えば、予測モードの各々は、係数ブロックにおいて異なる方向性、従って異なる係数統計値を有する可能性があるため、係数走査ユニット４１は、予測モードの各々に関して別々に走査順序を適応的に調整することができる。この方法により、走査順序は、予測モードの各々に関して異なることができる。
【００６６】
上述されるように、初期走査順序は、特に方向性変換が残差ブロックに適用される場合は、ジクザグ走査順序でないことができる。これらの場合は、初期走査順序は、後述される技法のうちの１つを用いて予め決定することができる。一例として、初期走査順序は、一組のトレーニング映像シーケンスを用いて決定することができる。非ゼロ係数の統計値、例えば、後述される統計値、が各予測モードに関して収集されて係数走査順序を初期化するために用いられる。特に、非ゼロ係数の確率が最も高い位置が、初期走査順序の最初の係数位置であり、次に、非ゼロ係数の確率が次に高い位置が、初期走査順序の二番目の係数位置であり、初期走査順序の最後の係数位置である非ゼロ確率が最も低い位置まで以下同様である。代替として、初期走査順序は、分離可能変換行列の固有値の大きさに基づいて決定することができる。例えば、これらの固有値は、降順でソートすることができ、係数は、固有値の対応する順序に従って走査される。
【００６７】
上述される技法のうちの１つを用いて初期走査順序が決定された場合でも、様々なタイプの映像ソースであることに起因して、量子化された残差係数がブロック内の異なる係数位置に配置されることがある。例えば、異なる解像度の映像ソース、例えば、共通中間フォーマット（ＣＩＦ）、クウォーターＣＩＦ（ＱＣＩＦ）及び高精細度（例えば、７２０ｐ／ｉ又は１０８０ｐ／ｉ）映像ソース、の場合は、非ゼロ係数がブロック内の異なる係数位置に配置されることがある。従って、初期走査順序がブロックの予測モードに基づいて選択された場合でも、係数走査ユニット４１は、依然として、一次元係数ベクトルの始めに向けた非ゼロ係数の圧縮を向上させるように走査順序を適応させることができる。
【００６８】
走査順序を適応させるために、係数走査ユニット４１、又はその他の映像符号器ユニット２０は、１つ以上のブロックに関して１つ以上の係数統計値を収集することができる。換言すると、係数走査はブロックごとに行われるため、係数走査ユニット４１は、ブロック内の位置の各々が非ゼロ係数を有する回数を示す統計値を収集することができる。例えば、係数走査ユニット４１は、各々が二次元ブロック内の係数位置に対応する複数のカウンタを維持し、非ゼロ係数がその各々の位置に配置されたときにその位置に対応するカウンタの数字を増やすことができる。この方法により、高カウント値は、ブロック内において非ゼロ係数がより高い頻度で生じる位置に対応し、低カウント値は、ブロック内において非ゼロ係数がより低い頻度で生じる位置に対応する。幾つかの例においては、係数走査ユニット４１は、予測モードの各々に関して別々の組の係数統計値を収集することができる。
【００６９】
上述されるように、係数走査ユニット４１は、収集された統計値に基づいて走査順序を適応させることができる。係数走査ユニット４１は、収集された統計値に基づいて、非ゼロ係数を有する尤度がより低いと決定された係数位置よりも前に非ゼロ係数を有する尤度がより高いと決定された係数位置を走査するように走査順序を適応させることができる。例えば、係数走査ユニット４１は、各々の係数位置が非ゼロ値を有する回数をカウント値が表すときにカウント値に基づいて二次元ブロックの係数位置を降順で走査するように走査順序を適応させることができる。代替として、カウンタは、ブロック内の各位置がゼロ値係数に関する位置であった回数を追跡し、カウント値に基づいて昇順で係数位置を走査するように走査順序を適応させることができる。幾つかの例においては、統計値は、ブロックの全係数位置の代わりにブロックの係数位置の部分組のみに関して収集されることがある。この場合は、係数走査ユニット４１は、走査順序の一部しか適応させることができない。
【００７０】
係数走査ユニット４１は、固定された又は固定されない間隔で走査順序を適応させることができる。例えば、係数走査ユニット４１は、ブロック境界等の固定された間隔で走査順序を適応させることができる。幾つかの例においては、係数走査ユニット４１は、４×４又は８×８ブロック境界において、又はマクロブロック境界において走査順序を適応させることができる。この方法により、走査順序は、各ブロック又はマクロブロックに関して適応させることができる。しかしながら、システムの複雑さを下げるために、係数走査ユニット４１は、より低い頻度で、例えばｎブロック又はｎマクロブロック後に走査順序を適応させることができる。代替として、係数走査ユニット４１は、固定されない間隔で走査順序を適応させることができる。係数走査ユニット４１は、例えば、ブロック内における位置のカウント値のうちの１つがしきい値を超えたときに走査順序を適応させることができる。走査順序を適応後は、係数走査ユニット４１は、適応された走査順序を用いて少なくとも１つの後続する映像ブロックの後続する量子化された残差ブロックを走査することができる。幾つかの例においては、係数走査ユニット４１は、少なくとも１つの後続する映像ブロックが第１の映像ブロックのコーディング単位内に存在するときに適応された走査順序を用いて該少なくとも１つの後続するブロックの後続する量子化された残差ブロックを走査することができる。係数走査ユニット４１は、収集された統計値に従って走査順序が再度適応されるか又は走査順序が初期化されるまで後続する映像ブロックの走査を続けることができる。この方法により、係数走査ユニット４１は、量子化された残差係数をエントロピーコーディングユニット４６によってより効率的に符号化できるような形で走査順序を適応させて一次元係数ベクトルを生成することができる。
【００７１】
係数走査ユニット４１は、幾つかの例においては、収集された統計値を正規化することができる。収集された統計値の正規化は、係数カウントがしきい値に達したときに望ましい。ブロック内においてしきい値に達しているカウント値を有する係数位置は、ここにおいては係数位置Ａと呼ばれ、例えば、該係数位置がある期間にわたって非ゼロ係数を有していなかったときでも最高のカウント値を有する係数位置であり続けることができる。これは、位置Ａにおける係数カウントが非常に大きいため、ここにおいては係数位置Ｂと呼ばれるブロック内の他の位置の係数カウントが位置Ａにおける係数カウントを超え、その結果係数位置ＡとＢとの間において走査順序の変更（すなわち、スワッピング）が行われる前にその他の係数カウントが複数のブロック（例えば数十又は数百ものブロック）を受け入れることができるためである。従って、映像符号器２０がローカルな係数統計値により素早く適応するのを可能にするために、係数走査ユニット４１は、カウントのうちの１つがしきい値に達したときに係数を正規化することができる。例えば、係数走査ユニット４１は、カウント値の各々を予め決められた係数分の１にする、例えば、カウント値の各々を１／２にすることによって、又はカウント値を一組の初期カウント値にリセットすることによって、係数を正規化することができる。係数走査ユニット４１は、その他の正規化方法を利用することができる。例えば、係数走査ユニット４１は、特定数のブロックをコーディング後に統計値をリフレッシュすることができる。
【００７２】
エントロピー符号化ユニット４６は、ブロックの残差係数を表す一次元係数ベクトル及び１つ以上のヘッダ構文要素の形でのブロックに関するブロックヘッダ情報を受け取る。ヘッダ構文要素は、現在の映像ブロックの特定の特徴、例えば、ブロックタイプ、予測モード、ルマ及びクロマに関するコーディングされたブロックパターン（ＣＢＰ）、ブロックパーティション、及び１つ以上の動きベクトル、を識別することができる。これらのヘッダ構文要素は、映像符号器２０内のその他の構成要素から、例えば予測ユニット３２から、受け取ることができる。
【００７３】
エントロピー符号化ユニット４６は、現在の映像ブロックに関するヘッダ情報及び残差情報を符号化して符号化されたビットストリーム（図２におけるラベル“映像ビットストリーム”）を生成する。エントロピー符号化ユニット４６は、この開示において説明される技法に従って各々のブロックの構文要素のうちの１つ以上を符号化する。特に、エントロピー符号化ユニット４６は、１つ以上の以前に符号化された映像ブロックの構文要素に基づいて現在のブロックの構文要素を符号化することができる。従って、エントロピー符号化ユニット４６は、
１つ以上の以前に符号化された映像ブロックの構文要素を格納するための１つ以上のバッファを含むことができる。エントロピー符号化ユニット４６は、現在の映像ブロックの構文要素の符号化を援助するためにあらゆる位置におけるあらゆる数の近隣ブロックを解析することができる。例示することを目的として、エントロピー符号化ユニット４６は、現在のブロックの真上に位置する以前に符号化されたブロック（すなわち、上隣ブロック）及び現在のブロックのすぐ左隣に位置する以前に符号化されたブロック（すなわち、左隣ブロック）に基づいて予測モードを符号化するとして説明される。しかしながら、その他のヘッダ構文要素、例えばブロックタイプ、ブロックパーティション、ＣＢＰ、等、を符号化するために同様の技法を用いることができる。さらに、現在の映像ブロックのコーディングにおいて上隣ブロック及び左隣ブロックだけでなくより多くの近隣ブロックが関わる同様の技法も使用可能である。
【００７４】
エントロピー符号化ユニット４６の動作が、上述される１８の予測モードの組を参照して及び以下の疑似符号例を考慮して説明される。
【数２】
2010530188.tif 000004
【００７５】
エントロピー符号化ユニット４６は、変数ｕｐＭｏｄｅ、ｌｅｆｔＭｏｄｅ、及びｃｕｒｒＭｏｄｅを、上隣ブロックの予測モード、左隣ブロックの予測モード、及び現在のブロックの予測モードにそれぞれ等しくなるように初期化する。上述されるように、上隣ブロック、左隣ブロック及び現在のブロックの予測モードは、ラグランジュコスト解析に基づいて決定することができる。エントロピー符号化ユニット４６は、現在のブロックの予測モード（ｃｕｒｒＭｏｄｅ）をこれらの近隣ブロックの予測モード（ｕｐＭｏｄｅ及びｌｅｆｔＭｏｄｅ）と比較する。現在のブロックの予測モードが近隣ブロックのうちのいずれかの近隣ブロックの予測モードに等しい場合は、エントロピー符号化ユニット４６は、“１”を符号化する。従って、現在のブロックの現在のモードを表すためにエントロピー符号化ユニット４６によって符号化された第１のビットは、現在の予測モードが上隣ブロックの予測モード又は左隣ブロックの予測モードのいずれかと同じであるかどうかを示す。
【００７６】
現在のブロックの予測モードが近隣ブロックのうちのいずれかの近隣ブロックの予測モードに等しい、すなわち第１の符号化されたビットが“１”である場合は、エントロピー符号化ユニット４６は、上隣ブロックの予測モードを左隣ブロックの予測モードと比較する。上隣ブロックの予測モードが左隣ブロックの予測モードと同じである場合は、エントロピー符号化ユニット４６は、その予測モードに関してそれ以上のビットを符号化しない。この場合は、予測モードは単一ビットを用いて符号化することができる。
【００７７】
しかしながら、上隣ブロックの予測モードが左隣ブロックの予測モードに等しくない場合は、エントロピー符号化ユニット４６は、近隣ブロックのうちのどの近隣ブロックが現在のブロックと同じ予測モードを有するかを指定するために予測モードを表す少なくとも１つの追加ビットを符号化する。例えば、エントロピー符号化ユニット４６が上隣及び左隣のブロックの予測モードを解析時には、エントロピー符号化ユニット４６は、現在のブロックの予測モードが上隣ブロックの予測モードと同じである場合は“１”を符号化することができ、現在のブロックの予測モードが左隣ブロックの予測モードと同じである場合は“０”を符号化する。エントロピー符号化ユニット４６は、代替として、現在のブロックの予測モードが左隣ブロックの予測モードと同じである場合は“１”を符号化することができ、現在のブロックの予測モードが上隣ブロックの予測モードと同じである場合は“０”を符号化する。いずれの場合においても、符号化された予測モードの第２のビットは、上隣又は左隣のブロックのうちのいずれのブロックが現在のブロックの予測モードと同じ予測モードを有するかを示す。この方法により、エントロピー符号化ユニット４６は、現在のブロックの予測モードが近隣ブロックのうちの１つの予測モードに等しいときには１ビット、そして多くても２ビット、という少ないビット数を用いて現在のブロックの予測モードを符号化することができる。エントロピー符号化ユニット４６が３つ以上の近隣ブロックを解析する場合は、エントロピー符号化ユニット４６は、以前に符号化されたブロックのうちのいずれのブロックが現在のブロックの予測モードと同じ予測モードを有するかを指定するために２つ以上の追加ビットを符号化することができる。
【００７８】
現在の映像ブロックの予測モードが上隣ブロックの予測モード又は左隣ブロックの予測モードのいずれとも同じでない場合は、エントロピー符号化ユニット４６は、現在の映像ブロックの予測モードが近隣ブロックのうちのいずれの近隣ブロックの予測モードとも同じでないことを示す“０”を送信する。エントロピー符号化ユニット４６は、現在のブロックの予測モードを表す符号語を符号化する。上述される１８の予測モードの組を例として用いた場合、エントロピー符号化ユニット４６は、４ビット符号語を用いて現在の映像ブロックの予測モードを符号化することができる。典型的には５ビット符号語を要求する１８の可能な予測モードが存在するが、上隣ブロック及び左隣ブロックの予測モードは既に現在のブロックの予測モードと比較されて現在のブロックの予測モードに等しくないと判断されているため、これらの可能な予測モードのうちの２つ、すなわち上隣ブロック及び左隣ブロックの予測モードは、現在のブロックに関する組から既に削除されている。しかしながら、上隣ブロック及び左隣ブロックが同じ予測モードを有するときには、１６の予測モードの代わりに１７の予測モードが引き続き可能であり、この場合も表示するために４ビット符号語ではなく５ビット符号語を要求する。この場合は、予測プロセス中において、予測ユニット３２は、４ビット符号語を用いて現在のブロックの予測モードを表すことを可能にするために残りの１７のコーディングモードのうちの１つを可能な予測モードの組から選択的に取り除くことができる。一例においては、予測ユニット３２は、最後の予測モード、例えばこの例における予測モード１７、を取り除くことができる。しかしながら、予測ユニット３２は、様々な方法のうちのその他の方法を用いて組の予測モードのうちのあらゆる予測モードを取り除くべき予測モードとして選択することができる。例えば、予測ユニット３２は、各予測モードが選択される確率を追跡し、選択される確率が最も低い予測モードを取り除くことができる。
【００７９】
選択された予測モードを取り除いた後は、エントロピー符号化ユニット４６は、予測モード番号が［０，１５］になるように１６の残りの予測モードの範囲を調整する。一例においては、エントロピー符号化ユニット４６は、残りの予測モードの番号を一時的に０乃至１５に変更し、最小のモード番号を有する残りの予測モードに０を割り当て、最大の予測モード番号を有する残りの予測モードに１５を割り当てることができる。例えば、上隣ブロックの予測モードがモード１２で左隣ブロックの予測モードがモード１４である場合は、エントロピー符号化ユニット４６は、予測モード１３、予測モード１５、予測モード１６及び予測モード１７の番号を、予測モード１２、予測モード１３、予測モード１４及び予測モード１５にそれぞれ変更することができる。次に、エントロピー符号化ユニット４６は、４ビットを用いて予測モードを符号化する。可能な予測モード数がより多い又はより少ない予測モードの組が存在するその他の例においては、エントロピー符号化ユニット４６は、同様の技法を用いてより多い又はより少ないビットで予測モードを符号化することができる。
【００８０】
エントロピー符号化ユニット４６は、ＣＡＶＬＣ又はＣＡＢＡＣを用いて現在の映像ブロックの予測モードを符号化することができる。現在のブロックの予測モードと上隣及び左隣のブロックの予測モードとの間には強力な相関関係が存在することができる。特に、上隣ブロックの予測モードと左隣ブロックの予測モードが両方とも一方向性予測モードであるときには、現在のブロックの予測モードも一方向性予測モードのうちの１つである確率が高い。同様に、上隣ブロックの予測モードと左隣ブロックの予測モードが両方とも二方向性予測モードであるときには、現在のブロックの予測モードも二方向性予測モードのうちの１つである確率が高い。この方法により、上隣ブロックの予測モードと左隣ブロックの予測モードのカテゴリ（例えば、一方向性対二方向性）が変わるときに現在のブロックの予測モードの確率分布が変わる。
【００８１】
従って、エントロピー符号化ユニット４６は、幾つかの側面においては、１つ以上の以前に符号化された映像ブロック（例えば、上隣及び左隣の映像ブロック）の予測モードが一方向性であるか又は二方向性であるかに依存して異なるコーディングコンテキストを選択することができる。ＣＡＢＡＣの場合は、異なるコーディングコンテキストは、所定のコンテキスト内の予測モードの組の異なる確率を反映させる。上隣及び左隣のコーディングブロックが両方とも一方向性予測モードを有する場合に対応し、ここでは“第１のコーディングコンテキスト”と呼ばれるコーディングコンテキストを例にとる。第１のコーディングコンテキストは、近隣上の相関関係に起因して、二方向性予測モードよりも一方向性予測モードに対してより高い確率を割り当てることができる。従って、第１のコーディングコンテキストがＣＡＢＡＣ符号化に関して選択された（すなわち、上隣及び左隣の両方の予測モードが一方向性である）ときには、現在の予測モードのコーディング時に、現在の予測モードが二方向性予測モードのうちの１つである場合と比較して現在の予測モードが一方向性予測モードのうちの１つである場合のほうがより少ないビットを費やすことができる。ＣＡＶＬＣの場合は、異なるコーディングコンテキストに関して異なるＶＬＣコーディングテーブルを定義することができる。例えば、第１のコーディングコンテキストが選択された（すなわち、上隣及び左隣の両方のブロックが一方向性予測モードを有する）ときには、二方向性予測モードに対する符号語よりも短い符号語を一方向性予測モードに割り当てるＶＬＣコーディングテーブルを用いることができる。
【００８２】
このようにして、エントロピー符号化ユニット４６は、上映像ブロックの予測モード及び左映像ブロックの予測モードが両方とも一方向性予測モードであるときに第１のコーディングコンテキストを選択することができる。エントロピー符号化ユニット４６は、上映像ブロックの予測モード及び左映像ブロックの予測モードの両方が一方向性予測モードであるわけではないときには異なるコーディングコンテキストを選択することができる。例えば、エントロピー符号化ユニット４６は、上隣映像ブロックの予測モード及び左隣映像ブロックの予測モードが両方とも二方向性予測モードであるときには第２のコーディングコンテキストを選択することができる。第２のコーディングコンテキストは、上隣及び左隣の両方のブロックの予測モードが二方向性であるときに現在の映像ブロックの予測モードに関する確率分布をモデル化する。第２のコーディングコンテキストの確率分布は、ＣＡＢＡＣコーディングの場合は一方向性予測モードに対する確率よりも高い確率を二方向性予測モードに対して割り当てることができ、ＣＡＶＬＣコーディングの場合は単一予測モードに対する符号語よりも短い符号語を二方向性予測モードに対して割り当てることができる。
【００８３】
エントロピー符号化ユニット４６は、近隣ブロックのうちの１方のブロックの予測モードが一方向性予測モードでありさらに近隣ブロックのうちの他方のブロックの予測モードが二方向性予測モードであるときには第３のコーディングコンテキストを選択することも可能である。第３のコーディングコンテキストは、現在の予測モードの確率を組の一方向性予測モードと二方向性予測モードとの間でより均一に分布させる。１つ以上の以前に符号化された映像ブロック（例えば上映像ブロック及び左映像ブロック）の予測モードが一方向性予測モードであるか又は二方向性予測モードであるかに基づいて符号化の際に用いるための異なるコーディングコンテキストを選択することは、予測モード情報のより良い圧縮を得ることができる。
【００８４】
図３は、図１の映像復号器２６の例をさらに詳細に示すブロック図である。映像復号器２６は、コーディングされたユニット、例えば映像フレーム又はスライス内のブロックのイントラ復号及びインター復号を行うことができる。図３の例においては、映像復号器２６は、エントロピー復号ユニット６０と、予測ユニット６２と、係数走査ユニット６３と、逆量子化ユニット６４と、逆変換ユニット６６と、フレームストア６８と、を含む。映像復号器２６は、加算器６９も含み、加算器６９は、逆変換ユニット６６及び予測ユニット６２の出力を結合する。
【００８５】
エントロピー復号ユニット６０は、符号化された映像ビットストリーム（図３のラベル“映像ビットストリーム”）を受け取り、符号化されたビットストリームを復号して（例えば量子化された残差係数の一次元ベクトルの形の）残差情報及び（例えば１つ以上のヘッダ構文要素の形の）ヘッダ情報を得る。エントロピー復号ユニット６０は、図２の符号化モジュール４６によって行われた符号化の可逆的（ｒｅｃｉｐｒｏｃａｌ）復号関数を実行する。予測モード構文要素の復号を行うエントロピー復号ユニット６０の説明は、例示することを目的とする。これらの技法は、その他の構文要素、例えばブロックタイプ、ブロックパーティション、ＣＢＰ、等の復号にも拡大することができる。
【００８６】
特に、エントロピー復号ユニット６０は、予測モードを表す第１のビットを解析し、現在のブロックの予測モードが解析された以前に復号されたブロックのうちのいずれかのブロック、例えば上隣ブロック又は左隣ブロック、の予測モードに等しいかどうかを決定する。エントロピー復号モジュール６０は、第１のビットが“１”であるときには現在のブロックの予測モードが近隣ブロックのうちの１つのブロックの予測モードに等しいと決定することができ、第１のビットが“０”であるときには近隣ブロックのうちのいずれの近隣ブロックの予測モードとも同じでないと決定することができる。
【００８７】
第１のビットが“１”である場合で、上隣ブロックの予測モードが左隣ブロックの予測モードと同じである場合は、エントロピー復号ユニット６０は、それ以上のビットを受け取る必要がない。エントロピー復号ユニット６０は、近隣ブロックのうちのいずれかの近隣ブロックの予測モードを現在のブロックの予測モードとして選択する。エントロピー復号ユニット６０は、例えば、１つ以上の以前に復号されたブロックの以前の予測モードを格納する１つ以上のバッファ（又はその他のメモリ）を含むことができる。
【００８８】
第１のビットが“１”である場合で、上隣ブロックの予測モードが左隣ブロックの予測モードと同じでない場合は、エントロピー復号ユニット６０は、予測モードを表す第２のビットを受け取り、エントロピー復号ユニット６０は、第２のビットに基づいて近隣ブロックのうちのいずれが現在のブロックと同じ予測モードを有するかを決定する。エントロピー復号ユニット６０は、例えば、第２のビットが“１”であるときには現在のブロックの予測モードは上隣ブロックの予測モードと同じであると決定し、第２のビットが“０”であるときには現在のブロックの予測モードは左隣ブロックの予測モードと同じであると決定することができる。エントロピー復号ユニット６０は、正確な近隣ブロックの予測モードを現在のブロックの予測モードとして選択する。
【００８９】
しかしながら、第１のビットが“０”であるときには、エントロピー復号ユニット６０は、現在のブロックの予測モードは近隣ブロックのうちのいずれの近隣ブロックの予測モードとも同じでないと決定する。従って、エントロピー復号ユニット６０は、上隣及び左隣のブロックの予測モードを可能な予測モードの組から取り除くことができる。可能な予測モードの組は、１つ以上の一方向性予測モード及び／又は１つ以上の多方向性予測モードを含むことができる。合計１８の予測モードを含む予測モードの組の一例が図２の説明において提供されている。上隣及び左隣のブロックが同じ予測モードを有する場合は、エントロピー復号ユニット６０は、これらの近隣ブロックの予測モード及び少なくとも１つのその他の予測モードを取り除くことができる。一例として、エントロピー復号モジュール６０は、最大のモード番号を有する予測モード（例えば、上述される１８の予測モードの組内のモード１７）を取り除くことができる。しかしながら、エントロピー復号ユニット６０は、復号ユニット６０が予測ユニット３２によって取り除かれるのと同じ予測モードを取り除くかぎりにおいて、様々な方法のうちのその他のいずれかを用いて取り除かれるべき該組の予測モードのうちのいずれかを選択することができる。例えば、エントロピー復号ユニット６０は、選択される確率が最も低い予測モードを取り除くことができる。
【００９０】
エントロピー復号ユニット６０は、予測モード番号が０乃至１５の範囲になるように残りの予測モードの予測モード番号を調整することができる。一例においては、図２に関して上述されるように、エントロピー符号化ユニット４６は、残りの予測モードの番号を一時的に０乃至１５に変更し、最小のモード番号を有する残りの予測モードに０を割り当て、最大の予測モード番号を有する残りの予測モードに１５を割り当てることができる。エントロピー復号ユニット６０は、残りのビット、例えば上例における４ビット、を復号し、現在のブロックの予測モードに対応する残りの予測モードの予測モード番号を得ることができる。
【００９１】
幾つかの例においては、エントロピー復号ユニット６０は、ＣＡＶＬＣ又はＣＡＢＡＣを用いて現在の映像ブロックの予測モードを復号することができる。現在のブロックの予測モードと１つ以上の以前に復号されたブロックの予測モード（例えば、上隣及び左隣のブロックの予測モード）との間には強力な相関関係が存在することができるため、エントロピー復号ユニット６０は、１つ以上の以前に復号された映像ブロックの予測モードのタイプに基づいてブロックの予測モードに関して異なるコーディングコンテキストを選択することができる。換言すると、エントロピー復号ユニット６０は、以前に復号されたブロックが一方向性であるか又は二方向性であるかに基づいて異なるコーディングコンテキストを選択することができる。
【００９２】
一例として、エントロピー復号ユニット６０は、両方の以前に復号されたブロックの予測モードが一方向性予測モードであるときには第１のコーディングコンテキストを選択し、両方の以前に復号されたブロックの予測モードが二方向性予測モードであるときには第２のコーディングコンテキストを選択し、以前に復号されたブロックのうちの１方のブロックの予測モードが一方向性予測モードであって以前に復号されたブロックのうちの他方のブロックの予測モードが二方向性予測モードであるときには第３のコーディングコンテキストを選択することができる。
【００９３】
予測ユニット６２は、ヘッダ情報の少なくとも一部を用いて予測ブロックを生成する。例えば、イントラコーディングされたブロックの場合は、エントロピー復号ユニット６０は、予測ブロックの生成のために、ヘッダ情報の少なくとも一部（例えば、このブロックに関するブロックタイプ及び予測モード）を予測ユニット６２に提供することができる。予測ユニット６２は、ブロックタイプ及び予測モードに従い共通コーディング単位内の１つ以上の隣接ブロック（又は隣接ブロックの一部）を用いて予測ブロックを生成する。一例として、予測ユニット６２は、例えば、予測モード構文要素によって指定された予測モードを用いてブロックタイプ構文要素によって示されるパーティションサイズの予測ブロックを生成することができる。現在のコーディング単位内の１つ以上の隣接ブロック（又は隣接ブロックの一部）は、例えば、フレームストア６８から取り出すことができる。
【００９４】
エントロピー復号ユニット６０は、符号化された映像データを復号して一次元係数ベクトルの形の残差情報も入手する。分離可能変換（例えば、ＤＣＴ、Ｈ．２６４／ＡＶＣ整数変換、分離可能方向性変換）が用いられる場合は、係数走査ユニット６３は、一次元係数ベクトルを走査して二次元ブロックを生成する。係数走査ユニット６３は、図２の係数走査ユニット４１によって行われる走査の可逆走査関数を実行する。特に、係数走査ユニット６３は、一次元ベクトルの係数を二次元フォーマット内に入れるために初期走査順序に従って係数を走査する。換言すると、係数走査ユニット６３は、一次元ベクトルを走査して量子化された係数の二次元ブロックを生成する。
【００９５】
係数走査ユニット６３は、１つ以上の係数統計値に基づいて係数走査に関して用いられる走査順序を適応的に調整し、該走査順序を映像符号器２０によって用いられる走査順序と同期化することができる。そうするために、係数走査ユニット６３は、１つ以上のブロックに関する１つ以上の係数統計値を収集し、収集された統計値に基づいて走査順序を適応させることができる。換言すると、量子化された係数の二次元ブロックが再構築されるのに従い、係数走査ユニット６３は、二次元ブロック内における全位置の各々が非ゼロ係数に関する位置であった回数を示す統計値を収集することができる。係数走査ユニット６３は、二次元ブロックにおける係数位置に各々対応する複数のカウンタを維持し、非ゼロ係数がその各々の位置に配置されたときにその位置に対応するカウンタの数を増やすことができる。
【００９６】
係数走査ユニット６３は、収集された統計値に基づいて走査順序を適応させることができる。係数走査ユニット６３は、収集された統計値に基づき、非ゼロ係数を有する尤度がより低いと決定された係数位置の前に非ゼロ係数を有する尤度がより高い位置を走査するように走査順序を適応させることができる。係数走査ユニット６３は、映像符号器２０によって用いられるのと同じ固定された又は固定されない間隔で走査順序を適応させる。係数走査ユニット６３は、映像符号器２０に関して上述されるのと同じ方法で収集された統計値を正規化する。
【００９７】
上述されるように、係数走査ユニット６３は、幾つかの例においては、予測モードの各々に関して別個の係数統計値を収集し、別々に適応的に走査順序を調整することができる。係数走査ユニット６３は、例えば、予測モードの各々が異なる係数統計値を有することができるためにそうすることができる。
【００９８】
量子化された残差係数の二次元ブロックを生成後は、逆量子化ユニット６４は、量子化された残差係数を逆量子化する、すなわち量子化を解除することができる。逆変換ユニット６６は、逆変換、例えば逆ＤＣＴ、逆整数変換、又は逆方向性変換、を逆量子化された残差係数に適用して画素値の残差ブロックを生成することができる。加算器６９は、予測ユニット６２によって生成された予測ブロックを逆変換ユニット６６からの残差ブロックと合計して再構築された映像ブロックを形成する。この方法により、映像復号器２６は、ヘッダ情報及び残差情報を用いて映像フレームのシーケンスをブロックごとに再構築する。
【００９９】
ブロックに基づく映像コーディングは、その結果として、コーディングされた映像フレームのブロック境界において視覚的に知覚可能なブロックノイズが発生する可能性が時々ある。該場合においては、ブロックノイズ除去フィルタリングが、ブロック境界を平滑化して視覚的に知覚可能なブロックノイズを低減させるか又は除去することができる。従って、ブロックノイズを低減又は除去するために復号されたブロックをフィルタリングするためのブロックノイズ除去フィルタ（示されていない）を利用することも可能である。オプションのブロックノイズ除去フィルタリングに引き続き、再構築されたブロックはフレームストア６８内に入れられ、フレームストア６８は、後続する映像ブロックの空間的及び時間的予測のための基準ブロックを提供し、さらに表示デバイス（例えば、図１の表示デバイス２８）を駆動するための復号された映像も生成する。
【０１００】
図４は、この開示に一致する適応型走査の仮説例を示す概念図である。この例おいては、係数位置は、７１においてｃ１乃至ｃ１６のラベルが付される。４つの連続するブロックに関するブロック１（７２）、ブロック２（７３）、ブロック３（７４）及びブロック４（７５）には実際の係数値が示される。ブロック１乃至４の実際の係数値は、量子化された残差係数、量子化なしの変換係数、又はその他のタイプの係数を表すことができる。その他の例においては、位置は、残差ブロックの画素値の位置を表すことができる。ブロック１乃至４は、同じ予測モードと関連づけられたブロックを備えることができる。図４に示される例においては、ブロック１乃至４は、４×４ブロックである。しかしながら、上述されるように、この開示の技法は、あらゆるサイズのブロックに適用するように拡大することができる。さらに、映像符号器２０の係数走査ユニット４１に関して後述されるように、映像復号器２６の係数走査ユニット６３は、統計値を収集して同様の方法で走査順序を適応させることができる。
【０１０１】
最初は、係数走査ユニット４１は、ジグザグ走査順序を用いてブロック１の係数を走査することができる。この場合は、係数走査ユニット４１は、次の順序、すなわち、ｃ１、ｃ２、ｃ５、ｃ９、ｃ６、ｃ３、ｃ４、ｃ７、ｃ１０、ｃ１３、１４、ｃ１１、ｃ８、ｃ１２、ｃ１５、ｃ１６の順序でブロック１の係数位置を走査する。従って、ブロック１の係数を走査後は、係数走査ユニット４１は、一次元係数ベクトルｖを出力し、ここで、ｖ＝［９，４，６，１，１，０，０，０，０，２，０，０，０，０，０，０］である。図４に示される例においては、係数走査ユニット４１は最初はジグザグ走査順序を用いてブロック１の係数を走査するが、そのジグザグ走査は、適応型走査に関する唯一の可能な開始点ではない。水平走査、垂直走査、又はその他の初期走査シーケンスを初期走査順序として用いることができる。ジグザグ走査の使用は、２つの非ゼロ係数の間に一連の４つのゼロを有する一次元係数ベクトルｖが結果的に得られる。
【０１０２】
統計値１（７６）は、ブロック１の統計値を表す。統計値１（７６）は、各係数位置が非ゼロ値を有する回数を追跡するための係数位置の各々に関するカウント値であることができる。図４の例においては、係数統計値は、すべてゼロに初期化される。しかしながら、その他の初期化方式も用いることができる。例えば、各々の予測モードの統計値を初期化するために各々の予測モードの典型的な又は平均の係数統計値を用いることができる。ブロック１をコーディング後は、統計値１（７６）は、非ゼロであるブロック１のあらゆる係数位置に関して１の値を有し、ゼロの値を有するブロック１のあらゆる係数位置に関してゼロの値を有する。統計値２（７７）は、ブロック１及び２の結合された統計値を表す。係数走査モジュール４１は、ブロック２において係数位置が非ゼロ値を有するときには統計値１（７６）のカウントを増やし、係数位置がゼロの値を有するときにはカウントを同じに維持する。従って、図４に示されるように、係数走査モジュール４１は、係数位置ｃ１、ｃ２、ｃ５、ｃ９、及びｃ１３の統計値を２の値に増やし、係数位置の残りの係数位置の統計値を統計値１（７６）と同じに維持する。統計値３（７８）は、ブロック１乃至３の結合された統計値を表し、統計値４（７９）は、ブロック１乃至４の結合された統計値を表す。上述されるように、幾つかの側面においては、係数走査ユニット４１は、複数のカウンタを用いてブロックに関する統計値を収集することができる。
【０１０３】
係数走査ユニット４１は、収集された統計値に基づいて走査順序を適応させることができる。示される例においては、係数走査ユニット４１は、統計値４（７９）に基づいて４つの映像ブロック後に走査順序を適応させるように構成することができる。この場合は、係数走査ユニット４１は、収集された統計値を解析し、係数位置がその対応するカウント値ずつ降順で走査されるように走査順序を適応させる。従って、係数走査ユニット４１は、初期走査順序に従ってブロック１乃至４を走査し、後続するブロック、例えばブロック５（示されていない）の位置を次の順序、すなわち、ｃ１、ｃ５、ｃ９、ｃ２、ｃ１３、ｃ６、ｃ３、ｃ４、ｃ７、ｃ１０、ｃ１４、ｃ１１、ｃ８、ｃ１２、ｃ１５、ｃ１６の順序で走査するように走査順序を適応させることができる。係数走査ユニット４１は、ブロックに関する収集された統計値に基づいて走査順序が再度適応化されるか又は例えば後続するコーディング単位の始めに再初期化されるまで後続するブロックの走査を継続する。
【０１０４】
走査順序が初期走査順序（例えば、ジグザグ走査順序）から新しい走査順序に変わるように走査順序を適応させることは、一次元係数ベクトルの始めにおいては非ゼロ係数、終わりにおいてはゼロ係数を促進する。図４の例においては、新しい走査順序は、所定の予測モードに関しては垂直次元における係数のほうが水平次元における係数よりも非ゼロである尤度が高いという事実を反映して、垂直次元における係数を水平次元における係数よりも早く走査する。ブロック１乃至４は、すべてが同じ予測モードを有することができ、過去の統計値は、可能性のある将来の非ゼロ係数位置を表すことができる。従って、過去の統計値を用いて走査順序を定義することによって、この開示の技法は、走査された一次元ベクトルの始め付近における非ゼロ係数のグループ分け及び走査された一次元ベクトルの終わり付近におけるゼロ値係数のグループ分けを促進し、それにより２つの非ゼロ係数間におけるゼロ群数を取り除くか又は減らすことができる。これは、エントロピーコーディング中に達成可能な圧縮レベルを向上させることができる。
【０１０５】
図５は、この開示と一致するコーディング技法を示す流れ図である。図５に示されるコーディング技法は、映像ブロックの符号化又は復号のいずれに関しても用いることができる。図５に示されるように、係数走査ユニット４１、６３は、現在のブロックの対応する予測モードに関して定義された初期走査順序に従ってブロックの係数を走査する（８０）。映像符号器２０の観点からは、走査は、二次元の係数ブロックを一次元係数ベクトルに変換する。しかしながら、映像復号器２６の観点からは、走査は、一次元係数ベクトルを二次元係数ブロックに変換する。一例として、対応する予測モードの初期走査順序は、ジグザグ走査順序であることができる。ジグザグ走査は、唯一の可能な初期走査順序ではない。水平走査、垂直走査、又はその他のいずれかの初期走査順序を初期走査順序として用いることができる。
【０１０６】
係数走査ユニット４１、６３は、１つ以上のブロックに関する統計値を収集する（８２）。特に、走査されるブロックの各々に関して、係数走査ユニット４１、６３は、二次元ブロック内の係数位置の各々が非ゼロ係数である頻度を例えばカウンタで追跡する統計値を収集することができる。係数走査ユニット４１、６３は、走査順序を評価すべきかどうかを決定する（８３）。係数走査ユニット４１、６３は、固定された間隔で（例えばすべてのブロック境界において又はｎのブロック境界後に）又は固定されていない間隔で（例えば、ブロック内の位置のカウント値のうちの１つがしきい値を超えるときに）走査順序を評価することができる。
【０１０７】
係数走査ユニット４１、６３が走査順序を評価しないことを決定した場合は、係数走査ユニット４１、６３は、初期走査順序に従って後続ブロックを走査する（８０）。係数走査ユニット４１、６３が、例えばｎのブロックが符号化／復号された後に、走査順序を評価することを決定した場合は、係数走査ユニットは、収集された統計値に基づいて走査順序を適応させることができる（８４）。例えば、係数走査ユニット４１、６３は、カウント値に基づいて降順でブロックの係数位置を走査するように走査順序を適応させることができ、該カウント値は、所定の位置が非ゼロ係数を有する尤度を反映するものである。走査順序を適応後は、係数走査ユニット４１、６３は、幾つかの例においては、統計値のいずれかのカウント値がしきい値を超えているかどうかを決定する（８６）。係数位置のうちの１つがしきい値を超える対応するカウント値を有する場合は、係数走査ユニット４１、６３は、収集された統計値、例えば係数カウント値を、正規化することができる（８７）。例えば、係数走査ユニット４１、６３は、カウント値の各々を予め決められた係数分の１倍に減らす、例えば２分１を掛けてカウント値の各々を１／２に減らすことによって又はカウント値を一組の初期カウント値にリセットすることによって係数カウント値を正規化することができる。係数カウント値を正規化することは、映像符号器２０がローカルな係数統計値により素早く適応するのを可能にすることができる。
【０１０８】
収集された統計値を正規化後又は正規化が行われないときに、係数走査ユニット４１、６３は、適応された走査順序を用いて後続ブロックを走査する（８８）。係数走査ユニット４１、６３は、少なくとも１つの後続ブロックが以前に走査された映像ブロックのコーディング単位内に存在するときに適応された走査順序を用いて少なくとも１つの後続ブロックを走査することができる。係数走査ユニット４１、６３は、例えばコーディング単位境界において、走査順序が再度調整されるか又は再初期化されるまで後続映像ブロックを走査し続けることができる。この方法により、係数走査ユニット４１、６３は、非ゼロである尤度がより低いと決定されたブロックの係数位置の前に非ゼロである尤度がより高いと決定されたブロックの係数位置を走査するように収集された統計値に基づいて走査順序を適応させる。従って、一次元係数ベクトルは、走査された一次元ベクトルの始め付近における非ゼロ係数及び走査された一次元ベクトルの終わり付近におけるゼロ値係数のグループ分けを促進するように配列される。これは、エントロピーコーディング中に達成可能な圧縮レベルを向上させることができる。
【０１０９】
幾つかの例においては、予測モードの各々は異なる係数統計値を有することができるため、係数走査ユニット４１、６３は、走査順序を予測モードの各々に関して別々に適応的に調整することができる。換言すると、係数走査ユニット４１、６３は、予測モードの各々に関して別個の統計値を維持し、予測モードの各々に関する走査順序を各々の統計値に基づいて異なる形で調整することができる。従って、上述される流れ図例は、各予測モードに関して係数走査ユニット４１、６３によって実行することができる。
【０１１０】
図６は、この開示の技法のうちの１つにより映像ブロックに関するヘッダ情報を符号化する符号化ユニット、例えば映像符号化器２０のエントロピー符号化ユニット４６、の動作例を示す流れ図である。エントロピー符号化ユニット４６は、ブロックに関するヘッダ情報を１つ以上のヘッダ構文要素の形で受け取る（９０）。ヘッダ構文要素は、現在の映像ブロックの特徴、例えば、ブロックタイプ、予測モード、ルマ及び／又はクロマに関するコーディングされたブロックパターン（ＣＢＰ）、ブロックパーティション、及び１つ以上の動きベクトル、を識別することができる。図６は、現在のブロックの予測モードを符号化することに関して説明される。しかしながら、ヘッダ構文要素のうちのその他の構文要素を符号化するために同様の技法を用いることができる。
【０１１１】
エントロピー符号化ユニット４６は、現在のブロックの予測モードを１つ以上の以前に符号化されたブロックの予測モードと比較する（９２）。１つ以上の以前に符号化されたブロックは、例えば、１つ以上の隣接ブロックを備えることができる。図６の例においては、２つの以前に符号化されたブロック、例えば上隣ブロック及び左隣ブロック、が解析される。現在のブロックの予測モードが、以前に符号化されたブロックのうちのいずれかのブロックの予測モードと同じである場合は、エントロピー符号化ユニット４６は、そうであることを示すための第１のビットを符号化する（９４）。一例として、エントロピー符号化ユニット４６は、現在のブロックの予測モードが以前に符号化されたブロックのうちのいずれかのブロックの予測モードと同じであることを示すために第１のビットを“１”として符号化することができる。
【０１１２】
エントロピー符号化ユニット４６は、上隣ブロックの予測モードを左隣ブロックの予測モードと比較する（９８）。上隣ブロックの予測モードが左隣ブロックの予測モードと同じである場合は、エントロピー符号化ユニット４６は、予測モードに関してそれ以上のビットを符号化しない（１００）。この場合は、予測モードは、単一ビットを用いて符号化することができる。
【０１１３】
しかしながら、上隣ブロックの予測モードが左隣ブロックの予測モードに等しくない場合は、エントロピー符号化ユニット４６は、これらの近隣ブロックのうちのいずれが現在のブロックと同じ予測モードを有するかを示すために予測モードを表す第２のビットを符号化する（１０２）。例えば、エントロピー符号化ユニット４６は、現在のブロックの予測モードが上隣ブロックの予測モードと同じである場合は“１”を符号化し、現在のブロックの予測モードが左隣ブロックの予測モードと同じである場合は“０”を符号化することができる。従って、エントロピー符号化ユニット４６は、現在のブロックの予測モードが近隣ブロックのうちの１つの近隣ブロックの予測モードに等しいときには１ビット、そして多くても２ビット、という少ないビット数を用いて現在のブロックの予測モードを符号化することができる。
【０１１４】
現在のブロックの予測モードが以前に符号化されたブロックのうちのいずれのブロックの予測モードとも同じでない場合は、エントロピー符号化ユニット４６は、そうであることを示すために第１のビットを符号化する（９６）。上例を続けると、エントロピー符号化ユニット４６は、現在のブロックの予測モードが以前に符号化されたブロックのうちのいずれのブロックの予測モードとも同じでないことを示すために第１のビットを“０”として符号化することができる。エントロピー符号化ユニット４６は、可能な予測モードの組を再編することができる（１０４）。エントロピー符号化ユニット４６は、近隣ブロックの予測モード又は予測モード（複数）を可能な予測モードの組から取り除くことによって可能な予測モードの組を再編することができる。上隣及び左隣のブロックが互いに異なる予測モードを有する場合は、エントロピー符号化ユニット４６は、２つの予測モードを組から取り除くことができる。上隣及び左隣のブロックが互いに同じ予測モードを有するときには、エントロピー符号化ユニット４６は、１つの予測モード（すなわち、上隣及び左隣のブロックの予測モード）を組から取り除くことができる。さらに、幾つかの例においては、エントロピー符号化ユニット４６は、１つ以上の追加のコーディングモードを組から選択的に取り除くことができる。エントロピー符号化ユニット４６が１つ以上の追加のコーディングモードを取り除くときには、図２の予測ユニット３２も、同じ追加のコーディングモードが選択されないようにこれらの追加のコーディングモードを可能な予測モードの組から取り除く。エントロピー符号化ユニット４６は、１つ以上の予測モードを取り除いた後は、組の残りの予測モードのモード数を調整する。
【０１１５】
エントロピー符号化ユニット４６は、現在のブロックの予測モードを表す符号語を符号化する（１０６）。エントロピー符号化ユニット４６は、ＣＡＶＬＣ、ＣＡＢＡＣ、又はその他のエントロピーコーディング法を用いて現在の映像ブロックの予測モードを符号化することができる。図７に関してより詳細に説明されるように、符号化ユニット４６は、幾つかの例においては、１つ以上の以前に符号化されたブロックの予測モードに基づいて現在のブロックの予測モードを符号化する際に用いるためのコーディングコンテキストを適応的に選択することができる。
【０１１６】
図７は、この開示の一側面によるコーディングコンテキストの選択を示した流れ図である。上述されるように、現在のブロックの予測モードのタイプと１つ以上の以前に符号化されたブロック、例えば上隣及び左隣のブロック、の予測モードのタイプとの間には相関関係が存在することができる。例えば、上隣及び左隣のブロックの予測モードが両方とも一方向性予測モードであるときには、現在のブロックの予測モードも一方向性予測モードである確率がより高い。同様に、
上隣及び左隣のブロックの予測モードが両方とも二方向性予測モードであるときには、現在のブロックの予測モードも二方向性予測モードである確率がより高い。
【０１１７】
上記のように、エントロピー符号化ユニット４６は、上隣及び左隣のブロックの予測モードが一方向性予測モードであるかどうかを決定すること（１１２）及び上隣及び左隣のブロックの両方の予測モードが一方向性予測モードであるときには第１のコーディングコンテキストを選択することができる（１１４）。第１のコーディングコンテキストは、上隣及び左隣のブロックの両方の予測モードが一方向性予測モードであるときに現在の映像ブロックの予測モードに関する確率分布をモデル化する。第１のコーディングコンテキストの確率分布は、組の二方向性予測モードに関してよりも組の一方向性予測モードに関してより高い確率を提供することができる。例えばＣＡＶＬＣの場合は、第１のコーディングコンテキストは、二方向性予測モードと関連づけられた符号語よりも短い符号語を一方向性予測モードと関連づけるコーディングテーブルを用いることができる。
【０１１８】
上隣及び左隣のブロックの各々のブロックの予測モードが一方向性予測モードでないときには、エントロピー符号化ユニット４６は、上隣及び左隣のブロックの各々のブロックの予測モードが二方向性予測モードであるかどうかを決定することができる（１１６）。エントロピー符号化ユニット４６は、上隣及び左隣のブロックの各々のブロックの予測モードが両方とも二方向性予測モードであるときには第２のコーディングコンテキストを選択することができる（１１７）。第２のコーディングコンテキストは、現在のモードは一方向性予測モードよりも二方向性予測モードである確率がより高いという仮定に基づいて現在の映像ブロックの予測モードに関する確率分布をモデル化する。繰り返すと、例えばＣＡＶＬＣの場合は、第２のコーディングコンテキストは、第１のコーディングコンテキストは、一方向性予測モードと関連づけられた符号語よりも短い符号語を二方向性予測モードと関連づけるコーディングテーブルを用いることができる。
【０１１９】
上隣及び左隣のブロックの予測モードが両方とも二方向性予測モードであるわけではない、すなわち以前に符号化されたブロックの予測モードが二方向性予測モードと一方向性予測モードの組み合わせである、ときには、エントロピー符号化ユニット４６は、第３のコーディングコンテキストを選択することができる（１１８）。第３のコーディングコンテキストは、現在の予測モードの確率は組の一方向性予測モードと二方向性予測モードとの間でより均一に分布されるという仮定に基づいて生成される。例えばＣＡＶＬＣの場合は、第３のコーディングコンテキストは、同様の符号長を有する符号語を二方向性予測モード及び一方向性予測モードと関連づけるコーディングテーブルを用いることができる。
【０１２０】
エントロピー符号化ユニット４６は、選択されたコーディングコンテキストに従って現在の映像ブロックの予測モードを符号化する（１１９）。現在の映像ブロックの予測モードを符号化する際に用いるためのコーディングコンテキストを１つ以上の以前に符号化された映像ブロックの予測モードに基づいて選択することは、その結果として、予測モード情報のより良い圧縮を行うことができる。復号ユニット６０が映像ブロックの予測モードを正確に復号できるように同じコーディングコンテキスト選択技法が復号ユニット６０によって実行される。
【０１２１】
図８は、この開示の技法により映像ブロックのヘッダ情報を復号する復号ユニット、例えば映像復号器２６のエントロピー復号ユニット６０、の動作例を示す流れ図である。エントロピー復号ユニット６０は、符号化された映像ビットストリームを復号して例えば１つ以上のヘッダ構文要素の形のヘッダ情報を得る。予測モードの復号を行うエントロピー復号ユニット６０の説明は、例示することを目的する。技法は、その他のヘッダ構文要素、例えばブロックタイプ、ブロックパーティション、ＣＢＰ、等の復号にまで拡大することができる。
【０１２２】
特に、エントロピー復号ユニット６０は、現在のブロックの予測モードを表す第１のビットを受け取る（１２０）。エントロピー復号ユニット６０は、現在のブロックの予測モードが以前に復号されたブロック、例えば上隣又は左隣のブロック、の予測モードと同じであることを予測モードを表す第１のビットが示すかどうかを決定する（１２２）。エントロピー復号モジュール６０は、例えば、第１のビットが“１”のときには現在のブロックの予測モードが上隣及び左隣のブロックのうちの１つのブロックの予測モードと同じであると決定し、第１のビットが“０”のときには現在のブロックの予測モードが上隣及び左隣のブロックの予測モードと同じでないと決定することができる。
【０１２３】
現在のブロックの予測モードが上隣及び左隣のブロックのうちの１つのブロックの予測モードと同じであるとエントロピー復号ユニット６０が決定したときには、エントロピー復号ユニット６０は、上隣ブロックの予測モード及び左隣ブロックの予測モードが同じであるかどうかを決定する（１２４）。上隣ブロックの予測モード及び左隣ブロックの予測モードが同じであるときには、現在の映像ブロックの予測モードを表すビットはそれ以上は受け取られず、エントロピー復号ユニット６０は、これらの近隣ブロックのうちのいずれかのブロックの予測モードを現在のブロックの予測モードとして選択する（１２６）。上隣ブロックの予測モード及び左隣ブロックの予測モードが異なるときには、予測モードを表す１つの追加のビットが受け取られ、エントロピー復号ユニット６０は、予測モードを表す次の受け取られたビットに基づいて正確な近隣ブロックの予測モードを現在のブロックの予測モードとして選択する（１２８）。例えば、エントロピー復号ユニット６０は、次の受け取られたビットが“１”であるときに上隣ブロックの予測モードを現在のブロックの予測モードとして選択し、次の受け取られたビットが“０”であるときに左隣ブロックの予測モードを現在のブロックの予測モードとして選択することができる。
【０１２４】
現在のブロックの予測モードが上隣及び左隣ブロックのいずれのブロックの予測モードとも同じでないとエントロピー復号ユニット６０が決定したとき、すなわち、予測モードを表す第１のビットが“０”であるときは、エントロピー復号ユニット６０は、可能な予測モードの組の１つ以上の予測モードを取り除くことができる（１３０）。エントロピー復号ユニット６０は、上隣及び左隣のブロックの予測モードを可能な予測モードの組から取り除くことができる。上隣及び左隣のブロックが同じ予測モードを有する場合は、エントロピー復号ユニット６０は、上記において詳細に説明されるように近隣ブロックの予測モード及び少なくとも１つのその他の予測モードを取り除くことができる。
【０１２５】
エントロピー復号ユニット６０は、残りのビット、例えば上例における４ビット、を復号して現在のブロックの予測モードの予測モード番号を得る（１３２）。エントロピー復号ユニット６０は、残りの予測モードの予測モード番号付けを、エントロピー符号化ユニット４６によって行われる予測モード番号付け調整プロセスの逆のプロセスで調整することができる（１３４）。一例においては、エントロピー復号ユニット６０は、取り除かれている予測モードを挿入して戻すことによって復号された予測モード番号（０乃至１５）を元の予測モード番号（０乃至１７）に戻すことができる。幾つかの例においては、エントロピー復号ユニット６０は、上記において詳細に説明されるように、１つ以上の以前に復号された映像ブロックの予測モードに基づいて、例えば、以前に復号されたブロックの予測モードが両方とも一方向性であるか、両方とも二方向性であるか、又は一方が一方向性で他方が二方向性であるかに基づいて、ブロックの予測モードに関して異なるコーディングコンテキストを選択することができる。エントロピー復号ユニット６０は、選択された予測モードに従って予測ブロックを生成するために予測モードを予測ユニット６２に提供する（１３６）。図３に関して説明されるように、予測ブロックが残差画素と結合されてユーザーに提示するための再構築されたブロックが生成される。
【０１２６】
この開示において説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はそのいずれかの組み合わせにおいて実装することができる。ユニット又は構成要素として説明されるいずれの特徴も、統合された論理デバイス内においてまとめて又は個別であるが相互運用可能な論理デバイスとして別個に実装することができる。ソフトウェア内に実装された場合は、該技法は、少なくとも部分的には、実行されたときに上述される方法のうちの１つ以上を実行する命令を備えるコンピュータによって読み取り可能な媒体によって実現することができる。コンピュータによって読み取り可能な媒体は、パッケージング材料を含むことができるコンピュータプログラム製品の一部を成すことができる。コンピュータによって読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、例えば同期的ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、非揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、磁気又は光学データ記憶媒体、等を備えることができる。これらの技法は、追加で又は代替として、少なくとも部分的には、命令又はデータ構造の形態で符号を搬送又は通信し、コンピュータによってアクセスすること、読み取ること、及び／又は実行することが可能なコンピュータによって読み取り可能な通信媒体によって実現することができる。
【０１２７】
符号は、１つ以上のプロセッサ、例えば１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、又はその他の同等の集積又は個別論理回路、によって実行することができる。従って、ここにおいて用いられる“プロセッサ”という用語は、上記の構造又はここにおいて説明される技法の実装に適したその他の構造のうちのいずれかを指すことができる。さらに、幾つかの側面においては、ここにおいて説明される機能は、符号化及び復号に関して構成された専用ソフトウェアユニット又はハードウェアユニット内において提供すること、又は結合された映像符号器−復号器（ＣＯＤＥＣ）内に組み入れることができる。異なる特徴をユニットとして描くことは、例示されるデバイスの異なる機能上の側面を強調することが意図され、該ユニットを別個のハードウェア又はソフトウェア構成要素によって実現させなければならないということは必ずしも意味しない。むしろ、１つ以上のユニットと関連づけられた機能は、共通又は別個のハードウェア又はソフトウェア構成要素内に組み入れることができる。
【０１２８】
この開示の様々な実施形態が説明されている。これらの及びその他の実施形態は、以下の請求項の適用範囲内である。
【図１】
2010530188.tif 000005
【図２】
2010530188.tif 000006
【図３】
2010530188.tif 000007
【図４】
2010530188.tif 000008
【図５】
2010530188.tif 000009
【図６】
2010530188.tif 000010
【図７】
2010530188.tif 000011
【図８】
2010530188.tif 000012
【国際調査報告】
2010530188.tif 000013
2010530188.tif 000014
2010530188.tif 000015