(57)【要約】  ビデオコーダは、３Ｄビデオのビデオブロックをコーディングするためのマージング候補のリストを生成する。マージング候補のリストの中のマージング候補の最大数は、６に等しくてよい。マージング候補のリストを生成することの一部として、ビデオコーダは、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定する。そうである場合、ビデオコーダは、１つまたは複数の結合双予測マージング候補を導出する。ビデオコーダは、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含める。
2016536817.tif 000002
【特許請求の範囲】
【請求項１】
３次元（３Ｄ）ビデオデータをコーディングする方法であって、前記方法は、
前記３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成することを備え、ここにおいて、マージング候補の前記リストの中のマージング候補の最大数は６に等しく、マージング候補の前記リストを生成することは、
マージング候補の前記リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、
マージング候補の前記リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、
１つまたは複数の結合双予測マージング候補を導出すること、ここにおいて、前記１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補の前記リストの中にすでにあるマージング候補のそれぞれのペアに対応し、前記それぞれの結合双予測マージング候補は、前記それぞれのペアの第１のマージング候補の動きベクトルと、前記それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、前記第１のマージング候補の前記動きベクトルおよび前記第２のマージング候補の前記動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、と、
前記１つまたは複数の結合双予測マージング候補を、マージング候補の前記リストの中に含めることと、
を備える、方法。
【請求項２】
マージング候補の前記リストを生成することは、
前記１つまたは複数の双予測マージング候補のいずれかをマージング候補の前記リストに追加する前に、マージング候補の前記リストの中に５個のマージング候補があると決定することに応答して、マージング候補の前記リストの中にゼロ候補を含めることをさらに備え、ここにおいて、前記ゼロ候補の動きベクトル成分は０に等しく、前記ゼロ候補の参照インデックスは０に等しく、前記参照インデックスは参照ピクチャリストの中の参照ピクチャのロケーションを示す、
請求項１に記載の方法。
【請求項３】
マージング候補の前記リストを生成することは、いかなる後方ワーピングビュー合成（ＢＶＳＰ）フラグも検査することなく行われる、請求項１に記載の方法。
【請求項４】
前記データをコーディングする前記方法は、前記３Ｄビデオデータを復号する方法を備え、前記ビデオブロックは、予測ユニット（ＰＵ）であり、前記方法は、
マージング候補の前記リストの中の選択されたマージング候補を示すシンタックス要素を、ビットストリームから取得することと、
前記ＰＵの予測サンプルを生成するために、前記選択された候補の動き情報を使用することと、
をさらに備える、請求項１に記載の方法。
【請求項５】
前記データをコーディングする前記方法は、前記３Ｄビデオデータを符号化する方法を備え、前記方法は、
マージング候補の前記リストの中のマージング候補を選択することと、
前記選択されたマージング候補の、マージング候補の前記リストの中での位置をシグナリングすることと、
を備える、請求項１に記載の方法。
【請求項６】
マージング候補の前記リストを生成することは、利用可能な場合、ビュー間予測動きベクトル候補（ＩＰＭＶＣ）をマージング候補の前記リストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、前記１つまたは複数の結合双予測マージング候補を導出することを備え、
空間的マージング候補のための前記導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補の前記リストの中に挿入し、
前記時間的マージング候補のための前記導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補の前記リストに追加する、
請求項１に記載の方法。
【請求項７】
ビデオコーディングデバイスであって、
３次元（３Ｄ）ビデオデータを記憶するように構成されたデータ記憶媒体と、
１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
前記３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成するように構成され、ここにおいて、マージング候補の前記リストの中のマージング候補の最大数は６に等しく、マージング候補の前記リストを生成することの一部として、前記１つまたは複数のプロセッサは、
マージング候補の前記リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、
マージング候補の前記リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、
１つまたは複数の結合双予測マージング候補を導出すること、ここにおいて、前記１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補の前記リストの中にすでにあるマージング候補のそれぞれのペアに対応し、前記それぞれの結合双予測マージング候補は、前記それぞれのペアの第１のマージング候補の動きベクトルと、前記それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、前記第１のマージング候補の前記動きベクトルおよび前記第２のマージング候補の前記動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、と、
前記１つまたは複数の結合双予測マージング候補を、マージング候補の前記リストの中に含めることと、
を行う、ビデオコーディングデバイス。
【請求項８】
マージング候補の前記リストを生成することの一部として、前記１つまたは複数のプロセッサは、
前記１つまたは複数の双予測マージング候補のいずれかをマージング候補の前記リストに追加する前に、マージング候補の前記リストの中に５個のマージング候補があると決定することに応答して、マージング候補の前記リストの中にゼロ候補を含め、ここにおいて、前記ゼロ候補の動きベクトル成分は０に等しく、前記ゼロ候補の参照インデックスは０に等しく、前記参照インデックスは参照ピクチャリストの中の参照ピクチャのロケーションを示す、
請求項７に記載のビデオコーディングデバイス。
【請求項９】
前記１つまたは複数のプロセッサは、マージング候補の前記リストを、いかなる後方ワーピングビュー合成（ＢＶＳＰ）フラグも検査することなく生成する、請求項７に記載のビデオコーディングデバイス。
【請求項１０】
前記１つまたは複数のプロセッサは、前記３Ｄビデオデータを復号するように構成され、前記ビデオブロックは、予測ユニット（ＰＵ）であり、前記１つまたは複数のプロセッサは、
マージング候補の前記リストの中の選択されたマージング候補を示すシンタックス要素を、ビットストリームから取得し、
前記ＰＵの予測サンプルを生成するために、前記選択された候補の動き情報を使用する、
ように構成される、請求項７に記載のビデオコーディングデバイス。
【請求項１１】
前記１つまたは複数のプロセッサは、前記３Ｄビデオデータを符号化するように構成され、前記１つまたは複数のプロセッサは、
マージング候補の前記リストの中のマージング候補を選択し、
前記選択されたマージング候補の、マージング候補の前記リストの中での位置をシグナリングする、
ように構成される、請求項７に記載のビデオコーディングデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、利用可能な場合、ビュー間予測動きベクトル候補（ＩＰＭＶＣ）をマージング候補の前記リストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、前記１つまたは複数の結合双予測マージング候補を導出するように構成され、
空間的マージング候補のための前記導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補の前記リストの中に挿入し、
前記時間的マージング候補のための前記導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補の前記リストに追加する、
請求項７に記載のビデオコーディングデバイス。
【請求項１３】
３次元３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成するための手段を備えるビデオコーディングデバイスであって、ここにおいて、マージング候補の前記リストの中のマージング候補の最大数は６に等しく、マージング候補の前記リストを生成するための前記手段は、
マージング候補の前記リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定するための手段と、
マージング候補の前記リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、１つまたは複数の結合双予測マージング候補を導出するための手段、ここにおいて、前記１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補の前記リストの中にすでにあるマージング候補のそれぞれのペアに対応し、前記それぞれの結合双予測マージング候補は、前記それぞれのペアの第１のマージング候補の動きベクトルと、前記それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、前記第１のマージング候補の前記動きベクトルおよび前記第２のマージング候補の前記動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、と、
前記１つまたは複数の結合双予測マージング候補を、マージング候補の前記リストの中に含めるための手段と、
を備える、ビデオコーディングデバイス。
【請求項１４】
マージング候補の前記リスト生成するための前記手段は、
前記１つまたは複数の双予測マージング候補のいずれかをマージング候補の前記リストに追加する前に、マージング候補の前記リストの中に５個のマージング候補があると決定することに応答して、マージング候補の前記リストの中にゼロ候補を含めるための手段をさらに備え、ここにおいて、前記ゼロ候補の動きベクトル成分は０に等しく、前記ゼロ候補の参照インデックスは０に等しく、前記参照インデックスは参照ピクチャリストの中の参照ピクチャのロケーションを示す、
請求項１３に記載のビデオコーディングデバイス。
【請求項１５】
マージング候補の前記リストを生成することは、いかなる後方ワーピングビュー合成（ＢＶＳＰ）フラグも検査することなく行われる、請求項１３に記載のビデオコーディングデバイス。
【請求項１６】
前記ビデオコーディングデバイスは、前記３Ｄビデオデータを復号し、前記ビデオブロックは、予測ユニット（ＰＵ）であり、前記ビデオコーディングデバイスは、
マージング候補の前記リストの中の選択されたマージング候補を示すシンタックス要素を、ビットストリームから取得するための手段と、
前記ＰＵの予測サンプルを生成するために、前記選択された候補の動き情報を使用するための手段と、
をさらに備える、請求項１３に記載のビデオコーディングデバイス。
【請求項１７】
前記ビデオコーディングデバイスは、前記３Ｄビデオデータを符号化し、前記ビデオコーディングデバイスは、
マージング候補の前記リストの中のマージング候補を選択するための手段と、
前記選択されたマージング候補の、マージング候補の前記リストの中での位置をシグナリングするための手段と、
を備える、請求項１３に記載のビデオコーディングデバイス。
【請求項１８】
マージング候補の前記リストを生成することは、利用可能な場合、ビュー間予測動きベクトル候補（ＩＰＭＶＣ）をマージング候補の前記リストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、前記１つまたは複数の結合双予測マージング候補を導出することを備え、
空間的マージング候補のための前記導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補の前記リストの中に挿入し、
前記時間的マージング候補のための前記導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補の前記リストに追加する、
請求項１３に記載のビデオコーディングデバイス。
【請求項１９】
実行されたとき、ビデオコーディングデバイスに３次元（３Ｄ）ビデオデータをコーディングさせる、その上に記憶された命令を有するコンピュータ可読データ記憶媒体であって、前記命令は、前記ビデオコーディングデバイスに、
前記３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成させ、ここにおいて、マージング候補の前記リストの中のマージング候補の最大数は６に等しく、マージング候補の前記リストを生成することは、
マージング候補の前記リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、
マージング候補の前記リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、
１つまたは複数の結合双予測マージング候補を導出すること、ここにおいて、前記１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補の前記リストの中にすでにあるマージング候補のそれぞれのペアに対応し、前記それぞれの結合双予測マージング候補は、前記それぞれのペアの第１のマージング候補の動きベクトルと、前記それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、前記第１のマージング候補の前記動きベクトルおよび前記第２のマージング候補の前記動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、と、
前記１つまたは複数の結合双予測マージング候補を、マージング候補の前記リストの中に含めることと、
を備える、コンピュータ可読データ記憶媒体。
【請求項２０】
マージング候補の前記リストを生成することは、
前記１つまたは複数の双予測マージング候補のいずれかをマージング候補の前記リストに追加する前に、マージング候補の前記リストの中に５個のマージング候補があると決定することに応答して、マージング候補の前記リストの中にゼロ候補を含めることをさらに備え、ここにおいて、前記ゼロ候補の動きベクトル成分は０に等しく、前記ゼロ候補の参照インデックスは０に等しく、前記参照インデックスは参照ピクチャリストの中の参照ピクチャのロケーションを示す、
請求項１９に記載のコンピュータ可読データ記憶媒体。
【請求項２１】
マージング候補の前記リストを生成することは、いかなる後方ワーピングビュー合成（ＢＶＳＰ）フラグも検査することなく行われる、請求項１９に記載のコンピュータ可読データ記憶媒体。
【請求項２２】
前記ビデオブロックは、予測ユニット（ＰＵ）であり、前記命令はさらに、前記ビデオコーディングデバイスに、
マージング候補の前記リストの中の選択されたマージング候補を示すシンタックス要素を、ビットストリームから取得させ、
前記ＰＵの予測サンプルを生成するために、前記選択された候補の動き情報を使用させる、
請求項１９に記載のコンピュータ可読データ記憶媒体。
【請求項２３】
前記命令はさらに、前記ビデオコーディングデバイスに、
マージング候補の前記リストの中のマージング候補を選択させ、
前記選択されたマージング候補の、マージング候補の前記リストの中での位置をシグナリングさせる、
請求項１９に記載のコンピュータ可読データ記憶媒体。
【請求項２４】
前記命令は、前記ビデオコーディングデバイスに、利用可能な場合、ビュー間予測動きベクトル候補（ＩＰＭＶＣ）をマージング候補の前記リストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、前記１つまたは複数の結合双予測マージング候補を導出させ、
ここにおいて、空間的マージング候補のための前記導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補の前記リストの中に挿入し、
ここにおいて、前記時間的マージング候補のための前記導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補の前記リストに追加する、
請求項１９に記載のコンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、２０１３年９月２０日に出願された米国仮特許出願第６１／８８０，７３７号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングおよび圧縮に関し、より詳細には、３次元（３Ｄ）ビデオをコーディングする際に使用され得るコーディング技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，アドバンストビデオコーディング（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格によって定義された規格、高効率ビデオコーディング（ＨＥＶＣ：Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などの、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライスが、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに分割され得る。ピクチャのイントラコード化（Ｉ）スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャの中の参照サンプルに対する時間的予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
【０００５】
[0005]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディングは、デコーダが異なったビューの間から選び、または場合によっては複数のビューをレンダリングすることを可能にする。その上、開発された、または開発中のいくつかの３次元（３Ｄ）ビデオ技法および規格は、マルチビューコーディング態様を利用する。３次元ビデオは、「３ＤＶ」と呼ばれることもある。
【０００６】
[0006]たとえば、３Ｄビデオをサポートするために、異なるビューが左目のビューと右目のビューとを送信し得る。あるいは、いくつかの３Ｄビデオコーディング処理は、いわゆるマルチビュープラス深度コーディングを適用し得る。マルチビュープラス深度コーディングでは、３Ｄビデオビットストリームは、テクスチャビュー成分だけでなく深度ビュー成分も含み得る。たとえば、各ビューは、１つのテクスチャビュー成分と１つの深度ビュー成分とを備え得る。
【０００７】
[0007]現時点で、ＶＣＥＧおよびＭＰＥＧの３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｃ）は、「高効率ビデオコーディング（ＨＥＶＣ）」と呼ばれる新興の規格に基づく３Ｄビデオ規格を開発中であり、そのための規格化作業の一部は、ＨＥＶＣに基づくマルチビュービデオコーデック（ＭＶ−ＨＥＶＣ）と、ＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）についての別の一部との規格化を含む。３Ｄ−ＨＥＶＣは、テクスチャビューと深度ビューの両方に関して、コーディングユニット／予測ユニットレベルのコーディングツールを含む、新たなコーディングツールを含みサポートし得る。
【発明の概要】
【０００８】
[0008]一般に、本開示は、３Ｄ高効率ビデオコーディング（ＨＥＶＣ）コーデックを用いた２つ以上のビューのコーディングを含む、高度なコーデックに基づく３次元（３Ｄ）ビデオコーディングに関する。たとえば、本開示のいくつかの例は、結合双予測マージング候補に関する技法を説明する。いくつかのそのような例では、マージング候補のリストを生成することの一部として、ビデオコーダは、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定する。そうである場合、ビデオコーダは、１つまたは複数の結合双予測マージング候補を導出する。ビデオコーダは、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含める。
【０００９】
[0009]一態様では、本開示は、３Ｄビデオデータをコーディングする方法を説明する。方法は、３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成することを備える。マージング候補のリストの中のマージング候補の最大数は６に等しく、マージング候補のリストを生成することは、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、１つまたは複数の結合双予測マージング候補を導出することと、ここにおいて、１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補のリストの中にすでにあるマージング候補のそれぞれのペアに対応し、ここにおいて、それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、ここにおいて、第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、を備える。方法はまた、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることを備える。
【００１０】
[0010]別の態様では、本開示は、３Ｄビデオデータを記憶するように構成されたデータ記憶媒体と、１つまたは複数のプロセッサとを備えるビデオコーディングデバイスを説明し、１つまたは複数のプロセッサは、３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成するように構成され、ここにおいて、マージング候補のリストの中のマージング候補の最大数は６に等しく、マージング候補のリストを生成することの一部として、１つまたは複数のプロセッサは、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、１つまたは複数の結合双予測マージング候補を導出することと、ここにおいて、１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補のリストの中にすでにあるマージング候補のそれぞれのペアに対応し、ここにおいて、それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、ここにおいて、第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す。１つまたは複数のプロセッサは、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めるように構成される。
【００１１】
[0011]別の態様では、本開示は、３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成するための手段を備えるビデオコーディングデバイスを説明する。マージング候補のリストの中のマージング候補の最大数は６に等しく、マージング候補のリストを生成するための手段は、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定するための手段と、マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、１つまたは複数の結合双予測マージング候補を導出するための手段と、ここにおいて、１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補のリストの中にすでにあるマージング候補のそれぞれのペアに対応し、ここにおいて、それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、ここにおいて、第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、を備える。ビデオコーディングデバイスはまた、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めるための手段を備える。
【００１２】
[0012]別の態様では、本開示は、実行されたとき、ビデオコーディングデバイスを３Ｄビデオデータにもたらす、その上に記憶された命令を有するコンピュータ可読データ記憶媒体を説明し、命令は、ビデオコーディングデバイスに、３Ｄビデオデータのビデオブロックをコーディングするためのマージング候補のリストを生成させる。マージング候補のリストの中のマージング候補の最大数は６に等しい。マージング候補のリストを生成することは、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定することと、マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、１つまたは複数の結合双予測マージング候補を導出することと、ここにおいて、１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、マージング候補のリストの中にすでにあるマージング候補のそれぞれのペアに対応し、ここにおいて、それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであり、ここにおいて、第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることとを備える。
【００１３】
[0013]１つまたは複数の例の詳細は、添付の図面および以下の説明において記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】[0014]本開示の技法を利用し得る、例示的なビデオコーディングシステムを示すブロック図。
【図２】[0015]マージリストに対する潜在的候補である空間的隣接ブロックを示す概念図。
【図３】[0016]現在コーディングユニットに対する例示的な空間的および時間的隣接ブロックを示す概念図。
【図４】[0017]ビュー間予測動きベクトル候補の導出プロセスの一例を示す図。
【図５】[0018]後方ワーピングビュー合成予測（ＢＶＳＰ）を実行するための参照ビューからの深度ブロック導出を示す概念図。
【図６】[0019]１つの８×８深度ブロックの４つのコーナーピクセルを示す概念図。
【図７】[0020]３Ｄ−ＨＥＶＣにおけるｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘの例示的な仕様を提供する表。
【図８】[0021]本開示の技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図９】[0022]本開示の技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図１０Ａ】[0023]本開示の１つまたは複数の技法による、３Ｄビデオと関連したデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図１０Ｂ】[0024]本開示の１つまたは複数の技法による、３Ｄビデオと関連したデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図１１】[0025]本開示の１つまたは複数の技法による、現在ブロックに関するマージ候補リストを構成するための例示的な動作の第１の部分を示すフローチャート。
【図１２】[0026]本開示の１つまたは複数の技法による、現在ブロックに関するマージ候補リストを構成するための図１１の例示的な動作の第２の部分を示すフローチャート。
【図１３】[0027]本開示の１つまたは複数の技法による、結合双予測マージング候補のための例示的な導出プロセスを示すフローチャート。
【図１４Ａ】[0028]本開示の１つまたは複数の技法による、ビデオブロックを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図１４Ｂ】[0029]本開示の１つまたは複数の技法による、ビデオブロックを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１５】
[0030]ビデオ符号化は、ビデオデータを符号化ビデオデータに変換する処理である。一般に、ビデオ復号は、その変換を逆転させ、それによって、ビデオデータを再構成する。ビデオ符号化およびビデオ復号は、両方ともビデオコーディングと呼ばれることがある。ブロックベースのビデオコーディングは、少なくとも部分的には、ピクチャ内のビデオデータのブロックにおいて動作するビデオコーディングのタイプである。
【００１６】
[0031]インター予測は、ビデオエンコーダが、参照ピクチャのサンプルに基づいて、現在ブロック（すなわち、ビデオエンコーダが現在コーディングしているブロック）のための予測ブロックを決定する、ビデオコーディング技法である。参照ピクチャは、ビデオエンコーダが現在コーディングしているピクチャ以外のピクチャである。ビデオエンコーダは、ブロックに関する残差データを表すデータを、ビットストリームの中に含めることができる。ブロックについての残差データは、現在ブロックと予測ブロックとの間の差分を示す。ブロックのための動きベクトルは、現在ブロックと予測ブロックとの間の空間変位を示し得る。参照インデックスは、現在ピクチャをコーディングする際に使用するために利用可能な参照ピクチャのリスト内での、参照ピクチャのロケーションを示し得る。参照インデックスは、「参照ピクチャインデックス」と呼ばれることもある。ビデオデコーダは、現在ブロックのための予測ブロックを決定するために、現在ブロックの動きベクトルを使用し得る。さらに、ビデオデコーダは、現在ブロックを再構成するために、予測ブロックを現在ブロックに関する残差データと組み合わせ得る。
【００１７】
[0032]双方向インター予測では、ビデオエンコーダは、現在ブロックのための２つの予測ブロックを決定する。したがって、ビデオエンコーダは、現在ブロックのための２つの動きベクトルも決定する。現在ブロックのための２つの予測ブロックは、異なる参照ピクチャの中にあってよい。したがって、双方向インター予測では、ビデオエンコーダは、現在ブロックのための２つの参照インデックス（すなわち、第１の参照インデックスおよび第２の参照インデックス）を決定し得る。第１および第２の参照インデックスは、それぞれ、第１および第２の参照ピクチャリスト内での参照ピクチャのロケーションを示す。現在ブロックに関する残差データは、現在ブロックと、現在ブロックのための２つの予測ブロックに基づいて合成された予測ブロックとの間の差分を示し得る。
【００１８】
[0033]現在ブロックの動きベクトルは、現在ブロックに空間的または時間的に隣接するブロック（すなわち、隣接ブロック）の動きベクトルと類似であり得る。したがって、ビデオエンコーダが現在ブロックの動きベクトルと参照インデックスとを明示的にシグナリングすることが必要でなくてよい。むしろ、ビデオエンコーダは、現在ブロックのためのマージング候補のリスト（すなわち、「マージング候補リスト」または「マージ候補リスト」）を決定し得る。マージング候補の各々は、動き情報（たとえば、１つまたは複数の動きベクトル、１つまたは複数の参照インデックスなど）のセットを規定する。マージング候補のリストは、隣接ブロックのうちの異なるブロックの動き情報をそれぞれ規定する、１つまたは複数のマージング候補を含み得る。隣接ブロックは、空間的隣接ブロックおよび／または時間的隣接ブロックを含み得る。本開示は、空間的隣接ブロックに基づくマージング候補を、空間的マージング候補と呼ぶことがある。本開示は、時間的隣接ブロックに基づくマージング候補を、時間的マージング候補と呼ぶことがある。いくつかの例では、マージング候補のリストの中の２つのマージング候補が同一の動き情報を有することがある。ビデオエンコーダは、マージング候補のうちの１つを選択し得、選択されたマージング候補のマージング候補リスト内での位置を示すシンタックス要素をシグナリングし得る。
【００１９】
[0034]ビデオデコーダは、同じマージング候補リスト（すなわち、ビデオエンコーダによって決定されたマージング候補リストの重複したマージ候補リスト）を生成し得、シグナリングされたシンタックス要素の受信に基づいて、選択されたマージング候補を決定し得る。ビデオデコーダは、次いで、選択されたマージング候補の動き情報を、現在ブロックの動き情報として使用し得る。このようにして、現在ブロックは、隣接ブロックのうちの１つの動き情報を継承し得る。
【００２０】
[0035]いくつかの状況では、隣接ブロックの動き情報が利用不可能なことがある。たとえば、隣接ブロックは、イントラ予測を使用してコーディングされてよく、隣接ブロックが異なるスライスの中にある場合があり、または隣接ブロックが単に存在しない場合がある。したがって、現在ブロックのためのマージング候補リストの中に、必要とされる数のマージング候補（たとえば、スライスヘッダの中で示され得る最大数のマージング候補）よりも少ないマージング候補しかないことがある。したがって、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）が現在ブロックのためのマージング候補リストを生成するとき、ビデオコーダは、１つまたは複数の擬似マージング候補を、現在ブロックのためのマージング候補リストの中に含めることによって、現在ブロックのためのマージング候補リストが所望の数のマージング候補を含むことを保証し得る。擬似マージング候補は、いずれかの空間的または時間的隣接ブロックの動き情報を必ずしも規定するとは限らないマージング候補である。
【００２１】
[0036]擬似マージング候補は、１つまたは複数の結合双予測マージング候補を含み得る。上記で示したように、マージング候補は、２つの動きベクトルと２つの参照インデックスとを規定し得る。結合双予測マージング候補は、現在ブロックのためのマージング候補のリストの中にすでにあるマージング候補のそれぞれのペアに対応する。詳細には、結合双予測マージング候補は、利用可能な場合、それぞれのペアの第１のマージング候補の動きベクトルおよび参照インデックス、ならびに、利用可能な場合、それぞれのペアの第２のマージング候補の動きベクトルおよび参照インデックスの組合せである。第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す。したがって、結合双予測マージング候補は、異なる既存のマージング候補（たとえば、空間的または時間的マージング候補などの、結合双予測マージング候補以外のマージング候補）と異なる動きベクトル／参照インデックスの異なる組合せに対応し得る。たとえば、第１のマージング候補のＲｅｆＰｉｃＬｉｓｔ０動き情報および第２のマージング候補のＲｅｆＰｉｃＬｉｓｔ１動き情報が、それぞれ利用可能であり同一でないとき（すなわち，参照ピクチャのいずれかが異なり、または動きベクトルが異なるとき）、１つの結合双予測マージング候補が構成される。他の場合、次のそれぞれのペアが検査される。
【００２２】
[0037]ＨＥＶＣ規格のいくつかのバージョンでは、マージング候補のリストの中で必要とされるマージング候補の数の最大値は、５である。さらに、いくつかの事例では、マージング候補のリストの中で望まれるマージング候補の数は、５である。したがって、結合双予測マージング候補をマージング候補リストの中に含める前にマージング候補リストの中に５個よりも少ないマージング候補がある場合、結合双予測マージング候補の中に、使用できる動きベクトルの１２（すなわち、４＊３）通りまでの可能な組合せが存在する。それぞれのペアの選択（すなわち、どの候補が第１の候補であり、どの候補が第２の候補であるのか）は、ＨＥＶＣでは以下の表に示すように予め定義されている。
【表１】
2016536817.tif 000003
上の表では、ｌ０ＣａｎｄＩｄｘは選択された第１の既存のマージング候補のインデックスを表し、ｌ１ＣａｎｄＩｄｘは選択された第２の既存のマージング候補のインデックスを表し、ｃｏｍｂＩｄｘは構成された結合双予測候補のインデックスを表す。
【００２３】
[0038]マルチレイヤビデオコーディングは、複数のレイヤにまたがるビデオコーディングを可能にする。マルチレイヤビデオコーディングは、スケーラブルビデオコーディングと、マルチビュービデオコーディングと、３次元（３Ｄ）ビデオコーディングとを実現するために使用され得る。マルチビュービデオコーディングおよび３Ｄビデオコーディングでは、レイヤの各々は、異なる視点に対応し得る。いくつかのビデオコーディング規格では、マージング候補リストの中で必要とされるマージング候補の数は、単一レイヤビデオコーディングを使用するときよりもマルチレイヤビデオコーディングを使用するときの方が多い。異なるビューの中のブロックの動き情報を規定するマージング候補を収容するために、より大きい数のマージング候補が許容され得る。
【００２４】
[0039]単一レイヤビデオコーディングのケースのように、ビデオコーダがマルチレイヤコーディングを使用しており、マージング候補リストの中のマージング候補の数がマージング候補の望まれる数よりも少ないとき、ビデオコーダは、１つまたは複数の結合双予測マージング候補を生成し得る。しかしながら、マルチレイヤコーディングするときのマージング候補のより大きい個数に起因して、結合双予測マージング候補の中に、使用できる動きベクトルのより大きい個数の組合せが存在する。たとえば、必要とされるマージング候補の数が６である場合、結合双予測マージング候補の中に、使用できる動きベクトルの２０（すなわち、５＊４）通りまでの可能な組合せが存在する。
【００２５】
[0040]ビデオコーダは、結合双予測マージング候補をマージング候補の特定のペアから生成できないことがある。たとえば、マージング候補のうちの１つが単一の動きベクトルおよび単一の参照インデックスだけを有する場合、ビデオコーダは、結合双予測マージング候補を生成できないことがある。結合双予測マージング候補がマージング候補の特定のペアの動き情報から生成され得るかどうかを決定するために、ビデオコーダは、マージング候補のペアについての情報をメモリから取り出す必要がある場合がある。
【００２６】
[0041]情報をメモリから取り出すことは、他のコーディングプロセスに比べて比較的遅いプロセスであり得る。その上、メモリへのアクセスは電力を必要とする。したがって、メモリへのアクセスの数を制限することが望ましくあり得る。結合双予測マージング候補の中で使用できる動きベクトルの組合せの数が増大するにつれて、メモリから取り出される必要のある情報の量は増大する。したがって、マージング候補の必要とされる数の、マルチビュービデオコーディングと関連した増大は、ビデオコーディングプロセスを著しく遅くすることがあり、他の場合に使用されるはずの電力よりも多くの電力を使用することがある。
【００２７】
[0042]したがって、本開示の例によれば、ビデオコーダは、メモリへのアクセスを制限し得る方法で３Ｄビデオのビデオブロックをコーディングするために、マージング候補のリストを生成し得る。さらに、この例では、マージング候補のリストを生成することの一部として、ビデオコーダは、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る。リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、ビデオコーダは、１つまたは複数の結合双予測マージング候補を導出し得る。この例では、１つまたは複数の結合双予測マージング候補のうちの各それぞれの結合双予測マージング候補は、リストの中にすでにあるマージング候補のそれぞれのペアに対応する。さらに、この例では、それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せである。この例では、第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す。ビデオコーダは、１つまたは複数の結合双予測マージング候補を、リストの中に含めることができる。いくつかの例では、リストの中のマージング候補の最大数は、５よりも大きい（たとえば、６に等しい）。この例のプロセスの効果は、たとえリストの中のマージング候補の最大数が６以上であっても、組合せの数が依然として１２に制限されることである。これは、メモリから取り出される情報の量を低減することによってコーディングプロセスを加速する助けとなり得、電力も節約し得る。
【００２８】
[0043]図１は、本開示の技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で説明されるように、「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。
【００２９】
[0044]図１に示されるように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化されたビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００３０】
[0045]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
【００３１】
[0046]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることが可能な、１つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２がリアルタイムで符号化ビデオデータを直接宛先デバイス１４に送信することを可能にする、１つまたは複数の通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。１つまたは複数の通信媒体は、無線周波（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などの、ワイヤレスおよび／または有線の通信媒体を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）などの、パケットベースネットワークの一部を形成し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を容易にするルータ、スイッチ、基地局、または他の機器などの、様々なタイプのデバイスを含み得る。
【００３２】
[0047]別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス１４は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体などの、ローカルにアクセスされる様々なデータ記憶媒体を含み得る。
【００３３】
[0048]さらなる一例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する、ファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブを含む。
【００３４】
[0049]宛先デバイス１４は、インターネット接続などの標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３５】
[0050]本開示の技法は、ワイヤレスの適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの、様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３６】
[0051]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／もしくは、ビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【００３７】
[0052]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して宛先デバイス１４へ、符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために、記憶媒体またはファイルサーバ上に記憶され得る。
【００３８】
[0053]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信し得る。ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るか、またはその外部にあり得る。一般に、ディスプレイデバイス３２は、復号ビデオデータを表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備え得る。本開示によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオコーディングプロセス（たとえば、ビデオ符号化またはビデオ復号）の一部として、本明細書で説明される１つまたは複数の技法を実行し得る。
【００３９】
[0054]図１は一例にすぎず、本開示の技法は、ビデオ符号化デバイスとビデオ復号デバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データが、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶することができ、および／または、ビデオ復号デバイスはメモリからデータを取り出し、復号することができる。多くの例では、ビデオ符号化およびビデオ復号は、互いに通信しないが単にメモリにデータを符号化し、および／またはメモリからデータを取り出して復号するデバイスによって実行される。
【００４０】
[0055]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなどの、様々な適切な回路のいずれかとして実装され得る。本技法がソフトウェアに部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し得、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェア内でそれらの命令を実行し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのうちのいずれかが、それぞれのデバイスの中で組み合わされたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれてよい。
【００４１】
[0056]本開示は概して、特定の情報を「シグナリングする」ビデオエンコーダ２０に言及し得る。「シグナリング」という用語は概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで発生し得る。代替的に、そのような通信は、符号化のときにおいて符号化されるビットストリームの中のシンタックス要素を、コンピュータ可読記憶媒体に記憶するときに発生し得るような、ある長さの時間にわたって発生することがあり、次いで、ビデオ復号デバイスが、これらのシンタックス要素を、この媒体に記憶された後の任意の時間に取り出し得る。いくつかの例では、エンコーダの観点から、シグナリングは符号化ビットストリームを生成することを含み得、デコーダの観点から、シグナリングはコーディングされたビットストリームを受信し構文解析することを含み得る。
【００４２】
[0057]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、そのスケーラブルビデオコーディング（ＳＶＣ：Ｓｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）およびマルチビュービデオコーディング（ＭＶＣ：Ｍｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＶｉｓｕａｌおよびＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）などのビデオ圧縮規格に従って動作する。ＭＶＣの最新のジョイントドラフトは、「Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」、ＩＴＵ−Ｔ勧告Ｈ．２６４、２０１０年３月に記載されている。他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３などを含む、他のビデオコーディング規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格またはコーディング技法にも限定されない。
【００４３】
[0058]他の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）によって開発された高効率ビデオコーディング（ＨＥＶＣ）規格を含む、他のビデオ圧縮規格に従って動作し得る。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ９」と呼ばれるＨＥＶＣ規格のドラフトは、Ｂｒｏｓｓらの「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ９」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１１回会合、上海、中国、２０１２年１０月に記載されており、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１１＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴＶＣ−Ｋ１００３−ｖ８．ｚｉｐからダウンロード可能である。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０」または「ＷＤ１０」と呼ばれるＨＥＶＣ規格の別の最近のドラフトは、文書ＪＣＴＶＣ−Ｌ１００３ｖ３４、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  （ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  １０  （ｆｏｒ  ＦＤＩＳ  ＆  Ｌａｓｔ  Ｃａｌｌ）」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１２回会合、ジュネーブ、スイス、２０１３年１月１４日〜２３日に記載されており、この文書は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ３４．ｚｉｐからダウンロード可能である。ＨＥＶＣ規格のさらに別のドラフトは、本明細書で「ＷＤ１０改訂」と呼ばれ、Ｂｒｏｓｓら、「Ｅｄｉｔｏｒｓ’  ｐｒｏｐｏｓｅｄ  ｃｏｒｒｅｃｔｉｏｎｓ  ｔｏ  ＨＥＶＣ  ｖｅｒｓｉｏｎ  １」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１３回会合、仁川、韓国、２０１３年４月に記載されており、この文書は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１３＿Ｉｎｃｈｅｏｎ／ｗｇ１１／ＪＣＴＶＣ−Ｍ０４３２−ｖ３．ｚｉｐから入手可能である。
【００４４】
[0059]現時点で、ＶＣＥＧおよびＭＰＥＧの３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｃ）は、ＨＥＶＣに基づく３ＤＶ規格を開発中であり、規格化作業の一部は、ＨＥＶＣに基づくマルチビュービデオコーデック（ＭＶ−ＨＥＶＣ）、およびＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）についての別の一部の規格化を含む。３Ｄ−ＨＥＶＣ用に、コーディングユニット／予測ユニットレベルにおけるものを含む、新たなコーディングツールが、テクスチャビューと深度ビューの両方のために、含められサポートされ得る。３Ｄ−ＨＥＶＣ用ソフトウェア（すなわち、３Ｄ−ＨＴＭ）が、以下のリンクからダウンロードされ得る。
［３Ｄ−ＨＴＭ  ｖｅｒｓｉｏｎ  ８．０］：
ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−８．０／
３Ｄ−ＨＥＶＣのワーキングドラフト（すなわち、Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  １」、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第５回会合、ウィーン、オーストリア、２０１３年７月２７日〜８月２日、文書番号ＪＣＴ３Ｖ−Ｅ１００１−ｖ２（これ以降、「ＪＣＴ３Ｖ−Ｅ１００１」または「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  １」））は、
ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｅ１００１−ｖ３．ｚｉｐから入手可能である。３Ｄ−ＨＥＶＣのソフトウェアの説明（Ｚｈａｎｇら、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ３」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第３回会合、ジュネーブ、スイス、２０１３年１月１７日〜２３日、文書番号ＪＣＴ３Ｖ−Ｃ１００５＿ｄ０（これ以降、「ＪＣＴ３Ｖ−Ｃ１００５」または「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ３」））は、
ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／３＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｃ１００５−ｖ２．ｚｉｐから入手可能である。３Ｄ−ＨＥＶＣの別のソフトウェアの説明（Ｚｈａｎｇら、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ５」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第５回会合、ウィーン、オーストリア、２０１３年７月２７日〜８月２日、文書番号ＪＣＴ３Ｖ−Ｅ１００５（これ以降、「ＪＣＴ３Ｖ−Ｅ１００５」））は、
ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝１３６０から入手可能である。
【００４５】
[0060]上記で簡単に述べられたように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは、１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成する、ビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと、関連のデータとを含み得る。コード化ピクチャは、ピクチャの符号化された表現である。関連のデータは、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、ビデオパラメータセット（ＶＰＳ）と、適応パラメータセット（ＡＰＳ）と、スライスヘッダと、他のシンタックス構造とを含み得る。
【００４６】
[0061]ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、輝度サンプルの２次元アレイ（すなわち、ブロック）である。輝度サンプルは、本明細書では「Ｙ」サンプルと呼ばれることもある。ＳCbは、Ｃｂ色差サンプルの２次元アレイである。ＳCrは、Ｃｒ色差サンプルの２次元アレイである。色差サンプルは、本明細書では「色差（chroma）」サンプルと呼ばれることもある。Ｃｂ色差サンプルは、本明細書では「Ｕサンプル」と呼ばれることがある。Ｃｒ色差サンプルは、本明細書では「Ｖサンプル」と呼ばれることがある。
【００４７】
[0062]いくつかの例では、ビデオエンコーダ２０は、ピクチャの色差アレイ（すなわち、ＳCbおよびＳCr）をダウンサンプリングし得る。たとえば、ビデオエンコーダ２０は、ＹＵＶ４：２：０ビデオフォーマット、ＹＵＶ４：２：２ビデオフォーマット、または４：４：４ビデオフォーマットを使用し得る。ＹＵＶ４：２：０ビデオフォーマットにおいて、ビデオエンコーダ２０は、色差アレイの高さおよび幅が輝度アレイの２分の１になるように色差アレイをダウンサンプリングし得る。ＹＵＶ４：２：２ビデオフォーマットにおいて、ビデオエンコーダ２０は、色差アレイの幅が輝度アレイの２分の１になり、色差アレイの高さが輝度アレイと同じになるように、色差アレイをダウンサンプリングし得る。ＹＵＶ４：４：４ビデオフォーマットにおいて、ビデオエンコーダ２０は、色差アレイをダウンサンプリングしない。
【００４８】
[0063]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、輝度サンプルのコーディングツリーブロック、色差サンプルの２つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。モノクロームピクチャまたは３つの別個のカラープレーンを有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロック（ＣＴＢ）は、サンプルのＮ×Ｎブロックであり得る。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。
【００４９】
[0064]ピクチャを符号化することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスの符号化表現（すなわち、コード化スライス）を生成し得る。コード化スライスを生成するために、ビデオエンコーダ２０は、一連のＣＴＵを符号化し得る。本開示は、ＣＴＵの符号化表現をコード化ＣＴＵと呼ぶことがある。いくつかの例では、スライスの各々は、整数個のコード化ＣＴＵを含む。
【００５０】
[0065]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するように、ＣＴＵのコーディングツリーブロックに対して４分木分割を再帰的に実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのＮ×Ｎブロックである。ＣＵは、輝度サンプルアレイ、ＣｂサンプルアレイおよびＣｒサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャの、輝度サンプルの１つのコーディングブロックおよび色差サンプルの２つの対応するコーディングブロックであり得る。モノクロームピクチャまたは３つの別個のカラープレーンを有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００５１】
[0066]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに分割し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵの予測ユニット（ＰＵ）は、輝度サンプルの予測ブロック、ピクチャの色差サンプルの２つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。３つの別個のカラープレーンを有するモノクロームピクチャまたはピクチャでは、ＰＵは、単一の予測ブロックと、それらの予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＰＵの各予測ブロックに対して予測ブロックを生成し得る。たとえば、ビデオエンコーダ２０は、ＣＵの各ＰＵの輝度予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックに対して、予測輝度ブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成し得る。予測ブロックは、予測サンプルブロックと呼ばれることもある。
【００５２】
[0067]ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成するために、イントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【００５３】
[0068]ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するために、単予測または双予測を使用し得る。ビデオエンコーダ２０が、ＰＵのための予測ブロックを生成するために単予測を使用するとき、ＰＵは単一の動きベクトルを有し得る。ビデオエンコーダ２０が、ＰＵのための予測ブロックを生成するために単予測を使用するとき、ＰＵは２つの動きベクトルを有し得る。
【００５４】
[0069]ビデオエンコーダ２０が、ＣＵの１つまたは複数のＰＵのための予測ブロック（たとえば、予測輝度ブロック、予測Ｃｂブロック、および予測Ｃｒブロック）を生成した後、ビデオエンコーダ２０は、ＣＵのための１つまたは複数の残差ブロックを生成し得る。ＣＵのための残差ブロックの中の各サンプルは、ＣＵのＰＵの予測ブロックの中のサンプルと、ＣＵのコーディングブロックの中の対応するサンプルとの間の差分を示し得る。たとえば、ビデオエンコーダ２０は、ＣＵのための輝度残差ブロックを生成し得る。ＣＵの輝度残差ブロックの中の各サンプルは、ＣＵのＰＵの予測輝度ブロックの中の輝度サンプルと、ＣＵの元の輝度コーディングブロックの中の対応するサンプルとの間の差分を示し得る。さらに、ビデオエンコーダ２０は、ＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロックの中の各サンプルは、ＣＵのＰＵの予測Ｃｂブロックのうちの１つの中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロックの中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵのためのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロックの中の各サンプルは、ＣＵのＰＵの予測Ｃｒブロックの中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロックの中の対応するサンプルとの間の差分を示し得る。
【００５５】
[0070]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、輝度残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロック）を、１つまたは複数の変換ブロック（たとえば、輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）に分解するために、４分木分割を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。ＣＵの変換ユニット（ＴＵ）は、輝度サンプルの変換ブロック、色差サンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、ＣＵの各ＴＵは、輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連付けられ得る。３つの別個のカラープレーンを有するモノクロームピクチャまたはピクチャでは、ＴＵは、単一の変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。ＣＵのＴＵの（すなわち、ＴＵに関連付けられた）輝度変換ブロックは、ＣＵの輝度残差ブロックのサブブロックであり得る。ＣＵのＴＵのＣｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。ＣＵのＴＵのＣｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。
【００５６】
[0071]３Ｄコーディングに関して、深度ブロックの中の深度値は、サンプル値（たとえば、輝度値）として同様に表され得、各々は、所与のピクセルロケーションに関連付けられた深度のレベルを示す。深度ブロックをコーディングする際に、選択された候補の動き情報を継承または使用するための候補のリストが生成される、特にスキップモードまたはマージモードなどのモードにおいて、本開示の技法のうちの１つまたは複数が、深度ブロックのコーディングに適用可能である。
【００５７】
[0072]ビデオエンコーダ２０は、ＴＵのための係数ブロックを生成するために、ＴＵの変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは、変換係数の２次元アレイであり得る。変換係数は、スカラー量であり得る。たとえば、ビデオエンコーダ２０は、ＴＵのための輝度係数ブロックを生成するために、ＴＵの輝度変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００５８】
[0073]係数ブロック（たとえば、輝度係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ２０が係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対して、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）を実施し得る。ビデオエンコーダ２０は、エントロピー符号化シンタックス要素をビットストリームの中に出力し得る。ビットストリームはまた、エントロピー符号化されないシンタックス要素を含み得る。
【００５９】
[0074]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得（たとえば、復号）するために、ビットストリームを構文解析し得る。ビデオデコーダ３０は、ビットストリームから復号（または、別のやり方で取得）されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックを決定するために、ＰＵの動きベクトルを使用し得る。加えて、ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連付けられた変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。いくつかの例では、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを、現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵに関するコーディングブロックを再構成することによって、ビデオデコーダ３０は、ピクチャを再構成し得る。
【００６０】
[0075]いくつかの例では、ビデオエンコーダ２０は、マージモードもしくはスキップモード、または場合によっては高度動きベクトル予測（ＡＭＶＰ）モードを使用して、ＰＵの動き情報をシグナリングし得る。言い換えれば、ＨＥＶＣ規格では、それぞれ、マージ（スキップはマージの特殊なケースと見なされる）モードおよびＡＭＶＰモードと名付けられた、２つのインター予測モードがある。マージモードまたはＡＭＶＰモードのいずれかにおいて、ビデオコーダは、複数の動きベクトル予測子のための動きベクトル候補リストを保持する。説明の簡単のため、本開示は、マージモードのための動きベクトル候補リストを、「マージ候補リスト」または「マージング候補リスト」と呼ぶことがある。同様に、本開示は、ＡＭＶＰモードのための動きベクトル候補リストを、ＡＭＶＰ候補リストと呼ぶことがある。ＰＵの動き情報は、ＰＵの動きベクトルと、ＰＵの参照インデックスとを含み得る。
【００６１】
[0076]ビデオエンコーダ２０がマージモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、マージ候補リストを生成する。マージ候補リストは、候補のセットを含む。マージ候補リストの中の候補は、「マージ候補」または「マージング候補」と呼ばれることがある。候補は、現在ＰＵに空間的または時間的に隣接するＰＵの動き情報を示し得る。現在ＰＵに空間的に隣接するＰＵは、現在ＰＵと同じピクチャの中で、現在ＰＵの予測ブロックに隣接する予測ブロックを有し得る。現在ＰＵに時間的に隣接するＰＵは、現在ＰＵと異なるピクチャの中にあり得る。ビデオエンコーダ２０は、次いで、候補リストの中から候補を選択し得、選択された候補によって示される動き情報を、現在ＰＵの動き情報として使用し得る。さらに、マージモードでは、ビデオエンコーダ２０は、選択された候補の、候補リストの中での位置をシグナリングし得る。たとえば、ビデオエンコーダ２０は、選択されたマージング候補の、マージング候補リストの中での位置を示すマージインデックス（たとえば、ｍｅｒｇｅ＿ｉｄｘ）をシグナリングし得る。ビデオデコーダ３０は、同じ候補リストを生成し得、選択された候補の位置（たとえば、マージインデックスによって示される位置）の表示に基づいて、選択された候補を決定し得る。ビデオデコーダ３０は、次いで、現在ＰＵのための１つまたは複数の予測ブロック（たとえば、予測サンプル）を生成するために、選択された候補の動き情報を使用し得る。ビデオデコーダ３０は、現在ＰＵおよび残差信号のための予測ブロック（たとえば、予測サンプル）に基づいて、サンプルを再構成し得る。このようにして、ビデオコーダは、動きベクトル候補リストから１つの候補を取ることによって、現在ＰＵの動きベクトルと、マージモードでの参照インデックスとを生成し得る。
【００６２】
[0077]スキップモードは、ビデオエンコーダ２０が候補リストを生成し、候補のリストの中から候補を選択するという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がスキップモードを使用して現在ＰＵ（たとえば、深度ブロック）の動き情報をシグナリングするとき、ビデオエンコーダ２０は、何れの残差信号の生成をも避けることができる。スキップモードはマージモードと同じ動きベクトル導出プロセスを有するので、本明細書で説明される技法は、マージモードとスキップモードの両方に適用され得る。本開示の１つまたは複数の態様はまた、ＡＭＶＰモードまたは候補リストを利用する他のモードに対して使用され得る。
【００６３】
[0078]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成し、候補リストの中から候補を選択するという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がＡＭＶＰモードを使用して現在ＰＵ（たとえば、深度ブロック）の動き情報をシグナリングするとき、ビデオエンコーダ２０は、選択された候補の候補リストの中での位置をシグナリングすることに加えて、現在ＰＵのための動きベクトル差分（ＭＶＤ）と参照インデックスとをシグナリングし得る。現在ＰＵのためのＭＶＤは、現在ＰＵの動きベクトルと、選択された動きベクトル候補の動きベクトルとの間の差分を示し得る。単予測では、ビデオエンコーダ２０は、現在ＰＵについての１つのＭＶＤと１つの参照インデックスとをシグナリングし得る。双予測では、ビデオエンコーダ２０は、現在ＰＵについての２つのＭＶＤと２つの参照インデックスとをシグナリングし得る。いくつかの例では、ビデオエンコーダ２０は、一般に、現在ＰＵについての１つのＭＶＤと１つの参照インデックスをシグナリングし得るが、深度ブロック予測は、２つのＭＶＤおよび２つの参照インデックスがシグナリングされる双予測と同様の技法を使用することもできる。
【００６４】
[0079]さらに、現在ＰＵの動き情報がＡＭＶＰモードを使用してシグナリングされると、ビデオデコーダ３０は、同じ候補リストを生成し得、選択された候補の位置の表示に基づいて、選択された候補を決定し得る。ビデオデコーダ３０は、ＭＶＤを、選択された候補の動きベクトルに加算することによって、現在ＰＵの動きベクトルを復元し得る。ビデオデコーダ３０は、次いで、現在ＰＵのための予測ブロックを生成するために、復元された動きベクトル、または現在ＰＵの動きベクトルを使用し得る。
【００６５】
[0080]いくつかの例では、動きベクトル候補リストは、マージモードに対して５個までの候補を含み、ＡＭＶＰモードに対して２個の候補のみを含む。言い換えれば、マージ候補リストは５個までの候補を含み得、ＡＭＶＰ候補リストは２個の候補のみを含み得る。マージ候補（すなわち、マージモードに対する動きベクトル候補リストの中の候補）は、参照ピクチャリスト（リスト０およびリスト１）と参照インデックスの両方に対応する動きベクトルを含み得る。マージ候補がマージインデックスによって識別される場合、現在ブロックの予測のために使用される参照ピクチャ、および関連付けられた動きベクトルが決定される。しかしながら、リスト０またはリスト１のいずれかからの潜在的な各予測方向に対するＡＭＶＰモードのもとでは、ＡＭＶＰ候補が動きベクトルのみを含むので、参照インデックスは、動きベクトル予測子インデックスと一緒に動きベクトル候補リストへ明示的にシグナリングされる。ＡＭＶＰモードでは、予測動きベクトルは、さらに改善され得る。
【００６６】
[0081]上記で示したように、ビデオコーダは、マージモードに対する候補を空間的および時間的隣接ブロックから導出し得る。ビデオコーダは、スライスに関するスライスヘッダの中に含まれるコーディングされたシンタックス要素ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄから、候補の最大数を導出し得る。シンタックス要素ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、５から減算されたスライスの中でサポートされるマージング候補の最大数を規定する。ビデオコーダは、マージング候補の最大数ＭａｘＮｕｍＭｅｒｇｅＣａｎｄを、次のように導出し得る。
ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ      （７−３９）
ＭａｘＮｕｍＭｅｒｇｅＣａｎｄの値は、両端値を含む１〜５の範囲の中にある。
【００６７】
[0082]ビデオコーダは、以下のステップを用いてマージ候補リストを構成し得る。第１に、ビデオコーダは、４個までの空間的動きベクトル候補を、図１に示す５個の空間的隣接ブロックから導出し得る。図２は、マージリストに対する潜在的候補である空間的隣接ブロックを示す概念図である。矢印は、どの空間的な候補が比較されるのかを示す。ビデオコーダは、図２に示すように、以下の順序、すなわち、左（Ａ１）、上（Ｂ１）、右上（Ｂ０）、左下（Ａ０）、および左上（Ｂ２）で、空間的動きベクトル候補を導出し得る。さらに、ビデオコーダは、同一の空間的動きベクトル候補を除去するために、プルーニング処理（pruning process）を適用し得る。たとえば、ビデオコーダは、Ｂ１をＡ１と比較し得、Ｂ０をＢ１と比較し得、Ａ０をＡ１と比較し得、Ｂ２をＢ１とＡ１の両方と比較し得る。プルーニング処理の後、利用可能な４個のマージ候補がすでに存在する場合、ビデオコーダは、Ｂ２をマージ候補リストへ挿入しない。
【００６８】
[0083]第２に、ビデオコーダは、時間的マージング候補を決定し得る。たとえば、ビデオコーダは、コロケートされた（co-located）参照ピクチャ（有効にされ利用可能な場合）からの時間的動きベクトル予測子（ＴＭＶＰ）候補を、マージ候補リスト（すなわち、動きベクトル候補リスト）へ空間的動きベクトル候補の後に追加し得る。
【００６９】
[0084]第３に、マージ候補リスト（すなわち、動きベクトル候補リスト）が完全でない場合、ビデオコーダは、マージ候補リストがすべての候補（すなわち、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄによって示されるすべての候補）を有するまで、マージ候補リストの終わりにおいて擬似動きベクトル候補を生成および挿入し得る。言い換えれば、マージ候補リストの中のマージ候補の数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄよりも少ない場合、ビデオコーダは、擬似動きベクトル候補をマージ候補リストへ挿入し得る。２つのタイプの擬似動きベクトル候補、すなわち、結合双予測マージング候補（Ｂ−スライスのみのために導出される）およびゼロ動きベクトルマージング候補がある。第１のタイプ（すなわち、結合双予測マージング候補）が十分な擬似候補を提供しない場合、マージング候補リストは、１つまたは複数のゼロ動きベクトルマージング候補を含み得る。
【００７０】
[0085]現在スライス（すなわち、ビデオコーダが現在コーディングしているスライス）がＢスライスであるとき、ビデオコーダは、結合双予測マージング候補のための導出プロセスを呼び出し得る。少なくともいくつかの例では、Ｂスライスは、イントラ予測、一方向インター予測、および双方向インター予測が許容されるスライスである。導出プロセスが呼び出されると、ビデオコーダは、マージ候補リストの中にすでにあり必要な動き情報を有するマージ候補の各ペアに対して、リスト０（利用可能な場合）の中のピクチャを参照するペア（ｌ０ＣａｎｄＩｄｘに等しいマージ候補インデックスを有する）の第１のマージ候補の動きベクトル（および、いくつかの事例では、参照インデックス）と、リスト１（利用可能であり、参照ピクチャまたは動きベクトルのいずれかが第１の候補と異なる場合）の中のピクチャを参照するペア（ｌ１ＣａｎｄＩｄｘに等しいマージ候補インデックスを有する）の第２のマージ候補の動きベクトル（および、いくつかの事例では、参照インデックス）との組合せによって、結合双予測動きベクトル候補（ｃｏｍｂＩｄｘによって示されるインデックスを有する）を導出し得る。マージ候補のペアは、異なる順序の２つの同じマージ候補が異なるペアと見なされるという意味で順序付けられたペアであり得る。ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘの定義は、下の表１に示すｃｏｍｂＩｄｘに対応する。
【表２】
2016536817.tif 000004
【００７１】
[0086]表１において、ｌ０ＣａｎｄＩｄｘに対する行は、ＲｅｆＰｉｃＬｉｓｔ０動き情報（たとえば、動きベクトル、参照インデックス）をそこから引き出すマージ候補のインデックスを示す。同様に、表１において、ｌ１ＣａｎｄＩｄｘに対する行は、ＲｅｆＰｉｃＬｉｓｔ１動き情報をそこから引き出すマージ候補のインデックスを示す。したがって、組合せ０（すなわち、ｃｏｍｂＩｄｘ＝０）に対する列は、結合双予測動きベクトル候補が、マージ候補０のＲｅｆＰｉｃＬｉｓｔ０動き情報を規定し、マージ候補１のＲｅｆＰｉｃＬｉｓｔ１動き情報を規定することを示す。すべてのマージ候補が必ずしも組合せに対して適用可能な動き情報を有するとは限らないので（たとえば、マージ候補１はＲｅｆＰｉｃＬｉｓｔ１動き情報を有しないことがある）、または、マージ候補０に関連付けられたＲｅｆＰｉｃＬｉｓｔ０およびマージ候補１に関連付けられたＲｅｆＰｉｃＬｉｓｔ１の動き情報が同一であるので、利用可能な残りの組合せがなくなるまで、または、ビデオコーダが十分な数の結合双予測動きベクトル候補を生成するまで、ビデオコーダは、表１の組合せをｃｏｍｂＩｄｘの順序で処理し得る。
【００７２】
[0087]０．．．１１であるｃｏｍｂＩｄｘに対して、結合双予測動きベクトル候補の生成プロセスは、１つの以下の条件が真であるとき終了される。
・ｃｏｍｂＩｄｘが（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しく、ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄが、このプロセスを呼び出す前のマージリストの中の候補の数を示す。
・マージリストの中の全候補の数（新たに生成される結合双予測マージング候補を含む）が、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しい。
【００７３】
[0088]上記で示したように、ビデオエンコーダは、１つまたは複数のゼロ動きベクトルマージング候補を、マージング候補リストの中に含めることができる。各それぞれのゼロ動きベクトルマージング候補について、それぞれのゼロ動きベクトルマージング候補の動きベクトルは０に設定され、それぞれのゼロ動きベクトルマージング候補に対する参照インデックスは、０〜利用可能な参照インデックスの数−１に設定される。マージ候補リストの中のマージ候補の数が依然としてＭａｘＮｕｍＭｅｒｇｅＣａｎｄよりも少ない場合、ビデオコーダは、マージ候補リストの中のマージ候補の合計数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しくなるまで、１つまたは複数のゼロ動きベクトル候補（たとえば、ゼロ参照インデックスおよび動きベクトル）を挿入し得る。
【００７４】
[0089]本開示の以下のサブセクションは、本開示に関するＡＶＣベースおよびＨＥＶＣベースの３Ｄビデオコーディング技法をレビューする。マルチビューコーディング（たとえば、３Ｄビデオコーディング）では、異なる視点からの同じシーンの複数のビューが存在することがある。「アクセスユニット（access unit）」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用されることがある。言い換えれば、アクセスユニットは、１つの出力時間インスタンスに対するビューのすべてのコード化ピクチャを含み得る。「ビュー成分（view component）」は、単一のアクセスユニットの中のビューのコード化表現であり得る。いくつかの例では、ビュー成分は、テクスチャビュー成分と深度ビュー成分とを含み得る。本開示では、「ビュー」は、同じビュー識別子に関連する一連のビュー成分を指すことがある。したがって、ビューがコード化テクスチャ表現とコード化深度表現の両方を含むとき、ビュー成分は、テクスチャビュー成分と深度ビュー成分とを備え得る（たとえば、これらからなり得る）。いくつかの例では、テクスチャビュー成分は、単一のアクセスユニットの中のビューのテクスチャのコード化表現である。さらに、いくつかの例では、深度ビュー成分は、単一のアクセスユニットの中のビューの深度のコード化表現である。深度ビュー成分は、深度ピクチャと呼ばれることもある。
【００７５】
[0090]各テクスチャビュー成分は、表示されるべき実際の画像コンテンツを含む。たとえば、テクスチャビュー成分は、輝度（Ｙ）成分と、色差（ＣｂおよびＣｒ）成分とを含み得る。各深度ビュー成分は、その対応するテクスチャビュー成分中のピクセルの相対深度を示し得る。いくつかの例では、深度ビュー成分は、輝度値のみを示すグレースケール画像である。言い換えれば、深度ビュー成分は、任意の画像コンテンツを搬送するのではなく、対応するテクスチャビュー成分中のピクセルの相対深度の測定値を与え得る。
【００７６】
[0091]たとえば、深度ビュー成分中の純白ピクセルは、そのピクセルの対応するピクセル、または対応するテクスチャビュー成分中のピクセルが見る人の視点から近いことを示し得る。この例では、深度ビュー成分中の純黒ピクセルは、そのピクセルの対応するピクセル、または対応するテクスチャビュー成分のピクセルが見る人の視点からはるかに遠いことを示す。黒と白との中間にあるグレーの様々な陰影は、異なる深度レベルを示す。たとえば、深度ビュー成分中のダークグレーのピクセルは、テクスチャビュー成分中のピクセルの対応するピクセルが、深度ビュー成分中の薄いグレーのピクセルよりもはるかに遠いことを示す。この例では、ピクセルの深度を識別するためにグレースケールのみが必要とされるので、深度ビュー成分の色差成分がいかなる目的も果たし得ないことから、深度ビュー成分は、色差成分を含む必要がない。本開示は、例示のために、深度を識別するために輝度値（たとえば、強度値）のみを使用する深度ビュー成分の例を提供し、限定するものと見なされるべきでない。他の例では、テクスチャビュー成分中のピクセルの相対深度を示すために他の技法が利用され得る。
【００７７】
[0092]マルチビューコーディングでは、ビットストリームは複数のレイヤを有し得る。レイヤの各々は、異なるビューに対応し得る。マルチビューコーディングでは、ビデオデコーダ（たとえば、ビデオデコーダ３０）が、あるビューの中のピクチャを任意の他のビューの中のピクチャと無関係に復号することができる場合、そのビューは「ベースビュー」と呼ばれることがある。ビューは、そのビューの復号が１つまたは複数の他のビューの中のピクチャの復号に依存する場合、非ベースビューと呼ばれることがある。非ベースビューのうちの１つの中のピクチャをコーディングするとき、ピクチャが、異なるビューの中にあるがビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス（すなわち、アクセスユニット）内にある場合、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、参照ピクチャリストにピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入し得る。
【００７８】
[0093]３Ｄ−ＨＥＶＣでは、視差ベクトル（ＤＶ）は、２つのビュー間の変位の推定量として使用され得る。隣接ブロックがビデオコーディングにおいてほぼ同じ動き／視差情報を共有するので、現在ブロックは、良好な予測子として、隣接ブロックの中の動きベクトル情報を使用することができる。この考えに従って、隣接ブロックベースの視差ベクトル導出（ＮＢＤＶ）プロセスは、異なるビューにおける視差ベクトルを推定するために、隣接動きベクトル情報を使用する。３Ｄ−ＨＥＶＣは最初に、以下の文書、すなわち、Ｚｈａｎｇら、「３Ｄ−ＣＥ５．ｈ：Ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｇｅｎｅｒａｔｉｏｎ  ｒｅｓｕｌｔｓ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第１回会合、ストックホルム、スウェーデン、２０１２年７月１６日〜２０日、文書ＪＣＴ３Ｖ−Ａ００９７（これ以降、「ＪＣＴ３Ｖ−Ａ００９７」）において提案された隣接ブロック（ベースの）視差ベクトル（ＮＢＤＶ）方法を採用した。
【００７９】
[0094]いくつかの空間的および時間的隣接ブロックは、ＮＢＤＶプロセスにおいて定義される。ＮＢＤＶプロセスを実行するビデオコーダは、現在ブロックと候補ブロック（すなわち、空間的または時間的隣接ブロック）との間の相関の優先順位によって決定された予め定義された順序で、空間的および時間的隣接ブロックの各々を検査し得る。したがって、ＮＢＤＶプロセスにおいて、ビデオコーダは、隣接ブロックの２つのセットを利用する。隣接ブロックの一方のセットは空間的隣接ブロックからのものであり、他方のセットは時間的隣接ブロックからのものである。ビデオコーダが隣接ブロックを検査するとき、ビデオコーダは、隣接ブロックが視差動きベクトルを有するか（すなわち、動きベクトルがビュー間参照ピクチャを指し示すか）どうかを決定し得る。ビデオコーダが視差動きベクトルを見つけると、ビデオコーダは視差動きベクトルを視差ベクトルに変換し得る。たとえば、視差動きベクトルを視差ベクトルに変換するために、ビデオコーダは、視差ベクトルを視差動きベクトルに等しく設定し得る。一方、関連する参照ビュー順序インデックスも返される。言い換えれば、ＮＢＤＶプロセスを実行することの一部として、ビデオコーダはまた、参照ビュー順序インデックスを決定し得る。
【００８０】
[0095]３Ｄ−ＨＥＶＣのいくつかのバージョンでは、ビデオコーダは、視差ベクトル導出のために、ＮＢＤＶプロセスにおいて２つの空間的隣接ブロックを使用する。２つの空間的隣接ブロックは、図３に示すＡ１、Ｂ１によって示されるように、現在ＣＵの左および上である。図３は、現在コーディングユニットに対する例示的な空間的および時間的隣接ブロックを示す概念図である。ＮＢＤＶプロセスにおいて使用される空間的隣接ブロックが、ＨＥＶＣにおけるマージモードで使用されるものと同じであることに留意されたい。したがって、少なくともいくつかの例では、ＮＢＤＶプロセスにおいて空間的隣接ブロックを処理するとき、追加のメモリアクセスは必要とされない。
【００８１】
[0096]いくつかの例では、ＮＢＤＶプロセスにおいて時間的隣接ブロックを検査するために、ビデオコーダは最初に、候補ピクチャリストを生成するための構成プロセスを実施し得る。現在ビューからの２つまでの参照ピクチャ（すなわち、現在コーディングされているピクチャを含むビュー）は、候補ピクチャとして扱われ得る。コロケートされた参照ピクチャ（すなわち、コロケートピクチャ）が最初に候補ピクチャリストへ挿入され、候補ピクチャの残り（すなわち、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１の中の参照ピクチャのすべて）が、参照インデックスの昇順でそれに続く。
【００８２】
[0097]現在ピクチャの現在スライスがＢスライス（すなわち、インター予測ＰＵを双方向に含むことが許容されるスライス）である場合、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるのか、それともＲｅｆＰｉｃＬｉｓｔ１からのものであるのかを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダの中でシグナリングし得る。言い換えると、ＴＭＶＰの使用が現在スライスに対して有効にされ、現在スライスがＢスライス（たとえば、インター予測ＰＵを双方向に含むことが許容されるスライス）であるとき、ビデオエンコーダ２０は、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０の中にあるのか、それともＲｅｆＰｉｃＬｉｓｔ１の中にあるのかを示すために、シンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）を、スライスヘッダの中でシグナリングし得る。現在スライスがＢスライスでない場合、現在スライスがＩスライスである場合にはインター予測が許容されないので、また現在スライスがＰスライスである場合にはそのスライスのための参照ピクチャリストが１つだけしか存在しないので、ビデオエンコーダ２０が、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０の中にあるのか、それともＲｅｆＰｉｃＬｉｓｔ１の中にあるのかを示すためのシンタックス要素をシグナリングすることは不必要であり得る。ビデオデコーダ３０がコロケートピクチャを含む参照ピクチャリストを識別した後、ビデオデコーダ３０は、識別された参照ピクチャリストの中のピクチャ（すなわち、コロケートピクチャ）を識別するために、スライスヘッダの中でシグナリングされ得る、別のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）を使用し得る。すなわち、参照ピクチャリストが識別された後、スライスヘッダの中でシグナリングされるｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが、参照ピクチャリストの中のピクチャを識別するために使用され得る。
【００８３】
[0098]両方の参照ピクチャリストの中で同じ参照インデックスを有する２つの参照ピクチャが利用可能であるとき、コロケートピクチャの同じ参照ピクチャリストの中の参照ピクチャは、他の参照ピクチャに先行する。候補ピクチャリストの中の各候補ピクチャに対して、ビデオコーダは、時間的隣接ブロックとしての中心位置をカバーするコロケート領域のブロックを決定し得る。
【００８４】
[0099]ブロックがビュー間動き予測を用いてコーディングされるとき、ビデオコーダは、異なるビューの中の対応するブロックを選択するための視差ベクトルを導出することを必要とすることがある。暗黙的視差ベクトル（ＩＤＶ、または、導出視差ベクトルとも呼ばれる）は、ビュー間動き予測において導出された視差ベクトルと呼ばれることがある。たとえブロックが動き予測を用いてコーディングされるとしても、導出視差ベクトルは、後続のブロックをコーディングする目的のために破棄されない。
【００８５】
[0100]３Ｄ−ＨＴＭの少なくともいくつかの設計では、ＮＢＤＶプロセスは、時間的隣接ブロックの中の視差動きベクトルと、空間的隣接ブロックの中の視差動きベクトルと、次いでＩＤＶとを、順に検査する。ビデオコーダが視差動きベクトルまたはＩＤＶを見つけると、ビデオコーダは、ＮＢＤＶプロセスを終了する。
【００８６】
[0101]いくつかの例では、ビデオコーダがＮＢＤＶプロセスから視差ベクトルを導出すると、ビデオコーダは、参照ビューの深度マップ（すなわち、深度ビュー成分）から深度データを取り出すことによって、視差ベクトルをさらに改善する。改善プロセスは、深度指向ＮＢＤＶ（ＤｏＮＢＤＶ）と名付けられ、以下の２つのステップを含み得る。第１に、ベースビューなどの、前にコーディングされた参照深度ビューにおける導出された視差ベクトルによって、対応する深度ブロックを位置特定し、対応する深度ブロックのサイズは、現在ＰＵのサイズと同じである。第２に、対応する深度ブロックの４つのコーナーピクセルの中から１つの深度値を選択し（Ｃｈａｎｇら、「３Ｄ−ＣＥ２．ｈ  ｒｅｌａｔｅｄ：Ｓｉｍｐｌｉｆｉｅｄ  ＤＶ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ＤｏＮＢＤＶ  ａｎｄ  ＢＶＳＰ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第４回会合、仁川、韓国、２０１３年４月２０日〜２６日、文書番号ＪＣＴ３Ｖ−Ｄ０１３８（これ以降、「ＪＣＴ３Ｖ−Ｄ０１３８」）の採用に起因する）、選択された深度値を、改善された視差ベクトルの水平成分に変換する。視差ベクトルの垂直成分は、不変である。ＪＣＴ３Ｖ−Ｄ０１３８は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝８２３において入手可能である。
【００８７】
[0102]３Ｄ−ＨＥＶＣでは、マージ候補リストのための構成プロセスは、ＨＥＶＣにおいて使用されるマージ候補リストのための構成プロセスと異なる。たとえば、ＮＢＤＶプロセスまたはＤｏＮＢＤＶから導出された視差ベクトルに基づいて、ビデオコーダは、利用可能な場合、新しい動きベクトル候補（すなわち、ビュー間予測動きベクトル候補（ＩＰＭＶＣ））をＡＭＶＰおよびスキップ／マージモードに追加し得る。言い換えれば、ビデオコーダは、マージ候補リストまたはＡＭＶＰ候補リストの中にＩＰＭＶＣを含み得る。ＩＰＭＶＣは、参照ビューの中の参照ブロックの動き情報を規定し得る。たとえば、ＩＰＭＶＣは、１つまたは複数の時間的動きベクトル、ならびに予測方向インジケータおよび参照インデックスを規定し得る。
【００８８】
[0103]マージ／スキップモードに関して、ビデオコーダは、以下のステップによってビュー間予測動きベクトルを導出し得る。第１に、ビデオコーダは、同じアクセスユニットの参照ビューの中の現在ＰＵ／ＣＵの対応するブロックを、視差ベクトルによって位置特定し得る。第２に、対応するブロックがイントラコーディングされず、ビュー間予測されず、それの参照ピクチャが現在ＰＵ／ＣＵの同じ参照ピクチャリストの中の１つのエントリのものに等しいピクチャ順序カウント（ＰＯＣ）を有する場合、ビデオコーダは、参照インデックスをＰＯＣに基づいて変換した後、それの動き情報（予測方向、参照ピクチャ、および動きベクトル）をビュー間予測動きベクトルとなるように導出し得る。
【００８９】
[0104]図４は、ビュー間予測動きベクトル候補の導出プロセスの一例を示す。特に、図４は、マージ／スキップモードのためのビュー間予測動きベクトル候補の導出を示す概念図である。図４の例では、現在ＰＵ４０は、時間インスタンスＴ１においてビューＶ１の中に出現する。現在ＰＵ４０のための参照ＰＵ４２は、現在ＰＵ４０と異なるビュー（すなわち、ビューＶ０）の中に、現在ＰＵ４０と同じ時間インスタンス（すなわち、時間インスタンスＴ１）において出現する。図４の例では、参照ＰＵ４２は、双方向にインター予測される。したがって、参照ＰＵ４２は、第１の動きベクトル４４と第２の動きベクトル４６とを有する。動きベクトル４４は、参照ピクチャ４８の中での位置を示す。参照ピクチャ４８は、ビューＶ０の中に時間インスタンスＴ０において出現する。動きベクトル４６は、参照ピクチャ５０中での位置を示す。参照ピクチャ５０は、ビューＶ０の中に時間インスタンスＴ３において出現する。
【００９０】
[0105]ビデオコーダは、参照ＰＵ４２の動き情報に基づいて、現在ＰＵ４０のマージ候補リストに含めるためのＩＰＭＶＣを生成し得る。ＩＰＭＶＣは、第１の動きベクトル５２と第２の動きベクトル５４とを有し得る。動きベクトル５２は動きベクトル４４に整合し、動きベクトル５４は動きベクトル４６に整合する。ＩＰＭＶＣの第１の参照インデックスが、参照ピクチャ４８と同じ時間インスタンス（すなわち、時間インスタンスＴ０）において出現する参照ピクチャ（すなわち、参照ピクチャ５６）の、現在ＰＵ４０に関するＲｅｆＰｉｃＬｉｓｔ０の中での位置を示すように、ビデオコーダはＩＰＭＶＣを生成する。図４の例では、参照ピクチャ５６は、現在ＰＵ４０に関するＲｅｆＰｉｃＬｉｓｔ０の中の第１の位置（すなわち、Ｒｅｆ０）において出現する。さらに、ＩＰＭＶＣの第２の参照インデックスが、参照ピクチャ５０と同じ時間インスタンスにおいて出現する参照ピクチャ（すなわち、参照ピクチャ５８）の、現在ＰＵ４０に関するＲｅｆＰｉｃＬｉｓｔ１の中での位置を示すように、ビデオコーダはＩＰＭＶＣを生成する。したがって、図４の例では、ＩＰＭＶＣのＲｅｆＰｉｃＬｉｓｔ０参照インデックスは、０に等しくあり得る。図４の例では、参照ピクチャ５９は、現在ＰＵ４０に関するＲｅｆＰｉｃＬｉｓｔ１の中の第１の位置（すなわち、Ｒｅｆ０）において出現し、参照ピクチャ５８は、現在ＰＵ４０に関するＲｅｆＰｉｃＬｉｓｔ１の中の第２の位置（すなわち、Ｒｅｆ１）において出現する。したがって、ＩＰＭＶＣのＲｅｆＰｉｃＬｉｓｔ１参照インデックスは、１に等しくあり得る。
【００９１】
[0106]したがって、図４の例では、視差ベクトルは、現在コーディングされているビュー（ビュー１、すなわちＶ１）の中の現在ＰＵ４０に対する異なるビュー（たとえば、ビュー０、すなわちＶ０）の中で、対応するブロック４２を見つけることによって計算される。対応するブロック４２がイントラコーディングされず、ビュー間予測されず、それの参照ピクチャが、現在ＰＵ４０の参照ピクチャリストの中にあるＰＯＣ値（たとえば、図４に示されるような、Ｒｅｆ０，リスト０、Ｒｅｆ０，リスト１、Ｒｅｆ１，リスト１）を有する場合、対応するブロック４２のための動き情報は、ビュー間予測動きベクトルとして使用される。ビデオコーダは、ＰＯＣに基づいて参照インデックスをスケーリングし得る。
【００９２】
[0107]さらに、ブロック（たとえば、ＰＵ）に関するマージング候補リスト（または、いくつかの例では、ＡＭＶＰ候補リスト）を生成すると、ビデオコーダは、ブロックの視差ベクトルを、ビュー間視差動きベクトル候補（ＩＤＭＶＣ）へ変換し得る。ＩＤＭＶＣは、ブロックの視差ベクトルを規定し得る。ビデオコーダは、ＩＤＭＶＣをマージ候補リスト（または、いくつかの例では、ＡＭＶＰ候補リスト）へ、ＩＰＭＶＣと異なる位置において追加し得る。代替的に、いくつかの例では、ＩＤＭＶＣが利用可能であるとき、ビデオコーダは、ＩＤＭＶＣをマージ候補リスト（または、いくつかの例では、ＡＭＶＰ候補リスト）へ、ＩＰＭＶＣと同じ位置において追加し得る。これに関連して、ＩＰＭＶＣまたはＩＤＭＶＣのいずれかは、「ビュー間候補」と呼ばれることがある。いくつかの例では、マージ／スキップモードにおいて、ビデオコーダは常に、利用可能な場合、ＩＰＭＶＣをマージ候補リストへ、すべての空間的および時間的マージング候補の前に挿入する。いくつかのそのような例では、ビデオコーダは、Ａ0から導出された空間的マージング候補の前にＩＤＭＶＣを挿入し得る。
【００９３】
[0108]Ｔｈｉｒｕｍａｌａｉら、「Ｍｅｒｇｅ  ｃａｎｄｉｄａｔｅｓ  ｄｅｒｉｖａｔｉｏｎ  ｆｒｏｍ  ｖｅｃｔｏｒ  ｓｈｉｆｔｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第５回会合、ウィーン、オーストラリア、２０１３年７月２７日〜８月２日、文書番号ＪＣＴ３Ｖ−Ｅ０１２６（これ以降、「ＪＣＴ３Ｖ−Ｅ０１２６」）は、ベクトルシフティングからのマージ候補導出を記載する。ＪＣＴ３Ｖ−Ｅ０１２６は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝１１４０において入手可能である。ＪＣＴ３Ｖ−Ｅ０１２６の採用に起因して、「シフト候補」または「シフトＩｖＭＶＣ」と名付けられたもう１つの候補が、シフト視差ベクトルを用いて導出され得る。そのような候補は、参照ビューの中の参照ブロックからシフト視差ベクトルを用いて導出されるＩＰＭＶＣ、または視差動きベクトルもしくはＩＤＭＶＣを含む第１の利用可能な空間的マージング候補から導出されるＩＰＭＶＣであり得る。追加の候補を生成することおよびマージ候補リストへの挿入のための詳細なステップが、次のように説明される。
【００９４】
[0109]第１に、ビデオコーダは、視差ベクトルＤＶを、（（ＰｕＷｉｄｔｈ／２＊４＋４），（ＰｕＨｅｉｇｈｔ／２＊４＋４））だけシフトする。ビデオコーダは、シフトＩｖＭＣ候補を参照ビューから導出するために、ＤＶを使用する。ここで、現在ＰＵのサイズは、ＰｕＷｉｄｔｈ×ＰｕＨｅｉｇｈｔである。シフトＩｖＭＶＣが利用可能である場合、ビデオコーダは、ステップ２（すなわち、以下に記載される第２のステップ）をスキップしてよく、このシフトＩｖＭＣが視差ベクトルシフティングを伴わないＩｖＭＣと同一でない場合、ビデオコーダは、シフトＩｖＭＣをマージ候補リストへ、時間的マージング候補の直前に挿入する。
【００９５】
[0110]第２に、ビデオコーダは、視差シフト動きベクトル（ＤＳＭＶ）として示される候補を導出し得る。ビデオコーダは、ＤＳＭＶを追加の候補として設定し得る。ＤＳＭＶが利用可能である場合、ビデオコーダは、ＤＳＭＶをマージ候補リストへ、シフトＩｖＭＣと同じ位置において直接挿入し得る。ビデオコーダは、次のようにＤＳＭＶを導出し得る。第１に、ビデオコーダは、空間的隣接ブロックからのＲｅｆＰｉｃＬｉｓｔ０に対応する第１の利用可能な視差動きベクトル（ＤＭＶ）を識別する。第２に、ＤＭＶが利用可能である場合、ビデオコーダは、リスト０の中の動きベクトルの水平成分を、４だけシフトされたＤＭＶに設定し、ビデオコーダは、ＢＶＳＰが有効にされているか否かに応じて、動きベクトルの垂直成分を不変に保つか、または動きベクトルの垂直成分を０にリセットする。リスト１の中の参照インデックスおよび動きベクトルは、直接継承される。他の場合（すなわち、ＤＭＶが利用可能でない場合）、ビデオコーダは、リスト０およびリスト１の中の動きベクトルの水平成分を、４だけシフトされたＤＶに設定し、ビデオコーダは、リスト０とリスト１の両方の中の動きベクトルの垂直成分を０に設定する。
【００９６】
[0111]Ｔｉａｎら、「ＣＥ１．ｈ：Ｂａｃｋｗａｒｄ  Ｖｉｅｗ  Ｓｙｎｔｈｅｓｉｓ  Ｐｒｅｄｉｃｔｉｏｎ  ｕｓｉｎｇ  Ｎｅｉｇｈｂｏｕｒｉｎｇ  Ｂｌｏｃｋｓ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＣＴ１／ＳＣ２９／ＷＧ１１の３Ｄビデオコーディング拡張開発共同研究部会、第３回会合、ジュネーブ、スイス、２０１３年１月１７日〜２３日、文書番号ＪＣＴ３Ｖ−Ｃ０１５２（これ以降、「ＪＣＴ３Ｖ−Ｃ０１５２」）は、隣接ブロックを使用する後方ビュー合成予測を記載する。ＪＣＴ３Ｖ−Ｃ０１５２は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝５９４において入手可能である。ＪＣＴ３Ｖ−Ｃ０１５２において提案されているような後方ワーピングＶＳＰ手法が、第３回ＪＣＴ−３Ｖ会合において採用された。ＪＣＴ３Ｖ−Ｃ０１５２において提案されているようなこの後方ワーピングＶＳＰの基本的な考えは、３Ｄ−ＡＶＣにおけるブロックベースＶＳＰと同じである。これらの２つの技法の両方は、動きベクトル差分を送信することを避け、より正確な動きベクトルを使用するために、後方ワーピングＶＳＰとブロックベースＶＳＰとを使用する。実装の詳細は、異なるプラットフォームによって異なる。以下の段落は、「ＢＶＳＰ」という用語を、３Ｄ−ＨＥＶＣにおける後方ワーピングＶＳＰ手法を示すために使用する。
【００９７】
[0112]３Ｄ−ＨＴＭのいくつかの設計では、ＢＶＳＰモードは、スキップモードまたはマージモードのいずれかでのインターコードブロックのみに対してサポートされる。ＢＶＳＰモードは、ＡＭＶＰモードでコーディングされるブロックに対して許容されない。ＢＶＳＰモードの使用を示すためのフラグを送信する代わりに、１つの追加のマージング候補（すなわち、ＢＶＳＰマージング候補）が導入され、各候補は１つのＢＶＳＰフラグに関連付けられる。上記で示したように、ビデオエンコーダ２０は、マージインデックス（たとえば、ｍｅｒｇｅ＿ｉｄｘ）をビットストリームの中でシグナリングし得、ビデオデコーダ３０は、マージインデックスをビットストリームから取得し得る。復号されたマージインデックスがＢＶＳＰマージング候補に相当するとき、現在ＰＵはＢＶＳＰモードを使用する。さらに、復号されたマージインデックスがＢＶＳＰマージング候補に相当するとき、現在ＰＵ内の各サブブロックに対して、ビデオコーダは、深度参照ビューの中の深度値を変換することによって、サブブロックに関する視差動きベクトルを導出し得る。
【００９８】
[0113]ＢＶＳＰフラグの設定は、次のように定義され得る。空間的マージング候補を導出するために使用される空間的隣接ブロックがＢＶＳＰモードを用いてコーディングされるとき、関連した動き情報は、現在ブロックによって従来のマージングモードとして継承される。加えて、この空間的マージング候補は、１に等しいＢＶＳＰフラグを用いてタグ付けされる。新たに導入されたＢＶＳＰマージング候補について、ＢＶＳＰフラグは１に設定される。他のすべてのマージング候補について、関連したＢＶＳＰフラグは０に設定される。
【００９９】
[0114]上記で示したように、３Ｄ−ＨＥＶＣにおいて、ビデオコーダは、新しい候補（すなわち、ＢＶＳＰマージング候補）を導出し得、ＢＶＳＰマージング候補をマージ候補リストへ挿入し得る。ビデオコーダは、ＢＶＳＰマージング候補に対して対応する参照インデックスと動きベクトルとを、以下の方法によって設定し得る。第１に、ビデオコーダは、導出された視差ベクトルのビューインデックス（ｒｅｆＶＩｄｘＬＸによって示される）を、ＮＢＤＶから取得し得る。第２に、ビデオコーダは、ｒｅｆＶＩｄｘＬＸに等しいビュー順序インデックスを有する参照ピクチャに関連付けられた参照ピクチャリストＲｅｆＰｉｃＬｉｓｔＸ（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１のいずれか）を取得し得る。ビデオコーダは、対応する参照インデックスとＮＢＤＶプロセスからの視差ベクトルとを、ＲｅｆＰｉｃＬｉｓｔＸの中のＢＶＳＰマージング候補の動き情報として使用し得る。
【０１００】
[0115]第３に、現在スライスがＢスライスの場合、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔＸ以外（すなわち、Ｙが１−ＸであるＲｅｆＰｉｃＬｉｓｔＹ）の参照ピクチャリストの中で、ｒｅｆＶＩｄｘＬＸに等しくないビュー順序インデックス（ｒｅｆＶＩｄｘＬＹによって示される）を有するビュー間参照ピクチャの利用可能性を検査し得る。そのような異なるビュー間参照ピクチャが見つかった場合、ビデオコーダは双予測ＶＳＰを適用する。一方、ビデオコーダは、異なるビュー間参照ピクチャの対応する参照インデックスと、ＮＢＤＶプロセスからのスケーリングされた視差ベクトルとを、ＲｅｆＰｉｃＬｉｓｔＹの中のＢＶＳＰマージング候補の動き情報として使用する。ビデオコーダは、ｒｅｆＶＩｄｘＬＸが現在ブロックの深度情報に等しいビュー順序インデックスを有するビューからの深度ブロックを使用し得（テクスチャ優先のコーディング順序のケースでは）、ビデオコーダは、後方ワーピングプロセスを介して、さらに最終的な後方ＶＳＰ予測子を獲得するように重み付けられた、異なる２つのビュー間参照ピクチャ（それぞれが１つの参照ピクチャリストからの）にアクセスし得る。他の場合、ビデオコーダは、予測のための参照ピクチャリストとしてＲｅｆＰｉｃＬｉｓｔＸを用いた単予測ＶＳＰを適用する。
【０１０１】
[0116]３Ｄ−ＨＴＭでは、テクスチャ優先のコーディングが、共通のテスト条件において適用される。したがって、対応する非ベース深度ビューは、１つの非ベーステクスチャビューを復号するときに利用不可能である。したがって、深度情報が、ＢＶＳＰを実行するために推定および使用される。ブロックに関する深度情報を推定するために、ビデオコーダは、最初に隣接ブロックから視差ベクトルを導出し得、次いで、参照ビューから深度ブロックを取得するために、導出された視差ベクトルを使用し得る。３Ｄ−ＨＴＭ  ８．０テストモデルでは、ＮＢＤＶ（隣接ブロック視差ベクトル）として知られる視差ベクトル予測子を導出するためのプロセスが存在する。（ｄｖx，ｄｖy）はＮＢＤＶ機能から識別された視差ベクトルを示し、現在ブロック位置は（ｂｌｏｃｋx，ｂｌｏｃｋy）である。
【０１０２】
[0117]単予測ＢＶＳＰのいくつかの例では、ビデオコーダは、参照ビューの深度画像の中で、左上位置（ｂｌｏｃｋx＋ｄｖx，ｂｌｏｃｋy＋ｄｖy）を有する深度ブロックをフェッチ（fetch）する。現在ブロックは最初に、それぞれがＷ＊Ｈとしての同じサイズを有するいくつかのサブブロックへ分割される。サイズがＷ＊Ｈに等しい各サブブロックに対して、ビデオコーダは、対応する深度サブブロックを、フェッチされた深度ブロック内で使用し、深度サブブロックの４つのコーナーピクセルから最大の深度値を視差動きベクトルに変換する。ビデオコーダは、次いで、導出視差動きベクトルを、各サブブロックに対して動き補償のために使用する。図５は、参照ビューからの深度ブロックが位置特定され、次いで、ＢＶＳＰ（「ＢＶＳＰ予測」とも呼ばれる）のために使用されるやり方の３つのステップを示す。
【０１０３】
[0118]詳細には、図５は、ＢＶＳＰ予測を実行するための参照ビューからの深度ブロック導出を示す概念図である。双予測ＢＶＳＰのいくつかの例では、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１の中に、異なるビューからの複数のビュー間参照ピクチャがあるとき、ビデオコーダは双予測ＶＳＰを適用する。すなわち、ビデオコーダは、上記で説明されるように、各参照リストから２つのＶＳＰ予測子を生成し得る。ビデオコーダは、次いで、最終的なＶＳＰ予測子を取得するために、２つのＶＳＰ予測子を平均し得る。
【０１０４】
[0119]図５の例では、ビデオコーダは現在テクスチャピクチャ６０をコーディングしている。現在テクスチャピクチャ６０が合成参照テクスチャピクチャ６２に依存するので、現在テクスチャピクチャ６０は、「依存テクスチャピクチャ」とラベル付けされる。言い換えれば、ビデオコーダは、現在テクスチャピクチャ６０を復号するために、参照テクスチャピクチャ６２（または、それの部分）を合成する必要があり得る。参照テクスチャピクチャ６２および現在テクスチャピクチャ６０は、同じアクセスユニットの中にあるが、異なるビューの中にある。
【０１０５】
[0120]参照テクスチャピクチャ６２（または、それの部分）を合成するために、ビデオコーダは、現在テクスチャピクチャ６０のブロック（すなわち、ビデオユニット）を処理し得る。図５の例では、ビデオコーダは、現在ブロック６４を処理している。ビデオコーダが現在ブロック６４を処理するとき、ビデオコーダは、現在ブロック６４に関する視差ベクトルを導出するために、ＮＢＤＶ導出プロセスを実行し得る。たとえば、図５の例では、ビデオコーダは、現在ブロック６４に隣接するブロック６８の視差ベクトル６６を識別する。視差ベクトル６６の識別は、図５のステップ１として示される。さらに、図５の例では、ビデオコーダは、視差ベクトル６６に基づいて、現在ブロック６４の視差ベクトル６９を決定する。たとえば、視差ベクトル６９は、視差ベクトル６６のコピーであり得る。視差ベクトル６６をコピーすることは、図５のステップ２として示される。
【０１０６】
[0121]ビデオコーダは、現在ブロック６４の視差ベクトル６９に基づいて、参照深度ピクチャ７２の中の参照ブロック７０を識別し得る。参照深度ピクチャ７２、現在テクスチャピクチャ６０、および参照テクスチャピクチャ６２は各々、同じアクセスユニットの中にあり得る。参照深度ピクチャ７２および参照テクスチャピクチャ６２は、同じビューの中にあり得る。ビデオコーダは、現在ブロック６４のテクスチャサンプル値および参照ブロック７０の深度サンプル値に基づいて、参照テクスチャピクチャ６２のテクスチャサンプル値を決定し得る。テクスチャサンプル値を決定するプロセスは、後方ワーピングと呼ばれることがある。３Ｄ−ＨＥＶＣテストモデル３のセクションＨ．８．５．２．２．７は、後方ワーピングのプロセスを記載する。後方ワーピングは、図５のステップ３に示される。このようにして、図５は、参照ビューからの深度ブロックが位置特定され、次いで、ＢＶＳＰ予測のために使用されるやり方の３つのステップを示す。
【０１０７】
[0122]ＢＶＳＰにおいて使用される動き補償サイズ（すなわち、上記で説明されたＷ＊Ｈ）は、８×４または４×８であり得る。動き補償サイズを決定するために、以下の規則が適用される。各８×８ブロックに対して、ビデオコーダは、対応する８×８深度ブロックの４つのコーナーを検査し、
ｉｆ（ｖｄｅｐｔｈ［ＴＬ］＜ｖｄｅｐｔｈ［ＢＲ］？０：１）！＝（ｖｄｅｐｔｈ［ＴＲ］＜ｖｄｅｐｔｈ［ＢＬ］？０：１）
４ｘ８  分割を使用（Ｗ＝４，Ｈ＝８）
ｅｌｓｅ
８ｘ４  分割を使用（Ｗ＝８，Ｈ＝４）
図６は、１つの８×８深度ブロックの４つのコーナーピクセルを示す概念図である。
【０１０８】
[0123]３Ｄ−ＨＥＶＣに関するマージ候補の最大数およびマージリスト構成プロセスが、以下の段落で説明される。３Ｄ−ＨＥＶＣのいくつかのバージョンでは、マージリストの中の候補の合計数は６までであり、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄが、５から減算されたマージ候補の最大数を規定するために、スライスヘッダの中でシグナリングされる。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、両端値を含む０から５の範囲の中にある。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、５から減算されたスライスの中でサポートされるマージング動きベクトル予測子（ＭＶＰ）候補（すなわち、マージング候補）の最大数を規定する。ビデオコーダは、マージングＭＶＰ候補の最大数（すなわち、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ）を、
ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］
（Ｈ−１）
として算出し得る。
３Ｄ−ＨＥＶＣのそのようなバージョンにおいて、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄが両端値を含む０から（５＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］）の範囲の中にあるように、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄの値が制限されなければならない。
【０１０９】
[0124]さらに、３Ｄ−ＨＥＶＣのそのようなバージョンでは、ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｌａｙｅｒＩｄ］シンタックス要素は、ビュー間動きパラメータ予測が、ｎｕｈ＿ｌａｙｅｒ＿ｉｄがｌａｙｅｒＩｄに等しいレイヤの復号プロセスにおいて使用されるかどうかを示す。０に等しいｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｌａｙｅｒＩｄ］は、ビュー間動きパラメータ予測が、ｎｕｈ＿ｌａｙｅｒ＿ｉｄがｌａｙｅｒＩｄに等しいレイヤに対して使用されないことを規定する。１に等しいｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｌａｙｅｒＩｄ］は、ビュー間動きパラメータ予測が、ｎｕｈ＿ｌａｙｅｒ＿ｉｄがｌａｙｅｒＩｄに等しいレイヤのために使用され得ることを規定する。存在しないとき、ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｌａｙｅｒＩｄ］の値は、０に等しいものと推定されなければならない。
【０１１０】
[0125]３Ｄ−ＨＥＶＣにおけるマージング候補リスト構成プロセスは、次のように定義され得る。
１．ＩＰＭＶＣ挿入：ビュー間動き予測が適用されるとき、ビデオコーダは、上述された手順によってＩＰＭＶＣを導出する。ＩＰＭＶＣが利用可能である場合、ビデオコーダは、ＩＰＭＶＣをマージリスト（すなわち、マージ候補リスト）へ挿入する。
２．３Ｄ−ＨＥＶＣにおける空間的マージング候補のための導出プロセスおよびＩＤＭＶＣ挿入
ビデオコーダは、以下の順序、すなわちＡ1、Ｂ1、Ｂ0、Ａ0、またはＢ2の順序で、空間的隣接ＰＵの動き情報を検査する。さらに、ビデオコーダは、以下の手順によって、制約されたプルーニングを実行し得る。
−  Ａ1（すなわち、空間的隣接ＰＵから導出されるマージ候補Ａ1）およびＩＰＭＶＣが、同じ動きベクトルと、同じ参照インデックスとを有する場合、ビデオコーダは、Ａ1を候補リスト（すなわち、マージ候補リスト）へ挿入しない。他の場合、ビデオコーダは、Ａ1をリスト（すなわち、マージ候補リスト）へ挿入する。
−  Ｂ1およびＡ1／ＩＰＭＶＣが、同じ動きベクトルと、同じ参照インデックスとを有する場合、ビデオコーダは、Ｂ1（すなわち、空間的隣接ＰＵから導出されるマージ候補Ｂ1）を候補リスト（すなわち、マージ候補リスト）へ挿入しない。他の場合、ビデオコーダは、Ｂ1をリスト（すなわち、マージ候補リスト）へ挿入する。
−  Ｂ0（すなわち、空間的隣接ＰＵから導出されるマージ候補Ｂ0）が利用可能である場合、ビデオコーダは、Ｂ0を候補リスト（すなわち、マージ候補リスト）に追加する。
−  ビュー間動き予測が適用されるとき、ビデオコーダは、上述された手順によってＩＤＭＶＣを導出する。ＩＤＭＶＣが利用可能でありＩＤＭＶＣがＡ1およびＢ1から導出される候補と異なる場合、ビデオコーダは、ＩＤＭＶＣを候補リスト（すなわち、マージ候補リスト）へ挿入する。
−  ＢＶＳＰが全ピクチャに対して、または現在スライスに対して有効にされている場合、ビデオコーダは、ＢＶＳＰマージング候補をマージ候補リストへ挿入する。
−  Ａ0（すなわち、空間的隣接ＰＵから導出されるマージ候補Ａ0）が利用可能である場合、ビデオコーダは、Ａ0を候補リスト（すなわち、マージ候補リスト）に追加する。
−  Ｂ2（すなわち、空間的隣接ＰＵから導出されるマージ候補Ｂ2）が利用可能である場合、ビデオコーダは、Ｂ2を候補リスト（すなわち、マージ候補リスト）に追加する。
−  ビュー間動き予測が適用されるとき、ビデオコーダは、利用可能な場合、上記で説明したように、シフトされた候補（すなわち、ＤＳＭＶ）を挿入する。
３．時間的マージング候補のための導出プロセス
時間的マージング候補のための導出プロセスは、ＨＥＶＣにおける時間的マージング候補導出プロセスと類似であり、その場合、コロケートＰＵの動き情報が利用される。ただし、時間的マージング候補の目標参照インデックスは、０に固定される代わりに変更され得る。時間的マージング候補の目標参照インデックスは、ビデオコーダが時間的マージング候補の基礎とする参照ピクチャの参照インデックスである。コロケートＰＵの動きベクトルがビュー間参照ピクチャを指し示す一方、０に等しい目標参照インデックスが時間的参照ピクチャ（すなわち、現在ＰＵと同じビューの中の参照ピクチャ）に対応するとき、ビデオコーダは、目標参照インデックスを、参照ピクチャリストの中のビュー間参照ピクチャの第１のエントリに対応するインデックスに変更する。言い換えれば、ビデオコーダは、目標参照インデックスが参照ピクチャリストの中の第１のビュー間参照ピクチャを示すように、目標参照インデックスを変更する。ただし、コロケートＰＵの動きベクトルが時間的参照ピクチャを指し示す一方、０に等しい目標参照インデックスがビュー間参照ピクチャに対応するとき、ビデオコーダは、目標参照インデックスを、参照ピクチャリストの中の時間的参照ピクチャの第１のエントリに対応する別のインデックスに変更する。言い換えれば、ビデオコーダは、目標参照インデックスが参照ピクチャリストの中の第１の時間的参照ピクチャを示すように、目標参照インデックスを変更する。
４．３Ｄ−ＨＥＶＣにおける結合双予測マージング候補のための導出プロセス
上の３つのステップから導出される候補の合計数が候補の最大数よりも少ない場合、ビデオコーダは、ＨＥＶＣにおいて定義されるものと同じプロセスを、２つの変更を伴って実行する。すなわち、
・第１に、結合双予測マージング候補を取得する条件は、第１／第２の候補に関連付けられたＢＶＳＰフラグの検査を追加することによって変更される。
・第２に、ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘの仕様が修正される。ｃｏｍｂＩｄｘ、ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘの間の関係は図７で定義され、それは３Ｄ−ＨＥＶＣにおいてｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘの仕様を提供する表である。
５．ゼロ動きベクトルマージング候補のための導出プロセス
−  ビデオコーダは、ゼロ動きベクトルマージング候補を導出するために、ＨＥＶＣにおいて定義されるもの（および、上述されたもの）と同じ手順を実行する。
【０１１１】
[0126]３Ｄ−ＨＥＶＣにおける結合双予測マージング候補の導出プロセスの設計は、１つまたは複数の潜在的な問題を有し得る。たとえば、３Ｄ−ＨＥＶＣにおける結合双予測マージング候補の導出プロセスの現在の設計は、結合双予測マージング候補を構成するために使用される第１および第２の既存のマージ候補のＢＶＳＰフラグを検査するために、さらなる論理ユニットが追加されることを必要とし得る。しかしながら、ＢＶＳＰフラグのさらなる検査は、コーディング効率の点で助けとならない。したがって、ＢＶＳＰフラグのさらなる検査は、複雑さを増大させる。
【０１１２】
[0127]３Ｄ−ＨＥＶＣにおける結合双予測マージング候補の導出プロセスと関連した潜在的な問題の別の例では、結合双予測マージング候補のＨＥＶＣ導出プロセスを直接再使用することは、予測できない復号プロセスをもたらし得る。結合双予測マージング候補のＨＥＶＣ導出プロセスは、新しい候補を生成するために４個までのマージ候補のみを採用することができる。しかしながら、このプロセスが３Ｄ−ＨＥＶＣにおいて直接使用される場合、５個のマージ候補がこのプロセスの入力として使用されるケースが存在し得る。４個までのマージ候補が存在するとき、１２通りの可能な組合せのみが利用可能であり、したがって、それらはこのプロセスにおいて表で定義される。しかしながら、５個のマージ候補が利用可能であるとき、２０通りの可能な組合せが存在し得、現在の表（すなわち、上の表１）は、その多数の組合せをサポートしない。
【０１１３】
[0128]本開示の技法のうちの１つまたは複数は、３Ｄ−ＨＥＶＣにおける結合双予測マージング候補の導出プロセスに関する。本開示の例示的な技法によれば、３Ｄ−ＨＥＶＣにおける結合双予測マージング候補の導出プロセスの設計は、ＨＥＶＣにおいて使用される設計によって置き換えられる。したがって、結合双予測マージング候補導出プロセスにおいてＢＶＳＰフラグを検査する必要がない。言い換えれば、マージング候補のリストを生成するプロセスは、いかなるＢＶＳＰフラグを検査することもなく行われる。結合双予測マージング候補導出プロセスにおいてＢＶＳＰフラグを検査しないことは、著しい否定的な影響をコーディング効率に及ぼすことなく、符号化／復号プロセスの複雑さを低減し得る。
【０１１４】
[0129]このようにして、本開示は、３Ｄビデオと関連したデータをコーディングする方法を提供し得る。この方法は、マージングリスト導出プロセスに従って、３Ｄビデオと関連したビデオブロックをコーディングするために、マージ候補のリストを生成することを備え得る。リストは、１つまたは複数の双予測マージ候補を含む。３Ｄビデオのためのマージングリスト導出プロセスは、非３Ｄビデオと関連した同じマージングリスト導出プロセスに相当する。
【０１１５】
[0130]さらに、本開示の１つまたは複数の技法によれば、ＨＥＶＣにおいて結合双予測マージング候補の導出プロセスを呼び出すとき、単にスライスタイプがＢスライスに等しいことを検査する代わりに、別の条件も、すなわち、マージ候補リストへ挿入される利用可能なマージング候補の数が５よりも少ないはずであることも満たされなければならない。
【０１１６】
[0131]したがって、いくつかの例では、ビデオコーダは、３Ｄビデオと関連したデータをコーディングし得る。データをコーディングすることの一部として、ビデオコーダは、３Ｄビデオのビデオブロック（たとえば、ＰＵ）をコーディングするために、マージング候補のリストを生成し得る。マージング候補のリストを生成することの一部として、ビデオコーダは、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る。リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、ビデオコーダは、１つまたは複数の結合双予測マージング候補を導出し得る。この例では、１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、リストの中にすでにあるマージング候補のそれぞれのペア（たとえば、順序付けられたペア）に対応する。それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せである。第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリストの中のピクチャを指す。ビデオコーダは、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることができる。
【０１１７】
[0132]あるいは、いくつかの例では、結合双予測マージング候補の導出プロセスが呼び出される前に、マージングＭＶＰ候補の最大数、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、次のようにリセットされる。すなわち、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ。結合双予測マージング候補の導出プロセスが呼び出された後、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、３Ｄ−ＨＥＶＣにおけるような値、すなわち、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］に戻して設定される。ｎｕｈ＿ｌａｙｅｒ＿ｉｄは、レイヤ識別子を規定するシンタックス要素である。したがって、いくつかのそのような例では、１つまたは複数の結合双予測マージング候補を導出する前に、ビデオコーダは、マージング候補の最大数を、５−第１のシンタックス要素の値に等しくなるようにリセットし得る。第１のシンタックス要素は、５から減算されたスライスの中でサポートされるマージング候補の最大数を規定する。１つまたは複数の結合双予測マージング候補を導出した後、ビデオコーダは、マージング候補の最大数を、５−第１のシンタックス要素の値＋第２のシンタックス要素の値に設定し得、第２のシンタックス要素は、ビュー間動きパラメータ予測がレイヤの復号プロセスにおいて使用されるかどうかを示す。
【０１１８】
[0133]ＭａｘＮｕｍＭｅｒｇｅＣａｎｄが６に等しく、ＨＥＶＣにおける結合双予測マージング候補の導出プロセスが呼び出される前に５個の候補が存在するとき、ＨＥＶＣワーキングドラフト１０のサブクローズ８．５．３．２．４で規定されるように、ゼロ候補（参照インデックスおよび動きベクトル成分がすべて０）が常に生成されマージング候補リストへ挿入される。
【０１１９】
[0134]あるいは、ビデオコーダは、双予測マージング候補を決定するためのプロセスの呼出しの前にＭａｘＮｕｍＭｅｒｇｅＣａｎｄを５に設定し、ビデオコーダは、最初の４個の候補だけをこのプロセスの入力として見なす。ビデオコーダが双予測マージング候補を決定するためのプロセスを呼び出した後、ビデオコーダは、マージング候補リストの終わりにおいて利用可能な場合、新たに生成された双予測マージング候補を入れる。したがって、新たに生成された双予測マージング候補は、マージング候補リストの中の第４の候補の後に続き、ビデオコーダはそれを双予測マージング候補を決定するためのプロセスの入力の一部として見なさない。その後、この例では、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは６に戻し設定される。双予測マージング候補を決定するためのプロセスが新しい双予測マージング候補を提供しないとき、ビデオコーダは、ＨＥＶＣワーキングドラフト１０のサブクローズ８．５．３．２．４で規定されるように、ゼロ候補を生成し、ゼロ候補をマージング候補リストへ挿入する。ＨＥＶＣワーキングドラフト１０のサブクローズ８．５．３．２．４が、以下に転載される。
８．５．３．２．４  ゼロ動きベクトルマージング候補のための導出プロセス
このプロセスへの入力は、以下の通りである。
−  マージング候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ。
このプロセスの出力は、以下の通りである。
−  マージング候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｚｅｒｏＣａｎｄmの参照インデックスｒｅｆＩｄｘＬ０ｚｅｒｏＣａｎｄmおよびｒｅｆＩｄｘＬ１０ｚｅｒｏＣａｎｄm、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｚｅｒｏＣａｎｄmの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｚｅｒｏＣａｎｄmおよびｐｒｅｄＦｌａｇＬ１０ｚｅｒｏＣａｎｄm、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｚｅｒｏＣａｎｄmの動きベクトルｍｖＬ０ｚｅｒｏＣａｎｄmおよびｍｖＬ１０ｚｅｒｏＣａｎｄm。
変数ｎｕｍＲｅｆＩｄｘは、次のように導出される。
−  ｓｌｉｃｅ＿ｔｙｐｅがＰに等しい場合、ｎｕｍＲｅｆＩｄｘは、ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ０＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１＋１に等しく設定される。
−  他の場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しい場合）、ｎｕｍＲｅｆＩｄｘは、Ｍｉｎ（ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ０＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１＋１，ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ１＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１＋１）に等しく設定される。
ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄがＭａｘＮｕｍＭｅｒｇｅＣａｎｄよりも小さいとき、変数ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄはｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄに等しく設定され、変数ｚｅｒｏＩｄｘは０に等しく設定され、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄがＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しくなるまで以下のステップが繰り返される。
１．ゼロ動きベクトルマージング候補の参照インデックス、予測リスト利用フラグおよび動きベクトルの導出のために、以下のことが適用される。
−  ｓｌｉｃｅ＿ｔｙｐｅがＰに等しい場合、（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄ）に等しいｍを伴う候補ｚｅｒｏＣａｎｄmが、ｍｅｒｇｅＣａｎｄＬｉｓｔの終わりにおいて追加され、すなわち、ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ］はｚｅｒｏＣａｎｄmに等しく設定され、ｚｅｒｏＣａｎｄmの参照インデックス、予測リスト利用フラグ、および動きベクトルは次のように導出され、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄは１だけインクリメントされる。
ｒｅｆＩｄｘＬ０ｚｅｒｏＣａｎｄｍ＝（ｚｅｒｏＩｄｘ＜ｎｕｍＲｅｆＩｄｘ）？ｚｅｒｏＩｄｘ：０        （８−１２２）
ｒｅｆＩｄｘＬ１ｚｅｒｏＣａｎｄｍ＝‐１        （８−１２３）
ｐｒｅｄＦｌａｇＬ０ｚｅｒｏＣａｎｄｍ＝１        （８−１２４）
ｐｒｅｄＦｌａｇＬ１ｚｅｒｏＣａｎｄｍ＝０        （８−１２５）
ｍｖＬ０ｚｅｒｏＣａｎｄｍ［０］＝０        （８−１２６）
ｍｖＬ０ｚｅｒｏＣａｎｄｍ［１］＝０        （８−１２７）
ｍｖＬ１ｚｅｒｏＣａｎｄｍ［０］＝０        （８−１２８）
ｍｖＬ１ｚｅｒｏＣａｎｄｍ［１］＝０        （８−１２９）
ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＝ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＋１        （８−１３０）
−  他の場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しい場合）、（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄ）に等しいｍを伴う候補ｚｅｒｏＣａｎｄmが、ｍｅｒｇｅＣａｎｄＬｉｓｔの終わりにおいて追加され、すなわち、ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ］はｚｅｒｏＣａｎｄmに等しく設定され、ｚｅｒｏＣａｎｄmの参照インデックス、予測リスト利用フラグ、および動きベクトルは次のように導出され、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄは１だけインクリメントされる。
ｒｅｆＩｄｘＬ０ｚｅｒｏＣａｎｄｍ＝（ｚｅｒｏＩｄｘ＜ｎｕｍＲｅｆＩｄｘ）？ｚｅｒｏＩｄｘ：０        （８−１３１）
ｒｅｆＩｄｘＬ１ｚｅｒｏＣａｎｄｍ＝（ｚｅｒｏＩｄｘ＜ｎｕｍＲｅｆＩｄｘ）？ｚｅｒｏＩｄｘ：０        （８−１３２）
ｐｒｅｄＦｌａｇＬ０ｚｅｒｏＣａｎｄｍ＝１        （８−１３３）
ｐｒｅｄＦｌａｇＬ１ｚｅｒｏＣａｎｄｍ＝１        （８−１３４）
ｍｖＬ０ｚｅｒｏＣａｎｄｍ［０］＝０        （８−１３５）
ｍｖＬ０ｚｅｒｏＣａｎｄｍ［１］＝０        （８−１３６）
ｍｖＬ１ｚｅｒｏＣａｎｄｍ［０］＝０        （８−１３７）
ｍｖＬ１ｚｅｒｏＣａｎｄｍ［１］＝０        （８−１３８）
ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＝ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＋１        （８−１３９）
２．変数ｚｅｒｏＩｄｘは、１だけインクリメントされる。
【０１２０】
[0135]したがって、マージング候補の最大数（たとえば、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ）が６に等しいいくつかの例では、ビデオコーダは、１つまたは複数の双予測マージング候補のいずれかをリストに追加する前にマージング候補のリストの中に５個のマージング候補が存在すると決定することに応答して、ビデオコーダは、リストの中にゼロ候補を含めることができる。ゼロ候補の動きベクトル成分は０に等しく、ゼロ候補の参照インデックスは０に等しい。
【０１２１】
[0136]本開示の以下のセクションは、ＨＥＶＣのコンテキストにおける本開示の技法に一致するいくつかの例示的な実装の詳細を説明する。３Ｄ−ＨＥＶＣドラフトテキスト１のセクションへの変更が、以下に示される。ボールドまたはボールドイタリック体で示される様々な部分は、ＨＥＶＣのセクションへの追加部分に対応し得、二重角括弧によって囲まれたイタリック体を用いて示される部分（たとえば、［［テキスト］］）は、削除部分に対応し得る。本開示の技法は、いくつかの例では、ボールドで示される追加部分、および二重角括弧によって囲まれたイタリック体を用いて示される削除部分に対応し得る。
Ｈ．８．５．３．２．１  マージモードに関する輝度動きベクトルのための導出プロセス
このプロセスは、ｍｅｒｇｅ＿ｆｌａｇ［ｘＰｂ］［ｙＰｂ］が１に等しいときのみに呼び出され、その場合、（ｘＰｂ，ｙＰｂ）は、現在ピクチャの左上輝度サンプルに対する現在輝度予測ブロックの左上のサンプルを規定する。
このプロセスの入力は、以下の通りである。
−  現在ピクチャの左上輝度サンプルに対する現在輝度コーディングブロックの左上サンプルの輝度ロケーション（ｘＣｂ，ｙＣｂ）、
−  現在ピクチャの左上輝度サンプルに対する現在輝度予測ブロックの左上サンプルの輝度ロケーション（ｘＰｂ，ｙＰｂ）、
−  現在輝度コーディングブロックのサイズを規定する変数ｎＣｂＳ、
−  輝度予測ブロックの幅と高さとを規定する２つの変数ｎＰｂＷおよびｎＰｂＨ、
−  現在コーディングユニット内の現在予測ユニットのインデックスを規定する変数ｐａｒｔＩｄｘ。
このプロセスの出力は、以下の通りである。
−  輝度動きベクトルｍｖＬ０およびｍｖＬ１、
−  参照インデックスｒｅｆＩｄｘＬ０およびｒｅｆＩｄｘＬ１、
−  予測リスト利用フラグｐｒｅｄＦｌａｇＬ０およびｐｒｅｄＦｌａｇＬ１、
−  視差ベクトル利用可能性フラグｉｖｐＭｖＦｌａｇＬ０およびｉｖｐＭｖＦｌａｇＬ１、
−  現在ＰＵがビュー合成予測を使用してコーディングされているかどうかを規定するフラグｖｓｐＭｏｄｅＦｌａｇ。
ロケーション（ｘＯｒｉｇＰ，ｙＯｒｉｇＰ）ならびに変数ｎＯｒｉｇＰｂＷおよびｎＯｒｉｇＰｂＨは、（ｘＰｂ，ｙＰｂ）、ｎＰｂＷ、およびｎＰｂＨの値を記憶するために、次のように導出される。
（ｘＯｒｉｇＰ，ｙＯｒｉｇＰ）は（ｘＰｂ，ｙＰｂ）に等しく設定される        （Ｈ−８１）
ｎＯｒｉｇＰｂＷ＝ｎＰｂＷ        （Ｈ−８２）
ｎＯｒｉｇＰｂＨ＝ｎＰｂＨ        （Ｈ−８３）
Ｌｏｇ２ＰａｒＭｒｇＬｅｖｅｌが２よりも大きくｎＣｂＳが８に等しいとき、（ｘＰｂ，ｙＰｂ）、ｎＰｂＷ、ｎＰｂＨ、およびｐａｒｔＩｄｘは次のように修正される。
（ｘＰｂ，ｙＰｂ）＝（ｘＣｂ，ｙＣｂ）        （Ｈ−８４）
ｎＰｂＷ＝ｎＣｂＳ        （Ｈ−８５）
ｎＰｂＨ＝ｎＣｂＳ        （Ｈ−８６）
ｐａｒｔＩｄｘ＝０        （Ｈ−８７）
注意−Ｌｏｇ２ＰａｒＭｒｇＬｅｖｅｌが２よりも大きくｎＣｂＳが８に等しいとき、現在コーディングユニットのすべての予測ユニットは、単一のマージ候補リストを共有し、それは、２Ｎ×２Ｎ予測ユニットのマージ候補リストと同一である。
動きベクトルｍｖＬ０およびｍｖＬ１、参照インデックスｒｅｆＩｄｘＬ０およびｒｅｆＩｄｘＬ１、ならびに予測利用フラグｐｒｅｄＦｌａｇＬ０およびｐｒｅｄＦｌａｇＬ１は、以下の順序付けられたステップによって導出される。
１．サブクローズ８．５．３．２．２における隣接予測ユニットパーティションからのマージング候補のための導出プロセスは、入力として、輝度コーディングブロックロケーション（ｘＣｂ，ｙＣｂ）、コーディングブロックサイズｎＣｂＳ、輝度予測ブロックロケーション（ｘＰｂ，ｙＰｂ）、輝度予測ブロック幅ｎＰｂＷ、輝度予測ブロック高さｎＰｂＨ、およびパーティションインデックスｐａｒｔＩｄｘを用いて呼び出され、出力は、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＡ0、ａｖａｉｌａｂｌｅＦｌａｇＡ1、ａｖａｉｌａｂｌｅＦｌａｇＢ0、ａｖａｉｌａｂｌｅＦｌａｇＢ1、およびａｖａｉｌａｂｌｅＦｌａｇＢ2、参照インデックスｒｅｆＩｄｘＬＸＡ0、ｒｅｆＩｄｘＬＸＡ1、ｒｅｆＩｄｘＬＸＢ0、ｒｅｆＩｄｘＬＸＢ1、およびｒｅｆＩｄｘＬＸＢ2、予測リスト利用フラグｐｒｅｄＦｌａｇＬＸＡ0、ｐｒｅｄＦｌａｇＬＸＡ1、ｐｒｅｄＦｌａｇＬＸＢ0、ｐｒｅｄＦｌａｇＬＸＢ1、およびｐｒｅｄＦｌａｇＬＸＢ2、ならびに動きベクトルｍｖＬＸＡ0、ｍｖＬＸＡ1、ｍｖＬＸＢ0、ｍｖＬＸＢ1、およびｍｖＬＸＢ2であり、Ｘを０または１とする。
２．時間的マージング候補のための参照インデックス、ｒｅｆＩｄｘＬＸＣｏｌは、Ｘを０または１として、０に等しく設定される。
３．サブクローズＨ．８．５．３．２．７における時間的輝度動きベクトル予測のための導出プロセスは、入力として、輝度ロケーション（ｘＰｂ，ｙＰｂ）、輝度予測ブロック幅ｎＰｂＷ、輝度予測ブロック高さｎＰｂＨ、および変数ｒｅｆＩｄｘＬ０Ｃｏｌを用いて呼び出され、出力は、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬ０Ｃｏｌおよび時間的動きベクトルｍｖＬ０Ｃｏｌである。変数ａｖａｉｌａｂｌｅＦｌａｇＣｏｌ、ｐｒｅｄＦｌａｇＬ０ＣｏｌおよびｐｒｅｄＦｌａｇＬ１Ｃｏｌは、次のように導出される。
ａｖａｉｌａｂｌｅＦｌａｇＣｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬ０Ｃｏｌ        （Ｈ−８８）
ｐｒｅｄＦｌａｇＬ０Ｃｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬ０Ｃｏｌ        （Ｈ−８９）
ｐｒｅｄＦｌａｇＬ１Ｃｏｌ＝０        （Ｈ−９０）
４．ｓｌｉｃｅ＿ｔｙｐｅがＢに等しいとき、サブクローズＨ．８．５．３．２．７における時間的輝度動きベクトル予測のための導出プロセスは、入力として、輝度ロケーション（ｘＰｂ，ｙＰｂ）、輝度予測ブロック幅ｎＰｂＷ、輝度予測ブロック高さｎＰｂＨ、および変数ｒｅｆＩｄｘＬ１Ｃｏｌを用いて呼び出され、出力は、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬ１Ｃｏｌおよび時間的動きベクトルｍｖＬ１Ｃｏｌである。変数ａｖａｉｌａｂｌｅＦｌａｇＣｏｌおよびｐｒｅｄＦｌａｇＬ１Ｃｏｌは、次のように導出される。
ａｖａｉｌａｂｌｅＦｌａｇＣｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬ０Ｃｏｌ  ｜｜  ａｖａｉｌａｂｌｅＦｌａｇＬ１Ｃｏｌ        （Ｈ−９１）
ｐｒｅｄＦｌａｇＬ１Ｃｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬ１Ｃｏｌ        （Ｈ−９２）
５．ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］に応じて、以下のことが適用される。
−  ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］が０に等しい場合、フラグａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣ、ａｖａｉｌａｂｌｅＩｖＭＣＳｈｉｆ
−  他の場合（ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］が１に等しい場合）、サブクローズＨ．８．５．３．２．１０において規定されるようなビュー間マージ候補のための導出プロセスは、入力として、輝度ロケーション（ｘＰｂ，ｙＰｂ）、変数ｎＰｂＷおよびｎＰｂＨを用いて呼び出され、出力は、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣ、ａｖａｉｌａｂｌｅＩｖＭＣＳｈｉｆｔおよびａｖａｉｌａｂｌｅＦｌａｇＩｖＤＣ、参照インデックスｒｅｆＩｄｘＬＸＩｖＭＣ、ｒｅｆＩｄｘＬＸＩｖＭＣＳｈｉｆｔおよびｒｅｆＩｄｘＬＸＩｖＤＣ、予測リスト利用フラグｐｒｅｄＦｌａｇＬＸＩｖＭＣ、ｐｒｅｄＦｌａｇＬＸｉｖＭＣＳｈｉｆｔおよびｐｒｅｄＦｌａｇＬＸＩｖＤＣ、ならびに動きベクトルｍｖＬＸＩｖＭＣ、ｍｖＬＸＩｖＭＣＳｈｉｆｔおよびｍｖＬＸＩｖＤＣに割り当てられる（Ｘを、それぞれ、０または１とする）。
６．ｖｉｅｗ＿ｓｙｎｔｈｅｓｉｓ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］に応じて、以下のことが適用される。
−  ｖｉｅｗ＿ｓｙｎｔｈｅｓｉｓ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］が０に等しい場合、フラグａｖａｉｌａｂｌｅＦｌａｇＶＳＰは０に等しく設定される。
−  他の場合（ｖｉｅｗ＿ｓｙｎｔｈｅｓｉｓ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］が１に等しい場合）、サブクローズＨ．８．５．３．２．１３において規定されるようなビュー合成予測マージ候補のための導出プロセスは、入力として、輝度ロケーション（ｘＣｂ，ｙＣｂ）を用いて呼び出され、出力は、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＶＳＰ、参照インデックスｒｅｆＩｄｘＬ０ＶＳＰおよびｒｅｆＩｄｘＬ１ＶＳＰ、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＶＳＰおよびｐｒｅｄＦｌａｇＬ１ＶＳＰ、ならびに動きベクトルｍｖＬ０ＶＳＰおよびｍｖＬ１ＶＳＰである。
７．ＤｅｐｔｈＦｌａｇに応じて、以下のことが適用される。
−  ＤｅｐｔｈＦｌａｇが０に等しい場合、変数ａｖａｉｌａｂｌｅＦｌａｇＴは０に等しく設定される。
−  他の場合（ＤｅｐｔｈＦｌａｇが１に等しい場合）、サブクローズＨ．８．５．３．２．１４において規定されるようなテクスチャマージング候補のための導出プロセスは、入力として、輝度ロケーション（ｘＰｂ，ｙＰｂ）、変数ｎＰｂＷおよびｎＰｂＨを用いて呼び出され、出力は、フラグａｖａｉｌａｂｌｅＦｌａｇＴ、予測利用フラグｐｒｅｄＦｌａｇＬ０ＴおよびｐｒｅｄＦｌａｇＬ１Ｔ、参照インデックスｒｅｆＩｄｘＬ０ＴおよびｒｅｆＩｄｘＬ１Ｔ、ならびに動きベクトルｍｖＬ０ＴおよびｍｖＬ１Ｔである。
８．マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔおよびｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇは、以下の順序付けられたステップによって規定されるように構成される。
ａ．  変数ｎｕｍＭｅｒｇｅＣａｎｄは０に等しく設定される。
ｂ．  ａｖａｉｌａｂｌｅＦｌａｇＴが１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＴに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｃ．  ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣが１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＩｖＭＣに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｄ．  ａｖａｉｌａｂｌｅＦｌａｇＡ1が１に等しいとき、以下のことが適用される。
−  以下の条件が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＴ＝＝０＆＆ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣ＝＝０，
または、ＮがＴおよびＩｖＭＣによって置き換えられて、以下の条件のうちの１つまたは複数が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｐｒｅｄＦｌａｇＬＸＮ！＝ｐｒｅｄＦｌａｇＬＸＡ１,（Ｘは０および１によって置換される）,
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｍｖＬＸＮ！＝ｍｖＬＸＡ１（Ｘは０および１によって置換される）,
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｒｅｆＩｄｘＬＸＮ！＝ｒｅｆＩｄｘＬＸＡ１（Ｘは０および１によって置換される）,
エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＡ1に等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶｓｐＭｏｄｅＦｌａｇ［ｘＰｂ−１］［ｙＰｂ＋ｎＰｂＨ−１］に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｅ．  ａｖａｉｌａｂｌｅＦｌａｇＢ1が１に等しいとき、以下のことが適用される。
−  以下の条件が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＴ＝＝０  ＆＆  ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣ＝＝０，
または、ＮがＴおよびＩｖＭＣによって置き換えられて、以下の条件のうちの１つまたは複数が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｐｒｅｄＦｌａｇＬＸＮ！＝  ｐｒｅｄＦｌａｇＬＸＢ１，（Ｘは０および１によって置換される）,
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｍｖＬＸＮ！＝  ｍｖＬＸＢ１（Ｘは０および１によって置換される）,
−  ａｖａｉｌａｂｌｅＦｌａｇＮ＝＝１  ＆＆  ｒｅｆＩｄｘＬＸＮ！＝  ｒｅｆＩｄｘＬＸＢ１（Ｘは０および１によって置換される）,
エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＢ1に等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶｓｐＭｏｄｅＦｌａｇ［ｘＰｂ＋ｎＰｂＷ−１］［ｙＰｂ−１］に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｆ．  ａｖａｉｌａｂｌｅＦｌａｇＢ0が１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＢ0に等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶｓｐＭｏｄｅＦｌａｇ［ｘＰｂ＋ｎＰｂＷ］［ｙＰｂ−１］に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｇ．  ａｖａｉｌａｂｌｅＦｌａｇＩｖＤＣが１に等しく、以下の条件のうちの１つまたは複数が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＡ１＝＝０，
−  ｐｒｅｄＦｌａｇＬＸＡ１！＝ｐｒｅｄＦｌａｇＬＸＩｖＤＣ，（Ｘは０および１によって置換される）,
−  ｍｖＬＸＡ１！＝ｍｖＬＸＩｖＤＣ（Ｘは０および１によって置換される）,
−  ｒｅｆＩｄｘＬＸＡ１！＝ｒｅｆＩｄｘＬＸＩｖＤＣ（Ｘは０および１によって置換される）,
および、以下の条件のうちの１つまたは複数が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＢ１＝＝０，
−  ｐｒｅｄＦｌａｇＬＸＢ１！＝ｐｒｅｄＦｌａｇＬＸＩｖＤＣ，（Ｘは０および１によって置換される）,
−  ｍｖＬＸＢ１！＝ｍｖＬＸＩｖＤＣ（Ｘは０および１によって置換される）,
−  ｒｅｆＩｄｘＬＸＢ１！＝ｒｅｆＩｄｘＬＸＩｖＤＣ（Ｘは０および１によって置換される）,
エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＩｖＤＣに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｈ．  ａｖａｉｌａｂｌｅＦｌａｇＶＳＰが１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶＳＰに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は１に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｉ．  ａｖａｉｌａｂｌｅＦｌａｇＡ0が１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＡ0に等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶｓｐＭｏｄｅＦｌａｇ［ｘＰｂ−１］［ｙＰｂ＋ｎＰｂＨ］に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｊ．  ａｖａｉｌａｂｌｅＦｌａｇＢ2が１に等しく、ｎｕｍＭｅｒｇｅＣａｎｄが４＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］＋ＤｅｐｔｈＦｌａｇよりも小さいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＢ2に等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＶｓｐＭｏｄｅＦｌａｇ［ｘＰｂ−１］［ｙＰｂ−１］に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｋ．  ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣＳｈｉｆｔが１に等しく、ｎｕｍＭｅｒｇｅＣａｎｄが６よりも小さく、以下の条件のうちの１つまたは複数が真であるとき、
−  ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣ＝＝０，
−  ｐｒｅｄＦｌａｇＬＸＭＣ！＝ｐｒｅｄＦｌａｇＬＸＭＣＳｈｉｆｔ（Ｘは０および１によって置換される）,
−  ｍｖＬＸＭＣ！＝ｍｖＬＸＩｖＭＣＳｈｉｆｔ（Ｘは０および１によって置換される）,
−  ｒｅｆＩｄｘＬＸＭＣ！＝ｒｅｆＩｄｘＬＸＭＣＳｈｉｆｔ（Ｘは０および１によって置換される）,
エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＩｖＭＣＳｈｉｆｔに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｌ．  変数ａｖａｉｌａｂｌｅＦｌａｇＩｖＤＣＳｈｉｆｔは０に設定され、以下の条件のすべてが真であるとき、
−  ＤｅｐｔｈＦｌａｇが０に等しい［Ｅｄ（ＣＹ）：この条件はすでに仮定されており、したがって、除去されてよい。］、
−  ａｖａｉｌａｂｌｅＦｌａｇＩｖＭＣＳｈｉｆｔが０に等しい、
−  ｎｕｍＭｅｒｇｅＣａｎｄが６よりも小さい、
サブクローズＨ．８．５．３．２．１５において規定されるようなシフト視差マージング候補の導出プロセスは、入力として、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にあるすべての候補Ｎの、利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＮ、参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、ならびにｍｅｒｇｅＣａｎｄＬｉｓｔ、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ、およびｎｕｍＭｅｒｇｅＣａｎｄを用いて呼び出され、出力は、フラグａｖａｉｌａｂｌｅＦｌａｇＩｖＤＣＳｈｉｆｔ、予測利用フラグｐｒｅｄＦｌａｇＬ０ＩｖＤＣＳｈｉｆｔおよびｐｒｅｄＦｌａｇＬ１ＩｖＤＣＳｈｉｆｔ、参照インデックスｒｅｆＩｄｘＬ０ＩｖＤＣＳｈｉｆｔおよびｒｅｆＩｄｘＬ１ＩｖＤＣＳｈｉｆｔ、ならびに動きベクトルｍｖＬ０ＩｖＤＣＳｈｉｆｔおよびｍｖＬ１ＩｖＤＣＳｈｉｆｔである。ａｖａｉｌａｂｌｅＦｌａｇＩｖＤＣＳｈｉｆｔが１に等しいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＩｖＤＣＳｈｉｆｔに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
ｍ．  ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１に等しく、ｎｕｍＭｅｒｇｅＣａｎｄが５＋ｉｖ＿ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］＋ＤｅｐｔｈＦｌａｇよりも小さいとき、エントリｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＭｅｒｇｅＣａｎｄ］はＣｏｌに等しく設定され、エントリｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＭｅｒｇｅＣａｎｄ］は０に等しく設定され、変数ｎｕｍＭｅｒｇｅＣａｎｄは１だけ増分される。
９．変数ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄは、ｎｕｍＭｅｒｇｅＣａｎｄに等しく設定される。
１０．ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｎｕｍＭｅｒｇｅＣａｎｄが５よりも小さいとき、サブクローズ８．５．３．２．３［［Ｈ．８．５．３．２．３］］において規定される結合双予測マージング候補のための導出プロセスは、入力として、ｍｅｒｇｅＣａｎｄＬｉｓｔ、［［ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ］］、ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの、参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、ならびにｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、およびｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄを用いて呼び出され、出力は、ｍｅｒｇｅＣａｎｄＬｉｓｔ、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、ｍｅｒｇｅＣａｎｄＬｉｓｔへ追加されたすべての新しい候補ｃｏｍｂＣａｎｄkの、参照インデックスｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄkおよびｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄk、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄkおよびｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄk、ならびに動きベクトルｍｖＬ０ｃｏｍｂＣａｎｄkおよびｍｖＬ１ｃｏｍｂＣａｎｄkに割り当てられる。追加された候補の数、ｎｕｍＣｏｍｂＭｅｒｇｅＣａｎｄは、（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ）に等しく設定される。ｎｕｍＣｏｍｂＭｅｒｇｅＣａｎｄが０よりも大きいとき、ｋは、両端値を含む０〜ｎｕｍＣｏｍｂＭｅｒｇｅＣａｎｄ−１の範囲にある［［、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＋ｋ］は０に等しく設定される］］。
１１．サブクローズ８．５．３．２．４において規定されるゼロ動きベクトルマージング候補のための導出プロセスは、入力として、ｍｅｒｇｅＣａｎｄＬｉｓｔ、ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの、参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、ならびに、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄを用いて呼び出され、出力は、ｍｅｒｇｅＣａｎｄＬｉｓｔ、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、ｍｅｒｇｅＣａｎｄＬｉｓｔへ追加されたすべての新しい候補ｚｅｒｏＣａｎｄmの、参照インデックスｒｅｆＩｄｘＬ０ｚｅｒｏＣａｎｄmおよびｒｅｆＩｄｘＬ１ｚｅｒｏＣａｎｄm、予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｚｅｒｏＣａｎｄmおよびｐｒｅｄＦｌａｇＬ１ｚｅｒｏＣａｎｄm、ならびに動きベクトルｍｖＬ０ｚｅｒｏＣａｎｄmおよびｍｖＬ１ｚｅｒｏＣａｎｄmに割り当てられる。追加された候補の数、ｎｕｍＺｅｒｏＭｅｒｇｅＣａｎｄは、（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−ｎｕｍＣｏｍｂＭｅｒｇｅＣａｎｄ）に等しく設定される。ｎｕｍＺｅｒｏＭｅｒｇｅＣａｎｄが０よりも大きいとき、ｍは、両端値を含む０〜ｎｕｍＺｅｒｏＭｅｒｇｅＣａｎｄ−１の範囲にあり、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＋ｎｕｍＣｏｍｂＭｅｒｇｅＣａｎｄ＋ｍ］は０に等しく設定される。
．．．
［［Ｈ．８．５．３．２．３  結合双予測マージング候補のための導出プロセス
このプロセスへの入力は、以下の通りである。
−  マージング候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
−  リストｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの予測利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔの中のすべての候補Ｎの動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、
−  空間的および時間的マージ候補の導出プロセスの後の、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ。
このプロセスの出力は、以下の通りである。
−  マージング候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ、
−  ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｃｏｍｂＣａｎｄｋの参照インデックスｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄｋおよびｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄｋ、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｃｏｍｂＣａｎｄｋの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄｋおよびｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄｋ、
−  このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔの中へ追加されたすべての新しい候補ｃｏｍｂＣａｎｄｋの動きベクトルｍｖＬ０ｃｏｍｂＣａｎｄｋおよびｍｖＬ１ｃｏｍｂＣａｎｄｋ。
ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄが１よりも大きくＭａｘＮｕｍＭｅｒｇｅＣａｎｄよりも小さいとき、変数ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄはｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄに等しく設定され、変数ｃｏｍｂＩｄｘは０に等しく設定され、変数ｃｏｍｂＳｔｏｐはＦＡＬＳＥに等しく設定され、ｃｏｍｂＳｔｏｐがＴＲＵＥに等しくなるまで以下のステップが繰り返される。
１．変数ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘは、表８−６において規定されるようなｃｏｍｂＩｄｘを使用して導出される。
２．マージング候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの中で、ｌ０Ｃａｎｄを位置ｌ０ＣａｎｄＩｄｘにおける候補とし、ｌ１Ｃａｎｄを位置ｌ１ＣａｎｄＩｄｘにおける候補として、以下の割当てがなされる。
−  ｌ０Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ０ＣａｎｄＩｄｘ］
−  ｌ１Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ１ＣａｎｄＩｄｘ］
３．以下の条件のすべてが真であるとき、
−  ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｌ０ＣａｎｄＩｄｘ］＝＝０，
−  ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｌ１ＣａｎｄＩｄｘ］＝＝０，
−  ｐｒｅｄＦｌａｇＬ０ｌ０Ｃａｎｄ＝＝１
−  ｐｒｅｄＦｌａｇＬ１ｌ１Ｃａｎｄ＝＝１
−  （ＤｉｆｆＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔ０［ｒｅｆＩｄｘＬ０ｌ０Ｃａｎｄ］，ＲｅｆＰｉｃＬｉｓｔ１［ｒｅｆＩｄｘＬ１ｌ１Ｃａｎｄ］）！＝０）  ｜｜
（ｍｖＬ０ｌ０Ｃａｎｄ！＝ｍｖＬ１ｌ１Ｃａｎｄ）
（ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ−ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄ）に等しいｋを伴う候補ｃｏｍｂＣａｎｄkはｍｅｒｇｅＣａｎｄＬｉｓｔの終わりにおいて追加され、すなわち、ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ］はｃｏｍｂＣａｎｄkに等しく設定され、ｃｏｍｂＣａｎｄkの参照インデックス、予測リスト利用フラグ、および動きベクトルは次のように導出され、ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄは１だけインクリメントされる。
ｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄｋ＝ｒｅｆＩｄｘＬ０ｌ０Ｃａｎｄ        （Ｈ−１０１）
ｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄｋ＝ｒｅｆＩｄｘＬ１ｌ１Ｃａｎｄ        （Ｈ−１０２）
ｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄｋ＝１        （Ｈ−１０３）
ｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄｋ＝１        （Ｈ−１０４）
ｍｖＬ０ｃｏｍｂＣａｎｄｋ［０］＝ｍｖＬ０ｌ０Ｃａｎｄ［０］        （Ｈ−１０５）
ｍｖＬ０ｃｏｍｂＣａｎｄｋ［１］＝ｍｖＬ０ｌ０Ｃａｎｄ［１］        （Ｈ−１０６）
ｍｖＬ１ｃｏｍｂＣａｎｄｋ［０］＝ｍｖＬ１ｌ１Ｃａｎｄ［０］        （Ｈ−１０７）
ｍｖＬ１ｃｏｍｂＣａｎｄｋ［１］＝ｍｖＬ１ｌ１Ｃａｎｄ［１］        （Ｈ−１０８）
ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＝ｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄ＋１        （Ｈ−１０９）
４．変数ｃｏｍｂＩｄｘは１だけインクリメントされる。
５．ｃｏｍｂＩｄｘが（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しいか、またはｎｕｍＣｕｒｒＭｅｒｇｅＣａｎｄがＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しいとき、ｃｏｍｂＳｔｏｐがＴＲＵＥに等しく設定される。］］
【０１２２】
[0137]上記に示すように、「ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ」は、３Ｄ−ＨＥＶＣドラフトテキスト１のセクションＨ．８．５．３．２．１において定義されるＢＶＳＰフラグの任意のアレイである。「ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ」アレイの中の各値は、リストの中のマージング候補に対応し、対応するマージング候補がＢＶＳＰに基づくかどうかを示す。セクションＨ．８．５．３．２．１のステップ１０において、「ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ」が削除され、その結果、「ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ」は結合双予測マージング候補のための導出プロセスへの入力として提供されない。さらに、本開示１つまたは複数の技法によれば、結合双予測マージング候補のための導出プロセスが、ＨＥＶＣにおいて定義されているものと３Ｄ−ＨＥＶＣにおいて同じであるので（すなわち、ＨＥＶＣワーキングドラフト１０のセクション８．５．３．２．３）、セクションＨ．８．５．３．２．３は３Ｄ−ＨＥＶＣドラフトテキスト１から削除される。加えて、本開示の１つまたは複数の技法によれば、上のテキストに示すように、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇ［ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＋ｋ］は、もはやそうする必要がないので、０に等しく設定されない。
【０１２３】
[0138]図８は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図８は、説明のために提供され、本開示で広く例示され説明されるような技法を限定するものと見なされるべきではない。説明のために、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１２４】
[0139]図８の例では、ビデオエンコーダ２０は、予測処理ユニット１００と、ビデオデータメモリ１０１と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニット１２２と、動き補償ユニット１２４とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１２５】
[0140]ビデオエンコーダ２０は、ビデオデータを受信し得る。ビデオデータメモリ１０１は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ１０１に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１２６】
[0141]ビデオエンコーダ２０は、ビデオデータのピクチャのスライスの中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、ピクチャの等しいサイズの輝度コーディングツリーブロック（ＣＴＢ）と、対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを徐々により小さいブロックに分割するために、４分木分割を実行し得る。より小さいブロックは、ＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられたＣＴＢを４つの等しいサイズのサブブロックに分割し得、サブブロックのうちの１つまたは複数を４つの等しいサイズのサブサブブロックに分割し得、以下同様である。
【０１２７】
[0142]ビデオエンコーダ２０は、ＣＵの符号化表現（すなわち、コード化ＣＵ）を生成するために、ＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの間でＣＵに関連付けられたコーディングブロックを分割し得る。したがって、いくつかの例では、各ＰＵは、輝度予測ブロックおよび対応する色差予測ブロックに関連付けられ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記で示したように、ＣＵのサイズは、ＣＵの輝度コーディングブロックのサイズを指すことがあり、ＰＵのサイズは、ＰＵの輝度予測ブロックのサイズを指すことがある。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測に関して２Ｎ×２ＮまたはＮ×ＮのＰＵサイズをサポートし得、インター予測に関して２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称のＰＵサイズをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０はまた、インター予測に関して、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズ向けに非対称の分割をサポートし得る。
【０１２８】
[0143]インター予測処理ユニット１２０は、ＣＵの各ＰＵに対してインター予測を実行することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵの予測ブロックとＰＵのための動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライスの中にあるのか、Ｐスライスの中にあるのか、それともＢスライスの中にあるのかに応じて、ＣＵのＰＵに対して異なる動作を実行し得る。Ｉスライスでは、すべてのＰＵがイントラ予測され得る。したがって、ＰＵがＩスライスの中にある場合、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実行しない。したがって、Ｉモードで符号化されるブロックに対して、予測ブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【０１２９】
[0144]ＰＵがＰスライスの中にある場合、動き推定ユニット１２２は、ＰＵのための参照領域について参照ピクチャのリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）の中で参照ピクチャを探索し得る。ＰＵのための参照領域は、ＰＵのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニット１２２は、ＰＵのための参照領域を含む参照ピクチャの、ＲｅｆＰｉｃＬｉｓｔ０の中での位置を示す参照インデックスを生成し得る。加えて、動き推定ユニット１２２は、ＰＵのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示す動きベクトルを生成し得る。たとえば、動きベクトルは、現在ピクチャにおける座標から参照ピクチャにおける座標までのオフセットを与える２次元ベクトルであり得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される参照ロケーションに関連付けられた実際のサンプルまたは補間サンプルに基づいて、ＰＵの予測ブロック（すなわち、予測ブロック）を生成し得る。
【０１３０】
[0145]ＰＵがＢスライスの中にある場合、動き推定ユニット１２２は、ＰＵに対して単予測または双予測を実行し得る。ＰＵ対して単予測を実行するために、動き推定ユニット１２２は、ＰＵのための参照領域を得るために、ＲｅｆＰｉｃＬｉｓｔ０または第２の参照ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の参照ピクチャを探索し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照領域を含む参照ピクチャの、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１の中での位置を示す参照インデックスと、ＰＵのサンプルブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示す動きベクトルと、参照ピクチャがＲｅｆＰｉｃＬｉｓｔ０の中にあるのか、それともＲｅｆＰｉｃＬｉｓｔ１の中にあるのかを示す１つまたは複数の予測方向インジケータとを、出力し得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される参照ロケーションに関連付けられた実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１３１】
[0146]ＰＵに対して双方向インター予測を実行するために、動き推定ユニット１２２は、ＰＵのための参照領域を得るためにＲｅｆＰｉｃＬｉｓｔ０の中の参照ピクチャを探索し得、また、ＰＵのための別の参照領域を得るためにＲｅｆＰｉｃＬｉｓｔ１の中の参照ピクチャを探索し得る。動き推定ユニット１２２は、参照領域を含む参照ピクチャの、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１の中での位置を示す参照インデックスを生成し得る。加えて、動き推定ユニット１２２は、参照領域に関連付けられた参照ロケーションとＰＵの予測ブロック（たとえば、サンプルブロック）との間の空間変位を示す動きベクトルを生成し得る。ＰＵの動き情報は、ＰＵの参照インデックスと動きベクトルとを含み得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される参照領域に関連付けられた実際のサンプルまたは補間サンプルに少なくとも部分的に基づいて、ＰＵの予測ブロックを生成し得る。
【０１３２】
[0147]本開示の１つまたは複数の技法によれば、動き推定ユニット１２２は、３Ｄビデオのビデオブロックをコーディングするためのマージング候補のリストを生成し得る。マージング候補のリストを生成することの一部として、動き推定ユニット１２２は、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る。マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、動き推定ユニット１２２は、１つまたは複数の結合双予測マージング候補を導出し得る。動き推定ユニット１２２は、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることができる。さらに、いくつかの例では、動き推定ユニット１２２は、マージング候補のリストの中のマージング候補を選択し得る。ビデオエンコーダ２０は、選択されたマージング候補の、マージング候補のリストの中での位置をシグナリングし得る。いくつかの例では、マージング候補のリストの中のマージング候補の最大数は、５以上である（たとえば、６）。
【０１３３】
[0148]続いて、ここで図８の例の参照をする。イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実行することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵのための予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライスの中のＰＵに対してイントラ予測を実行し得る。
【０１３４】
[0149]ＰＵに対してイントラ予測を実行するために、イントラ予測処理ユニット１２６は、ＰＵのための予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。いくつかのイントラ予測モードを使用してＰＵのための予測データのセットを生成するために、イントラ予測処理ユニット１２６は、イントラ予測モードに関連付けられた方向で、ＰＵの予測ブロック全体にわたって、隣接ブロックからのサンプルを拡張し得る。隣接ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連付けられた領域のサイズに依存し得る。
【０１３５】
[0150]予測処理ユニット１００は、ＰＵに対してインター予測処理ユニット１２０によって生成された予測データ、またはＰＵに対してイントラ予測処理ユニット１２６によって生成された予測データの中から、ＣＵのＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／歪みの尺度に基づいて、ＣＵのＰＵのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
【０１３６】
[0151]残差生成ユニット１０２は、ＣＵのコーディングブロック（たとえば、輝度コーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）、ならびにＣＵのＰＵの選択された予測ブロック（たとえば、予測輝度ブロック、予測Ｃｂブロック、および予測Ｃｒブロック）に基づいて、ＣＵの残差ブロック（たとえば、残差輝度、Ｃｂ、およびＣｒ残差ブロック）を生成し得る。言い換えれば、残差生成ユニット１０２は、ＣＵに関する残差信号を生成し得る。たとえば、残差生成ユニット１０２は、残差ブロックの中の各サンプルが、ＣＵのコーディングブロックの中のサンプルと、ＣＵのＰＵの対応する選択された予測ブロックの中の対応するサンプルとの差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０１３７】
[0152]変換処理ユニット１０４は、ＣＵに関連付けられた残差ブロックを、ＣＵのＴＵに対応する（すなわち、関連付けられた）変換ブロックに分割するために、４分木分割を実行し得る。したがって、ＴＵは、輝度変換ブロックおよび２つの色差変換ブロックに関連付けられ得る。ＣＵのＴＵの変換ブロック（たとえば、輝度変換ブロックおよび色差変換ブロック）のサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ）として知られる４分木構造は、ＴＵの各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１３８】
[0153]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵに関する変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に類似の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット１０４は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【０１３９】
[0154]量子化ユニット１０６は、変換係数ブロックの中の変換係数を量子化し得る。量子化処理は、変換係数ブロックの変換係数の一部または全部に関連したビット深度を低減し得る。たとえば、ｎビットの変換係数は、量子化の間にｍビットの変換係数に切り捨てられてよく、ただし、ｎはｍよりも大きい。量子化ユニット１０６は、ＣＵに関連付けられた量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連付けられた変換係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の喪失をもたらすことがあり、したがって、量子化された変換係数は、元の変換係数よりも精度が低いことがある。
【０１４０】
[0155]逆量子化ユニット１０８および逆変換処理ユニット１１０は、変換係数ブロックから残差ブロック（すなわち、変換ブロック）を再構成するために、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用し得る。再構成ユニット１１２は、コーディングブロックの各サンプルが、ＣＵのＰＵの予測ブロックのサンプルと、ＣＵのＴＵの変換ブロックの対応するサンプルとの和に等しくなるように、ＣＵのコーディングブロックを再構成し得る。たとえば、再構成ユニット１１２は、ＣＵの再構成されたコーディングブロックを作り出すために、ＣＵのＴＵの再構成された残差ブロックを、予測処理ユニット１００によって生成されるＣＵのＰＵの１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。したがって、このようにしてＣＵの各ＴＵに対して変換ブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成し得る。
【０１４１】
[0156]フィルタユニット１１４は、ＣＵに関連付けられたコーディングブロックの中のブロッキングアーティファクトを低減するために、１つまたは複数のデブロッキング動作を実行し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構成されたコーディングブロックに対して１つまたは複数のデブロッキング動作を実行した後、再構成されたコーディングブロックを記憶し得る。したがって、復号ピクチャバッファ１１６は、ビデオデータを記憶するように構成されたメモリであり得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実行するために、再構成されたコーディングブロックを含む参照ピクチャを使用し得る。加えて、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を実行するために、復号ピクチャバッファ１１６の中の再構成されたコーディングブロックを使用し得る。
【０１４２】
[0157]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化されたデータを生成するために、データに対して１つまたは複数のエントロピー符号化演算を実行し得る。たとえば、エントロピー符号化ユニット１１８は、ＣＡＢＡＣ演算、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：ｃｏｎｔｅｘｔ−ａｄａｐｔｉｖｅ  ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ）演算、可変対可変（Ｖ２Ｖ：ｖａｒｉａｂｌｅ−ｔｏ−ｖａｒｉａｂｌｅ）長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：ｓｙｎｔａｘ−ｂａｓｅｄ  ｃｏｎｔｅｘｔ−ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ）演算、確率間隔分割エントロピー（ＰＩＰＥ：Ｐｒｏｂａｂｉｌｉｔｙ  Ｉｎｔｅｒｖａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｅｎｔｒｏｐｙ）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化されたデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵのためのＲＱＴを表すデータを含み得る。ビットストリームは、エントロピー符号化されないデータを含んでよい。
【０１４３】
[0158]図９は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図９は、説明のために提供され、本開示で広く例示され説明されるような技法を限定するものではない。説明のために、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１４４】
[0159]図９の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、ビデオデータメモリ１５１と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４と、イントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１４５】
[0160]ビデオデコーダ３０は、ビットストリームを受信し得る。ビデオデータメモリ１５１は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ１５１に記憶されるビデオデータは、たとえば、チャネル１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ１５１は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ１６２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１４６】
[0161]エントロピー復号ユニット１５０は、ビットストリームからシンタックス要素を復号するために、ビットストリームを構文解析し得る。エントロピー復号ユニット１５０は、ビットストリームの中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構成ユニット１５８、およびフィルタユニット１６０は、ビットストリームから取得（たとえば、抽出）されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。
【０１４７】
[0162]ビットストリームは、一連のＮＡＬユニットを備え得る。ビットストリームのＮＡＬユニットは、コード化スライスＮＡＬユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからシンタックス要素を取得（たとえば、抽出）し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含み得る。スライスヘッダの中のシンタックス要素は、スライスを含むピクチャに関連付けられたＰＰＳを識別するシンタックス要素を含み得る。
【０１４８】
[0163]ビットストリームからシンタックス要素を取得（たとえば、復号）することに加えて、ビデオデコーダ３０は、ＣＵに対して再構成演算を実行し得る。ＣＵ（分割されていないＣＵ）に対して再構成演算を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成演算を実行し得る。ＣＵの各ＴＵに対して再構成演算を実行することによって、ビデオデコーダ３０は、ＣＵのＴＵの残差ブロック（すなわち、変換ブロック）を再構成し得る。
【０１４９】
[0164]ＣＵのＴＵに対して再構成演算を実行することの一部として、逆量子化ユニット１５４は、ＴＵの（すなわち、ＴＵに関連付けられた）係数ブロックを逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）し得る。逆量子化ユニット１５４は、量子化の程度を決定するために、同様に、逆量子化ユニット１５４が適用するべき逆量子化の程度を決定するために、ＴＵのＣＵに関連付けられたＱＰ値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比はまた、採用されるエントロピーコーディングの方法に依存し得る。
【０１５０】
[0165]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、ＴＵに関連付けられた残差ブロックを生成するために、係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、または別の逆変換を、係数ブロックに適用し得る。
【０１５１】
[0166]ＰＵがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット１６６は、ＰＵのための予測ブロックを生成するために、イントラ予測を実行し得る。たとえば、イントラ予測処理ユニット１６６は、空間的に隣接するＰＵの予測ブロックに基づいて、ＰＵのための予測輝度ブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。
【０１５２】
[0167]予測処理ユニット１５２は、ビットストリームから取得されたシンタックス要素に基づいて、第１の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを構成し得る。さらに、ＰＵがインター予測を使用して符号化される場合、エントロピー復号ユニット１５０は、ＰＵに関する動き情報を決定（たとえば、抽出）し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵのための１つまたは複数の参照ブロックを決定し得る。動き補償ユニット１６４は、ＰＵのための１つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、ＰＵのための予測ブロック（たとえば、予測輝度ブロック、予測Ｃｂブロック、および予測Ｃｒブロック）を生成し得る。
【０１５３】
[0168]上記で示したように、ビデオエンコーダ２０は、マージモード、スキップモードまたはＡＭＶＰモードを使用して、ＰＵの動き情報をシグナリングし得る。ビデオエンコーダ２０がＡＭＶＰモードを使用して現在ＰＵの動き情報をシグナリングすると、エントロピー復号ユニット１５０は、ビットストリームから、参照インデックスと、現在ＰＵに関するＭＶＤと、候補インデックスとを復号し得る。さらに、動き補償ユニット１６４は、現在ＰＵに関するＡＭＶＰ候補リストを生成し得る。ＡＭＶＰ候補リストは、１つまたは複数の動きベクトル予測子候補を含む。動きベクトル予測子候補の各々は、現在ＰＵに空間的または時間的に隣接するＰＵの動きベクトルを規定する。動き補償ユニット１６４は、候補インデックスに少なくとも部分的に基づいて、ＡＭＶＰ候補リストの中の選択された動きベクトル予測子候補を決定し得る。動き補償ユニット１６４は、次いで、ＭＶＤを、選択された動きベクトル予測子候補によって規定される動きベクトルに加えることによって、現在ＰＵの動きベクトルを決定し得る。言い換えれば、ＡＭＶＰに対して、動きベクトルは、動きベクトル（ＭＶ）＝ＭＶＰ＋ＭＶＤとして計算され、ここにおいて、動きベクトル予測子（ＭＶＰ）のインデックスがシグナリングされ、ＭＶＰはＡＭＶＰリストからの動きベクトル候補（空間的または時間的な）のうちの１つであり、ＭＶＤはデコーダ側にシグナリングされる。
【０１５４】
[0169]現在ＰＵが双予測され、ＰＵの動き情報がＡＭＶＰモードでシグナリングされる場合、エントロピー復号ユニット１５０は、追加の参照インデックスと、ＭＶＤと、候補インデックスとを、ビットストリームから復号し得る。動き補償ユニット１６２は、現在ＰＵに関する第２の動きベクトルを導出するために、追加の参照インデックスと、ＭＶＤと、候補インデックスとを使用して、上述されたプロセスを繰り返してよい。このようにして、動き補償ユニット１６２は、ＲｅｆＰｉｃＬｉｓｔ０に関する動きベクトル（すなわち、ＲｅｆＰｉｃＬｉｓｔ０動きベクトル）と、ＲｅｆＰｉｃＬｉｓｔ１に関する動きベクトル（すなわち、ＲｅｆＰｉｃＬｉｓｔ１動きベクトル）とを導出し得る。
【０１５５】
[0170]本開示の１つまたは複数の技法によれば、動き補償ユニット１６４は、３Ｄビデオのビデオブロックをコーディングするためのマージング候補のリストを生成し得る。マージング候補のリストを生成することの一部として、動き補償ユニット１６４は、マージング候補のリストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る。マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して、動き補償ユニット１６４は、１つまたは複数の結合双予測マージング候補を導出し得る。動き補償ユニット１６４は、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることができる。さらに、いくつかの例では、ビデオデコーダ３０は、ビットストリームから、マージング候補のリストの中の選択されたマージング候補を示すシンタックス要素を取得し得る。動き補償ユニット１６４は、現在ＰＵの予測サンプルを生成するために、選択された候補の動き情報を使用し得る。いくつかの例では、マージング候補のリストの中のマージング候補の最大数は、５以上である（たとえば、６）。
【０１５６】
[0171]続いて、ここで図９の参照をする。再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、輝度コーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構成するために、適宜、ＣＵのＴＵの変換ブロック（たとえば、輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）と、ＣＵのＰＵの予測ブロック（たとえば、予測輝度ブロック、予測Ｃｂブロック、および予測Ｃｒブロック）とを、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット１５８は、ＣＵのコーディングブロック（たとえば、輝度コーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を再構成するために、変換ブロック（たとえば、輝度変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）のサンプルを、予測ブロック（たとえば、予測輝度ブロック、予測Ｃｂブロック、および予測Ｃｒブロック）の対応するサンプルに加算し得る。
【０１５７】
[0172]フィルタユニット１６０は、ＣＵのコーディングブロック（たとえば、輝度コーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）と関連したブロッキングアーティファクトを低減するために、デブロッキング動作を実行し得る。ビデオデコーダ３０は、ＣＵのコーディングブロック（たとえば、輝度コーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロック）を復号ピクチャバッファ１６２に記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のための、参照ピクチャを提供し得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２の中のブロック（たとえば、輝度ブロック、Ｃｂブロック、およびＣｒブロック）に基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。このようにして、ビデオデコーダ３０は、ビットストリームから、有意な輝度係数ブロックの変換係数レベルを取得し、変換係数レベルを逆量子化し、変換ブロックを生成するために変換係数レベルに変換を適用し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、表示のためにコーディングブロックを出力し得る。
【０１５８】
[0173]図１０Ａは、本開示の１つまたは複数の技法による、３Ｄビデオと関連したデータを符号化するためのビデオエンコーダ２０の例示的な動作を示すフローチャートである。図１０Ａの動作は、本開示の他のフローチャートに示す動作とともに、例である。本開示の技法による他の例示的な動作は、より多数の、より少数の、または異なるアクションを含み得る。
【０１５９】
[0174]図１０Ａの例では、ビデオエンコーダ２０は、マージング候補のリストを生成し得る（２００）。言い換えれば、ビデオエンコーダ２０は、マージ候補リストを生成し得る。本開示における他の場所に記載される図１１および図１２は、マージング候補のリストを生成するための例示的な動作を示す。いくつかの例では、ビデオエンコーダ２０は、ビデオデコーダ３０と同じ方式でマージ候補リストを生成し得る。本開示の１つまたは複数の技法によれば、ビデオエンコーダ２０がマージ候補リストを生成するとき、ビデオエンコーダ２０は、マージ候補リストの中のいくつかのマージ候補が５個よりも少ないかどうかを決定し得る。マージ候補リストの中のマージ候補の数が５個よりも少ないと決定することに応答して、ビデオエンコーダ２０は、１つまたは複数の双予測マージング候補を導出し得る。ビデオエンコーダ２０は、１つまたは複数の双予測マージング候補を、マージ候補リストの中に含めることができる。いくつかの例では、マージ候補リストの中のマージング候補の最大数は、６に等しい。
【０１６０】
[0175]さらに、図１０Ａの例では、ビデオエンコーダ２０は、マージング候補のリストの中の候補を選択し得る（２０２）。いくつかの例では、ビデオエンコーダ２０は、選択された候補をビットストリームの中でシグナリングし得る。たとえば、ビデオエンコーダ２０は、マージインデックスシンタックス要素を、ビットストリームの中に含めることができる。ビデオエンコーダ２０は、選択された候補に基づいて、ビデオブロックを符号化し得る（２０４）。たとえば、ビデオブロックはＣＵであってよい。この例では、ビデオエンコーダ２０は、ＣＵのＰＵのための予測ブロックを決定するために、選択された候補の動き情報（たとえば、動きベクトル、参照インデックスなど）を使用し得る。さらに、この例では、ビデオエンコーダ２０は、予測ブロックのサンプルおよびＣＵのコーディングブロックの対応するサンプルに基づいて、変換ブロック（たとえば、残差ブロック）の少なくともいくつかのサンプルの値を決定し得る。たとえば、ビデオエンコーダ２０は、サンプルが、予測ブロックのサンプルと、ＣＵのコーディングブロックの対応するサンプルとの間の差分に等しくなるように、変換ブロックのサンプルのうちの少なくともいくつかの値を決定し得る。
【０１６１】
[0176]図１０Ｂは、本開示の１つまたは複数の技法による、３Ｄビデオと関連したデータを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図１０Ｂの例では、ビデオデコーダ３０は、マージング候補のリストを生成し得る（２２０）。言い換えれば、ビデオデコーダ３０は、マージ候補リストを生成し得る。本開示における他の場所に記載される図１１および図１２は、マージング候補のリストを生成するための例示的な動作を示す。いくつかの例では、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方式でマージング候補リストを生成し得る。本開示の１つまたは複数の技法によれば、ビデオデコーダ３０がマージング候補リストを生成するとき、ビデオデコーダ３０は、マージング候補リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る。マージング候補リストの中のマージング候補の数が５個よりも少ないと決定することに応答して、ビデオデコーダ３０は、１つまたは複数の双予測マージング候補を導出し得る。ビデオデコーダ３０は、１つまたは複数の双予測マージング候補を、マージング候補リストの中に含めることができる。いくつかの例では、マージング候補リストの中のマージング候補の最大数は、６に等しい。
【０１６２】
[0177]さらに、図１０Ｂの例では、ビデオデコーダ３０は、マージング候補のリストの中の選択された候補を決定し得る（２２２）。いくつかの例では、ビデオデコーダ３０は、ビットストリームの中でシグナリングされるシンタックス要素によって示される値に基づいて、選択された候補を決定し得る。ビデオデコーダ３０は、選択された候補に基づいて、ビデオブロックを復号し得る（２２４）。たとえば、ビデオブロックはＣＵであってよい。この例では、ビデオデコーダ３０は、ＣＵのＰＵのための予測ブロックを決定するために、選択された候補の動き情報（たとえば、動きベクトル、参照インデックスなど）を使用し得る。さらに、この例では、ビデオデコーダ３０は、予測ブロックに基づいて、ＣＵのコーディングブロックのサンプルのうちの少なくともいくつかの値を決定し得る。たとえば、ビデオデコーダ３０は、サンプルが、予測ブロックのサンプルと、ＣＵのＴＵの変換ブロックの対応するサンプルとの和に等しくなるように、コーディングブロックのサンプルのうちの少なくともいくつかの値を決定し得る。
【０１６３】
[0178]図１１は、本開示の１つまたは複数の技法による、現在ブロックに関するマージ候補リストを構成するための例示的な動作３００の第１の部分を示すフローチャートである。図１１の例示的な動作では、１つまたは複数のアクションは、並べ替えられまたは省略されることがある。他の例では、同様の動作は、追加のアクションを含み得る。
【０１６４】
[0179]図１１の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＩＰＭＶＣを決定し得る（３０２）。いくつかの例では、ビデオコーダは、ビュー間参照ピクチャの中の対応するブロックを識別するために、現在ブロックに関する視差ベクトルを使用することによってＩＰＭＶＣを決定し得る。そのような例では、対応するブロックが、イントラ予測されず、ビュー間予測されず、時間的動きベクトル（すなわち、対応するブロックと異なる時間インスタンスに関連付けられた参照ピクチャの中のロケーションを示す動きベクトル）を有する場合、ＩＰＭＶＣは、対応するブロックの動きベクトルと、対応するブロックの予測方向インジケータと、対応するブロックの変換された参照インデックスとを規定し得る。その後、ビデオコーダは、ＩＰＭＶＣが利用可能であるかどうかを決定し得る（３０４）。いくつかの例では、ビュー間参照ピクチャの中の対応するブロックが、イントラ予測されるか、またはビュー間参照ピクチャの境界の外部にある場合、ＩＰＭＶＣは利用不可能である。ＩＰＭＶＣが利用可能であると決定することに応答して（３０４の「はい」）、ビデオコーダは、ＩＰＭＶＣをマージ候補リストの中に挿入し得る（３０６）。
【０１６５】
[0180]ＩＰＭＶＣをマージ候補リストの中に挿入した後、またはＩＰＭＶＣが利用可能でないと決定することに応答して（３０４の「いいえ」）、ビデオコーダは、空間的隣接ＰＵが利用可能な動きベクトルを有するかどうかを決定するために、空間的隣接ＰＵを検査し得る（３０８）。いくつかの例では、空間的隣接ＰＵは、図２のＡ0、Ａ1、Ｂ0、Ｂ1、およびＢ2と示されるロケーションをカバーする。説明の簡単のため、本開示は、ロケーションＡ0、Ａ1、Ｂ0、Ｂ1、およびＢ2をカバーするＰＵの動き情報を、それぞれ、Ａ0、Ａ1、Ｂ0、Ｂ1、およびＢ2として参照することがある。
【０１６６】
[0181]図１１の例では、ビデオコーダは、Ａ1がＩＰＭＶＣに整合するかどうかを決定し得る（３１０）。Ａ1がＩＰＭＶＣに整合しないと決定することに応答して（３１０の「いいえ」）、ビデオコーダは、Ａ1をマージ候補リストへ挿入し得る（３１２）。他の場合、Ａ1がＩＰＭＶＣに整合すると決定することに応答して（３１０の「はい」）、またはＡ1をマージ候補リストへ挿入した後、ビデオコーダは、Ｂ1がＡ1またはＩＰＭＶＣに整合するかどうかを決定し得る（３１４）。Ｂ1がＡ1またはＩＰＭＶＣに整合しないと決定することに応答して（３１４の「いいえ」）、ビデオコーダは、Ｂ1をマージ候補リストへ挿入し得る（３１６）。一方、Ｂ1がＡ1もしくはＩＰＭＶＣに整合すると決定することに応答して（３１４の「はい」）、またはＢ1をマージ候補リストへ挿入した後、ビデオコーダは、Ｂ0が利用可能であるかどうかを決定し得る（３１８）。Ｂ0が利用可能であると決定することに応答して（３１８の「はい」）、ビデオコーダは、Ｂ0をマージ候補リストへ挿入し得る（３２０）。Ｂ0が利用可能でない場合（３１８の「いいえ」）、またはＢ0をマージ候補リストへ挿入した後、ビデオコーダは、ＩＤＭＶＣが利用可能でありＡ1またはＢ1に整合しないかどうかを決定し得る（３３２）。ＩＤＭＶＣは、現在ＰＵに関する視差ベクトルを規定し得る。ＩＤＭＶＣがビュー間参照ピクチャの境界の外部にあるロケーションを示す場合、ＩＤＭＶＣは利用不可能であり得る。ＩＤＭＶＣが利用可能でありＡ1またはＢ1に整合しないと決定することに応答して（３３２の「はい」）、ビデオコーダは、ＩＤＭＶＣをマージ候補リストへ挿入し得る（３３４）。ＩＤＭＶＣが利用可能でないか、またはＩＤＭＶＣがＡ1もしくはＢ1に整合する場合（３３２の「いいえ」）、あるいはＩＤＭＶＣをマージ候補リストへ挿入した後、ビデオコーダは、図１２に示す動作３００の部分（「Ａ」によって示される）を実行し得る。
【０１６７】
[0182]図１２は、本開示の１つまたは複数の技法による、現在ブロックに関するマージ候補リストを構成するための、図１１の例示的な動作３００の第２の部分を示すフローチャートである。上記で示したように、ＩＤＭＶＣが利用可能でないか、またはＩＤＭＶＣがＡ1もしくはＢ1に整合する場合（３３２の「いいえ」）、あるいはＩＤＭＶＣをマージ候補リストへ挿入した後、ビデオコーダは、図１２に示す動作３００の部分を実行し得る。したがって、ＩＤＭＶＣが利用可能でないか、またはＩＤＭＶＣがＡ1もしくはＢ1に整合する場合（３３２の「いいえ」）、あるいはＩＤＭＶＣをマージ候補リストへ挿入した後、ビデオコーダは、ＢＶＳＰが有効にされるかどうかを決定し得る（３３６）。ＢＶＳＰが有効にされる場合（３３６の「はい」）、ビデオコーダは、ＢＶＳＰ候補をマージ候補リストへ挿入し得る（３３８）。ＢＶＳＰが有効にされない場合（３３６の「いいえ」）、またはＢＶＳＰ候補をマージ候補リストへ挿入した後、ビデオコーダは、Ａ0が利用可能であるかどうかを決定し得る（３４０）。Ａ0が利用可能である場合（３４０の「はい」）、ビデオコーダは、Ａ0をマージ候補リストへ挿入し得る（３４２）。他の場合、Ａ0が利用可能でない場合（３４０の「いいえ」）、またはＡ0をマージ候補リストへ挿入した後、ビデオコーダは、Ｂ2が利用可能であるかどうかを決定し得る（３４４）。Ｂ2が利用可能である場合（３４４の「はい」）、ビデオコーダは、Ｂ2をマージ候補リストへ挿入し得る（３４６）。
【０１６８】
[0183]Ｂ2が利用可能でない場合（３４４の「いいえ」）、またはＢ2をマージ候補リストへ挿入した後、ビデオコーダは、ビュー間動き予測が適用されるかどうかを決定し得る（３４８）。言い換えれば、ビデオコーダは、現在ブロックがビュー間動き予測を使用してコーディングされ得るかどうかを決定し得る。ビュー間動き予測が適用されると決定することに応答して（３４８の「はい」）、ビデオコーダは、シフト候補を決定し得る（３５０）。言い換えれば、ビデオコーダは、本開示における他の場所に記載されるように、ＤＳＭＶ候補を決定し得る。シフト候補を決定した後、ビデオコーダは、シフト候補が利用可能であるかどうかを決定し得る（３５２）。シフト候補が利用可能である場合（３５２の「はい」）、ビデオコーダは、シフト候補をマージ候補リストの中に含めることができる（３５４）。ビュー間動き予測が適用されないか（３４８の「いいえ」）、シフト候補が利用可能でないか（３５２の「いいえ」）、またはシフト候補をマージ候補リストに含めた後の場合、ビデオコーダは、時間的マージング候補をマージ候補リストの中に含めることができる（３５６）。
【０１６９】
[0184]さらに、ビデオコーダは、結合双予測マージング候補のための導出プロセスを実行し得る（３５８）。本開示の１つまたは複数の技法による、結合双予測マージング候補のための例示的な導出プロセスが、図１３に関して以下に記載される。加えて、ビデオコーダは、ゼロ動きベクトル候補のための導出プロセスを実行し得る（３６０）。ゼロ動きベクトル候補のための例示的な導出プロセスは、ＨＥＶＣ  ＷＤ１０のセクション８．５．３．２．４に記載されている。
【０１７０】
[0185]図１３は、本開示の１つまたは複数の技法による、結合双予測マージング候補のための例示的な導出プロセスを示すフローチャートである。図１３の導出プロセスは、いかなるＢＶＳＰフラグも検査することなく実行され得る。たとえば、図１３の導出プロセスは、３Ｄ−ＨＥＶＣドラフトテキスト１のセクションＨ．８．５．３．２．１において行われるように、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇを結合双予測マージング候補のための導出プロセスへの入力として提供することなく実行され得る。さらに、図１３の導出プロセスは、３Ｄ−ＨＥＶＣドラフトテキスト１のセクションＨ．８．５．３．２．３において行われるように、ｍｅｒｇｅＣａｎｄＩｓＶｓｐＦｌａｇを結合双予測マージング候補のための導出プロセスにおいて使用することなく実行され得る。
【０１７１】
[0186]図１３の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在スライス（すなわち、ビデオコーダが現在コーディングしているスライス）がＢスライスであるかどうかを決定し得る（４００）。現在スライスがＢスライスでない場合（４００の「いいえ」）、ビデオコーダは、結合双予測マージング候補のための導出プロセスを終了し得る。しかしながら、現在スライスがＢスライスであると決定することに応答して（４００の「はい」）、ビデオコーダは、マージング候補のリスト（すなわち、マージ候補リスト）の中のマージング候補の数が、５個よりも少ないかどうかを決定し得る（４０２）。マージング候補のリストの中のマージング候補の数が５個以上の場合、ビデオコーダは、結合双予測マージング候補のための導出プロセスを終了し得る。
【０１７２】
[0187]一方、マージング候補のリストの中のマージング候補の数が５個よりも少ないと決定することに応答して（４０２の「はい」）、ビデオコーダは、組合せインデックス（たとえば、ｃｏｍｂＩｄｘ）の値を０に設定し得る（４０４）。ビデオコーダは、次いで、組合せインデックスの現在の値に対応する動きベクトルが利用可能であるかどうかを決定し得る（４０６）。
【０１７３】
[0188]組合せインデックスの現在の値に対応する動きベクトルが利用可能であると決定することに応答して（４０６の「はい」）、ビデオコーダは、組合せインデックスの現在の値に関連付けられた結合双予測マージング候補を、マージング候補のリストの中に含めることができる（４０８）。組合せインデックスの現在の値に関連付けられた結合双予測マージング候補は、ＲｅｆＰｉｃＬｉｓｔ０動き情報とＲｅｆＰｉｃＬｉｓｔ１動き情報とを、表１に従って規定し得る。
【０１７４】
[0189]さらに、ビデオコーダは、組合せインデックスの現在の値が（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しいかどうかを決定し得、ここで、ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄは、図１３の導出プロセスを呼び出す前のマージング候補のリストの中のマージング候補の数を示す（４１０）。組合せインデックスの現在の値が（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しい場合（４１０の「はい」）、ビデオコーダは、結合双予測マージング候補のための導出プロセスを終了し得る。一方、組合せインデックスの現在の値が（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しくない場合（４１０の「いいえ」）、ビデオコーダは、マージング候補のリストの中のマージング候補の合計数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しいかどうかを決定し得る（４１２）。本開示における他の場所に示すように、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、マージング候補のリストの中のマージング候補の最大数を示す。マージング候補のリストの中のマージング候補の合計数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しい場合（４１２の「はい」）、ビデオコーダは、結合双予測マージング候補のための導出プロセスを終了し得る。
【０１７５】
[0190]しかしながら、マージング候補のリストの中のマージング候補の合計数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しくないと決定することに応答して（４１２の「いいえ」）、または組合せインデックスの現在の値に対応する動きベクトルが利用可能でないと決定することに応答して（４０６の「いいえ」）、ビデオコーダは、組合せインデックスの現在の値をインクリメントし得る（４１４）。ビデオコーダは、次いで、組合せインデックスのインクリメントされた値に関してアクション（４０６）〜（４１４）を実行し得る。このようにして、組合せインデックスの現在の値が（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ＊（ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄ−１））に等しくなるまで、またはマージリストの中の全候補の数（新たに生成された結合双予測マージング候補を含む）がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに等しくなるまで、結合双予測マージング候補を導出することを継続し得る。
【０１７６】
[0191]図１４Ａは、本開示の１つまたは複数の技法による、ビデオブロックを符号化するためのビデオエンコーダ２０の例示的な動作を示すフローチャートである。図１４Ａの例では、ビデオエンコーダ２０は、マージング候補のリストを生成し得る（４５０）。言い換えれば、ビデオエンコーダ２０は、マージ候補リストを生成し得る。図１４Ａの例では、ビデオエンコーダ２０は、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る（４５２）。いくつかの例では、ビデオエンコーダ２０は、このステップにおいて、リストの中のマージング候補の数が５個よりも少ないかどうか、およびリストの中のマージング候補の最大数が５よりも大きい（たとえば、６に等しい）かどうかを決定し得る。リストの中のマージング候補の数が５個よりも少ないと決定することに応答して（４５２の「はい」）、ビデオエンコーダ２０は、１つまたは複数の結合双予測マージング候補を導出し得（４５４）、１つまたは複数の結合双予測マージング候補を、マージング候補のリストの中に含めることができる（４５６）。１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、リストの中にすでにあるマージング候補のそれぞれのペアに対応し得る。それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであってよい。第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリスト（たとえば、リスト０およびリスト１）の中のピクチャを指す。一方、いくつかの例では、リストの中のマージング候補の数が５個以上の場合（４５２の「いいえ」）、ビデオエンコーダ２０は、いかなる結合双予測マージング候補もリストの中に含めない（４５８）。
【０１７７】
[0192]いくつかの例では、ビデオエンコーダ２０は、利用可能な場合、ＩＰＭＶＣをマージング候補のリストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、１つまたは複数の結合双予測マージング候補を導出し得る。空間的マージング候補のための導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補のリストの中に挿入し得る。時間的マージング候補のための導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補のリストに追加し得る。
【０１７８】
[0193]さらに、図１４Ａの例では、ビデオエンコーダ２０は、マージング候補のリストの中の候補を選択し得る（４６０）。いくつかの例では、ビデオエンコーダ２０は、ビットストリームの中でシグナリングされるシンタックス要素によって示される値に基づいて、選択された候補を決定し得る。加えて、ビデオエンコーダ２０は、選択されたマージング候補の、マージング候補のリストの中での位置をシグナリングし得る（４６２）。ビデオエンコーダ２０は、選択された候補に基づいて、ビデオブロックを符号化し得る（４６４）。ビデオエンコーダ２０は、本開示における他の場所で提供される例のうちの１つまたは複数に従って、ビデオブロックを符号化し得る。
【０１７９】
[0194]図１４Ｂは、本開示の１つまたは複数の技法による、ビデオブロックを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図１４Ｂの例では、ビデオデコーダ３０は、マージング候補のリストを生成し得る（４８０）。図１４Ｂの例では、ビデオデコーダ３０は、リストの中のいくつかのマージング候補が５個よりも少ないかどうかを決定し得る（４８２）。いくつかの例では、ビデオデコーダ３０は、このステップにおいて、リストの中のマージング候補の数が５個よりも少ないかどうか、およびリストの中のマージング候補の最大数が５よりも大きい（たとえば、６に等しい）かどうかを決定し得る。リストの中のマージング候補の数が５個よりも少ないと決定することに応答して（４５２の「はい」）、ビデオデコーダ３０は、１つまたは複数の結合双予測マージング候補を導出し得る（４８４）。１つまたは複数の結合双予測マージング候補の各それぞれの結合双予測マージング候補は、リストの中にすでにあるマージング候補のそれぞれのペアに対応し得る。それぞれの結合双予測マージング候補は、それぞれのペアの第１のマージング候補の動きベクトルと、それぞれのペアの第２のマージング候補の動きベクトルとの組合せであってよい。第１のマージング候補の動きベクトルおよび第２のマージング候補の動きベクトルは、異なる参照ピクチャリスト（たとえば、リスト０およびリスト１）の中のピクチャを指す。ビデオデコーダ３０は、１つまたは複数の結合双予測マージング候補を、リストの中に含めることができる（４８６）。一方、いくつかの例では、リストの中のマージング候補の数が５個以上の場合（４８２の「いいえ」）、ビデオデコーダ３０は、いかなる結合双予測マージング候補もリストの中に含めない（４８８）。
【０１８０】
[0195]いくつかの例では、ビデオデコーダ３０は、利用可能な場合、ＩＰＭＶＣをマージング候補のリストの中に挿入した後、空間的マージング候補のための導出プロセスを実行した後、および時間的マージング候補のための導出プロセスを実行した後、１つまたは複数の結合双予測マージング候補を導出し得る。空間的マージング候補のための導出プロセスは、４個までの空間的動きベクトル候補を導出しマージング候補のリストの中に挿入し得る。時間的マージング候補のための導出プロセスは、利用可能な場合、時間的動きベクトル予測子（ＴＭＶＰ）候補をマージング候補のリストに追加し得る。
【０１８１】
[0196]さらに、図１４Ｂの例では、ビデオデコーダ３０は、マージング候補のリストの中の選択された候補を決定し得る（４９０）。いくつかの例では、ビデオデコーダ３０は、ビットストリームの中でシグナリングされるシンタックス要素によって示される値に基づいて、選択された候補を決定し得る。たとえば、ビデオデコーダ３０は、マージング候補のリストの中の選択されたマージング候補を示すシンタックス要素を、ビットストリームから取得し得る。ビデオデコーダ３０は、選択された候補に基づいて、ビデオブロックを復号し得る（４９２）。たとえば、ビデオデコーダ３０は、現在ＰＵの予測サンプルを生成するために、選択された候補の動き情報を使用し得る。ビデオデコーダ３０は、本開示における他の場所で提供される例のうちの１つまたは複数に従って、ビデオブロック（たとえば、ＣＵ、ＰＵなど）を復号し得る。
【０１８２】
[0197]以下の段落は、本開示の追加の例を提供する。
【実施例１】
【０１８３】
[0198]ビデオデータをコーディングする方法であって、方法は、３次元のビデオデータと関連しないビデオブロックをコーディングするための第１のプロセスに従って、マージング候補の第１のリストを生成すること、ここにおいて、第１のリストは、１つまたは複数の双予測マージング候補を含む、と、３次元のビデオデータと関連したビデオブロックをコーディングするための第２のプロセスに従って、マージング候補の第２のリストを生成すること、ここにおいて、第２のリストは、１つまたは複数の双予測マージング候補を含む、と、を備え、ここにおいて、第１のプロセスおよび第２のプロセスは同じである。
【実施例２】
【０１８４】
[0199]実施例１の方法であって、第１のリストを生成することおよび第２のリストを生成することは、次の条件、すなわち、いくつかの利用可能なマージング候補が５個よりも少ないことを満たすときのみ、行われる。
【実施例３】
【０１８５】
[0200]実施例１または２のいずれかの方法であって、任意のマージリストを生成するための導出プロセスを呼び出す前に、マージングＭＶＰ候補の最大数を定義することをさらに備える。
【実施例４】
【０１８６】
[0201]実施例４の方法であって、マージングＭＶＰキャンディドデイトの最大数は、サブサンシャリー次のように、すなわち、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄと定義され、次いで、このプロセスが呼び出された後、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、
ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ＝５−ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＋ｉｖ_ｍｖ＿ｐｒｅｄ＿ｆｌａｇ［ｎｕｈ＿ｌａｙｅｒ＿ｉｄ］．
に戻され設定される。
【実施例５】
【０１８７】
[0202]３次元（３Ｄ）ビデオと関連したデータをコーディングする方法であって、方法は、３Ｄビデオと関連したビデオブロックをコーディングするためのマージング候補のリストを生成することを備え、ここにおいて、リストは、１つまたは複数の双予測マージング候補を含み、マージング候補の最大数が６に等しく、結合双予測マージング候補の導出プロセスが呼び出される前に、定義された５個の候補が存在するとき、ゼロ候補が生成されリストの中に含められ、ゼロ候補は、参照インデックスおよび動きベクトル構成要素を０として定義する。
【実施例６】
【０１８８】
[0203]３次元（３Ｄ）ビデオと関連したデータをコーディングする方法であって、方法は、３Ｄビデオと関連したビデオブロックをコーディングするためのマージング候補のリストを生成することを備え、ここにおいて、リストは、１つまたは複数の双予測マージング候補を含み、リストを生成する前に、マージング候補の最大数は５に設定され、候補のうちの４個はマージリスト導出プロセスへの入力であり、１つの候補はマージリスト導出プロセスの間に新たに生成される。
【実施例７】
【０１８９】
[0204]実施例６の方法であって、新たに生成された候補は、リストの中で第５の候補として順序付けられる。
【実施例８】
【０１９０】
[0205]実施例６の方法であって、マージリスト導出プロセスが、非ゼロの新たに生成される候補を生成できない場合、マージリスト導出プロセスは、新たに生成される候補としてゼロ値の候補を生成する。
【０１９１】
[0206]１つまたは複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体または（２）信号またはキャリア波のような通信媒体に相当し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１９２】
[0207]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、キャリア波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０１９３】
[0208]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等の集積された論理回路もしくは個別の論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用するように、前述の構造のいずれか、または本明細書で説明された技法の実装に適した任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成されるか、または組み合わされたコーデックに組み込まれる、専用のハードウェアおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つまたは複数の回路または論理素子において完全に実装され得る。
【０１９４】
[0209]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技法を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられるか、または上記で説明したような１つまたは複数のプロセッサを含む、好適なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
【０１９５】
[0210]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
【図１】
2016536817.tif 000005
【図２】
2016536817.tif 000006
【図４】
2016536817.tif 000007
【図５】
2016536817.tif 000008
【図６】
2016536817.tif 000009
【図７】
2016536817.tif 000010
【図８】
2016536817.tif 000011
【図９】
2016536817.tif 000012
【図１０Ａ】
2016536817.tif 000013
【図１０Ｂ】
2016536817.tif 000014
【図１１】
2016536817.tif 000015
【図１２】
2016536817.tif 000016
【図１３】
2016536817.tif 000017
【図１４Ａ】
2016536817.tif 000018
【図１４Ｂ】
2016536817.tif 000019
【図３】
2016536817.tif 000020
【国際調査報告】
2016536817.tif 000021
2016536817.tif 000022