(57)【特許請求の範囲】
【請求項１】
マルチビュービデオデータを復号するための方法であって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは、前記動き補償予測を使用してコーディングされた参照ブロックを有する、最も近いサブＰＵの動きパラメータに設定されない、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく、
前記候補リスト中の選択された候補を示すシンタックス要素をビットストリームから取得することと、
前記現在ＰＵのための予測ブロックを再構成するために、前記選択された候補の動きパラメータを使用することと
を備え、
ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することと
を備える、方法。
【請求項２】
ビデオデータを符号化する方法であって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは、前記動き補償予測を使用してコーディングされた参照ブロックを有する、最も近いサブＰＵの動きパラメータに設定されない、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく、
前記候補リスト中の選択された候補を示すシンタックス要素をビットストリーム内でシグナリングすることと
を備え、
ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することと
を備える、方法。
【請求項３】
前記参照ピクチャが前記現在ピクチャとは異なるビュー中にあり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記現在ＰＵの視差ベクトルに基づいて前記参照ピクチャ中の参照サンプルロケーションを決定することを備え、ここにおいて、前記それぞれのサブＰＵのための前記参照ブロックは前記参照サンプルロケーションをカバーする請求項１または２に記載の方法。
【請求項４】
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記それぞれのサブＰＵのための前記参照ブロックが前記それぞれのサブＰＵとコロケートされた、前記参照ピクチャのＰＵであると決定することを備える
請求項１または２に記載の方法。
【請求項５】
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記デフォルト動きパラメータを決定することが、前記デフォルト動きパラメータを、前記現在ＰＵとコロケートされた、前記現在ＰＵと同じサイズを有する、前記参照ピクチャ中にある参照ブロックのピクセルをカバーするブロックに関連付けられた動きパラメータに設定することを備える
請求項１または２に記載の方法。
【請求項６】
前記ピクセルが前記参照ブロックの中心ピクセルである、請求項５に記載の方法。
【請求項７】
ＰＵレベル動きベクトル候補に基づいて、空間マージ候補を前記候補リスト中に含めるかどうかを決定することをさらに備え、ここにおいて、前記ＰＵレベル動きベクトル候補は、前記デフォルト動きパラメータと同じ動きパラメータを指定する、請求項１または２に記載の方法。
【請求項８】
前記デフォルト動きパラメータがデフォルト動きベクトルとデフォルト参照インデックスとを含み、
前記デフォルト動きパラメータを決定することが、
デフォルト動きベクトルをゼロ動きベクトルに設定することと、
前記デフォルト参照インデックスを、０、または現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに設定することと
を備える、請求項１または２に記載の方法。
【請求項９】
前記デフォルト動きパラメータを決定することが、前記複数のサブＰＵのラスタ走査順序で前記複数のサブＰＵのうちの第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを前記複数のサブＰＵの前記ラスタ走査順序で前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、請求項１または２に記載の方法。
【請求項１０】
前記デフォルト動きパラメータを決定することが、前記それぞれのサブＰＵを含むサブＰＵの行の前記複数のサブＰＵのうちの第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを、前記それぞれのサブＰＵを含むサブＰＵの前記行の前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、請求項１または２に記載の方法。
【請求項１１】
前記デフォルト動きパラメータが前記複数のサブＰＵ中の各サブＰＵに関して同じである、請求項１または２に記載の方法。
【請求項１２】
前記デフォルト動きパラメータを決定することが、
前記現在ＰＵの予測ブロックと同じサイズを有する、前記参照ピクチャ中の参照ブロックを決定することと、
前記参照ブロックのサブＰＵの中から、前記参照ブロックの中心ピクセルに最も近いサブＰＵを決定することと、
前記参照ブロックの前記決定されたサブＰＵの動きパラメータから前記デフォルト動きパラメータを導出することと
を備える、請求項１または２に記載の方法。
【請求項１３】
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、
（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）
ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、
または
（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）
ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、
を有するピクセルを含む、請求項１２に記載の方法。
【請求項１４】
ビデオデータをコーディングするためのデバイスであって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割するための手段と、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定するための手段と、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理するための手段と、ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは、前記動き補償予測を使用してコーディングされた参照ブロックを有する、最も近いサブＰＵの動きパラメータに設定されない、
前記現在ＰＵの候補リスト中に候補を含めるための手段と、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく、
を備え、
ここにおいて、前記サブＰＵを処理するための前記手段は、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定するための手段と、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定するための手段と、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定するための手段と
を備える、デバイス。
【請求項１５】
実行されると、デバイスに、請求項１乃至１３のうちのいずれか１項に記載の方法を実行させる命令を記憶した、非一時的コンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１３年８月３０日に出願された米国仮出願第６１／８７２，５４０号、および２０１３年１２月６日に出願された米国仮出願第６１／９１３，０３１号の利益を主張する。
【０００２】
[0002]本開示は、ビデオ符号化および復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス内のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用することができる。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は次いで量子化することができる。量子化係数は、最初に２次元アレイで構成され、係数の１次元ベクトルを生成するために走査することができ、なお一層の圧縮を達成するためにエントロピーコーディングを適用することができる。
【０００６】
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの３次元（３Ｄ）ビデオ規格が開発されている。たとえば、３Ｄビデオをサポートするために、異なるビューが左眼ビューと右眼ビューを送信し得る。代替的に、いくつかの３Ｄビデオコーディングプロセスは、いわゆるマルチビュー＋深度コーディング（multiview plus depth coding）を適用し得る。マルチビュー＋深度コーディングでは、３Ｄビデオビットストリームが、テクスチャビューコンポーネントだけでなく、深度ビューコンポーネントをも含んでいることがある。たとえば、各ビューは、１つのテクスチャビューコンポーネントと１つの深度ビューコンポーネントとを備え得る。
【発明の概要】
【０００７】
[0007]概して、本開示は、深度コーディング技法を含む、高度コーデックに基づく３次元（３Ｄ）ビデオコーディングに関する。たとえば、本開示の技法のいくつかは、３次元高効率ビデオコーディング（３Ｄ−ＨＥＶＣ）用の高度動き予測に関する。いくつかの例では、ビデオコーダは、現在予測ユニット（ＰＵ）に関する候補リスト中に含めるための候補を決定する。この候補は、現在ＰＵの複数のサブＰＵの動きパラメータに基づく。この候補を生成するとき、ビデオコーダは、ラスタ走査順序など、特定の順序でサブＰＵを処理することができる。サブＰＵに対応する参照ブロックが動き補償予測を使用してコーディングされない場合、ビデオコーダは、サブＰＵの動きパラメータをデフォルト動きパラメータに設定する。複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない。
【０００８】
[0008]一例では、本開示は、マルチビュービデオデータを復号するための方法を説明し、この方法は、現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、現在ＰＵは現在ピクチャ中にある、デフォルト動きパラメータを決定することと、複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない、ここにおいて、サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、複数のサブＰＵを処理することは、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャはそれぞれのサブＰＵのための参照ブロックを含む、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することと、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングさない場合、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することと、を備える、現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、候補は複数のサブＰＵの動きパラメータに基づく、候補リスト中の選択された候補を示すシンタックス要素をビットストリームから取得することと、現在ＰＵのための予測ブロックを再構成するために、選択された候補の動きパラメータを使用することと、を備える。
【０００９】
[0009]別の例では、本開示は、ビデオデータを符号化する方法を説明し、この方法は、現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、現在ＰＵは現在ピクチャ中にある、デフォルト動きパラメータを決定することと、複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない、ここにおいて、サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、複数のサブＰＵを処理することは、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャはそれぞれのサブＰＵのための参照ブロックを含む、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することと、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することと、を備える、現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、候補は複数のサブＰＵの動きパラメータに基づく、候補リスト中の選択された候補を示すシンタックス要素をビットストリーム内でシグナリングすることと、を備える。
【００１０】
[0010]別の例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスは、復号ピクチャを記憶するためのメモリと、１つまたは複数のプロセッサであって、現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、現在ＰＵは現在ピクチャ中にある、デフォルト動きパラメータを決定することと、複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない、ここにおいて、サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、複数のサブＰＵを処理することは、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャはそれぞれのサブＰＵのための参照ブロックを含む、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することと、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングさない場合、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することと、を備える、現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、候補は複数のサブＰＵの動きパラメータに基づく、を行うように構成された、１つまたは複数のプロセッサとを備える。
【００１１】
[0011]別の例では、本開示は、ビデオデータをコーディングするためのデバイスを説明し、このデバイスは、現在予測ユニット（ＰＵ）を複数のサブＰＵに分割するための手段と、ここにおいて、現在ＰＵは現在ピクチャ中にある、デフォルト動きパラメータを決定するための手段と、複数のサブＰＵからのサブＰＵを特定の順序で処理するための手段と、ここにおいて、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない、ここにおいて、サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、複数のサブＰＵを処理するための手段は、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックを決定するための手段と、ここにおいて、参照ピクチャはそれぞれのサブＰＵのための参照ブロックを含む、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定するための手段と、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定するための手段と、を備える、現在ＰＵの候補リスト中に候補を含めるための手段と、ここにおいて、候補は複数のサブＰＵの動きパラメータに基づく、を備える。
【００１２】
[0012]別の例では、本開示は、実行されると、デバイスに、現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、現在ＰＵは現在ピクチャ中にある、デフォルト動きパラメータを決定することと、複数のサブＰＵからのサブＰＵを特定の順序で処理することと、ここにおいて、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない、ここにおいて、サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、複数のサブＰＵを処理することは、複数のサブＰＵからの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャはそれぞれのサブＰＵのための参照ブロックを含む、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することと、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングさない場合、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することと、を備える、現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、候補は複数のサブＰＵの動きパラメータに基づく、を行わせる命令を記憶した、非一時的コンピュータ可読データ記憶媒体を説明する。
【００１３】
[0013]本開示の１つまたは複数の例の詳細が、添付の図面および下記の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】[0014]本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0015]高効率ビデオコーディング（ＨＥＶＣ）における例示的なイントラ予測モードを示す概念図。
【図３】[0016]現在ブロックに対する例示的な空間的隣接ブロックを示す概念図。
【図４】[0017]例示的なマルチビュー復号順序を示す概念図。
【図５】[0018]マルチビューコーディングのための例示的な予測構造を示す概念図。
【図６】[0019]隣接ブロックベースの視差ベクトル（ＮＢＤＶ：Neighboring Blocks Based Disparity Vector）導出における例示的な時間的隣接ブロックを示す概念図。
【図７】[0020]後方ビュー合成予測（ＢＶＳＰ）を実行するための参照ビューからの深度ブロック導出を示す概念図。
【図８】[0021]マージ／スキップモードのためのビュー間予測動きベクトル候補の例示的な導出を示す概念図。
【図９】[0022]３Ｄ−ＨＥＶＣにおける１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの例示的な仕様を示す表。
【図１０】[0023]深度コーディングのための動きベクトル継承（inheritance）候補の例示的な導出を示す概念図。
【図１１】[0024]マルチビュービデオコーディングにおける高度残差予測（ＡＲＰ：advanced residual prediction）の例示的な予測構造を示す図。
【図１２】[0025]現在ブロック、参照ブロック、および動き補償ブロックの間の例示的な関係を示す概念図。
【図１３】[0026]サブ予測ユニット（ＰＵ）ビュー間動き予測を示す概念図。
【図１４】[0027]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図１５】[0028]本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図１６Ａ】[0029]本開示の一例による、インター予測を使用してコーディングユニット（ＣＵ）を符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図１６Ｂ】[0030]本開示の一例による、インター予測を使用してＣＵを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図１７】[0031]本開示の一例による、現在ビューコンポーネント中の現在ＰＵに対するマージ候補（merge candidates）リストを構築するためのビデオコーダの例示的な動作を示すフローチャート。
【図１８】[0032]本開示の一例による、図１７の参照ピクチャリスト構築動作の継続を示すフローチャート。
【図１９】[0033]本開示の一例による、ビュー間予測動きベクトル候補またはテクスチャマージ候補を決定するためのビデオコーダの動作を示すフローチャート。
【発明を実施するための形態】
【００１５】
[0034]高効率ビデオコーディング（ＨＥＶＣ）は、新たに開発されたビデオコーディング規格である。３Ｄ−ＨＥＶＣは、３ＤビデオデータのためのＨＥＶＣの拡張である。３Ｄ−ＨＥＶＣは、異なる視点からの同じシーンの複数のビューを提供する。３Ｄ−ＨＥＶＣのための規格化作業の一部は、ＨＥＶＣに基づくマルチビュービデオコーデックの規格化を含む。３Ｄ−ＨＥＶＣでは、異なるビューから再構成されたビュー成分に基づくビュー間予測が有効にされる。
【００１６】
[0035]３Ｄ−ＨＥＶＣにおいて、ビュー間予測は、標準ＨＥＶＣにおいて使用される動き補償と同様であり、同じまたは類似のシンタックス要素を使用し得る。マージモード、スキップモード、および高度動きベクトル予測（ＡＭＶＰ）モードが動き予測の例示的なタイプである。ビデオコーダが予測ユニット（ＰＵ）に対してビュー間予測を実行するとき、ビデオコーダは、動き情報のソースとして、ＰＵと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャを使用し得る。対照的に、動き補償に対する他の手法は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用することができる。したがって、３Ｄ−ＨＥＶＣでは、従属ビュー中のブロックの動きパラメータは、同じアクセスユニットの他のビュー中のすでにコード化動きパラメータに基づいて予測または推測される。
【００１７】
[0036]ビデオコーダが動き予測を実行するとき、ビデオコーダは、現在ＰＵの動き情報がマージモード、スキップモード、またはＡＭＶＰモードを使用してシグナリングされるとき、候補リスト（たとえば、マージ用候補リストまたはＡＭＶＰ候補リスト）を生成し得る。３Ｄ−ＨＥＶＣにおけるビュー間動き予測を実装するために、ビデオコーダは、マージ用候補（merging candidates）リストおよびＡＭＶＰ候補リスト中にビュー間予測動きベクトル候補（ＩＰＭＶＣ：inter-view predicted motion vector candidates）を含み得る。ビデオコーダは、候補リスト中の他の候補と同じ方法でＩＰＭＶＣを使用し得る。ＩＰＭＶＣは、ビュー間参照ピクチャ中のＰＵ（すなわち、参照ＰＵ）の動き情報を指定し得る。ビュー間参照ピクチャは、現在ＰＵと同じアクセスユニット中にあるが、現在ＰＵとは異なるビュー中にあり得る。
【００１８】
[0037]いくつかの例では、ＩＰＭＶＣは、現在ＰＵの複数のサブＰＵの動きパラメータ（たとえば、動きベクトル、参照インデックスなど）を指定することができる。概して、ＰＵの各サブＰＵは、ＰＵの予測ブロックの異なる、等しいサイズのサブブロックに関連付けられ得る。たとえば、ＰＵのルーマ予測ブロックが３２×３２であり、サブＰＵサイズが４×４である場合、ビデオコーダは、ＰＵを、ＰＵのルーマ予測ブロックの異なる４×４サブブロックに関連付けられた６４個のサブＰＵに区分することができる。この例では、サブＰＵはまた、ＰＵのクロマ予測ブロックの対応するサブブロックに関連付けられ得る。したがって、ＩＰＭＶＣは、複数の動きパラメータセットを指定することができる。そのような例では、ＩＰＭＶＣが候補リスト中の選択された候補である場合、ビデオコーダは、ＩＰＭＶＣによって指定された複数の動きパラメータセットに基づいて、現在ＰＵのための予測ブロックを決定することができる。
【００１９】
[0038]現在ＰＵのサブＰＵの動きパラメータを指定するＩＰＭＶＣを決定するために、ビデオコーダは、ラスタ走査順序に従って、サブＰＵの各々を処理することができる。ビデオコーダがサブＰＵ（すなわち、現在サブＰＵ）を処理するとき、ビデオコーダは、現在ＰＵについての視差ベクトルに基づいて、サブＰＵに対応する参照ブロックを決定することができる。参照ブロックは、現在ピクチャと同じ時間インスタンス中にあり得るが、現在ピクチャとは異なるビュー中にある。現在サブＰＵに対応する参照ブロックが動き補償予測を使用してコーディングされる（たとえば、参照ブロックが１つまたは複数の動きベクトル、参照インデックスなどを有する）場合、ビデオコーダは、現在サブＰＵの動きパラメータをサブＰＵに対応する参照ブロックの動きパラメータに設定することができる。さもなければ、現在サブＰＵに対応する参照ブロックが動き補償予測を使用してコーディングされない（たとえば、参照ブロックがイントラ予測を使用してコーディングされる）場合、ビデオコーダは、ラスタ走査順序で、その対応する参照ブロックが動き補償予測を使用してコーディングされる最も近いサブＰＵを識別することができる。ビデオコーダは、次いで、現在サブＰＵの動きパラメータを識別されたサブＰＵに対応する参照ブロックの動きパラメータに設定することができる。
【００２０】
[0039]場合によっては、識別されたサブＰＵは、ラスタ検索順序で現在サブＰＵよりも後で発生する。したがって、現在サブＰＵに関する動きパラメータを決定するとき、ビデオコーダは、その対応する参照ブロックが動き補償予測を使用してコーディングされるサブＰＵを発見するために順方向に走査することができる。代替的に、ビデオコーダが、サブＰＵの処理の間に、その対応する参照ブロックが動き補償予測を使用してコーディングされるＰＵに遭遇するまで、ビデオコーダは現在サブＰＵの動きパラメータを決定することを遅延させることができる。これらの事例のいずれにおいても、追加の複雑さおよびコーディング遅延が加えられる。
【００２１】
[0040]本開示の１つまたは複数の技法によれば、ビデオコーダは、現在ＰＵを複数のサブＰＵに区分することができる。さらに、ビデオコーダは、デフォルト動きパラメータを決定することができる。さらに、ビデオコーダは、複数のサブＰＵからのサブＰＵを特定の順序で処理することができる。場合によっては、ビデオコーダは、サブＰＵのうちのいずれかを処理するのに先立って、デフォルト動きパラメータを決定することができる。現在ＰＵの各それぞれのＰＵに関して、ビデオコーダは、それぞれのサブＰＵのための参照ブロックを決定することができる。それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、ビデオコーダは、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することができる。しかしながら、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、ビデオコーダは、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することができる。
【００２２】
[0041]本開示の１つまたは複数の技法によれば、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、特定の順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない。したがって、ビデオコーダがサブＰＵを処理しているとき、ビデオコーダは、その対応する参照ブロックが動き補償予測を使用してコーディングされることを発見するために、順方向に走査しなくてよいか、または、ビデオコーダが、サブＰＵの処理の間、その対応する参照ブロックが動き補償予測を使用してコーディングされたＰＵに遭遇するまで、それぞれのサブＰＵの動きパラメータを決定することを遅延させなくてよい。有利には、これは、複雑さおよびコーディング遅延を低減し得る。
【００２３】
[0042]図１は、本開示の技法を利用できる例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指すことがある。
【００２４】
[0043]図１に示すように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は符号化ビデオデータを生成する。したがって、ソースデバイス１２はビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４はソースデバイス１２によって生成された符号化ビデオデータを復号することができる。したがって、宛先デバイス１４はビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００２５】
[0044]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
【００２６】
[0045]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする１つまたは複数の通信媒体を備えることができる。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などのワイヤレスおよび／または有線の通信媒体を含む場合がある。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）などのパケットベースネットワークの一部を形成する場合がある。１つまたは複数の通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を容易にする、ルータ、スイッチ、基地局、または他の機器を含む場合がある。
【００２７】
[0046]別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、たとえば、ディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、種々のローカルにアクセスされるデータ記憶媒体を含み得る。
【００２８】
[0047]さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブが挙げられる。
【００２９】
[0048]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。データ接続の例示的なタイプとしては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、デジタル加入者線（ＤＳＬ）、ケーブルモデムなど）、または両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３０】
[0049]本開示の技法は、ワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００３１】
[0050]図１は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶し得、および／またはビデオ復号デバイスはメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および／またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
【００３２】
[0051]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含む場合がある。ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／またはビデオデータを生成するためのコンピュータグラフィックスシステム、あるいはビデオデータのそのようなソースの組合せを含み得る。
【００３３】
[0052]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化することができる。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００３４】
[0053]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信し得る。ビデオデコーダ３０は、符号化ビデオデータを復号し得る。ディスプレイデバイス３２は、復号されたビデオデータを表示し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るかまたはその外部にあり得る。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスを備える場合がある。
【００３５】
[0054]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれる場合があり、両者のいずれかがそれぞれのデバイス内の複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれる場合がある。
【００３６】
[0055]本開示は、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及する場合がある。「シグナリング」という用語は、概して、圧縮ビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに起こり得る。代替的に、そのような通信は、符号化時に符号化されたビットストリーム内でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われる場合があるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００３７】
[0056]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、そのスケーラブルビデオコーディング（ＳＶＣ）拡張、マルチビュービデオコーディング（ＭＶＣ）拡張、およびＭＶＣベースの３ＤＶ拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌおよび（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４などのビデオ圧縮規格に従って動作する。いくつかの事例では、Ｈ．２６４／ＡＶＣのＭＶＣベース３ＤＶ拡張に準拠するどんなビットストリームも、Ｈ．２６４／ＡＶＣのＭＶＣ拡張に準拠するサブビットストリームを常に含む。さらに、Ｈ．２６４／ＡＶＣに対する３次元ビデオ（３ＤＶ）コーディング拡張、すなわちＡＶＣベースの３ＤＶを生成する作業が進行中である。他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、およびＩＴＵ−Ｔ  Ｈ．２６４、ＩＳＯ／ＩＥＣ  Ｖｉｓｕａｌに従って動作し得る。
【００３８】
[0057]他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパーツグループ（ＭＰＥＧ：Motion Picture Experts Group）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発された高効率ビデオコーディング（ＨＥＶＣ）規格に従って動作し得る。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０」と呼ばれる、ＨＥＶＣ規格のドラフトは、Ｂｒｏｓｓら、「（ＦＤＩＳ＆承認に関する）Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  １０」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１２回会議、ジュネーブ、スイス、２０１３年１月（以下で、「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０」または「ＨＥＶＣ  ｂａｓｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ」）に記載されている。さらに、ＨＥＶＣ向けのスケーラブルビデオコーディング拡張を製作する作業が進行中である。ＨＥＶＣのスケーラブルビデオコーディング拡張はＳＨＥＶＣまたはＳＨＶＣと呼ばれることがある。
【００３９】
[0058]さらに、ＶＣＥＧおよびＭＰＥＧの３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｖ）は、現在、ＨＥＶＣのマルチビューコーディング拡張（すなわち、ＭＶ−ＨＥＶＣ）を開発している。Ｔｅｃｈら、「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ４」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第４回会合：インチョン、韓国、２０１３年４月（以下、「ＭＶ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４」）は、ＭV−ＨＥＶＣのドラフトである。ＭＶ−ＨＥＶＣでは、ＨＥＶＣにおいてＣＵレベルまたはＰＵレベルで何のモジュールも再設計される必要がないように、高レベルシンタックス（ＨＬＳ）変更のみが存在し得る。このことは、ＨＥＶＣのために構成されたモジュールがＭＶ−ＨＥＶＣのために再使用されることを可能にし得る。言い換えれば、ＭＶ−ＨＥＶＣは、高レベルのシンタックス変更だけを実現し、ＣＵ／ＰＵレベルのシンタックス変更など、低レベルのシンタックス変更を実現しない。
【００４０】
[0059]さらに、ＶＣＥＧおよびＭＰＥＧのＪＣＴ−３Ｖは、ＨＥＶＣに基づく３ＤＶ規格を開発中であり、規格化作業の一部は、ＨＥＶＣに基づくマルチビュービデオコーデック（ＭＶ−ＨＥＶＣ）、およびＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）についての別の一部の規格化を含む。３Ｄ−ＨＥＶＣでは、テクスチャビューと深度ビューの両方に対する、ＣＵおよび／またはＰＵレベルのコーディングツールを含む新たなコーディングツールが、含まれサポートされ得る。２０１３年１２月１７日の時点で、３Ｄ−ＨＥＶＣ用ソフトウェア（たとえば、３Ｄ−ＨＴＭ）が、以下のリンクからダウンロード可能である。［３Ｄ−ＨＴＭバージョン７．０］：ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−７．０／
[0060]参照ソフトウェア記述、ならびに３Ｄ−ＨＥＶＣの作業草案は次のように利用可能である。２０１３年１２月１７日付の、Ｇｅｒｈａｒｄ  Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４」、ＪＣＴ３Ｖ−Ｄ１００５＿ｓｐｅｃ＿ｖ１、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第４回会合：インチョン、韓国、２０１３年４月（以下、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４」）は以下のリンクからダウンロード可能である。ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／２＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴ３Ｖ−Ｂ１００５−ｖ１．ｚｉｐ。２０１３年１２月１７日付の、Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ３」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第３回会合：ジュネーブ、スイス、２０１３年１月、文書番号ＪＣＴ３Ｖ−Ｃ１００５（以下、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ３」）が、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝７０６から利用可能から利用可能であり、３Ｄ−ＨＥＶＣの参照ソフトウェア記述の別のバージョンである。３Ｄ−ＨＥＶＣは、Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ２」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第６回会合：ジュネーブ、スイス、２０１３年１０月２５日〜１１月１日、文書ＪＣＴ３Ｖ−Ｆ１００１−ｖ２（以下、「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｓｔ  ２」）にも記述されている。ビデオエンコーダ２０およびビデオデコーダ３０は、ＳＨＥＶＣ、ＭＶ−ＨＥＶＣ、および／または３Ｄ−ＨＥＶＣに従って動作し得る。
【００４１】
[0061]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４２】
[0062]ビデオエンコーダ２０は、ピクチャの符号化表現を生成するために、コーディングツリーユニット（ＣＴＵ）のセットを生成してもよい。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーン（color plane）を有する１つまたは複数のモノクロームピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００４３】
[0063]本開示は、１つまたは複数のサンプルブロックのサンプルをコーディングするのに使われる１つまたは複数のサンプルブロックおよびシンタックス構造を指すのに、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使う場合がある。例示的なタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分などを含み得る。いくつかのコンテキストでは、ＰＵの説明は、マクロブロックまたはマクロブロック区分の説明と交換され得る。
【００４４】
[0064]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００４５】
[0065]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分してもよい。予測ブロックは、同じ予測がそれに適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成してもよい。
【００４６】
[0066]ビデオエンコーダ２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ブロックを生成し得る。ビデオエンコーダ２０がイントラ予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいてＰＵの予測ブロックを生成し得る。各ＰＵのルーマ成分に関するＨＥＶＣのいくつかのバージョンでは、図２に示すように、（２から３４までインデックス付けされた）３３個の角度予測モードと、（１とインデックス付けされた）ＤＣモードと、（０とインデックス付けされた）平面モードとを有するイントラ予測方法が利用される。図２は、ＨＥＶＣにおける例示的なイントラ予測モード方向を示す概念図である。
【００４７】
[0067]ビデオエンコーダ２０がインター予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。インター予測は、単方向インター予測（すなわち、単予測（uni-prediction））でも双方向インター予測（すなわち、双予測（bi-prediction））でもよい。インター予測を実行するために、ビデオエンコーダ２０は、現在スライスについての第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）を生成すればよく、場合によっては、現在スライスについての第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を生成してもよい。参照ピクチャリストの各々は、１つまたは複数の参照ピクチャを含み得る。単予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１のいずれかまたは両方において参照ピクチャを探索して、参照ピクチャ内の参照ロケーションを決定すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、ＰＵのための予測サンプルブロックを生成すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、ＰＵの予測ブロックと参照ロケーションとの間の空間変位を示す単一の動きベクトルを生成すればよい。ＰＵの予測ブロックと参照ロケーションとの間の空間変位を示すために、動きベクトルは、ＰＵの予測ブロックと参照ロケーションとの間の水平変位を指定する水平成分を含み得、ＰＵの予測ブロックと参照ロケーションとの間の垂直変位を指定する垂直成分を含み得る。
【００４８】
[0068]ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャ中の第１の参照ロケーションと、ＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャ中の第２の参照ロケーションとを決定すればよい。次いで、ビデオエンコーダ２０は、ＰＵのための予測ブロックを、第１および第２の参照ロケーションに対応するサンプルに少なくとも部分的に基づいて生成し得る。さらに、ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＰＵのサンプルブロックと第１の参照ロケーションとの間の空間変位を示す第１の動きベクトルと、ＰＵの予測ブロックと第２の参照ロケーションとの間の空間変位を示す第２の動きベクトルとを生成すればよい。
【００４９】
[0069]一般に、Ｂピクチャの第１の参照ピクチャリストまたは第２の参照ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）に関する参照ピクチャリスト構築は、２つのステップ、すなわち参照ピクチャリストの初期化と、参照ピクチャリストの並べ替え（修正）とを含む。参照ピクチャリスト初期化は、（復号ピクチャバッファ（ＤＰＢ）としても知られる）参照ピクチャメモリ中の参照ピクチャをＰＯＣ（ピクチャの表示順で整列されるピクチャ順序カウント）値の順序に基づいてリストに入れる明示的機構である。参照ピクチャリスト並べ替え機構は、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置を任意の新しい位置に修正すること、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化リストに属さなくても、任意の位置に入れることができる。参照ピクチャリスト並べ替え（修正）後のいくつかのピクチャは、リスト中のはるかに離れた位置に入れられる場合がある。ただし、ピクチャの位置が、リストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終的な参照ピクチャリストのエントリとは見なされない。各リストに関するアクティブな参照ピクチャの数は、スライスヘッダ内でシグナリングされ得る。参照ピクチャリスト（すなわち、利用可能な場合、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１）が構築された後、参照ピクチャリストに対する参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを識別するために使用され得る。
【００５０】
[0070]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵについての予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒブロック）を生成した後、ビデオエンコーダ２０は、ＣＵについての１つまたは複数の残差ブロックを生成することができる。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成してもよい。ＣＵのルーマ残差ブロック内の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの予測ルーマブロック内のルーマサンプルとＣＵの元のルーマコーディングブロック内の対応するサンプルとの間の差を示す。さらに、ビデオエンコーダ２０はＣＵのＣｂ残差ブロックを生成してもよい。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はＣＵのＣｒ残差ブロックを生成してもよい。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００５１】
[0071]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ残差ブロック）を１つまたは複数の変換ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）に分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２個の対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであってもよい。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであってもよい。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであってもよい。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００５２】
[0072]ビデオエンコーダ２０は、ＴＵについての係数ブロックを生成するために、ＴＵの変換ブロックに１回または複数回の変換を適用することができる。たとえば、ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１回または複数回の変換を適用することができる。係数ブロックは変換係数の２次元ブロックであってよい。変換係数はスカラー量であり得る。ビデオエンコーダ２０はＴＵのＣｂ変換ブロックに１回または複数の変換を適用してＴＵのＣｂ係数ブロックを生成してよい。ビデオエンコーダ２０はＴＵのＣｒ変換ブロックに１回または複数の変換を適用してＴＵのＣｒ係数ブロックを生成してよい。
【００５３】
[0073]ビデオエンコーダ２０は、係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、係数ブロックを量子化してもよい。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。
【００５４】
[0074]ビデオエンコーダ２０は、コード化ピクチャと関連付けられたデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在するローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含んでいるバイトとを含んでいるシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを含むシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの例では、ＲＢＳＰはゼロビットを含む。
【００５５】
[0075]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。  たとえば、異なるタイプのＮＡＬユニットが、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、コード化スライス、補足エンハンスメント情報（ＳＥＩ）などについての異なるＲＢＳＰをカプセル化することができる。ビデオコーディングデータに対するＲＢＳＰ（パラメータセットおよびＳＥＩメッセージに対するＲＢＳＰに対立するものとして）をカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。
【００５６】
[0076]ＨＥＶＣでは、ＳＰＳは、コード化ビデオシーケンス（ＣＶＳ）のすべてのスライスに該当する情報を含み得る。ＣＶＳはピクチャのシーケンスを備え得る。ＨＥＶＣでは、ＣＶＳは、瞬時復号リフレッシュ（ＩＤＲ：instantaneous decoding refresh）ピクチャ、または切断リンクアクセス（ＢＬＡ：broken link access）ピクチャ、または、ビットストリーム中の第１のピクチャであるクリーンランダムアクセス（ＣＲＡ：clean random access）ピクチャから開始し、ＩＤＲまたはＢＬＡピクチャでないすべての後続のピクチャを含み得る。すなわち、ＨＥＶＣでは、ＣＶＳは、復号順序で、ビットストリーム中の第１のアクセスユニットであるＣＲＡアクセスユニットと、ＩＤＲアクセスユニットまたはＢＬＡアクセスユニットと、それに続いて、後続のＩＤＲまたはＢＬＡアクセスユニットを含まないがそれまでのすべての後続のアクセスユニットを含む、０個以上の非ＩＤＲおよび非ＢＬＡアクセスユニットとからなり得る、アクセスユニットのシーケンスを備え得る。ＨＥＶＣでは、アクセスユニットは、復号順序が連続しており、ちょうど１つのコード化ピクチャを含む、ＮＡＬユニットのセットであり得る。コード化ピクチャのコード化スライスＮＡＬユニットに加えて、アクセスユニットはまた、コード化ピクチャのスライスを含まない他のＮＡＬユニットを含み得る。いくつかの例では、アクセスユニットの復号により、復号ピクチャが常に生じ得る。
【００５７】
[0077]ＶＰＳは、０個以上のＣＶＳ全体に適用されるシンタックス要素を備えるシンタックス構造である。ＳＰＳは、０個以上のＣＶＳ全体に適用されるシンタックス要素を備えるシンタックス構造でもある。ＳＰＳは、ＳＰＳがアクティブであるとき、アクティブであるＶＰＳを識別するシンタックス要素を含み得る。したがって、ＶＰＳのシンタックス要素は、ＳＰＳのシンタックス要素よりも一般的に適用可能であり得る。ＰＰＳは、０個以上のコード化ピクチャに適用されるシンタックス要素を備えるシンタックス構造である。ＰＰＳは、ＰＰＳがアクティブであるとき、アクティブであるＳＰＳを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされるときにアクティブであるＰＰＳを示すシンタックス要素を含み得る。
【００５８】
[0078]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信することができる。さらに、ビデオデコーダ３０は、ビットストリームをパースして、ビットストリームからシンタックス要素を取得し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、ＰＵの動きベクトルを使用して現在ＣＵのＰＵのための予測ブロックを決定し得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換ブロックを再構成するために係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【００５９】
[0079]いくつかの例では、ビデオエンコーダ２０は、マージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードを使用して、ＰＵの動き情報をシグナリングすることができる。たとえば、ＨＥＶＣでは、動きパラメータの予測のために２つのモードがあり、一方はマージモードであり、他方はＡＭＶＰである。動き予測は、１つまたは複数の他のブロックの動き情報に基づく、ブロック（たとえば、ＰＵ）の動き情報の決定を備え得る。ＰＵの（本明細書で、動きパラメータとも呼ばれる）動き情報は、ＰＵの動きベクトルと、ＰＵの参照インデックスとを含み得る。
【００６０】
[0080]ビデオエンコーダ２０がマージモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、マージ候補リストを生成し得る。言い換えると、ビデオエンコーダ２０は、動きベクトル予測子リスト構築プロセスを実行することができる。マージ候補リストは、現在ＰＵに空間的または時間的に隣接するＰＵの動き情報を示すマージ候補のセットを含む。すなわち、マージモードでは、動きパラメータ（たとえば、参照インデックス、動きベクトルなど）の候補リストが構築され、候補は、空間的隣接ブロックおよび時間的隣接ブロックからであり得る。
【００６１】
[0081]さらに、マージモードでは、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択することができ、選択されたマージ候補によって示される動き情報を、現在ＰＵの動き情報として使うことができる。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト中の位置をシグナリングし得る。たとえば、ビデオエンコーダ２０は、インデックスを候補リスト中に送信することによって、選択された動きベクトルパラメータをシグナリングすることができる。ビデオデコーダ３０は、ビットストリームから、候補リストの中へのインデックス（すなわち、候補リストインデックス）を取得することができる。さらに、ビデオデコーダ３０は、同じマージ候補リストを生成することができ、選択されたマージ候補の位置の表示に基づいて、選択されたマージ候補を決定することができる。ビデオデコーダ３０は、次いで、選択されたマージ候補の動き情報を、現在ＰＵのための予測ブロックを生成するのに使い得る。つまり、ビデオデコーダ３０は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト中の選択された候補を決定することができ、ここで、選択された候補は、現在ＰＵについての動きベクトルを指定する。このように、デコーダ側では、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータは、現在ＰＵによって継承され得る。
【００６２】
[0082]スキップモードはマージモードと同様である。スキップモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、マージモードにおいてビデオエンコーダ２０およびビデオデコーダ３０がマージ候補リストを使うのと同じようにマージ候補リストを生成し、使うことができる。ただし、ビデオエンコーダ２０がスキップモードを使って現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵについてのどの残差データもシグナリングしない。したがって、ビデオデコーダ３０は、残差データを使用せずに、マージ候補リスト中の選択された候補の動き情報によって示される参照ブロックに基づいて、ＰＵのための予測ブロックを決定することができる。
【００６３】
[0083]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成することができ、候補リストから候補を選択することができるという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がＡＭＶＰモードを使って現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグをシグナリングするのに加え、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ動きベクトル差分（ＭＶＤ）と、現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ参照インデックスとをシグナリングすることができる。現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグは、ＡＭＶＰ候補リスト中の選択されたＡＭＶＰ候補の位置を示し得る。現在ＰＵについてのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤは、ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動きベクトルと選択されたＡＭＶＰ候補の動きベクトルとの間の差分を示し得る。このようにして、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔＸ動きベクトル予測子（ＭＶＰ）フラグと、ＲｅｆＰｉｃＬｉｓｔＸ参照インデックス値と、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤとをシグナリングすることによって、現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動き情報をシグナリングすることができる。言い換えると、現在ＰＵについての動きベクトルを表す、ビットストリーム中のデータは、参照インデックスと、候補リストへのインデックスと、ＭＶＤとを表すデータを含み得る。
【００６４】
[0084]さらに、ＡＭＶＰモードを使って現在ＰＵの動き情報がシグナリングされると、ビデオデコーダ３０は、ビットストリームから、現在ＰＵについてのＭＶＤと、ＭＶＰフラグとを取得することができる。ビデオデコーダ３０は、同じＡＭＶＰ候補リストを生成することができ、ＭＶＰフラグに基づいて、選択されたＡＭＶＰ候補を決定することができる。ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルにＭＶＤを加算することによって、現在ＰＵの動きベクトルを回復することができる。つまり、ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルおよびＭＶＤに基づいて、現在ＰＵの動きベクトルを決定することができる。ビデオデコーダ３０は、次いで、回復された１つの動きベクトルまたは複数の動きベクトルを、現在ＰＵ用の予測ブロックを生成するのに使い得る。
【００６５】
[0085]ビデオデコーダ３０が現在ＰＵについてのＡＭＶＰ候補リストを生成するとき、ビデオデコーダ３０は、現在ＰＵに空間的に隣接するロケーションをカバーするＰＵ（すなわち、空間的隣接ＰＵ）の動き情報に基づいて、１つまたは複数のＡＭＶＰ候補を導出することができる。図３は、現在ブロック４０に対して、例示的な空間的隣接ＰＵを示す概念図である。図３の例では、空間的隣接ＰＵは、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2として示されるロケーションをカバーするＰＵであり得る。ＰＵの予測ブロックがあるロケーションを含むとき、ＰＵはそのロケーションをカバーし得る。
【００６６】
[0086]現在ＰＵに時間的に隣接するＰＵ（すなわち、現在ＰＵとは異なる時間インスタンス中にあるＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト中の候補は、時間的動きベクトル予測子と呼ばれ得る。時間的動きベクトル予測の使用は、時間的動きベクトル予測（ＴＭＶＰ）と呼ばれる場合がある。ＴＭＶＰは、ＨＥＶＣのコーディング効率を向上させるために使用され得、他のコーディングツールとは異なり、ＴＭＶＰは、復号ピクチャバッファ中、より具体的には、参照ピクチャリスト中のフレームの動きベクトルにアクセスする必要があり得る。
【００６７】
[0087]ＴＭＶＰは、ＣＶＳごとに、スライスごとに、または別の方式で、有効または無効にされ得る。ＳＰＳ中のシンタックス要素（たとえば、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）は、ＴＭＶＰの使用がＣＶＳに対して有効にされるかどうかを示し得る。さらに、ＴＭＶＰがＣＶＳのために有効にされるとき、ＴＭＶＰは、ＣＶＳ内の特定のスライスに対して有効または無効にされ得る。たとえば、スライスヘッダ中のシンタックス要素（たとえば、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）は、ＴＭＶＰがスライスに対して有効にされるかどうかを示し得る。したがって、インター予測スライスでは、ＴＭＶＰがＣＶＳ全体に対して有効にされる（たとえば、ＳＰＳ中のｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に設定される）とき、ＴＭＶＰが現在スライスに対して有効にされているかどうかを示すために、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇがスライスヘッダ中でシグナリングされる。
【００６８】
[0088]時間的動きベクトル予測子を決定するために、ビデオコーダは、現在ＰＵと同じ場所にあるＰＵを含む参照ピクチャを最初に識別することができる。言い換えると、ビデオコーダはいわゆるコロケートピクチャを識別することができる。現在ピクチャの現在スライスがＢスライス（すなわち、双方向インター予測されたＰＵを含むことが許容されるスライス）である場合、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるかＲｅｆＰｉｃＬｉｓｔ１からのものであるかを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダ中でシグナリングすることができる。言い換えると、ＴＭＶＰが現在スライスに対して有効にされ、現在スライスがＢスライス（たとえば、双方向インター予測されたＰＵを含むことが許容されるスライス）であるとき、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０の中にあるかＲｅｆＰｉｃＬｉｓｔ１の中にあるかを示すために、シンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダ中でシグナリングすることができる。
【００６９】
[0089]スライスヘッダ内のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）は、識別された参照ピクチャリスト中のコロケートピクチャを示し得る。したがって、ビデオデコーダ３０がコロケートピクチャを含む参照ピクチャリストを識別した後、ビデオデコーダ３０は、識別された参照ピクチャリスト中のコロケートピクチャを識別するために、スライスヘッダ中でシグナリングされ得るｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘを使用することができる。ビデオコーダは、コロケートピクチャをチェックすることによって、コロケートＰＵを識別し得る。時間的動きベクトル予測子は、右下のＰＵコロケートＰＵの動き情報と、コロケートＰＵの中心ＰＵの動き情報のいずれかを示し得る。
【００７０】
[0090]マージモードまたはＡＭＶＰモードのための動き候補を生成するために上記のプロセスによって識別された動きベクトル（すなわち、時間的動きベクトル予測子の動きベクトル）が使用されるとき、ビデオコーダは、（ＰＯＣ値によって反映される）時間的ロケーションに基づいて、動きベクトルをスケーリングすることができる。たとえば、ビデオコーダは、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が小さいときよりも、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が大きいときに、動きベクトルの大きさをより大きな量増大させることができる。
【００７１】
[0091]時間的動きベクトル予測子から導出される時間マージ候補に対するすべてのあり得る参照ピクチャリストの目標参照インデックスは、常に０に設定され得る。しかしながら、ＡＭＶＰの場合、すべてのあり得る参照ピクチャの目標参照インデックスは、復号参照インデックスに等しいように設定され得る。言い換えれば、ＴＭＶＰから導出される時間マージ用候補のためのすべてのあり得る参照ピクチャリストの目標参照インデックスは常に０に設定されるが、ＡＭＶＰの場合、時間マージ用候補は、復号参照インデックスに等しいように設定され得る。ＨＥＶＣでは、ＳＰＳはフラグ（たとえば、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）を含んでよく、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しく設定されるとき、スライスヘッダはフラグ（たとえば、ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ）を含んでよい。ある特定のピクチャに対してｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇとｔｅｍｐｏｒａｌ＿ｉｄの両方が０に等しいとき、復号順序においてその特定のピクチャの前にあるピクチャからの動きベクトルは、その特定のピクチャ、または復号順序でその特定のピクチャの後にあるピクチャの復号において、時間的動きベクトル予測子として使用されない。
【００７２】
[0092]本開示の技法は、ＭＶ−ＨＥＶＣと３Ｄ−ＨＥＶＣとを含む、マルチビューコーディングおよび／または３ＤＶの規格ならびに仕様に潜在的に適用可能である。ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣで定義されるようなマルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在し得る。マルチビューコーディングのコンテキストでは、同じ時間インスタンスに対応するピクチャのセットを指すために「アクセスユニット」という用語が使用され得る。場合によっては、マルチビューコーディングのコンテキストでは、アクセスユニットは、指定された分類規則に従って互いに関連付けられ、復号順序で連続し、同じ出力時間に関連付けられたすべてのコード化ピクチャのＶＣＬ  ＮＡＬユニットと、それらの関連付けられた非ＶＣＬ  ＮＡＬユニットとを含むＮＡＬユニットのセットであり得る。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。
【００７３】
[0093]３Ｄ−ＨＥＶＣで定義されるような３ＤＶコーディングでは、「ビュー成分」は、単一のアクセスユニット中のビューのコード化表現であり得る。ビュー成分は、深度ビューコンポーネントとテクスチャビューコンポーネントとを含み得る。深度ビューコンポーネントは、単一のアクセスユニット中のビューの深度のコード化表現であり得る。テクスチャビューコンポーネントは、単一のアクセスユニット中のビューのテクスチャのコード化表現であり得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられたビュー成分のシーケンスを指すことがある。
【００７４】
[0094]ビューのピクチャのセット内のテクスチャビューコンポーネントおよび深度ビューコンポーネントは、互いに対応するものと見なされ得る。たとえば、ビューのピクチャのセット内のテクスチャビューコンポーネントは、そのビューのピクチャのセット内の深度ビューコンポーネントに対応すると見なされ、その逆も同様である（すなわち、深度ビューコンポーネントはセット中のそのテクスチャビューコンポーネントに対応し、その逆も同様である）。本開示で使用する、深度ビューコンポーネントに対応するテクスチャビューコンポーネントは、単一のアクセスユニットの同じビューの一部であるテクスチャビューコンポーネントおよび深度ビューコンポーネントと見なされ得る。
【００７５】
[0095]テクスチャビューコンポーネントは、表示される実際の画像コンテンツを含む。たとえば、テクスチャビューコンポーネントは、ルーマ（Ｙ）成分と、クロマ（ＣｂおよびＣｒ）成分とを含み得る。深度ビューコンポーネントは、その対応するテクスチャビューコンポーネント中のピクセルの相対深度を示し得る。一例として、深度ビューコンポーネントは、ルーマ値のみを含むグレースケール画像である。言い換えると、深度ビューコンポーネントは、任意の画像コンテンツを伝達するのではなく、テクスチャビューコンポーネント中のピクセルの相対深度の測定値を提供することができる。
【００７６】
[0096]たとえば、深度ビューコンポーネント中の純白のピクセルは、対応するテクスチャビューコンポーネント中のその対応する１つまたは複数のピクセルが閲覧者から見てより近いことを示し、深度ビューコンポーネント中の純黒のピクセルは、対応するテクスチャビューコンポーネント中のその対応する１つまたは複数のピクセルが閲覧者から見てより遠いことを示す。黒と白との中間にあるグレーの様々な陰影は、異なる深度レベルを示す。たとえば、深度ビューコンポーネント中の濃いグレーのピクセルは、テクスチャビューコンポーネント中のその対応するピクセルが、深度ビューコンポーネント中のより薄いグレーのピクセルよりも遠いことを示す。ピクセルの深度を識別するためにグレースケールのみが必要とされるので、深度ビューコンポーネント用の色値がいかなる目的も果たし得ないことから、深度ビューコンポーネントはクロマ成分を含む必要がない。
【００７７】
[0097]深度を識別するためにルーマ値（たとえば、強度値）のみを使用する深度ビューコンポーネントが説明のために提供され、限定するものと見なされるべきではない。他の例では、テクスチャビューコンポーネント中のピクセルの相対深度を示すために任意の技法が利用される場合がある。
【００７８】
[0098]マルチビューコーディングでは、ビデオデコーダ（たとえば、ビデオデコーダ３０）が、あるビュー中のピクチャを任意の他のビュー中のピクチャを参照せずに復号することができる場合、そのビューは「ベースビュー」と呼ばれることがある。非ベースビューのうちの１つの中のピクチャをコーディングするとき、ピクチャが、異なるビュー中にあるがビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス（すなわち、アクセスユニット）内にある場合、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、参照ピクチャリスト(たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１)にピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入し得る。
【００７９】
[0099]マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、または他のビデオコーディング仕様において使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが（マクロブロック、ＣＵ、またはＰＵなどの）現在ブロックに対してビュー間予測を実行するとき、ビデオエンコーダ２０は、参照ピクチャとして、その現在ブロックと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャを使用することができる。言い換えると、マルチビューコーディングにおいて、ビュー間予測は、ビューの間の相関を取り除くために、同じアクセスユニット中（すなわち、同じ時間インスタンス中）の異なるビュー中でキャプチャされたピクチャの間で実行される。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
【００８０】
[0100]図４は、例示的なマルチビュー復号順序を示す概念図である。マルチビュー復号順序はビットストリーム順序であり得る。図４の例では、各正方形がビュー成分に対応する。正方形の列は、アクセスユニットに対応する。各アクセスユニットは、時間インスタンスのすべてのビューのコード化ピクチャを含むように定義され得る。正方形の行は、ビューに対応する。図４の例では、アクセスユニットがＴ０〜Ｔ８と標示され、ビューがＳ０〜Ｓ７と標示される。アクセスユニットの各ビュー成分は次のアクセスユニットのビュー成分の前に復号されるので、図４の復号順序はタイムファーストコーディングと呼ばれることがある。アクセスユニットの復号順序は、ビューの出力または表示順序と同一ではないこともある。
【００８１】
[0101]図５は、マルチビューコーディングのための例示的な予測構造を示す概念図である。図５のマルチビュー予測構造は、時間的予測とビュー間予測とを含む。図５の例では、各正方形がビュー成分に対応する。図５の例では、アクセスユニットがＴ０〜Ｔ１１と標示され、ビューがＳ０〜Ｓ７と標示される。「Ｉ」と標示される正方形は、イントラ予測されたビュー成分である。「Ｐ」と標示される正方形は、単方向インター予測されたビュー成分である。「Ｂ」および「ｂ」と標示される正方形は、双方向インター予測されたビュー成分である。「ｂ」と標示される正方形は、「Ｂ」と標示される正方形を参照ピクチャとして使用し得る。第１の正方形から第２の正方形を指す矢印は、第１の正方形が、インター予測において、第２の正方形のための参照ピクチャとして利用可能であることを示す。図４の垂直の矢印で示すように、同じアクセスユニットの異なるビュー内のビュー成分は、参照ピクチャとして利用可能であり得る。このように、図５は、マルチビュービデオコーディング用の典型的なＭＶＣ予測（各ビュー内のインターピクチャ予測とインタービュー予測の両方を含む）構造を示し、予測参照のために矢印の始点のオブジェクトを使用して矢印の終点のオブジェクトへの矢印によって予測が示される。アクセスユニットの１つのビュー成分を同じアクセスユニットの別のビュー成分に対する参照ピクチャとして使用することは、ビュー間予測と呼ばれることがある。
【００８２】
[0102]Ｈ．２６４／ＡＶＣのＭＶＣ拡張のようなマルチビューコーディングでは、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、Ｈ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることが可能になる。２つのビューのコーディングも、Ｈ．２６４／ＡＶＣのＭＶＣ拡張によってサポートされ得る。Ｈ．２６４／ＡＶＣのＭＶＣ拡張の利点の１つは、ＭＶＣエンコーダが３Ｄビデオ入力として３つ以上のビューを取り込むことができ、ＭＶＣデコーダがそのようなマルチビュー表現を復号することができることである。したがって、ＭＶＣデコーダをもつ任意のレンダラは、３つ以上のビューをもつ３Ｄビデオコンテンツを予想し得る。
【００８３】
[0103]ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣで定義されるマルチビュービデオコーディングなど、マルチビュービデオコーディングのコンテキストでは、２種類の動きベクトルが存在する。動きベクトルの１つの種類は、時間参照ピクチャを指す通常動きベクトルである。通常時間的動きベクトルに対応するインター予測のタイプは、「動き補償予測」または「ＭＣＰ」と呼ばれ得る。ビュー間予測参照ピクチャが動き補償のために使用されるとき、対応する動きベクトルは「視差動きベクトル」と呼ばれる。言い換えると、視差動きベクトルは、異なるビュー中のピクチャ（すなわち、ビュー間参照ピクチャ）を指す。視差動きベクトルに対応するインター予測のタイプは、「視差補償予測」または「ＤＣＰ」と呼ばれ得る。
【００８４】
[0104]３Ｄ−ＨＥＶＣは、ビュー間動き予測とビュー間残差予測とを使用して、コーディング効率を改善することができる。言い換えれば、コーディング効率をさらに改善するために、２つの新規の技術、すなわち、「ビュー間動き予測」および「ビュー間残差予測」が、参照ソフトウェアに採用されてきている。ビュー間動き予測では、ビデオコーダは、現在ＰＵとは異なるビューの中のＰＵの動き情報に基づいて、現在ＰＵの動き情報を決定する（すなわち、予測する）ことができる。ビュー間残差予測では、ビデオコーダが、現在ＣＵとは異なるビュー中の残差データに基づいて、現在ＣＵの残差ブロックを決定することができる。
【００８５】
[0105]ビュー間動き予測とビュー間残差予測とを可能にするために、ビデオコーダは、ブロック（たとえば、ＰＵ、ＣＵなど）のための視差ベクトルを決定することができる。言い換えれば、これらの２つのコーディングツールを有効にするために、第１のステップは視差ベクトルを導出する。概して、視差ベクトルは、２つのビューの間の変位を推定するものとして使われる。ビデオコーダは、ビュー間動きまたは残差予測のために別のビュー中の参照ブロックを位置特定するのに、ブロックについての視差ベクトルを使ってもよく、ビデオコーダは、視差ベクトルを、ビュー間動き予測のために視差動きベクトルにコンバートしてもよい。すなわち、視差ベクトルは、ビュー間動き／残差予測のために他のビュー中の対応するブロックを位置特定するために使用され得るか、またはビュー間動き予測のために視差動きベクトルに変換され得る。
【００８６】
[0106]いくつかの例では、ビデオコーダは、ＰＵ（すなわち、現在ＰＵ）についての視差ベクトルを導出するために、隣接ブロックベースの視差ベクトル（ＮＢＤＶ：Neighboring Blocks Based Disparity Vector）導出の方法を使用することができる。たとえば、現在ＰＵについての視差ベクトルを導出するために、ＮＢＤＶ導出と呼ばれるプロセスが、３Ｄ−ＨＥＶＣに関するテストモデル（すなわち、３Ｄ−ＨＴＭ）において使用され得る。
【００８７】
[0107]ＮＢＤＶ導出プロセスは、現在ブロックについての視差ベクトルを導出するのに、空間的および時間的に隣接するブロックからの視差動きベクトルを使う。隣接ブロック（たとえば、現在ブロックに空間的または時間的に隣接するブロック）は、ビデオコーディングにおいて、ほぼ同じ動きと視差情報とを共有する見込みがあるので、現在ブロックは、隣接ブロック中の動きベクトル情報を、現在ブロックの視差ベクトルの予測子として使ってよい。したがって、ＮＢＤＶ導出プロセスは、異なるビュー中の視差ベクトルを推定するために隣接する視差情報を使用する。
【００８８】
[0108]ＮＢＤＶ導出プロセスでは、ビデオコーダは、固定されたチェック順序で、空間的隣接ブロックおよび時間的隣接ブロックの動きベクトルをチェックすることができる。ビデオコーダが空間的隣接ブロックまたは時間的隣接ブロックの動きベクトルをチェックするとき、ビデオコーダは、動きベクトルが視差動きベクトルかどうかを決定することができる。ピクチャのＰＵの視差動きベクトルは、ピクチャのビュー間参照ピクチャ中のロケーションを指す動きベクトルである。ピクチャのビュー間参照ピクチャは、ピクチャと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャであり得る。ビデオコーダが視差動きベクトルまたは暗黙視差ベクトル（ＩＤＶ）を識別するとき、ビデオコーダはチェックプロセスを終了することができる。ＩＤＶは、ビュー間予測を使用してコーディングされた空間的または時間的隣接ＰＵの視差ベクトルであり得る。ＩＤＶは、ＰＵがビュー間動きベクトル予測を採用するとき、すなわち、ＡＭＶＰまたはマージモードのための候補が視差ベクトルの助けにより他のビュー中の参照ブロックから導出されるときに生成され得る。ＩＤＶは、視差ベクトル導出の目的で、ＰＵに記憶され得る。さらに、ビデオコーダが視差動きベクトルまたはＩＤＶを特定するとき、ビデオコーダは、特定された視差動きベクトルまたはＩＤＶを返すことができる。
【００８９】
[0109]ＩＤＶはＳｕｎｇ他のＮＢＤＶ導出プロセスの簡素化バージョン「３Ｄ−ＣＥ５．ｈ：Ｓｉｍｐｌｉｆｉｃａｔｉｏｎ  ｏｆ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ＨＥＶＣ−ｂａｓｅｄ  ３Ｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ、文書ＪＣＴＶ３−Ａ０１２６」とともに含まれた。ＮＢＤＶ導出プロセスにおけるＩＤＶの使用は、復号ピクチャバッファ中に記憶されたＩＤＶを除去することによって、およびランダムアクセスポイント（ＲＡＰ）ピクチャ選択に伴う改善されたコーディング利得を提供することによって、Ｋａｎｇ他の「３Ｄ−ＣＥ５．ｈ関連：ｉｍｐｒｏｖｅｍｅｎｔｓ  ｆｏｒ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ」、文書ＪＣＴ３Ｖ−Ｂ００４７においてさらに簡素化された。ビデオコーダは、返された視差動きベクトルまたはＩＤＶを視差ベクトルに変換することができ、ビュー間動き予測およびビュー間残差予測のために視差ベクトルを使用することができる。
【００９０】
[0110]３Ｄ−ＨＥＶＣのいくつかの設計では、ビデオコーダがＮＢＤＶ導出プロセスを実行するとき、ビデオコーダは時間的隣接ブロック中の視差動きベクトル、空間的隣接ブロック中の視差動きベクトル、次いで、ＩＤＶの順にチェックする。ビデオコーダが現在ブロックのための視差動きベクトルを発見すると、ビデオコーダは、ＮＢＤＶ導出プロセスを終了することができる。したがって、視差動きベクトルまたはＩＤＶが識別されると、チェックプロセスは終了され、識別された視差動きベクトルは返されて、ビュー間動き予測およびビュー間残差予測において使用されることになる視差ベクトルに変換される。ビデオコーダがＮＢＤＶ導出プロセスを実行することによって現在ブロックについての視差ベクトルを決定することが不可能であるとき（すなわち、視差動きベクトル、またはＮＢＤＶプロセスの間に発見されるＩＤＶが存在しないとき）、ビデオコーダは、ＮＢＤＶを利用不可能と標識することができる。
【００９１】
[0111]いくつかの例では、ビデオコーダがＮＢＤＶ導出プロセスを実行することによって現在ＰＵのための視差ベクトルを導出することが不可能である場合（すなわち、視差ベクトルが発見されない場合）、ビデオコーダは、現在ＰＵのための視差ベクトルとして０視差ベクトルを使用することができる。０視差ベクトルは、０に等しい水平成分と垂直成分の両方を有する視差ベクトルである。したがって、ＮＢＤＶ導出プロセスが利用不可能な結果を返すときであっても、視差ベクトルを必要とするビデオコーダの他のコーディングプロセスは、現在ブロックのために０視差ベクトルを使用することができる。
【００９２】
[0112]いくつかの例では、ビデオコーダがＮＢＤＶ導出プロセスを実行することによって現在ＰＵのための視差ベクトルを導出することが不可能である場合、ビデオコーダは、現在ＰＵに対するビュー間残差予測を無効にすることができる。しかしながら、ビデオコーダがＮＢＤＶ導出プロセスを実行することによって現在ＰＵのための視差ベクトルを導出することが可能かどうかに関係なく、ビデオコーダは、現在ＰＵに対してビュー間動き予測を使用することができる。すなわち、すべての事前に定義された隣接ブロックをチェックした後で視差ベクトルが発見されない場合、ビュー間動き予測のために０視差ベクトルが使用され得るが、ビュー間残差予測は対応するＰＵに対して無効にされ得る。
【００９３】
[0113]上述したように、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するプロセスの一環として空間的隣接ＰＵをチェックすることができる。いくつかの例では、ビデオコーダは以下の空間的隣接ブロック、すなわち、左下の空間的隣接ブロックと、左の空間的隣接ブロックと、右上の空間的隣接ブロックと、上の空間的隣接ブロックと、左上の空間的隣接ブロックとをチェックする。たとえば、ＮＢＤＶ導出プロセスのいくつかのバージョンでは、視差ベクトル導出のために５個の空間的隣接ブロックが使用される。５個の空間的隣接ブロックは、図３に示すように、位置Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2をそれぞれカバーし得る。ビデオコーダは、５個の空間的隣接ブロックをＡ1、Ｂ1、Ｂ0、Ａ0、およびＢ2の順にチェックし得る。ＨＥＶＣ用のマージモードで同じ５個の空間的隣接ブロックが使用され得る。したがって、いくつかの例では、何の追加のメモリアクセスも必要とされない。空間的隣接ブロックの１つが視差動きベクトルを有する場合、ビデオコーダは確認処理を終了することができ、現在ＰＵについての最終的な視差ベクトルとして視差動きベクトルを使用することができる。言い換えれば、それらのうちの１つが視差動きベクトルを使用する場合、チェックプロセスは終了され、最終的な視差ベクトルとして、対応する視差動きベクトルが使用されることになる。
【００９４】
[0114]さらに、上述したように、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するプロセスの一環として時間的隣接ＰＵをチェックすることができる。時間的隣接ブロック（たとえば、ＰＵ）をチェックする場合、候補ピクチャリストの構築プロセスが最初に実行され得る。いくつかの例では、ビデオコーダは、視差動きベクトルについての現在ビューから最大で２つの参照ピクチャをチェックすることができる。第１の参照ピクチャはコロケートピクチャであり得る。したがって、コロケートピクチャ（すなわち、コロケート参照ピクチャ）は、最初に候補ピクチャリスト中に挿入され得る。第２の候補ピクチャは、ランダムアクセスピクチャ、または、最小ＰＯＣ値差分と最小時間識別子とを有する参照ピクチャであり得る。言い換えれば、時間的ブロックのチェックのために、現在ビューからの２つの参照ピクチャ、コロケートピクチャおよびにランダムアクセスピクチャまたは最小ＰＯＣ差分と最小時間ＩＤとを有する参照ピクチャまでが考慮される。ビデオコーダは、まずランダムアクセスピクチャをチェックし、続いて、コロケートピクチャをチェックし得る。
【００９５】
[0115]各候補ピクチャリスト（すなわち、ランダムアクセスピクチャおよびコロケートピクチャ）について、ビデオコーダは２つのブロックをチェックすることができる。具体的には、ビデオコーダは、中央ブロック（ＣＲ）および右下ブロック（ＢＲ）をチェックすることができる。図６は、ＮＢＤＶ導出プロセスにおける例示的な時間的隣接ブロックを示す概念図である。中央ブロックは、現在ＰＵのコロケート領域の中央４×４ブロックであり得る。右下ブロックは、現在ＰＵのコロケート領域の右下４×４ブロックであり得る。したがって、候補ピクチャごとに、２つのブロックが、第１の非ベースビューのためのＣＲおよびＢＲ、または第２の非ベースビューのためのＢＲ、ＣＲの順序でチェックされる。ＣＲまたはＢＲを変換するＰＵのうちの１つが視差動きベクトルを有する場合、ビデオコーダはチェック処理を終了することができ、現在ＰＵのための最終的な視差ベクトルとしてその視差動きベクトルを使用することができる。この例では、第１の非ベースビューに関連付けられるピクチャの復号は、ベースビューに関連付けられるピクチャの復号に依存し得るが、他のビューに関連付けられるピクチャの復号には依存しないことがある。さらに、この例では、第２の非ベースビューに関連付けられるピクチャの復号は、ベースビュー、場合によっては、第１の非ベースビューに関連付けられるピクチャの復号に依存し得るが、存在する場合、他のビューに関連付けられるピクチャの復号には依存しないことがある。
【００９６】
[0116]図６の例では、ブロック４２は、現在ＰＵのためのコロケート領域を示す。さらに、図６の例では、「Ｐｏｓ．Ａ」と標示されたブロックは中央ブロックに対応する。「Ｐｏｓ．Ｂ」と標示されたブロックは右下ブロックに対応する。図６の例に示すように、中央ブロックはコロケート領域の中心点の中心の真下、およびその右に位置特定され得る。
【００９７】
[0117]ビデオコーダが隣接ＰＵ（たとえば、空間的隣接ＰＵまたは時間的隣接ＰＵ）を確認するとき、ビデオコーダはまず、隣接ＰＵが視差動きベクトルを有するかどうかを確認することができる。隣接ＰＵのいずれもが視差動きベクトルを有しない場合、ビデオコーダは、空間的隣接ＰＵのいずれかがＩＤＶを有するかどうかを決定することができる。言い換えれば、すべての空間的／時間的隣接ブロックに関して、視差動きベクトルが使用されるかどうかが最初にチェックされ、続いて、ＩＤＶがチェックされる。空間的隣接ブロックが最初にチェックされ、続いて、時間的隣接ブロックがチェックされる。ＩＤＶに関する隣接ブロックをチェックするとき、ビデオコーダは、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2の順に空間的隣接ブロックをチェックすることができる。空間的隣接ＰＵの１つがＩＤＶを有し、ＩＤＶがマージ／スキップモードとしてコーディングされる場合、ビデオコーダはチェック処理を終了することができ、現在ＰＵのための最終視差ベクトルとしてＩＤＶを使用することができる。言い換えれば、５つの空間的隣接ブロックは、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2の順でチェックされる。それらのうちの１つがＩＤＶであり、それがスキップ／マージモードでコーディングされ得る場合、チェックプロセスは終了され、対応するＩＤＶは最終的な視差ベクトルとして使用され得る。
【００９８】
[0118]上記のように、現在ブロックについての視差ベクトルは、参照ビュー中の参照ピクチャ（すなわち、参照ビュー成分）中のロケーションを示し得る。いくつかの３Ｄ−ＨＥＶＣ設計では、ビデオコーダは参照ビューについての深度情報にアクセスすることが許容される。いくつかのそのような３Ｄ−ＨＥＶＣ設計では、ビデオコーダが現在ブロックについての視差ベクトルを導出するためにＮＢＤＶ導出プロセスを使用するとき、ビデオコーダは、現在ブロックについての視差ベクトルをさらに洗練するために洗練プロセスを適用し得る。ビデオコーダは、参照ピクチャの深度マップに基づいて、現在ブロックについての視差ベクトルを洗練することができる。言い換えれば、ＮＢＤＶ方式から生成された視差ベクトルは、コーディングされた深度マップ内の情報を使用してさらに洗練され得る。すなわち、視差ベクトルの精度は、ベースビュー深度マップにおいてコーディングされた情報を利用することによって向上され得る。この洗練プロセスは、本明細書において、ＮＢＤＶ洗練（「ＮＢＤＶ−Ｒ」）、ＮＢＤＶ洗練プロセス、または深度指向ＮＢＤＶ（Ｄｏ−ＮＢＤＶ）と呼ばれることがある。
【００９９】
[0119]ＮＢＤＶ導出プロセスが利用可能な視差ベクトルを返すとき（たとえば、ＮＢＤＶ導出プロセスが、そのＮＢＤＶ導出プロセスが視差動きベクトルまたは隣接ブロックのＩＤＶに基づいて、現在ブロックについての視差ベクトルを導出することが可能であったことを示す変数を返すとき）、ビデオコーダは、参照ビューの深度マップから深度データを取り出すことによって、視差ベクトルをさらに洗練することができる。いくつかの例では、洗練プロセスは以下のステップを含む。
【０１００】
１．参照ビューの深度マップ中のブロックの位置を特定するために、現在ブロックの視差ベクトルを使用する。言い換えると、ベースビューなど、以前にコーディングされた参照深度ビュー中の導出された視差ベクトルによって対応する視差ブロックの位置を特定する。この例では、深度中の対応するブロックのサイズは現在ＰＵのサイズ（すなわち、現在ＰＵの予測ブロックのサイズ）と同じであり得る。
【０１０１】
２．視差ベクトルは、４つのコーナー深度値の最大値から、コロケート深度ブロックから計算される。これは、視差ベクトルの水平成分に等しいように設定されるが、視差ベクトルの垂直成分は０に設定される。
【０１０２】
[0120]いくつかの例では、ＮＢＤＶ導出プロセスが利用可能な視差ベクトルを返さないとき（たとえば、ＮＢＤＶ導出プロセスが、そのＮＢＤＶ導出プロセスが視差動きベクトルまたは隣接ブロックのＩＤＶに基づいて、現在ブロックについての視差ベクトルを導出することが不可能であったことを示す変数を返すとき）、ビデオコーダは、ＮＢＤＶ洗練プロセスを実行せず、ビデオコーダは、現在ブロックについての視差ベクトルとして、ゼロ視差ベクトルを使用し得る。言い換えると、ＮＢＤＶ導出プロセスが利用可能な視差ベクトルを提供しないとき、したがって、ＮＢＤＶ導出プロセスの結果が利用不可能であるとき、上記のＮＢＤＶ−Ｒプロセスはスキップされ、ゼロ視差ベクトルが直接返される。
【０１０３】
[0121]３Ｄ−ＨＥＶＣのためのいくつかの提案では、ビデオコーダは、ビュー間動き予測用に現在のブロックについての洗練された視差ベクトルを使用するが、ビデオコーダは、ビュー間残差予測用に現在ブロックについての洗練されていない視差ベクトルを使用する。たとえば、ビデオコーダは、現在ブロックについての洗練されていない視差ベクトルを導出するためのＮＢＤＶ導出プロセスを使用し得る。ビデオコーダは、次いで、現在ブロックについての洗練された視差ベクトルを導出するためのＮＢＤＶ洗練プロセスを適用し得る。ビデオコーダは、現在ブロックの動き情報を決定するために、現在ブロックについての洗練された視差ベクトルを使用し得る。さらに、ビデオコーダは、現在ブロックの残差ブロックを決定するために、現在ブロックについての洗練されていない視差ベクトルを使用し得る。
【０１０４】
[0122]このようにして、この新規の視差ベクトルは、「深度指向隣接ブロックベース視差ベクトル（ＤｏＮＢＤＶ：depth oriented neighboring block based disparity vector）」と呼ばれる。次いで、ＮＢＤＶ方式からの視差ベクトルは、ＡＭＶＰおよびマージモードのためのビュー間候補導出のためにＤｏＮＢＤＶ方式から、この新規に導出された視差ベクトルに置換される。ビデオコーダは、ビュー間残差予測に関する洗練されていない視差ベクトルを使用し得る。
【０１０５】
[0123]ビデオコーダは、後方ビュー合成予測（ＢＶＳＰ）用に視差動きベクトルを洗練するために類似の洗練プロセスを使用し得る。このようにして、ＢＶＳＰ用に使用されるべき視差ベクトルまたは視差動きベクトルを洗練するために深度が使用され得る。洗練された視差ベクトルがＢＶＳＰモードでコーディングされる場合、洗練された視差ベクトルは、１つのＰＵの動きベクトルとして記憶され得る。
【０１０６】
[0124]ビデオコーダは、ビュー成分を合成するためにＢＶＳＰを実行し得る。ＢＶＳＰ手法は、Ｔｉａｎ他の「ＣＥ１．ｈ：Ｂａｃｋｗａｒｄ  Ｖｉｅｗ  Ｓｙｎｔｈｅｓｉｓ  Ｐｒｅｄｉｃｔｉｏｎ  Ｕｓｉｎｇ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｂｌｏｃｋｓ」、文書ＪＣＴ３Ｖ−Ｃ０１５２（以下、「ＪＣＴ３Ｖ−Ｃ０１５２」）において提案され、第３回ＪＣＴ−３Ｖ会合で採用された。ＢＶＳＰは、３Ｄ−ＡＶＣ中のブロックベースのＶＳＰに概念的に類似する。言い換えると、後方ワーピングＶＳＰの基本的な考えは、３Ｄ−ＡＶＣ中のブロックベースのＶＳＰと同じである。３Ｄ−ＡＶＣ中のＢＶＳＰおよびブロックベースのＶＳＰは両方とも、動きベクトル差分を送信することを回避して、より正確な動きベクトルを使用するために、後方ワーピングおよびブロックベースのＶＳＰを使用する。しかしながら、異なるプラットフォームにより、実装形態詳細は異なり得る。
【０１０７】
[0125]３Ｄ−ＨＥＶＣのいくつかのバージョンでは、テクスチャファーストコーディングが適用され得る。テクスチャファーストコーディングでは、ビデオコーダは、対応する深度ビューコンポーネント（すなわち、テクスチャビューコンポーネントと同じＰＯＣ値およびビュー識別子を有する深度ビューコンポーネント）をコーディングするのに先立って、テクスチャビューコンポーネントをコーディング（たとえば、符号化または復号）する。したがって、対応する非ベースビューテクスチャビューコンポーネントのコーディングに使用するために非ベースビュー深度ビューコンポーネントは利用不可能である。言い換えると、ビデオコーダが非ベーステクスチャビューコンポーネントをコーディングするとき、対応する非ベース深度ビューコンポーネントは利用不可能である。したがって、ＢＶＳＰを実行するために、深度情報が推定および使用され得る。
【０１０８】
[0126]ブロックに関する深度情報を推定するために、隣接ブロックから視差ベクトルを最初に導出し、次いで参照ビューから深度ブロックを取得するために導出された視差ベクトルを使用することが提案される。３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ５．１（すなわち、ＨＴＭ５．１テストモデル）では、ＮＢＤＶ導出プロセスとして知られている視差ベクトル予測子を導出するためのプロセスが存在する。（ｄｖx，ｄｖy）は、ＮＢＤＶ導出プロセスから識別された視差ベクトルを示すものとし、現在ブロックの位置は（ｂｌｏｃｋx，ｂｌｏｃｋy）である。ビデオコーダは、参照ビューの深度画像中で（ｂｌｏｃｋx＋ｄｖx，ｂｌｏｃｋy＋ｄｖy）において深度ブロックをフェッチし得る。フェッチされた深度ブロックは、現在ＣＵと同じサイズを有し得る。ビデオコーダは、次いで、現在ＰＵについて後方ワーピングを実行するために、フェッチされた深度ブロックを使用し得る。図７は、ＢＶＳＰを実行するための参照ビューからの深度ブロック導出を示す概念図である。図７は、参照ビューからの深度ブロックの位置がどのように特定され、次いで、ＢＶＳＰ予測用に使用されるかの３つのステップを示す。
【０１０９】
[0127]ＢＶＳＰがシーケンスにおいて有効にされる場合、ビュー間動き予測のためのＮＢＤＶ導出プロセスは変更され得、差分は、以下の段落においてボールドで示される。
【０１１０】
時間的隣接ブロックの各々について、時間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは視差ベクトルとして返され、視差動きベクトルは、本開示において他の箇所で説明する方法を用いてさらに洗練される。
【０１１１】
空間的隣接ブロックの各々について、以下が適用される。
【０１１２】
参照ピクチャリスト０または参照ピクチャリスト１の各々について、以下が適用される。
【０１１３】
空間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは視差ベクトルとして返され、視差動きベクトルは、本開示において他の箇所で説明する方法を用いてさらに洗練される。
【０１１４】
さもなければ、空間的隣接ブロックがＢＶＳＰモードを使用する場合、関連動きベクトルは視差ベクトルとして返され得る。視差ベクトルは、本開示において他の箇所で説明するのと同様の方法でさらに洗練され得る。しかしながら、最大深度値は、４つのコーナーピクセルではなく、対応する深度ブロックのすべてのピクセルから選択され得る。
【０１１５】
[0128]空間的隣接ブロックの各々について、空間的隣接ブロックがＩＤＶを使用する場合、ＩＤＶは視差ベクトルとして返される。ビデオコーダは、本開示において他の箇所で説明する方法のうちの１つまたは複数を使用して、視差ベクトルをさらに洗練することができる。
【０１１６】
[0129]ビデオコーダは、上で説明されたＢＶＳＰモードを特別なインターコード化モードとして扱うことができ、ビデオコーダは、各ＰＵに関するＢＶＳＰモードの使用を示すフラグを維持することができる。ビデオコーダは、ビットストリーム中でフラグをシグナリングするのではなく、新規のマージ用候補（ＢＶＳＰマージ用候補）をマージ候補リストに追加することができ、フラグは、復号されたマージ候補インデックスがＢＶＳＰマージ用候補に対応するかどうかに依存する。いくつかの例では、ＢＶＳＰマージ用候補は次のように定義される。
【０１１７】
参照ピクチャリストごとの参照ピクチャインデックス：−１
参照ピクチャリストごとの動きベクトル：洗練された視差ベクトル
いくつかの例では、ＢＶＳＰマージ用候補の挿入位置は、空間的隣接ブロックに依存する。たとえば、５つの空間的隣接ブロック（Ａ0、Ａ1、Ｂ0、Ｂ1またはＢ2）のうちのいずれかがＢＶＳＰモードを用いてコーディングされる場合、すなわち、隣接ブロックの維持されたフラグが１に等しい場合、ビデオコーダは、ＢＶＳＰマージ用候補を、対応する空間マージ用候補として扱えばよく、ＢＶＳＰマージ用候補をマージ候補リストに挿入することができる。ビデオコーダは、ＢＶＳＰマージ用候補をマージ候補リストに一度だけ挿入することができる。さもなければ、この例では、（たとえば、５つの空間的隣接ブロックのうちのいずれも、ＢＶＳＰモードを用いてコーディングされないとき）、ビデオコーダは、何らかの時間マージ用候補の直前にＢＶＳＰマージ用候補をマージ候補リストに挿入することができる。結合双予測（combined bi-predictive）マージ用候補導出プロセスの間、ビデオコーダは、ＢＶＳＰマージ用候補を含めるのを避けるために、追加条件を検査すればよい。
【０１１８】
[0130]各ＢＶＳＰコード化ＰＵの場合、ビデオコーダは、ＢＶＳＰを、Ｋ×Ｋ（ここで、Ｋは４または２であり得る）に等しいサイズを有するいくつかの下位領域にさらに区分することができる。ＢＶＳＰコード化ＰＵのサイズは、Ｎ×Ｍによって示され得る。各下位領域に関して、ビデオコーダは、別個の視差動きベクトルを導出することができる。さらに、ビデオコーダは、ビュー間参照ピクチャ中の導出された視差動きベクトルによって位置特定された１つのブロックから各下位領域を予測することができる。言い換えれば、ＢＶＳＰコード化ＰＵのための動き補償ユニットのサイズはＫ×Ｋに設定される。同じテスト条件では、Ｋは４に設定される。
【０１１９】
[0131]ＢＶＳＰに関して、ビデオコーダは、以下の視差動きベクトル導出プロセスを実行することができる。ＢＶＳＰモードを用いてコーディングされた１つのＰＵ内の各サブ領域（４×４ブロック）について、ビデオコーダは最初に、対応する４×４深度ブロックを、上で言及した洗練された視差ベクトルを有する参照深度ビュー中に位置特定することができる。第２に、ビデオコーダは、対応する深度ブロック中の１６個の深度ピクセルの最大値を選択することができる。第３に、ビデオコーダは、その最大値を視差動きベクトルの水平成分に変換することができる。ビデオコーダは、視差動きベクトルの垂直成分を０に設定することができる。
【０１２０】
[0132]ＤｏＮＢＤＶ技法から導出された視差ベクトルに基づいて、ビデオコーダは、新規の動きベクトル候補（すなわち、ビュー間予測動きベクトル候補（ＩＰＭＶＣ））を、利用可能な場合、ＡＭＶＰおよびスキップ／マージモードに追加することができる。ＩＰＭＶＣは、利用可能な場合、時間的動きベクトルである。スキップモードはマージモードと同じ動きベクトル導出プロセスを有するので、本文書で説明する技法は、マージモードとスキップモードの両方に適用され得る。
【０１２１】
[0133]マージ／スキップモードの場合、ＩＰＭＶＣは以下のステップによって導出され得る。第１に、ビデオコーダは、視差ベクトルを使用して、同じアクセスユニットの参照ビュー中の現在ブロック（たとえば、ＰＵ、ＣＵなど）の対応するブロックを位置特定することができる。第２に、対応するブロックがイントラコーディングされず、ビュー間予測されず、対応するブロックの参照ピクチャが、現在ブロックの同じ参照ピクチャリスト中への１つのエントリのＰＯＣ値に等しいＰＯＣを有する場合、ビデオコーダは、ＰＯＣに基づいて、対応するブロックの参照インデックスを変換することができる。さらに、ビデオコーダは、対応するブロックの予測方向、対応するブロックの動きベクトル、および変換された参照インデックスを指定するためにＩＰＭＶＣを導出することができる。
【０１２２】
[0134]３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．１０項は、時間的ビュー間動きベクトル候補に関する導出プロセスを記述する。ＩＰＭＶＣは時間的参照ピクチャ中のロケーションを示すため、ＩＰＭＶＣは、時間的ビュー間動きベクトル候補と呼ばれる場合がある。３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ８．５．２．１．１０項に記載されるように、参照層ルーマロケーション（ｘＲｅｆ，ｙＲｅｆ）は
【数１】
0006434012.tif 000002
【数２】
0006434012.tif 000003
【０１２３】
によって導出される。
【０１２４】
上の式Ｈ−１２４およびＨ−１２５で、（ｘＰ，ｙＰ）は、現在ピクチャの左上ルーマサンプルに対する現在ＰＵの左上ルーマサンプルの座標を示し、ｎＰＳＷおよびｎＰＳＨは、現在予測ユニットの幅および高さをそれぞれ示し、ｒｅｆＶｉｅｗＩｄｘは参照ビュー順序インデックスを示し、ｍｖＤｉｓｐは視差ベクトルを示す。対応するブロックは、ｒｅｆＶｉｅｗＩｄｘに等しいＶｉｅｗＩｄｘを有するビュー成分中のルーマロケーション（ｘＲｅｆ，ｙＲｅｆ）をカバーするＰＵに設定される。上の式Ｈ−１２４およびＨ−１２５で、および本開示の他の式で、Ｃｌｉｐ３関数は
【数３】
0006434012.tif 000004
【０１２５】
として定義され得る。
【０１２６】
[0135]図８は、マージ／スキップモードのためのＩＰＭＶＣの例示的な導出を示す概念図である。言い換えれば、図８は、ビュー間予測動きベクトル候補の導出プロセスの一例を示す。図８の例では、現在ＰＵ５０は、時間インスタンスＴ１においてビューＶ１中に発生する。現在ＰＵ５０に対する参照ＰＵ５２は、現在ＰＵ５０と異なるビュー（すなわち、ビューＶ０）中で現在ＰＵと同じ時間インスタンス（すなわち、時間インスタンスＴ１）において発生する。図８の例では、参照ＰＵ５２は、双方向にインター予測される。したがって、参照ＰＵ５２は、第１の動きベクトル５４と第２の動きベクトル５６とを有する。動きベクトル５４は、参照ピクチャ５８中の位置を示す。参照ピクチャ５８は、ビューＶ０中で時間インスタンスＴ０において発生する。動きベクトル５６は、参照ピクチャ６０中の位置を示す。参照ピクチャ６０は、ビューＶ０中で時間インスタンスＴ３において発生する。
【０１２７】
[0136]ビデオコーダは、参照ＰＵ５２の動き情報に基づいて、現在ＰＵ５０のマージ候補リストに含めるためのＩＰＭＶＣを生成し得る。ＩＰＭＶＣは、第１の動きベクトル６２と第２の動きベクトル６４とを有し得る。動きベクトル６２は動きベクトル５４に整合し、動きベクトル６４は動きベクトル５６に整合する。ビデオコーダは、ＩＰＭＶＣの第１の参照インデックスが参照ピクチャ５８と同じ時間インスタンス（すなわち、時間インスタンスＴ０）において発生する参照ピクチャ（すなわち、参照ピクチャ６６）の現在ＰＵ５０に関するＲｅｆＰｉｃＬｉｓｔ０内の位置を示すようにＩＰＭＶＣを生成する。図８の例では、参照ピクチャ６６は、現在ＰＵ５０に関するＲｅｆＰｉｃＬｉｓｔ０内の第１の位置（すなわち、Ｒｅｆ０）において発生する。さらに、ビデオコーダは、ＩＰＭＶＣの第２の参照インデックスが参照ピクチャ６０と同じ時間インスタンスにおいて発生する参照ピクチャ（すなわち、参照ピクチャ６８）の現在ＰＵ５０に関するＲｅｆＰｉｃＬｉｓｔ１内の位置を示すようにＩＰＭＶＣを生成する。したがって、図８の例では、ＩＰＭＶＣのＲｅｆＰｉｃＬｉｓｔ０参照インデックスは、０に等しい場合がある。図８の例では、参照ピクチャ７０は、現在ＰＵ５０に関するＲｅｆＰｉｃＬｉｓｔ１内の第１の位置（すなわち、Ｒｅｆ０）において発生し、参照ピクチャ６８は、現在ＰＵ５０に関するＲｅｆＰｉｃＬｉｓｔ１内の第２の位置（すなわち、Ｒｅｆ１）において発生する。したがって、ＩＰＭＶＣのＲｅｆＰｉｃＬｉｓｔ１参照インデックスは、１に等しい場合がある。
【０１２８】
[0137]ＩＰＭＶＣを生成し、ＩＰＭＶＣをマージ候補リストに含めることに加えて、ビデオコーダは、現在ＰＵについての視差ベクトルをビュー間視差動きベクトル（ＩＤＭＶＣ）に変換することができ、ＩＤＭＶＣを現在ＰＵに関するマージ候補リストに含めることができる。言い換えれば、視差ベクトルは、ＩＰＭＶＣとは異なる位置内のマージ候補リスト中に追加されるか、または、ＩＤＭＶＣが利用可能であるとき、ＩＰＭＶＣと同じ位置内のＡＭＶＰ候補リスト中に追加されるＩＤＭＶＣに変換され得る。ＩＰＭＶＣまたはＩＤＭＶＣのどちらも、このコンテキストでは「ビュー間候補」と呼ばれる。言い換えれば、「ビュー間候補」という用語は、ＩＰＭＶＣとＩＤＭＶＣのいずれかを指すために使用され得る。いくつかの例では、マージ／スキップモードでは、ビデオコーダは、利用可能な場合、ＩＰＭＶＣを、すべての空間マージ用候補および時間マージ用候補の前にマージ候補リストに常に挿入する。さらに、ビデオコーダは、Ａ0から導出された空間マージ用候補の前にＩＤＭＶＣを挿入することができる。
【０１２９】
[0138]上に示したように、ビデオコーダは、ＤｏＮＢＤＶの方法を用いて視差ベクトルを導出することができる。視差ベクトルの場合、３Ｄ−ＨＥＶＣにおけるマージ用候補リスト構成プロセスは、次のように定義され得る。
【０１３０】
１．ＩＰＭＶＣ挿入
ＩＰＭＶＣが、上記で説明した手順によって導出される。ＩＰＭＶＣが利用可能である場合、ＩＰＭＶＣはマージリストに挿入される。
【０１３１】
２．３Ｄ−ＨＥＶＣにおける空間マージ用候補およびＩＤＭＶＣの挿入のための導出プロセス
以下、すなわち、Ａ1、Ｂ1、Ｂ0、Ａ0、またはＢ2の順序で空間的隣接ＰＵの動き情報をチェックする。制約付きプルーニングが以下の手順によって実行される。
【０１３２】
Ａ1およびＩＰＭＶＣが同じ動きベクトルおよび同じ参照インデックスを有する場合、Ａ1は、候補リストに挿入されないが、場合によっては、Ａ1はそのリストに挿入される。
【０１３３】
Ｂ1およびＡ1／ＩＰＭＶＣが同じ動きベクトルおよび同じ参照インデックスを有する場合、Ｂ1は、候補リストに挿入されないが、場合によっては、Ｂ1はそのリストに挿入される。
【０１３４】
Ｂ0が利用可能である場合、Ｂ0は、候補リストに追加される。ＩＤＭＶＣが、上記で説明した手順によって導出される。ＩＤＭＶＣが利用可能であり、ＩＤＭＶＣがＡ1およびＢ1から導出された候補とは異なる場合、ＩＤＭＶＣは候補リストに挿入される。
【０１３５】
ＢＶＳＰがピクチャ全体に関してまたは現在スライスに関して有効にされる場合、ＢＶＳＰマージ用候補はマージ候補リストに挿入される。
【０１３６】
Ａ0が利用可能である場合、Ａ0は候補リストに追加される。
【０１３７】
Ｂ2が利用可能である場合、Ｂ2は候補リストに追加される。
【０１３８】
３．時間マージ用候補のための導出プロセス
コロケートＰＵの動き情報が利用されるＨＥＶＣにおける時間マージ用候補導出プロセスと同様に、しかしながら、時間マージ用候補の目標参照ピクチャインデックスは、０に固定される代わりに、変更され得る。０に等しい目標参照インデックスが（同じビュー中の）時間的参照ピクチャに対応する一方で、コロケートＰＵの動きベクトルがビュー間参照ピクチャを指すとき、目標参照インデックスは、参照ピクチャリスト中へのビュー間参照ピクチャの第１のエントリに対応する別のインデックスに変更され得る。反対に、０に等しい目標参照インデックスがビュー間参照ピクチャに対応する一方で、コロケートＰＵの動きベクトルが時間的参照ピクチャを指すとき、目標参照インデックスは、参照ピクチャリスト中への時間的参照ピクチャの第１のエントリに対応する別のインデックスに変更され得る。
【０１３９】
４．３Ｄ−ＨＥＶＣにおける結合双予測マージ用候補のための導出プロセス
上記の２つのステップから導出された候補の総数が候補の最大数未満である場合、１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの仕様を除いてＨＥＶＣにおいて定義されたものと同じプロセスが実行される。図９は、３Ｄ−ＨＥＶＣにおける１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの例示的な仕様を示す表である。ｃｏｍｂＩｄｘ、１０ＣａｎｄＩｄｘ、および１１ＣａｎｄＩｄｘの間の関係は、図９の表において定義されている。ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０の第８．５．３．２．３項は、結合双予測マージ用候補を導出する際の１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの例示的な使用を定義する。
【０１４０】
５．ゼロ動きベクトルマージ用候補のための導出プロセス
ＨＥＶＣにおいて定義されたものと同じ手順が実行される。
【０１４１】
３Ｄ−ＨＥＶＣに関する参照ソフトウェアのいくつかのバージョンでは、マージ（たとえば、ＭＲＧ）リスト中の候補の総数は最大６であり、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄが、スライスヘッダ中で６から減算されたマージ候補の最大数を指定するためにシグナリングされる。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、両端値を含む、０〜５の範囲内にある。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄシンタックス要素は、５から減算されたスライス中でサポートされるマージ用ＭＶＰ候補の最大数を指定し得る。マージ用動きベクトル予測（ＭＶＰ）候補の最大数、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｘｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］として計算され得る。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄの値は、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄが０から（５＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒｓ＿ｉｄ］）の範囲内にあるように制限され得る。
【０１４２】
[0139]上に示したように、ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０の第８．５．３．２．３項は、結合双予測マージ用候補を導出する際の１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの例示的な使用を定義する。ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０の第８．５．３．２．３項を下に複写する。
【０１４３】
結合双予測マージ用候補のための導出プロセス
このプロセスへの入力は以下の通りである。
【０１４４】
マージ用候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
ｍｅｒｇｅＣａｎｄＬｉｓｔ中の候補Ｎごとの参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、
ｍｅｒｇｅＣａｎｄＬｉｓｔ中の候補Ｎごとの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、
ｍｅｒｇｅＣａｎｄＬｉｓｔ中の候補Ｎごとの動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、
ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、
空間マージ候補導出プロセスおよび時間マージ候補導出プロセス後のｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ。
【０１４５】
このプロセスの出力は以下の通りである。
【０１４６】
マージ用候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、
このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加された新規候補ｃｏｍｂＣａｎｄkごとの参照インデックスｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄkおよびｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄk、
このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加された新規候補ｃｏｍｂＣａｎｄkごとの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄkおよびｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄk、
このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加された新規候補ｃｏｍｂＣａｎｄkごとの動きベクトルｍｖＬ０ｃｏｍｂＣａｎｄkおよびｍｖＬ１ｃｏｍｂＣａｎｄk。
【０１４７】
ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄが１よりも大きくＭａｘＮｕｍＭｅｒｇｅＣａｎｄ未満であるとき、変数ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄはｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄに等しいように設定され、変数ｃｏｍｂＩｄｘは０に等しいように設定され、変数ｃｏｍｂＳｔｏｐはＦＡＬＳＥに等しいように設定され、ｃｏｍｂＳｔｏｐがＴＲＵＥに等しくなるまで次のステップが繰り返されてよい。
【０１４８】
１．変数ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘは、表８〜６において指定されるようにｃｏｍｂＩｄｘを使用して導出される。
【０１４９】
２．１０Ｃａｎｄが、マージ用候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ中の、位置１０ＣａｎｄＩｄｘにおける候補であり、１１Ｃａｎｄが、マージ用候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ中の位置１１ＣａｎｄＩｄｘにおける候補である、次の割当てが行われる。
【数４】
0006434012.tif 000005
【数５】
0006434012.tif 000006
【０１５０】
３．次の条件のすべてが真である場合、
【数６】
0006434012.tif 000007
【数７】
0006434012.tif 000008
【数８】
0006434012.tif 000009
【０１５１】
ｋが（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄ）に等しい候補ｃｏｍｂＣａｎｄkがｍｅｒｇｅＣａｎｄＬｉｓｔの終わりに追加され、すなわち、ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ］はｃｏｍｂＣａｎｄkに等しいように設定され、ｃｏｍｂＣａｎｄkの参照インデックス、予測リスト利用フラグ、および動きベクトルは次のように導出され、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄは１だけ増分される。
【数９】
0006434012.tif 000010
【数１０】
0006434012.tif 000011
【数１１】
0006434012.tif 000012
【数１２】
0006434012.tif 000013
【数１３】
0006434012.tif 000014
【数１４】
0006434012.tif 000015
【数１５】
0006434012.tif 000016
【数１６】
0006434012.tif 000017
【数１７】
0006434012.tif 000018
【０１５２】
４．ｃｏｍｂＩｄｘは１だけ増分される。
【０１５３】
５．ｃｏｍｂＩｄｘが（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ*（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しいか、またはｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄがＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しいとき、ｃｏｍｂＳｔｏｐはＴＲＵＥに等しいように設定される。
【０１５４】
[0140]動きベクトル継承（ＭＶＩ：motion vector inheritance）は、テクスチャ画像とその関連する深度画像との間の動き特性の類似度を活用する。具体的には、ビデオコーダは、ＭＶＩ候補をマージ候補リストに含めることができる。深度画像中の所与のＰＵに関して、ＭＶＩ候補は、それが利用可能な場合、すでにコーディングされている、対応するテクスチャブロックの動きベクトルと参照インデックスとを使用して再使用する。図１０は、深度コーディングのための動きベクトル継承候補の例示的な導出を示す概念図である。図１０は、現在ＰＵの中央の右下に対して位置特定される４×４ブロックとして、対応するテクスチャブロックが選択されるＭＶＩ候補の導出プロセスの例を示す。
【０１５５】
[0141]いくつかの例では、整数精度を有する動きベクトルが深度コーディングで使用されるのに対して、テクスチャコーディングに関して動きベクトルの１／４分の１精度が利用される。したがって、対応するテクスチャブロックの動きベクトルは、ＭＶＩ候補として使用する前にスケーリングされ得る。
【０１５６】
[0142]ＭＶＩ候補生成により、深度ビューに関するマージ候補リストは次のように構築され得る。
【０１５７】
１．ＭＶＩ挿入
ＭＶＩが上で説明した手順によって導出される。ＭＶＩが利用可能である場合、ビデオコーダは、ＭＶＩをマージリストに挿入することができる。
【０１５８】
２．３Ｄ−ＨＥＶＣにおける空間マージ用候補およびＩＤＭＶＣの挿入のための導出プロセス
以下、すなわち、Ａ1、Ｂ1、Ｂ0、Ａ0、またはＢ2の順序で空間的隣接ＰＵの動き情報をチェックする。ビデオコーダは、以下の手順によって、制約付きプルーニングを実行することができる。
【０１５９】
Ａ1およびＭＶＩが同じ動きベクトルおよび同じ参照インデックスを有する場合、ビデオコーダは、Ａ1を候補リストに挿入しない。
【０１６０】
Ｂ1およびＡ1／ＭＶＩが同じ動きベクトルならびに同じ参照インデックスを有する場合、ビデオコーダは、Ｂ1を候補リストに挿入しない。
【０１６１】
Ｂ0が利用可能である場合、ビデオコーダはＢ0を候補リストに追加する。
【０１６２】
Ａ0が利用可能である場合、ビデオコーダはＡ0を候補リストに追加する。
【０１６３】
Ｂ2が利用可能である場合、ビデオコーダはＢ2を候補リストに追加する。
【０１６４】
３．時間マージ用候補のための導出プロセス
コロケートＰＵの動き情報が利用されるＨＥＶＣにおける時間マージ用候補導出プロセスと同様に、しかしながら、時間マージ用候補の目標参照ピクチャインデックスは、目標参照ピクチャインデックスを０に固定する代わりに、３Ｄ−ＨＥＶＣにおけるテクスチャコーディングに関するマージ候補リスト構築に関して、本開示の他の箇所で説明したように変更され得る。
【０１６５】
４．３Ｄ−ＨＥＶＣにおける結合双予測マージ用候補のための導出プロセス
上記の２つのステップから導出された候補の総数が候補の最大数未満である場合、ビデオコーダは、１０ＣａｎｄＩｄｘおよび１１ＣａｎｄＩｄｘの仕様を除いて、ＨＥＶＣにおいて定義されたものと同じプロセスを実行することができる。ｃｏｍｂＩｄｘ、１０ＣａｎｄＩｄｘ、および１１ＣａｎｄＩｄｘの間の関係は、図９の表において定義されている。
【０１６６】
６．ゼロ動きベクトルマージ用候補のための導出プロセス
ＨＥＶＣにおいて定義されたものと同じ手順が実行される。
【０１６７】
[0143]上に示したように、３Ｄ−ＨＥＶＣはビュー残差予測を実現する。高度残差予測（ＡＲＰ）はビュー間残差予測の一形態である。ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／４＿Ｉｎｃｈｅｏｎ／ｗｇ１１／ＪＣＴ３Ｖ−Ｄ０１７７−ｖ２．ｚｉｐ（以下、ＪＣＴ３Ｖ−Ｄ０１７７）から利用可能である、２０１３年１２月１７日付の、Ｚｈａｎｇら、「ＣＥ４：Ａｄｖａｎｃｅｄ  Ｒｅｓｉｄｕａｌ  Ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  Ｍｕｌｔｉｖｉｅｗ  Ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張共同研究部会、第４回会合：インチョン、韓国、２０１３年４月２０日〜２６日、文書ＪＣＴ３Ｖ−Ｄ０１７７で提案されたように、第４回ＪＣＴ３Ｖ会合において、Ｐａｒｔ＿２Ｎ×２Ｎに等しい区分モードでＡＲＰをＣＵに適用することが採用された。
【０１６８】
[0144]図１１は、マルチビュービデオコーディングにおけるＡＲＰの例示的な予測構造を示す。図１１に示すように、ビデオコーダは、現在ブロックの予測において以下のブロックを呼び出すことができる。
【０１６９】
１．現在ブロック：Ｃｕｒｒ
２．視差ベクトル（ＤＶ）によって導出される参照／ベースビュー中の参照ブロック：Ｂａｓｅ。
【０１７０】
３．現在ブロックの（時間的）動きベクトル（ＴＭＶと示される）によって導出されるブロックＣｕｒｒと同じビュー中のブロック：ＣｕｒｒＴＲｅｆ。
【０１７１】
４．現在ブロックの時間的動きベクトル（ＴＭＶ）によって導出されるブロックＢａｓｅと同じビュー中のブロック：ＢａｓｅＴＲｅｆ。このブロックは、現在ブロックと比較してＴＭＶ＋ＤＶのベクトルを用いて識別される。
【０１７２】
[0145]残差予測子はＢａｓｅＴＲｅｆ−Ｂａｓｅと示され、示されたピクセルアレイの各ピクセルに減算演算が適用される。ビデオエンコーダは、残差予測子に対して重み付け係数ｗを乗算することができる。したがって、現在ブロックの最終的な予測子は次のように示され得る：ＣｕｒｒＴｒｅｆ＋ｗ*（ＢａｓｅＴｒｅｆ−Ｂａｓｅ）。
【０１７３】
[0146]上の説明と図１１は両方とも、単方向（uni-directional）予測が適用されるという仮定に基づく。双方向予測の事例に拡大するとき、上記のステップが各参照ピクチャリストに対して適用される。現在ブロックが１つの参照ピクチャリストに関して（異なるビュー中の）ビュー間参照ピクチャを使用するとき、残差予測プロセスは無効にされる。
【０１７４】
[0147]デコーダ側において提案されるＡＲＰの主な手順は次のように説明され得る。まず、ビデオコーダは、目標参照ビューを指す、３Ｄ−ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ４で指定されるような視差ベクトルを取得することができる。次いで、現在ピクチャと同じアクセスユニット中の参照ビューのピクチャ中で、ビデオコーダは、対応するブロックを位置特定するために視差ベクトルを使用することができる。次に、ビデオコーダは、参照ブロックに対する動き情報を導出するために、現在ブロックの動き情報を再使用することができる。ビデオコーダは、次いで、残差ブロックを導出するために、対応するブロックベースの現在ブロックの同じ動きベクトルと、参照ブロックに対する参照ビュー中の導出された参照ピクチャとに対して動き補償を適用することができる。図１２は、現在ブロックと、対応するブロックと、動き補償ブロックとの間の関係を示す。言い換えると、図１２は、現在ブロックと、参照ブロックと、動き補償ブロックとの例示的な関係を示す概念図である。現在ビュー（Ｖm）の参照ピクチャと同じＰＯＣ（ピクチャ順序カウント）値を有する参照ビュー（Ｖ0）中の参照ピクチャは、対応するブロックの参照ピクチャとして選択される。次に、ビデオコーダは、重み付けされた残差ブロックを決定するために、残差ブロックに重み係数を加えることができる。ビデオコーダは、重み付けされた残差ブロックの値を予測されたサンプルに加算することができる。
【０１７５】
[0148]３つの重み係数、すなわち、０、０．５、および１がＡＲＰにおいて使用される。ビデオエンコーダ２０は、最終的な重み係数として、現在ＣＵについての最小レート歪みコストにつながる重み係数を選択することができる。ビデオエンコーダ２０は、対応する重み係数インデックス（それぞれ、重み係数０、１、および０．５に対応する０、１、および２）をＣＵレベルで、ビットストリーム内でシグナリングすることができる。ＣＵ内のすべてのＰＵ予測は同じ重み係数を共有し得る。重み係数が０に等しいとき、ビデオコーダは現在ＣＵに関してＡＲＰを使用しない。
【０１７６】
[0149]ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ−Ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／３＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｃ００４９−ｖ２．ｚｉｐ（以下、ＪＣＴ３Ｖ−Ｃ００４９）から利用可能な、２０１３年８月３０日付けの、Ｚｈａｎｇら、「３Ｄ−ＣＥ４：Ａｄｖａｎｃｅｄ  Ｒｅｓｉｄｕａｌ  Ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  Ｍｕｌｔｉｖｉｅｗ  Ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第３回会合、ジュネーブ、スイス、２０１３年１月１７日〜２３日、文書ＪＣＴ３Ｖ−Ｃ００４９において、非ゼロ重み係数を用いてコーディングされたＰＵの参照ピクチャはブロックごとに異なり得る。したがって、ビデオコーダは、対応するブロックの動き補償ブロック（すなわち、図１１の例で、ＢａｓｅＴＲｅｆ）を生成するために、参照ビューから異なるピクチャにアクセスする必要があり得る。ビデオコーダは、重み係数が０に等しくないとき、残差生成プロセスに関する動き補償を実行する前に、固定ピクチャに対して現在ＰＵの復号動きベクトルをスケーリングすることができる。ＪＣＴ３Ｖ−Ｄ０１７７では、固定ピクチャは、それが同じビューからである場合、各参照ピクチャリストの第１の参照ピクチャとして定義される。復号動きベクトルが固定ピクチャを指さないとき、ビデオコーダは、最初に、復号動きベクトルをスケーリングし、次いで、ＣｕｒｒＴＲｅｆおよびＢａｓｅＴＲｅｆを識別するために、スケーリングされた動きベクトルを使用することができる。ＡＲＰに関して使用されるそのような参照ピクチャは、目標ＡＲＰ参照ピクチャと呼ばれる場合がある。
【０１７７】
[0150]ＪＣＴ３Ｖ−Ｃ００４９では、ビデオコーダは、対応するブロックおよび対応するブロックの予測ブロックの補間プロセスの間に双線形フィルタを適用することができる。非ベースビュー中の現在ＰＵの予測ブロックに関する間、ビデオコーダは従来の８／４タップフィルタを適用することができる。ＪＣＴ３Ｖ−Ｄ０１７７は、ＡＲＰが適用されるとき、ブロックがベースビュー中にあるか、または非ベースビュー中にあるかにかかわらず、双線形を常に採用することを提案する。
【０１７８】
[0151]ＡＲＰでは、ビデオコーダは、ＮＢＤＶ導出プロセスから返されたビュー順序インデックスによって参照ビューを識別することができる。ＡＲＰのいくつかの設計では、１つの参照ピクチャリスト中の１つのＰＵの参照ピクチャが現在ビューの異なるビューからであるとき、ＡＲＰはこの参照ピクチャリストに関して無効にされる。
【０１７９】
[0152]その各々の内容全体が参照により組み込まれている、２０１３年６月２８日に出願された米国仮特許出願第６１／８４０，４００号、および２０１３年７月１８日に出願された米国仮特許出願第６１／８４７，９４２号では、深度ピクチャをコーディングするとき、現在ブロックの隣接サンプルから推定された深度値によって視差ベクトルは変換される。さらに、たとえば、視差ベクトルによって識別されたベースビューの参照ブロックにアクセスすることによって、より多くのマージ候補が導出され得る。
【０１８０】
[0153]３Ｄ−ＨＥＶＣでは、ビデオコーダは２つのステップによって参照４×４ブロックを識別することができる。第１のステップは、視差動きベクトルを用いてピクセルを識別する。第２のステップは、（それぞれ、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１に対応する動き情報の一意のセットを有する）４×４ブロックを得て、マージ候補を作成するために動き情報を利用する。
【０１８１】
[0154]参照ビュー中のピクセル（ｘＲｅｆ，ｙＲｅｆ）は次のように識別され得る。
【数１８】
0006434012.tif 000019
【数１９】
0006434012.tif 000020
【０１８２】
式中、（ｘＰ，ｙＰ）は、現在ＰＵの左上サンプルの座標であり、ｍｖＤｉｓｐは、視差ベクトルであり、ｎＰＳＷ×ｎＰＳＨは現在ＰＵのサイズであり、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLおよびＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLは（現在ビューと同じ）参照ビュー中のピクチャの解像度を定義する。
【０１８３】
[0155]ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｅ０１８４−ｖ２.ｚｉｐから利用可能である、２０１３年１２月１７日付の、Ａｎら、「３Ｄ−ＣＥ３．ｈ関連：Ｓｕｂ−ＰＵ  ｌｅｖｅｌ  ｉｎｔｅｒ−ｖｉｅｗ  ｍｏｔｉｏｎ  ｐｒｅｄｉｃｔｉｏｎ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張共同研究部会、第５回会合、ウィーン、オーストリア、２０１３年７月２７日〜８月２日、文書ＪＣＴ３Ｖ−Ｅ０１８４（以下、「ＪＣＴ３Ｖ−Ｅ０１８４」）は、時間的ビュー間マージ候補（すなわち、参照ビュー中の参照ブロックから導出された候補）に関するサブＰＵレベルビュー間動き予測方法を提案している。ビュー間動き予測の基本概念は、本開示の他の箇所で説明される。ビュー間予測の基本概念では、深度ビュー中の現在ＰＵに関して参照ブロックの動き情報だけが使用される。しかしながら、現在ＰＵは、参照ビュー中の（現在ＰＵの視差ベクトルによって識別された現在ＰＵと同じサイズを有する）参照エリアに対応し得、参照エリアは豊富な動き情報を有し得る。したがって、サブＰＵレベルビュー間動き予測（ＳＰＩＶＭＰ）方法が図１３に示すように提案される。言い換えれば、図１３は、サブＰＵビュー間動き予測を示す概念図である。
【０１８４】
[0156]時間的ビュー間マージ候補は次のように導出され得る。時間的ビュー間マージ候補に関する導出プロセスでは、割り当てられたサブＰＵサイズはＮ×Ｎとして示され得る。異なるサブＰＵブロックサイズ、たとえば、４×４、８×８、および１６×１６が適用され得る。
【０１８５】
[0157]時間的ビュー間マージ候補に関する導出プロセスでは、ビデオコーダは、最初に、現在ＰＵを、その各々が現在ＰＵよりも小さいサイズを有する複数のサブＰＵに分割することができる。現在ＰＵのサイズは、ｎＰＳＷ×ｎＰＳＨよって示され得る。サブＰＵのサイズは、ｎＰＳＷｓｕｂ×ｎＰＳＨＳｕｂによって示され得る。ｎＰＳＷｓｕｂおよびｎＰＳＨｓｕｂは、次の式に示すように、ｎＰＳＷおよびｎＳＰＨに関係し得る。
【数２０】
0006434012.tif 000021
【数２１】
0006434012.tif 000022
【０１８６】
さらに、ビデオコーダは、デフォルト動きベクトルｔｍｖＬＸを（０，０）に設定することができ、各参照ピクチャリストに関して、参照インデックスｒｅｆＬＸを−１に設定することができる（Ｘは０または１である）。
【０１８７】
[0158]さらに、時間的ビュー間マージ候補を決定するとき、ビデオコーダは、各サブＰＵに関する次の動作をラスタ走査順序で適用することができる。まず、ビデオコーダは、参照サンプルロケーション（ｘＲｅｆＳｕｂ，ｙＲｅｆＳｕｂ）を取得するために（その左上のサンプルロケーションが（ｘＰＳｕｂ，ｙＰＳｕｂ）である）現在サブＰＵの中間位置に視差ベクトルを追加することができる。ビデオコーダは、次の式を使用して、（ｘＲｅｆＳｕｂ，ｙＲｅｆＳｕｂ）を決定することができる。
【数２２】
0006434012.tif 000023
【数２３】
0006434012.tif 000024
【０１８８】
ビデオコーダは、現在サブＰＵのための参照ブロックとして（ｘＲｅｆＳｕｂ，ｙＲｅｆＳｕｂ）をカバーする参照ビュー中のブロックを使用することができる。
【０１８９】
[0159]識別された参照ブロックが時間的動きベクトルを使用してコーディングされる場合、ならびに、ｒｅｆＬ０とｒｅｆＬ１の両方が−１に等しく、現在サブＰＵがラスタ走査順序で第１のサブＰＵでない場合、参照ブロックの動き情報はすべての以前のサブＰＵによって継承される。さらに、識別された参照ブロックが時間的動きベクトルを使用してコーディングされる場合、現在サブＰＵに関する動きパラメータとして関連する動きパラメータが使用され得る。さらに、識別された参照ブロックが時間的動きベクトルを使用してコーディングされる場合、ビデオコーダは、ｔｍｖＬＸおよびｒｅｆＬＸを現在サブＰＵの動き情報に更新することができる。さもなければ、参照ブロックがイントラコーディングされる場合、ビデオコーダは、現在サブＰＵの動き情報をｔｍｖＬＸおよびｒｅｆＬＸに設定することができる。
【０１９０】
[0160]ＪＣＴ３Ｖ−Ｅ０１８４で提案されるサブＰＵ動き予測方法は、１つまたは複数の問題を有する。たとえば、参照ビュー中の１つのサブＰＵの対応するブロックがイントラコーディングされる（すなわち、その動き情報が利用不可能である）とき、ラスタ走査順序で最も近いサブＰＵの動き情報が現在サブＰＵに複写される。したがって、ラスタ走査順序で第１のＮ個のサブＰＵの対応するブロックがイントラ符号化され、（Ｎ＋１）番目のサブＰＵの対応するブロックがインターコーディングされる場合、（Ｎ＋１）番目のサブＰＵに設定された関連動き情報は第１のＮ個のサブＰＵに複写されるべきであり、これは、さらなる複雑さおよびコーディング遅延を引き起こす。
【０１９１】
[0161]本開示の１つまたは複数の例はビュー間動き予測に関する。たとえば、本開示の１つまたは複数の例は、マージインデックスがビュー間動き予測を示すコンテキストで適用可能である。
【０１９２】
[0162]たとえば、一例では、ビデオコーダがサブＰＵ様式でビュー間動き予測を使用するとき、それに関する動き情報が利用不可能である現在サブＰＵ場合、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスから動き情報を複写することができる。たとえば、現在サブＰＵに関する動き情報が利用不可能である場合、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスから現在サブＰＵに関する動き情報を複写することができる。この例では、デフォルト動きパラメータは、動き補償予測を使用してコーディングされる参照ブロックを有する後続のサブＰＵが存在するかどうかにかかわらず、複数のサブＰＵ中の各サブＰＵに関して同じである。
【０１９３】
[0163]いくつかの例では、ビデオコーダ（たとえばビデオエンコーダ２０またはビデオデコーダ３０）は現在ＰＵを複数のサブＰＵに分割することができる。現在ＰＵは現在ピクチャ中にある。さらに、ビデオコーダは、デフォルト動きパラメータを決定することができる。デフォルト動きパラメータは、１つまたは複数のデフォルト動きベクトルと、１つまたは複数のデフォルト参照インデックスとを含み得る。さらに、ビデオコーダは、複数のサブＰＵからのサブＰＵを特定の順序で処理することができる。複数のサブＰＵからの各それぞれのサブＰＵに関して、ビデオコーダは、それぞれのサブＰＵのための参照ブロックを決定することができる。
【０１９４】
[0164]いくつかの例では、参照ピクチャは現在ピクチャとは異なるビュー中にあり得、ビデオコーダは、現在ＰＵの視差ベクトルに基づいて、参照ピクチャ中の参照サンプルロケーションを決定することができる。そのような例では、それぞれのサブＰＵのための参照ブロックは、参照サンプルロケーションをカバーすることができる。他の例では、現在ピクチャは深度ビューコンポーネントであり、参照ピクチャは、現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントである。そのような例では、ビデオコーダは、それぞれのサブＰＵのための参照ブロックがそれぞれのサブＰＵとコロケートされた参照ピクチャのＰＵであると決定することができる。
【０１９５】
[0165]さらに、複数のサブＰＵ（または、複数のサブＰＵのサブセット）からの各それぞれのサブＰＵに関して、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされる場合、ビデオコーダは、それぞれのサブＰＵのための参照ブロックの動きパラメータに基づいて、それぞれのサブＰＵの動きパラメータを設定することができる。他方で、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、ビデオコーダは、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することができる。
【０１９６】
[0166]本開示の１つまたは複数の例によれば、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、それぞれのサブＰＵの動きパラメータは設定されない。したがって、サブＰＵのうちの少なくとも１つのための参照ブロックが動き補償予測を使用してコーディングされない状況では、ビデオコーダは、その対応する参照ブロックが動き補償予測を使用してコーディングされるサブＰＵを発見するために順方向に走査しなくてよい。同様に、ビデオコーダが、サブＰＵの処理の間に、その対応する参照ブロックが動き補償予測を使用してコーディングされるＰＵに遭遇するまで、ビデオコーダは、それぞれのサブＰＵの動きパラメータを決定することを遅延させなくてよい。有利には、これは、複雑さおよびコーディング遅延を低減し得る。
【０１９７】
[0167]ビデオコーダは、現在ＰＵの候補リスト中に候補を含めることができ、ここにおいて、この候補は複数のサブＰＵの動きパラメータに基づく。いくつかの例では、候補リストはマージ候補リストである。さらに、ビデオコーダがビデオエンコーダ（たとえば、ビデオエンコーダ２０）である場合、ビデオエンコーダは、その候補リスト中の選択された候補を示すシンタックス要素（たとえば、ｍｅｒｇｅ＿ｉｄｘ）をビットストリーム内でシグナリングすることができる。ビデオコーダがビデオデコーダ（たとえば、ビデオデコーダ３０）である場合、ビデオデコーダは、その候補リスト中の選択された候補を示すシンタックス要素（たとえば、ｍｅｒｇｅ＿ｉｄｘ）をビットストリームから取得することができる。ビデオデコーダは、現在ブロックのための予測ブロックを再構成するために、選択された候補の動きパラメータを使用し得る。
【０１９８】
[0168]本開示で説明する技法のうちの少なくともいくつかは、別個に、または互いとともに実装され得る。
【０１９９】
[0169]図１４は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図１４は、説明のために提供されるものであり、本開示で広く例示し説明する技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２００】
[0170]図１４の例において、ビデオエンコーダ２０は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニット１２２と、動き補償ユニット１２４とを含む。他の例では、ビデオエンコーダ２０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０２０１】
[0171]ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０はビデオデータのピクチャのスライス中の各ＣＴＵを符号化してもよい。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ：coding tree block）と、ピクチャの対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は４分木区分を実行して、ＣＴＵのＣＴＢを徐々により小さいブロックに分割し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【０２０２】
[0172]ビデオエンコーダ２０は、ＣＴＵのＣＵを符号化して、ＣＵの符号化表現（すなわち、コード化ＣＵ）を生成することができる。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵのうちのＣＵに関連付けられたコーディングブロックを区分することができる。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記のように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズを２Ｎ×２Ｎと仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測の場合は２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートすることができ、インター予測の場合は２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートすることができる。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測用の２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズ用の非対称区分化をサポートすることができる。
【０２０３】
[0173]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによってＰＵの予測データを生成し得る。ＰＵの予測データは、ＰＵの予測ブロックと、ＰＵの動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、Ｂスライス中にあるのかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０はＰＵに対してインター予測を実行しない。
【０２０４】
[0174]ＰＵがＰスライス中にある場合、動き推定ユニット１２２は、ＰＵの参照領域について参照ピクチャリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索し得る。ＰＵの参照領域は、ＰＵの予測ブロックに最も近接して対応するサンプルを含んでいる参照ピクチャ内の領域であり得る。動き推定ユニット１２２は、ＰＵの参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、ＰＵのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示す動きベクトルを生成し得る。たとえば、動きベクトルは、現在ピクチャにおける座標から参照ピクチャにおける座標までのオフセットを与える２次元ベクトルであり得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【０２０５】
[0175]ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵについての単予測または双予測を実行し得る。ＰＵについての単予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０の参照ピクチャまたは第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）を探索し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵの予測ブロックと参照領域に関連する参照ロケーションとの間の空間変位を示す動きベクトルと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるのかＲｅｆＰｉｃＬｉｓｔ１中にあるのかを示す１つまたは複数の予測方向インジケータとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０２０６】
[0176]ＰＵについての双方向インター予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索し得、またＰＵの別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、参照領域に関連する参照ロケーションとＰＵの予測ブロックとの間の空間変位を示す動きベクトルを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスと動きベクトルとを含み得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０２０７】
[0177]いくつかの例では、動き推定ユニット１２２はＰＵに関するマージ候補リストを生成することができる。マージ候補リストを生成する一環として、動き推定ユニット１２２は、ＩＰＭＶＣおよび／またはテクスチャマージ候補を決定することができる。ＩＰＭＶＣおよび／またはテクスチャマージ候補を決定するとき、動き推定ユニット１２２は、ＰＵをサブＰＵに区分し、それらのサブＰＵに関する動きパラメータを決定するために、特定の順序に従って、それらのサブＰＵを処理することができる。本開示の１つまたは複数の技法によれば、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その特定の順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、動き推定ユニット１２２はそれぞれのサブＰＵの動きパラメータを設定しない。むしろ、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、動き推定ユニット１２２は、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することができる。ＩＰＭＶＣまたはテクスチャマージ候補がマージ候補リスト中の選択されたマージ候補である場合、動き補償ユニット１２４は、ＩＰＭＶＣまたはテクスチャマージ候補によって指定された動きパラメータに基づいて、それぞれのＰＵのための予測ブロックを決定することができる。
【０２０８】
[0178]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵ用の予測データを生成することができる。ＰＵの予測データは、ＰＵの予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス内、Ｐスライス内、およびＢスライス内のＰＵに対してイントラ予測を実行することができる。
【０２０９】
[0179]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵについて複数セットの予測データを生成し得る。特定のイントラ予測モードを使用してイントラ予測を実行するとき、イントラ予測処理ユニット１２６は、隣接ブロックからのサンプルの特定のセットを使用してＰＵの予測ブロックを生成し得る。隣接ブロックは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの予測ブロックの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば３３個の方向のイントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数はＰＵの予測ブロックのサイズに依存し得る。
【０２１０】
[0180]予測処理ユニット１００は、ＰＵについてインター予測処理ユニット１２０によって生成された予測データ、またはＰＵについてイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵの予測データを選択することができる。いくつかの例では、予測処理ユニット１００は、これらの組の予測データのレート／歪み測定基準に基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０２１１】
[0181]残差生成ユニット１０２は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック、ならびにＣＵのＰＵの選択された予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックに基づいて、ＣＵのルーマ残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロックを生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルとＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０２１２】
[0182]変換処理ユニット１０４は、４分木区分を実行して、ＣＵの残差ブロックをＣＵのＴＵに関連付けられた変換ブロックに区分し得る。したがって、ＴＵは、ルーマ変換ブロックと、２つの対応するクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。
【０２１３】
[0183]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵのＴＵごとに変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例において、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われてもよい。
【０２１４】
[0184]量子化ユニット１０６は、係数ブロック内の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にｎビット変換係数はｍビット変換係数に切り捨てられ得、ただし、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいてＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰの値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらす恐れがあり、したがって、量子化変換係数は、元の係数よりも低い精度を有することがある。
【０２１５】
[0185]逆量子化ユニット１０８および逆変換処理ユニット１１０は、それぞれ、係数ブロックに逆量子化および逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット１１２は、再構成された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算して、ＴＵに関連付けられた再構成された変換ブロックを生成し得る。ビデオエンコーダ２０は、このようにＣＵの各ＴＵのための変換ブロックを再構成することによってＣＵのコーディングブロックを再構成し得る。
【０２１６】
[0186]フィルタユニット１１４は、１つまたは複数のデブロッキング演算を実行して、ＣＵに関連付けられたコーディングブロック中のブロッキングアーティファクトを低減し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成されたコーディングブロックに対して１つまたは複数のデブロッキング演算を実行した後、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、再構成されたコーディングブロックを含んでいる参照ピクチャを使用して、他のピクチャのＰＵに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット１２６は、復号ピクチャバッファ１１６内の再構成されたコーディングブロックを使用して、ＣＵと同じピクチャ内の他のＰＵに対してイントラ予測を実行することができる。
【０２１７】
[0187]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、このデータに対して１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化データを生成することができる。たとえば、エントロピー符号化ユニット１１８は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、ＣＡＢＡＣ演算、変数−変数（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。
【０２１８】
[0188]図１５は、本開示の技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図１５は、説明のために提供されるものであり、本開示において広く例示し説明する技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２１９】
[0189]図１５の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４とイントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０２２０】
[0190]コード化ピクチャバッファ（ＣＰＢ）１５１は、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶し得る。エントロピー復号ユニット１５０は、ＣＰＢ１５１からＮＡＬユニットを受信し、ＮＡＬユニットをパースして、ビットストリームからシンタックス要素を取得し得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成することができる。
【０２２１】
[0191]ビットストリームのＮＡＬユニットは、コード化スライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。
【０２２２】
[0192]ビットストリームからシンタックス要素を得ることに加えて、ビデオデコーダ３０は、ＣＵに対して復号演算を実行し得る。ＣＵに対して復号演算を実行することによって、ビデオデコーダ３０はＣＵのコーディングブロックを再構成し得る。
【０２２３】
[0193]ＣＵに対して復号演算を実行することの一部として、逆量子化ユニット１５４は、ＣＵのＴＵに関連付けられた係数ブロックを逆量子化（inverse quantize）、すなわち、量子化解除（de-quantize）し得る。逆量子化ユニット１５４は、ＴＵのＣＵに関連付けられたＱＰの値を使用して、量子化の程度を決定することができ、同様に、逆量子化ユニット１５４が適用するための逆量子化の程度を決定することができる。つまり、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
【０２２４】
[0194]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、係数ブロックに１つまたは複数の逆変換を適用して、ＴＵに関連付けられた残差ブロックを生成することができる。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を、係数ブロックに適用することができる。
【０２２５】
[0195]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、イントラ予測を実行して、ＰＵについての予測ブロックを生成し得る。イントラ予測処理ユニット１６６は、イントラ予測モードを使用して、空間的に隣接するＰＵの予測ブロックに基づいてＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成してもよい。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいてＰＵのイントラ予測モードを決定し得る。
【０２２６】
[0196]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）および第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を構成し得る。さらに、インター予測を使用してＰＵが符号化される場合、エントロピー復号ユニット１５０は、ＰＵの動き情報を取得し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵの１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵのための１つまたは複数の参照ブロックにおけるサンプルに基づいて、ＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成し得る。
【０２２７】
[0197]いくつかの例では、動き補償ユニット１６４はＰＵに関するマージ候補リストを生成することができる。マージ候補リストを生成する一環として、動き補償ユニット１６４は、ＩＰＭＶＣおよび／またはテクスチャマージ候補を決定することができる。ＩＰＭＶＣおよび／またはテクスチャマージ候補を決定するとき、動き補償ユニット１６４は、ＰＵをサブＰＵに区分し、それらのサブＰＵの各々に関する動きパラメータを決定するために、特定の順序に従って、それらのサブＰＵを処理することができる。本開示の１つまたは複数の技法によれば、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、その特定の順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、動き補償ユニット１６４はそれぞれのサブＰＵの動きパラメータを設定しない。むしろ、それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、動き補償ユニット１６４は、それぞれのサブＰＵの動きパラメータをデフォルト動きパラメータに設定することができる。ＩＰＭＶＣまたはテクスチャマージ候補がマージ候補リスト中の選択されたマージ候補である場合、動き補償ユニット１６４は、ＩＰＭＶＣまたはテクスチャマージ候補によって指定された動きパラメータに基づいて、それぞれのＰＵのための予測ブロックを決定することができる。
【０２２８】
[0198]再構成ユニット１５８は、ＣＵのＴＵに関連付けられたルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックからの残差値、ならびにＣＵのＰＵの予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックが適用可能な場合にそれらを使用して、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成し得る。たとえば、再構成ユニット１５８は、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックのサンプルを予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックの対応するサンプルに加算して、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成し得る。
【０２２９】
[0199]フィルタユニット１６０は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。ビデオデコーダ３０は、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを復号ピクチャバッファ１６２に記憶してもよい。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のルーマブロック、Ｃｂブロック、およびＣｒブロックに基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。このようにして、ビデオデコーダ３０は、有意ルーマ係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力し得る。
【０２３０】
[0200]以下の部分は、（公開されている）３Ｄ−ＨＥＶＣに対する例示的な復号プロセス変更を提供する。サブＰＵ時間的ビュー間動きベクトル候補に関する導出プロセスにおいて、ビデオコーダは、最初に、ＰＵレベルビュー間予測動きベクトル候補を生成することができる。中心参照サブＰＵ（すなわち、ビュー間参照ブロック中の中心サブＰＵ）がインター予測モードを用いてコーディングされ、参照ピクチャリストＸ中の中心参照サブＰＵの参照ピクチャが、現在スライスの参照ピクチャ中の１つのエントリのＰＯＣ値と同一のＰＯＣ値を有する場合、Ｘ＝０または１に対して、ＰＵレベルの予測動きベクトル候補として、その動きベクトルおよび参照ピクチャが使用される。さもなければ、ビデオコーダは、ＰＵレベル予測動きベクトル候補として、参照ピクチャリスト０および（現在スライスがＢスライスである場合）参照ピクチャリスト１に関して、０に等しい参照ピクチャインデックスを用いたゼロ動きを使用することができる。ビデオコーダは、次いで、その対応する参照ブロックがイントラ予測モードでコーディングされるか、またはインター予測モードでコーディングされるかのいずれかであるが、その参照ピクチャが現在スライスの参照ピクチャリスト中に含まれないサブＰＵの動きとして、ＰＵレベル予測動きベクトル候補を使用することができる。
【０２３１】
[0201]本開示の例は、３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｓｔ  ２（すなわち、文書ＪＣＴ３Ｖ−Ｆ１００１ｖ２）に定義されたサブＰＵレベルのビュー間動き予測プロセス（または、サブ予測ブロック時間的ビュー間動きベクトル候補に関する導出プロセス）を変更し得る。本開示の１つまたは複数の例によれば、３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ２に追加されたテキストには下線が引かれ、３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｓｔ  ２から削除されたテキストは、イタリック体で標示され、二重角括弧で囲まれる。
【０２３２】
復号プロセス
Ｈ．８．５．３．２．１６  サブ予測ブロック時間的ビュー間動きベクトル候補のための導出プロセス
このプロセスは、ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］が０に等しい場合のみ呼び出される。
【０２３３】
このプロセスへの入力は以下の通りである。
【０２３４】
現在ピクチャの左上ルーマサンプルに対する現在予測ユニットの左上ルーマサンプルのルーマロケーション（ｘＰｂ，ｙＰｂ）、
現在予測ユニットの幅および高さをそれぞれ指定する変数ｎＰｂＷならびにｎＰｂＨ、
参照ビューインデックスｒｅｆＶｉｅｗＩｄｘ。
【０２３５】
視差ベクトルｍｖＤｉｓｐ、
このプロセスの出力は以下の通りである。
【０２３６】
Ｘが、時間的ビュー間動きベクトル候補が利用可能であるかどうかを指定する、両端値を含む、０から１の範囲であるフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＩｎｔｅｒＶｉｅｗ、
Ｘが、両端値を含む、０から１の範囲である、時間的ビュー間動きベクトル候補ｍｖＬＸＩｎｔｅｒＶｉｅｗ。
【０２３７】
Ｘが、参照ピクチャリストＲｅｆＰｉｃＬｉｓｔＸ中の参照ピクチャを指定する、両端値を含む、０から１の範囲である参照インデックスｒｅｆＩｄｘＬＸｉｎｔｅｒＶｉｅｗ、
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２３８】
フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＩｎｔｅｒＶｉｅｗが０に等しいように設定される。
【０２３９】
動きベクトルｍｖＬＸＩｎｔｅｒＶｉｅｗが（０，０）に等しいように設定される。
【０２４０】
参照インデックスｒｅｆＩｄｘＬＸＩｎｔｅｒＶｉｅｗが−１に等しいように設定される。
【０２４１】
変数ｎＳｂＷおよびｎＳｂＨが、以下のように導出される。
【数２４】
0006434012.tif 000025
【数２５】
0006434012.tif 000026
【数２６】
0006434012.tif 000027
【０２４２】
可変フラグｃｅｎｔｅｒＰｒｅｄＦｌａｇＬＸ、動きベクトルｃｅｎｔｅｒＭｖＬＸ、および参照インデックスｃｅｎｔｅｒＲｅｆＩｄｘＬＸを導出するために、次のことが当てはまる。
【０２４３】
変数ｃｅｎｔｅｒＡｖａｉｌａｂｌｅＦｌａｇが０に等しいように設定される。
【０２４４】
両端値を含む、０から１の範囲のＸの場合、次のことが当てはまる。
【０２４５】
フラグｃｅｎｔｅｒＰｒｅｄＦｌａｇＬＸが０に等しいように設定される。
【０２４６】
動きベクトルｃｅｎｔｅｒＭｖＬＸが（０，０）に等しいように設定される。
【０２４７】
参照インデックスｃｅｎｔｅｒＲｅｆＩｄｘＬＸが−１に等しいように設定される。
【０２４８】
参照レイヤルーマロケーション（ｘＲｅｆ，ｙＲｅｆ）は以下によって導出される。
【数２７】
0006434012.tif 000028
【数２８】
0006434012.tif 000029
【０２４９】
変数ｉｖＲｅｆＰｂは、ｉｖＲｅｆＰｉｃによって指定されたビュー間参照ピクチャ中で（ｘＲｅｆ，ｙＲｅｆ）によって与えられるロケーションをカバーするルーマ予測ブロックを指定する。
【０２５０】
ルーマロケーション（ｘＩｖＲｅｆＰｂ，ｙＩｖＲｅｆＰｂ）は、ｉｖＲｅｆＰｉｃによって指定されたビュー間参照ピクチャの左上ルーマサンプルに対してｉｖＲｅｆＰｂによって指定されたビュー間参照ルーマ予測ブロックの左上サンプルに等しいように設定される。
【０２５１】
ｉｖＲｅｆＰｂがイントラ予測モードでコーディングされないとき、両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２５２】
Ｘが０に等しいか、または現在スライスがＢスライスであるとき、両端値を含む、Ｘから（１−Ｘ）の範囲のＹに関して、次のことが当てはまる。
【０２５３】
変数ｒｅｆＰｉｃＬｉｓｔＬＹＩｖＲｅｆ、ｐｒｅｄＦｌａｇＬｙＩＹＲｅｆ、ｍｖＬＹＩｖＲｅｆ、およびｒｅｆＩｄｘＬＹＩｖＲｅｆは、それぞれ、ピクチャｉｖＲｅｆＰｉｃのＲｅｆＰｉｃＬｉｓｔＬＹ、ＰｒｅｄＦｌａｇＬＹ、ＭｖＬＹ、およびＲｅｆＩｄｘＬＹに等しいように設定される。
【０２５４】
ｐｒｅｄＦｌａｇＬＹＩｖＲｅｆ［ｘＩｖＲｅｆＰｂ］［ｙＩｖＲｅｆＰｂ］が１に等しいとき、両端値を含む、０からｎｕｍ＿ｒｅｆ＿ｉｄｘ＿１Ｘ＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１までの各ｉに関して、次のことが当てはまる。
【０２５５】
ＰｉｃＯｒｄｅｒＣｎｔ（ｒｅｆＰｉｃＬｉｓｔＬＹＩｖＲｅｆ［ｒｅｆＩｄｘＬＹＩｖＲｅｆ［ｘＩｖＲｅｆＰｂ］［ｙＩｖＲｅｆＰｂ］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｉ］）に等しく、ｃｅｎｔｅｒＰｒｅｄＦｌａｇＬｘが０に等しいとき、次のことが当てはまる。
【数２９】
0006434012.tif 000030
【数３０】
0006434012.tif 000031
【数３１】
0006434012.tif 000032
【数３２】
0006434012.tif 000033
【０２５６】
ｃｅｎｔｅｒＡｖａｉｌａｂｌｅＦｌａｇが０に等しく、ｉｖＲｅｆＰｉｃがＩスライスでない場合、両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【数３３】
0006434012.tif 000034
【数３４】
0006434012.tif 000035
【数３５】
0006434012.tif 000036
【０２５７】
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２５８】
フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＩｎｔｅｒＶｉｅｗがｃｅｎｔｅｒＰｒｅｄＦｌａｇＬＸに等しいように設定される。
【０２５９】
動きベクトルｍｖＬＸＩｎｔｅｒＶｉｅｗがｃｅｎｔｅｒＭｖＬＸに等しいように設定される。
【０２６０】
参照インデックスｒｅｆＩｄｘＬＸＩｎｔｅｒＶｉｅｗがｃｅｎｔｅｒＲｅｆＩｄｘＬＸに等しいように設定される。
【０２６１】
両端値を含む、０から（ｎＰｂＨ／ｎＳｂＨ−１）の範囲のｙＢｌｋに関して、および両端値を含む、０から（ｎＰｂＷ／ｎＳｂＷ−１）の範囲のｘＢｌｋに関して、次のことが当てはまる。
【０２６２】
変数ｃｕｒＡｖａｉｌａｂｌｅＦｌａｇが０に等しいように設定される。
【０２６３】
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２６４】
フラグｓｐＰｒｅｄＦｌａｇＬ１［ｘＢｌｋ］［ｙＢｌｋ］が０に等しいように設定される。
【０２６５】
動きベクトルｓｐＭｖＬＸが（０，０）に等しいように設定される。
【０２６６】
参照インデックスｓｐＲｅｆＩｄｘＬＸ［ｘＢｌｋ］［ｙＢｌｋ］が−１に等しいように設定される。
【０２６７】
参照レイヤルーマロケーション（ｘＲｅｆ，ｙＲｅｆ）は以下によって導出される。
【数３６】
0006434012.tif 000037
【数３７】
0006434012.tif 000038
【０２６８】
変数ｉｖＲｅｆＰｂは、ｉｖＲｅｆＰｉｃによって指定されるビュー間参照ピクチャ中で（ｘＲｅｆ，ｙＲｅｆ）によって与えられるロケーションをカバーするルーマ予測ブロックを指定する。
【０２６９】
ルーマロケーション（ｘＩｖＲｅｆＰｂ，ｙＩｖＲｅｆＰｂ）は、ｉｖＲｅｆＰｉｃによって指定されるビュー間参照ピクチャの左上ルーマサンプルに対してｉｖＲｅｆＰｂによって指定されるビュー間参照ルーマ予測ブロックの左上サンプルに等しいように設定される。
【０２７０】
ｉｖＲｅｆＰｂがイントラ予測モードでコーディングされないとき、両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２７１】
０に等しいか、または現在スライスがＢスライスであるとき、両端値を含む、Ｘから（１−Ｘ）の範囲のＹに関して、次のことが当てはまる。
【０２７２】
変数ｒｅｆＰｉｃＬｉｓｔＬＹＩｖＲｅｆ、ｐｒｅｄＦｌａｇＬＹＩｖＲｅｆ［ｘ］［ｙ］、ｍｖＬＹＩｖＲｅｆ［ｘ］［ｙ］、およびｒｅｆＩｄｘＬＹＩｖＲｅｆ［ｘ］［ｙ］は、それぞれ、ピクチャｉｖＲｅｆＰｉｃのＲｅｆＰｉｃＬｉｓｔＬＹ、ＰｒｅｄＦｌａｇＬＹ［ｘ］［ｙ］、ＭｖＬＹ［ｘ］［ｙ］、およびＲｅｆＩｄｘＬＹ［ｘ］［ｙ］に等しいように設定される。
【０２７３】
ｐｒｅｄＦｌａｇＬＹＩｖＲｅｆ［ｘＩｖＲｅｆＰｂ］［ｙＩｖＲｅｆＰｂ］が１に等しいとき、両端値を含む、０からｎｕｍ＿ｒｅｆ＿ｉｄｘ＿１Ｘ＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１までの各ｉに関して、次のことが当てはまる。
【０２７４】
ＰｉｃＯｒｄｅｒＣｎｔ（ｒｅｆＰｉｃＬｉｓｔＬＹＩｖＲｅｆ［ｒｅｆＩｄｘＬＹＩｖＲｅｆ［ｘＩｖＲｅｆＰｂ］［ｙＩｖＲｅｆＰｂ］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｉ］）に等しく、ｓｐＰｒｅｄＦｌａｇＬＸ［ｘＢｌｋ］［ｙＢｌｋ］が０に等しいとき、次のことが当てはまる。
【数３８】
0006434012.tif 000039
【数３９】
0006434012.tif 000040
【数４０】
0006434012.tif 000041
【数４１】
0006434012.tif 000042
【０２７５】
［［ｃｕｒＡｖａｉｌａｂｌｅＦｌａｇに応じて、次のことが当てはまる。
【０２７６】
ｃｕｒＡｖａｉｌａｂｌｅＦｌａｇが１に等しいとき、次の順序ステップが当てはまる。
【０２７７】
１．ｌａｓｔＡｖａｉｌａｂｌｅＦｌａｇが０に等しいとき、以下のことが当てはまる。
【０２７８】
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【数４２】
0006434012.tif 000043
【数４３】
0006434012.tif 000044
【数４４】
0006434012.tif 000045
【０２７９】
ｃｕｒＳｕｂＢｏｃｋＩｄｘが０よりも大きいとき、両端値を含む、０から（ｃｕｒＳｕｂＢｌｏｃｋＩｄｘ−１）の範囲のｋに関して、次のことが当てはまる。
【０２８０】
変数ｉおよびｋが、以下で指定されるように導出される。
【数４５】
0006434012.tif 000046
【数４６】
0006434012.tif 000047
【０２８１】
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【数４７】
0006434012.tif 000048
【数４８】
0006434012.tif 000049
【数４９】
0006434012.tif 000050
【０２８２】
２．変数ｌａｓｔＡｖａｉｌａｂｌｅＦｌａｇが１に等しいように設定される。
【０２８３】
３．変数ｘＬａｓｔＡｖａｉｌおよびｙＬａｓｔＡｖａｉｌが、ｘＢｌｋおよびｙＢｌｋに等しいように設定される。］］
［［さもなければ、（］］ｃｕｒＡｖａｉｌａｂｌｅＦｌａｇが０に等しい場合［［）、ｌａｓｔＡｖａｉｌａｂｌｅＦｌａｇが１に等しいとき］］、両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【数５０】
0006434012.tif 000051
【数５１】
0006434012.tif 000052
【数５２】
0006434012.tif 000053
【数５３】
0006434012.tif 000054
【数５４】
0006434012.tif 000055
【数５５】
0006434012.tif 000056
【０２８４】
［［変数ｃｕｒＳｕｂＢｌｏｃｋＩｄｘがｃｕｒＳｕｂＢｌｏｃｋＩｄｘ＋１に等しいように設定される］］。
【０２８５】
復号プロセスにおいて後に呼び出される変数の導出プロセスで使用するために、ｘ＝０．．ｎＰｂＷ−１およびｙ＝０．．ｎＰｂＨ−１に関して、次の割当てが行われる。
【０２８６】
両端値を含む、０から１の範囲のＸに関して、次のことが当てはまる。
【０２８７】
変数ＳｕｂＰｒｅｄＦｌａｇＬＸ、ＳｕｂＰｂＭｖＬＸ、およびＳｕｂＰｂＲｅｆＩｄｘＬＸが、以下で指定されるように導出される。
【数５６】
0006434012.tif 000057
【数５７】
0006434012.tif 000058
【数５８】
0006434012.tif 000059
【０２８８】
第８．５．３．２．９項におけるクロマ動きベクトルに関する導出プロセスは、入力として、ＳｕｂＰｂＭｖＬＸ［ｘＰｂ＋ｘ］［ｙＰｂ＋ｙ］で呼び出され、出力はＳｕｂＰｂＭｖＣＬＸ［ｘＰｂ＋ｘ］［ｙＰｂ＋ｙ］である。
【０２８９】
[0202]図１６Ａは、本開示の一例による、インター予測を使用してＣＵを符号化するためのビデオデコーダ２０の例示的な動作を示すフローチャートである。図１６Ａの例では、ビデオエンコーダ２０は、現在ＣＵの現在ＰＵに関するマージ候補リストを生成することができる（２００）。本開示の１つまたは複数の例によれば、ビデオエンコーダ２０は、マージ候補リストが現在ＰＵのサブＰＵに関する動き情報に基づく時間的ビュー間マージ候補を含むように、マージ候補リストを生成することができる。いくつかの例によれば、現在ＰＵは深度ＰＵであり得、ビデオエンコーダ２０は、マージ候補リストが現在深度ＰＵのサブＰＵに関する動き情報に基づくテクスチャマージ候補を含むように、マージ候補リストを生成することができる。さらに、いくつかの例では、ビデオエンコーダ２０は、現在ＰＵに関するマージ候補リストを生成するために、図１７の動作を実行することができる。
【０２９０】
[0203]現在ＰＵに関するマージ候補リストを生成した後、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択する（２０２）。いくつかの例では、ビデオエンコーダ２０は、レート／ひずみ分析に基づいてマージ候補を選択し得る。さらに、ビデオエンコーダ２０は、現在ＰＵのための予測ブロックを決定する（２０４）ために、選択されたマージ候補の動き情報（たとえば、動きベクトルおよび参照インデックス）を使用することができる。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト中の位置を示すマージ候補インデックスをシグナリングし得る（２０６）。
【０２９１】
[0204]選択されたマージ候補が、本開示の例で説明するサブＰＵを使用して構成されるＩＰＭＶＣまたはＭＶＩ候補（すなわち、テクスチャマージ候補）である場合、ＩＰＭＶＣまたはＭＶＩ候補は、現在ＰＵの各サブＰＵに関する動きパラメータの別個のセット（たとえば、１つまたは複数の動きベクトルのセットおよび１つまたは複数の参照インデックスのセット）を指定することができる。ビデオエンコーダ２０が現在ＰＵのための予測ブロックを決定しているとき、ビデオエンコーダ２０は、サブＰＵのための予測ブロックを決定するために、現在ＰＵのサブＰＵの動きパラメータを使用することができる。ビデオエンコーダ２０は、現在ＣＵのサブＰＵのための予測ブロックをアセンブルすることによって、現在ＣＵのための予測ブロックを決定することができる。
【０２９２】
[0205]ビデオエンコーダ２０は、現在ＣＵ中に何らかの残っているＰＵが存在するかどうかを決定することができる（２０８）。現在ＣＵ中に１つまたは複数の残っているＰＵが存在する場合（２０８の「ＹＥＳ」）、ビデオエンコーダ２０は、現在ＰＵとして、現在ＣＵの別のＰＵで動作２００〜２０８を繰り返すことができる。このようにして、ビデオエンコーダ２０は、現在ＣＵの各ＰＵに対して動作２００〜２０８を繰り返すことができる。
【０２９３】
[0206]現在ＣＵの残っているＰＵが何も存在しないとき（２０８の「いいえ」）、ビデオエンコーダ２０は、現在ＣＵに関する残差データを決定することができる（２１０）。いくつかの例では、残差データの各サンプルは、現在ＣＵのコーディングブロック中のサンプルと、現在ＣＵのＰＵの予測ブロック中の対応するサンプルとの間の差分を示すことができる。他の例では、ビデオエンコーダ２０は、現在ＣＵに関する残差データを決定することができる。ビデオエンコーダ２０は、ビットストリーム中で残差データをシグナリングすることができる（２１２）。たとえば、ビデオエンコーダ２０は、係数ブロックを生成し、それらの係数を量子化し、量子化された係数を示すシンタックス要素をエントロピー符号化し、エントロピー符号化されたシンタックス要素をビットストリーム内に含めるために、１つまたは複数の変換を残差データに適用することによって、ビットストリーム中で残差データをシグナリングすることができる。
【０２９４】
[0207]図１６Ｂは、本開示の一例による、インター予測を使用してＣＵを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図１６Ｂの例では、ビデオデコーダ３０は、現在ＣＵの現在ＰＵに関するマージ候補リストを生成することができる（２２０）。本開示の１つまたは複数の例によれば、ビデオデコーダ３０は、マージ候補リストが現在ＰＵのサブＰＵに関する動き情報に基づく時間的ビュー間マージ候補を含むように、マージ候補リストを生成することができる。いくつかの例では、現在ＰＵは深度ＰＵであり得、ビデオデコーダ３０は、マージ候補リストが現在深度ＰＵのサブＰＵに関する動き情報に基づくテクスチャマージ候補を含むように、マージ候補リストを生成することができる。さらに、いくつかの例では、ビデオデコーダ３０は、現在ＰＵに関するマージ候補リストを生成するために、図１７の動作を実行することができる。
【０２９５】
[0208]現在ＰＵに関するマージ候補リストを生成した後、ビデオデコーダ３０は、マージ候補リストから選択されたマージ候補を決定することができる（２２２）。いくつかの例では、ビデオデコーダ３０は、ビットストリーム内でシグナリングされたマージ候補インデックスに基づいて、選択されたマージ候補を決定することができる。さらに、ビデオデコーダ３０は、現在ＰＵのための予測ブロックを決定する（２２４）ために、選択されたマージ候補の動きパラメータ（たとえば、動きベクトルおよび参照インデックス）を使用することができる。たとえば、ビデオデコーダ３０は、現在ＰＵのためのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックを決定するために、選択されたマージ候補の動きパラメータを使用することができる。
【０２９６】
[0209]選択されたマージ候補が、本開示の例で説明するサブＰＵを使用して構成されるＩＰＭＶＣまたはＭＶＩ候補である場合、ＩＰＭＶＣまたはＭＶＩ候補は、現在ＰＵの各サブＰＵに関する動きパラメータの別個のセット（たとえば、１つまたは複数の動きベクトルのセットおよび１つまたは複数の参照インデックスのセット）を指定することができる。ビデオデコーダ３０が現在ＰＵのための予測ブロックを決定しているとき、ビデオデコーダ３０は、サブＰＵのための予測ブロックを決定するために、現在ＰＵのサブＰＵの動きパラメータを使用することができる。ビデオデコーダ３０は、現在ＣＵのサブＰＵのための予測ブロックをアセンブルすることによって、現在ＰＵのための予測ブロックを決定することができる。
【０２９７】
[0210]ビデオデコーダ３０は、現在ＣＵ中に何らかの残っているＰＵが存在するかどうかを決定することができる（２２６）。現在ＣＵ中に１つまたは複数の残っているＰＵが存在する場合（２２６の「ＹＥＳ」）、ビデオデコーダ３０は、現在ＰＵとして、現在ＣＵの別のＰＵで動作２２０〜２２６を繰り返すことができる。このようにして、ビデオデコーダ３０は、現在ＣＵの各ＰＵに関する動作２２０〜２２６を繰り返すことができる。
【０２９８】
[0211]現在ＣＵの残っているＰＵが何もないとき（２２６の「いいえ」）、ビデオデコーダ３０は、現在ＣＵに関する残差データを決定することができる（２２８）。いくつかの例では、ビデオデコーダ３０は、現在ＣＵのＰＵの動きパラメータを決定するのと平行して、残差データを決定することができる。いくつかの例では、ビデオデコーダ３０は、現在ＣＵに関する残差データを決定することができる。さらに、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックと、現在ＣＵに関する残差データとに基づいて、現在ＣＵのコーディングブロックを再構成することができる（２３０）。
【０２９９】
[0212]図１７は、本開示の一例による、現在ビューコンポーネント中の現在ＰＵに関するマージ候補リストを構築するためのビデオコーダの例示的な動作を示すフローチャートである。図１７の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、空間マージ用候補を決定することができる（２５０）。空間マージ候補は、図３で、ロケーションＡ0、Ａ1、Ｂ0、Ｂ1、およびＢ2をカバーするＰＵの動きパラメータを指定するマージ候補を含み得る。いくつかの例では、ビデオコーダは、ＭＶ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｇ．８．５．２．１．２項に記述されている動作を実行することによって、空間マージ候補を決定することができる。さらに、図１７の例では、ビデオコーダは時間マージ用候補を決定することができる（２５２）。時間マージ用候補は、現在ビューコンポーネントとは異なる時間インスタンスである参照ビューコンポーネントのＰＵの動きパラメータを指定し得る。いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．７項に記述されている動作を実行することによって、時間マージ候補を決定することができる。
【０３００】
[0213]さらに、ビデオコーダは、ＩＰＭＶＣおよびＩＤＭＶＣを決定することができる（２５４）。本開示の例によれば、ビデオコーダは、サブＰＵレベルビュー間動き予測技法を使用して、ＩＰＭＶＣを生成することができる。したがって、ＩＰＭＶＣは、現在ＰＵの各サブＰＵの動きパラメータを指定し得る。いくつかの例では、ビデオコーダは、ＩＰＭＶＣを決定するために、図１９の動作を実行することができる。ＩＤＭＶＣは、現在ＰＵについての視差ベクトルを指定し得る。いくつかの例では、ビデオコーダは、現在レイヤに関するビュー間動き予測フラグ（たとえば、ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ）が、ビュー間動き予測が現在レイヤに関して有効にされることを示すときだけ、ＩＰＭＶＣおよびＩＤＭＶＣを決定することができる。現在レイヤは、現在ビューコンポーネントが属するレイヤであり得る。
【０３０１】
[0214]さらに、図１７の例では、ビデオコーダはＶＳＰマージ候補を決定することができる（２５６）。いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．１２項に記述されている動作を実行することによって、ＶＳＰマージ候補を決定することができる。いくつかの例では、ビデオコーダは、現在レイヤに関するビュー合成予測フラグが、ビュー合成予測が現在レイヤに関して有効にされることを示すときだけ、ＶＳＰマージ候補を決定することができる。
【０３０２】
[0215]さらに、ビデオコーダは、現在ビューコンポーネントが深度ビューコンポーネントであるかどうかを決定することができる（２５８）。現在ビューコンポーネントが深度ビューコンポーネントであると決定すること（２５８の「はい」）に応答して、ビデオコーダはテクスチャマージ候補を決定することができる（２６０）。テクスチャマージ候補は、現在（深度）ビューコンポーネントに対応するテクスチャビューコンポーネント中の１つまたは複数のＰＵの動き情報を指定し得る。本開示の１つまたは複数の例によれば、ビデオコーダは、サブＰＵレベル動き予測技法を使用して、テクスチャマージ候補を生成することができる。したがって、テクスチャマージ候補は、現在ＰＵの各サブＰＵの動きパラメータを指定し得る。いくつかの例では、ビデオコーダは、テクスチャマージ候補を決定するために、図１９の動作を実行することができる。ビデオコーダは、テクスチャマージコンポーネントが利用可能であるかどうか決定することができる（２６２）。テクスチャマージコンポーネントが利用可能であると決定すること（２６２の「はい」）に応答して、ビデオコーダは、テクスチャマージ候補をマージ候補リストに挿入することができる（２６４）。
【０３０３】
[0216]現在ピクチャが深度ピクチャでないと決定すること（２５８の「いいえ」）に応答して、テクスチャマージ候補が利用可能でないと決定すること（２６２の「いいえ」）に応答して、またはテクスチャマージ候補をマージ候補リストに挿入した後、ビデオコーダは、ＩＰＭＶＣが利用可能かどうかを決定することができる（２６６）。ビデオコーダが、現在ＰＵがベースビュー中にあるときなど、ＩＰＭＶＣを決定することが不可能であったとき、ＩＰＭＶＣは利用不可能であり得る。ＩＰＭＶＣが利用可能であると決定すること（２６８の「はい」）に応答して、ビデオコーダは、ＩＰＭＶＣをマージ候補リストに挿入することができる（２６８）。
【０３０４】
[0217]ＩＰＭＶＣが利用可能でないと決定すること（２６６の「いいえ」）に応答して、またはＩＰＭＶＣをマージ候補リストに挿入した後、ビデオコーダは、ロケーションＡ1（すなわち、Ａ1空間マージ候補）に関する空間マージ候補が利用可能かどうかを決定することができる（２７０）。空間マージ候補に関連するロケーション（たとえば、ロケーションＡ0、Ａ1、Ｂ0、Ｂ1、またはＢ2）をカバーするＰＵがイントラ予測を使用してコーディングされるとき、または現在スライスもしくは現在ピクチャの境界外部にあるとき、Ａ1空間マージ候補など、空間マージ候補は利用可能であり得る。Ａ1空間マージ候補が利用可能であると決定すること（２７０の「はい」）に応答して、ビデオコーダは、Ａ1空間マージ候補の動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合するかどうかを決定することができる（２７０）。Ａ1空間マージ候補の動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合しないと決定すること（２７２の「いいえ」）に応答して、ビデオコーダは、Ａ1空間マージ候補をマージ候補リストに挿入することができる（２７４）。
【０３０５】
[0218]上に示したように、ビデオコーダは、サブＰＵレベル動き予測技法を使用して、ＩＰＭＶＣおよび／またはテクスチャマージ候補を生成することができる。したがって、ＩＰＭＶＣおよび／またはテクスチャマージ候補は、複数の動きベクトルおよび複数の参照インデックスを指定し得る。したがって、ビデオコーダは、Ａ1空間マージ候補の動きベクトルがＩＰＭＶＣおよび／またはテクスチャマージ候補の代表的な動きベクトルに整合するかどうか、ならびにＡ1空間マージ候補の参照インデックスがＩＰＭＶＣおよび／またはテクスチャマージ候補の代表的な参照インデックスに整合するかどうかを決定することができる。ＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスは、本明細書において「ＰＵレベルＩＰＭＶＣ」と呼ばれる場合がある。テクスチャマージ候補の代表的な動きベクトルおよび代表的な参照インデックスは、本明細書において「ＰＵレベル動きパラメータ継承（ＭＰＩ）候補」と呼ばれる場合がある。ビデオコーダは、様々な方法で、ＰＵレベルＩＰＭＶＣおよびＰＵレベルＭＰＩ候補を決定し得る。ビデオコーダがＰＵレベルＩＰＭＶＣおよびＰＵレベルＭＰＩ候補をどのように決定し得るかの例は、本開示の他の箇所で説明される。
【０３０６】
[0219]Ａ1空間マージ候補が利用可能でないと決定すること（２７０の「いいえ」）に応答して、Ａ1空間マージ候補の動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合すると決定すること（２７２の「はい」）に応答して、またはＡ1空間マージ候補をマージ候補リストに挿入した後、ビデオコーダは、ロケーションＢ１（すなわち、Ｂ１空間マージ候補）に関する空間マージ候補が利用可能であるかどうかを決定することができる（２７６）。Ｂ1空間マージ候補が利用可能であると決定すること（２７６の「はい」）に応答して、ビデオコーダは、Ｂ1空間マージ候補の動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合するかどうかを決定することができる（２７８）。Ｂ1空間マージ候補の動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合しないと決定すること（２７８の「いいえ」）に応答して、ビデオコーダは、Ｂ1空間マージ候補をマージ候補リストに含めることができる（２８０）。
【０３０７】
[0220]Ｂ1空間的動きベクトルが利用可能でないと決定すること（２７６の「いいえ」）に応答して、Ｂ1空間動きベクトルの動きベクトルおよび参照インデックスがＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスに整合すると決定すること（２７８の「はい」）に応答して、またはＢ1空間マージ候補をマージ候補リストに挿入した後、ビデオコーダは、ロケーションＢ0（すなわち、Ｂ0空間マージ候補）に関する空間マージ候補が利用可能であるかどうかを決定することができる（２８２）。Ｂ0空間マージ候補が利用可能であると決定すること（２８２の「はい」）に応答して、ビデオコーダは、Ｂ0空間マージ候補をマージ候補リストに挿入することができる（２８４）。
【０３０８】
[0221]上で示したように、ビデオコーダは、様々な方法で、ＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスを決定することができる。一例では、ビデオコーダは、現在ＰＵのサブＰＵの中から、中央サブＰＵを決定することができる。この例では、中心サブＰＵは、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近いサブＰＵである。予測ブロックの高さおよび／または幅は偶数のサンプルであり得るため、予測ブロックの「中心」ピクセルは、予測ブロックの真の中心に隣接するピクセルであり得る。さらに、この例では、ビデオコーダは、次いで、現在ＰＵについての視差ベクトルを中心サブＰＵのルーマ予測ブロックの中心の座標に追加することによって、中心サブＰＵのためのビュー間参照ブロックを決定することができる。中心サブＰＵのためのビュー間参照ブロックが動き補償予測を使用してコーディングされる（すなわち、中心サブＰＵのためのビュー間参照ブロックが１つまたは複数の動きベクトルおよび参照インデックスを有する）場合、ビデオコーダは、ＰＵレベルＩＰＭＶＣの動き情報を中心サブＰＵのためのビュー間参照ブロックの動き情報に設定することができる。したがって、中心サブＰＵによって提供されるＰＵレベルＩＰＭＶＣは、このサブＰＵ候補を、空間的隣接候補Ａ1およびＢ1など、他の候補でプルーニングするために使用され得る。たとえば、従来の候補（たとえば、Ａ1空間マージ候補またはＢ1空間マージ候補）が中心サブＰＵによって作成される候補に等しい場合、他の従来の候補はマージ候補リストに追加されない。
【０３０９】
[0222]Ｂ0空間マージ候補が利用可能でないと決定すること（２８２の「いいえ」）に応答して、またはＢ0空間マージ候補をマージ候補リストに挿入した後、ビデオコーダはＩＤＭＶＣが利用可能であるかどうかと、ＩＤＭＶＣの動きベクトルおよび参照インデックスがＡ1空間マージ候補ならびにＢ1空間マージ候補の動きベクトルおよび参照インデックスと異なるかどうかとを決定することができる（２８６）。ＩＤＭＶＣが利用可能であり、ＩＤＭＶＣの動きベクトルおよび参照インデックスがＡ1空間マージ候補およびＢ1空間マージ候補の動きベクトルならびに参照インデックスと異なると決定すること（２８６の「はい」）に応答して、ビデオコーダはＩＤＭＶＣをマージ候補リストに挿入することができる（２８８）。
【０３１０】
[0223]ＩＤＭＶＣが利用可能でないと決定すること、またはＩＤＭＶＣの動きベクトルおよび参照インデックスがＡ1空間マージ候補ならびにＢ1空間マージ候補の動きベクトルおよび参照インデックスと異ならないと決定すること（２８６の「いいえ」）に応答して、またはＩＤＭＶＣをマージ候補リストに挿入した後、ビデオコーダは図１８に示す（図１７で「Ａ」と示される）参照ピクチャリスト構築動作の一部を実行することができる。
【０３１１】
[0224]図１８は、本開示の一例による、図１７の参照ピクチャリスト構築動作の継続を示すフローチャートである。図１８の例では、ビデオコーダはＶＳＰマージ候補が利用可能であるかどうかを決定することができる（３００）。ＶＳＰマージ候補が利用可能であると決定すること（３００の「はい」）に応答して、ビデオコーダは、ＶＳＰマージ候補をマージ候補リストに挿入することができる（３０２）。
【０３１２】
[0225]ＶＳＰマージ候補が利用可能でないと決定すること（３００の「いいえ」）に応答して、またはＶＳＰマージ候補をマージ候補リストに挿入した後、ビデオコーダは、ロケーションＡ0（すなわち、Ａ0空間マージ候補）に関する空間マージ候補が利用可能かどうかを決定することができる（３０４）。Ａ0空間マージ候補が利用可能であると決定すること（３０４の「はい」）に応答して、ビデオコーダは、Ａ0空間マージ候補をマージ候補リストに挿入することができる（３０６）。
【０３１３】
[0226]さらに、Ａ0空間マージ候補が利用可能でないと決定すること（３０６の「いいえ」）に応答して、またはＡ0空間マージ候補をマージ候補リストに挿入した後、ビデオコーダは、ロケーションＢ2（すなわち、Ｂ2空間マージ候補）に関する空間マージ候補が利用可能かどうかを決定することができる（３０８）。Ｂ2空間マージ候補が利用可能であると決定すること（３０８の「はい」）に応答して、ビデオコーダは、Ｂ2空間マージ候補をマージ候補リストに挿入することができる（３１０）。
【０３１４】
[0227]Ｂ2空間マージ候補が利用可能でないと決定すること（３０８の「いいえ」）に応答して、またはＢ2空間マージ候補をマージ候補リストに挿入した後、ビデオコーダは、時間マージ候補が利用可能かどうかを決定することができる（３１２）。時間マージ候補が利用可能であると決定すること（３１２の「はい」）に応答して、ビデオコーダは、時間マージ候補をマージ候補リストに挿入することができる（３１４）。
【０３１５】
[0228]さらに、時間マージ候補が利用可能でないと決定すること（３１２の「いいえ」）に応答して、または時間マージ候補をマージ候補リストに挿入した後、ビデオコーダは、現在スライスがＢスライスであるかどうかを決定することができる（３１６）。現在スライスがＢスライスであると決定すること（３１６の「はい」）に応答して、ビデオコーダは結合双予測マージ候補を導出することができる（３１８）。いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．３項に記述されている動作を実行することによって、結合双予測マージ候補を導出することができる。
【０３１６】
[0229]現在スライスがＢスライスでないと決定すること（３１６の「はい」）に応答して、または結合双予測マージ用候補を導出した後、ビデオコーダはゼロ動きベクトルマージ候補を導出することができる（３２０）。ゼロ動きベクトルマージ候補は、０に等しい水平成分および垂直成分を有する動きベクトルを指定し得る。いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第８．５．２．１．４項に記述されている動作を実行することによって、ゼロ動きベクトル候補を導出することができる。
【０３１７】
[0230]図１９は、本開示の一例による、ＩＰＭＶＣまたはテクスチャマージ候補を決定するためのビデオコーダの動作を示すフローチャートである。図１９の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は現在ＰＵを複数のサブＰＵに分割することができる（３４８）。異なる例では、サブＰＵの各々のブロックサイズは、４×４、８×８、１６×１６、または別のサイズであり得る。
【０３１８】
[0231]さらに、図１９の例では、ビデオコーダはデフォルト動きベクトルおよびデフォルト参照インデックスを設定することができる（３５０）。異なる例では、ビデオコーダは、様々な方法で、デフォルト動きベクトルおよびデフォルト参照インデックスを設定することができる。いくつかの例では、デフォルト動きパラメータ（すなわち、デフォルト動きベクトルおよびデフォルト参照インデックス）は、ＰＵレベル動きベクトル候補に等しい。さらに、いくつかの例では、ビデオコーダがＩＰＭＶＣを決定しているか、またはテクスチャマージ候補を決定しているかに応じて、ビデオコーダはデフォルト動き情報を異なって決定することができる。
【０３１９】
[0232]ビデオコーダがＩＰＭＶＣを決定している、いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ Ｍｏｄｅｌ  ４で定義されるように、現在ＰＵの対応する領域の中心位置からＰＵレベルＩＰＭＶＣを導出することができる。さらに、この例では、ビデオコーダは、デフォルト動きベクトルおよび参照インデックスをＰＵレベルＩＰＭＶＣに等しいように設定することができる。たとえば、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスをＰＵレベルＩＰＭＶＣに設定することができる。この例では、ビデオコーダは、現在ＰＵに関する対応する領域の中心位置からＰＵレベルＩＰＭＶＣを導出し得る。
【０３２０】
[0233]ビデオコーダがＩＰＭＶＣを決定している別の例では、ビデオコーダは、デフォルト動きパラメータを、参照ビュー中の参照ピクチャの座標（ｘＲｅｆ，ｙＲｅｆ）におけるピクセルをカバーするビュー間参照ブロックによって含まれた動きパラメータに設定することができる。ビデオコーダは、座標（ｘＲｅｆ，ｙＲｅｆ）を次のように決定することができる。
【数５９】
0006434012.tif 000060
【数６０】
0006434012.tif 000061
【０３２１】
上の式で、（ｘＰ，ｙＰ）は、現在ＰＵの左上サンプルの座標を示し、ｍｖＤｉｓｐは視差ベクトルであり、ｎＰＳＷｘｎＰＳＨは現在ＰＵのサイズであり、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓＬおよびＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓＬは（現在ビューと同じ）参照ビュー中のピクチャの解像度を定義する。上の式では、二重鍵括弧内のイタリック体のテキストは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．１０項の式Ｈ−１２４およびＨ−１２５から削除されたテキストを示す。
【０３２２】
[0234]上で論じたように、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．１０項は、時間的ビュー間動きベクトル候補に関する導出プロセスを記述する。さらに、上で論じたように、式Ｈ−１２４およびＨ−１２５は、参照ピクチャ中の参照ブロックのルーマロケーションを決定するために、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の第Ｈ．８．５．２．１．１０項で使用される。３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４の式Ｈ−１２４およびＨ−１２５と対照的に、この例の式はｎＰＳＷおよびｎＰＳＨから１を差し引かない。結果として、ｘＲｅｆおよびｙＲｅｆは、現在ＰＵの予測ブロックの真の中心の右側真下のピクセルの座標を示す。サンプル値の現在ＰＵの予測ブロックの幅および高さは偶数であり得るため、現在ＰＵの予測ブロックの真の中心においてサンプル値が存在しない場合がある。ｘＲｅｆおよびｙＲｅｆが現在ＰＵの予測ブロックの真の中心の左側真上のピクセルの座標を示すときに対して、ＲｅｆおよびｙＲｅｆが現在ＰＵの予測ブロックの真の中心の右側真下のピクセルの座標を示すとき、コーディング利得が生じ得る。他の例では、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスを導出するために異なるピクセル（ｘＲｅｆ，ｙＲｅｆ）をカバーする他のブロックを使用することができる。
【０３２３】
[0235]ビデオコーダがＩＰＭＶＣを決定しているとき、ビデオコーダがデフォルト動きパラメータをどのように設定し得るかの別の例では、現在ＰＵのサブＰＵの動きパラメータを設定するのに先立って、ビデオコーダは、現在ＰＵのすべてのサブＰＵの中から、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近いサブＰＵを選定することができる。ビデオコーダは、次いで、選定されたサブＰＵに関して、参照ビューコンポーネント中の参照ブロックを決定することができる。言い換えれば、ビデオコーダは、選定されたサブＰＵのためのビュー間参照ブロックを決定することができる。選定されたサブＰＵのビュー間参照ブロックが動き補償予測を使用してコーディングされるとき、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスを導出するために、選定されたサブＰＵのためのビュー間参照ブロックを使用することができる。言い換えれば、ビデオコーダは、デフォルト動きパラメータを、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近い参照ブロックのサブＰＵの動きパラメータに設定することができる。
【０３２４】
[0236]このようにして、ビデオコーダは、現在ＰＵの予測ブロックと同じサイズを有する、参照ピクチャ中の参照ブロックを決定することができる。さらに、ビデオコーダは、参照ブロックのサブＰＵの中から、参照ブロックの中心ピクセルに最も近いサブＰＵを決定することができる。ビデオコーダは、参照ブロックの決定されたサブＰＵの動きパラメータからデフォルト動きパラメータを導出することができる。
【０３２５】
[0237]ビデオコーダは、様々な方法で、参照ブロックの中心ピクセルに最も近いサブＰＵを決定することができる。たとえば、サブＰＵサイズが２U×２Uであると仮定すると、ビデオコーダは、現在ＰＵのルーマ予測ブロックの左上サンプルに対して次の座標を有するサブＰＵを選定することができる。（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）。それ以外に記載された、参照ブロックの中心ピクセルに最も近いサブＰＵは、参照ブロックの左上サンプルに対して次の座標を有するピクセルを含む。（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）。代替的に、ビデオコーダは、現在ＰＵのルーマ予測ブロックの左上サンプルに対する次の座標相対的座標を有するサブＰＵを選定することができる（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）。それ以外に記載された、参照ブロックの中心ピクセルに最も近いサブＰＵは、参照ブロックの左上サンプルに対して次の座標を有するピクセルを含む。（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）。これらの式では、ｎＰＳＷおよびｎＰＳＨは、それぞれ、現在ＰＵのルーマ予測ブロックの幅および高さである。このようにして、一例では、ビデオコーダは、現在ＰＵの複数のサブＰＵの中から、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近いサブＰＵを決定することができる。この例では、ビデオコーダは、決定されたサブＰＵのためのビュー間参照ブロックからデフォルト動きパラメータを導出することができる。
【０３２６】
[0238]ビデオコーダがＩＰＭＶＣを決定している他の例では、デフォルト動きベクトルはゼロ動きベクトルである。さらに、いくつかの例では、デフォルト参照インデックスは、現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャ（すなわち、現在ピクチャとは異なる時間インスタンス中の参照ピクチャ）に等しいか、またはデフォルト参照インデックスは０に等しくてもよい。言い換えれば、デフォルト動きパラメータは、デフォルト動きベクトルとデフォルト参照インデックスを含み得る。ビデオコーダは、デフォルト動きベクトルをゼロ動きベクトルに設定することができ、デフォルト参照インデックスを、０、または現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに設定することができる。
【０３２７】
[0239]たとえば、現在スライスがＰスライスである場合、デフォルト参照インデックスは、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の第１の利用可能な時間的参照ピクチャ（すなわち、最小参照インデックスを有する、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の時間的参照ピクチャ）を示し得る。さらに、現在スライスがＢスライスであり、ＲｅｆＰｉｃＬｉｓｔ０からのインター予測は有効にされるが、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１からのインター予測は有効にされない場合、デフォルト参照インデックスは、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の第１の利用可能な時間的参照ピクチャを示し得る。現在スライスがＢスライスであり、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１からのインター予測は有効にされるが、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０からのインター予測は有効にされない場合、デフォルト参照インデックスは、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１中の第１の利用可能な時間的参照ピクチャ（すなわち、最小参照インデックスを有する、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１中の時間的参照ピクチャ）を示し得る。現在スライスがＢスライスであり、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０および現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１からのインター予測が有効にされる場合、デフォルトＲｅｆＰｉｃＬｉｓｔ０参照インデックスは、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の第１の利用可能な時間的参照ピクチャを示し得、デフォルトＲｅｆＰｉｃＬｉｓｔ１参照インデックスは、現在ピクチャのＲｅｆＰｉｃＬｉｓｔ１中の第１の利用可能な時間的参照ピクチャを示し得る。
【０３２８】
[0240]さらに、ビデオコーダがＩＰＭＶＣを決定しているとき、デフォルト動きパラメータを決定するための、上で与えられたいくつかの例では、ビデオコーダは、デフォルト動きパラメータを、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近いサブＰＵの動きパラメータに設定することができる。しかしながら、これらの例および他の例では、デフォルト動きパラメータは利用不可能な状態に留まる場合がある。たとえば、現在ＰＵのルーマ予測ブロックの中心ピクセルに最も近いサブＰＵに対応するビュー間参照ブロックがイントラ予測される場合、デフォルト動きパラメータは利用不可能な状態に留まる場合がある。したがって、いくつかの例では、デフォルト動きパラメータが利用不可能であり、第１のサブＰＵのためのビュー間参照ブロックが動き補償予測を使用してコーディングされる（すなわち、第１のサブＰＵのためのビュー間参照ブロックが利用可能な動き情報を有する）とき、ビデオコーダは、デフォルト動きパラメータを第１のサブＰＵの動きパラメータに設定することができる。この例では、第１のサブＰＵは、現在ＰＵのサブＰＵのラスタ走査順序で現在ＰＵの第１のサブＰＵであり得る。したがって、デフォルト動きパラメータを決定するとき、ビデオコーダは、複数のサブＰＵのラスタ走査順序で第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、デフォルト動きパラメータを複数のサブＰＵのラスタ走査順序で第１のサブＰＵの利用可能な動きパラメータに設定することができる。
【０３２９】
[0241]さもなければ、デフォルト動き情報が利用不可能であるとき（たとえば、第１のサブＰＵのためのビュー間参照ブロックの動きパラメータが利用不可能であるとき）、現在サブＰＵ行の第１のサブＰＵが利用可能な動きパラメータを有する場合、ビデオコーダは、デフォルト動き情報を、現在サブＰＵ行の第１のサブＰＵの動きパラメータに設定することができる。デフォルト動きパラメータが依然として利用不可能であるとき（たとえば、現在サブＰＵ行の第１のサブＰＵのためのビュー間参照ブロックが利用不可能であるとき）、ビデオコーダは、デフォルト動きベクトルをゼロ動きベクトルに設定することができ、デフォルト参照インデックスを現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに等しいように設定することができる。このようにして、ビデオコーダがデフォルト動きパラメータを決定しているとき、ビデオコーダは、それぞれのサブＰＵを含むサブＰＵの行の第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、デフォルト動きパラメータを、それぞれのサブＰＵを含むサブＰＵの行の第１のサブＰＵの利用可能な動きパラメータに設定することができる。
【０３３０】
[0242]さらに、図１７の例に関して上で説明したように、ビデオコーダは、サブＰＵレベル動き予測技法を使用して、テクスチャマージ候補を決定することができる。そのような例では、現在ＰＵは、本明細書では「現在深度ＰＵ」と呼ばれる場合がある。ビデオコーダは、テクスチャマージ候補を決定するために、図１９の動作を実行することができる。したがって、ビデオコーダがテクスチャマージ候補を決定しているとき、ビデオコーダは、現在深度ＰＵをいくつかのサブＰＵに分割することができ、各サブＰＵは、動き補償に関するコロケートテクスチャブロックの動き情報を使用する。さらに、ビデオコーダがテクスチャマージ候補を決定しているとき、サブＰＵの対応するテクスチャブロックがイントラコーディングされるか、または対応するテクスチャブロックの参照ピクチャと同じアクセスユニット中のピクチャが現在深度ＰＵの参照ピクチャリスト中に含まれない場合、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスをサブＰＵに割り当てることができる。したがって、概して、コロケートテクスチャブロックがイントラコーディングされず、コロケートテクスチャブロックによって使用される参照ピクチャが現在深度ピクチャの参照ピクチャリスト中にあるとき、ビデオコーダは、コロケートテクスチャブロックが利用可能な動き情報を有すると決定することができる。反対に、コロケートテクスチャブロックがイントラコーディングされるか、またはコロケートテクスチャブロックが現在深度ピクチャの参照ピクチャリスト中にない参照ピクチャを使用するとき、コロケートテクスチャブロックの動きパラメータは利用不可能であり得る。
【０３３１】
[0243]上で示したように、ビデオコーダがＩＰＭＶＣを決定しているか、またはテクスチャマージ候補を決定しているかに応じて、ビデオコーダはデフォルト動き情報を異なって決定することができる。たとえば、ビデオコーダがテクスチャマージ候補を決定しているとき、ビデオコーダは、次の例または他の例のうちの１つに従って、デフォルト動きベクトルおよびデフォルト参照インデックスを決定することができる。一例では、コロケートテクスチャブロックは、現在深度ＰＵでコロケートされ得、現在深度ＰＵと同じサイズを有し得る。この例では、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスを、コロケートテクスチャブロックの中心ピクセルをカバーするブロックの動き情報に設定する。
【０３３２】
[0244]したがって、いくつかの例では、ワー現在ピクチャは深度ビューコンポーネントであり、参照ピクチャは、現在ピクチャと同じビューおよびアクセスユニット中にあるテクスチャビューコンポーネントである、ビデオコーダは、デフォルト動きパラメータを、現在ＰＵとコロケートされた、現在ＰＵと同じサイズを有する参照ピクチャ中にある参照ブロックのピクセルをカバーするブロックに関連付けられた動きパラメータに設定することができる。そのような例では、ピクセルは、参照ブロックの中心ピクセルであり得るか、または参照ブロックの別のピクセルであり得る。
【０３３３】
[0245]ビデオコーダがテクスチャマージ候補を決定している別の例では、コロケートテクスチャブロックは現在深度ＰＵと同じサイズを有し得る。この例では、ビデオコーダは、デフォルト動きベクトルおよびデフォルト参照インデックスをコロケートテクスチャブロック内の任意の所与のピクセルをカバーするブロック（たとえば、ＰＵ）の動き情報に設定することができる。
【０３３４】
[0246]ビデオコーダがテクスチャマージ候補を決定している別の例では、ビデオコーダは、まず、現在深度ＰＵの中心サブＰＵを選定することができる。現在深度ＰＵのすべてのサブＰＵの中で、中心サブＰＵは、現在深度ＰＵの予測ブロックの中心ピクセルに最も近く位置特定され得る（または中心ピクセルを含み得る）。ビデオコーダは、次いで、デフォルト動きベクトルおよびデフォルト参照インデックスを導出するために、中心サブＰＵとコロケートされたテクスチャブロックを使用することができる。サブＰＵサイズが２U×２Uであると仮定すると、ビデオコーダは、中心サブＰＵが、現在深度ＰＵの予測ブロックの左上サンプル（したがって、コロケートテクスチャブロックの左上サンプル）に対して次の座標を有するサブＰＵであると決定することができる。（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）。代替的に、ビデオコーダは、中心サブＰＵの相対的座標は以下であると決定することができる。（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）。これらの式では、ｎＰＳＷおよびｎＰＳＨは、それぞれ、現在深度ＰＵの予測ブロックの幅および高さである。
【０３３５】
[0247]このようにして、一例では、ビデオコーダは、現在ＰＵの複数のサブＰＵの中から、現在ＰＵの予測ブロックの中心に最も近いサブＰＵを決定することができる。この例では、ビデオコーダは、決定されたサブＰＵのためのコロケートテクスチャブロックからデフォルト動きパラメータを導出することができる。
【０３３６】
[0248]ビデオコーダがテクスチャマージ候補を決定しており、（たとえば、中心サブＰＵのためのコロケートテクスチャブロックの動きパラメータが利用不可能であるとき）デフォルト動き情報が利用不可能である、いくつかの例では、ビデオコーダは、現在深度ＰＵの第１のサブＰＵのためのコロケートテクスチャブロックが利用可能な動き情報を有するかどうかを決定することができる。現在深度ＰＵの第１のサブＰＵは、現在深度ＰＵのサブＰＵのラスタ走査順序で現在深度ＰＵの第１のサブＰＵであり得る。現在深度ＰＵの第１のサブＰＵのためのコロケートテクスチャブロックの動きパラメータが利用可能である場合、ビデオコーダは、デフォルト動きパラメータを、現在深度ＰＵの第１のサブＰＵの動きパラメータに設定することができる。
【０３３７】
[0249]さらに、ビデオコーダがテクスチャマージ候補を決定している、いくつかの例では、デフォルト動き情報が利用不可能であるとき（たとえば、第１のサブＰＵのためのコロケートテクスチャブロックの動きパラメータが利用不可能であるとき）、現在サブＰＵ行の第１のサブＰＵが利用可能な動き情報を有する場合、ビデオコーダは、デフォルト動き情報を、現在サブＰＵ行の第１のサブＰＵの動き情報に設定する。さらに、デフォルト動き情報が利用不可能であるとき（たとえば、現在サブＰＵ行の第１のサブＰＵの動き情報が利用不可能であるとき）、デフォルト動きベクトルはゼロ動きベクトルであり、デフォルト参照インデックスは現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャまたは０に等しい。
【０３３８】
[0250]ビデオコーダがテクスチャマージ候補を決定している、いくつかの例では、デフォルト動きベクトルはゼロ動きベクトルであり、デフォルト参照インデックスは、現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャまたは０に等しい。
【０３３９】
[0251]ビデオコーダがＩＰＭＶＣを決定しているか、またはテクスチャマージ候補を決定しているかにかかわらず、ビデオコーダは、現在ＰＵ全体に関するデフォルト動き情報を設定することができる。したがって、ビデオコーダは、空間的隣接ブロック、（このＰＵを含むピクチャがＴＭＶＰの間にコロケートピクチャとして使用されるとき）時間的隣接ブロックを予測するため、またはデブロッキングのためのいずれかで、現在ＰＵ中により多くの動きベクトルを記憶する必要がない。
【０３４０】
[0252]さらに、ビデオコーダは、ＰＵレベル動きベクトル候補を決定することができる（３５２）。たとえば、ビデオコーダがＩＰＭＶＣを決定しているか、またはテクスチャマージ候補を決定しているかに応じて、ビデオコーダはＰＵレベルＩＰＭＶＣまたはＰＵレベル動きパラメータ継承（ＭＰＩ）候補（すなわち、ＰＵレベルテクスチャマージ候補）を決定することができる。ビデオコーダは、ＰＵレベル動きベクトル候補に基づいて、候補リスト中の１つまたは複数の空間マージ候補を含めるかどうかを決定することができる。いくつかの例では、ＰＵレベル動きベクトル候補は、デフォルト動きパラメータと同じ動きパラメータを指定する。
【０３４１】
[0253]ビデオコーダがＩＰＭＶＣを決定している、いくつかの例では、ビデオコーダは、３Ｄ−ＨＥＶＣ  Ｔｅｓｔ Ｍｏｄｅｌ  ４で定義されるように、現在ＰＵの対応する領域の中心位置からＰＵレベルＩＰＭＶＣを導出することができる。図１７の例で説明したように、ビデオコーダは、マージ候補リスト中にＡ1空間マージ候補およびＢ1空間マージ候補を含めるかどうかを決定するために、ＩＰＭＶＣ（すなわち、ＰＵレベルＩＰＭＶＣ）の代表的な動きベクトルおよび代表的な参照インデックスを使用することができる。
【０３４２】
[0254]ビデオコーダがＩＰＭＶＣを決定している別の例では、ビデオコーダは、現在ＰＵの視差ベクトルに基づいて、ビュー間参照ピクチャ中の参照ブロックを決定することができる。ビデオコーダは、次いで、参照ブロックの中心ピクセルをカバーするサブＰＵ（すなわち、参照ブロックの中心ピクセルに最も近いサブＰＵ）を決定することができる。この例では、ビデオコーダは、ＰＵレベルＩＰＭＶＣが参照ブロックの決定されたサブＰＵの動きパラメータを指定すると決定することができる。本開示の他の箇所で示すように、ビデオコーダは、様々な方法で、参照ブロックの中心ピクセルに最も近いサブＰＵを決定することができる。たとえば、サブＰＵサイズが２U×２Uであると仮定すると、参照ブロックの中心ピクセルに最も近いサブＰＵは、参照ブロックの左上サンプルに対して次の座標を有するピクセルを含む。（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）。代替的に、参照ブロックの中心ピクセルに最も近いサブＰＵは、参照ブロックの左上サンプルに対して次の座標を有するピクセルを含む。（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）。これらの式では、ｎＰＳＷおよびｎＰＳＨは、それぞれ、現在ＰＵのルーマ予測ブロックの幅および高さである。この例では、ビデオコーダは、ＰＵレベルＩＰＭＶＣとして決定されたサブＰＵの動きパラメータを使用することができる。ＰＵレベルＩＰＭＶＣは、ＩＰＭＶＣの代表的な動きベクトルおよび代表的な参照インデックスを指定し得る。このようにして、ビデオコーダは、ＰＵレベルＩＰＭＶＣを決定するために、参照ブロックの中心ピクセルに最も近いサブＰＵの動きパラメータを使用することができる。言い換えれば、ビデオコーダは、現在ＰＵの対応する領域の中心位置からＰＵレベルＩＰＭＶＣを導出して、そのＰＵレベルＩＰＭＶＣに基づいて、候補リスト中に空間マージ候補を含めるかどうかを決定することができる。サブＰＵから使用される動きパラメータは、ビデオコーダがＩＰＭＶＣを作成するために使用した動きパラメータと同じであり得る。
【０３４３】
[0255]ビデオコーダがテクスチャマージ候補を決定している、いくつかの例では、デフォルト動きパラメータに関して中心サブＰＵから使用される動き情報は、ＰＵレベル動きパラメータ継承（ＭＰＩ）候補を作成するために使用される動き情報と同じであり得る。ビデオコーダは、ＰＵレベルＭＰＩ候補に基づいて、候補リスト中に空間マージ用候補を含めるかどうかを決定することができる。たとえば、Ａ1空間マージ用候補およびＰＵレベルＭＰＩ候補が同じ動きベクトルおよび同じ参照インデックスを有する場合、ビデオコーダは、Ａ1空間マージ用候補をマージ候補リストに挿入しない。同様に、Ｂ1空間マージ用候補およびＡ1空間マージ用候補、またはＰＵレベルＭＰＩ候補が同じ動きベクトルならびに同じ参照インデックスを有する場合、ビデオコーダは、Ｂ1をマージ候補リストに挿入しない。
【０３４４】
[0256]図１９の例では、ビデオコーダは、現在ＰＵの現在サブＰＵに関して、参照ピクチャ中の参照サンプルロケーションを決定することができる（３５４）。参照ピクチャは、現在ＰＵを含むピクチャ（すなわち、現在ピクチャ）とは異なるビュー中にあり得る。いくつかの例では、ビデオコーダは、現在ＰＵについての視差ベクトルを現在サブＰＵの中心ピクセルの座標に追加することによって、参照ロケーションを決定することができる。現在ＰＵが深度ＰＵであるときなど、他の例では、参照サンプルロケーションは、現在深度ＰＵの予測ブロックのサンプルとコロケートされ得る。
【０３４５】
[0257]さらに、ビデオコーダは、現在サブＰＵのための参照ベクトルを決定することができる（３５６）。参照ブロックは、参照ピクチャのＰＵであってよく、決定された参照サンプルロケーションをカバーし得る。次に、ビデオコーダは、参照ブロックが動き補償予測を使用してコーディングされるかどうかを決定することができる（３５８）。たとえば、参照ブロックがイントラ予測を使用してコーディングされる場合、ビデオコーダは、参照ブロックが動き補償予測を使用してコーディングされないと決定することができる。参照ブロックが動き補償予測を使用してコーディングされる場合、参照ブロックは１つまたは複数の動きベクトルを有する。
【０３４６】
[0258]参照ブロックが動き補償予測を使用してコーディングされると決定すること（３５８の「はい」）に応答して、ビデオコーダは、参照ブロックの動きパラメータに基づいて、現在サブＰＵの動きパラメータを設定することができる（３６０）。たとえば、ビデオコーダは、現在サブＰＵのＲｅｆＰｉｃＬｉｓｔ０動きベクトルを参照ブロックのＲｅｆＰｉｃＬｉｓｔ０動きベクトルに設定することができ、現在サブＰＵのＲｅｆＰｉｃＬｉｓｔ０参照インデックスを参照ブロックのＲｅｆＰｉｃＬｉｓｔ０参照インデックスに設定することができ、現在サブＰＵのＲｅｆＰｉｃＬｉｓｔ１動きベクトルを参照ブロックのＲｅｆＰｉｃＬｉｓｔ１動きベクトルに設定することができ、現在サブＰＵのＲｅｆＰｉｃＬｉｓｔ１参照インデックスを参照ブロックのＲｅｆＰｉｃＬｉｓｔ１参照インデックスに設定することができる。
【０３４７】
[0259]他方で、参照ブロックが動き補償予測を使用してコーディングされないと決定すること（３５８の「いいえ」）に応答して、ビデオコーダは、現在サブＰＵの動きパラメータをデフォルト動きパラメータに設定することができる（３６２）。このようにして、図１９の例では、現在サブＰＵのための参照ブロックが動き補償予測を使用してコーディングされないとき、ビデオコーダは、現在サブＰＵの動きパラメータを、動き補償予測を使用してコーディングされた参照ブロックを有する、最も近いサブＰＵの動きパラメータに設定しない。むしろ、ビデオコーダは、現在サブＰＵの動きパラメータをデフォルト動きパラメータに直接設定することができる。これは、コーディングプロセスのプロセスを簡素化および加速し得る。
【０３４８】
[0260]現在サブＰＵの動き情報を設定した後、ビデオコーダは、現在ＰＵが何らかの追加のサブＰＵを有するかどうかを決定することができる（３６４）。現在ＰＵが１つまたは複数の追加のサブＰＵを有すると決定すること（３６４の「はい」）に応答して、ビデオコーダは、現在サブＰＵとして、現在ＰＵのサブＰＵのうちの別の１つを用いて動作３５４〜３６４を実行することができる。このようにして、ビデオコーダは、現在ＰＵのサブＰＵの各々の動きパラメータを設定することができる。他方で、現在ＰＵの何の追加のサブＰＵも存在しないと決定すること（３６６の「いいえ」）に応答して、ビデオコーダは、現在ＰＵに関するマージ候補リスト中に候補（たとえば、ＩＰＭＶＣ）を含めることができる。候補は、現在ＰＵのサブＰＵの各々の動きパラメータを指定し得る。
【０３４９】
[0261]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアに実装される場合、機能は、１つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行することができる。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または、（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示に記載された技法を実装するための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータ、または１つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０３５０】
[0262]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０３５１】
[0263]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実施に適した任意の他の構造のいずれかを指す場合がある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／もしくはソフトウェアモジュール内に提供され得、または複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中で十分に実装され得る。
【０３５２】
[0264]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０３５３】
[0265]様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内である。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
マルチビュービデオデータを復号するための方法であって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、
ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは設定されない、ここにおいて、前記サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することとを備える、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく、
前記候補リスト中の選択された候補を示すシンタックス要素をビットストリームから取得することと、
前記現在ＰＵのための予測ブロックを再構成するために、前記選択された候補の動きパラメータを使用することとを備える、方法。
［Ｃ２］
前記参照ピクチャが前記現在ピクチャとは異なるビュー中にあり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記現在ＰＵの視差ベクトルに基づいて前記参照ピクチャ中の参照サンプルロケーションを決定することを備え、ここにおいて、前記それぞれのサブＰＵのための前記参照ブロックは前記参照サンプルロケーションをカバーする、Ｃ１に記載の方法。
［Ｃ３］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記それぞれのサブＰＵのための前記参照ブロックが前記それぞれのサブＰＵとコロケートされた、前記参照ピクチャのＰＵであると決定することを備える
Ｃ１に記載の方法。
［Ｃ４］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記デフォルト動きパラメータを決定することが、前記デフォルト動きパラメータを、前記現在ＰＵとコロケートされた、前記現在ＰＵと同じサイズを有する、前記参照ピクチャ中にある参照ブロックのピクセルをカバーするブロックに関連付けられた動きパラメータに設定することを備える
Ｃ１に記載の方法。
［Ｃ５］
前記ピクセルが前記参照ブロックの中心ピクセルである、Ｃ４に記載の方法。
［Ｃ６］
ＰＵレベル動きベクトル候補に基づいて、空間マージ候補を前記候補リスト中に含めるかどうかを決定することをさらに備え、ここにおいて、前記ＰＵレベル動きベクトル候補は、前記デフォルト動きパラメータと同じ動きパラメータを指定する、Ｃ１に記載の方法。
［Ｃ７］
前記デフォルト動きパラメータがデフォルト動きベクトルとデフォルト参照インデックスとを含み、
前記デフォルト動きパラメータを決定することが、
デフォルト動きベクトルをゼロ動きベクトルに設定することと、
前記デフォルト参照インデックスを、０、または現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに設定することとを備える、Ｃ１に記載の方法。
［Ｃ８］
前記デフォルト動きパラメータを決定することが、前記複数のサブＰＵのラスタ走査順序で前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを、前記複数のサブＰＵの前記ラスタ走査順序で前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、Ｃ１に記載の方法。
［Ｃ９］
前記デフォルト動きパラメータを決定することが、前記それぞれのサブＰＵを含むサブＰＵの行の前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを、前記それぞれのサブＰＵを含むサブＰＵの前記行の前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、Ｃ１に記載の方法。
［Ｃ１０］
前記デフォルト動きパラメータが前記複数のサブＰＵ中の各サブＰＵに関して同じである、Ｃ１に記載の方法。
［Ｃ１１］
前記前記デフォルト動きパラメータを決定することが、
前記現在ＰＵの予測ブロックと同じサイズを有する、前記参照ピクチャ中の参照ブロックを決定することと、
前記参照ブロックのサブＰＵの中から、前記参照ブロックの中心ピクセルに最も近いサブＰＵを決定することと、
前記参照ブロックの前記決定されたサブＰＵの動きパラメータから前記デフォルト動きパラメータを導出することとを備える、Ｃ１に記載の方法。
［Ｃ１２］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ１１に記載の方法。
［Ｃ１３］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ１１に記載の方法。
［Ｃ１４］
ビデオデータを符号化する方法であって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、
ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序内の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは設定されない、ここにおいて、前記サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することとを備える、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく、
前記候補リスト中の選択された候補を示すシンタックス要素をビットストリーム内でシグナリングすることとを備える、方法。
［Ｃ１５］
前記参照ピクチャが前記現在ピクチャとは異なるビュー中にあり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記現在ＰＵの視差ベクトルに基づいて前記参照ピクチャ中の参照サンプルロケーションを決定することを備え、ここにおいて、前記それぞれのサブＰＵのための前記参照ブロックは前記参照サンプルロケーションをカバーするＣ１４に記載の方法。
［Ｃ１６］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記それぞれのサブＰＵのための前記参照ブロックを決定することが、前記それぞれのサブＰＵのための前記参照ブロックが前記それぞれのサブＰＵとコロケートされた、前記参照ピクチャのＰＵであると決定することを備える
Ｃ１４に記載の方法。
［Ｃ１７］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記デフォルト動きパラメータを決定することが、前記デフォルト動きパラメータを、前記現在ＰＵとコロケートされた、前記現在ＰＵと同じサイズを有する、前記参照ピクチャ中にある参照ブロックのピクセルをカバーするブロックに関連付けられた動きパラメータに設定することを備える
Ｃ１４に記載の方法。
［Ｃ１８］
前記ピクセルが前記参照ブロックの中心ピクセルである、Ｃ１７に記載の方法。
［Ｃ１９］
ＰＵレベル動きベクトル候補に基づいて、空間マージ候補を前記候補リスト中に含めるかどうかを決定することをさらに備え、ここにおいて、前記ＰＵレベル動きベクトル候補は、前記デフォルト動きパラメータと同じ動きパラメータを指定する、Ｃ１４に記載の方法。
［Ｃ２０］
前記デフォルト動きパラメータがデフォルト動きベクトルとデフォルト参照インデックスとを含み、
前記デフォルト動きパラメータを決定することが、
デフォルト動きベクトルをゼロ動きベクトルに設定することと、
前記デフォルト参照インデックスを、０、または現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに設定することと
を備える、Ｃ１４に記載の方法。
［Ｃ２１］
前記デフォルト動きパラメータを決定することが、前記複数のサブＰＵのラスタ走査順序で前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを前記複数のサブＰＵの前記ラスタ走査順序で前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、Ｃ１４に記載の方法。
［Ｃ２２］
前記デフォルト動きパラメータを決定することが、前記それぞれのサブＰＵを含むサブＰＵの行の前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記デフォルト動きパラメータを、前記それぞれのサブＰＵを含むサブＰＵの前記行の前記第１のサブＰＵの前記利用可能な動きパラメータに設定することを備える、Ｃ１４に記載の方法。
［Ｃ２３］
前記デフォルト動きパラメータが前記複数のサブＰＵ中の各サブＰＵに関して同じである、Ｃ１４に記載の方法。
［Ｃ２４］
前記デフォルト動きパラメータを決定することが、
前記現在ＰＵの予測ブロックと同じサイズを有する、前記参照ピクチャ中の参照ブロックを決定することと、
前記参照ブロックのサブＰＵの中から、前記参照ブロックの中心ピクセルに最も近いサブＰＵを決定することと、
前記参照ブロックの前記決定されたサブＰＵの動きパラメータから前記デフォルト動きパラメータを導出することとを備える、Ｃ１４に記載の方法。
［Ｃ２５］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ２４に記載の方法。
［Ｃ２６］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ２４に記載の方法。
［Ｃ２７］
ビデオデータをコーディングするためのデバイスであって、
復号ピクチャを記憶するためのメモリと、
１つまたは複数のプロセッサであって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、
ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは設定されない、ここにおいて、前記サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することとを備える、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づく
を行うように構成された、１つまたは複数のプロセッサとを備える、デバイス。
［Ｃ２８］
前記参照ピクチャが前記現在ピクチャとは異なるビュー中にあり、
前記１つまたは複数のプロセッサが、前記現在ＰＵの視差ベクトルに基づいて前記参照ピクチャ中の参照サンプルロケーションを決定するように構成され、ここにおいて、前記それぞれのサブＰＵのための前記参照ブロックは前記参照サンプルロケーションをカバーするＣ２７に記載のデバイス。
［Ｃ２９］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記１つまたは複数のプロセッサが、前記それぞれのサブＰＵのための前記参照ブロックが前記それぞれのサブＰＵとコロケートされた、前記参照ピクチャのＰＵであると決定するように構成される
Ｃ２７に記載のデバイス。
［Ｃ３０］
前記現在ピクチャが深度ビューコンポーネントであり、前記参照ピクチャが、前記現在ピクチャと同じビューおよびアクセスユニット中のテクスチャビューコンポーネントであり、
前記１つまたは複数のプロセッサが、前記デフォルト動きパラメータを、前記現在ＰＵとコロケートされた、前記現在ＰＵと同じサイズを有する、前記参照ピクチャ中にある参照ブロックのピクセルをカバーするブロックに関連付けられた動きパラメータに設定するように構成される
Ｃ２９に記載のデバイス。
［Ｃ３１］
前記ピクセルが前記参照ブロックの中心ピクセルである、Ｃ３０に記載のデバイス。
［Ｃ３２］
前記１つまたは複数のプロセッサが、ＰＵレベル動きベクトル候補に基づいて、空間マージ候補を前記候補リスト中に含めるかどうかを決定するように構成され、ここにおいて、前記ＰＵレベル動きベクトル候補は、前記デフォルト動きパラメータと同じ動きパラメータを指定する、Ｃ２７に記載のデバイス。
［Ｃ３３］
前記デフォルト動きパラメータがデフォルト動きベクトルとデフォルト参照インデックスとを含み、
前記１つまたは複数のプロセッサが、少なくとも部分的に、
デフォルト動きベクトルをゼロ動きベクトルに設定することと、
前記デフォルト参照インデックスを、０、または現在参照ピクチャリスト中の第１の利用可能な時間的参照ピクチャに設定することとによって前記デフォルト動きパラメータを決定するように構成される
Ｃ２７に記載のデバイス。
［Ｃ３４］
前記１つまたは複数のプロセッサが、前記複数のサブＰＵのラスタ走査順序で前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記１つまたは複数のプロセッサが、前記デフォルト動きパラメータを、前記複数のサブＰＵの前記ラスタ走査順序で前記第１のサブＰＵの前記利用可能な動きパラメータに設定するように構成される、Ｃ２７に記載のデバイス。
［Ｃ３５］
前記１つまたは複数のプロセッサが、前記それぞれのサブＰＵを含むサブＰＵの行の前記第１のサブＰＵが利用可能な動きパラメータを有すると決定することに応答して、前記１つまたは複数のプロセッサが、前記デフォルト動きパラメータを、前記それぞれのサブＰＵを含むサブＰＵの前記行の前記第１のサブＰＵの前記利用可能な動きパラメータに設定するように構成される、Ｃ２７に記載のデバイス。
［Ｃ３６］
前記デフォルト動きパラメータが前記複数のサブＰＵ中の各サブＰＵに関して同じである、Ｃ２７に記載のデバイス。
［Ｃ３７］
前記１つまたは複数のプロセッサが、
前記現在ＰＵの予測ブロックと同じサイズを有する、前記参照ピクチャ中の参照ブロックを決定することと、
前記参照ブロックのサブＰＵの中から、前記参照ブロックの中心ピクセルに最も近いサブＰＵを決定することと、
前記参照ブロックの前記決定されたサブＰＵの動きパラメータから前記デフォルト動きパラメータを導出することとを行うように構成される、Ｃ２７に記載のデバイス。
［Ｃ３８］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（（ｎＰＳＷ＞＞（ｕ＋１））−１）＜＜ｕ，（（（ｎＰＳＨ＞＞（ｕ＋１））−１）＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ３７に記載のデバイス。
［Ｃ３９］
前記参照ブロックの前記サブＰＵの各々のサイズが２U×２Uであり、前記参照ブロックの前記中心ピクセルに最も近い前記サブＰＵが、前記参照ブロックの左上サンプルに対して次の座標、（（ｎＰＳＷ＞＞（ｕ＋１））＜＜ｕ，（ｎＰＳＨ＞＞（ｕ＋１））＜＜ｕ）を有するピクセルを含み、ここにおいて、ｎＰＳＷはピクセル中の前記参照ブロックの幅を示し、ｎＰＳＨはピクセル中の前記参照ブロックの高さを示す、Ｃ３７に記載のデバイス。
［Ｃ４０］
前記１つまたは複数のプロセッサが、
前記候補リスト中の選択された候補を示すシンタックス要素をビットストリームから取得することと、
前記現在ＰＵのための予測ブロックを再構成するために、前記選択された候補の動きパラメータを使用することとを行うようにさらに構成される、Ｃ２７に記載のデバイス。
［Ｃ４１］
前記１つまたは複数のプロセッサが、前記候補リスト中の選択された候補を示すシンタックス要素をビットストリーム内でシグナリングするように構成される、Ｃ２７に記載のデバイス。
［Ｃ４２］
ビデオデータをコーディングするためのデバイスであって、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割するための手段と、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定するための手段と、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理するための手段と、ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは設定されない、ここにおいて、前記サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、前記サブＰＵを処理するための前記手段は、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定するための手段と、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定するための手段と、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定するための手段とを備える、
前記現在ＰＵの候補リスト中に候補を含めるための手段と、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づくを備える、デバイス。
［Ｃ４３］
実行されると、デバイスに、
現在予測ユニット（ＰＵ）を複数のサブＰＵに分割することと、ここにおいて、前記現在ＰＵは現在ピクチャ中にある、
デフォルト動きパラメータを決定することと、
前記複数のサブＰＵからのサブＰＵを特定の順序で処理することと、
ここにおいて、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、前記それぞれのサブＰＵのための参照ブロックが動き補償予測を使用してコーディングされない場合、前記順序の任意の後のサブＰＵのための参照ブロックは動き補償予測を使用してコーディングされるという後続の決定に応答して、前記それぞれのサブＰＵの前記動きパラメータは設定されない、ここにおいて、前記サブＰＵのうちの少なくとも１つのための参照ブロックは動き補償予測を使用してコーディングされない、ここにおいて、前記サブＰＵを処理することは、前記複数のサブＰＵからの各それぞれのサブＰＵに関して、
前記それぞれのサブＰＵのための参照ブロックを決定することと、ここにおいて、参照ピクチャは前記それぞれのサブＰＵのための前記参照ブロックを含む、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされる場合、前記それぞれのサブＰＵのための前記参照ブロックの動きパラメータに基づいて、前記それぞれのサブＰＵの動きパラメータを設定することと、
前記それぞれのサブＰＵのための前記参照ブロックが動き補償予測を使用してコーディングされない場合、前記それぞれのサブＰＵの前記動きパラメータを前記デフォルト動きパラメータに設定することとを備える、
前記現在ＰＵの候補リスト中に候補を含めることと、ここにおいて、前記候補は前記複数のサブＰＵの前記動きパラメータに基づくを行わせる命令を記憶した、非一時的コンピュータ可読データ記憶媒体。
【図１】
0006434012.tif 000062
【図２】
0006434012.tif 000063
【図３】
0006434012.tif 000064
【図４】
0006434012.tif 000065
【図５】
0006434012.tif 000066
【図６】
0006434012.tif 000067
【図７】
0006434012.tif 000068
【図８】
0006434012.tif 000069
【図９】
0006434012.tif 000070
【図１０】
0006434012.tif 000071
【図１１】
0006434012.tif 000072
【図１２】
0006434012.tif 000073
【図１３】
0006434012.tif 000074
【図１４】
0006434012.tif 000075
【図１５】
0006434012.tif 000076
【図１６Ａ】
0006434012.tif 000077
【図１６Ｂ】
0006434012.tif 000078
【図１７】
0006434012.tif 000079
【図１８】
0006434012.tif 000080
【図１９】
0006434012.tif 000081