[0039]本開示は、ビデオデータのイントラピクチャ予測、または空間的予測(「イントラ予測」とも呼ばれる)のための技法を説明する。より具体的には、本開示は、たとえば簡易深度コーディング(SDC)モードに従って、3Dビデオデータの深度成分のイントラ予測コーディングの間に導出される残差値をコーディングするための技法を説明する。本明細書で説明される残差コーディング技法は、本明細書では深度イントラ予測モードと呼ばれる、深度データのための種々のイントラ予測モードのいずれかに従って、ビデオデータの深度成分をコーディングするときに適応的に適用され得る。いくつかの例では、不等確率状態が、イントラ深度コーディングモードおよびSDCモードと関連付けられるシグナリングにおいて使用されるシンタックス要素、たとえばフラグのコンテキスト適応型バイナリ算術コーディング(CABAC)のための初期状態として与えられる。
[0040]本開示は、High Efficiency Video Coding(HEVC)コーデックのような、進化したコーデックに基づく3Dビデオコーディングのための技法を説明する。本開示で説明される3Dコーディング技法は、現在開発中のHEVCに対する3D−HEVC拡張のような、マルチビュープラス深度ビデオコーディングプロセスにおける、深度ビューの進化したインターコーディングに関する深度コーディング技法を含む。
[0041]HEVCでは、コーディングユニット(CU)のサイズが2N×2Nであると仮定すると、ビデオエンコーダおよびビデオデコーダは、イントラ予測に対して2N×2NまたはN×Nという様々な予測ユニット(PU)サイズをサポートすることができ、インター予測に対して2N×2N、2N×N、N×2N、N×N、または同様の対称のPUサイズをサポートすることができる。ビデオエンコーダおよびビデオデコーダはまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対して非対称な区分をサポートすることができる。
[0042]3D−HEVCにおいて提供されるような深度コーディングでは、ビデオエンコーダおよびビデオデコーダは、非長方形のパーティションを使用するモードを含む、イントラ予測のための種々の異なる深度コーディングパーティションモードをサポートするように構成され得る。非長方形のパーティションを伴う深度コーディングの例としては、Wedgeletパーティションベースの深度コーディング、輪郭パーティションベースの深度コーディング、および領域境界チェーンパーティションベースのコーディングがある。例として、wedgeletパーティションまたは輪郭パーティションのような、非長方形のパーティションのパーティションベースのイントラコーディングのための技法は、深度データのイントラ予測コーディングから得られる残差情報のコーディングのためのSDCモードとともに実行され得る。
[0043]3Dビデオコーディング技法を使用してコーディングされたビデオデータは、3次元効果を生成するためにレンダリングされ、表示され得る。一例として、異なるビューの2つの画像(すなわち、わずかに異なる水平位置を有する2つのカメラの視点(two camera perspectives)に対応する)は、一方の画像が閲覧者の左眼(a viewer’s left eye)によって見られ、他方の画像が閲覧者の右眼(a viewer’s right eye)によって見られるように、実質的に同時に表示され得る。
[0044]3D効果は、たとえば、立体視ディスプレイ(stereoscopic displays)または自動立体視ディスプレイ(autostereoscopic displays)を使用して達成され得る。立体視ディスプレイは、2つの画像を相応にフィルタリングするアイウェアとともに使用され得る。たとえば、パッシブ眼鏡(passive glasses)は、適切な眼が適切な画像を見ることを保証するために、偏光レンズ(polarized lenses)または異なるカラーレンズを使用して画像をフィルタリングすることができる。アクティブ眼鏡は、別の例として、立体視ディスプレイと協調して交互にレンズを高速に閉じる(shutter)ことができ、それにより、左眼画像を表示することと右眼画像を表示することとを交互に行い得る。自動立体視ディスプレイは、眼鏡が必要とされないような方法で2つの画像を表示する。たとえば、自動立体視ディスプレイは、各画像が閲覧者の適切な眼に投影されるように構成された鏡またはプリズムを含み得る。
[0045]本開示の技法は、3Dビデオをサポートするために深度データをコーディングすることによって、3Dビデオデータをコーディングするための技法に関する。一般に、「テクスチャ」という用語は、画像のルミナンス(すなわち、輝度または「ルーマ」)値と画像のクロミナンス(すなわち、色または「クロマ」)値とを表すために使用される。いくつかの例では、テクスチャ画像は、1セットのルミナンスデータ(Y)と、青色相(Cb)および赤色相(Cr)のための2セットのクロミナンスデータとを含み得る。4:2:2または4:2:0などの特定のクロマフォーマットでは、クロマデータは、ルーマデータに関してダウンサンプリングされる。すなわち、クロミナンスピクセルの空間解像度は、対応するルミナンスピクセルの空間解像度よりも低く、たとえば、ルミナンス解像度の1/2または1/4であり得る。
[0046]深度データは一般に、対応するテクスチャデータに関する深度値を表す。たとえば、深度画像は、たとえばビューのテクスチャ成分中の対応するテクスチャデータに対する、たとえばビューの深度成分中の深度を各々表す、深度ピクセルのセット(深度サンプルまたは深度値とも呼ばれる)を含み得る。各サンプル、たとえばピクセルは、1つまたは複数のテクスチャ値(たとえば、ルミナンスおよびクロミナンス)を有してよく、1つまたは複数の深度値も有してよい。テクスチャピクチャおよび深度マップは、同じ空間解像度を有することがあるが、そうである必要はない。たとえば、深度マップは、対応するテクスチャピクチャよりも多数または少数のピクセルを含み得る。深度データは、対応するテクスチャデータの水平視差(horizontal disparity)を決定するために使用されてよく、およびいくつかの場合には、垂直視差(vertical disparity)も使用されてよい。
[0047]テクスチャデータと深度データとを受信するデバイスは、一方のビュー(たとえば、左眼ビュー)のための第1のテクスチャ画像を表示し、深度値に基づいて決定された水平視差値だけ第1の画像のピクセル値をオフセットすることによって、他方のビュー(たとえば、右眼ビュー)のための第2のテクスチャ画像を生成するように第1のテクスチャ画像を修正するために深度データを使用することができる。一般に、水平視差(または単に「視差」)は、右ビュー中の対応するピクセルに対する第1のビュー中のピクセルの水平空間オフセットを表し、2つのピクセルは、2つのビュー中で表される同じオブジェクトの同じ部分に対応する。
[0048]さらに他の例では、画像について定義されたゼロ視差平面に対して所与のピクセルと関連付けられる深度が定義されるように、画像平面に直交するz次元におけるピクセルに対して深度データが定義され得る。そのような深度は、ピクセルを表示するための水平視差を作成するために使用されてよく、その結果、ピクセルは、ゼロ視差平面に対するピクセルのz次元深度値に応じて、左眼と右眼とで異なって表示される。ゼロ視差平面は、ビデオシーケンスの異なる部分に対して変化してよく、ゼロ視差平面に対する深度の量も変化してよい。
[0049]ゼロ視差平面上に位置するピクセルは、左眼と右眼とに対して同様に定義され得る。ゼロ視差平面の前に位置するピクセルは、ピクセルが画像平面に直交するz方向の画像から出てくるように見える知覚(a perception)を生み出すために、(たとえば、水平視差とともに)左眼と右眼とに対して異なる位置に表示され得る。ゼロ視差平面の後ろに位置するピクセルは、深度のわずかな知覚まで、わずかなぼかしとともに表示されてよく、または(たとえば、ゼロ視差平面の前に位置するピクセルの水平視差とは反対の水平視差とともに)左眼と右眼とに対して異なる位置に表示され得る。他の多くの技法も、画像に関する深度データを伝達または定義するために使用され得る。
[0050]2次元ビデオデータは一般に、その各々が特定の時間的インスタンスに対応する、個別ピクチャのシーケンスとしてコーディングされる。すなわち、各ピクチャは、シーケンス中の他の画像の再生時間に対する関連する再生時間を有する。これらのピクチャはテクスチャピクチャまたはテクスチャ画像と考えられ得る。深度ベースの3Dビデオコーディングでは、シーケンス中の各テクスチャピクチャは深度マップにも対応し得る。すなわち、テクスチャピクチャに対応する深度マップは、対応するテクスチャピクチャのための深度データを表す。マルチビュービデオデータは、様々な異なるビューのためのデータを含んでよく、各ビューは、テクスチャ成分および対応する深度成分のそれぞれのシーケンスを含み得る。
[0051]ピクチャは一般に、特定の時間的インスタンスに対応する。ビデオデータは、アクセスユニットのシーケンスを使用して表されてよく、各アクセスユニットは、特定の時間的インスタンスに対応するすべてのデータを含む。したがって、たとえば、マルチビュービデオデータプラス深度コーディングの場合、共通の時間的インスタンスに対する各ビューからのテクスチャ画像+テクスチャ画像の各々に対する深度マップがすべて、特定のアクセスユニット内に含まれ得る。したがって、アクセスユニットは複数のビューを含んでよく、各ビューは、テクスチャ画像に対応するテクスチャ成分のためのデータと、深度マップに対応する深度成分のためのデータとを含み得る。
[0052]各アクセスユニットは、複数のビュー成分またはピクチャを含み得る。特定のビューのビュー成分は、固有のビューidまたはビュー順序インデックスと関連付けられ、その結果、異なるビューのビュー成分は異なるビューidまたはビュー順序インデックスと関連付けられる。ビュー成分はテクスチャビュー成分ならびに深度ビュー成分を含み得る。同じビューの中のテクスチャビュー成分および深度ビュー成分は、異なるレイヤidを有し得る。テクスチャビュー成分は1つまたは複数のテクスチャスライスとしてコーディングされ得るが、深度ビュー成分は1つまたは複数の深度スライスとしてコーディングされ得る。マルチビュープラス深度は、イントラピクチャ予測、インターピクチャ予測、イントラビュー予測、インタービュー予測、動き予測などのような、種々のコーディングの可能性を生み出す。
[0053]このようにして、3Dビデオデータは、キャプチャまたは生成されたビューが対応する深度マップと関連付けられるテクスチャ成分を含む、マルチビュービデオプラス深度フォーマットを使用して表され得る。その上、3Dビデオコーディングでは、テクスチャと深度マップがコーディングされ、3Dビデオビットストリームの中に多重化され得る。深度マップはグレースケール画像としてコーディングされてよく、深度マップの「ルーマ」サンプル(すなわち、ピクセル)は深度値を表す。
[0054]一般に、深度データのブロック(たとえばピクセルに対応する、深度マップのサンプルのブロック)は深度ブロックと呼ばれ得る。深度値は、深度サンプルと関連付けられるルーマ値と呼ばれ得る。すなわち、深度マップは一般に、モノクロームテクスチャピクチャ、言い換えると、ルミナンス値を含みクロミナンス値を含まないテクスチャピクチャとして扱われ得る。いずれの場合も、従来のイントラコーディングおよびインターコーディング方法が深度マップコーディングのために適用され得る。
[0055]深度マップは、通常、鋭いエッジおよび一定のエリアによって特徴付けられ、深度マップ中のエッジは、典型的には、対応するテクスチャデータとの強い相関を呈する。テクスチャと対応する深度との間の異なる統計値および相関により、様々なコーディング方式が、2Dビデオコーデックに基づく深度マップのために設計されている。
[0056]本開示に関する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月に記載されている。
[0057]加えて、上で言及されたHigh Efficiency Video Coding(HEVC)は、Joint Collaboration Team on Video Coding(JCT−VC)of ITU−T Video Coding Experts Group(VCEG)and ISO/IEC Motion Picture Experts Group(MPEG)によって開発されている、新たな今後来るビデオコーディング規格である。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)」、文書:JCTVC−L1003_v34、Joint Collaborative Team on Video Coding(JCT−VC)of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第12回会合:ジュネーブ、スイス、2013年1月14〜23日(「HEVC Text Specification」)が、以下のリンクから入手可能である。
http://phenix.it−sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zip
[0058]JCT−3Vでは、マルチビュー拡張(MV−HEVC)および3Dビデオ拡張(3D−HEVC)という2つのHEVC拡張が開発されている。参照ソフトウェアの最近のバージョン、3D−HEVCのための「3D−HTM version 9.0」が、以下のリンクからダウンロード可能である。
https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−9.0/
[0059]3D−HEVCのためのソフトウェア記述の最新のドラフト、Gerhard Tech、Krzystof Wegner、Ying Chen、Sehoon Yea、「3D−HEVC Test Model 5」、JCT3V−E1005、Joint Collaborative Team on 3D Video Coding Extension Development of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第5回会合:ウィーン、オーストリア、2013年7月27日〜8月2日が、以下のリンクから入手可能である。
http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1005−v1.zip
[0060]3D−HEVC規格の最近のワーキングドラフト、Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、「3D−HEVC Draft Text 1」、文書:JCT3V−E1001−v3、Joint Collaborative Team on 3D Video Coding Extension Development of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第5回会合、ウィーン、オーストリア、2013年7月27日〜8月2日(「3D−HEVC Draft Text 1」)が、以下のリンクから入手可能である。
http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zip
[0061]3D−HEVC規格の別の最近のワーキングドラフト、Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、「3D−HEVC Draft Text 2」、文書:JCT3V−F1001−v1、Joint Collaborative Team on 3D Video Coding Extension Development of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第6回会合、ジュネーブ、スイス、2013年10月25日〜11月1日(「3D−HEVC Draft Text 2」)が、以下のリンクから入手可能である。
http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V−F1001−v1.zip
[0062]一般に、たとえば、プレーナイントラ予測モード、DCイントラ予測モード、および方向性イントラ予測モードのようなHEVCイントラ予測モードに従った、深度ブロックのイントラ予測コーディングは、それぞれの残差値とともに深度ブロックの各ピクセルを表す。一方、SDCモードに従った簡易残差コーディングは、1つまたは複数のDC残差値とともにピクセル固有の残差値を表す。1つまたは複数のDC残差値の各々は、複数のピクセル固有の残差値を表し、深度ブロックの複数の深度ピクセル値を再構築するためにビデオデコーダによって使用され得る。SDCモードに従った簡易残差コーディングでは、ビデオエンコーダは、いくつかの例では、ビットストリーム中のコーディングされたDC残差値、または深度ブロックと関連付けられる任意の他の残差データを変換および/または量子化しなくてよい(またビデオデコーダはそれらを逆量子化および/または逆変換しなくてよい)。
[0063]たとえば、ビデオエンコーダは、イントラ予測モードを使用して深度ブロックのための予測ブロックを生成することができる。ビデオエンコーダは次いで、予測ブロックと深度ブロックまたはパーティションに関する実際の値との間のピクセルごとの差分を残差ブロックが含むように、深度ブロックのための残差ブロックを計算することができる。次いで、ビデオエンコーダは、残差ブロックの残差値の平均からDC残差値を計算することができる。深度ブロックを再構築するために、ビデオデコーダは、DC残差値に各々等しいピクセル値を含む残差ブロックを形成し、イントラ予測モードを使用して予測ブロックを生成し、再構築された深度ブロックを形成するためにピクセルごとに予測ブロックを残差ブロックと組み合わせることができる。
[0064]他の例では、ビデオエンコーダは、イントラ予測モードを使用して深度ブロックのための予測ブロックを生成することができる。ビデオエンコーダは次いで、予測ブロックの値のサブセットに基づいて深度ブロックのためのDC予測子の値を計算することができる。ビデオエンコーダはまた、深度ブロックのDC深度値、たとえば平均値を決定することができる。ビデオエンコーダは、深度ブロックのためのDC深度値とDC予測子の値との差分として、深度ブロックの単一のDC残差値を決定することができる。深度ブロックを再構築するために、ビデオデコーダは、DC残差値に各々等しいピクセル値を含む残差ブロックを形成し、イントラ予測モードを使用して予測ブロックを生成し、再構築された深度ブロックを形成するためにピクセルごとに予測ブロックを残差ブロックと組み合わせることができる。
[0065]本開示の技法に従って構成されるビデオコーダ、たとえばビデオエンコーダまたはビデオデコーダは、種々の、たとえば少なくとも3つの深度イントラ予測モードのいずれかに従って深度ブロックをコーディングするために、SDCモードを実行することができる。少なくとも3つの深度イントラ予測モードは、DCモード、プレーナモード、または複数の方向性イントラ予測モードのいずれかのような、非パーティションベースの(たとえば、HEVC)イントラ予測モードを含み得る。そのような例では、ビデオコーダは、深度ブロックのための単一のDC残差値をコーディングすることができる。
[0066]少なくとも3つの深度イントラ予測モードは、追加で、または代替的に、パーティションベースの(たとえば、3D−HEVC)イントラ予測モードを含み得る。たとえば、少なくとも3つの深度イントラ予測モードは、深度モデリングモード(DMM)1、DMM3、DMM4、または領域境界チェーンコーディングモードを含み得る。そのような例では、ビデオコーダは、パーティションベースの深度イントラ予測モードに従って深度ブロックを区分し、各パーティションのためのそれぞれのDC残差値をコーディングすることができる。
[0067]本開示の技法に従って構成されるビデオコーダはまた、種々の深度イントラ予測モードへのSDCモードの広範な適用を支援するための、種々の技法を実行することができる。たとえば、本開示の技法に従って構成されるビデオコーダは、深度ブロックをコーディングするために、非パーティションベースのイントラ予測モード、たとえばHEVCイントラ予測モードが使用されるか、またはパーティションベースのイントラ予測モードが使用されるかを示すビットストリーム中の情報と、深度ブロックをコーディングするために、どの深度イントラ予測モードが使用されるか、たとえば、DCコーディングモード、プレーナコーディングモード、方向性コーディングモード、DMMコーディングモード、または領域境界チェーンコーディングモードのいずれが使用されるかを示す情報とを、コーディングするための、たとえば符号化または復号するための技法を実行することができる。別の例として、本開示の技法に従って構成されるビデオコーダは、示された深度イントラ予測コーディングモードとともに、本開示の技法に従ったSDCモードおよび簡易残差コーディングが使用されるかどうか、または残差値が異なる方式でコーディングされるかどうかを示すビットストリーム中の情報をコーディングするための、たとえば符号化または復号するための技法を実行することができる。
[0068]本開示のいくつかの例示的な技法に従って構成されるビデオコーダは、現在のイントラコーディングされた深度ブロックを復号するために、非パーティションベースの、たとえばHEVCイントラ予測モードが使用されるべきか、パーティションベースの深度イントラ予測モードが使用されるべきかを示す、符号化されたビデオビットストリーム中のシンタックス要素、たとえばhevc_intra_flagをコーディングすることができる。いくつかの例では、本開示の技法に従って構成されるビデオコーダは、現在のイントラコーディングされた深度ブロックを復号するためにSDCモードが実行されるべきかどうかを示す、符号化されたビデオビットストリーム中の別のシンタックス要素、たとえばsdc_flagをコーディングすることができる。いくつかの例では、本開示の技法に従って構成されるビデオコーダは、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスを使用して、これらのシンタックス要素をコーディングすることができる。いくつかの例では、ビデオコーダは、CABACプロセスに対して、これらのシンタックス要素の一方または両方のための初期化された確率状態として、不等確率状態を使用する。いくつかの例では、ビデオコーダは、現在の深度ブロックを含むスライスのスライスタイプに基づいて、これらのシンタックス要素の一方または両方のための初期化された確率状態を選択する。いくつかの例では、これらのシンタックス要素の一方または両方に対して、ビデオコーダは、1つまたは複数の隣接するブロックのためのこれらのシンタックス要素の値に基づいて、現在の深度ブロックのための初期化された確率状態を選択するが、他の例では、ビデオコーダは、1つまたは複数の隣接するブロックのためのこれらのシンタックス要素の値を参照することなく、現在の深度ブロックのための初期化された確率状態を選択する。
[0069]上で示されたように、本開示のいくつかの例示的な技法によれば、ビデオコーダは、SDCモードに従って現在のイントラコーディングされた深度ブロックを表す1つまたは複数のDC残差値をコーディングする。いくつかの例では、現在のイントラコーディングされた深度ブロックのためのビットストリームの中に符号化されているDC残差値を決定するために、ビデオエンコーダは、ビュー合成最適化プロセスを適用して、SDCモードに従って現在のイントラコーディングされた深度ブロックに対して決定されるDC残差値を含むある範囲内のDC残差値の候補のセットから、あるDC残差値を選択する。いくつかの例では、ビデオエンコーダは、SDCモードに従って現在のイントラコーディングされた深度ブロックに対して決定されるDC残差値に1つまたは複数の整数オフセットを適用することによって、DC残差値の範囲を決定する。
[0070]図1は、深度イントラ予測モードのための簡易残差コーディングのために本開示の様々な技法を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、3Dビデオコーディングのための残差情報の簡易深度コーディングとともに、深度データのパーティションベースの(たとえば、3D−HEVC)イントラコーディングまたは非パーティションベースの(たとえば、HEVC)イントラコーディングのための様々な機能を実行するように構成され得る。
[0071]図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
[0072]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、リアルタイムで符号化されたビデオデータをソースデバイス12が宛先デバイス14に直接に送信することを可能にする通信媒体を備え得る。
[0073]符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0074]いくつかの例では、符号化されたデータは、出力インターフェース22からコンピュータ可読記憶媒体、すなわち記憶デバイスへ出力され得る。同様に、符号化されたデータは、記憶デバイスから入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成された符号化されたビデオを記憶することができるファイルサーバまたは別の中間記憶デバイスに対応し得る。
[0075]宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14へ送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスすることができる。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適した、両方の組み合わせを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであり得る。
[0076]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、Dynamic Adaptive Streaming over HTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例のような、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0077]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、非長方形のパーティションを伴うパーティションベースの深度コーディングのための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信することができる。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
[0078]図1の示されるシステム10は一例にすぎない。深度イントラ予測モードに対する簡易残差コーディングのための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオエンコーダ20/ビデオデコーダ30によって実行されるが、技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行されてもよい。その上、本開示の技法は、ビデオプリプロセッサによって実行されてもよい。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、コーディングされたビデオデータを宛先デバイス14への送信のために生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化コンポーネントとビデオ復号コンポーネントとを含むように実質的に対称的な方式で動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス12と14の間の一方向または双方向のビデオ送信をサポートすることができる。
[0079]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースのような、ビデオキャプチャデバイスを含み得る。さらなる代替形態として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータを生成し、または、ライブビデオと、アーカイブされたビデオと、コンピュータで生成されたビデオとの組み合わせを生成することができる。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるスマートフォン、タブレットコンピュータ、またはビデオ電話を形成し得る。しかしながら、上で言及されたように、本開示で説明される技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスの適用例および/またはワイヤードの適用例に適用され得る。各々の場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0080]コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信のような一時的媒体、またはデータ記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイス12から符号化されたビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化されたビデオデータを宛先デバイス14に提供することができる。同様に、ディスクスタンピング設備のような、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含むディスクを生成することができる。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0081]本開示は全般に、ビデオエンコーダ20が、ある情報をビデオデコーダ30のような別のデバイスに「シグナリング」することに言及することがある。しかしながら、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分と関連付けることによって情報をシグナリングできることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化される部分のヘッダまたはペイロードにいくつかのシンタックス要素を記憶することによって、データを「シグナリング」することができる。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信されおよび復号されるより前に、符号化されおよび記憶され(たとえば、コンピュータ可読媒体16に記憶され)得る。したがって、「シグナリング」という用語は全般に、そのような通信がリアルタイムで発生するか、ほぼリアルタイムで発生するか、またはある期間にわたって発生するかにかかわらず、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を指すことがあり、ある期間にわたる通信は、シンタックス要素を符号化の時点で媒体に記憶し、次いで、シンタックス要素がこの媒体に記憶された後の任意の時点で復号デバイスによって取り出され得るときに発生し得る。
[0082]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダ20によって定義されビデオデコーダ30によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス32は、ユーザに復号されたビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、プロジェクションデバイス、または別のタイプのディスプレイデバイスのような、種々のディスプレイデバイスのいずれかを備え得る。
[0083]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能なとき、MUX−DEMUXユニットは、一例としてITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
[0084]ビデオエンコーダ20およびビデオデコーダ30は各々、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせのような、種々の好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダに含まれてよく、そのいずれもが複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合されてよい。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
[0085]ビデオエンコーダ20およびビデオデコーダ30は、HEVC規格のようなビデオコーディング規格、およびより具体的には、本開示で参照されるようなHEVC規格の3D−HEVC拡張に従って動作することができる。HEVCは、たとえば、ITU−T H.264/AVCのような他のプロセスに従ってコーディングを実行するように構成されるデバイスと比較して、ビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供するが、HMは35個ものイントラ予測符号化モードを提供することができる。
[0086]一般に、HEVCは、ビデオピクチャ(または「フレーム」)が、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを規定する。ビットストリーム内のシンタックスデータは、LCUに関するサイズを定義することができ、このLCUは、ピクセルの個数に関して最大のコーディングユニットである。スライスは、コーディングの順序で、いくつかの連続するツリーブロックを含む。ピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。一般に、4分木データ構造は、CUあたり1つのノードを、ツリーブロックに対応するルートノードとともに含む。CUが4つのサブCUに分割される場合、CUに対応するノードは、4つのリーフノードを含み、その各々は、サブCUの1つに対応する。
[0087]4分木データ構造の各ノードは、対応するCUに関するシンタックスデータを提供することができる。たとえば、4分木中のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUに関するシンタックス要素は、繰り返し定義されてよく、CUがサブCUに分割されるかどうかに依存してよい。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。元のリーフCUの明示的な分割がない場合でも、リーフCUの4つのサブCUはリーフCUと呼ばれることもある。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUはリーフCUとも呼ばれる。
[0088]HEVCのCUは、CUがサイズの差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードに分割されてよく、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードと呼ばれる、最後の分割されない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。それに応じて、ビットストリームは最小コーディングユニット(SCU)も定義することができる。本開示は、HEVCの文脈においてCU、PU、もしくはTUのいずれか、または他の規格の文脈において類似のデータ構造(たとえば、H.264/AVCのマクロブロックおよびそのサブブロック)を指すために、「ブロック」という用語を使用する。
[0089]CUは、コーディングノードと、コーディングノードと関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大で64×64ピクセル以上のツリーブロックのサイズにまでわたり得る。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。CUと関連付けられるシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述することができる。区分モードは、CUがスキップモード符号化もしくは直接モード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかで異なり得る。本開示で説明される深度コーディングの場合、PUは、形状が非正方形となるように区分されてよく、または、形状が非長方形であるパーティションを含んでよい。CUと関連付けられるシンタックスデータは、たとえば、4分木に従う1つまたは複数のTUへのCUの区分を記述することができる。TUは、形状が正方形または非正方形(たとえば、長方形)であってよい。
[0090]HEVC規格は、異なるCUに対しては異なり得る、TUに従った変換を可能にする。TUは通常、区分されたLCUに対して定義される所与のCU内のPUのサイズに基づくサイズにされるが、必ずそうであるとは限らない。TUは通常、PU以下のサイズである。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットにさらに分割され(be subdivided)得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれ得る。TUと関連付けられるピクセル差分値は、変換係数を生成するために変換されてよく、変換係数は量子化され得る。
[0091]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間的エリアを表し、そのPUに関する参照サンプルを取り出すためのデータを含み得る。参照サンプルは、参照ブロックからのピクセルであり得る。いくつかの例では、参照サンプルは、たとえば、補間または他の技法によって、参照ブロックから取得され、または生成され得る。PUはまた、予測に関するデータを含む。たとえば、PUが、イントラモード符号化されるとき、PUに関するデータは、残差4分木(RQT)に含まれてよく、このRQTは、PUに対応するTUに関するイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモードで符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する分解能(resolution)(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルに関する参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述することができる。
[0092]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上で論じられたように、RQT(TUの4分木構造とも呼ばれる)を使用して規定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブTUにさらに分割され得る。TUがこれ以上分割されないとき、そのTUはリーフTUと呼ばれ得る。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが一般に、リーフCUのすべてのTUに対する予測値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダ20は、イントラ予測モードを使用して各リーフTUに関する残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算することができる。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、PUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUに関する対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0093]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造と関連付けられ得る。すなわち、リーフCUは、そのリーフCUがTUにどのように区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般に、リーフCUに対応し、CU4分木のルートノードは一般に、ツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。一般に、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0094]ビデオシーケンスは通常、一連のピクチャを含む。本明細書で説明されるように、「ピクチャ」と「フレーム」は交換可能に使用され得る。すなわち、ビデオデータを含んでいるピクチャは、ビデオフレームまたは単に「フレーム」と呼ばれ得る。ピクチャグループ(GOP)は一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOPのヘッダ中、ピクチャの1つまたは複数のヘッダ中、または他のところに、そのGOPに含まれるピクチャの数を記述するシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスに関する符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定のサイズまたは可変のサイズを有してよく、指定されたコーディング規格に従ってサイズが異なり得る。
[0095]ある例として、HEVCは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズにおけるイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nという対称なPUサイズにおけるインター予測とをサポートする。2N×2Nのサイズを有するPUは、それが存在するCUと同じサイズであるので、分割されないCUを表す。言い換えると、2N×2NのPUは、そのCUと同じサイズである。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方の方向は区分されず、他方の方向は25%と75%とに区分される。CUのうちで25%パーティションに対応する部分は、「n」とそれに続く「Up」、「Down」、「Left」、または「Right」の表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PU(a 2Nx0.5N PU on top)、および下部の2N×1.5N PU(a 2Nx1.5N PU on bottom)へと水平に区分される2N×2N CUを指す。
[0096]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直方向の寸法(dimensions)および水平方向の寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために交換可能に使用され得る。一般に、16x16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、水平方向にNピクセルを有し、Nは、非負の整数値を表す。ブロック中のピクセルは、行および列に配置され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、ここで、Mは必ずしもNに等しいとは限らない。
[0097]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算することができる。PUは、空間的領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えてよく、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備えてよい。残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するために、TUを変換することができる。
[0098]変換係数を生成するための任意の変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減させることができる。たとえば、nビット値が、量子化中にmビット値へと切り捨てられてよく、nは、mより大きい。
[0099]量子化の後に、ビデオエンコーダ20は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成することができる。走査は、アレイの前部に(at the front of the array)より高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部に(at the back of the array)より低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。
[0100]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化されたベクトルを生成するために、量子化された変換係数を走査するために所定の走査順序を利用することができる。他の例では、ビデオエンコーダ20は、適応走査を実行することができる。量子化された変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20は、ビデオデータを復号する際のビデオデコーダ30による使用のために、符号化されたビデオデータと関連付けられたシンタックス要素をエントロピー符号化することもできる。
[0101]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびGOPベースのシンタックスデータのようなシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送ることができる。GOPシンタックスデータは、それぞれのGOP中のピクチャの数を記述することができ、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを示すことができる。
[0102]ビデオエンコーダ20および/またはビデオデコーダ30は、深度データをイントラピクチャ予測コーディングすることができる。加えて、本開示の例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、説明されるように、種々のモードのいずれかに従ってビデオデータの深度イントラ予測コーディングに起因する残差データの簡易コーディングを実行することができる。より具体的には、本開示の技法に従って構成されるビデオエンコーダ20および/またはビデオデコーダ30は、追加のパーティションベースの深度イントラ予測モードのために、たとえば3D−HEVCに対する既存の提案に従ったいくつかの深度イントラ予測モードのために使用されるような、簡易残差コーディングを利用することができる。加えて、本開示の技法に従って構成されるビデオエンコーダ20および/またはビデオデコーダ30は、種々の非パーティションベースのイントラ予測モードに従って、たとえば基本HEVC規格において提供されるイントラ予測モードに従って、深度データのイントラ予測に起因する残差データをコーディングするために簡易残差コーディングを利用することができる。
[0103]図2は、HEVCにおいて使用されるイントラ予測モードを示す図である。図2は一般に、HEVCにおけるイントラコーディングに利用可能な様々な方向性イントラ予測モードと関連付けられる予測方向を示す。現在のHEVC規格では、各予測ユニット(PU)のルーマ成分のイントラ予測のために、図2に示されるように、(2から34までインデックス付けされた)33個の角度予測モード(angular prediction modes)と、(1とインデックス付けされた)DCモードと、(0とインデックス付けされた)プレーナモードとのうちの選択された1つを有するイントラ予測方法が利用される。
[0104]プレーナモード(0とインデックス付けされた)によれば、ビデオデータのブロック、たとえばPU内のピクセルの各々に対する予測子の値を決定するために、いわゆる「平面」機能(function)を使用して予測が実行される。DCモード(1とインデックス付けされる)によれば、ブロック内のピクセルの各々に対する予測子の値を決定するために、ブロック内のピクセル値の平均を使用して予測が実行される。方向性予測モードによれば、(そのモードによって示される)特定の方向に沿った隣接するブロックの再構築されたピクセルに基づいて予測が実行される。一般に、図2に示されている矢印の尾部(tail end)は、値がそこから取り出される隣接するピクセルのうちの相対的な1つを表し、矢印の頭部(head)は、予測ブロックを形成するために取り出された値が伝播される方向を表す。
[0105]HEVCイントラ予測モードでは、ビデオエンコーダ20および/またはビデオデコーダ30は、たとえば、モード2から34に対するPUの隣接するサンプルを使用することによって、上で論じられた様々なモードを使用してPU中の各ピクセルのためのピクセル固有の予測子の値を生成する。ビデオエンコーダ20は、ブロックのピクセルのための実際の深度の値と予測子の値との差分に基づいてビデオブロックのための残差値を決定し、残差値をビデオデコーダ30に提供する。HEVC WD10によれば、ビデオエンコーダ20は、残差値を変換し、変換係数を量子化し、量子化された変換係数をエントロピー符号化することもできる。ビデオデコーダ30は(たとえば、エントロピー復号、逆量子化、および逆変換の後で)、残差値を予測子の値に加算することによって、ブロックのピクセルに関する再構築された値を決定する。HEVCイントラ予測モードに関するさらなる詳細が、HEVC WD10の8.4.2項において規定されている。
[0106]3D−HEVCがここでより詳細に説明される。VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding(JCT−3V)は、HEVCに基づいて3Dビデオ(3DV)規格を開発中であり、そのための規格化の取り組みの一部は、上で言及された、HEVCに基づくマルチビュービデオコーデック(MV−HEVC)と、HEVCに基づく3Dビデオコーディング(3D−HEVC)のための別の部分との規格化を含む。3D−HEVCでは、コーディングユニット(CU)/予測ユニット(PU)レベルにおけるコーディングツールを含む新たなコーディングツールが、テクスチャビューと深度ビューの両方のために含められ、サポートされ得る。現在、MPEGにおけるHEVCベースの3Dビデオコーディング(3D−HEVC)コーデックは、文書m22570およびm22571において提案された解決法に基づく。m22570の完全な引用は、Schwarz他、Description of 3D Video Coding Technology Proposal by Fraunhofer HHI(HEVC compatible configuration A)、MPEG Meeting ISO/IEC JTC1/SC29/WG11、文書MPEG11/M22570、ジュネーブ、スイス、2011年11月/12月である。m22571の完全な引用は、Schwarz他、Description of 3D Video Technology Proposal by Fraunhofer HHI(HEVC compatible configuration B)、MPEG Meeting−ISO/IEC JTC1/SC29/WG11、文書MPEG11/M22571、ジュネーブ、スイス、2011年11月/12月である。
[0107]3D−HEVCでは、各アクセスユニットは複数のビュー成分を含み、ビュー成分の各々が、固有のビューid、またはビュー順序インデックス、またはレイヤidを含む。ビュー成分は、上で説明されたように、テクスチャビュー成分ならびに深度ビュー成分を含む。テクスチャビュー成分は1つまたは複数のテクスチャスライスとしてコーディングされるが、深度ビュー成分は1つまたは複数の深度スライスとしてコーディングされる。
[0108]3Dビデオデータがマルチビュービデオプラス深度フォーマットを使用して表されるとき、テクスチャビュー成分は対応する深度ビュー成分と関連付けられ、深度ビュー成分はビデオエンコーダ20によって3Dビデオビットストリームにおいてコーディングされ多重化される。ビデオエンコーダ20および/またはビデオデコーダ30は、深度値を表すために、深度ビュー成分中の深度マップをグレースケールルーマサンプルとしてコーディングし、深度マップコーディングのために従来のイントラコーディング方法とインターコーディング方法とを使用することができる。深度マップは、鋭いエッジおよび一定のエリアによって特徴付けられる。したがって、深度マップサンプルの統計が異なることにより、2Dビデオコーデックに基づいて、ビデオエンコーダ20および/またはビデオデコーダ30による深度マップのコーディングのために、様々なコーディング方式が設計されてきた。
[0109]3D−HEVCでは、HEVCの場合と同じイントラ予測モードの定義が、深度成分のイントラ予測コーディングのために、たとえば深度イントラ予測のために利用され得る。加えて、3D−HEVCでは、たとえば図2を参照して上で説明されたように、深度成分をイントラ予測コーディングするために、深度モデリングモード(DMM)がHEVCイントラ予測モードと一緒に導入される。DMM方法は、HEVCにおいて指定されたイントラ予測モードの代替として組み込まれる。1ビットのフラグ、たとえばhevc_intra_flagが、DMMが適用されるか統一された(HEVC)イントラ予測が適用されるかを指定するために、各深度ブロック、たとえばPUのためにシグナリングされ得る。
[0110]深度マップにおける鋭いエッジのより良好な表現のために、3D−HEVCの現在の基準ソフトウェア(HTM9.0)は、深度マップのイントラコーディングのためのDMMの適用を可能にする。したがって、3D−HEVCでは、ビデオエンコーダ20および/またはビデオデコーダ30は、深度スライスのPUをコーディングするためにDMMを使用することができる。いくつかの例では、4つのDMMが深度データをイントラコーディングするために利用可能であり得る。すべての4つのモードにおいて、ビデオエンコーダ20および/またはビデオデコーダ30は、深度ブロック、たとえばPUを、DMMパターンによって規定されるような2つ以上の領域、たとえば2つの領域へと区分する。ビデオエンコーダ20および/またはビデオデコーダ30は次いで、各領域のための予測深度値を生成し、予測深度値は、隣接する深度サンプルの値に基づく、一定のまたは「DC」予測深度値と呼ばれ得る。
[0111]DMMパターンは、明示的にシグナリングされてよく、空間的に隣接する深度ブロックから予測されてよく、および/またはコロケートされたテクスチャブロックから予測されてよい。たとえば、第1のDMM(たとえば、DMMモード1)は、深度ブロックのパーティションの境界のスタートポイントおよび/またはエンドポイントをシグナリングすることを含み得る。第2のDMM(たとえば、DMMモード2)は、空間的に隣接する深度ブロックに基づいて、深度ブロックのパーティションの境界を予測することを含み得る。第3のDMMおよび第4のDMM(たとえば、DMMモード3およびDMMモード4)は、深度ブロックのコロケートされたテクスチャブロックに基づいて、深度ブロックのパーティションの境界を予測することを含み得る。
[0112]利用可能な4つのDMMにより、4つのDMM(たとえば、DMMモード1〜4)の各々と関連付けられるシグナリングがあり得る。たとえば、ビデオエンコーダ20は、レート歪み最適化に基づいて、深度PUをコーディングするためのDMMを選択することができる。ビデオエンコーダ20は、符号化された深度データとともに、符号化されたビットストリーム中で選択されたDMMの指示を与えることができる。ビデオデコーダ30は、深度データを復号するための適切なDMMを決定するために、ビットストリームからのその指示を解析する(parse)ことができる。いくつかの例では、選択されたDMMを示すために固定長コードが使用され得る。加えて、固定長コードはまた、予測オフセット(予測されるDC値と関連付けられる)が適用されるかどうかを示し得る。
[0113]Wedgelet区分と輪郭区分とを含む、DMMにおいて定義されている2つのタイプの区分モデルがある。図3は、ピクセルサンプルの8×8のブロックをコーディングする際に使用するためのWedgeletパーティションパターンの例を示す図である。図4は、ピクセルサンプルの8×8のブロックをコーディングする際に使用するための輪郭パーティションパターンの例を示す図である。
[0114]したがって、一例として、図3は、8×8のブロックに対するWedgeletパターンの例示を与える。Wedgeletパーティションでは、深度ブロック、たとえばPUは、直線によって2つの領域に区分され、図3に示されるようにスタートポイントは(Xs,Ys)に位置し、エンドポイントは(Xe,Ye)に位置し、2つの領域はP0およびP1と標識される。各パターンは、対応するサンプルが領域P0またはP1に属するかどうかを標識する、サイズuB×vBの2進数の配列からなり、uBおよびvBはそれぞれ、現在のPUの水平方向のサイズと垂直方向のサイズを表す。領域P0およびP1は、白い影付きサンプルによってそれぞれ図3において表されている。Wedgeletパターンは、符号化と復号の両方の最初に初期化される。
[0115]図4は、8×8ブロックのための輪郭パターンを示す。輪郭区分では、深度ブロックは、図4に示されるように、2つの不規則な領域に区分され得る。輪郭区分は、Wedgelet区分よりも柔軟であるが、明示的にシグナリングされるのが難しい。DMMモード4では、輪郭区分パターンは、コロケートされたテクスチャブロックの再構築されたルーマサンプルを使用して暗黙的に導出される。
[0116]図3および図4を参照すると、深度ブロック40および60内の各々の個々の正方形は、それぞれ、深度ブロック40および60のそれぞれの個々のピクセルを表す。正方形内の数値は、対応するピクセルが領域42(図3の例における値「0」)に属するか、領域44(図3の例における値「1」)に属するかを表す。また、図3において、ピクセルが領域42(白い正方形)に属するか、領域44(灰色の影付き正方形)に属するかを示すために陰影が使用される。
[0117]上で論じられたように、各パターン(すなわち、Wedgeletと輪郭の両方)は、対応するサンプル(すなわち、ピクセル)が領域P0に属するかP1に属するか(ただし、P0は図3中の領域42と図4中の領域62とに対応し、P1は図3中の領域44と図4中の領域64A、64Bとに対応する)を標識する、サイズuB×vBの2進数の配列によって定義されてよく、uBおよびvBはそれぞれ、現在のPUの水平方向のサイズおよび垂直方向のサイズを表す。図3および図4の例では、PUは、それぞれブロック40および60に対応する。ビデオエンコーダ20およびビデオデコーダ30などのビデオコーダは、コーディングの最初に、たとえば、符号化の最初または復号の最初に、Wedgeletパターンを初期化することができる。
[0118]図3の例に示されているように、Wedgeletパーティションの場合、深度ブロック40は、(Xs,Ys)に位置するスタートポイント48と(Xe,Ye)に位置するエンドポイント50とをもつ直線46によって、2つの領域、すなわち領域42と領域44とに区分される。図3の例では、スタートポイント48は点(8,0)として定義されてよく、エンドポイント50は点(0,8)として定義されてよい。
[0119]図4の例に示されているように、輪郭区分では、深度ブロック60のような深度ブロックは、2つの不規則な形状の領域に区分され得る。図4の例では、深度ブロック60は、輪郭区分を使用して、領域62と領域64A、64Bとに区分される。領域64A中のピクセルは領域64B中のピクセルに直接隣接しないが、領域64Aおよび64Bは、深度ブロック60のPUを予測する目的で1つの単一の領域を形成するように定義され得る。輪郭区分は、Wedgelet区分よりも柔軟であり得るが、シグナリングされることが相対的により困難であり得る。DMMモード4では、3D−HEVCの場合、輪郭区分パターンは、コロケートされたテクスチャブロックの再構築されたルーマサンプルを使用して暗黙的に導出される。
[0120]このようにして、下で説明される図1、図7、および図8のビデオエンコーダ20およびビデオデコーダ30のようなビデオコーダは、図3に示されるように、深度ブロック40のピクセルが(領域「P0」と呼ばれることもある)領域42に属するか、または(領域「P1」と呼ばれることもある)領域44に属するかを決定するために、スタートポイント48とエンドポイント50とによって定義されるような線46を使用することができる。同様に、いくつかの例では、ビデオコーダは、深度ブロック60のピクセルが(領域「P0」と呼ばれることもある)領域64Aに属するか、(領域「P1」と呼ばれることもある)領域64Bに属するかを決定するために、図4の線66、68を使用することができる。領域「P0」および「P1」は、DMMに従って区分された異なる領域に対するデフォルトの命名規則(naming conventions)であり、したがって、深度ブロック40の領域P0は、深度ブロック60の領域P0と同じ領域であるとは見なされない。
[0121]領域境界チェーンコーディングは、3D−HEVCにおける、深度ブロック、たとえば深度PUをコーディングするための、別のパーティションベースの深度イントラ予測モードである。領域境界チェーンコーディングモードは、深度スライスのイントラ予測ユニットをコーディングするためにHEVCイントラ予測モードおよびDMMモードと一緒に導入される。簡潔にするために、「領域境界チェーンコーディングモード」は、下で説明される文章、表、および図面では簡単にするために「チェーンコーディング」によって示される。
[0122]PUのチェーンコーディングは、チェーンの開始位置、チェーンコードの数、および各チェーンコードに対する方向インデックスとともにシグナリングされる。チェーンは、サンプルとその8連結サンプルの1つとの間の連結(a connection)である。図5は、チェーンコーディングプロセスにおいて定義される8つの可能なタイプのチェーンを示す。図6は、1つの深度予測ユニット(PU)パーティションパターンを伴う領域境界チェーンコーディングモードとチェーンコーディングにおけるコーディングされたチェーンとを示す。チェーンコーディングプロセスの一例が図5および図6に示されている。図5に示されるように、8つの異なるタイプのチェーンがあり、各々は、0から7にわたる方向インデックスを割り当てられる。チェーンは、サンプルとその8連結サンプルの1つとの間の連結である。
[0123]図6に示される任意のパーティションパターンをシグナリングするために、ビデオエンコーダは、パーティションパターンを識別し、ビットストリームにおいて以下の情報を符号化する。
1.チェーンが上側の境界(top boundary)から開始することをシグナリングするために1ビット「0」が符号化される。
2.上側の境界における開始位置「3」をシグナリングするために3ビット「011」が符号化される。
3.チェーンの総数を7としてシグナリングするために4ビット「0110」が符号化される
4.一連の連結されたチェーンインデックス「3、3、3、7、1、1、1」が符号化され、各チェーンインデックスが参照テーブルを使用してコードワードに変換される。
[0124]図5のブロック70に示されるように、8つの異なるタイプのチェーンがあり、各々が、0から7にわたる方向インデックスを割り当てられる。チェーン方向タイプは、ビデオコーダが深度ブロックのパーティションを決定するのを助け得る。方向インデックス(0...7)を直接コーディングする代わりに、方向インデックスをシグナリングするために差分コーディングが適用され得ることに留意されたい。
[0125]図6の例は、区分構造とパーティション間の境界とを示すチェーン76によって分離された第1のパーティション72と第2のパーティション74とを含む。(ビデオエンコーダ20などの)ビデオエンコーダは、PUのためのチェーン76を決定し、それを符号化されたビットストリーム中でシグナリングすることができるが、(ビデオデコーダ30などの)ビデオデコーダは、符号化されたビットストリームからのチェーン76を表すデータを解析することができる。
[0126]一般に、チェーン76は、開始位置と、チェーン中のリンクの数(たとえば、チェーンコードの数)の指示と、各チェーンコードに対する方向インデックスとを含む。図6の例に示された任意のパーティションパターンをシグナリングするために、ビデオエンコーダ20は、チェーン76が上側の境界から開始することを示すために1ビット(たとえば、0)を符号化することができる。ビデオエンコーダ20は、チェーン76が上側の境界の3番目の深度サンプルの後に開始することを示すために3ビット(たとえば、011)を符号化することができる。ビデオエンコーダ20は、チェーン76中に合計で7つのリンクがあることを示すために4ビット(たとえば、0110)を符号化することができる。ビデオエンコーダ20はまた、(たとえば、ブロック70に従って)各チェーンリンクの方向を示すために一連の連結されたチェーンインデックス(たとえば、3,3,3,7,1,1,1)を符号化することができる。いくつかの例では、ビデオエンコーダ20は、参照テーブルを使用して各インデックスをコードワードに変換することができる。ビデオデコーダ30のようなビデオデコーダは、ブロックの区分パターンを決定するために、上で説明されたシグナリングを解析することができる。ビデオデコーダ30は次いで、各パーティションのための深度値を復号することができる。
[0127]深度ブロック、たとえばPUへのHEVCイントラ予測モードの適用のために、たとえばHEVC WD10の8.4.2項において規定されるように、ブロックの隣接するサンプルを使用することによって、ピクセル固有の予測子の値が、ブロック中の各ピクセルに対して生成される。上で論じられた様々な3D−HEVC深度イントラモード、たとえばDMMおよびチェーンコーディングでは、ビデオエンコーダ20および/またはビデオデコーダ30は、深度ブロックの最大で2つの隣接するサンプルを、たとえば左または上の隣接する深度ブロックの再構築されたサンプルを使用することによって、深度ブロック、たとえばPU内の各パーティションに対する、パーティション固有のDC予測子を計算する。ビデオコーダによって利用され得る深度PUの各パーティションに対するパーティション固有のDC予測子を計算するための1つの例示的な技法は次の通りである。
[0128]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]は、次のように導出され得る。
[0129]3D−HEVCによれば、ビデオエンコーダ20および/またはビデオデコーダ30はまた、深度スライスのイントラPUをコーディングするために簡易深度コーディング(SDC)モードを適用することができ、SDCモードは、HEVCイントラ予測モード、DMMモード、およびチェーンコーディングモードと一緒に3D−HEVCに導入される。より具体的には、ビデオエンコーダ20および/またはビデオデコーダ30は、深度ブロックのための残差データをコーディングするためにSDCモードを適用することができる。3D−HEVCでは、ビデオエンコーダ20は、現在のPUがSDCモードを使用してコーディングされるかどうかを指定するために、各イントラ深度PUのための追加のフラグをシグナリングする。3D−HEVCに対する既存の提案では、SDCは2N×2N PUパーティションサイズのみに適用され、2N×2Nよりも小さいサイズのPUパーティションサイズには適用されない。加えて、3D−HEVCに対する既存の提案では、SDCは深度PUの2つのタイプの区分、すなわちDMMモード1(2つのパーティション)およびプレーナ(1つのパーティション、すなわち区分されない)のみに適用される。
[0130]SDCが使用されるとき、ビデオエンコーダ20は、深度ブロック中のすべてのサンプルのための個々の残差値を含まず、量子化された変換係数を生成しない。量子化された変換係数をコーディングする代わりに、SDCモードでは、ビデオエンコーダ20は、次のタイプの情報とともに深度ブロックを表す。
1.以下のものを含む、現在の深度ブロックのパーティションのタイプ。
a.DMMモード1(2つのパーティション)
b.プレーナ(1つのパーティション)
2.各パーティションに対して、(ピクセル領域の)単一の残差値がビットストリームにおいてシグナリングされる。
[0131]したがって、SDCでは、ビデオエンコーダ20は、各PUに対して1つだけの残差を符号化し、または、イントラコーディングされる深度CUのPUの各パーティションを符号化する。各PUまたはPUのパーティションに対して、各ピクセルに対する差分を符号化する代わりに、ビデオエンコーダ20は、元の信号のDCまたは代表値(たとえば、Averと示される、PUまたはパーティションの中のピクセルの平均値)と、現在のPUからの1つまたは複数の隣接するサンプルに基づいて生成される、Predと示される予測信号または予測子(たとえば、隣接するサンプルの平均値)との間の差分を決定し、PUまたはパーティションの中のすべてのピクセルに対して、DC残差としてこの差分を使用する。ビデオエンコーダ20は次いで、ビデオデコーダ30による受信または復号のために、PUまたはパーティションのためにこのDC残差値をシグナリングまたは符号化することができる。
[0132]3D−HEVCでは、2つのサブモードがSDCモード1およびSDCモード2を含むSDCにおいて定義され、それらは、プレーナのパーティションタイプおよびDMMモード1のパーティションタイプに対応する。SDCでは、上で言及されたように、ビデオエンコーダ20によって変換または量子化が適用されない。同様に、SDCにおいて、ビデオデコーダ30は、逆量子化または逆変換動作を適用しない。
[0133]深度値は、任意選択で、全体のビデオシーケンスを符号化する前に第1のイントラ期間内のフレームを分析することによってビデオエンコーダ20が構成し得る、深度参照テーブル(DLT)を使用してインデックスにマッピングされ得る。3D−HEVCに対する既存の提案では、有効な深度値のすべてが、昇順で並べ替えられ、インデックスの増大とともにDLTに挿入される。3D−HEVCに対する既存の提案によれば、DLTが使用される場合、DLT全体が、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)のようなパラメータセットにおいてビデオエンコーダ20によってビデオデコーダ30に送信され、復号されたインデックス差分値は、DLTに基づいてビデオデコーダ30によって深度値にマッピングし返される。DLTの使用により、さらなるコーディングの利点(gain)が認められる。
[0134]DLTは任意選択のコーディングツールである。HTM9.0によれば、ビデオエンコーダ20は、分析段階において元の深度マップ中に0からMAX_DEPTH_VALUE(たとえば、8ビット深度サンプルの場合は255)までの値の1/2よりも多くが現れる場合、DLTを使用しない。そうではない場合、ビデオコーダは、SPSまたはVPSにおいてDLTをコーディングする。DLTをコーディングするために、ビデオコーダは、指数ゴロムコード(Exp-Golomb code)によって有効深度値の数をコーディングする。次いで、ビデオコーダは、指数ゴロムコードによって各有効深度値をコーディングする。
[0135]DLTを生成するために、ビデオエンコーダ20は、符号化されるべき入力ビデオシーケンスから事前に定義された数のフレームを読み取ることができ、利用可能な深度マップ値のためにすべてのサンプルを走査する。このプロセスの間、ビデオエンコーダ20は、元の圧縮されていない深度マップに基づいて深度値を有効な深度値にマッピングする、マッピングテーブルを生成する。
[0136]深度参照テーブルIdx2Depth(.)、インデックス参照テーブルDepth2Idx(.)、深度マッピングテーブルM(.)、および有効深度値の数d
validは、深度マップD
tを分析する以下のアルゴリズムによって導出される。
[0137]インデックスIdxを深度値dにマッピングし返すことは、次のようなもの、すなわちd=Idx2Depth[Idx]である。深度値dからインデックスIdxへのマッピングは、次のようなもの、すなわちIdx=Depth2Idx[d]である。
[0138]上で説明されたように、SDCモードにおけるDC残差値のシグナリングのために、各パーティションに対して、または区分がない場合は深度ブロック全体に対して、ビデオエンコーダ20は、変換および量子化を伴わずに、符号化されたビットストリーム中でDC残差値をシグナリングする。DC残差値は、深度ブロックまたはそのパーティション内の深度ピクセル値のDC(代表)値(たとえば、平均値の場合Aver)と、DC予測子の値(Pred)との差分であり得る。残差は、DLTの使用法に応じて、2つの異なる方法を使用してビデオエンコーダ20によってシグナリングされ得ることに留意されたい。
1.DLTが使用されないとき、ビデオエンコーダ20は、DC残差値、たとえば、現在のPU形式における現在の深度ブロックまたはそのパーティションの代表値もしくはDC値(Aver)と、そのDC予測子の値(Pred)との差分(delta)を、直接送信し、またはビットストリームの中に符号化する。
2.DLTが使用されるとき、残差値、すなわち深度値の差分を直接シグナリングまたはコーディングする代わりに、ビデオエンコーダ20は、DLTに対するインデックスの差分を、すなわち、DLTにおける現在のパーティションの代表値(たとえば、Aver)のインデックスと予測子(Pred)のインデックスとの差分を、シグナリングまたはコーディングする。ビデオデコーダ30は、DLTに基づいて、復号されたインデックス差分とPredのインデックスとの合計を深度値にマッピングし返す。
[0139]いくつかの例では、現在のパーティションの代表値の値(たとえば、Aver)と予測子の値(Pred)がDLTに含まれていないとき、ビデオコーダは、値をインデックスIにマッピングすることができ、ここで、(Pred/Aver−DLT中のi番目のエントリーの値)の絶対値が最小値となる。
[0140]SDCに対する既存の提案には問題がある。たとえば、3D−HEVCに対する既存の提案によれば、SDCは、いくつかの深度イントラ予測モード、より具体的には、DMMモード1およびプレーナモードにしか適用されない。したがって、SDCの一部である簡易残差コーディングの利益は、DMMモード3、DMMモード4、チェーンコーディングモード、または他のHEVCイントラモード(プレーナモード以外)のような、他の深度イントラモードでは実現され得ない。そのような利益は、コーディング効率の向上を含み得る。
[0141]本開示は、SDCに対する既存の提案についての問題に対処することができる技法を説明する。たとえば、本開示は、3D−HEVCにおけるSDCに対して提案されている可能な深度イントラ予測モードのより広範なセットに適用可能であり得る、簡易残差コーディングのための技法を説明する。このようにして、より高いコーディング効率のような、簡易残差コーディングの利益が、より広範な深度イントラコーディングモードに従ってコーディングされた深度ブロックに対して実現され得る。
[0142]本開示のいくつかの例示的な技法によれば、少なくとも3つの深度イントラ予測モードのいずれかに従って深度ブロックをイントラ予測コーディングするとき、ビデオコーダは、SDCモードを実行し、簡易残差コーディングを適用することができる。ビデオコーダはしたがって、深度ブロックのための単一のDC残差値を、または深度ブロックのパーティションのためのそれぞれのDC残差値をコーディングすることができ、たとえば符号化または復号することができる。3つ以上の深度イントラ予測モードは、DMM1およびプレーナ以外の1つまたは複数の深度イントラ予測モードを含む。いくつかの例では、ビデオコーダは、残差値の変換と量子化(または逆量子化と逆変換)の両方をスキップする。いくつかの例では、追加の残差は生成されず、すなわち、HEVCに基づく3Dコーデックでは変換木(transform tree)が存在しない。
[0143]たとえば、本開示の技法に従って構成されるビデオコーダは、DMM3、DMM4、またはチェーンコーディングモードに従って深度ブロックを区分し、深度ブロックの2つのパーティションの各々のための2つのDC残差値を決定するためにSDCモードを実行することができる。そのような例における簡易残差コーディングでは、PUの各パーティションのための1つのDC残差値を、ビデオエンコーダ20は符号化し、ビデオデコーダ30は復号する。
[0144]いくつかの例では、本開示の技法に従って構成されるビデオコーダは、DCモードおよび方向モード2から34のような、非パーティションベースのHEVCイントラ予測モードの1つに従って、深度ブロックの各ピクセルのためのピクセル固有の予測子の値を決定することができる。そのようなHEVCイントラ予測モードによってコーディングされる深度ブロック、たとえばPUは1つのパーティションを有し、すなわち、PU内のすべてのピクセルが同じパーティションの中にある。そのような例における簡易残差コーディングでは、深度ブロックのための1つのDC残差値を、ビデオエンコーダ20は符号化し、ビデオデコーダ30は復号する。ビデオエンコーダ20は、深度ブロックの深度ピクセル値を表すDC深度値、たとえば深度ブロックの深度ピクセル値の平均と、ピクセル固有の予測子の値を表すDC値とに基づいて、DC残差値を決定することができる。ビデオデコーダ30は、各ピクセルに対して、DC残差値をピクセル固有の予測子の値と合計することによって、深度ブロックを再構築することができる。
[0145]DMMモードおよびチェーンコーディングモードのための簡易残差コーディングでは、ビデオエンコーダ20は、ビデオブロック、たとえばPUのための2つのDC残差値(各パーティションのための1つのDC残差値)しかシグナリングしなくてよい。元のHEVCイントラ予測モード(たとえば、DCモード、プレーナモード、および方向性モード)のための簡易残差コーディングのために、ビデオエンコーダは、全体のPUのために1つのDC残差値しかシグナリングしなくてよい。いくつかの例では、簡易残差コーディングが適用されるときでも、依然として量子化がDC残差値に適用され得る。
[0146]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、所与の深度ブロックを深度イントラ予測コーディングするときに、SDCモードを選択的に適用することができる。そのような例では、SDCモードが深度ブロックのために実行されるかどうかを示す1つまたは複数のシンタックス要素、たとえばフラグを、ビデオエンコーダ20はビットストリームの中に符号化することができ、ビデオデコーダ30はビットストリーム情報から復号することができる。ビデオエンコーダ20は、ブロックごとに、スライスごとに、ピクチャごとに、シーケンスごとに、または他のものを基礎として、SDCモードが深度ブロックのために実行されるかどうかを決定してシグナリングすることができる。例として、スライスヘッダ、ピクチャパラメータセット(PPS)、SPS、もしくはVPSのようなパラメータセット、または補助増強情報(SEI:supplemental enhancement information)メッセージの中の、(1つまたは複数の)シンタックス要素または他の情報を、ビデオエンコーダ20が符号化し、ビデオデコーダ30が復号することができる。SDCモードがブロックごとに選択的に適用される例では、1つまたは複数の)シンタックス要素、たとえばフラグ、または他の情報が、SDCモードが深度ブロックのために実行されるかどうかのそれぞれの指示に深度ブロックを関連付けるマップまたは他のデータ構造の中、たとえばスライスヘッダの中に含まれ得る。
[0147]いくつかの例では、ビデオコーダは、SDCモードが特定の深度ブロックのために実行されるかどうかを推測することができる。たとえば、ビデオコーダは、深度ブロックが、1つまたは複数の特定の深度イントラ予測モード、たとえば、パーティションベースの3D−HEVCイントラ予測モードの任意の1つまたは複数によってイントラコーディングされるときに、SDCモードを常に実行することができ、または、いくつかの深度イントラ予測モードに対してはSDCモードを決して実行しないことがある。いくつかの例では、ビデオコーダは、SDCモードが特定の深度ブロックのために実行されるかどうかを、サイズのようなブロックの特性に基づいて推測することができる。たとえば、ビデオコーダは、ブロック、たとえばPUが32×32未満であるときだけ、および/または、ブロック、たとえばPUのパーティションサイズが2N×2Nであるときだけ、SDCモードを実行することができる。
[0148]3D−HEVCに対する既存の提案では、DMM1、DMM3、DMM4、およびチェーンコーディングモードは、モード番号36、38、40、および42にそれぞれ対応する、デルタDCをシグナリングさせ得る。本開示の技法による簡易残差コーディングは、これらのモードには適用可能ではないことがある。そのような場合、簡易残差コーディングを示すために使用されるシンタックスは、それらのモードに対して存在しなくてもよい。代替的に、または追加で、そのようなモードは、規格に従って構成されたビデオコーダによって実行されないように、規格から除去されてもよい。
[0149]深度ブロックまたはそのパーティションの各ピクセルのための予測子の値は深度イントラ予測モードの少なくともいくつかに従って異なり得るが、ビデオコーダがSDCモードを実行し、現在の深度ブロック、たとえば深度PUのために簡易残差コーディングを使用するとき、ブロックまたはパーティション中の各ピクセルのための残差は、DC残差値によって指定されるように、同一であり得る。非パーティションベースの(たとえば、HEVC)イントラ予測モードに従ってコーディングされる深度ブロックに対して、ビデオコーダは、ピクセル固有の予測子の値、すなわちPredSample[x][y]を、基礎の規格(たとえば、HEVC)において規定されるように生成されるイントラ予測子に従って生成することができる。DMMモードとチェーンコーディングモードの1つに従ってコーディングされる深度ブロックに対して、ビデオコーダは、3D−HEVCにおいて規定されるように、パーティション固有のDC予測子、すなわちDCpred[i]を生成することができる。
[0150]DLTが使用されないとき、各ピクセル(x,y)に対して、ビデオエンコーダ20およびビデオデコーダ30は、本開示による簡易残差予測モード(ビデオデコーダ30)に従ったDC残差値に基づいて、DC残差値(ビデオエンコーダ20)を決定するために、または深度ブロックを再構築するために、3つの変数を使用することができる。具体的には、ビデオエンコーダ20およびビデオデコーダ30は、(1)PredSample[x][y]と、(2)パーティション固有のDC予測子、すなわちDCPred[i]と、ここでiはピクセルが属するパーティションに対するインデックスであり、(3)パーティション固有のDC残差、すなわちDCResi[i]とを利用することができる。たとえば、ビデオデコーダ30は、次のように、深度ブロックのための再構築されたピクセル値、すなわちRecSample[x][y]を計算することができる。
・RecSample[x][y]=PredSample[x][y]+DCResi[i]+DCPred[i]。パーティションベースでは、3D−HEVCの深度イントラコーディングモード、すなわちPredSample[x][y]が0に設定され得る。非パーティションベースでは、HEVCの深度イントラコーディングモード、すなわちDCPred[i]が0に設定され得る。
[0151]一般に、ビデオエンコーダ20は、深度ブロックを符号化するために使用される深度イントラ予測モードに基づいて、深度ブロックまたはそのパーティションのためのDC予測子の値を決定する。たとえば、パーティションベースのイントラ予測モードでは、ビデオデコーダ20は、1つまたは複数の再構築された隣接する深度ブロックの1つまたは複数のサンプルに基づいて、各パーティションのためのそれぞれのDC予測子の値を決定する。非パーティションベースのイントラ予測モードでは、ビデオエンコーダ20は、深度ブロックのためのピクセル固有の予測子の値のサブセット、たとえば深度ブロックの4つの角のおよび/または中央の予測子の値に基づいて、深度ブロックのためのDC予測子の値を決定する。ビデオエンコーダ20はまた、深度ブロックまたはパーティションのためのDC深度値、たとえば深度ピクセル値の平均を決定し、現在のブロックまたはパーティションのDC深度値と、ブロックまたはパーティションのためのDC予測子の値との差分として、深度ブロックまたはパーティションのためのDC残差値を決定する。ビデオエンコーダ20は、現在のブロックまたはパーティションのDC深度値と、ブロックまたはパーティションのためのDC予測子の値との差分として、深度ブロックまたはパーティションのためのDC残差値を決定する。
[0152]ビデオデコーダ30は、非パーティションベースのイントラ予測モードによってコーディングされる深度ブロックのためのピクセル固有の予測子の値、または、パーティションベースのイントラ予測モードによってコーディングされる深度ブロックのためのパーティション固有の予測子の値を決定することができる。いずれの場合でも、ビデオデコーダ30は、深度ブロックを再構築するために、予測子の値を(1つまたは複数の)DC残差値と合計する。
[0153]DLTが使用されるとき、ビデオデコーダ30は次のようにRecSample[x][y]を計算することができ、ここで、Index2DepthおよびDepth2Idxはそれぞれ、インデックス参照テーブルおよび深度参照テーブルである。
・非パーティションベースの(たとえば、HEVC)深度イントラ予測モードでは、
○ RecSample[x][y]=PredSample[x][y]+Idx2Depth[Depth2Idx[DCPred[i]]+DCResi[i]]−DCPred[i]
である。
・パーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードでは、
○ RecSample[x][y]=Idx2Depth[Depth2Idx[DCPred[i]]+DCResi[i]]
である。
[0154]したがって、ビデオエンコーダ20は、深度ブロックまたはパーティションのためのDC深度値のDLT中のインデックスと、深度ブロックまたはパーティションのためのDC予測子の値に関するDLT中のインデックスとの差分を、深度ブロックとそのパーティションのためのDC残差値として符号化することができる。ビデオデコーダ30は差分を復号する。ビデオデコーダ30はまた、深度ブロックのためのDC予測子の値を決定する。パーティションベースの深度イントラ予測コーディングモードに従って復号される深度ブロックに対して、ビデオデコーダ30は、上で説明されたように、たとえば深度ブロックに対して1つまたは複数の隣接するサンプルに基づいて、モードに従ってパーティションのためのそれぞれのDC予測子を決定する。非パーティションベースの深度イントラ予測コーディングモードに従って復号される深度ブロックに対して、ビデオデコーダ30は、イントラ予測モードに従って決定されるピクセル固有の予測子の値のサブセットに基づいて、深度ブロックのための単一のDC予測子を決定する。
[0155]いくつかの例では、非パーティションベースの各HEVCイントラ予測モードに対して、深度ブロック、たとえばPUのためのDC予測子DCPred[0]が、たとえば次のように、深度ブロックの予測ブロックの4つの角のピクセルの平均として生成され得る。wおよびhをそれぞれPUの幅および高さとし、DCPred[0]=(PredSample[0][0]+PredSample[0][w−1]+PredSample[h−1][0]+PredSample[h−1][w−1]+2)>>2である。いくつかの例では、非パーティションベースの各HEVCイントラ予測モードでは、現在のPUの予測ブロックのさらに少数のピクセル(たとえば、1つまたは2つのピクセル)が、DC値の予測子を計算するために利用され得る。いくつかの例では、PUの予測ブロックの中央のピクセルは、DCPred[0]として利用され得る。加えて、HEVCにおいて規定されるようなイントラ予測が本明細書で論じられるが、現在のPUの予測ブロックは、HEVCにおいて規定されるものに加えて種々の方法のいずれかで生成され得る。
[0156]いくつかの例では、DLTが使用されるパーティションベースのイントラ予測または非パーティションベースのイントラ予測のいずれかのために、ビデオデコーダ30は、DLTにおけるDC予測子の値に対するインデックスを決定し、DC予測子の値に対するインデックスと、ビットストリームから復号された差分との合計を決定する。ビデオデコーダ30はさらに、DC予測子の値と深度参照テーブル中の差分との合計と関連付けられる深度値を、深度値またはそのパーティションのためのDC深度値として識別する。非パーティションベースのイントラ予測の場合、ビデオデコーダ30はさらに、識別された深度値とDC予測子の値との差分を深度ブロックのためのDC残差値として決定し、深度ブロックの深度値を再構築するために、ピクセルのためのそれぞれの予測値を決定された差分と合計することができる。
[0157]本開示に従ったいくつかの例では、DMMモード1、DMMモード3、DMMモード4、チェーンコーディングモード、およびHEVCイントラ予測モードのための簡易残差コーディングのシグナリングは統合され得る。一般に、上で論じられたように、深度イントラ予測モードのいずれが深度ブロックをコーディングするために使用されるかということと、いくつかの場合には、SDCモードが深度ブロックのために実行されるかどうかとを示す情報を、ビデオエンコーダ20は符号化することができ、ビデオデコーダ30は復号することができる。いくつかの例では、ビデオコーダは、深度ブロックをコーディングするためにパーティションベースの深度イントラ予測モードが使用されるか非パーティションベースの深度イントラ予測モードが使用されるかを示す情報、たとえば、フラグまたは他のシンタックス要素をコーディングすることができる。
[0158]いくつかの例では、非パーティションベースのHEVCイントラ予測モードが、深度ブロック、たとえばPUのために使用されるかどうかを示す第1のシンタックス要素、たとえば1ビットのフラグを、ビデオコーダがコーディングすることができ、たとえば、ビデオエンコーダが符号化することができ、またはビデオデコーダが復号することができる。代替的に、または追加で、第1のシンタックス要素は、PUサイズが32×32よりも大きいときには必要とされないことがある。そのような例では、ビデオデコーダ30は、非パーティションベースのイントラ予測モードが深度ブロックを符号化するために使用されたと推測することができる。いくつかの例では、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードからある深度ブロックのために選択された深度イントラ予測モードが、非パーティションベースのHEVCイントラ予測モードであること、たとえば、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、パーティションベースのイントラ予測モード、たとえば複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示す。いくつかの例では、第1のシンタックス要素はhevc_intra_flagである。いくつかの例では、1に等しいhevc_intra_flagは、HEVCイントラ予測モードがコーディングユニットのために使用されることを意味し、0に等しいhevc_intra_flagは、追加の深度イントラ予測モードがコーディングユニットのために使用されることを意味する。いくつかの例では、第1のシンタックス要素は、イントラモード拡張構造に含まれる。いくつかの例では、第1のシンタックス要素は、depth_mode_parametersシンタックス構造に含まれる。
[0159]いくつかの例では、ビデオコーダは、SDCモードおよび簡易残差コーディングが、深度ブロック、たとえば深度PUのために使用されるかどうかを示す、第2のシンタックス要素、たとえば1ビットのフラグをコーディングすることができる。いくつかの例では、第2のシンタックス要素はsdc_flagである。いくつかの例では、1に等しいsdc_flagは、SDCモードがコーディングユニットのために使用されることを意味し、0に等しいsdc_flagは、SDCモードがコーディングユニットまたは予測ユニットのために使用されないことを意味する。いくつかの例では、第2のシンタックス要素は、イントラモード拡張構造に含まれる。いくつかの例では、第2のシンタックス要素は、depth_mode_parametersシンタックス構造に含まれる。
[0160]代替的に、または追加で、この第2のシンタックス要素は、PUパーティションサイズが2N×2Nであるときにだけ必要とされる。PUパーティションサイズが2N×2Nではない場合、ビデオデコーダ30は、SDCモードが実行されないと推測することができる。いくつかの例では、第1のシンタックス要素が、非パーティションベースのイントラ予測モードが深度ブロックを符号化するために使用されなかったことを示す(またはそのように推測される)場合、ビデオコーダは、DMMモード1、DMMモード3、DMMモード4、またはチェーンコーディングモードのいずれが深度ブロックをコーディングするために使用されるかを示す、第3のシンタックス要素をコーディングする。いくつかの例では、領域境界チェーンコーディングモードは、深度ブロックをコーディングするために使用されず、または使用不可能である。そのような例では、ビデオコーダは、第3のシンタックス要素をコーディングする必要はないことがあり、第1のシンタックス要素、たとえばhevc_intra_flagの0に等しい第1の値は、DMMモードが現在の深度ブロックをイントラコーディングするために使用されることを示す。いくつかの例では、領域境界チェーンコーディングモードが深度ブロックをコーディングするために使用されない、または使用不可能であるとき、第1のシンタックス要素の第2の値、たとえばhevc_intra_flagがコーディングされず、第1のシンタックス要素の第1の値は、DMMモードが現在の深度ブロックをイントラコーディングするために使用されることを示す。
[0161]本開示の技法によるいくつかの例では、ビデオコーダは、3D−HEVCに対する既存の提案においてSDCのために規定されるのと同じ方式で、深度ブロックまたはそのパーティションのためのDC残差値をシグナリングし、および/またはコーディングする。より具体的には、各パーティションに対して、DC残差値をシグナリングまたはコーディングするために、次のシンタックス要素がシグナリングまたはコーディングされ得る。
・DC残差値が0に等しいかどうかを示すシンタックス要素。
・DC残差値が正の整数か負の整数かを示すシンタックス要素。
○ このシンタックスは、DC残差値が0に等しくないときにだけ必要とされる。
・「DC残差値の絶対値」から1を引いたものを示すシンタックス要素。
○ このシンタックスは、DC残差値が0に等しくないときにだけ必要とされる。
[0162]いくつかの例では、本開示の技法による簡易残差コーディングは、2N×2NのパーティションサイズであるCUだけに適用される。いくつかの例では、簡易残差コーディングは、いくつかの深度イントラモードだけに適用される。
[0163]1つまたは複数の例に従って上で説明された本開示の技法の実装形態は、次の通りであり得る。3D−HEVC Draft Text 1に対する変更として、シンタックスおよびセマンティクスが示されており、3D−HEVC Draft Text 1への追加が下線付きの文章として表され、3D−HEVC Draft Text 1からの削除が取り消し線付きの文章として表されている。
深度モードパラメータシンタックス
一般的なコーディングユニットシンタックス
深度モードパラメータイントラセマンティクス
・
1に等しいhevc_intra_flag[x0][y0]は、0から34の範囲内のintraPredModeを有するイントラモードが現在の予測ユニットのために使用されることを指定する。0に等しいhevc_intra_flag[x0][y0]は、別のイントラモードが現在の予測ユニットのために使用されることを指定する。存在しないとき、hevc_intra_flag[x0][y0]は1に等しいと推測される。
・
1に等しいsdc_flag[x0][y0]は、現在の予測ユニットの各パーティションの残差が、sdc_residual_flag[x0][y0][i]、sdc_residual_sign_flag[x0][y0][i]、およびsdc_residual_abs_minus1[x0][y0][i]によってのみ表されることを指定する。0に等しいsdc_flag[x0][y0]は、さらなる残差が変換木の中に存在し得ることを指定する。存在しないとき、sdc_flag[x0][y0]は、0に等しいと推測される。
・
SdcFlag[x0][y0]は、sdc_flag[x0][y0]に等しく設定される。[Ed.(CY):この設定を避けるために、手動でSdcFlagからsdc_flagへの置換が行われ得る。]
・変数DmmFlag[x0][y0]は、下で規定されているように導出される。
・
代替的に、他のシンタックス要素とは独立にdepth_intra_modeをバイナリ化する代わりに、depth_intra_modeも、CUサイズおよびパーティションモードに応じてバイナリ化され得る。depth_intra_mode[x0][y0]のシンタックスおよびセマンティクスは、次のように代替的に定義され得る。
・変
数depthDmmRbcModeSetは、下で規定されるように導出される。
○
cLog2CbSizeが3に等しくPartMode[xC][yC]がPART_N×Nに等しい場合、depthDmmRbcModeSetは1に等しく設定される。
○
それ以外の場合(cLog2CbSizeが3に等しくない場合、またはPartMode[xC][yC]がPART_N×Nに等しくない場合)、depthDmmRbcModeSetは0に等しく設定される。
・
代替的に、簡易残差コーディングが適用されるモードは、新たな深度イントラモードとして扱われ、現在のシンタックス要素、たとえばdepth_intra_modeとともにシグナリングされる。このようにして、hevc_intra_flagおよびsdc_flagのような、追加のシンタックス要素を導入する必要はない。
復号プロセス
・H8.4.2 ルーマイントラ予測モードのための導出プロセス
○ このプロセスへの入力は以下の通りである。
・現在のピクチャの左上ルーマサンプルに対する現在のブロックの左上ルーマサンプルを指定するルーマ位置(xB,yB)
・現在のルーマ予測ブロックのサイズを指定する変数log2PbSize
○ 表H−4は、イントラ予測モードに関する値と関連する名前とを指定する。
○ 0..34と標識されたIntraPredMode[xB][yB]は、図8−1に示されるような予測の方向を表す。
・そうではなく、DepthIntraMode[xB][yB]がINTRA_DEP_DMM_WPREDTEXに等しい場合、IntraPredMode[xB][yB]はIntra_DepthPartition(37+dmm_dc_flag[xB][yB])に等しく設定される。
・そうではなく、DepthIntraMode[xB][yB]がINTRA_DEP_DMM_CPREDTEXに等しい場合、IntraPredMode[xB][yB]はIntra_DepthPartition(39+dmm_dc_flag[xB][yB])に等しく設定される。
・そうではなく、DepthIntraMode[xB][yB]がINTRA_DEP_CHAINに等しい場合、IntraPredMode[xB][yB]はIntra_Chain(41+edge_dc_flag[xB][yB])に等しく設定される。
・H8.4.4.2.1 一般的なイントラサンプル予測
○ 次の段落が項の最後に追加された8.4.4.2.1項の仕様が適用される。
○
変数bSamplePredFlagを1に設定する。
・intraPredModeがIntra_DepthPartition(35,36)に等しい場合、H8.4.4.2.7項において規定される対応するイントラ予測モードが、位置(xB0,yB0)、イントラ予測モードintraPredMode、サンプルアレイp、および変換ブロックサイズnTを入力として実施され、出力は予測サンプルアレイpredSamplesである。
・そうではなく、intraPredModeがIntra_DepthPartition(37,38)に等しい場合、H8.4.4.2.8項において規定される対応するイントラ予測モードが、位置(xB0,yB0)、イントラ予測モードintraPredMode、サンプルアレイp、変換ブロックサイズnT、
およびbSamplePredFlagを入力として実施され、出力は予測サンプルアレイpredSamplesである。
・そうではなく、intraPredModeがIntra_DepthPartition(39,40)に等しい場合、H8.4.4.2.9項において規定される対応するイントラ予測モードが、位置(xB0,yB0)、サンプルアレイp、変換ブロックサイズnT、
およびbSamplePredFlagとともに、イントラ予測モードintraPredModeを入力として実施され、出力は予測サンプルアレイpredSamplesである。
・そうではなく、intraPredModeがIntra_Chain(41,42)に等しい場合、H8.4.4.2.10項において規定される対応するイントラ予測モードが、位置(xB0,yB0)、サンプルアレイp、変換ブロックサイズnT、
およびbSamplePredFlagとともに、イントラ予測モードintraPredModeを入力として実施され、出力は予測サンプルアレイpredSamplesである。
・H8.4.4.3 深度値再構築プロセス
○ このプロセスへの入力は以下の通りである。
・現在のピクチャの左上ルーマサンプルに対する現在のブロックの左上ルーマサンプルを指定するルーマ位置(xB,yB)
・予測サイズを指定する変数nT
・x,y=0..nT−1である、予測サンプルpredSamples[x][y]
・現在の予測ブロックの予測モードを指定する変数intraPredMode
○ このプロセスの出力は以下の通りである。
・x,y=−1..2×nT−1である、再構築された深度値サンプルresSamples[x][y]
○
変数bSamplePredFlagを0に設定する。
○ intraPredModeに応じて、バイナリのセグメント化パターンを指定する、x,y=0..nT−1であるアレイwedgePattern[x][y]が次のように導出される。
・intraPredModeがIntra_DepthPartition(35)に等しい場合、次のことが当てはまる。
・wedgePattern[x][y]
=wedgePatternTable[Log2(nT)][wedge_full_tab_idx[xB][yB]]
・
そうではなく、intraPredModeがIntra_DepthPartition(37)に等しい場合、H8.4.4.2.8項が、位置(xB,yB)、イントラ予測モードintraPredMode、変換ブロックサイズnTおよびbSamplePredFlagを入力として実施され、出力はwedgeletパターンwedgePatternである。
・
そうではなく、intraPredModeがIntra_DepthPartition(39)に等しい場合、H8.4.4.2.9項が、位置(xB,yB)、イントラ予測モードintraPredMode、変換ブロックサイズnTおよびbSamplePredFlagを入力として実施され、出力はwedgeletパターンwedgePatternである。
・
そうではなく、intraPredModeがIntra_Chain(41)に等しい場合、H8.4.4.2.10項が、位置(xB,yB)、イントラ予測モードintraPredMode、変換ブロックサイズnTおよびbSamplePredFlagを入力として実施され、出力はエッジパターンwedgePatternである。
○ dlt_flag[nuh_layer_id]に応じて、再構築された深度値サンプルresSamples[x][y]が、以下で規定されるように導出される。
・dlt_flag[nuh_layer_id]が0に等しい場合、次のことが当てはまる。
・x,y=0..nT−1に対して、再構築された深度値サンプルresSamples[x][y]が、以下で規定されるように導出される。
・それ以外の場合(dlt_flag[nuh_layer_id]が1に等しい場合)、次のことが当てはまる。
・0から1の範囲にあるpに対して、変数dcPred[0]およびdcPred[1]が以下で規定されるように導出される。
○
そうではなく、(intraPredModeがIntra_DepthPartition(39)に等しい場合、またはintraPredModeがIntra_Chain(41)に等しい場合)、次のことが当てはまる。
・x,y=0..nT−1に対して、再構築された深度値サンプルresSamples[x][y]が、以下で規定されるように導出される。
・H8.4.4.2.8 Intra_DepthPartition(37,38)予測モードの仕様
○ このプロセスへの入力は以下の通りである。
・現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを指定するサンプル位置(xB,yB)
・イントラ予測モードを指定する変数intraPredMode
・x,y=−1..2×nT−1である、隣接するサンプルp[x][y]
・変換サイズを指定する変数nT
・予測サンプルを生成するかどうかを指定する変数bSamplePredFlag
○ このプロセスの出力は以下の通りである。
・x,y=0..nT−1である、予測サンプルpredSamples[x][y]
・
x,y=0..nT−1である、wedgeletパターンwedgePattern[x][y]
○ このイントラ予測モードは、intraPredModeが37または38に等しいときに実施される。
○ textureCompをViewIdxに等しいビュー順序インデックスと0に等しいDepthFlagとを伴うテクスチャビュー成分とする。変数texturePredModeは、textureCompのPredMode[xB][yB]に等しく設定される。変数textureIntraPredModeは、textureCompのIntraPredMode[xB][yB]に等しく設定される。[Ed.(GT)texturePredModeとtextureIntraPredModeとを明示的に記憶することを考える。]
○ x,y=0..nT−1である、予測サンプルpredSamples[x][y]の値は、次の順序付けられたステップによって導出される。
1.texturePredModeおよびtextureIntraPredModeに応じて、候補wedgeletのインデックスを指定するリストcandWedgeIndListが、以下で規定されるように導出される。
a.texturePredModeがMODE_INTRAに等しく、textureIntraPredModeが2から34の範囲の中にある場合、次のことが当てはまる。
b.それ以外の場合(texturePredModeがMODE_INTRAに等しくなく、またはtextureIntraPredModeが2から34の範囲の中にない場合)、次のことが当てはまる。
2.変数wedgeIdxは次のように導出される。
3.バイナリのパーティションパターンを指定する、x,y=0..nT−1である変数wedgePattern[x][y]が、次のように導出される。
4.
bSamplePredFlagが1に等しいとき、H8.4.4.2.11項において規定されるような深度パーティション値の導出および割り当てのプロセスが、隣接するサンプルp[x][y]、バイナリパターンwedgePattern[x][y]、変換サイズnT、(intraPredMode==Intra_DepthPartition(38))に等しく設定されたdcOffsetAvailFlag、0に等しく設定されたintraChainFlag、DC Offsets DcOffset[xB][yB][0]、およびDcOffset[xB][yB][1]を入力として実施され、出力がpredSamples[x][y]に割り当てられる。
・H8.4.4.2.9 Intra_DepthPartition(39,40)予測モードの仕様
○ このプロセスへの入力は以下の通りである。
・現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを指定するサンプル位置(xB,yB)
・イントラ予測モードを指定する変数intraPredMode
・x,y=−1..2×nT−1である、隣接するサンプルp[x][y]
・変換サイズを指定する変数nT
・
予測サンプルを生成するかどうかを指定する変数bSamplePredFlag
○ このプロセスの出力は以下の通りである。
・x,y=0..nT−1である、予測サンプルpredSamples[x][y]
・
x,y=0..nT−1である、wedgeletパターンwedgeletPattern[x][y]
○ このイントラモードモードは、intraPredModeが39または40に等しいときに実施される。
○ x,y=0..nT−1である、予測サンプルpredSamples[x][y]の値は、次の順序付けられたステップによって規定されるように導出される。
1.変数recTextPicが、ViewIdxに等しいビュー順序インデックスと0に等しいDepthFlagとを伴うビュー成分の再構築されたルーマピクチャサンプルのアレイに等しく設定される。
2.recTextPicのセグメント化のための閾値を指定する変数textThreshが、以下で規定されるように導出される。
a.変数sumTextPicValsが0に等しく設定される。
b.x=0..nT−1に対して、次のことが当てはまる。
i.y=0..nT−1に対して、次のことが当てはまる。
c.変数textThreshが(sumTextPicVals>>(2×log2(nT)))に等しく設定される。
3.バイナリのパーティションパターンを指定する、x,y=0..nT−1である変数wedgeletPattern[x][y]が、以下で規定されるように導出される。
a.x=0..nT−1に対して、次のことが当てはまる。
i.y=0..nT−1に対して、次のことが当てはまる。
4.
bSamplePredFlagが1に等しいとき、H8.4.4.2.11項において規定されるような深度パーティション値の導出および割り当てのプロセスが、隣接するサンプルp[x][y]、バイナリパターンwedgeletPattern[x][y]、変換サイズnT、(intraPredMode==Intra_DepthPartition(40))に等しく設定されたdcOffsetAvailFlag、0に等しく設定されたintraChainFlag、DC Offsets DcOffset[xB][yB][0]、およびDcOffset[xB][yB][1]を入力として実施され、出力がpredSamples[x][y]に割り当てられる。
・H8.4.4.2.10 Intra_Chain(41,42)予測モードの仕様
○ このプロセスへの入力は以下の通りである。
・現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを指定するサンプル位置(xB,yB)
・イントラ予測モードを指定する変数intraPredMode
・x,y=−1..2×nT−1である、隣接するサンプルp[x][y]
・変換サイズを指定する変数nT
・
予測サンプルを生成するかどうかを指定する変数bSamplePredFlag
○ このプロセスの出力は以下の通りである。
・x,y=0..nT−1である、予測サンプルpredSamples[x][y]
・
x,y=0..nT−1である、エッジパターンedgePattern[x][y]
○ このイントラ予測モードは、intraPredModeが43または44に等しいときに実施される。
○ x,y=0..nT−1である、予測サンプルpredSamples[x][y]の値は、次の順序付けられたステップにおいて規定されるように導出される。
1.現在の予測ユニット中のチェーンのスタートポイントが、edge_start_left_flag[xB][yB]およびedge_start_position[xB][yB]から導出される。
a.edge_start_left_flag[xB][yB]が1に等しい場合、スタートポイントは、ySがedge_start_position[xB][yB]に等しくなるs[0][yS]として設定される。
b.それ以外の場合、スタートポイントは、xSがedge_start_position[xB][yB]に等しくなるs[xS][0]として設定される。
2.エッジの数および各エッジの方向が、k=0..num_edge_codes_minus1[xB][yB]に対して、num_edge_codes_minus1[xB][yB]およびedge_code[xB][yB][k]から導出される。エッジの方向は、表H−3に示されるedge_codeから導出される。
3.各エッジを連結することによって生成される領域の境界は、x,y=0..nT−1である、予測サンプルpredSamples[x][y]を2つの領域に分離し、その2つの領域は、左上ピクセル(x0,y0)をカバーする領域rAおよび残りの領域をカバーする領域rBである。
a.x,y=0..nT−1に対して、バイナリパターンedgePattern[x][y]が次のように導出される。
i.(x,y)がrAによってカバーされる場合、edgePattern[x][y]=0である。
ii.それ以外の場合、edgePattern[x][y]=1である。
4.
bSamplePredFlagが1に等しい場合、H8.4.4.2.11項において規定されるような深度パーティション値の導出および割り当てのプロセスが、隣接するサンプルp[x][y]、バイナリパターンedgePattern[x][y]、変換サイズnT、(intraPredMode==Intra_DepthPartition(44))に等しく設定されたdcOffsetAvailFlag、1に等しく設定されたintraChainFlag、DC offsets DcOffset[xB][yB][0]、およびDcOffset[xB][yB][1]を入力として実施され、出力がpredSamples[x][y]に割り当てられる。
[0164]いくつかの例では、ビデオコーダは、本開示の技法に従ってシグナリングされるシンタックス要素をコーディングするために、CABACエントロピーコーディングプロセスを使用することができる。たとえば、ビデオコーダは、深度ブロックをコーディングするために非パーティションベースの(HEVC)深度イントラ予測モードが使用されるか、またはパーティションベースの深度イントラ予測モードが使用されるかを示す第1のシンタックス要素、たとえばhevc_intra_flagをコーディングするために、CABACプロセスを使用することができる。ビデオコーダはまた、深度ブロックをコーディングするためにSDCモードが使用されるかどうかを示す第2のシンタックス要素、たとえばsdc_flagをコーディングするために、CABACプロセスを使用することができる。
[0165]いくつかの例では、次のように、ビデオコーダは、現在の深度ブロック、たとえば深度CU/PUのための、第1のシンタックス要素および第2のシンタックス要素、たとえばhevc_intra_flagおよびsdc_flagのCABACコーディングにおいて使用されるコンテキストインデックスを決定し、nbLeftおよびnbAboveはそれぞれ、現在のCU/PUの左側および上側の隣接するブロックである。
・hevc_intra_flagのコンテキストインデックスは次のように計算される。
○ nbLeftのhevc_intra_flag+nbAboveのhevc_intra_flag
・sdc_flagのコンテキストインデックスは次のように計算される。
○ nbLeftのsdc_flag+nbAboveのsdc_flag
[0166]コンテキストインデックス値は0、1、または2であり得る。したがって、いくつかの例では、hevc_intra_flagとsdc_flagの両方に対してそれぞれ、3つのコンテキストが使用される。いくつかの例では、各コンテキストに対して、ビデオコーダは、0である確率と1である確率を0.5に等しくなるように初期化し、これは等確率状態(equal probability state)である。等確率状態は、154に等しいコンテキスト変数の初期化のための初期値に対応し、これはHEVC規格では変数initValueによって表される。しかしながら、両方のフラグに対して、1という値が0という値よりもはるかに高い確率で発生することがある。したがって、hevc_intra_flagまたはsdc_flagのいずれかに対して、等確率分布は真の確率分布(true probability distribution)とよく一致しないことがあるので、フラグをコーディングするためにビデオコーダにより消費されるビットを増加させる。
[0167]その結果、本開示の技法によるいくつかの例では、ビデオコーダ、たとえばビデオエンコーダ20および/またはビデオデコーダ30は、イントラSDCシグナリングにおいて使用されるシンタックス要素、たとえばhevc_intra_flagおよび/またはsdc_flagのCABACコーディングのための確率状態を不等確率状態(non-equal probability state)へと初期化するように構成される。たとえば、ビデオコーダは、hevc_intra_flagをCABACコーディングするための確率状態を不等確率状態へと初期化するように構成され得る。いくつかの例では、hevc_intra_flagとsdc_flagの両方に対して、異なる初期確率が提案されている。下で説明される例示的な技法では、変数initValueは、HEVC規格において開示されるのと同じ方法でコンテキスト変数の初期化プロセスにおいて使用され、初期化された確率状態はHEVC規格において開示されるものと同じ方式で更新される。
[0168]いくつかの例では、ビデオコーダは、現在の深度ブロックの隣接するブロックのためのそれぞれのフラグの値を参照することによって、現在の深度ブロック、たとえばPUのための、hevc_intra_flagおよび/またはsdc_flagなどのシンタックス要素をコーディングするための、初期確率状態を決定する。いくつかの例では、3つの初期化された確率状態は、現在のブロックのためのフラグ(たとえば、hevc_intra_flagおよび/またはsdc_flag)に対して提供され、(1)左側の隣接するブロックと上側の隣接するブロックの両方に対するフラグの値が0であったこと、(2)1つの隣接するブロック(左側の隣接するブロックまたは上側の隣接するブロックのいずれか)に対するフラグの値が0であったこと、および(3)左側の隣接するブロックと上側の隣接するブロックの両方に対するフラグの値が1であったことという条件の1つと関連付けられる初期化された確率状態の各々である。ビデオコーダは、上で列挙された3つの場合の各々に対して、初期化された確率状態を相応に更新することができる。
[0169]加えて、hevc_intra_flagおよび/またはsdc_flagに対して、ビデオコーダは、異なるスライスタイプ、たとえばBスライス、Pスライス、またはIスライスに対するinitValue変数に対して異なる値を選択することができる。言い換えると、ビデオコーダは、現在の深度ブロックを含むスライスのスライスタイプ、たとえば現在のPUと関連付けられるスライスタイプを決定し、決定されたスライスタイプに基づいて、複数の確率状態からhevc_intra_flagおよび/またはsdc_flagの少なくとも1つを復号するための初期確率状態を選択することができる。いくつかの例では、ビデオコーダは、異なるスライスタイプに対するhevc_intra_flagのために、initValue変数の異なる値を選択する。
[0170]異なるコンテキストインデックスおよびスライスタイプに対するhevc_intra_flagをコーディングするためのinitValue変数の例示的な値が、下の表1において示されている。ビデオコーダは、上で論じられたように、隣接するブロックに対するhevc_intra_flagの値に基づいて、現在の深度ブロックに対するhevc_intra_flagをコーディングするためのコンテキストインデックス値(0、1、または2)を決定することができる。同様に、異なるコンテキストインデックスおよびスライスタイプに対するsdc_flagをコーディングするためのinitValue変数の例示的な値が、下の表2において示されている。ビデオコーダは、上で論じられたように、隣接するブロックに対するsdc_flagの値に基づいて、現在の深度ブロックに対するsdc_flagをコーディングするためのコンテキストインデックス値(0、1、または2)を決定することができる。
[0171]いくつかの例では、ビデオコーダは、現在の予測ユニットの左側の隣接するブロックまたは上側の隣接するブロックに対するhevc_intra_flagの値とは無関係に、hevc_intra_flagのCABACコーディングのための1つの初期化された確率状態だけを使用して更新する。言い換えると、ビデオコーダは、現在の深度ブロックの任意の隣接する深度ブロックに対するhevc_intra_flagの値を参照することなく、現在の深度ブロックに対するhevc_intra_flagをコーディングするための初期確率状態を設定することができる。そのような例では、ビデオコーダはそれでも、現在の深度ブロックを含むスライスのスライスタイプを決定し、決定されたスライスタイプに基づいて、複数の確率状態からhevc_intra_flagをコーディングするための初期確率状態を選択することができる。異なるスライスタイプに対するhevc_intra_flagをコーディングするためのinitValue変数の例示的な値が、下の表3および表4において示されている。
[0172]いくつかの例では、ビデオコーダは、現在の予測ユニットの左側の隣接するブロックまたは上側の隣接するブロックに対するsdc_flagの値とは無関係に、sdc_flagのCABACコーディングのための1つの初期化された確率状態だけを使用して更新する。言い換えると、ビデオコーダは、現在の深度ブロックの任意の隣接する深度ブロックに対するsdc_flagの値を参照することなく、現在の深度ブロックに対するsdc_flagをコーディングするための初期確率状態を設定することができる。そのような例では、ビデオコーダはそれでも、現在の深度ブロックを含むスライスのスライスタイプを決定し、決定されたスライスタイプに基づいて、複数の確率状態からsdc_flagをコーディングするための初期確率状態を選択することができる。異なるスライスタイプに対するsdc_flagをコーディングするためのinitValue変数の例示的な値が、下の表5において示されている。
[0173]いくつかの例では、ビデオコーダは、現在の予測ユニットの左側の隣接するブロックまたは上側の隣接するブロックに対するhevc_intra_flagまたはsdc_flagの値とは無関係に、hevc_intra_flagとsdc_flagの各々のCABACコーディングのための1つの初期化された確率状態だけを使用して更新する。言い換えると、ビデオコーダは、現在の深度ブロックの任意の隣接する深度ブロックに対するhevc_intra_flagおよびsdc_flagの値を参照することなく、現在の深度ブロックに対するhevc_intra_flagとsdc_flagの両方をコーディングするための初期確率状態を設定することができる。
[0174]たとえば、本開示に従ってビデオデコーダ30によって実装され得るような、復号プロセスに対する本開示の技法の1つまたは複数の例示的な実装形態が、下で説明される。本開示のいくつかの態様は、ビデオデコーダ30が実施し得る復号プロセスのCABAC解析プロセスを変更する。本開示の態様によって追加されるCABAC解析プロセスの新しい部分は下線によって区別され、本開示の態様によって削除されるCABAC解析プロセスの部分は取り消し線付きの文章によって印を付けられる。本明細書で説明される変更は、3D−HEVC Draft Text 2に対するものである。
[0175]上で論じられたように、いくつかの例では、ビデオデコーダのようなビデオコーダは、異なるスライスタイプのためのCABACプロセスを使用して、また、隣接するブロックのコンテキストに基づいて、hevc_intra_flagとsdc_flagとをコーディングするために、異なる初期確率状態を選択する。1つの例示的なCABAC解析プロセスでは、3つの初期化された値(初期化確率状態を導出するために使用する)が、各スライスタイプ(Bスライスと、Pスライスと、Iスライスとを含む)のためのhevc_intra_flag/sdc_flagのためにそれぞれ与えられる。この例によれば、下の表H−24およびH−25において規定されるように、全体で9個の初期化された値が、hevc_intra_flag/sdc_flagのために与えられる。加えて、表H−10は、表H−24/H−25の中のどの初期化された値をビデオデコーダが各スライスタイプのために使用するかの記述であり、ここで、0、1、および2に等しいinitTypeが、Bスライス、Pスライス、およびIスライスにそれぞれ対応する。たとえば、ビデオデコーダは、Pスライスのための表H−24/H−25において3〜5に等しいctxIdxを伴う初期化された値を使用する。ctxIdxは、所与のシンタックス要素/変数のために使用されるあるコンテキストモデルに対するインデックスであることに留意されたい。さらに、下の表H−22およびH−23は、一緒に検討されると、表H−10において記述されるどの初期化された値をビデオデコーダが(すべてのスライスタイプに対する)様々な場合において使用するかを指定する。たとえば、Pスライスの場合、表H−10は、3〜5に等しいctxIdxがPスライスのために使用されることを指定する。そのような例では、iに等しいctxIncは、表H−24/H−25中の3+iに等しいctxIdxがPスライス中の深度ブロックをコーディングするために使用されることを意味する。
[0176]通常のCABACコーディングでは、隣接するブロックに依存して、または依存することなく、シンタックス要素が(たとえば、ビデオデコーダ30および/またはビデオエンコーダ20によって)コーディングされ得る。コンテキスト変数のctxIdxが隣接するブロックとは無関係である場合、この変数のバイナリ化は下の表H−22において記述される。それ以外の場合(すなわち、コンテキスト変数のctxIdxが隣接するブロックに依存する場合)、コンテキスト変数のctxIncは下の表H−23において記述される。したがって、各コンテキスト変数のコンテキストモデルとは異なるインデックスであるctxIncは、表H−22または表H−23のいずれかにおいて記述されなければならないが、所与のシンタックス要素に対しては、どちらの表でも記述されない。いくつかの例では、上で説明されたように、hevc_intra_flagおよび/またはsdc_flagのctxIdxは、隣接するブロックに依存する。そのような例では、hevc_intra_flagおよび/またはsdc_flagのctxIncは表H−23において記述される。
H.9.3 スライスセグメントデータのためのCABAC解析プロセス
...
H.9.3.2.2 コンテキスト変数のための初期化プロセス
...
...
H.9.3.4.2.1 全般
9.3.4.2.1項における仕様が、以下の修正とともに適用される。表H−22が、表9−37の終わりに付加される。
H.9.3.4.2.2 左側および上側のシンタックス要素を使用したctxIncの導出プロセス
9.3.4.2.2項における仕様が、以下の修正とともに適用される。表H−23が、表9−38の終わりに付加される。
[0177]上で論じられたように、いくつかの例では、ビデオデコーダのようなビデオコーダは、異なるスライスタイプのためのCABACプロセスを使用して、しかし、隣接するブロックのコンテキストを考慮せずに、hevc_intra_flagをコーディングするために、異なる初期確率状態を選択する。そのような例は、hevc_intra_flagをコーディングするために、しかし、隣接するブロックのコンテキストに依存せずに、異なるスライスタイプに対して不等の確率を提供することができる。そのような例では、各スライスタイプのためのhevc_intra_flagのCABACコーディングのために、1つだけの初期化された値(初期化された確率状態を導出するために使用される)が、提供され更新される。したがって、表H−25において、3つの初期化された値(Bスライスと、Pスライスと、Iスライスとを含む各スライスタイプに対して1つ)が提供され、表H−10もそれに応じて修正される。一方、hevc_intra_flagのctxIdxは常に0であり、隣接するブロックとは無関係である。したがって、そのような例示的な実装形態によれば、hevc_intra_flagのctxIncは表H−23から除去され、表H−22に追加される。
[0178]この例示的な実装形態のための3D−HEVC Draft Text 2に対する変更が、以前の例示的な実装形態に対する変更として示されており、以前の実装形態では、hevc_intra_flagとsdc_flagの両方のための初期確率状態が、隣接するブロックのコンテキストに基づいて決定される。追加は下線によって区別され、削除される部分は下の取り消し線付きの文章として印が付けられる。
H.9.3 スライスセグメントデータのためのCABAC解析プロセス
...
H.9.3.2.2 コンテキスト変数のための初期化プロセス
...
...
[0179]代替的に、等確率状態は、hevc_intra_flagのための初期化確率状態として使用されてよく、表H−25は、次のように設計される。
H.9.3.4.2.1 全般
9.3.4.2.1項における仕様が、以下の修正とともに適用される。
表H−22が、表9−37の終わりに付加される。
H.9.3.4.2.2 左側および上側のシンタックス要素を使用したctxIncの導出プロセス
9.3.4.2.2項における仕様が、以下の修正とともに適用される。
− 表H−23が、表9−38の終わりに付加される。
[0180]上で論じられたように、いくつかの例では、ビデオデコーダのようなビデオコーダは、異なるスライスタイプのためのCABACプロセスを使用して、しかし、隣接するブロックのコンテキストを考慮せずに、sdc_flagをコーディングするために、異なる初期確率状態を選択する。そのような例は、sdc_flagをコーディングするために、しかし、隣接するブロックのコンテキストに依存せずに、異なるスライスタイプに対して不等の確率を提供することができる。そのような例では、各スライスタイプのためのsdc_flagのCABACコーディングのために、1つだけの初期化された値(初期化された確率状態を導出するために使用される)が、提供され更新される。したがって、この例示的な実装形態によれば、表H−24において、3つの初期化された値(Bスライスと、Pスライスと、Iスライスとを含む各スライスタイプに対して1つ)が提供され、表H−10もそれに応じて修正される。一方、sdc_flagのctxIdxは常に0であり、隣接するブロックとは無関係である。したがって、そのような例示的な実装形態によれば、sdc_flagのctxIncは表H−23から除去され、表H−22に追加される。
[0181]この例示的な実装形態のための3D−HEVC Draft Text 2に対する変更が、第1の例示的な実装形態に対する変更として示されており、以前の実装形態では、hevc_intra_flagとsdc_flagの両方のための初期確率状態が、隣接するブロックのコンテキストに基づいて決定される。追加は下線によって区別され、削除される部分は下の取り消し線付きの文章として印が付けられる。
H.9.3 スライスセグメントデータのためのCABAC解析プロセス
...
H.9.3.2.2 コンテキスト変数のための初期化プロセス
...
[0182]
いくつかの例では、等確率状態は、sdc_flagのための初期化確率状態として使用され、表H−24は、次のように設計される。
[0183]H.9.3.4.2.1 全般
9.3.4.2.1項における仕様が、以下の修正とともに適用される。
表H−22が、表9−37の終わりに付加される。
H.9.3.4.2.2 左側および上側のシンタックス要素を使用したctxIncの導出プロセス
9.3.4.2.2項における仕様が、以下の修正とともに適用される。
− 表H−23が、表9−38の終わりに付加される。
[0184]本開示の技法のいくつかの例では、ビデオエンコーダ、たとえばビデオエンコーダ20は、符号化されたビデオビットストリームにおいて符号化すべきDC残差値の識別のために、ビュー合成最適化(VSO:view synthesis optimization)プロセスを使用するように構成され得る。そのような例では、ビデオエンコーダは、SDCモードによって符号化されるPU内の各パーティションに対して、VSOプロセスを通じて候補値のセットから探索することによって、パーティションのDC残差値を決定するように構成され得る。VSOに関して、深度データの有損失コーディング(lossy coding)が合成された中間ビューにおいて歪みを引き起こすが、深度データによって与えられる幾何学的情報はレンダリングプロセスにおいて間接的に利用されるだけであり、深度マップ自体は閲覧者には見えない。深度コーディングの効率は、これらの特性を考慮することによって、VSOプロセスを使用して改善され得る。VSOプロセスによれば、合成されたビューの歪みおよび深度マップの歪みの加重平均(a weighted average)が得られ得るように、深度マップのためのモード決定プロセスに対する歪みの測定値が修正され得る。合成されたビューの歪みの測定値を得るために、2つの異なる尺度(metrics)がレート歪み最適化(RDO:rate distortion optimization)において適用される。
[0185]第1の尺度(metric)は、合成ビュー歪み変化(SVDC:synthesized view distortion change)である。SVDCの計算は、符号化プロセスにおけるレンダリング機能の使用を必要とする。計算の複雑さは歪みの計算において重要な要因であるので、深度の歪みによって影響を受ける合成されたビューの部分の最小限の再レンダリングを可能にする、レンダラモデルとも呼ばれる方法が利用されている。このため、サブサンプルの精密なワーピング(sub-sample accurate warping)、穴埋め(hole filling)、およびビューの混合(view blending)のような、大半のレンダリング手法によって共有される基本機能をサポートする特別なレンダラが、ビデオエンコーダ、たとえばビデオエンコーダ20に含まれる。第2の尺度は、レンダリングを伴わないモデルベースの合成されたビューの歪みの推定であり、これは、水平方向へのテクスチャビューの微分の絶対値から導出される係数によって深度の歪みを重み付けることによって、合成されたビューの歪みに対して導出される推定であり得る。ビュー合成最適化のさらなる詳細が、3D−HEVC Test Model 5において見出され得る。
[0186]本明細書で説明されるように、ビデオエンコーダ、たとえばビデオエンコーダ20は、深度ブロックのための少なくとも1つのDC残差値、たとえばブロックのための単一のDC残差値、または、深度ブロックの複数のパーティションの各々のためのDC残差値を決定するために、SDCモードを適用するように構成され得る。いくつかの例では、ビデオエンコーダはさらに、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別するように構成され得る。そのような例では、ビデオエンコーダは、候補DC残差値のセットの各々にVSOプロセスを適用し、VSOプロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択する。ビデオエンコーダはさらに、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化するように構成される。すなわち、ビデオエンコーダは、コーディングユニット(CU)(またはCUの一部分)のための残差ブロックを表す量子化された変換係数を含む変換ユニットの代わりに、CUのすべてまたは一部分のための選択されたDC残差値の値を符号化することができる。ビデオコーダは、DMMモード、最大で32×32のCUサイズに対するHEVCイントラ予測モード、および最大で64×64のCUサイズに対するHEVC方式イントラ予測モード(HEVC fashion Intra prediction modes)のうちの1つに属する任意のイントラモードのために、この例示的な技法を適用するように構成され得る。
[0187]たとえば、DCPred[i]をパーティションiのパーティション固有のDC予測子とし、DCOrig[i]をパーティションiの元のDCとする。そのような例では、DLTテーブルが使用されないとき、DCResi[i]=DCOrig[i]−DCPred[i]とし、i=0,1である。パーティションiのDC残差は、たとえば、ビデオエンコーダ20によって、VSOプロセスを通じて[DCResi[i]−Offset1,DCResi[i]+Offset2]の中の複数の、たとえばすべての候補値を探索することによって、決定される。ビデオエンコーダは、VSOプロセスに従って計算されたコストが最小の候補値を、DC残差として選択することができる。Offset1およびOffset2は非負の整数値であってよく、DC残差の探索範囲を調整するために選択され得る。一例では、Offset1およびOffset2はともに2に設定される。
[0188]ビデオエンコーダがDLTテーブルを使用するとき、Depth2Idx、DCResi[i]=Depth2Idx[DCOrig[i]]−Depth2Idx[DCPred[i]]であり、i=0,1である。そのような例では、パーティションiのDC残差は、たとえば、ビデオエンコーダ20によって、VSOプロセスを通じて[DCResi[i]−Offset1,DCResi[i]+Offset2]の中の複数の、たとえばすべての候補値を探索することによって、決定される。ビデオエンコーダは、VSOプロセスにおいて計算されたコストが最小の候補値を、深度ブロックのためのDC残差として選択することができる。Offset1およびOffset2は非負の整数値であってよく、これらはDC残差値の探索範囲を調整するために選択され得る。一例では、Offset1およびOffset2はともに2に設定される。
[0189]図7は、本開示の技法を実装するように構成され得る例示的なビデオエンコーダ20を示すブロック図である。図7は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコーディング、より具体的には3D−HEVCのコンテキストにおいてビデオエンコーダ20を説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
[0190]図7の例では、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化処理ユニット106と、逆量子化処理ユニット108と、逆変換処理ユニット110と、再構築ユニット112と、フィルタユニット114と、参照ピクチャメモリ116と、エントロピー符号化ユニット118と、ビデオデータメモリ128と、パーティションユニット130とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定(ME)ユニット122と動き補償(MC)ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0191]ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオデータメモリ128は、ビデオエンコーダ20のコンポーネントによって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ128に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。参照ピクチャメモリ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ128および参照ピクチャメモリ116は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ128および参照ピクチャメモリ116は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ128は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであってよく、またはそれらのコンポーネントに対してオフチップであってもよい。
[0192]パーティションユニット130は、ビデオデータメモリ128からビデオデータを受け取り、ビデオデータ内のピクチャを、最大コーディングユニット(LCU)とも呼ばれるコーディングツリーブロック(CTB)を含むサブユニット、たとえば、スライス、タイル、およびビデオブロックに区分することができ、LCUはさらに、コーディングユニット(CU)とも呼ばれるコーディングツリーユニット(CTU)に区分され得る。ビデオエンコーダ20は、ビデオデータのピクチャのスライス中の各CTUを符号化することができる。CTUの各々は、等しいサイズのルーマコーディングツリーブロック(CTB)およびピクチャの対応するCTBと関連付けられ得る。CTUを符号化することの一部として、パーティションユニット130は、CTUのCTBを徐々により小さいブロックに分割するために4分木区分を実行することができる。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、パーティションユニット124は、CTUと関連付けられたCTBを4つの等しいサイズのサブブロックに区分することができ、サブブロックの1つまたは複数を4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
[0193]ビデオエンコーダ20は、CUの符号化された表現(すなわち、コーディングされたCU)を生成するためにCTUのCUを符号化することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間で、CUと関連付けられたコーディングブロックを区分することができる。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックと関連付けられ得る。
[0194]ビデオエンコーダ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の非長方形のパーティションをサポートする。
[0195]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUのための予測データを生成することができる。PUの予測データは、PUの予測サンプルブロックと、PUに関する動き情報とを含み得る。インター予測処理ユニット120は、PUがIスライス中にあるか、Pスライス中にあるか、またはBスライス中にあるかに応じて、CUのPUに対して異なる動作を実行することができる。Iスライスでは、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測処理ユニット120はPUに対してインター予測を実行しない。したがって、Iモードで符号化されるブロックでは、予測されるブロックは、同じフレーム内の以前に符号化された隣接するブロックからの空間的予測を使用して形成される。
[0196]PUがPスライス中にある場合、動き推定ユニット122は、PUのための参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索することができる。参照ピクチャは、参照ピクチャメモリ116に記憶され得る。PUの参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニット122は、PUに関する参照領域を含む参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成することができる。加えて、動き推定ユニット122は、PUのコーディングブロックと、参照領域と関連付けられる参照ロケーションとの間の空間的変位を示すMVを生成することができる。たとえば、MVは、現在の復号されたピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として参照インデックスとMVとを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、PUの予測サンプルブロックを生成することができる。
[0197]PUがBスライス中にある場合、動き推定ユニット122は、PUのために単予測または双予測を実行することができる。PUのための単予測を実行するために、動き推定ユニット122は、PUのための参照領域についてRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定ユニット122は、PUの動き情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUのサンプルブロックと参照領域と関連付けられる参照ロケーションとの間の空間的変位を示すMVと、参照ピクチャがRefPicList0中にあるかRefPicList1中にあるかを示す1つまたは複数の予測方向インジケータとを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0198]PUのための双方向インター予測を実行するために、動き推定ユニット122は、PUに関する参照領域についてRefPicList0中の参照ピクチャを探索することができ、また、PUに関する別の参照領域についてRefPicList1中の参照ピクチャを探索することができる。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1中での位置を示す参照ピクチャインデックスを生成することができる。加えて、動き推定ユニット122は、参照領域と関連付けられる参照ロケーションとPUのサンプルブロックとの間の空間的変位を示すMVを生成することができる。PUの動き情報は、PUの参照インデックスとMVとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0199]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUのための予測データを生成することができる。PUのための予測データは、PUのための予測サンプルブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行することができる。
[0200]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用してPUのための予測データの複数のセットを生成し、次いで、たとえばレート歪み最適化技法を使用して、受け入れ可能な、または最適なコーディング性能を生み出すイントラ予測モードの1つを選択することができる。イントラ予測モードを使用してPUのための予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードと関連付けられた方向へ、PUのサンプルブロックにわたって、隣接するPUのサンプルブロックからのサンプルを延ばすことができる。隣接するPUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば33個の方向性イントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数はPUと関連付けられた領域のサイズに依存し得る。いくつかの例では、イントラ予測処理ユニット126は、現在のブロック、たとえばPUのための本明細書で説明される非パーティションベースのイントラ予測モードまたはパーティションベースのイントラ予測モードのいずれかを使用することができる。
[0201]予測処理ユニット100は、PUについてインター予測処理ユニット120によって生成された予測データ、またはPUについてイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUのための予測データを選択することができる。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/歪みの尺度に基づいて、CUのPUのための予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれ得る。
[0202]残差生成ユニット102は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック、ならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、および予測Crブロックに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成することができる。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルがCUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測サンプルブロック中の対応するサンプルとの間の差に等しい値を有するように、CUの残差ブロックを生成することができる。
[0203]変換処理ユニット104は、CUと関連付けられる残差ブロックをCUのTUと関連付けられる変換ブロックに区分するために、4分木区分を実行することができる。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックと関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
[0204]変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUに対して変換係数ブロックを生成することができる。変換処理ユニット104は、TUと関連付けられた変換ブロックに様々な変換を適用することができる。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、または概念的に同様の変換を変換ブロックに適用することができる。いくつかの例では、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
[0205]量子化処理ユニット106は、係数ブロック中の変換係数を量子化することができる。量子化プロセスは、変換係数の一部またはすべてと関連付けられるビット深度を低減することができる。たとえば、nビット変換係数は量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化処理ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQP値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、元の係数よりも低い精度を有することがある。
[0206]逆量子化処理ユニット108および逆変換処理ユニット110は、それぞれ、係数ブロックから残差ブロックを再構築するために、係数ブロックに逆量子化および逆変換を適用することができる。再構築ユニット112は、再構築された残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに追加して、TUと関連付けられる再構築された変換ブロックを生成することができる。ビデオエンコーダ20は、このようにCUの各TUのための変換ブロックを再構築することによって、CUのコーディングブロックを再構築することができる。
[0207]フィルタユニット114は、1つまたは複数のデブロッキング動作を実行して、CUと関連付けられたコーディングブロック中のブロッキングアーティファクトを低減することができる。参照ピクチャメモリ116は、フィルタユニット114が、再構築されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実行した後、再構築されたコーディングブロックを記憶することができる。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構築されたコーディングブロックを含む参照ピクチャを使用することができる。加えて、イントラ予測処理ユニット126は、CUと同じピクチャ中の他のPUに対してイントラ予測を実行するために、参照ピクチャメモリ116中の再構築されたコーディングブロックを使用することができる。
[0208]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能コンポーネントからデータを受信することができる。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。エントロピー符号化ユニット118は、エントロピー符号化されたデータを生成するために、データに対して1つまたは複数のエントロピー符号化動作を実行することができる。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コーディング(CAVLC)演算、CABAC演算、変数−変数(V2V)レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)演算、確率間隔区分化エントロピー(PIPE)コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化されたデータを含むビットストリームを出力することができる。たとえば、ビットストリームは、CUに関するRQTを表すデータを含み得る。
[0209]ビデオエンコーダ20は、本明細書で説明される深度イントラ予測のための簡易残差コーディングのための技法のいずれかを実行するように構成されるビデオエンコーダの例である。本開示の1つまたは複数の技法によれば、ビデオエンコーダ20内の1つまたは複数のユニットは、ビデオ符号化プロセスの一部として、本明細書で説明される1つまたは複数の技法を実行することができる。同様に、ビデオエンコーダ20は、後でコーディングされるビデオデータのための参照として使用されるビデオデータを再生するために、本開示の技法のいずれかを使用してビデオ復号プロセスを実行することができる。上で論じられたように、ビデオエンコーダ20の要素の中でも、逆量子化処理ユニット108、逆変換処理ユニット110、および再構築ユニット112が、ビデオ復号プロセスにおいて利用され得る。追加の3Dコンポーネントもビデオエンコーダ20内に含まれ得る。
[0210]たとえば、予測処理ユニット100、およびより具体的には、イントラ予測処理ユニット126は、本明細書で説明されるように、深度ブロックを深度イントラ予測符号化するためにSDCモードを実行することができる。イントラ予測処理ユニット126は、深度ブロック、たとえばPUのための、またはPUの各パーティションのためのDC残差値を決定することができる。いくつかの例では、イントラ予測処理ユニット126は、本明細書で説明されるように、決定されたDC残差値を含むある範囲内の候補DC残差値のセットにVSOプロセスを適用し、そのセットからDC残差値の1つを選択することができる。
[0211]たとえば図7において破線で示されるように、イントラ予測処理ユニット126は、深度ブロックのための(1つまたは複数の)DC残差値を、他のシンタックス情報とともにエントロピー符号化ユニット118に提供することができる。イントラ予測処理ユニット126は、DC残差値をエントロピー符号化ユニット118に提供することができ、その値は変換処理ユニット104および量子化ユニット106によって処理されない。他の例では、量子化ユニット106は、エントロピー符号化ユニット118によるエントロピーコーディングの前に、DC残差値を量子化することができる。シンタックス情報は、本開示の技法に関連するシグナリングのための、様々な情報、フラグ、または本明細書で説明される他のシンタックス要素を含み得る。たとえば、シンタックス情報は、例として、SDCモードが深度ブロックのために実行されるかどうか、たとえばsdc_flag、DC残差値を決定するためにパーティションベースの(たとえば、3D−HEVC)モードが使用されたか非パーティションベースの(HEVC)モードが使用されたか、たとえばhevc_intra_flag、および、DC残差値を決定するためにどの深度イントラ予測モードが使用されたかを示し得る。いくつかの例では、エントロピー符号化ユニット118は、CABACプロセスに従ってシンタックス要素、たとえばhevc_intra_flagおよび/またはsdc_flagを符号化するための確率状態を、不等確率状態へと初期化するように構成される。いくつかの例では、エントロピー符号化ユニット118は、CABACプロセスに従ってこれらのシンタックス要素を符号化するための確率状態を、現在のブロックと関連付けられるスライスタイプに基づいて決定された値へと初期化するように構成される。
[0212]したがって、ビデオエンコーダ20は、ビットストリームの中に情報を符号化することと、この情報は、少なくとも3つの深度イントラ予測モードのいずれが深度ブロックを符号化するために使用されるかを示し、少なくとも3つの深度イントラ予測モードのいずれかに対して、深度ブロックを符号化するために簡易深度コーディング(SDC)モードを実行することと、を行うように構成される、ビデオオンコーダの例である。SDCモードに従って、ビデオエンコーダ20は、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定することと、ここにおいて、DC残差値は深度ブロックの複数のピクセルの残差値を表し、ビットストリームの中にDC残差値を符号化することと、を行うように構成される。
[0213]ビデオエンコーダ20はまた、ビットストリーム中の情報を符号化することと、この情報は、深度ブロックをコーディングするために深度モデリングモード3または深度モデリングモード4のうちの1つが使用されることを示し、コロケートされたテクスチャブロックおよび示された深度モデリングモードに基づいて、深度ブロックに関する区分パターンを決定することと、区分パターンに基づいて深度ブロックを2つのパーティションへと区分することと、を行うように構成される、ビデオエンコーダの例である。ビデオエンコーダ20は、深度ブロックを符号化するために簡易深度コーディング(SDC)モードを実行すること、SDCモードは、深度ブロックのパーティションの各々に対して、ビットストリーム中のそれぞれのDC残差値を符号化することを備え、DC残差値はパーティションのピクセルの残差値を表し、を行うようにさらに構成される、ビデオエンコーダの例である。
[0214]ビデオエンコーダ20はまた、ビットストリーム中の情報を符号化することと、この情報は、深度ブロックをコーディング領域境界チェーンコーディングモードが使用されることを示し、領域境界チェーンコーディングモードに基づいて深度ブロックの2つのパーティションの境界を定義する複数のチェーンを定義するビットストリーム中の情報を符号化することと、を行うように構成される、ビデオエンコーダの例である。ビデオエンコーダ20は、境界に基づいて深度ブロックを2つのパーティションへと区分することと、深度ブロックを符号化するための簡易深度コーディング(SDC)モードを実行することと、SDCモードは、深度ブロックのパーティションの各々に対して、ビットストリーム中のそれぞれのDC残差値を符号化することを備え、DC残差値はパーティションのピクセルの残差値を表し、を行うようにさらに構成される、ビデオエンコーダの例である。
[0215]ビデオエンコーダ20はまた、ビットストリーム中の情報を符号化することと、この情報は、深度ブロックをコーディングするためにDCイントラ予測モードが使用されることを示し、DCイントラ予測モードに基づいて深度ブロック中のピクセルの各々のためのそれぞれの予測子の値を決定することと、深度ブロックを符号化するために簡易深度コーディング(SDC)モードを実行することと、SDCモードはビットストリーム中の単一のDC残差値を符号化することを備え、DC残差値は予測子の値に基づいて決定され、深度ブロックのピクセルの残差値を表し、を行うように構成される、ビデオエンコーダの例である。
[0216]ビデオエンコーダ20はまた、ビットストリーム中の情報を符号化することと、この情報は、深度ブロックをコーディングするために方向性イントラ予測モードが使用されることを示し、方向性イントラ予測モードに基づいて深度ブロック中のピクセルの各々のためのそれぞれの予測子の値を決定することと、深度ブロックを符号化するための簡易深度コーディング(SDC)モードを実行することと、SDCモードはビットストリーム中の単一のDC残差値を符号化することを備え、DC残差値は予測子の値に基づいて決定され、深度ブロックのピクセルの残差値を表し、を行うように構成される、ビデオエンコーダの例である。
[0217]デバイスは、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備える、ビデオエンコーダ20を備え得る。1つまたは複数のプロセッサは、複数の深度イントラ予測モードから、符号化されたビデオビットストリーム中の深度ブロックを符号化するために深度イントラ予測モードを選択することと、符号化されたビデオビットストリーム中の深度ブロックを符号化するために簡易深度コーディング(SDC)モードを実行するかどうかを決定することと、SDCモードはビットストリーム中の少なくとも1つのDC残差値を符号化することを備え、ここにおいて、DC残差値は深度ブロックの複数のサンプルの残差値を表し、選択された深度イントラ予測モードおよびSDCモードを実行するかどうかの決定に従って、符号化されたビデオビットストリーム中の深度ブロックを符号化することと、を行うように構成される。1つまたは複数のプロセッサは、符号化されたビデオビットストリームの中の第1のシンタックス要素を符号化すること、第1のシンタックス要素の第1の値は、選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのための選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、を行うように構成される。1つまたは複数のプロセッサは、符号化されたビデオビットストリーム中の第2のシンタックス要素を符号化すること、第2のシンタックス要素は、SDCモードが符号化されたビデオビットストリーム中の深度ブロックを符号化するために実行されたかどうかを示し、を行うように構成される。
[0218]デバイスは、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備える、ビデオエンコーダ20を備え得る。1つまたは複数のプロセッサは、複数の深度イントラ予測モードから選択された深度イントラ予測モードに従って深度ブロックを符号化すること、深度ブロックを符号化することは、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、を行うように構成される。1つまたは複数のプロセッサはさらに、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用することと、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択することと、を行うように構成される。1つまたは複数のプロセッサはさらに、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化するように構成される。
[0219]図8は、本開示の技法を実行するように構成された例示的なビデオデコーダ30を示すブロック図である。図8は、説明の目的で与えられており、本開示おいて広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30を説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
[0220]図8の例では、ビデオデコーダ30は、ビデオデータメモリ148と、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化処理ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルタユニット160と、参照ピクチャメモリ162とを含む。予測処理ユニット152は、動き補償ユニット164とイントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0221]ビデオデータメモリ148は、ビデオデコーダ30のコンポーネントによって復号されるべき、符号化されたビデオビットストリームのようなビデオデータを記憶することができる。ビデオデータメモリ148に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラのようなローカルビデオソースから、ビデオデータのワイヤードネットワーク通信もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ148は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングされたピクチャバッファ(CPB)を形成し得る。参照ピクチャメモリ162は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶することができる。ビデオデータメモリ148および参照ピクチャメモリ162は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの種々のメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ148および参照ピクチャメモリ296は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ148は、ビデオデコーダ30の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
[0222]ビデオデコーダ30は、ビデオエンコーダ20から、ビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信することができる。エントロピー復号ユニット150は、ビットストリームからシンタックス要素を復号するためにビットストリームを解析することができる。エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化処理ユニット154、逆変換処理ユニット156、再構築ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成することができる。
[0223]ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コーディングされたスライスNALユニットからシンタックス要素を抽出し、エントロピー復号することができる。コーディングされたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられたPPSを識別するシンタックス要素を含み得る。PPSはSPSを参照することができ、SPSは次いでVPSを参照することができる。エントロピー復号ユニット150はまた、SEIメッセージのようなシンタックス情報を含み得る他の要素をエントロピー復号することができる。スライスヘッダ、パラメータセット、またはSEIメッセージのいずれかの中の復号されたシンタックス要素は、本明細書で説明されるSDCモードと簡易残差コーディング技法とを実行するためにシグナリングされるものとして本明細書で説明される情報を含み得る。たとえば、復号されたシンタックス要素は、SDCモードが深度ブロックのために実行されるかどうか、たとえばsdc_flag、DC残差値を決定するためにパーティションベースの(たとえば、3D−HEVC)モードが使用されたか非パーティションベースの(HEVC)モードが使用されたか、たとえばhevc_intra_flag、および、DC残差値を決定するためにどの深度イントラ予測モードが使用されたかを示し得る。そのようなシンタックス情報は、本明細書で説明される技法に従った深度ブロックの再構築のために、予測処理ユニット152に提供され得る。いくつかの例では、エントロピー復号ユニット150は、CABACプロセスに従ってシンタックス要素、たとえばhevc_intra_flagおよび/またはsdc_flagを復号するための確率状態を、不等確率状態へと初期化するように構成される。いくつかの例では、エントロピー復号ユニット150は、CABACプロセスに従ってこれらのシンタックス要素を復号するための確率状態を、現在のブロックと関連付けられるスライスタイプに基づいて決定された値へと初期化するように構成される。
[0224]一般に、ビデオデコーダ30は、ビットストリームからのシンタックス要素を復号することに加えて、区分されていないCUに対して再構築動作を実行することができる。区分されていないCUに対して再構築動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構築動作を実行することができる。CUの各TUに対して再構築動作を実行することによって、ビデオデコーダ30は、CUのブロックを再構築することができる。
[0225]CUのTUに対して再構築動作を実行することの一部として、逆量子化処理ユニット154は、TUと関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de−quantize)することができる。逆量子化処理ユニット154は、量子化の程度を決定するために、また同様に、逆量子化処理ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUと関連付けられたQP値を使用することができる。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比は、利用されるエントロピーコーディングの方法に依存し得る。
[0226]逆量子化処理ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUと関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用することができる。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(an inverse Karhunen-Loeve transform)(KLT)、逆回転変換、逆方向変換、または別の逆変換を、係数ブロックに適用することができる。
[0227]イントラ予測を使用してPUが符号化される場合、イントラ予測処理ユニット166は、PUに関する予測ブロックを生成するためにイントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定することができる。
[0228]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。さらに、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUに関する動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PUのための1つまたは複数の参照領域を決定することができる。動き補償ユニット164は、PUに関する1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUに関する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0229]続いて、ここで図8が参照される。再構築ユニット158は、CUのTUと関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロックを、すなわち、イントラ予測データまたはインター予測データのいずれかを適宜使用して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築することができる。たとえば、再構築ユニット158は、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築することができる。
[0230]フィルタユニット160は、デブロッキング動作を実行して、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックと関連付けられたブロッキングアーティファクトを低減することができる。ビデオデコーダ30は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを、復号ピクチャバッファ162に記憶することができる。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32のようなディスプレイデバイス上での提示のために、参照ピクチャを提供することができる。たとえば、ビデオデコーダ30は、参照ピクチャメモリ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行することができる。このようにして、ビデオデコーダ30は、有意なルーマ係数ブロック(significant luma coefficient block)の変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも一部基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力することができる。
[0231]ビデオデコーダ30は、本明細書で説明されるような、深度イントラ予測モードのための簡易残差コーディングのための技法のいずれかを実行するように構成されるビデオデコーダの例である。本開示の1つまたは複数の技法によれば、ビデオデコーダ30内の1つまたは複数のユニットは、ビデオ復号プロセスの一部として、本明細書で説明される1つまたは複数の技法を実行することができる。追加の3Dコンポーネントもビデオエンコーダ30内に含まれ得る。
[0232]たとえば、予測処理ユニット152、およびより具体的には、イントラ予測処理ユニット166は、本明細書で説明されるように、深度ブロックを深度イントラ予測符号化するためにSDCモードを実行することができる。エントロピー復号ユニット150は、深度ブロックのための1つまたは複数のDC残差値、ならびに本明細書で説明されるシンタックス情報、たとえば、どの深度イントラ予測モードがブロックを符号化するために使用されたか、ならびにSDCモードがブロックを符号化するために実行されたかどうかを、エントロピー復号することができる。
[0233]エントロピー復号ユニット150は、図8において破線によって示されるように、ブロックのための(1つまたは複数の)DC残差値とシンタックス情報とを予測処理ユニット152に提供することができる。このようにして、(1つまたは複数の)DC残差値は、逆量子化および逆変換のために逆量子化ユニット154および逆変換処理ユニット156へ最初に提供されなくてよい。他の例では、逆量子化ユニット154は、(1つまたは複数の)DC残差値を逆量子化し、逆量子化されたDC残差値を予測処理ユニット152に提供することができる。
[0234]イントラ予測処理ユニット166は、たとえば本明細書で説明される技法のいずれかに従って、シンタックス情報によって示される深度イントラ予測モードに基づいて、深度ブロックのための予測子の値を決定することができる。イントラ予測処理ユニット166は、予測子の値を決定するために、復号ピクチャバッファ162に記憶されている再構築された深度ブロックを利用することができる。本明細書で説明されるように、イントラ予測処理ユニット166は、(1つまたは複数の)DC残差値と予測子の値とを合計することによって、深度ブロックを再構築することができる。いくつかの例では、イントラ予測処理ユニット166は、深度ブロックのための残差値と予測子の値との合計のために、再構築ユニット158を利用することができる。たとえば、エントロピー復号ユニット150は、(1つまたは複数の)DC残差値を再構築ユニットに提供することができ、イントラ予測処理ユニット166は、予測子の値を再構築ユニットに提供することができる。
[0235]したがって、ビデオデコーダ30は、ビットストリームから情報を復号することと、この情報は、少なくとも3つの深度イントラ予測モードのいずれが深度ブロックを復号するために使用されるかを示し、少なくとも3つの深度イントラ予測モードのいずれかに対して、深度ブロックを復号するために簡易深度コーディング(SDC)モードを実行することと、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、ここにおいて、DC残差値は、深度ブロックの複数のピクセルの残差値を表し、示された深度イントラ予測モードおよび少なくとも1つのDC残差値に基づいて深度ブロックを再構築することと、を行うように構成される、ビデオデコーダの例である。
[0236]ビデオデコーダ30はまた、ビットストリーム中の情報を復号することと、この情報は、深度ブロックを復号するために深度モデリングモード3または深度モデリングモード4のうちの1つが使用されることを示し、コロケートされたテクスチャブロックおよび示された深度モデリングモードに基づいて、深度ブロックに関する区分パターンを決定することと、区分パターンに基づいて深度ブロックを2つのパーティションへと区分することと、を行うように構成される、ビデオデコーダの例である。ビデオデコーダ30は、深度ブロックを復号するために簡易深度コーディング(SDC)モードを実行すること、SDCモードは、深度ブロックのパーティションの各々に対して、ビットストリーム中のそれぞれのDC残差値を復号することを備え、DC残差値はパーティションのピクセルの残差値を表し、を行うようにさらに構成される、ビデオデコーダの例である。
[0237]ビデオデコーダ30はまた、ビットストリーム中の情報を復号することと、この情報は、深度ブロックを復号するために領域境界チェーンコーディングモードが使用されることを示し、領域境界チェーンコーディングモードに基づいて深度ブロックの2つのパーティションの境界を定義する複数のチェーンを定義するビットストリーム中の情報を復号することと、を行うように構成される、ビデオデコーダの例である。ビデオデコーダ30は、境界に基づいて深度ブロックを2つのパーティションへと区分することと、深度ブロックを復号するために簡易深度コーディング(SDC)モードを実行することと、SDCモードは、深度ブロックのパーティションの各々に対して、ビットストリーム中のそれぞれのDC残差値を復号することを備え、DC残差値はパーティションのピクセルの残差値を表し、を行うようにさらに構成される、ビデオデコーダの例である。
[0238]ビデオデコーダ30はまた、ビットストリーム中の情報を復号することと、この情報は、DCイントラ予測モードが深度ブロックを復号するために使用されることを示し、DCイントラ予測モードに基づいて深度ブロック中のピクセルの各々のためのそれぞれの予測子の値を決定することと、深度ブロックを復号するために簡易深度コーディング(SDC)モードを実行することと、SDCモードはビットストリーム中の単一のDC残差値を復号することを備え、DC残差値は予測子の値に基づいて決定され、深度ブロックのピクセルの残差値を表し、を行うように構成される、ビデオデコーダの例である。
[0239]ビデオデコーダ30はまた、ビットストリーム中の情報を復号することと、この情報は、方向性イントラ予測モードが深度ブロックを復号するために使用されることを示し、方向性イントラ予測モードに基づいて深度ブロック中のピクセルの各々のためのそれぞれの予測子の値を決定することと、深度ブロックを復号するために簡易深度コーディング(SDC)モードを実行することと、SDCモードはビットストリーム中の単一のDC残差値を復号することを備え、DC残差値は予測子の値に基づいて決定され、深度ブロックのピクセルの残差値を表し、を行うように構成される、ビデオデコーダの例である。
[0240]いくつかの例では、デバイスは、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備える、ビデオデコーダ30を備え得る。1つまたは複数のプロセッサは、符号化されたビデオビットストリームから第1のシンタックス要素を復号すること、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、を行うように構成される。1つまたは複数のプロセッサは、符号化されたビデオビットストリームから第2のシンタックス要素を復号すること、第2のシンタックス要素は、深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、を行うように構成される。1つまたは複数のプロセッサは、深度ブロックのために選択された深度イントラ予測モードと、SDCモードを実行するかどうかの指示とに従って、深度ブロックを再構築するように構成される。
[0241]図9は、深度ブロックを符号化する深度イントラ予測のために簡易深度コーディング(SDC)モードを実行する例示的な方法を示す流れ図である。図9の例示的な方法は、本明細書で説明されるようなビデオエンコーダ20、または任意のビデオエンコーダによって実行され得る。
[0242]図9の例によれば、ビデオエンコーダ20は、少なくとも3つの深度イントラ予測モードのいずれが深度ブロックを符号化するために使用されるかを示す情報、たとえば本明細書で説明されるようなシンタックス要素をビットストリームの中に符号化する(200)。少なくとも3つの深度イントラ予測モードは、DMM3、DMM4、チェーンコーディングモード、DCモード、および方向性イントラ予測モードの少なくとも1つを含み、本明細書で説明される任意の深度イントラ予測モードを含み得る。ビデオエンコーダ20はさらに、示される深度イントラ予測モードに基づいて、深度ブロックのための1つまたは複数のDC残差値を決定する(202)。たとえば、ビデオエンコーダ20は、深度ブロックが非パーティションベースの、たとえばHEVCイントラ予測モードを使用して符号化されるとき、深度ブロックのための単一のDC残差値を決定することができ、または、深度ブロックがパーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードを使用して符号化されるとき、深度ブロックの2つのパーティションの各々のためのそれぞれのDC残差値を決定することができる。ビデオエンコーダ20は、(1つまたは複数の)DC残差値をビットストリームの中に符号化する(204)。
[0243]図10は、深度ブロックを復号する深度イントラ予測のためのSDCモードを実行する例示的な方法を示す流れ図である。図10の例示的な方法は、本明細書で説明されるようなビデオデコーダ30、または任意のビデオデコーダによって実行され得る。同様に、図10の方法は、符号化されたビデオデータから再構築されたビデオデータを生成するために、ビデオエンコーダ20のようなビデオエンコーダによって実行されてよく、再構築されたビデオデータは、符号化のためのビデオデータを後で予測するために使用され得る。
[0244]図10の例によれば、ビデオデコーダ20は、少なくとも3つの深度イントラ予測モードのいずれが深度ブロックを復号するために使用されるかを示す情報、たとえば本明細書で説明されるようなシンタックス要素をビットストリームから復号する(210)。少なくとも3つの深度イントラ予測モードは、DMM3、DMM4、チェーンコーディングモード、DCモード、および方向性イントラ予測モードの少なくとも1つを含み、本明細書で説明される任意の深度イントラ予測モードを含み得る。ビデオデコーダ30はまた、深度イントラ予測モードを使用して予測ブロックを生成することができる。ビデオデコーダ30はさらに、ビットストリームから、深度ブロックのための1つまたは複数のDC残差値を復号する(212)。たとえば、ビデオデコーダ30は、深度ブロックが非パーティションベースの、たとえばHEVCイントラ予測モードを使用して符号化されるとき、深度ブロックのための単一のDC残差値を復号することができ、または、深度ブロックがパーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードを使用して符号化されるとき、深度ブロックの2つのパーティションの各々のためのそれぞれのDC残差値を復号することができる。ビデオデコーダ30は、たとえば、本明細書で説明される技法のいずれかを使用して、DC残差値に基づいて深度ブロックを再構築する(214)。深度ブロックの再構築は、たとえば、ピクセルごとに、DC残差値から生成された残差ブロックと予測ブロックを組み合わせることを含み得る。
[0245]図11は、非パーティションベースの(たとえば、HEVC)イントラ予測モードまたはパーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードのいずれかに従って深度ブロックを深度イントラ予測符号化するためにSDCモードを実行するための例示的な方法を示す流れ図である。図11の例示的な方法は、本明細書で説明されるようなビデオエンコーダ20、または別のビデオエンコーダによって実行され得る。
[0246]図11の例示的な方法によれば、ビデオエンコーダ20は、深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードを使用して符号化されるか、またはパーティションベースの(たとえば、3D−HEVC)イントラ予測モードを使用して符号化されるかを決定する(220)。本明細書で説明されるように、ビデオエンコーダ20は、どのタイプの深度イントラ予測モードが深度ブロックを符号化するために使用されるかをビデオデコーダに示す、ビットストリーム中のシンタックス要素または他の情報を符号化することができる。
[0247]深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードを使用して符号化される場合、ビデオエンコーダ20は、特定の非パーティションベースの(たとえば、HEVC)イントラ予測モードに従って、深度ブロックのためのピクセル固有の予測子の値を決定する(222)。ビデオエンコーダ20は次いで、たとえば本明細書で説明される技法のいずれかを使用して、深度ブロックのための単一のDC残差値を決定する(224)。たとえば、ビデオエンコーダ20は、深度ブロックのためのDC深度値、たとえば平均深度値と、DC予測子の値とを、ピクセル固有のDC予測子の値のサブセットに基づいて決定することができる。ビデオエンコーダ20は、DC深度値とDC予測子の値との差分として、DC残差値を決定することができる。ビデオエンコーダ20は次いで、単一のDC残差値をビットストリームの中に符号化することができる(226)。
[0248]深度ブロックがパーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードを使用して符号化される場合、ビデオエンコーダ20は、たとえば、DMMモードおよびチェーンコーディングモードについて上で説明されたように、特定のパーティションベースの深度イントラ予測モードに従って深度ブロックを区分する(228)。ビデオエンコーダ20はまた、たとえば、深度ブロックの1つまたは複数の隣接するサンプルに基づいて、特定のモードに従ってパーティションのためのそれぞれのDC予測子の値を決定する(230)。ビデオエンコーダ20は次いで、DC予測子の値に基づいて、パーティションのためのそれぞれのDC残差値を決定する(232)。たとえば、ビデオエンコーダ20は、各パーティションのためのそれぞれのDC深度値、たとえば平均深度値を決定し、各パーティションのためのDC残差値を、そのパーティションのためのDC深度値とDC予測子の値との差分として決定することができる。ビデオエンコーダ20は、それぞれのDC残差値をビットストリームの中に符号化する(234)。
[0249]図12は、HEVCイントラ予測モードまたは3D−HEVC深度イントラ予測モードのいずれかに従って深度ブロックを深度イントラ予測復号するためにSDCモードを実行するための例示的な方法を示す流れ図である。図12の例示的な方法は、本明細書で説明されるようなビデオデコーダ30、または別のビデオエンコーダによって実行され得る。
[0250]図12の例示的な方法によれば、ビデオデコーダ30は、深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードを使用して符号化されたか、またはパーティションベースの(たとえば、3D−HEVC)イントラ予測モードを使用して符号化されたかを決定する(240)。本明細書で説明されるように、ビデオデコーダ30は、どのタイプの深度イントラ予測モードが深度ブロックを符号化するために使用されたかを示す、シンタックス要素または他の情報をビットストリームから復号することができる。
[0251]深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードを使用して符号化された場合、ビデオデコーダ30は、特定の非パーティションベースの(たとえば、HEVC)イントラ予測モードに従って、深度ブロックのためのピクセル固有の予測子の値を決定する(242)。ビデオデコーダ30はまた、深度ブロックのための単一のDC残差値を復号する(244)。ビデオデコーダ30は次いで、ピクセル固有の予測子の値およびDC残差値に基づいて、深度ブロックを再構築することができる(246)。たとえば、各深度ピクセル値を再構築するために、ビデオデコーダ30は、それぞれのピクセル固有の予測子の値を単一のDC残差値と合計することができる。
[0252]深度ブロックがパーティションベースの(たとえば、3D−HEVC)深度イントラ予測モードを使用して符号化された場合、ビデオデコーダ30は、たとえば、DMMモードおよびチェーンコーディングモードについて上で説明されたように、特定のパーティションベースの深度イントラ予測モードに従って深度ブロックを区分する(248)。ビデオデコーダ30はまた、たとえば、深度ブロックの1つまたは複数の隣接するサンプルに基づいて、特定のモードに従ってパーティションのためのそれぞれのDC予測子の値を決定する(250)。ビデオデコーダ30はまた、ビットストリームから、パーティションのためのそれぞれのDC残差値を復号する(252)。ビデオデコーダ30は次いで、たとえば予測子の値と残差値とを合計することによって、パーティションのためのDC予測子の値およびDC残差値に基づいて深度ブロックを再構築することができる(254)。
[0253]図13は、どの深度イントラ予測モードが深度ブロックをコーディングするために使用されるかということと、SDCモードが深度ブロックをコーディングするために使用されるかどうかとを示す、ビットストリーム中のシンタックス要素をコーディングするための例示的な方法を示す流れ図である。図13に示される方法は、上で説明された技法に従ってビデオエンコーダ20および/またはビデオデコーダ30によって実行され得る技法の例を表す。図13では、例示的な方法が、ビデオエンコーダ20およびビデオデコーダ30によって実行されるものと同様のまたは逆の動作を参照して、一緒に説明される。
[0254]図13の例示的な方法に従って、深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードのいずれかを使用してコーディング(たとえば、符号化または復号)されるかどうかを示す第1のシンタックス要素、たとえばhevc_intra_flagを、ビデオコーダがコーディングする(たとえば、ビデオエンコーダ20が符号化し、またはビデオデコーダ30が復号する)(260)。いくつかの例では、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードからある深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示す。
[0255]ビデオコーダは、深度ブロックまたは深度ブロックの各パーティションのための1つまたは複数のDC残差値をコーディングするためにSDCモードが使用されるかどうかを示す第2のシンタックス要素、たとえばsdc_flagをコーディングする(262)。ビデオコーダはまた、非パーティションベースの(たとえば、HEVC)イントラ予測モードのいずれが深度ブロックをコーディングするために使用されるかを示す、1つまたは複数のシンタックス要素をコーディングすることができる。深度ブロックが非パーティションベースの(たとえば、HEVC)イントラ予測モードのいずれかを使用してコーディングされないことを第1のシンタックス要素が示す場合(264のNO)、ビデオコーダは、パーティションベースの(3D−HEVC)深度イントラ予測モードのいずれが深度ブロックをコーディングするために使用されるかを示す、第3のシンタックス要素をコーディングする(266)。いくつかの例では、領域境界チェーンコーディングモードは、深度ブロックをコーディングするために使用されず、または使用不可能である。そのような例では、ビデオコーダは、第3のシンタックス要素をコーディングする必要はないことがあり、第1のシンタックス要素、たとえばhevc_intra_flagの0に等しい第1の値は、DMMモードが現在の深度ブロックをイントラコーディングするために使用されることを示す。
[0256]いくつかの例では、CABACプロセスに従って、第1のシンタックス要素および/または第2のシンタックス要素を、ビデオコーダがコーディングし(たとえば、ビデオエンコーダ20が符号化し、および/またはビデオデコーダ30が復号し)、CABACプロセスに従って、第1のシンタックス要素と第2のシンタックス要素の少なくとも1つ、たとえばhevc_intra_flagをコーディングするための初期確率状態を、不等確率状態に設定する。いくつかの例では、本明細書で説明されるように、ビデオコーダは、深度ブロックを含むスライスのスライスタイプを決定し、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を選択する。様々な例において、ビデオコーダは、深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照して、または参照せずに、第1のシンタックス要素と第2のシンタックス要素の一方または両方のための初期確率状態を設定する。
[0257]図14は、ビットストリーム中のDC残差値をコーディングするための例示的な方法を示す流れ図である。図14に示される方法は、上で説明された技法に従ってビデオエンコーダ20および/またはビデオデコーダ30によって実行され得る技法の例を表す。図14では、例示的な方法が、ビデオエンコーダ20およびビデオデコーダ30によって実行されるものと同様のまたは逆の動作を参照して、一緒に説明される。
[0258]図14の例示的な方法によれば、ビデオコーダは、DC残差値が0に等しいかどうかを示す第1のシンタックス要素をコーディングする(270)。DC残差値が0に等しい場合(272のYES)、DC残差値をコーディングするための方法は終了する。DC残差値が0に等しくない場合(272のNO)、ビデオコーダはさらに、DC残差値が正か負かを示す第2のシンタックス要素をコーディングし(274)、「DC残差値の絶対値」−1を示す第3のシンタックス値をコーディングする(276)。
[0259]図15は、ビットストリーム中のDC残差値を符号化するための例示的な方法を示す流れ図である。図15に示される方法は、上で説明された技法に従ってビデオエンコーダ20によって実行され得る技法の例を表す。
[0260]図15の例示的な方法によれば、本明細書で説明されるように、ビデオエンコーダ、たとえばビデオエンコーダ20は、ブロック、またはブロックのパーティションのためのDC残差値を決定するために、SDCモードを実行する(280)。ビデオエンコーダは、SDCモードに従って決定されたDC残差値を含むある範囲内の候補DC残差値のセットを識別する(282)。たとえば、ビデオエンコーダは、候補DC残差値のセットを含むDC残差値の範囲を定義するために、決定されたDC残差値に1つまたは複数のオフセットを適用することができる。
[0261]ビデオエンコーダは、候補DC残差値のセットにVSOプロセスを適用する(286)。ビデオエンコーダは、VSOプロセスの結果に基づいて、候補DC残差値のセットからDC残差値の1つを選択する(288)。たとえば、ビデオエンコーダは、候補DC残差値のセットから、VSOプロセスに従って、コストが最低のDC残差値を選択することができる。ビデオエンコーダは、たとえばSDCプロセスに従って決定されるDC残差値の代わりに、符号化されたビデオビットストリーム中の選択されたDC残差値を符号化する。この方式では、ビデオデコーダは、VSOプロセスから選択されるDC残差値を利用するために修正される必要がない。
[0262]上で説明された技法は、その両方が一般にビデオコーダと呼ばれ得る、ビデオエンコーダ20(図1および図7)および/またはビデオデコーダ30(図1および図8)によって実行され得る。加えて、ビデオコーディングは一般に、適用可能な場合、ビデオ符号化および/またはビデオ復号を指し得る。
[0263]本開示の技法は全般に3D−HEVCに関して説明されたが、本技法はこのように限定されない。上で説明された技法は、他の現在の規格またはまだ開発されていない将来の規格にも適用可能であり得る。たとえば、深度コーディングするための技法は、深度成分のコーディングを必要とする他の現在のまたは将来の規格にも適用可能であり得る。
[0264]1つまたは複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体または(2)信号またはキャリア波のような通信媒体に相当し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0265]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)と、レーザーディスク(登録商標)と、光ディスクと、デジタル多用途ディスク(DVD)と、フロッピー(登録商標)ディスクと、Blu−rayディスクとを含み、通常、ディスク(disk)は磁気的にデータを再生するが、ディスク(disc)はレーザーを用いてデータを光学的に再生する。上の組み合わせも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0266]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つまたは複数の回路または論理素子内で完全に実装され得る。
[0267]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されたように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられてよく、または、上で説明した1つまたは複数のプロセッサを含む、好適なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供されてよい。
[0268]本開示に従った本技法の様々な例が説明された。多数の具体的な例が下で説明される。本明細書で説明される例および他の例は、以下の特許請求の範囲の範囲内に入る。
[0269]例1. ビデオデータを復号する方法であって、符号化されたビデオビットストリームから第1のシンタックス要素を復号することと、ここにおいて、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリームから第2のシンタックス要素を復号することと、ここにおいて、第2のシンタックス要素は、深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、深度ブロックのために選択された深度イントラ予測モードと、SDCモードを実行するかどうかの指示とに従って、深度ブロックを再構築することと、を備える、方法。
[0270]例2. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例1の方法。
[0271]例3. 第1のシンタックス要素と第2のシンタックス要素とを復号することが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とを復号することを備える、例1の方法。
[0272]例4. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を不等確率状態に設定することをさらに備える、例3の方法。
[0273]例5. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を不等確率状態に設定することが、CABACプロセスに従って第1のシンタックス要素を復号するための初期確率状態を不等確率状態に設定することを備える、例4の方法。
[0274]例6. 深度ブロックを含むスライスのスライスタイプを決定することと、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を選択することと、をさらに備える、例3の方法。
[0275]例7. スライスのスライスタイプを決定することが、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかを決定することを備え、初期確率状態を選択することが、スライスがBスライスであるときに第1の初期確率状態を選択することと、スライスがPスライスであるときに第2の初期確率状態を選択することと、スライスがIスライスであるときに第3の初期確率状態を選択することと、を備える、例6の方法。
[0276]例8. 深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を設定することをさらに備える、例3の方法。
[0277]例9. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例1の方法。
[0278]例10. ビデオデータを符号化する方法であって、複数の深度イントラ予測モードから、符号化されたビデオビットストリーム中の深度ブロックを符号化するための深度イントラ予測モードを選択することと、符号化されたビデオビットストリーム中の深度ブロックを符号化するための簡易深度コーディング(SDC)モードを実行するかどうかを決定することと、SDCモードはビットストリーム中の少なくとも1つのDC残差値を符号化することを備え、DC残差値は深度ブロックの複数のサンプルの残差値を表し、選択された深度イントラ予測モードおよびSDCモードを実行するかどうかの決定に従って、符号化されたビデオビットストリーム中の深度ブロックを符号化することと、符号化されたビデオビットストリーム中の第1のシンタックス要素を符号化することと、ここにおいて、第1のシンタックス要素の第1の値は、選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのための選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリーム中の第2のシンタックス要素を符号化することと、第2のシンタックス要素は、SDCモードが符号化されたビデオビットストリーム中の深度ブロックを符号化するために実行されたかどうかを示し、を備える、方法。
[0279]例11. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例10の方法。
[0280]例12. 第1のシンタックス要素と第2のシンタックス要素とを符号化することが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とを符号化することを備える、例10の方法。
[0281]例13. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を不等確率状態に設定することをさらに備える、例12の方法。
[0282]例14. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を不等確率状態に設定することが、CABACプロセスに従って第1のシンタックス要素を符号化するための初期確率状態を不等確率状態に設定することを備える、例13の方法。
[0283]例15. 深度ブロックを含むスライスのスライスタイプを決定することと、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を選択することと、をさらに備える、例12の方法。
[0284]例16. スライスのスライスタイプを決定することが、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかを決定することを備え、初期確率状態を選択することが、スライスがBスライスであるときに第1の初期確率状態を選択することと、スライスがPスライスであるときに第2の初期確率状態を選択することと、スライスがIスライスであるときに第3の初期確率状態を選択することと、を備える、例15の方法。
[0285]例17. 深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を設定することをさらに備える、例12の方法。
[0286]例18. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例10の方法。
[0287]例19. ビデオデコーダを備えるデバイスであって、ビデオデコーダが、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されるメモリと、符号化されたビデオビットストリームから第1のシンタックス要素を復号することと、ここにおいて、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリームから第2のシンタックス要素を復号することと、ここにおいて、第2のシンタックス要素は、深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、深度ブロックのために選択された深度イントラ予測モードと、SDCモードを実行するかどうかの指示とに従って、深度ブロックを再構築することと、を行うように構成される、1つまたは複数のプロセッサと、を備える、デバイス。
[0288]例20. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例19のデバイス。
[0289]例21. 1つまたは複数のプロセッサが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とを復号するように構成される、例19のデバイス。
[0290]例22. 1つまたは複数のプロセッサがさらに、CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を不等確率状態に設定するように構成される、例21のデバイス。
[0291]例23. 1つまたは複数のプロセッサが、CABACプロセスに従って第1のシンタックス要素を復号するための初期確率状態を不等確率状態に設定するように構成される、例22のデバイス。
[0292]例24. 1つまたは複数のプロセッサがさらに、深度ブロックを含むスライスのスライスタイプを決定することと、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を選択することと、を行うように構成される、例21のデバイス。
[0293]例25. 1つまたは複数のプロセッサが、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかを決定することと、スライスがBスライスであるときに第1の初期確率状態を選択することと、スライスがPスライスであるときに第2の初期確率状態を選択することと、スライスがIスライスであるときに第3の初期確率状態を選択することと、を行うように構成される、例24のデバイス。
[0294]例26. 1つまたは複数のプロセッサがさらに、深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を設定するように構成される、例21のデバイス。
[0295]例27. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例19のデバイス。
[0296]例28. デバイスが、ビデオデコーダを実装する集積回路、ビデオデコーダを実装するマイクロプロセッサ、およびビデオデコーダを含むワイヤレス通信デバイスの少なくとも1つを備える、例19のデバイス。
[0297]例29. ビデオエンコーダを備えるデバイスであって、ビデオエンコーダが、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されるメモリと、複数の深度イントラ予測モードから、符号化されたビデオビットストリーム中の深度ブロックを符号化するための深度イントラ予測モードを選択することと、符号化されたビデオビットストリーム中の深度ブロックを符号化するための簡易深度コーディング(SDC)モードを実行するかどうかを決定することと、SDCモードはビットストリーム中の少なくとも1つのDC残差値を符号化することを備え、DC残差値は深度ブロックの複数のサンプルの残差値を表し、選択された深度イントラ予測モードおよびSDCモードを実行するかどうかの決定に従って、符号化されたビデオビットストリーム中の深度ブロックを符号化することと、符号化されたビデオビットストリーム中の第1のシンタックス要素を符号化することと、ここにおいて、第1のシンタックス要素の第1の値は、選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのための選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリーム中の第2のシンタックス要素を符号化することと、第2のシンタックス要素が、SDCモードが符号化されたビデオビットストリーム中の深度ブロックを符号化するために実行されたかどうかを示し、を行うように構成される、1つまたは複数のプロセッサと、を備える、デバイス。
[0298]例30. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例29のデバイス。
[0299]例31. 1つまたは複数のプロセッサが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とを符号化するように構成される、例29のデバイス。
[0300]例32. 1つまたは複数のプロセッサがさらに、CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を不等確率状態に設定するように構成される、例31のデバイス。
[0301]例33. 1つまたは複数のプロセッサが、CABACプロセスに従って第1のシンタックス要素を符号化するための初期確率状態を不等確率状態に設定するように構成される、例32のデバイス。
[0302]例34. 1つまたは複数のプロセッサがさらに、深度ブロックを含むスライスのスライスタイプを決定することと、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を選択することと、を行うように構成される、例31のデバイス。
[0303]例35. 1つまたは複数のプロセッサが、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかを決定することと、スライスがBスライスであるときに第1の初期確率状態を選択することと、スライスがPスライスであるときに第2の初期確率状態を選択することと、スライスがIスライスであるときに第3の初期確率状態を選択することと、を行うように構成される、例34のデバイス。
[0304]例36. 1つまたは複数のプロセッサがさらに、深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを符号化するための初期確率状態を設定するように構成される、例31のデバイス。
[0305]例37. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例29のデバイス。
[0306]例38. デバイスが、ビデオエンコーダを実装する集積回路、ビデオエンコーダを実装するマイクロプロセッサ、およびビデオエンコーダを含むワイヤレス通信デバイスの少なくとも1つを備える、例29のデバイス。
[0307]例39. ビデオコーダを備えるデバイスであって、ビデオコーダが、符号化されたビデオビットストリーム中の第1のシンタックス要素をコーディングするための手段と、ここにおいて、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリーム中の第2のシンタックス要素をコーディングするための手段と、ここにおいて、第2のシンタックス要素は、深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、第1のシンタックス要素および第2のシンタックス要素に従って、符号化されたビデオビットストリーム中の深度ブロックをコーディングするための手段と、を備える、デバイス。
[0308]例40. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例39のデバイス。
[0309]例41. 第1のシンタックス要素と第2のシンタックス要素とをコーディングするための手段が、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とをコーディングするための手段を備える、例39のデバイス。
[0310]例42. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を不等確率状態に設定するための手段をさらに備える、例41のデバイス。
[0311]例43. CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を不等確率状態に設定するための手段が、CABACプロセスに従って第1のシンタックス要素をコーディングするための初期確率状態を不等確率状態に設定するための手段を備える、例42のデバイス。
[0312]例44. 深度ブロックを含むスライスのスライスタイプを決定するための手段と、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を選択するための手段と、をさらに備える、例41のデバイス。
[0313]例45. スライスのスライスタイプを決定するための手段が、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかを決定するための手段を備え、初期確率状態を選択するための手段が、スライスがBスライスであるときに第1の初期確率状態を選択するための手段と、スライスがPスライスであるときに第2の初期確率状態を選択するための手段と、スライスがIスライスであるときに第3の初期確率状態を選択するための手段と、を備える、例44のデバイス。
[0314]例46. 深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を設定するための手段をさらに備える、例41のデバイス。
[0315]例47. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例39のデバイス。
[0316]例48. 命令を記憶したコンピュータ可読記憶媒体であって、この命令が、ビデオコーダの1つまたは複数のプロセッサによって実行されると、ビデオコーダに、符号化されたビデオビットストリーム中の第1のシンタックス要素をコーディングすることと、ここにおいて、第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、第1のシンタックス要素の第2の値は、深度ブロックのために選択された深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、符号化されたビデオビットストリーム中の第2のシンタックス要素をコーディングすることと、ここにおいて、第2のシンタックス要素は、深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、SDCモードは、ビットストリームから少なくとも1つのDC残差値を復号することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、第1のシンタックス要素および第2のシンタックス要素に従って、符号化されたビデオビットストリーム中の深度ブロックをコーディングすることと、行わせる、コンピュータ可読記憶媒体。
[0317]例49. 第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、第2のシンタックス要素がsdc_flagシンタックス要素を備える、例48のコンピュータ可読記憶媒体。
[0318]例50. ビデオコーダに第1のシンタックス要素と第2のシンタックス要素とをコーディングさせる命令が、ビデオコーダに、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って第1のシンタックス要素と第2のシンタックス要素とをコーディングさせる命令を備える、例48のコンピュータ可読記憶媒体。
[0319]例51. ビデオコーダに、CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を不等確率状態へ設定させる命令をさらに備える、例50のコンピュータ可読記憶媒体。
[0320]例52. ビデオコーダに、CABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を不等確率状態へ設定させる命令が、ビデオコーダに、CABACプロセスに従って第1のシンタックス要素をコーディングするための初期確率状態を不等確率状態へ設定させる命令を備える、例51のコンピュータ可読記憶媒体。
[0321]例53. ビデオコーダに、深度ブロックを含むスライスのスライスタイプを決定することと、スライスタイプに基づいて、複数の確率状態からCABACプロセスに従って第1のシンタックス要素と第2のシンタックス要素の少なくとも1つを復号するための初期確率状態を選択することと、を行わせる命令をさらに備える、例50のコンピュータ可読記憶媒体。
[0322]例54. ビデオコーダにスライスのスライスタイプを決定させる命令が、ビデオコーダに、スライスがBスライスであるか、Pスライスであるか、またはIスライスであるかをビデオコーダに決定させる命令を備え、ビデオコーダに初期確率状態を選択させる命令が、ビデオコーダに、スライスがBスライスであるときに第1の初期確率状態を選択することと、スライスがPスライスであるときに第2の初期確率状態を選択することと、スライスがIスライスであるときに第3の初期確率状態を選択することと、を行わせる命令を備える、例53のコンピュータ可読記憶媒体。
[0323]例55. ビデオコーダに、深度ブロックの任意の隣接する深度ブロックのためのシンタックス要素の値を参照することなく、CABACプロセスに従って深度ブロックのための第1のシンタックス要素と第2のシンタックス要素の少なくとも1つをコーディングするための初期確率状態を設定させる命令をさらに備える、例50のコンピュータ可読記憶媒体。
[0324]例56. 少なくとも1つの第1のシンタックス要素と第2のシンタックス要素が、depth_mode_parametersシンタックス構造のシンタックス要素を備える、例48のコンピュータ可読記憶媒体。
[0325]例57. ビデオデータを符号化する方法であって、複数の深度イントラ予測モードから選択された深度イントラ予測モードに従って深度ブロックを符号化することと、ここにおいて、深度ブロックを符号化することは、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用することと、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択することと、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化することと、を備える、方法。
[0326]例58. 候補DC残差値のセットの各々にビュー合成最適化プロセスを適用することが、ビュー合成最適化プロセスに従って候補DC残差値のセットの各々に関するコストを決定することを備え、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択することが、候補DC残差値のセットからコストが最低である1つのDC残差値を選択することを備える、例57の方法。
[0327]例59. 決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することが、決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別することを備える、例57の方法。
[0328]例60. 第1のオフセット値と第2のオフセット値が同じ値である、例59の方法。
[0329]例61. 第1のオフセット値と第2のオフセット値が2である、例60の方法。
[0330]例62. 決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別することが、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別することを備え、DCResi[i]が決定されたDC残差値を示し、Offset1が第1のオフセット値であり、Offset2が第2のオフセット値であり、Offset1とOffset2の各々が非負の整数値を備える、例59の方法。
[0331]例63. ビデオエンコーダを備えるデバイスであって、ビデオエンコーダが、ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されるメモリと、複数の深度イントラ予測モードから選択された深度イントラ予測モードに従って深度ブロックを符号化することと、ここにおいて、深度ブロックを符号化することは、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用することと、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択することと、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化することと、を行うように構成される、1つまたは複数のプロセッサと、を備える、デバイス。
[0332]例64. 1つまたは複数のプロセッサが、ビュー合成最適化プロセスに従って候補DC残差値のセットの各々に関するコストを決定することと、候補DC残差値のセットからコストが最低の1つのDC残差値を選択することと、を行うように構成される、例63のデバイス。
[0333]例65. 1つまたは複数のプロセッサが、決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別するように構成される、例63のデバイス。
[0334]例66. 第1のオフセット値と第2のオフセット値が同じ値である、例65のデバイス。
[0335]例67. 第1のオフセット値と第2のオフセット値が2である、例66のデバイス。
[0336]例68. 1つまたは複数のプロセッサが、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別するように構成され、DCResi[i]が決定されたDC残差値を示し、Offset1が第1のオフセット値であり、Offset2が第2のオフセット値であり、Offset1とOffset2の各々が非負の整数値を備える、例65のデバイス。
[0337]例69. ビデオエンコーダを備えるデバイスであって、ビデオエンコーダが、深度イントラ予測モードに従って深度ブロックを符号化するための手段と、ここにおいて、深度ブロックを符号化することは、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別するための手段と、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用するための手段と、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択するための手段と、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化するための手段と、を備える、デバイス。
[0338]例70. 候補DC残差値のセットの各々にビュー合成最適化プロセスを適用するための手段が、ビュー合成最適化プロセスに従って候補DC残差値のセットの各々に関するコストを決定するための手段を備え、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択するための手段が、候補DC残差値のセットからコストが最低である1つのDC残差値を選択するための手段を備える、例69のデバイス。
[0339]例71. 決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別するための手段が、決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別するための手段を備える、例69のデバイス。
[0340]例72. 第1のオフセット値と第2のオフセット値が同じ値である、例71のデバイス。
[0341]例73. 第1のオフセット値と第2のオフセット値が2である、例72のデバイス。
[0342]例74. 決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別するための手段が、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別するための手段を備え、DCResi[i]が決定されたDC残差値を示し、Offset1が第1のオフセット値であり、Offset2が第2のオフセット値であり、Offset1とOffset2の各々が非負の整数値を備える、例71のデバイス。
[0343]例75. 命令を記憶したコンピュータ可読記憶媒体であって、この命令が、ビデオエンコーダの1つまたは複数のプロセッサによって実行されると、ビデオエンコーダに、深度イントラ予測モードに従って深度ブロックを符号化することと、ここにおいて、深度ブロックを符号化することは、深度イントラ予測モードのうちの示された1つに基づいて、深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、DC残差値は、深度ブロックの複数のサンプルの残差値を表し、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用することと、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択することと、符号化されたビデオビットストリームの中に選択されたDC残差値を符号化することと、を行わせる、コンピュータ可読記憶媒体。
[0344]例76. ビデオエンコーダに、候補DC残差値のセットの各々にビュー合成最適化プロセスを適用させる命令が、ビデオエンコーダに、ビュー合成最適化プロセスに従って候補DC残差値のセットの各々に関するコストを決定させる命令を備え、ビデオエンコーダに、ビュー合成最適化プロセスに基づいて候補DC残差値のセットから1つのDC残差値を選択させる命令が、ビデオエンコーダに、候補DC残差値のセットからコストが最低である1つのDC残差値を選択させる命令を備える、例75のコンピュータ可読記憶媒体。
[0345]例77. ビデオエンコーダに、決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別させる命令が、ビデオエンコーダに、決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別させる命令を備える、例75のコンピュータ可読記憶媒体。
[0346]例78. 第1のオフセット値と第2のオフセット値が同じ値である、例77のコンピュータ可読記憶媒体。
[0347]例79. 第1のオフセット値と第2のオフセット値が2である、例78のコンピュータ可読記憶媒体。
[0348]例80. ビデオエンコーダに、決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別させる命令が、ビデオエンコーダに、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別させる命令を備え、DCResi[i]が決定されたDC残差値を示し、Offset1が第1のオフセット値であり、Offset2が第2のオフセット値であり、Offset1とOffset2の各々が非負の整数値を備える、例77のコンピュータ可読記憶媒体。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
符号化されたビデオビットストリーム中の第1のシンタックス要素をコーディングすることと、ここにおいて、前記第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、前記第1のシンタックス要素の第2の値は、前記深度ブロックのために選択された前記深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、
前記符号化されたビデオビットストリーム中の第2のシンタックス要素をコーディングすることと、ここにおいて、前記第2のシンタックス要素は、前記深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、前記SDCモードは、前記ビットストリームから少なくとも1つのDC残差値を復号することを備え、前記DC残差値は、前記深度ブロックの複数のサンプルの残差値を表し、
前記第1のシンタックス要素および第2のシンタックス要素に従って前記深度ブロックをコーディングすることと、
を備える、方法。
[C2]
前記第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、前記第2のシンタックス要素がsdc_flagシンタックス要素を備える、C1に記載の方法。
[C3]
前記第1のシンタックス要素と第2のシンタックス要素とをコーディングすることが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って前記第1のシンタックス要素と第2のシンタックス要素とをコーディングすることを備える、C1に記載の方法。
[C4]
前記CABACプロセスに従って前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を不等確率状態に設定することをさらに備える、C3に記載の方法。
[C5]
前記CABACプロセスに従って前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための前記初期確率状態を不等確率状態に設定することが、前記CABACプロセスに従って前記第1のシンタックス要素をコーディングするための前記初期確率状態を不等確率状態に設定することを備える、C4に記載の方法。
[C6]
前記深度ブロックを含むスライスのスライスタイプを決定することと、
前記スライスタイプに基づいて、複数の確率状態から前記CABACプロセスに従って前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を選択することと、
をさらに備える、C3に記載の方法。
[C7]
前記深度ブロックの任意の隣接する深度ブロックのための前記シンタックス要素の値を参照することなく、前記CABACプロセスに従って前記深度ブロックのための前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を設定することをさらに備える、C3に記載の方法。
[C8]
前記第1のシンタックス要素と第2のシンタックス要素とをコーディングすることが、前記第1のシンタックス要素と第2のシンタックス要素とを復号することを備え、前記第1のシンタックス要素および第2のシンタックス要素に従って前記深度ブロックをコーディングすることが、前記深度ブロックのために選択された前記深度イントラ予測モードと、前記SDCモードを実行するかどうかの前記指示とに従って、前記深度ブロックを再構築することを備える、C1に記載の方法。
[C9]
前記第1のシンタックス要素と第2のシンタックス要素とをコーディングすることが、前記第1のシンタックス要素と第2のシンタックス要素とを符号化することを備え、前記方法が、
前記複数の深度イントラ予測モードから、前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化するために前記深度イントラ予測モードを選択することと、
前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化するために前記SDCモードを実行するかどうか決定することと、
をさらに備え、
前記第1のシンタックス要素および第2のシンタックス要素に従って前記深度ブロックをコーディングすることが、前記選択された深度イントラ予測モードと前記SDCモードを実行するかどうかの前記決定とに従って、前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化することを備える、C1に記載の方法。
[C10]
ビデオコーダを備えるデバイスであって、前記ビデオコーダが、
前記ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されたメモリと、
前記符号化されたビデオビットストリームから第1のシンタックス要素をコーディングすることと、ここにおいて、前記第1のシンタックス要素の第1の値は、複数の深度イントラ予測モードから深度ブロックのために選択された深度イントラ予測モードが、プレーナイントラ予測モード、DCイントラ予測モード、または方向性イントラ予測モードのうちの1つであることを示し、前記第1のシンタックス要素の第2の値は、前記深度ブロックのために選択された前記深度イントラ予測モードが、複数の深度モデリングモードまたは領域境界チェーンコーディングモードのうちの1つであることを示し、
前記符号化されたビデオビットストリームから第2のシンタックス要素をコーディングすることと、ここにおいて、前記第2のシンタックス要素は、前記深度ブロックを再構築するために簡易深度コーディング(SDC)モードを実行するかどうかを示し、前記SDCモードは、前記ビットストリームから少なくとも1つのDC残差値を復号することを備え、前記DC残差値は、前記深度ブロックの複数のサンプルの残差値を表し、
前記第1のシンタックス要素および第2のシンタックス要素に従って前記深度ブロックをコーディングすることと、
を行うように構成される1つまたは複数のプロセッサと、
を備える、デバイス。
[C11]
前記第1のシンタックス要素がhevc_intra_flagシンタックス要素を備え、前記第2のシンタックス要素がsdc_flagシンタックス要素を備える、C10に記載のデバイス。
[C12]
前記1つまたは複数のプロセッサが、コンテキスト適応型バイナリ算術コーディング(CABAC)プロセスに従って前記第1のシンタックス要素と第2のシンタックス要素とをコーディングするように構成される、C10に記載のデバイス。
[C13]
前記1つまたは複数のプロセッサがさらに、前記CABACプロセスに従って前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を不等確率状態に設定するように構成される、C12に記載のデバイス。
[C14]
前記1つまたは複数のプロセッサが、前記CABACプロセスに従って前記第1のシンタックス要素をコーディングするための前記初期確率状態を不等確率状態に設定するように構成される、C13に記載のデバイス。
[C15]
前記1つまたは複数のプロセッサがさらに、
前記深度ブロックを含むスライスのスライスタイプを決定することと、
前記スライスタイプに基づいて、複数の確率状態から前記CABACプロセスに従って前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を選択することと、
を行うように構成される、C12に記載のデバイス。
[C16]
前記1つまたは複数のプロセッサが、前記深度ブロックの任意の隣接する深度ブロックのための前記シンタックス要素の値を参照することなく、前記CABACプロセスに従って前記深度ブロックのための前記第1のシンタックス要素と第2のシンタックス要素のうちの少なくとも1つをコーディングするための初期確率状態を設定するように構成される、C12に記載のデバイス。
[C17]
前記ビデオコーダがビデオデコーダを備え、前記1つまたは複数のプロセッサが、前記第1のシンタックス要素と第2のシンタックス要素とを復号することと、前記深度ブロックのために選択された前記深度イントラ予測モードと、前記SDCモードを実行するかどうかの前記指示とに従って、前記深度ブロックを再構築することと、を行うように構成される、C10に記載のデバイス。
[C18]
前記ビデオコーダがビデオエンコーダを備え、前記1つまたは複数のプロセッサが、
前記複数の深度イントラ予測モードから、前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化するために前記深度イントラ予測モードを選択することと、
前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化するために前記SDCモードを実行するかどうか決定することと、
前記選択された深度イントラ予測モードと前記SDCモードを実行するかどうかの前記決定とに従って、前記符号化されたビデオビットストリーム中の前記深度ブロックを符号化することと、
前記符号化されたビデオビットストリーム中の前記第1のシンタックス要素と第2のシンタックス要素とを符号化することと、
を行うように構成される、C10に記載のデバイス。
[C19]
ビデオデータを符号化する方法であって、
複数の深度イントラ予測モードから選択される深度イントラ予測モードに従って深度ブロックを符号化することと、ここにおいて、前記深度ブロックを符号化することは、前記深度イントラ予測モードのうちの前記示された1つに基づいて、前記深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、前記DC残差値は、前記深度ブロックの複数のサンプルの残差値を表し、
前記決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、
候補DC残差値の前記セットの各々にビュー合成最適化プロセスを適用することと、
前記ビュー合成最適化プロセスに基づいて、候補DC残差値の前記セットから1つのDC残差値を選択することと、
符号化されたビデオビットストリームの中に前記選択されたDC残差値を符号化することと、
を備える、方法。
[C20]
候補DC残差値の前記セットの各々にビュー合成最適化プロセスを適用することが、前記ビュー合成最適化プロセスに従って候補DC残差値の前記セットの各々に関するコストを決定することを備え、前記ビュー合成最適化プロセスに基づいて候補DC残差値の前記セットから1つのDC残差値を選択することが、候補DC残差値の前記セットから、最低のコストを有する前記1つのDC残差値を選択することを備える、C19に記載の方法。
[C21]
前記決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することが、前記決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、前記決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別することを備える、C19に記載の方法。
[C22]
前記第1のオフセット値と第2のオフセット値が同じ値である、C21に記載の方法。
[C23]
前記第1のオフセット値と第2のオフセット値が2である、C22に記載の方法。
[C24]
前記決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、前記決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別することが、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別することを備え、
DCResi[i]が前記決定されたDC残差値を示し、
Offset1が前記第1のオフセット値であり、Offset2が前記第2のオフセット値であり、
Offset1とOffset2の各々が非負の整数値を備える、C21に記載の方法。
[C25]
ビデオエンコーダを備えるデバイスであって、前記ビデオエンコーダが、
前記ビデオデータを符号化する符号化されたビデオビットストリームを記憶するように構成されたメモリと、
複数の深度イントラ予測モードから選択される深度イントラ予測モードに従って深度ブロックを符号化することと、ここにおいて、前記深度ブロックを符号化することは、前記深度イントラ予測モードのうちの前記示された1つに基づいて、前記深度ブロックのための少なくとも1つのDC残差値を決定するために簡易深度コーディング(SDC)モードを実行することを備え、前記DC残差値は、前記深度ブロックの複数のサンプルの残差値を表し、
前記決定されたDC残差値を含むDC残差値のある範囲内の候補DC残差値のセットを識別することと、
候補DC残差値の前記セットの各々にビュー合成最適化プロセスを適用することと、
前記ビュー合成最適化プロセスに基づいて、候補DC残差値の前記セットから1つのDC残差値を選択することと、
符号化されたビデオビットストリームの中に前記選択されたDC残差値を符号化することと、
を行うように構成される1つまたは複数のプロセッサと、
を備える、デバイス。
[C26]
前記1つまたは複数のプロセッサが、前記ビュー合成最適化プロセスに従って候補DC残差値の前記セットの各々に関するコストを決定することと、候補DC残差値の前記セットから、最低のコストを有する前記1つのDC残差値を選択することと、を行うように構成される、C25に記載のデバイス。
[C27]
前記1つまたは複数のプロセッサが、前記決定されたDC残差値よりも小さい第1のオフセット値である第1のDC残差値から、前記決定されたDC残差値よりも大きい第2のオフセット値である第2のDC残差値までの、DC残差値の範囲内の候補DC残差値のセットを識別するように構成される、C25に記載のデバイス。
[C28]
前記第1のオフセット値と第2のオフセット値が同じ値である、C27に記載のデバイス。
[C29]
前記第1のオフセット値と第2のオフセット値が2である、C28に記載のデバイス。
[C30]
前記1つまたは複数のプロセッサが、[DCResi[i]−Offset1,DCResi[i]+Offset2]によって定義される範囲内の候補DC残差値のセットを識別するように構成され、
DCResi[i]が前記決定されたDC残差値を示し、
Offset1が前記第1のオフセット値であり、Offset2が前記第2のオフセット値であり、
Offset1とOffset2の各々が非負の整数値を備える、C27に記載のデバイス。