(57)【要約】  ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、それぞれのＣＵがピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することができる。さらに、ビデオコーダは、それぞれのＣＵについての視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき、ビデオコーダは、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。
2016524408.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成することと
を備える方法。
【請求項２】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記スライスが、波面並列処理（ＷＰＰ）を使用して復号される、請求項１に記載の方法。
【請求項４】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定すること
をさらに備える、請求項１に記載の方法。
【請求項５】
前記初期値がゼロである、請求項１に記載の方法。
【請求項６】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１に記載の方法。
【請求項７】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新する、請求項１に記載の方法。
【請求項８】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１に記載の方法。
【請求項９】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することと
を備える方法。
【請求項１１】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定すること
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記スライスが、波面並列処理（ＷＰＰ）を使用して符号化される、請求項１０に記載の方法。
【請求項１３】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定すること
をさらに備える、請求項１０に記載の方法。
【請求項１４】
前記初期値がゼロである、請求項１０に記載の方法。
【請求項１５】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１０に記載の方法。
【請求項１６】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新する、請求項１０に記載の方法。
【請求項１７】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１０に記載の方法。
【請求項１８】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１０に記載の方法。
【請求項１９】
復号されたピクチャを記憶するバッファと、
１つまたは複数のプロセッサと
を備えるデバイスであって、前記１つまたは複数のプロセッサが、ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定し、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行し、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定する
ように構成されるデバイス。
【請求項２０】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定する
ように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記スライスが、波面並列処理（ＷＰＰ）を使用してコーディングされる、請求項１９に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定する
ように構成される、請求項１９に記載のデバイス。
【請求項２３】
前記初期値がゼロである、請求項１９に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサが、１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定するように構成され、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１９に記載のデバイス。
【請求項２５】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新するように構成される、請求項１９に記載のデバイス。
【請求項２６】
前記１つまたは複数のプロセッサが、前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行するように構成される、請求項１９に記載のデバイス。
【請求項２７】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成するように構成される、請求項１９に記載のデバイス。
【請求項２８】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成するように構成される、請求項１９に記載のデバイス。
【請求項２９】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、
前記それぞれのマクロブロックが前記ピクチャのマクロブロック行の第１のマクロブロックである、または前記それぞれのマクロブロックが前記スライスの第１のマクロブロックであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、前記それぞれのマクロブロックについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのマクロブロックについての前記視差ベクトルに部分的に基づいて、前記それぞれのマクロブロックについてのコーディングブロックを再構成することと
を備える方法。
【請求項３０】
エントロピーコーデックがコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）である場合、前記ＤＤＶをゼロに再設定することと、前記エントロピーコーディングされることがコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）である場合、前記ＤＤＶをゼロに再設定しないこととをさらに備える、請求項２９に記載の方法。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、内容全体が参照により本明細書に組み込まれる、２０１３年５月３１日に出願された米国仮特許出願第６１／８２９，８２１号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディング（すなわち、ビデオデータの符号化および／または復号）に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）がビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス内のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用することができる。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は次いで量子化することができる。量子化係数は、最初に２次元アレイで構成され、係数の１次元ベクトルを生成するために走査することができ、なお一層の圧縮を達成するためにエントロピーコーディングを適用することができる。
【０００６】
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。開発されている、または開発中のいくつかの３次元（３Ｄ）ビデオ規格はマルチビューコーディング態様を利用する。たとえば、異なるビューは、３Ｄビデオをサポートするために左眼ビューと右眼ビューとを伝えることができる。代替的に、いくつかの３Ｄビデオコーディングプロセスは、いわゆるマルチビュー＋深度コーディング（multiview plus depth coding）を適用し得る。マルチビュー＋深度コーディングでは、３Ｄビデオビットストリームが、テクスチャビューコンポーネントだけでなく、深度ビューコンポーネントをも含んでいることがある。たとえば、各ビューは、１つのテクスチャビューコンポーネントと１つの深度ビューコンポーネントとを備え得る。
【発明の概要】
【０００７】
[0007]概して、本開示は、３Ｄ−ＡＶＣコーデックまたは３Ｄ−ＨＥＶＣコーデックを用いた２つ以上のビューのコーディングを含む、アドバンストコーデックに基づくマルチビュービデオコーディングに関する。具体的には、本開示は、視差ベクトルに関する技法を説明する。
【０００８】
[0008]いくつかの例（たとえば、３Ｄ−ＨＥＶＣコーディングの例）では、ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）について、ビデオコーダは、それぞれのＣＵがそのピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）をある値に設定することができる。さらに、ビデオコーダは、それぞれのＣＵについての視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ：neighbor-based disparity vector derivation）プロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき、ビデオコーダは、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。ビデオコーダがビデオエンコーダである場合、ビデオコーダは、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することができる。ビデオコーダがビデオデコーダである場合、ビデオコーダは、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することができる。
【０００９】
[0009]同様に、いくつかの例（たとえば、３Ｄ−ＡＶＣコーディングの例）では、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、ビデオコーダは、それぞれのマクロブロックがそのピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値に設定することができる。そのような例では、ビデオコーダは、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、ビデオコーダは、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することができる。ビデオコーダがビデオエンコーダである場合、ビデオコーダは、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することができる。ビデオコーダがビデオデコーダである場合、ビデオコーダは、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのコーディングブロックを再構成することができる。
【００１０】
[0010]一例では、本開示は、ビデオデータを復号する方法を説明する。本方法は、ビデオデータのピクチャのスライスの各それぞれのＣＵについて、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定することを備える。本方法はまた、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することを備える。さらに、本方法は、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することを備える。さらに、本方法は、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することを備える。
【００１１】
[0011]別の例では、本開示は、ビデオデータを符号化する方法を説明する。本方法は、ビデオデータのピクチャのスライスの各それぞれのＣＵについて、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定することを備える。さらに、方法は、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することを備える。さらに、本方法は、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することを備える。本方法はまた、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのサンプルブロックの符号化された表現を生成することを備える。
【００１２】
[0012]別の例では、本開示は、復号されたピクチャを記憶するバッファと、１つまたは複数のプロセッサとを備えるデバイスを説明し、１つまたは複数のプロセッサは、ビデオデータのピクチャのスライスの各それぞれのＣＵについて、１つもしくは複数のプロセッサが、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定し、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行し、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定するように構成される。
【００１３】
[0013]別の例では、本開示は、ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定するための手段と、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行するための手段と、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定するための手段とを備えるデバイスを説明する。
【００１４】
[0014]別の例では、本開示は、実行されると、１つもしくは複数のプロセッサに、ビデオデータのピクチャのスライスの各それぞれのＣＵについて、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵであるか、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定することと、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することと、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することとを行わせる命令を記憶したコンピュータ可読データ記憶媒体（たとえば、非一時的コンピュータ可読データ記憶媒体）を説明する。
【００１５】
[0015]別の例では、本開示は、ビデオデータを復号する方法を説明する。本方法は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値に設定することを備える。本方法はまた、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することを備える。さらに、本方法は、ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することを備える。さらに、本方法は、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロックを再構成することを備える。
【００１６】
[0016]別の例では、本開示は、ビデオデータを符号化する方法を説明する。本方法は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値に設定することを備える。さらに、本方法は、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することを備える。さらに、本方法は、ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することを備える。本方法はまた、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロックの符号化された表現を生成することを備える。ビデオエンコーダまたはビデオデコーダなど、１つもしくは複数のデバイスは、本方法を実行するように構成され得る。
【００１７】
[0017]別の例では、本開示は、復号されたピクチャを記憶するバッファと、１つもしくは複数のプロセッサとを備えるデバイスであって、１つまたは複数のプロセッサは、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、１つもしくは複数のプロセッサが、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値（たとえば、ゼロ）に設定し、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行し、ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定するように構成される、デバイスを説明する。
【００１８】
[0018]別の例では、本開示は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値（たとえば、ゼロ）に設定するための手段と、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行するための手段と、ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定するための手段とを備えるデバイスを説明する。
【００１９】
[0019]別の例では、本開示は、実行されると、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて、１つもしくは複数のプロセッサに、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックであるか、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ＤＤＶを初期値（たとえば、ゼロ）に設定することと、それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することと、ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することとを行わせる命令を記憶したコンピュータ可読データ記憶媒体（たとえば、非一時的コンピュータ可読データ記憶媒体）を説明する。
【００２０】
[0020]本開示の１つまたは複数の例の詳細が、添付の図面および下記の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】例示的なマルチビューコーディング復号順序を示す概念図。
【図３】マルチビューコーディングのための例示的な予測構造を示す概念図。
【図４】後方（backward）ワーピングに基づくブロックベースビュー合成予測（Ｂ−ＶＳＰ）の例示的な視覚化の概念図。
【図５】波面並列処理（ＷＰＰ:wavefront parallel processing）の一例を示す概念図。
【図６】隣接ベース視差ベクトル導出（ＮＢＤＶ）のための空間的隣接ブロックを示す概念図。
【図７】ＮＢＤＶについての例示的な時間的隣接ブロックを示す概念図。
【図８】本開示で説明する１つまたは複数の技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図９】本開示で説明する１つまたは複数の技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図１０】本開示の１つまたは複数の技法による、ビデオコーダの例示的な動作を示すフローチャート。
【図１１Ａ】本開示の１つまたは複数の技法による、ビデオエンコーダの例示的な動作を示すフローチャート。
【図１１Ｂ】本開示の１つまたは複数の技法による、ビデオデコーダの例示的な動作を示すフローチャート。
【図１２Ａ】本開示の１つまたは複数の技法による、ビデオエンコーダの例示的な動作を示すフローチャート。
【図１２Ｂ】本開示の１つまたは複数の技法による、ビデオデコーダの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００２２】
[0035]概して、本出願は、マルチビュービデオコーディング（たとえば、３次元ビデオコーディング）における視差ベクトルを決定するための技術を説明する。マルチビュービデオコーディングでは、様々なビューのビデオコンテンツは、様々な視点を表す場合がある。たとえば、第１のビュー中のピクチャ中のビデオブロックは、第２のビュー中のピクチャ中のビデオブロックと同様のビデオコンテンツを含み得る。この例では、第１のビュー中のピクチャ中のビデオブロックの位置および第２のビュー中のピクチャ中のビデオブロックの位置は、異なる場合がある。たとえば、異なるビュー中のビデオブロックの位置の間に何らかの変位（すなわち、視差）が存在する場合がある。マルチビュービデオコーディングでは、異なるビューから再構成されたビューコンポーネントに基づくビュー間予測が有効にされ得る。ビュー間予測は、ビデオの同じ時間インスタンスを表す各ビューのピクチャが同様のビデオコンテンツを含み得るという事実を活用することによって、コーディング利得を実現することができる。
【００２３】
[0036]現在ピクチャのビデオブロックがビュー間予測を使用してコーディングされるとき、そのブロックは、ビュー間参照ピクチャ中の位置を示す動きベクトルを有し得る。ビュー間参照ピクチャは、現在ピクチャと同じ時間インスタンス中にある（すなわち、関連付けられている）が、現在ピクチャとは異なるビュー中にある（すなわち、関連付けられている）参照ピクチャであり得る。ブロックの動きベクトルがビュー間参照ピクチャ中の位置を示す場合、動きベクトルは視差動きベクトルと呼ばれる場合がある。ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、現在ブロックについての予測ブロックを決定するために、現在ブロックの視差動きベクトルを使用することができる。ビデオコーダがビデオエンコーダである場合、ビデオコーダは、現在ブロックについての残差データを生成するために、現在ブロックについての予測ブロックを使用することができる。ビデオコーダがビデオデコーダである場合、ビデオコーダは、現在ビデオブロックについてのサンプル値を再構成するために、現在ブロックについての予測ブロックと現在ブロックについての残差データとを使用することができる。
【００２４】
[0037]さらに、特定のピクチャ中のブロックは、ビュー間参照ピクチャ中の対応するブロックの動き情報または残差データと同様である動き情報または残差データを有し得る。したがって、ビデオコーダは、ビュー間参照ピクチャ中の対応するブロックの動き情報または残差データに基づいて、現在ピクチャ中の現在ブロックの動き情報または残差データを予測することができる。ビデオコーダは、ビュー間参照ピクチャ中の対応するブロックの位置を決定するために、現在ブロックについての視差ベクトルを決定することができる。ビデオコーダは、現在ブロックが視差動きベクトルを有するかどうかにかかわらず、ビュー間参照ピクチャ中の対応するブロックの動き情報または残差データに基づいて、現在ブロックの動き情報または残差データを予測することができる。したがって、ビュー間参照ピクチャ中の対応するブロックの動き情報または残差データに基づいて、現在ブロックの動き情報または残差データが予測される場合、現在ブロックは視差ベクトルを有すると考えられる。後でコーディングされるブロックの視差ベクトル導出プロセスのために視差ベクトルが使用されるとき、視差ベクトルは、暗黙的視差ベクトル（ＩＤＶ：implicit disparity vector）と呼ばれる場合がある。現在ブロックについての視差ベクトルは、以前のブロックのうちの１つのブロックについての視差ベクトルに等しい場合がある。
【００２５】
[0038]ビデオコーダは、現在ブロックについての視差ベクトルを導出するために、隣接ブロックベースの視差ベクトル（ＮＢＤＶ）導出プロセスを使用することができる。ＮＢＤＶ導出プロセスでは、ビデオコーダは、現在ブロックに隣接するブロックをチェックすることができる。隣接ブロックは、空間的隣接ブロックと時間的隣接ブロックとを含み得る。空間的隣接ブロックは、現在ブロックと同じピクチャ（すなわち、現在ピクチャ）中にある。時間的隣接ブロックは、現在ピクチャ以外の１つまたは複数のピクチャ中にある。ビデオコーダが隣接ブロックをチェックするとき、ビデオコーダは、隣接ブロックが視差動きベクトルを有するかどうかを決定することができる。隣接ブロックのうちの１つが視差動きベクトルを有するとビデオコーダが決定したとき、ビデオコーダは、隣接ブロックのチェックを停止することができ、隣接ブロックの視差動きベクトルを現在ブロックについての視差ベクトルに変換することができる。さらに、隣接ブロックのいずれも視差動きベクトルを有さない場合、ビデオコーダは、空間的隣接ブロックのいずれかがＩＤＶを有するかどうかを決定することができる。空間的隣接ブロックのうちの１つがＩＤＶを有するとビデオコーダが決定したとき、ビデオコーダは、隣接ブロックのチェックを停止することができ、隣接ブロックのＩＤＶを現在ブロックについての視差ベクトルに変換することができる。
【００２６】
[0039]ＮＢＤＶ導出プロセスにおけるＩＤＶの使用は、記憶要件およびメモリアクセスの回数の著しい増加を必要とし得る。この問題および他の問題に対処するために、導出された視差ベクトル（ＤＤＶ）の使用が提案された。少なくともいくつかのそのような提案では、スライスについて単一のＤＤＶが記憶される。ビデオコーダは、ブロックの時間的または空間的隣接ブロックのいずれも視差動きベクトルを有さないとき、ブロックの視差ベクトルをスライスについてのＤＤＶに設定することができる。ブロックをコーディングした後、ビデオコーダは、スライスについてのＤＤＶをブロックの視差ベクトルに更新することができる。このようにして、スライスについてのＤＤＶは、コーディング（たとえば、復号）順序で更新され得る。したがって、次のブロックをコーディングするために使用されるＤＤＶは、以前のブロックに関して決定された視差ベクトルに依存し得る。
【００２７】
[0040]この依存性はいくつかの問題を引き起こす可能性がある。たとえば、いくつかのビデオコーディング規格（たとえば、Ｈ．２６４／ＡＶＣ）では、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）エントロピーコーディングが使用される場合、何らかのタイプのデコーダは、特定の遅延を伴って、複数のマクロブロック行を並列に復号することが可能であり得る。この例では、スライスについてのＤＤＶをコーディング順序で更新することは、デコーダが複数のマクロブロック行を並列に復号することを妨げる可能性がある。別の例では、いくつかのビデオコーディング規格（たとえば、高効率ビデオコーディング）で波面並列処理（ＷＰＰ）が有効にされるとき、コーディングユニット（ＣＵ）は、以前のコーディングツリーブロック（ＣＴＢ）行中の最後のＣＵに依存すべきではない。スライスについてのＤＤＶをコーディング順序（たとえば、ラスタ走査順序）で更新することは、以前のＣＴＢ行中のＣＵへの依存を生み出す可能性がある。別の例では、ブロックが現在の行の現在ブロックから水平方向に遠方にある場合、以前の行のブロック（たとえば、ＣＵ）から導出されたＤＤＶを使用することはあまり効率的でない可能性がある。スライスに関するＤＤＶをコーディング順序で更新することは、結果として、現在ブロックから水平方向に遠方にあるブロックから導出されたＤＤＶの使用をもたらし得る。
【００２８】
[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]さらに、ＨＥＶＣ向けのスケーラブルビデオコーディング拡張、マルチビューコーディング拡張、および３ＤＶ拡張を製作する作業が進行中である。ＨＥＶＣのＳＶＣ拡張は、ＳＨＥＶＣと呼ばれる場合がある。ＨＥＶＣの３ＤＶ拡張はＨＥＶＣベースの３ＤＶまたは３Ｄ−ＨＥＶＣと呼ばれることがある。３Ｄ−ＨＥＶＣは、Ｓｃｈｗａｒｚら、「Ｄｅｓｃｒｉｐｔｉｏｎ  ｏｆ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ  Ｐｒｏｐｏｓａｌ  ｂｙ  Ｆｒａｕｎｈｏｆｅｒ  ＨＨＩ（ＨＥＶＣ対応構成Ａ）、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＭＰＥＧ１１／Ｍ２２５７０、ジュネーブ、スイス、２０１１年１１月／１２月、以下、「ｍ２２５７０」、およびＳｃｈｗａｒｚら、「Ｄｅｓｃｒｉｐｔｉｏｎ  ｏｆ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ  Ｐｒｏｐｏｓａｌ  ｂｙ  Ｆｒａｕｎｈｏｆｅｒ  ＨＨＩ（ＨＥＶＣ対応構成Ｂ）、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、文書ＭＰＥＧ１１／Ｍ２２５７１、ジュネーブ、スイス、２０１１年１１月／１２月、以下、「ｍ２２５７１」で提案された解決策に少なくとも部分的に基づく。３Ｄ−ＨＥＶＣの参照ソフトウェアの記述は、Ｓｃｈｗａｒｚら、「Ｔｅｓｔ  Ｍｏｄｅｌ  ｕｎｄｅｒ  Ｃｏｎｓｉｄｅｒａｔｉｏｎ  ｆｏｒ  ＨＥＶＣ  ｂａｓｅｄ  ３Ｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  ＭＰＥＧ２０１１／Ｎ１２５５９、サンノゼ、米国、２０１２年２月において入手可能である。参照ソフトウェア、すなわち、ＨＴＭバージョン３．０は、少なくとも２０１４年５月９日現在、ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−３．０／から利用可能である。
【００４６】
[0059]Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、および他のビデオコーディング規格では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４７】
[0060]Ｈ．２６４／ＡＶＣでは、各ピクチャはマクロブロック（ＭＢ）のセットに区分され得る。マクロブロックは、３つのサンプルアレイを有するピクチャのルーマサンプルの１６×１６ブロックおよびクロマサンプルの２つの対応するブロック、またはモノクロームピクチャもしくは３つの個別のカラープレーンを使用してコーディングされるピクチャのサンプルの１６×１６ブロックである。
【００４８】
[0061]ビデオエンコーダ２０は、インター予測子またはイントラ予測を使用してマクロブロックを符号化することができる。ビデオエンコーダ２０がインター予測を使用してマクロブロックを符号化するとき、ビデオエンコーダ２０は、現在ピクチャ以外の１つまたは複数のピクチャ（すなわち、マクロブロックを含んでいるピクチャ）のサンプルに基づいて、マクロブロックについての１つまたは複数の予測ブロックを生成する。インター予測を使用して符号化されたマクロブロックは、インターマクロブロックと呼ばれる場合がある。ビデオエンコーダ２０がイントラ予測を使用してマクロブロックを符号化するとき、ビデオエンコーダ２０は、現在ピクチャ中のサンプルに基づいて、マクロブロックについての１つまたは複数の予測ブロックを生成する。イントラ予測を使用して符号化されたマクロブロックは、イントラマクロブロックと呼ばれる場合がある。
【００４９】
[0062]Ｈ．２６４／ＡＶＣにおいて、各インターマクロブロックは、４つの異なる方式で区分され得る。
【００５０】
・１つの１６×１６マクロブロック区分
・２つの１６×８マクロブロック区分
・２つの８×１６マクロブロック区分
・４つの８×８マクロブロック区分
[0063]１つのＭＢ中の異なるマクロブロック（ＭＢ）区分は、方向ごとに異なる参照インデックス値（すなわち、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。参照インデックス値は、参照ピクチャリスト内の参照ピクチャを示す値であり得る。ＭＢが４つの８×８ＭＢ区分に区分されないとき、ＭＢはＭＢ区分全体について各方向に１つの動きベクトルしか有し得ない。
【００５１】
[0064]ＭＢが、４つの８×８ＭＢ区分に区分されるとき、各８×８ＭＢ区分はサブブロックにさらに区分され得る。８×８ＭＢ区分からサブブロックを得るための４つの異なる方式が存在する。
【００５２】
・１個の８×８サブブロック
・２個の８×４サブブロック
・２個の４×８サブブロック
・４個の４×４サブブロック
各サブブロックは、各方向に異なる動きベクトルを有し得る。８×８ＭＢ区分の区分は、サブブロック区分と呼ばれる。
【００５３】
[0065]上述のように、マルチビューコーディング（ＭＶＣ）は、Ｈ．２６４／ＡＶＣの拡張である。マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューがあり得る。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用され得る。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。「ビューコンポーネント」は、単一のアクセスユニット中のビューのコード化表現であり得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられたビューコンポーネントのシーケンスを指すことがある。
【００５４】
[0066]図２は、例示的なマルチビュー復号順序を示す概念図である。マルチビュー復号順序はビットストリーム順序であり得る。図２の例では、各正方形がビューコンポーネントに対応する。正方形の列は、アクセスユニットに対応する。各アクセスユニットは、時間インスタンスのすべてのビューのコード化ピクチャを含むように定義され得る。正方形の行は、ビューに対応する。図２の例では、アクセスユニットがＴ０．．．Ｔ８とラベル付けされ、ビューがＳ０〜Ｓ７とラベル付けされる。アクセスユニットの各ビューコンポーネントは次のアクセスユニットのビューコンポーネントの前に復号されるので、図２の復号順序はタイムファーストコーディングと呼ばれることがある。アクセスユニットの復号順序は、ビューの出力または表示の順序と同一ではないことがある。
【００５５】
[0067]より具体的には、テクスチャビューコンポーネント（すなわち、テクスチャピクチャ）は、単一のアクセスユニット中のビューのテクスチャのコード化表現であり得る。テクスチャビューコンポーネントは、表示されるべき実際の画像コンテンツを含む。たとえば、テクスチャビューコンポーネントは、ルーマ（たとえば、Ｙ）成分と、クロマ（たとえば、ＣｂおよびＣｒ）成分とを含み得る。テクスチャビューは、ビュー順序インデックスの同一の値に関連付けられるテクスチャビューコンポーネントのシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対するビューのカメラ位置を示すことができる。
【００５６】
[0068]本開示の技法のうちの１つまたは複数は、テクスチャデータと深度データとをコーディングすることによって３Ｄビデオデータをコーディングすることに関する。概して、「テクスチャ」という用語は、画像のルミナンス（すなわち、輝度または「ルーマ」）値と画像のクロミナンス（すなわち、色または「クロマ」）値とを表すために使用される。いくつかの例では、テクスチャ画像は、１セットのルミナンスデータと、青色相（Ｃｂ）および赤色相（Ｃｒ）のための２セットのクロミナンスデータとを含み得る。４：２：２または４：２：０などの特定のクロマサンプリングフォーマットでは、クロマデータは、ルーマデータに関してダウンサンプリングされる。すなわち、クロミナンスピクセルの空間解像度は、対応するルミナンスピクセルの空間解像度よりも低く、たとえば、ルミナンス解像度の１／２または１／４であり得る。
【００５７】
[0069]深度ビューコンポーネント（すなわち、深度ピクチャ）は、単一のアクセスユニット中のビューの深度のコード化表現であり得る。深度ビューは、ビュー順序インデックスの同一の値に関連付けられる深度ビューコンポーネントのシーケンスであり得る。深度ビューコンポーネントは、その対応するテクスチャビューコンポーネント中のピクセルの相対深度を示し得る。一例として、深度ビューコンポーネントは、ルーマ値のみを含むグレースケール画像である。言い換えると、深度ビューコンポーネントは、任意の画像コンテンツを伝達するのではなく、テクスチャビューコンポーネント中のピクセルの相対深度の測定値を提供し得る。
【００５８】
[0070]いくつかの例において、深度ビューコンポーネント中の純白のピクセルは、対応するテクスチャビューコンポーネント中のその対応する１つまたは複数のピクセルがビューアから見てより近いことを示し、深度ビューコンポーネント中の純黒のピクセルは、対応するテクスチャビューコンポーネント中のその対応する１つまたは複数のピクセルがビューアから見てより遠いことを示す。黒と白との中間にあるグレーの様々な色合いは、様々な深度レベルを示す。たとえば、深度ビューコンポーネント中の濃いグレーのピクセルは、テクスチャビューコンポーネント中の対応するピクセルが、深度ビューコンポーネント中の薄いグレーのピクセルよりもさらに遠いことを示し得る。ピクセルの深度を識別するためにグレースケールのみが必要とされるので、深度ビューコンポーネント用の色値がいかなる目的も果たし得ないことから、深度ビューコンポーネントはクロマ成分を含む必要がない。深度を識別するためにルーマ値（たとえば、強度値）のみを使用する深度ビューコンポーネントは、説明のために提供され、限定するものと見なされるべきではない。他の例では、テクスチャビューコンポーネント中のピクセルの相対深度を示すために任意の技法が利用される場合がある。
【００５９】
[0071]深度データは、一般に、対応するテクスチャデータについての深度値を記述する。たとえば、深度画像は、各々が対応するテクスチャデータについての深度を記述する深度ピクセルのセットを含む場合がある。深度データは、対応するテクスチャデータについての水平視差を決定するために使用され得る。したがって、テクスチャデータと深度データとを受信するデバイスは、一方のビュー（たとえば、左眼ビュー）のための第１のテクスチャ画像を表示し、深度値に基づいて決定された水平視差値だけ第１の画像のピクセル値をオフセットする（ずらす）ことによって、他方のビュー（たとえば、右眼ビュー）のための第２のテクスチャ画像を生成するように第１のテクスチャ画像を修正するために、深度データを使用することができる。一般に、水平視差（または単に「視差」）は、第１のビュー中のピクセルの第２のビュー中の対応するピクセルに対する水平空間オフセットを記述し、ここで、２つのピクセルは、２つのビュー中で表される同じオブジェクトの同じ部分に対応する。
【００６０】
[0072]さらに他の例では、画像プレーンに直交するｚ次元におけるピクセルについて深度データが定義され得、その結果、画像について定義されたゼロ視差プレーンに対して、所与のピクセルに関連付けられた深度が定義される。そのような深度は、ピクセルを表示するための水平視差を作成するために使用され得、その結果、ピクセルは、ゼロ視差プレーンに対するピクセルのｚ次元深度値に応じて、左眼と右眼で異なるように表示される。ゼロ視差プレーンはビデオシーケンスの異なる部分に対して変化する場合があり、ゼロ視差プレーンに対する深度の量も変化する場合がある。ゼロ視差プレーン上に位置するピクセルは、左眼および右眼に対して同様に定義され得る。ゼロ視差プレーンの前に位置するピクセルは、ピクセルが画像プレーンに直交するｚ方向の画像から出てくるように見える知覚を作成するように、（たとえば、水平視差を用いて）左眼と右眼に対して異なる位置で表示され得る。ゼロ視差プレーンの後に位置するピクセルは、深度のわずかな知覚を提示するために、わずかなぼかしとともに表示され得るか、または（たとえば、ゼロ視差プレーンの前に位置するピクセルの水平視差とは反対の水平視差を用いて）左眼と右眼に対して異なる位置で表示され得る。画像用の深度データを伝達または定義するために、他の多くの技法が使用される場合もある。
【００６１】
[0073]深度ビューコンポーネント中のピクセルごとに、テクスチャビューコンポーネント中の１つまたは複数の対応するピクセルがあり得る。たとえば、深度ビューコンポーネントの空間解像度とテクスチャビューコンポーネントの空間解像度が同じである場合、深度ビューコンポーネント中の各ピクセルは、テクスチャビューコンポーネント中の１つのピクセルに対応する。深度ビューコンポーネントの空間解像度がテクスチャビューコンポーネントの空間解像度よりも小さい場合、深度ビューコンポーネント中の各ピクセルは、テクスチャビューコンポーネント中の複数のピクセルに対応する。深度ビューコンポーネント中のピクセルの値は、テクスチャビュー中の対応する１つまたは複数のピクセルの相対深度を示すことができる。
【００６２】
[0074]いくつかの例では、ビデオエンコーダ２０は、ビューの各々についてのテクスチャビューコンポーネントおよび対応する深度ビューコンポーネントについてのビデオデータをシグナリングする。ビデオデコーダ３０は、表示のためにビューのビデオコンテンツを復号するために、テクスチャビューコンポーネントと深度ビューコンポーネントとの両方のビデオデータを利用することができる。次いで、ディスプレイは、３Ｄビデオを生成するためにマルチビュービデオを表示する。
【００６３】
[0075]図２に戻ると、ビューの各々はピクチャのセットを含む。たとえば、ビューＳ０は、ピクチャ０、８、１６、２４、３２、４０、４８、５６、および６４のセットを含み、ビューＳ１は、ピクチャ１、９、１７、２５、３３、４１、４９、５７、および６５のセットを含み、以下同様である。各セットは２つのピクチャを含み、一方のピクチャはテクスチャビューコンポーネントと呼ばれ、他方のピクチャは深度ビューコンポーネントと呼ばれる。ビューのピクチャのセット内のテクスチャビューコンポーネントおよび深度ビューコンポーネントは、互いに対応するものと見なされる場合がある。たとえば、ビューのピクチャのセット内のテクスチャビューコンポーネントは、そのビューのピクチャのセット内の深度ビューコンポーネントに対応すると見なされ、その逆も同様である（すなわち、深度ビューコンポーネントはセット中のそのテクスチャビューコンポーネントに対応し、その逆も同様である）。本開示で使用する、深度ビューコンポーネントに対応するテクスチャビューコンポーネントは、単一のアクセスユニットの同じビューの一部であるテクスチャビューコンポーネントおよび深度ビューコンポーネントと見なされる場合がある。
【００６４】
[0076]マルチビューコーディングはビュー間予測をサポートすることができる。ビュー間予測は、Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、または他のビデオコーディング規格において使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが（マクロブロックのような）現在ビデオユニットに対してビュー間予測を実行するとき、ビデオコーダは、参照ピクチャとして、現在ビデオユニットと同じアクセスユニットの中にあるが、異なるビューの中にあるピクチャを使用することができる。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
【００６５】
[0077]マルチビューコーディングでは、ビデオデコーダ（たとえば、ビデオデコーダ３０）が、あるビュー中のピクチャを任意の他のビュー中のピクチャを参照せずに復号することができる場合、そのビューは「ベースビュー」と呼ばれることがある。非ベースビュー（すなわち、独立ビュー）のうちの１つの中のピクチャをコーディングするとき、ピクチャが、異なるビュー中にあるがビデオコーダが現在コーディング中のピクチャと同じ時間インスタンス（すなわち、アクセスユニット）内にある場合、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、参照ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）にピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入し得る。
【００６６】
[0078]図３は、マルチビューコーディングのための例示的な予測構造を示す概念図である。図３のマルチビュー予測構造は、時間的予測とビュー間予測とを含む。図３の例では、各正方形がビューコンポーネントに対応する。「Ｉ」と標示される正方形は、イントラ予測されたビューコンポーネントである。「Ｐ」と標示される正方形は、単方向インター予測されたビューコンポーネントである。「Ｂ」および「ｂ」と標示される正方形は、双方向インター予測されたビューコンポーネントである。「ｂ」と標示される正方形は、「Ｂ」と標示される正方形を参照ピクチャとして使用することができる。第１の正方形から第２の正方形を指す矢印は、第１の正方形が、インター予測において、第２の正方形のための参照ピクチャとして利用可能であることを示す。図３の垂直の矢印によって示されたように、同じアクセスユニットの異なるビュー中のビューコンポーネントは、参照ピクチャとして利用可能であり得る。アクセスユニットの１つのビューコンポーネントを同じアクセスユニットの別のビューコンポーネントのための参照ピクチャとして使用することは、ビュー間予測と呼ばれる場合がある。したがって、図３にマルチビュービデオコーディング用の典型的なＭＶＣ予測（各ビュー内のピクチャ間予測とビュー間予測の両方を含む）構造が示され、ここでは矢印によって予測が示され、矢印の終点のオブジェクトは、予測参照のために矢印の始点のオブジェクトを使用する。
【００６７】
[0079]Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、ビュー間予測は視差動き補償によってサポートされ得、視差動き補償は、Ｈ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする。２つのビューのコーディングも、Ｈ．２６４／ＡＶＣのＭＶＣ拡張によってサポートされ得る。Ｈ．２６４／ＡＶＣのＭＶＣ拡張の利点の１つは、ＭＶＣエンコーダが３Ｄビデオ入力として３つ以上のビューを取り込むことができ、ＭＶＣデコーダがそのようなマルチビュー表現を復号することができることである。したがって、ＭＶＣデコーダをもつ任意のレンダラは、３つ以上のビューをもつ３Ｄビデオコンテンツを予想し得る。
【００６８】
[0080]Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、同じアクセスユニット中の（すなわち、同じ時間インスタンスを有する）ピクチャの間でビュー間予測が可能にされる。言い換えると、ＭＶＣにおいて、ビュー間予測は、ビューの間の相関を取り除くために、同じアクセスユニットの（すなわち、同じ時間インスタンスをもつ）異なるビューからキャプチャされたピクチャの間で実行される。非ベースビューの１つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが、同じ時間インスタンスを有する場合、ピクチャは参照ピクチャリストに追加され得る。言い換えると、ビュー間予測を用いてコーディングされたピクチャが、他の非ベースビューのビュー間予測についての参照ピクチャリスト中に追加され得る。ビュー間予測参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
【００６９】
[0081]マルチビュービデオコーディングのコンテキストでは、２種類の動きベクトルが存在する。動きベクトルの１つの種類は、時間参照ピクチャ（すなわち、現在ピクチャとは異なる時間インスタンス中のピクチャ）を指す通常の動きベクトルである。通常の時間的動きベクトルに対応するインター予測のタイプは、「動き補償予測」または「ＭＣＰ」と呼ばれる場合がある。ビュー間予測参照ピクチャが動き補償に使用されるとき、対応する動きベクトルは、「視差動きベクトル」と呼ばれる場合がある。言い換えると、視差動きベクトルは、異なるビューの中のピクチャ（すなわち、視差参照ピクチャまたはビュー間参照ピクチャ）を指す。視差動きベクトルに対応するインター予測のタイプは、「視差補償予測」または「ＤＣＰ」と呼ばれる場合がある。
【００７０】
[0082]上述のように、ＭＰＥＧのＶＣＥＧの３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｖ：Joint Collaborative Team on 3D Video Coding）が、Ｈ．２６４／ＡＶＣに基づく３Ｄビデオ規格、すなわち、３Ｄ−ＡＶＣを開発中である。３Ｄ−ＡＶＣでは、ＭＶＣにおけるビュー間予測の他に、新しいコーディングツールが含まれ、サポートされている。３Ｄ−ＡＶＣのための最新のソフトウェア３Ｄ−ＡＴＭは、以下のリンク、すなわち、
［３Ｄ−ＡＴＭバージョン６．２］：ｈｔｔｐ：／／ｍｐｅｇ３ｄｖ．ｒｅｓｅａｒｃｈ．ｎｏｋｉａ．ｃｏｍ／ｓｖｎ／ｍｐｅｇ３ｄｖ／ｔａｇｓ／３ＤＶ−ＡＴＭｖ６．２／からダウンロード可能である。
【００７１】
[0083]ＡＶＣベースの３Ｄビデオ（３ＤビデオＤ−ＡＶＣ）コーディング規格は、現在、ＪＣＴ−３Ｖによって開発中である。３Ｄ−ＡＶＣのあるバージョンは、現在、次のように公的に入手可能である。
【００７２】
Ｍ．Ｍ．Ｈａｎｎｕｋｓｅｌａ、Ｙ．Ｃｈｅｎ、Ｔ．Ｓｕｚｕｋｉ、Ｊ．−Ｒ．Ｏｈｍ、Ｇ．Ｊ．Ｓｕｌｌｉｖａｎ、「３Ｄ−ＡＶＣ  ｄｒａｆｔ  ｔｅｘｔ  ５」、ＪＣＴ３Ｖ−Ｃ１００２、ジュネーブ、スイス、２０１３年１月である。少なくとも２０１４年５月９日現在、本文書は、次のリンク、すなわち、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／３＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｃ１００２−ｖ３．ｚｉｐから入手可能である。
【００７３】
[0084]本開示の次のセクションは、ＡＶＣベースの３Ｄビデオコーディング規格（すなわち、３Ｄ−ＡＶＣ）を論じる。３Ｄ−ＡＶＣにおけるビューコンポーネントのコーディング順序を以下で論じる。３Ｄ−ＡＶＣは、ベースビューのテクスチャ部分がＨ．２６４／ＡＶＣデコーダ用に完全に復号できるようにＨ．２６４／ＡＶＣに適合する。３Ｄ−ＡＶＣにおける強化されたビューコンポーネントの場合、深度はテクスチャより前にコーディングされ得、テクスチャビューコンポーネントは、深度ビューコンポーネントからの情報に基づいてコーディングされ得、これは深度ファーストコーディング（depth-first coding）として知られている。対照的に、テクスチャファーストコーディング順序では、各テクスチャビューコンポーネントは、それぞれの深度ビューコンポーネントの前にコーディングされる。たとえば、３Ｄ−ＡＶＣにおけるテクスチャビューコンポーネントと深度ビューコンポーネントのコーディング順序は、次のように例示され得る：ここにおいて、Ｔ０およびＤ０は、それぞれ、ベースビューのテクスチャビューコンポーネントおよび深度ビューコンポーネントを指し、ＴｉおよびＤｉは、それぞれ、ｉ番目の従属ビューのテクスチャビューコンポーネントおよび深度ビューコンポーネントを指す。以下の例では、３つのビューが存在する。
【００７４】
Ｔ０、Ｄ０、Ｄ１、Ｄ２、Ｔ１、Ｔ２：ベースビュー（Ｔ０およびＤ０）がテクスチャファーストコーディング順序でコーディングされ、従属ビューが深度ファーストコーディング順序でコーディングされる。ハイブリッドコーディング順序は、現在、３Ｄ−ＡＶＣの通常のテスト条件で使用されている。
【００７５】
Ｔ０、Ｄ０、Ｔ１、Ｄ１、Ｔ２、Ｄ２：すべてのビューコンポーネントがテクスチャファーストコーディング順序でコーディングされる。
【００７６】
[0085]ビュー間予測がＴｉについて有効にされる場合、参照テクスチャビューは、ビュー間参照ピクチャを含むビューとして定義され、対応する深度ビューは、参照テクスチャビューのものと同じビュー順序インデックスを有する参照深度ビューとして定義される。
【００７７】
[0086]ビデオコーダは、２つのビューの間の視差を推定するものとして視差ベクトル（ＤＶ）を使用することができる。隣接ブロックは、ビデオコーディングにおいてほとんど同じ動き／視差情報を共有するので、現在ブロックは、良好な予測子として、隣接ブロック中の動きベクトル情報を使用することができる。深度マップを介した３Ｄ−ＡＶＣ視差ベクトル導出を次に論じる。視差ベクトルを導出するための技法は、低レベルコーディングツールごとに異なる場合があるが、通常、深度ファーストコーディング順序のおかげで、テクスチャビューコンポーネントのコーディングに従属ビューの深度データが利用される。
【００７８】
[0087]３Ｄ−ＡＶＣにおけるループ内ブロックベースビュー合成ビュー間予測（ＢＶＳＰ）および深度ベースの動きベクトル予測（Ｄ−ＭＶＰ）は、主に、従属フレーム（たとえば、復号のためにＢＶＳＰまたはＤ−ＭＶＰに依存するピクチャ）中の深度マップの深度値から変換された視差ベクトルを使う低レベルコーディングツールである。通常、３Ｄ−ＡＶＣソフトウェアでは、実際の深度マップ値から特定のビューに対する視差への変換プロセスの結果は、カメラパラメータを有する参照テーブルに記憶される。
【００７９】
[0088]ＢＶＳＰは、当初、Ｗｅｎｙｉ  Ｓｕら、「３ＤＶ−ＣＥ１．ａ：Ｂｌｏｃｋ−ｂａｓｅｄ  Ｖｉｅｗ  Ｓｙｎｔｈｅｓｉｓ  Ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  ３ＤＶ−ＡＴＭ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第１回会議、ストックホルム、スウェーデン、２０１２年７月１６日〜２０日、文書ＪＣＴ３Ｖ−Ａ０１０７（以下、「ＪＣＴ３Ｖ−Ａ０１０７」）で提案された。少なくとも２０１４年５月９日現在、ＪＣＴ３Ｖ−Ａ０１０７は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１＿Ｓｔｏｃｋｈｏｌｍ／ｗｇ１１／ＪＣＴ３Ｖ−Ａ０１０７−ｖ１．ｚｉｐからダウンロードされ得る。
【００８０】
[0089]図４は、後方ワーピングに基づくＢＶＳＰの例示的な概念の可視化である。図４を参照すると、以下のコーディング順序、すなわち、（Ｔ０、Ｄ０、Ｄ１、Ｔ１）が利用されると仮定する。テクスチャコンポーネントＴ０はベースビューであり、Ｔ１はＶＳＰでコーディングされる従属ビューである。深度マップコンポーネントＤ０およびＤ１は、Ｔ０およびＴ１に関連付けられたそれぞれの深度マップである。説明を簡単にするために、深度マップコンポーネントＤ０は図４の例から省略される。
【００８１】
[0090]従属ビューＴ１において、現在ブロックＣｂのサンプル値は、ベースビューＴ０のサンプル値からなる参照領域Ｒ（Ｃｂ）から予測される。コーディングされたサンプルと参照サンプルとの間の変位ベクトルは、現在コーディングされているテクスチャサンプルに関連付けられた深度マップ値から、Ｔ１とＴ０との間の導出された視差ベクトルとして表記される。
【００８２】
[0091]いくつかの例では、ビデオコーダは、深度値から視差ベクトルへの変換のプロセスを実行するために、以下の式を使用することができる。
【数１】
2016524408.tif 000003
【数２】
2016524408.tif 000004
【００８３】
式中、ｊおよびｉはＣｂ内のローカル空間係数であり、ｄ（Ｃｂ（ｊ，ｉ））はビュー＃１の深度マップ画像中の深度マップ値であり、Ｚはｄ（Ｃｂ（ｊ，ｉ））の実際の深度値であり、Ｄは特定のビュー＃０に対して導出された視差ベクトルの水平成分である。パラメータｆ、ｂ、Ｚｎｅａｒ、およびＺｆａｒは、カメラのセットアップを指定するパラメータ、すなわち、使用される焦点距離（ｆ）、ビュー＃１とビュー＃０との間のカメラ分離（ｂ）、および深度範囲（Ｚｎｅａｒ、Ｚｆａｒ）であり、深度マップ変換のパラメータを表す。
【００８４】
[0092]いくつかの例では、導出された視差ベクトルの垂直成分は、常に０に等しく設定される。３Ｄ−ＡＶＣの現在の実装形態（すなわち、３ＤＶ−ＡＴＭの実装形態）では、式（１）および（２）は、深度マップ値（０．．．２５５）ごとにすでに事前計算され、参照テーブルとして記憶されている。したがって、ビデオコーダは、上記に提供された式（１）と（２）とを計算することなく深度値を視差ベクトルに変換するために、参照テーブルを使用することができる。
【００８５】
[0093]ＢＶＳＰに関する１つの実装問題は、ＢＶＳＰブロック（すなわち、ＢＶＳＰを使用してコーディングされたブロック）の指示に関与する。ＢＶＳＰブロックは、本明細書ではＢＶＳＰコード化ブロックと呼ばれることもある。いくつかの例では、ＢＶＳＰブロックは次のように示される。マクロブロック（ＭＢ）レベルにある１つのフラグは、現在ＭＢが従来のスキップ／直接モードでコーディングされているかどうか、または現在ＭＢがスキップ／直接モードでコーディングされているが、合成参照コンポーネントから予測されているかどうかをシグナリングする。（１６×１６から８×８への）ＭＢ区分ごとに、参照ピクチャリストに対応する参照インデックスは、参照ピクチャリスト中の参照ピクチャをシグナリングする。ビデオエンコーダがＭＢ区分を符号化するためにＢＶＳＰモードを使用するとき、ＢＶＳＰコード化ブロックについての動きベクトルが存在しないので、ビデオエンコーダは、ＭＢ区分についての動きベクトル差分（ＭＶＤ）をシグナリングしない。ＭＢ区分が合成参照コンポーネントを使用してコーディングされていることをフラグまたは参照インデックスのいずれかが示したとき、ビデオコーダは、下記で説明するように、１つの区分の予測を呼び出すことができる。
【００８６】
[0094]ＢＶＳＰに関する別の実装問題は、予測導出プロセスに関与する。Ｎ×ＭはＭＢ区分のサイズを表記することができ、ここで、ＮまたはＭは８または１６に等しい。ＭＢ区分がＢＶＳＰモードでコーディングされた場合、ＭＢ区分はさらに、Ｋ×Ｋに等しいサイズを有するいくつかの下位領域に区分され、ここで、Ｋは４×４、２×２、または１×１であり得る。ＭＢ区分の下位領域ごとに、ビデオコーダは、別個の導出された視差ベクトルを導出する。さらに、ＭＢ区分のそれぞれの下位領域ごとに、ビデオコーダは、ビュー間参照ピクチャ中の対応するブロック、すなわち図４のＲ（ｃｂ）を位置特定するために、導出された視差ベクトルを使用する。ビデオコーダは、それぞれの下位領域についての対応するブロックからそれぞれの下位領域を予測することができる。ＢＶＳＰの一例は、４×４（Ｋが４に等しいことを意味する）のサイズを有するブロック用の後方ワーピングに基づく。導出された視差ベクトルは、そのようなベクトルを使用するコーディングツールが存在しないので、ＢＶＳＰコード化ブロック用に記憶されない。
【００８７】
[0095]別の実装問題は、視差ベクトル導出プロセスに関与する。深度ファーストコーディング順序が適用されるとき、ビデオコーダは、図４に示したように、対応する非ベース深度ビュー中の対応する深度ブロックの深度値を変換することによって、導出された視差ベクトルを取得することができる。深度ブロックの中心位置の深度値、１つの深度ブロック内のすべての深度値の最大値、１つの深度ブロック内の４つのコーナーピクセルの最大値、および深度ブロック／深度ＭＢの右下ピクセルの深度値などの、１つの深度ブロックの深度値を選択するために、いくつかの技法が適用され得る。テクスチャファーストコーディング順序が適用されるとき、非ベーステクスチャビューを復号するとき対応する非ベース深度ビューが利用不可なので、ビデオコーダは、ＢＶＳＰモードを無効にすることができる。
【００８８】
[0096]通常のインターモード用の３Ｄ−ＡＶＣにおける深度ベースの動きベクトル予測（Ｄ−ＭＶＰ）を次に論じる。Ｄ−ＭＶＰは、現在ビュー中の関連する深度マップデータを組み込む動きベクトル予測方法であり、それは、深度ファーストコーディング順序に起因して利用可能である。ビデオコーダは、従属（すなわち、非ベース）ビュー中のテクスチャビューコンポーネントでＤ−ＭＶＰを適用することができる。
【００８９】
[0097]３Ｄ−ＡＶＣでは、Ｄ−ＭＶＰ方法は、Ｈ．２６４／ＡＶＣにおける従来のメディアン関数ベースの動きベクトル予測に組み込まれる。詳細には、隣接ブロック中の動きベクトルの参照インデックスが動き予測のタイプを知るためにチェックされるように、予測されるべき動きベクトルのタイプ（すなわち、時間的動きベクトルか視差動きベクトルか）が最初に識別される。
【００９０】
[0098]隣接ブロックは、順番に、現在ブロックに対して、左ブロックと、上ブロックと、右上ブロックと、左上ブロックとを含む。いくつかの例では、ビデオコーダは、他の３つの隣接ブロック（すなわち、左ブロック、上ブロック、および右上ブロック）のうちの１つが動きベクトルを含まず、したがって利用不可と見なされるとき、左上ブロック中の動きベクトルのみを使用することができる。
【００９１】
[0099]その後、３つの隣接ブロックが利用可能になった場合、ビデオコーダは、現在ブロックについての動きベクトルの動きベクトル予測に、３つの隣接ブロック中の動きベクトルを採用することができる。時間的予測では、３つの隣接ブロックの動きベクトルがすべて同じタイプであり、すべてが同じ参照インデックスを有する場合、ビデオコーダは、Ｈ．２６４／ＡＶＣに記述されたようにメディアンフィルタを直接使用することができる。そうでない場合（３つの隣接ブロックの動きベクトルが異なるタイプに属し、３つの隣接ブロックが異なる参照インデックスを有する場合）、ビデオコーダはさらに、現在ブロックについての動きベクトルを導出することができる。現在参照ピクチャがビュー間参照ピクチャであるとき、ビデオコーダは、隣接ブロックの位置における動きベクトルのタイプとそれらの参照インデックスとをチェックすることができる。動きベクトルがすべて同じタイプと同じ参照インデックスとを有する場合、ビデオコーダは、メディアンフィルタを適用することができる。どちらの場合も、利用可能な隣接ブロックが３つよりも少ない場合、ビデオコーダはさらに、３つの隣接ブロックが利用可能になるように、利用可能ではないブロックについての動きベクトルを導出することができる。
【００９２】
[0100]隣接ブロックについての導出された動きベクトルは、導出された動きベクトルと呼ばれる場合がある。現在ブロックの動きベクトルを導出するために、ビデオコーダは、現在動きベクトル（すなわち、隣接ブロックの動きベクトル）が視差動きベクトルであるかどうか、隣接ブロックの動きベクトルが現在動きベクトルのタイプと異なるタイプを有するかどうか、または隣接ブロックの動きベクトルが利用不可かどうかを決定することができる。これらの条件のうちのいずれかが該当する場合、ビデオコーダは、現在ブロックの導出された動きベクトルを視差動きベクトルであるように設定することができ、ビデオコーダは、対応する深度ビューコンポーネントから視差動きベクトルを変換することができる。ビデオコーダは、同じビューの深度ビューコンポーネントの対応するブロックの４つのコーナーの深度値の最大値を視差値に変換することができる。ビデオコーダは、導出された動きベクトルの水平成分に視差値を設定することができる。ビデオコーダは、導出された動きベクトルの垂直成分をゼロになるように設定することができる。
【００９３】
[0101]現在動きベクトルが時間的動きベクトルである場合、ビデオコーダは、参照（ベース）ビュー中の参照ブロックの時間的動きベクトルを決定するために、（上述されたのと同様に導出された）視差値を使用することができる。ビデオコーダは、導出された動きベクトルを時間的動きベクトルになるように設定することができる。時間的動きベクトルが利用不可であると見なされる（たとえば、時間的隣接ブロックがイントラブロックであるか、または時間的隣接ブロックの動きベクトルが、現在参照ピクチャと位置合わせされた参照ビュー中の参照ピクチャを指さない）場合、ビデオコーダは、導出された動きベクトルをゼロに設定することができる。
【００９４】
[0102]スキップモードおよび直接モード用の３Ｄ−ＡＶＣにおけるビュー間動き予測を次に論じる。Ｈ．２６４／ＡＶＣ仕様のセクション７．３．５および７．４．５に記載されているように、マクロブロック用のｍａｃｒｏｂｌｏｃｋ＿ｌａｙｅｒシンタックス構造は、マクロブロックについてのマクロブロックタイプを指定するｍｂ＿ｔｙｐｅシンタックス要素を含み得る。ｍｂ＿ｔｙｐｅシンタックス要素のセマンティクスは、マクロブロックを含んでいるスライスのスライスタイプに依存する。スライスがＰスライスである場合、マクロブロックタイプはＰ＿Ｓｋｉｐタイプを含む。マクロブロックのマクロブロックタイプがＰ＿Ｓｋｉｐである場合、ビットストリーム中のマクロブロックについて、さらなるデータは存在しない。スライスがＢスライスである場合、マクロブロックタイプは、Ｂ＿Ｓｋｉｐモードと、Ｂ＿Ｄｉｒｅｃｔ＿１６×１６モード（すなわち、Ｂ−１６×１６ダイレクトモード）とを含む。マクロブロックのマクロブロックタイプがＢ＿Ｓｋｉｐである場合、ビットストリーム中のマクロブロックについて、さらなるデータは存在しない。マクロブロックのマクロブロックタイプがＢ＿Ｄｉｒｅｃｔ＿１６×１６である場合、ビットストリーム中のマクロブロックについての動きベクトル差分または参照インデックスは存在しない。さらに、マクロブロックのマクロブロックタイプがＢ＿Ｄｉｒｅｃｔ＿１６×１６であるとき、直接モード予測についてのＨ．２６４／ＡＶＣ仕様の第８．４．１項における動きベクトルおよび参照フレームインデックス用の導出プロセス内で、関数ＭｂＰａｒｔＷｉｄｔｈ（Ｂ＿Ｄｉｒｅｃｔ＿１６×１６）およびＭｂＰａｒｔＨｅｉｇｈｔ（Ｂ＿Ｄｉｒｅｃｔ＿１６×１６）が使用される。
【００９５】
[0103]さらに、ｍａｃｒｏｂｌｏｃｋ＿ｌａｙｅｒシンタックス構造は、１つまたは複数のｓｕｂ＿ｍｂ＿ｐｒｅｄシンタックス構造を含み得る。ｓｕｂ＿ｍｂ＿ｐｒｅｄシンタックス構造は、サブマクロブロックタイプを指定する４つのｓｕｂ＿ｍｂ＿ｔｙｐｅシンタックス要素を含み得る。サブマクロブロックタイプは、Ｂ＿Ｄｉｒｅｃｔ＿８×８モード（すなわち、Ｂ−８×８直接モード）を含む。サブマクロブロックのサブマクロブロックタイプがＢ＿Ｄｉｒｅｃｔ＿８×８であるとき、ビットストリーム中のサブマクロブロックについての動きベクトル差分または参照インデックスは存在しない。直接モード予測についてのＨ．２６４／ＡＶＣ仕様の第８．４．１項における動きベクトルおよび参照フレームインデックス用の導出プロセス内で、関数ＳｕｂＭｂＰａｒｔＷｉｄｔｈ（Ｂ＿Ｄｉｒｅｃｔ＿８×８）およびＳｕｂＭｂＰａｒｔＨｅｉｇｈｔ（Ｂ＿Ｄｉｒｅｃｔ＿８×８）が使用される。
【００９６】
[0104]ビデオコーダは、Ｐ＿Ｓｋｉｐ、Ｂ＿Ｓｋｉｐ、Ｂ−１６×１６直接モード、およびＢ−８×８直接モードで、３Ｄ−ＡＶＣにおけるビュー間動き予測を実行することができる。ビュー間動き予測を実行するために、ビデオコーダは、最初に、隣接ブロックからの現在ブロックについての視差ベクトル、ならびに同じビューの深度ビューコンポーネントの深度値から変換された視差ベクトルを導出することができる。１つの利用可能な空間的隣接ブロックが視差動きベクトルを含む場合、ビデオコーダは、この視差動きベクトルが現在ブロックについての視差ベクトルであると決定することができる。そうでない場合、隣接ブロックのうちのいずれも視差動きベクトルを有さないとき、ビデオコーダは、（Ｄ−ＭＶＰにおける変換と同様に）深度値からブロックの視差動きベクトルを変換することができる。その後、ビデオコーダは、現在ブロックについての視差ベクトルを決定するために、３つの隣接ブロックにメディアンフィルタを適用することができる。
【００９７】
[0105]ビデオコーダは、参照（たとえば、ベース）ビュー中の参照ブロックの時間的動きベクトルを決定するために、現在ブロックについての視差ベクトルを使用することができる。時間的動きベクトルが利用不可である場合、ビデオコーダは第１に参照インデックスを導出することができ、ビデオコーダは、動きベクトル予測子を生成するために、上記で説明したように、Ｄ−ＭＶＰを適用することができる。
【００９８】
[0106]本開示は、次に、ＨＥＶＣについて論じる。ＨＥＶＣの以下の議論は、他のビデオコーディング規格および／または仕様にも適用可能であり得る。ビデオエンコーダ２０は、ピクチャの符号化表現を生成するために、コーディングツリーユニット（ＣＴＵ）のセットを生成してもよい。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え（たとえば、それらであり）得る。少なくともいくつかの例では、コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他のビデオコーディング規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、走査順序（たとえば、ラスタ走査）で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００９９】
[0107]本開示は、サンプルの１つまたは複数のブロックのサンプルをコーディングするのに使われるサンプルの１つまたは複数のブロックおよびシンタックス構造を指すのに、「ビデオユニット」または「ビデオブロック」または単に「ブロック」という用語を使う場合がある。例示的なタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分などを含み得る。
【０１００】
[0108]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割し得、したがって「コーディングツリーユニット」という名称がある。少なくともいくつかの例では、コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え（たとえば、それらであり）得る。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。ＣＵのサイズは、一般に、ＣＵのコーディングブロックのサイズに対応し、通常、形状が方形である。いくつかの例では、ＣＵのサイズは、８×８ピクセルから、最大で６４×６４ピクセル以上の最大サイズを有するＣＴＵのサイズにまで及ぶ。
【０１０１】
[0109]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分してもよい。予測ブロックは、同じ予測がそれに適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、ピクチャのクロマサンプルの２つの対応する予測ブロックと、予測ブロックサンプルを予測するのに使用されるシンタックス構造とを備え得る（たとえば、これらであり得る）。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックのために、予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。予測ブロックは、同じ予測が適用されるサンプルの方形（たとえば、Ｍ×Ｎ、ここでＭはＮに等しくても等しくなくてもよい）ブロックであり得る。したがって、ＰＵは、形状が非正方形になるように区分され得る。
【０１０２】
[0110]ビデオエンコーダ２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ブロックを生成し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ（すなわち、ＰＵの予測ブロックを含むピクチャ）の復号されたサンプルに基づいてＰＵの予測ブロックを生成することができる。
【０１０３】
[0111]ビデオエンコーダ２０がインター予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ブロックを生成し得る。インター予測は、単方向インター予測（すなわち、単予測（uni-prediction））でも双方向インター予測（すなわち、双予測（bi-prediction））でもよい。単予測または双予測を実施するために、ビデオエンコーダ２０は、現在スライスに対して、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを生成し得る。参照ピクチャリストの各々は、１つまたは複数の参照ピクチャを含み得る。単予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１のいずれかまたは両方において参照ピクチャを探索して、参照ピクチャ内の参照ロケーションを決定すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、ＰＵのための予測サンプルブロック（すなわち、予測ブロック）を生成すればよい。さらに、単予測を使うとき、ビデオエンコーダ２０は、ＰＵの予測ブロックと参照ロケーションとの間の空間変位を示す単一の動きベクトルを生成すればよい。ＰＵの予測ブロックと参照ロケーションとの間の空間的変位を示すために、動きベクトルは、ＰＵの予測ブロックと参照位置との間の水平方向の変位を規定する水平成分を含んでよく、ＰＵの予測ブロックと参照位置との間の垂直方向の変位を規定する垂直成分を含んでよい。
【０１０４】
[0112]ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャ中の第１の参照ロケーションと、ＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャ中の第２の参照ロケーションとを決定すればよい。次いで、ビデオエンコーダ２０は、ＰＵのための予測ブロックを、第１および第２の参照ロケーションに対応するサンプルに少なくとも部分的に基づいて生成し得る。さらに、ＰＵを符号化するのに双予測を使うとき、ビデオエンコーダ２０は、ＰＵのサンプルブロックと第１の参照ロケーションとの間の空間変位を示す第１の動きベクトルと、ＰＵの予測ブロックと第２の参照ロケーションとの間の空間変位を示す第２の動きベクトルとを生成すればよい。
【０１０５】
[0113]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵについての予測ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ予測ブロック）を生成した後、ビデオエンコーダ２０は、ＣＵについての残差ブロックを生成することができる。たとえば、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成してもよい。ＣＵのルーマ残差ブロック内の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの予測ルーマブロック内のルーマサンプルとＣＵの元のルーマコーディングブロック内の対応するサンプルとの間の差を示す。さらに、ビデオエンコーダ２０はＣＵのＣｂ残差ブロックを生成してもよい。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はＣＵのＣｒ残差ブロックを生成してもよい。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【０１０６】
[0114]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ残差ブロック）を１つまたは複数の変換ブロック（たとえば、ルーマ、Ｃｂ、およびＣｒ変換ブロック）に分解するために、４分木区分を使用し得る。少なくともいくつかの例では、変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２個の対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え（たとえば、それらであり）得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロックを有し（すなわち、それらに関連付けられ）得る。ＴＵの（すなわち、それに関連付けられた）ルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであってもよい。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであってもよい。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであってもよい。３つの別個のカラープレーンを有する１つまたは複数のモノクロームピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。このようにして、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用して、より小さいユニットに再分割される場合がある。ＲＱＴのリーフノードはＴＵと呼ばれる場合がある。ＣＵに関連付けられたシンタックスデータは、たとえば、４分木に従ってＣＵを１つまたは複数のＴＵに区分することも記述することができる。
【０１０７】
[0115]ビデオエンコーダ２０は、ＴＵについての係数ブロックを生成するために、ＴＵの変換ブロックに１回または複数回の変換を適用することができる。係数ブロックは、変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。たとえば、ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１回または複数回の変換を適用することができる。ビデオエンコーダ２０はＴＵのＣｂ変換ブロックに１回または複数の変換を適用してＴＵのＣｂ係数ブロックを生成してよい。ビデオエンコーダ２０はＴＵのＣｒ変換ブロックに１回または複数の変換を適用してＴＵのＣｒ係数ブロックを生成してよい。
【０１０８】
[0116]ビデオエンコーダ２０は、係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、係数ブロックを量子化してもよい。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。さらに、ビデオエンコーダ２０は、変換係数を逆量子化することができ、ピクチャのＣＵのＴＵの変換ブロックを再構成するために変換係数に逆変換を適用することができる。ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成するために、ＣＵのＴＵの再構成された変換ブロックと、ＣＵのＰＵの予測ブロックとを使用することができる。ピクチャの各ＣＵのコーディングブロックを再構成することによって、ビデオエンコーダ２０はピクチャを再構成することができる。ビデオエンコーダ２０は、復号ピクチャバッファ（ＤＰＢ）中に再構築されたピクチャを記憶し得る。したがって、ビデオエンコーダ２０は、復号されたピクチャを記憶するバッファを備え得る。ビデオエンコーダ２０は、ＤＰＢ中の再構成されたピクチャを、インター予測およびイントラ予測用に使用することができる。
【０１０９】
[0117]ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実行し得る。ビデオエンコーダ２０は、エントロピー符号化されたシンタックス要素をビットストリーム中で出力し得る。
【０１１０】
[0118]ビデオエンコーダ２０は、コード化ピクチャと関連付けられたデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含む場合があり、生のバイトシーケンスペイロード（ＲＢＳＰ）をカプセル化することができる。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを含むシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの例では、ＲＢＳＰはゼロビットを含む。
【０１１１】
[0119]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ）についてのＲＢＳＰをカプセル化することができ、第２のタイプのＮＡＬユニットはコード化スライスについてのＲＢＳＰをカプセル化することができ、第３のタイプのＮＡＬユニットは補足エンハンスメント情報（ＳＥＩ）についてのＲＢＳＰをカプセル化することができ、以下同様である。ＰＰＳとは、０個以上のコード化ピクチャ全体に当てはまるシンタックス要素を含み得るシンタックス構造である。ビデオコーディングデータに対するＲＢＳＰ（パラメータセットおよびＳＥＩメッセージに対するＲＢＳＰに対立するものとして）をカプセル化するＮＡＬユニットは、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれることがある。コード化スライスをカプセル化するＮＡＬユニットは、本明細書では、コード化スライスＮＡＬユニットと呼ばれる場合がある。コード化スライスについてのＲＢＳＰは、スライスヘッダと、スライスデータとを含み得る。
【０１１２】
[0120]ＨＥＶＣおよび他のビデオコーディング規格は、様々なタイプのパラメータセットを提供する。たとえば、ビデオパラメータセット（ＶＰＳ）とは、０個以上のコード化ビデオシーケンス（ＣＶＳ）全体に当てはまるシンタックス要素を備えるシンタックス構造である。シーケンスパラメータセット（ＳＰＳ）は、ＣＶＳのすべてのスライスに適用する情報を含み得る。ＳＰＳは、ＳＰＳがアクティブであるとき、アクティブであるＶＰＳを識別するシンタックス要素を含み得る。したがって、ＶＰＳのシンタックス要素は、ＳＰＳのシンタックス要素よりも一般的に適用可能であり得る。ＰＰＳは、０個以上のコード化ピクチャに適用されるシンタックス要素を備えるシンタックス構造である。ＰＰＳは、ＰＰＳがアクティブであるとき、アクティブであるＳＰＳを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされるときにアクティブであるＰＰＳを示すシンタックス要素を含み得る。
【０１１３】
[0121]ビデオデコーダ３０は、ビットストリームを受信することができる。さらに、ビデオデコーダ３０は、ビットストリームをパースして、ビットストリームからシンタックス要素を取得（たとえば、復号）し得る。ビデオデコーダ３０は、ビットストリームから取得（たとえば、復号）されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、ＰＵの動きベクトルを使用して現在ＣＵのＰＵのための予測ブロックを決定し得る。ビデオデコーダ３０は、次いで、ＰＵについての予測ブロックを生成するために、ＰＵの１つの動きベクトルまたは複数の動きベクトルを使用することができる。
【０１１４】
[0122]さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵの（すなわち、それに関連付けられた）変換ブロックを再構成するために係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測サンプルブロック（すなわち、予測ブロック）のサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。ビデオデコーダ３０は、出力するため、および／または他のピクチャを復号するのに使用するために、復号されたピクチャを復号ピクチャバッファ中に記憶し得る。したがって、ビデオデコーダ３０は、復号されたピクチャを記憶するバッファを備え得る。
【０１１５】
[0123]ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）がピクチャの現在スライスをコーディングし始めるとき、ビデオコーダは、第１の参照ピクチャリスト（すなわち、リスト０）を初期化することができる。さらに、現在スライスがＢスライスである場合、ビデオコーダは、第２の参照ピクチャリスト（すなわち、リスト１）を初期化することができる。本開示は、リスト０を「ＲｅｆＰｉｃＬｉｓｔ０」と呼ぶ場合があり、リスト１を「ＲｅｆＰｉｃＬｉｓｔ１」と呼ぶ場合がある。ビデオコーダが参照ピクチャリスト（たとえば、リスト０またはリスト１）を初期化した後、ビデオコーダは、参照ピクチャリスト中の参照ピクチャの順序を修正することができる。言い換えると、ビデオコーダは、参照ピクチャリスト修正（ＲＰＬＭ： reference picture list modification）プロセスを実行することができる。ビデオコーダは、１つの参照ピクチャが参照ピクチャリスト中の１つを超える位置内に出ることが可能な場合を含めて、参照ピクチャの順序を任意の順序で修正することもできる。
【０１１６】
[0124]場合によっては、ビデオエンコーダ２０は、マージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードを使用して、ＰＵの動き情報をシグナリングすることができる。言い換えると、ＨＥＶＣでは、動きパラメータの予測のために２つのモードがあり、一方はマージモードであり、他方はＡＭＶＰである。ＰＵの動き情報は、ＰＵの動きベクトル（１つまたは複数）と、ＰＵの参照インデックス（１つまたは複数）とを含み得る。ビデオエンコーダ２０がマージモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、マージ候補リスト（すなわち、動きベクトル予測子（ＭＶＰ）候補リスト）を生成し得る。言い換えると、ビデオエンコーダ２０は、動きベクトル予測子リスト構築プロセスを実行することができる。マージ候補リストは、マージ候補（すなわち、ＭＶＰ候補）のセットを含む。マージ候補リストは、現在ＰＵに空間的または時間的に隣接するＰＵの動き情報を示すマージ候補を含み得る。すなわち、マージモードでは、動きパラメータ（たとえば、参照インデックス、動きベクトルなど）の候補リストが構築され得、候補は、空間的隣接ブロックおよび時間的隣接ブロックからであり得る。
【０１１７】
[0125]さらに、マージモードでは、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択することができ、選択されたマージ候補によって示される動き情報を、現在ＰＵの動き情報として使うことができる。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト中の位置をシグナリングし得る。たとえば、ビデオエンコーダ２０は、インデックスを候補リスト中に送信することによって、選択された動きベクトルパラメータをシグナリングすることができる。ビデオデコーダ３０は、ビットストリームから、候補リストの中へのインデックス（すなわち、候補リストインデックス）を取得することができる。さらに、ビデオデコーダ３０は、同じマージ候補リストを生成することができ、選択されたマージ候補の位置の表示に基づいて、選択されたマージ候補を決定することができる。ビデオデコーダ３０は、次いで、選択されたマージ候補の動き情報を、現在ＰＵのための予測ブロックを生成するのに使い得る。つまり、ビデオデコーダ３０は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト中の選択された候補を決定することができ、ここで、選択された候補は、現在ＰＵについての動きベクトルを指定する。このように、デコーダ側では、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータは、現在ＰＵによって継承されることになる。
【０１１８】
[0126]スキップモードはマージモードと同様である。スキップモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、マージモードにおいてビデオエンコーダ２０およびビデオデコーダ３０がマージ候補リストを使うのと同じようにマージ候補リストを生成し、使うことができる。ただし、ビデオエンコーダ２０がスキップモードを使って現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵについてのどの残差データもシグナリングしない。したがって、ビデオデコーダ３０は、ＰＵのための予測ブロックとして、マージ候補リスト中の選択された候補の動き情報によって示される参照ブロックを使用することができる。
【０１１９】
[0127]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成し、候補リストから候補を選択するという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がＡＭＶＰモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、選択された候補の候補リスト中の位置をシグナリングすることに加えて、現在ＰＵについての動きベクトル差分（ＭＶＤ）と参照インデックスとをシグナリングすることもできる。現在ＰＵについてのＭＶＤは、現在ＰＵの動きベクトルとＡＭＶＰ候補リストから選択された候補の動きベクトルとの間の差分を示し得る。単予測では、ビデオエンコーダ２０は、現在ＰＵについての１つのＭＶＤと１つの参照インデックスとをシグナリングすることができる。双予測では、ビデオエンコーダ２０は、現在ＰＵについての２つのＭＶＤと２つの参照インデックスとをシグナリングすることができる。このようにして、ビデオエンコーダ２０は、インデックスを候補リスト中で送信することによって、選択された動きベクトルをシグナリングすることができ、参照インデックス値とＭＶＤとをシグナリングすることができる。言い換えると、現在ＰＵについての動きベクトルを表す、ビットストリーム中のデータは、参照インデックスと、候補リストへのインデックスと、ＭＶＤとを表すデータを含み得る。
【０１２０】
[0128]さらに、ＡＭＶＰモードを使用して現在ＰＵの動き情報がシグナリングされるとき、ビデオデコーダ３０は、ビットストリームから、現在ＰＵについてのＭＶＤと、候補リストインデックスとを取得することができる。ビデオデコーダ３０は、同じＡＭＶＰ候補リストを生成することができ、ＡＭＶＰ候補リスト中の選択された候補の位置の表示に基づいて、選択された候補を決定することができる。ビデオデコーダ３０は、選択された候補によって示される動きベクトルにＭＶＤを加算することによって、現在ＰＵの動きベクトルを回復することができる。つまり、ビデオデコーダ３０は、選択された候補によって示される動きベクトルおよびＭＶＤに少なくとも部分的に基づいて、現在ＰＵの動きベクトルを決定することができる。ビデオデコーダ３０は、次いで、回復された１つの動きベクトルまたは複数の動きベクトルを、現在ＰＵ用の予測ブロックを生成するのに使い得る。
【０１２１】
[0129]現在ＰＵに時間的に隣接するＰＵ（すなわち、現在ＰＵとは異なる時間インスタンス中にあるＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト中の候補は、時間的動きベクトル予測子（ＴＭＶＰ）と呼ばれ得る。ＴＭＶＰを決定するために、ビデオコーダは、現在ＰＵと同じ場所にあるＰＵを含む参照ピクチャを最初に識別することができる。言い換えると、ビデオコーダはコロケートピクチャを識別することができる。現在ピクチャの現在スライスがＢスライス（すなわち、双方向インター予測されたＰＵを含むことが許容されるスライス）である場合、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるかＲｅｆＰｉｃＬｉｓｔ１からのものであるかを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダ中でシグナリングすることができる。ビデオデコーダ３０がコロケートピクチャを含む参照ピクチャリストを識別した後、ビデオデコーダ３０は、識別された参照ピクチャリスト中のピクチャ（すなわち、コロケートピクチャ）を識別するために、スライスヘッダ中でシグナリングされ得る別のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）を使用することができる。
【０１２２】
[0130]ビデオコーダは、コロケートピクチャをチェックすることによって、コロケートＰＵを識別し得る。ＴＭＶＰは、コロケートＰＵを含むＣＵの右下ＰＵの動き情報、またはこのＰＵを含むＣＵの中心ＰＵ内の右下ＰＵの動き情報のいずれかを示し得る。コロケートＰＵを含むＣＵの右下ＰＵは、ＰＵの予測ブロックの右下サンプルのすぐ下および右のロケーションをカバーするＰＵであり得る。言い換えると、ＴＭＶＰは、参照ピクチャの中にあり、現在ＰＵの右下コーナーとコロケートされるロケーションをカバーするＰＵの動き情報を示すことができ、または、ＴＭＶＰは、参照ピクチャの中にあり、現在ＰＵの中心とコロケートされるロケーションをカバーするＰＵの動き情報を示すことができる。
【０１２３】
[0131]上記のプロセスによって識別される動きベクトルが、マージモードまたはＡＭＶＰモード用の動き候補を生成するために使用されるとき、動きベクトルは、時間的位置（たとえば、ピクチャ順序カウント（ＰＯＣ）値によって反映される）に基づいてスケーリングされ得る。たとえば、ビデオコーダは、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が小さいときよりも、現在ピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との差が大きいときに、動きベクトルの大きさをより大きな量増大させることができる。
【０１２４】
[0132]ＷＰＰは、並列性を高めるための技法である。ビデオコーダがＷＰＰを使用してピクチャをコーディングする場合、ビデオコーダはピクチャのＣＴＢを複数の「ＷＰＰ波」に分割することができる。ＷＰＰ波の各々は、ピクチャ中のＣＴＢの異なる行に対応し得る。ビデオコーダがＷＰＰを使用してピクチャをコーディングする場合、ビデオコーダはＣＴＢの最上行からコーディングを開始してよい。ビデオコーダが最上行の２つ以上のＣＴＢをコーディングした後、ビデオコーダは、ＣＴＢの最上行をコーディングすることと並列にＣＴＢの最上行から２番目の行をコーディングし始め得る。ビデオコーダが最上行から２番目の２つ以上のＣＴＢをコーディングした後、ビデオコーダは、ＣＴＢの最上行をコーディングすることと並列にＣＴＢの最上行から３番目の行をコーディングし始め得る。このパターンは、ピクチャ中のＣＴＢの行を下って続き得る。
【０１２５】
[0133]ビデオコーダがＷＰＰを使用している場合、ビデオコーダは、空間的に隣接するＣＵが現在ＣＴＢの左、左上、上、または右上にある限り、現在ＣＴＢ中の特定のＣＵに対してピクチャ内予測を実行するために、現在ＣＴＢ外の空間的に隣接するＣＵに関連付けられた情報を使用し得る。現在ＣＴＢが一番上の行以外の行中の最左ＣＴＢである場合、ビデオコーダは、現在ＣＴＢの１つまたは複数のシンタックス要素をＣＡＢＡＣコーディングするためのコンテキストを選択するために、すぐ上の行の第２のＣＴＢに関連付けられた情報を使用し得る。そうではなく、現在ＣＴＢが行中の最左ＣＴＢでない場合、ビデオコーダは、現在ＣＴＢの１つまたは複数のシンタックス要素をＣＡＢＡＣコーディングするためのコンテキストを選択するために、現在ＣＴＢの左のＣＴＢに関連付けられた情報を使用し得る。このようにして、ビデオコーダは、すぐ上の行の２つ以上のＣＴＢを符号化した後に、すぐ上の行のＣＡＢＡＣ状態に基づいて、ある行のＣＡＢＡＣ状態を初期化し得る。
【０１２６】
[0134]したがって、第１のＣＴＢが単一のＣＴＢによってピクチャの左境界から分離されると決定することに応答して、ビデオコーダは、その第１のＣＴＢに関連付けられたコンテキスト変数を記憶し得る。ビデオコーダは、第１のＣＴＢに関連付けられたコンテキスト変数に少なくとも部分的に基づいて、第２のＣＴＢの１つもしくは複数のシンタックス要素をエントロピーコーディング（たとえば、エントロピー符号化またはエントロピー復号）することができ、第２のＣＴＢは、ピクチャの左境界と、第１のＣＴＢよりも低いＣＴＢの１つの行に隣接する。
【０１２７】
[0135]図５は、ＷＰＰの一例を示す概念図である。上述のように、ピクチャは、その各々が関連付けられたＣＴＢである、ピクセルブロックに区分され得る。図５は、ＣＴＢに関連付けられたピクセルブロックを白い正方形の格子として示す。ピクチャはＣＴＢ行５０Ａ〜５０Ｅ（総称して、「ＣＴＢ行５０」）を含む。
【０１２８】
[0136]（たとえば、複数の並列処理コアのうちの１つによって実行される）第１の並列処理スレッドは、ＣＴＢ行５０Ａ中のコーディングＣＴＢであり得る。同時に、（たとえば、他の並列処理コアによって実行される）他のスレッドは、ＣＴＢ行５０Ｂ、５０Ｃ、および５０Ｄ中のコーディングＣＴＢであり得る。図５の例では、第１のスレッドはＣＴＢ５２Ａを現在コーディングしており、第２のスレッドはＣＴＢ５２Ｂを現在コーディングしており、第３のスレッドはＣＴＢ５２Ｃを現在コーディングしており、第４のスレッドはＣＴＢ５２Ｄを現在コーディングしている。本開示は、ＣＴＢ５２Ａ、５２Ｂ、５２Ｃ、および５２Ｄを「現在ＣＴＢ５２」と総称することがある。ビデオコーダは、すぐ上の行の３つ以上のＣＴＢがコーディングされた後、ＣＴＢ行をコーディングし始め得るので、現在ＣＴＢ５２は、２つのＣＴＢの幅だけ互いから水平方向に変位される。
【０１２９】
[0137]図５の例では、スレッドは、現在ＣＴＢ３５２中のＣＵについてのイントラ予測またはインター予測を実行するために、太いグレーの矢印によって示されるＣＴＢからのデータを使用し得る。（スレッドは、ＣＵについてのインター予測を実行するために、１つまたは複数の参照フレームからのデータを使用することもできる。）所与のＣＴＢをコーディングするために、スレッドは、前にコーディングされたＣＴＢに関連付けられた情報に基づいて、１つまたは複数のＣＡＢＡＣコンテキストを選択することができる。スレッドは、所与のＣＴＢの第１のＣＵに関連付けられたシンタックス要素に対してＣＡＢＡＣコーディングを実行するために１つまたは複数のＣＡＢＡＣコンテキストを使用し得る。所与のＣＴＢが行の最左ＣＴＢでない場合、スレッドは、所与のＣＴＢの左のＣＴＢの最後のＣＵに関連付けられた情報に基づいて、１つまたは複数のＣＡＢＡＣコンテキストを選択することができる。所与のＣＴＢが行の最左ＣＴＢである場合、スレッドは、所与のＣＴＢの上の、およびその右の２つのＣＴＢの最後のＣＵに関連付けられた情報に基づいて、１つまたは複数のＣＡＢＡＣコンテキストを選択することができる。スレッドは、現在ＣＴＢ５２の第１のＣＵのためのＣＡＢＡＣコンテキストを選択するために、細い黒い矢印によって示されるＣＴＢの最後のＣＵからのデータを使用し得る。
【０１３０】
[0138]３Ｄ−ＨＥＶＣは、異なる視点からの同じシーンの複数のビューを提供する。３Ｄ−ＨＥＶＣ用の規格化の取り組みの一部は、ＨＥＶＣに基づいたマルチビュービデオコーデックの規格化を含む。ＨＥＶＣベースの３ＤＶ（すなわち、３Ｄ−ＨＥＶＣ）では、異なるビューからの再構成されたビューコンポーネントに基づくビュー間予測が有効にされる。Ｈ．２６４／ＡＶＣにおけるＭＶＣのように、３Ｄ−ＨＥＶＣはビュー間予測（ＩＭＰ）をサポートする。３Ｄ−ＨＥＶＣにおいて、ＩＭＰは、標準ＨＥＶＣにおいて使用される動き補償と同様であり、同じまたは同様のシンタックス要素を利用し得る。ただし、ビデオコーダがＰＵに対してＩＭＰを実行するとき、ビデオエンコーダは、参照ピクチャとして、そのＰＵと同じアクセスユニット中にあるが、異なるビュー中にあるピクチャを使用し得る。対照的に、従来の動き補償は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。したがって、３Ｄ−ＨＥＶＣでは、従属ビュー中のブロックの動きパラメータは、同じアクセスユニットの他のビュー中のすでにコーディングされた動きパラメータに基づいて予測または推測され得る。
【０１３１】
[0139]３Ｄ−ＨＥＶＣおよび他のビデオコーディング規格では、現在ＰＵの動き情報が、マージモードまたはＡＭＶＰモードを使用してシグナリングされるとき、ビデオコーダは候補リスト（たとえば、マージ候補リストまたはＡＭＶＰ候補リスト）を生成する。さらに、３Ｄ−ＨＥＶＣおよび他のビデオコーディング規格では、候補リストは、候補リスト中の他の候補と同じように使用され得るビュー間予測候補を含み得る。ビュー間予測動きベクトル候補は、参照ピクチャのＰＵ（すなわち、参照ＰＵ）の動き情報を指定する。参照ピクチャは、現在ＰＵと同じ時間アクセスユニット中にあるが、現在ＰＵとは異なるビュー中にある。参照ＰＵを決定するために、ビデオコーダは、現在ＰＵについての視差ベクトルを決定するための視差ベクトル構築プロセスを実行し得る。現在ＰＵについての視差ベクトルは、現在ＰＵと、参照テクスチャピクチャ内のロケーションとの間の水平空間変位を示し得る。参照ＰＵは、視差ベクトルによって示されたロケーションをカバーする参照テクスチャピクチャのＰＵであり得る。
【０１３２】
[0140]視差動きベクトルは、ビュー間参照ピクチャ中のロケーションを指す動きベクトルである。ビュー間参照ピクチャは、現在ＰＵと同じアクセスユニット中にあるが、異なるビュー中にあるテクスチャピクチャである。空間的視差ベクトル（ＳＤＶ）は、現在ＰＵに空間的に隣接するＰＵの視差動きベクトルである。言い換えると、ＳＤＶは、空間的に隣接するＰＵによって指定され、空間的に隣接するＰＵが現在ＰＵに空間的に隣接する、ビュー間参照ピクチャ内のロケーションを示す動きベクトルである。時間的視差ベクトル（ＴＤＶ）は、現在ＰＵと同じビュー中の現在ＰＵとは異なるアクセスユニット中の、現在ＰＵとコロケートされるＰＵの視差動きベクトルである。言い換えると、ＴＤＶは、同じアクセスユニットによる任意の参照ピクチャまたはビュー間ピクチャの中のコロケートＰＵまたはコロケートＬＣＵからの視差動きベクトルであり得る。代替的に、ＴＭＶＰに使用されたピクチャからのコロケートＰＵの動きベクトルまたはＴＭＶＰによって生成された動きベクトルが視差ベクトルである場合、それはまたＴＤＶとして扱われる。現在ＰＵの空間的に隣接するかまたは時間的に隣接するＰＵが、ビュー間動き予測を使用してコーディングされる場合、空間的に隣接するかまたは時間的に隣接するＰＵの視差ベクトルはＩＤＶである。
【０１３３】
[0141]ビデオコーダは、ＩＭＰについて選択された視差ベクトルを直接使用することができる。上記のように、ビデオエンコーダは、マージ／スキップモードまたはＡＭＶＰモードを使用して、現在ＰＵの動き情報をシグナリングするとき、現在ＰＵについての動きベクトル予測子候補リスト（すなわち、動きベクトル候補リスト）を生成することができる。ビデオコーダは、ビュー間参照ピクチャ中の参照ＰＵを決定するために、選択された視差ベクトル候補によって指定された視差ベクトルを使用し得る。ビデオコーダは、その場合、マージモードまたはＡＭＶＰモード用の動きベクトル予測子候補リスト中のビュー間予測動きベクトル候補として、参照ＰＵの動き情報を含み得る。
【０１３４】
[0142]さらに、３Ｄ−ＨＥＶＣおよび他のビデオコーディング規格は、ビュー間残差予測をサポートし得る。ビュー間残差予測では、ビデオコーダは、現在ブロックとは異なるビュー中の残差データに基づいて、現在ブロック（たとえば、ＣＵ）の残差ブロックを決定することができる。ビデオコーダは、異なるビュー中の残差データを決定するために、現在ブロックの視差ベクトル（または、現在ブロック（たとえば、ＰＵ）のサブブロックの視差ベクトル）を使用し得る。
【０１３５】
[0143]いくつかの事例では、ビデオコーダは、各ＣＵについての導出された視差ベクトルに基づいて、ＣＵレベルのビュー間残差予測（ＩＶＲＰ）を実行することができる。ビデオコーダが現在ピクチャの現在ＣＵに対してＩＶＲＰを実行するとき、ビデオコーダは、現在ＣＵについての動き補償ブロックを決定するために、現在ＣＵのＰＵの動きベクトルを使用することができる。言い換えると、現在ＣＵについての動き補償ブロックは、現在ＣＵのＰＵの予測ブロックを備え得る。現在ＣＵの動き補償ブロックは、Ｐeとして表記され得る。現在ＣＵについての残差ブロック（ｒe）中の各サンプルは、現在ＣＵの元のコーディングブロック中のサンプルと、Ｐe中の対応するサンプルとの間の差分を示し得る。さらに、ビデオコーダは、参照ピクチャ中の視差参照ＣＵを決定するために、現在ＣＵの視差ベクトルを使用することができる。参照ピクチャは、現在ピクチャとは異なるビュー中にあり得る。視差参照ＣＵの残差ブロックは、ｒbとして表記され得る。視差参照ＣＵの残差ブロック（ｒb）の各サンプルは、視差参照ＣＵについてのコーディングブロックの元のサンプルと、視差参照ＣＵのＰＵについての予測ブロック中の対応する予測サンプルとの間の差分を示し得る。
【０１３６】
[0144]ビデオエンコーダ２０は、ビットストリーム中に、最終残差ブロックを示すデータを含み得る。最終残差ブロック中の各サンプルは、ｒb中のサンプルと、ｒe中の対応するサンプルとの間の差分を示し得る。したがって、ビュー間残差予測が使われるとき、動き補償は、以下の式によって表現され得る。
【数３】
2016524408.tif 000005
【０１３７】
上式で、現在ブロック
【数４】
2016524408.tif 000006
【０１３８】
の再構成は、逆量子化係数ｒe＋予測Ｐeおよび量子化正規化残差係数（quantization normalized residual coefficients）ｒbに等しい。ビデオコーダは、ｒbを、残差予測子として扱うことができる。したがって、動き補償と同様に、ｒbが現在残差から減算されればよく、得られた差分信号のみが変換コーディングされる。
【０１３９】
[0145]いくつかのビデオコーダは、いわゆる、高度残差予測（ＡＲＰ：Advanced Residual Prediction）を実装することができる。たとえば、Ｚｈａｎｇら、「３Ｄ−ＣＥ５．ｈ  ｒｅｌａｔｅｄ：Ａｄｖａｎｃｅｄ  ｒｅｓｉｄｕａｌ  ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  ｍｕｌｔｉｖｉｅｗ  ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発に関する共同研究部会、第２回会議、上海、中国、２０１２年１０月１３〜１９日、文書ＪＣＴ３Ｖ−Ｂ００５１（以下、「ＪＣＴ３Ｖ−Ｂ００５１」）は、ビュー間残差予測のコーディング効率をさらに改善するためのＡＲＰ方法を提案した。
【０１４０】
[0146]上記のように、ビュー間動き予測、ビュー間残差予測、および／または他のビュー間コーディング技法は視差ベクトルに依存し得る。隣接ブロックベースの視差ベクトル（ＮＢＤＶ）導出は、ブロックについての視差ベクトルを決定するためのプロセスである。ＮＢＤＶは、すべてのビューに対してテクスチャファーストコーディング順序を使用する３Ｄ−ＨＥＶＣにおける視差ベクトル導出方法に使用される。少なくともいくつかの３Ｄ−ＨＥＶＣ設計では、ＮＢＤＶは、参照ビューの深度マップから深度データを取り出すためにも使用される。次のように、参照ソフトウェア記述、ならびに３Ｄ−ＨＥＶＣの作業草案が利用可能である。Ｇｅｒｈａｒｄ  Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｄｒａｆｔ  ２」、ＪＣＴ３Ｖ−Ｂ１００５、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第２回会合：上海、中国、２０１２年１０月（以下、「ＪＣＴ３Ｖ−Ｂ１００５」）。少なくとも２０１４年５月９日時点で、ＪＣＴＶ−Ｂ１００５は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／２＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴ３Ｖ−Ｂ１００５−ｖ１．ｚｉｐから利用可能である。
【０１４１】
[0147]視差ベクトルは、２つのビューの間の視差を推定するために使用される。隣接ブロックは、ビデオコーディングにおいてほとんど同じ動き／視差情報を共有するので、現在ブロックは、良好な予測子として、隣接ブロック中の動きベクトル情報を使用することができる。この考えに従って、ＮＢＤＶ導出プロセス（すなわち、「ＮＢＤＶプロセス」または、単に「ＮＢＤＶ」）は、異なるビュー中の視差ベクトルを推定するために隣接する視差情報を使用する。
【０１４２】
[0148]いくつかの空間的隣接ブロックおよび時間的隣接ブロックは、最初に定義される。空間的および時間的隣接ブロックの各々が、次いで、現在ブロックと候補ブロックとの間の相関の優先度によって決定された、あらかじめ定義された順序でチェックされる。視差動きベクトル（すなわち、動きベクトルがビュー間参照ピクチャを指す）が候補中で発見されると、視差動きベクトルが視差ベクトルに変換される。２つのセットの隣接ブロックが利用される。一方のセットは、空間的隣接ブロックからのものであり、他方のセットは、時間的隣接ブロックからのものである。
【０１４３】
ビデオコーダは、すべてのビューについてテクスチャファーストコーディング順序を使用する、３Ｄ−ＨＥＶＣおよび他のビデオコーディング規格における視差ベクトル導出方法として、ＮＢＤＶ導出プロセスを使用することができる。少なくともいくつかの３Ｄ−ＨＥＶＣ設計では、ビデオコーダは、参照ビューの深度マップから深度データを取り出すために、ＮＢＤＶ導出プロセスを使用することもできる。３Ｄ−ＨＥＶＣは、最初に、Ｚｈａｎｇら、「Ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｇｅｎｅｒａｔｉｏｎ  ｒｅｓｕｌｔｓ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第１回会合、ストックホルム、スウェーデン、２０１２年７月１６〜２０日、文書ＪＣＴ３Ｖ−Ａ００９７（以下、ＪＣＴ３Ｖ−Ａ００９７）で提案されたＮＢＤＶ方法を採用した。ＪＣＴ３Ｖ−Ａ０１２６、Ｓｕｎｇら、「３Ｄ−ＣＥ５．ｈ：Ｓｉｍｐｌｉｆｉｃａｔｉｏｎ  ｏｆ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ＨＥＶＣ−ｂａｓｅｄ  ３Ｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ−ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第１回会合、ストックホルム、スウェーデン、２０１２年７月１６〜２０日、文書番号ＪＣＴ３Ｖ−Ａ０１２６（以下、ＪＣＴ３Ｖ−Ａ０１２６」で簡素化されたＮＢＤＶとともに暗黙的視差ベクトルが含まれる。加えて、Ｋａｎｇら、「３Ｄ−ＣＥ５．ｈ  ｒｅｌａｔｅｄ：Ｉｍｐｒｏｖｅｍｅｎｔｓ  ｆｏｒ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発共同研究部会、第２回会合：上海、中国、２０１２年１０月１３〜１９日、文書ＪＣＴ３Ｖ−Ｂ００４７（以下、ＪＣＴ３Ｖ−Ｂ００４７）では、ＮＢＤＶ導出プロセスは、ランダムアクセスピクチャ（ＲＡＰ）の選択で改善されたコーディング利得を実現しながら、復号ピクチャバッファ中に記憶された暗黙視差ベクトルを除去することによって、さらに簡略化される。
【０１４４】
[0149]いくつかのＮＢＤＶ導出プロセスでは、ビデオコーダは、視差ベクトル導出のために５つの空間的隣接ブロックを使用する。５つの空間的隣接ブロックは、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2によって表記される、現在ＰＵの左下ブロック、左ブロック、右上ブロック、上ブロック、および左上ブロックである。提案されたＮＢＤＶ導出プロセスで使用される５つの空間的隣接ブロックは、ＨＥＶＣにおけるマージモードで使用される同じ５つの空間的隣接ブロックであり得る。したがって、いくつかの例では、５つの空間的隣接ブロックにアクセスするために、さらなるメモリアクセスは必要とされない。
【０１４５】
[0150]時間的隣接ブロックをチェックする場合、候補ピクチャリストの構築プロセスが最初に実行される。現在ビューからのすべての参照ピクチャが、候補ピクチャとして扱われ得る。コロケート参照ピクチャが最初に候補ピクチャリスト中に挿入され、参照インデックスの昇順に候補ピクチャの残りによって後続される。両参照ピクチャリスト中の同じ参照インデックスを有する参照ピクチャが利用可能であるとき、コロケートピクチャの同じ参照ピクチャリスト中の一方が、他方に先行する。候補ピクチャリスト中の候補ピクチャごとに、時間的隣接ブロックを導出するために３つの候補領域が決定される。
【０１４６】
[0151]ビデオコーダがビュー間動き予測でブロックをコーディングするとき、ビデオコーダは、異なるビュー中の対応するブロックを選択するための視差ベクトルを導出することができる。「暗黙視差ベクトル」または「ＩＤＶ」（もしくは、場合によっては「導出された視差ベクトル」）という用語は、ビュー間動き予測において導出された視差ベクトルを指すことがある。たとえば、ビデオコーダが動き予測（すなわち、時間的動き予測）でブロックをコーディングすることができる場合すら、ビデオコーダは、導出された視差ベクトルを廃棄しない。むしろ、ビデオコーダは、後続のブロックをコーディングする目的で視差ベクトルを使用することができる。詳細には、ビデオコーダは、視差ベクトルを暗黙視差ベクトルとして扱うことができ、１つまたは複数の他のブロックについての視差ベクトルを決定するために、ＮＢＤＶ導出プロセスにおいて暗黙視差ベクトルを使用することができる。
【０１４７】
[0152]通常、ビデオコーダがＮＢＤＶ導出プロセスを実行するとき、ビデオコーダは、順番に、時間的隣接ブロック中の視差動きベクトルと、空間的隣接ブロック中の視差動きベクトルと、次いで暗黙視差ベクトルとをチェックする。ビデオコーダが視差ベクトルを発見すると、ビデオコーダは、ＮＢＤＶ導出プロセスを終了することができる。
【０１４８】
[0153]後方ＶＳＰは３Ｄ−ＨＥＶＣにおいて有効にされ得る。３Ｄ−ＨＥＶＣでは、ビデオコーダがテクスチャファーストコーディング順序を適用するとき、ビデオコーダは、参照深度ビュー中の深度値の考慮事項の有無にかかわらず、ＰＵごとに、ＮＢＤＶ導出プロセスから視差ベクトルを導出することができる。ビデオコーダが視差ベクトルを取得した後、ＰＵの４×４下位領域がＢＶＳＰモードでコーディングされた場合、ビデオコーダはさらに、１つのＰＵの４×４下位領域ごとに視差ベクトルを改良することができる。
【０１４９】
[0154]改良プロセスは２つのステップを含む場合がある。１番目のステップでは、ビデオコーダは、参照深度ビュー中の４×４深度ブロックから１つの最大深度値を選択することができる。ビデオコーダは、４×４深度ブロックを位置特定するために導出された視差ベクトルを使用することができる。２番目のステップでは、ビデオコーダは、改良された視差ベクトルの垂直成分を０であるように保持しながら、改良された視差ベクトルの水平成分に深度値を変換することができる。視差ベクトルが１つのＰＵの１つの４×４下位領域用に改良された後、ビデオコーダは、動き補償のために参照テクスチャビュー中の１つのブロックを位置特定するために、改良された視差ベクトルを使用することができる。
【０１５０】
[0155]２０１３年４月２４日に出願された米国仮特許出願第６１／８１５，６５６号で説明するように、ＭＢレベルＮＢＤＶは、現在ＭＢについての視差ベクトルを導出するために使用され、動きベクトル予測のためにさらに使用され得る。視差動きベクトルが識別されると、すなわち、時間的または空間的隣接ブロックのうちの１つがビュー間参照ピクチャを使用すると、それが現在ＭＢについての視差ベクトルとして返される。米国仮特許出願第６１／８１５，６５６号の１つの例示的な実装形態を下で説明する。この例示的な実装形態では、図６に示すように、ＡＶＣ動き予測プロセスにおいてチェックされる空間的隣接ブロックは、提案されたＮＢＤＶプロセスにおいて、Ａ（左）、Ｂ（上）、Ｃ（右上）、およびＤ（左上）の順序でチェックされる。図６は、ＮＢＤＶについての時間的隣接ブロックを示す概念図である。
【０１５１】
[0156]現在ピクチャと同じビュー中の最大で２つの参照ピクチャからのブロックがチェックされる（Ｂスライス用のＲｅｆＰｉｃＬｉｓｔ１［０］およびＲｅｆＰｉｃＬｉｓｔ０［０］ならびにＰスライス用のＲｅｆＰｉｃＬｉｓｔ０［０］）。いくつかの例では、３つの時間的ブロックはピクチャごとにチェックされ、図７に示すように、各ピクチャに関して、コロケートＭＢに対するコロケートブロックが、下に示すように、ＢＲ（右下）、ＣＴ３（中心３）、およびＣＯ２（コーナー２）の順でチェックされる。図７は、ＮＢＤＶについての例示的な時間的隣接ブロックを示す概念図。
【０１５２】
[0157]上述の隣接ブロックが順番にチェックされる。３Ｄ−ＨＥＶＣと同様に、時間的隣接ブロックが最初にチェックされ、空間的隣接ブロックがその後にチェックされる。利用可能な視差動きベクトルを含むブロックが識別されると、導出プロセスは終了する。マルチビューコーディング＋深度（ＭＶＣ＋Ｄ：multi-view coding plus depth）と比較した米国仮特許出願第６１／８１５，６５６号の提案方法のコーディング利得を以下の表（表１）に示す。Ｖｅｔｒｏら、「Ｊｏｉｎｔ  Ｄｒａｆｔ  ８．０  ｏｎ  Ｍｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」、ＩＳＯ／ＩＥＣ  ＭＰＥＧ＆ＩＴＵ−Ｔ  ＶＣＥＧ（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１およびＩＴＵ−Ｔ  ＳＧ１６  Ｑ．６）の共同ビデオチーム（ＪＶＴ）、第２８回会合、ハノーバー、ドイツ、２００８年７月２０〜２５日、文書番号ＪＶＴ−ＡＢ２０４はＭＶＣ＋Ｄの一草案である。
【表１】
2016524408.tif 000007
【０１５３】
[0158]米国仮特許出願第６１／８１５，６５６号の提案方法により、３Ｄ−ＡＶＣでは効率的にサポートされないテクスチャのみのコーディングを有効にする。同じテクスチャのみの構成を有効にするとき、現在の３Ｄ−ＡＶＣからのコーディング利得は１％にすぎない。
【０１５４】
[0159]いくつかの例では、参照ビューの深度ビューコンポーネントにアクセスするＮＢＤＶ導出プロセスが３Ｄ−ＡＶＣにおいて使用される。その内容全体が参照により本明細書に組み込まれる、２０１３年２月２７日に出願された米国仮特許出願第６１／７７０，２６８号（‘２６８出願）に記載されたように、ＮＢＤＶ導出プロセスは、ベース／参照ビューの深度ビューコンポーネントにアクセスすることによって、さらに改善され得る。‘２６８出願に記載されたように、ビデオコーダは、深度ビューコンポーネント中の深度ピクセルを位置特定するために、隣接ブロックから導出された視差ベクトルを使用することができ、その結果、ビデオコーダは視差ベクトルをさらに改良することができる。以下の表（表２）は、ＭＶＣ＋Ｄと比較されたときの、‘２６８出願の提案方法のコーディング利得を示す。
【表２】
2016524408.tif 000008
【０１５５】
上記に示したように、‘２６８出願の提案方法は５％さらに多くのコーディング利得を実現するが、深度ビューコンポーネントにアクセスすることが依然として必要とされる。
【０１５６】
[0160]３Ｄ−ＡＶＣでは、導出された視差ベクトル（ＤＤＶ）は、２０１３年４月５日に出願された米国仮特許出願第６１／８０９，１７４号（‘１７４出願）において、（ビュー間予測が有効にされるとき）スライス全体に関して維持され、各ＭＢによって更新されるように提案されている。簡単のために、そのようなＤＤＶはイントラＭＢに関して計算され得ない。３Ｄ−ＡＶＣでは、導出された視差ベクトルは、‘１７４出願において、（ビュー間予測が有効にされるとき）スライス全体に関して維持され、各ＣＵ（または、ＰＵ）によって更新されるように提案されている。ＮＢＤＶが隣接ブロックから何の利用可能な視差動きベクトルも発見しないとき、ＤＤＶは現在ブロックの視差ベクトルになるように設定される。
【０１５７】
[0161]第１のスライスのＤＤＶは、一般に、ゼロに設定され得る。ＤＤＶは、復号順に更新され得る。したがって、以下の事例に関して、好ましくない復号依存性が発生し得る。第１に、ＡＶＣにおいてＣＡＶＬＣエントロピーコーディングが使用される場合、ある種のデコーダ（たとえば、スマートデコーダ）は、ある遅延を伴って、ＭＢ行を並列に復号することができる。第２に、ＨＥＶＣで波面並列処理（ＷＰＰ）が有効にされるとき、現在コーディングユニットが以前のＣＴＢ行中のＣＵに依存するとは限らない。第３に、場合によっては、以前の行中にあるＣＵからのＤＤＶを使用することの効率は低いが、水平方向の現在ＣＵからは遠い。たとえば、現在ＣＴＢ行の第１のＣＵは、以前のＣＴＢ行の最後のＣＵのグランドトゥルース視差とは非常に異なるグランドトゥルース視差を有し得ることが考えられる。一般に、グランドトゥルース視差は、グランドトゥルース深度（すなわち、ピクセルによって描かれたオブジェクトの実際の深度）から導出された視差であり得る。本開示の技法は、たとえば、‘１７４出願で提案された、導出された視差ベクトルの並列性に関して、さらなる柔軟性を実現し得る。
【０１５８】
[0162]本開示の例示的な技法によれば、３Ｄ−ＨＥＶＣまたは他のビデオコーディング規格では、ＣＵの復号の間、現在ＣＵがＣＴＢ行の第１のＣＵおよび／または１つのスライスの第１のＣＵになると、ＤＤＶはゼロに設定されるべきである。したがって、ＤＤＶの値は、ＣＴＢ行にわたって保持されない。いくつかの例では、ＣＵがイントラ予測でコーディングされているか、またはインター予測でコーディングされているかにかかわらず、ＣＵが、新しいＣＴＢ行を開始するＣＴＢの第１のＣＵである場合、ビデオコーダは、現在ＣＴＢ行の第１のＣＴＢのいずれかのＣＵをコーディングする前に、ＤＤＶをゼロになるように設定することによって、ＤＤＶを更新する。インターＣＵが従属ビュー中でコーディングされた後、インターＣＵがＣＴＢ行中の第１のＣＵであるときですら、ビデオコーダは、ＣＵのＤＤＶに等しくなるように、そのＤＤＶを更新する。
【０１５９】
[0163]さらに、３Ｄ−ＨＥＶＣまたは他のビデオコーディング規格に関する本開示の１つもしくは複数の例示的な技法によれば、新しいタイルが開始するとき、または新しいタイルの新しいＣＴＢ行が開始するときですら、ＤＤＶはゼロになるように更新される。したがって、いくつかの例では、ビデオコーダは、タイルにわたってＤＤＶの値を保持せず、タイルのＣＴＢ行にわたってＤＤＶの値を保持しない。したがって、いくつかのそのような例では、スライスの各それぞれのＣＵに関して、ビデオコーダは、それぞれのＣＵがピクチャのタイルの第１のＣＵであると決定することに応答して、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる。
【０１６０】
[0164]少なくともいくつかの例では、タイルは、ピクチャ中の特定のタイル列および特定のタイル行中のＣＴＢの矩形領域（または、他のタイプのブロック）である。タイル列は、そのピクチャの高さに等しい高さと、（たとえば、ＰＰＳ中の）シンタックス要素によって指定された幅とを有するＣＴＢの矩形領域（または、他のタイプのブロック）であり得る。タイル行は、（たとえば、ＰＰＳ中の）シンタックス要素によって指定された高さと、そのピクチャの幅に等しい幅とを有するＣＴＢ（または、他のタイプのブロック）の矩形領域であり得る。
【０１６１】
[0165]３Ｄ−ＨＥＶＣまたは他のビデオコーディング規格に関する本開示の１つもしくは複数の例示的な技法によれば、ビデオコーダが各スライスまたはタイルを開始するとき、ビデオコーダは、ＤＤＶをゼロに再設定することができる。さらに、ビデオコーダは、ＷＰＰを使用して、スライスをコーディング（たとえば、符号化またはデコーダ）し得る。この例では、ＷＷＰが有効にされ、ビデオコーダがＷＷＰ（ＣＴＢ行）のコーディングを開始するとき、ビデオコーダはＤＤＶをゼロに再設定する。一般に、ビデオコーダがＣＴＢ行をコーディングし始めるとき、ＤＤＶは、以前のＣＴＢ行の最後のブロック（たとえば、ＣＵ）のＤＤＶに等しい場合がある。したがって、ビデオコーダが以前のＣＴＢ行の最後のブロックをコーディングした後まで、ビデオコーダはＣＴＢ行の第１のブロックをコーディングし始めることができない可能性がある。これは、複数のＣＴＢ行の並列でのコーディングを実現するＷＰＰに適合し得ない。この例では、ＷＰＰが有効にされるとき、ビデオコーダは、各ＣＴＢ行に関して別個のＤＤＶを維持することができる。本開示で説明するように、ビデオコーダがＣＴＢ行をコーディングし始めるとき、ＣＴＢに関するＤＤＶをゼロに設定することは、ＷＰＰを容易にし得るが、これは、ビデオコーダは、以前のＣＴＢ行の最後のブロックのＤＤＶが、ＣＴＢ行の第１のブロックをコーディングし始めるのに先立って決定されるのをもはや待つ必要がないためである。このように、本開示の技法は、ビデオコーダの並列処理を高めることを有効にし得る。
【０１６２】
[0166]さらに、３Ｄ−ＨＥＶＣまたは他のビデオコーディング規格に関する本開示の１つもしくは複数の例示的な技法によれば、ビデオコーダはＣＴＢにわたってＤＤＶを保持しない。したがって、ビデオコーダがＣＴＢの第１のＣＵもしくはＰＵを符号化または復号する前に、ビデオコーダは、常に、ＤＤＶをまず０に設定することができる。したがって、いくつかの例では、スライスの各それぞれのＣＵに関して、ビデオコーダは、それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる。
【０１６３】
[0167]Ｈ２６４／ＡＶＣおよび他のビデオコーディング規格では、ビデオコーダは、異なるプロファイル内で異なるエントロピーコーデックを使用することができる。たとえば、１つのプロファイル（たとえば、ベースラインプロファイル、拡張プロファイルなど）で動作するビデオコーダは、変換係数を表すシンタックス要素をコーディングするために、ＣＡＶＬＣを使用することができる。この例では、別のプロファイルで動作するビデオコーダは、変換係数を表すシンタックス要素をエントロピーコーディングするために、ＣＡＢＡＣを使用することができる。３Ｄ−ＡＶＣまたは他のコーディング規格に関する本開示の１つもしくは複数の例示的な技法によれば、ビデオコーダが１つのスライス内の新しいＭＢ行および／または第１のＭＢから始めてＭＢを復号した後に、ビデオコーダはＤＤＶをゼロに再設定する。いくつかの例では、エントロピーコーデックがＣＡＶＬＣである場合のみ、ビデオコーダはＤＤＶをゼロに再設定し、エントロピーコーデックがＣＡＢＡＣである場合、ビデオコーダはＤＤＶをゼロに再設定しない。この例では、エントロピーコーデックは、現在ブロック（たとえば、現在ＭＢ）についての変換係数を表すシンタックス要素をエントロピー符号化およびエントロピー復号するために使用されるコーデックであり得る。したがって、いくつかの例では、エントロピーコーデックがＣＡＶＬＣである場合、ビデオコーダはＤＤＶをゼロに再設定することができ、エントロピーコーディングされたがＣＡＢＡＣである場合、ＤＤＶをゼロに再設定しない。
【０１６４】
[0168]上で説明した本開示の技法のうちのいくつかまたはすべてによれば、スライス、タイル、ＣＴＢ行、またはＣＴＢの第１のＣＵについてＤＤＶをゼロに設定する代わりに、ビデオコーダは、カメラパラメータ（たとえば、２つのビューの水平変位を変換することによって計算されたグローバル視差）にアクセスすることによって変換されるようにＤＤＶを設定することができる。いくつかの例では、視差ベクトルは、１２８の深度値から変換され得る。一般に、カメラパラメータは、深度情報を視差情報に変換するために使用され得るパラメータであり得る。いくつかの例では、カメラパラメータは、ＳＰＳまたはＶＰＳ中でシグナリングされる。したがって、いくつかの例では、ビデオコーダは、１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、ＤＤＶが設定される値を決定することができる。いくつかのそのような例では、１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む。
【０１６５】
[0169]３Ｄ−ＨＥＶＣまたは他のビデオコーディング規格に関する提案方法の一例を次のように段階的に説明する。
【０１６６】
１．１つのスライスまたは１つのピクチャを復号する前に、ＤＤＶがゼロに設定される。
【０１６７】
２．（ビュー間予測が有効にされたビューコンポーネント中の）各ＣＴＢに関して復号順で、以下が適用される。
【０１６８】
ａ．各ＣＵに関して復号順で、以下が適用される。
【０１６９】
ｉ．ＣＵが新しいＣＴＢ行を開始するＣＴＢに属する場合、ビデオコーダはＤＤＶをゼロに設定する。
【０１７０】
ｉｉ．現在ＣＵがイントラコーディングされない場合、ビデオコーダはＮＢＤＶ導出プロセスを呼び出す。
【０１７１】
１．ビデオコーダが、隣接ブロックをチェックすることによって、ＮＢＤＶが利用不可能であると決定する場合、ビデオコーダは、現在ＣＵの視差ベクトルをＤＤＶに設定する。
【０１７２】
２．さもなければ、ビデオコーダは、現在ＣＵの視差ベクトルをＮＢＤＶ導出プロセス（すなわち、ＮＢＤＶ）の結果に設定する。
【０１７３】
ｉｉｉ．ビデオコーダは、３Ｄ−ＨＥＶＣで説明するように、現在ＣＵを復号する。
【０１７４】
ｉｖ．現在ＣＵがイントラコーディングされる場合、ビデオコーダは、現在ＣＵの視差ベクトルに等しくなるようにＤＤＶを更新する。
【０１７５】
[0170]したがって、本開示の少なくとも一例によれば、ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、ビデオエンコーダ２０は、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを、０、または他の値など、初期値に設定することができる。さらに、この例では、ビデオコーダ２０は、それぞれのＣＵについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。本開示のいくつかの例では、ＮＢＤＶプロセスを実行することは、視差動きベクトルについての現在ブロック（たとえば、ＣＵ、マクロブロックなど）の時間的および／または空間的隣接ブロックをチェックすることに関与する。そのような例では、ＮＢＤＶプロセスが視差動きベクトルを有する時間的または隣接ブロックを識別することができる場合、ＮＢＤＶプロセスは現在ブロックについての視差ベクトルを成功裏に決定することができる。
【０１７６】
[0171]さらに、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき（たとえば、隣接ブロックのいずれも視差動きベクトルを有さないとき）、ビデオコーダ２０は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。さらに、ビデオコーダ２０は、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することができる。
【０１７７】
[0172]同様の例では、ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、ビデオデコーダ３０は、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを、０、または他の値など、初期値に設定することができる。さらに、この例では、ビデオデコーダ３０は、それぞれのＣＵについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき（たとえば、隣接ブロックのいずれも視差動きベクトルを有さないとき）、ビデオデコーダ３０は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。さらに、ビデオデコーダ３０は、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することができる。
【０１７８】
[0173]いくつかの例では、Ｈ．２６４／ＡＶＣおよび他のビデオコーディング規格のコンテキストで、ビデオエンコーダ２０は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて次の動作を実行することができる。たとえば、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックである、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ビデオエンコーダ２０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる。さらに、ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを識別しないとき、ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することができる。ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロック（すなわち、コーディングブロック）の符号化された表現を生成することができる。
【０１７９】
[0174]同様に、Ｈ．２６４／ＡＶＣおよび他のビデオコーディング規格のコンテキストのいくつかの例では、ビデオデコーダ３０は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックについて次の動作を実行することができる。詳細には、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックである、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ビデオデコーダ３０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる。さらに、ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを識別しないとき、ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することができる。ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロック（すなわち、コーディングブロック）を再構成することができる。
【０１８０】
[0175]図８は、本開示の１つまたは複数の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図８は、説明のために提供されるものであり、本開示で広く例示し説明する技法を限定するものと見なされるべきではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１８１】
[0176]図８の例において、ビデオエンコーダ２０は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニット１２２と、動き補償ユニット１２４とを含む。他の例では、ビデオエンコーダ２０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０１８２】
[0177]ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０はビデオデータのピクチャのスライス中の各ＣＴＵを符号化してもよい。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ：coding tree block）と、ピクチャの対応するＣＴＢとを有し（すなわち、それらに関連付けられ）得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は４分木区分を実行して、ＣＴＵのＣＴＢを徐々により小さいブロックに分割し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【０１８３】
[0178]ビデオエンコーダ２０は、ＣＴＵのＣＵを符号化して、ＣＵの符号化表現（すなわち、コード化ＣＵ）を生成することができる。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵのうちのＣＵの（すなわち、それに関連付けられた）コーディングブロックを区分することができる。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズを２Ｎ×２Ｎと仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測の場合は２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートすることができ、インター予測の場合は２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートすることができる。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測用の２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズ用の非対称区分化をサポートすることができる。
【０１８４】
[0179]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによってＰＵの予測データを生成し得る。ＰＵの予測データは、ＰＵの予測ブロックと、ＰＵの動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、Ｂスライス中にあるのかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０はＰＵに対してインター予測を実行しない。したがって、Ｉモード（登録商標）で符号化されたビデオブロックに対して、予測ブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【０１８５】
[0180]スライス中のＰＵは、イントラ予測され得るか、または単方向でインター予測され得る。たとえば、ＰＵがＰスライス中にある場合、動き推定ユニット１２２は、ＰＵの参照領域について参照ピクチャリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）中の参照ピクチャを探索し得る。ＰＵの参照領域は、ＰＵの予測ブロックに最も近接して対応するサンプルブロックを含んでいる参照ピクチャ内の領域であり得る。動き推定ユニット１２２は、ＰＵの参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、ＰＵの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示す動きベクトルを生成し得る。たとえば、動きベクトルは、現在復号ピクチャにおける座標から参照ピクチャにおける座標までのオフセットを与える２次元ベクトルであり得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【０１８６】
[0181]Ｂスライス中のＰＵは、イントラ予測され得るか、単方向でインター予測され得るか、または双方向でインター予測され得る。したがって、ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵについての単予測または双予測を実行し得る。ＰＵについての単予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０の参照ピクチャまたは第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）を探索し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスと、ＰＵのサンプルブロックと参照領域に関連する参照ロケーションとの間の空間変位を示す動きベクトルと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０中にあるのかＲｅｆＰｉｃＬｉｓｔ１中にあるのかを示す１つまたは複数の予測方向インジケータとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１８７】
[0182]ＰＵについての双方向インター予測を実行するために、動き推定ユニット１２２は、ＰＵの参照領域についてＲｅｆＰｉｃＬｉｓｔ０中の参照ピクチャを探索し得、またＰＵの別の参照領域についてＲｅｆＰｉｃＬｉｓｔ１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、参照領域を含んでいる参照ピクチャのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニット１２２は、参照領域に関連する参照ロケーションとＰＵのサンプルブロックとの間の空間変位を示す動きベクトルを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスと動きベクトルとを含み得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１８８】
[0183]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵ用の予測データを生成することができる。ＰＵの予測データは、ＰＵの予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス内、Ｐスライス内、およびＢスライス内のＰＵに対してイントラ予測を実行することができる。
【０１８９】
[0184]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵについて複数セットの予測データを生成し得る。イントラ予測処理ユニット１２６は、隣接ＰＵのサンプルに基づいて、ＰＵについての予測ブロックを生成することができる。隣接ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数はＰＵの予測ブロックのサイズに依存し得る。
【０１９０】
[0185]いくつかの例では、予測処理ユニット１００は、ビュー間動き予測および／またはビュー間残差予測を実装することができる。ビュー間動き予測および／またはビュー間残差予測を実装するために、予測処理ユニット１００は、スライスのブロック（たとえば、ＣＵ、ＰＵなど）についての視差ベクトルを決定するためにＮＢＤＶ導出プロセスを実行することができる。予測処理ユニット１００は、ビュー間動き予測および／またはビュー間残差予測のために視差ベクトルを使用することができる。
【０１９１】
[0186]本開示の１つまたは複数の技法によれば、スライスの各それぞれのＣＵに関して、予測処理ユニット１００は、それぞれのＣＵが、ピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定することができる。さらに、予測処理ユニット１００は、それぞれのＣＵについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき、予測処理ユニット１００は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。このように、予測処理ユニット１００は、スライスのＣＵについての視差ベクトルを決定することができる。
【０１９２】
[0187]予測処理ユニット１００は、ＰＵについてインター予測処理ユニット１２０によって生成された予測データ、またはＰＵについてイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵの予測データを選択することができる。いくつかの例では、予測処理ユニット１００は、これらの組の予測データのレート／歪み測定基準に基づいて、ＣＵのＰＵについての予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０１９３】
[0188]残差生成ユニット１０２は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）、ならびにＣＵのＰＵの選択された予測ブロック（たとえば、ルーマブロック、Ｃｂブロック、およびＣｒブロック）に基づいて、ＣＵの残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロック）を生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルとＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１９４】
[0189]変換処理ユニット１０４は、４分木区分を実行して、ＣＵの（すなわち、それに関連付けられた）残差ブロックをＣＵのＴＵの（すなわち、それに関連付けられた）変換ブロックに区分し得る。したがって、ＴＵは、ルーマ変換ブロックと、２つのクロマ変換ブロックとを有し（すなわち、それらに関連付けられ）得る。ＣＵのＴＵのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ）として知られる４分木構造は、領域の各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１９５】
[0190]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵのＴＵごとに係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵの（すなわち、それに関連付けられた）変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例において、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは係数ブロックとして扱われてもよい。
【０１９６】
[0191]量子化ユニット１０６は、係数ブロック内の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にｎビット変換係数はｍビット変換係数に切り捨てられ得、ただし、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいてＣＵのＴＵに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰの値を調整することによって、ＣＵに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらす恐れがあり、したがって、量子化変換係数は、元の係数よりも低い精度を有することがある。
【０１９７】
[0192]逆量子化ユニット１０８および逆変換処理ユニット１１０は、それぞれ、係数ブロックに逆量子化および１つまたは複数の逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット１１２は、再構成された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算して、ＴＵの（すなわち、それに関連付けられた）再構成された変換ブロックを生成し得る。ビデオエンコーダ２０は、このようにＣＵの各ＴＵのための変換ブロックを再構成することによってＣＵのコーディングブロックを再構成し得る。
【０１９８】
[0193]フィルタユニット１１４は、１つまたは複数のデブロッキング演算を実行して、ＣＵの（すなわち、それに関連付けられた）コーディングブロック中のブロッキングアーティファクトを低減し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成されたコーディングブロックに対して１つまたは複数のデブロッキング演算を実行した後、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、再構成されたコーディングブロックを含んでいる参照ピクチャを使用して、他のピクチャのＰＵに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット１２６は、復号ピクチャバッファ１１６内の再構成されたコーディングブロックを使用して、ＣＵと同じピクチャ内の他のＰＵに対してイントラ予測を実行することができる。
【０１９９】
[0194]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、このデータに対して１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化データを生成することができる。たとえば、エントロピー符号化ユニット１１８は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、ＣＡＢＡＣ演算、変数−変数（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。
【０２００】
[0195]ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームはＣＵについてのＲＱＴを表すデータを含み得る。ビットストリームはまた、エントロピーコーディングされないシンタックス要素を含み得る。
【０２０１】
[0196]図９は、本開示で説明する、１つまたは複数の技法を実装することができる例示的なビデオデコーダ３０を示すブロック図である。図９は、説明のために提供されるものであり、本開示において広く例示し説明する技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を記載する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２０２】
[0197]図９の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４とイントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【０２０３】
[0198]エントロピー復号ユニット１５０は、ＮＡＬユニットを受信し得、ＮＡＬユニットをパースして、シンタックス要素を復号し得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成することができる。
【０２０４】
[0199]ビットストリームのＮＡＬユニットは、コード化スライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャに関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０２０５】
[0200]ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ３０は、ＣＵに対して再構成演算を実行し得る。ＣＵに対して再構成演算を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成演算を実行し得る。ＣＵの各ＴＵに対して再構成演算を実行することによって、ビデオデコーダ３０はＣＵの残差ブロックを再構成することができる。
【０２０６】
[0201]ＣＵのＴＵに対して再構成演算を実行することの一貫として、逆量子化ユニット１５４は、ＴＵに関連付けられた係数ブロックを逆量子化する（inverse quantize）、すなわち量子化解除する（de-quantize）ことができる。逆量子化ユニット１５４は、ＴＵのＣＵに関連付けられたＱＰの値を使用して、量子化の程度を決定することができ、同様に、逆量子化ユニット１５４が適用するための逆量子化の程度を決定することができる。
【０２０７】
[0202]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、係数ブロックに１つまたは複数の逆変換を適用して、ＴＵに関連付けられた残差ブロックを生成することができる。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を、係数ブロックに適用することができる。
【０２０８】
[0203]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、イントラ予測を実行して、ＰＵについての予測ブロックを生成し得る。イントラ予測処理ユニット１６６は、イントラ予測モードを使用して、空間的に隣接するＰＵの予測ブロックに基づいてＰＵの予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）を生成してもよい。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいてＰＵのイントラ予測モードを決定し得る。
【０２０９】
[0204]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）および第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）を構成し得る。さらに、インター予測を使用してＰＵが符号化される場合、エントロピー復号ユニット１５０は、ＰＵの動き情報を抽出し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵの１つまたは複数の参照領域を決定し得る。動き補償ユニット１６４は、ＰＵについての１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵについての予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）を生成することができる。
【０２１０】
[0205]いくつかの例では、予測処理ユニット１５２は、ビュー間動き予測および／またはビュー間残差予測を実装することができる。ビュー間動き予測および／またはビュー間残差予測を実装するために、予測処理ユニット１５２は、スライスのブロック（たとえば、ＣＵ、ＰＵなど）についての視差ベクトルを決定するためにＮＢＤＶ導出プロセスを実行することができる。予測処理ユニット１５２は、ビュー間動き予測および／またはビュー間残差予測についての視差ベクトルを使用することができる。
【０２１１】
[0206]本開示の１つまたは複数の技法によれば、スライスの各それぞれのＣＵに関して、予測処理ユニット１５２は、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ＤＤＶを初期値に設定することができる。さらに、予測処理ユニット１５２は、それぞれのＣＵについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを識別しないとき、予測処理ユニット１５２は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる。このように、予測処理ユニット１５２は、スライスのＣＵについての視差ベクトルを決定することができる。
【０２１２】
[0207]再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構成するために、適宜、ＣＵのＴＵに関連付けられる変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）ならびにＣＵのＰＵの予測ブロック（たとえば、ルーマブロック、Ｃｂブロック、およびＣｒブロック）、すなわち、イントラ予測データまたはインター予測データのいずれかを使用することができる。たとえば、再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構成するために、変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）を予測ブロック（たとえば、ルーマブロック、Ｃｂブロック、およびＣｒブロック）の対応するサンプルに加算することができる。
【０２１３】
[0208]フィルタユニット１６０は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）に関連付けられたブロッキングアーティファクトを低減するために、デブロッキング演算を実行することができる。ビデオデコーダ３０は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を復号ピクチャバッファ１６２に記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のブロック（たとえば、ルーマブロック、Ｃｂブロック、およびＣｒブロック）に基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。このようにして、ビデオデコーダ３０は、係数ブロックの変換係数レベルをビットストリームから取得し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し得る。さらに、ビデオデコーダ３０は、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成することができる。ビデオデコーダ３０は、表示のためにコーディングブロックを出力することができる。
【０２１４】
[0209]図１０は、本開示の１つまたは複数の技法による、ビデオコーダの例示的な動作を示すフローチャートである。図１０は一例として提供される。本開示の技法によるビデオコーダの他の例示的な動作は、より多くのアクション、より少ないアクション、または異なるアクションを含み得る。図１０の例は、ＣＵおよびＣＴＵを参照して説明されるが、本開示において、同様の例は、マクロブロック、マクロブロック区分など、他のタイプのブロックに関して企図される。
【０２１５】
[0210]図１０の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＤＤＶをゼロに設定することができる（２００）。たとえば、ビデオコーダは、ＤＤＶの水平成分と垂直成分の両方をゼロに設定することができる。ビデオコーダは、スライスまたはピクチャをコーディング（たとえば、符号化もしくは複合）する前に、ＤＤＶをゼロに設定することができる。
【０２１６】
[0211]さらに、図１０の例では、ビデオコーダは、現在スライスの各ＣＴＢに関してアクション（２０２）から（２２２）を実行することができる。このように、ビデオコーダは、現在スライスのＣＴＢの各々をコーディングすることができる。したがって、図１０の例では、ビデオコーダは、コーディングされるべき状態で残っている、現在スライス中のいずれかのＣＴＢ（すなわち、残りのＣＴＢ）か存在するかどうかを決定することができる（２０２）。現在スライス中に１つまたは複数の残りのＣＴＢが存在する場合（２０２の「はい」）、ビデオコーダは、現在ＣＴＵの各ＣＵをコーディングすることができる。したがって、現在ＣＴＵの１つまたは複数のＣＵがコーディングされるべき状態で残っている場合（２０２の「はい」）、ビデオコーダは、コーディングされるべき状態で残っている、現在ＣＴＵのいずれかのＣＵ（すなわち、残りのＣＵ）が存在するかどうかを決定することができる（２０４）。
【０２１７】
[0212]現在ＣＴＵの１つまたは複数の残りのＣＵが存在する場合（２０４の「はい」）、ビデオコーダは、現在ＣＴＵが新しいＣＴＢ行の開始にあるかどうかを決定することができる（２０６）。現在ＣＴＵが新しいＣＴＢ行の開始にあると決定することに応答して（２０６の「はい」））、ビデオコーダはＤＤＶをゼロに設定することができる（２０８）。ＤＤＶをゼロに設定するか、または現在ＣＴＵが新しいＣＴＢ行の開始にないと決定した後（２０６の「いいえ」）、ビデオコーダは、現在ＣＴＵの現在ＣＵがイントラコーディングされているかどうかを決定することができる（２１０）。
【０２１８】
[0213]現在ＣＵがイントラコーディングされていないと決定することに応答して（２１０の「いいえ」）、ビデオコーダはＮＢＤＶ導出プロセスを呼び出す（２１２）。したがって、図１０および本開示の潜在的に他の例では、ビデオコーダは、現在ＣＵがイントラコーディングされていない場合のみ、ＮＢＤＶプロセスを実行することができる。
【０２１９】
[0214]ＮＢＤＶ導出プロセスは、隣接ブロックの視差動きベクトルに基づいて、現在ＣＵについての視差ベクトルを決定することを試みることができる。たとえば、ビデオコーダがＮＢＤＶ導出プロセスを実施するとき、ビデオコーダは、時間的隣接ブロックを決定することができる。時間的隣接ブロックが視差動きベクトルを有する場合、ビデオコーダは、時間的隣接ブロックの視差動きベクトルに基づいて、現在ブロック（たとえば、ＣＵ，マクロブロックなど）の視差ベクトルを設定することができる。たとえば、ビデオコーダは、現在ブロックの視差ベクトルを時間的隣接ブロックの視差動きベクトルに等しく設定することができる。
【０２２０】
[0215]さらに、この例では、時間的隣接ブロックが視差動きベクトルを有さない場合、ビデオコーダは、視差動きベクトルを有する空間的隣接ブロックについての空間的隣接ブロックをチェックすることができる。この例では、空間的隣接ブロックのうちの１つが視差動きベクトルを有する場合、ビデオコーダは、空間的隣接ブロックの視差動きベクトルに基づいて（たとえば、それに等しく）現在ブロックの視差ベクトルを設定することができる。この例では、チェックされた時間的または空間的隣接ブロックのうちのいずれも視差動きベクトルを有さない場合、ＮＢＤＶ導出プロセスは現在ブロックについての視差ベクトルを決定するのに失敗する可能性がある。言い換えると、この例および他の例では、チェックされた時間的または空間的隣接ブロックのうちのいずれも視差動きベクトルを有さない場合、ＮＢＤＶ導出プロセスは現在ブロックについて利用可能な視差ベクトルを識別しない。
【０２２１】
[0216]図１０の例では、ビデオコーダは、ＮＢＤＶ導出プロセスが、現在ＣＵについての視差ベクトルを識別するかどうかを決定する（すなわち、ＮＢＤＶが利用可能であると決定する）（２１４）。ＮＢＤＶが利用可能でない場合（２１４の「いいえ」）、ビデオコーダは、現在ＣＵの視差ベクトルをＤＤＶに設定することができる（２１６）。さもなければ、ＮＢＤＶが利用可能である場合（２１４の「はい」）、ビデオコーダは、現在ＣＵの視差ベクトルをＮＢＤＶに設定することができる（２１８）。したがって、図１０の例および本開示の潜在的な他の例では、ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定するとき、ビデオコーダは、それぞれのＣＵについての視差ベクトルをＮＢＤＶプロセス（すなわち、ＮＢＤＶ）によって識別された利用可能な視差ベクトルに等しく設定することができる。
【０２２２】
[0217]さらに、現在ＣＵの視差ベクトルを設定した後、ビデオコーダは、現在ＣＵの視差ベクトルに等しくなるようにＤＤＶを更新することができる（２２０）。したがって、図１０の例および本開示の潜在的に他の例では、それぞれのＣＵがイントラコーディングされていないと決定することに応答して、ビデオコーダは、それぞれのＣＵの視差ベクトルに等しくなるようにＤＤＶを更新することができる。
【０２２３】
[0218]ＤＤＶを更新した後、または現在ＣＵがイントラコーディングされている決定した後（２１０の「はい」）、ビデオコーダは、現在ＣＵをコーディング（たとえば、符号化または復号）することができる（２２２）。たとえば、ビデオコーダは、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することができる。いくつかの例では、ビデオコーダは、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することができる。
【０２２４】
[0219]図１１Ａは、本開示の１つまたは複数の技法による、ビデオエンコーダ２０の例示的な動作を示すフローチャートである。図１１Ａは一例として提供される。本開示の技法によるビデオエンコーダの他の例示的な動作は、より多くのアクション、より少ないアクション、または異なるアクションを含み得る。
【０２２５】
[0220]図１１Ａの例では、ビデオエンコーダ２０は、ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、アクション（３００）から（３０６）を実行することができる。詳細には、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ビデオエンデコーダ２０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる（３００）。さらに、ビデオエンコーダ２０は、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる（３０２）。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、ビデオエンコーダ２０は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる（３０４）。
【０２２６】
[0221]ビデオエンコーダ２０は、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することができる（３０６）。たとえば、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することの一環として、ビデオエンコーダ２０は、本開示の他の場所で説明するように、それぞれのＣＵについてのビュー間動き予測および／またはビュー間残差予測を実行するために、それぞれのＣＵについての視差ベクトルを使用することができる。
【０２２７】
[0222]図１１Ｂは、本開示の１つまたは複数の技法による、ビデオデコーダ３０の例示的な動作を示すフローチャートである。図１１Ｂは一例として提供される。本開示の技法によるビデオデコーダの他の例示的な動作は、より多くのアクション、より少ないアクション、または異なるアクションを含み得る。
【０２２８】
[0223]図１１Ｂの例では、ビデオデコーダ３０は、ビデオデータのピクチャのスライスの各それぞれのＣＵに関して、アクション（３５０）から（３５６）を実行することができる。詳細には、それぞれのＣＵがピクチャのＣＴＢ行の第１のＣＵである、またはそれぞれのＣＵがスライスの第１のＣＵであると決定することに応答して、ビデオデコーダ３０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる（３５０）。さらに、ビデオデコーダ３０は、それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる（３５２）。ＮＢＤＶプロセスを実行することがそれぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、ビデオデコーダ３０は、それぞれのＣＵについての視差ベクトルがＤＤＶに等しいと決定することができる（３５４）。
【０２２９】
[0224]ビデオデコーダ３０は、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することができる（３５６）。たとえば、それぞれのＣＵについての視差ベクトルに部分的に基づいて、それぞれのＣＵについてのコーディングブロックを再構成することの一環として、ビデオコーダは、本開示の他の場所で説明するように、それぞれのＣＵについてのビュー間動き予測および／またはビュー間残差予測を実行するために、それぞれのＣＵについての視差ベクトルを使用することができる。
【０２３０】
[0225]図１２Ａは、本開示の１つまたは複数の技法による、ビデオエンコーダ２０の例示的な動作を示すフローチャートである。図１２Ａは一例として提供される。本開示の技法によるビデオエンコーダの他の例示的な動作は、より多くのアクション、より少ないアクション、または異なるアクションを含み得る。
【０２３１】
[0226]図１２Ａの例では、ビデオエンコーダ２０は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、アクション（４００）から（４０６）を実行することができる。詳細には、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックである、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ビデオデコーダ２０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる（４００）。さらに、ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる（４０２）。ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを識別しないとき、ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することができる（４０４）。
【０２３２】
[0227]ビデオエンコーダ２０は、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロック（すなわち、コーディングブロック）の符号化された表現を生成することができる（４０６）。たとえば、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロックの符号化された表現を生成することの一環として、ビデオエンコーダ２０は、本開示の他の場所で説明するように、それぞれのマクロブロックについてのビュー間動き予測および／またはビュー間残差予測を実行するために、それぞれのマクロブロックについての視差ベクトルを使用することができる。
【０２３３】
[0228]図１２Ｂは、本開示の１つまたは複数の技法による、ビデオデコーダ３０の例示的な動作を示すフローチャートである。図１２Ｂは一例として提供される。本開示の技法によるビデオデコーダの他の例示的な動作は、より多くのアクション、より少ないアクション、または異なるアクションを含み得る。
【０２３４】
[0229]図１２Ｂの例では、ビデオデコーダ３０は、ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、アクション（４５０）から（４５６）を実行することができる。詳細には、それぞれのマクロブロックがピクチャのマクロブロック行の第１のマクロブロックである、またはそれぞれのマクロブロックがスライスの第１のマクロブロックであると決定することに応答して、ビデオデコーダ３０は、ＤＤＶを初期値（たとえば、ゼロ）に設定することができる（４５０）。さらに、ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルを決定することを試みるＮＢＤＶプロセスを実行することができる（４５２）。ＮＢＤＶプロセスを実行することがそれぞれのマクロブロックについて利用可能な視差ベクトルを識別しないとき、ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルがＤＤＶに等しいと決定することができる（４５４）。
【０２３５】
[0230]ビデオデコーダ３０は、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロックを再構成することができる（４５６）。たとえば、それぞれのマクロブロックについての視差ベクトルに部分的に基づいて、それぞれのマクロブロックについてのサンプルブロックを再構成することの一環として、ビデオコーダは、本開示の他の場所で説明するように、それぞれのマクロブロックについてのビュー間動き予測および／またはビュー間残差予測を実行するために、それぞれのマクロブロックについての視差ベクトルを使用することができる。
【０２３６】
[0231]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアに実装される場合、機能は、１つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行することができる。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または、（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示に記載された技法を実装するための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータ、または１つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０２３７】
[0232]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０２３８】
[0233]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実施に適した任意の他の構造のいずれかを指す場合がある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／もしくはソフトウェアモジュール内に提供され得、または複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中で十分に実装され得る。
【０２３９】
[0234]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０２４０】
[0235]様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内である。
【図１】
2016524408.tif 000009
【図２】
2016524408.tif 000010
【図３】
2016524408.tif 000011
【図４】
2016524408.tif 000012
【図５】
2016524408.tif 000013
【図６】
2016524408.tif 000014
【図７】
2016524408.tif 000015
【図８】
2016524408.tif 000016
【図９】
2016524408.tif 000017
【図１０】
2016524408.tif 000018
【図１１Ａ】
2016524408.tif 000019
【図１１Ｂ】
2016524408.tif 000020
【図１２Ａ】
2016524408.tif 000021
【図１２Ｂ】
2016524408.tif 000022
【手続補正書】
【提出日】平成28年2月15日(2016.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成することとを備える方法。
【請求項２】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記スライスが、波面並列処理（ＷＰＰ）を使用して復号される、請求項１に記載の方法。
【請求項４】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１に記載の方法。
【請求項５】
前記初期値がゼロである、請求項１に記載の方法。
【請求項６】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１に記載の方法。
【請求項７】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新することをさらに備える、請求項１に記載の方法。
【請求項８】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１に記載の方法。
【請求項９】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記其々のＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することとを備える方法。
【請求項１１】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１０に記載の方法。
【請求項１２】
前記スライスが、波面並列処理（ＷＰＰ）を使用して符号化される、請求項１０に記載の方法。
【請求項１３】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１０に記載の方法。
【請求項１４】
前記初期値がゼロである、請求項１０に記載の方法。
【請求項１５】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１０に記載の方法。
【請求項１６】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新することをさらに備える、請求項１０に記載の方法。
【請求項１７】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１０に記載の方法。
【請求項１８】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１０に記載の方法。
【請求項１９】
復号されたピクチャを記憶するバッファと、
１つまたは複数のプロセッサと
を備えるデバイスであって、前記１つまたは複数のプロセッサが、ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定し、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行し、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定するように構成されるデバイス。
【請求項２０】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記スライスが、波面並列処理（ＷＰＰ）を使用してコーディングされる、請求項１９に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、請求項１９に記載のデバイス。
【請求項２３】
前記初期値がゼロである、請求項１９に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサが、１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定するように構成され、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１９に記載のデバイス。
【請求項２５】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新するように構成される、請求項１９に記載のデバイス。
【請求項２６】
前記１つまたは複数のプロセッサが、前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行するように構成される、請求項１９に記載のデバイス。
【請求項２７】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成するように構成される、請求項１９に記載のデバイス。
【請求項２８】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成するように構成される、請求項１９に記載のデバイス。
【請求項２９】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、
前記それぞれのマクロブロックがマクロブロック行の第１のマクロブロックであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、前記それぞれのマクロブロックについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのマクロブロックについての前記視差ベクトルに部分的に基づいて、前記それぞれのマクロブロックについてのコーディングブロックを再構成することとを備える方法。
【請求項３０】
エントロピーコーデックがコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）である場合、前記ＤＤＶをゼロに再設定することと、前記エントロピーコーディングされることがコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）である場合、前記ＤＤＶをゼロに再設定しないこととをさらに備える、請求項２９に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２４０
【補正方法】変更
【補正の内容】
【０２４０】
[0235]様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内である。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成することとを備える方法。
［Ｃ２］
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記スライスが、波面並列処理（ＷＰＰ）を使用して復号される、Ｃ１に記載の方法。
［Ｃ４］
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記初期値がゼロである、Ｃ１に記載の方法。
［Ｃ６］
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、Ｃ１に記載の方法。
［Ｃ７］
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新する、Ｃ１に記載の方法。
［Ｃ８］
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、Ｃ１に記載の方法。
［Ｃ９］
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
ビデオデータを符号化する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することとを備える方法。
［Ｃ１１］
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、Ｃ１０に記載の方法。
［Ｃ１２］
前記スライスが、波面並列処理（ＷＰＰ）を使用して符号化される、Ｃ１０に記載の方法。
［Ｃ１３］
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、Ｃ１０に記載の方法。
［Ｃ１４］
前記初期値がゼロである、Ｃ１０に記載の方法。
［Ｃ１５］
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、Ｃ１０に記載の方法。
［Ｃ１６］
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新する、Ｃ１０に記載の方法。
［Ｃ１７］
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、Ｃ１０に記載の方法。
［Ｃ１８］
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、Ｃ１０に記載の方法。
［Ｃ１９］
復号されたピクチャを記憶するバッファと、
１つまたは複数のプロセッサと
を備えるデバイスであって、前記１つまたは複数のプロセッサが、ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのコーディングツリーブロック（ＣＴＢ）行の第１のＣＵである、または前記それぞれのＣＵが前記スライスの第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定し、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行し、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定するように構成されるデバイス。
［Ｃ２０］
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２１］
前記スライスが、波面並列処理（ＷＰＰ）を使用してコーディングされる、Ｃ１９に記載のデバイス。
［Ｃ２２］
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２３］
前記初期値がゼロである、Ｃ１９に記載のデバイス。
［Ｃ２４］
前記１つまたは複数のプロセッサが、１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定するように構成され、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、Ｃ１９に記載のデバイス。
［Ｃ２５］
前記１つまたは複数のプロセッサが、前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサが、前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２７］
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２８］
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２９］
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、
前記それぞれのマクロブロックが前記ピクチャのマクロブロック行の第１のマクロブロックである、または前記それぞれのマクロブロックが前記スライスの第１のマクロブロックであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、前記それぞれのマクロブロックについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのマクロブロックについての前記視差ベクトルに部分的に基づいて、前記それぞれのマクロブロックについてのコーディングブロックを再構成することとを備える方法。
［Ｃ３０］
エントロピーコーデックがコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）である場合、前記ＤＤＶをゼロに再設定することと、前記エントロピーコーディングされることがコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）である場合、前記ＤＤＶをゼロに再設定しないこととをさらに備える、Ｃ２９に記載の方法。
【手続補正書】
【提出日】平成28年2月16日(2016.2.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）の行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成することとを備える方法。
【請求項２】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記スライスが、波面並列処理（ＷＰＰ）を使用して復号される、請求項１に記載の方法。
【請求項４】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１に記載の方法。
【請求項５】
前記初期値がゼロである、請求項１に記載の方法。
【請求項６】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１に記載の方法。
【請求項７】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新することをさらに備える、請求項１に記載の方法。
【請求項８】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１に記載の方法。
【請求項９】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）の行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成することとを備える方法。
【請求項１１】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１０に記載の方法。
【請求項１２】
前記スライスが、波面並列処理（ＷＰＰ）を使用して符号化される、請求項１０に記載の方法。
【請求項１３】
前記スライスの各それぞれのＣＵに関して、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定することをさらに備える、請求項１０に記載の方法。
【請求項１４】
前記初期値がゼロである、請求項１０に記載の方法。
【請求項１５】
１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定することをさらに備え、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１０に記載の方法。
【請求項１６】
前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新することをさらに備える、請求項１０に記載の方法。
【請求項１７】
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルを前記ＮＢＤＶプロセスによって識別された前記利用可能な視差ベクトルに等しく設定することをさらに備える、請求項１０に記載の方法。
【請求項１８】
前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行することをさらに備える、請求項１０に記載の方法。
【請求項１９】
復号されたピクチャを記憶するバッファと、
１つまたは複数のプロセッサと
を備えるデバイスであって、前記１つまたは複数のプロセッサが、ビデオデータのピクチャのスライスの各それぞれのコーディングユニット（ＣＵ）に関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがコーディングツリーブロック（ＣＴＢ）の行の第１のＣＵであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定し、
前記それぞれのＣＵについての利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行し、
前記ＮＢＤＶプロセスを実行することが前記それぞれのＣＵについての利用可能な視差ベクトルを決定しないとき、前記それぞれのＣＵについての前記視差ベクトルが前記ＤＤＶに等しいと決定するように構成されるデバイス。
【請求項２０】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵが前記ピクチャのタイルの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記スライスが、波面並列処理（ＷＰＰ）を使用してコーディングされる、請求項１９に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサが、前記スライスの各それぞれのＣＵに関して、前記１つまたは複数のプロセッサが、
前記それぞれのＣＵがＣＴＢの第１のＣＵであると決定することに応答して、前記ＤＤＶを前記初期値に設定するように構成される、請求項１９に記載のデバイス。
【請求項２３】
前記初期値がゼロである、請求項１９に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサが、１つまたは複数のカメラパラメータに少なくとも部分的に基づいて、前記初期値を決定するように構成され、ここにおいて、前記１つまたは複数のカメラパラメータは、２つのビューの水平変位を含む、請求項１９に記載のデバイス。
【請求項２５】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵがイントラコーディングされていないと決定することに応答して、前記それぞれのＣＵの前記視差ベクトルに等しくなるように前記ＤＤＶを更新するように構成される、請求項１９に記載のデバイス。
【請求項２６】
前記１つまたは複数のプロセッサが、前記現在ＣＵがイントラコーディングされていない場合のみ、前記ＮＢＤＶプロセスを実行するように構成される、請求項１９に記載のデバイス。
【請求項２７】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックを再構成するように構成される、請求項１９に記載のデバイス。
【請求項２８】
前記１つまたは複数のプロセッサが、前記それぞれのＣＵについての前記視差ベクトルに部分的に基づいて、前記それぞれのＣＵについてのコーディングブロックの符号化された表現を生成するように構成される、請求項１９に記載のデバイス。
【請求項２９】
ビデオデータを復号する方法であって、
前記ビデオデータのピクチャのスライスの各それぞれのマクロブロックに関して、
前記それぞれのマクロブロックがマクロブロックの行の第１のマクロブロックであると決定することに応答して、導出された視差ベクトル（ＤＤＶ）を初期値に設定することと、
前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定することを試みる隣接ベースの視差ベクトル導出（ＮＢＤＶ）プロセスを実行することと、
前記ＮＢＤＶプロセスを実行することが前記それぞれのマクロブロックについて利用可能な視差ベクトルを決定しないとき、前記それぞれのマクロブロックについての前記視差ベクトルが前記ＤＤＶに等しいと決定することと、
前記それぞれのマクロブロックについての前記視差ベクトルに部分的に基づいて、前記それぞれのマクロブロックについてのコーディングブロックを再構成することとを備える方法。
【請求項３０】
エントロピーコーデックがコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）である場合、前記ＤＤＶをゼロに再設定することと、前記エントロピーコーディングされることがコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）である場合、前記ＤＤＶをゼロに再設定しないこととをさらに備える、請求項２９に記載の方法。
【国際調査報告】
2016524408.tif 000023
2016524408.tif 000024