(57)【特許請求の範囲】
【請求項１】
マルチビュービデオデータを復号するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定することと、
前記視差ベクトル導出プロセスが前記視差ベクトルを導出することが不可能であることに基づいて、前記視差ベクトルを生成することと、ここにおいて、前記視差ベクトルを生成することは、
前記可用性値が、前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すことに基づいて、
参照ビューの深度ビューコンポーネントにアクセスすることと、ここにおいて、前記参照ビューは、前記現在ビューとは異なる、
前記参照ビューの前記深度ビューコンポーネントに関連付けられた深度ブロックの４つのコーナーピクセルに関連付けられたそれぞれの深度値から深度値を選択することと、
リファインメントされた視差ベクトルを形成するために、前記選択された深度値を前記生成されたゼロ視差ベクトルの水平成分に変換することと
を行うことによって少なくとも部分的に、視差ベクトルリファインメントプロセスをゼロ水平成分とゼロ垂直成分とを有するゼロ視差ベクトルに適用することを備える、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号することと
を備える方法。
【請求項２】
前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように、前記可用性値を設定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持することと、
１つまたは複数のコーディングツールによって使用するために前記変数を提供することと
をさらに備える、請求項２に記載の方法。
【請求項４】
前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、請求項３に記載の方法。
【請求項５】
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
請求項１に記載の方法。
【請求項６】
前記現在ブロックについての前記視差ベクトルに基づいて前記現在ブロックを復号することが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについての前記視差ベクトルを使用することを備える、請求項１に記載の方法。
【請求項７】
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、請求項１に記載の方法。
【請求項８】
前記深度ブロックと前記現在ブロックとは、同じサイズのものである、請求項１に記載の方法。
【請求項９】
マルチビュービデオデータを符号化するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定することと、
前記視差ベクトル導出プロセスが前記視差ベクトルを導出することが不可能であることに基づいて、前記視差ベクトルを生成することと、ここにおいて、前記視差ベクトルを生成することは、
前記可用性値が、前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すことに基づいて、
参照ビューの深度ビューコンポーネントにアクセスすることと、ここにおいて、前記参照ビューは、前記現在ビューとは異なる、
前記参照ビューの前記深度ビューコンポーネントに関連付けられた深度ブロックの４つのコーナーピクセルに関連付けられたそれぞれの深度値から深度値を選択することと、
リファインメントされた視差ベクトルを形成するために、前記選択された深度値を前記生成されたゼロ視差ベクトルの水平成分に変換することと、
を行うことによって少なくとも部分的に、視差ベクトルリファインメントプロセスをゼロ水平成分とゼロ垂直成分とを有するゼロ視差ベクトルに適用することを備える、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを符号化することと
を備える方法。
【請求項１０】
前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように、前記可用性値を設定することをさらに備える、請求項９に記載の方法。
【請求項１１】
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持することと、
１つまたは複数のコーディングツールによって使用するために前記変数を提供することと
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、請求項１１に記載の方法。
【請求項１３】
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
請求項９に記載の方法。
【請求項１４】
前記現在ブロックについての前記視差ベクトルに基づいて前記現在ブロックを符号化することが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについての前記視差ベクトルを使用することを備える、請求項９に記載の方法。
【請求項１５】
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、請求項９に記載の方法。
【請求項１６】
マルチビュービデオデータを記憶するように構成されたメモリと、
前記メモリに結合された１つまたは複数のプロセッサと
を備えるビデオ復号デバイスであって、前記１つまたは複数のプロセッサが、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定し、
前記視差ベクトル導出プロセスが前記視差ベクトルを導出することが不可能であることに基づいて、前記視差ベクトルを生成し、ここにおいて、前記視差ベクトルを生成するために、前記１つまたは複数のプロセッサは、
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すことに基づいて、視差ベクトルリファインメントプロセスをゼロ水平成分とゼロ垂直成分とを有するゼロ視差ベクトルに適用するように構成され、ここにおいて、前記視差ベクトルリファインメントプロセスを適用するために、前記１つまたは複数のプロセッサは、
前記現在ブロックについての前記視差ベクトルを生成するために、参照ビューの深度ビューコンポーネントにアクセスし、ここにおいて、前記参照ビューは、前記現在ビューとは異なる、
前記参照ビューの前記深度ビューコンポーネントに関連付けられた深度ブロックの４つのコーナーピクセルに関連付けられたそれぞれの深度値から深度値を選択し、
リファインメントされた視差ベクトルを形成するために、前記選択された深度値を前記生成されたゼロ視差ベクトルの水平成分に変換する
ように構成される、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号する
ように構成される、ビデオ復号デバイス。
【請求項１７】
前記ビデオ復号デバイスは、
１つまたは複数の集積回路、
１つまたは複数のマイクロプロセッサ、
１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、
１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、
デスクトップコンピュータ、
ラップトップコンピュータ、
タブレットコンピュータ、
電話、
テレビジョン、
カメラ、
ディスプレイデバイス、
デジタルメディアプレーヤ、
ビデオゲームコンソール、
ビデオゲームデバイス、
ビデオストリーミングデバイス、または、
ワイヤレス通信デバイス
のうちの少なくとも１つを備える、請求項１６に記載のビデオ復号デバイス。
【請求項１８】
前記１つまたは複数のプロセッサが、前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように前記可用性値を設定するように構成される、請求項１６に記載のビデオ復号デバイス。
【請求項１９】
前記１つまたは複数のプロセッサが、
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持し、
１つまたは複数のコーディングツールによって使用するために前記変数を提供する
ように構成される、請求項１８に記載のビデオ復号デバイス。
【請求項２０】
前記１つまたは複数のプロセッサが、前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にするように構成される、請求項１９に記載のビデオ復号デバイス。
【請求項２１】
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
請求項１６に記載のビデオ復号デバイス。
【請求項２２】
前記１つまたは複数のプロセッサが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについて前記視差ベクトルを使用するように構成される、請求項１６に記載のビデオ復号デバイス。
【請求項２３】
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、請求項１６に記載のビデオ復号デバイス。
【請求項２４】
前記１つまたは複数のプロセッサが、前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号するように構成される、請求項１６に記載のビデオ復号デバイス。
【請求項２５】
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて前記現在ブロックをコーディングすることの一環として、前記１つまたは複数のプロセッサが、前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを符号化するように前記１つまたは複数のプロセッサが構成される、請求項１６に記載のビデオ復号デバイス。
【請求項２６】
マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行するための手段と、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定するための手段と、
前記視差ベクトル導出プロセスが前記視差ベクトルを導出することが不可能であることに基づいて、前記視差ベクトルを生成するための手段と、前記視差ベクトルを前記生成するための手段は、
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すことに基づいて、視差ベクトルリファインメントプロセスをゼロ水平成分とゼロ垂直成分とを有するゼロ視差ベクトルに適用するための手段を備え、前記視差ベクトルリファインメントプロセスを前記適用するための手段は、
参照ビューの深度ビューコンポーネントにアクセスするための手段と、ここにおいて、前記参照ビューは、前記現在ビューとは異なる、
前記参照ビューの前記深度ビューコンポーネントに関連付けられた深度ブロックの４つのコーナーピクセルに関連付けられたそれぞれの深度値から深度値を選択ための手段と、
リファインメントされた視差ベクトルを形成するために、前記選択された深度値を前記生成されたゼロ視差ベクトルの水平成分に変換するための手段と
を備える、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号するための手段と
を備えるビデオ復号デバイス。
【請求項２７】
実行されると、
マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定し、
前記視差ベクトル導出プロセスが前記視差ベクトルを導出することが不可能であることに基づいて、前記視差ベクトルを生成し、ここにおいて、前記視差ベクトルを前記生成するための命令は、実行されると、１つまたは複数のプロセッサに、
前記可用性値が、前記視差ベクトル導出プロセスが前記現在ブロックについての前記視差ベクトルを導出しなかったことを示すことに基づいて、視差ベクトルリファインメントプロセスをゼロ水平成分とゼロ垂直成分とを有するゼロ視差ベクトルに適用することを行わせる命令を備え、ここにおいて、前記視差ベクトルリファインメントプロセスを前記適用するための命令は、実行されると、前記１つまたは複数のプロセッサに、
参照ビューの深度ビューコンポーネントにアクセスし、ここにおいて、前記参照ビューは、前記現在ビューとは異なる、
前記参照ビューの前記深度ビューコンポーネントに関連付けられた深度ブロックの４つのコーナーピクセルに関連付けられたそれぞれの深度値から深度値を選択し、
リファインメントされた視差ベクトルを形成するために、前記選択された深度値を前記生成されたゼロ視差ベクトルの水平成分に変換すること
を行わせる命令を備え、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号する
ようにビデオ復号デバイスの前記１つまたは複数のプロセッサを構成する命令を記憶した、非一時的コンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、内容全体が参照により本明細書に組み込まれる、２０１３年３月２２日に出願された米国仮特許出願第６１／８０４，５８３号の利益を主張する。
【０００２】
[0002]本開示は、ビデオ符号化および復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス内のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用することができる。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は次いで量子化することができる。量子化係数は、最初に２次元アレイで構成され、係数の１次元ベクトルを生成するために走査することができ、なお一層の圧縮を達成するためにエントロピーコーディングを適用することができる。
【０００６】
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの３次元（３Ｄ）ビデオ規格が開発されている。たとえば、３Ｄビデオをサポートするために、異なるビューが左眼ビューと右眼ビューを送信し得る。代替的に、いくつかの３Ｄビデオコーディングプロセスは、いわゆるマルチビュー＋深度コーディング（multiview plus depth coding）を適用し得る。マルチビュー＋深度コーディングでは、３Ｄビデオビットストリームが、テクスチャビューコンポーネントだけでなく、深度ビューコンポーネントをも含んでいることがある。たとえば、各ビューは、１つのテクスチャビューコンポーネントと１つの深度ビューコンポーネントとを備え得る。
【発明の概要】
【０００７】
[0007]概して、本開示は、マルチビュービデオコーディングに関する。より具体的には、ビデオコーダはマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し得る。視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、ビデオコーダは現在ブロックについてのリファインメント(refinement)された視差ベクトルを生成するために、視差ベクトルリファインメントプロセスを実行し得る。本開示の技法は、後方ビュー合成予測（backward view synthesis prediction）がサポートされるとき、視差ベクトル導出に適用可能であり得る。
【０００８】
[0008]一例では、本開示は、マルチビュービデオデータを復号するための方法を説明し、この方法は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、現在ブロックは現在のビュー中にある、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定することと、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することと、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号することとを備える。
【０００９】
[0009]別の例では、本開示は、マルチビュービデオデータを符号化するための方法を説明し、この方法は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、現在ブロックは現在のビュー中にある、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定することと、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することと、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号することとを備える。
【００１０】
[0010]別の例では、本開示は、マルチビュービデオデータを記憶するメモリと、１つまたは複数のプロセッサとを備えるビデオコーディングデバイスを説明し、１つまたは複数のプロセッサは、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定し、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すとき、現在ブロックについてのリファインメントされた視差ベクトルを生成するために視差ベクトルリファインメントプロセスを実行するように構成される。
【００１１】
[0011]別の例では、本開示は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行するための手段と、現在ブロックは現在のビュー中にある、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定するための手段と、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成するための手段とを備えるビデオコーディングデバイスを説明する。
【００１２】
[0012]別の例では、本開示は、実行されると、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定し、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成する、ように１つまたは複数のプロセッサを構成する命令を記憶した、非一時的コンピュータ可読データ記憶媒体を説明する。
【００１３】
[0013]別の例では、本開示は、マルチビュービデオデータを復号するための方法を説明し、この方法は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、現在ブロックについての視差ベクトルを決定することと、現在ブロックについての視差ベクトルに基づいて、現在ブロックを復号することとを備える。
【００１４】
[0014]別の例では、本開示は、マルチビュービデオデータを符号化するための方法を説明し、この方法は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、現在ブロックについての視差ベクトルを決定することと、現在ブロックについての視差ベクトルに基づいて、現在ブロックを符号化することとを備える。
【００１５】
[0015]別の例では、本開示は、マルチビュービデオデータをコーディングするためのデバイスを説明し、このデバイスは、マルチビュービデオデータを記憶するメモリと、１つまたは複数のプロセッサとを備え、１つまたは複数のプロセッサは、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、現在ブロックについての視差ベクトルを決定し、現在ブロックについての視差ベクトルに基づいて、現在ブロックをコーディングするように構成される。
【００１６】
[0016]別の例では、本開示は、マルチビュービデオデータをコーディングするためのデバイスを説明し、このデバイスは、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行するための手段と、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、現在ブロックについての視差ベクトルを決定するための手段と、現在ブロックについての視差ベクトルに基づいて、現在ブロックをコーディングするための手段とを備える。
【００１７】
[0017]別の例では、本開示は、マルチビュービデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサによって実行されると、デバイスに、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、現在ブロックは現在ビュー中にある、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、現在ブロックについての視差ベクトルを決定し、現在ブロックについての視差ベクトルに基づいて、現在ブロックをコーディングすることを行わせる命令を記憶した、非一時的コンピュータ可読データ記憶媒体を説明する。
【００１８】
[0018]本開示の１つまたは複数の例の詳細が、添付の図面および下記の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】[0019]本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0020]現在ＰＵに関して、例示的な空間的隣接予測ユニット（ＰＵ）を示す概念図。
【図３】[0021]例示的なマルチビュー復号順序を示す概念図。
【図４】[0022]マルチビューコーディングのための例示的な予測構造を示す概念図。
【図５】[0023]後方ビュー合成予測（ＢＶＳＰ）を実行するための参照ビューからの深度ブロック導出を示す概念図。
【図６】[0024]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図７】[0025]本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図８】[0026]本開示の１つまたは複数の技法による、マルチビュービデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図９】[0027]本開示の１つまたは複数の技法による、マルチビュービデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図１０】[0028]本開示の１つまたは複数の技法による、マルチビュービデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図１１】[0029]本開示の１つまたは複数の技法による、マルチビュービデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００２０】
[0030]高効率ビデオコーディング（ＨＥＶＣ）は、新たに開発されたビデオコーディング規格である。３Ｄ−ＨＥＶＣは、３次元ビデオデータのためのＨＥＶＣの拡張である。３Ｄ−ＨＥＶＣは、異なる視点からの同じシーンの複数のビューを提供する。３Ｄ−ＨＥＶＣのための規格化の取り組みは、ＨＥＶＣに基づくマルチビュービデオコーデックの規格化を含む。３Ｄ−ＨＥＶＣでは、異なるビューから再構成されたビュー成分に基づくビュー間予測が有効にされる。コーディング効率をさらに改善するために、３Ｄ−ＨＥＶＣ用の参照ソフトウェアの一部のバージョンでは、２つの新たなコーディングツール、すなわち、ビュー間動き予測およびビュー内残差予測が採用されている。
【００２１】
[0031]３Ｄ−ＨＥＶＣにおいて、ビュー間予測は、標準ＨＥＶＣにおいて使用される動き補償と同様であり、同じまたは類似のシンタックス要素を使用し得る。マージモード、スキップモード、および高度動きベクトル予測（ＡＭＶＰ）モードが動き予測の例示的なタイプである。ビデオコーダが予測ユニット（ＰＵ）に対してビュー間予測を実行するとき、ビデオコーダは、動き情報のソースとして、ＰＵと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャを使用し得る。対照的に、従来の動き補償は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。したがって、３Ｄ−ＨＥＶＣでは、従属ビュー中のブロックの動きパラメータは、同じアクセスユニットの他のビュー中のすでにコード化動きパラメータに基づいて予測または推測される。
【００２２】
[0032]ビデオコーダが動き予測を実行するとき、ビデオコーダは、現在ＰＵの動き情報がマージモード、スキップモード、またはＡＭＶＰモードを使用してシグナリングされるとき、候補リスト（たとえば、マージ用候補リストまたはＡＭＶＰ候補リスト）を生成し得る。３Ｄ−ＨＥＶＣ中のビュー間動き予測を実装するために、候補リストはビュー間予測動きベクトル候補を含み得る。ビデオコーダは、候補リスト中の他の候補と同じ方法でビュー間予測動きベクトル候補を使用し得る。ビュー間予測動きベクトル候補は、視差参照ピクチャのＰＵ（すなわち、参照ＰＵ）の動き情報を指定し得る。視差参照ピクチャは、現在ＰＵと同じ時間アクセスユニット中にあるが、現在ＰＵとは異なるビュー中にあり得る。視差基準ピクチャ中の参照ＰＵを決定するために、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するための視差ベクトル構築プロセスを実行し得る。現在ＰＵについての視差ベクトルは、現在ＰＵの予測ブロックと、視差参照ピクチャ中のロケーションとの間の空間変位を示し得る。参照ＰＵは、視差ベクトルによって示されたロケーションをカバーする視差参照ピクチャのＰＵであり得る。
【００２３】
[0033]一般に、ビュー合成予測（ＶＳＰ）は、予測の目的で、現在視点に対して隣接視点からのピクチャをワーピングさせる技法である。ワーピングを実行するために、深度情報が使用される。後方ワーピングＶＳＰ（ＢＶＳＰ）は、後方ワーピング動作を実行する目的で深度ブロックを導出するために隣接ブロックを使用する。後方ワーピングでは、ワーピングに使用される深度は、一般に、従属ビュー中の深度ファーストコーディング（depth first coding）を必要とする、現在ピクチャの同じ視点からである。ＢＶＳＰ中のブロックについての深度情報を推定するために、ビデオコーダは隣接ブロックから視差ベクトルを導出することができる。ビデオコーダは、次いで、参照ビューから深度ブロックを取得するために、その導出された視差ベクトルを使用し得る。
【００２４】
[0034]視差ベクトルを導出するために、ビデオコーダは、隣接ブロックベースの視差ベクトル（ＮＢＤＶ：Neighboring Blocks Based Disparity Vector）の方法を実行し得る。ビデオコーダが現在ＰＵに関する視差ベクトルを導出するためのＮＢＤＶ導出を使用するとき、ビデオコーダは、視差ベクトルを導出するために、空間的および時間的隣接ブロックからの視差動きベクトルを使用し得る。この開示では、ＰＵの視差動きベクトルは、視差参照ピクチャ（すなわち、ＰＵとは異なるビュー中にある参照ピクチャ）中の位置を示す動きベクトルを指す。さらに、説明を簡単にするために、本開示は、隣接ブロックとして、空間的隣接ブロックまたは時間的隣接ブロックのいずれかを指す場合がある。
【００２５】
[0035]ビデオコーダは、視差ベクトルをリファインメントするために、参照ビューの深度ビューコンポーネントを使用し得る。ビデオコーダは、後方ビュー合成予測で使用する目的で視差動きベクトルをリファインメントするために同じリファインメントプロセスを使用し得る。特に、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するためにＮＢＤＶプロセスを使用し得る。ビデオコーダがＮＢＤＶ導出を使用して利用可能な視差ベクトルを決定するとき（たとえば、ビデオコーダが隣接ブロック中の視差動きベクトルを発見するとき）、ビデオコーダは、参照ビューの深度マップから深度データを取り出すことによって、視差ベクトルをさらにリファインメントすることが可能である。リファインメントプロセスは２つのステップを含む。第１に、ビデオコーダは、ベースビューなど、以前にコーディングされた参照深度ビュー中の導出された視差ベクトルによって対応する深度ブロックの位置を特定する。対応する深度ブロックのサイズは現在ＰＵのブロックのサイズと同じである。第２に、ビデオコーダは、対応する深度ブロックの４つのコーナーピクセルから１つの深度値を選択し、その選択された深度値をリファインメントされた視差ベクトルの水平成分に変換する。視差ベクトルの水平成分は不変である。
【００２６】
[0036]上記のプロセスは、ＮＢＤＶリファインメント（ＮＢＤＶ−Ｒ）または深度指向ＮＢＤＶ（Ｄｏ−ＮＢＤＶ）とも呼ばれる。ビデオコーダは、ビュー間動き予測についてのリファインメントされた視差ベクトルを使用し得るが、ビデオコーダはビュー間残差予測についてのリファインメントされていない視差ベクトルを使用し得る。さらに、ＰＵが後方ＶＳＰモードでコーディングされる場合、ビデオコーダはＰＵの動きベクトルとして、リファインメントされた視差ベクトルを記憶し得る。ＮＢＤＶプロセスが利用可能な視差ベクトルを提供しないとき、上記のＮＢＤＶ−Ｒプロセスはスキップされ、ゼロ視差ベクトルが直接返される。
【００２７】
[0037]３Ｄ−ＨＥＶＣの現在視差ベクトル導出方法にはいくつかの問題がある。たとえば、ＮＢＤＶプロセスが利用不可能な視差ベクトルを提供するとき、ビデオコーダは、その視差ベクトルをリファインメントするために、ＮＢＤＶ−Ｒプロセスをスキップし得る。これはコーディング性能の低下をもたらし得る。
【００２８】
[0038]本開示の技法は、前述の問題または短所を解決し得る。すなわち、本開示は、視差ベクトル導出方法（たとえば、３Ｄ−ＨＥＶＣにおけるＮＢＤＶ）が利用可能な視差ベクトルを生成しないとき、参照ビューの深度ビューコンポーネントにアクセスすることによって、より良好にリファインメントされた視差ベクトルを提供し得る。
【００２９】
[0039]いくつかの例では、ビデオデコーダはマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し得る。視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、ビデオデコーダは、それでも、現在ブロックについてのリファインメントされた視差ベクトルを生成するために、視差ベクトルリファインメントプロセスを依然として実行し得る。いくつかのそのような例では、視差ベクトルリファインメントプロセスはゼロ視差ベクトルを使用する。言い換えると、視差ベクトルリファインメントプロセスは、視差ベクトル導出プロセスが利用可能な視差ベクトルを生成する事例に限定されない。視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しない場合ですら、本開示の技法は、（ゼロに等しい水平および垂直成分を有するデフォルト視差ベクトルなど）何らかのデフォルト視差ベクトルについての視差ベクトルリファインメントを可能にする。
【００３０】
[0040]いくつかの例では、視差ベクトル導出プロセス（たとえば、ＮＢＤＶ導出）が、当初、利用可能な視差ベクトルとして返されるか否かを識別するために変数が維持される。この変数は、一定の条件で他のコーディングツールに関して使用され得る。たとえば、０に等しいこのフラグは、現在ブロックについてのビュー間残差予測の無効をもたらし得る。
【００３１】
[0041]図１は、本開示の技法を利用できる例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指すことがある。
【００３２】
[0042]図１に示すように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は符号化ビデオデータを生成する。したがって、ソースデバイス１２はビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４はソースデバイス１２によって生成された符号化ビデオデータを復号することができる。したがって、宛先デバイス１４はビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００３３】
[0043]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
【００３４】
[0044]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする１つまたは複数の通信媒体を備えることができる。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などのワイヤレスおよび／または有線の通信媒体を含む場合がある。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）などのパケットベースネットワークの一部を形成する場合がある。１つまたは複数の通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を容易にする、ルータ、スイッチ、基地局、または他の機器を含む場合がある。
【００３５】
[0045]別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、たとえば、ディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、種々のローカルにアクセスされるデータ記憶媒体を含み得る。
【００３６】
[0046]さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブが挙げられる。
【００３７】
[0047]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。データ接続の例示的なタイプとしては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、デジタル加入者線（ＤＳＬ）、ケーブルモデムなど）、または両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３８】
[0048]本開示の技法は、ワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００３９】
[0049]図１は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶し得、および／またはビデオ復号デバイスはメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、かつ／またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。データは、マルチビュービデオデータなど、ビデオデータを含み得る。
【００４０】
[0050]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含む場合がある。ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／またはビデオデータを生成するためのコンピュータグラフィックスシステム、あるいはビデオデータのそのようなソースの組合せを含み得る。
【００４１】
[0051]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化することができる。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００４２】
[0052]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信し得る。ビデオデコーダ３０は、符号化ビデオデータを復号し得る。ディスプレイデバイス３２は、復号されたビデオデータを表示し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るかまたはその外部にあり得る。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスを備える場合がある。
【００４３】
[0053]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれる場合があり、両者のいずれかがそれぞれのデバイス内の複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれる場合がある。
【００４４】
[0054]本開示は、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及する場合がある。「シグナリング」という用語は、概して、圧縮ビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに起こり得る。代替的に、そのような通信は、符号化時に符号化されたビットストリーム内でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われる場合があるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００４５】
[0055]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、そのスケーラブルビデオコーディング（ＳＶＣ）拡張、マルチビュービデオコーディング（ＭＶＣ）拡張、およびＭＶＣベースの３ＤＶ拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌおよび（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４などのビデオ圧縮規格に従って動作する。いくつかの事例では、Ｈ．２６４／ＡＶＣのＭＶＣベース３ＤＶ拡張に準拠するどんなビットストリームも、Ｈ．２６４／ＡＶＣのＭＶＣ拡張に準拠するサブビットストリームを常に含む。さらに、Ｈ．２６４／ＡＶＣに対する３次元ビデオ（３ＤＶ）コーディング拡張、すなわちＡＶＣベースの３ＤＶを生成する作業が進行中である。他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、およびＩＴＵ−Ｔ  Ｈ．２６４、ＩＳＯ／ＩＥＣ  Ｖｉｓｕａｌに従って動作し得る。
【００４６】
[0056]他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパーツグループ（ＭＰＥＧ：Motion Picture Experts Group）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発された高効率ビデオコーディング（ＨＥＶＣ）規格に従って動作し得る。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８」と呼ばれるＨＥＶＣ規格のドラフトは、Ｂｒｏｓｓらの「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ８」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１０回会議、ストックホルム、スウェーデン、２０１２年７月、に記載されている。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ９」と呼ばれるＨＥＶＣ規格の別ドラフトは、Ｂｒｏｓｓらの「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ９」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１１回会議、上海、中国、２０１２年１０月、に記載されている。さらに、ＨＥＶＣ向けのスケーラブルビデオコーディング拡張、マルチビューコーディング拡張、および３ＤＶ拡張を製作する作業が進行中である。ＨＥＶＣのスケーラブルビデオコーディング拡張はＳＨＥＶＣと呼ばれることがある。
【００４７】
[0057]現時点で、ＶＣＥＧおよびＭＰＥＧの３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｃ）は、ＨＥＶＣに基づく３ＤＶ規格を開発中であり、規格化作業の一部は、ＨＥＶＣ（ＭＶ−ＨＥＶＣ）に基づくマルチビュービデオコーデックの規格化を含み、別の部分はＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）の規格化を含む。３Ｄ−ＨＥＶＣ用に、コーディングユニット／予測ユニットレベルにおけるものを含む新たなコーディングツールが、テクスチャおよび深度ビューの両方のために、含められ、サポートされ得る。３Ｄ−ＨＥＶＣのためのソフトウェア３Ｄ−ＨＴＭが以下のリンクからダウンロードされ得る。[３Ｄ−ＨＴＭバージョン６．０]：
ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−６．０／
[0058]次のように、参照ソフトウェア記述、ならびに３Ｄ−ＨＥＶＣの作業草案が利用可能である。２０１３年１２月２４日現在、以下のリンク、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／２＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴ３Ｖ−Ｂ１００５−ｖ１．ｚｉｐからダウンロードされ得る、Ｇｅｒｈａｒｄ  Ｔｅｃｈ、Ｋｒｚｙｓｚｔｏｆ  Ｗｅｎｇｅｒ、Ｙｉｎｇ  Ｃｈｅｎ、Ｓｅｈｏｏｎ  Ｙｅａ、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｄｒａｆｔ  ２」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発に関する共同研究部会、第２回会議、上海、中国、２０１２年１０月。３Ｄ−ＨＥＶＣの参照ソフトウェア記述の別のバージョンは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝７０６から利用可能であり得る。「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３」と呼ばれる、３Ｄ−ＨＥＶＣの別のドラフトは、Ｔｅｃｈらの、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発に関する共同研究部会、第３回会議、ジュネーブ、スイス、２０１３年１月１７日〜２３日、書類番号ＪＣＴ３Ｖ−Ｃ１００５＿ｓｐｅｃ＿ｄ１に記述されている。ビデオエンコーダ２０およびビデオデコーダ３０は、ＳＨＥＶＣ、ＭＶ−ＨＥＶＣおよび／または３Ｄ−ＨＥＶＣに従って動作し得る。
【００４８】
[0059]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４９】
[0060]ビデオエンコーダ２０は、ピクチャの符号化表現を生成するために、コーディングツリーユニット（ＣＴＵ）のセットを生成してもよい。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーン（color plane）を有する１つまたは複数のモノクロームピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００５０】
[0061]コード化スライスは、スライスヘッダとスライスデータとを含み得る。スライスのスライスヘッダは、スライスについての情報を提供するシンタックス要素を含むシンタックス構造であり得る。スライスデータは、スライスのＣＴＵを含み得る。
【００５１】
[0062]本開示は、１つまたは複数のサンプルブロックのサンプルをコーディングするのに使われる１つまたは複数のサンプルブロックおよびシンタックス構造を指すのに、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使う場合がある。例示的なタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分などを含み得る。一般に、ブロックのサイズは、そのブロックに関連付けられたサンプルブロックのサイズを指し得る。
【００５２】
[0063]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００５３】
[0064]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分してもよい。予測ブロックは、同じ予測がそれに適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成してもよい。
【００５４】
[0065]ビデオエンコーダ２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ブロックを生成し得る。ビデオエンコーダ２０がイントラ予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャのサンプルに基づいてＰＵの予測ブロックを生成し得る。本開示では、「に基づいて」という句は、「に少なくとも部分的に基づいて」を示し得る。
【００５５】
[0066]ビデオエンコーダ２０がインター予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。インター予測は、単方向（すなわち、単予測（uni-prediction））でも双方向（すなわち、双予測（bi-prediction））でもよい。インター予測を実行するために、ビデオエンコーダ２０は、現在ピクチャについての第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）を生成すればよく、現在ピクチャについての第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を生成してもよい。参照ピクチャリストの各々は、１つまたは複数の参照ピクチャを含み得る。参照ピクチャリストが構築された後（すなわち、利用可能であれば、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１）、参照ピクチャリストに対する参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを識別するために使用され得る。
【００５６】
[0067]単予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１のいずれかまたは両方において参照ピクチャを探索して、参照ピクチャ内の参照ロケーションを決定すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、ＰＵのための予測ブロックを生成すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、ＰＵの予測ブロックと参照ロケーションとの間の空間変位を示す単一の動きベクトルを生成すればよい。動きベクトルは、ＰＵの予測ブロックと参照ロケーションとの間の水平変位を指定する水平成分を含み得るともに、ＰＵの予測ブロックと参照ロケーションとの間の垂直変位を指定する垂直成分を含み得る。
【００５７】
[0068]ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャ中の第１の参照ロケーションと、ＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャ中の第２の参照ロケーションとを決定すればよい。ビデオエンコーダ２０は、ＰＵのための予測ブロックを、第１および第２の参照ロケーションに対応するサンプルに少なくとも部分的に基づいて生成し得る。さらに、ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＰＵの予測ブロックと第１の参照ロケーションとの間の空間変位を示す第１の動きベクトルと、ＰＵの予測ブロックと第２の参照ロケーションとの間の空間変位を示す第２の動きベクトルとを生成すればよい。
【００５８】
[0069]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵについての１つまたは複数の予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）を生成した後、ビデオエンコーダ２０は、ＣＵについての１つまたは複数の残差ブロックを生成することができる。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成してもよい。ＣＵのルーマ残差ブロック内の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの予測ルーマブロック内のルーマサンプルとＣＵの元のルーマコーディングブロック内の対応するサンプルとの間の差を示す。さらに、ビデオエンコーダ２０はＣＵのＣｂ残差ブロックを生成してもよい。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はＣＵのＣｒ残差ブロックを生成してもよい。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００５９】
[0070]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、ＣＵのルーマ、Ｃｂ、およびＣｒ残差ブロック）を１つまたは複数の変換ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）に分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２個の対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであってもよい。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであってもよい。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであってもよい。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００６０】
[0071]ビデオエンコーダ２０は、ＴＵについての係数ブロックを生成するために、ＴＵの変換ブロックに１回または複数回の変換を適用することができる。たとえば、ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１回または複数回の変換を適用することができる。係数ブロックは変換係数の２次元ブロックであってよい。変換係数はスカラー量であり得る。ビデオエンコーダ２０はＴＵのＣｂ変換ブロックに１回または複数の変換を適用してＴＵのＣｂ係数ブロックを生成してよい。ビデオエンコーダ２０はＴＵのＣｒ変換ブロックに１回または複数の変換を適用してＴＵのＣｒ係数ブロックを生成してよい。
【００６１】
[0072]ビデオエンコーダ２０は、係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、係数ブロックを量子化してもよい。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。
【００６２】
[0073]ビデオエンコーダ２０は、コード化ピクチャと関連付けられたデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在するローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含んでいるバイトとを含んでいるシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを含むシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの例では、ＲＢＳＰはゼロビットを含む。
【００６３】
[0074]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。  たとえば、異なるタイプのＮＡＬユニットが、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、コード化スライス、補足エンハンスメント情報（ＳＥＩ）などについての異なるＲＢＳＰをカプセル化することができる。ビデオコーディングデータに対するＲＢＳＰ（パラメータセットおよびＳＥＩメッセージに対するＲＢＳＰに対立するものとして）をカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【００６４】
[0075]ＨＥＶＣでは、ＳＰＳは、コード化ビデオシーケンス（ＣＶＳ）のすべてのスライスに該当する情報を含み得る。ＨＥＶＣでは、ＣＶＳは、瞬時復号リフレッシュ（ＩＤＲ：instantaneous decoding refresh）ピクチャ、または切断リンクアクセス（ＢＬＡ：broken link access）ピクチャ、または、ビットストリーム中の第１のピクチャであるクリーンランダムアクセス（ＣＲＡ：clean random access）ピクチャから開始し、ＩＤＲまたはＢＬＡピクチャでないすべての後続のピクチャを含み得る。すなわち、ＨＥＶＣでは、ＣＶＳは、復号順序で、ビットストリーム中の第１のアクセスユニットであるＣＲＡアクセスユニットと、ＩＤＲアクセスユニットまたはＢＬＡアクセスユニットと、それに続いて、後続のＩＤＲまたはＢＬＡアクセスユニットを含まないがそれまでのすべての後続のアクセスユニットを含む、０個以上の非ＩＤＲおよび非ＢＬＡアクセスユニットとからなり得る、アクセスユニットのシーケンスを備え得る。
【００６５】
[0076]ＶＰＳは、０個以上のＣＶＳ全体に適用されるシンタックス要素を備えるシンタックス構造である。ＳＰＳは、ＳＰＳがアクティブであるとき、アクティブであるＶＰＳを識別するシンタックス要素を含み得る。したがって、ＶＰＳのシンタックス要素は、ＳＰＳのシンタックス要素よりも一般的に適用可能であり得る。ＰＰＳは、０個以上のコード化ピクチャに適用されるシンタックス要素を備えるシンタックス構造である。ＰＰＳは、ＰＰＳがアクティブであるとき、アクティブであるＳＰＳを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされるときにアクティブであるＰＰＳを示すシンタックス要素を含み得る。
【００６６】
[0077]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信することができる。さらに、ビデオデコーダ３０は、ビットストリームをパースして、ビットストリームからシンタックス要素を取得し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、ＰＵの動きベクトルを使用して現在ＣＵのＰＵのための予測ブロックを決定し得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換ブロックを再構成するために係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【００６７】
[0078]上記のように、ＣＵは１つまたは複数のＰＵに区分され得る。「ｐａｒｔ＿ｍｏｄｅ」という用語は、現在ＣＵの区分モードを示し得る。言い換えると、ｐａｒｔ＿ｍｏｄｅは、ＣＵがＰＵに区分される方式を示し得る。ＨＥＶＣでは、ｐａｒｔ＿ｍｏｄｅの値は次のように制限され得る。
【００６８】
１つのＣＵのコーディングモードがＭＯＤＥ＿ＩＮＴＲＡに等しい場合、ｐａｒｔ＿ｍｏｄｅは０または１に等しくなるべきである。ＣＵのコーディングモードは、ＣＵが、イントラ予測（すなわち、ＭＯＤＥ＿ＩＮＴＲＡ）を使用してコーディングされたか、またはインター予測（すなわち、ＭＯＤＥ＿ＩＮＴＥＲ）を使用してコーディングされたかを示し得る。
【００６９】
さもなければ（１つのＣＵのコーディングモードがＭＯＤＥ＿ＩＮＴＥＲに等しい）、次のことが当てはまり得る。
【００７０】
現在ＣＵのサイズが最小許容ＣＵのサイズよりも大きく、非対称動き区分が有効にされる場合、ｐａｒｔ＿ｍｏｄｅは、両端値を含む、０から２の範囲、および、両端値を含む、４から７の範囲であるべきである。非対称動き区分が有効にされるとき、現在ＣＵは、各々が同じサイズを有さないＰＵに区分され得る。
【００７１】
さもなければ、現在ＣＵのサイズが最小許容ＣＵのサイズよりも大きく、非対称動き区分が無効にされる場合、ｐａｒｔ＿ｍｏｄｅは、両端値を含む、０から２の範囲であるべきである。ＣＵのサイズは、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック）のサイズを指し得る。
【００７２】
さもなければ、現在ＣＵのサイズが８に等しい場合、ｐａｒｔ＿ｍｏｄｅの値は、両端値を含む、０から２の範囲であるべきである。
【００７３】
さもなければ、現在ＣＵのサイズが８より大きい場合、ｐａｒｔ＿ｍｏｄｅの値は、両端値を含む、０から３の範囲であるべきである。
【００７４】
[0079]ｐａｒｔ＿ｍｏｄｅと変数ＰａｒｔＭｏｄｅの関連値との間の関係は、下の表１において定義される。変数ＰａｒｔＭｏｄｅは、区分モードの人間が読み取れる名称を提供する。ｐａｒｔ＿ｍｏｄｅという用語は、表１の変数ＰａｒｔＭｏｄｅによって定義される定義にマップする、表１に一致する、コード化ビットストリーム中のインデックス値を定義し得る。いくつかの例では、ｐａｒｔ＿ｍｏｄｅが存在しないとき、現在ＣＵの区分モードはＰＡＲＴ＿２Ｎ×２Ｎに等しいと推測され得る。
【表１】
0006407961.tif 000002
【００７５】
[0080]Ｈ．２６４／ＡＶＣでは、ビデオシーケンスは、一般に、一連のビデオフレームを含む。さらに、Ｈ．２６４／ＡＶＣでは、ピクチャのグループ（ＧＯＰ）は、一般に、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰに含まれるフレームの数を記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つもしくは複数のフレームのヘッダ、または他の場所に含む場合がある。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、通常、ビデオデータを符号化するために、個々のビデオフレーム中のブロックに対して動作する。Ｈ．２６４／ＡＶＣでは、ブロックは、マクロブロック（ＭＢ）またはマクロブロックの区分に対応し得る。ＭＢは、３つのサンプルアレイを有するピクチャのルーマサンプルの１６×１６ブロックおよびクロマサンプルの２個の対応するブロック、またはモノクロームピクチャもしくは３つの個別のカラープレーンを使用してコーディングされるピクチャのサンプルの１６×１６ブロックである。ＭＢ区分は、３つのサンプルアレイを有するピクチャに対するインター予測のためにマクロブロックを区分することによって得られたルーマサンプルの１個のブロックおよびクロマサンプルの２個の対応するブロック、またはモノクロームピクチャもしくは３つの個別のカラープレーンを使用してコーディングされるピクチャのインター予測のためにマクロブロックを区分することによって得られたルーマサンプルの１個のブロックである。ＨＥＶＣでは、ブロックはＰＵに対応し得る。ブロックに関連付けられたサンプルブロック（たとえば、ビデオユニット）は、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００７６】
[0081]Ｈ．２６４／ＡＶＣでは、ビデオエンコーダ２０は、１つまたは複数の参照ピクチャに基づいて、インターＭＢに関する予測ブロックを生成する。各インターＭＢは４つの異なる方法で区分され得る。
【００７７】
１つの１６×１６ＭＢ区分
２つの１６×８ＭＢ区分
２つの８×１６ＭＢ区分
４つの８×８ＭＢ区分
１つのＭＢ中の異なるＭＢ区分は、各方向ごとに異なる参照インデックス値（すなわち、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。したがって、ビデオコーダは、異なる参照ピクチャに基づいて、１つのインターＭＢの異なるＭＢ区分に関する予測ブロックを生成し得る。インターＭＢが４つの８×８ＭＢ区分に区分されないとき、インターＭＢはＭＢ区分全体について各方向に１つの動きベクトルしか有し得ない。言い換えると、インターＭＢが４つの８×８ＭＢ区分に区分されないとき、インターＭＢに関する単一のＲｅｆＰｉｃＬｉｓｔ０動きベクトルおよびインターＭＢに関する単一のＲｅｆＰｉｃＬｉｓｔ１動きベクトルだけが存在し得る。
【００７８】
[0082]ＭＢが４つの８×８のＭＢ区分に区分されるとき、各８×８のＭＢ区分はサブブロックにさらに区分され得る。８×８ＭＢ区分をサブブロックに区分する４つの異なる方法が存在する。
【００７９】
１個の８×８サブブロック
２個の８×４サブブロック
２個の４×８サブブロック
４個の４×４サブブロック
各サブブロックは、各方向に異なる動きベクトルを有し得る。言い換えると、Ｂスライス中の各サブブロックは、ＲｅｆＰｉｃＬｉｓｔ０動きベクトルおよびＲｅｆＰｉｃＬｉｓｔ１動きベクトルを有し得る。「サブブロック区分」は、８×８ＭＢ区分がどのようにサブブロックに区分されるかを示すために使用される用語である。
【００８０】
[0083]ＨＥＶＣ例では、ビデオエンコーダ２０は、マージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードを使用して、ＰＵの動き情報をシグナリングすることができる。言い換えると、ＨＥＶＣでは、動きパラメータ（すなわち、動き情報）の予測のために２つのモードがあり、一方はマージモードであり、他方はＡＭＶＰである。動き予測は、１つまたは複数の他のブロックの動き情報に基づく、ブロック（たとえば、ＰＵ）の動き情報の決定を備え得る。ＰＵの動き情報は、ＰＵの動きベクトル（１つまたは複数）と、ＰＵの参照インデックス（１つまたは複数）と、１つまたは複数の予測方向インジケータとを含み得る。
【００８１】
[0084]ビデオエンコーダ２０がマージモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、マージ候補リストを生成し得る。言い換えると、ビデオエンコーダ２０は、動きベクトル予測子リスト構築プロセスを実行することができる。マージ候補リストは、現在ＰＵに空間的または時間的に隣接するＰＵの動き情報を示すマージ候補のセットを含む。すなわち、マージモードでは、動きパラメータ（たとえば、参照インデックス、動きベクトルなど）の候補リストが構築され、候補は、空間的隣接ブロックおよび時間的隣接ブロックからであり得る。
【００８２】
[0085]さらに、マージモードでは、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択することができ、選択されたマージ候補によって示される動き情報を、現在ＰＵの動き情報として使うことができる。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト中の位置をシグナリングし得る。たとえば、ビデオエンコーダ２０は、インデックスを候補リスト中に送信することによって、選択された動きベクトルパラメータをシグナリングすることができる。ビデオデコーダ３０は、ビットストリームから、候補リストの中へのインデックス（すなわち、候補リストインデックス）を取得することができる。さらに、ビデオデコーダ３０は、同じマージ候補リストを生成することができ、選択されたマージ候補の位置の表示に基づいて、選択されたマージ候補を決定することができる。ビデオデコーダ３０は、次いで、選択されたマージ候補の動き情報を、現在ＰＵのための予測ブロックを生成するのに使い得る。つまり、ビデオデコーダ３０は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト中の選択された候補を決定することができ、ここで、選択された候補は、現在ＰＵについての動きベクトルを指定する。このように、デコーダ側では、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータは、現在ＰＵによって継承され得る。
【００８３】
[0086]スキップモードはマージモードと同様である。スキップモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、マージモードにおいてビデオエンコーダ２０およびビデオデコーダ３０がマージ候補リストを使うのと同じようにマージ候補リストを生成し、使うことができる。ただし、ビデオエンコーダ２０がスキップモードを使って現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵについてのどの残差データもシグナリングしない。したがって、ビデオデコーダ３０は、残差データを使用せずに、マージ候補リスト中の選択された候補の動き情報によって示される参照ブロックに基づいて、ＰＵのための予測ブロックを決定することができる。
【００８４】
[0087]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成することができ、候補リストから候補を選択することができるという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がＡＭＶＰモードを使って現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ（Ｘは０または１である）動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ動きベクトル予測子（ＭＶＰ）フラグをシグナリングするのに加え、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ動きベクトル差分（ＭＶＤ）と、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ参照インデックスとをシグナリングすることができる。現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグは、ＡＭＶＰ候補リスト中の選択されたＡＭＶＰ候補の位置を示し得る。現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤは、ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動きベクトルと選択されたＡＭＶＰ候補の動きベクトルとの間の差分を示し得る。このようにして、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグと、ＲｅｆＰｉｃＬｉｓｔＸ参照インデックス値と、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤとをシグナリングすることによって、現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動き情報をシグナリングすることができる。言い換えると、現在ＰＵについての動きベクトルを表す、ビットストリーム中のデータは、参照インデックスと、候補リストへのインデックスと、ＭＶＤとを表すデータを含み得る。
【００８５】
[0088]さらに、ＡＭＶＰモードを使って現在ＰＵの動き情報がシグナリングされると、ビデオデコーダ３０は、ビットストリームから、現在ＰＵについてのＭＶＤと、ＭＶＰフラグとを取得することができる。ビデオデコーダ３０は、同じＡＭＶＰ候補リストを生成することができ、ＭＶＰフラグに基づいて、選択されたＡＭＶＰ候補を決定することができる。ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルにＭＶＤを加算することによって、現在ＰＵの動きベクトルを回復することができる。つまり、ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルおよびＭＶＤに基づいて、現在ＰＵの動きベクトルを決定することができる。ビデオデコーダ３０は、次いで、回復された１つの動きベクトルまたは複数の動きベクトルを、現在ＰＵ用の予測ブロックを生成するのに使い得る。
【００８６】
[0089]ビデオデコーダ３０が現在ＰＵについてのＡＭＶＰ候補リストを生成するとき、ビデオデコーダ３０は、現在ＰＵに空間的に隣接するロケーションをカバーするＰＵ（すなわち、空間的隣接ＰＵ）の動き情報に基づいて、１つまたは複数のＡＭＶＰ候補を導出することができる。図２は、現在ＰＵ４０に対して、例示的な空間的隣接ＰＵを示す概念図である。図２の例では、空間的隣接ＰＵは、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2として示されるロケーションをカバーするＰＵであり得る。ＰＵの予測ブロックがあるロケーションを含むとき、ＰＵはそのロケーションをカバーし得る。
【００８７】
[0090]現在ＰＵに時間的に隣接するＰＵ（すなわち、現在ＰＵとは異なる時間インスタンス中にあるＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト中の候補は、時間的動きベクトル予測子（ＴＭＶＰ）と呼ばれ得る。ＴＭＶＰは、ＨＥＶＣのコーディング効率を向上させるために使用され得、他のコーディングツールとは異なり、ＴＭＶＰは、復号ピクチャバッファ中、より具体的には、参照ピクチャリスト中のフレームの動きベクトルにアクセスする必要があり得る。
【００８８】
[0091]ＴＭＶＰの使用は、ＣＶＳごとに、スライスごとに、または別の方式で、有効または無効にされ得る。ＳＰＳ中のシンタックス要素（たとえば、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）は、ＴＭＶＰの使用がＣＶＳに対して有効にされるかどうかを示し得る。さらに、ＴＭＶＰの使用がＣＶＳのために有効にされるとき、ＴＭＶＰの使用は、ＣＶＳ内の特定のスライスに対して有効または無効にされ得る。たとえば、スライスヘッダ中のシンタックス要素（たとえば、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）は、ＴＭＶＰの使用がスライスに対して有効にされるかどうかを示し得る。したがって、インター予測スライスでは、ＴＭＶＰがＣＶＳ全体に対して有効にされる（たとえば、ＳＰＳ中のｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に設定される）とき、ＴＭＶＰの使用が現在スライスに対して有効にされているかどうかを示すために、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇがスライスヘッダ中でシグナリングされる。
【００８９】
[0092]ＴＭＶＰを決定するために、ビデオコーダは、現在ＰＵと同じ場所にあるＰＵを含む参照ピクチャを最初に識別することができる。言い換えると、ビデオコーダはいわゆるコロケートピクチャを識別することができる。現在ピクチャの現在スライスがＢスライス（すなわち、双方向インター予測されたＰＵを含むことが許容されるスライス）である場合、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるかＲｅｆＰｉｃＬｉｓｔ１からのものであるかを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダ中でシグナリングすることができる。言い換えると、ＴＭＶＰの使用が現在スライスに対して有効にされ、現在スライスがＢスライス（たとえば、双方向インター予測されたＰＵを含むことが許容されるスライス）であるとき、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０の中にあるかＲｅｆＰｉｃＬｉｓｔ１の中にあるかを示すために、シンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダ中でシグナリングすることができる。ビデオデコーダ３０がコロケートピクチャを含む参照ピクチャリストを識別した後、ビデオデコーダ３０は、識別された参照ピクチャリスト中のピクチャ（すなわち、コロケートピクチャ）を識別するために、スライスヘッダ中でシグナリングされ得る別のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）を使用することができる。すなわち、参照ピクチャリストが識別された後、スライスヘッダ中でシグナリングされるｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが参照ピクチャリスト中のピクチャを識別するために使用され得る。
【００９０】
[0093]ビデオコーダは、コロケートピクチャをチェックすることによって、コロケートＰＵを識別し得る。ビデオコーダがコロケートＰＵをチェックするとき、ビデオコーダはコロケートピクチャの右下ＰＵおよびコロケートピクチャの中心ＰＵをチェックすることができる。右下ＰＵは、現在ＰＵの予測ブロックの右下コーナーのすぐ下および右のロケーションとコロケートされるロケーションをカバーし得る。中心ＰＵは、現在ＰＵの予測ブロックの中心とコロケートされるロケーションをカバーし得る。ＴＭＶＰは、右下ＰＵまたは中心ＰＵの動き情報を示し得る。
【００９１】
[0094]マージモードまたはＡＭＶＰモードのための動き候補を生成するために上記のプロセスによって識別された動きベクトル（すなわち、ＴＭＶＰの動きベクトル）が使用されるとき、ビデオコーダは、（ＰＯＣ値によって反映される）時間的ロケーションに基づいて、動きベクトルをスケーリングすることができる。たとえば、ビデオコーダは、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が小さいときよりも、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が大きいときに、動きベクトルの大きさをより大きな量増大させることができる。
【００９２】
[0095]ＴＭＶＰから導出される時間マージ候補に対するすべてのあり得る参照ピクチャリストの目標参照インデックスは、常に０に設定され得る。しかしながら、ＡＭＶＰでは、すべてのあり得る参照ピクチャの目標参照インデックスは、復号された参照インデックスに等しく設定される。ＨＥＶＣでは、ＳＰＳはフラグ（たとえば、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）を含んでよく、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しく設定されるとき、スライスヘッダはフラグ（たとえば、ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）を含んでよい。ある特定のピクチャに対してｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇとｔｅｍｐｏｒａｌ＿ｉｄの両方が０に等しいとき、復号順序においてその特定のピクチャの前にあるピクチャからの動きベクトルは、その特定のピクチャ、または復号順序でその特定のピクチャの後にあるピクチャの復号において、ＴＭＶＰとして使用されない。
【００９３】
[0096]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューがあり得る。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用される。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニット内のビューのコード化表現であり得る。ビュー成分は、テクスチャビューコンポーネントと深度ビューコンポーネントとを含み得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられたビュー成分のシーケンスを指すことがある。
【００９４】
[0097]テクスチャビューコンポーネント（すなわち、テクスチャピクチャ）は、単一のアクセスユニット中のビューのテクスチャのコード化表現であり得る。テクスチャビューは、ビュー順序インデックスの同一の値に関連付けられるテクスチャビューコンポーネントのシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対するビューのカメラ位置を示し得る。深度ビューコンポーネント（すなわち、深度ピクチャ）は、単一のアクセスユニット中のビューの深度のコード化表現であり得る。深度ビューは、ビュー順序インデックスの同一の値に関連付けられる深度ビューコンポーネントのシーケンスであり得る。
【００９５】
[0098]マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、ＨＥＶＣにおいて使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。ただし、ビデオコーダが現在ブロック（ＰＵなど）に対してビュー間予測を実行するとき、ビデオエンコーダ２０は、参照ピクチャとして、その現在ブロックと同じアクセスユニット中にあるが異なるビュー中にあるピクチャを使用し得る。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
【００９６】
[0099]テクスチャビューコンポーネントは、表示される実際の画像コンテンツを含む。たとえば、テクスチャビューコンポーネントは、ルーマ（たとえば、Ｙ）成分と、クロマ（たとえば、ＣｂおよびＣｒ）成分とを含み得る。深度ビューコンポーネントは、その対応するテクスチャビューコンポーネント中のピクセルの相対深度を示し得る。一例として、深度ビューコンポーネントは、ルーマ値のみを含むグレースケール画像である。言い換えると、深度ビューコンポーネントは、任意の画像コンテンツを伝達するのではなく、テクスチャビューコンポーネント中のピクセルの相対深度の測定値を提供することができる。
【００９７】
[0100]マルチビューコーディングでは、ビットストリームは複数のレイヤを有し得る。これらのレイヤの各々は、異なるビューに対応し得る。マルチビューコーディングでは、ビデオデコーダ（たとえば、ビデオデコーダ３０）が、あるビュー中のピクチャを任意の他のビュー中のピクチャを参照せずに復号することができる場合、そのビューは「ベースビュー」と呼ばれることがある。ビューは、ビューの復号が１つまたは複数の他のビュー中のピクチャの復号に依存する場合、非ベースビューと呼ばれ得る。
【００９８】
[0101]たとえば、ＮＡＬユニットは、ヘッダ（すなわち、ＮＡＬユニットヘッダ）とペイロード（たとえば、ＲＢＳＰ）とを含み得る。ＮＡＬユニットヘッダはｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素を含み得る。異なる値を指定するｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔシンタックス要素を有するＮＡＬユニットは、ビットストリームの異なる「レイヤ」に属する。したがって、マルチビューコーディング、３ＤＶ、またはＳＶＣでは、ＮＡＬユニットのｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素はＮＡＬユニットのレイヤ識別子（すなわち、レイヤＩＤ）を指定する。いくつかの例では、ＮＡＬユニットがマルチビューコーディング、３ＤＶコーディング、またはＳＶＣにおけるベースレイヤに関係する場合、ＮＡＬユニットのｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は０に等しい。ビットストリームのベースレイヤ中のデータは、ビットストリームの他のレイヤ中のデータと無関係に復号され得る。ＮＡＬユニットがマルチビューコーディング、３ＤＶ、またはＳＶＣにおけるベースレイヤに関係しない場合、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は非０値を有し得る。上記のように、マルチビューコーディングおよび３ＤＶコーディングでは、ビットストリームの異なるレイヤは異なるビューに対応し得る。ＳＶＣでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供し得る。
【００９９】
[0102]さらに、レイヤ内のいくつかのピクチャは、同じレイヤ内の他のピクチャを参照せずに復号され得る。したがって、レイヤのいくつかのピクチャのデータをカプセル化しているＮＡＬユニットは、そのレイヤ中の他のピクチャの復号可能性に影響を及ぼすことなしにビットストリームから削除され得る。そのようなピクチャのデータをカプセル化しているＮＡＬユニットを削除すると、ビットストリームのフレームレートが低減し得る。レイヤ内の他のピクチャを参照せずに復号され得るレイヤ内のピクチャのサブセットを、本明細書では「サブレイヤ」または「時間サブレイヤ」と呼ぶことがある。
【０１００】
[0103]非ベースビューのうちの１つの中のピクチャをコーディングするとき、ピクチャが、異なるビュー中にあるがビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス（すなわち、アクセスユニット）内にある場合、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、参照ピクチャリストにピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入し得る。
【０１０１】
[0104]図３は、例示的なマルチビュー復号順序を示す概念図である。マルチビュー復号順序はビットストリーム順序であり得る。図３の例では、各正方形がビュー成分に対応する。正方形の列は、アクセスユニットに対応する。各アクセスユニットは、時間インスタンスのすべてのビューのコード化ピクチャを含むように定義され得る。正方形の行は、ビューに対応する。図３の例では、アクセスユニットがＴ０〜Ｔ８と標示され、ビューがＳ０〜Ｓ７と標示される。アクセスユニットの各ビュー成分は次のアクセスユニットのビュー成分の前に復号されるので、図３の復号順序はタイムファーストコーディングと呼ばれることがある。アクセスユニットの復号順序は、ビューの出力または表示順序と同一ではないこともある。
【０１０２】
[0105]マルチビューコーディングはビュー間予測をサポートすることができる。ビュー間予測は、Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、または他のビデオコーディング規格において使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが（マクロブロックまたはＰＵのような）現在ブロックに対してビュー間予測を実行するとき、ビデオコーダは、参照ピクチャとして、現在ブロックと同じアクセスユニットの中にあるが異なるビューの中にあるピクチャを使用することができる。本明細書で説明するビュー間予測と対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
【０１０３】
[0106]図４は、マルチビューコーディングのための例示的な予測構造を示す概念図である。図４のマルチビュー予測構造は、時間的予測とビュー間予測とを含む。図４の例では、各正方形がビュー成分に対応する。図４の例では、アクセスユニットがＴ０〜Ｔ１１と標示され、ビューがＳ０〜Ｓ７と標示される。「Ｉ」と標示される正方形は、イントラ予測されたビュー成分である。「Ｐ」と標示される正方形は、単方向インター予測されたビュー成分である。「Ｂ」および「ｂ」と標示される正方形は、双方向インター予測されたビュー成分である。「ｂ」と標示される正方形は、「Ｂ」と標示される正方形を参照ピクチャとして使用し得る。第１の正方形から第２の正方形を指す矢印は、第１の正方形が、インター予測において、第２の正方形のための参照ピクチャとして利用可能であることを示す。図４の垂直の矢印で示すように、同じアクセスユニットの異なるビュー内のビュー成分は、参照ピクチャとして利用可能であり得る。このように、図４は、マルチビュービデオコーディング用の典型的なＭＶＣ予測（各ビュー内のインターピクチャ予測とインタービュー予測の両方を含む）構造を示し、予測参照のために矢印の始点のオブジェクトを使用して矢印の終点のオブジェクトへの矢印によって予測が示される。アクセスユニットの１つのビュー成分を同じアクセスユニットの別のビュー成分に対する参照ピクチャとして使用することは、ビュー間予測と呼ばれることがある。
【０１０４】
[0107]Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、Ｈ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることが可能になる。２つのビューのコーディングも、Ｈ．２６４／ＡＶＣのＭＶＣ拡張によってサポートされ得る。Ｈ．２６４／ＡＶＣのＭＶＣ拡張の利点の１つは、ＭＶＣエンコーダが３Ｄビデオ入力として３つ以上のビューを取り込むことができ、かつＭＶＣデコーダがそのようなマルチビュー表現を復号することができることである。したがって、ＭＶＣデコーダをもつ任意のレンダラは、３つ以上のビューをもつ３Ｄビデオコンテンツを予想し得る。
【０１０５】
[0108]マルチビューコーディングにおいて、ビュー間予測は、ビューの間の相関を取り除くために、（すなわち、同じ時間インスタンスを有する）同じアクセスユニットの異なるビュー中のピクチャの間で実行され得る。非ベースビューの１つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが、同じ時間インスタンスを有する場合、ピクチャは参照ピクチャリストに追加され得る。ビュー間予測参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
【０１０６】
[0109]マルチビュービデオコーディングのコンテキストでは、２種類の動きベクトルが存在する。動きベクトルの１つの種類は、時間参照ピクチャを指す通常動きベクトルである。通常時間的動きベクトルに対応するインター予測のタイプは、「動き補償予測」または「ＭＣＰ」と呼ばれ得る。ビュー間予測参照ピクチャが動き補償のために使用されるとき、対応する動きベクトルは「視差動きベクトル」と呼ばれる。言い換えると、視差動きベクトルは、異なるビュー中のピクチャ（すなわち、ビュー間参照ピクチャ）を指す。視差動きベクトルに対応するインター予測のタイプは、「視差補償予測」または「ＤＣＰ」と呼ばれ得る。
【０１０７】
[0110]上述したように、ＨＥＶＣの３ＤＶ拡張（すなわち、３Ｄ−ＨＥＶＣ）は開発中である。３Ｄ−ＨＥＶＣは、ビュー間動き予測とビュー間残差予測とを使用して、コーディング効率を改善することができる。ビュー間動き予測では、ビデオコーダは、現在ＰＵとは異なるビューの中のＰＵの動き情報に基づいて、現在ＰＵの動き情報を決定する（すなわち、予測する）ことができる。ビュー間残差予測では、ビデオコーダが、現在ＣＵとは異なるビュー中の残差データに基づいて、現在ＣＵの残差ブロックを決定することができる。
【０１０８】
[0111]ビュー間動き予測とビュー間残差予測とを可能にするために、ビデオコーダは、ブロック（たとえば、ＰＵ、ＣＵなど）のための視差ベクトルを決定することができる。概して、視差ベクトルは、２つのビューの間の変位を推定するものとして使われる。ビデオコーダは、ビュー間動きまたは残差予測のために別のビュー中の参照ブロックを位置特定するのに、ブロックについての視差ベクトルを使ってもよく、ビデオコーダは、視差ベクトルを、ビュー間動き予測のために視差動きベクトルにコンバートしてもよい。たとえば、ブロックがビュー間動き予測でコーディングされるとき、視差ベクトルは異なるビュー中の対応するブロックを選択するために導出されることが必要であり得る。
【０１０９】
[0112]さらに、ビデオコーダは、現在ブロックについての視差ベクトルを導出し得る。いくつかの例では、ビデオコーダは、現在ブロックについての視差ベクトルを導出するために、隣接ブロックベースの視差ベクトル（ＮＢＤＶ：Neighboring Blocks Based Disparity Vector）の方法を使用することができる。すなわち、現在ブロックについての視差ベクトルを導出するために、ＮＢＤＶと呼ばれるプロセスが、３Ｄ−ＨＥＶＣに関するテストモデル（すなわち、３Ｄ−ＨＴＭ）において使用され得る。３Ｄ−ＨＥＶＣは、Ｚｈａｎｇらによって提案されたＮＢＤＶプロセス、「３Ｄ−ＣＥ５．ｈ：Ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｇｅｎｅｒａｔｉｏｎ  ｒｅｓｕｌｔｓ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発に関する共同研究部会、第１回会合、ストックホルム、スウェーデン、２０１２年７月１６〜２０日、文書ＪＣＴ３Ｖ−Ａ００９７を最初に採用した。
【０１１０】
[0113]ＮＢＤＶプロセスは、現在ブロックについての視差ベクトルを導出するのに、空間的および時間的に隣接するブロックからの視差動きベクトルを使う。隣接ブロック（たとえば、現在ブロックに空間的または時間的に隣接するブロック）は、ビデオコーディングにおいて、ほぼ同じ動きと視差情報とを共有する見込みがあるので、現在ブロックは、隣接ブロック中の動きベクトル情報を、現在ブロックの視差ベクトルの予測子として使ってよい。したがって、ＮＢＤＶプロセスは、異なるビュー中の視差ベクトルを推定するために隣接する視差情報を使用する。
【０１１１】
[0114]ビデオコーダがＮＢＤＶプロセスを実行するとき、ビデオコーダは、固定されたチェック順序で、空間的隣接ブロックおよび時間的隣接ブロックの動きベクトルをチェックすることができる。すなわち、その各々が、次いで、現在ブロックと候補ブロック（すなわち、空間的または時間的隣接ブロック）との間の相関の優先度によって決定され得る、事前に定義された順序でチェックされ得るいくつかの空間的および時間的隣接ブロックが最初に定義される。したがって、隣接ブロックの２つのセットが利用される。一方のセットは空間的隣接ブロックからのものであり、他方のセットは時間的隣接ブロックからのものである。
【０１１２】
[0115]ビデオコーダが空間的隣接ブロックまたは時間的隣接ブロックの動きベクトルをチェックするとき、ビデオコーダは、動きベクトルが視差動きベクトルかどうかを決定することができる。ピクチャのＰＵの視差動きベクトルは、ピクチャのビュー間参照ピクチャ中のロケーションを指す動きベクトルである。ピクチャのビュー間参照ピクチャは、ピクチャと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャであり得る。視差動きベクトル（すなわち、動きベクトルはビュー間参照ピクチャを指す）が候補内に発見されると、ビデオコーダはその視差動きベクトルを視差ベクトルに変換することができる。たとえば、ビデオコーダは、視差動きベクトルの水平成分に等しく現在ブロックの視差ベクトルの水平成分を設定することができ、視差ベクトルの垂直成分を０に設定することができる。
【０１１３】
[0116]３Ｄ−ＨＥＶＣのいくつかの設計（たとえば、３Ｄ−ＨＴＭ６．０）では、ビデオコーダがＮＢＤＶプロセスを実行するとき、ビデオコーダは時間的隣接ブロック中の視差動きベクトル、空間的隣接ブロック中の視差動きベクトル、次いで、暗黙視差ベクトル（ＩＤＶ）の順にチェックする。ＩＤＶは、ビュー間予測を使用してコーディングされた空間的または時間的隣接ＰＵの視差ベクトルであり得る。ＩＤＶは、導出された視差ベクトルと呼ばれることもある。ＩＤＶは、ＰＵがビュー間動きベクトル予測を採用するとき、すなわち、ＡＭＶＰまたはマージモードのための候補が視差ベクトルの助けにより他のビュー中の参照ブロックから導出されるときに生成され得る。そのような視差ベクトルが、ＩＤＶと呼ばれる。ＩＤＶは、視差ベクトル導出の目的で、ＰＵに記憶され得る。たとえば、ブロックが動き予測でコーディングされるとしても、そのブロックについて導出された視差ベクトルは続くブロックをコーディングする目的で廃棄されない。したがって、ビデオコーダが視差動きベクトルまたはＩＤＶを特定するとき、ビデオコーダは、特定された視差動きベクトルまたはＩＤＶを返すことができる。ＩＤＶはＳｕｎｇ他のＮＢＤＶの簡素化バージョン「３Ｄ−ＣＥ５．ｈ：Ｓｉｍｐｌｉｆｉｃａｔｉｏｎ  ｏｆ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ＨＥＶＣ−ｂａｓｅｄ  ３Ｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ、文書ＪＣＴＶ３−Ａ０１２６」とともに含まれた。ＮＢＤＶプロセスにおけるＩＤＶの使用は、復号ピクチャバッファ中に記憶されたＩＤＶ、およびランダムアクセスポイント（ＲＡＰ）ピクチャ選択に伴う改善されたコーディング利得を除去することによって、Ｋａｎｇ他の「３Ｄ−ＣＥ５．ｈ関連：ｉｍｐｒｏｖｅｍｅｎｔｓ  ｆｏｒ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ」、文書ＪＣＴ３Ｖ−Ｂ００４７においてさらに簡素化された。ビデオコーダは、返された視差動きベクトルまたはＩＤＶを視差ベクトルに変換することができ、ビュー間動き予測およびビュー間残差予測のために視差ベクトルを使用することができる。ランダムアクセスは、ビットストリーム中の第１のコード化ピクチャでないコード化ピクチャから始まるビットストリームの復号を指す。一定の間隔でのビットストリーム中へのランダムアクセスピクチャまたはランダムアクセスポイントの挿入はランダムアクセスを有効にし得る。ランダムアクセスピクチャの例示的なタイプは、瞬時復号リフレッシュ（ＩＤＲ：Instantaneous Decoder Refresh）ピクチャ、クリーンランダムアクセス（ＣＲＡ：Clean Random Access）ピクチャ、および切断リンクアクセス（ＢＬＡ：Broken Link Access）ピクチャを含む。したがって、ＩＤＲピクチャ、ＣＲＡピクチャ、およびＢＬＡピクチャは、ＲＡＰピクチャと総称される。いくつかの例では、ＲＡＰピクチャは、ＮＡＬユニットタイプを有し得、ＢＬＡ＿Ｗ＿ＬＰ、ＢＬＡ＿Ｗ＿ＲＡＤＬ、ＢＬＡ＿Ｎ＿ＬＰ、ＩＤＲ＿Ｗ＿ＲＡＤＬ、ＩＤＲ＿Ｎ＿ＬＰ、ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２２、ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３、またはＣＲＡ＿ＮＵＴに等しい。
【０１１４】
[0117]ビデオコーダが視差動きベクトルまたはＩＤＶを識別するとき、ビデオコーダはチェックプロセスを終了することができる。したがって、ビデオコーダが現在ブロックについての視差ベクトルを発見するとき、ビデオコーダはＮＢＤＶプロセスを終了することができる。ビデオコーダがＮＢＤＶプロセスを実行することによって現在ブロックのための視差ベクトルを決定することが不可能であるとき（すなわち、視差動きベクトルがない、またはＮＢＤＶプロセスの間に発見されるＩＤＶがないとき）、ＮＢＤＶは利用不可能であると標識される。言い換えると、ＮＢＤＶプロセスが利用不可能な視差ベクトルを返すことが考えられ得る。
【０１１５】
[0118]ビデオコーダがＮＢＤＶプロセスを実行することによって現在ブロックのための視差ベクトルを導出することが不可能である場合（すなわち、視差ベクトルが発見されない場合）、ビデオコーダは、現在ＰＵのための視差ベクトルとして０視差ベクトルを使用することができる。０視差ベクトルは、０に等しい水平成分と垂直成分の両方を有する視差ベクトルである。したがって、ＮＢＤＶプロセスが利用不可能な結果を返すときであっても、視差ベクトルを必要とするビデオコーダの他のコーディングプロセスは、現在ブロックのために０視差ベクトルを使用することができる。いくつかの例では、ビデオコーダがＮＢＤＶプロセスを実行することによって現在ブロックのための視差ベクトルを導出することが不可能である場合、ビデオコーダは、現在ブロックに対するビュー間残差予測を無効にすることができる。しかしながら、ビデオコーダがＮＢＤＶプロセスを実行することによって現在ブロックのための視差ベクトルを導出することが可能かどうかに関係なく、ビデオコーダは、現在ブロックに対してビュー間動き予測を使用することができる。すなわち、すべての事前に定義された隣接ブロックをチェックした後で視差ベクトルが発見されない場合、ビュー間動き予測のために０視差ベクトルが使用され得るが、ビュー間残差予測は対応するＣＵに対して無効にされ得る。
【０１１６】
[0119]上述したように、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するプロセスの一環として空間的隣接ＰＵをチェックすることができる。いくつかの例では、ビデオコーダは以下の空間的隣接ブロック、すなわち、左下の空間的隣接ブロックと、左の空間的隣接ブロックと、右上の空間的隣接ブロックと、上の空間的隣接ブロックと、左上の空間的隣接ブロックとをチェックする。たとえば、ＮＢＤＶプロセスのいくつかのバージョンでは、視差ベクトル導出のために５個の空間的隣接ブロックが使用される。５個の空間的隣接ブロックは、図２に示すように、位置Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2をそれぞれカバーし得る。ビデオコーダは、５個の空間的隣接ブロックをＡ1、Ｂ1、Ｂ0、Ａ0、およびＢ2の順にチェックし得る。ＨＥＶＣ用のマージモードで同じ５個の空間的隣接ブロックが使用され得る。したがって、いくつかの例では、何の追加のメモリアクセスも必要とされない。空間的隣接ブロックの１つが視差動きベクトルを有する場合、ビデオコーダは確認処理を終了することができ、現在ブロックについての最終的な視差ベクトルとして視差動きベクトルを使用することができる。
【０１１７】
[0120]さらに、上述したように、ビデオコーダは、現在ブロックについての視差ベクトルを決定するプロセスの一環として時間的隣接ＰＵをチェックすることができる。時間的隣接ブロック（たとえば、ＰＵ）をチェックする場合、候補ピクチャリストの構築プロセスが最初に実行され得る。いくつかの例では、ビデオコーダは、視差動きベクトルについての現在ビューから最大で２つの参照ピクチャをチェックすることができる。第１の参照ピクチャはコロケートピクチャであり得る。したがって、コロケートピクチャ（すなわち、コロケート参照ピクチャ）は、最初に候補ピクチャリスト中に、次いで、他の候補ピクチャ中に、参照インデックスの昇順で挿入され得る。両方の参照ピクチャリスト中の同じ参照インデックスを有する参照ピクチャが利用可能であるとき、候補リスト内で、コロケートピクチャと同じ参照ピクチャリストの参照ピクチャがコロケートピクチャと同じ参照ピクチャリスト中にない参照ピクチャに先行する。
【０１１８】
[0121]候補ピクチャリスト中の各候補ピクチャ（すなわち、ランダムアクセスピクチャおよびコロケートピクチャ）について、ビデオコーダは３つの候補領域をチェックすることができる。３つの候補領域は、次のように定義され得る。
【０１１９】
ＣＰＵ：現在ＰＵまたは現在ＣＵのコロケート領域。
【０１２０】
ＣＬＣＵ：現在ブロックのコロケート領域をカバーする最大コーディングユニット（ＬＣＵ）。
【０１２１】
ＢＲ：ＣＰＵの右下の４×４のブロック。
【０１２２】
候補領域を包含するＰＵが視差動きベクトルを規定する場合、ビデオコーダは、ＰＵの視差動きベクトルに基づいて、現在のビデオユニットの視差ベクトルを決定することができる。
【０１２３】
[0122]ビデオコーダが隣接ＰＵ（たとえば、空間的隣接ＰＵまたは時間的隣接ＰＵ）を確認するとき、ビデオコーダはまず、隣接ブロックが視差動きベクトルを有するかどうかを確認することができる。隣接ＰＵのいずれもが視差動きベクトルを有しない場合、ビデオコーダは、空間的隣接ＰＵのいずれかがＩＤＶを有するかどうかを決定することができる。ビデオコーダは、Ａ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の順序で、空間的隣接ＰＵをチェックすることができる。空間的隣接ＰＵの１つがＩＤＶを有し、ＩＤＶがマージ／スキップモードとしてコーディングされる場合、ビデオコーダはチェック処理を終了することができ、現在ＰＵのための最終視差ベクトルとしてＩＤＶを使用することができる。
【０１２４】
[0123]上記のように、ビデオコーダは、現在ブロック（たとえば、ＣＵ、ＰＵなど）についての視差ベクトルを導出するために、ＮＢＤＶプロセスを適用し得る。現在ブロックについての視差ベクトルは、参照ビュー中の参照ピクチャ（すなわち、参照成分）中のロケーションを示し得る。いくつかの３Ｄ−ＨＥＶＣ設計では、ビデオコーダは参照ビューについての深度情報にアクセスすることが許容される。いくつかのそのような３Ｄ−ＨＥＶＣ設計では、ビデオコーダが現在ブロックについての視差ベクトルを導出するためにＮＢＤＶプロセスを使用するとき、ビデオコーダは、現在ブロックについての視差ベクトルをさらにリファインメントするためにリファインメントプロセスを適用し得る。ビデオコーダは、参照ピクチャの深度マップに基づいて、現在ブロックについての視差ベクトルをリファインメントすることができる。ビデオコーダは、後方ビュー合成予測用に視差動きベクトルをリファインメントするために類似のリファインメントプロセスを使用し得る。このようにして、後方ビュー合成予測用に使用されるべき視差ベクトルまたは視差動きベクトルをリファインメントするために深度が使用され得る。このリファインメントプロセスは、本明細書において、ＮＢＤＶリファインメント（「ＮＢＤＶ−Ｒ」）、ＮＢＤＶリファインメントプロセス、または深度指向ＮＢＤＶ（Ｄｏ−ＮＢＤＶ）と呼ばれることがある。
【０１２５】
[0124]ＮＢＤＶプロセスが利用可能な視差ベクトルを返すとき（たとえば、ＮＢＤＶプロセスが、そのＮＢＤＶプロセスが視差動きベクトルまたは隣接ブロックのＩＤＶに基づいて、現在ブロックについての視差ベクトルを導出することが可能であったことを示す変数を返すとき）、ビデオコーダは、参照ビューの深度マップから深度データを取り出すことによって、視差ベクトルをさらにリファインメントすることができる。いくつかの例では、リファインメントプロセスは以下の２つのステップを含む。
【０１２６】
１．参照ビューの深度マップ中のブロックの位置を特定するために、現在ブロックの視差ベクトルを使用する。言い換えると、ベースビューなど、以前にコーディングされた参照深度ビュー中の導出された視差ベクトルによって対応する視差ブロックの位置を特定する。この例では、深度中の対応するブロックのサイズは現在ブロックのサイズと同じであり得る。
【０１２７】
２．対応する深度ブロックの４つのコーナーピクセル中から１つの深度値を選択し、その深度値をリファインメントされた視差ベクトルの水平成分に変換する。この例では、ビデオコーダは、視差ベクトルの垂直成分を変更しない。
【０１２８】
[0125]ＮＢＤＶプロセスが利用可能な視差ベクトルを返さないとき（たとえば、ＮＢＤＶプロセスが、そのＮＢＤＶプロセスが視差動きベクトルまたは隣接ブロックのＩＤＶに基づいて、現在ブロックについての視差ベクトルを導出することが不可能であったことを示す変数を返すとき）、ビデオコーダは、ＮＢＤＶリファインメントプロセスを実行せず、ビデオコーダは、現在ブロックについての視差ベクトルとして、ゼロ視差ベクトルを使用する。言い換えると、ＮＢＤＶプロセスが利用可能な視差ベクトルを提供しないとき、したがって、ＮＢＤＶの結果が利用不可能であるとき、上記のＮＢＤＶ−Ｒプロセスはスキップされ、ゼロ視差ベクトルが直接返される。
【０１２９】
[0126]いくつかの３Ｄ−ＨＥＶＣ設計では、ビデオコーダは、ビュー間動き予測用に現在のブロックについてのリファインメントされた視差ベクトルを使用するが、ビデオコーダは、ビュー間残差予測用に現在ブロックについてのリファインメントされていない視差ベクトルを使用する。たとえば、ビデオコーダは、現在ブロックについてのリファインメントされていない視差ベクトルを導出するためのＮＢＤＶプロセスを使用し得る。ビデオコーダは、次いで、現在ブロックについてのリファインメントされた視差ベクトルを導出するためのＮＢＤＶリファインメントプロセスを適用し得る。ビデオコーダは、現在ブロックの動き情報を決定する目的で、現在ブロックについてのリファインメントされた視差ベクトルを使用し得る。さらに、ビデオコーダは、現在ブロックの残差ブロックを決定する目的で、現在ブロックについてのリファインメントされていない視差ベクトルを使用し得る。いくつかの例では、あるＰＵがＢＶＳＰモードでコーディングされる場合、ビデオコーダはそのＰＵの動きベクトルとして、リファインメントされた視差ベクトルを記憶し得る。
【０１３０】
[0127]後方ビュー合成予測（ＢＶＳＰ）手法は、Ｔｉａｎ他の「ＣＥ１．ｈ：Ｂａｃｋｗａｒｄ  Ｖｉｅｗ  Ｓｙｎｔｈｅｓｉｓ  Ｐｒｅｄｉｃｔｉｏｎ  Ｕｓｉｎｇ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｂｌｏｃｋｓ」、文書ＪＣＴ３Ｖ−Ｃ０１５２（以下、「ＪＣＴ３Ｖ−Ｃ０１５２」）において提案され、第３回ＪＣＴ−３Ｖ会合で採用された。ビデオコーダは、ビュー成分を合成するためにＢＶＳＰを実行し得る。ビュー成分は合成され得るため、ビットストリームがビュー成分のコード化表現を含むことは不要であり得る。少なくともこの理由で、ＢＶＳＰの使用はビットストリームのサイズを削減し得る。
【０１３１】
[0128]ＢＶＳＰは、３Ｄ−ＡＶＣ中のブロックベースのＶＳＰに概念的に類似する。言い換えると、後方ワーピングＶＳＰの基本的な考えは、３Ｄ−ＡＶＣ中のブロックベースのＶＳＰと同じである。３Ｄ−ＡＶＣ中のＢＶＳＰおよびブロックベースのＶＳＰは両方とも、動きベクトル差分を送信することを回避して、より正確な動きベクトルを使用するために、後方ワーピングおよびブロックベースのＶＳＰを使用する。しかしながら、異なるプラットフォームにより、実装形態詳細は異なる。
【０１３２】
[0129]一般に、ビデオコーダが参照テクスチャピクチャを合成するためにＢＶＳＰを実行するとき、ビデオコーダは従属テクスチャピクチャ中のブロック（たとえば、ビデオユニット）を処理する。従属テクスチャピクチャおよび合成テクスチャピクチャは、同じアクセスユニット中にあるが、異なるビュー中にある。ビデオコーダが従属テクスチャピクチャのブロック（すなわち、現在ブロック）を処理するとき、ビデオコーダは、現在ブロックの視差ベクトルを識別するためにＮＢＤＶプロセスを実行し得る。すなわち、ブロックについての深度情報を推定するために、ビデオコーダは隣接ブロックから視差ベクトルを最初に導出することができる。
【０１３３】
[0130]さらに、ビデオコーダが参照テクスチャピクチャを合成するためにＢＶＳＰを実行するとき、ビデオコーダは、参照深度ピクチャ中の参照ブロックを識別するために、現在ブロックの視差ベクトルを使用することができる。言い換えると、ビデオコーダは、次いで、参照ビューから深度ブロックを取得するために、その導出された視差ベクトルを使用することができる。たとえば、ＮＢＤＶプロセスによって識別された視差ベクトルは（ｄｖx，ｄｖy）として示され得、現在ブロック位置は（ｂｌｏｃｋx，ｂｌｏｃｋy）として示され得る。さらに、この例では、ビデオコーダは、参照ビューの深度画像中で（ｂｌｏｃｋx＋ｄｖx，ｂｌｏｃｋy＋ｄＶy）において深度ブロックをフェッチし得る。この例では、フェッチされた深度ブロックは現在ＰＵの同じサイズを有する。従属テクスチャピクチャおよび参照深度ピクチャは、同じアクセスユニット中にあるが、異なるビュー中にある。ビデオコーダは、次いで、現在ブロックのサンプル値と、参照ピクチャの識別された参照ブロックのサンプル値とに基づいて、合成されたピクチャのサンプル値を決定するために、後方ワーピングプロセスを実行し得る。言い換えると、ビデオコーダは、この例では、現在ＰＵについて後方ワーピングを実行するために、フェッチされた深度ブロックを使用することができる。
【０１３４】
[0131]上記のように、ビデオコーダがＢＶＳＰを実行するとき、ビデオコーダは、現在ブロックについての視差ベクトルを識別するために、ＮＢＤＶを実行し得る。さらに、ビデオコーダがＢＶＳＰを実行するとき、ビデオコーダは、ＮＢＤＶプロセスを使用して導出された視差動きベクトルをリファインメントするために、本開示の他の箇所で説明するリファインメントプロセスに類似したリファインメントプロセスを使用することができる。ビデオコーダが視差ベクトルリファインメントプロセスを実行するとき、ビデオコーダは、参照ビュー中の深度マップ中の深度値に基づいて視差ベクトルをリファインメントすることができる。言い換えると、ＢＶＳＰ用に使用されるべき視差ベクトルまたは視差動きベクトルをリファインメントするために深度が使用され得る。リファインメントされた視差ベクトルがＢＶＳＰモードでコーディングされる場合、リファインメントされた視差ベクトルは、１つのＰＵの動きベクトルとして記憶され得る。
【０１３５】
[0132]３Ｄ−ＨＥＶＣのいくつかのバージョンでは、テクスチャファーストコーディングが適用され得る。テクスチャファーストコーディングでは、ビデオコーダは、対応する深度ビューコンポーネント（すなわち、テクスチャビューコンポーネントと同じＰＯＣ値およびビュー識別子を有する深度ビューコンポーネント）をコーディングするのに先立って、テクスチャビューコンポーネントをコーディング（たとえば、符号化または復号）する。したがって、対応する非ベースビューテクスチャビューコンポーネントのコーディングに使用するために非ベースビュー深度ビューコンポーネントは利用不可能である。言い換えると、ビデオコーダが非ベーステクスチャビューコンポーネントをコーディングするとき、対応する非ベース深度ビューコンポーネントは利用不可能である。したがって、ＢＶＳＰを実行するために、深度情報が推定および使用され得る。
【０１３６】
[0133]図５は、ＢＶＳＰ予測を実行するための参照ビューからの深度ブロック導出を示す概念図である。図５の例では、ビデオコーダは現在テクスチャピクチャ６０をコーディング中である。現在テクスチャピクチャ６０は合成された参照テクスチャピクチャ６２に依存するため、現在テクスチャピクチャ６０は「従属テクスチャピクチャ」とラベル付けされる。言い換えると、ビデオコーダは、現在テクスチャピクチャ６０を復号するために、参照テクスチャピクチャ６２を合成する必要があり得る。参照テクスチャピクチャ６２および現在テクスチャピクチャ６０は、同じアクセスユニット中にあるが、異なるビュー中にある。
【０１３７】
[0134]参照テクスチャピクチャ６２を合成するために、ビデオコーダは、現在テクスチャピクチャ６０のブロック（すなわち、ビデオユニット）を処理し得る。図５の例では、ビデオコーダは現在ブロック６４を処理中である。ビデオコーダが現在ブロック６４を処理するとき、ビデオコーダは、現在ブロック６４についての視差ベクトルを導出するために、ＮＢＤＶプロセスを実行し得る。たとえば、図５の例では、ビデオコーダは、現在ブロック６４に隣接するブロック６８の視差ベクトル６６を識別する。視差ベクトル６６の識別は、図５のステップ１に示される。さらに、図５の例では、ビデオコーダは、視差ベクトル６６に基づいて現在ブロック６４の視差ベクトル６８を決定する。たとえば、視差ベクトル６８は視差ベクトル６６の複写であり得る。視差ベクトル６６の複写は、図５のステップ２に示される。
【０１３８】
[0135]ビデオコーダは、現在ブロック６４の視差ベクトル６８に基づいて参照深度ピクチャ７２中の参照ブロック７０を識別することができる。参照深度ピクチャ７２、現在テクスチャピクチャ６０、および参照テクスチャピクチャ６２は、各々、同じアクセスポイント中にあり得る。参照深度ピクチャ７２および参照テクスチャピクチャ６２は、同じビュー中にあり得る。ビデオコーダは、現在ブロック６４のテクスチャサンプル値と参照ブロック７０の深度サンプル値とに基づいて参照テクスチャピクチャ６２のテクスチャサンプル値を決定することができる。テクスチャサンプル値を決定するプロセスは、後方ワーピングと呼ばれることがある。３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ３の第Ｈ８．５．２．２．７項は、後方ワーピングのプロセスを記述する。後方ワーピングは図５のステップ３に示される。このようにして、図５は、参照ビューからの深度ブロックの位置がどのように特定され、次いで、ＢＶＳＰ予測用に使用されるかの３つのステップを示す。
【０１３９】
[0136]いくつかの例では、ＢＶＳＰは一部のＣＶＳについて有効にされるが、他のＣＶＳについては有効にされない。ＢＶＳＰが有効にされるＣＶＳでは、ビデオコーダは、ビュー間動き予測用のＮＢＤＶプロセスとは異なるＮＢＤＶプロセスを実行することができる。すなわち、ＢＶＳＰがＣＶＳ中で有効にされる場合、ビュー間動き予測用のＮＢＤＶプロセスは変更され得る。ビデオコーダが、ＢＶＳＰが有効にされるＣＶＳ中の現在ブロックに関してＮＢＤＶプロセスを実行するとき、ビデオコーダは、時間的隣接ブロックが視差動きベクトルを有するかどうかを決定し得る。時間的隣接ブロックが視差動きベクトルを有する場合、ビデオコーダは、時間的隣接ブロックの視差動きベクトルに基づいて、現在ブロックの視差ベクトルを決定することができる。ビデオコーダは、次いで、視差ベクトルをリファインメントし得る。言い換えると、時間的隣接ブロックの各々について、視差動きベクトルを使用する場合、視差動きベクトルは視差ベクトルとして返されて、本開示の他の箇所で説明する方法を用いてさらにリファインメントされる。
【０１４０】
[0137]さらに、ビデオコーダが現在ブロックに関してＮＢＤＶプロセスを実行するとき、ビデオコーダは空間的隣接ブロックを評価し得る。空間的隣接ブロックの各々について、次のことが当てはまる。ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１順序の場合、空間的隣接ブロックが視差動きベクトルを使用する場合、ビデオコーダは、現在ブロックの視差ベクトルとして視差動きベクトルを返し、ビデオコーダは、本開示の他の箇所で説明するように視差ベクトルをさらにリファインメントすることができる。さもなければ、空間的隣接ブロックがＢＶＳＰモードを使用する場合、ビデオコーダは、現在ブロックの視差ベクトルとして関連する動きベクトルを返し、本開示の他の箇所で説明される方法に類似した方式で視差ベクトルをリファインメントすることができる。しかしながら、空間的隣接ブロックがＢＶＳＰモードを使用する場合、ビデオコーダは、４つのコーナーピクセルではなく、対応する深度ブロックのすべてのピクセルから最大深度値を選択することができ、ビデオコーダは、リファインメントされた視差ベクトルの垂直成分を０に設定することができる。空間的隣接ブロックがＩＤＶを使用する場合、ビデオコーダは、視差ベクトルとしてそのＩＤＶを返すことができ、ビデオコーダは、本開示の他の箇所で説明する方法を用いてその視差ベクトルをさらにリファインメントすることができる。視差動きベクトルが利用不可能である場合、ビデオデコーダは、リファインメントプロセスを適用せず、ビデオコーダは、ゼロベクトルであるとして視差ベクトルを導出し得る。
【０１４１】
[0138]ビデオコーダが現在ブロックについての視差ベクトルを決定して、現在ブロックについての視差ベクトルをリファインメントした後、ビデオコーダは、現在ブロックについての視差動きベクトルを導出し得る。現在ブロック（すなわち、ＢＶＳＰモードでコーディングされた１つのＰＵ）中の各下位領域（４×４ブロック）に関して、ビデオコーダは、リファインメントされた視差ベクトルに基づいて参照深度ビュー中の対応する４×４深度ブロックの位置を特定することができる。第２に、ビデオコーダは、対応する深度ブロック中の１６個の深度ピクセルの最大値を選択することができる。第３に、ビデオコーダは、その最大値を視差動きベクトルの水平成分に変換することができる。ビデオコーダは、視差動きベクトルの垂直成分を０に設定することができる。
【０１４２】
[0139]ビデオコーダがあるタイプのブロック（たとえば、ＰＵ、ＣＵなど）用のＮＢＤＶを使用して視差ベクトルを導出することができる可能性は低い。たとえば、利用不可能な視差ベクトルは、スライス、タイル、またはピクチャ境界に沿ったブロック用のＮＢＤＶから生じる可能性が高い。別の例では、利用不可能な視差ベクトルは、隣接ブロックがすべてイントラ予測でコーディングされる場合、ＮＢＤＶから生じる可能性が高い。
【０１４３】
[0140]一般に、タイルは、タイルのコーディングツリーブロックラスタ走査順序で連続的に順序付けられた、１つの列および１つの行の中で同時に生じる整数個のコーディングツリーブロックである。行は整数個のコーディングツリーブロックであり得る。列は、ピクチャの上部境界から下部境界に延びる垂直境界によって互いから画成され、ピクチャ中で左から右に連続的に順序付けられる。列は、ピクチャの左境界から右境界に延びる水平境界によって互いから画成され、ピクチャ中で上から下に連続的に順序付けられる。列は整数個のコーディングツリーブロックであり得る。
【０１４４】
[0141]３Ｄ−ＨＥＶＣの現在視差ベクトル導出方法にはいくつかの問題がある。たとえば、ＮＢＤＶプロセスが利用不可能な視差ベクトルを提供するとき、ビデオコーダは、その視差ベクトルをリファインメントするために、ＮＢＤＶ−Ｒプロセスをスキップし得る。これはコーディング性能の低下をもたらし得る。
【０１４５】
[0142]本開示の技法は、以前のビデオコーディング技法に優る利点を有し得る。たとえば、本開示の技法は、視差ベクトル導出方法（たとえば、３Ｄ−ＨＥＶＣのＮＢＤＶ）が利用可能な視差ベクトルを生成しないとき、参照ビューの深度ビューコンポーネントにアクセスすることによって、より良好にリファインメントされた視差ベクトルを提供し得る。
【０１４６】
[0143]いくつかの例では、ビデオコーダはマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し得る。ビデオコーダが視差ベクトル導出プロセスを実行するとき、ビデオコーダは、現在ブロックについての視差ベクトルを成功裏に導出することが可能なことがあり、または可能でないこともある。たとえば、近隣ブロックのうちのいずれも視差動きベクトルまたはＩＤＶを有さないとき、ビデオコーダは視差ベクトル導出プロセスを実行することによって、現在ブロックについての視差ベクトルを成功裏に導出することが可能でないことがある。したがって、ビデオコーダが視差ベクトル導出プロセスを実行するとき、ビデオコーダは、現在ブロックについての視差ベクトルおよび可用性値（たとえば、ａｖａｉｌａｂｌｅＤＶ）を生成し得る。可用性値は、ビデオコーダが、視差ベクトル導出プロセスを実行することによって、現在ブロックについての視差ベクトルを導出することが可能であったかどうかを示す。
【０１４７】
[0144]本開示では、可用性値が、ビデオコーダが、視差ベクトル導出プロセスを実行することによって、現在ブロックについての視差ベクトルを導出することが可能であったことを示す場合、現在ブロックについての視差ベクトルは「利用可能」である。同様に、可用性値が、ビデオコーダが、視差ベクトル導出プロセスを実行することによって、現在ブロックについての視差ベクトルを導出することが不可能であったことを示す場合、現在ブロックについての視差ベクトルは「利用不可能」である。したがって、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値は現在ブロックについての視差ベクトルが利用不可能であることを示す。さらに、本開示では、視差ベクトル導出プロセスは、ビデオコーダが、視差ベクトル導出プロセスを実行することによって、現在ブロックについての視差ベクトルを導出することが可能であるかどうかに応じて、利用可能または利用不可能な視差ベクトルを戻したと言うことができる。
【０１４８】
[0145]本開示の１つまたは複数の技法によれば、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、ビデオコーダは、それでも、現在ブロックについてのリファインメントされた視差ベクトルを生成するために、視差ベクトルリファインメントプロセスを依然として実行することが可能である。したがって、視差ベクトルリファインメントプロセスは、視差ベクトル導出プロセスが利用可能な視差ベクトルを生成する事例に限定されない。したがって、視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しない場合ですら、本開示の技法は、（ゼロに等しい水平および垂直成分を有するデフォルト視差ベクトルなど）デフォルト視差ベクトルについての視差ベクトルリファインメントを可能にする。
【０１４９】
[0146]たとえば、ビデオコーダ３０はマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセス（たとえば、ＮＢＤＶプロセス）を実行し得る。現在ブロックは現在ビュー中にあり得る。さらに、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値は現在ブロックについての視差ベクトルが利用不可能であることを示し得る。この例では、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、ビデオデコーダ３０は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセス（たとえば、ＮＢＤＶ−Ｒプロセス）を実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。ビデオデコーダ３０は、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号することができる。たとえば、ビデオデコーダ３０は、現在ブロックについてのビュー間予測、ビュー間残差予測、および／または後方ワーピングビュー合成予測を実行するためにリファインメントされた視差ベクトルを使用することができる。
【０１５０】
[0147]同様に、ビデオエンコーダ２０はマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセス（たとえば、ＮＢＤＶプロセス）を実行し得る。現在ブロックは現在ビュー中にあり得る。さらに、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値は現在ブロックについての視差ベクトルが利用不可能であることを示し得る。この例では、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、ビデオエンコーダ２０は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセス（たとえば、ＮＢＤＶ−Ｒプロセス）を実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。ビデオエンコーダ２０は、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを符号化することができる。たとえば、ビデオエンコーダ２０は、現在ブロックについてのビュー間予測、ビュー間残差予測、および／または後方ワーピングビュー合成予測を実行するために、リファインメントされた視差ベクトルを使用することができる。
【０１５１】
[0148]いくつかの例では、ＮＢＤＶプロセスが、隣接ブロック中の視差動きベクトルおよびＩＤＶをチェックした後に利用不可能な結果を返すとき（すなわち、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すとき）、ゼロ視差ベクトルを直接使用して、ＮＢＤＶ−Ｒ中のリファインメントプロセスをスキップする代わりに、ビデオコーダは、ＮＢＤＶ−Ｒプロセスにおいてゼロ視差動きベクトルを使用することができる。したがって、ＮＢＤＶ−Ｒ中のリファインメントプロセスは、深度ビューコンポーネントにアクセスすることによって、視差ベクトルをリファインメントするために使用され得る。
【０１５２】
[0149]代替的に、いくつかの例では、ＮＢＤＶプロセスが利用不可能な視差ベクトルを返すとき（すなわち、可用性値が、現在ブロックについての視差ベクトルが利用不可能であることを示すとき）、ビデオコーダは、現在ブロックの可用性を利用可能に設定することができ、現在ブロックの視差ベクトルをゼロに設定することができる。言い換えると、ビデオコーダは、現在ブロックについての視差ベクトルが利用可能であることを示すために、可用性値を修正することができる。ビデオコーダは、次いで、視差ベクトルリファインメントプロセスを現在ブロックについての視差ベクトルに適用することができる。
【０１５３】
[0150]上記のように、ＮＢＤＶプロセスは可用性値（たとえば、ａｖａｉｌａｂｌｅＤＶ）を返すことができる。一例では、０に等しいａｖａｉｌａｂｌｅＤＶは、ＮＢＤＶプロセスが利用不可能な視差ベクトルを返したことを示し得る。言い換えると、０に等しいａｖａｉｌａｂｌｅＤＶは、ＮＢＤＶプロセスが現在ブロックについての視差ベクトルを導出することが不可能であったことを示し得る。１に等しいａｖａｉｌａｂｌｅＤＶは、ＮＢＤＶプロセスが利用可能な視差ベクトルを返したことを示し得る。言い換えると、１に等しいａｖａｉｌａｂｌｅＤＶは、ＮＢＤＶプロセスが現在ブロックについての視差ベクトルを導出することが可能であったことを示し得る。さらに、この例では、ｍｖＤｉｓｐは、現在ブロックの視差ベクトルを示し、ｍｖＤｉｓｐ［０］は、現在ブロックの視差ベクトルの水平成分を示し、ｍｖＤｉｓｐ［１］は、現在ブロックの視差ベクトルの垂直成分を示す。したがって、この例では、ａｖａｉｌａｂｌｅＤＶが０に等しいとき、ビデオコーダは、ｍｖＤｉｓｐ［０］を０に設定し、ｍｖＤｉｓｐ［１］を０に設定し、ａｖａｉｌａｂｌｅＤＶを１に設定することができる。ビデオコーダは、次いで、視差ベクトルリファインメントプロセスをｍｖＤｉｓｐに適用し得る。
【０１５４】
[0151]このようにして、可用性値（たとえば、ａｖａｉｌａｂｌｅＤＶ）は、視差ベクトル導出プロセス（たとえば、ＮＢＤＶプロセス）が現在ブロックについての視差ベクトルを導出することが可能であったかどうかを示すことができる。この例では、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であったことを示すとき、ビデオコーダは、現在ブロックについての視差ベクトルが利用可能であることを示すように可用性値を設定することができ、現在ブロックについての視差ベクトルをゼロ視差ベクトルに設定することができる。
【０１５５】
[0152]さらに、ビデオコーダが、現在ブロックの視差ベクトルが利用可能であることを示すように可用性値を設定し、ＮＢＤＶプロセスが利用不可能な視差を返すとき、現在ブロックの視差ベクトルをゼロに設定するいくつかの例では、ビデオコーダは、ＮＢＤＶプロセスが、当初、利用可能な視差ベクトルを返したか否かを識別するための変数（たとえば、ａｖａｉｌａｂｌｅＤＶＲｅｓ）を維持することができる。ビデオコーダは、ある条件で他のコーディングツール用の変数を使用することができる。たとえば、０に等しいこの変数は、ビデオコーダが現在ブロックについてのビュー間残差予測を無効にすることをもたらし得る。したがって、この例では、ビデオコーダは、視差ベクトル導出プロセスが、現在ブロックについての視差ベクトルを当初導出したかどうかを示すために変数を維持することができる。ビデオコーダは、１つまたは複数のコーディングツールによって使用するための変数を提供し得る。さらに、ビデオコーダは、変数の値に基づいてコーディングツールのうちの１つまたは複数を有効にし得る。
【０１５６】
[0153]ビデオコーダが、現在ブロックの視差ベクトルの可用性値を利用可能に設定し、ＮＢＤＶプロセスが利用不可能な視差を返すとき、現在ブロックの視差ベクトルをゼロに設定するいくつかの例では、ビデオコーダは、オフセットを現在ブロックの視差ベクトル（すなわち、ゼロ視差ベクトル）に追加することができる。この例では、ビデオコーダは、視差ベクトルリファインメントプロセスを現在ブロックについての視差ベクトルに適用しない。言い換えると、この例では、深度情報を使用したリファインメントプロセスは存在しない。したがって、この例では、視差ベクトル導出プロセスが利用不可能な視差ベクトルを返すとき、ビデオコーダは、修正された視差ベクトルを生成するために、オフセットをゼロ視差ベクトルに追加することができる。
【０１５７】
[0154]前の段落の例では、ビデオコーダは、様々な方法で、オフセットを設定することができる。たとえば、ビデオコーダは、オフセットを現在ブロックの視差ベクトルの水平成分のみに追加することができる。さらに、いくつかの例では、ビデオコーダ（または、別のデバイス）は、カメラパラメータおよびデフォルト深度ピクセル値（たとえば、１２８）でオフセットを計算することができる。したがって、この例では、ビデオコーダは、カメラパラメータおよびデフォルト深度ピクセル値のうちの１つまたは複数に基づいて、オフセットを決定することができる。いくつかの例では、ビデオエンコーダ２０は、現在ブロックを含むスライスのスライスヘッダ中でオフセットをシグナリングする。したがって、そのような例では、ビデオコーダは、コード化ビデオビットストリーム中で受信された、シグナリングされた値に基づいてオフセットを決定することができる。そのような例では、値はスライスヘッダ中でシグナリングされ得る。
【０１５８】
[0155]本開示のいくつかの技法によれば、本開示で提供する例のうちの１つまたは複数は組み合わせることができる。
【０１５９】
[0156]図６は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図６は、説明のために提供されるものであり、本開示で広く例示し説明する技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１６０】
[0157]図６の例において、ビデオエンコーダ２０は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニット１２２と、動き補償ユニット１２４とを含む。他の例では、ビデオエンコーダ２０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０１６１】
[0158]ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０はビデオデータのピクチャのスライス中の各ＣＴＵを符号化してもよい。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ：coding tree block）と、ピクチャの対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は４分木区分を実行して、ＣＴＵのＣＴＢを徐々により小さいブロックに分割し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【０１６２】
[0159]ビデオエンコーダ２０は、ＣＴＵのＣＵを符号化して、ＣＵの符号化表現（すなわち、コード化ＣＵ）を生成することができる。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵのうちのＣＵに関連付けられたコーディングブロックを区分することができる。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記のように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズを２Ｎ×２Ｎと仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測の場合は２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートすることができ、インター予測の場合は２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートすることができる。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測用の２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズ用の非対称区分化をサポートすることができる。
【０１６３】
[0160]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによってＰＵの予測データを生成し得る。ＰＵの予測データは、ＰＵの予測ブロックと、ＰＵの動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、Ｂスライス中にあるのかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０はＰＵに対してインター予測を実行しない。
【０１６４】
[0161]ＰＵがＰスライス中にある場合、動き推定ユニット１２２は、ＰＵの参照領域について参照ピクチャリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索し得る。ＰＵの参照領域は、ＰＵの予測ブロックに最も近接して対応するサンプルを含んでいる参照ピクチャ内の領域であり得る。動き推定ユニット１２２は、ＰＵの参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、ＰＵの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示す動きベクトルを生成し得る。たとえば、動きベクトルは、現在ピクチャにおける座標から参照ピクチャにおける座標までのオフセットを与える２次元ベクトルであり得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【０１６５】
[0162]ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵについての単予測または双予測を実行し得る。ＰＵについての単予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０の参照ピクチャまたは第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）を探索し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵの予測ブロックと参照領域に関連する参照ロケーションとの間の空間変位を示す動きベクトルと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるのかＲｅｆＰｉｃＬｉｓｔ１中にあるのかを示す１つまたは複数の予測方向インジケータとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１６６】
[0163]ＰＵについての双方向インター予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索し得、またＰＵの別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、参照領域に関連する参照ロケーションとＰＵの予測ブロックとの間の空間変位を示す動きベクトルを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスと動きベクトルとを含み得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１６７】
[0164]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵ用の予測データを生成することができる。ＰＵの予測データは、ＰＵの予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス内、Ｐスライス内、およびＢスライス内のＰＵに対してイントラ予測を実行することができる。
【０１６８】
[0165]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵについて複数セットの予測データを生成し得る。特定のイントラ予測モードを使用してイントラ予測を実行するとき、イントラ予測処理ユニット１２６は、隣接ブロックからのサンプルの特定のセットを使用してＰＵの予測ブロックを生成し得る。隣接ブロックは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの予測ブロックの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば３３個の方向のイントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数はＰＵの予測ブロックのサイズに依存し得る。
【０１６９】
[0166]いくつかの例では、インター予測処理ユニット１２０は、現在ブロック（たとえば、ＣＵ、ＰＵなど）についての視差ベクトルを導出することができる。視差ベクトルは、ビュー間動き予測、ビュー間残差予測、後方ワーピングビュー合成予測などをサポートし得る。本開示の１つまたは複数の技法によれば、インター予測処理ユニット１２０は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することができる。視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値は現在ブロックについての視差ベクトルが利用不可能であることを示す。可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、インター予測処理ユニット１２０は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。
【０１７０】
[0167]予測処理ユニット１００は、ＰＵについてインター予測処理ユニット１２０によって生成された予測データ、またはＰＵについてイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵの予測データを選択することができる。いくつかの例では、予測処理ユニット１００は、これらの組の予測データのレート／歪み測定基準に基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０１７１】
[0168]残差生成ユニット１０２は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック、ならびにＣＵのＰＵの選択された予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックに基づいて、ＣＵのルーマ残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロックを生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルとＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１７２】
[0169]変換処理ユニット１０４は、４分木区分を実行して、ＣＵの残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに区分し得る。したがって、ＴＵは、ルーマ変換ブロックと、２つの対応するクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。
【０１７３】
[0170]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵのＴＵごとに変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例において、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われてもよい。
【０１７４】
[0171]量子化ユニット１０６は、係数ブロック内の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にｎビット変換係数はｍビット変換係数に切り捨てられ得、ただし、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいてＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰの値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらす恐れがあり、したがって、量子化変換係数は、元の係数よりも低い精度を有することがある。
【０１７５】
[0172]逆量子化ユニット１０８および逆変換処理ユニット１１０は、それぞれ、係数ブロックに逆量子化および逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット１１２は、再構成された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算して、ＴＵに関連付けられた再構成された変換ブロックを生成し得る。再構成ユニット１１２は加算器と呼ばれることもある。ビデオエンコーダ２０は、このようにＣＵの各ＴＵのための変換ブロックを再構成することによってＣＵのコーディングブロックを再構成し得る。
【０１７６】
[0173]フィルタユニット１１４は、１つまたは複数のデブロッキング演算を実行して、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクトを低減し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成されたコーディングブロックに対して１つまたは複数のデブロッキング演算を実行した後、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、再構成されたコーディングブロックを含んでいる参照ピクチャを使用して、他のピクチャのＰＵに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット１２６は、復号ピクチャバッファ１１６内の再構成されたコーディングブロックを使用して、ＣＵと同じピクチャ内の他のＰＵに対してイントラ予測を実行することができる。復号ピクチャバッファ１１６は参照ピクチャメモリと呼ばれることもある。したがって、復号ピクチャバッファ１１６は、マルチビュービデオデータなど、ビデオデータを記憶するメモリを備え得る。
【０１７７】
[0174]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、このデータに対して１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化データを生成することができる。たとえば、エントロピー符号化ユニット１１８は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、ＣＡＢＡＣ演算、変数−変数（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。
【０１７８】
[0175]図７は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図７は、説明のために提供されるものであり、本開示において広く例示し説明する技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１７９】
[0176]図７の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４とイントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０１８０】
[0177]コード化ピクチャバッファ（ＣＰＢ）１５１は、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶し得る。エントロピー復号ユニット１５０は、ＣＰＢ１５１からＮＡＬユニットを受信し、ＮＡＬユニットをパースして、ビットストリームからシンタックス要素を取得し得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成することができる。
【０１８１】
[0178]ビットストリームのＮＡＬユニットは、コード化スライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。
【０１８２】
[0179]ビットストリームからシンタックス要素を得ることに加えて、ビデオデコーダ３０は、ＣＵに対して復号演算を実行し得る。ＣＵに対して復号演算を実行することによって、ビデオデコーダ３０はＣＵのコーディングブロックを再構成し得る。
【０１８３】
[0180]ＣＵに対して復号演算を実行することの一部として、逆量子化ユニット１５４は、ＣＵのＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、すなわち、量子化解除（de-quantize）し得る。逆量子化ユニット１５４は、ＴＵのＣＵに関連付けられたＱＰの値を使用して、量子化の程度を決定することができ、同様に、逆量子化ユニット１５４が適用するための逆量子化の程度を決定することができる。つまり、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
【０１８４】
[0181]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、係数ブロックに１つまたは複数の逆変換を適用して、ＴＵに関連付けられた残差ブロックを生成することができる。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を、係数ブロックに適用することができる。
【０１８５】
[0182]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、イントラ予測を実行して、ＰＵについての予測ブロックを生成し得る。イントラ予測処理ユニット１６６は、イントラ予測モードを使用して、空間的に隣接するＰＵの予測ブロックに基づいてＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成してもよい。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいてＰＵのイントラ予測モードを決定し得る。
【０１８６】
[0183]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）および第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を構成し得る。さらに、インター予測を使用してＰＵが符号化される場合、エントロピー復号ユニット１５０は、ＰＵの動き情報を取得し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵの１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵのための１つまたは複数の参照ブロックにおけるサンプルに基づいて、ＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成し得る。
【０１８７】
[0184]いくつかの例では、予測処理ユニット１５２は、現在ブロック（たとえば、ＣＵ、ＰＵなど）についての視差ベクトルを導出することができる。視差ベクトルは、ビュー間動き予測、ビュー間残差予測、後方ワーピングビュー合成予測などをサポートし得る。本開示の１つまたは複数の技法によれば、予測処理ユニット１５２は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することができる。視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値は現在ブロックについての視差ベクトルが利用不可能であることを示す。可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、予測処理ユニット１５２は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。
【０１８８】
[0185]再構成ユニット１５８は、ＣＵのＴＵに関連付けられたルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックからの残差値、ならびにＣＵのＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックが適用可能な場合にそれらを使用して、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成し得る。たとえば、再構成ユニット１５８は、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックのサンプルを予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックの対応するサンプルに加算して、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成し得る。再構成ユニット１５８は加算器と呼ばれることもある。
【０１８９】
[0186]フィルタユニット１６０は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。ビデオデコーダ３０は、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを復号ピクチャバッファ１６２に記憶してもよい。復号ピクチャバッファ１６２は参照ピクチャメモリと呼ばれることもある。したがって、復号ピクチャバッファ１６２は、マルチビュービデオデータなど、ビデオデータを記憶するメモリを備え得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のルーマブロック、Ｃｂブロック、およびＣｒブロックに基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。このようにして、ビデオデコーダ３０は、有意ルーマ係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力し得る。
【０１９０】
[0187]上述のように、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、視差ベクトルを決定するためにＮＢＤＶプロセスを使用することができる。さらに、ビデオコーダは、視差ベクトルについてのリファインメントプロセスを実行することができる。本開示のいくつかの技法によれば、ビデオコーダは、ＮＢＤＶプロセスが、視差ベクトルが利用不可能であると決定したとき、ゼロ視差ベクトルについてのリファインメントプロセスを実行することができる。ゼロ視差ベクトルの水平および垂直成分はゼロに等しい。そのような技法によれば、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項は次のように修正され得る。次のテキストでは、追加された主題に下線が引かれる。
【０１９１】
Ｈ．８．５．４  視差ベクトルについての導出プロセス
．．．
ａｖａｉｌａｂｌｅＤＶが１に等しく、ｄｅｒｉｖｅＦｒｏｍＤｅｐｔｈＦｌａｇが１に等しいとき、以下の順序ステップが当てはまる。
【０１９２】
１．第Ｈ．８．５．４．３項に指定される視差サンプルアレイについての導出プロセスは、入力として、ルーマロケーションｘＰ、ｙＰ、視差ベクトルｍｖＤｉｓｐ、ビュー識別子ｒｅｆＶｉｅｗＩｄｘ、変数ｎＰＳＷ、ｎＰＳＨ、ｎＰＳＷに等しい変数ｎＳｕｂＢｌｋＷ、ｎＰＳＨに等しい変数ｎＳｕｂＢｌｋＨ、および１に等しいフラグｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇで呼び出され、出力はサイズのアレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ（ｎＰＳＷＤ）×（ｎＰＳＨＤ）である。
【０１９３】
視差ベクトルｍｖＤｉｓｐ［０］の水平成分はｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ［０］［０］に等しく設定される。
【０１９４】
さもなければ、ａｖａｉｌａｂｌｅＤＶが０に等しく、ｄｅｒｉｖｅＦｒｏｍＤｅｐｔｈＦｌａｇが１に等しいとき、以下の順序ステップが当てはまる。
【０１９５】
１．第Ｈ．８．５．４．３項に指定される視差サンプルアレイについての導出プロセスは、入力として、ルーマロケーションｘＰ、ｙＰ、０に等しく設定される視差ベクトルｍｖＤｉｓｐ、ビュー識別子ｒｅｆＶｉｅｗＩｄｘ、変数ｎＰＳＷ、ｎＰＳＨ、ｎＰＳＷに等しい変数ｎＳｕｂＢｌｋＷ、ｎＰＳＨに等しい変数ｎＳｕｂＢｌｋＨ、および１に等しいフラグｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇで呼び出され、出力はサイズのアレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ（ｎＰＳＷＤ）×（ｎＰＳＨＤ）である。
【０１９６】
２．視差ベクトルｍｖＤｉｓｐ［０］の水平成分はｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ［０］［０］に等しく設定される。
【０１９７】
[0188]上記のように、第Ｈ．８．５．４．３項「視差サンプルアレイについての導出プロセス」は、第Ｈ．８．５．４項「視差ベクトルについての導出プロセス」に何の利用可能な視差動きベクトルも発見されないとき、関連する深度情報を使用してゼロ視差ベクトルをリファインメントするために呼び出される。３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４．３項を下に複写する。
【０１９８】
Ｈ．８．５．４．３  視差サンプルアレイについての導出プロセス
このプロセスへの入力は以下の通りである。
【０１９９】
現在ピクチャの左上ルーマサンプルに対する現在予測ユニットの左上ルーマサンプルのルーマロケーション（ｘＰ，ｙＰ）、
視差ベクトルｍｖＤｉｓｐ、
参照ビューを指定するビュー識別子ｒｅｆＶｉｅｗＩｄｘ、
現在予測ユニットの幅および高さをそれぞれ指定する変数ｎＰＳＷならびにｎＰＳＨ、
対応する深度サンプルの変換精度を指定する変数ｎＳｕｂＢｌｋＷおよびｎＳｕｂＢｌｋＷ、
最大視差の検索が制限されるかどうかを指定するフラグｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇ。
【０２００】
このプロセスの出力は以下の通りである。
【０２０１】
視差値の（ｎＰＳＷ）ｘ（ｎＰＳＨ）アレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ。
【０２０２】
ｒｅｆＤｅｐＰｅｌｓを、ＶｉｅｗＩｄｘがｒｅｆＶｉｅｗＩｄｘに等しい、深度ビューコンポーネントの再構成深度サンプルのアレイにする。ｒｅｆＤｅｐＰｅｌｓの左上ルーマサンプルのルーマロケーション（ｘTL，ｙTL）は以下によって導出される。
【数１】
0006407961.tif 000003
【数２】
0006407961.tif 000004
【０２０３】
サイズのアレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ（ｎＰＳＷ）×（ｎＰＳＨ）は、次に指定されるように導出される。
【０２０４】
両端値を含む、０から（（ｎＰＳＨ／ｎＳｕｂＢｌｋＨ）−１）の範囲のｓＢｙの場合、次のことが当てはまる。
【０２０５】
両端値を含む、０から（（ｎＰＳＷ／ｎＳｕｂＢｌｋＷ）−１）の範囲のｓＢｘの場合、次のことが当てはまる。
【０２０６】
変数ｍａｘＤｅｐは−１に等しく設定され、次に指定されるように修正される。
【０２０７】
ｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇが０に等しいとき、次のことが当てはまる。
【数３】
0006407961.tif 000005
【０２０８】
さもなければ（ｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇが１に等しい）、次のことが当てはまる。
【数４】
0006407961.tif 000006
【０２０９】
アレイｄｅｐｔｈＳａｍｐｌｅｓの値は次に指定されるように導出される。
【数５】
0006407961.tif 000007
【０２１０】
[0189]本開示の他の技法では、ＮＢＤＶプロセスが任意の隣接ブロック中に利用可能な視差動きベクトルまたはＩＤＶを発見しないときですら、ビデコーダはＮＢＤＶ結果に関する可用性値を常に１に設定することができる。いくつかのそのような技法によれば、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項は次のように修正され得る。次のテキストでは、追加された主題に下線が引かれる。下に示されない、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項の一部は、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３中と同じであり得る。
【０２１１】
Ｈ．８．５．４  視差ベクトルについての導出プロセス
．．．
ａｖａｉｌａｂｌｅＤＶが０に等しいとき、ｍｖＤｉｓｐ［０］は０に設定され、ｍｖＤｉｓｐ［１］は０に設定され、ａｖａｉｌａｂｌｅＤＶは１に設定される。
【０２１２】
ａｖａｉｌａｂｌｅＤＶが１に等しく、ｄｅｒｉｖｅＦｒｏｍＤｅｐｔｈＦｌａｇが１に等しいとき、以下の順序ステップが当てはまる。
【０２１３】
１．第Ｈ．８．５．４．３項に指定される視差サンプルアレイについての導出プロセスは、入力として、ルーマロケーションｘＰ、ｙＰ、視差ベクトルｍｖＤｉｓｐ、ビュー識別子ｒｅｆＶｉｅｗＩｄｘ、変数ｎＰＳＷ、ｎＰＳＨ、ｎＰＳＷに等しい変数ｎＳｕｂＢｌｋＷ、ｎＰＳＨに等しい変数ｎＳｕｂＢｌｋＨ、および１に等しいフラグｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇで呼び出され、出力はサイズのアレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ（ｎＰＳＷＤ）×（ｎＰＳＨＤ）である。
【０２１４】
視差ベクトルｍｖＤｉｓｐ［０］の水平成分はｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ［０］［０］に等しく設定される。
【０２１５】
[0190]代替的な例では、ビュー間残差予測について利用不可能ＮＢＤＶ結果を使用して無効にするために、可変のａｖａｉｌａｂｌｅＤＶＲｅｓが導入され得る。この例では、可変のａｖａｉｌａｂｌｅＤＶＲｅｓは、ビュー間残差予測を実行するか否かを制御するためにさらに使用され得る。この例では、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項の出力として、ａｖａｉｌａｂｌｅＤＶを返す代わりに、ａｖａｉｌａｂｌｅＤＶＲｅｓは、出力であり、ビュー間残差予測のためにさらに使用される。この例によれば、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項および第Ｈ．８．５．２．２．６項は次のように修正され得る。次のテキストでは、追加された主題に下線が引かれ、削除された主題はイタリック体で書かれ、二重鉤括弧で囲まれる。下に示されない、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３の第Ｈ．８．５．４項および第Ｈ．８．５．２．２．６項の一部は、３Ｄ  ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｒａｆｔ  ３中と同じであり得る。
【０２１６】
Ｈ．８．５．４  視差ベクトルについての導出プロセス
．．．
ａｖａｉｌａｂｌｅＤＶが０に等しいとき、ｍｖＤｉｓｐ［０］は０に設定され、ｍｖＤｉｓｐ［１］は０に設定される。
【０２１７】
ａｖａｉｌａｂｌｅＤＶＲｅｓはａｖａｉｌａｂｌｅＤＶに設定される。
【０２１８】
［［ａｖａｉｌａｂｌｅＤＶが１に等しく］］、ｄｅｒｉｖｅＦｒｏｍＤｅｐｔｈＦｌａｇが１に等しいとき、以下の順序ステップが当てはまる。
【０２１９】
２．第Ｈ．８．５．４．３項に指定される視差サンプルアレイについての導出プロセスは、入力として、ルーマロケーションｘＰ、ｙＰ、視差ベクトルｍｖＤｉｓｐ、ビュー識別子ｒｅｆＶｉｅｗＩｄｘ、変数ｎＰＳＷ、ｎＰＳＨ、ｎＰＳＷに等しい変数ｎＳｕｂＢｌｋＷ、ｎＰＳＨに等しい変数ｎＳｕｂＢｌｋＨ、および１に等しいフラグｒｅｓｔＭａｘＳｅａｒｃｈＦｌａｇで呼び出され、出力はサイズのアレイｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ（ｎＰＳＷＤ）×（ｎＰＳＨＤ）である。
【０２２０】
視差ベクトルｍｖＤｉｓｐ［０］の水平成分はｄｉｓｐａｒｉｔｙＳａｍｐｌｅｓ［０］［０］に等しく設定される。
【０２２１】
Ｈ．８．５．２．２．６  ビュー間残差予測プロセス
このプロセスは、ｒｅｓ＿ｐｒｅｄ＿ｆｌａｇが１に等しい場合のみ呼び出される。
【０２２２】
このプロセスへの入力は以下の通りである。
【０２２３】
現在ピクチャの左上ルーマサンプルに対する現在ルーマコーディングブロックの左上サンプルを指定するルーマロケーション（ｘＣ，ｙＣ）、
現在ピクチャの左上ルーマサンプルに対する現在予測ユニットの左上ルーマサンプルのルーマロケーション（ｘＰ，ｙＰ）、
現在ルーマコーディングブロックのサイズを指定する変数ｎＣＳ、
現在予測ユニットの幅および高さをそれぞれ指定する変数ｎＰＳＷならびにｎＰＳＨ、予測リスト利用フラグ、ｐｒｅｄＦｌａｇＬ０およびｐｒｅｄＦｌａｇＬ１、
ルーマ予測サンプルの（ｎＰＳＷ）ｘ（ｎＰＳＨ）アレイｐｒｅｄＳａｍｐｌｅｓL、
クロマ予測サンプルの２つの（ｎＰＳＷ／２）×（ｎＰＳＨ／２）アレイｐｒｅｄＳａｍｐｌｅｓCbおよびｐｒｅｄＳａｍｐｌｅｓCr。
【０２２４】
このプロセスの出力は以下の通りである。
【０２２５】
（ｎＰＳＷ）×（ｎＰＳＨ）アレイｐｒｅｄＳａｍｐｌｅｓLの修正されたバージョン、
（ｎＰＳＷ／２）×（ｎＰＳＨ／２）アレイｐｒｅｄＳａｍｐｌｅｓCbおよびｐｒｅｄＳａｍｐｌｅｓCrの修正されたバージョン。
【０２２６】
入力および出力はビュー順序インデックスｒｅｆＶｉｅｗＩｄｘ、フラグ［［ａｖａｉｌａｂｌｅＤＶ］］ａｖａｉｌａｂｌｅＤＶＲｅｓおよび視差ベクトルｍｖＤｉｓｐであるため、第Ｈ．８．５．４項で指定される視差ベクトルについての導出プロセスは、ルーマロケーション（ｘＣ，ｙＣ）および（ｘＰ，ｙＰ）、ｎＣＳのコーディングブロックサイズ、変数ｎＰＳＷおよびｎＰＳＨ、区分インデックスｐａｒｔＩｄｘおよび０に等しい変数ｄｅｒｉｖｅＦｒｏｍＤｅｐｔｈＦｌａｇにより呼び出される。
【０２２７】
ｒｅｆＲｅｓＳａｍｐｌｅｓLをＶｉｅｗＩｄｘがｒｅｆＶｉｅｗＩｄｘに等しいビュー成分のルーマ残差サンプルＲｅｓＳａｍｐｌｅｓL:の（ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL）×（ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL）アレイにする。ｒｅｆＲｅｓＳａｍｐｌｅｓCbおよびｒｅｆＲｅｓＳａｍｐｌｅｓCrをＶｉｅｗＩｄｘがｒｅｆＶｉｅｗＩｄｘに等しいビュー成分についてのインターコード化コーディングユニット用の、それぞれ、ＣｂならびにＣｒ残差サンプルＲｅｓＳａｍｐｌｅｓCbおよびＲｅｓＳａｍｐｌｅｓCrの（ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL／２）×（ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL／２）アレイにする。
【０２２８】
フラグ［［ａｖａｉｌａｂｌｅＤＶ］］ａｖａｉｌａｂｌｅＤＶＲｅｓが０に等しいとき、この下位条項の復号プロセス全体が終了する。
【０２２９】
値０（ｎＰＳＨ−１）に先行するｙおよび値０（ｎＰＳＷ−１）に先行するｘに関して、次の順序ステップが当てはまる。
【０２３０】
．．．
[0191]図８は、本開示の１つまたは複数の技法による、マルチビュービデオデータを復号するためのビデオデコーダ３０の例示的な動作２００を示すフローチャートである。マルチビュービデオデータは３Ｄ−ＨＥＶＣビデオデータであり得る。図８の例では、ビデオデコーダ３０はマルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し得る（２０２）。現在ブロックは現在ビュー中にある。ビデオデコーダ３０は、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定することができる（２０４）。たとえば、可用性値は、視差ベクトル導出プロセスが視差動きベクトルまたは現在ブロックに隣接するブロックの暗黙的視差ベクトルから現在ブロックについての視差ベクトルを導出することが可能であるとき、現在ブロックについての視差ベクトルが利用可能であることを示し得る。いくつかの例では、ビデオデコーダ３０は、視差ベクトル導出プロセスを実行する一環として可用性値を設定することができる。
【０２３１】
[0192]（たとえば、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、または可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出したことを示すとき）可用性値が現在ブロックについての視差ベクトルが利用可能であることを示すかどうかにかかわらず、ビデオデコーダ３０は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる（２０６）。いくつかの例では、ビデオエンコーダ２０は、視差ベクトルリファインメントプロセスをゼロ視差ベクトルに適用することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。
【０２３２】
[0193]図８の例では、ビデオデコーダ３０は、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号する（２０８）。現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号する一環として、ビデオデコーダ３０は、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについてのリファインメントされた視差ベクトルを使用することができる。ビュー間動き予測、ビュー間残差予測、および／または後方ビュー合成予測を使用することによって、ビデオデコーダ３０は、現在ブロックに対応するサンプルブロックを再構成することが可能であり得る。
【０２３３】
[0194]図９は、本開示の１つまたは複数の技法による、マルチビュービデオデータを符号化するためのビデオエンコーダ２０の例示的な動作２５０を示すフローチャートである。マルチビュービデオデータは３Ｄ−ＨＥＶＣビデオデータであり得る。図９の例では、ビデオエンコーダ２０は、マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し得る（２５２）。現在ブロックは現在ビュー中にある。ビデオエンコーダ２０は、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が現在ブロックについての視差ベクトルが利用不可能であることを示すように、可用性値を設定することができる（２５４）。たとえば、可用性値は、視差ベクトル導出プロセスが視差動きベクトルまたは現在ブロックに隣接するブロックの暗黙的視差ベクトルから現在ブロックについての視差ベクトルを導出することが可能であるとき、現在ブロックについての視差ベクトルが利用可能であることを示し得る。いくつかの例では、ビデオエンコーダ２０は、視差ベクトル導出プロセスを実行する一環として可用性値を設定することができる。
【０２３４】
[0195]（たとえば、可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出しなかったことを示すとき、または可用性値が、視差ベクトル導出プロセスが現在ブロックについての視差ベクトルを導出したことを示すとき）可用性値が現在ブロックについての視差ベクトルが利用可能であることを示すかどうかにかかわらず、ビデオエンコーダ２０は、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる（２５６）。いくつかの例では、ビデオエンコーダ２０は、視差ベクトルリファインメントプロセスをゼロ視差ベクトルに適用することによって、現在ブロックについてのリファインメントされた視差ベクトルを生成することができる。参照ビューは、現在ビューとは異なる。
【０２３５】
[0196]図９の例では、ビデオエンコーダ２０は、現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを符号化する（２５８）。言い換えると、ビデオエンコーダ２０は、現在のブロックの符号化された表現を生成するために、現在ブロックについてのリファインメントされた視差ベクトルを使用することができる。現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを符号化する一環として、ビデオエンコーダ２０は、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについてのリファインメントされた視差ベクトルを使用することができる。
【０２３６】
[0197]図１０は、本開示の１つまたは複数の追加の技法による、マルチビュービデオデータを復号するためのビデオデコーダ３０の例示的な動作３００を示すフローチャートである。図１０の例では、ビデオデコーダ３０は、現在ブロックについての視差ベクトルを導出するための視差ベクトル導出プロセスを実行し得る（３０２）。たとえば、ビデオデコーダ３０は、現在ブロックについての視差ベクトルを導出するためのＮＢＤＶプロセスを実行し得る。その後、ビデオデコーダ３０は、視差ベクトル導出プロセスが現在ブロックについて利用可能な視差ベクトルを導出したかどうかを決定することができる（３０４）。
【０２３７】
[0198]視差ベクトル導出プロセスが現在ブロックについて利用可能な視差ベクトルを導出しなかったと決定すること（３０４の「いいえ」）に応答して、ビデオデコーダ３０は、現在ブロックについての視差ベクトルがオフセットとゼロ視差ベクトルの合計に等しくなるように、現在ブロックについての視差ベクトルを決定することができる（３０６）。いくつかの例では、ビデオデコーダ３０は、オフセットを現在ブロックの視差ベクトルの水平成分のみに追加することができる。さらに、いくつかの例では、ビデオデコーダ３０は、カメラパラメータおよびデフォルト深度ピクセル値（たとえば、１２８）でオフセットを計算することができる。いくつかの例では、ビデオエンコーダ２０は、現在ブロックを含むスライスのスライスヘッダ中でオフセットをシグナリングする。
【０２３８】
[0199]現在のブロックについての視差ベクトルを決定した（３０６）後、または視差ベクトル導出プロセスが現在ブロックについて利用可能なベクトルを導出したと決定すること（３０４の「はい」）に応答して、ビデオデコーダ３０は、現在ブロックについての視差ベクトルに基づいて、現在ブロックを復号することができる（３０８）。現在ブロックについてのリファインメントされた視差ベクトルに基づいて、現在ブロックを復号する一環として、ビデオデコーダ３０は、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについてのリファインメントされた視差ベクトルを使用することができる。ビュー間動き予測、ビュー間残差予測、および／または後方ビュー合成予測を使用することによって、ビデオデコーダ３０は、現在ブロックに対応するサンプルブロックを再構成することが可能であり得る。
【０２３９】
[0200]図１１は、本開示の１つまたは複数の追加の技法による、マルチビュービデオデータを符号化するためのビデオデコーダ２０の例示的な動作３５０を示すフローチャートである。図１１の例では、ビデオエンコーダ２０は、現在ブロックについての視差ベクトルを導出するための視差ベクトル導出プロセスを実行し得る（３５２）。たとえば、ビデオエンコーダ２０は、現在ブロックについての視差ベクトルを導出するためのＮＢＤＶプロセスを実行し得る。その後、ビデオエンコーダ２０は、視差ベクトル導出プロセスが現在ブロックについて利用可能な視差ベクトルを導出したかどうかを決定することができる（３５４）。
【０２４０】
[0201]視差ベクトル導出プロセスが現在ブロックについて利用可能な視差ベクトルを導出しなかったと決定すること（３５４の「いいえ」）に応答して、ビデオエンコーダ２０は、現在ブロックについての視差ベクトルがオフセットとゼロ視差ベクトルの合計に等しくなるように、現在ブロックについての視差ベクトルを決定することができる（３５６）。いくつかの例では、ビデオエンコーダ２０は、オフセットを現在ブロックの視差ベクトルの水平成分のみに追加することができる。さらに、いくつかの例では、ビデオエンコーダ２０は、カメラパラメータおよびデフォルト深度ピクセル値（たとえば、１２８）でオフセットを計算することができる。いくつかの例では、ビデオエンコーダ２０は、現在ブロックを含むスライスのスライスヘッダ中でオフセットをシグナリングする。
【０２４１】
[0202]（３５６）で現在のブロックについての視差ベクトルを決定した後、または視差ベクトル導出プロセスが現在ブロックについて利用可能なベクトルを導出したと決定すること（３５４の「はい」）に応答して、ビデオエンコーダ２０は、現在ブロックについての視差ベクトルに基づいて現在ブロックを復号することができる（３５８）。
【０２４２】
[0203]以下は、本開示の技法による追加の例である。
【０２４３】
[0204]
【実施例１】
【０２４４】
マルチビュービデオデータを復号するための方法、この方法は、マルチビュービデオデータの現在のブロックについての視差ベクトル導出プロセスを実行することと、視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、現在ブロックについてのリファインメントされた視差ベクトルを生成するために、視差ベクトルリファインメントプロセスを実行することとを備える。
【０２４５】
[0205]
【実施例２】
【０２４６】
視差ベクトルリファインメントプロセスを実行することが、ゼロ視差ベクトルを使用して視差ベクトルリファインメントプロセスを実行することを備える、実施例１に記載の方法。
【０２４７】
[0206]
【実施例３】
【０２４８】
視差ベクトル導出が利用可能な視差ベクトルを生成しないとき、視差ベクトルリファインメントプロセスについてのゼロ視差ベクトルを生成することをさらに備える、実施例２に記載の方法。
【０２４９】
[0207]
【実施例４】
【０２５０】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、視差ベクトルが利用可能であることを示すためのステータスを設定することと、視差ベクトルの値をゼロに設定することと、ゼロの値を有する視差ベクトルを使用して、視差ベクトルリファインメントプロセスを実行することとをさらに備える、実施例２に記載の方法。
【０２５１】
[0208]
【実施例５】
【０２５２】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成したかどうかを示すための変数を維持することをさらに備える、実施例１から４のいずれかまたはそれらの組合せに記載の方法。
【０２５３】
[0209]
【実施例６】
【０２５４】
１つまたは複数のコーディングツールによって使用するために変数を提供することをさらに備える、実施例５に記載の方法。
【０２５５】
[0210]
【実施例７】
【０２５６】
変数の値に基づいて、コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、実施例６に記載の方法。
【０２５７】
[0211]
【実施例８】
【０２５８】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、修正された視差ベクトルを生成するために、オフセットをゼロ視差ベクトルに追加することをさらに備える、実施例１に記載の方法。
【０２５９】
[0212]
【実施例９】
【０２６０】
カメラパラメータおよびデフォルト深度ピクセル値のうちの１つまたは複数に基づいてオフセットを決定することをさらに備える、実施例８に記載の方法。
【０２６１】
[0213]
【実施例１０】
【０２６２】
コード化ビデオビットストリーム中で受信された、シグナリングされた値に基づいてオフセットを決定することをさらに備える、実施例８に記載の方法。
【０２６３】
[0214]
【実施例１１】
【０２６４】
値がスライスヘッダ中でシグナリングされる、実施例１０に記載の方法。
【０２６５】
[0215]
【実施例１２】
【０２６６】
視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスである、実施例１から１１のいずれかまたはそれらの組合せに記載の方法。
【０２６７】
[0216]
【実施例１３】
【０２６８】
視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである、実施例１から１２のいずれかまたはそれらの組合せに記載の方法。
【０２６９】
[0217]
【実施例１４】
【０２７０】
ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについてのリファインメントされた視差ベクトルを使用することをさらに備える、実施例１から１３のいずれかまたはそれらの組合せに記載の方法。
【０２７１】
[0218]
【実施例１５】
【０２７２】
マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、実施例１から１４のいずれかまたはそれらの組合せに記載の方法。
【０２７３】
[0219]
【実施例１６】
【０２７４】
リファインメントされた視差ベクトルに基づいてビデオデータを復号することをさらに備える、実施例１から１５のいずれかまたはそれらの組合せに記載の方法。
【０２７５】
[0220]
【実施例１７】
【０２７６】
マルチビュービデオデータを符号化するための方法、この方法は、マルチビュービデオデータの現在のブロックについての視差ベクトル導出プロセスを実行することと、視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、現在ブロックについてのリファインメントされた視差ベクトルを生成するために、視差ベクトルリファインメントプロセスを実行することとを備える。
【０２７７】
[0221]
【実施例１８】
【０２７８】
視差ベクトル導出プロセスを実行することが、ゼロ視差ベクトルを使用して視差ベクトルリファインメントプロセスを実行することを備える、実施例１７に記載の方法。
【０２７９】
[0222]
【実施例１９】
【０２８０】
視差ベクトル導出が利用可能な視差ベクトルを生成しないとき、視差ベクトルリファインメントプロセスについてのゼロ視差ベクトルを生成することをさらに備える、実施例１８に記載の方法。
【０２８１】
[0223]
【実施例２０】
【０２８２】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、視差ベクトルが利用可能であることを示すためのステータスを設定することと、視差ベクトルの値をゼロに設定することと、ゼロの値を有する視差ベクトルを使用して、視差ベクトルリファインメントプロセスを実行することとをさらに備える、実施例１８に記載の方法。
【０２８３】
[0224]
【実施例２１】
【０２８４】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成したかどうかを示すための変数を維持することをさらに備える、実施例１７から２０のいずれかまたはそれらの組合せに記載の方法。
【０２８５】
[0225]
【実施例２２】
【０２８６】
１つまたは複数のコーディングツールによって使用するために変数を提供することをさらに備える、実施例２１に記載の方法。
【０２８７】
[0226]
【実施例２３】
【０２８８】
変数の値に基づいて、コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、実施例２２に記載の方法。
【０２８９】
[0227]
【実施例２４】
【０２９０】
視差ベクトル導出プロセスが利用可能な視差ベクトルを生成しないとき、修正された視差ベクトルを生成するために、オフセットをゼロ視差ベクトルに追加することをさらに備える、実施例１７に記載の方法。
【０２９１】
[0228]
【実施例２５】
【０２９２】
カメラパラメータおよびデフォルト深度ピクセル値のうちの１つまたは複数に基づいてオフセットを決定することをさらに備える、実施例２４に記載の方法。
【０２９３】
[0229]
【実施例２６】
【０２９４】
コード化ビデオビットストリーム中で受信された、シグナリングされた値に基づいてオフセットを決定することをさらに備える、実施例２４に記載の方法。
【０２９５】
[0230]
【実施例２７】
【０２９６】
値がスライスヘッダ中でシグナリングされる、実施例２６に記載の方法。
【０２９７】
[0231]
【実施例２８】
【０２９８】
視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスである、実施例１７から２７のいずれかまたはそれらの組合せに記載の方法。
【０２９９】
[0232]
【実施例２９】
【０３００】
視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである、実施例１７から２８のいずれかまたはそれらの組合せに記載の方法。
【０３０１】
[0233]
【実施例３０】
【０３０２】
ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについてのリファインメントされた視差ベクトルを使用することをさらに備える、実施例１７から２９のいずれかまたはそれらの組合せに記載の方法。
【０３０３】
[0234]
【実施例３１】
【０３０４】
マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、実施例１７から３０のいずれかまたはそれらの組合せに記載の方法。
【０３０５】
[0235]
【実施例３２】
【０３０６】
実施例１から１６のいずれかまたはそれらの組合せに記載の方法を実行するように構成されたビデオ復号装置。
【０３０７】
[0236]
【実施例３３】
【０３０８】
実施例１７から３１のいずれかまたはそれらの組合せに記載の方法を実行するように構成されたビデオ符号化装置。
【０３０９】
[0237]
【実施例３４】
【０３１０】
実施例１から１６のいずれかまたはそれらの組合せに記載の方法を実行するための手段を備えるビデオ復号装置。
【０３１１】
[0238]
【実施例３５】
【０３１２】
実施例１７から３１のいずれかまたはそれらの組合せに記載の方法を実行するための手段を備えるビデオ符号化装置。
【０３１３】
[0239]
【実施例３６】
【０３１４】
１つもしくは複数のプロセッサに実施例１から３１のいずれかまたはそれらの組合せに記載の方法を実行させるための命令を備えるコンピュータ可読媒体。
【０３１５】
[0240]
【実施例３７】
【０３１６】
本明細書で開示する技法のいずれかによる、ビデオデータを符号化する方法。
【０３１７】
[0241]
【実施例３８】
【０３１８】
本明細書で開示する技法のいずれかによる、ビデオデータを復号する方法。
【０３１９】
[0242]
【実施例３９】
【０３２０】
本明細書で開示する技法のいずれかを実行するように構成されたデバイス。
【０３２１】
[0243]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアに実装される場合、機能は、１つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行することができる。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または、（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示に記載された技法を実装するための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータ、または１つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０３２２】
[0244]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０３２３】
[0245]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実施に適した任意の他の構造のいずれかを指す場合がある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／もしくはソフトウェアモジュール内に提供され得、または複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中で十分に実装され得る。
【０３２４】
[0246]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０３２５】
[0247]様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内である。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
マルチビュービデオデータを復号するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定することと、
前記可用性値が、前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、前記現在ブロックについてのリファインメントされた視差ベクトルを生成することと、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号することと
を備える方法。
［Ｃ２］
前記視差ベクトル導出プロセスが視差動きベクトルまたは前記現在ブロックに隣接するブロックの暗黙的視差ベクトルから前記現在ブロックについての前記視差ベクトルを導出することが可能であるとき、前記可用性値が前記現在ブロックについての前記視差ベクトルが利用可能であることを示す、Ｃ１に記載の方法。
［Ｃ３］
前記リファインメントされた視差ベクトルを生成することが、前記視差ベクトルリファインメントプロセスをゼロ視差ベクトルに適用することによって、前記現在ブロックについての前記リファインメントされた視差ベクトルを生成することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、
前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように、
前記可用性値を設定することと、
前記現在ブロックについての前記視差ベクトルをゼロ視差ベクトルに設定することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持することと、
１つまたは複数のコーディングツールによって使用するために前記変数を提供することと
をさらに備える、Ｃ４に記載の方法。
［Ｃ６］
前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、Ｃ５に記載の方法。
［Ｃ７］
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
Ｃ１に記載の方法。
［Ｃ８］
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて前記現在ブロックを復号することが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについての前記リファインメントされた視差ベクトルを使用することを備える、Ｃ１に記載の方法。
［Ｃ９］
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、Ｃ１に記載の方法。
［Ｃ１０］
マルチビュービデオデータを符号化するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定することと、
前記可用性値が、前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、前記現在ブロックについてのリファインメントされた視差ベクトルを生成することと、
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを符号化することと
を備える方法。
［Ｃ１１］
前記視差ベクトル導出プロセスが視差動きベクトルまたは前記現在ブロックに隣接するブロックの暗黙的視差ベクトルから前記現在ブロックについての前記視差ベクトルを導出することが可能でるとき、前記可用性値が前記現在ブロックについての前記視差ベクトルが利用可能であることを示す、Ｃ１０に記載の方法。
［Ｃ１２］
前記リファインメントされた視差ベクトルを生成することが、前記視差ベクトルリファインメントプロセスをゼロ視差ベクトルに適用することによって、前記現在ブロックについての前記リファインメントされた視差ベクトルを生成することを備える、Ｃ１０に記載の方法。
［Ｃ１３］
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、
前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように、前記可用性値を設定することと、
前記現在ブロックについての前記視差ベクトルをゼロ視差ベクトルに設定することと
をさらに備える、Ｃ１０に記載の方法。
［Ｃ１４］
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持することと、
１つまたは複数のコーディングツールによって使用するために前記変数を提供することと
をさらに備える、Ｃ１３に記載の方法。
［Ｃ１５］
前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にすることをさらに備える、Ｃ１４に記載の方法。
［Ｃ１６］
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
Ｃ１０に記載の方法。
［Ｃ１７］
前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて前記現在ブロックを符号化することが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについての前記リファインメントされた視差ベクトルを使用することを備える、Ｃ１０に記載の方法。
［Ｃ１８］
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、Ｃ１０に記載の方法。
［Ｃ１９］
マルチビュービデオデータを記憶するメモリと、１つまたは複数のプロセッサとを備えるビデオコーディングデバイスであって、前記１つまたは複数のプロセッサが、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定し、
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、前記現在ブロックについてのリファインメントされた視差ベクトルを生成するために視差ベクトルリファインメントプロセスを実行する
ように構成される、ビデオコーディングデバイス。
［Ｃ２０］
前記視差ベクトル導出プロセスが視差動きベクトルまたは前記現在ブロックに隣接するブロックの暗黙的視差ベクトルから前記現在ブロックについての前記視差ベクトルを導出することが可能であるとき、前記可用性値が前記現在ブロックについての前記視差ベクトルが利用可能であることを示す、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２１］
前記１つまたは複数のプロセッサが、前記視差ベクトルリファインメントプロセスをゼロ視差ベクトルに適用することによって、前記現在ブロックについての前記リファインメントされた視差ベクトルを生成するように構成される、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２２］
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、前記１つまたは複数のプロセッサが、
前記現在ブロックについての前記視差ベクトルが利用可能であることを示すように前記可用性値を設定し、
前記現在ブロックについての前記視差ベクトルをゼロ視差ベクトルに設定する
ように前記１つまたは複数のプロセッサが構成される、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２３］
前記前記１つまたは複数のプロセッサが、
前記視差ベクトル導出プロセスが、当初、前記現在ブロックについての前記視差ベクトルを導出したかどうかを示すための変数を維持し、
１つまたは複数のコーディングツールによって使用するために前記変数を提供する
ように構成される、Ｃ２２に記載のビデオコーディングデバイス。
［Ｃ２４］
前記１つまたは複数のプロセッサが、前記変数の前記値に基づいて、前記コーディングツールのうちの１つまたは複数を有効にするように構成される、Ｃ２３に記載のビデオコーディングデバイス。
［Ｃ２５］
前記視差ベクトル導出プロセスが隣接ブロック視差ベクトル（ＮＢＤＶ）導出プロセスであり、
前記視差ベクトルリファインメントプロセスが隣接ブロック視差ベクトルリファインメント（ＮＢＤＶ−Ｒ）プロセスである
Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサが、ビュー間動き予測、ビュー間残差予測、または後方ビュー合成予測のうちの少なくとも１つについて前記リファインメントされた視差ベクトルを使用するように構成される、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２７］
前記マルチビュービデオデータが３Ｄ−ＨＥＶＣビデオデータである、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２８］
前記１つまたは複数のプロセッサが、前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを復号するように構成される、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２９］
前記１つまたは複数のプロセッサが、前記現在ブロックについての前記リファインメントされた視差ベクトルに基づいて、前記現在ブロックを符号化するように構成される、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ３０］
マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行するための手段と、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定するための手段と、
前記可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、前記現在ブロックについてのリファインメントされた視差ベクトルを生成するための手段と
を備えるビデオコーディングデバイス。
［Ｃ３１］
実行されると、
マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが前記現在ブロックについての視差ベクトルを導出することが不可能であるとき、可用性値が前記現在ブロックについての前記視差ベクトルが利用不可能であることを示すように、前記可用性値を設定し、
前記可用性値が、前記視差ベクトル導出プロセスが前記現在ブロックについての前記視差ベクトルを導出しなかったことを示すとき、参照ビューの深度ビューコンポーネントにアクセスする視差ベクトルリファインメントプロセスを実行することによって、前記現在ブロックについてのリファインメントされた視差ベクトルを生成する
ように１つまたは複数のプロセッサを構成する命令を記憶した、非一時的コンピュータ可読記憶媒体。
［Ｃ３２］
マルチビュービデオデータを復号するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが、前記現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、前記現在ブロックについての前記視差ベクトルを決定することと、
前記現在ブロックについての前記視差ベクトルに基づいて、前記現在ブロックを復号することと
を備える方法。
［Ｃ３３］
カメラパラメータおよびデフォルト深度ピクセル値に基づいて前記オフセットを決定することをさらに備える、Ｃ３２に記載の方法。
［Ｃ３４］
前記オフセットが前記マルチビュービデオデータのスライスヘッダ中でシグナリングされる、Ｃ３２に記載の方法。
［Ｃ３５］
前記現在ブロックについての前記視差ベクトルを決定することが、前記オフセットを前記ゼロ視差ベクトルの水平成分にのみ追加することを備える、Ｃ３２に記載の方法。
［Ｃ３６］
マルチビュービデオデータを符号化するための方法であって、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行することと、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが、前記現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、前記現在ブロックについての前記視差ベクトルを決定することと、
前記現在ブロックについての前記視差ベクトルに基づいて、前記現在ブロックを符号化することと
を備える方法。
［Ｃ３７］
カメラパラメータおよびデフォルト深度ピクセル値に基づいて前記オフセットを決定することをさらに備える、Ｃ３６に記載の方法。
［Ｃ３８］
前記オフセットが前記マルチビュービデオデータのスライスヘッダ中でシグナリングされる、Ｃ３６に記載の方法。
［Ｃ３９］
前記現在ブロックについての前記視差ベクトルを決定することが、前記オフセットを前記ゼロ視差ベクトルの水平成分にのみ追加することを備える、Ｃ３６に記載の方法。
［Ｃ４０］
マルチビュービデオデータを記憶するメモリと、１つまたは複数のプロセッサとを備える、マルチビュービデオデータをコーディングするためのデバイスであって、前記１つまたは複数のプロセッサが、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが、前記現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、前記現在ブロックについての前記視差ベクトルを決定し、
前記現在ブロックについての前記視差ベクトルに基づいて、前記現在ブロックをコーディングする
ように構成される、デバイス。
［Ｃ４１］
前記１つまたは複数のプロセッサが、カメラパラメータおよびデフォルト深度ピクセル値に基づいて前記オフセットを決定するように構成される、Ｃ４０に記載のデバイス。
［Ｃ４２］
前記オフセットが前記マルチビュービデオデータのスライスヘッダ中でシグナリングされる、Ｃ４０に記載のデバイス。
［Ｃ４３］
前記現在ブロックについての前記視差ベクトルを決定するために、前記１つまたは複数のプロセッサが、前記オフセットを前記ゼロ視差ベクトルの水平成分にのみ追加する、Ｃ４０に記載のデバイス。
［Ｃ４４］
マルチビュービデオデータをコーディングするためのデバイスであって、
マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行するための手段と、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが、前記現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、前記現在ブロックについての前記視差ベクトルを決定するための手段と、
前記現在ブロックについての前記視差ベクトルに基づいて、前記現在ブロックをコーディングするための手段と
を備える、デバイス。
［Ｃ４５］
マルチビュービデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサによって実行されると、前記デバイスに、
前記マルチビュービデオデータの現在ブロックについての視差ベクトル導出プロセスを実行し、前記現在ブロックは現在ビュー中にある、
前記視差ベクトル導出プロセスが、前記現在ブロックについての視差ベクトルが利用不可能であると決定するとき、オフセットをゼロ視差ベクトルに追加することによって、前記現在ブロックについての前記視差ベクトルを決定し、
前記現在ブロックについての前記視差ベクトルに基づいて、前記現在ブロックをコーディングする
ことを行わせる命令を記憶した、非一時的コンピュータ可読データ記憶媒体。
【図１】
0006407961.tif 000008
【図２】
0006407961.tif 000009
【図３】
0006407961.tif 000010
【図４】
0006407961.tif 000011
【図５】
0006407961.tif 000012
【図６】
0006407961.tif 000013
【図７】
0006407961.tif 000014
【図８】
0006407961.tif 000015
【図９】
0006407961.tif 000016
【図１０】
0006407961.tif 000017
【図１１】
0006407961.tif 000018