関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2011年11月1日に出願した米国仮出願第61/554,273号の利益を主張する。
本開示は、ビデオコーディングに関し、より詳細には、変換ユニットパーティショニング(transform unit partitioning)に関する。
デジタルビデオ機能は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格によって定義された規格、およびそのような規格の拡張に記述されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化(encode)、復号(decode)、および/または記憶することができる。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部)はビデオブロックにパーティショニングされ、これらのビデオブロックは、ツリーブロック、コーディングユニット(CU:coding unit)および/またはコーディングノードとも呼ばれる場合がある。ピクチャのイントラコード化(I)スライス内のビデオブロックは、同じピクチャの中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス内のビデオブロックは、同じピクチャの中の隣接ブロック内の参照サンプルに対する空間的予測、または他の参照ピクチャの中の参照サンプルに対する時間的予測を使用して符号化することができる。ピクチャはフレームと呼ばれる場合があり、参照ピクチャは参照フレームと呼ばれる場合がある。
空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべきオリジナルブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データはピクセル領域から変換領域に変換され、残差変換係数をもたらし、次いで、それらが量子化され得る。量子化された変換係数は、最初は2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査されることができ、さらなる圧縮を達成するためにエントロピーコーディングが変換係数に適用されることができる。
概して、一態様では、本開示は、4:2:2サンプリングフォーマットが適用されるときにルーマ成分とクロマ成分との間で変換ユニット(TU:transform unit)パーティショニングを同期するための技法を記載する。一例として、ビデオデータが4:2:2サンプリングフォーマットに従ってフォーマットされるときに、本技法は、変換目的で、各クロマ成分のブロックを第1のクロマサブブロックと第2のクロマサブブロックとにパーティショニングすることを含むことができる。第1のクロマサブブロックおよび第2のクロマサブブロックは、たとえば、それぞれ上部(top)クロマサブブロックおよび下部(bottom)クロマサブブロックであり得る。ルーマ成分の変換ユニットパーティショニングは、2つのクロマサブブロックの両方におけるさらなるパーティションと同期され得る。このようにして、4:2:2サンプリングフォーマットで、これらの技法に従ってパーティショニングされたクロマ成分の変換ユニットは、有用な、または望ましいサイズおよび形状の変換をもたらし得る。場合によっては、本明細書に記載された技法は、クロマ変換ユニットがルーマ成分の対応する変換ユニットと同じアスペクト比を有するように適用され得る。
概して、本開示の別の態様は、変換ユニットをパーティショニングするときのコード化ブロックフラグ(CBF:coded block flag)コーディングのための技法を記載する。一例として、4:2:2フォーマットに対応するクロマ成分ごとに、クロマ成分(UまたはV)の変換ユニットについてコード化ブロックフラグをコーディングする際に、ジョイントコード化ブロックフラグが、クロマ成分の第1および第2(たとえば、上部および下部)のクロマ変換ユニットのペアごとに、最初にシグナリングされ得る。ジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に、すなわちペア内のクロマ変換ユニットの少なくとも1つの内部に、少なくとも1つの非ゼロ係数が存在することを示す場合、1つまたは複数のさらなるコード化ブロックフラグが、2つの変換ユニットの各々が任意の非ゼロ変換係数を有するかどうかをシグナリングするために送られ得る。そうではなく、ジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に少なくとも1つの非ゼロ係数が存在しないことを示す場合、コード化ブロックフラグのさらなるシグナリングは、クロマ成分のペアのための変換ユニットには必要とされない。
一例では、本開示は、ビデオデータのルーマ成分について変換係数のN×Nアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得することと、クロマ変換係数のN/2×N/2サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成することと、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを含む、ビデオデータを復号するための方法を記載する。
一例では、本開示は、ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得することと、クロマ変換係数の複数のN/4×N/4サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/4×N/4サブアレイを生成することと、残差サンプル値のN/4×N/4サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを含む、ビデオデータを復号するための方法を記載する。
一例では、本開示は、ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得することと、クロマ変換係数のN/2×N/8サブアレイの各々に逆変換を実行して残差サンプル値の8個のN/2×N/8サブアレイを生成することと、残差サンプル値のN/2×N/8サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを含む、ビデオデータを復号するための方法を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数のN×Nアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得することと、クロマ変換係数のN/2×N/2サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成することと、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイスを記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得することと、クロマ変換係数の複数のN/4×N/4サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/4×N/4サブアレイを生成することと、残差サンプル値のN/4×N/4サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイスを記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得することと、クロマ変換係数のN/2×N/8サブアレイの各々に逆変換を実行して残差サンプル値の8個のN/2×N/8サブアレイを生成することと、残差サンプル値のN/2×N/8サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイスを記載する。
別の例では、本開示は、実行されたとき1つまたは複数のプロセッサに、ビデオデータのルーマ成分について変換係数のN×Nアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得することと、クロマ変換係数のN/2×N/2サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成することと、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行わせる命令を記憶した、非一時的コンピュータ可読媒体を記載する。
別の例では、本開示は、実行されたとき1つまたは複数のプロセッサに、ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得することと、クロマ変換係数の複数のN/4×N/4サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/4×N/4サブアレイを生成することと、残差サンプル値のN/4×N/4サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行わせる命令を記憶した、非一時的コンピュータ可読媒体を記載する。
別の例では、本開示は、実行されたとき1つまたは複数のプロセッサに、ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得することと、ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得することと、クロマ変換係数のN/2×N/8サブアレイの各々に逆変換を実行して残差サンプル値の8個のN/2×N/8サブアレイを生成することと、残差サンプル値のN/2×N/8サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成することとを行わせる命令を記憶した、非一時的コンピュータ可読媒体を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数のN×Nアレイを取得するための手段と、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得するための手段と、クロマ変換係数のN/2×N/2サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成するための手段と、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成するための手段とを備える、ビデオデータを復号するための装置を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得するための手段と、ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得するための手段と、クロマ変換係数の複数のN/4×N/4サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/4×N/4サブアレイを生成するための手段と、残差サンプル値のN/4×N/4サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成するための手段とを備える、ビデオデータを復号するための装置を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得するための手段と、ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得するための手段と、クロマ変換係数のN/2×N/8サブアレイの各々に逆変換を実行して残差サンプル値の8個のN/2×N/8サブアレイを生成するための手段と、残差サンプル値のN/2×N/8サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成するための手段とを備える、ビデオデータを復号するための装置を記載する。
一例では、本開示は、ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングすることと、クロマ残差値のサブアレイの各々に変換を実行することによってクロマ成分について変換係数を生成することとを含む、ビデオデータを符号化するための方法を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について残差値のN×Nアレイを取得するための手段と、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得するための手段と、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングするための手段と、クロマ残差値のサブアレイの各々に変換を実行することによってクロマ成分について変換係数を生成するための手段とを含む、ビデオデータを符号化するための装置を記載する。
別の例では、本開示は、ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングすることと、クロマ残差値のサブアレイの各々に変換を実行することによってクロマ成分について変換係数を生成することとを行うように構成された1つまたは複数のプロセッサを備える、ビデオ符号化デバイスを記載する。
別の例では、本開示は、実行されたとき1つまたは複数のプロセッサに、ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングすることと、クロマ残差値のサブアレイの各々に変換を実行することによってクロマ成分について変換係数を生成することとを行わせる命令を記憶した、非一時的コンピュータ可読媒体を記載する。
一例では、本開示は、クロマ成分に関連付けられた第1の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、クロマ成分に関連付けられた第2の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、第1の変換ユニットおよび第2の変換ユニットについてジョイントコード化ブロックフラグを生成することとを含む、ビデオデータを符号化するための方法であって、ジョイントコード化ブロックフラグは、第1の変換ユニットまたは第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むかどうかを示す、方法を記載する。
別の例では、本開示は、クロマ成分に関連付けられた第1の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定するための手段と、クロマ成分に関連付けられた第2の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定し、第1の変換ユニットおよび第2の変換ユニットについてジョイントコード化ブロックフラグを生成するための手段とを備える、ビデオデータを符号化するための装置であって、ジョイントコード化ブロックフラグは、第1の変換ユニットまたは第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むかどうかを示す、装置を記載する。
別の例では、本開示は、クロマ成分に関連付けられた第1の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、クロマ成分に関連付けられた第2の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定し、第1の変換ユニットおよび第2の変換ユニットについてジョイントコード化ブロックフラグを生成することとを行うように構成された1つまたは複数のプロセッサを備える、ビデオ符号化デバイスであって、ジョイントコード化ブロックフラグは、第1の変換ユニットまたは第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むかどうかを示す、ビデオ符号化デバイスを記載する。
別の例では、本開示は、実行されたとき1つまたは複数のプロセッサに、クロマ成分に関連付けられた第1の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、クロマ成分に関連付けられた第2の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを判定し、第1の変換ユニットおよび第2の変換ユニットについてジョイントコード化ブロックフラグを生成することとを行わせる命令を記憶した、非一時的コンピュータ可読媒体であって、ジョイントコード化ブロックフラグは、第1の変換ユニットまたは第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むかどうかを示す、非一時的コンピュータ可読媒体を記載する。
1つまたは複数の例の詳細は、添付の図面および以下の説明に示されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
コーディングユニットのルーマ成分およびクロマ成分についてのサンプルフォーマットを示す概念図。
コーディングユニットのルーマ成分およびクロマ成分についての別のサンプルフォーマットを示す概念図。
コーディングユニットのルーマ成分およびクロマ成分についての別のサンプルフォーマットを示す概念図。
4:2:2サンプルフォーマットに従ってフォーマットされた16×16コーディングユニットを示す概念図。
変換ユニットの4分木分解構造を示す概念図。
変換ユニットの4分木分解構造を示す概念図。
変換ユニットの4分木分解構造を示す概念図。
4分木分解レベルを示す概念図。
4:2:2サンプルフォーマットに従ってフォーマットされた16×16コーディングユニットに適用されたTUの4分木分解を示す概念図。
本開示に記載された技法を利用できる、例示的なビデオ符号化および復号システムを示すブロック図。
ビデオブロックのための変換ユニットパーティショニングのための技法を示す概念図。
ビデオブロックのための変換ユニットパーティショニングのための技法を示す概念図。
ビデオブロックのための変換ユニットパーティショニングのための技法を示す概念図。
ビデオブロックのための変換ユニットパーティショニングのための技法を示す概念図。
4:2:2サンプルフォーマットに従ってフォーマットされた16×16ビデオブロックのための変換ユニットパーティショニングのための技法を示す概念図。
コード化ブロックフラグコーディングについてのブロック関連付けのための技法を示す概念図。
コード化ブロックフラグのコーディングについてのブロック関連付けのための技法を示す概念図。
コード化ブロックフラグのコーディングについてのブロック関連付けのための技法を示す概念図。
コード化ブロックフラグのコーディングについてのブロック関連付けのための技法を示す概念図。
クロマブロックのための、変換ユニットパーティショニングおよびコード化ブロックフラグコーディングについてのブロック関連付けのための例示的な方法を示すフローチャート。
本開示に記載された技法を実装できる、例示的なビデオエンコーダを示すブロック図。
クロマブロックのための、残差値のパーティショニングおよび変換ユニットの生成のための例示的な方法を示すフローチャート。
本開示に記載された技法を実装できる、例示的なビデオデコーダを示すブロック図。
変換係数から残差値を生成するための例示的な方法を示すフローチャート。
詳細な説明
いくつかのビデオコーディング規格によれば、コーディングユニット(CU:coding unit)、そのルーマ成分、およびそのクロマ成分は、変換ユニット(TU:transform unit)パーティショニングのための同じ4分木分解構造を共有することができる。異なるカラーサンプリングフォーマットの下では、対応するクロマ成分ブロックは、ルーマブロックとは異なるサイズおよび形状を有する場合がある。さらに、HEVCの現行バージョンによれば、TUパーティショニングから生じ得る異なるサイズおよび形状の変換の必ずしもすべてが、定義され、クロマ成分ブロックのための使用に利用可能であるとは限らない。したがって、クロマ成分の変換ユニットパーティショニングのための他の技法が、より有用な形状およびサイズのTUをもたらす場合がある。本明細書に記載された例示的な技法のうちのいくつかによれば、4:2:2フォーマットの下で、クロマ成分の変換ユニットのパーティションは、ルーマ成分についてのその対応する変換ユニットと同じアスペクト比を有する場合がある。
デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するために、ビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオコーディング規格に従って定義され得る。ビデオコーディング規格の例には、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、ならびに、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264が含まれる。加えて、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)が存在する。
HEVCの規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、他の従前のビデオコーディング規格、たとえばITU−T H.264/AVCの開発中に利用可能なビデオコーディングデバイスに対して、現在のビデオコーディングデバイスの能力が向上していると仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供するが、HEVCは35個ものイントラ予測符号化モードを提供する。「HEVC Working Draft 4」または「WD4」と呼ばれるHEVCの最近のワーキングドラフト(WD)は、文書JCTVC−F803_d2、Brossら、「WD4: Working Draft 4 of High-Efficiency Video Coding(HEVC)」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第6回会議:イタリア トリノ、2011年7月、に記載されている。さらに、「HEVC Working Draft 8」または「WD8」と呼ばれるHEVCの最近の他のワーキングドラフトは、文書HCTVC−J1003_d7、Brossら、「High Efficiency Video Coding (HEVC) Text Specification Draft 8」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第10回会議:スウェーデン ストックホルム、2012年7月11〜20日、に記載されている。HEVC規格は、また、HEVCの配信バージョンのための規格番号であることを意図した、ISO/IEC 23008−HEVCと呼ばれる場合もある。本出願では、説明のために、開発中のHEVC規格の現在提案されている態様のうちのいくつかに従うコーディングが記載される。ただし、本開示に記載された技法は、また、ITU−T H.264または他の規格に従って定義されるビデオコーディングプロセス、またはプロプライエタリなビデオコーディングプロセスなどの他のビデオコーディングプロセスのためにも有用であり、適用され得る。
HEVC WD4などのビデオコーディング規格に従って動作する典型的なビデオエンコーダは、オリジナルビデオシーケンスの各フレーム(すなわち、ピクチャ)を、「ブロック」または「コーディングユニット」と呼ばれる、隣接する矩形領域にパーティショニングする。これらのブロックは、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的(フレーム内(intra-frame))予測技法および/または時間的(フレーム間(inter-frame))予測技法を適用することによって、符号化され得る。空間的予測は「イントラモード」(Iモード(登録商標))と呼ばれる場合があり、時間的予測は「インターモード」(PモードまたはBモード)と呼ばれる場合がある。予測技法は、参照サンプルのブロックと呼ばれる場合もある、ビデオデータの予測ブロックを生成する。コード化されるべきオリジナルビデオデータのブロックは、予測ブロックと比較される。ビデオデータのオリジナルブロックと予測ブロックとの間の差分は、残差データと呼ばれる場合がある。残差データは、通常、予測ブロックのピクセル値とビデオデータのオリジナルブロックのピクセル値との間の差分のアレイである。変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念上類似の変換は、対応する変換係数のセットを生成するために、コーディングプロセス中に残差データに適用され得る。したがって、ビデオのオリジナルブロックは、変換係数に逆変換を実行し、残差データを予測ブロックに追加することによって、再構成されることができる。変換係数はまた、量子化され得る。すなわち、変換係数の値は、定義されたビット深度にしたがってビットストリングとして表され得る。場合によっては、量子化は、低い値の変換係数をゼロとして表すことになり得る。量子化された変換係数は、変換係数レベルと呼ばれる場合がある。
HEVCに従うビデオコーディングの場合、一例として、ビデオフレームはコーディングユニットにパーティショニングされ得る。コーディングユニット(CU)は、一般に、ビデオ圧縮のために様々なコーディングツールがそれに適用される基本ユニットの役割を果たす矩形の画像領域を指す。CUは、通常正方形であり、たとえば、ITU−T H.264などの他のビデオコーディング規格において記述されるいわゆる「マクロブロック」と同様であると見なすことができる。CUは、ビデオサンプル値のアレイと見なすことができる。ビデオサンプル値は、画素、ピクセル、またはペルと呼ばれる場合もある。CUのサイズは、水平および垂直のサンプルの数によって定義され得る。したがって、CUはN×NまたはN×MのCUと記述され得る。
本開示では、「N×N」および「NbyN」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16ピクセルまたは16by16ピクセルを指すように互換的に使用される。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)、水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、水平方向にNピクセルを有し、ここでNは非負の整数値を表す。ブロック内のピクセルは行および列で構成され得る。さらに、ブロックは、必ずしも水平方向と垂直方向に同数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備える場合があり、ここでMは必ずしもNに等しいとは限らない。
良好なコーディング効率を達成するために、CUはビデオコンテンツに応じて可変サイズを有することができる。CUは、通常、Yと表記される輝度(luminance)成分、ならびに、UおよびVと表記される2つのクロマ成分を有する。2つのクロマ成分UおよびVは、それぞれCbおよびCrと表記される場合もある。さらに、HEVCによれば、ビットストリーム内のシンタックスデータは、サンプルの数に関してフレームまたはピクチャのための最大のCUである、最大コーディングユニット(LCU)を定義することができる。CUのサイズは、通常、水平および垂直のルーマ(luma)サンプルの数にしたがって定義される。通常、LCUは64×64のルーマサンプルを含む。他の寸法のCUは、LCUをサブCUに再帰的にパーティショニングすることによって生成されうる。ビットストリームに関するシンタックスデータは、CU深度と呼ばれる、LCUが分割され得る最大回数を定義することができる。したがって、ビットストリームは、また、最小コーディングユニット(SCU)を定義することもできる。通常、SCUは8×8のルーマサンプルを含む。したがって、一例では、4個の32×32CUが、64×64LCUを4個のサブCUにパーティショニングすることによって生成されることができ、32×32CUの各々は、さらに16個の8×8CUにパーティショニングされることができる。
クロマフォーマットと呼ばれる場合もあるビデオサンプリングフォーマットは、CUに含まれるルーマサンプルの数に対して、CUに含まれるクロマサンプルの数を定義することができる。クロマ成分に関するビデオサンプリングフォーマットに応じて、U成分およびV成分の、サンプルの数に関するサイズは、Y成分のサイズと同じか、またはY成分のサイズとは異なるものであり得る。H.264/AVCおよびHEVC WD4ビデオコーディング規格では、chroma_format_idcと呼ばれる値は、ルーマ成分に対して、クロマ成分の異なるサンプリングフォーマットを示すために定義される。表1は、chroma_format_idcの値と関連するクロマフォーマットとの間の関係を示す。
表1では、変数SubWidthCおよびSubHeightCは、ルーマ成分に関するサンプルの数と各クロマ成分に関するサンプルの数との間の、水平および垂直のサンプリングレートの比を示すために使用され得る。表1に記載されたクロマフォーマットでは、2つのクロマ成分は同じサンプリングレートを有する。
表1の例では、4:2:0フォーマットの場合、水平方向と垂直方向の両方について、ルーマ成分のサンプリングレートは、クロマ成分のサンプリングレートの2倍である。結果として、4:2:0フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分に関するサンプルのアレイの幅および高さは、クロマ成分に関するサンプルの各アレイの幅および高さの2倍である。同様に、4:2:2フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分に関するサンプルのアレイの幅は、各クロマ成分に関するサンプルのアレイの幅の2倍であるが、ルーマ成分に関するサンプルのアレイの高さは、各クロマ成分に関するサンプルのアレイの高さに等しい。4:4:4フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分に関するサンプルのアレイは、各クロマ成分に関するサンプルのアレイと同じ幅および高さを有する。
図1A〜図1Cは、コーディングユニットのルーマ成分およびクロマ成分に関する様々なサンプルフォーマットを示す概念図である。図1Aは、4:2:0サンプルフォーマットを示す概念図である。図1Aに示されたように、4:2:0サンプルフォーマットの場合、クロマ成分はルーマ成分の4分の1のサイズである。したがって、4:2:0サンプルフォーマットに従ってフォーマットされたCUの場合、クロマ成分のサンプルごとに4個のルーマサンプルが存在する。図1Bは、4:2:2サンプルフォーマットを示す概念図である。図1Bに示されたように、4:2:2サンプルフォーマットの場合、クロマ成分はルーマ成分の2分の1のサイズである。したがって、4:2:2サンプルフォーマットに従ってフォーマットされたCUの場合、クロマ成分のサンプルごとに2個のルーマサンプルが存在する。図1Cは、4:4:4サンプルフォーマットを示す概念図である。図1Cに示されたように、4:4:4サンプルフォーマットの場合、クロマ成分はルーマ成分と同じサイズである。したがって、4:4:4サンプルフォーマットに従ってフォーマットされたCUの場合、クロマ成分のサンプルごとに1個のルーマサンプルが存在する。
図2は、4:2:2サンプルフォーマットに従ってフォーマットされた16×16コーディングユニットの一例を示す概念図である。図2は、CU内のルーマサンプルに対するクロマサンプルの相対位置を示す。上述されたように、CUは、通常、水平方向および垂直方向のルーマサンプルの数によって定義される。したがって、図2に示されたように、4:2:2サンプルフォーマットに従ってフォーマットされた16×16CUは、ルーマ成分の16×16サンプルと、各クロマ成分について8×16サンプルとを含む。さらに、上述されたように、CUはより小さいCUにパーティショニングされうる。たとえば、図2に示されたCUは、4個の8×8CUにパーティショニングされ、各CUは、ルーマ成分について8×8サンプルと、各クロマ成分について4×8サンプルとを含む。
さらに、いくつかのビデオコーディング規格では、コーディングユニットは、予測または変換の目的でより小さいユニットにパーティショニングされ得る。HEVCによれば、CUは、1つまたは複数の予測ユニット(PU)および/または1つまたは複数の変換ユニット(TU)を含むことができる。本開示はまた、「ブロック」、「パーティション」または「部分」という用語を使用して、CU、PU、またはTUのいずれかを指す。一般に、「部分」は、ビデオフレームの任意のサブセットを指し得る。さらに、本開示は、通常、「ビデオブロック」という用語を使用して、CUのコーディングノードを指す。いくつかの特定の場合では、本開示はまた、「ビデオブロック」という用語を使用して、コーディングノードならびにPUおよびTUを含むツリーブロック、すなわち、LCUまたはCUを指す場合がある。したがって、ビデオブロックはCU内部のコーディングノードに対応する場合があり、ビデオブロックは固定または可変のサイズを有する場合があり、指定されたコーディング規格にしたがってサイズが異なる場合がある。
PUは、対応するCUの全部または一部を表す場合があり、PUのための参照サンプルを取り出すためのデータを含む場合がある。PUは、正方形または長方形の形状を有する場合がある。たとえば、図2のCUがインター予測を使用してコード化された場合、それは4個の長方形PUに分割され得、各PUは、時間的に隣接するフレーム内の参照サンプルのセットを識別する情報を含む。参照サンプルのセットは、結合されて予測ビデオブロックを形成し得る。上述されたように、予測ビデオブロックは、CUから減算されて残差データを形成し得る。
上述されたように、残差データをピクセル領域から変換領域に変換するために、変換が残差データに適用され得る。変換ブロックまたはTUは、変換が適用される残差データのセットに対応し得る。TUは、変換を実行し、変換係数の対応するセットを生成する目的のためのピクセル差分値のセットのサイズを表す。TUのサイズはCUのサイズと同じであり得、またはCUは複数のTUにパーティショニングされ得る。たとえば、図2に示されたCUでは、ルーマサンプルの16×16アレイに関連付けられた残差値に対して変換が実行されることができ、または、ルーマサンプルの4個の8×8アレイの各々に対して変換が実行されることができる。より大きいTUは、一般に、再構成された画像内のより知覚可能な「ブロッキネス」を伴うより大きい圧縮を提供し、より小さいTUは、一般に、より知覚可能でない「ブロッキネス」を伴うより小さい圧縮を提供する。TUサイズの選択は、レートひずみ最適化分析に基づき得る。
LCUと同様に、TUはより小さいTUに再帰的にパーティショニングされ得る。TUをより小さいTUにパーティショニングすることによって得られるTUは、変換ブロック構造と呼ばれる場合がある。変換ブロック構造の一例は、いわゆるツリー構造である。ツリー構造は、TU全体として、またはいくつかのより小さいTUに分割されるものとして、変換ブロックをコード化することができる。このプロセスは、あらゆる異なる分解レベルでブロックごとに再帰的に行うことができる。
図3は4分木分解構造を示す概念図であり、そこでは、TUは連続するレベルで4個の4分の1サイズのブロックに分割されるか、または分割されないかのいずれかである。図3では、実線の全ブロックが、オリジナルCUに対応し得るオリジナルTUである。破線は、4分木構造に従った変換ブロックの分解の1つの結果を示す。図3に示された分解は、いくつかの可能な分解結果のうちの1つであることに留意されたい。図3に示されたように、3つのレベルの変換分解が存在する。第1のレベル(すなわち、レベル1の分解)において、変換ブロック全体が4個の4分の1サイズのブロックに分割される。次いで、第2のレベル(すなわち、レベル2)において、第2の4分の1サイズの変換ブロックが、4個の16分の1サイズの変換ブロックにさらに分割される。次いで、第3のレベル(すなわち、レベル3)において、第4の16分の1サイズの変換ブロックが、4個のさらに小さい変換ブロックへとさらに分割される。符号化プロセスの間、ビデオエンコーダは、レートひずみ最適化分析に基づいて、変換ブロックがさらに分割されるべきかどうかを判定することができる。
図3に示された分解技法は4分木分解構造と呼ばれ、その場合、ブロックは、4個の4分の1サイズのブロックに分割されるか、または分割されないかのいずれかである。図3では、ブロックは正方形のサブブロックにしか分割されない。しかしながら、HEVC WD4に記述された分解技法などの他の分解技法では、ブロックはまた、変換目的で長方形のサブブロックに分割されることもできる。
図4Aおよび図4Bは4分木分解構造を示す概念図であり、そこでは、TUは、4個の非正方形ブロックに分割されるか、または分割されないかのいずれかである。図4Aに示されたように、TUは、変換目的で4個のより小さい非正方形ブロックにパーティショニングされることができる。さらに、図4Bに示されたように、非正方形分解構造も再帰的であり得る。たとえば、図4Bに示されたように、第1のサブブロックは、オリジナルブロックの16分の1のサイズを有する4個のさらに小さい非正方形ブロックに、さらにパーティショニングされることができる。
符号化されたビデオビットストリーム内でツリー分解構造をシグナリングするために、変換分割フラグが使用され得る。各ブロックについて、ブロックがさらに分割されるべきかどうかを示すために、変換分割フラグがビデオエンコーダによってコード化され得る。図5は、4分木分解を示すレベル図である。図5は、図3に示された4分木分解をシグナリングするために使用され得るレベル図の一例を示す。このように、図5は、分解構造を表す代替方法を提供する。図5に示されたように、様々な分解レベルにおいて、変換分割フラグは以下のようにシグナリングされることができる。
レベル0: 1
レベル1: 0,1,0,0
レベル2: 0,0,0,1
レベル3: 0,0,0,0
コーディングユニットレベルであるレベル0において、変換がさらに分割されるので、1のフラグがシグナリングされる。レベル1では、2番目の4分の1サイズのブロックだけがさらに分割されるので、0,1,0,0のフラグが、符号化されたビットストリーム内でビデオエンコーダによって送られる。レベル2において、他のブロックはこれ以上分割されないので、2番目の4分の1サイズのブロックだけがビデオエンコーダによってさらにシグナリングされる必要がある。2番目の4分の1サイズのブロックでは、第4のブロックだけがさらに分割されるので、0,0,0,1のフラグがレベル2でビデオエンコーダによって送られる。レベル3で、さらに分割されるべきブロックがないので、0,0,0,0のフラグが送られる。明確にするために、本開示では、より小さいレベル値は分解構造内のより高いレベル(すなわち、ルートレベルにより近いレベル)を意味することに言及されるべきである。図3および図5に示されたように、レベル0はルートレベルまたはトップレベルである。
分割フラグに加えて、HEVC WD4は、変換係数のブロックまたは変換係数レベルが任意の非ゼロ変換係数を含むかどうかを示す、コード化ブロックフラグ(CBF)シンタックス要素を含む。コード化ブロックフラグのシグナリングは、変換ブロック構造に密接に関連付けられ、トップダウン階層方式でビデオエンコーダによってシグナリングされる。たとえば、より高い分解レベルにあるコード化ブロックフラグが0であるときには、そのビデオ成分についてより低いレベルにあるコード化ブロックフラグのこれ以上のシグナリングはない。この場合、対応するより低いレベルのコード化ブロックフラグは、すべて0であると推論される。言い換えれば、コード化ブロックフラグが分解のあるレベルでコード化されるときには、より低いレベルにあるコード化ブロックフラグは、現在の分解レベルにあるコード化ブロックフラグがゼロでないときのみ必要とされる。
HEVC WD4によれば、CUの場合、そのルーマ成分Y、ならびにそのクロマ成分UおよびVは、TUパーティショニングについて同じ4分木分解構造を共有する。これにより、ただ1つの変換分割フラグが変換ブロックごとにシグナリングされることが可能になり、そのフラグはY、UおよびVの成分の間で共有される。しかしながら、上述されたように、様々なカラーフォーマットの下では、クロマ成分は、ルーマ成分とは異なるサイズおよび形状を有する場合がある。HEVC WD4は、異なる形状およびサイズの変換を定義する。しかしながら、必ずしもすべてのサイズおよび形状の変換が、HEVC WD4におけるコーディングのために定義され、利用可能であるとは限らない。HEVC WD4では、以下のサイズの正方形変換が、コーディングに利用可能であると定義される:4×4、8×8、16×16および32×32。非正方形変換の場合、利用可能な変換サイズには、32×8、8×32、16×4および4×16が含まれる。これらの変換は、正方形、または、高さが幅の4倍である、もしくは幅が高さの4倍である長方形のいずれかの形状を有する。言い換えれば、長方形の変換サイズのアスペクト比は、1対4または4対1のいずれかである。
図6は、4:2:2サンプルフォーマットに従ってフォーマットされた16×16CUに適用された例示的な4分木分解を示す概念図である。図6に示されたように、分解は、ルーマ成分についてサイズ8×8および4×4のTU、ならびに各クロマ成分について4×8、2×4の対応するTUをもたらす。HEVC WD4は、8×8および4×4のサイズのための変換を定義するが、HEVCは4×8および2×4のための変換を定義しない。さらに、図1Bおよび図2に示されたように、4:2:2サンプルフォーマットに従ってフォーマットされたビデオの場合、クロマブロックは、その高さがその幅の2倍の長さをもつ、長方形を有する。HEVC WD4によれば、必要なブロック形状を有する、すなわち1:2または2:1のアスペクト比を有する、利用可能な変換は存在しない。したがって、HEVC WD4は、4:2:2サンプルフォーマットに従ってフォーマットされたクロマブロックの形状およびサイズに対応する、TUの形状およびサイズを提供することができない。HEVCワーキングドラフトは、ソースビデオデータのサンプルフォーマットが4:2:0サンプルフォーマットであるビデオコーディングに関するメインプロファイルを記述しており、4:2:2または4:4:4のサンプルフォーマットに従ってフォーマットされたソースビデオをコード化するための詳細を提供しないことに留意されたい。
HEVC WD4に記述されたTUパーティショニング技法の特性に鑑みて、本開示は、4:2:2サンプルフォーマットの場合のルーマ成分とクロマ成分のサンプル間でのTUパーティショニングの同期のための技法について説明する。いくつかの例では、本明細書に記載されたクロマ成分に関するTUパーティショニング技法は、HEVC WD4において定義された現在利用可能な変換を使用することができる。したがって、本明細書に記載されたパーティショニング技法のいくつかは、HEVC規格のコーディングプロセスに追加の変換形状およびサイズを追加する必要なしに、HEVC規格のコーディングプロセスに組み込まれることができる。本明細書に記載される一例では、4:2:2サンプルフォーマットにしたがってフォーマットされたCUの場合、クロマ成分に関するTUは、それらがルーマ成分に関する対応するTUと同じアスペクト比を有するように、パーティショニングされ得る。さらに、本開示は、4:2:2サンプルフォーマットの場合のコード化されたブロックフラグコーディングのための技法を提供する。本開示による変換ユニットパーティショニング技法の例については、以下でさらに詳細に説明する。
図7は、本開示に記載された技法を利用できる、例示的なビデオ符号化および復号システム10を示すブロック図である。具体的には、ビデオコーディングシステム10は、4:2:2サンプルフォーマットが利用されるときに、ルーマ成分とクロマ成分とのサンプル間でTUパーティショニングを同期するための技法を実行するように構成され得る。図7に示されたように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備えることができる。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応することができる。
宛先デバイス14は、リンク16を介して復号されるべき符号化されたビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な、任意のタイプの媒体またはデバイスを備えることができる。一例では、リンク16は、ソースデバイス12が符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするために、通信媒体を備えることができる。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格にしたがって変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線などの任意のワイヤレスまたは有線の通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
代替的に、符号化されたデータは、出力インターフェース22からストレージデバイス32に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス32からアクセスされ得る。ストレージデバイス32は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散型のまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス32は、ソースデバイス12によって生成された符号化ビデオを保持できるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを通じて、ストレージデバイス32から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバには、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これには、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せが含まれる。ストレージデバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
本開示の技法は、必ずしもワイヤレスの用途または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、様々なマルチメディア用途のいずれかのサポートで、ビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
図7の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、プリキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、本開示に記載された技法は、概してビデオコーディングに適用可能であり、ワイヤレスおよび/または有線の用途に適用され得る。
ビデオエンコーダ20は、ビデオソース18から受信された、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオを符号化する。キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオは、4:2:0、4:2:2または4:4:4のサンプルフォーマットを含む、上述されたサンプルフォーマットのいずれかにしたがってフォーマットされ得る。ビデオエンコーダ20は、4:2:0、4:2:2または4:4:4のサンプルフォーマットのいずれかにしたがってフォーマットされたビデオに、ビデオコーディングを実行し得る。場合によっては、ビデオエンコーダ20は、コーディングプロセスの一部として、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオをアップサンプリングまたはダウンサンプリングすることができる。たとえば、キャプチャされたビデオは、4:4:4サンプルフォーマットにしたがってフォーマットされることができ、ビデオエンコーダ20は、キャプチャされたビデオを4:2:2フォーマットにダウンサンプリングし、ダウンサンプリングされたビデオにビデオ符号化を実行することができる。符号化されたビデオデータは、ソースデバイス20の出力インターフェース22を介して、宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替として)、復号および/または再生のため、宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス32上に記憶され得る。
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を通じて、符号化されたビデオデータを受信する。リンク16を通じて通信された、またはストレージデバイス32上で提供された、符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、ファイルサーバに記憶され、記憶媒体上に記憶され、または通信媒体上で送信された符号化された、ビデオデータとともに含まれる場合がある。
ディスプレイデバイス32は、宛先デバイス14と一体化されるか、またはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含むことができる。
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格にしたがって動作することができ、概して現在のHEVCテストモデル(HM)または将来のHMに準拠し得る。代替として、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格などの他のプロプライエタリ規格もしくは業界規格、またはそのような規格の改訂もしくは拡張にしたがって動作し得る。しかしながら、本開示の技法は、いずれか特定のコーディング規格に限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263が含まれる。
図7には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと一体化されることができ、共通のデータストリームまたは個別のデータストリーム内のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアにおいて実装されるときには、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として一体化され得る。
上述されたように、HEVC WD4では、ビデオフレームまたはピクチャは、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得る。LCUは、関連付けられたPUおよびTUを含むCUへと再帰的に分割され得る。いくつかの例では、CUのサイズは、8×8サンプルから、最大64×64サンプル以上を有するツリーブロックのサイズまで及ぶ場合がある。さらに、HEVC WD4では、ビデオフレームまたはピクチャは、1つまたは複数のスライスにパーティショニングされ得、ここでスライスは、コーディング順序で連続するいくつかのLCUを含む。ビデオフレームは、スライスに含まれるCUに関連付けられたコーディングモードに基づいて、スライスにパーティショニングされ得る。たとえば、スライスは、スライスに含まれるすべてのCUが、スキップモード、直接モード、イントラ予測モード、またはインター予測モードなど、共通コーディングモードを共有するように定義され得る。
一連のビデオフレームまたはピクチャは、ピクチャグループのコード化ビデオシーケンスの一部としてコード化され得る。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を含む。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ内、ピクチャのうちの1つもしくは複数のヘッダ内、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスについて符号化モードを記述するスライスシンタックスデータを含み得る。本明細書に記載されたように、ビデオエンコーダ20は、通常、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。しかしながら、ビデオエンコーダ20はまた、ビデオフレームをスライスにパーティショニングすること、および/またはGOPレベルもしくはスライスレベルのシンタックスを生成することなどの、高レベルのビデオコーディングプロセスも実行し得る。
上述されたように、CUに関連付けられたシンタックスデータは、CUの1つまたは複数のPUへのパーティショニングを記述し得る。CUに関連付けられたシンタックスデータは、また、たとえば、4分木にしたがってCUを1つまたは複数のTUにパーティショニングすることも記述し得る。いくつかの例では、PUまたはTUは、正方形または非正方形の形状であり得る。概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるときには、PUは、PUに関するイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるときには、PUは、PUに関する動き情報を定義するデータを含み得る。PUに関する動き情報を定義するデータは、たとえば、水平成分と垂直成分とを有する動きベクトル、解像度(たとえば、4分の1ピクセル精度または8分の1ピクセル精度)、動きベクトルに関する参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を示す予測方向、動きベクトルが参照ピクチャリスト内で指す参照ピクチャを示す参照ピクチャインデックスを記述し得る。したがって、PUは、予測プロセスに関する情報を搬送する基本ユニットと考えることができる。一例では、ビデオエンコーダ20は、HEVCテストモデル(HM)によってサポートされるPU構造にしたがってビデオデータを符号化するように構成され得る。
一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測とをサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称パーティショニングをサポートする。非対称パーティショニングでは、CUの一方向はパーティショニングされず、他の方向は25%と75%とにパーティショニングされる。25%パーティションに対応するCUの部分は、「n」と、その後に続く「Up」、「Down」、「Left」、または「Right」のインジケーションとによって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUおよび下部の2N×1.5N PUで水平方向にパーティショニングされた2N×2N CUを指す。
上述したように、TUは、変換プロセスおよび量子化プロセスに使用される基本ユニットである。1つまたは複数のPUを有する所与のCUは、また、1つまたは複数の変換ユニット(TU)も含み得る。さらに、HEVC WD4では、TUは、パーティショニングされたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定され得るが、常にそうであるとは限らない。TUは、PUと同じサイズ、またはPUよりも小さいサイズであり得る。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さいユニットにさらに細分され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれる場合がある。
イントラ予測またはインター予測に続いて、ビデオエンコーダ20は、PUに対応する残差ビデオデータを計算し得る。残差値は、コード化されるべきオリジナルブロックのピクセル値と、イントラ予測またはインター予測によって形成された予測ブロックのピクセル値との間の差分を表すピクセル差分値を含む。予測ユニット内の残差ビデオデータ、すなわち残差ピクセル差分値は、変換係数を生成するために、TU構造にしたがって変換係数に変換され得る。したがって、残差データは、ピクセル領域から変換領域に変換され得る。
変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指し、さらなる圧縮をもたらす。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられる場合があり、ここでnはmよりも大きい。
いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得る直列化ベクトルを生成するために、あらかじめ定義された走査順序を利用して量子化変換係数を走査することができる。他の例では、ビデオエンコーダ20は、適応走査を実行することができる。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔パーティショニングエントロピー(PIPE)コーディング、または別のエントロピー符号化方法にしたがって、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が非ゼロであるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに関して可変長コードを選択し得る。VLC内のコードワードは、比較的短いコードが優勢シンボル(more probable symbols)に対応し、より長いコードが劣勢シンボル(less probable symbols)に対応するように構成され得る。このようにして、VLCを使用すると、たとえば、送信されるべき各シンボルについて等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
上述されたように、HEVCのメインプロファイルに記述されたTU分解構造は、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオデータに適用されるときに、様々な欠点を有する。HEVCのメインプロファイルに記述されたTU分解構造にしたがってビデオデータをコード化するように構成されることに加えて、ビデオエンコーダ20およびビデオデコーダ30は、本明細書に記載されたTUパーティショニング技法を使用して、ビデオデータをコード化するように構成され得る。
一例では、ビデオエンコーダ20およびビデオデコーダ30は、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオに含まれる各クロマ成分のブロックを、上部クロマサブブロックと下部クロマサブブロックとにパーティショニングするように構成され得る。一例では、所与のクロマ成分の上部サブブロックおよび下部サブブロックの各々は、正方形であり得る。さらに、2つのクロマサブブロックの両方の変換ユニットパーティショニングは、ルーマ成分のパーティショニングと同期され得る。このようにして、場合によっては、ビデオデータが4:2:2サンプルフォーマットにしたがってフォーマットされるときに、クロマ成分の変換ユニットは、それがルーマ成分の対応する変換ユニットと同じアスペクト比を有するようにパーティショニングされ得る。
図8A〜図8Dは、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオブロックについて変換ユニットパーティショニングの様々なケースを示す。図8A〜図8Dの各々では、クロマ成分は、最初に、ルーマ成分に基づく任意のパーティショニングの前に上部サブブロックと下部サブブロックとにパーティショニングされ得る。クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすることによって、クロマ成分が最初に上部サブブロックと下部サブブロックとにパーティショニングされない場合と比較して、代替的なTUの形状およびサイズが、クロマ成分のために生成され得る。
図8A〜図8Dのビデオブロックは、以下のサイズ4×4、8×8、16×16、32×32、および64×64のいずれかのビデオブロックまたはCUに対応し得る。一般に、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすることにより、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合と比較して、2倍多くのTUがクロマ成分に関して生成される。さらに、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすることにより、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合と比較して、TUは、TUの垂直または水平寸法が2で除される場合に生成され得る。クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされるときの、CUをTUにパーティショニングするいくつかの特定のケースについて、以下で詳細に説明する。しかしながら、簡潔にするために、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすることから導出され得るすべての可能なTUパーティショニングの組合せが詳細に記載されているわけではないが、図8A〜図8Dに関して記載されたパーティショニング技法は、様々なレベルの分解において適用され得ることに留意されたい。
図8Aは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされ、ルーマ成分に基づくさらなるパーティショニングが適用されない場合のパーティショニング構造に基づく、例示的な変換ユニットを示す。図8Aに示されたように、ルーマブロックはこれ以上分割されず、対応するクロマブロックの各々は、上部サブブロックと下部サブブロックとにパーティショニングされる。図8Aに示された例では、クロマブロックが上部サブブロックと下部サブブロックとにパーティショニングされた後にクロマ成分をさらにパーティショニングする判定は、ルーマ成分のパーティショニングに基づき得る。したがって、図8Aに示された例では、ルーマブロックがこれ以上分割されないので、クロマ成分の各々はこれ以上分割されない場合がある。
一例では、図8Aに示されたTUパーティショニングに関連するCUは、8×8CUであり得る。この場合、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、ルーマ成分について8×8TUおよびクロマ成分について2つの4×4TUがもたらされる。このケースは、ルーマ成分について8×8TUとクロマ成分について4×8TUとをもたらす、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされないケースと対比することができる。上述されたように、4×4TUはHEVCのために定義され得るのに対し、4×8TUは定義されずまたは利用可能でない。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、より有用なTUの形状およびサイズがもたらされ得る。
概して、図8Aに示されたTUパーティションに関連するCUは、N×NのCUとして記載することができる。クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合の1つのN/2×N TUとは対照的に、2つのN/2×N/2 TUがもたらされる。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、クロマ成分が上部サブブロックと下部サブブロックとに分割されない場合の、1対2のアスペクト比を有する1つの長方形TUと比較して、2つの正方形TUがもたらされる。上記で指摘されたように、この例では、クロマサブブロックの各々は、ルーマブロックと同じアスペクト比を有する。他の例では、図8Aに関して記載された技法は、4×4、16×16、32×32、または64×64のCUに適用され得ることに留意されたい。簡潔にするために、可能なCUサイズに関する対応するルーマおよびクロマのTUサイズは、詳細には記載されない。
図8Bは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされ、さらなる4分木パーティショニングが適用される場合のパーティショニング構造に基づく、例示的な変換ユニットを示す。図8Bに示されたように、ルーマブロックは、変換目的で4個の正方形サブブロックに分割される。対応するクロマブロックは、各々、両方とも正方形である上部サブブロックと下部サブブロックとにパーティショニングされ、次いで、上部サブブロックと下部サブブロックの各々は、さらに小さいサイズを有する4個の正方形ブロックにさらにパーティショニングされる。一般に、図8BのCUは、N×NのCUとして記述することができる。ルーマ成分をパーティショニングすると、4個のN/2×N/2のTUがもたらされる。クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合の4個のN/4×N/2のTUとは対照的に、8個のN/4×N/4のTUがもたらされる。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、TUが上部サブブロックと下部サブブロックとに分割されない場合の、1対2のアスペクト比を有する4個の長方形TUと比較して、8個の正方形TUがもたらされる。図8BのCUは、4×4、8×8、16×16、32×32、または64×64のCUであり得ることに留意されたい。
図9は、CUが16×16CUである場合の、図8Bに関して記載された例示的なクロマTUパーティショニング技法についての、クロマ成分のTUパーティショニングを示す。図9に示された例では、実線がルーマ成分のパーティショニングを表し、実線および破線がクロマ成分のパーティショニングを表す。したがって、図9に示されたように、パーティショニング技法により、クロマ成分の各々について8個の4×4TU、およびルーマ成分について4個の8×8TUがもたらされる。図9に示された例は、クロマ成分について4個の4×8TUをもたらす、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされないケースと対比することができる。上述されたように、4×4TUはHEVCのために定義され得るが、4×8TUは定義されない。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、より有用なTUの形状およびサイズを可能にし得る。別の例では、図8Bに関して記載されたパーティショニング技法は、32×32CUに適用され得、ルーマについて4個の16×16TUとクロマについて8個の8×8TUとをもたらし得る。別の例では、図8Bに関して記載されたパーティショニング技法は、64×64CUに適用され得、ルーマについて4個の32×32TUとクロマについて8個の16×16TUとをもたらし得る。
さらに、いくつかのCUサイズの場合、図8A〜図8Bに関して記載されたパーティショニング技法により、HEVCで定義されないTUサイズがもたらされる場合があることに留意されたい。そのような場合、クロマ成分の上部サブブロックと下部サブブロックへの分割は、分割によりHEVCで定義されるTUがもたらされるように、選択的に適用され得る。たとえば、クロマ成分を上部サブブロックと下部サブブロックとに分割することにより、最小TUサイズよりも小さい場合のある2×2TUがもたらされる場合、この特定のCUサイズについてクロマ成分を上部サブブロックと下部サブブロックとに分割しない決定がなされ得る。
たとえば、8×8ルーマブロックの場合、対応するクロマブロックは、4:2:2フォーマットにしたがう4×8のサイズを有し得る。8×8ルーマブロックが4個の4×4ブロックに分割される場合、各クロマブロックは、4×4上部サブブロックと4×4下部サブブロックとにパーティショニングされ得る。しかしながら、この場合、HEVCで定義された4×4よりも小さいサイズの正方形変換が存在しないので、クロマ成分のサブブロックのこれ以上の分割はない。したがって、クロマ成分の上部サブブロックと下部サブブロックへの分割は、最小正方形変換サイズによって制限され得る。このようにして、ルーマ成分およびクロマ成分の各々のパーティショニングは、利用可能な変換がそれに適用され得る変換ユニットをもたらすように、選択的に適用され得る。一例では、以下の正方形変換のサイズ:4×4、8×8、16×16および32×32が定義され、コーディングに利用可能であり、以下の非正方形変換のサイズ:32×8、8×32、16×4および4×16が定義され、コーディングに利用可能である。
上述されたように、CUは、非正方形の矩形TUにパーティショニングされ得る。図8Cおよび図8Dは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされ、さらなる非正方形の矩形パーティショニングが適用される場合のパーティショニング構造に基づく、例示的な変換ユニットを示す。図8Cは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされ、さらなる水平方向の非正方形の矩形パーティショニングが適用される場合のパーティショニング構造に基づく、例示的な変換ユニットを示す。
図8Cに示されたように、ルーマブロックは、4個の水平方向を向いた非正方形の矩形サブブロックに分割される。対応するクロマブロックは、各々、両方とも正方形である上部サブブロックと下部サブブロックとにパーティショニングされ、次いで、2つの上部サブブロックおよび下部サブブロックの各々は、さらに小さいサイズを有する4個の水平方向を向いた非正方形の矩形ブロックへとさらにパーティショニングされる。一般に、図8CのCUは、N×NのCUとして記述され得る。ルーマ成分を非正方形の矩形CUにパーティショニングすると、4個のN×N/4のTUがもたらされる。クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合の4個のN/2×N/4のTUとは対照的に、8個のN/2×N/8のTUがもたらされる。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、TUが上部サブブロックと下部サブブロックとに分割されない場合の2対1のアスペクト比を有する4個の非正方形の矩形TUと比較して、4対1のアスペクト比を有する8個の非正方形の矩形TUがもたらされる。
一例では、図8Cに示されたTUパーティショニングに関連するCUは、32×32CUであり得る。したがって、図8Cに関して記載されたパーティショニング技法により、ルーマ成分について4個の32×8TUと、クロマ成分について8個の16×4TUとがもたらされ得る。この例は、クロマ成分について4個の16×8TUをもたらす、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされないケースと対比される。上述されたように、16×4TUはHEVCについて定義され、16×8TUは定義されない場合がある。したがって、クロマ成分の上部サブブロックおよび下部サブブロックへのパーティショニングは、より有用なTUの形状およびサイズを可能にし得る。他の例では、図8CのCUは、4×4、8×8、16×16、または64×64のCUであり得ることに留意されたい。
図8Dは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされ、さらなる垂直方向の非正方形の矩形パーティショニングが適用される場合のパーティショニング構造に基づく、例示的な変換ユニットを示す。図8Dに示されたように、ルーマブロックは、変換の目的で4個の垂直方向を向いた非正方形の矩形サブブロックに分割される。対応するクロマブロックは、各々、両方とも正方形である上部サブブロックと下部サブブロックとにパーティショニングされ、次いで、2つの上部サブブロックおよび下部サブブロックの各々は、さらに小さいサイズを有する4個の垂直方向を向いた非正方形の矩形ブロックにさらにパーティショニングされる。一般に、図8DのCUは、N×NのCUとして記述され得る。非正方形の矩形CUへのルーマ成分のパーティショニングは、4個のN/4×NのTUをもたらし得る。クロマ成分の上部サブブロックおよび下部サブブロックへのパーティショニングは、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされない場合の4個のN/8×NのTUとは対照的に、8個のN/8×N/2のTUをもたらし得る。したがって、クロマ成分を上部サブブロックと下部サブブロックとにパーティショニングすると、TUが上部サブブロックと下部サブブロックとに分割されない場合の1対8のアスペクト比を有する4個の非正方形の矩形TUと比較して、1対4のアスペクト比を有する8個の非正方形の矩形TUがもたらされる。
一例では、図8Dに示されたTUパーティショニングに関連するCUは、32×32CUであり得る。したがって、図8Dに関して記載されたパーティショニング技法は、ルーマ成分について4個の8×32TUとクロマ成分について8個の4×16TUとをもたらし得る。この例は、クロマ成分について4個の4×32TUをもたらす、クロマ成分が上部サブブロックと下部サブブロックとにパーティショニングされないケースと対比され得る。上述されたように、4×16TUはHEVCについて定義され、4×32TUは定義されない場合がある。したがって、クロマ成分の上部サブブロックおよび下部サブブロックへのパーティショニングは、より有用なTUの形状およびサイズを可能にし得る。他の例では、図8DのCUは、4×4、8×8、16×16、または64×64のCUであり得ることに留意されたい。
さらに、図8A〜図8Bに関して上述されたように、いくつかのCUサイズの場合、図8C〜図8Dに関して記載されたパーティショニング技法は、HEVCにおいて定義されないTUサイズをもたらし得ることに留意されたい。したがって、そのような場合、クロマ成分を上部サブブロックと下部サブブロックとに分割することは、その分割により、HEVCにおいて、または他の利用可能なビデオコーディング規格もしくはプロセスにおいて定義されたTUがもたらされるように、選択的に適用され得る。一例では、定義された非正方形の矩形TUには、32×8、8×32、16×4、および4×16のTUが含まれ得る。
さらに、図8A〜図8Dに関して記載された例の各々について、クロマ成分が上部サブブロックと下部サブブロックとに分割され、4:2:2フォーマットの下の非分割ルーマ変換ユニットごとに、さらなる変換ユニットパーティショニングがルーマ成分と同期されるときには、一般に、各クロマ成分から利用可能な2つの非分割クロマTUが存在する。しかしながら、場合によっては、ルーマブロックはさらに分割され得るが、クロマブロックを分割することにより、利用可能でないTU、または、HEVCなどの適用可能なビデオコーディング規格もしくはプロセスのための最小変換ユニットサイズ未満のTUがもたらされる場合、対応するクロマブロックはそれ以上分割されない。
したがって、図8A〜図8Dの各々は、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオブロックについて、ルーマブロックに対応するクロマブロックが上部と下部の正方形サブブロックにパーティショニングされ得、ルーマブロックがさらにパーティショニングされる場合には上部サブブロックと下部サブブロックが同様の方式でパーティショニングされ得るケースを示す。たとえば、これらの技法は、正方形ルーマブロックパーティショニングの場合の正方形サブブロックパーティション、水平方向に向いたルーマブロックパーティショニングの場合の水平方向に向いたサブブロックパーティション、または垂直方向に向いたルーマブロックパーティショニングの場合の垂直方向に向いたサブブロックパーティションに適用され得る。さらに、場合によっては、例外として、ルーマブロックはパーティショニングされるが、対応するクロマブロックが上部サブブロックと下部サブブロックとに分割された後にすでに変換の最小サイズに達している場合、各クロマ成分の2つのサブブロックは、これ以上分割されない。したがって、4:2:2フォーマットの下の図8A〜図8Dに関して記載された技法によれば、いくつかの例では、クロマ成分に関する変換ユニットは、ルーマ成分のその対応する変換ユニットと同じアスペクト比を有し得る。結果として、HEVC WD4またはWD8において定義された変換は、図8A〜図8Dに関して記載された技法を使用して形成された、得られたTUに対して変換を実行するのに十分であり得る。したがって、いくつかの例では、図8A〜図8Dに関して記載された技法は、追加的な変換の形状およびサイズを定義することなしに、HEVCに組み込まれ得る。
このようにして、ビデオエンコーダ20は、ビデオデータのルーマ成分について値のN×Nアレイを受信し、ビデオデータのクロマ成分について値の対応するN/2×Nアレイを受信し、クロマ成分についての値のN/2×Nアレイを2つのN/2×N/2サブアレイにパーティショニングし、クロマ値のサブアレイの各々に変換操作を実行するように構成することができる。ビデオデコーダ30は、ビデオエンコーダによって生成されたアレイおよびサブアレイを受信し、逆変換操作を実行するように構成され得る。
さらに、上述されたように、HEVC WD4は、変換係数レベルまたは変換係数のブロックが任意の非ゼロ変換係数を含むかどうかを示す、コード化ブロックフラグシンタックス要素を含む。一例では、ビデオエンコーダ20およびビデオデコーダ30は、本明細書に記載されたコード化ブロックフラグコーディングのための技法を使用してビデオデータをコード化するようにさらに構成され得る。いくつかの例では、コード化ブロックフラグコーディングは、インター予測モードのためだけに使用され得る。これは、イントラ予測モードがビデオブロックのための非ゼロ変換係数をもたらす可能性が高いという事実に起因し得る。
一例では、ビデオエンコーダ20およびビデオデコーダ30は、ジョイントコード化ブロックフラグを使用するように構成され得る。たとえば、クロマ成分の変換ユニットについてコード化ブロックフラグをコーディングする際、クロマ成分ごとに、ジョイントコード化ブロックフラグは、最初にクロマ成分のクロマ変換ユニットの各ペアについてシグナリングされ得る。ジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に少なくとも1つの非ゼロ係数が存在することを示す場合、1つまたは複数の追加のコード化ブロックフラグは、2つの変換ユニットの各々が任意の非ゼロ変換係数を有するかどうかをシグナリングするために送られ得る。そうではなく、ジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に少なくとも1つの非ゼロ係数が存在しないことを示す場合、クロマ成分のペアについての変換ユニットのためにさらなるシグナリングは必要とされない。一例では、クロマ成分は、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオデータのクロマ成分に対応し得る。
図10A〜図10Dは、コード化ブロックフラグコーディングについてブロック関連付けのための技法を示す概念図である。図10A〜図10Dでは、図8A〜図8Dに示されたそれぞれの変換ユニットパーティション構造が、ジョイントコード化ブロックフラグを共有し得るビデオ成分のインジケーションとともに示される。図10A〜図10D内の例は、図8A〜図8Dに示された変換ユニットに対応するが、ジョイントコード化ブロックフラグコーディングは、他の変換ユニットパーティショニング構造とともに利用され得ることに留意されたい。さらに、本明細書に記載されたジョイントコード化ブロックフラグコーディング技法は、4:2:2サンプルフォーマットにしたがってフォーマットされたビデオデータに特に有用であり得るが、そのような技法は、4:2:0または4:4:4のサンプルフォーマットにしたがってフォーマットされたビデオデータに適用することもできる。
図10A〜図10Dに示されたように、ルーマ成分に関するTUが網掛けされ、クロマ成分の各々について2つの対応するTUが網掛けされる。網掛けされたTUは、コード化ブロックフラグに関連付けられたTUを表すことができる。図10A〜図10Dに示されたように、クロマ成分の各々について2つのTUが網掛けされる。このようにして、ジョイントコード化ブロックフラグは、クロマ成分の2つの網掛けされたTUに関連付けられ得る。さらに、図10B、図10Cおよび図10Dでは、第1の非分割ルーマブロックおよびその関連クロマブロックのみが網掛けされた領域で示されることに留意されたい。しかしながら、これらの場合、他の3つの非分割ルーマブロックの各々は、クロマ成分ごとにジョイントコード化ブロックフラグに関連付けられた2つのそれぞれのクロマブロックを有することもできることは明白である。たとえば、図10Cでは、第2の水平方向のルーマTUは、クロマ成分の第3および第4の水平方向TUに関連付けられ得る。さらに、いくつかの例では、成分のうちのいずれかが任意の非ゼロ係数を含むかどうかを示す高レベルコード化ブロックフラグは、任意の追加的なコード化コードブロックフラグがシグナリングされるべきかどうかを判定するために使用され得る。
一例によれば、ジョイントコード化ブロックフラグは、最初にクロマ成分のクロマ変換ユニットの各ペアについてシグナリングされ得る。ジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に少なくとも1つの非ゼロ係数が存在することを示す値(たとえば、1)を有する場合、1つまたは複数の追加のコード化ブロックフラグは、2つの変換ユニットの各々が任意の非ゼロ係数を有するかどうかをシグナリングするために送られ得る。そうではなく、ジョイントコード化ブロックフラグが、少なくとも1つの非ゼロ係数が存在しないことを示す値(たとえば、0)を有する場合、クロマ成分のクロマ変換ユニットのペアのためにさらなるシグナリングは必要とされない。たとえば、図10Bでは、U成分に関して、ジョイントコード化ブロックフラグは、クロマ変換ユニットのペア、すなわち、U成分について、網掛け領域で示された、上部サブブロックおよび下部サブブロック内に任意の非ゼロ係数が存在するかどうかを示すために、符号化されたビットストリーム内でビデオエンコーダ20によって最初にシグナリングされ得る。上述されたように、クロマ変換ユニットはサブブロックと呼ばれる場合もあり、ここでサブブロックは変換ユニットに対応する。ジョイントコード化ブロックフラグが、非ゼロ係数が存在しないことを示す値(たとえば、0)を有する場合、U成分のこれら2つの変換ユニットのためにさらなるシグナリングは必要とされない。そうでない場合、1つまたは複数の追加のコード化ブロックフラグは、各変換ユニット内に任意の非ゼロ係数が存在することを示すために、U成分内の2つの変換ユニットの各々についてシグナリングされることができる。したがって、ジョイントコード化ブロックフラグが、上部変換ユニットまたは下部変換ユニットのいずれにも非ゼロ係数が存在しないことを示す場合、変換ユニットのこのペアに対応する変換ユニットのためにさらなるシグナリングは必要とされない。
しかしながら、クロマ成分についてのジョイントコード化ブロックフラグが、上部変換ユニットまたは下部変換ユニット内に少なくとも1つの非ゼロ係数が存在することを示す場合、ビデオエンコーダ20は、上部変換ユニット内に少なくとも1つの非ゼロ係数が存在するかどうかを示す上部変換ユニットのためのコード化ブロックフラグを生成し、下部変換ユニット内に少なくとも1つの非ゼロ係数が存在するかどうかを示す下部変換ユニットのための別のコード化ブロックフラグを生成し得る。一例では、コード化ブロックフラグのシグナリングは、U成分およびV成分の各々について同じ方法で実施され得る。
一例では、クロマ変換ユニットのペアについてのジョイントコード化ブロックフラグが、クロマ変換ユニットのペア内に少なくとも1つの非ゼロ係数が存在することを示す値(たとえば、1)を有し、このペアの第1の変換ユニットについてシグナリングされた追加のコード化ブロックフラグが、非ゼロ係数が存在しないことを示す値(たとえば、0)を有する場合、このケースでは、第2の変換ユニットは、少なくとも1つの非ゼロ変換係数を有していなければならず、そのコード化ブロックフラグの値は(たとえば、1と)推測され得る。この場合、上部変換ユニットまたは下部変換ユニットのいずれかが非ゼロ変換係数を含むことを示すジョイントコード化ブロックフラグを所与とし、上部変換ユニットが非ゼロ変換係数を含まないことを示す、上部変換ユニットについて送られた第1のコード化ブロックフラグを所与として、第2の変換ユニットが非ゼロ係数を含まなければならないことが知られているので、このペアの第2の変換ユニットについてコード化ブロックフラグをシグナリングする必要はない。
図11は、本開示に記載されたクロマ成分についての、変換ユニットパーティショニング、およびコード化ブロックフラグコーディングのためのブロック関連付けのための方法の一例を示すフローチャートである。図11に示された方法は、ビデオエンコーダ20によって実行されるものとして記載される。しかしながら、そのような記載は説明を目的としたものであり、図11に示された方法は、ビデオエンコーダに含まれる構成要素の任意の組合せによって実行することができる。ビデオエンコーダの構成要素の例は、図12に記載されたビデオエンコーダ20に関して以下でさらに詳細に記載される。さらに、図11に示された方法とは逆の方法が、ビデオデコーダ30によって、またはビデオデコーダに含まれる構成要素の任意の組合せによって実施され得ることに留意されたい。ビデオデコーダの構成要素の例は、図14に関して、以下でさらに詳細に記載される。逆プロセスでは、ビデオデコーダは符号化ビットストリームからビデオブロックとシンタックス要素とを受信または取得し得ることに留意されたい。
図11に示された例示的な方法に示されたように、ビデオエンコーダ20は、ビデオデータの4:2:2サンプルフォーマットを選択する(1102)。他の例では、ビデオエンコーダ20は、上述された4:2:0および4:4:4のサンプルフォーマットなどの他のサンプルフォーマットを選択し得る。ビデオエンコーダ20は、ルーマブロックについて、クロマ成分Uのための対応する上部サブブロックおよび下部サブブロックと、クロマ成分Vのための対応する上部サブブロックおよび下部サブブロックとを生成する(1104)。対応するクロマサブブロックは、上述されたように、最小変換ユニットサイズに制約される、ルーマサブパーティションごとの連続分解レベルで生成されることができる。ビデオエンコーダ20は、サブブロックのペアのいずれかが、少なくとも1つの非ゼロ係数を含むかどうかを判定し、ジョイントコード化ブロックフラグ(CBF)を生成する(1106)。一例では、ジョイントCBFは、サブブロックの両方に非ゼロ係数が存在しない場合の値ゼロと、それぞれのクロマ成分(UまたはV)のサブブロックのいずれかに非ゼロ係数が存在する場合の値1とを有し得る。非ゼロ係数が存在せず、ジョイントCBFがゼロに等しい場合、クロマ成分のためにさらなるシグナリングは必要とされず、次いで、ビデオエンコーダ20は次のルーマブロックの処理に進むことができる(1116)。
しかしながら、ジョイントCBFが1に等しい場合(1108)、ビデオエンコーダ20は、上部クロマサブブロックが任意の非ゼロ変換係数を含むかどうかを示すために、上部サブブロックについてコード化ブロックフラグを生成する(1110)。ビデオエンコーダ20は、上部クロマサブブロックについてのCBFがゼロに等しいかどうかを判定する(1112)。上部クロマサブブロックについてのCBFがゼロに等しい場合、いくつかの例では、下部サブブロックが非ゼロ変換係数を含まなければならないことが推測され得る。この場合、下部サブブロックについてのコード化ブロックフラグを生成する必要はなく、ビデオエンコーダ20は次のルーマブロックの処理に進むことができる(1116)。
しかしながら、上部クロマサブブロックについてのCBFが1に等しい場合、上部サブブロックが少なくとも1つの非ゼロ変換係数を含むことは明らかであるが、下部サブブロックが少なくとも1つの非ゼロ変換係数を含む場合があることも考えられる。したがって、この場合、ビデオエンコーダ20は、下部クロマサブブロックが非ゼロ変換係数を含まない場合のゼロの値と、下部クロマサブブロックが少なくとも1つの非ゼロ変換係数を含む場合の1の値とを有する、下部サブブロックについてのCBFを生成する(1114)。ビデオエンコーダ20は次いで、次のルーマブロックの処理に進む(1116)。いくつかの例では、次のルーマブロックは、異なるルーマブロック、またはルーマブロックのさらなるパーティショニングによって生成されたルーマブロックであり得る。
図11を参照して記載されたプロセスは、所与のルーマ成分に対応するUとVの両方のクロマ成分について、同じ方式で実行することができる。加えて、ビデオデコーダ30は、逆の(reciprocal)または反対の(inverse)方式でビットストリームを解析および復号して、4:2:2サンプルフォーマットを有するルーマブロックおよびクロマブロックについて変換係数を取得することができる。
このようにして、ビデオエンコーダ20およびビデオデコーダ30は、クロマサブブロックについてジョイントコード化ブロックフラグをコード化するように構成されたビデオコーダの例を表し、ジョイントコード化ブロックフラグは、クロマサブブロックが少なくとも1つの非ゼロ変換係数を含むかどうかを示す。加えて、方法は、クロマサブブロックが1つの非ゼロ変換係数を含むことをジョイントコード化ブロックフラグが示すときに、クロマサブブロックのうちの第1のものについてコード化ブロックフラグをコード化することをさらに備えることができ、コード化ブロックフラグは、クロマサブブロックのうちの第1のものが少なくとも1つの非ゼロ係数を含むかどうかを示す。
さらに、方法は、クロマサブブロックのうちの第1のものが少なくとも1つの非ゼロ係数を含まないことをコード化ブロックフラグが示すときには、クロマサブブロックのうちの第2のものについてコード化ブロックフラグをコード化しないことと、クロマサブブロックのうちの第1のものが少なくとも1つの非ゼロ係数を含むことをコード化ブロックフラグが示すときには、クロマサブブロックのうちの第2のものについてコード化ブロックフラグをコード化することとを備えることができ、クロマサブブロックのうちの第2のものについてコード化ブロックフラグは、クロマサブブロックのうちの第2のものが少なくとも1つの非ゼロ変換係数を含むかどうかを示す。
上述されたように、コーディング操作は、符号化操作としてビデオエンコーダによって、または復号操作としてビデオデコーダによって実行される。本開示に記載された技法を使用して、ビデオエンコーダ20またはビデオデコーダ30は、HEVC規格に矛盾しないサイズおよび形状の変換をブロックおよびサブブロックに適用するように構成され得る。
HEVCのHMにしたがったCU、PUおよびTUの処理および構成の説明が例示のために提供されたが、そのような説明は、本明細書に広く例示および記載された本開示の技法を限定するものと考えられるべきではない。本開示に記載された変換ユニットパーティショニングおよびコード化ブロックフラグシグナリングの技法、ならびに他の技法は、HEVC規格に準拠するように公式化されたビデオコーディングプロセスを無条件に含む、様々な既存または将来のビデオコーディングプロセスのいずれかに広く適用可能であり得る。
ビデオエンコーダ20は、変換係数をコーディングするための本開示の技法のいずれかまたはすべてを実装することができる。同様に、ビデオデコーダ30は、変換係数をコーディングするためのこれらの技法のいずれかまたはすべての逆バージョンを実装することができる。本開示に記載されたビデオコーダは、ビデオエンコーダまたはビデオデコーダを指す場合がある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指す場合がある。同様に、ビデオコーディングはビデオ符号化(video encoding)またはビデオ復号(video decoding)を指す場合がある。
図12は、本開示に記載された技法を実装できる、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベース圧縮モードのうちのいずれかを指す場合がある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベース圧縮モードのうちのいずれかを指す場合がある。
図12の例では、ビデオエンコーダ20は、パーティショニングモジュール35と、予測モジュール41と、参照ピクチャメモリ64と、加算器50と、変換モジュール52と、量子化モジュール54と、エントロピー符号化モジュール56とを含む。予測モジュール41は、動き推定モジュール42と、動き補償モジュール44と、イントラ予測モジュール46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化モジュール58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するために、ブロック境界をフィルタ処理するデブロッキングフィルタ(図12には図示せず)も含まれる場合がある。望まれる場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理する。デブロッキングフィルタに加えて、さらなるループフィルタ(ループ内またはループ後)が使用されることもできる。
図12に示されたように、ビデオエンコーダ20はビデオデータを受信し、パーティショニングモジュール35はデータをビデオブロックへとパーティショニングする。パーティショニングモジュール35は、予測モジュール41と連携して動作して、ビデオデータをどのようにパーティショニングするかを決定することができる。場合によっては、パーティショニングモジュールおよび/または予測モジュール41は、レートひずみ分析に基づいてビデオデータをパーティショニングすることができる。受信されたビデオデータは、上述されたサンプルフォーマットのいずれかにしたがってフォーマットされ得る。たとえば、ビデオデータは、4:2:2サンプルフォーマットにしたがってフォーマットされ得る。パーティショニングには、たとえば、LCUおよびCUの4分木構造にしたがって、スライス、タイル、または他のより大きいユニットへとビデオデータをパーティショニングすること、ならびにビデオブロックパーティショニングが含まれる。ビデオエンコーダ20は、一般に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックへと(場合によっては、タイルと呼ばれるビデオブロックのセットへと)分割され得る。いくつかの例では、パーティショニングモジュール35は、図8A〜図8Dおよび図9に関して上述された技法により、ビデオデータをパーティショニングすることができる。たとえば、パーティショニングモジュール35は、ビデオデータのルーマ成分については残差値のN×Nアレイ、およびクロマ成分については残差値の2つの対応するN/2×N/2サブアレイが、予測コーディングプロセスの結果として生成されるように、ビデオデータをパーティショニングすることができる。
予測モジュール41は、誤り結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、現在ビデオブロックについて、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測モジュール41は、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に供給して残差ブロックデータを生成し、加算器62に供給して参照ピクチャとして使用するための符号化ブロックを再構成することができる。
予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うためにコーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行することができる。予測モジュール41内の動き推定モジュール42および動き補償モジュール44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ内の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
動き推定モジュール42は、ビデオシーケンスのための所定のパターンにしたがって、ビデオスライスのためのインター予測モードを決定するように構成することができる。所定のパターンは、シーケンス内のビデオスライスを、Pスライス、Bスライスまたは一般化されたP/B(GPB)スライスとして指定することができる。動き推定モジュール42および動き補償モジュール44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定モジュール42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
インターコーディングの場合の予測ブロックは、絶対差の和(SAD)、2乗差の和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コード化されるべきビデオブロックのPUに厳密に一致することがわかっているブロックであり得る。代替として、イントラコーディングの場合の予測ブロックは、1つまたは複数の隣接ブロックからのピクセル値に関する空間予測に基づいて形成されたブロックであり得る。いくつかの例では、インター予測の場合、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置に関する値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定モジュール42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力することができる。
動き推定モジュール42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス内のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択でき、それらの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定モジュール42は、計算された動きベクトルをエントロピー符号化モジュール56と動き補償モジュール44とに送る。
動き補償モジュール44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチするまたは生成すること、場合によってはサブピクセル精度まで補間を実行することを含む。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償モジュール44は、動きベクトルが参照ピクチャリストのうちの1つの中で指す予測ブロックの位置を特定することができる。
ビデオエンコーダ20は、コード化されている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、インターコーディングまたはイントラコーディングについて、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに関する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算操作を実行する1つまたは複数の構成要素を表す。動き補償モジュール44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックおよびビデオスライスに関連するシンタックス要素を生成することができる。
イントラ予測モジュール46は、上述されたように、動き推定モジュール42および動き補償モジュール44によって実行されるインター予測の代替として、現在ブロックをイントラ予測することができる。詳細には、イントラ予測モジュール46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測モジュール46は、たとえば別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化でき、イントラ予測モジュール46(または、いくつかの例では、モード選択モジュール40)は、テストされたモードから使用すべき適切なイントラ予測モードを選択することができる。
たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードについてレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された、オリジナルの符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測モジュール46は、様々な符号化ブロックについてひずみおよびレートから比率を計算して、どのイントラ予測モードがブロックについて最良のレートひずみ値を示すかを決定することができる。レートひずみ分析は、色成分の組合せに対して実行され得ることに留意されたい。
いずれの場合も、あるブロックについてイントラ予測モードを選択した後、イントラ予測モジュール46は、エントロピーコーディングモジュール56にブロックについて選択されたイントラ予測モードを示す情報を提供することができる。エントロピーコーディングモジュール56は、本開示の技法による、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、送信ビットストリーム内に、複数のイントラ予測モードインデックステーブルおよび複数の変更された(コードワードマッピングテーブルとも呼ばれる)イントラ予測モードインデックステーブルを含み得る構成データ、様々なブロックに関する符号化コンテキストの定義、コンテキストの各々に使用すべき、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、および修正イントラ予測モードインデックステーブルの指示を含み得る。
予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含まれ、変換モジュール52に適用され得る。変換モジュール52は、ビデオエンコーダ20の構成要素、モジュールまたは機能ユニットを指し、変換プロセスおよび量子化プロセスのためのデータの基本ユニットであるTUと混同されるべきではないことに留意されたい。変換モジュール52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。変換モジュール52は、得られた変換係数を量子化モジュール54に送ることができる。
上述されたように、いくつかの例では、パーティションモジュール35は、図8A〜図8Dおよび図9に関して上述された技法により、ビデオデータをパーティショニングすることができる。変換モジュール52も、上述された技法により、ビデオデータをパーティショニングすることができる。一例では、変換モジュール52は、ビデオデータのルーマ成分について残差値のN×Nアレイを受信し、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを受信し、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングし、クロマ残差値のサブアレイの各々に変換を実行することによってクロマ成分について変換係数を生成するように構成することができる。
本明細書に記載された技法は、概してビデオエンコーダ20によって実行されることができ、ビデオエンコーダに含まれる構成要素は、本明細書に記載された技法の様々な態様を実行することができる。たとえば、本明細書に記載された技法によれば、パーティショニングモジュール35は、最初に残差値を生成する目的でビデオデータをパーティショニングすることができ、変換モジュール52は、変換係数を生成する目的でビデオデータをさらにパーティショニングすることができる。
量子化モジュール54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、次いで、量子化モジュール54は、量子化変換係数を含む行列の走査を実行することができる。代替として、エントロピー符号化モジュール56が走査を実行することもできる。
量子化に続いて、エントロピー符号化モジュール56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化モジュール56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔パーティショニングエントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実行することができる。エントロピー符号化モジュール56によるエントロピー符号化の後、符号化ビットストリームは、ビデオデコーダ30に送信され、または、ビデオデコーダ30による後の送信もしくは取出しのためにアーカイブされることができる。エントロピー符号化モジュール56はまた、コード化されている現在ビデオスライスについて動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
逆量子化モジュール58および逆変換モジュール60は、それぞれ、参照ピクチャの参照ブロックとして後で使用するためのピクセル領域内の残差ブロックを再構成するために、逆量子化および逆変換を適用する。動き補償モジュール44は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算することができる。動き補償モジュール44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することができる。加算器62は、動き補償モジュール44によって生成された動き補償された予測ブロックに、再構成された残差ブロックを加算して、参照ピクチャメモリ64内に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するために、動き推定モジュール42および動き補償モジュール44よって参照ブロックとして使用されることができる。
このようにして、図12のビデオエンコーダ20は、本開示に記載された技法にしたがって、ビデオデータのルーマ成分について残差値のN×Nアレイを受信し、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを受信し、クロマ成分についての残差値のN/2×Nアレイをクロマ残差値の2つのN/2×N/2サブアレイにパーティショニングし、クロマ残差値のサブアレイの各々に対して変換を実行することによってクロマ成分について変換係数を生成するように構成された、ビデオエンコーダの一例を表す。ビデオエンコーダ20は、ルーマ成分に対応するクロマ成分ごとに変換係数の2つのN/2×N/2サブアレイを生成することができる。
図13は、クロマブロックについて残差値をパーティショニングし、変換ユニットを生成する、例示的な方法を示すフローチャートである。以下では、図13のプロセスについてビデオエンコーダに関して説明するが、本プロセスは、ビデオエンコーダ20、パーティショニングモジュール35、変換モジュール52および/またはビデオエンコーダ20の他の構成要素の任意の組合せによって実行されることができる。
図13に示されたように、ビデオエンコーダ20は、ビデオデータのルーマ成分について残差値のN×Nアレイを取得する(1302)。ビデオエンコーダ20は、ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得する(1304)。残差値のアレイを取得することは、残差値のアレイを生成するためにビデオエンコーダが使用するプロセス、または残差値のアレイを受信することを指す場合があることに留意されたい。クロマ成分は、本明細書に記載された、UおよびV、またはCrおよびCbのクロマ成分のうちのいずれかを含み得る。残差値は、本明細書に記載された予測コーディング技法の一部として、ビデオエンコーダ20によって生成され得る。クロマ成分についての残差値のN/2×Nアレイが、ルーマ成分についての残差値のN×Nアレイに対応するときには、アレイは、上述されたビデオデータの4:2:2フォーマットにしたがってフォーマットされたビデオデータのCUに関連付けられ得ることに留意されたい。ビデオエンコーダ20は、クロマ成分についての残差値のN/2×Nアレイを、クロマ残差値の2つのN/2×N/2サブアレイにパーティショニングする(1306)。ビデオエンコーダ20は、クロマ残差値のサブアレイの各々に対して変換を実行することによって、クロマ成分について変換係数を生成する(1308)。上述されたように、2つのN/2×N/2サブアレイの各々に対して変換を実行することは、N/2×Nアレイに対して変換を実行することと比較したときに、ブロッキネスの主体的な出現を低減できることに留意されたい。ビデオエンコーダ20は、変換係数を出力する(1310)。一例では、ビデオエンコーダ20は、符号化されたビットストリームの一部として、ビデオデコーダに変換係数を出力することができる。他の例では、変換係数を出力することは、エントロピーエンコーダに変換係数を出力することを含み得ることに留意されたい。次いで、エントロピーコーダは、符号化されたビットストリームの一部として、ビデオデコーダにエントロピー符号化された変換係数を出力することができる。図13に示された方法は、単一のクロマ成分について変換係数を生成することを記載するが、ビデオエンコーダ20は、同様の方式で他の成分についても変換係数を生成できることに留意されたい。すなわち、ビデオエンコーダ20は、残差値のアレイおよびサブアレイを取得し、ルーマ成分とクロマ成分の各々についてアレイに対して変換を実行することができる。
図14は、本開示に記載された技法を実装できる、例示的なビデオデコーダ30を示すブロック図である。図14の例では、ビデオデコーダ30は、エントロピー復号モジュール80と、予測モジュール81と、逆量子化モジュール86と、逆変換モジュール88と、加算器90と、参照ピクチャメモリ92とを含む。予測モジュール81は、動き補償モジュール82と、イントラ予測モジュール84とを含む。いくつかの例では、ビデオデコーダ30は、図12からのビデオエンコーダ20に関して記載された符号化パスとは全体的に逆の復号パスを実行することができる。
復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号モジュール80は、ビットストリームをエントロピー復号して、量子化係数と、動きベクトルと、他のシンタックス要素とを生成する。エントロピー復号モジュール80は、予測モジュール81に動きベクトルと他のシンタックス要素とを送る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信することができる。
ビデオスライスがイントラコード化(I)スライスとしてコード化されるときには、予測モジュール81のイントラ予測モジュール84は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックについての予測データを生成することができる。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコード化されるときには、予測モジュール81の動き補償モジュール82は、エントロピー復号モジュール80から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、リスト0およびリスト1を構成することができる。
動き補償モジュール82は、動きベクトルと他のシンタックス要素とを解析することによって、現在ビデオスライスのビデオブロックについての予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックについての予測ブロックを生成する。たとえば、動き補償モジュール82は、受信されたシンタックス要素のいくつかを使用して、ビデオスライスのビデオブロックをコード化するために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数に関する構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコード化ビデオブロックについてのインター予測ステータスと、現在ビデオスライス内のビデオブロックを復号するための他の情報とを決定する。
動き補償モジュール82はまた、補間フィルタに基づいて補間を実行することができる。動き補償モジュール82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルについて補間された値を計算することができる。この場合、動き補償モジュール82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成することができる。
逆量子化モジュール86は、ビットストリーム内で供給され、エントロピー復号モジュール80によって復号された、量子化された変換係数を反対に量子化、すなわち逆量子化する。逆量子化プロセスは、量子化の程度と、また同様に、適用されるべき逆量子化の程度とを決定するために、ビデオスライス内のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含む場合がある。
逆変換モジュール88は、変換係数を受信し、ピクセル領域内の残差ブロックを生成するために変換係数に逆変換、たとえば逆DCT、逆整数変換、または概念的に類似の逆変換プロセスを適用する。いくつかの例では、逆変換モジュールは、図8A〜図8Bおよび図9に関して上述された変換ユニットパーティショニング技法に基づいてビデオエンコーダによって生成された変換係数を受信することができる。一例では、逆変換モジュール88は、ビデオデータのルーマ成分について変換係数のN×Nアレイを受信し、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを受信し、クロマ変換係数のN/2×N/2サブアレイの各々に逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成し、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成するように構成され得る。
動き補償モジュール82またはイントラ予測モジュール84が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換モジュール88からの残差ブロックを動き補償モジュール82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算操作を実行する1つまたは複数の構成要素を表す。
望むなら、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタがまた、復号されたブロックをフィルタ処理するために適用されることができる。ピクセル遷移を滑らかにし、または他の何らかの形でビデオ品質を改善するために、(コーディングループ内でまたはコーディングループ後に)他のループフィルタがまた使用されることができる。所与のフレームまたはピクチャ内の復号されたビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、図1のディスプレイデバイス32などのディスプレイデバイスに後で表示するために、復号されたビデオを記憶する。
図14のビデオエンコーダ30は、本開示に記載された技法にしたがって、ビデオデータのルーマ成分について変換係数のN×Nアレイを受信し、ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを受信し、クロマ変換係数のN/2×N/2サブアレイの各々に対して逆変換を実行して残差サンプル値の複数のN/2×N/2サブアレイを生成し、残差サンプル値のN/2×N/2サブアレイの各々を結合してクロマ成分について残差サンプル値のN/2×Nアレイを形成するように構成された、ビデオデコーダの一例を表す。
図15は、変換係数からクロマブロックについての残差値を生成するための例示的な方法を示すフローチャートである。図15のプロセスについて以下でビデオデコーダ30に関して説明するが、本プロセスは、ビデオデコーダ30、エントロピー復号モジュール80、逆量子化モジュール86、逆変換モジュール88、および/またはビデオエンコーダ30の他の構成要素の任意の組合せによって実行されることができる。
図15に示されたように、ビデオデコーダ30は、ビデオデータのルーマ成分について変換係数のN×Nアレイを取得する(1502)。ビデオデコーダ30は、ビデオデータのクロマ成分について変換係数の対応するN/2×N/2アレイを取得する(1504)。クロマ成分は、本明細書に記載された、UおよびVまたはCrおよびCbのクロマ成分のうちのいずれかを含み得る。変換係数は、本明細書に記載された予測コーディング技法の一部としてビデオエンコーダによって生成され得る。クロマ成分についての変換係数のN/2×N/2サブアレイが、ルーマ成分についての係数のN×Nアレイに対応するときには、アレイは、上述されたビデオデータの4:2:2フォーマットにしたがってフォーマットされたビデオデータのCUに関連付けられ得ることに留意されたい。ビデオデコーダ30は、クロマ成分について変換係数のN/2×N/2サブアレイの各々に対して逆変換を実行する(1506)。ビデオデコーダ30は、クロマ変換係数のサブアレイの各々から得られた残差値を結合することによって、クロマ成分について残差値のアレイを生成する(1508)。ビデオデコーダ30は残差値を出力する(1510)。一例では、ビデオデコーダ30は、ビデオ再構成プロセスの一部として残差値を出力することができる。
1つまたは複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装することができる。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルにしたがって、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示に記載された技法を実装するための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスできる、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)などの1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積回路もしくはディスクリート論理回路によって実行することができる。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実装に適した任意の他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内に提供されるか、または複合コーデックに組み込まれる場合がある。また、本技法は、1つまたは複数の回路または論理要素内に完全に実装することができる。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装することができる。開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上述されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上述された1つまたは複数のプロセッサを含む、コーデックハードウェアユニットに組み合わせられるか、または相互動作ハードウェアユニットの集合によって提供される場合がある。
様々な例が記載された。これらおよび他の例は、特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[書類名]特許請求の範囲
[C1]
ビデオデータのルーマ成分について変換係数のN×Nアレイを取得することと、
ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得することと、
クロマ変換係数の前記N/2×N/2サブアレイの各々に逆変換を実行して、残差サンプル値の複数のN/2×N/2サブアレイを生成することと、
残差サンプル値の前記N/2×N/2サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を備える、ビデオデータを復号するための方法。
[C2]
ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得することと、
ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得することと、
クロマ変換係数の前記複数のN/4×N/4サブアレイの各々に逆変換を実行して、残差サンプル値の複数のN/4×N/4サブアレイを生成することと、
残差サンプル値の前記N/4×N/4サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を備える、ビデオデータを復号するための方法。
[C3]
Nが16に等しく、ビデオデータの前記ルーマ成分について変換係数の前記複数のN/2×N/2サブアレイが4個のサブアレイを含み、前記クロマ成分の変換係数の前記複数の対応するN/4×N/4サブアレイが8個のサブアレイを含む、C2に記載の方法。
[C4]
ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得することと、
ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得することと、
クロマ変換係数の前記N/2×N/8サブアレイの各々に逆変換を実行して、残差サンプル値の8個のN/2×N/8サブアレイを生成することと、
残差サンプル値の前記N/2×N/8サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を備える、ビデオデータを復号するための方法。
[C5]
Nが32に等しい、C4に記載の方法。
[C6]
ビデオデータのルーマ成分について変換係数のN×Nアレイを取得することと、
ビデオデータのクロマ成分について変換係数の複数の対応するN/2×N/2サブアレイを取得することと、
クロマ変換係数の前記N/2×N/2サブアレイの各々に逆変換を実行して、残差サンプル値の複数のN/2×N/2サブアレイを生成することと、
残差サンプル値の前記N/2×N/2サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイス。
[C7]
ビデオデータのルーマ成分について変換係数の複数のN/2×N/2サブアレイを取得することと、
ビデオデータのクロマ成分について変換係数の複数の対応するN/4×N/4サブアレイを取得することと、
クロマ変換係数の前記複数のN/4×N/4サブアレイの各々に逆変換を実行して、残差サンプル値の複数のN/4×N/4サブアレイを生成することと、
残差サンプル値の前記N/4×N/4サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイス。
[C8]
Nが16に等しく、ビデオデータの前記ルーマ成分について変換係数の前記複数のN/2×N/2サブアレイが4個のサブアレイを含み、前記クロマ成分の変換係数の前記複数の対応するN/4×N/4サブアレイが8個のサブアレイを含む、C7に記載のビデオ復号デバイス。
[C9]
ビデオデータのルーマ成分について変換係数の4個のN×N/4サブアレイを取得することと、
ビデオデータのクロマ成分について変換係数の8個の対応するN/2×N/8サブアレイを取得することと、
クロマ変換係数の前記N/2×N/8サブアレイの各々に逆変換を実行して、残差サンプル値の8個のN/2×N/8サブアレイを生成することと、
残差サンプル値の前記N/2×N/8サブアレイの各々を結合して、前記クロマ成分について残差サンプル値のN/2×Nアレイを形成することと
を行うように構成された1つまたは複数のプロセッサを備える、ビデオ復号デバイス。
[C10]
Nが32に等しい、C9に記載のビデオ復号デバイス。
[C11]
ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、
ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、
前記クロマ成分についての残差値の前記N/2×Nアレイを、クロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることと、
クロマ残差値の前記サブアレイの各々に変換を実行して、前記クロマ成分について変換係数を生成することと
を備える、ビデオデータを符号化するための方法。
[C12]
前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることと、前記ルーマ成分についての残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることとをさらに備える、C11に記載の方法。
[C13]
前記ルーマ成分についての残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、ルーマ残差値の4個の8×8サブアレイをもたらし、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、クロマ残差値の8個の4×4サブアレイをもたらす、C12に記載の方法。
[C14]
前記ルーマ成分についての残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、4対1のアスペクト比を有するルーマ残差値の4個のサブアレイをもたらし、前記ルーマ成分についての残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、4対1のアスペクト比を有するクロマ残差値の8個のサブアレイをもたらす、C12に記載の方法。
[C15]
前記クロマ成分についての残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることが、前記2個のN/2×N/2サブアレイが最小変換ユニットサイズ未満である場合、残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングしないと決定することを含む、C11に記載の方法。
[C16]
ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、
ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、
前記クロマ成分についての残差値の前記N/2×Nアレイを、クロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることと、
クロマ残差値の前記サブアレイの各々に変換を実行して、前記クロマ成分について変換係数を生成することと
を行うように構成された1つまたは複数のプロセッサを備える、ビデオ符号化デバイス。
[C17]
前記1つまたは複数のプロセッサが、前記ルーマ成分についての残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることと、前記ルーマ成分についての残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることとを行うようにさらに構成された、C16に記載のデバイス。
[C18]
前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、ルーマ残差値の4個の8×8サブアレイをもたらし、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、クロマ残差値の8個の4×4サブアレイをもたらす、C17に記載のデバイス。
[C19]
前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、4対1のアスペクト比を有するルーマ残差値の4個のサブアレイをもたらし、前記ルーマ成分について残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、4対1のアスペクト比を有するクロマ残差値の8個のサブアレイをもたらす、C17に記載のデバイス。
[C20]
前記クロマ成分について残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることが、前記2個のN/2×N/2サブアレイが最小変換ユニットサイズ未満である場合、残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングしないと決定することを含む、C16に記載のデバイス。
[C21]
実行されたとき1つまたは複数のプロセッサに、
ビデオデータのルーマ成分について残差値のN×Nアレイを取得することと、
ビデオデータのクロマ成分について残差値の対応するN/2×Nアレイを取得することと、
前記クロマ成分について残差値の前記N/2×Nアレイを、クロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることと、
クロマ残差値の前記サブアレイの各々に変換を実行して、前記クロマ成分について変換係数を生成することと
を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
[C22]
前記命令が、1つまたは複数のプロセッサに、前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることと、前記ルーマ成分について残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることとをさらに行わせる、C21に記載の非一時的コンピュータ可読媒体。
[C23]
前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、ルーマ残差値の4個の8×8サブアレイをもたらし、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、クロマ残差値の8個の4×4サブアレイをもたらす、C22に記載の非一時的コンピュータ可読媒体。
[C24]
前記ルーマ成分について残差値の前記N×Nアレイをルーマ残差値の4個のサブアレイにパーティショニングすることが、4対1のアスペクト比を有するルーマ残差値の4個のサブアレイをもたらし、前記ルーマ成分について残差値の前記N×Nアレイに適用された前記パーティショニングに少なくとも部分的に基づいて、クロマ残差値の前記2個のN/2×N/2サブアレイの各々をクロマ残差値の4個のサブアレイにさらにパーティショニングすることが、4対1のアスペクト比を有するクロマ残差値の8個のサブアレイをもたらす、C22に記載の非一時的コンピュータ可読媒体。
[C25]
前記クロマ成分について残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングすることが、前記2個のN/2×N/2サブアレイが最小変換ユニットサイズ未満である場合、残差値の前記N/2×Nアレイをクロマ残差値の2個のN/2×N/2サブアレイにパーティショニングしないと決定することを含む、C21に記載の非一時的コンピュータ可読媒体。
[C26]
クロマ成分に関連付けられた第1の変換ユニットが、少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、
前記クロマ成分に関連付けられた第2の変換ユニットが、少なくとも1つの非ゼロ変換係数を含むかどうかを判定することと、
前記第1の変換ユニットおよび前記第2の変換ユニットについてジョイントコード化ブロックフラグを生成することと
を備え、前記ジョイントコード化ブロックフラグが、前記第1の変換ユニットまたは前記第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むかどうかを示す、ビデオデータを符号化する方法。
[C27]
前記ジョイントコード化ブロックフラグが、前記第1の変換ユニットまたは前記第2の変換ユニットのいずれかが少なくとも1つの非ゼロ変換係数を含むことを示すとき、前記第1の変換ユニットが少なくとも1つの非ゼロ係数を含むかどうかを示すコード化ブロックフラグを生成することをさらに備える、C26に記載の方法。
[C28]
前記コード化ブロックフラグが、前記第1の変換ユニットが少なくとも1つの非ゼロ係数を含むことを示すとき、前記第2の変換ユニットが少なくとも1つの非ゼロ変換係数を含むかどうかを示す前記第2の変換ユニットについてのコード化ブロックフラグを生成することをさらに備える、C27に記載の方法。