(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、前記方法は、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを決定することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを決定することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分を復号することと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分を復号することと
を備え、
前記ＡＲＰが時間的残差に適用されるとき、
現在のビューの異なるアクセスユニット中のサブＰＵの同じサイズをもつブロック（ＣｕｒｒＴＲｅｆ）は、現在のＰＵの同じ時間的動きベクトルによって識別され、前記時間的動きベクトルは前記第１のタイプまたは前記第２のタイプの一方であり、
前記ＣｕｒｒＴＲｅｆが１つのディスパリティ動きベクトルを含んでいる場合、前記ディスパリティ動きベクトルは、参照ビューの同じアクセスユニット中のサブＰＵの同じサイズをもつブロック（Ｂａｓｅ）と、前記Ｂａｓｅと同じビュー中にあり、前記ＣｕｒｒＴＲｅｆと同じ時間のブロック（ＢａｓｅＴＲｅｆ）とを導出するために使用され、前記ディスパリティ動きベクトルは前記第１のタイプまたは前記第２のタイプの他方であり、
前記Ｂａｓｅおよび前記ＢａｓｅＴＲｅｆは、残差予測子を生成するために使用される、方法。
【請求項２】
前記第１のサブＰＵのサイズと前記第２のサブＰＵのサイズとが等しい、請求項１に記載の方法。
【請求項３】
前記第２のサブＰＵのサイズが前記第１のサブＰＵのサイズとは異なる、請求項１に記載の方法。
【請求項４】
前記第１のサブＰＵのサイズが８ピクセル×８ピクセルである、請求項１に記載の方法。
【請求項５】
前記第１のサブＰＵのサイズが少なくとも８ピクセル×少なくとも８ピクセルである、請求項１に記載の方法。
【請求項６】
前記ＣＵの前記第１の部分を復号することが、
参照ビュー中のピクチャ中で、別のピクチャ中のそれぞれの対応するブロックの位置を特定するために現在のブロックからの前記第１の動きベクトルを使用することと、
前記現在のブロックからの前記第３の動きベクトルを使用して現在のビュー中の第１の参照ブロックを取得することと、
前記現在のブロックから第２の参照ブロックを取得するために前記第１の動きベクトルと前記第３の動きベクトルとを使用することと、
前記第１の参照ブロックと前記第２の参照ブロックとに少なくとも部分的に基づいて残差予測子を取得することと、
重み付け係数を取得することと、
重み付けされた残差ブロックを取得するために前記残差予測子に前記重み付け係数を適用することと、
前記重み付けされた残差ブロックと前記それぞれの対応するブロックとを使用して前記ＣＵの前記第１の部分を復号することと
を含む、請求項１に記載の方法。
【請求項７】
前記ＣＵの前記第１の部分を復号することが、
前記第３の動きベクトルを使用して前記ＣＵの前記第１の部分に関する第１の予測された値を計算することと、
前記第１の動きベクトルによって識別されるそれぞれの対応するブロックと、前記それぞれの対応するブロックに適用されたときに前記第３の動きベクトルによって識別されるビュー間参照ブロックとの間の差を使用して、前記ＣＵの前記第１の部分に関する第２の予測された値を計算することと、
前記第１の予測された値と前記第２の予測された値とを使用して前記ＣＵの前記第１の部分を復号することと
を含む、請求項１に記載の方法。
【請求項８】
前記ＣＵの前記部分をコーディングすることが、
前記第１の動きベクトルを使用して前記ＣＵの前記第１の部分に関する第１の予測された値を計算することと、
前記第３の動きベクトルによって識別される参照ブロックと、前記参照ブロックに適用されたときに前記第３の動きベクトルによって識別されるビュー間参照ブロックとの間の差を使用して、前記ＣＵの前記第１の部分に関する第２の予測された値を計算することと、
前記それぞれの第１の予測された値と前記それぞれの第２の予測された値との組合せから前記ＣＵの前記第１の部分に関する実際の予測された値を計算することと
を備える、請求項１に記載の方法。
【請求項９】
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティ動きベクトルを含む、請求項１に記載の方法。
【請求項１０】
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティベクトルを含む、請求項１に記載の方法。
【請求項１１】
前記第３の動きベクトルと前記第４の動きベクトルとが同じ動きベクトルを含む、請求項１に記載の方法。
【請求項１２】
前記第１のサブＰＵのサイズと前記第２のサブＰＵのサイズとがビデオパラメータセット（ＶＰＳ）中でシグナリングされる、請求項１に記載の方法。
【請求項１３】
前記第２のタイプが時間的動きベクトルを含む、請求項１に記載の方法。
【請求項１４】
前記第１のタイプがディスパリティ動きベクトルを含む、請求項１３に記載の方法。
【請求項１５】
前記第１のタイプがディスパリティベクトルを含む、請求項１３に記載の方法。
【請求項１６】
前記第３の動きベクトルを決定することが、
デフォルト時間的動きベクトルとして前記ＣＵに関する時間的動きベクトルを決定することと、
前記ＣＵに適用される少なくとも１つのディスパリティ動きベクトルによって識別される対応するブロックが利用可能な時間的動き情報を有しないとき、前記第３の動きベクトルとして前記ＣＵに関する前記時間的動きベクトルを使用することと
を含む、請求項１３に記載の方法。
【請求項１７】
ビデオデータを符号化する方法であって、前記方法は、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分を符号化することと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分を符号化することと
を備え、
前記ＡＲＰが時間的残差に適用されるとき、
現在のビューの異なるアクセスユニット中のサブＰＵの同じサイズをもつブロック（ＣｕｒｒＴＲｅｆ）は、現在のＰＵの同じ時間的動きベクトルによって識別され、前記時間的動きベクトルは前記第１のタイプまたは前記第２のタイプの一方であり、
前記ＣｕｒｒＴＲｅｆが１つのディスパリティ動きベクトルを含んでいる場合、前記ディスパリティ動きベクトルは、参照ビューの同じアクセスユニット中のサブＰＵの同じサイズをもつブロック（Ｂａｓｅ）と、前記Ｂａｓｅと同じビュー中にあり、前記ＣｕｒｒＴＲｅｆと同じ時間のブロック（ＢａｓｅＴＲｅｆ）とを導出するために使用され、前記ディスパリティ動きベクトルは前記第１のタイプまたは前記第２のタイプの他方であり、
前記Ｂａｓｅおよび前記ＢａｓｅＴＲｅｆは、残差予測子を生成するために使用される、方法。
【請求項１８】
前記ＣＵの前記第１の部分を符号化することが、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して前記第１のサブＰＵに関する残差予測子を取得することと、
前記第１のサブＰＵに関する重み付け係数を取得することと、
前記残差予測子への前記重み付け係数の適用から取得された重み付けされた残差予測子を使用して前記第１のサブＰＵを符号化することと
を含む、請求項１７に記載の方法。
【請求項１９】
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティ動きベクトルを含む、請求項１７に記載の方法。
【請求項２０】
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティベクトルを含む、請求項１７に記載の方法。
【請求項２１】
前記第３の動きベクトルと前記第４の動きベクトルとが同じ動きベクトルを含む、請求項１７に記載の方法。
【請求項２２】
前記第２のタイプが時間的動きベクトルを含む、請求項１７に記載の方法。
【請求項２３】
前記第１のタイプがディスパリティ動きベクトルを含む、請求項２２に記載の方法。
【請求項２４】
前記第１のタイプがディスパリティベクトルを含む、請求項２２に記載の方法。
【請求項２５】
ビデオデータをコーディングするためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリに結合され、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分をコーディングすることと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分をコーディングすることと
を行うように構成された、１つまたは複数のプロセッサと
を備え、
前記ＡＲＰが時間的残差に適用されるとき、
現在のビューの異なるアクセスユニット中のサブＰＵの同じサイズをもつブロック（ＣｕｒｒＴＲｅｆ）は、現在のＰＵの同じ時間的動きベクトルによって識別され、前記時間的動きベクトルは前記第１のタイプまたは前記第２のタイプの一方であり、
前記ＣｕｒｒＴＲｅｆが１つのディスパリティ動きベクトルを含んでいる場合、前記ディスパリティ動きベクトルは、参照ビューの同じアクセスユニット中のサブＰＵの同じサイズをもつブロック（Ｂａｓｅ）と、前記Ｂａｓｅと同じビュー中にあり、前記ＣｕｒｒＴＲｅｆと同じ時間のブロック（ＢａｓｅＴＲｅｆ）とを導出するために使用され、前記ディスパリティ動きベクトルは前記第１のタイプまたは前記第２のタイプの他方であり、
前記Ｂａｓｅおよび前記ＢａｓｅＴＲｅｆは、残差予測子を生成するために使用される、デバイス。
【請求項２６】
前記第１のタイプがディスパリティベクトルまたはディスパリティ動きベクトルのうちの少なくとも１つを含む、請求項２５に記載のデバイス。
【請求項２７】
前記第２のタイプが時間的動きベクトルを含む、請求項２５に記載のデバイス。
【請求項２８】
前記デバイスが、前記ＣＵの前記第１の部分を符号化し、前記ＣＵの前記第２の部分を符号化するように構成されたビデオエンコーダである、請求項２５に記載のデバイス。
【請求項２９】
前記デバイスが、前記ＣＵの前記第１の部分を復号し、前記ＣＵの前記第２の部分を復号するように構成されたビデオデコーダである、請求項２５に記載のデバイス。
【請求項３０】
実行されたとき、少なくとも１つのプロセッサに、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分をコーディングすることと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分をコーディングすることと
を行わせる命令を記憶し、
前記ＡＲＰが時間的残差に適用されるとき、
現在のビューの異なるアクセスユニット中のサブＰＵの同じサイズをもつブロック（ＣｕｒｒＴＲｅｆ）は、現在のＰＵの同じ時間的動きベクトルによって識別され、前記時間的動きベクトルは前記第１のタイプまたは前記第２のタイプの一方であり、
前記ＣｕｒｒＴＲｅｆが１つのディスパリティ動きベクトルを含んでいる場合、前記ディスパリティ動きベクトルは、参照ビューの同じアクセスユニット中のサブＰＵの同じサイズをもつブロック（Ｂａｓｅ）と、前記Ｂａｓｅと同じビュー中にあり、前記ＣｕｒｒＴＲｅｆと同じ時間のブロック（ＢａｓｅＴＲｅｆ）とを導出するために使用され、前記ディスパリティ動きベクトルは前記第１のタイプまたは前記第２のタイプの他方であり、
前記Ｂａｓｅおよび前記ＢａｓｅＴＲｅｆは、残差予測子を生成するために使用される、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、２０１３年８月２０日に出願された米国仮出願第６１／８６８，０２７号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスにおいて固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を含む。ブロックベースビデオコーディングの場合、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接するブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャの中の隣接するブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックに関する予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイに配列される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、ビデオコーディング技法を説明する。特に、いくつかの例では、本技法は、テクスチャビューおよび／または深度ビューを含み得る３次元（３Ｄ）ビデオコンテンツのコーディングに関する。
【０００７】
[0007]一例では、ビデオデータを復号する方法は、予測ユニット（ＰＵ：prediction unit）の２つ以上のサブＰＵがＰＵの重複しない部分（non-overlapping portions）であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを決定することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを決定することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ：advanced residual prediction）に従って第１のサブＰＵに対応するＣＵの第１の部分を復号することと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分を復号することとを備える。
【０００８】
[0008]一例では、ビデオデータを符号化する方法は、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分を符号化することと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分を符号化することとを備える。
【０００９】
[0009]一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを備える。１つまたは複数のプロセッサはメモリに結合され、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分をコーディングすることと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分をコーディングすることとを行うように構成される。
【００１０】
[0010]一例では、非一時的コンピュータ可読記憶媒体は、その上に記憶された命令を有する。命令は、実行されたとき、少なくとも１つのプロセッサに、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分をコーディングすることと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分をコーディングすることとを行わせる。
【００１１】
[0011]１つまたは複数の例の詳細が以下の添付の図面および説明において記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]図１は、ビデオコーディングにおける深度指向ビュー間動きベクトル予測（depth-oriented inter-view motion vector prediction）のための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】[0013]図２は、ビデオコーディングにおける深度指向ビュー間動きベクトル予測のための技法を利用し得るビデオエンコーダの一例を示すブロック図である。
【図３】[0014]図３は、ビデオコーディングにおける深度指向ビュー間動きベクトル予測のための技法を利用し得るビデオデコーダの一例を示すブロック図である。
【図４】[0015]図４は、ビデオデータをコーディングするための例示的なプロセスを示す流れ図である。
【図５】[0016]図５は、例示的なサブＰＵ  ＭＶＣ予測パターンを示す概念図である。
【図６】[0017]図６は、サブＰＵ  ＡＲＰのためのコーディングユニット（ＣＵ）に対する例示的な空間的ネイバー（neighbors）を示す概念図である。
【図７】[0018]図７は、サブＰＵ  ＡＲＰの例示的な予測構造を示す概念図である。
【図８】[0019]図８は、現在のブロックと参照ブロックと動き補償されたブロックとの間の関係を示す概念図である。
【図９】[0020]図９は、ビュー間残差（inter-view residual）に関するＡＲＰを示す概念図である。
【図１０】[0021]図１０は、ビュー間残差に関する例示的なサブＰＵベースのＡＲＰを示す概念図である。
【図１１】[0022]図１１は、図４のプロセスの一例として使用され得る、ビデオデータを符号化するための例示的なプロセスを示す流れ図である。
【図１２】[0023]図１２は、図４のプロセスの一例として使用され得る、ビデオデータを復号するための例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【００１３】
[0024]本開示は、テクスチャビューと深度ビューとを含み得るビデオコンテンツのコーディング（たとえば、符号化または復号）のための様々な技法を説明する。本技法は、いくつかの態様では、ビデオエンコーダによって実施され得る。他の態様では、本技法はビデオデコーダによって実施され得る。さらに、そのような方法は、トランスコーダ、メディアアウェアネットワーク要素（ＭＡＮＥｓ）などの他のデバイスにおいて実施され得る。本開示では、本技法は、例示の目的のためにビデオエンコーダおよびデコーダに関して説明される。
【００１４】
[0025]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、それのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。
【００１５】
[0026]さらに、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのビデオコーディングにおけるジョイントコラボレーションチーム（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発されたビデオコーディング規格、高効率ビデオコーディング（ＨＥＶＣ）がある。以下でＨＥＶＣ  ＷＤ８と呼ぶ、ＨＥＶＣの１つの最近のワーキングドラフト（ＷＤ：Working Draft）は、http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v10.zipから入手可能である。ＨＥＶＣの別の、より最近のドラフトは、本明細書では「ＨＥＶＣテキスト仕様ドラフト１０」と呼ぶ。
【００１６】
[0027]マルチビュービデオコーディング（ＭＶＣ：multiview video coding）はＨ．２６４／アドバンストビデオコーディング（ＡＶＣ）の拡張である。ＭＶＣ仕様は、以下の本開示のセクションおよびサブセクションにおいて簡単に説明される。
【００１７】
[0028]図１は、サブ予測ユニット（ＰＵ）レベル高度残差予測のための技法を実装または場合によっては利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００１８】
[0029]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が、リアルタイムで宛先デバイス１４に直接符号化されたビデオデータを送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路（physical transmission lines）など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００１９】
[0030]いくつかの例では、符号化されたデータは、出力インターフェース２２から、ストレージデバイス３１などのストレージデバイスに出力され得る。同様に、符号化されたデータは入力インターフェース２８によってストレージデバイス３１からアクセスされ得る。ストレージデバイス３１は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス３１は、ソースデバイス１２によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２０】
[0031]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために一方向または二方向ビデオ送信をサポートするように構成され得る。
【００２１】
[0032]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、サブＰＵレベル高度残差予測のために、本明細書で説明する技法を実施するように構成され得る。たとえば、ビデオエンコーダ２０は、サブＰＵレベル高度残差予測のために、本明細書で説明される技法を使用して、デコーダ３０などのビデオデコーダが符号化されたビデオビットストリームを復号することを可能にするために、符号化されたビデオビットストリーム中でシグナリング情報を符号化するように構成され得る。ビデオデコーダ３０は、サブＰＵレベル高度残差予測のために、本明細書で説明される技法を実施するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他のコンポーネントまたは構成（arrangements）を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００２２】
[0033]このようにして、ビデオエンコーダ２０とビデオデコーダ３０の一方または両方は、以下でさらに詳細に説明される図４の方法の例など、ビデオデータをコーディングする方法を実施するように構成されたビデオコーダの例であり得る。
【００２３】
[0034]図１の図示されたシステム１０は、一例にすぎない。サブＰＵレベル高度残差予測のための本明細書で説明される技法は、任意の好適なデジタルビデオ符号化および／または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実施され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実施され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化されたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１２とビデオデバイス１４との間の一方向または二方向ビデオ送信をサポートし得る。
【００２４】
[0035]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオとアーカイブされたビデオとコンピュータ生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４はいわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００２５】
[0036]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時的媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、ソースデバイス１２から符号化されたビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化されたビデオデータを宛先デバイス１４に提供し得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【００２６】
[0037]宛先デバイス１４の入力インターフェース２８はコンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化されたユニット、たとえば、ＧＯＰｓの特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、ユーザに復号されたビデオデータを表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２７】
[0038]ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣ規格などのビデオコーディング規格に従って動作し得、概して、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３を含む。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２８】
[0039]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、ジョイントビデオチーム（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣムービングピクチャエキスパートグループ（ＭＰＥＧ）とともにＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明される技法は、Ｈ．２６４規格に概して準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Advanced Video Coding for generic audiovisual services」に記載されており、それは本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ばれることがある。ジョイントビデオチーム（ＪＶＴ）は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００２９】
[0040]ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読記憶媒体に記憶し、その命令をハードウェアで実行し、１つまたは複数のプロセッサに本開示の技法を実施させ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３０】
[0041]ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００３１】
[0042]概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され（be divided）得ることを記述する。今度のＨＥＶＣ規格はまた、ＬＣＵを「コーディングツリーユニット」またはＣＴＵと呼ぶ。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵに関するサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され（be split）得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００３２】
[0043]４分木データ構造の各ノードは、対応するＣＵに関するシンタックスデータを提供し得る。たとえば、４分木におけるノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵに関するシンタックス要素は、繰り返し（recursively）定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵはリーフＣＵとも呼ばれる。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、その１６×１６ＣＵが決して分割されないが、４つの８×８サブＣＵはリーフＣＵとも呼ばれる。
【００３３】
[0044]ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化されたビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。したがって、ビットストリームはまた、最小コーディングユニット（ＳＣＵ：smallest coding unit）を定義し得る。本開示は、ＨＥＶＣのコンテキストにおけるＣＵ、ＰＵ、またはＴＵ、以下でより詳細に説明するサブＰＵ、あるいは他の規格のコンテキストにおける同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそのサブブロック）のいずれかを指すために「ブロック」という用語を使用する。
【００３４】
[0045]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセル以上をもつツリーブロックのサイズにまでわたり得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵの１つまたは複数のＰＵへの区分を記述し得る。区分モードは、ＣＵが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵに関連するシンタックスデータはまた、たとえば、４分木に従う、ＣＵの１つまたは複数のＴＵへの区分を記述し得る。ＴＵは、形状が正方形または非正方形（たとえば、長方形）であり得る。
【００３５】
[0046]ＨＥＶＣ規格は、異なるＣＵについて異なり得る、ＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるか、またはそれよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
【００３６】
[0047]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間的エリアを表し、そのＰＵに関する参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵに関するデータは、ＰＵに対応するＴＵに関するイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵに関する１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵに関する動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルに関する参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００３７】
[0048]１つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上記で説明したように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、分割フラグは、リーフＣＵが４つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブＴＵにさらに分割され得る。ＴＵがさらに分割されないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが、概して、リーフＣＵのすべてのＴＵに関する予測された値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵに関する残差値を、ＴＵに対応するＣＵの部分と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、ＰＵよりも大きいことも小さいこともある。イントラコーディングの場合、ＰＵは、同じＣＵに関する対応するリーフＴＵとコロケートされ（be collocated）得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００３８】
[0049]その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連し得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、一方、ＣＵ４分木のルートノードは概してツリーブロック（またはＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示は、別段に明記されていない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００３９】
[0050]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスに関する符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
【００４０】
[0051]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測、および２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称のＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とそれに続く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という指示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部における２Ｎ×０．５Ｎ  ＰＵと下部における２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００４１】
[0052]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法（vertical and horizontal dimensions）に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）、および水平方向に１６ピクセル（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここで、Ｎは非負整数値を表す。ブロック中のピクセルは行および列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ここで、Ｍは必ずしもＮに等しいとは限らない。
【００４２】
[0053]インター予測は、概して、時間的動きベクトルおよび／またはディスパリティ動きベクトル（disparity motion vector）を含み得る１つまたは複数の動きベクトルを使用してブロック（たとえば、ＰＵ）を予測することを伴う。高度残差予測（ＡＲＰ）は、以下でより詳細に説明するように、ブロックを予測するために、時間的動きベクトル（temporal motion vector）と、ディスパリティベクトルまたはディスパリティ動きベクトルのうちの少なくとも１つとの両方を使用する。より詳細には、ＡＲＰ技法は、ＰＵに対応するＣＵの一部分に関する予測子を計算することと、ＰＵに対応するＣＵのその部分に関する残差予測子を計算することと、次いで、予測子と残差予測子と残差とを使用してＣＵのその部分をコーディングすることとを含み、ただし、残差は、ＣＵのその部分と、予測子および残差予測子の組合せとの間の差を表す。さらに、残差予測子は、重み付け係数を適用することによって変更され得る。
【００４３】
[0054]本開示の技法によれば、ＰＵを含むＣＵが、ＡＲＰを使用してコーディングされるとき、ＰＵはサブＰＵに分割され得る。本開示の技法によれば、ＰＵに関する動きベクトル（時間的動きベクトルまたはディスパリティ動きベクトルのいずれか）が、ＡＲＰの場合、参照ブロックの第２の部分に関する時間的動き情報および／またはディスパリティ情報とは異なる時間的動き情報および／またはディスパリティ情報を有する第１の部分を含む参照ブロックを識別するとき、サブＰＵが形成され得る。たとえば、ＰＵのディスパリティ動きベクトルによって識別されるビュー間参照ブロックの場合、ビュー間参照ブロックはビュー間参照ピクチャの２つ以上の重複しないブロックをカバーし得、２つの重複しないブロックは別個の時間的動き情報を有し得る。別個の時間的動き情報は、第１の部分が時間的動き情報の第１のセットを有し、第２の部分が時間的動き情報の第２の異なるセットを有する状況を指すことがある。代替的に、別個の時間的動き情報は、第１の部分が時間的動き情報の第１のセットを有し、（たとえば、第２の部分が、イントラ予測を使用してコーディングされるので、または第２の部分に関する時間的動き情報が破損した（corrupted）ので）第２の部分が利用可能な時間的動き情報を有しない状況を指すことがある。別の例として、時間的参照ブロックは時間的参照ピクチャの２つ以上の重複しないＰＵをカバーし得、重複しないＰＵは別個のディスパリティベクトルまたはディスパリティ動きベクトルを有し得る（あるいはディスパリティ動きベクトルおよび／またはディスパリティ情報は、上記で説明したように、２つの重複しないブロックのうちの１つについて利用不可能であり得る）。
【００４４】
[0055]このようにして、サブＰＵは、参照ブロックの第２の部分に関する動き／ディスパリティ情報とは異なる動き／ディスパリティ情報を含む第１の部分を有する参照ブロックを指す動きベクトル（時間的またはディスパリティ）を有するＰＵから生じ得る。したがって、サブＰＵは、４つのＮ×Ｎ  ＰＵに区分される２Ｎ×２Ｎ  ＣＵのＮ×Ｎ  ＰＵと同じであるものとして解釈されるべきでない（とはいえ、１つのサブＰＵのサイズは、２Ｎ×２Ｎ  ＣＵの１つのＮ×Ｎ  ＰＵのサイズに等しくなり得る）。たとえば、サブＰＵレベルでＡＲＰを使用して予測されるＰＵのサブＰＵは、ＰＵ自体のシンタックス要素の一部を形成する定義された動き／ディスパリティ情報を必ずしも含むとは限らないことになる。代わりに、サブＰＵレベルＡＲＰを使用してコーディングされるＰＵのサブＰＵに関する動き／ディスパリティ情報は、たとえば、参照ブロックの２つ以上の部分が、異なる動き／ディスパリティ情報を有すると仮定すると、（時間的動きベクトルかディスパリティ動きベクトルかにかかわらず）動きベクトルを使用してＰＵに対して識別される参照ブロックに関する動き／ディスパリティ情報から生じ得る。
【００４５】
[0056]サブＰＵは、ＰＵの一部を含むが全部を含まないＰＵの一部分であり、ただし、１つのＰＵは、各サブＰＵがＰＵの重複しない一部分である複数のサブＰＵに分割（split）（すなわち、区分または分割（divide））される。各サブＰＵは、各ブロックについて、復号中にそれぞれのサブＰＵ自体の（１つまたは複数の）対応する／参照ブロックの位置を特定する（locate）ために使用されるべき（１つまたは複数の）別個のベクトルがあるブロックである。各サブＰＵについて、サブＰＵに関する対応する参照ブロックを決定するために別個の決定が行われる。ＣＵよりも小さいＰＵの場合でも、サブＰＵがＰＵ全体を備えないことがある。たとえば、区分された２Ｎ×２Ｎ  ＣＵが４つのＮ×Ｎ  ＰＵである場合、これらのＮ×Ｎ  ＰＵはＰＵであり、サブＰＵではないが、Ｎ×Ｎ  ＰＵ自体はサブＰＵに区分され得、ただし、ＰＵの各サブＰＵは、ＰＵの重複しない一部分である。ＣＵが、ＣＵよりも小さいＰＵに分割されるとき、各得られたＰＵはＰＵを構成し、得られたＰＵはサブＰＵを構成しない。同じく、これらの得られたＰＵの（すなわち、ＣＵの分割の結果としての）各々はサブＰＵに分割され得、したがって、この場合、それぞれＣＵよりも小さいＰＵに分割されたＣＵがあり、各ＰＵは、それぞれＰＵよりも小さいサブＰＵに分割される。
【００４６】
[0057]いくつかの例では、ＡＲＰがＣＵについて実施されているとき、現在のＰＵを符号化している間、ビデオエンコーダ２０は現在のＰＵを２つ以上のサブＰＵに分割し、ただし、各サブＰＵは、ＣＵの重複しない一部分である。次いで、現在のＰＵの各サブＰＵについて、ビデオエンコーダ２０は第１のタイプの動きベクトルを生成する。動きベクトルの第１のタイプの様々な例は、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第１のタイプはディスパリティ動きベクトルである。他の例では、以下でより詳細に説明されるように、第１のタイプはディスパリティベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、他のタイプの動きベクトルが採用され得る。
【００４７】
[0058]現在のＰＵのサブＰＵの各々に関する第１のタイプの動きベクトルを生成した後に、ビデオエンコーダ２０は、次いで、サブＰＵの各々について、ベクトルのそれぞれの第１のタイプによって識別される対応するブロックから、第２のタイプのそれぞれの動きベクトルを生成する。動きベクトルの第２のタイプの様々な例は、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第２のタイプは時間的動きベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、様々な他のタイプの動きベクトルも採用され得る。
【００４８】
[0059]ビデオエンコーダ２０は、次いで、それぞれのサブＰＵに関連する生成された動きベクトルを使用して、ＡＲＰに従ってＰＵの各サブＰＵに対応するＣＵの各部分を符号化する。
【００４９】
[0060]たとえば、いくつかの例では、ビデオエンコーダ２０は、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割する。これらの例のうちのいくつかでは、ビデオエンコーダ２０は、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得する。また、これらの例のうちのいくつかでは、ビデオエンコーダ２０は、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得する。また、これらの例のうちのいくつかでは、ビデオエンコーダ２０は、第１の動きベクトルと第３の動きベクトルとを使用して、高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分を符号化する。また、これらの例のうちのいくつかでは、ビデオエンコーダ２０は、第２の動きベクトルと第４の動きベクトルとを使用して、ＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分を符号化する。いくつかの例では、第１の動きベクトルと第２の動きベクトルとは同じであるが、第３の動きベクトルと第４の動きベクトルとは異なる。いくつかの他の例では、第１の動きベクトルと第２の動きベクトルとは異なるが、第３の動きベクトルと第４の動きベクトルとは同じである。いくつかの例では、第１または第２のタイプの動きベクトルは、現在のサブＰＵではなく他のブロックから導出される。
【００５０】
[0061]上記および以下の様々な説明は、いくつかの動作（actions）のための特定の順序を説明するが、本開示はそのように限定されず、説明される動作のための他の好適な順序が本開示の範囲および趣旨（spirit）内で使用され得る。たとえば、上記で説明されたように、いくつかの例では、ビデオエンコーダは現在のＰＵ中の各サブＰＵに関する第１のタイプの動きベクトルを生成し、次いで、ビデオエンコーダは、現在のＰＵの各サブＰＵに関する第２のタイプの動きベクトルを生成し、ビデオエンコーダは、各それぞれのサブＰＵに関連する生成された動きベクトルを使用して各サブＰＵに対応するＣＵの各部分を符号化する。しかしながら、他の例では、ビデオエンコーダ２０は、最初に、現在のＰＵの第１のサブＰＵに関する第１のタイプの動きベクトルを生成し、次いで、ビデオエンコーダはＰＵの第１のサブＰＵに関する第２のタイプの動きベクトルを生成し、次いで、ビデオエンコーダは、生成された動きベクトルを使用して、ＡＲＰに従って第１のサブＰＵと対応するＣＵの部分を符号化する。次に、ビデオエンコーダ２０は、ＰＵの第２のサブＰＵについて同様の動作を実施し、以下同様である。
【００５１】
[0062]いくつかの例では、ビデオデコーダ３０はＰＵを２つ以上のＰＵに分割し、ただし、各サブＰＵは、ＣＵの重複しない一部分である。次いで、現在のＰＵの各サブＰＵについて、ビデオデコーダ３０は第１のタイプの動きベクトルを取得する。現在のＰＵのサブＰＵの各々に関する第１のタイプの動きベクトルを生成した後に、ビデオデコーダ３０は、次いで、サブＰＵの各々について、第２のタイプのそれぞれの動きベクトルを生成する。いくつかの例では、動きベクトルは、エンコーダ中に前に生成する動きベクトルであり、ビットストリームからそれらを取り出すことによって、デコーダによって取得される。
【００５２】
[0063]ビデオデコーダ３０は、次いで、それぞれのサブＰＵに関連する取得されたベクトルを使用して、ＡＲＰに従ってＰＵの各サブＰＵに対応するＣＵの各部分を復号する。ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ２０は、ＣＵのＴＵに関する残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間的領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、および／または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵに関する残差データを含むＴＵを形成し、次いで、ＣＵに関する変換係数を生成するためにＴＵを変換し得る。
【００５３】
[0064]変換係数を生成する任意の変換演算に続いて、ビデオエンコーダ２０は、変換係数の量子化を実施し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、ｎビット値は、量子化中にｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００５４】
[0065]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部に（at the front of the array）より高いエネルギー（したがって、より低い周波数）係数を配置し、アレイの後部に（at the back of the array）より低いエネルギー（したがって、より高い周波数）係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトル（a serialized vector）を生成するために、あらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応型走査を実施し得る。量子化変換係数を走査して１次元のベクトルを形成した後、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピー符号化の方法に従って、１次元のベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化されたビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５５】
[0066]ＣＡＢＡＣを実施するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接する値（neighboring values）が非０であるか否かに関係し得る。ＣＡＶＬＣを実施するために、ビデオエンコーダ２０は、送信されるべきシンボルに関する可変長コードを選択し得る。ＶＬＣ中のコードワードは、比較的より短いコードが優勢シンボル（more probable symbols）に対応し、より長いコードが劣勢シンボル（less probable symbols）に対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルに関する等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００５６】
[0067]ビデオエンコーダ２０は、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、および／またはＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０にさらに送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のフレームの数を記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【００５７】
[0068]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００５８】
[0069]図２は、サブＰＵレベル高度残差予測のための本明細書で説明する技法を実装または場合によっては利用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【００５９】
[0070]図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピーコーディングユニット５６とを含む。モード選択ユニット４０は、次に、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、パーティションユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを削除するために、ブロック境界をフィルタ処理するための（図２に示されていない）デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。（ループ中またはループ後の（post loop））追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００６０】
[0071]符号化プロセス中に、ビデオエンコーダ２０はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間的予測を提供するために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実施する。イントラ予測ユニット４６は、代替的に、空間的予測を提供するために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接するブロックに対して受信されたビデオブロックのイントラ予測コーディングを実施し得る。ビデオエンコーダ２０は、たとえば、ビデオデータの各ブロックについて適切なコーディングモードを選択するために、複数のコーディングパス（multiple coding passes）を実施し得る。
【００６１】
[0072]その上、パーティションユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、サブＣＵへのＬＣＵの区分を示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【００６２】
[0073]モード選択ユニット４０は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に提供し、参照フレームとして使用するための符号化されたブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に提供し得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピーコーディングユニット５６に提供する。
【００６３】
[0074]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実施される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコード化されたユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコード化されたユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位（displacement）を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照フレームメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置に関する値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索（a motion search）を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【００６４】
[0075]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵに関する動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００６５】
[0076]動き補償ユニット４４によって実施される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのＰＵに関する動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいてそれを指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明されるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対して動き推定を実施し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方について、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００６６】
[0077]イントラ予測ユニット４６は、上記で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実施されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００６７】
[0078]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードに関するレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化されたブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックに関する最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比率を計算し得る。
【００６８】
[0079]ブロックに関するイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット５６に提供し得る。エントロピーコーディングユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックに関する符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【００６９】
[0080]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実施する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット５６が走査を実施し得る。
【００７０】
[0081]量子化の後に、エントロピーコーディングユニット５６は量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実施し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接するブロックに基づき得る。エントロピーコーディングユニット５６によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００７１】
[0082]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償された予測ブロックに加算して、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７２】
[0083]図２のビデオエンコーダ２０は、本開示で説明される様々な方法を実施するように構成されたビデオエンコーダの一例を表す。たとえば、ビデオエンコーダ２０は、以下でより詳細に説明される図４および／または図１１の方法など、ビデオデータをコーディングする方法を実施するように構成されたビデオコーダの一例であり得る。
【００７３】
[0084]特に、いくつかの例では、ビデオエンコーダ２０のモード選択ユニット２０は、符号化モードとパラメータとのどの組合せが最良のレートひずみ特性を生じるかを決定するために様々な反復符号化パスを評価する。ＣＵ（またはそれの一部分、たとえば、ＰＵに対応する一部分）に関するこれらのパスのうちの１つは、ＡＲＰを使用してＣＵのコーディングをテストすることを含む。ビデオエンコーダ２０は、ＣＵの各ＰＵをサブＰＵに区分することによって、サブＰＵレベルでＡＲＰを適用する。
【００７４】
[0085]いくつかの例では、ＡＲＰがＰＵについて実施されているとき、ビデオエンコーダ２０は現在のＰＵを２つ以上のサブＰＵに分割し、ただし、各サブＰＵは、ＣＵの重複しない一部分である。次いで、各サブＰＵについて、動き推定ユニット４２は、ＰＵのサブＰＵの各々に関する第１のタイプの動きベクトルを生成する。動きベクトルの第１のタイプの様々な例については、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第１のタイプはディスパリティ動きベクトルである。他の例では、以下でより詳細に説明されるように、第１のタイプはディスパリティベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、他のタイプの動きベクトルが採用され得る。
【００７５】
[0086]ビデオエンコーダ２０は、次いで、ＰＵのサブＰＵの各々の第２のタイプの動きベクトルを生成する。動きベクトルの第２のタイプの様々な例は、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第２のタイプは時間的動きベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、様々な他のタイプの動きベクトルも採用され得る。
【００７６】
[0087]ビデオエンコーダ２０は、次いで、それぞれのサブＰＵに関連する生成された動きベクトルを使用して、ＡＲＰに従ってＰＵの各サブＰＵに対応するＣＵの各部分を符号化する。
【００７７】
[0088]動き補償ユニット４４は、ＡＲＰを使用して符号化されるＰＵのサブＰＵに関する参照ブロックを決定するために、第１の動きベクトルを使用し得る。さらに、動き補償ユニット４４は、サブＰＵに関する対応するブロックを決定するために第２の動きベクトルを使用し、対応するブロックに関する参照ブロックを決定するために、対応するブロックに第１の動きベクトルを適用し得る。動き補償ユニット４４は、次いで、対応するブロックと、対応するブロックに関する参照ブロックとの間の差として、サブＰＵに関する残差予測子を計算し得る。いくつかの例では、残差予測子は、重み付け係数を適用することによって変更され得る。したがって、加算器５０は、サブＰＵに対応するＣＵの元の部分、すなわち、サブＰＵに関する参照ブロックと、重み付けされた残差予測子との間の差として、サブＰＵに関する残差ブロックを計算し得る。この場合も、第１の動きベクトルと第２の動きベクトルとが異なるタイプのベクトルであり得ることに留意されたい。たとえば、第１の動きベクトルは時間的動きベクトルであり得、第２の動きベクトルはディスパリティベクトルまたはディスパリティ動きベクトルであり得る。代替的に、第１の動きベクトルはディスパリティ動きベクトルであり得、第２の動きベクトルは時間的動きベクトルであり得る。
【００７８】
[0089]このようにして、ビデオエンコーダ２０は、ビデオデータを記憶するように構成されたメモリと、メモリに結合され、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して、高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分をコーディングすることと、第２の動きベクトルと第４の動きベクトルとを使用して、ＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分をコーディングすることとを行うように構成された、１つまたは複数のプロセッサとを含むデバイスの一例を表す。
【００７９】
[0090]図３は、ビデオコーディングにおけるサブＰＵレベル高度残差予測のための技法を実装または場合によっては利用し得るビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明された符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【００８０】
[0091]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００８１】
[0092]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックに関する予測データを生成し得る。ビデオフレームがインターコード化（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照フレームメモリ８２に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構成し得る。動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすること（parsing）によって現在のビデオスライスのビデオブロックに関する予測情報を決定し、復号されている現在のビデオブロックに関する予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスに関する参照ピクチャリストのうちの１つまたは複数に関する構成情報と、スライスの各インター符号化されたビデオブロックに関する動きベクトルと、スライスの各インターコード化されたビデオブロックに関するインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【００８２】
[0093]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルに関する補間された値を計算し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００８３】
[0094]逆量子化ユニット７６は、ビットストリーム中で提供され、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００８４】
[0095]逆変換ユニット７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【００８５】
[0096]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器８０は、この加算演算を実施する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。（コーディングループ中の、またはコーディングループの後のいずれかの）他のループフィルタも、ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャにおける復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照フレームメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【００８６】
[0097]いくつかの例では、ＡＲＰは各ＣＵについて実施されることも実施されないこともあり、ただし、いくつかの例では、ＡＲＰは、ＡＲＰが実施されるべきである各ＣＵについてシグナリングされる。（他の例では、ＡＲＰは、ＣＵレベル以外のあるレベルにおいてシグナリングされ得る。）ＡＲＰがＣＵについて実施されるとき、それはサブＰＵレベルで実施される。ビデオデコーダ３０が復号している間、それは、ＡＲＰがシグナリングされる各ＣＵについてサブＰＵ  ＡＲＰを実施する。
【００８７】
[0098]いくつかの例では、ＡＲＰがそれにおいて実施されることをシグナリングされたＣＵのＰＵを復号しながら、ビデオデコーダ３０は、ＰＵを２つ以上のＰＵに分割し、ただし、各サブＰＵは、ＣＵの重複しない一部分である。次いで、各サブＰＵについて、ビデオデコーダ３０は、ＰＵのサブＰＵの各々に関する第１のタイプの動きベクトルを取得する。ビデオデコーダ３０は、次いで、ＣＵのサブＰＵの各々の第２のタイプの動きベクトルを取得する。いくつかの例では、動きベクトルは、エンコーダ中に前に生成する動きベクトルであり、ビットストリームからそれらを取り出すことによって、デコーダによって取得される。
【００８８】
[0099]ビデオデコーダ３０は、次いで、取得された動きベクトルを使用して、ＡＲＰに従ってＰＵの各サブＰＵに対応するＣＵの各部分を復号する。
【００８９】
[0100]このようにして、ビデオデコーダ３０は、ビデオデータを記憶するように構成されたメモリと、メモリに結合され、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して、高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分をコーディングすることと、第２の動きベクトルと第４の動きベクトルとを使用して、ＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分をコーディングすることとを行うように構成された、１つまたは複数のプロセッサとを含むデバイスの一例を表す。
【００９０】
[0101]図４は、ビデオデータをコーディングするための例示的なプロセス（４７０）を示す流れ図である。いくつかの例では、図４のプロセスにおいて実施される動作は、ビデオエンコーダ２０またはビデオデコーダ３０などのビデオコーダによって実施され得るが、他のビデオコーディングデバイスが、図４のプロセスを実施するように構成され得る。
【００９１】
[0102]開始ブロックの後に、ビデオコーダは、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニットのＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割する（４７１）。
【００９２】
[0103]ブロック４７１において、ＰＵは、異なる例において様々な異なる方法で２つ以上のサブＰＵに分割され得る。いくつかの例では、ＰＵは、２つの等しいサイズのサブＰＵに分割され得、ただし、各サブＰＵはＰＵの別個の半分（a separate half）である。いくつかの例では、ＰＵは、４つの等しいサイズの正方形サブＰＵに分割され得、ただし、各サブＰＵはＰＵの別個の１／４である。いくつかの例では、サブＰＵは、それぞれ、サイズが少なくとも８ピクセル×少なくとも８ピクセルである。しかしながら、本開示はそのように限定されず、互いに対して等しいサイズのサブＰＵ、互いに対して等しくないサイズのサブＰＵ、正方形形状のサブＰＵ、長方形形状のサブＰＵ、正方形または長方形以外の形状を有するＰＵなどを含む、２つ以上のサブＰＵへのＰＵの様々な他の分割が採用され得る。
【００９３】
[0104]ビデオコーダは、第１のサブＰＵに関する第１のタイプの第１の動きベクトルを取得し、第１のタイプの第２の動きベクトルは第２のサブＰＵに関するものである（４７２）。
【００９４】
[0105]ブロック４７２において、第１のサブＰＵについて第１のタイプの第１の動きベクトルが取得され、第２のサブＰＵについて第１のタイプの第２の動きベクトルが取得される。第１の動きベクトルと第２の動きベクトルとの様々な例は、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第１のタイプはディスパリティ動きベクトルである。他の例では、以下でより詳細に説明されるように、第１のタイプはディスパリティベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、他のタイプの動きベクトルが採用され得る。いくつかの例では、各サブＰＵについて、第１のタイプの同じ動きベクトルが取得される。すなわち、第１の動きベクトルと第２の動きベクトルとは、同じ動きベクトルを備え得る。
【００９５】
[0106]ビデオコーダは、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵについて取得される第２のタイプの第３の動きベクトルを取得し、第２のサブＰＵについて決定される第２のタイプの第４の動きベクトルを取得する（４７４）。
【００９６】
[0107]ブロック４７４において、第１のサブＰＵついて第２のタイプの第３の動きベクトルが取得され、第２のサブＰＵについて第２のタイプの第４の動きベクトルが取得される。第３の動きベクトルと第４の動きベクトルとの様々な例は、以下でさらに詳細に説明される。しかしながら、手短に言えば、いくつかの例では、以下でより詳細に説明されるように、第２のタイプは時間的動きベクトルである。しかしながら、本開示はそのように限定されず、以下でより詳細に説明されるように、様々な他のタイプの動きベクトルも採用され得る。
【００９７】
[0108]ビデオコーダは、次いで、第１の動きベクトルと第３の動きベクトルとを使用して、高度残差予測（ＡＲＰ）に従ってコーディングされる第１のサブＰＵに対応するＣＵの第１の部分をコーディングする（４９１）。ビデオコーダは、次いで、第２の動きベクトルと第４の動きベクトルとを使用して、ＡＲＰに従ってコーディングされる第２のサブＰＵに対応するＣＵの第２の部分をコーディングする（４９２）。プロセスは、次いで、他の処理が再開されるリターンブロックに進む。
【００９８】
[0109]図４のプロセスのいくつかの例は符号化プロセスである。これらの例のうちのいくつかでは、ブロック４７２および４７４において、動きベクトルは、以下でより詳細に説明されるように、動きベクトルを導出および／または生成することによって取得され、ブロック４９１および４９２において、ＣＵの部分は、ＣＵの部分を符号化することによってコーディングされる。図４のプロセスの他の例は復号プロセスである。これらの例のうちのいくつかでは、ブロック４７２および４７４において、動きベクトルは、ビットストリームからそれらを取り出すことによって取得され、ブロック４９１において、ＣＵの部分は、ＣＵの部分を復号することによってコーディングされる。しかしながら、本開示はそのように限定されず、様々な他の例も採用され得る。
【００９９】
[0110]図５は、例示的なＭＶＣ予測パターンを示す概念図である。ＭＶＣにおけるビュー間予測（inter-view prediction）は本明細書で説明され、それは、本明細書では、本開示に従って、ＡＲＰとともにサブＰＵレベルで実施される。図５に、マルチビュービデオコーディングのための（各ビュー内のピクチャ間予測とビュー間予測の両方を含む）例示的なＭＶＣ予測構造が示され、ここで、予測は矢印によって示され、矢印の終点のオブジェクトは予測参照のために矢印の始点のオブジェクトを使用する。
【０１００】
[0111]ＭＶＣでは、ビュー間の相関を削除するために、同じアクセスユニットの（すなわち、同じ時間インスタンスをもつ）異なるビュー中でキャプチャされたピクチャの間でビュー間予測が実施される。ビュー間予測を用いてコーディングされたピクチャは、他の非ベースビューのビュー間予測用の参照ピクチャリスト中に追加され得る。
【０１０１】
[0112]ビュー間予測参照ピクチャは、インター予測参照ピクチャと同様の方法で、参照ピクチャリストの任意の位置に置かれ得る。
【０１０２】
[0113]マルチビュービデオコーディングのコンテキストでは、２種類の動きベクトルがある。一方は時間的参照ピクチャを指す通常の動きベクトル（a normal motion vector）であり、対応する時間的インター予測は動き補償された予測（ＭＣＰ）である。他方は、異なるビュー中のピクチャ（すなわち、ビュー間参照ピクチャ）を指すディスパリティ動きベクトル（ＤＭＶ：disparity motion vector）であり、対応するインター予測はディスパリティ補償された予測（ＤＣＰ：disparity-compensated prediction）である。
【０１０３】
[0114]ＨＥＶＣベース３Ｄビデオコーディング規格が説明される。現在、ＶＣＥＧおよびＭＰＥＧの３Ｄビデオコーディングにおけるジョイントコラボレーションチーム（ＪＣＴ−３Ｃ）は、ＨＥＶＣに基づく３次元ビデオ（３ＤＶ）規格を開発中であり、それのために、規格化の取り組みの一部は、ＨＥＶＣに基づくマルチビュービデオコーデック（ＭＶ−ＨＥＶＣ）と、ＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）のための別の部分との規格化を含む。３Ｄ−ＨＥＶＣでは、コーディングユニット／予測ユニットレベルにおけるコーディングツールを含む新たなコーディングツールが、テクスチャビューと深度ビューの両方について含められ、サポートされ得る。３Ｄ−ＨＥＶＣのための最新のソフトウェア３Ｄ−ＨＴＭが以下のリンクからダウンロードされ得る。
【０１０４】
[0115]［３Ｄ−ＨＴＭ  ｖｅｒｓｉｏｎ  ７．０］：
https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-7.0/
【０１０５】
[0116]以下のような最新の参照ソフトウェア記述ならびに３Ｄ−ＨＥＶＣのワーキングドラフトが利用可能になる。
【０１０６】
[0117]Ｇｅｒｈａｒｄ  Ｔｅｃｈ、Ｋｒｚｙｓｚｔｏｆ  Ｗｅｎｇｅｒ、Ｙｉｎｇ  Ｃｈｅｎ、Ｓｅｈｏｏｎ  Ｙｅａ、「3D-HEVC Test Model 4」、ＪＣＴ３Ｖ−Ｄ１００５＿ｓｐｅｃ＿ｖ１、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発におけるジョイントコラボレーティブチーム、第４回会議、Ｉｎｃｈｅｏｎ、ＫＲ、２０１３年４月２０〜２６日。それは、以下のリンクからダウンロードされ得る。
【０１０７】
[0118]http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wg11/JCT3V-D1005-v1.zip
【０１０８】
[0119]隣接するブロックベースディスパリティベクトル導出（ＮＢＤＶ：neighboring block based disparity vector derivation）は、本明細書で説明される。ＮＢＤＶは、すべてのビューについてテクスチャファーストコーディング順序を使用する、３Ｄ−ＨＥＶＣにおけるディスパリティベクトル導出方法のために使用される。現在の３Ｄ−ＨＥＶＣの設計では、ＮＢＤＶから導出されたディスパリティベクトルは、参照ビューの深度マップから深度データを取り出すことによって、さらに改良され得る。
【０１０９】
[0120]ＮＢＤＶ概観が説明される。ディスパリティベクトル（ＤＶ）は、２つのビュー間の変位の推定量のために使用される。隣接するブロックが、ビデオコーディングにおいてほとんど同じ動き／ディスパリティ情報を共有するので、現在のブロックは、良好な予測子として、隣接するブロック中の動きベクトル情報を使用することができる。この考えに従って、ＮＢＤＶは、異なるビュー中のディスパリティベクトルを推定するために、隣接するディスパリティ情報を使用する。
【０１１０】
[0121]いくつかの空間的に隣接するブロックおよび時間的に隣接するブロックは、最初に定義される。定義された空間的に隣接するブロックおよび／または時間的に隣接するブロックの各々は、次いで、現在のブロックと候補ブロックとの間の相関の優先度によって決定された、あらかじめ定義された順序で検査される。ディスパリティ動きベクトル（たとえば、ビュー間参照ピクチャを指す動きベクトル）が候補中で発見されると、ディスパリティ動きベクトルがディスパリティベクトルに変換され、関連するビュー順序インデックスも返される。隣接するブロックの２つのセットが利用される。一方のセットは、空間的に隣接するブロックからのものであり、他方のセットは、時間的に隣接するブロックからのものである。
【０１１１】
[0122]３Ｄ−ＨＥＶＣにおけるＮＢＤＶが説明される。３Ｄ−ＨＥＶＣは、ＪＣＴ３Ｖ−Ａ００９７において提案された隣接するブロック（ベース）ディスパリティベクトル（ＮＢＤＶ）方法を第１に採用した。暗黙的ディスパリティベクトル（implicit disparity vector）が、ＪＣＴＶＣ−Ａ０１２６中に簡略化されたＮＢＤＶとともに含まれた。さらに、ＪＣＴ３Ｖ−Ｂ００４７では、ＮＢＤＶは、復号されたピクチャバッファに記憶された暗黙的ディスパリティベクトルを除去することによってさらに簡略化されるが、また、ＲＡＰピクチャ選択を用いてコーディング利得を改善した。
【０１１２】
[0123]ＪＣＴ３Ｖ−Ａ００９７：3D-CE5.h: Disparity vector generation results、Ｌ．Ｚｈａｎｇ、Ｙ．Ｃｈｅｎ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ（Ｑｕａｌｃｏｍｍ）。
【０１１３】
[0124]ＪＣＴ３Ｖ−Ａ０１２６：3D-CE5.h: Simplification of disparity vector derivation for HEVC-based 3D video coding、Ｊ．Ｓｕｎｇ、Ｍ．Ｋｏｏ、Ｓ．Ｙｅａ（ＬＧ）。
【０１１４】
[0125]ＪＣＴ３Ｖ−Ｂ００４７：3D-CE5.h related: Improvements for disparity vector derivation、Ｊ．Ｋａｎｇ、Ｙ．Ｃｈｅｎ、Ｌ．Ｚｈａｎｇ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ（Ｑｕａｌｃｏｍｍ）。
【０１１５】
[0126]ＪＣＴ３Ｖ−Ｄ０１８１：CE2: CU-based Disparity Vector Derivation in 3D-HEVC、Ｊ．Ｋａｎｇ、Ｙ．Ｃｈｅｎ、Ｌ．Ｚｈａｎｇ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ（Ｑｕａｌｃｏｍｍ）。
【０１１６】
[0127]本開示の技法によれば、ＡＲＰを使用して、いくつかのピクチャのブロックがコーディングされ得る。より詳細には、これらの技法によれば、ブロックのＰＵがサブＰＵに分割され、ＡＲＰを使用してコーディングされ得る。たとえば、ＰＵ（たとえば、時間Ｔ２におけるビューＳ１中のＢピクチャのＰＵ）のディスパリティ動きベクトルは、時間Ｔ２においてビューＳ２のＢピクチャ中のビュー間参照ブロックを指すことがある。参照ブロックは２つ以上のブロックと重複し得、各々はそれ自体の別個の動き／ディスパリティ情報をもつ。たとえば、ビュー間参照ブロックの第１の部分は、時間Ｔ４においてビューＳ２のＢピクチャの時間的参照ブロックを識別する時間的動きベクトルを有し得、ビュー間参照ブロックの第２の部分は、時間Ｔ４においてビューＳ２のＢピクチャの異なる時間的参照ブロックを識別する時間的動きベクトルを有し得る。ビュー間参照ブロックに関する時間的参照ブロックを識別するために、これらの２つの時間的動きベクトルのうちの１つのみを使用するのではなく、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＡＲＰに従ってビュー間参照ブロックからの動き／ディスパリティ情報の両方のセットを使用して、ＰＵを２つのサブＰＵとしてコーディングし得る。
【０１１７】
[0128]図６は、ＮＢＤＶによる、コーディングユニット（ＣＵ）に対する例示的な空間的ネイバーを示す概念図である。ＮＢＤＶの一例では、５つの空間的に隣接するブロックは、ディスパリティベクトル導出のために使用され、それは、本開示によれば、ＡＲＰとともにサブＰＵレベルで符号化および復号する際に実施され得る。５つの空間的に隣接するブロックは、図６に示されているように、Ａ０、Ａ１、Ｂ０、Ｂ１およびＢ２によって示されているような、現在の予測ユニット（ＰＵ）をカバーするコーディングユニット（ＣＵ）の左下ブロック、左ブロック、右上ブロック、上ブロック、および左上ブロックである。それらは、ＨＥＶＣにおけるＭＥＲＧＥ／ＡＭＶＰモードにおいて使用されたものと同じであることに留意されたい。したがって、追加のメモリアクセスが必要とされない。
【０１１８】
[0129]時間的に隣接するブロックを検査するために、候補ピクチャリストの構成プロセスが最初に実施される。現在のビューから２つまでの参照ピクチャが、候補ピクチャとして扱われ得る。コロケートされた参照ピクチャが最初に候補ピクチャリスト中に挿入され、候補ピクチャの残りが参照インデックスの昇順に続く。両方の参照ピクチャリスト中で同じ参照インデックスをもつ参照ピクチャが利用可能であるとき、コロケートされたピクチャの同じ参照ピクチャリスト中の参照ピクチャが、他の参照ピクチャに先行する。候補ピクチャリスト中の候補ピクチャごとに、時間的に隣接するブロックを導出するために３つの候補領域が決定される。
【０１１９】
[0130]ブロックがビュー間動き予測でコーディングされるとき、異なるビュー中の対応するブロックを選択するために、ディスパリティベクトルが導出される。暗黙的ディスパリティベクトル（ＩＤＶ、または別名導出されたディスパリティベクトル）は、ビュー間動き予測において導出されたディスパリティベクトルと呼ばれる。ブロックが動き予測でコーディングされても、導出されたディスパリティベクトルは、後続のブロックをコーディングする目的のために破棄されない。
【０１２０】
[0131]３Ｄ−ＨＴＭ７．０の現在の設計では、ＮＢＤＶプロセスは、時間的に隣接するブロック中のディスパリティ動きベクトルと、空間的に隣接するブロック中のディスパリティ動きベクトルと、次いでＩＤＶとを、順に検査する。ディスパリティ動きベクトルまたはＩＤＶが発見されると、プロセスは終了する。
【０１２１】
[0132]深度情報にアクセスすることを伴うＮＢＤＶ（ＮＢＤＶ−Ｒ）の改良が説明される。１つのディスパリティベクトルがＮＢＤＶプロセスから導出されるとき、それは、参照ビューの深度マップから深度データを取り出すことによってさらに改良される。改良プロセスは、以下の２つのステップを含む。
ａ）ベースビューなど、前にコーディングされた参照深度ビュー中の導出されたディスパリティベクトルによって、対応する深度ブロックの位置を特定し、対応する深度ブロックのサイズは、現在のＰＵのサイズと同じである。
ｂ）対応する深度ブロックの４つのコーナーピクセルから１つの深度値を選択し、それを、改良されたディスパリティベクトルの水平成分に変換する。ディスパリティベクトルの垂直成分は不変である。
【０１２２】
[0133]改良されたディスパリティベクトルはビュー間動き予測のために使用されるが、改良されていないディスパリティベクトルはビュー間残差予測のために使用される。
【０１２３】
[0134]高度残差予測（ＡＲＰ）は本明細書で説明される。Ｐａｒｔ＿２Ｎ×２Ｎ（簡単のために２Ｎ×２Ｎ）に等しいパーティションモードをもつＣＵに適用される高度残差予測（ＡＲＰ）は、ＪＣＴ３Ｖ−Ｄ０１７７において提案されたように、第４回ＪＣＴ３Ｖ会議において採用された。
【０１２４】
[0135]図７は、本開示の態様によれば、サブＰＵレベルで実施される、高度残差予測（ＡＲＰ）の例示的な予測構造を示す概念図である。図７に関連して説明される各ブロックはサブＰＵブロックである。各ＰＵは２つ以上のサブＰＵに分割され、ただし、各サブＰＵは、ＰＵの重複しない一部分である。図７は、採用される予測構造を示す。図７に示されているように、現在のブロックの予測のプロセス中に、以下のブロック、「Ｃｕｒｒ」、「Ｂａｓｅ」、「ＣｕｒｒＴＲｅｆ」、および「ＢａｓｅＴＲｅｆ」が使用される。
【０１２５】
[0136]Ｃｕｒｒは、現在コーディングされているブロックである。Ｂａｓｅは、現在のブロックのピクチャとは異なるビューであるが、参照ブロックと同じ時間にあるピクチャ中の参照ブロックである。Ｂａｓｅが中にあるピクチャは参照ビューまたはベースビューと呼ばれ、Ｃｕｒｒが中にあるピクチャは現在のビューと呼ばれる。以下でより詳細に説明されるように、Ｂａｓｅはディスパリティベクトル（ＤＶ）によってＣｕｒｒから導出される。ＣｕｒｒとＢａｓｅとの間の関係は図７に示されている。
【０１２６】
[0137]たとえば、現在のビューおよび参照／ベースビューは、同時の、左眼のためのビューおよび右眼のためのビューなどの異なるビューであり得る。しかしながら、様々な例では、ビューは、様々な異なる方法で異なり得る。いくつかの例では、上記で説明された異なるビューはベース深度ビューである。他の例では、異なるビューは非ベース深度ビューである。
【０１２７】
[0138]ＣｕｒｒＴＲｅｆは、ブロックＣｕｒｒが中にある同じビュー中にあるが異なる時間におけるブロックである。ＣｕｒｒＴＲｅｆは、動き補償を使用してＣｕｒｒの時間的動きベクトル（ＴＭＶ：temporal motion vector）によってＣｕｒｒから導出される。ＣｕｒｒＴＲｅｆは、Ｃｕｒｒに対する動き補償されたブロックである。ＣｕｒｒとＣｕｒｒＴＲｅｆとの間の関係は図７に示されている。
【０１２８】
[0139]ＢａｓｅＴＲｅｆは、ブロックＢａｓｅと同じビュー中にあり、ＣｕｒｒＴＲｅｆと同じ時間のブロックである。ＢａｓｅＴＲｅｆはＣｕｒｒの時間的動きベクトル（ＴＭＶ）によってＢａｓｅから導出される。ＢａｓｅＴＲｅｆは、Ｃｕｒｒの位置からＴＭＶ＋ＤＶのベクトルを用いて識別される。ＢａｓｅＴＲｅｆは、Ｂａｓｅに対する動き補償されたブロックである。Ｃｕｒｒ、Ｂａｓｅ、およびＣｕｒｒＴＲｅｆとのＢａｓｅＴＲｅｆの関係は図７に示されている。
【０１２９】
[0140]符号化中に、ＴＭＶ、ＤＶ、残差予測子、および重み付け係数ｗは、以下でより詳細に説明されるように、計算され、ビットストリーム中で符号化される。復号中に、ビットストリームからＴＭＶと、ＤＶと、残差予測子とｗとを取り出すことと、最終予測子（final predictor）を計算するために取り出された情報を使用することとによって、Ｃｕｒｒの最終予測子が計算している。
【０１３０】
[0141]符号化中に、残差予測子はＢａｓｅＴＲｅｆ−Ｂａｓｅとして計算され、ただし、この減算演算は、ピクセルアレイＢａｓｅＴＲｅｆおよびＢａｓｅの各ピクセルに適用されるピクセルごとの減算（a pixel-wise subtraction）である。さらに、符号化中に、重み付け係数ｗは計算され、ただし、復号中に最終予測子を計算している間、重み付け係数は残差予測子を乗算される。したがって、復号中に計算される現在のブロックの最終予測子はＣｕｒｒＴＲｅｆ＋ｗ＊（ＢａｓｅＴＲｅｆ−Ｂａｓｅ）によって与えられる。
【０１３１】
[0142]いくつかの例では、３つの重み付け係数、すなわち、０、０．５および１がＡＲＰにおいて使用される。いくつかの例では、現在のＣＵに関する最小レートひずみコストにつながる、９．０．５および１の中からの重み付け係数は最終重み付け係数として選択され、（いくつかの例では、それぞれ、重み付け係数０、１、および０．５に対応する０、１および２としてコーディングされる）対応する重み付け係数インデックスは、ＣＵレベルでビットストリーム中で送信される。いくつかの例では、１つのＣＵ中のすべてのＰＵ予測は同じ重み付け係数を共有する。重み付け係数が０に等しいとき、ＡＲＰは現在のＣＵのために使用されない。
【０１３２】
[0143]上記の説明および図７は、単方向予測が適用される例に適用される。他の例では、双方向予測が適用される。これらの例では、上記で説明されたステップは各参照ピクチャリストについて適用される。現在のブロックが１つの参照ピクチャリストに関する（異なるビュー中の）ビュー間参照ピクチャを使用するとき、残差予測プロセスは無効化される。
【０１３３】
[0144]図８は、現在のブロックと参照ブロックと動き補償されたブロックとの間の関係を示す概念図であり、ただし、各ブロックはサブＰＵブロックである。サブＰＵブロックを用いたＡＲＰの復号プロセスは、以下のように説明される。
【０１３４】
[0145]第１に、ディスパリティベクトル（ＤＶ）が取得され、ただし、ＤＶはターゲット参照ビュー（Ｖ0）を指す。現在のブロックＣｕｒｒは現在のビュー（Ｖm）中にあるが、参照ビュー（Ｖ0）はＶmとは異なるビューである。いくつかの例では、ＤＶは、現在の３Ｄ−ＨＥＶＣにおいて指定されているように導出され得る。次いで、同じアクセスユニット内の参照ビューのピクチャ中で、対応するブロックＢａｓｅがディスパリティベクトルを使用して位置を特定される。現在のブロックのロケーションに追加されるＤＶは参照ビュー（Ｖ0）中のＢａｓｅのロケーションを与える。ブロックＢａｓｅのピクチャは参照ビューＶ0を有するが、現在のブロックのピクチャと同じＰＯＣ（ピクチャ順序カウント（Picture Order Count））値を有するところにあり、これは、ブロックＢａｓｅのピクチャがブロックＢａｓｅと同時にあることを意味する。
【０１３５】
[0146]次に、ＢａｓｅＴＲｅｆが位置を特定される。現在のブロックのロケーションに加算されるＴＭＶ＋ＤＶは、ＢａｓｅＴＲｅｆを含むピクチャ中のＢａｓｅＴＲｅｆのロケーションを与える。現在のブロックと、対応するブロックと、動き補償されたブロックとの間の関係が図８に示されている。ビューＶmの参照ピクチャと同じＰＯＣ値を有するビューＶ0中の参照ピクチャは、対応するブロックの参照ピクチャとして選択される。
【０１３６】
[0147]重み付けされたファクタおよび残差ブロックはビットストリームから取り出され得る。重み付け係数（ｗ）は、重み付けされた残差ブロックを得るために残差ブロック（ＢａｓｅＴＲｅｆ−Ｂａｓｅ）に適用され、重み付けされた残差ブロックの値は、予測されたサンプルに加算される。すなわち、上記で説明されたように、最終予測子はＣｕｒｒＴＲｅｆ＋ｗ＊（ＢａｓｅＴＲｅｆ−Ｂａｓｅ）のように計算される。
【０１３７】
[0148]動きベクトルスケーリングを介した参照ピクチャ選択の一例は以下のように実施され得る。いくつかの例では、参照ビューとは異なるピクチャが、対応するブロックの動き補償されたブロック（たとえば、図７に示されたＢａｓｅＴＲｅｆ）を生成するためにアクセスされる必要があり得る。いくつかの例では、現在のサブＰＵの復号された動きベクトルは、重み付け係数が０に等しくないとき、上記で説明されたプロセスにおいてＴＭＶを適用する前に、固定されたピクチャ（a fixed picture）の方へスケーリングされる。ＪＣＴ３Ｖ−Ｄ０１７７では、固定されたピクチャは、それが同じビューからのものである場合、各参照ピクチャリストの第１の参照ピクチャとして定義される。いくつかの例では、復号された動きベクトルが固定されたピクチャを指さないとき、復号された動きベクトルは、最初にスケーリングされ、次いでＣｕｒｒＴＲｅｆおよびＢａｓｅＴＲｅｆを識別するために使用される。ＡＲＰのために使用されるそのような参照ピクチャはターゲットＡＲＰ参照ピクチャと呼ばれることがある。
【０１３８】
[0149]いくつかの例では、動き補償は補間フィルタ処理を使用し得る。いくつかの例では、双線形フィルタは補間プロセス中に適用される。いくつかの例では、従来の８／４タップフィルタが補間プロセス中に適用され得る。
【０１３９】
[0150]いくつかの例では、参照ビューは、ＮＢＤＶプロセスから返されるビュー順序インデックスによって識別される。いくつかの例では、１つの参照ピクチャリスト中の１つのＰＵの参照ピクチャが現在のビューとは異なるビューからのものであるとき、ＡＲＰはこの参照ピクチャリストについて無効化される。
【０１４０】
[0151]いくつかの例では、上記で説明された例におけるディスパリティベクトル（ＤＶ）の代わりにディスパリティ動きベクトル（ＤＭＶ）が使用され得る。たとえば、ＤＭＶは、上記で説明されたＢａｓｅとＢａｓｅＴＲｅｆとの導出のためにＤＶの代わりに使用され得る。
【０１４１】
[0152]いくつかの例では、ビュー間残差に関するＡＲＰは以下のように実施される。現在のサブＰＵがビュー間参照ピクチャを使用するとき、ビュー間残差の予測が可能にされる。ビュー間残差に関するＡＲＰが実施されるとき、異なるアクセスユニット内のビュー間残差が計算され、次いで、計算された残差情報が、現在のサブＰＵブロックのビュー間残差を予測するために使用される。
【０１４２】
[0153]図９は、ビュー間残差に関するＡＲＰを示す概念図である。参照ブロックＢａｓｅは、現在のブロックのディスパリティ動きベクトル（ＤＭＶ）によって位置を特定される参照／ベースビュー中のブロックである。ブロックＣｕｒｒＴＲｅｆは、現在のブロックと同じビューをもつが異なるＰＯＣをもつピクチャ中のブロックであり、現在のブロックからのＴＭＶのベクトルを用いて位置を特定される。ブロックＢａｓｅＴＲｅｆは、Ｂａｓｅと同じビュー、およびＢａｓｅＴＲｅｆと同じＰＯＣをもつピクチャ中にあり、現在のブロックからのｍｖＬＸ＋ＤＭＶのベクトルを用いて識別される。
【０１４３】
[0154]現在のサブＰＵの残差信号の残差予測子はＣｕｒｒＴＲｅｆ−ＢａｓｅＴＲｅｆとして計算され得、ただし、減算はピクセルごとの減算を示す。
【０１４４】
[0155]時間的残差予測のためのＡＲＰの現在の設計と同様に、３つの相対的ブロックを生成するために双線形フィルタが使用され得る。
【０１４５】
[0156]また、Ｂａｓｅによって含まれている時間的動きベクトルが、現在のサブＰＵの第１の利用可能な時間的参照ピクチャの異なるアクセスユニット中にある参照ピクチャを指すとき、いくつかの例では、それは、最初に、第１の利用可能な時間的参照ピクチャにスケーリングされ、スケーリングされた動きベクトルは、異なるアクセスユニット中の２つのブロックの位置を特定するために使用される。
【０１４６】
[0157]図９は、ビュー間予測された動きベクトル候補の導出プロセスの一例を示す。
【０１４７】
[0158]いくつかの例では、ＩＣ（照明補償（Illumination Compensation））とＡＲＰ重み付け係数シグナリングとの同時最適化は、以下のように実施され得る。
【０１４８】
[0159]ＩＣの使用は、フラグ、すなわち、コーディングユニット（ＣＵ）レベルでシグナリングされ得るｉｃ＿ｆｌａｇによって示され得るが、ＡＲＰ重み付け係数も、シグナリングされるときにＣＵレベルにある。いくつかの例では、ｉｃ＿ｆｌａｇのシグナリングは、ｉｃ＿ｆｌａｇの不要なシグナリングオーバーヘッドを回避するために、ＡＲＰ重み付け係数が０に等しくないときスキップされる。
【０１４９】
[0160]いくつかの例では、ＡＲＰがビュー間残差について使用されるとき、またはディスパリティ動きベクトル（ＤＭＶ）がＤＶの代わりに使用されるとき、現在のＰＵの参照ブロックの中心位置をカバーするブロック（ＣＲ）は、１つの時間的／ディスパリティ動きベクトルを取得するために使用される。しかしながら、ＣＲの動き情報は利用不可能であり得る。いくつかの例では、ＣＲの動き情報が利用不可能であるとき、ビュー間残差に関するＡＲＰは無効にされ、時間的残差に関するＡＲＰは、依然としてＮＢＤＶプロセスからＤＶを使用する。いくつかの例では、ＣＲの動き情報が利用不可能であるとき、もう１つのブロックが検査される。いくつかの例では、追加のブロックは、時間的マージング候補（temporal merging candidate）、すなわち、参照ブロックの右下位置をカバーするＰＵ（ＢＲ）と同様の方法で定義される。いくつかの例では、ＣＲおよびＢＲは、順序が正しく検査され、（時間的またはディスパリティの所望のタイプをもつ）動きベクトルがＣＲ中に見つけられないとき、ＢＲブロックに関連する動き情報が使用される。
【０１５０】
[0161]追加のブロックを検査することのいくつかの例は、以下のように説明される。これらの例では、サンプルは以下のように定義され得る。現在のＰＵの左上サンプルは（ｘ，ｙ）として定義され、現在のＰＵのサイズはＷ×Ｈとして定義され、現在のＰＵの時間的／ディスパリティ動きベクトルは（ｍｖ［０］，ｍｖ［１］）として定義され、参照ブロックの中心位置は（ｘＲｅｆＰＵ，ｙＲｅｆＰＵ）として定義され、ただし、ｘＲｅｆＰＵ＝ｘ＋Ｗ／２＋（（ｍｖ［０］＋２）＞＞２）、およびｙＲｅｆＰＵ＝ｙ＋Ｈ／２＋（（ｍｖ［１］＋２）＞＞２）であり、参照ブロックの右下の位置は（ｘＲｅｆＰＵ，ｙＲｅｆＰＵ）として定義され、ただし、ｘＲｅｆＰＵ＝ｘ＋Ｗ＋（（ｍｖ［０］＋２）＞＞２）およびｙＲｅｆＰＵ＝ｙ＋Ｈ＋（（ｍｖ［１］＋２）＞＞２）である。
【０１５１】
[0162]図１０は、各ＰＵが４つの等しいサイズの正方形形状のサブＰＵに分割されたビュー間残差に関する例示的なサブＰＵベースのＡＲＰを示す概念図である。本開示によれば、ＰＵは、異なる例では様々な異なる方法で２つ以上のサブＰＵに分割され得るので、この例は、単に例として図示および説明される。また、図１０に、ＰＵの１つのサブＰＵについて実施されているＡＲＰを示し、ＡＲＰがそのために実施されているサブＰＵに関する対応するベクトルを示す。図１０には示されていないが、各他のサブＰＵは、ＡＲＰがサブＰＵについて実施される間使用するために動きベクトルのそれ自体のセットを有する。
【０１５２】
[0163]時間的予測残差とビュー間予測残差のいずれかまたは両方についてＡＲＰを実施することによって、ディスパリティ動きベクトルまたは時間的動きベクトルのより微細なグラニュラリティ（finer granularity）が、コーディングユニット中の現在の予測ユニット（ＰＵ）の複数のブロックについて維持され得る。動きベクトルのより微細なグラニュラリティは、現在のＰＵ内の各ブロックがそれ自体のＢａｓｅとＣｕｒｒＴＲｅｆとＢａｓｅＴＲｅｆとを識別することを可能にし得る。いくつかの例では、および現在のＰＵの各ブロックについて別個の残差が生成される。
【０１５３】
[0164]いくつかの例では、ＡＲＰは全コーディングユニット（ＣＵ）ついてシグナリングされ、ＡＲＰがＣＵについて適用されるべきか否かを示し得る。ＡＲＰがそのためにシグナリングされるＣＵをコーディングするとき、ＣＵはＰＵに分割され、各ＰＵはサブＰＵに分割される。たとえば、サブＰＵレベルＡＲＰがビュー間残差に適用されるとき、現在のＰＵ（たとえば、図１０中のＣｕｒｒ）はいくつかのサブＰＵに分割される。各所与の（ｉ番目の）サブＰＵについて、参照ビュー（たとえば、図１０中のＢａｓｅｉ）の同じアクセスユニット中のサブＰＵの同じサイズをもつ参照ブロックは、現在のＰＵのディスパリティ動きベクトル（すなわち、図１０中のＤＭＶ）によって識別される。対応する参照ブロックが１つの時間的動きベクトルを含んでいる場合、それは、異なるアクセスユニット中の２つのブロック（たとえば、ＣｕｒｒＴＲｅｆｉおよびＢａｓｅＴＲｅｆｉ）の位置を特定するために使用され、これらの２つのブロックは、上記でより詳細に説明されたように残差予測子を生成するために使用される。２つのブロックは、ＢａｓｅｉとＤＭＶとの時間的動き情報によって識別される。
【０１５４】
[0165]いくつかの例では、Ｂａｓｅｉの１つの所与の位置（たとえば、中心位置）を含んでいる予測ユニットに関連する時間的動きベクトルのみが考慮される。いくつかの例では、Ｂａｓｅｉの複数の位置（たとえば、中心および右下）を含んでいる予測ユニットは順序が正しく検査され、時間的動きベクトルが発見されると、検査プロセスは終了する。
【０１５５】
[0166]他の例では、ＰＵレベルの代表的な時間的動き情報が最初に発見され、利用可能な場合、デフォルト動き情報と見なされる。Ｂａｓｅｉに関連する１つまたは複数の所与の位置が利用可能な時間的動き情報に導かないとき、代表的な時間的動き情報はＢａｓｅｉに割り当てられる。
【０１５６】
[0167]他の例では、時間的動きベクトルが発見されない場合、デフォルト動き情報が適用される。いくつかの例では、デフォルト動き情報は、現在のディスパリティ動きベクトルによって識別される現在のＰＵの参照ブロックによって含まれている時間的動き情報として定義され、ただし、参照ブロックは、現在のＰＵと同じサイズを有する。いくつかの例では、デフォルト動き情報は０値動きベクトルとして定義され、現在の参照ピクチャリスト中の最小インデックスをもつ時間的参照ピクチャのインデックスとして定義される。
【０１５７】
[0168]ビュー間残差に適用されているサブＰＵレベルＡＲＰのいくつかの例では、（ＤＭＶによって識別されるように）現在のＰＵの対応する領域の動き情報は、領域内のすべてのブロックの動き情報がアクセスされるように一度アクセスされ得る。
【０１５８】
[0169]サブＰＵレベルＡＲＰが時間的残差に適用されるとき、現在のＰＵはいくつかのサブＰＵに分割される。所与のサブＰＵについて、現在のビューの異なるアクセスユニット中のサブＰＵの同じサイズをもつ参照ブロックは、現在のＰＵの同じ時間的動きベクトルによって識別される。サブＰＵの対応する参照ブロックが１つのディスパリティ動きベクトルを含んでいる場合、ディスパリティ動きベクトルは、ＮＢＤＶプロセスからディスパリティベクトルを改良し、参照ビュー中の２つのブロック（ＢａｓｅおよびＢａｓｅＴＲｅｆ）を識別するために使用される。場合によっては、（たとえば、ＮＢＤＶを利用することによって導出される）ディスパリティベクトルはデフォルトベクトルと見なされ、参照ビュー中の２つのブロックを識別するために使用される。参照ビュー中の２つのブロックは、残差予測子を生成するために使用される。
【０１５９】
[0170]いくつかの例では、１つまたは複数のサブＰＵのサイズは８×８ピクセルに等しくなり得る。いくつかの例では、１つまたは複数のサブＰＵのサイズは、たとえば、非限定的な例、８×１６、１６×８、または１６×１６ピクセルのように、８×８ピクセルよりも大きくなり得る。いくつかの例では、１つまたは複数のサブＰＵのサイズは現在のＰＵまたは現在のＣＵのサイズに依存し得る。いくつかの例では、１つまたは複数のサブＰＵのサイズはＰＵよりも大きくない。たとえば、所与の例示的な設計である場合、サブＰＵサイズは１６×１６であるが、ＰＵサイズはちょうど８×１６であり、この場合、サブＰＵレベルＡＲＰが適用されるとき、特定のＰＵについて、最小処理サイズを１６×１６と見なすのではなく、このＰＵに関する最小処理サイズは依然として８×１６である。
【０１６０】
[0171]必要とされるサブＰＵ（サブＣＵ）サイズが（Ｋ×Ｌ）であり、ＰＵサイズが（Ｍ，Ｎ）である一例では、所与のＰＵ内の実際の処理サイズは（ｍｉｎ（Ｋ，Ｍ）×ｍｉｎ（Ｌ，Ｎ））である。
【０１６１】
[0172]いくつかの例では、サブＰＵのサイズは、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）またはスライスヘッダ中でシグナリングされ得る。
【０１６２】
[0173]いくつかの例では、Ｎが自然数である２Ｎ×２Ｎのパーティションサイズが説明されるが、他の例では、２Ｎ×２Ｎ以外のパーティションサイズが採用され得る。他の例では、ＰＵの幅および高さが両方とも８ピクセルに等しいかまたはそれよりも大きいときのみ、ＡＲＰは適用される。
【０１６３】
[0174]図１１は、ビデオデータを符号化するための例示的なプロセス（１１７０）を示す流れ図である。いくつかの例では、図１１のプロセスは、ビデオエンコーダ２０などのエンコーダによって実施され得る。開始ブロックの後に、エンコーダは、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割する（１１７１）。ＰＵが２つ以上のサブＰＵに分割されることが述べられるとき、概念上の分割への言及が行われており、したがって、ＰＵ全体に対してすべての動作を実施することとは対照的に、後続の動作は各別個のサブＰＵに別々に実施され得る。
【０１６４】
[0175]エンコーダは、次いで、ＰＵの各サブＰＵに関するディスパリティ動きベクトル（ＤＭＶ）またはディスパリティベクトル（ＤＶ）を生成する（１１７２）。ＤＶまたはＤＭＶを生成するために採用されるプロセスは、従来の動き補償において時間的動きベクトルを生成するためのプロセスと、たとえ異なっていても（albeit different）、同様であり得る。しかしながら、それは、ある時間におけるピクチャと別の時間におけるピクチャとの間でブロックが移動したところを証明するベクトルを生成することではなく、ＤＭＶまたはＤＶが、同時に２つの異なるビュー間のブロックの位置の変化を示し、したがって、経時的な動き（motion over time）ではなく異なるビュー中のブロックの位置のディスパリティを示すという点で異なる。また、ブロック１１７２において使用されるプロセスは、ブロックがサブＰＵブロックであるという点で、従来の動き補償とは異なる。
【０１６５】
[0176]エンコーダは、次いで、ＰＵの各サブＰＵについて生成される時間的動きベクトル（ＴＭＶ）を生成する（１１７４）。時間的動きベクトルは動き補償技法を介して生成され得る。
【０１６６】
[0177]エンコーダは、次いで、ＰＵの各サブＰＵに関する残差予測子を生成する（１１７６）。残差予測子はＢａｓｅＴＲｅｆ−Ｂａｓｅとして示され、ここにおいて、減算演算はＢａｓｅＴＲｅｆとＢａｓｅとの間のピクセルごとの減算演算である。「Ｂａｓｅ」は、現在のブロックと比較して、ＤＶ（またはディスパリティベクトルではなく、ディスパリティ動きベクトルが使用される場合にはＤＭＶ）のベクトルを用いて識別される対応するブロックを指し、「ＢａｓｅＴＲｅｆ」は、現在のブロックと比較して、ＤＶ＋ＴＭＶ（またはディスパリティベクトルではなく、ディスパリティ動きベクトルが使用される場合にはＤＭＶ＋ＴＭＶ）のベクトルを用いて識別される対応するブロックを指す。
【０１６７】
[0178]エンコーダは、次いで、ＰＵの各サブＰＵについて生成される重み付け係数を生成する（１１７７）。いくつかの例では、重み付け係数は０、０．５、または１のいずれかであり、重み付け係数は、可能な重み付け係数または０、０．５、または１のうちのどれが最低レートひずみコストに導くことになるかを決定することによって生成される。いくつかの例では、１つの重み付け係数がＣＵ全体について決定され、ＣＵのすべてのコード化された部分は同じ重み付け係数を使用する。他の例では、別個の重み付け係数がＣＵの各別個の部分について計算され、記憶され得る。
【０１６８】
[0179]エンコーダは、次いで、高度残差予測（ＡＲＰ）に従って、ＰＵの各サブＰＵに対応するＣＵの部分を符号化する（１１９９）。プロセスは、次いで、他の処理が再開されるリターンブロックに進む。
【０１６９】
[0180]このようにして、図１１の方法は、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを取得することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを取得することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分を符号化することと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分を符号化することとを含む方法の一例を表す。
【０１７０】
[0181]図１２は、ビデオデータをコーディングするための例示的なプロセス（１２７０）を示す流れ図である。いくつかの例では、図１２のプロセスは、ビデオデコーダ３０などのデコーダによって実施され得る。開始ブロックの後に、デコーダは、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割する（１２７１）。
【０１７１】
[0182]デコーダは、次いで、ＰＵの各サブＰＵに関するディスパリティ動きベクトル（ＤＭＶ）またはディスパリティベクトル（ＤＶ）を取得する（１２７２）。いくつかの例では、ＤＭＶまたはＤＶは、ビットストリームからＤＭＶまたはＤＶを取り出すことによって取得される。デコーダは、次いで、異なるビュー中の現在のサブＰＵ対応するサブＰＵブロックの位置を特定する（１２７３）。これは、現在のサブＰＵのロケーションからブロック１２７２において取得されたＤＭＶまたはＤＶを使用して達成される。
【０１７２】
[0183]デコーダは、次いで、ＰＵの各サブＰＵについて生成される時間的動きベクトル（ＭＶ）を生成する（１２７４）。いくつかの例では、ＴＭＶは、ビットストリームからＴＭＶを取り出すことによって取得される。デコーダは、次いで、ＢａｓｅＴＲｅｆ中の対応するサブＰＵブロックを提供する（１２７５）。これは、現在のサブＰＵのロケーションからのＤＶ＋ＴＭＶ（または、ディスパリティベクトルではなく、ディスパリティ動きベクトルが使用された場合、ＤＭＶ＋ＴＭＶ）を使用して達成される。
【０１７３】
[0184]デコーダは、次いで、予測子を導出する（１２７８）。これは、メモリから残差予測子と重み付け係数とを取り出すことと、重み付けされた残差ブロックを得るために残差ブロックに重み付け係数を適用することと、予測されたサンプルに重み付けされた残差ブロックの値を加算することとによって達成され得る。デコーダは、次いで、高度残差予測（ＡＲＰ）に従って、ＰＵの各サブＰＵに対応するＣＵの部分を復号する（１２９９）。プロセスは、次いで、他の処理が再開されるリターンブロックに進む。
【０１７４】
[0185]このようにして、図１２の方法は、予測ユニット（ＰＵ）の２つ以上のサブＰＵがＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）のＰＵを、第１のサブＰＵと第２のサブＰＵとを含む２つ以上のサブＰＵに分割することと、第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、第２のサブＰＵに関する第１のタイプの第２の動きベクトルとを決定することと、第２のタイプが第１のタイプとは異なるように、第１のサブＰＵに関する第２のタイプの第３の動きベクトルと、第２のサブＰＵに関する第２のタイプの第４の動きベクトルとを決定することと、第１の動きベクトルと第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って第１のサブＰＵに対応するＣＵの第１の部分を復号することと、第２の動きベクトルと第４の動きベクトルとを使用してＡＲＰに従って第２のサブＰＵに対応するＣＵの第２の部分を復号することとを含む方法の一例を表す。
【０１７５】
[0186]上記例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの動作またはイベントが、異なるシーケンス中で実施され得、全体的に追加、マージ、または除外され得る（たとえば、すべての説明された動作またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、動作またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【０１７６】
[0187]１つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実施され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７７】
[0188]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１７８】
[0189]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実施され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明される技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１７９】
[0190]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上記で説明されたように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明された１つまたは複数のプロセッサを含む、好適なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
【０１８０】
[0191]様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、前記方法は、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを決定することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを決定することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分を復号することと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分を復号することと
を備える、方法。
［Ｃ２］
前記第１のサブＰＵのサイズと前記第２のサブＰＵのサイズとが等しい、Ｃ１に記載の方法。
［Ｃ３］
前記第２のサブＰＵのサイズが前記第１のサブＰＵのサイズとは異なる、Ｃ１に記載の方法。
［Ｃ４］
前記第１のサブＰＵのサイズが８ピクセル×８ピクセルである、Ｃ１に記載の方法。
［Ｃ５］
前記第１のサブＰＵのサイズが少なくとも８ピクセル×少なくとも８ピクセルである、Ｃ１に記載の方法。
［Ｃ６］
前記ＣＵの前記第１の部分を復号することが、
参照ビュー中のピクチャ中で、別のピクチャ中のそれぞれの対応するブロックの位置を特定するために現在のブロックからの前記第１の動きベクトルを使用することと、
前記現在のブロックからの前記第３の動きベクトルを使用して現在のビュー中の第１の参照ブロックを取得することと、
前記現在のブロックから第２の参照ブロックを取得するために前記第１の動きベクトルと前記第３の動きベクトルとを使用することと、
前記第１の参照ブロックと前記第２の参照ブロックとに少なくとも部分的に基づいて残差予測子を取得することと、
重み付け係数を取得することと、
重み付けされた残差ブロックを取得するために前記残差予測子に前記重み付け係数を適用することと、
前記重み付けされた残差ブロックと前記それぞれの対応するブロックとを使用して前記ＣＵの前記第１の部分を復号することと
を含む、Ｃ１に記載の方法。
［Ｃ７］
前記ＣＵの前記第１の部分を復号することが、
前記第３の動きベクトルを使用して前記ＣＵの前記第１の部分に関する第１の予測された値を計算することと、
前記第１の動きベクトルによって識別されるそれぞれの対応するブロックと、前記それぞれの対応するブロックに適用されたときに前記第３の動きベクトルによって識別されるビュー間参照ブロックとの間の差を使用して、前記ＣＵの前記第１の部分に関する第２の予測された値を計算することと、
前記第１の予測された値と前記第２の予測された値とを使用して前記ＣＵの前記第１の部分を復号することと
を含む、Ｃ１に記載の方法。
［Ｃ８］
前記ＣＵの前記部分をコーディングすることが、
前記第１の動きベクトルを使用して前記ＣＵの前記第１の部分に関する第１の予測された値を計算することと、
前記第３の動きベクトルによって識別される参照ブロックと、前記参照ブロックに適用されたときに前記第３の動きベクトルによって識別されるビュー間参照ブロックとの間の差を使用して、前記ＣＵの前記第１の部分に関する第２の予測された値を計算することと、
前記それぞれの第１の予測された値と前記それぞれの第２の予測された値との組合せから前記ＣＵの前記第１の部分に関する実際の予測された値を計算することと
を備える、Ｃ１に記載の方法。
［Ｃ９］
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティ動きベクトルを含む、Ｃ１に記載の方法。
［Ｃ１０］
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティベクトルを含む、Ｃ１に記載の方法。
［Ｃ１１］
前記第３の動きベクトルと前記第４の動きベクトルとが同じ動きベクトルを含む、Ｃ１に記載の方法。
［Ｃ１２］
前記第１のサブＰＵのサイズと前記第２のサブＰＵのサイズとがビデオパラメータセット（ＶＰＳ）中でシグナリングされる、Ｃ１に記載の方法。
［Ｃ１３］
前記第２のタイプが時間的動きベクトルを含む、Ｃ１に記載の方法。
［Ｃ１４］
前記第１のタイプがディスパリティ動きベクトルを含む、Ｃ１３に記載の方法。
［Ｃ１５］
前記第１のタイプがディスパリティベクトルを含む、Ｃ１３に記載の方法。
［Ｃ１６］
前記第３の動きベクトルを決定することが、
デフォルト時間的動きベクトルとして前記ＣＵに関する時間的動きベクトルを決定することと、
前記ＣＵに適用される少なくとも１つのディスパリティ動きベクトルによって識別される対応するブロックが利用可能な時間的動き情報を有しないとき、前記第３の動きベクトルとして前記ＣＵに関する前記時間的動きベクトルを使用することと
を含む、Ｃ１３に記載の方法。
［Ｃ１７］
ビデオデータを符号化する方法であって、前記方法は、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分を符号化することと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分を符号化することと
を備える、方法。
［Ｃ１８］
前記ＣＵの前記第１の部分を符号化することが、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して前記第１のサブＰＵに関する残差予測子を取得することと、
前記第１のサブＰＵに関する重み付け係数を取得することと、
前記残差予測子への前記重み付け係数の適用から取得された重み付けされた残差予測子を使用して前記第１のサブＰＵを符号化することと
を含む、Ｃ１７に記載の方法。
［Ｃ１９］
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティ動きベクトルを含む、Ｃ１７に記載の方法。
［Ｃ２０］
前記第１のタイプが時間的動きベクトルを含み、前記第２のタイプがディスパリティベクトルを含む、Ｃ１７に記載の方法。
［Ｃ２１］
前記第３の動きベクトルと前記第４の動きベクトルとが同じ動きベクトルを含む、Ｃ１７に記載の方法。
［Ｃ２２］
前記第２のタイプが時間的動きベクトルを含む、Ｃ１７に記載の方法。
［Ｃ２３］
前記第１のタイプがディスパリティ動きベクトルを含む、Ｃ２２に記載の方法。
［Ｃ２４］
前記第１のタイプがディスパリティベクトルを含む、Ｃ２２に記載の方法。
［Ｃ２５］
ビデオデータをコーディングするためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリに結合され、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分をコーディングすることと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分をコーディングすることと
を行うように構成された、１つまたは複数のプロセッサと
を備える、デバイス。
［Ｃ２６］
前記第１のタイプがディスパリティベクトルまたはディスパリティ動きベクトルのうちの少なくとも１つを含む、Ｃ２５に記載のデバイス。
［Ｃ２７］
前記第２のタイプが時間的動きベクトルを含む、Ｃ２５に記載のデバイス。
［Ｃ２８］
前記デバイスが、前記ＣＵの前記第１の部分を符号化し、前記ＣＵの前記第２の部分を符号化するように構成されたビデオエンコーダである、Ｃ２５に記載のデバイス。
［Ｃ２９］
前記デバイスが、前記ＣＵの前記第１の部分を復号し、前記ＣＵの前記第２の部分を復号するように構成されたビデオデコーダである、Ｃ２５に記載のデバイス。
［Ｃ３０］
実行されたとき、少なくとも１つのプロセッサに、
予測ユニット（ＰＵ）の２つ以上のサブＰＵが前記ＰＵの重複しない部分であるように、コーディングユニット（ＣＵ）の前記ＰＵを、第１のサブＰＵと第２のサブＰＵとを含む前記２つ以上のサブＰＵに分割することと、
前記第１のサブＰＵに関する第１のタイプの第１の動きベクトルと、前記第２のサブＰＵに関する前記第１のタイプの第２の動きベクトルとを取得することと、
第２のタイプが前記第１のタイプとは異なるように、前記第１のサブＰＵに関する前記第２のタイプの第３の動きベクトルと、前記第２のサブＰＵに関する前記第２のタイプの第４の動きベクトルとを取得することと、
前記第１の動きベクトルと前記第３の動きベクトルとを使用して高度残差予測（ＡＲＰ）に従って前記第１のサブＰＵに対応する前記ＣＵの第１の部分をコーディングすることと、
前記第２の動きベクトルと前記第４の動きベクトルとを使用してＡＲＰに従って前記第２のサブＰＵに対応する前記ＣＵの第２の部分をコーディングすることと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【図１】
0006271734.tif 000002
【図２】
0006271734.tif 000003
【図３】
0006271734.tif 000004
【図４】
0006271734.tif 000005
【図５】
0006271734.tif 000006
【図６】
0006271734.tif 000007
【図７】
0006271734.tif 000008
【図８】
0006271734.tif 000009
【図９】
0006271734.tif 000010
【図１０】
0006271734.tif 000011
【図１１】
0006271734.tif 000012
【図１２】
0006271734.tif 000013