[0038]本開示は、3次元(3D)−高効率ビデオコーディング(3D−HEVC)のような3Dビデオコーディング処理における深度イントラモードコーディングを制限するための技法について説明する。いくつかの例では、深度イントラモードコーディングを制限するための技法は、変換木ノードに対応する深度予測ユニットが深度モデリングモード(DMM)に従って予測されるときに、変換木ノードがサブ変換木ノードに分割されるのを防ぎ得る。さらなる例では、深度イントラモードコーディングを制限するための技法は、深度予測ユニットに対応する最大変換ユニットサイズが深度予測ユニットのサイズよりも大きいときに、DMMモードが使用されるのを防ぎ得る。深度イントラモードコーディングを制限するための技法は、3D−HEVCにおいて使用されるDMM予測モードの特性と3D−HEVCにおいて使用される変換木細分の特性とが互いに干渉するのを防ぎ得る。
[0039]概して、本開示は、3D−HEVCコーデックを用いた2つ以上のビューのコーディングを含む、アドバンストコーデックに基づくマルチビュービデオコーディング(たとえば、符号化または復号)に関する。より具体的には、本技法は、3D−HEVCにおける深度イントラモードコーディングに関する。
[0040]本開示は、3D−HEVCのような3Dビデオコーディング処理における深度イントラモードコーディングを制限するための技法について説明する。いくつかの例では、深度イントラモードコーディングを制限するための技法は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0041]さらなる例では、深度イントラモードコーディングを制限するための技法は、DMMに従って深度成分をイントラコーディングするときに、予測ユニット全体が同じwedgeletパターンに従ってコーディングされるように使用され得る。追加の例では、深度イントラモードコーディングを制限するための技法は、DMMに従って深度成分をイントラコーディングするときに、予測ユニットが3つ以上の領域ではなく2つの領域に分割されるようにし得る。
[0042]3D−HEVCの現行バージョンによるDMMコーディングに関係する問題がここで説明される。イントラ予測モードによりコーディングされるコーディングユニット(CU)に関して、セグメントごとのDCコーディング(SDC:segment-wise DC coding)(たとえば、セグメントごとの直流電流(segment-wise direct current)(DC))が適用されない場合、1つの変換木(利用可能な場合)が、CUの残差を表すようにコーディングされ、各PUが変換木ノードに対応する。DMMコード化PUの関連変換木ノードに対する深度制限はない。言い換えれば、そのような変換木ノード内の変換ユニット(TU)は、PUサイズから最小許容可能TUサイズ(たとえば、4×4)までのサイズをとり得る。しかしながら、そのような変換木ノードの深度が0よりも大きく、TUサイズがPUサイズよりも小さいとき、2つの問題が生じ得る。
[0043]3D−HEVCでは現在、予測ユニットは、予測ユニット全体に同じ予測処理が使用されるように定義されている。予測ユニットに関連付けられる変換ユニットは、複数のより小さい変換ユニットに区分され得る。DMMコーディングモードは、変換ユニットの各々をコーディングするためにwedgeletパターンを使用することができる。変換ユニットの各々をコーディングするために使用されるwedgeletパターンは、デコーダによって、wedgeletパターンインデックスおよびコーディングされるべき変換ユニットのサイズに基づいて決定され得る。場合によっては、単一の予測ユニットを形成する変換ユニットは、異なるサイズであり得る。そのような場合に、DMMコーディングが使用される場合、異なる変換ユニットは異なるwedgeletパターンに従ってコーディングされ得る。これにより、予測ユニットを予測するために使用される予測処理が予測ユニットの部分ごとに異なることがあり、その結果、予測ユニットに関する現在の3D−HEVC定義に準拠しない予測ユニットが生じることがある。
[0044]いくつかの例では、本開示の技法は、DMMコーディングモードを使用してコーディングされる予測ユニットに対応する変換木ノード(たとえば、変換ユニット)がより小さい変換ユニットに区分されないように、変換ユニットの細分を制限することができる。たとえば、変換木ノードに関連付けられる予測ユニット(PU)がDMMモードのうちの1つ(たとえば、DMMモード1またはDMMモード4)によりコーディングされるとき、変換木ノードのsplit_transform_flagが0に設定され得る。
[0045]いくつかの例では、エンコーダは、変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされるかどうかに基づいて、変換木ノードに対応するsplit_transform_flagの値を選択することができる。変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされる場合、エンコーダは、対応する変換木ノードがさらに区分されるべきではないことを示すsplit_transform_flagの値を選択することができる。変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされない場合、エンコーダは、対応する変換木ノードがさらに区分されることを可能にする1つまたは複数の他のsplit_transform_flag選択技法に基づくsplit_transform_flagの値を選択することができる。split_transform_flagは、変換木ノード(たとえば、変換木、変換ユニット、変換ブロック)が複数のより小さい変換木ノードに分割、細分、および/または区分されるべきかどうかを示すことができる。さらなる例では、デコーダは、前述の例に従って符号化されたビットストリームを復号することができる。
[0046]追加の例では、エンコーダは、変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされるかどうかに基づいて、変換木ノードのために符号化ビットストリームに、変換木ノードに対応するsplit_transform_flagを選択的に含めることができる。変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされる場合、エンコーダは、ビットストリームにsplit_transform_flagを含めなくてよく、それによりデコーダは、split_transform_flagの値が0であると推測することができる。変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされない場合、エンコーダは、ビットストリームにsplit_transform_flagを含めること、および/または他の基準に基づいてビットストリームにsplit_transform_flagを含めるかどうかを決定することができる。さらなる例では、デコーダは、前述の例に従って符号化されたビットストリームを復号することができる。
[0047]いくつかの例では、デコーダは、変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされるかどうかに基づいて、変換木ノードのために符号化ビットストリームからsplit_transform_flagを解析、抽出,および/または復号するかどうかを決定することができる。たとえば、変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされる場合、デコーダは、符号化ビットストリームからsplit_transform_flagを解析しなくてよい。この例では、変換木ノードに対応する予測ユニットがDMMコーディングモードを使用してコーディングされない場合、デコーダは、符号化ビットストリームからsplit_transform_flagを解析する(たとえば、抽出する)すること、および/または状況によってはビットストリームからsplit_transform_flagを解析することを可能にする他の基準に基づいて、符号化ビットストリームからsplit_transform_flagを解析するかどうかを決定することができる。いくつかの例では、デコーダが符号化ビットストリームからsplit_transform_flagを解析しないとき、デコーダは、split_transform_flagの値が所定の推測値(たとえば、0)に等しいと推測することができる。
[0048]3D−HEVCでは現在、DMMモード1または4は、PUが2つの領域に区分されるべきであることを指定している。PUがDMMモード1またはDMMモード4によりコーディングされるとき、PU内のTUの各々が2つの領域に区分される。したがって、PUは、複数のTUを含んでいるときに、3つ以上の領域を含み得る。
[0049]いくつかの例では、本開示の技法は、DMMに従って深度成分をイントラコーディングするときに、予測ユニットが3つ以上の領域ではなくせいぜい2つの領域に分割されるようにし得る。たとえば、本開示の技法は、PUサイズが最大変換ブロックサイズよりも大きいときに、DMMコーディングモードが使用されることを不可能にし得る。
[0050]いくつかの例では、エンコーダは、予測ユニット(PU)のサイズがPUに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、PUに対応するdim_not_present_flagの値を選択することができる。PUのサイズがPUに対応する最大変換ブロックサイズよりも大きい場合、エンコーダは、PUをコーディングするためにDMMモードが使用されないことを示すdim_not_present_flagの値を選択することができる。PUのサイズがPUに対応する最大変換ブロックサイズよりも大きくない場合、エンコーダは、PUをコーディングするためにDMMモードが使用されることを可能にする1つまたは複数の他のdim_not_present_flag選択技法に基づくdim_not_present_flagの値を選択することができる。dim_not_present_flagは、対応する予測ユニットをコーディングするためにDMMモードのうちの1つが使用されるべきかどうかを示すことができる。さらなる例では、デコーダは、前述の例に従って符号化されたビットストリームを復号することができる。
[0051]追加の例では、エンコーダは、PUのサイズがPUに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、予測ユニットに対応するdim_not_present_flagを選択的に含めることができる。PUのサイズがPUに対応する最大変換ブロックサイズよりも大きい場合、エンコーダは、ビットストリームにdim_not_present_flagを含めなくてよく、それによりデコーダは、dim_not_present_flagの値が1であると推測することができる。PUのサイズがPUに対応する最大変換ブロックサイズよりも大きくない場合、エンコーダは、ビットストリームにdim_not_present_flagを含めること、および/または他の基準に基づいて、ビットストリームにdim_not_present_flagを含めるかどうかを決定することができる。さらなる例では、デコーダは、前述の例に従って符号化されたビットストリームを復号することができる。
[0052]いくつかの例では、デコーダは、予測ユニット(PU)のサイズがPUに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、PUのために符号化ビットストリームからdim_not_present_flagを解析、抽出、および/または復号するかどうかを決定することができる。たとえば、PUのサイズがPUに対応する最大変換ブロックサイズよりも大きい場合、デコーダは、符号化ビットストリームからdim_not_present_flagを解析しなくてよい。この例では、PUのサイズがPUに対応する最大変換ブロックサイズよりも大きくない場合、デコーダは、符号化ビットストリームからdim_not_present_flagを解析する(たとえば、抽出する)すること、および/または状況によってはビットストリームからdim_not_present_flagを解析することを可能にする他の基準に基づいて、符号化ビットストリームからdim_not_present_flagを解析するかどうかを決定することができる。いくつかの例では、デコーダが符号化ビットストリームからdim_not_present_flagを解析しないとき、デコーダは、dim_not_present_flagの値が所定の推測値(たとえば、1)に等しいと推測することができる。
[0053]さらなる例では、PUがDMMモードのうちの1つによりコーディングされるとき、復号順序で1つずつPU内のTUを予測し再構築する代わりに、PU全体が、その中のTUを再構築する前に3D−HEVCがするのと同じ方法を使用して予測され得る。その後、PUの再構築サンプルが、PUの予測サンプルにPUの関連変換木ノードによって表される残差を加算することによって導出され得る。
[0054]いくつかの例では、ビデオエンコーダは、本開示で説明される制限付き深度イントラコーディングおよび/または制限付きDMMコーディングのための技法のうちのいずれかを実行するように構成され得る。たとえば、ビデオエンコーダは、対応する深度予測ユニットが深度モデリングモード(DMM)に従ってコーディングされるときに、(たとえば、変換木ノードが複数のより小さい変換木ノードに分割されるべきではないことを示すために)0に等しくなるようにsplit_transform_flagを制限する技法を使用することができる。別の例として、ビデオエンコーダは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、(たとえば、DMMコーディングモードが深度予測ユニットに使用されないことを示すために)1に等しくなるようにdim_not_present_flagを制限する技法を使用することができる。
[0055]さらなる例として、ビデオエンコーダは、対応する深度予測ユニットがDMMに従ってコーディングされるかどうかに基づいて、split_transform_flagを選択的にシグナリングする技法を使用することができる。追加の例として、ビデオエンコーダは、対応する深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、dim_not_present_flagを選択的にシグナリングする技法を使用することができる。いくつかの例では、上述の技法のうちの1つまたは複数は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0056]さらなる例では、ビデオデコーダは、本開示で説明される制限付き深度イントラコーディングおよび/または制限付きDMMコーディングのための技法のうちのいずれかを実行するように構成され得る。たとえば、ビデオデコーダは、対応する深度予測ユニットが深度モデリングモード(DMM)に従ってコーディングされるときに、(たとえば、変換木ノードが複数のより小さい変換木ノードに分割されるべきではないことを示すために)split_transform_flagが0に等しくなることを指定する制限を満たす符号化ビットストリームを復号する技法を使用することができる。別の例として、ビデオデコーダは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、(たとえば、DMMコーディングモードが深度予測ユニットに使用されないことを示すために)dim_not_present_flagが1に等しくなることを指定する制限を満たす符号化ビットストリームを復号する技法を使用することができる。
[0057]さらなる例として、ビデオデコーダは、対応する深度予測ユニットがDMMに従ってコーディングされるかどうかに基づいて、split_transform_flagを選択的に復号する技法を使用することができる。追加の例として、ビデオデコーダは、対応する深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、dim_not_present_flagを選択的に復号する技法を使用することができる。いくつかの例では、上述の技法のうちの1つまたは複数は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0058]本開示に関するビデオコーディング規格およびHEVC技法がここで概観される。ビデオコーディング規格の例としては、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がある。MVCの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU−T勧告H.264、2010年3月に記載されている。
[0059]さらに、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発された新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)がある。HEVC規格の最近のドラフト、JCTVC−L1003、Benjamin Bross, Woo-Jin Han, Jens-Ranier Ohm, Gary Sullivan, Ye-Kui Wang, Thomas Wiegand、「High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on Video Coding(JCT−VC)、第12回会合:ジュネーブ、スイス、2013年1月14〜23日(「HEVC WD10」または代替的に「HEVC」)が、参照によって全体が本明細書に組み込まれ、以下のリンクから入手可能である。
http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
[0060]図1は、HEVCにおいて使用されるイントラ予測モードを示す図である。HEVCによって定義され、図1に示されるイントラ予測モードは、特に、3D−HEVCのようなHEVC拡張におけるそのようなイントラ予測モードの使用に関係して、正規HEVCイントラ予測モードと呼ばれることがあり、そのようなHEVC拡張では、そのような正規HEVCイントラ予測モードならびにDMMモードおよびSDCモードのような他のイントラ予測モードが使用され得る。
[0061]図1は一般に、HEVCにおけるイントラコーディングに利用可能な様々な方向性イントラ予測モードに関連付けられる予測方向を示す。現在のHEVCでは、たとえば、HEVC WD10において説明されているように、各予測ユニット(PU)のルーマ成分のために、図1に示されるように、(2から34までインデックス付けされた)33個の方向性(directional)(角度(angular))予測モードと、(1とインデックス付けされた)DCモードと、(0とインデックス付けされた)平面(Planar)モードとを有するイントラ予測方法が利用される。
[0062](0とインデックス付けされた)平面モードでは、ビデオデータのブロック、たとえばPU内のピクセルの各々に対する予測子値を決定するために、いわゆる「平面(plane)」関数を使用して予測が実行される。(1とインデックス付けされた)DCモードによれば、ブロック内のピクセルの各々に対する予測子値を決定するために、ブロック内のピクセル値の平均を使用して予測が実行される。方向性予測モードによれば、(そのモードによって示される)特定の方向に沿った隣接ブロックの再構築されたピクセルに基づいて予測が実行される。概して、図1に示されている矢印の各々の末端は、1つまたは複数の値がそこから取り出される1つまたは複数の隣接ピクセルの相対的なセットを表し、矢印の各々のヘッドは、予測ブロックを形成するために取り出された値(または取り出された値の組合せ)が伝搬される方向を表す。
[0063]HEVCイントラ予測モードでは、ビデオエンコーダおよび/またはビデオデコーダは、たとえば、モード2から34に対するPUの隣接サンプルを使用することによって、上で論じられた様々なモードを使用してPU中の各ピクセルのためのピクセル固有の予測子値を生成する。ビデオエンコーダは、ブロックのピクセルのための実際の深度値と予測子値との間の差分に基づいてビデオブロックのための残差値を決定し、残差値をビデオデコーダに提供する。
[0064]HEVC WD10によれば、ビデオエンコーダは、残差値を変換して変換係数を生成し、変換係数を量子化する。ビデオエンコーダはまた、量子化変換係数をエントロピー符号化し得る。ビデオデコーダは、(たとえば、エントロピー復号、逆量子化、および逆変換の後で)残差値を予測子値に加算することによって、ブロックのピクセルに関して再構成された値を決定する。HEVCイントラ予測モードに関するさらなる詳細が、HEVC WD10において指定されている。
[0065]HEVCにおいて使用されるコンテキスト適応型バイナリ算術コーディング(CABAC)解析処理を含む、HEVCにおいて使用され得るエントロピーコーディング処理がここで説明される。CABACコーディング処理のための主要ステップは、以下を含む。
1.バイナリ化
2.コンテキストモデリング
3.バイナリ算術コーディング
[0066]バイナリ化のために、CABACエントロピーコーダは、非バイナリ値のシンタックス要素を、ビン列と呼ばれるバイナリシーケンスにマッピングする。シンタックス要素がすでにバイナリ値である場合、バイナリ化は必要ではなく、回避され得る。ビン列における各ビンは二者択一を表す。次いでCABACエントロピーコーダは、コンテキストモデルが選択されるCABACコーダの正規コーディングエンジン、またはコンテキストモデル選択が必要とされないCABACコーダのバイパスコーディングエンジンのいずれかを使用して、ビン列における各ビンをコーディングする。
[0067]正規(すなわち、コンテキスト適応型)コーディングモードでは、CABACエントロピーコーダは、各ビンに対する算術コーディング処理の前にコンテキストモデリングを実行するコンテキストモデラを含む。CABACエントロピーコーダの正規コーディングエンジンは、コンテキストモデリングを実行し、それによって、各ビンに対して確率モデルが選択される。以前コーディングされたバイナリシンタックス要素またはシンタックス要素のビンにコンテキスト選択が依拠するように、CABACエントロピーコーダにおいて確率モデルが選択され得る。
[0068]コンテキストモデル選択の後、CABACエントロピーコーダの正規コーディングエンジンは、ビンと、ビンに対して選択された確率モデルとを受信する。次いでCABAC正規コーディングエンジンは、コンテキストモデルを使用して関連ビンにバイナリ算術コーディングを適用し、その後、コンテキストモデルを更新する。特に、コンテキストモデルを更新するために、コンテキストモデラにビン値が返され得る。CABAC符号化/復号(一般にコーディングと呼ばれ、コーディングは符号化または復号を備え得る)を開始する前に、エントロピーコーディング(たとえば、エントロピー符号化または復号)ユニットは、各コンテキストに初期化確率状態を割り当てる。
[0069]コンテキスト適応型コーディングの代替として、エントロピーコーダは、選択されたビンをエントロピーコーディングするためにバイパスコーディングモードを選択する。CABACエントロピーコーダのバイパスコーディングエンジンは、ビンをコーディングするために、明示的に割り当てられたコンテキストモデルを使用せずに、簡易算術コーダを使用する。バイパスコーディングエンジンは、コンテキスト適応型ではない。すなわち、バイパスコーディングエンジンでは、コンテキストモデルから取得された推定確率を使用してビンがコンテキストコーディングされることはない。代わりに、バイパスコード化ビンが固定確率モデルによりコーディングされ得る。
[0070]たとえば、バイパスコーディングエンジンは、0.5の等しい確率を仮定することができ、コーディングのためのコンテキストの選択を必要としない。したがって、コンテキストモデルを使用する正規バイナリ算術コーディングエンジンを使用してコーディングされる(すなわち、正規コーディングエンジンにおいてコンテキストコーディングされる)ビンもあれば、コンテキストモデルを使用せずにバイパスコーディングを使用してコーディングされる(すなわち、バイパスコーディングエンジンにおいてバイパスコーディングされる)ビンもある。
[0071]適用可能な場合、CABACエントロピーエンコーダの正規コーディングエンジンまたはバイパスコーディングエンジンは、ビットストリームを形成するコード化ビットを生成するために、シンタックス要素に関するビンを算術コーディングする。適用可能な場合、CABACエントロピーデコーダの正規コーディングエンジンまたはバイパスコーディングエンジンは、ビンを生成するためにビットストリーム中のビットを復号し、シンタックス要素を生成するために1つまたは複数のビンを復号する。いくつかの例では、バイパスコーディングは、スループットの増大をもたらすことができ、同じサイクルにおいて複数のビンがコーディングされることを可能にし得る。したがって、CABACバイパスコーディングエンジンの使用は、計算スループットの増大のために望ましいものであり得、CABAC正規コーディングエンジンの使用は、高いコーディング効率のために望ましいものであり得る。
[0072]JCT−3Vでは、マルチビュー拡張(MV−HEVC)および3Dビデオ拡張(3D−HEVC)という2つのHEVC拡張が開発されている。参照ソフトウェアの最近のバージョン、3D−HEVCのための「3D−HTM version 10.0rc1」が、参照によって全体が本明細書に組み込まれ、以下のリンクからダウンロード可能である。
[3D-HTM version 10.0rc1]:
https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-10.0rc1/
[0073]3D−HEVCの最近のワーキングドラフトは、JCTVC−G1001、Gerhard Tech, Krzysztof Wegner, Ying ChenおよびSehoon Yea、「3D-HEVC Draft Text 3」、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第6回会合:ジュネーブ、スイス、2013年10月25日〜11月1日(以下では「G1001」または「3D−HEVC WD」と呼ばれる)において提示され、参照によって全体が本明細書に組み込まれ、以下のリンクから入手可能である。
http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/7_San%20Jose/wg11/JCT3V-G1001-v1.zip
[0074]3D−HEVCでは、上で参照された3D−HEVC WDにおいて定義されるように、各アクセスユニットは複数のピクチャを含み、各ビュー中のピクチャの各々は、固有のビュー識別情報(id)またはビュー順序インデックスを有する。しかしながら、同じビューの深度ピクチャおよびテクスチャピクチャは、異なるレイヤidを有することがある。
[0075]3Dビデオコーディングにおける深度コーディングがここで説明される。3Dビデオデータは、キャプチャされたビュー(テクスチャ)が対応する深度マップに関連付けられる、マルチビュービデオプラス深度フォーマットを使用して表される。3Dビデオコーディングでは、テクスチャおよび深度マップはコーディングされ、3Dビデオビットストリーム中に多重化される。深度マップはグレースケールビデオとしてコーディングされ、ここで、ルーマサンプルは深度値を表し、従来のイントラコーディングおよびインターコーディング方法が深度マップコーディングのために適用され得る。
[0076]深度マップは、鋭いエッジおよび一定のエリアによって特徴付けられ得る。深度マップのサンプルの異なる統計値により、様々なコーディング方式が、2Dビデオコーデックに基づく深度マップのために設計されている。マルチビュープラス深度コーディング処理では、ビューはテクスチャ成分と深度成分とを含み得る。深度成分における深度コーディングユニット(CU)がインターコーティングまたはイントラコーディングされ得る。深度CUは、1つまたは複数のPUに分割され得、PUは、1つまたは複数の区分に分割され得る。3D−HEVCでは、イントラ予測モードの、HEVCの場合と同じ定義が利用される。深度モデリングモード(DMM)が、3D−HEVCにおいて、深度スライスのイントラ予測ユニットをコーディングするためにHEVCイントラ予測モードとともに導入される。
[0077]図2は、本開示で説明される制限付き深度イントラコーディング技法および/または制限付きDMMコーディング技法のような、本開示の様々な技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。図2に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に関する機能を備え得る。
[0078]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信することができる。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムに直接送信することを可能にするために、送信チャネルなどの通信媒体を備え得る。
[0079]符号化ビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたはワイヤード通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0080]いくつかの例では、符号化データは、出力インターフェース22から、非一時的コンピュータ可読記憶媒体などのコンピュータ可読記憶媒体、すなわちデータストレージデバイスに出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたまたはローカルにアクセスされる非一時的データ記憶媒体のいずれかを含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶することができる、ファイルサーバまたは別の中間ストレージデバイスに対応する場合がある。
[0081]宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することができ、その符号化ビデオデータを宛先デバイス14に送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して、符号化ビデオデータにアクセスすることができる。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバに記憶された符号化ビデオデータにアクセスするために好適である両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0082]本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なワイヤードまたはワイヤレスマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0083]図2の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、3D−HEVCのような3Dビデオコーディング処理における深度イントラコーディングおよび/またはDMMコーディングを制限するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、集積ディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースし得る。
[0084]図2の示されるシステム10は一例にすぎない。本開示で説明される技法は、デジタルビデオ符号化および/または復号デバイスによって実行される場合がある。一般に、本開示の技法は、ビデオエンコーダ20/ビデオデコーダ30によって実行されるが、技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行されてもよい。その上、本開示の技法は、ビデオプリプロセッサによって実行されてもよい。ソースデバイス12および宛先デバイス14は、宛先デバイス14に送信するためのコード化ビデオデータをソースデバイス12が生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称の形で動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14の間の一方向または双方向のビデオ送信をサポートすることができる。
[0085]ソースデバイス12のビデオソース18は、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含む場合がある。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組合せを生成することができる。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるスマートフォン、タブレットコンピュータ、またはビデオ電話を形成し得る。しかしながら、上で言及されたように、本開示で説明される技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレス適用例および/またはワイヤード適用例に適用され得る。各々の場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0086]コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信のような一時的媒体、またはデータ記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に提供することができる。同様に、ディスクスタンピング設備のような、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含むディスクを生成することができる。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0087]本開示は、一般に、ビデオエンコーダ20が、ビデオデコーダ30などの別のデバイスにある情報を「シグナリング」することに言及する場合がある。しかしながら、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングできることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化部分のヘッダまたはペイロードにいくつかのシンタックス要素を格納することによって、データを「シグナリング」することができる。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信および復号されるより前に、符号化および記憶(たとえば、コンピュータ可読媒体16に記憶)される場合がある。したがって、「シグナリング」という用語は全般に、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を、そのような通信がリアルタイムで発生するか、もしくはほぼリアルタイムで発生するか、またはある期間にわたって発生するかにかかわらず指すことがあり、ある期間にわたる通信は、シンタックス要素を符号化の時点で媒体に記憶し、次いで、シンタックス要素がこの媒体に記憶された後の任意の時点で復号デバイスによって取り出され得るときに、発生し得る。
[0088]いくつかの例では、シンタックス要素が、ビットストリームにそのシンタックス要素を含めることによってシグナリングされ得る。さらなる例では、シンタックス要素が、ビットストリームにそのシンタックス要素を含めることによってではなく、ビットストリームに他のシンタックス要素を含める(元のシンタックス要素の値がビットストリームから推測され得る)ことによってシグナリングされ得る。
[0089]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダ20によって定義されビデオデコーダ30によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス32は、ユーザに復号ビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、投影デバイス、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備える場合がある。
[0090]図2には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびオーディオデコーダと統合される場合があり、共通のデータストリームまたは別々のデータストリーム内のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。適用可能な場合、MUX−DEMUXユニットは、一例として、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
[0091]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能な場合、1つまたは複数のプロセッサのような、種々の好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。様々なプロセッサの例としては、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せを伴い得る、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路がある。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれもが複合ビデオエンコーダ/デコーダ(コーデック)の一部として組み込まれ得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
[0092]ビデオエンコーダ20およびビデオデコーダ30は、HEVC規格のようなビデオコーディング規格、およびより具体的には、たとえば、3D−HEVC WDによる、本開示で参照されるようなHEVC規格の3D−HEVC拡張に従って動作することができる。HEVCは、たとえば、ITU−T H.264/AVCなどの他の処理に従ってコーディングを実行するように構成されるデバイスと比較して、ビデオコーディングデバイスのいくつかの追加能力を仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供するが、図1に示され、図1を参照しながら上記で説明したように、HMは35個ものイントラ予測符号化モードを提供することができる。
[0093]HEVCのいくつかの基本的態様がここで論じられる。一般に、HEVCは、ビデオピクチャ(または「フレーム」)が、コーディングツリーユニット(CTU)と呼ばれる一連の最大コーディングユニット(LCU)に分割され得ることを指定する。CTUは、対応するルーマ成分およびクロマ成分を含み、これらはコード化ツリーブロック(CTB)、たとえば、それぞれ、ルーマCTBおよびクロマCTBと呼ばれ、ルーマサンプルおよびクロマサンプルを含む。ビットストリーム内のシンタックスデータは、CTUにとってのサイズを定義し得、CTUは、ピクセルの個数に関して最大のコーディングユニットである。スライスは、ピクチャのコード化部分であってよく、コーディング順序で、いくつかの連続するCTBを含み得る。ピクチャは、1つまたは複数のスライスに区分され得る。各CTUは、4分木区分構造に従ってコーディングユニット(CU)に分割され得る。一般に、4分木データ構造は、CUあたり1つのノードを含み、ルートノードがCTBに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0094]4分木データ構造の各ノードは、対応するCUに関するシンタックスデータを提供し得る。たとえば、4分木中のノードは、そのノードに対応するCUがサブCUに分割されるのかどうかを示す分割フラグを含むことができる。CUに関するシンタックス要素は、再帰的に定義される場合があり、CUがサブCUに分割されるかどうかに依存する場合がある。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。リーフCUの4つのサブCUは、元のリーフCUの明示的な分割がない場合でも、リーフCUと呼ばれる場合もある。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUはリーフCUとも呼ばれる。
[0095]HEVCにおけるCUは、CUがサイズの差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、CTBは、(サブCUとも呼ばれる)4つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連付けられるシンタックスデータは、最大CU深度と呼ばれる、CTBが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。したがって、いくつかの例では、ビットストリームは、最小コーディングユニットを定義することもできる。
[0096]CUは、コーディングノードと、コーディングノードに関連付けられる予測ユニット(PU)および変換ユニット(TU)とを含む。本開示は、HEVCのコンテキストでは、CU、予測ユニット(PU)、変換ユニット(TU)、コーディングブロック、予測ブロック、変換ブロック、もしくはそれらの区分のいずれか、または他の規格のコンテキストでは、同様のデータ構造を指すために、「ブロック」という用語を使用する場合がある。CUのサイズはコーディングノードのサイズに対応する。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上のCTBのサイズまで及ぶ場合がある。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連付けられるシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述し得る。区分モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかによって異なり得る。本開示で説明される深度コーディングの場合、PUは、形状が非正方形となるように区分され、または、形状が非長方形である区分を含み得る。CUに関連付けられるシンタックスデータは、たとえば、4分木に従う1つまたは複数のTUへのCUの区分を記述することもできる。TUは、形状が正方形または非正方形(たとえば、長方形)であってよい。
[0097]HEVC規格は、CUごとに異なり得る、TUに従った変換を可能にする。TUは通常、区分されたCTBについて定義される所与のCU内のPUのサイズに基づいてサイズ決定されるが、必ずそうなっているとは限らない。TUは、一般に、PU以下のサイズである。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られている4分木構造を使用して、より小さいユニットに細分され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれ得る。TUに関連付けられるピクセル差分値は、変換係数を生成するために変換されてよく、変換係数は量子化され得る。
[0098]リーフCUは、1つまたは複数の予測ユニット(PU)を含むことができる。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。参照サンプルは、参照ブロックからのピクセルであり得る。いくつかの例では、参照サンプルは、たとえば、補間または他の技法によって、参照ブロックから取得されるか、または生成される場合がある。PUはまた、予測に関するデータを含む。たとえば、PUがイントラモード符号化されるとき、PU用のデータは、残差4分木(RQT)に含まれる場合があり、RQTは、PUに対応するTU用のイントラ予測モードを記述するデータを含む場合がある。
[0099]別の例として、PUがインターモード符号化されるとき、PUは、PU用の1つまたは複数の動きベクトルを定義するデータを含む場合がある。PU用の動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、RefPicList0、RefPicList1)を記述することができる。
[0100]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)をも含み得る。変換ユニットは、上で論じられたように、RQT(TU4分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。その場合に、各変換ユニットは、さらなるサブTUにさらに分割され得る。TUがさらに分割されないとき、それはリーフTUと呼ばれることがある。いくつかの例では、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。そのような例では、一般に、リーフCUのすべてのTUの予測値を計算するために、同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダ20は、イントラ予測モードを使用して、リーフTUごとの残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算することができる。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUよりも大きい場合もあり、小さい場合もある。イントラコーディングの場合、PUは、同じCU用の対応するリーフTUと併置される場合がある。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応する場合がある。
[0101]その上、リーフCUのTUは、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造にも関連付けられ得る。すなわち、リーフCUは、そのリーフCUがTUにどのように区分されるのかを示す4分木を含むことができる。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してCTBに対応する。分割されないRQTのTUは、リーフTUと呼ばれる。一般に、本開示は、別段に記載されていない限り、それぞれ、リーフCUおよびリーフTUを指すために、CUおよびTUという用語を使用する。
[0102]ビデオシーケンスは通常、一連のピクチャを含む。本明細書で説明されるように、「ピクチャ」と「フレーム」は互換的に使用され得る。すなわち、ビデオデータを含んでいるピクチャは、ビデオフレームまたは単に「フレーム」と呼ばれ得る。ピクチャグループ(GOP)は一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOPのヘッダ中、ピクチャの1つもしくは複数のヘッダ中、または他のところに、そのGOPに含まれるピクチャの数を記述するシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスに関する符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはCU内のコーディングノードに対応する場合がある。ビデオブロックは、固定サイズまたは可変サイズを有することができ、指定されたコーディング規格に従ってサイズが異なり得る。
[0103]一例として、HEVCは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2Nx2Nであると仮定すると、HEVCは、2Nx2NまたはNxNのPUサイズにおけるイントラ予測と、2Nx2N、2NxN、Nx2N、またはNxNという対称なPUサイズにおけるインター予測とをサポートする。2Nx2Nのサイズを有するPUは、それが存在するCUと同じサイズであるので、分割されないCUを表す。言い換えれば、2Nx2NのPUは、そのCUと同じサイズである。HEVCは、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を指す。深度コーディングの場合、3D−HEVC WDはさらに、説明されるように、非長方形区分を含む、深度モデリングモード(DMM)に従ったPUの区分をサポートする。
[0104]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法の観点からビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用される場合がある。一般に、16x16ブロックは、垂直方向に16ピクセル(y=16)、水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、水平方向にNピクセルを有し、Nは非負整数値を表す。ブロック内のピクセルは、行および列に配置される場合がある。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
[0105]HEVCにおけるCU構造に関するさらなる詳細がここで説明される。HEVCでは、スライス中の最大コーディングユニットはコーディングツリーブロック(CTB)と呼ばれる。CTBは4分木を含んでおり、そのノードはコーディングユニットである。
[0106](8×8CTBサイズがサポートされ得るが)CTBのサイズは、HEVCメインプロファイルにおいて16×16から64×64に及び得る。コーディングユニット(CU)は、CTBのサイズと同じサイズであることがあり、わずか8×8であることもある。各コーディングユニットは、いくつかの例では、1つのモードによりコーディングされ得る。CUがインターコーディングされるときには、CUはさらに、2個または4個の予測ユニット(PU)に区分され得、または区分が適用されない場合、CUは1つのPUに対応し得る。1つのCUに2つのPUが存在するときには、それらは半分のサイズの長方形またはCUの1/4もしくは3/4のサイズを有する2つの長方形サイズであり得る。
[0107]CUがインターコーディングされるとき、PUごとに1つの動き情報セットが存在する。加えて、動き情報セットを導出するために、各PUは一意のインター予測モードでコーディングされる。
[0108]予測ユニット(PU)構造に関するさらなる詳細がここで説明される。予測ユニット(PU)は、同じ予測が適用されるCUを区分することによって定義された領域である。一般に、ピクチャ中の実際のオブジェクトの境界に一致する区分を円滑にするために、PUは形の点で正方形になることに限定されない。
[0109]図3は、コーディングユニットを区分する際に使用するための例示的な区分モードを示す概念図である。区分モードに応じて、各CUは、1つ、2つ、または4つのPUを含む。図3では、インターコード化CUのPUを定義するために使用され得る8つの区分モードが示されている。イントラコード化CUを区分するために、PART_2N×2N区分モードおよびPART_N×N区分モードが使用される。区分モードPART_N×Nは、対応するCUサイズが最小CUサイズに等しいときだけ可能にされる。
[0110]イントラコード化CUの場合、区分モードは、いくつかの例では、PART_2N×2N区分モードおよびPART_N×Nに限定され得る。イントラコード化CUを区分することから生じる区分は、予測ユニット(PU)と呼ばれ得る。たとえば、イントラコード化CUがPART_2N×2N区分モードに従って区分される場合、イントラコード化CUは、イントラコード化CUと同じサイズを有する1つのPUに区分され得る。別の例として、イントラコード化CUがPART_N×N区分モードに従って区分される場合、イントラコード化CUは、各々がイントラコード化CUのサイズの4分の1である4つのPUに区分され得る。
[0111]変換ユニット(TU)および変換木構造に関するさらなる詳細がここで説明される。各CUは、4分木である1つの変換木に対応し、そのリーフは変換ユニットである。変換ユニット(TU)は、同じ変換および量子化処理を共有する、CUの4分木区分によって定義された正方形領域である。
[0112]図4は、CU内の例示的な変換木構造を示す概念図である。図4に示されるように、CUは、変換木構造のルートノード(N0)に対応する。ルートノード(N0)変換木構造は、変換木構造の親ノードに対応し、4つの子ノード(N1、N2、N3、N4)に分割される(たとえば、区分または細分される)。ノードN1は4つの子ノード(N5、N6、N7、N8)に分割され、ノードN2は4つの子ノード(N9、N10、N11、N12)に分割され、ノードN4は4つの子ノード(N13、N14、N15、N16)に分割され、ノードN11は4つの子ノード(N17、N18、N19、N20)に分割される。
[0113]図4の変換木構造におけるノードの各々は、変換木ノードと呼ばれ得る。より小さい変換木ノードにさらに分割されない変換木ノードは、リーフノードと呼ばれ得る。より小さい変換木ノードにさらに分割される変換木ノードは、非リーフノードと呼ばれ得る。変換木構造のリーフノードの各々は、それぞれの変換ユニットに対応し得る。変換ユニットの各々は、ピクチャの1つまたは複数の成分のためのそれぞれの変換ブロック(たとえば、ピクチャの深度ビュー成分のための変換ブロック)に対応し得る。各変換ユニットおよび/または変換ブロックは、ブロックベースの変換が適用され、および/またはブロックベースの量子化が適用される、基本的ブロックユニットに対応し得る。
[0114]図4の例では、ノードN3、N5、N6、N7、N8、N9、N10、N12、N13、N14、N15、N16、N17、N18、N19、およびN20はリーフノードであり、ノードN0、N1、N2、N4、およびN11は非リーフノードである。リーフノードN3、N5、N6、N7、N8、N9、N10、N12、N13、N14、N15、N16、N17、N18、N19、およびN20の各々は、それぞれの変換ユニットに対応し得る。変換ユニットの各々は、ピクチャの1つまたは複数の成分のためのそれぞれの変換ブロック(たとえば、ピクチャの深度ビュー成分のための変換ブロック)に対応し得る。
[0115]変換木構造のノードが複数のサブノードに分割される場合に、分割されたノードがサブノードに対して親ノードと呼ばれることがあり、サブノードが親ノードに対して子ノードと呼ばれることがある。変換木構造におけるノードの各々は、細分レベル(subdivision level)に対応し得る。親ノードが複数の子ノードに分割される場合、子ノードは、親ノードよりも1レベル大きい細分レベルを有することになる。
[0116]図4の例では、ルートノード(N0)は0の細分レベル(たとえば、trafoDepth)を有することができ、ノードN1、N2、N3、およびN4は1の細分レベルを有することができる。さらに、ノードN5、N6、N7、N8、N9、N10、N11、N12、N13、N14、N15、およびN16は、2の細分レベルを有することができ、ノードN17、N18、N19、およびN20は3の細分レベルを有することができる。
[0117]いくつかの例では、変換木ノードの各々に関してシンタックス要素がコーディングされ得る。それぞれの変換木ノードに関するシンタックス要素は、それぞれの変換木ノードが複数のサブ変換木ノード(すなわち、子ノード)に分割されるべきかどうかを示し得る。非リーフノードの各々に関して、対応するシンタックス要素は、非リーフノードが複数のサブ変換木ノードに分割されるべきであることを示し得る。リーフノードの各々に関して、対応するシンタックス要素は、リーフノードが複数のサブ変換木ノードに分割されるべきではないことを示し得る。いくつかの例では、シンタックス要素は、コード化ビットストリームに含まれること、および/またはコード化ビットストリームから推測されることがある。
[0118]HEVCおよび3D−HEVCでは、変換木ノードが複数のサブ変換木ノードに分割されるべきかどうかを示すシンタックス要素は、split_transform_flagシンタックス要素であり得る。1の値を有するsplit_transform_flagは、変換木ノードが複数のサブ変換木ノードに分割されるべきであることを指定する。0の値を有するsplit_transform_flagは、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを指定する。
[0119]図4の例では、ノードリーフノードN3、N5、N6、N7、N8、N9、N10、N12、N13、N14、N15、N16、N17、N18、N19、およびN20は、0に等しいsplit_transform_flagを有し得る。同様に、非リーフN0、N1、N2、N4およびN11は、1に等しいsplit_transform_flagを有し得る。
[0120]上記で説明したように、イントラコード化CUは、PART_2N×2N区分モードまたはPART_N×N区分モードに従って1つまたは複数のPUに区分され得る。CUがPART_2N×2N区分モードに従って区分される場合、CUは、ルートノードN0と同じサイズを有し、ルートノードN0におけるサンプル(たとえば、ピクセル)に対応するサンプルを有する単一のPUに区分され得る。
[0121]CUがPART_N×N区分モードに従って区分される場合、CUは、ノードN1、N2、N3およびN4と同じサイズを有する4つのPUに区分され得る。第1のPUは、ノードN1におけるサンプルに対応するサンプルを有することができ、第2のPUは、ノードN2におけるサンプルに対応するサンプルを有することができ、第3のPUは、ノードN3におけるサンプルに対応するサンプルを有することができ、第4のPUは、ノードN4におけるサンプルに対応するサンプルを有することができる。
[0122]CU内の複数のTUの4分木構造が図4に示されている。図4の例では、TUの形状は、常に正方形であり、32×32のサンプルから4×4のサンプルまでのサイズをとり得る。最大変換ブロックサイズおよび4分木の深度は、調整可能であり、シーケンスパラメータセットにおいて指定される。インターCUの場合、TUは、PUよりも大きい場合があり、すなわち、TUはPU境界を包含し得る。ただし、TUは、イントラCUのPU境界を越えることはない。たとえば、イントラ予測モードでは、CUの区分モードがPART_N×Nであるとき、CUの変換木深度(利用可能な場合)は0よりも大きくなるべきである。
[0123]図5は、PART_N×N区分モードにより区分されるイントラコード化コーディングユニット内の変換木構造の例を示す概念図である。図5に示されるように、CUは、予測木構造(左側)および変換木構造(右側)に対応することができ、CUは、予測木構造と変換木構造の両方のルートノードに対応する。
[0124]図5の左側に示されるように、CU(すなわち、予測木構造のルートノード)は4つのノード(すなわち、予測木ノード)に分割され、各PUはノードのうちの1つに対応する。図5の右側に示されるように、CU(すなわち、変換木構造のルートノード)は、変換ユニットTU0、TU1、TU2、TU3、TU4、TU5、TU6、TU7、TU8、TU9、TU10、TU11、およびTU12に分割される。
[0125]いくつかの例では、シンタックス要素rqt_root_cbfは、特定のコーディングユニットに関してtransform_treeシンタックス構造が存在するかどうかをシグナリングすることができる。たとえば、rqt_root_cbfを1に等しく設定することは、現在のコーディングユニットに関してtransform_treeシンタックス構造が存在することを指定し、rqt_root_cbfを0に等しく設定することは、現在のコーディングユニットに関してtransform_treeシンタックス構造が存在しないことを指定する。rqt_root_cbfが存在しないとき、その値は1に等しいと推測される。
[0126]rqt_root_cbfが0に等しいとき、変換木は、いくつかの例では、1つのノードのみを包含し、つまり、その変換木はさらに分割されず、split_transform_flagは0に等しい。そのような例では、コーディングユニットに対応する変換ユニットのサイズは、コーディングユニットのサイズに等しくなり得る。さらに、CUに対応するいくつかのノードは変換されないことがある。変換木の中のノードに関して、それが1に等しいsplit_transform_flagを有する場合、ノードは、4つのノードにさらに分割される。変換木のリーフは、0に等しいsplit_transform_flagを有する。
[0127]簡単にするために、変換ユニットまたは変換木が、変換を有しないブロックに対応する場合、そのような変換ユニットまたは変換木は、変換自体の階層が依然として存在するので、依然として変換木または変換ユニットと考えられ得る。変換スキップされたブロックは、変換ユニットに対応すること、および/または変換ユニットの中にあることがある。
[0128]変換ユニットのcbfがここでさらに詳細に説明される。1に等しい変換ユニットのcbfは、0に等しくない1つまたは複数の変換係数レベルを変換ユニットが含むことを指定する。0に等しい変換ユニットのcbfは、変換ユニットのすべての変換係数レベルが0であることを指定する。cbfは、変換ユニットの各成分のために設定されることがあり、たとえば、cbfは、それぞれルーマ成分、cb成分およびcr成分のために設定される。
[0129]TUレベルにおけるイントラ予測がここでさらに詳細に説明される。図6は、例示的な変換木構造の例示的な変換ユニット処理順序を示す。HEVCでは、イントラコード化CUのサンプル予測および再構築は、TUレベルで実行され、TUは、図6に示されるように、復号順序で予測され再構築される。1つのTUを再構築した後、それの再構築サンプルが、後続のTUを予測するために使用される。PUが複数のTUを含んでいるとき、第1のTUに関しては、PUの隣接サンプルを使用して予測され、他のTUに関しては、PUの隣接サンプルおよび/または先行TU中の隣接サンプルを使用して予測される。
[0130]正規イントラ予測モードの場合、(33個の角度イントラ予測モードと、DCモードおよび平面モードとを含む)同じイントラ予測モードが、異なるブロックサイズ、すなわち、4×4、8×8、16×16、32×32および64×64に適用されることに留意されたい。異なるブロックサイズを有する複数のTUをPUが含んでいるときでも、これらのTUは、同じイントラ予測モードを使用して予測され得る。
[0131]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUに関する残差データを計算することができる。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、残差ビデオデータへの変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用に続く変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分に対応することができる。ビデオエンコーダ20は、CUに関する残差データを含むTUを形成し、次いで、CUに関する変換係数を生成するためにTUを変換することができる。
[0132]変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現する処理を指す。量子化処理は、係数の一部またはすべてに関連付けられたビット深度を低減することができる。たとえば、量子化の間にnビット値がmビット値へと切り捨てられてよく、この場合、nはmよりも大きい。深度コーディングの場合、3D−HEVC WDはさらに、残差データのセグメントごとのDCコーディングとDMMコーディングとをサポートし、デルタDC値がPU区分に対する残差値を表す。通常のHEVC残差値とは異なり、デルタDC残差値は、変換または量子化されないことがある。
[0133]量子化に続いて、ビデオエンコーダ20は、量子化変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成することができる。走査は、より高いエネルギー(したがって、より低い頻度)の係数を配列の前方に配置し、より低いエネルギー(したがって、より高い頻度)の係数を配列の後方に配置するように設計され得る。
[0134]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行することができる。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、HEVCにおいて使用されるコンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化することができる。他のエントロピーコーディング処理の例としては、コンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、および確率間隔区分エントロピー(PIPE)コーディングがある。やはり、HEVCおよび3D−HEVCでは、CABACが使用され得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化することができる。
[0135]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびGOPベースのシンタックスデータのようなシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送ることができる。GOPシンタックスデータは、それぞれのGOP中のピクチャの数を記述することができ、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを示すことができる。
[0136]ビデオエンコーダ20および/またはビデオデコーダ30は、深度データのイントラピクチャ予測コーディングと深度データのインター予測コーディングとを実行することができる。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの深度イントラ予測コーディングおよび/またはビデオデータの深度インター予測コーディングから生じる残差データをコーディングするために、SDCを使用することができる。さらなる例では、ビデオエンコーダ20および/またはビデオデコーダ30は、深度イントラ予測から生じる残差データを生成するために、SDCを伴って、または伴わずにDMMを使用することができる。DMMは、区分におけるピクセルに関する区分固有の予測子をもたらすことができる。残差データは、区分におけるピクセルの各々に関して生成され得る。代替的に、SDCがDMMとともに使用される場合、区分におけるピクセルに適用される単一のDC残差値が生成され得る。
[0137]HEVCでは、コーディングユニット(CU)のサイズが2Nx2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測の場合は2Nx2NまたはNxNという様々な予測ユニット(PU)サイズをサポートすることができ、インター予測の場合は2Nx2N、2NxN、Nx2N、NxN、または同様のサイズの対称のPUサイズをサポートすることができる。ビデオエンコーダおよびビデオデコーダはまた、インター予測の場合は2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対する非対称区分をサポートすることができる。3D−HEVCにおいて提供されるような深度コーディングでは、ビデオエンコーダおよびビデオデコーダは、本開示で説明されるように、様々な深度モデリングモード(DMM)を含む、イントラ予測および/またはインター予測のための種々の異なる深度コーディングモードをサポートするように構成され得る。
[0138]3Dビデオコーディング技法を使用してコーディングされたビデオデータは、3次元効果を生成するためにレンダリングされ、表示され得る。一例として、異なるビューの2つの画像(すなわち、わずかに異なる水平位置を有する2つのカメラの視点に対応する)は、一方の画像が閲覧者の左眼によって見られ、他方の画像が閲覧者の右眼によって見られるように、実質的に同時に表示され得る。
[0139]3D効果は、たとえば、立体視ディスプレイまたは自動立体視ディスプレイを使用して達成され得る。立体視ディスプレイは、2つの画像を相応にフィルタリングするアイウェアとともに使用され得る。たとえば、パッシブ眼鏡は、適切な眼が適切な画像を見ることを保証するために、偏光レンズ、または異なるカラーレンズ、または他の光学的フィルタリング技法を使用して、画像をフィルタリングすることができる。アクティブ眼鏡は、別の例として、立体視ディスプレイと協調して交互にレンズを高速に閉じることができ、それにより、左眼画像を表示することと右眼画像を表示することとを交互に行い得る。自動立体視ディスプレイは、眼鏡が必要とされないような方法で2つの画像を表示する。たとえば、自動立体視ディスプレイは、各画像が閲覧者の適切な眼に投影されるように構成された鏡またはプリズムを含み得る。
[0140]本開示の技法は、3Dビデオをサポートするために深度データをコーディングすることによって、3Dビデオデータをコーディングするための技法に関する。一般に、「テクスチャ」という用語は、画像のルミナンス(すなわち、輝度または「ルーマ」)値と画像のクロミナンス(すなわち、色または「クロマ」)値とを表すために使用される。いくつかの例では、テクスチャ画像は、1セットのルミナンスデータ(Y)と、青色相(Cb)および赤色相(Cr)のための2セットのクロミナンスデータとを含み得る。たとえば、CTUは、ルーマCTBとクロマCTBとを含み得る。4:2:2または4:2:0などの特定のクロマフォーマットでは、クロマデータは、ルーマデータに対してダウンサンプリングされる。すなわち、クロミナンスピクセルの空間解像度は、対応するルミナンスピクセルの空間解像度よりも低く、たとえば、ルミナンス解像度の1/2または1/4であり得る。
[0141]深度データは一般に、対応するテクスチャデータの深度値を表す。たとえば、深度画像は、たとえばビューのテクスチャ成分中の対応するテクスチャデータに対する、たとえばビューの深度成分中の深度を各々表す、深度ピクセルのセット(または深度値)を含み得る。各ピクセルは、1つまたは複数のテクスチャ値(たとえば、ルミナンスおよびクロミナンス)を有してよく、1つまたは複数の深度値も有してよい。テクスチャピクチャおよび深度マップは、同じ空間解像度を有することがあるが、そうである必要はない。たとえば、深度マップは、対応するテクスチャピクチャよりも多数または少数のピクセルを含み得る。深度データは、対応するテクスチャデータの水平視差を決定するために使用されてよく、場合によっては垂直視差も使用されてよい。
[0142]したがって、テクスチャデータと深度データとを受信するデバイスは、一方のビュー(たとえば、左眼ビュー)のための第1のテクスチャ画像を表示し、深度値に基づいて決定された水平視差値だけ第1の画像のピクセル値をオフセットすることによって、他方のビュー(たとえば、右眼ビュー)のための第2のテクスチャ画像を生成するように第1のテクスチャ画像を修正するために深度データを使用することができる。一般に、水平視差(または単に「視差」)は、右ビュー中の対応するピクセルに対する第1のビュー中のピクセルの水平空間オフセットを表し、2つのピクセルは、2つのビュー中で表される同じオブジェクトの同じ部分に対応する。
[0143]さらに他の例では、画像について定義されたゼロ視差平面に対して所与のピクセルに関連付けられる深度が定義されるように、画像平面に直交するz次元におけるピクセルに対して深度データが定義され得る。そのような深度は、ピクセルを表示するための水平視差を作成するために使用されてよく、その結果、ピクセルは、ゼロ視差平面に対するピクセルのz次元深度値に応じて、左眼と右眼とで異なるように表示される。ゼロ視差平面は、ビデオシーケンスの異なる部分に対して変化してよく、ゼロ視差平面に対する深度の量も変化してよい。
[0144]ゼロ視差平面上に位置するピクセルは、左眼と右眼とに対して同様に定義され得る。ゼロ視差平面の前に位置するピクセルは、ピクセルが画像平面に直交するz方向の画像から出てくるように見える知覚を生み出すために、(たとえば、水平視差とともに)左眼と右眼とに対して異なる位置に表示され得る。ゼロ視差平面の後ろに位置するピクセルは、深度のわずかな知覚まで、わずかなぼかしとともに表示されてよく、または(たとえば、ゼロ視差平面の前に位置するピクセルの水平視差とは反対の水平視差とともに)左眼と右眼とに対して異なる位置に表示され得る。他の多くの技法も、画像の深度データを伝達または定義するために使用され得る。
[0145]2次元ビデオデータは一般に、その各々が特定の時間インスタンスに対応する、個別ピクチャのシーケンスとしてコーディングされる。すなわち、各ピクチャは、シーケンス中の他の画像の再生時間に対して、関連付けられる再生時間を有する。これらのピクチャはテクスチャピクチャまたはテクスチャ画像と考えられ得る。深度ベースの3Dビデオコーディングでは、シーケンス中の各テクスチャピクチャは深度マップにも対応し得る。すなわち、テクスチャピクチャに対応する深度マップは、対応するテクスチャピクチャのための深度データを表す。マルチビュービデオデータは、様々な異なるビューのためのデータを含んでよく、各ビューは、テクスチャ成分および対応する深度成分のそれぞれのシーケンスを含み得る。
[0146]ピクチャは一般に、特定の時間インスタンスに対応する。ビデオデータは、アクセスユニットのシーケンスを使用して表されてよく、各アクセスユニットは、特定の時間インスタンスに対応するすべてのデータを含む。したがって、たとえば、マルチビュービデオデータプラス深度コーディングの場合、共通時間インスタンスに対する各ビューからのテクスチャ画像+テクスチャ画像の各々に対する深度マップがすべて、特定のアクセスユニット内に含まれ得る。したがって、アクセスユニットは複数のビューを含んでよく、各ビューは、テクスチャ画像に対応するテクスチャ成分のためのデータと、深度マップに対応する深度成分のためのデータとを含み得る。
[0147]各アクセスユニットは、複数のビュー成分またはピクチャを含み得る。特定のビューのビュー成分は、固有のビューidまたはビュー順序インデックスに関連付けられ、その結果、異なるビューのビュー成分は異なるビューidまたはビュー順序インデックスに関連付けられる。ビュー成分はテクスチャビュー成分ならびに深度ビュー成分を含み得る。同じビューの中のテクスチャビュー成分および深度ビュー成分は、異なるレイヤidを有し得る。テクスチャビュー成分は1つまたは複数のテクスチャスライスとしてコーディングされ得る一方、深度ビュー成分は1つまたは複数の深度スライスとしてコーディングされ得る。マルチビュープラス深度は、イントラピクチャ予測、インターピクチャ予測、ビュー内予測、ビュー間予測、動き予測などのような、種々のコーディングの可能性を生み出す。
[0148]このようにして、3Dビデオコーディングにおける深度マップコーディングにより、3Dビデオデータは、キャプチャまたは生成されたビューが対応する深度マップに関連付けられるテクスチャ成分を含む、マルチビュービデオプラス深度フォーマットを使用して表され得る。その上、3Dビデオコーディングでは、テクスチャと深度マップがコーディングされ、3Dビデオビットストリームの中に多重化され得る。深度マップはグレースケール画像としてコーディングされてよく、深度マップの「ルーマ」サンプル(すなわち、ピクセル)は深度値を表す。
[0149]一般に、深度データのブロック(たとえばピクセルに対応する、深度マップのサンプルのブロック)は深度ブロックと呼ばれ得る。深度値は、深度サンプルに関連付けられるルーマ値と呼ばれ得る。すなわち、深度マップは一般に、モノクロームテクスチャピクチャ、すなわち、ルミナンス値を含みクロミナンス値を含まないテクスチャピクチャとして扱われ得る。いずれの場合も、従来のイントラコーディングおよびインターコーディング方法が深度マップコーディングのために適用され得る。
[0150]3D−HEVCでは、上述のように、イントラ予測モードの、HEVCと同じ定義が利用される。すなわち、3D−HEVCにおいて使用されるイントラモードは、HEVCの正規イントラモードを含む。また、3D−HEVCでは、深度モデリングモード(DMM)が、深度スライスのイントラ予測ユニットをコーディングするためにHEVCイントラ予測モードとともに導入される。
[0151]深度マップにおける鋭いエッジのより良好な表現のために、現在のHTM(3D−HTMバージョン10.0rc1)は、深度マップのイントラコーディングのためにDMM方法を適用する。深度ブロックは、DMMパターンによって指定された2つの領域に区分され、各領域は一定の値によって表される。DMMパターンは、明示的にシグナリングされる(DMMモード1)か、または併置(co-located)されるテクスチャブロックによって予測される(DMMモード4)かのいずれかであり得る。
[0152]Wedgelet区分(Wedgelet partitioning)と輪郭区分(Contour partitioning)とを含む、DMMにおいて定義されている2つのタイプの区分モデルがある。図7は、ピクセルサンプルのブロックをコーディングする際に使用するためのWedgelet区分パターンの例を示す図である。図8は、ピクセルサンプルのブロックをコーディングする際に使用するための輪郭区分パターンの例を示す図である。
[0153]Wedgelet区分では、図7に示されるように、深度ブロックが、直線によって2つの領域に区分され、2つの領域は、P0およびP1と標識される。どのwedgeletパターンが使用されるかを示すために、wedgeletパターンインデックス(wedge_full_tab_idx)が、PUレベルおよび/またはCUレベルで、一般的な予測ユニットパラメータにおいてシグナリングされる。DMMモード1の場合、ブロックサイズごとに異なるwedgeletパターンが適用されることに留意されたい。
[0154]輪郭区分では、図8に示されるように、深度ブロックが、2つの不規則な領域に区分され得る。輪郭区分は、Wedgelet区分よりも柔軟であるが、明示的にシグナリングするのが難しい。DMMモード4では、3D−HEVCの場合、輪郭区分パターンは、併置(co-located)されたテクスチャブロックの再構築されたルーマサンプルを使用して暗黙的に導出される。
[0155]DMMモードがPUに適用されるかどうかを示すために、フラグ、すなわちdim_not_present_flagがコーディングユニットパラメータにおいてシグナリングされる。より具体的には、dim_not_present_flagは、PUレベルでイントラモード拡張シンタックステーブルにおいてシグナリングされ得る。dim_not_present_flagが1に等しいとき、HEVCイントラ予測モードが現在のPUに使用される。一方、dim_not_present_flagが0に等しいとき、DMMモード(DMMモード1またはDMMモード4)が現在のPUに使用される。
[0156]一例として、図7は、8×8のブロック40に対するWedgeletパターンの例示を与える。Wedgelet区分では、深度ブロック、たとえばPUは、直線46によって2つの領域42、44に区分され、図7に示されるように始点48は(Xs,Ys)に位置し、終点50は(Xe,Ye)に位置し、2つの領域42、44はそれぞれP0およびP1とも標識される。ブロック40中の各パターンは、対応するサンプルが領域P0またはP1に属するかどうかを標識する、サイズuB×vBの2進数の配列からなり、uBおよびvBはそれぞれ、現在のPUの水平方向のサイズと垂直方向のサイズを表す。領域P0およびP1は、図7において、それぞれ白いサンプルおよび影付きサンプルによって表されている。Wedgeletパターンは、符号化と復号の両方の最初に初期化される。
[0157]図8の例に示されるように、深度ブロック60のような深度ブロックは、輪郭区分を使用して、2つの不規則な形状の領域62、64へと区分されることができ、ここで領域62はP0と標識され、2つの領域64Aおよび64BはそれぞれP1と一緒に標識される。領域64は、2つのサブ領域64Aおよび64Bから形成される。サブ領域64Aおよび64Bは、それぞれ輪郭線(contour lines)66および68によって表される。
[0158]領域64A中のピクセルは領域64B中のピクセルに直接隣接しないが、領域64Aおよび64Bは、深度ブロック60のPUを予測する目的で1つの単一の領域(領域「64」)を形成するように定義され得る。したがって、深度ブロック60は、2つの不規則な形状の領域62および64へと区分されると言われることがあり、領域64は、2つの不連続のサブ領域64Aおよび64Bを含む。
[0159]図7および図8を参照すると、N×Nの深度ブロック40および60内の各々の個々の正方形は、それぞれ、深度ブロック40および60のそれぞれの個々のピクセルを表す。正方形内の数値は、対応するピクセルが領域42(図7の例における値「0」)に属するか、領域44(図7の例における値「1」)に属するかを表す。また、図7において、ピクセルが領域42(白い正方形)に属するか、領域44(灰色の影付き正方形)に属するかを示すために陰影が使用される。
[0160]上で論じられたように、各パターン(すなわち、Wedgeletと輪郭の両方)は、対応するサンプル(すなわち、ピクセル)が領域P0に属するかP1に属するか(P0は図7中の領域42と図8中の領域62とに対応し、P1は図7中の領域44と図8中の領域64A、64Bとに対応する)を標識する、サイズuB×vBの2進数の配列によって定義されてよく、uBおよびvBはそれぞれ、現在のPUの水平方向のサイズおよび垂直方向のサイズを表す。図7および図8の例では、PUは、それぞれブロック40および60に対応する。
[0161]HEVCイントラ予測モードでは、HEVC WD10の8.4.2項において指定されるように、PUの隣接サンプルを使用することによって、ピクセル固有のイントラ予測子値が、PU中の各ピクセルに対して生成される。
[0162]DMMのような他の深度イントラモードでは、区分固有のDC予測子が、PUの最大2つの隣接サンプルを使用することによって、PU内の各区分に対して計算される。bPattern[x][y]をPUの区分パターンとし、ここでx=0..N−1,y=0..N−1であり、NはPUの幅である。bPattern[x][y]はピクセル(x,y)がどの区分に属するかを示し、bPattern[x][y]は0または1に等しくてよい。BitDepthを深度サンプルのビット深度とし、RecSample[x][y]をPUの再構築された隣接サンプルとし、x=−1およびy=0..N−1(PUの左の隣接ピクセルに対応する)であり、またはy=−1,x=0..N−1(PUの上の隣接ピクセルに対応する)である。次いで、区分XのDC予測子、すなわちx=0または1であるDCPred[X]は、次のように導出される。
・bT = ( bPattern[0][0] ! = bPattern[N-1][0] ) ? 1 : 0 に設定する
・bL = ( bPattern[0][0] ! = bPattern[0][N-1] ) ? 1 : 0 に設定する
・bTがbLに等しい場合、
- DCPred[X] = ( RecSample[-1][0] + RecSample[0][-1] ) >> 1
- DCPred[1-X] = bL ? ( RecSample[-1][N-1] + RecSample[N-1][-1] ) >>
1 : 2BitDepth-1
・それ以外の場合、
- DCPred[X] = bL ? RecSample[(N-1)>>1][-1] : RecSample[-1][(N-1)>>1] - DCPred[1-X] = bL ? RecSample[-1][N-1] : RecSample[N-1][-1]
[0163]深度参照テーブル(DLT:Depth Lookup Table)は、深度インデックスを深度値にマッピングする。DLTは、ビデオシーケンス全体を符号化する前に第1のイントラ期間内のフレームを分析することによって構築され得る。3D−HEVCの現在の設計では、有効な深度値のすべてが、昇順で並べ替えられ、インデックスの増大とともにDLTに挿入される。
[0164]DLTは任意選択のコーディングツールである。現在のHTM(3D−HTMバージョン9.0)では、ビデオエンコーダ20は、分析段階において元の深度マップ中に0からMAX_DEPTH_VALUE(たとえば、8ビット深度サンプルの場合は255)までの値の1/2よりも多くが現れる場合、DLTを使用しない。それ以外の場合、DLTは、シーケンスパラメータセット(SPS)および/またはビデオパラメータセット(VPS)においてコーディングされる。エンコーダ20がDLTをコーディングするために、最初に、有効な深度値の数が指数ゴロムコードによってコーディングされる。次いで、各々の有効な深度値も、指数ゴロムコードによってコーディングされ得る。
[0165]ビデオエンコーダ20は、コーディングされるべき入力ビデオシーケンスから事前に定義された数のフレームを読み取り、利用可能な深度マップ値のためにすべてのサンプルを走査する。この処理の間、エンコーダ20は、元の圧縮されていない深度マップに基づいて深度値を有効な深度値にマッピングするマッピングテーブルを生成する。
[0166]ビデオエンコーダ20および/またはビデオデコーダ30は、深度参照テーブルIdx2Depth(・)と、インデックス参照テーブルDepth2Idx(・)と、深度マッピングテーブルM(・)と、有効な深度値の数dvalidとを、深度マップDtを分析する以下のアルゴリズムを使用して導出する。
1.初期化
・ブーリアンベクトルB(d)=すべての深度値dについてFALSE
・インデックスカウンタi=0
2.複数の時間インスタンスtについてDtの中の各ピクセル位置pを処理する:
・有効な深度値に印を付けるために、B(Dt(p))=TRUEに設定する
3.B(d)→dvalidまでのTRUE値の数をカウントする
4.B(d)==TRUEである各dについて、
・Idx2Depth(i)=dに設定する
・M(d)=dに設定する
・Depth2Idx(d)=iに設定する
・i=i+1
5.B(d)==FALSEである各dについて、
・d’=arg min|d−d’|およびB(d’)==TRUEであるd’を見つける
・M(d)=d’に設定する
・Depth2Idx(d)=Depth2Idx(d’)に設定する。
[0167]インデックスIdxを深度値dにマッピングし返すことは、次のようなもの、すなわちd=Idx2Depth[Idx]である。深度値dからインデックスIdxへのマッピングは、次のようなもの、すなわちIdx=Depth2Idx[d]である。
[0168]3D−HEVCにおいて、セグメントごとのDCコーディング(SDC)が導入されている。SDCでは、PUの区分ごとに1つのDC残差値がシグナリングされ、変換または量子化は適用されない。HEVCイントラ予測モードでは、PU全体が1つの区分と考えられる。SDCは、深度スライスのイントラPUをコーディングするために、正規HEVCイントラ予測モードとDMMモードとを含む、すべての深度イントラ予測モードに適用され得る。現在の3D−HEVCでは、SDCは、2Nx2NのPU区分サイズにのみ適用される。
[0169]各区分の残差値をシグナリングするために、2つの方法が適用され得る。
1.現在のPU中の現在の区分のDC値(すなわち、Averによって示される平均値)から、隣接サンプルによって生成された、Predによって示される予測子を差し引くことによって計算される、各区分のDC残差値を直接コーディングする。
2.DLTが送信されるとき、DC残差値をコーディングする代わりに、インデックス参照テーブルからマッピングされるAverおよびPredのインデックス差分がコーディングされる。インデックス差分は、AverのインデックスからPredのインデックスを差し引くことによって計算される。デコーダ側において、復号されたインデックス差分とPredのインデックスとの合計が、DLTに基づいて深度値にマッピングし返される。
[0170]図9は、本開示の技法を実装するように構成され得る例示的なビデオエンコーダ20を示すブロック図である。本開示は、HEVCコーディング、より具体的には、たとえば、3D−HEVC WDにおいて説明され、本開示において説明されるようにさらに修正される、3D−HEVCコーディングの文脈においてビデオエンコーダ20について説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。したがって、図9は、説明のために提供され、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。
[0171]ビデオデコーダ20は、本開示で説明される制限付き深度イントラコーディングおよび/または制限付きDMMコーディングのための技法のうちのいずれかを実行するように構成され得る。たとえば、ビデオエンコーダ20は、対応する深度予測ユニットが深度モデリングモード(DMM)に従ってコーディングされるときに、(たとえば、変換木ノードが複数のより小さい変換木ノードに分割されるべきではないことを示すために)0に等しくなるようにsplit_transform_flagを制限する技法を使用することができる。別の例として、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、(たとえば、DMMコーディングモードが深度予測ユニットに使用されないことを示すために)1に等しくなるようにdim_not_present_flagを制限する技法を使用することができる。
[0172]さらなる例として、ビデオエンコーダ20は、対応する深度予測ユニットがDMMに従ってコーディングされるかどうかに基づいて、split_transform_flagを選択的にシグナリングする技法を使用することができる。追加の例として、ビデオエンコーダ20は、対応する深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、dim_not_present_flagを選択的にシグナリングする技法を使用することができる。いくつかの例では、上述の技法のうちの1つまたは複数は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0173]図9の例では、ビデオエンコーダ20は、予測処理ユニット100と、ビデオデータメモリ101と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構築ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定(ME)ユニット122と、動き補償(MC)ユニット124とを含む。
[0174]ビデオデータメモリ101は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ101内に記憶されるビデオデータは、たとえば、ビデオソース18から取得される場合がある。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、ダイナミックランダムアクセスメモリ(DRAM)(同期DRAM(SDRAM)を含む)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同じメモリデバイスまたは別々のメモリデバイスによって提供される場合がある。
[0175]予測処理ユニット100の構成要素は、テクスチャ符号化と深度符号化の両方を実行するものとして記載される。いくつかの例では、テクスチャ符号化および深度符号化は、予測処理ユニット100の同じ構成要素、または予測処理ユニット100内の異なる構成要素によって実行される場合がある。たとえば、いくつかの実装形態では、別々のテクスチャエンコーダおよび深度エンコーダが提供される場合がある。また、複数のビューを符号化するために、たとえば、マルチビュープラス深度コーディングのために、複数のテクスチャエンコーダおよび深度エンコーダが提供される場合がある。
[0176]いずれの場合も、予測処理ユニット100は、3D−HEVC処理のような3Dコーディング処理の一部として、テクスチャデータと深度データとをイントラ符号化またはインター符号化するように構成され得る。特に、いくつかのモードでは、予測処理ユニット100は、深度スライスのイントラ予測ユニットをコーディングするために、正規HEVCイントラコーディングモードまたはDMMモードを使用することができる。さらに、予測処理ユニット100は、非SDC残差コーディングまたはSDCコーディングを使用することができる。SDCコーディングまたはDMMコーディングの場合、予測処理ユニット100は、イントラコード化深度PUまたはインターコード化深度PUに対するデルタDC残差値を生成することができ、デルタDC残差値は、PUまたはコード化PUの区分におけるピクセルの平均値と、イントラ予測またはインター予測されるPU区分における予測されるサンプルの平均値との間の差分を表す。PUは、コーディングモードに応じて、単一の区分または複数の区分を有し得る。HEVCイントラモード、HEVCインターモード、DMMのモードまたは他のモードが、深度PUをコーディングするために使用され得る。
[0177]いくつかの例では、予測処理ユニット100は、制限付き深度イントラモードコーディングおよび/または制限付きDMMコーディングに関するもののような、本開示で説明される修正および/または追加を受けて、実質的に、たとえば3D−HEVC WDにおいて説明されているような3D−HEVCに従って動作することができる。いくつかの例では、ビデオエンコーダ20は、図9に示されるものよりも多数の、少数の、または図9に示されるものとは異なる機能構成要素を含み得る。予測処理ユニット100は、エントロピー符号化ユニット118にシンタックス情報を提供することができる。シンタックス情報は、たとえば、どの予測モードが使用されたかと、インター予測の場合の動きベクトル、予測方向、および参照ピクチャインデックスなど、そのようなモードに関係する情報とを示し得る。
[0178]ビデオエンコーダ20は、符号化されるべきビデオデータを受信する。ビデオエンコーダ20は、ビデオデータのピクチャのスライスの中の複数のコーディングツリーユニット(CTU)の各々を符号化することができる。3D−HEVCでは、ビデオエンコーダ20は、テクスチャビューおよび深度ビューのCTUを符号化することができる。テクスチャCTUの各々は、ルーマ成分とクロマ成分とを有することができ、ピクチャの等しいサイズのルーマコーディングツリーブロック(CTB)および対応するクロマCTBに関連付けられ得る。深度CTUは、単一の深度成分を含むことができる。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために、4分木区分を実行することができる。より小さいブロックはCUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分することができ、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
[0179]ビデオエンコーダ20は、CUの符号化表現(すなわちコード化CU)を生成するために、CTBのCUを符号化することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックを区分することができる。したがって、テクスチャスライス中の各PUは、ルーマ成分予測ブロックおよび対応するクロマ成分予測ブロックに関連付けられ得る。深度スライス中の各PUは、単一の成分を有することができる。
[0180]ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。上記で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指す場合があり、PUのサイズは、PUのルーマ予測ブロックのサイズを指す場合がある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測の場合は2N×2NまたはN×NのPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、または同様の対称のPUサイズをサポートすることができる。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測の場合は2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズ向けの非対称区分をサポートすることができる。本開示の態様によれば、ビデオエンコーダ20およびビデオデコーダ30はまた、深度インターコーディングのためのPUの非長方形区分をサポートする。
[0181]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUのための予測データを生成することができる。PUの予測データは、PUの予測サンプルブロックと、PUの動き情報とを含み得る。インター予測処理ユニット120は、CUのPUに対して、PUがIスライス中にあるか、Pスライス中にあるか、それともBスライス中にあるかに応じて、様々な演算を実行することができる。Iスライスでは、すべてのPUはイントラ予測される。したがって、PUがIスライス中にある場合、インター予測処理ユニット120は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されるブロックに対して、予測ブロックは、同じフレーム内の以前符号化された隣接ブロックからの空間予測を使用して形成される。
[0182]PUがPスライス中にある場合、動き推定(ME)ユニット122は、PUの参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索することができる。参照ピクチャは、復号ピクチャバッファ116に記憶され得る。PUの参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定(ME)ユニット122は、PUの参照領域を含む参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成することができる。
[0183]加えて、インターコーディングの場合、動き推定(ME)ユニット122は、PUのコーディングブロックと参照領域に関連付けられた参照位置との間の空間変位を示す動きベクトル(MV)を生成することができる。たとえば、MVは、現在の復号ピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定(ME)ユニット122は、PUの動き情報として参照インデックスとMVとを出力することができる。動き補償(MC)ユニット124は、PUの動きベクトルによって示される参照位置における実際のサンプルまたは補間されたサンプルに基づいて、PUの予測サンプルブロックを生成することができる。
[0184]PUがBスライス中にある場合、動き推定ユニット122は、PUについての単予測または双予測を実行することができる。PUについての単予測を実行するために、動き推定ユニット122は、PUの参照領域について、RefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定(ME)ユニット122は、PUの動き情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1内の位置を示す参照インデックスと、PUのサンプルブロックと参照領域に関連付けられた参照位置との間の空間変位を示すMVと、参照ピクチャがRefPicList0中にあるかRefPicList1中にあるかを示す1つまたは複数の予測方向インジケータとを出力することができる。動き補償(MC)ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0185]PUのための双方向インター予測を実行するために、動き推定ユニット122は、PUの参照領域についてRefPicList0中の参照ピクチャを探索することができ、また、PUの別の参照領域についてRefPicList1中の参照ピクチャを探索することができる。動き推定(ME)ユニット122は、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1中の位置を示す参照ピクチャインデックスを生成することができる。加えて、動き推定(ME)ユニット122は、参照領域に関連付けられた参照位置とPUのサンプルブロックとの間の空間変位を示すMVを生成することができる。PUの動き情報は、PUの参照インデックスとMVとを含む場合がある。動き補償(MC)ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0186]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PU用の予測データを生成することができる。PU用の予測データは、PU用の予測サンプルブロックと様々なシンタックス要素とを含む場合がある。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実行し得る。PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用してPU用の予測データの複数のセットを生成し、次いで、たとえばレートひずみ最適化技法を使用して、受け入れ可能または最適なコーディング性能を生み出すイントラ予測モードのうちの1つを選択することができる。
[0187]イントラ予測モードを使用してPU用の予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードに関連付けられた方向にあるPUのサンプルブロック全体にわたって、空間的に隣接するPUのサンプルブロックからのサンプルを拡張することができる。隣接PUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば、図1に示されるように、33個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存する場合がある。
[0188]予測処理ユニット100は、PU用にインター予測処理ユニット120によって生成された予測データ、またはPU用にイントラ予測処理ユニット126によって生成された予測データの中から、CUのPU用の予測データを選択することができる。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリックに基づいて、CUのPU用の予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれ得る。
[0189]残差生成ユニット102は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロック、ならびにCUのPUの選択されたインターまたはイントラ予測ルーマブロック、インターまたはイントラ予測Cbブロック、およびインターまたはイントラ予測Crブロックに基づいて、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを生成し得る。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルがCUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測サンプルブロック中の対応するサンプル(すなわち、適用可能な場合、ルーマピクセル値またはクロマピクセル値のサンプル)との間の差に等しい値を有するように、CUの残差ブロックを生成することができる。
[0190]変換処理ユニット104は、CUに関連付けられた残差ブロックを、CUのTUに関連付けられた変換ブロックに区分するために、4分木区分を実行することができる。したがって、TUは、テクスチャビューの場合に、ルーマ変換ブロックおよび2つのクロマ変換ブロックに関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に、基づく場合も基づかない場合もある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含む場合がある。CUのTUは、RQTのリーフノードに対応することができる。
[0191]変換処理ユニット104は、CUの各TUに関する変換係数ブロックを、TUの変換ブロックに1つまたは複数の変換を適用することによって生成することができる。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用することができる。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に同様の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
[0192]量子化ユニット106は、係数ブロック内の変換係数を量子化することができる。量子化処理は、変換係数の一部またはすべてに関連付けられるビット深度を低減することができる。たとえば、量子化の間にnビット変換係数がmビット変換係数へと切り捨てられてよく、この場合、nはmよりも大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUに関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は、情報の損失をもたらす場合があり、したがって、量子化変換係数は、元の係数よりも低い精度を有する場合がある。
[0193]逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構築するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用することができる。再構築ユニット112は、TUに関連付けられた再構築された変換ブロックを生成するために、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに、再構築された残差ブロックを加算することができる。ビデオエンコーダ20は、このようにCUの各TUのための変換ブロックを再構築することによって、CUのコーディングブロックを再構築することができる。
[0194]HEVCイントラモード、HEVCインターモードおよび他のモード、たとえばDMMモードの場合、予測されるPUまたはPU区分に対して、DC残差値とも呼ばれるデルタDC残差値を生成するために、デルタDCコーディングが使用され得る。SDCの場合、またはSDCを伴うDMMの場合、残差生成ユニット102は、各深度PUまたはPU区分に対する単一のデルタDC値を生成することができ、単一のデルタDC値は、PUまたはPU区分におけるピクセルの平均値と、イントラ予測またはインター予測されるPUまたはPU区分における予測されるサンプルの平均値との間の差分を表す。SDCを伴わないDMMの場合、残差生成ユニット102は、デルタDC値と通常の残差木とを生成することができる。デルタDC残差値は、変換または量子化されず、線115によって示されるように、残差生成ユニット102によってエントロピーコーディングユニット118に提供され得る。
[0195]再構築ユニット112は、深度CUを、CUのPUの区分およびCUのPUの対応する予測される区分に対するDC残差値に基づいて再構築することができる。たとえば、各深度PU区分に対するデルタDC残差値が、深度PU区分を再構築するために、対応する予測される区分のピクセル値に加算されてよく、DC残差値は、深度PU区分のピクセルの平均値と予測される区分の予測されるサンプルの平均値との間の差分を表し得る。SDCの場合、SDCを伴うDMMを含め、DC残差値だけが使用される。SDCを伴わないDMMの場合、DC残差値および残差木が使用され得る。いくつかの例では、デルタDC値を表す1つまたは複数のシンタックス要素のような、DC残差値を表す情報が、予測処理ユニット100によって生成され、エントロピー符号化ユニット118によって受信され、たとえば線115によって示されるように、逆量子化または逆変換処理を伴わずに再構築ユニット112によって使用され得る。
[0196]フィルタユニット114は、再構築されたCUに関連付けられたコーディングブロックの中のブロッキングアーティファクトを低減するために、1つまたは複数のデブロッキング動作を実行し得る。復号ピクチャバッファ116は、フィルタユニット114が、再構築されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実行した後、再構築されたコーディングブロックを記憶することができる。インター予測ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構築されたコーディングブロックを含む参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット126は、CUと同じピクチャの中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116の中の再構築されたコーディングブロックを使用し得る。
[0197]エントロピー符号化ユニット118は、ビデオエンコーダ20の様々な機能構成要素からデータを受信することができる。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。加えて、エントロピー符号化ユニット118は、残差生成ユニット102からデルタDC残差値を受信することができる。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化演算を実行し得る。たとえば、エントロピー符号化ユニット118は、CABAC演算を実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたCABACエントロピー符号化データを含む符号化ビデオビットストリームを出力し得る。たとえば、ビットストリームは、バイナリシンタックス要素またはバイナリ化シンタックス要素のビンを表すビットを含む場合がある。
[0198]ビデオエンコーダ20は、本開示で説明される技法のいずれかを実行するように構成されたビデオエンコーダの例である。追加の3D処理構成要素もビデオエンコーダ20内に含まれ得る。本開示の1つまたは複数の技法によれば、ビデオエンコーダ20内の1つまたは複数のユニットは、ビデオ符号化処理の一部として、本明細書で説明される技法を実行し得る。同様に、ビデオエンコーダ20は、後でコーディングされるビデオデータの予測のために参照データとして使用されるビデオデータを再構築するために、ビデオ復号処理を実行することができる。
[0199]たとえば、ビデオエンコーダ20は、本開示で説明されるように、深度イントラコーディングおよび/またはDMMコーディングのために、1つもしくは複数のシンタックス要素を制限するか、または1つもしくは複数のシンタックス要素を選択的にシグナリングする技法を使用するように構成され得る。本技法は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0200]図10は、本開示の技法を実行するように構成された例示的なビデオデコーダ30を示すブロック図である。図10は、例示のために提供され、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。本開示は、HEVCコーディング、特に3D−HEVCの文脈においてビデオデコーダ30について説明する。しかしながら、本開示の技法は他の3Dビデオコーディング規格または方法に適用可能であり得る。
[0201]ビデオデコーダ30は、本開示で説明される制限付き深度イントラコーディングおよび/または制限付きDMMコーディングのための技法のうちのいずれかを実行するように構成され得る。たとえば、ビデオデコーダ30は、対応する深度予測ユニットが深度モデリングモード(DMM)に従ってコーディングされるときに、(たとえば、変換木ノードが複数のより小さい変換木ノードに分割されるべきではないことを示すために)split_transform_flagが0に等しくなることを指定する制限を満たす符号化ビットストリームを復号する技法を使用することができる。別の例として、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、(たとえば、DMMコーディングモードが深度予測ユニットに使用されないことを示すために)dim_not_present_flagが1に等しくなることを指定する制限を満たす符号化ビットストリームを復号する技法を使用することができる。
[0202]さらなる例として、ビデオデコーダ30は、対応する深度予測ユニットがDMMに従ってコーディングされるかどうかに基づいて、split_transform_flagを選択的に復号する技法を使用することができる。追加の例として、ビデオデコーダ30は、対応する深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、dim_not_present_flagを選択的に復号する技法を使用することができる。いくつかの例では、上述の技法のうちの1つまたは複数は、変換ユニットおよび/または変換木が細分されるのを、そのような細分が深度モデリングモード(DMM)に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0203]図10の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、ビデオデータメモリ151と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、インター予測用の動き補償(MC)ユニット164と、イントラ予測処理ユニット166とを含むことができる。
[0204]ビデオデータメモリ151は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ151内に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスのネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成することができる。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ151および復号ピクチャバッファ162は、ダイナミックランダムアクセスメモリ(DRAM)(同期DRAM(SDRAM)を含む)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同じメモリデバイスまたは別々のメモリデバイスによって提供される場合がある。
[0205]説明を容易にするために、予測処理ユニット152の構成要素は、テクスチャ復号と深度復号の両方を実行するものとして記載される。いくつかの例では、テクスチャ復号および深度復号は、予測処理ユニット152の同じ構成要素、または予測処理ユニット152内の異なる構成要素によって実行される場合がある。たとえば、いくつかの実装形態では、別々のテクスチャデコーダおよび深度デコーダが提供される場合がある。また、複数のビューを復号するために、たとえば、マルチビュープラス深度コーディングのために、複数のテクスチャデコーダおよび深度デコーダが提供される場合がある。いずれの場合も、予測処理ユニット152は、3D−HEVC処理のような3Dコーディング処理の一部として、テクスチャデータと深度データとをイントラ復号またはインター復号するように構成され得る。
[0206]したがって、予測処理ユニット152は、制限付き深度イントラモードコーディングおよび/または制限付きDMMコーディングに関するもののような、本開示で説明される修正および/または追加を受けて、実質的に3D−HEVCに従って動作することができる。予測処理ユニット152は、エントロピー復号ユニット150を介して、SDCまたは非SDC残差コーディング技法を使用して、イントラ復号またはインター復号された深度データのために、符号化ビデオビットストリームから残差データを取得し、イントラ予測またはインター予測された深度データと残差データとを使用してCUを再構築することができる。いくつかの例では、残差データは、たとえば、SDCコーディングまたはDMMコーディングによって生成され得る、デルタDC残差値であり得る。ビデオデコーダ30は、図10に示されるものよりも多数の、少数の、または図10に示されるものとは異なる機能構成要素を含み得る。
[0207]ビデオデコーダ30は、符号化ビデオビットストリームを受信する。エントロピー復号ユニット150は、ビットストリームからエントロピー符号化シンタックス要素を復号するために、ビットストリームを解析する。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構築ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成することができる。ビットストリームは、一連のNALユニットを備える場合がある。ビットストリームのNALユニットは、コード化スライスNALユニットを含む場合がある。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号し得る。
[0208]コード化スライスの各々は、スライスヘッダと、スライスデータとを含む場合がある。スライスヘッダは、スライスに関係するシンタックス要素を含む場合がある。スライスヘッダ内のシンタックス要素は、スライスを含むピクチャに関連付けられたPPSを識別するシンタックス要素を含む場合がある。PPSはSPSを参照することができ、SPSは次にVPSを参照することができる。エントロピー復号ユニット150はまた、SEIメッセージのようなシンタックス情報を含み得る他の要素をエントロピー復号することができる。スライスヘッダ、パラメータセット、またはSEIメッセージのいずれかの中の復号されたシンタックス要素は、本開示で説明される例示的な技法に従ってシグナリングされるものとして、本明細書に記載された情報を含む場合がある。そのようなシンタックス情報は、テクスチャブロックまたは深度ブロックの復号および再構築のために、予測処理ユニット152に提供され得る。
[0209]ビデオデコーダ30は、区分されていないCUおよびPUに対して再構築動作を実行することができる。非SDCコーディングのために再構築動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構築動作を実行することができる。CUの各TUに対して再構築動作を実行することによって、ビデオデコーダ30は、CUのブロックを再構築することができる。CUのTUに対して再構築動作を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de−quantize)することができる。逆量子化ユニット154は、量子化の程度を決定するために、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用することができる。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、利用されるエントロピーコーディングの方法に依存する場合がある。
[0210]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用することができる。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を、係数ブロックに適用し得る。
[0211]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、PU用の予測ブロックを生成するために、イントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、テクスチャスライスのPUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット166は、深度スライスの深度ブロックを生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。
[0212]インター予測を使用してPUが符号化される場合、MCユニット164は、PUのインター予測ブロックを生成するためにイントラ予測を実行することができる。MCユニット164は、他のピクチャまたはビューにおけるPUの予測ブロックに基づいて、テクスチャPUのための予測ルーマブロック、予測Cbブロック、および予測Crブロックならびに/または予測深度ブロックを生成するために、インター予測モードを使用することができる。MCユニット164は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのためのインター予測モードを決定することができ、動きベクトル、予測方向、および参照ピクチャインデックスなどの動き情報を受信することができる。
[0213]インター予測の場合、MCユニット164は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。PUがインター予測を使用して符号化された場合、エントロピー復号ユニット150は、PUの動き情報を抽出し得る。MCユニット164は、PUの動き情報に基づいて、PU用の1つまたは複数の参照ブロックを決定することができる。動き補償(MC)ユニット164は、PU用の1つまたは複数の参照ブロックにおけるブロック中のサンプルに基づいて、テクスチャPUの予測ルーマブロック、予測Cbブロックおよび予測Crブロックならびに深度PUの予測深度ブロックを生成することができる。
[0214]適用可能な場合、再構築ユニット158は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築するために、CUのTUに関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロック、すなわち、イントラ予測データまたはインター予測データのいずれかを使用することができる。たとえば、再構築ユニット158は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築するために、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックの残差サンプルを、予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算することができる。同様に、再構築ユニット158は、CUの深度ブロックを再構築するために、イントラ予測データまたはインター予測データを使用することができる。
[0215]フィルタユニット160は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックに関連付けられたブロッキングアーティファクトを低減するために、デブロッキング動作を実行し得る。ビデオデコーダ30は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを、復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、次の動き補償、イントラ予測、および図2のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供することができる。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行することができる。
[0216]いくつかの例では、ビデオデコーダ30は、本明細書で説明されるように、デルタDC残差値を表すために使用される1つまたは複数のシンタックス要素のエントロピーコーディングの複雑性を低減するために、修正されたバイナリ化および/またはコンテキストモデリング処理を使用し得る。さらなる例では、ビデオデコーダ30内の1つまたは複数のユニットは、ビデオ復号処理の一部として、本明細書で説明される1つまたは複数の技法を実行することができる。追加の3Dコーディング構成要素もビデオエンコーダ30内に含まれ得る。
[0217]予測処理ユニット152、より具体的にはイントラ予測処理ユニット166および動き補償(MC)ユニット164は適用可能な場合、3D−HEVCのような3Dビデオコーディング処理の深度イントラ予測モードおよび深度インター予測モードにおいてSDCまたはDMMを実行するかどうかを、受信されたシンタックス情報に基づいて決定することができる。たとえば、SDCまたはDMMが使用されるとき、エントロピー復号ユニット150は、深度CUのPUまたはPU区分に対する1つまたは複数のデルタDC残差値、さらには関連付けられるシンタックス情報をエントロピー復号することができる。
[0218]SDCの場合、エントロピー復号ユニット150は、図10に示されるように、ブロックのためのSDCシンタックス情報を予測処理ユニット152に提供することができる。エントロピー復号ユニット150は、デルタDC残差値を再構築ユニット158に提供することができる。ビデオデコーダ30によって受信されたデルタDC残差値は、変換および量子化されない。特に、デルタDC残差値は、逆量子化および逆変換のために逆量子化ユニット154および逆変換処理ユニット156へ最初に提供されなくてよい。代わりに、エントロピー復号ユニット150は、デルタDC残差値を表すシンタックス要素に関するビンを、ビットストリーム中のビットから復号し、デルタDC残差値を表す情報を、コード化PUまたは区分を再構築する際に使用するために再構築ユニット158に提供することができる。再構築ユニット158は、深度CUのイントラ予測またはインター予測されるPUまたはPU区分を予測処理ユニット152から受信し、コード化PUまたはPU区分を再構築するために、予測されるPUまたはPU区分のサンプルの各々にデルタDC残差値を加算することができる。
[0219]このようにして、たとえば、SDCまたはDMMが使用されるとき、再構築ユニット158は、深度CUを、CUのPUの区分およびCUの対応する予測されるPUまたはPU区分に対するデルタDC残差値に基づいて再構築することができる。やはり、デルタDC残差値は、深度PUまたはPU区分のピクセルの平均値と、予測されるPUまたはPU区分の予測されるサンプルの平均値との間の差分を表し得る。SDCを伴わずにDMMが使用されるとき、デルタDC値に加えて、通常の残差コーディングツリーが使用され得る。同様に、HEVCイントラモードが使用されるとき、通常の残差コーディングツリーが使用され得る。
[0220]本開示の様々な例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、DMMコーディングのための技法を含む、本開示で説明される深度イントラコーディングのための技法を実行するように構成され得る。いくつかの例では、深度イントラモードコーディングのための技法は、変換ユニットおよび/または変換木が細分されるのを、そのような細分がDMM予測モード、たとえばDMMモード1またはDMMモード4に従った深度予測ユニットのイントラコーディングに干渉することになる場合に防ぎ得る。
[0221]さらなる例では、深度イントラモードコーディングのための技法は、深度モデリングモード(DMM)に従って深度成分をイントラコーディングするときに、予測ユニット全体が同じwedgeletパターンに従って符号化されるように使用され得る。追加の例では、深度イントラモードコーディングのための技法は、DMMに従って深度成分をイントラコーディングするときに、予測ユニットが3つ以上の領域ではなく2つの領域に分割されるようにし得る。
[0222]本開示の技法は、いくつかの例では、3D−HEVCの現在のDMMコーディングに関係する以下の問題のうちの1つまたは複数を克服することができる。イントラ予測モードによりコーディングされるコーディングユニット(CU)に関して、セグメントごとのDCコーディング(SDC:segment-wise DC coding)が適用されない場合、1つの変換木(利用可能な場合)が、CUの残差を表すようにコーディングされ、各PUが変換木ノードに対応する。DMMコード化PUの関連変換木ノードに対する深度制限はない。言い換えれば、そのような変換木ノード内の変換ユニット(TU)は、PUサイズから最小許容可能TUサイズ(たとえば、4×4)までのサイズをとり得る。しかしながら、そのような変換木ノードの深度が0よりも大きく、TUサイズがPUサイズよりも小さいとき、2つの問題が生じ得る。
[0223]第1の問題は、DMMモード1を使用するときに生じることがあり、ここで説明される。図6に示されるものと同じPU構造およびTU構造が、イントラ予測モードによりコーディングされるCUに使用され、図6におけるPU0がDMMモード1により予測されると仮定する。PU0内のすべてのTUは、PUレベルでシグナリングされた同じwedgeletパターンインデックスを使用すべきである。ただし、異なるブロックサイズについて異なるwedgeletパターンが適用されるので、同じwedgeletパターンインデックスは、異なるTUサイズについての異なるwedgeletパターンに対応し得る。したがって、PU内のTUは、異なるイントラ予測モードを使用することがあり、これはPUの概念を壊す可能性がある。さらに、シグナリングされたwedgeletパターンインデックスは、TUサイズによっては無効であることもあり、その結果、そのようなTUサイズに関して未知のwedgeletパターンが生じることがある。
[0224]第2の問題は、DMMモード1および/またはDMMモード4を使用するときに生じることがあり、ここで説明される。PUがDMMモード1またはDMMモード4によりコーディングされるとき、PU内の各TUが2つの領域に区分される。したがって、PUは、複数のTUを含んでいるときに、3つ以上の領域を含み得る。これは、PUを2つの領域に分割することを予想するDMMモード(DMMモード1とDMMモード4の両方)の概念を壊す可能性がある。
[0225]本開示の技法は、いくつかの例では、深度モデリングモード(DMM)コーディングにおける上述の問題の一方または両方に対する解決策を提供することができる。いくつかの例では、深度モデリングモード(DMM)コーディングを実行するときに、以下の技法のうちの1つまたは複数が使用され得る。
[0226]第1の技法によれば、変換木ノードに関連付けられる予測ユニット(PU)がDMMモードのうちの1つ(たとえば、DMMモード1またはDMMモード4)によりコーディングされるとき、変換木ノードのsplit_transform_flagは0になるものとする。第1の技法を使用するとき、3D−HEVCにおいて使用される変換木構造はそのままであってよく、したがって、HEVCにおけるものと同じであり得る。しかしながら、いくつかの例では、関連PUがDMMモードによりコーディングされる変換木ノードの場合、split_transform_flagは0になるように制限され得る。さらなる例では、関連PUがDMMモードによりコーディングされる変換木ノードの場合、split_transform_flagはシグナリングされないか、または0になると推測される。
[0227]第2の技法によれば、PUサイズが最大変換ブロックサイズよりも大きいとき、DMMモードは適用されない。言い換えれば、エンコーダは、PUサイズが最大変換ブロックサイズよりも大きいときに、DMMモードを使用することを可能にされないことがある。第2の技法を使用するとき、イントラモード拡張シンタックステーブルは、いくつかの例では、変更されないことがあるが、(DMMモードが使用されるかどうかを示す)フラグdim_not_present_flagは、サイズが最大変換ブロックサイズよりも大きいPUに関して1に制限され得る。他の例では、第2の技法を使用するとき、(DMMモードが使用されるかどうかを示す)dim_not_present_flagは、サイズが最大変換ブロックサイズよりも大きいPUに関してシグナリングされず、デコーダによって1であると推測される。
[0228]第3の技法によれば、PUのPUサイズが最大変換ブロックサイズよりも大きく、PUの残差がSDCによりコーディングされない(すなわち、そのPUに関して変換木がコーディングされるものとする)とき、DMMモードは適用されない。言い換えれば、エンコーダは、PUの残差をコーディングするために変換木が使用され、PUのサイズが最大変換ブロックサイズよりも大きいときに、DMMモードを使用することを可能にされないことがある。第3の技法を使用するとき、イントラモード拡張シンタックステーブルは、いくつかの例では、変更されないことがあるが、(DMMモードが使用されるかどうかを示す)フラグdim_not_present_flagは、PUに関して、PUの残差がSDCによりコーディングされず、PUのサイズが最大変換ブロックサイズよりも大きい場合に、1になるように制限され得る。他の例では、第2の技法を使用するとき、(DMMモードが使用されるかどうかを示す)dim_not_present_flagは、PUに関して、PUの残差がSDCによりコーディングされず、PUのサイズが最大変換ブロックサイズよりも大きい場合に、シグナリングされない。そのような例では、dim_not_present_flagは、デコーダによって1であると推測され得る。
[0229]第4の技法によれば、PUがDMMモードのうちの1つによりコーディングされるとき、復号順序で1つずつPU内のTUを予測し再構築する代わりに、PU全体が、その中のTUを再構築する前に3D−HEVCがするのと同じ方法を使用して予測される。その後、PUの再構築サンプルが、PUの予測サンプルにPUの関連変換木ノードによって表される残差を加算することによって導出される。
[0230]第1の技法および第2の技法の例示的な実装形態がここで説明される。例示的な実装形態は、3D−HEVCのワーキングドラフトに加えて実施され得る。
[0231]ワーキングドラフトのシンタックスまたはセマンティクスの変更は、次のように示される。新たに追加された部分はイタリック体で表される。
[0232]第1の実施形態では、3D−HEVCのシンタックスは変更されない。関連PUがDMMモードによりコーディングされる変換木ノードの場合、split_transform_flagは0になるように制限され、最大変換ブロックサイズよりも大きいサイズを有するPUの場合、dim_not_present_flagは0になるように制限される。第1の実施形態についての例示的なセマンティクスを以下に与える。
7.4.9.8 変換木セマンティクス
split_transform_flag[x0][y0][trafoDepth]は、ブロックが変換コーディングのために、半分の水平方向のサイズと半分の垂直方向のサイズとを有する4つのブロックに分割されるかどうかを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する当該ブロックの左上ルーマサンプルのロケーション(x0,y0)を指定する。アレイインデックスtrafoDepthは、変換コーディングのために、ブロックへのコーディングブロックの現在の細分レベルを指定する。trafoDepthは、コーディングブロックに対応するブロックの場合、0に等しい。
変数interSplitFlagは、次のように導出される。
− max_transform_hierarchy_depth_interが0に等しく、CuPredMode[x0][y0]がMODE_INTERに等しく、PartModeがPART_2N×2Nに等しくなく、trafoDepthが0に等しい場合、interSplitFlagは1に等しく設定される。
− 他の場合、interSplitFlagは0に等しく設定される。
split_transform_flag[x0][y0][trafoDepth]が存在しないとき、次のように推測される。
− 次の条件のうちの1つまたは複数が真である場合、split_transform_flag[x0][y0][trafoDepth]の値は1に等しいと推測される。
− log2TrafoSizeがLog2MaxTrafoSizeよりも大きい
− IntraSplitFlagが1に等しく、trafoDepthが0に等しい
− interSplitFlagが1に等しい
− 他の場合、split_transform_flag[x0][y0][trafoDepth]の値は0に等しいと推測される。
...
I.7.4.9.5.1 イントラモード拡張セマンティクス
変数Log2MaxDmmCbSizeは、5に等しく設定される。
1に等しいdim_not_present_flag[x0][y0]は、depth_intra_mode_flagシンタックス要素が存在しないことと、0から34までの範囲のintraPredModeを伴うイントラモードが現在の予測ユニットのために使用されることとを指定する。0に等しいdim_not_present_flag[x0][y0]は、depth_intra_mode_flagシンタックス要素が存在する可能性があることを指定する。存在しないとき、dim_not_present_flag[x0][y0]の値は1に等しいと推測される。
変数DmmFlag[x0][y0]は、下で指定されているように導出される。
DmmFlag[ x0 ][ y0 ] = !dim_not_present_flag[ x0 ][ y0 ] I-29)...
[0233]上記で説明した実施形態では、エンコーダおよび/またはデコーダによって、split_transform_flag制限とdim_not_present_flag制限の両方が実施され得る。しかしながら、他の例では、エンコーダおよび/またはデコーダによって、制限のうちの一方は実施されるが、他方の制限は実施されないことがある。たとえば、エンコーダおよび/またはデコーダによって、split_transform_flag制限は実施されるが、dim_not_present_flag制限は実施されないことがある。別の例として、エンコーダおよび/またはデコーダによって、dim_not_present_flag制限は実施されるが、split_transform_flag制限は実施されないことがある。
[0234]第2の実施形態では、PUのサイズが最大変換ブロックサイズよりも大きいことと、PUに対応するSDCフラグが0に等しいことの両方に該当する場合に、dim_not_present_flagは0になるように制限される。いくつかの例では、この実施形態のdim_not_present_flag制限は、第1の実施形態のsplit_transform_flag制限とともに使用され得る。第2の実施形態についての例示的なセマンティクスを以下に与える。
I.7.4.9.5.1 イントラモード拡張セマンティクス
変数Log2MaxDmmCbSizeは、5に等しく設定される。
1に等しいdim_not_present_flag[x0][y0]は、depth_intra_mode_flagシンタックス要素が存在しないことと、0から34までの範囲のintraPredModeを伴うイントラモードが現在の予測ユニットのために使用されることとを指定する。0に等しいdim_not_present_flag[x0][y0]は、depth_intra_mode_flagシンタックス要素が存在する可能性があることを指定する。存在しないとき、dim_not_present_flag[x0][y0]の値は1に等しいと推測される。
変数DmmFlag[x0][y0]は、下で指定されているように導出される。
DmmFlag[ x0 ][ y0 ] = !dim_not_present_flag[ x0 ][ y0 ] (I-29)...
[0235]第3の実施形態では、関連PUがDMMモードによりコーディングされる変換木ノードの場合、split_transform_flagはシグナリングされない。split_transform_flagがシグナリングされないとき、split_transform_flagは0であると推測される。また、第3の実施形態では、最大変換ブロックサイズよりも大きいサイズを有するPUの場合、dim_not_present_flag[x0][y0]はシグナリングされない。dim_not_present_flagがシグナリングされないとき、フラグは1であると推測される。第3の実施形態についての例示的なシンタックスを以下に与える。
7.3.8.8 変換木シンタックス
I.7.3.8.5.1 イントラモード拡張シンタックス
[0236]上記で説明した実施形態では、エンコーダおよび/またはデコーダによって、split_transform_flagシグナリング条件とdim_not_present_flagシグナリング条件の両方が実施され得る。しかしながら、他の例では、エンコーダおよび/またはデコーダによって、シグナリング条件のうちの一方は実施されるが、他方のシグナリング条件は実施されないことがある。たとえば、エンコーダおよび/またはデコーダによって、split_transform_flagシグナリング条件は実施されるが、dim_not_present_flagシグナリング条件は実施されないことがある。別の例として、エンコーダおよび/またはデコーダによって、dim_not_present_flagシグナリング条件は実施されるが、split_transform_flagシグナリング条件は実施されないことがある。
[0237]第4の実施形態では、PUのサイズが最大変換ブロックサイズよりも大きいことと、PUに対応するSDCフラグが0に等しいことの両方に該当する場合に、dim_not_present_flag[x0][y0]はシグナリングされない。dim_not_present_flagがシグナリングされないとき、フラグは1であると推測される。いくつかの例では、この実施形態のdim_not_present_flagシグナリング条件は、第3の実施形態のsplit_transform_flagシグナリング条件とともに使用され得る。第4の実施形態についての例示的なシンタックスを以下に与える。
I.7.3.8.5.1 イントラモード拡張シンタックス
[0238]図11は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。図11に示されるように、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニット(DPU)が深度モデリングモード(DMM)に従って予測されるかどうかに少なくとも部分的に基づいて、変換木ノードを複数のサブ変換木ノードに選択的に分割するか、または分割しない(200)。コーディングユニット(CU)は、変換木ノードに対応するDPUと変換木ノードの両方を備えることができる。すなわち、変換木ノードは一般に、DPUと同じCUに含まれ、(たとえば、テクスチャCUなどの)異なるCUには含まれないことを理解されたい。したがって、DPUおよび変換木ノードが同じCU(たとえば、深度CU)に含まれるとき、および/または同じCUから導出されるときに、DPUは変換木ノードに対応すると言われることがある。
[0239]ビデオエンコーダ20は、変換木ノードが複数のサブ変換木ノードに分割されるかどうかに基づいて、変換木ノードを符号化する(202)。いくつかの例では、変換木ノードを符号化するために、ビデオエンコーダ20は、変換木ノードが複数のサブ変換木ノードに分割されない場合に、変換木ノードに対応する変換ユニットを符号化することがある。そのような例では、ビデオエンコーダ20は、変換木ノードが複数のサブ変換木ノードに分割される場合に、変換木ノードに対応する変換ユニットを符号化せず、変換木ノードが複数のサブ変換木ノードに分割される場合に、変換木ノードを含む変換木構造のそれぞれのリーフノードに対応する変換ユニットを符号化することがある。ビデオエンコーダ20は、符号化ビデオビットストリームがコード化変換木ノードを含むように符号化ビデオビットストリームを生成する(204)。
[0240]DMMモードは、深度予測ユニットが2つのサブ領域に区分される予測モードを指すことがあり、サブ領域の各々に関して、それぞれのサブ領域におけるサンプル(たとえば、ピクセル)のすべてが、同じ予測子値により予測される。言い換えれば、DMMモードに従って予測されるとき、深度予測ユニットの同じDMM区分されたサブ領域内のすべてのサンプル(たとえば、ピクセル)の予測値が、互いに等しくなり得る。一方、異なるサブ領域におけるサンプルの予測値は、互いに異なり得る。いくつかの例では、DMMモードは、wedgelet区分DMMモードおよび輪郭区分DMMモードの一方または両方に対応し得る。
[0241]深度予測ユニットは、同じイントラ予測モードに従って予測されるビデオブロックを指し得る。深度予測ユニットのサンプルは、深度マップの深度値および/または深度マップの深度値を示す値に対応し得る。
[0242]いくつかの例では、変換木ノードを選択的に分割するか、または分割しないために、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかを決定し、深度予測ユニットがDMMに従って予測されると決定したことに応答して、変換木ノードを複数のサブ変換木ノードに分割しないことがある。そのような例では、深度予測ユニットがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、いくつかの例では、変換木ノードを複数のサブ変換木ノードに分割すること、または変換木ノードを複数のサブ変換木ノードに分割するかどうかを決定するための他の技法を使用することがある。
[0243]いくつかの例では、符号化ビデオビットストリームを生成することは、ビデオエンコーダ20が、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかに基づいて、変換木ノードに関するシンタックス要素の値を選択し、符号化ビデオビットストリームがシンタックス要素の値をシグナリングするように符号化ビデオビットストリームを生成することができることを備える。シンタックス要素の値は、変換木ノードが複数のサブ変換木ノードに分割されるべきかどうかを示すことができる。いくつかの例では、符号化ビデオビットストリームは、3D−HEVC符号化ビデオビットストリームであり得、シンタックス要素は、split_transform_flagシンタックス要素であり得る。
[0244]いくつかの例では、シンタックス要素の値を選択するために、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるときに、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを示す値を選択することができる。そのような例では、変換木ノードに対応する深度予測ユニットがDMMに従って予測されないとき、ビデオエンコーダ20は、いくつかの例では、変換木ノードが複数のサブ変換木ノードに分割されるべきであることを示す値を選択すること、および/または別の技法に基づく値を選択することができる。
[0245]いくつかの例では、符号化ビデオビットストリームを生成することは、ビデオエンコーダ20が、符号化ビデオビットストリームがシンタックス要素を含むように符号化ビデオビットストリームを生成することを備える。さらなる例では、符号化ビデオビットストリームを生成するために、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるときに、符号化ビデオビットストリームがシンタックス要素を含まないように符号化ビデオビットストリームを生成することができる。そのような例では、ビデオエンコーダ20は、いくつかの例では、変換木ノードに対応する深度予測ユニットがDMMに従って予測されないときに、符号化ビデオビットストリームがシンタックス要素を含むように符号化ビデオビットストリームを生成することができる。
[0246]いくつかの例では、符号化ビデオビットストリームは、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるときに、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。このようにして、単一の深度予測ユニットに関連付けられる変換ユニットの異なるサイズを有することは、DMM予測モードに従って深度予測ユニットを予測するときに回避され得る。
[0247]図12は、本開示による、制限付きビデオ復号を実行するための例示的な技法を示す流れ図である。図12に示されるように、ビデオデコーダ30は符号化ビデオビットストリームを受信する(206)。ビデオデコーダ30は、符号化ビデオビットストリームによって表される変換木ノードを、変換木ノードに対応する深度予測ユニット(DPU)が深度モデリングモード(DMM)に従って予測されるかどうかに少なくとも部分的に基づいて、複数のサブ変換木ノードに選択的に分割するか、または分割しない(208)。ビデオデコーダ30は、変換木ノードが複数のサブ変換木ノードに分割されるかどうかに少なくとも部分的に基づいて、変換木ノードを復号する(210)。
[0248]いくつかの例では、変換木ノードを選択的に分割するか、または分割しないために、ビデオデコーダ30は、符号化ビデオビットストリームに基づいて、変換木ノードに関するシンタックス要素の値を決定し、シンタックス要素の値に基づいて、変換木ノードを複数のサブ変換木ノードに選択的に分割するか、または分割しないことがある。シンタックス要素の値は、変換木ノードが複数のサブ変換木ノードに分割されるべきかどうかを示すことができる。シンタックス要素の値は、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかに基づいて設定され得る。いくつかの例では、シンタックス要素の値は、エンコーダによって、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかに基づいて決定され得る。
[0249]そのような例では、ビデオデコーダ30は、いくつかの例では、シンタックス要素の値が第1の値に等しい場合に、変換木ノードを複数のサブ変換木に分割することがあり、シンタックス要素の値が第1の値とは異なる第2の値に等しい場合に、変換木ノードを複数のサブ変換木に選択的に分割しないことがある。いくつかの例では、符号化ビデオビットストリームは、3D−HEVC符号化ビデオビットストリームであり得、シンタックス要素は、split_transform_flagシンタックス要素である。
[0250]さらなる例では、シンタックス要素の値を決定するために、ビデオデコーダ30は、符号化ビデオビットストリームからシンタックス要素のコード化バージョンを取得することができる。そのような例では、ビデオデコーダ30は、シンタックス要素の値を取得するために、シンタックス要素のコード化バージョンを復号することができる。
[0251]追加の例では、シンタックス要素は、第2のシンタックス要素であり得る。そのような例では、シンタックス要素の値を決定するために、ビデオデコーダ30は、第1のシンタックス要素の値を取得するために、符号化ビデオビットストリームから第1のシンタックス要素を復号することができる。第1のシンタックス要素の値は、深度予測ユニットがDMMに従って予測されるかどうかを示すことができる。そのような例では、ビデオデコーダ30は、第1のシンタックス要素の値に基づいて、符号化ビデオビットストリームから第2のシンタックス要素を取得および復号することなく、第2のシンタックス要素の値を推測値に等しく設定するかどうかを決定し、第1のシンタックス要素の値が、深度予測ユニットがDMMに従って予測されることを示すと決定したことに応答して、第2のシンタックス要素の値を推測値に等しく設定することができる。推測値は、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを示し得る。いくつかの例では、符号化ビデオビットストリームは、3D−HEVC符号化ビデオビットストリームであり得、第1のシンタックス要素はdim_not_present_flagシンタックス要素であり、第2のシンタックス要素はsplit_transform_flagシンタックス要素である。
[0252]いくつかの例では、符号化ビデオビットストリームは、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるときに、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。このようにして、単一の深度予測ユニットに関連付けられる変換ユニットの異なるサイズを有することは、DMM予測モードに従って深度予測ユニットを予測するときに回避され得る。
[0253]いくつかの例では、変換木ノードを選択的に分割するか、または分割しないために、ビデオデコーダ30は、深度予測ユニットがDMMに従って予測されるときに、変換木ノードを複数のサブ変換木ノードに分割しないことがある。そのような例では、ビデオデコーダ30は、いくつかの例では、深度予測ユニットがDMMに従って予測されないときに、変換木ノードを複数のサブ変換木ノードに分割すること、または変換木ノードを分割するかどうかを決定するための何らかの他の技法を使用することがある。
[0254]いくつかの例では、変換木ノードを復号するために、ビデオデコーダ30は、変換木ノードが複数のサブ変換木ノードに分割されない場合に、変換木ノードに対応する変換ユニットを復号することがある。そのような例では、ビデオデコーダ30は、変換木ノードが複数のサブ変換木ノードに分割される場合に、変換木ノードに対応する変換ユニットを復号せず、変換木ノードが複数のサブ変換木ノードに分割される場合に、変換木ノードを含む変換木構造のそれぞれのリーフノードに対応する変換ユニットを復号することがある。
[0255]図13は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。いくつかの例では、図13に示される技法は、図11に示される処理ボックス202および/または204を実施するために使用され得る。
[0256]図13に示されるように、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニット(PU)の予測モードを決定する(212)。ビデオエンコーダ20は、深度PUがDMMに従って予測されるかどうかを決定する(214)。深度PUがDMMに従って予測されると決定したことに応答して、ビデオエンコーダ20は、変換木ノードを複数のサブ変換木ノードに分割しない(216)。深度PUがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、深度PUがDMMに従って予測されるかどうかに加えて他の基準に基づいて、変換木ノードを複数のサブ変換木ノードに分割するかどうかを決定する(218)。
[0257]いくつかの例では、他の基準は、少なくともいくつかの状況では変換木ノードが複数のサブ変換木ノードに分割されることを可能にし得る。さらなる例では、深度PUがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、変換木ノードを複数のサブ変換木ノードに分割することを決定し得る。
[0258]図14は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。いくつかの例では、図14に示される技法は、図11に示される処理ボックス202および/または204を実施するために使用され得る。
[0259]図13に示されるように、ビデオエンコーダ20は、変換木ノードに対応する深度予測ユニット(PU)の予測モードを決定する(220)。ビデオエンコーダ20は、深度PUがDMMに従って予測されるかどうかを決定する(222)。深度PUがDMMに従って予測されると決定したことに応答して、ビデオエンコーダ20は、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを示すために、split_transform_flagを0に設定する(224)。深度PUがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、深度PUがDMMに従って予測されるかどうかに加えて他の基準に基づいて、split_transform_flagの値を決定する(226)。
[0260]いくつかの例では、他の基準は、少なくともいくつかの状況ではsplit_transform_flagの値が1に等しくなることを可能にし得る。さらなる例では、深度PUがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、変換木ノードが複数のサブ変換木ノードに分割されるべきであることを示すために、split_transform_flagの値を1に設定することができる。
[0261]図15は、本開示による、制限付きビデオ復号を実行するための例示的な技法を示す流れ図である。いくつかの例では、図15に示される技法は、図12に示される処理ボックス208および/または210を実施するために使用され得る。
[0262]図15に示されるように、ビデオデコーダ30は、符号化ビデオビットストリームからsplit_transform_flagを取得する(228)。split_transform_flagは、変換木ノードに対応し得る。split_transform_flagの値は、ビデオエンコーダによって、変換木ノードに対応する深度PUがDMMに従って予測されるかどうかに基づいて選択され得る。
[0263]ビデオデコーダ30は、split_transform_flagが1に等しいかどうかを決定する(230)。言い換えれば、ビデオデコーダ30は、split_transform_flagの値が、split_transform_flagに対応する変換木ノードが複数のサブ変換木ノードに分割されるべきであることを示すかどうかを決定する。
[0264]split_transform_flagが1に等しいと決定したことに応答して、ビデオデコーダ30は、split_transform_flagに対応する変換木ノードを複数のサブ変換木ノードに分割する(232)。split_transform_flagが1に等しくないと決定したことに応答して、ビデオデコーダ30は、split_transform_flagに対応する変換木ノードを複数のサブ変換木ノードに分割しない(234)。
[0265]やはり、split_transform_flagの値は、ビデオエンコーダによって、変換木ノードに対応する深度PUがDMMに従って予測されるかどうかに基づいて選択され得る。したがって、一例として図15に示される技法を使用することによって、ビデオデコーダ30は、符号化ビデオビットストリームによって表される変換木ノードを、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかに基づいて、複数のサブ変換木ノードに選択的に分割するか、または分割しないことがある。
[0266]図16は、本開示による、制限付きビデオ復号を実行するための別の例示的な技法を示す流れ図である。いくつかの例では、図16に示される技法は、図12に示される処理ボックス208および/または210を実施するために使用され得る。
[0267]図16に示されるように、ビデオデコーダ30は、変換木ノードに対応する深度予測ユニット(PU)の予測モードを決定する(236)。たとえば、ビデオデコーダ30は、シンタックス要素の値を取得するために、符号化ビットストリームからシンタックス要素を復号することができ、この場合、第1のシンタックス要素の値は、深度予測ユニットがDMMに従って予測されるかどうかを示す。いくつかの例では、シンタックス要素は、dim_not_present_flagシンタックス要素であり得る。
[0268]ビデオデコーダ30は、深度PUがDMMに従って予測されるかどうかを決定する(238)。深度PUがDMMに従って予測されると決定したことに応答して、ビデオデコーダ30は、符号化ビデオビットストリームからsplit_transform_flagを取得および復号することなく、split_transform_flagが0に等しいと推測する(240)。代替的に、ビデオデコーダ30は、split_transform_flagの値を実際に推測することなく、深度PUに対応する変換ユニットが分割されないと推測し得る。0のsplit_transform_flagは、変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを示す。深度PUがDMMに従って予測されないと決定したことに応答して、ビデオデコーダ30は、深度PUがDMMに従って予測されるかどうかに加えて他の基準に基づいて、split_transform_flagの値を決定する(242)。いくつかの例では、深度PUがDMMに従って予測されないとき、ビデオデコーダ30は、split_transform_flagの値を決定するために、符号化ビデオビットストリームからsplit_transform_flagを解析し復号することができる。
[0269]やはり、split_transform_flagの値は、ビデオエンコーダによって、変換木ノードに対応する深度PUがDMMに従って予測されるかどうかに基づいて選択され得る。したがって、一例としてsplit_transform_flagの値を推測/取得するために図16に示される技法を使用することによって、ビデオデコーダ30は、符号化ビデオビットストリームによって表される変換木ノードを、変換木ノードに対応する深度予測ユニットがDMMに従って予測されるかどうかに基づいて、複数のサブ変換木ノードに選択的に分割するか、または分割しないことがある。
[0270]図17は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。図17に示されるように、ビデオエンコーダ20は、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかに少なくとも部分的に基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って深度予測ユニット(DPU)を選択的に予測する(244)。ビデオエンコーダ20は、深度予測ユニットを、予測される深度予測ユニットに少なくとも部分的に基づいて符号化する(246)。ビデオエンコーダ20は、符号化ビデオビットストリームがコード化深度予測ユニットを含むように符号化ビデオビットストリームを生成する(248)。
[0271]いくつかの例では、深度予測ユニットを選択的に予測するために、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかを決定し、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいと決定したことに応答して、非DMM予測モードに従って深度予測ユニットを予測することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないと決定したことに応答して、ビデオエンコーダ20は、DMM予測モードに従って深度予測ユニットを予測すること、および/またはDMM予測モードを使用するかどうかを決定するための別の技法を使用することができる。
[0272]さらなる例では、深度予測ユニットを選択的に予測するために、ビデオエンコーダ20は、深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかを決定することもできる。言い換えれば、ビデオエンコーダ20は、深度予測ユニットの残差をコーディングするために変換木構造が使用されるかどうかを決定することができる。そのような例では、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、DMM予測モードまたは非DMM予測モードに従って深度予測ユニットを選択的に予測することができる。
[0273]たとえば、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいと決定し、深度予測ユニットの残差がSDCモードに従ってコーディングされないと決定したことに応答して、非DMM予測モードに従って深度予測ユニットを予測することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないと決定したか、または深度予測ユニットの残差がSDCモードに従ってコーディングされると決定したことに応答して、ビデオエンコーダ20は、DMM予測モードに従って深度予測ユニットを予測すること、および/またはDMM予測モードを使用するかどうかを決定するための別の技法を使用することができる。
[0274]いくつかの例では、符号化ビデオビットストリームを生成するために、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに基づいて、深度予測ユニットに関するシンタックス要素の値を選択し、符号化ビデオビットストリームがシンタックス要素の値をシグナリングするように符号化ビデオビットストリームを生成することができる。シンタックス要素の値は、深度予測ユニットがDMM予測モードに従って予測されるべきかどうかを示すことができる。いくつかの例では、符号化ビデオビットストリームは、3次元高効率ビデオコーディング(32D−HEVC)符号化ビデオビットストリームであり、シンタックス要素は、dim_not_present_flagシンタックス要素である。
[0275]いくつかの例では、シンタックス要素の値を選択するために、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいときに、深度予測ユニットがDMM予測モードに従って予測されるべきではないことを示す値を選択することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないときに、ビデオエンコーダ20は、深度予測ユニットがDMM予測モードに従って予測されるべきであることを示す値を選択すること、および/または少なくともいくつかの状況では深度予測ユニットがDMM予測モードに従って予測されるべきであることを可能にするシンタックス要素の値を選択するための別の技法を使用することができる。
[0276]さらなる例では、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、深度予測ユニットに関するシンタックス要素の値を選択することができる。そのような例では、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きく、深度予測ユニットの残差がSDCモードに従ってコーディングされないときに、深度予測ユニットがDMM予測モードに従って予測されるべきではないことを示す値を選択することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないか、または深度予測ユニットの残差がSDCモードに従ってコーディングされるときに、ビデオエンコーダ20は、深度予測ユニットがDMM予測モードに従って予測されるべきであることを示す値を選択すること、および/または少なくともいくつかの状況では深度予測ユニットがDMM予測モードに従って予測されるべきであることを可能にするシンタックス要素の値を選択するための別の技法を使用することができる。
[0277]いくつかの例では、符号化ビデオビットストリームを生成するために、ビデオエンコーダ20は、符号化ビデオビットストリームがシンタックス要素を含むように符号化ビデオビットストリームを生成することができる。さらなる例では、符号化ビデオビットストリームを生成するために、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいときに、符号化ビデオビットストリームがシンタックス要素を含まないように符号化ビデオビットストリームを生成することができる。そのような例では、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないときに、符号化ビデオビットストリームがシンタックス要素を含むように符号化ビデオビットストリームを生成することができる。
[0278]追加の例では、符号化ビデオビットストリームを生成するために、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きく、深度予測ユニットの残差がSDCモードに従ってコーディングされないときに、符号化ビデオビットストリームがシンタックス要素を含まないように符号化ビデオビットストリームを生成することができる。そのような例では、ビデオエンコーダ20は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないか、または深度予測ユニットの残差がSDCモードに従ってコーディングされるときに、符号化ビデオビットストリームがシンタックス要素を含むように符号化ビデオビットストリームを生成することができる。
[0279]いくつかの例では、符号化ビデオビットストリームは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、深度予測ユニットがDMMモードに従って予測されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。このようにして、DMMに従って深度予測ユニットを予測することは、変換ユニットが深度予測ユニットよりも小さいときに回避され得る。
[0280]さらなる例では、符号化ビデオビットストリームは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいことと、深度予測ユニットの残差がSDCモードに従ってコーディングされないことの両方に該当するときに、深度予測ユニットがDMMモードに従って予測されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。
[0281]いくつかの例では、深度予測ユニットを符号化するために、ビデオエンコーダ20は、深度予測ユニットに対応する1つまたは複数の残差変換ユニットを、予測される深度予測ユニットに基づいて生成することができる。
[0282]図18は、本開示による、制限付きビデオ復号を実行するための例示的な技法を示す流れ図である。図18に示されるように、ビデオデコーダ30は符号化ビデオビットストリームを受信する(250)。ビデオデコーダ30は、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかに基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って深度予測ユニット(DPU)を選択的に予測する(252)。ビデオデコーダ30は、深度予測ユニットを、予測される深度予測ユニットに基づいて復号する(254)。
[0283]いくつかの例では、深度予測ユニットを選択的に予測するために、ビデオデコーダ30は、符号化ビデオビットストリームに基づいて、深度予測ユニットに関するシンタックス要素の値を決定し、シンタックス要素の値に基づいて、DMM予測モードまたは非DMM予測モードに従って深度予測ユニットを選択的に予測することができる。シンタックス要素の値は、深度予測ユニットがDMM予測モードに従って予測されるべきかどうかを示すことができる。
[0284]シンタックス要素の値は、いくつかの例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに基づいて設定され得る。さらなる例では、シンタックス要素の値は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに基づいて設定され得る。いくつかの例では、シンタックス要素の値は、エンコーダによって、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および/または深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに基づいて決定され得る。
[0285]いくつかの例では、ビデオデコーダ30は、いくつかの例では、シンタックス要素の値が第1の値に等しい場合に、DMM予測モードに従って深度予測ユニットを予測し、非DMM予測モードに従って深度予測ユニットを予測することができる。いくつかの例では、符号化ビデオビットストリームは、3D−HEVC符号化ビデオビットストリームであり得、シンタックス要素は、dim_not_present_flagシンタックス要素である。
[0286]さらなる例では、深度予測ユニットを選択的に予測するために、ビデオデコーダ30は、深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかを決定することもできる。言い換えれば、ビデオデコーダ30は、深度予測ユニットの残差をコーディングするために変換木構造が使用されるかどうかを決定することができる。そのような例では、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および深度予測ユニットの残差がSDCコーディングモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、DMM予測モードまたは非DMM予測モードに従って深度予測ユニットを選択的に予測することができる。
[0287]たとえば、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きく、深度予測ユニットの残差がSDCモードに従ってコーディングされないときに、非DMM予測モードに従って深度予測ユニットを予測することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きくないと決定したか、または深度予測ユニットの残差がSDCモードに従ってコーディングされると決定したことに応答して、ビデオデコーダ30は、DMM予測モードに従って深度予測ユニットを予測すること、および/またはDMM予測モードを使用するかどうかを決定するための別の技法を使用することができる。
[0288]いくつかの例では、符号化ビデオビットストリームは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、深度予測ユニットがDMMモードに従って予測されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。このようにして、DMMに従って深度予測ユニットを予測することは、変換ユニットが深度予測ユニットよりも小さいときに回避され得る。
[0289]さらなる例では、符号化ビデオビットストリームは、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいとき、および深度予測ユニットの残差がSDCモードに従ってコーディングされないときに、深度予測ユニットがDMMモードに従って予測されるべきではないことをシンタックス要素が示さなければならないことを指定する制限を満たすことができる。
[0290]いくつかの例では、シンタックス要素の値を決定するために、ビデオデコーダ30は、符号化ビデオビットストリームからシンタックス要素のコード化バージョンを取得することができる。そのような例では、ビデオデコーダ30は、シンタックス要素の値を取得するために、シンタックス要素のコード化バージョンを復号することができる。
[0291]さらなる例では、シンタックス要素の値を決定するために、ビデオデコーダ30は、符号化ビデオビットストリームに基づいて、深度予測ユニットのサイズと深度予測ユニットに対応する最大変換ブロックサイズとを決定し、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうかに基づいて、符号化ビデオビットストリームからシンタックス要素を取得および復号することなく、シンタックス要素の値を推測値に等しく設定するかどうかを決定し、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいと決定したことに応答して、シンタックス要素の値を推測値に等しく設定することができる。推測値は、深度予測ユニットがDMM予測モードに従って予測されるべきではないことを示すことができる。いくつかの例では、ビデオデコーダ30は、符号化ビデオビットストリームにおける1つまたは複数のシンタックス要素に基づいて、深度予測ユニットのサイズと最大変換ブロックサイズとを決定することができる。
[0292]いくつかの例では、ビデオデコーダ30は、また、深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかし得る。そのような例では、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいかどうか、および深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、符号化ビデオビットストリームからシンタックス要素を取得および復号することなく、シンタックス要素の値を推測値に等しく設定するかどうかを決定し、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいと決定し、深度予測ユニットの残差がSDCモードに従ってコーディングされないと決定したことに応答して、シンタックス要素の値を推測値に等しく設定することができる。そのような例では、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きくないか、または深度予測ユニットの残差がSDCモードに従ってコーディングされるときに、ビデオデコーダ30は、シンタックス要素の値を推測せず、ビットストリームからシンタックス要素の値を取得すること、および/または他の基準に基づいてシンタックス要素の値を推測するかどうかを決定することができる。
[0293]いくつかの例では、深度予測ユニットを選択的に予測することは、ビデオデコーダ30が、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きいときに、非DMM予測モードに従って深度予測ユニットを予測することができることを備える。そのような例では、深度予測ユニットのサイズが深度予測ユニットに対応する最大変換ブロックサイズよりも大きくないときに、ビデオデコーダ30は、DMM予測モードに従って深度予測ユニットを予測すること、またはDMM予測モードに従って深度予測ユニットを予測するかどうかを決定するための別の予測モード選択技法を使用することができる。
[0294]いくつかの例では、深度予測ユニットを復号するために、ビデオデコーダ30は、深度予測ユニットに対応する1つまたは複数の再構築された変換ユニットを、予測される深度予測ユニットおよび1つまたは複数の残差変換ユニットに基づいて生成することができる。
[0295]図19は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。いくつかの例では、図19に示される技法は、図17に示される処理ボックス246および/または248を実施するために使用され得る。
[0296]図19に示されるように、ビデオエンコーダ20は、深度予測ユニットのサイズ(DPU_SIZE)と深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)とを決定する(256)。ビデオエンコーダ20は、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかを決定する(258)。DPU_SIZEがMAX_TB_SIZEよりも大きい、ビデオエンコーダ20は、非DMM予測モードに従って深度PUを予測する(260)。DPU_SIZEがMAX_TB_SIZEよりも大きくないと決定したことに応答して、ビデオエンコーダ20は、DPU_SIZEがMAX_TB_SIZEよりも大きいかどうかに加えて他の基準に基づいて、深度PUのための予測モード(たとえば、予測モードがDMM予測モードか、それとも非DMM予測モードか)を選択する(262)。
[0297]いくつかの例では、他の基準は、深度PUのための予測モードがDMM予測モードであることを可能にし得る。さらなる例では、DPU_SIZEがMAX_TB_SIZEよりも大きくないと決定したことに応答して、ビデオエンコーダ20は、深度PUを予測するためのDMM予測モードを選択することができる。
[0298]図20は、本開示による、制限付きビデオ符号化を実行するための例示的な技法を示す流れ図である。いくつかの例では、図20に示される技法は、図17に示される処理ボックス246および/または248を実施するために使用され得る。
[0299]図20に示されるように、ビデオエンコーダ20は、深度予測ユニットのサイズ(DPU_SIZE)と深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)とを決定する(264)。ビデオエンコーダ20は、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかを決定する(266)。DPU_SIZEがMAX_TB_SIZEよりも大きいと決定したことに応答して、ビデオエンコーダ20は、DMM予測モードが対応する深度PUにスースしない(not sues for)ことを示すために、dim_not_present_flagを1に等しく設定する(268)。DPU_SIZEがMAX_TB_SIZEよりも大きくないと決定したことに応答して、ビデオエンコーダ20は、DPU_SIZEがMAX_TB_SIZEよりも大きいかどうかに加えて他の基準に基づいて、dim_not_present_flagの値を決定する(270)。
[0300]いくつかの例では、他の基準は、少なくともいくつかの状況ではdim_not_present_flagの値が0に等しくなることを可能にし得る。さらなる例では、深度PUがDMMに従って予測されないと決定したことに応答して、ビデオエンコーダ20は、深度PUを予測するためにDMM予測モードが使用されるべきではないことを示すために、dim_not_present_flagの値を0に等しく設定することができる。
[0301]図21は、本開示による、制限付きビデオ復号を実行するための例示的な技法を示す流れ図である。いくつかの例では、図21に示される技法は、図18に示される処理ボックス252および/または254を実施するために使用され得る。
[0302]図21に示されるように、ビデオデコーダ30は、符号化ビデオビットストリームからdim_not_present_flagを取得する(272)。dim_not_present_flagは、深度予測ユニットに対応し得る。dim_not_present_flagの値は、ビデオエンコーダによって、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかに基づいて選択され得る。
[0303]ビデオデコーダ30は、dim_not_present_flagが1に等しいかどうかを決定する(274)。言い換えれば、ビデオデコーダ30は、dim_not_present_flagの値が、深度PUを予測するために非DMMモードが使用されるべきであることを示すかどうかを決定する。dim_not_present_flagが1に等しいと決定したことに応答して、ビデオデコーダ30は、非DMM予測モード(たとえば、正規HEVC予測モードのうちの1つ)に従って深度PUを予測する(276)。dim_not_present_flagが1に等しくないと決定したことに応答して、ビデオデコーダ30は、DMM予測モードに従って深度PUを予測する(278)。
[0304]やはり、dim_not_present_flagの値は、ビデオエンコーダによって、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかに基づいて選択され得る。したがって、一例として図21に示される技法を使用することによって、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って深度予測ユニットを選択的に予測することができる。
[0305]図22は、本開示による、制限付きビデオ復号を実行するための別の例示的な技法を示す流れ図である。いくつかの例では、図22に示される技法は、図18に示される処理ボックス252および/または254を実施するために使用され得る。
[0306]図22に示されるように、ビデオデコーダ30は、深度予測ユニットのサイズ(DPU_SIZE)と深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)とを決定する(280)。ビデオデコーダ30は、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかを決定する(282)。DPU_SIZEがMAX_TB_SIZEよりも大きいと決定したことに応答して、ビデオデコーダ30は、符号化ビデオビットストリームからdim_not_present_flagを取得および復号することなく、dim_not_present_flagが1に等しいと推測する(284)。1のdim_not_present_flag値は、深度予測ユニットが非DMM予測モードに従って予測されるべきであることを示す。DPU_SIZEがMAX_TB_SIZEよりも大きくないと決定したことに応答して、ビデオデコーダ30は、DPU_SIZEがMAX_TB_SIZEよりも大きいかどうかに加えて他の基準に基づいて、dim_not_present_flagの値を決定する(286)。いくつかの例では、DPU_SIZEがMAX_TB_SIZEよりも大きくなく、ビデオデコーダ30は、dim_not_present_flagの値を決定するために、符号化ビデオビットストリームからdim_not_present_flagを解析し復号することができる。
[0307]やはり、dim_not_present_flagの値は、ビデオエンコーダによって、深度予測ユニットのサイズ(DPU_SIZE)が深度予測ユニットのために指定された最大変換ブロックサイズ(MAX_TB_SIZE)よりも大きいかどうかに基づいて選択され得る。したがって、一例としてdim_not_present_flagの値を推測/取得するために図22に示される技法を使用することによって、ビデオデコーダ30は、深度予測ユニットのサイズが深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って深度予測ユニットを選択的に予測することができる。
[0308]図23は、本開示による、ビデオをコーディングするための例示的な技法を示す流れ図である。ビデオエンコーダ20および/またはビデオデコーダ30は、深度予測ユニットのための予測モードを取得/決定する(288)。ビデオエンコーダ20および/またはビデオデコーダ30はさらに、予測モードがDMM予測モード(たとえば、DMMモード1、DMMモード4、wdgelet DMMモード、または輪郭DMMモード)であるかどうかを決定する(290)。
[0309]予測モードがDMM予測モードであると決定したことに応答して、ビデオエンコーダ20および/またはビデオデコーダ30は、PUレベルで深度予測ユニット全体を予測し(292)、PUを形成するTUの残差サンプル値に基づいて、PUのサンプルを再構築する(294)。PUレベルでPUを予測することは、PUに含まれ得る複数のTUに別個に予測演算を適用するのではなく、PUを予測するために単一の予測演算が実行されるように、PU全体に予測演算を適用することを指し得る。いくつかの例では、PU全体がPUレベルで予測されるとき、PUに関する予測されるサンプルは、PUのTUのうちのいずれかの再構築されたサンプル値に依存しないことがある。
[0310]予測モードがDMMモードではないと決定したことに応答して、ビデオエンコーダ20および/またはビデオデコーダ30は、コーディング順序(たとえば、復号順序)でPUのTUの各々を予測し再構築することができる。言い換えれば、PUはTUレベルで予測され得る。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、TUの各々を別個に予測し再構築することができる。TUレベルでPUを予測することは、PUのTUの各々に、TUごとに1つの予測演算が実行されるように、予測演算を適用することを指し得る。言い換えれば、予測演算の異なるインスタンスがPUのTUごとに実行される。いくつかの例では、PUがTUレベルで予測されるとき、PUに関する予測されるサンプルは、PUの1つまたは複数のTUの再構築されたサンプル値に依存し得る。言い換えれば、PUがTUレベルで予測されるとき、PUのTUに関する予測されるサンプルは、PUに関する1つまたは複数の以前再構築されたTUの再構築されたサンプル値に依存し得る。TUレベルでPUを再構築することは、PUのTUの各々に、TUごとに1つの再構築動作が実行されるように、再構築動作を適用することを指し得る。
[0311]いくつかの例では、PU全体がPUレベルで予測されるとき、ビデオエンコーダ20および/またはビデオデコーダ30は、深度予測ユニットの任意の再構築されたサンプル値を決定するより前に、深度予測ユニットのすべてのサンプルを予測することができる。いくつかの例では、PUがTUレベルで予測されるとき、ビデオエンコーダ20および/またはビデオデコーダ30は、深度予測ユニットのサンプルのうちの1つまたは複数を予測するより前に、深度予測ユニットの1つまたは複数の再構築されたサンプル値を決定することができる。
[0312]いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、深度モデリングモード(DMM)に従って(1つまたは複数の変換ユニットを含む(あるいは1つまたは複数の変換ユニットに対応する)ことがある)深度予測ユニットを予測するかどうかを決定し(290)、深度予測ユニットがDMMに従って予測されるべきではないときに、ある変換ユニットレベルおよびあるコーディング順序で深度予測ユニットの変換ユニットの各々を予測し再構築し(296)、深度予測ユニットがDMMに従って予測されるべきであるときに、ある予測ユニットレベルで深度予測ユニットのすべてのサンプルを予測する(292)ことができる。
[0313]いくつかの例では、変換ユニットの各々を予測し再構築することは、深度予測ユニットのサンプルのうちの1つまたは複数を予測するより前に、深度予測ユニットの1つまたは複数の再構築されたサンプル値を決定することを含み得る。いくつかの例では、深度予測ユニットのすべてのサンプルを予測することは、深度予測ユニットの任意の再構築されたサンプル値を決定するより前に、深度予測ユニットのすべてのサンプルを予測することを含み得る。
[0314]いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、深度予測ユニットがDMMに従って予測されるべきではないときに、深度予測ユニットの再構築されたサンプルを生成するために、深度予測ユニットの予測サンプルに深度予測ユニットの変換ユニットの残差サンプルを加算することができる。さらなる例では、ビデオエンコーダ20は、深度予測ユニットがDMMに従って予測されるべきではないときに、深度予測ユニットの残差サンプルを生成するために、深度予測ユニットの予測サンプルに深度予測ユニットの変換ユニットのサンプルを加算することができる。
[0315]いくつかの例では、DMM予測モードが使用されるとき、PU(たとえば、深度PU)がPUレベルで予測され再構築され得る。たとえば、PUは隣接サンプルを使用して予測され得、次いで、変換木から復号された残差が、PUを再構築するために予測サンプルに加算され得る。いくつかの例では、PU(たとえば、深度PU)に関連付けられる変換木は、複数のサブ変換木ノードに分割され得る(すなわち、PUは複数のTuに対応する)。そのような例では、DMM予測モードが使用されないとき、TUは、いくつかの例では、コーディング順序(たとえば、Zオーダー)で予測され再構築され得る。すなわち、PUは、TUレベルで予測され再構築される。PUは、コーディングブロックの領域を指し得る。領域は、コーディングブロックの1つもしくは複数のサンプル(たとえば、ピクセル)を含むこと、および/またはこれらのサンプルに対応することがある。
[0316]いくつかの例では、本開示の技法は、TUに関して知られたDMM予測パターンを作り、それによってDMMコード化PUを復号可能にすることができる。さらなる例では、本開示の技法は、3D−HEVCにおける変換木構造設計をHEVCにおける変換木構造設計と同じままにすることができる。
[0317]本開示で説明された様々なコーディング技法は、ビデオエンコーダ20(図2および図9)ならびに/またはビデオデコーダ30(図2および図10)によって実施されてよく、ビデオエンコーダ20とビデオデコーダ30の両方が全般にビデオコーダと呼ばれ得る。加えて、ビデオコーディングは、一般に、適用可能な場合、ビデオ符号化および/またはビデオ復号を指す場合がある。
[0318]本開示の技法は全般に3D−HEVCに関して説明されたが、本技法はこのように限定されない。上記で説明された技法は、3Dビデオコーディングのための他の現在の規格または将来の規格にも適用可能であり得る。たとえば、エントロピーコーディングのための本開示で説明された技法は、たとえば3Dビデオコーディングまたは他の用途のために、深度区分のための深度イントラモードのコーディングを伴う他の現在のまたは将来の規格にも適用可能であり得る。
[0319]1つまたは複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される場合がある。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当する場合がある。データ記憶媒体は、本開示で説明された技法の実装のために命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0320]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0321]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供される場合がある。また、本技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
[0322]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施される場合がある。様々な構成要素、モジュール、またはユニットは、開示された技法を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、様々なハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明されたように、様々なユニットは、コーデックハードウェアユニット内で組み合わされるか、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明された1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体によって提供される場合がある。
[0323]様々な実施例について説明した。これらおよび他の実施例は、特許請求の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ復号の方法であって、
符号化ビデオビットストリームの変換木ノードを、前記変換木ノードに対応する深度予測ユニットが深度モデリングモード(DMM)に従って予測されるかどうかに少なくとも部分的に基づいて、複数のサブ変換木ノードに選択的に分割するか、または分割しないことと、
前記変換木ノードが前記複数のサブ変換木ノードに分割されるかどうかに少なくとも部分的に基づいて、前記変換木ノードを復号することと
を備える方法。
[C2]
前記変換木ノードを選択的に分割するか、または分割しないことは、
前記符号化ビデオビットストリームに少なくとも部分的に基づいて、前記変換木ノードに関するシンタックス要素の値を決定することと、ここにおいて、前記シンタックス要素の前記値は、前記変換木ノードが前記複数のサブ変換木ノードに分割されるべきかどうかを示し、前記シンタックス要素の前記値は、前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるかどうかに少なくとも部分的に基づいて設定される、
前記シンタックス要素の前記値に少なくとも部分的に基づいて、前記変換木ノードを前記複数のサブ変換木ノードに選択的に分割するか、または分割しないことと
を備える、C1に記載の方法。
[C3]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はsplit_transform_flagシンタックス要素を備える、C2に記載の方法。
[C4]
前記符号化ビデオビットストリームは、前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるときに、前記変換木ノードが前記複数のサブ変換木ノードに分割されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C2および3のいずれかに記載の方法。
[C5]
前記シンタックス要素の前記値を決定することは、
前記符号化ビデオビットストリームから前記シンタックス要素のコード化バージョンを取得することと、
前記シンタックス要素の前記値を取得するために、前記シンタックス要素の前記コード化バージョンを復号することと
を備える、C2から4のいずれかに記載の方法。
[C6]
前記シンタックス要素は第2のシンタックス要素であり、前記シンタックス要素の前記値を決定することは、
第1のシンタックス要素の値を取得するために、前記符号化ビットストリームから前記第1のシンタックス要素を復号することと、ここにおいて、前記第1のシンタックス要素の前記値は、前記深度予測ユニットが前記DMMに従って予測されるかどうかを示す、
前記第1のシンタックス要素の前記値に少なくとも部分的に基づいて、前記符号化ビデオビットストリームから前記第2のシンタックス要素を取得および復号することなく、前記第2のシンタックス要素の前記値を推測値に等しく設定するかどうかを決定することと、ここにおいて、前記推測値は、前記変換木ノードが前記複数のサブ変換木ノードに分割されるべきではないことを示す、
前記深度予測ユニットが前記DMMに従って予測されることを前記第1のシンタックス要素の前記値が示すと決定したことに応答して、前記第2のシンタックス要素の前記値を前記推測値に等しく設定することと
を備える、C2から4のいずれかに記載の方法。
[C7]
前記第1のシンタックス要素はdim_not_present_flagシンタックス要素である、C6に記載の方法。
[C8]
前記変換木ノードを選択的に分割するか、または分割しないことは、
前記深度予測ユニットが前記DMMに従って予測されるときに、前記変換木ノードを前記複数のサブ変換木ノードに分割しないこと
を備える、C1から7のいずれかに記載の方法。
[C9]
前記変換木ノードを復号することは、
前記変換木ノードが前記複数のサブ変換木ノードに分割されない場合に、前記変換木ノードに対応する変換ユニットを復号することと、
前記変換木ノードが前記複数のサブ変換木ノードに分割される場合に、前記変換木ノードを含む変換木構造のそれぞれのリーフノードに対応する変換ユニットを復号することと
を備える、C1から8のいずれかに記載の方法。
[C10]
ビデオ符号化の方法であって、
変換木ノードに対応する深度予測ユニットが深度モデリングモード(DMM)に従って予測されるかどうかに少なくとも部分的に基づいて、前記変換木ノードを複数のサブ変換木ノードに選択的に分割するか、または分割しないことと、
前記変換木ノードが前記複数のサブ変換木ノードに分割されるかどうかに少なくとも部分的に基づいて、前記変換木ノードを符号化することと、
前記符号化ビデオビットストリームが前記コード化変換木ノードを含むように前記符号化ビデオビットストリームを生成することと
を備える方法。
[C11]
前記変換木ノードを選択的に分割するか、または分割しないことは、
前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるかどうかを決定することと、
前記深度予測ユニットが前記DMMに従って予測されると決定したことに応答して、前記変換木ノードを複数のサブ変換木ノードに分割しないことと
を備える、C10に記載の方法。
[C12]
前記符号化ビデオビットストリームを生成することは、
前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるかどうかに少なくとも部分的に基づいて、前記変換木ノードに関するシンタックス要素の値を選択することと、ここにおいて、前記シンタックス要素の前記値は、前記変換木ノードが前記複数のサブ変換木ノードに分割されるべきかどうかを示す、
前記符号化ビデオビットストリームが前記シンタックス要素の前記値をシグナリングするように前記符号化ビデオビットストリームを生成することと
を備える、C10および11のいずれかに記載の方法。
[C13]
前記シンタックス要素の前記値を選択することは、
前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるときに、前記変換木ノードが前記複数のサブ変換木ノードに分割されるべきではないことを示す値を選択すること
を備える、C12に記載の方法。
[C14]
前記符号化ビデオビットストリームを生成することは、
前記符号化ビデオビットストリームが前記シンタックス要素を含むように前記符号化ビデオビットストリームを生成すること
を備える、C12および13のいずれかに記載の方法。
[C15]
前記符号化ビデオビットストリームを生成することは、
前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるときに、前記符号化ビデオビットストリームが前記シンタックス要素を含まないように前記符号化ビデオビットストリームを生成すること
を備える、C12および13のいずれかに記載の方法。
[C16]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はsplit_transform_flagシンタックス要素を備える、C12から15のいずれかに記載の方法。
[C17]
前記符号化ビデオビットストリームは、前記変換木ノードに対応する前記深度予測ユニットが前記DMMに従って予測されるときに、前記変換木ノードが複数のサブ変換木ノードに分割されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C12から16のいずれかに記載の方法。
[C18]
前記変換木ノードを符号化することは、
前記変換木ノードが前記複数のサブ変換木ノードに分割されない場合に、前記変換木ノードに対応する変換ユニットを符号化することと、
前記変換木ノードが前記複数のサブ変換木ノードに分割される場合に、前記変換木ノードを含む変換木構造のそれぞれのリーフノードに対応する変換ユニットを符号化することと
を備える、C10から17のいずれかに記載の方法。
[C19]
ビデオコーディング装置であって、
ビデオデータを記憶するメモリと、
C1から18のいずれかに記載の方法を実行するように構成された1つまたは複数のプロセッサを備えるビデオコーダと
を備えるビデオコーディング装置。
[C20]
実行時に、1つまたは複数のプロセッサにC1から18のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読媒体。
[C21]
C1から18のいずれかに記載の方法を実行するための手段を備えるビデオコーディング装置。
[C22]
ビデオ復号の方法であって、
深度予測ユニットのサイズが前記深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って前記深度予測ユニットを選択的に予測することと、
前記深度予測ユニットを、前記予測された深度予測ユニットに少なくとも部分的に基づいて復号することと
を備える方法。
[C23]
前記深度予測ユニットを選択的に予測することは、
前記符号化ビデオビットストリームに少なくとも部分的に基づいて、前記深度予測ユニットに関するシンタックス要素の値を決定することと、ここにおいて、前記シンタックス要素の前記値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきかどうかを示し、前記シンタックス要素の前記値は、前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて設定される、
前記シンタックス要素の前記値に少なくとも部分的に基づいて、前記DMM予測モードまたは前記非DMM予測モードに従って前記深度予測ユニットを選択的に予測することと
を備える、C22に記載の方法。
[C24]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はdim_not_present_flagシンタックス要素を備える、C23に記載の方法。
[C25]
前記符号化ビデオビットストリームは、前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいときに、前記深度予測ユニットが前記DMMモードに従って予測されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C23および24のいずれかに記載の方法。
[C26]
前記シンタックス要素の前記値を決定することは、
前記符号化ビデオビットストリームから前記シンタックス要素のコード化バージョンを取得すること、
前記シンタックス要素の前記値を取得するために、前記シンタックス要素の前記コード化バージョンを復号することと
を備える、C23から25のいずれかに記載の方法。
[C27]
前記シンタックス要素の前記値を決定することは、
前記符号化ビデオビットストリームに少なくとも部分的に基づいて、深度予測ユニットのサイズと前記深度予測ユニットに対応する最大変換ブロックサイズとを決定することと、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、前記符号化ビデオビットストリームから前記シンタックス要素を取得および復号することなく、前記シンタックス要素の前記値を推測値に等しく設定するかどうかを決定することと、ここにおいて、前記推測値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきではないことを示す、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいと決定したことに応答して、前記シンタックス要素の前記値を前記推測値に等しく設定することと
を備える、C23から25のいずれかに記載の方法。
[C28]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいときに、非DMM予測モードに従って前記深度予測ユニットを予測すること
を備える、C22から27のいずれかに記載の方法。
[C29]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットのサイズが前記深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および前記深度予測ユニットの残差がセグメントごとのDC(SDC)コーディングモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、前記DMM予測モードまたは前記非DMM予測モードに従って前記深度予測ユニットを選択的に予測すること
を備える、C22に記載の方法。
[C30]
前記深度予測ユニットを選択的に予測することは、
前記符号化ビデオビットストリームに少なくとも部分的に基づいて、前記深度予測ユニットに関するシンタックス要素の値を決定することと、ここにおいて、前記シンタックス要素の前記値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきかどうかを示し、前記シンタックス要素の前記値は、前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうか、および前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて設定される、
前記シンタックス要素の前記値に少なくとも部分的に基づいて、前記DMM予測モードまたは前記非DMM予測モードに従って前記深度予測ユニットを選択的に予測することと
を備える、C29に記載の方法。
[C31]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はdim_not_present_flagシンタックス要素を備える、C30に記載の方法。
[C32]
前記符号化ビデオビットストリームは、前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいとき、および前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないときに、前記深度予測ユニットが前記DMMモードに従って予測されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C30および31のいずれかに記載の方法。
[C33]
前記シンタックス要素の前記値を決定することは、
前記符号化ビデオビットストリームから前記シンタックス要素のコード化バージョンを取得すること、
前記シンタックス要素の前記値を取得するために、前記シンタックス要素の前記コード化バージョンを復号することと
を備える、C30から32のいずれかに記載の方法。
[C34]
前記シンタックス要素の前記値を決定することは、
前記符号化ビデオビットストリームに少なくとも部分的に基づいて、深度予測ユニットのサイズ、前記深度予測ユニットに対応する最大変換ブロックサイズを決定し、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされるかどうかを決定することと、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいかどうか、および前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、前記符号化ビデオビットストリームから前記シンタックス要素を取得および復号することなく、前記シンタックス要素の前記値を推測値に等しく設定するかどうかを決定することと、ここにおいて、前記推測値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきではないことを示す、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいと決定し、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないと決定したことに応答して、前記シンタックス要素の前記値を前記推測値に等しく設定することと
を備える、C30から32のいずれかに記載の方法。
[C35]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きく、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないときに、非DMM予測モードに従って前記深度予測ユニットを予測すること
を備える、C29から34のいずれかに記載の方法。
[C36]
前記深度予測ユニットを復号することは、
前記深度予測ユニットに対応する1つまたは複数の再構築された変換ユニットを、前記予測された深度予測ユニットおよび1つまたは複数の残差変換ユニットに少なくとも部分的に基づいて生成すること
を備える、C22から35のいずれかに記載の方法。
[C37]
ビデオ符号化の方法であって、
深度予測ユニットのサイズが前記深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って前記深度予測ユニットを選択的に予測することと、
前記深度予測ユニットを、前記予測された深度予測ユニットに少なくとも部分的に基づいて符号化することと、
前記符号化ビデオビットストリームが前記コード化深度予測ユニットを含むように前記符号化ビデオビットストリームを生成することと
を備える方法。
[C38]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかを決定することと、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいと決定したことに応答して、非DMM予測モードに従って前記深度予測ユニットを予測することと
を備える、C37に記載の方法。
[C39]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、前記深度予測ユニットに関するシンタックス要素の値を選択することと、ここにおいて、前記シンタックス要素の前記値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきかどうかを示す、
前記符号化ビデオビットストリームが前記シンタックス要素の前記値をシグナリングするように前記符号化ビデオビットストリームを生成することと
を備える、C37および38のいずれかに記載の方法。
[C40]
前記シンタックス要素の前記値を選択することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいときに、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきではないことを示す値を選択すること
を備える、C39に記載の方法。
[C41]
前記符号化ビデオビットストリームを生成することは、
前記符号化ビデオビットストリームが前記シンタックス要素を含むように前記符号化ビデオビットストリームを生成すること
を備える、C39および40のいずれかに記載の方法。
[C42]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいときに、前記符号化ビデオビットストリームが前記シンタックス要素を含まないように前記符号化ビデオビットストリームを生成すること
を備える、C39および40のいずれかに記載の方法。
[C43]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はdim_not_present_flagシンタックス要素を備える、C39から42のいずれかに記載の方法。
[C44]
前記符号化ビデオビットストリームは、前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいときに、前記深度予測ユニットが前記DMMモードに従って予測されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C39から43のいずれかに記載の方法。
[C45]
前記深度予測ユニットを選択的に予測することは、
深度予測ユニットのサイズが前記深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうか、および前記深度予測ユニットの残差がSDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、前記DMM予測モードまたは前記非DMM予測モードに従って前記深度予測ユニットを選択的に予測すること
を備える、C37に記載の方法。
[C46]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかを決定することと、
前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされるかどうかを決定することと、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいと決定し、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないと決定したことに応答して、非DMM予測モードに従って前記深度予測ユニットを予測することと
を備える、C45に記載の方法。
[C47]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうか、および前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされるかどうかに少なくとも部分的に基づいて、前記深度予測ユニットに関するシンタックス要素の値を選択することと、ここにおいて、前記シンタックス要素の前記値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきかどうかを示す、
前記符号化ビデオビットストリームが前記シンタックス要素の前記値をシグナリングするように前記符号化ビデオビットストリームを生成することと
を備える、C45および46のいずれかに記載の方法。
[C48]
前記シンタックス要素の前記値を選択することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きく、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないときに、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきではないことを示す値を選択すること
を備える、C47に記載の方法。
[C49]
前記符号化ビデオビットストリームを生成することは、
前記符号化ビデオビットストリームが前記シンタックス要素を含むように前記符号化ビデオビットストリームを生成すること
を備える、C47および48のいずれかに記載の方法。
[C50]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいことと、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないこととの両方に該当するときに、前記符号化ビデオビットストリームが前記シンタックス要素を含まないように前記符号化ビデオビットストリームを生成すること
を備える、C47および48のいずれかに記載の方法。
[C51]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はdim_not_present_flagシンタックス要素を備える、C47から50のいずれかに記載の方法。
[C52]
前記符号化ビデオビットストリームは、前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいことと、前記深度予測ユニットの前記残差が前記SDCモードに従ってコーディングされないこととの両方に該当するときに、前記深度予測ユニットが前記DMMモードに従って予測されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C47から51のいずれかに記載の方法。
[C53]
前記深度予測ユニットを符号化することは、
前記深度予測ユニットに対応する1つまたは複数の残差変換ユニットを、前記予測された深度予測ユニットに少なくとも部分的に基づいて生成すること
を備える、C37から52のいずれかに記載の方法。
[C54]
ビデオ符号化の方法であって、
深度予測ユニットのサイズが前記深度予測ユニットのために指定された最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、深度モデリングモード(DMM)予測モードまたは非DMM予測モードに従って前記深度予測ユニットを選択的に予測することと、
前記深度予測ユニットを、前記予測された深度予測ユニットに少なくとも部分的に基づいて符号化することと、
前記符号化ビデオビットストリームが前記コード化深度予測ユニットを含むように前記符号化ビデオビットストリームを生成することと
を備える方法。
[C55]
前記深度予測ユニットを選択的に予測することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかを決定することと、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいと決定したことに応答して、非DMM予測モードに従って前記深度予測ユニットを予測することと
を備える、C54に記載の方法。
[C56]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいかどうかに少なくとも部分的に基づいて、前記深度予測ユニットに関するシンタックス要素の値を選択することと、ここにおいて、前記シンタックス要素の前記値は、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきかどうかを示す、
前記符号化ビデオビットストリームが前記シンタックス要素の前記値をシグナリングするように前記符号化ビデオビットストリームを生成することと
を備える、C54および55のいずれかに記載の方法。
[C57]
前記シンタックス要素の前記値を選択することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいときに、前記深度予測ユニットが前記DMM予測モードに従って予測されるべきではないことを示す値を選択すること
を備える、C56に記載の方法。
[C58]
前記符号化ビデオビットストリームを生成することは、
前記符号化ビデオビットストリームが前記シンタックス要素を含むように前記符号化ビデオビットストリームを生成すること
を備える、C56および57のいずれかに記載の方法。
[C59]
前記符号化ビデオビットストリームを生成することは、
前記深度予測ユニットの前記サイズが前記深度予測ユニットのために指定された前記最大変換ブロックサイズよりも大きいときに、前記符号化ビデオビットストリームが前記シンタックス要素を含まないように前記符号化ビデオビットストリームを生成すること
を備える、C56および57のいずれかに記載の方法。
[C60]
前記符号化ビデオビットストリームは3次元高効率ビデオコーディング(3D−HEVC)符号化ビデオビットストリームを備え、前記シンタックス要素はdim_not_present_flagシンタックス要素を備える、C56から59のいずれかに記載の方法。
[C61]
前記符号化ビデオビットストリームは、前記深度予測ユニットの前記サイズが前記深度予測ユニットに対応する前記最大変換ブロックサイズよりも大きいときに、前記深度予測ユニットが前記DMMモードに従って予測されるべきではないことを前記シンタックス要素が示さなければならないことを指定する制限を満たす、C56から60のいずれかに記載の方法。
[C62]
ビデオコーディング装置であって、
ビデオデータを記憶するメモリと、
C22から61のいずれかに記載の方法を実行するように構成された1つまたは複数のプロセッサを備えるビデオコーダと
を備えるビデオコーディング装置。
[C63]
実行時に、1つまたは複数のプロセッサにC22から61のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読媒体。
[C64]
C22から61のいずれかに記載の方法を実行するための手段を備えるビデオコーディング装置。
[C65]
ビデオ復号の方法であって、
深度モデリングモード(DMM)に従って深度予測ユニットを予測するかどうかを決定することであって、前記深度予測ユニットが1つまたは複数の変換ユニットを含む、決定することと、
前記深度予測ユニットが前記DMMに従って予測されるべきではないときに、変換ユニットレベルおよびコーディング順序で、前記深度予測ユニットの前記変換ユニットの各々を予測し再構築することと、
前記深度予測ユニットが前記DMMに従って予測されるべきであるときに、予測ユニットレベルで、前記深度予測ユニットのすべてのサンプルを予測することと
を備える方法。
[C66]
前記変換ユニットの各々を予測し再構築することは、前記深度予測ユニットの前記サンプルのうちの1つまたは複数を予測するより前に、前記深度予測ユニットの1つまたは複数の再構築されたサンプル値を決定することを備え、
前記深度予測ユニットのすべてのサンプルを予測することは、前記深度予測ユニットの任意の再構築されたサンプル値を決定するより前に、前記深度予測ユニットのすべてのサンプルを予測することを備える、C65に記載の方法。
[C67]
前記深度予測ユニットが前記DMMに従って予測されるべきではないときに、前記深度予測ユニットの再構築されたサンプルを生成するために、前記深度予測ユニットの予測サンプルに前記変換ユニットの残差サンプルを加算すること
をさらに備える、C65および66のいずれかに記載の方法。
[C68]
ビデオ符号化の方法であって、
深度モデリングモード(DMM)に従って深度予測ユニットを予測するかどうかを決定することであって、前記深度予測ユニットが1つまたは複数の変換ユニットを含む、決定することと、
前記深度予測ユニットが前記DMMに従って予測されるべきではないときに、変換ユニットレベルおよびコーディング順序で、前記深度予測ユニットの前記変換ユニットの各々を予測し再構築することと、
前記深度予測ユニットが前記DMMに従って予測されるべきであるときに、予測ユニットレベルで、前記深度予測ユニットのすべてのサンプルを予測することと
を備える方法。
[C69]
前記変換ユニットの各々を予測し再構築することは、前記深度予測ユニットの前記サンプルのうちの1つまたは複数を予測するより前に、前記深度予測ユニットの1つまたは複数の再構築されたサンプル値を決定することを備え、
前記深度予測ユニットのすべてのサンプルを予測することは、前記深度予測ユニットが前記DMMに従って予測されるときに、前記深度予測ユニットの任意の再構築されたサンプル値を決定するより前に、前記深度予測ユニットのすべてのサンプルを予測することを備える、C68に記載の方法。
[C70]
前記深度予測ユニットが前記DMMに従って予測されるべきであるときに、前記深度予測ユニットの再構築されたサンプルを生成するために、前記深度予測ユニットの予測サンプルに前記変換ユニットの残差サンプルを加算すること
をさらに備える、C68および69のいずれかに記載の方法。
[C71]
前記深度予測ユニットが前記DMMに従って予測されるべきではないときに、前記深度予測ユニットの残差サンプルを生成するために、前記深度予測ユニットの予測サンプルに前記変換ユニットのサンプルを加算すること
をさらに備える、C68から70のいずれかに記載の方法。
[C72]
ビデオコーディング装置であって、
ビデオデータを記憶するメモリと、
C69から71のいずれかに記載の方法を実行するように構成された1つまたは複数のプロセッサを備えるビデオコーダと
を備えるビデオコーディング装置。
[C73]
実行時に、1つまたは複数のプロセッサにC69から71のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読媒体。
[C74]
C69から71のいずれかに記載の方法を実行するための手段を備えるビデオコーディング装置。