(57)【要約】デバイスは、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定する。視差ベクトル導出プロセスを実行することの一部として、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、デバイスは、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換する。視差ベクトル導出プロセスにおいてチェックされる隣接ブロックの数は低減され、その結果、潜在的に、複雑度とメモリ帯域幅要件が引き下げられる。【選択図】図１３
2016504864.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって再構成することと、
を備える方法。
【請求項２】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１に記載の方法。
【請求項３】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備える請求項２に記載の方法。
【請求項４】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備える請求項２に記載の方法。
【請求項５】
ビデオデータを符号化する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対して前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成することと、
を備える方法。
【請求項６】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項５に記載の方法。
【請求項７】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備える請求項６に記載の方法。
【請求項８】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備える請求項６に記載の方法。
【請求項９】
ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータの現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行するように構成された１つまたは複数のプロセッサと、を備え、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、デバイス。
【請求項１０】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項９に記載のデバイス。
【請求項１１】
前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第１の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第２の空間的隣接ブロックをチェックするように構成される請求項１０に記載のデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第２の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第１の空間的隣接ブロックをチェックするように構成される請求項１０に記載のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって、再構成するようにさらに構成される請求項９に記載のデバイス。
【請求項１４】
前記１つまたは複数のプロセッサは、前記現在のブロックに対する前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成するようにさらに構成される請求項９に記載のデバイス。
【請求項１５】
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行する手段と、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用する手段と、
を備えるデバイス。
【請求項１６】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１５に記載のデバイス。
【請求項１７】
命令が記憶されている非一時的コンピュータ可読データ記憶媒体であって、前記命令は実行されたときに、１つまたは複数のプロセッサに、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用することと、
を行わせる、非一時的コンピュータ可読データ記憶媒体。
【請求項１８】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１１に記載の非一時的コンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれている、２０１２年１２月１４日に出願した米国仮特許出願第６１／７３７，６３９号の利益を主張するものである。
【技術分野】
【０００２】
本開示は、ビデオの符号化と復号とに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタル直接放送システム、ワイヤレス放送システム、携帯情報端末（ＰＤＡ）、ラップトップもしくはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラー方式または衛星方式の無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範なデバイスに組み込まれ得る。デジタルビデオデバイスでは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオコーディング（ＡＶＣ）、現在策定中の高効率ビデオコーディング（ＨＥＶＣ）規格、およびそのような規格の拡張によって定義される規格に記述されているようなビデオ圧縮技術を実装する。ビデオデバイスは、そのようなビデオ圧縮技術を実装することによってデジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、かつ／または格納することができる。
【０００４】
[0004]ビデオ圧縮技術は、ビデオシーケンスに固有の冗長性を減らすか、または取り除くために空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）がいくつかのブロックに分割され得る。ピクチャのイントラコーディングされた（Ｉ）スライス内のブロックは、同じピクチャ内の隣接ブロック内の基準サンプルに関して空間予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス内のブロックでは、同じピクチャ内の隣接ブロック内の基準サンプルに関する空間予測または他の基準ピクチャ内の基準サンプルに関する時間予測を使用することができる。ピクチャは、フレームと称され、基準ピクチャは、基準フレームと称され得る。
【０００５】
[0005]空間または時間予測の結果、ブロックに対する予測ブロックがコーディングされる。残差データは、コーディングされる元のブロックと予測ブロックとの間のピクセル差を表す。インターコーディングされたブロックは、予測ブロックを形成する基準サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差を示す。イントラコーディングされたブロックはイントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、その結果、残差係数が得られ、次いで、残差係数が量子化され得る。量子化された係数は、最初に２次元配列に構成されており、係数の１次元ベクトルを生成するためにスキャンされ、エントロピーコーディングが、なおいっそうの圧縮を行うために適用され得る。
【０００６】
[0006]たとえば、複数の視点からのビューを符号化することによって、マルチビューコーディングビットストリームが生成され得る。マルチビューコーディングの態様を使用するいくつかの３次元（３Ｄ）ビデオ規格が開発されている。たとえば、異なるビューが、３Ｄビデオをサポートするように左右の目のビューを伝達することができる。代替的に、いくつかの３Ｄビデオコーディングプロセスは、いわゆるマルチビュープラス奥行きコーディングを適用することができる。マルチビュープラス奥行きコーディングでは、３Ｄビデオビットストリームは、テクスチャビューコンポーネントだけでなく、奥行きビューコンポーネントをも含み得る。たとえば、各ビューは、１つのテクスチャビューコンポーネントと１つの奥行きビューコンポーネントとを備え得る。
【発明の概要】
【０００７】
[0007]一般に、本開示は、マルチビューと３次元ビデオコーディングとに関する。特に、本開示では、現在のブロックに対する視差ベクトルを決定するための視差ベクトル導出プロセスについて説明する。視差ベクトル導出プロセスを実行することの一部として、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルは、現在のブロックに対する視差ベクトルに変換される。いくつかの例では、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない。このようにして、視差ベクトル導出プロセスにおいてチェックされる隣接ブロックの数は低減され、その結果、潜在的に、複雑度およびメモリ帯域幅要件が低減され得る。
【０００８】
[0008]一例において、本開示では、ビデオデータを復号する方法について説明しており、この方法は、現在のブロックに対する視差ベクトルを導出するために視差ベクトル導出プロセスを実行することと、ここで、視差ベクトル導出プロセスを実行することは、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することを備え、ここで、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定せず、現在のブロックに対するサンプルブロックを、一部は、導出された視差ベクトルに基づいて現在のブロックに対するビュー間予測を実行することによって再構成することと、を備える。
【０００９】
[0009]別の例において、本開示では、ビデオデータを符号化する方法について説明しており、この方法は、現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、視差ベクトル導出プロセスを実行することは、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することを備え、ここで、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定せず、現在のブロックに対して導出された視差ベクトルに一部基づいて、現在のブロックの符号化された表現を生成することと、を備える。
【００１０】
[0010]別の例において、本開示では、ビデオデータを記憶するように構成されたメモリと、ビデオデータの現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行するように構成された１つまたは複数のプロセッサと、を備え、視差ベクトル導出プロセスを実行することは、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することを備え、ここで、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、デバイスについて説明する。
【００１１】
[0011]別の例において、本開示では、現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行する手段と、ここで、視差ベクトル導出プロセスを実行することは、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することを備え、ここで、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定せず、ビュー間予測を実行するために、現在のブロックに対する視差ベクトルを使用する手段と、を備えるデバイスについて説明する。
【００１２】
[0012]別の例において、本開示は、実行されたときに、１つまたは複数のプロセッサに、現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、視差ベクトル導出プロセスを実行することは、第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することを備え、ここで、視差ベクトル導出プロセスは、第１および第２の空間的隣接ブロックのどちらもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定せず、ビュー間予測を実行するために、現在のブロックに対する視差ベクトルを使用することと、を行わせる命令が記憶されている非一時的コンピュータ可読データ記憶媒体について説明する。
【００１３】
[0013]開示の１つまたは複数の例の詳細が、添付図面と以下の説明とで述べられている。他の特徴と、目的と、利点とは、説明と、図面と、請求項とから明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】本開示で説明されている技術を利用することができる例示的なビデオコーディングシステムを示すブロック図。
【図２】現在のＰＵに関する例示的な空間的隣接予測ユニット（ＰＵ）を示す概念図。
【図３】例示的なマルチビュー復号順序を示す概念図。
【図４】マルチビューコーディングのための例示的な予測構造体を示す概念図。
【図５】時間的候補ピクチャの対応するＰＵにおける例示的な時間的隣接要素を示す概念図。
【図６】本開示で説明されている技術を実装することができる例示的なビデオエンコーダを示すブロック図。
【図７】本開示で説明されている技術を実装することができる例示的なビデオデコーダを示すブロック図。
【図８】コーディングユニット（ＣＵ）と同一である２Ｎ×２ＮのＰＵにおける例示的な空間的隣接要素と時間的隣接要素とを示す概念図。
【図９】ＣＵの第１のＰＵがＣＵに対する代表的ＰＵである隣接ブロックベース視差ベクトル（Neighboring Blocks-based Disparity Vector）（ＮＢＤＶ）導出プロセスで使用される例示的な空間的隣接ブロックと時間的隣接ブロックとを示す概念図。
【図１０】本開示の１つまたは複数の技術による、ビデオコーダの例示的なオペレーションを示す流れ図。
【図１１Ａ】本開示の１つまたは複数の技術による、ビュー間動き予測を実行するためのビデオエンコーダの例示的なオペレーションを示す流れ図。
【図１１Ｂ】本開示の１つまたは複数の技術による、ビュー間動き予測を実行するためのビデオデコーダの例示的なオペレーションを示す流れ図。
【図１２Ａ】本開示の１つまたは複数の技術による、ビュー間残差予測を実行するためのビデオエンコーダの例示的なオペレーションを示す流れ図。
【図１２Ｂ】本開示の１つまたは複数の技術による、ビュー間残差予測を実行するためのビデオデコーダの例示的なオペレーションを示す流れ図。
【図１３】２つのＰＵに対する例示的な左の空間的隣接ブロックと上の空間的隣接ブロックとを示す概念図。
【図１４】ＮＢＤＶ導出プロセスで使用される左、上、および左上の空間的隣接ブロックを示す概念図。
【図１５】本開示の１つまたは複数の技術による、ビデオコーダの例示的なオペレーションを示す流れ図。
【図１６】本開示の一例による、現在のブロックに対する視差ベクトルを決定するためのビデオコーダの例示的なオペレーションを示す流れ図。
【図１７】本開示の１つまたは複数の技術による、現在のブロックに対する視差ベクトルを決定するためのビデオコーダの例示的なオペレーションを示す流れ図。
【図１８】図１７に示されているオペレーションの例示的な継続を示す流れ図。
【発明を実施するための形態】
【００１５】
[0034]高効率ビデオコーディング（ＨＥＶＣ）は、新しく開発されたビデオコーディング規格である。３Ｄ−ＨＥＶＣは、３次元（３Ｄ）ビデオデータに対するＨＥＶＣの拡張である。３Ｄ−ＨＥＶＣは、異なる視点からの同じシーンの複数のビューを構成する。３Ｄ−ＨＥＶＣに対する標準化の取組みは、ＨＥＶＣに基づくマルチビュービデオコーデックの標準化を含む。３Ｄ−ＨＥＶＣでは、異なるビューから再構成されたビューコンポーネント（すなわち、再構成ピクチャ）に基づくビュー間予測がイネーブルされる。さらに、３Ｄ−ＨＥＶＣは、ビュー間動き予測とビュー間残差予測とを実装する。
【００１６】
[0035]ビデオの同じ時間インスタンスを表す各ビューのピクチャは、類似のビデオコンテンツを含む。しかしながら、ビューのビデオコンテンツは、互いに関して空間的に変位され得る。特にビューのビデオコンテンツは、異なる視点を表し得る。たとえば、第１のビュー内のピクチャ内のビデオブロックは、第２のビュー内のピクチャ内のビデオブロックに類似しているビデオコンテンツを含み得る。この例では、第１のビュー内のピクチャ内のビデオブロックの位置と第２のビュー内のピクチャ内のビデオブロックの位置は、異なり得る。たとえば、異なるビュー内のビデオブロックの位置の間にはある程度の変位があり得る。
【００１７】
[0036]ビデオブロックに対する視差ベクトルは、この変位の尺度を与える。たとえば、第１のビュー内のピクチャのビデオブロックは、第２のビュー内のピクチャ内の対応するビデオブロックの変位を示す視差ベクトルに関連付けられ得る。
【００１８】
[0037]ビデオブロックに対する視差ベクトルを導出する一技術は、隣接ブロック視差ベクトル（ＮＢＤＶ）導出と称される。ＮＢＤＶ導出技術では、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、現在のブロックの隣接要素であるブロックを評価して、隣接ブロックのどれかが異なるビュー内のピクチャとともにインター予測されているかどうかを決定する。たとえば、マルチビューコーディングは、ビュー間予測を行う。ビュー間予測では、第１のビュー内のピクチャ内のビデオブロックは、第２の異なるビュー内のピクチャ内のデータ（たとえば、ビデオブロック）とともにインター予測される。ビュー間予測は、インター予測に類似し、ここにおいて、インター予測とビュー間予測の両方において、ピクチャ内のビデオブロックは、別のピクチャ内のビデオブロックとともにインター予測される。しかしながら、通常のインター予測では、ピクチャは同じビューからのものであるが、ビュー間予測では、ピクチャは異なるビューからのものである。
【００１９】
[0038]ビュー間動き補償と、ビュー間動き予測と、ビュー間残差予測とを含む、いくつかの形態のビュー間予測がある。ビュー間動き補償では、ビデオコーダは、ビュー間予測されているブロックに対する動きベクトルを決定することができる。混同を避けるために、ビュー間予測に使用される動きベクトルは、この動きベクトルが異なるビュー内のピクチャを指しているので、視差動きベクトルと称される。通常のインター予測に使用される動きベクトルは、この動きベクトルが同じビュー内であるが、異なる時間インスタンスにあるピクチャを指しているので、時間的動きベクトルと称される。
【００２０】
[0039]視差動きベクトルは、現在のブロックのビュー間動き補償に使用されるブロックを識別する。その一方で、視差ベクトルは、現在のブロックのものと類似のビデオコンテンツを含む異なるビュー内のピクチャ内のブロックを識別する。視差動きベクトルの目的と異なる視差ベクトルの様々な目的があり得る。しかしながら、視差ベクトルは、視差動きベクトルと同じ目的に使用されることも可能であると思われるが、その場合、視差ベクトルと視差動きベクトルとは同じになる。しかしながら、一般に、視差ベクトルと視差動きベクトルとは、異なるベクトルであり、異なる目的に使用され得る。
【００２１】
[0040]ＮＢＤＶ導出技術において、ビデオコーダは、現在のブロックの隣接ブロックを評価し、隣接ブロックのどれかが視差動きベクトルとともにビュー間予測されているかどうかを決定する。隣接ブロックが、視差動きベクトルとともにビュー間予測されている場合、ビデオコーダは、隣接ブロックに対する視差動きベクトルを現在のブロックに対する視差ベクトルに変換することができる。たとえば、ビデオコーダは、視差動きベクトルの水平成分を保持し、視差動きベクトルの垂直成分を０に設定することによって隣接ブロックに対する視差動きベクトルを現在のブロックに対する視差ベクトルに変換することができる。他の例では、ビデオコーダは、隣接ブロックに対する視差動きベクトルを現在のブロックに対する視差ベクトルに変換するときに垂直成分を０以外の値に設定することができる。隣接ブロックは、現在のブロックと同じピクチャ内にブロックを含み得る（たとえば、空間的隣接ブロック）。そのような空間的隣接ブロックは、視差動きベクトルとともにビュー間予測されるものとしてよく、現在のブロックに対する視差ベクトルを形成し得る空間的隣接ブロックに対する視差動きベクトルは、空間的視差ベクトル（ＳＤＶ）と称される。いくつかの例では、隣接ブロックは、現在のブロックが置かれているピクチャと異なるピクチャ内にブロックを含み得る（たとえば、時間的隣接ブロック）。そのような時間的隣接ブロックは、視差動きベクトルとともにビュー間予測されるものとしてよく、現在のブロックに対する視差ベクトルを形成し得る時間的隣接ブロックに対する視差動きベクトルは、時間的視差ベクトル（ＴＤＶ）と称される。
【００２２】
[0041]いくつかの例では、ビデオコーダは、ＮＢＤＶ導出を実行する一環として、隣接ブロックの暗黙的視差ベクトル（ＩＤＶ）に基づいて現在のブロックに対する視差ベクトルを決定することができる。上で示されているように、ビデオコーダがＮＢＤＶ導出を実行するときに、ビデオコーダは、視差動きベクトルについて隣接ブロックをチェックする。ビデオコーダが視差動きベクトルについて隣接ブロックをチェックするときに、ビデオコーダは、隣接ブロックがＩＤＶを有しているかどうかも決定することができる。隣接ブロックが、ＩＤＶを有している場合、ビデオコーダは、隣接ブロックがＩＤＶを有していることを示すように隣接ブロックに対するＩＤＶフラグを設定することができる。視差動きベクトルについて隣接ブロックの各々をチェックした後に、ビデオコーダが、隣接ブロックのどれも視差動きベクトルを有していないと決定した場合、ビデオコーダは、隣接ブロックのＩＤＶフラグを使用して、ＩＤＶを有している隣接ブロックを識別することができる。次いで、ビデオコーダは、ＩＤＶを現在のブロックに対する視差ベクトルに変換することができる。隣接ブロックに対するＩＤＶは、隣接ブロックの予測（すなわち、コーディング）時に隣接ブロックについて導出された視差ベクトルであり得る。
【００２３】
[0042]現在のブロックに対する視差ベクトルを導出することについての上記の説明から、現在のブロックに対する視差ベクトルの導出は、計算集約的（computationally intensive）であり、すでにコーディングされている隣接ブロックに対する視差動きベクトルとＩＤＶとを決定するためにメモリに対する複数回の呼び出しを必要とする場合があることが知られ得る。本開示で説明されている１つまたは複数の技術によれば、ブロックごとに視差ベクトルを導出する代わりに、ビデオコーダは、ブロックのグループについて視差ベクトルを導出し、導出された視差ベクトルをブロックのグループ内のブロックの各々に対する視差ベクトルとして使用し得る。
【００２４】
[0043]たとえば、上で説明されているように、コーディングユニット（ＣＵ）は、複数の予測ユニット（ＰＵ）に分割され得る。本開示で説明されている１つまたは複数の技術によれば、ＣＵ内の各ＰＵについて視差ベクトルを導出する代わりに、ビデオコーダは、ＣＵの代表的ＰＵに対する視差ベクトルを導出することができる。この例では、ビデオコーダは、ＣＵの各ＰＵに対する視差ベクトルを別々に導出する代わりに、導出された視差ベクトル（すなわち、代表的ＰＵに対する視差ベクトル）をＣＵ内のＰＵの各々に割り当てることができる。さらに、ビデオコーダは、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することができる。
【００２５】
[0044]上で説明されているように、ビデオコーダは、隣接ブロックを評価し、隣接ブロックのどれかが視差動きベクトルとともにビュー間予測されているかどうかを決定する。本開示のいくつかの例示的な技術では、ビデオコーダがＮＢＤＶ導出時に評価する隣接ブロックの数を制限している。たとえば、ビデオコーダが、視差ベクトル導出プロセス（たとえば、ＮＢＤＶ導出）を実行し、第１または第２のいずれかの空間的隣接ブロックが、視差動きベクトルまたはＩＤＶを有している場合に、ビデオコーダは、視差動きベクトルまたはＩＤＶを現在のブロックに対する視差ベクトルに変換し得る。しかしながら、視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたはＩＤＶを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかを決定しない。そこで、第１および第２の空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかに関係なく、ビデオコーダは、追加の空間的隣接ブロックをチェックしない。
【００２６】
[0045]さらに、本開示の１つまたは複数の技術は、ＩＤＶが処理される仕方を修正することができる。たとえば、いくつかの技術において、ビデオコーダは、ＩＤＶフラグを利用して、隣接ブロックがＩＤＶを有するかどうかを示す。ＩＤＶフラグを格納することは、必要でない場合がある。むしろ、本開示の１つまたは複数の技術によれば、ビデオコーダは、範囲外情報（たとえば、不正な値）を使用して、すでにコーディングされている隣接ブロックについてＩＤＶが存在しているかどうかを決定することができる。たとえば、すでにコーディングされている隣接ブロックがそのような範囲外情報を有しているかどうかに応じて、ビデオコーダは、隣接ブロックに対してＩＤＶが存在しているかどうかを決定することができる。
【００２７】
[0046]図１は、本開示の技術を利用することができる例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用されているように、「ビデオコーダ」という用語は、一般的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、一般的に、ビデオ符号化またはビデオ復号を指すものとしてよい。
【００２８】
[0047]図１に示されているように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化ビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と称され得る。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号することができる。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と称され得る。ソースデバイス１２と宛先デバイス１４とは、ビデオコーディングデバイスまたはビデオコーディング装置の例としてよい。
【００２９】
[0048]ソースデバイス１２と宛先デバイス１４とは、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話送受器、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーム機、車載コンピュータなどを含む、広範なデバイスを備えるものとしてよい。
【００３０】
[0049]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信することができる。チャネル１６は、符号化ビデオデータをソースデバイス１２からステーションデバイス１４に移動することができる１つまたは複数の媒体またはデバイスを備えることができる。一例において、チャネル１６は、ソースデバイス１２が符号化ビデオデータを直接、宛先デバイス１４にリアルタイムで送信することを可能にする１つまたは複数の通信媒体を備えることができる。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの、通信規格に従って符号化ビデオデータを変調することができ、変調ビデオデータを宛先デバイス１４に送信することができる。１つまたは複数の通信媒体は、高周波（ＲＦ）スペクトルなどのワイヤレスおよび／または有線通信媒体、または１つまたは複数の物理的伝送路を含み得る。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（たとえば、インターネット）などの、パケットベースのネットワークの一部をなすものとしてよい。１つまたは複数の通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を円滑にする他の機器を含み得る。
【００３１】
[0050]別の例において、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを格納するストレージ媒体を含み得る。この例では、宛先デバイス１４は、たとえば、ディスクアクセスまたはカードアクセスを介して、ストレージ媒体にアクセスすることができる。ストレージ媒体は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを格納するための他の好適なデジタルストレージ媒体などの、様々なローカルでアクセスされるデータストレージ媒体を含み得る。
【００３２】
[0051]さらなる例において、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを格納するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介してファイルサーバまたは他の中間ストレージデバイスに格納されている符号化ビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを格納し、符号化ビデオデータを宛先デバイス１４に送信することができる種類のサーバとすることができる、ファイルサーバの例として、ウェブサーバ（たとえば、ウェブサイト用）、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブが挙げられる。
【００３３】
[0052]宛先デバイス１４は、インターネット接続などの、標準的なデータ接続を通じて符号化ビデオデータにアクセスすることができる。データ接続の種類の例として、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、デジタル加入者回線（ＤＳＬ）、ケーブルモデムなど）、またはファイルサーバ上に格納されている符号化ビデオデータにアクセスするのに適している両方の組合せが挙げられ得る。ファイルサーバからの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または両方の組合せであってよい。
【００３４】
[0053]本開示の技術は、ワイヤレスアプリケーションまたは設定に制限されない。これらの技術は、オーバーザエアテレビ放送、ケーブルテレビ伝送、衛星テレビ伝送、たとえば、インターネットを介した、ストリーミングビデオ伝送、データストレージ媒体上に格納するためのビデオデータの符号化、データストレージ媒体上に格納されているビデオデータの復号、または他のアプリケーションなどの様々なマルチメディアアプリケーションのサポートにおいてビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などのアプリケーションをサポートするために一方向または双方向のビデオ伝送をサポートするように構成され得る。
【００３５】
[0054]図１は単なる例であり、本開示の技術は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含まないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データ（たとえば、符号化および／または復号されたビデオデータなどのビデオデータ）は、たとえば、ローカルメモリから取り出されるか、ネットワーク上でストリーミング配信される。ビデオ符号化デバイスは、データを符号化してメモリに格納することができ、かつ／またはビデオ復号デバイスは、メモリからデータを取り出して復号することができる。多くの例において、符号化と復号とは、互いに通信しないが、単に、データを符号化してメモリに入れ、かつ／またはメモリからデータを取り出して復号するデバイスによって実行される。
【００３６】
[0055]図１の例において、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを備える。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信器を含み得る。ビデオソース１８は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、すでにキャプチャされているビデオデータを収めてあるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオ配信インターフェース、および／またはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【００３７】
[0056]ビデオエンコーダ２０は、ビデオソース１８からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス１２は、出力インターフェース２２を介して符号化ビデオデータを宛先デバイス１４に直接送信する。他の例では、符号化ビデオデータは、復号および／または再生のために宛先デバイス１４により後からアクセスできるようにストレージ媒体またはファイルサーバ上にも格納され得る。
【００３８】
[0057]図１の例において、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示デバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信器および／またはモデムを含む。入力インターフェース２８は、チャネル１６上で符号化ビデオデータを受信することができる。ビデオデコーダ３０は、符号化ビデオデータを復号し得る。表示デバイス３２は、復号ビデオデータを表示することができる。表示デバイス３２は、宛先デバイス１４と一体であるか、または宛先デバイス１４に外付けであってもよい。表示デバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または他の種類の表示デバイスなどの、様々な表示デバイスを備えることができる。
【００３９】
[0058]ビデオエンコーダ２０とビデオデコーダ３０とは、各々、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ハードウェア、またはこれらの任意の組合せなどの、様々な好適な回路のうちのどれかとして実装され得る。これらの技術が、部分的にソフトウェアにより実装される場合、デバイスは、ソフトウェアに対する命令を、好適な非一時的コンピュータ可読ストレージ媒体に格納することができ、１つまたは複数のプロセッサを使用して本開示の技術を実行することでハードウェアにより命令を実行することができる。前記のどれか（ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む）は、１つまたは複数のプロセッサであることが企図され得る。ビデオエンコーダ２０とビデオデコーダ３０との各々は、１つまたは複数のエンコーダまたはデコーダに含まれるものとすることもでき、これらのいずれかがそれぞれのデバイスにおいて組み合わされたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として集積化され得る。
【００４０】
[0059]本開示では、一般的に、ビデオエンコーダ２０がビデオデコーダ３０などの別のデバイスに特定の情報を「シグナリング」することを参照することがある。「シグナリング（する）」という用語は、一般的に、シンタックス要素および／または圧縮ビデオデータを復号するために使用される他のデータの通信を指すものとしてよい。そのような通信は、リアルタイムまたはほぼリアルタイムで行われ得る。代替的に、そのような通信は、ある長さの時間にわたって行われるものとしてよく、たとえば、符号化時に符号化ビットストリームでシンタックス要素をコンピュータ可読ストレージ媒体に格納するときに行われ、次いで、それらの要素はこの媒体に格納された後にいつでも復号デバイスによって取り出せる。
【００４１】
[0060]いくつかの例では、ビデオエンコーダ２０とビデオデコーダ３０とは、スケーラブルビデオ符号化（ＳＶＣ）拡張、マルチビュービデオコーディング（ＭＶＣ）拡張、ＭＶＣベース３ＤＶ拡張を含むＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ビジュアルおよびＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）などのビデオ圧縮規格に従って動作する。さらに、Ｈ．２６４／ＡＶＣへの３次元ビデオ（３ＤＶ）コーディング拡張、すなわちＡＶＣベース３ＤＶを作成する取組みが進行中である。Ｈ．２６４のＭＶＣ拡張の共同ドラフトは、「オーディオビジュアルサービス全般のための高度ビデオコーディング方式」、ＩＴＵ−Ｔ勧告Ｈ．２６４、２０１０年３月において説明されている。他の例では、ビデオエンコーダ２０とビデオデコーダ３０とは、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２ビジュアル、およびＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ−４ビジュアルに従って動作し得る。したがって、ビデオエンコーダ２０とビデオデコーダ３０とは、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２ビジュアル、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４ビジュアル、およびＳＶＣとＭＶＣとの拡張を含むＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）を含むビデオコーディング規格に従って動作し得る。
【００４２】
[0061]他の例では、ビデオエンコーダ２０とビデオデコーダ３０とは、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）とのビデオコーディングに関する共同チーム（ＪＣＴ−ＶＣ）によって開発された高効率ビデオコーディング（ＨＥＶＣ）規格に従って動作し得る。ＨＥＶＣ規格のドラフトは、「ＨＥＶＣ作業ドラフト８」または「ＨＥＶＣベース仕様」と称され、Ｂｒｏｓｓらの「高効率ビデオコーディング（ＨＥＶＣ）テキスト仕様ドラフト８」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのビデオコーディングに関する共同チーム（ＪＣＴ−ＶＣ）、第１０回会合、ストックホルム、スウェーデン、２０１２年７月において説明されている。さらに、ＨＥＶＣに対するスケーラブルビデオコーディングと、マルチビューコーディングと、３ＤＶとの拡張を作成する取組みが進行中である。ＨＥＶＣのスケーラブルビデオコーディング拡張は、ＳＨＥＶＣと称され得る。ビデオエンコーダ２０とビデオデコーダ３０とは、ＨＥＶＣ規格のそのような拡張に従って動作し得る。
【００４３】
[0062]現在、ＶＣＥＧとＭＰＥＧとの３Ｄビデオコーディングに関する共同チーム（ＪＣＴ−３Ｃ）がＨＥＶＣに基づく３ＤＶ規格を開発中であり、これに対する標準化の取組みの一環として、ＨＥＶＣに基づくマルチビュービデオコーデックの標準化（ＭＶ−ＨＥＶＣ）とＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）とがある。３Ｄ−ＨＥＶＣについては、テクスチャと奥行きの両方のビューに対する、コーディングユニット／予測ユニットレベルにおけるツールを含む、新しいコーディングツールが含まれ、サポートされ得る。２０１３年１２月５日現在、３Ｄ−ＨＥＶＣに対するソフトウェア（すなわち、３Ｄ−ＨＴＭバージョン６．０）が以下のリンクからダウンロード可能である。
【００４４】
［３Ｄ−ＨＴＭ］：  ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−６．０／
[0063]一般に、ＨＥＶＣの動き圧縮ループは、Ｈ．２６４／ＡＶＣのものと同じである。たとえば、現在のフレーム
【数１】
2016504864.tif 000003
【００４５】
の再構成は、逆量子化された係数ｒ＋時間的予測Ｐ、
【数２】
2016504864.tif 000004
【００４６】
に等しいものとしてよい。
【００４７】
上記の式において、Ｐは、Ｐ個のフレームに対する一方向予測またはＢ個のフレームに対する双方向予測を示す。
【００４８】
[0064]しかしながら、ＨＥＶＣにおける動き圧縮のユニットは、以前のビデオコーディング規格のとは異なる。たとえば、以前のビデオコーディング規格におけるマクロブロックの概念は、ＨＥＶＣに存在しない。むしろ、マクロブロックは、一般的な四分木方式に基づく自由度の高い階層構造で置き換えられる。この方式の範囲内で、３種類のブロック、すなわち、コーディングユニット（ＣＵ）と、予測ユニット（ＰＵ）と、変換ユニット（ＴＵ）とが定義される。ＣＵは、領域分割の基本ユニットである。ＣＵの概念は、マクロブロックの概念に類似しているが、ＣＵは、最大サイズに制限されず、ＣＵにより、等しいサイズの４つのＣＵへの再帰的分割でコンテンツ適応性を改善することができる。ＰＵは、インター／イントラ予測の基本ユニットであり、ＰＵは、不規則な画像パターンを効果的にコーディングするため、単一のＰＵ内に任意の形状の複数のパーティションを含み得る。ＴＵは、変換の基本ユニットである。ＣＵのＴＵは、ＣＵのＰＵから独立して定義され得る。しかしながら、ＴＵのサイズは、ＴＵが属すＣＵに制限される。ブロック構造を３つの異なる概念に分けるこの方法は、その役割に従って各々を最適化することを可能にし、その結果、コーディング効率が改善され得る。
【００４９】
[0065]ＨＥＶＣと他のビデオコーディング仕様において、ビデオシーケンスは、典型的に、一連のピクチャを含む。ピクチャは、「フレーム」とも称され得る。ピクチャは、ＳＬ、ＳＣｂ、およびＳｃｒと表される、３つのサンプル配列を含み得る。ＳＬは、ルーマサンプルの２次元配列（すなわち、ブロック）である。ＳＣｂは、Ｃｂ色度サンプルの２次元配列である。ＳＣｒは、Ｃｒ色度サンプルの２次元配列である。色度サンプルは、本明細書では「クロマ」サンプルとも称され得る。他の場合において、ピクチャは、モノクロであってもよく、またルーマサンプルの配列のみを含んでいてもよい。
【００５０】
[0066]ピクチャの符号化された表現を生成するために、ビデオエンコーダ２０は、コーディングツリーユニット（ＣＴＵ）のセットを生成することができる。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロック（ＣＴＢ）と、クロマサンプルの２つの対応するコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えるものとしてよい。モノクロピクチャまたは３つの別々の色平面を有するピクチャにおいて、ＣＴＵは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えることができる。コーディングツリーブロックは、サンプルのＮ×Ｎのブロックであってよい。ＣＴＵは、「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）とも称され得る。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの、他の規格のマクロブロックに概して類似しているものとしてよい。しかしながら、ＣＴＵは、特定のサイズに必ずしも制限されず、１つまたは複数のＣＵを含み得る。
【００５１】
[0067]スライスは、ラスタースキャン順に連続的に順序付けられた整数個のＣＴＵを含み得る。コーディングされたスライスは、スライスヘッダとスライスデータとを備え得る。スライスのスライスヘッダは、スライスに関する情報を提供するシンタックス要素を含むシンタックス構造であってよい。スライスデータは、スライスのコーディングされたＣＴＵを含み得る。
【００５２】
[0068]本開示では、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用して、サンプルの１つまたは複数のブロックのサンプルをコーディングするために使用される１つまたは複数のサンプルブロックとシンタックス構造とを指すものとしてよい。ビデオユニットの種類の例として、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロックパーティションなどが挙げられ得る。いくつかの文脈では、ＰＵの説明は、マクロブロックパーティションのマクロブロックの説明と交換され得る。
【００５３】
[0069]コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコーディングツリーブロック上で四分木分割法を再帰的に実行して、コーディングツリーブロックをコーディングブロック、すなわち「コーディングツリーユニット」に分割することができる。コーディングブロックは、サンプルのＮ×Ｎのブロックである。ＣＵは、ルーマサンプルのコーディングブロックを備え、またルーマサンプル配列と、Ｃｂサンプル配列と、Ｃｒサンプル配列とを有するピクチャのクロマサンプルの２つの対応するコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロピクチャまたは３つの別々の色平面を有するピクチャにおいて、ＣＵは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えることができる。
【００５４】
[0070]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに分割することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵのＰＵは、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。モノクロピクチャまたは３つの別々の色平面を有するピクチャにおいて、ＰＵは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロックと、Ｃｂ予測ブロックと、Ｃｒ予測ブロックとに対する予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。したがって、本開示では、ＣＵは、１つまたは複数のＰＵに分割されると言うことができる。説明を簡単にするため、本開示は、ＰＵの予測ブロックのサイズを単にＰＵのサイズとして参照し得る。
【００５５】
[0071]ビデオエンコーダ２０は、イントラ予測またはインター予測を使用してＰＵに対する予測ブロックを生成することができる。ビデオエンコーダ２０が、イントラ予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられているピクチャのサンプルに基づいてＰＵの予測ブロックを生成することができる。本開示では、「に基づく」という言い回しは、「に少なくとも部分的に基づく」を示すものとしてよい。
【００５６】
[0072]ビデオエンコーダ２０が、インター予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられているピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成することができる。ブロック（たとえば、ＰＵ）の予測ブロックを生成するためにインター予測が使用される場合、本開示では、ブロックを「インターコーディング（された）」または「インター予測（された）」と称するものとしてよい。インター予測は、一方向（すなわち、片方向予測）または双方向（すなわち、双予測）とすることができる。片方向予測または双予測を実行するために、ビデオエンコーダ２０は、現在のピクチャに対して第１の基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と、第２の基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを生成することができる。基準ピクチャリストの各々は、１つまたは複数の基準ピクチャを含み得る。基準ピクチャリストが構成された後（すなわち、利用可能な場合のＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）、基準ピクチャリストへの基準インデックスが、基準ピクチャリストに含まれている基準ピクチャを識別するために使用され得る。
【００５７】
[0073]片方向予測を使用する場合、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１のいずれか、または両方で基準ピクチャを探索し、基準ピクチャ内の基準位置を決定することができる。さらに、片方向予測を使用する場合、ビデオエンコーダ２０は、基準位置に対応するサンプルに少なくとも部分的に基づいて、ＰＵに対する予測ブロックを生成することができる。さらに、片方向予測を使用する場合、ビデオエンコーダ２０は、ＰＵの予測ブロックと基準位置との間の空間的変位を示す単一の動きベクトルを生成することができる。動きベクトルは、ＰＵの予測ブロックと基準位置との間の水平変位を指定する水平成分を含み、ＰＵの予測ブロックと基準位置との間の垂直変位を指定する垂直成分を含み得る。
【００５８】
[0074]双予測を使用してＰＵを符号化する場合、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔ０内の基準ピクチャ内の第１の基準位置とＲｅｆＰｉｃＬｉｓｔ１内の基準ピクチャ内の第２の基準位置とを決定することができる。ビデオエンコーダ２０は、第１と第２との基準位置に対応するサンプルに少なくとも部分的に基づいて、ＰＵに対する予測ブロックを生成することができる。さらに、双予測を使用してＰＵを符号化する場合、ビデオエンコーダ２０は、ＰＵの予測ブロックと第１の基準位置との間の空間的変位を示す第１の動きベクトルと、ＰＵの予測ブロックと第２の基準位置との間の空間的変位を示す第２の動きベクトルとを生成することができる。
【００５９】
[0075]ビデオエンコーダ２０がインター予測を使用してＰＵの予測ブロックを生成する場合、ビデオエンコーダ２０は、ＰＵに関連付けられているピクチャ以外の１つまたは複数のピクチャのサンプルに基づいてＰＵの予測ブロックを生成することができる。たとえば、ビデオエンコーダ２０は、一方向インター予測（すなわち、片方向予測）または双方向インター予測（すなわち、双予測）をＰＵ上で実行することができる。
【００６０】
[0076]ビデオエンコーダ２０が、ＰＵ上で片方向予測を実行する場合、ビデオエンコーダ２０は、ＰＵの動きベクトルに基づいて、基準ピクチャ内の基準位置を決定することができる。ビデオエンコーダ２０は、次いで、ＰＵに対する予測ブロックを決定することができる。ＰＵに対する予測ブロック内の各サンプルは、基準位置に関連付けられ得る。いくつかの例では、ＰＵに対する予測ブロック内のサンプルは、ＰＵと同じサイズを有してその左上の隅部が基準位置であるサンプルのブロック内にある場合に、基準位置に関連付けられ得る。予測ブロック内の各サンプルは、基準ピクチャの実際の、または補間されたサンプルであってよい。予測ブロックのルーマサンプルが基準ピクチャの補間されたルーマサンプルに基づく場合、ビデオエンコーダ２０は、８タップ補間フィルタを基準ピクチャの実際のルーマサンプルに適用することによって補間されたルーマサンプルを生成することができる。予測ブロックのクロマサンプルが基準ピクチャの補間されたクロマサンプルに基づく場合、ビデオエンコーダ２０は、４タップ補間フィルタを基準ピクチャの実際のクロマサンプルに適用することによって補間されたクロマサンプルを生成することができる。一般に、フィルタのタップの数は、フィルタを数学的に表現する係数要求の数を示す。タップ数の多いフィルタは、タップ数の少ないフィルタに比べて一般的に複雑である。
【００６１】
[0077]ビデオエンコーダ２０がＰＵ上で双予測を実行する場合、ＰＵは２つの動きベクトルを有する。ビデオエンコーダ２０は、ＰＵの動きベクトルに基づいて、２つの基準ピクチャ内の２つの基準位置を決定することができる。次いで、ビデオエンコーダ２０は、上で説明されているようにして、２つの基準位置に関連付けられている基準ブロックを決定することができる。次いで、ビデオエンコーダ２０は、ＰＵに対する予測ブロックを決定することができる。予測ブロック内の各サンプルは、基準ブロック内の対応するサンプルの加重平均であってよい。サンプルの重みは、ＰＵを含むピクチャからの基準ピクチャの時間的距離に基づくものとしてよい。
【００６２】
[0078]ビデオエンコーダ２０は、ＣＵを様々な分割モードに従って１つまたは複数のＰＵに分割することができる。たとえば、ＣＵのＰＵに対する予測ブロックを生成するためにイントラ予測が使用される場合、ＣＵは、ＰＡＲＴ＿２Ｎ×２ＮモードまたはＰＡＲＴ＿Ｎ×Ｎモードに従って分割され得る。ＰＡＲＴ＿２Ｎ×２Ｎモードでは、ＣＵは１つのＰＵしか有しない。ＰＡＲＴ＿Ｎ×Ｎモードでは、ＣＵは、矩形予測ブロックを有する４つの等しいサイズのＰＵを有する。ＣＵのＰＵに対する予測ブロックを生成するためにインター予測が使用される場合、ＣＵは、ＰＡＲＴ＿２Ｎ×２Ｎモード、ＰＡＲＴ＿Ｎ×Ｎモード、ＰＡＲＴ＿２Ｎ×Ｎモード、ＰＡＲＴ＿Ｎ×２Ｎモード、ＰＡＲＴ＿２Ｎ×ｎＵモード、ＰＡＲＴ＿２Ｎ×ｕＤモード、ＰＡＲＴ＿ｎＬ×２Ｎモード、またはＰＡＲＴ＿ｎＲ×２Ｎモードに従って分割され得る。ＰＡＲＴ＿２Ｎ×ＮモードとＰＡＲＴ＿Ｎ×２Ｎとにおいて、ＣＵは、矩形予測ブロックを有する２つの等しいサイズのＰＵに分割される。ＰＡＲＴ＿２Ｎ×ｎＵモードと、ＰＡＲＴ＿２Ｎ×ｕＤモードと、ＰＡＲＴ＿ｎＬ×２Ｎモードと、ＰＡＲＴ＿ｎＲ×２Ｎモードとの各々において、ＣＵは、矩形予測ブロックを有する２つのサイズが等しくないＰＵに分割される。
【００６３】
[0079]ビデオエンコーダ２０が、ＣＵの１つまたは複数のＰＵに対する予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成した後、ビデオエンコーダ２０は、ＣＵに対するルーマ残差ブロックを生成することができる。ＣＵのルーマ残差ブロック内の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの中のルーマサンプルとＣＵの元のルーマコーディングブロック内の対応するサンプルとの間の差を示す。それに加えて、ビデオエンコーダ２０は、ＣＵに対するＣｂ残差ブロックを生成することができる。ＣＵのＣｂ残差ブロック内の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つの中のＣｂサンプルとＣＵの元のＣｂコーディングブロック内の対応するサンプルとの間の差を示し得る。ビデオエンコーダ２０は、ＣＵに対するＣｒ残差ブロックも生成することができる。ＣＵのＣｒ残差ブロック内の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つの中のＣｒサンプルとＣＵの元のＣｒコーディングブロック内の対応するサンプルとの間の差を示し得る。
【００６４】
[0080]さらに、ビデオエンコーダ２０は、四分木分割法を使用して、ＣＵのルーマ残差ブロックと、Ｃｂ残差ブロックと、Ｃｒ残差ブロックとを１つまたは複数のルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵのＴＵは、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備えることができる。そこで、ＣＵの各ＴＵは、ルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとに関連付けられ得る。ＴＵに関連付けられているルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであってよい。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであってよい。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであってよい。モノクロピクチャまたは３つの別々の色平面を有するピクチャにおいて、ＴＵは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備えることができる。
【００６５】
[0081]ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのルーマ変換ブロックに適用して、ＴＵに対するルーマ係数ブロックを生成することができる。係数ブロックは、変換係数の２次元配列であってよい。変換係数は、スカラ量であってよい。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｂ変換ブロックに適用して、ＴＵに対するＣｂ係数ブロックを生成することができる。ビデオエンコーダ２０は、１つまたは複数の変換をＴＵのＣｒ変換ブロックに適用して、ＴＵに対するＣｒ係数ブロックを生成することができる。
【００６６】
[0082]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロック、またはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化することができる。量子化は、一般的に、変換係数が量子化され、場合によっては、変換係数を表現するために使用されるデータの量を減らし、さらに圧縮を施すプロセスを指す。ビデオエンコーダ２０は、ＣＵに関連付けられている量子化パラメータ（ＱＰ）値に基づいてＣＵのＴＵに関連付けられている係数ブロックを量子化することができる。ビデオエンコーダ２０は、ＣＵに関連付けられているＱＰ値を調整することによって、ＣＵに関連付けられている係数ブロックに適用される量子化の程度を調整することができる。いくつかの例では、ＣＵに関連付けられているＱＰ値は、全体として現在のピクチャまたはスライスに関連付けられ得る。ビデオエンコーダ２０が、係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を実行することができる。
【００６７】
[0083]ビデオエンコーダ２０は、コーディングされたピクチャと関連データとの表現を形成するビットシーケンスを含むビットストリームを出力することができる。ビットストリームは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのシーケンスを備えることができる。ＮＡＬユニットは、ＮＡＬユニット内のデータの型の指示を含むシンタックス構造とエミュレーション防止ビットとともに必要に応じて散在するローバイトシーケンスペイロード（ＲＢＳＰ）の形態のそのデータを含むバイトである。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニット型コードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニット型コードは、ＮＡＬユニットの型を示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であってよい。いくつかの場合において、ＲＢＳＰはゼロビットを含む。
【００６８】
[0084]異なる型のＮＡＬユニットは、異なる種類のＲＢＳＰをカプセル化することができる。たとえば、異なる型のＮＡＬユニットは、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、コーディングされたスライス、ＳＥＩなどに対して異なるＲＢＳＰをカプセル化することができる。ビデオコーディングデータに対してＲＢＳＰをカプセル化するＮＡＬユニットは（パラメータセットとＳＥＩメッセージとに対するＲＢＳＰとは反対に）ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと称され得る。
【００６９】
[0085]ＨＥＶＣでは、ＳＰＳは、コーディングビデオシーケンス（ＣＶＳ）のすべてのスライスに適用される情報を含み得る。ＨＥＶＣでは、ＣＶＳは、瞬間復号リフレッシュ（ＩＤＲ）ピクチャ、またはリンク切断アクセス（ＢＬＡ）ピクチャ、またはＩＤＲピクチャまたはＢＬＡピクチャではないその後のすべてのピクチャを含む、ビットストリーム内の第１のピクチャであるクリーンランダムアクセス（ＣＲＡ）ピクチャから始まるものとしてよい。すなわち、ＨＥＶＣでは、ＣＶＳは、復号の順序で、ビットストリーム内の第１のアクセスユニットであるＣＲＡアクセスユニット、ＩＤＲアクセスユニットまたはＢＬＡアクセスユニット、その後に続く、その後のＩＤＲアクセスユニットまたはＢＬＡアクセスユニットまでであってその後のＩＤＲアクセスユニットまたはＢＬＡアクセスユニットを含まないすべてのその後のアクセユニットを含む、ゼロまたはそれ以上の非ＩＤＲアクセスユニットと非ＢＬＡアクセスユニットからなるものとしてよいアクセスユニットのシーケンスを備えることができる。
【００７０】
[0086]ＶＰＳは、ゼロまたはそれ以上のＣＶＳ全体に適用されるシンタックス要素を備えるシンタックス構造である。ＳＰＳは、ＳＰＳがアクティブであるときにアクティブであるＶＰＳを識別するシンタックス要素を含み得る。そのため、ＶＰＳのシンタックス要素は、ＳＰＳのシンタックス要素よりも一般的に適用可能であり得る。ＰＰＳは、ゼロまたはそれ以上のコーディングされたピクチャに適用されるシンタックス要素を備えるシンタックス構造である。ＰＰＳは、ＰＰＳがアクティブであるときにアクティブであるＳＰＳを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされているときにアクティブであるＰＰＳを示すシンタックス要素を含み得る。
【００７１】
[0087]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信することができる。それに加えて、ビデオデコーダ３０は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ２０によって実行されるプロセスに相反するものとしてよい。たとえば、ビデオデコーダ３０は、ＰＵの動きベクトルを使用して、現在のＣＵのＰＵに対する予測ブロックを決定することができる。それに加えて、ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられている係数ブロックを逆量子化することができる。ビデオデコーダ３０は、係数ブロックに対して逆変換を実行し、現在のＣＵのＴＵに関連付けられている変換ブロックを再構成することができる。ビデオデコーダ３０は、現在のＣＵのＰＵに対する予測ブロックのサンプルを現在のＣＵのＴＵの変換ブロックの対応するサンプルに加えることによって現在のＣＵのコーディングブロックを再構成することができる。ピクチャの各ＣＵに対してコーディングブロックを再構成することによって、ビデオデコーダ３０は、ピクチャを再構成することができる。
【００７２】
[0088]各コーディングされたピクチャは、コーディングされたピクチャまたはコーディングされたピクチャの後の（将来の）ピクチャのいずれかによって基準のために使用され得るすべてのピクチャを含む基準ピクチャセットを有する。ビデオコーダは、どのピクチャが将来のピクチャの基準としてのみ使用され得るかを区別することができる。基準ピクチャリストは、現在のピクチャに対して使用され得る基準ピクチャセット（「ＲＰＳ」）内のピクチャ（すなわち、「現在に対するＲＰＳ」）に基づいて構成され、したがって、将来のピクチャの基準としてしか使用され得ないピクチャに基づいて再構成されることはない。
【００７３】
[0089]いくつかの例では、ビデオエンコーダ２０が、現在のピクチャの符号化を開始すると、ビデオエンコーダ２０は、現在のピクチャに対して基準ピクチャの５つのサブセット（すなわち、基準ピクチャサブセット）を生成し得る。いくつかの例では、これら５つの基準ピクチャサブセットは、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＢｅｆｏｒｅ、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＡｆｔｅｒ、ＲｅｆＰｉｃＳｅｔＳｔＦｏｌｌ、ＲｅｆＰｉｃＳｅｔＬｔＣｕｒｒ、およびＲｅｆＰｉｃＳｅｔＬｔＦｏｌｌである。本開示では、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＢｅｆｏｒｅ、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＡｆｔｅｒ、ＲｅｆＰｉｃＳｅｔＳｔＦｏｌｌにおける基準ピクチャを「短期基準ピクチャ」、「短期ピクチャ」、または「ＳＴＲＰ」として参照することができる。したがって、「短期基準ピクチャ」は、短期基準に使用されているものとして（たとえば、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＢｅｆｏｒｅ、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＡｆｔｅｒ、またはＲｅｆＰｉｃＳｅｔＳｔＦｏｌｌであることによって）マークされるピクチャであってよい。本開示では、ＲｅｆＰｉｃＳｅｔＬｔＣｕｒｒとＲｅｆＰｉｃＳｅｔＬｔＦｏｌｌとにおける基準ピクチャを「長期基準ピクチャ」、「長期ピクチャ」、または「ＬＴＲＰ」として参照することができる。ビデオエンコーダは、各ピクチャに対して５つの基準ピクチャサブセットを再生成することができる。
【００７４】
[0090]さらに、現在のピクチャの現在のスライスが、Ｐスライス（すなわち、イントラ予測と片方向インター予測とがイネーブルにされているスライス）である場合、ビデオエンコーダ２０は、現在のピクチャのＲｅｆＰｉｃＳｔＣｕｒｒＡｆｔｅｒ基準ピクチャサブセットと、ＲｅｆＰｉｃＳｔＣｕｒｒＢｅｆｏｒｅ基準ピクチャサブセットと、ＲｅｆＰｉｃＳｔＬｔＣｕｒｒ基準ピクチャサブセットとからの基準ピクチャを使用して、現在のスライスに対する単一の基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）を生成することができる。現在のスライスが、Ｂスライス（すなわち、イントラ予測と、片方向インター予測と、双方向インター予測とがイネーブルにされているスライス）である場合、ビデオエンコーダ２０は、現在のピクチャのＲｅｆＰｉｃＳｔＣｕｒｒＡｆｔｅｒ基準ピクチャサブセットと、ＲｅｆＰｉｃＳｔＣｕｒｒＢｅｆｏｒｅ基準ピクチャサブセットと、ＲｅｆＰｉｃＳｔＬｔＣｕｒｒ基準ピクチャサブセットとからの基準ピクチャを使用して、現在のスライスに対する２つの基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）を生成することができる。ビデオエンコーダ２０は、現在のピクチャの第１のスライスに対するスライスヘッダ内に、現在のピクチャの基準ピクチャサブセットを決定するためにビデオデコーダ３０が使用することができるシンタックス要素を含み得る。ビデオデコーダ３０が、現在のピクチャの現在のスライスを復号する場合、ビデオデコーダ３０は、現在のピクチャの基準ピクチャサブセットを決定し、ＲｅｆＰｉｃＬｉｓｔ０および／またはＲｅｆＰｉｃＬｉｓｔ１を再生成することができる。
【００７５】
[0091]上で示されているように、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）が、ピクチャの現在のスライスのコーディングを開始すると、ビデオコーダは、第１の基準ピクチャリスト（すなわち、ＲｅｆＰｉｃＬｉｓｔ０）を初期化し得る。さらに、現在のスライスがＢスライスである場合、ビデオコーダは、第２の基準ピクチャリスト（すなわち、ＲｅｆＰｉｃＬｉｓｔ１）を初期化し得る。いくつかの例では、基準ピクチャリスト初期化は、基準ピクチャのピクチャ順序カウント（ＰＯＣ）値の順序に基づいて基準ピクチャメモリ（すなわち、復号ピクチャバッファ）内の基準ピクチャをリストに入れる明示的機構である。ＰＯＣ値は、同じコーディングされたビデオシーケンス内の他のピクチャの出力順序位置に関する出力順序で関連するピクチャの位置を示す各ピクチャに関連付けられている変数である。
【００７６】
[0092]ＲｅｆＰｉｃＬｉｓｔ０を生成するために、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ＲｅｆＰｉｃＬｉｓｔ０の初期の既定バージョンを生成するものとしてよい。ＲｅｆＰｉｃＬｉｓｔ０の初期バージョンにおいて、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＢｅｆｏｒｅ内の基準ピクチャが最初にリストされ、その後に、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＡｆｔｅｒ内の基準ピクチャが続き、その後に、ＲｅｆＰｉｃＳｅｔＬｔＣｕｒｒ内の基準ピクチャが続く。同様に、ＲｅｆＰｉｃＬｉｓｔ１を生成するために、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ１の初期バージョンを生成することができる。ＲｅｆＰｉｃＬｉｓｔ１の初期バージョンにおいて、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＡｆｔｅｒ内の基準ピクチャが最初にリストされ、その後に、ＲｅｆＰｉｃＳｅｔＳｔＣｕｒｒＢｅｆｏｒｅ内の基準ピクチャが続き、その後に、ＲｅｆＰｉｃＳｅｔＬｔＣｕｒｒ内の基準ピクチャが続く。
【００７７】
[0093]ビデオコーダが基準ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を初期化した後、ビデオコーダは、基準ピクチャリスト内の基準ピクチャの順序を修正することができる。言い換えれば、ビデオコーダは、基準ピクチャリスト修正（ＲＰＬＭ）プロセスを実行することができる。ビデオコーダは、１つの特定の基準ピクチャが基準ピクチャリスト内の複数の位置に出現し得る場合を含めて、任意の順序で基準ピクチャの順序を修正することができる。言い換えれば、基準ピクチャリスト順序変更機構は、ピクチャが初期化リストに属していないとしても、基準ピクチャリスト初期化時にリストに入れられたピクチャの位置を新しい位置に修正するか、または基準ピクチャを基準ピクチャメモリ内の任意の位置に入れることができる。しかしながら、ピクチャの位置がリストのアクティブな基準ピクチャの数を超える場合、ピクチャは、最終基準ピクチャリストのエントリとみなされない。スライスヘッダは、基準ピクチャリスト内のアクティブな基準ピクチャの数を示す１つまたは複数のシンタックス要素を含み得る。
【００７８】
[0094]いくつかの例では、ビデオコーダは、ビデオコーダが最終基準ピクチャリスト（すなわち、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）を構成した後にＢスライスに対して組み合わされたリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔＣ）を構成する。ビデオコーダは、さらに１つまたは複数の基準ピクチャリスト修正シンタックス要素が、組み合わされたリストについて存在する場合に、組み合わされたリストをさらに修正することができる。
【００７９】
[0095]いくつかの例では、ビデオエンコーダ２０は、マージ／スキップモードまたは高度動きベクトル予測（ＡＭＶＰ）モードを使用するＰＵの動き情報をシグナリングすることができる。言い換えれば、ＨＥＶＣでは、動きパラメータの予測に２つのモードがあり、１つはマージ／スキップモードであり、もう１つはＡＭＶＰモードである。動き予測は、１つまたは複数の他のブロックの動き情報に基づくブロック（たとえば、ＰＵ）の動き情報の決定を備え得る。ＰＵの動き情報は、ＰＵの動きベクトル（複数可）と、ＰＵの基準インデックス（複数可）と、１つまたは複数の予測方向指標とを含み得る。
【００８０】
[0096]ビデオエンコーダ２０が、マージモードを使用して現在のＰＵの動き情報をシグナリングする場合、ビデオエンコーダ２０は、マージ候補リストを生成する。言い換えれば、ビデオエンコーダ２０は、動きベクトル予測因子リスト構成プロセスを実行することができる。マージ候補リストは、現在のＰＵに空間的または時間的に隣接するＰＵの動き情報を示すマージ候補のセットを含む。すなわち、マージモードでは、候補が空間的隣接ブロックと時間的隣接ブロックとからのものであり得る動きパラメータ（たとえば、基準インデックス、動きベクトルなど）の候補リストが構成される。
【００８１】
[0097]さらに、マージモードでは、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択することができ、選択されたマージ候補によって示されている動き情報を現在のＰＵの動き情報として使用することができる。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト内の位置をシグナリングすることができる。たとえば、ビデオエンコーダ２０は、選択されたマージ候補の候補リスト内の位置を示すインデックス（すなわち、マージ候補インデックス）を送信することによって、選択された動きベクトルパラメータをシグナリングすることができる。ビデオデコーダ３０は、ビットストリームから、インデックスを取得して候補リストに入れることができる（すなわち、マージ候補インデックス）。それに加えて、ビデオデコーダ３０は、同じマージ候補リストを生成することができ、マージ候補インデックスに基づいて、選択されたマージ候補を決定することができる。次いで、ビデオデコーダ３０は、選択されたマージ候補の動き情報を使用して、現在のＰＵに対する予測ブロックを生成することができる。すなわち、ビデオデコーダ３０は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト内の選択された候補を決定することができ、ここにおいて、選択された候補は、現在のＰＵに対する動きベクトルを指定する。このようにして、デコーダ側では、インデックスが復号された後、インデックス点が現在のＰＵによって継承され得る対応するブロックのすべての動きパラメータ。
【００８２】
[0098]スキップモードは、マージモードに似ている。スキップモードでは、ビデオエンコーダ２０とビデオデコーダ３０とは、ビデオエンコーダ２０とビデオデコーダ３０とがマージモードでマージ候補リストを使用する同じ方法でマージ候補リストを生成し、使用する。しかしながら、ビデオエンコーダ２０が、スキップモードを使用して現在のＰＵの動き情報をシグナリングする場合、ビデオエンコーダ２０は、現在のＰＵに対する残差データをシグナリングしない。したがって、ビデオデコーダ３０は、残差データを使用することなく、マージ候補リスト内の選択された候補の動き情報によって示される基準ブロックに基づいてＰＵに対する予測ブロックを決定することができる。
【００８３】
[0099]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成することができ、候補リストから方法を選択することができるという点でマージモードに似ている。しかしながら、ビデオエンコーダ２０がＡＭＶＰモードを使用して現在のＰＵのＲｅｆＰｉｃＬｉｓｔＸ（ここで、Ｘは０または１）動き情報をシグナリングする場合、ビデオエンコーダ２０は、現在のＰＵに対するＲｅｆＰｉｃＬｉｓｔＸ動きベクトル差（ＭＶＤ）と現在のＰＵに対するＲｅｆＰｉｃＬｉｓｔＸ基準インデックスとをシグナリングすることを、現在のＰＵに対するＲｅｆＰｉｃＬｉｓｔＸ動きベクトル予測因子（ＭＶＰ）フラグをシグナリングすることに加えて行うことができる。現在のＰＵに対するＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグは、ＡＭＶＰ候補リスト内の選択されたＡＭＶＰ候補の位置を示し得る。現在のＰＵに対するＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤは、現在のＰＵのＲｅｆＰｉｃＬｉｓｔＸ動きベクトルと選択されたＡＭＶＰ候補の動きベクトルとの間の差を示し得る。この方法で、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグと、ＲｅｆＰｉｃＬｉｓｔＸ基準インデックス値と、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤとをシグナリングすることによって現在のＰＵのＲｅｆＰｉｃＬｉｓｔＸ動き情報をシグナリングすることができる。言い換えれば、現在のＰＵに対する動きベクトルを表すビットストリーム内のデータは、基準インデックスと、候補リストへのインデックスと、ＭＶＤとを表すデータを含み得る。したがって、選択された動きベクトルは、インデックスを候補リスト内に送信することによってシグナリングされ得る。それに加えて、基準インデックス値と動きベクトル差ともシグナリングされ得る。
【００８４】
[0100]さらに、現在のＰＵの動き情報が、ＡＭＶＰモードを使用してシグナリングされる場合、ビデオデコーダ３０は、ビットストリームから、現在のＰＵに対するＭＶＤと、ＭＶＰフラグとを取得することができる。ビデオデコーダ３０は、同じＡＭＶＰ候補リストを生成することができ、ＭＶＰフラグに基づいて、選択されたＡＭＶＰ候補を決定することができる。言い換えれば、ＡＭＶＰでは、各動き仮説に対する動きベクトル予測因子の候補リストは、コーディングされた基準インデックスに基づいて導出される。前述のように、このリストは、同じ基準インデックスに関連付けられている隣接ブロックの動きベクトル、さらには時間的基準ピクチャ内の同一の位置にある（co-located）ブロック（コロケートブロック）の隣接ブロックの動きパラメータに基づいて導出される時間的動きベクトル予測因子を含み得る。ビデオデコーダ３０は、ＭＶＤを選択されたＡＭＶＰ候補によって示されている動きベクトルに加えることによって現在のＰＵの動きベクトルを復元することができる。すなわち、ビデオデコーダ３０は、選択されたＡＭＶＰ候補とＭＶＤとによって示されている動きベクトルに基づいて、現在のＰＵの動きベクトルを決定することができる。次いで、ビデオデコーダ３０は、現在のＰＵの１つまたは複数の復元された動きベクトルを使用して、現在のＰＵに対する予測ブロックを生成することができる。
【００８５】
[0101]ビデオコーダが、現在のＰＵに対するＡＭＶＰ候補リストを生成する場合、ビデオコーダは、現在のＰＵに空間的に隣接する位置をカバーするＰＵ（すなわち、空間的隣接ＰＵ）の動き情報に基づく１つまたは複数のＡＭＶＰ候補と、現在のＰＵに時間的に隣接するＰＵの動き情報に基づく１つまたは複数のＡＭＶＰ候補を導出することができる。本開示では、ＰＵ（または他の種類のビデオユニット）はＰＵに関連付けられている予測ブロック（またはビデオユニットに関連付けられている他の種類のサンプルブロック）がある位置を含む場合に、その位置を「カバーする」と言われることがある。候補リストは、同じ基準インデックスに関連付けられている隣接ブロックの動きベクトル、さらには時間的基準ピクチャ内の同一の位置にある（co-located）ブロック（コロケートブロック）の隣接ブロックの動きパラメータ（すなわち、動き情報）に基づいて導出される時間的動きベクトル予測因子を含み得る。
【００８６】
[0102]図２は、現在のＰＵ４０に関する例示的な空間的隣接ＰＵを示す概念図である。図２の例では、空間的隣接ＰＵは、Ａ０、Ａ１、Ｂ０、Ｂ１、およびＢ２として示されている位置をカバーするＰＵであるものとしてよい。言い換えれば、現在のＰＵ４０とその空間的隣接ＰＵとの間の例示的な関係は図２に示されている。
【００８７】
[0103]空間的隣接要素ＰＵに関して、次のシンボルが定義され得る。
【００８８】
ルーマ位置（ｘＰ，ｙＰ）は、現在のピクチャの左上のサンプルに関する現在のＰＵの左上のルーマサンプルを指定するために使用される。
【００８９】
変数ｎＰＳＷとｎＰＳＨとは、ルーマに対するＰＵの幅と高さとを表す。
【００９０】
現在のピクチャの左上のサンプルに関する現在のＰＵ  Ｎの左上のルーマサンプルは、（ｘＮ，ｙＮ）である。
【００９１】
上記の定義において、（ｘＮ，ｙＮ）（ＮはＡ０、Ａ１、Ｂ０、Ｂ１、またはＢ２で置き換えられる）は、（ｘＰ−１，ｙＰ＋ｎＰＳＨ）、（ｘＰ−１，ｙＰ＋ｎＰＳＨ−１）、（ｘＰ＋ｎＰＳＷ，ｙＰ−１）、（ｘＰ＋ｎＰＳＷ−１，ｙＰ−１）、または（ｘＰ−１，ｙＰ−１）としてそれぞれ定義される。
【００９２】
[0104]現在のＰＵに時間的に隣接するＰＵ（すなわち、現在のＰＵと異なる時間インスタンスに関連付けられているＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト内の候補は、ＴＭＶＰと称され得る。ＴＭＶＰは、ＨＥＶＣのコーディング効率を改善するために使用され、他のコーディングツールとは異なってもよく、ＴＭＶＰは、復号ピクチャバッファ内のフレームの動きベクトルにアクセスする必要がある場合がある。より具体的には、ＴＭＶＰは、基準ピクチャリスト内のピクチャの動きベクトルにアクセスする必要がある場合がある。
【００９３】
[0105]ＴＭＶＰを決定するために、ビデオコーダは、現在のＰＵと同一の位置にあるＰＵ（コロケートＰＵ）を含む基準ピクチャを最初に識別することができる。言い換えれば、ビデオコーダは、いわゆる「同一の位置にある（co-located）ピクチャ（コロケートピクチャ）」を識別することができる。現在のピクチャの現在のスライスがＢスライス（すなわち、双方向にインター予測されたＰＵを含むことが許されているスライス）である場合、ビデオエンコーダ２０は、スライスヘッダで、同一の位置にあるピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるかまたはＲｅｆＰｉｃＬｉｓｔ１からのものであるかを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）をシグナリングすることができる。言い換えれば、ＴＭＶＰの使用が現在のスライスに対してイネーブルにされ、現在のスライスがＢスライス（たとえば、双方向にインター予測されたＰＵを含むことが許されているスライス）であるときに、ビデオエンコーダ２０は、スライスヘッダでシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）をシグナリングして、同一の位置にあるピクチャがＲｅｆＰｉｃＬｉｓｔ０にあるか、またはＲｅｆＰｉｃＬｉｓｔ１にあるかを示すことができる。
【００９４】
[0106]スライスヘッダ内のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）は、識別された基準ピクチャリスト内の同一の位置にあるピクチャを示すものとしてよい。こうして、ビデオデコーダ３０が、同一の位置にあるピクチャを含む基準ピクチャリストを識別した後、ビデオデコーダ３０は、スライスヘッダでシグナリングされ得る、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘを使用して、識別された基準ピクチャリスト内の同一の位置にあるピクチャを識別することができる。
【００９５】
[0107]ビデオコーダは、同一の位置にあるピクチャをチェックすることによって同一の位置にあるＰＵを識別することができる。ＴＭＶＰは、同一の位置にあるＰＵを含むＣＵの右下のＰＵの動き情報、またはこのＰＵを含むＣＵの中心ＰＵ内の右下のＰＵの動き情報のいずれかを示し得る。したがって、このＰＵを含むＣＵの右下のＰＵの動き、またはこのＰＵを含むＣＵの中心ＰＵ内の右下のＰＵの動きのいずれかが使用される。同一の位置にあるＰＵを含むＣＵの右下のＰＵは、ＰＵの予測ブロックの右下のサンプルの右の、直下の位置と同一の位置にある位置をカバーするＰＵであってよい。言い換えれば、ＴＭＶＰは、基準ピクチャ内にあり、現在のＰＵの右下隅部と同一の位置にある位置をカバーするＰＵの動き情報を示し得るか、または、基準ピクチャ内にあり、現在のＰＵの中心（すなわち、現在のＰＵの予測ブロックの中心）と同一の位置にある位置をカバーするＰＵの動き情報を示し得る。
【００９６】
[0108]ビデオコーダが、時間的基準ピクチャ内のＴＭＶＰの動きベクトルを指定する動きベクトル候補（たとえば、ＡＭＶＰ候補リストのマージリスト内の候補）を生成する場合、ビデオコーダは、時間的基準ピクチャの時間的位置（ＰＯＣ値によって反映される）に基づいてＴＭＶＰの動きベクトルを拡大縮小することができる。言い換えれば、ビデオコーダは、現在のピクチャと基準ピクチャとの間のＰＯＣ距離に基づいて動きベクトル候補の動きベクトルを拡大縮小することができる。たとえば、ビデオコーダが、第１のピクチャと第２のピクチャとの間のＰＯＣ距離に基づいて動きベクトルを拡大縮小する場合、ビデオコーダは、第１のピクチャのＰＯＣ値と第２のピクチャのＰＯＣ値との間の差が、第１のピクチャのＰＯＣ値と第２のピクチャのＰＯＣ値との間の差が小さいときよりも大きい場合に、より大きい量だけ動きベクトルの大きさを増加させることができる。
【００９７】
[0109]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューがあり得る。「アクセスユニット」という用語は、同時インスタンスに対応するピクチャのセットを指すために使用される。したがって、ビデオデータは、時間の経過とともに生じる一連のアクセスユニットとして概念化され得る。「ビューコンポーネント」は、単一のアクセスユニットにおけるビューのコーディングされた表現であるものとしてよい。本開示では、「ビュー」は、同じビュー識別子に関連付けられているビューコンポーネントのシーケンスを指すものとしてよい。
【００９８】
[0110]マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、ＨＥＶＣで使用されるインター予測に類似しており、同じシンタックス要素を使用することができる。しかしながら、ビデオコーダが、現在のビデオユニット（ＰＵなど）に対してビュー間予測を実行する場合、ビデオエンコーダ２０は、基準ピクチャとして、現在のビデオユニットと同じアクセスユニット内にあるが、ビューが異なる、ピクチャを使用することができる。言い換えれば、マルチビューコーディングでは、ビュー間予測は、同じアクセスユニットの異なるビューでキャプチャされたピクチャ間で実行され（すなわち、同じ時間インスタンス内で）、これによりビュー間の相関を取り除く。対照的に、従来のインター予測は、異なるアクセスユニット内のピクチャのみを基準ピクチャとして使用する。
【００９９】
[0111]マルチビューコーディングでは、ビットストリームは複数のレイヤを有することができる。レイヤは、異なるビューに対応し得る。ビューは、ビデオデコーダ（たとえば、ビデオデコーダ３０）がビューに関連付けられているピクチャを、任意の他のビュー内のピクチャを参照することなく復号することができる場合に「ベースビュー」と称され得る。ビューは、ビューの復号が１つまたは複数の他のビューに関連付けられているピクチャの復号に依存する場合に非ベースビューと称され得る。
【０１００】
[0112]たとえば、ＮＡＬユニットは、ヘッダ（すなわち、ＮＡＬユニットヘッダ）とペイロード（たとえば、ＲＢＳＰ）とを含み得る。ＮＡＬユニットヘッダは、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素を含み得る。異なる値を指定するｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔシンタックス要素を有するＮＡＬユニットは、ビットストリームの異なる「レイヤ」に属す。そこで、マルチビューコーディング、３ＤＶ、またはＳＶＣでは、ＮＡＬユニットのｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は、ＮＡＬユニットのレイヤ識別子（すなわち、レイヤＩＤ）を指定することができる。いくつかの例では、ＮＡＬユニットのｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は、ＮＡＬユニットがマルチビューコーディング、３ＤＶコーディング、またはＳＶＣにおけるベースレイヤに関係する場合に０に等しい。ビットストリームのベースレイヤ内のデータは、ビットストリームの他のレイヤ内のデータを参照することなく復号され得る。ＮＡＬユニットが、マルチビューコーディング、３ＤＶ、またはＳＶＣにおけるベースレイヤに関係しない場合、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は、非ゼロの値を有し得る。上で示されているように、マルチビューコーディングと３ＤＶコーディングとにおいて、ビットストリームの異なるレイヤは、異なるビューに対応し得る。ＳＶＣでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と称され、ビットストリームから復号されたビデオデータの表示品位を高める情報を提供することができる。
【０１０１】
[0113]さらに、レイヤ内のいくつかのピクチャは、同じレイヤ内の他のピクチャを参照することなく復号され得る。そこで、レイヤのいくつかのピクチャのデータをカプセル化するＮＡＬユニットは、レイヤ内の他のピクチャの復号性に影響を及ぼすことなくビットストリームから取り除かれ得る。そのようなピクチャのデータをカプセル化しているＮＡＬユニットを取り除くことで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のピクチャを参照することなく復号され得るレイヤ内のピクチャのサブセットは、本明細書では「サブレイヤ」または「時間的サブレイヤ」と称され得る。
【０１０２】
[0114]ＮＡＬユニットは、ｔｅｍｐｏｒａｌ＿ｉｄシンタックス要素も含み得る。ＮＡＬユニットのｔｅｍｐｏｒａｌ＿ｉｄシンタックス要素は、ＮＡＬユニットの時間的識別子を指定する。ＮＡＬユニットの時間的識別子は、ＮＡＬユニットが関連付けられているサブレイヤを識別する。こうして、ビットストリームの各サブレイヤは、異なる時間的識別子に関連付けられ得る。第１のＮＡＬユニットの時間的識別子が、第２のＮＡＬユニットの時間的識別子より小さい場合、第１のＮＡＬユニットによってカプセル化されているデータは、第２のＮＡＬユニットによってカプセル化されているデータを参照することなく復号され得る。
【０１０３】
[0115]非ベースビューのうちの１つにおけるピクチャをコーディングする場合、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、ピクチャを基準ピクチャリスト内に追加することを、そのピクチャが、ビデオコーダが現在コーディングしているピクチャと異なるビューに関連付けられているが、ビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス（すなわち、アクセスユニット）に関連付けられている場合に行うことができる。他のインター予測基準ピクチャと同様に、ビデオコーダは、ビュー間予測基準ピクチャをインター予測基準ピクチャと同じ方法で基準ピクチャリストの任意の位置に挿入することができる。言い換えれば、ビュー間予測でコーディングされたピクチャは、他の非ベースビューのビュー間予測に対して基準ピクチャリスト内に追加され得る。
【０１０４】
[0116]Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、ビュー間予測は、視差動き補償（すなわち、ビュー間動き予測）によってサポートされており、これはＨ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー内のピクチャが基準ピクチャとして使用されることを許す。２つのビューのコーディングは、Ｈ．２６４／ＡＶＣのＭＶＣ拡張でもサポートされ得る。Ｈ．２６４／ＡＶＣのＭＶＣ拡張の利点の１つは、ＭＶＣエンコーダが、３つ以上のビューを３Ｄビデオ入力として受け取ることができ、ＭＶＣデコーダが、そのようなマルチビュー表現を復号することができるという点である。したがって、ＭＶＣデコーダを備えるレンダラは、３つ以上のビューを備える３Ｄビデオコンテンツを予期することができる。
【０１０５】
[0117]ＭＶＣでは、ビュー間予測は、同じアクセスユニット内のピクチャ間で許される（すなわち、同じ時間インスタンスで）。非ベースビューでピクチャをコーディングする場合、ビデオコーダは、基準ピクチャリスト内に、ビュー間基準ピクチャ（すなわち、現在のピクチャと異なるビューに関連付けられているが、現在のピクチャと同じ時間インスタンスに関連付けられているピクチャ）を含めることができる。ビュー間基準ピクチャは、インター予測基準ピクチャと全く同様に、基準ピクチャリストの任意の位置に入れられ得る。ビュー間基準ピクチャが、動き補償に使用される場合、対応する動きベクトルは、「視差動きベクトル」と称される。
【０１０６】
[0118]マルチビュービデオコーディングの状況では、２種類の動きベクトルがある。動きベクトルの１つの種類は、時間的基準ピクチャを指す通常の動きベクトルである。通常の時間的動きベクトルに対応するインター予測の種類は、動き補償予測（ＭＣＰ）と称され得る。ビュー間予測基準ピクチャが、動き補償に使用される場合、対応する動きベクトルは、「視差動きベクトル」と称され得る。言い換えれば、視差動きベクトルは、異なるビュー内のピクチャ（すなわち、視差基準ピクチャまたはビュー間基準ピクチャ）を指す。視差動きベクトルに対応するインター予測の種類は、「視差補償予測」または「ＤＣＰ」と称され得る。
【０１０７】
[0119]図３は、例示的なマルチビュー復号順序を示す概念図である。マルチビュー復号順序は、ビットストリーム順序であってよい。図３の例では、各正方形は、ビューコンポーネントに対応する。正方形の列は、アクセスユニットに対応する。各アクセスユニットは、時間インスタンスのすべてのビューのコーディングされたピクチャを含むように定義され得る。正方形の行は、ビューに対応する。図３の例では、アクセスユニットはＴ０．．．Ｔ８のラベルが付けられ、ビューはＳ０．．．Ｓ７のラベルが付けられている。アクセスユニットの各ビューコンポーネントは、次のアクセスユニットのビューコンポーネントの前に復号されるので、図３の復号順序は、時間順コーディング（time-first coding）と称され得る。アクセスユニットの復号順序は、出力または表示順序と同一でなくてもよい。
【０１０８】
[0120]マルチビューコーディングは、ビュー間予測をサポートすることができる。ビュー間予測は、Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、または他のビデオコーディング仕様で使用されるインター予測に類似しており、同じシンタックス要素を使用することができる。しかしながら、ビデオコーダが、現在のビデオユニット（マクロブロックまたはＰＵなど）に対してビュー間予測を実行する場合、ビデオコーダは、基準ピクチャとして、現在のビデオユニットと同じアクセスユニット内にあるが、ビューが異なる、ピクチャを使用することができる。対照的に、従来のインター予測は、異なるアクセスユニット内のピクチャのみを基準ピクチャとして使用する。
【０１０９】
[0121]図４は、マルチビューコーディングのための例示的な予測構造体を示す概念図である。図４のマルチビュー予測構造体は、時間的およびビュー間予測を含む。図４の例では、各正方形は、ビューコンポーネントに対応する。図４の例では、アクセスユニットはＴ０．．．Ｔ１１のラベルが付けられ、ビューはＳ０．．．Ｓ７のラベルが付けられている。「Ｉ」のラベルが付けられている正方形は、イントラ予測されたビューコンポーネントである。「Ｐ」のラベルが付けられている正方形は、片方向インター予測されたビューコンポーネントである。「Ｂ」と「ｂ」のラベルが付けられている正方形は、双方向インター予測されたビューコンポーネントである。「ｂ」のラベルが付けられた正方形は、「Ｂ」のラベルが付けられた正方形を基準ピクチャとして使用することができる。第１の正方形から第２の正方形に向かう矢印は、第１の正方形がインター予測において第２の正方形に対する基準ピクチャとして利用可能であることを示している。図４の垂直矢印によって示されているように、同じアクセスユニットの異なるビュー内のビューコンポーネントは、基準ピクチャとして利用可能であるものとしてよい。したがって、図４は、マルチビュービデオコーディングに対する典型的なＭＶＣ予測（各ビュー内のインターピクチャ予測とビュー間予測の両方を含む）を示しており、ここでは、予測は、矢印によって示されており、指されているオブジェクトは指しているオブジェクトを予測基準に使用する。アクセスユニットの１つのビューコンポーネントを同じアクセスユニットの別のビューコンポーネントに対する基準ピクチャとして使用することは、ビュー間予測と称され得る。
【０１１０】
[0122]上で述べたように、ＨＥＶＣのマルチビュー拡張（すなわち、ＭＶ−ＨＥＶＣ）とＨＥＶＣの３ＤＶ拡張（すなわち、３Ｄ−ＨＥＶＣ）とは、開発中である。すなわち、ＶＣＥＧとＭＰＥＧとの３Ｄビデオコーディングに関する共同チーム（ＪＣＴ−３Ｖ）がＨＥＶＣに基づく３ＤＶ規格を開発中であり、これに対する標準化の取組みの一環として、ＨＥＶＣに基づくマルチビュービデオコーデックの標準化（ＭＶ−ＨＥＶＣ）とＨＥＶＣに基づく３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）とがある。
【０１１１】
[0123]Ｇｅｒｈａｒｄ  Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｄｒａｆｔ  １」、ＪＣＴ３Ｖ−Ａ１００５、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１との３Ｄビデオコーディング拡張開発に関する共同チーム、第１回会合：ストックホルム、スウェーデン、１６−２０、２０１２年７月（これ以降、「３Ｄ−ＨＥＶＣ試験モデル１」）では、基準ソフトウェアの説明、さらには３Ｄ−ＨＥＶＣの作業ドラフトを提示している。３Ｄ−ＨＥＶＣ用の基準ソフトウェア、すなわち３ＤＶ−ＨＴＭは、ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔｒｕｎｋから入手可能である。Ｇｅｒｈａｒｄ  Ｔｅｃｈら、「ＭＶ−ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １」、ＪＣＴ３Ｖ−Ａ１００４、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１との３Ｄビデオコーディング拡張開発に関する共同チーム、第１回会合：ストックホルム、スウェーデン、１６−２０、２０１２年７月（これ以降、「ＪＣＴ３Ｖ−Ａ１００４」）では、ＭＶ−ＨＥＶＣの作業ドラフトを提示している。
【０１１２】
[0124]ＨＥＶＣのランダムアクセスの概念は、マルチビューと３ＤＶとの拡張に拡大適用される。ＪＣＴ３Ｖ−Ａ１００４は、ランダムアクセスポイントアクセスユニット、さらにはランダムアクセスビューコンポーネントの詳細な定義を含む。たとえば、ＪＣＴ３Ｖ−Ａ１００４では、ランダムアクセスポイント（ＲＡＰ）ビューコンポーネントを、スライスのみを含み、各スライスは、境界値を含めて７から１２までの範囲内のｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する、ビューコンポーネントとして定義する。ランダムアクセスポイントビューコンポーネントは、インター予測から予測されない。したがって、ＨＥＶＣのマルチビューまたは３Ｄ拡張（すなわち、ＭＶ−ＨＥＶＣまたは３Ｄ−ＨＥＶＣ）では、ビューコンポーネントがランダムアクセスポイントであるかどうかは、ビューコンポーネントのＮＡＬユニット型に依存する。この型がランダムアクセスポイントピクチャに対するＨＥＶＣベース仕様において定義されているものに属す場合、現在のビューコンポーネントは、ランダムアクセスポイントビューコンポーネント（または単純に、現在のビューのランダムアクセスポイントピクチャ）である。ランダムアクセスポイント（ＲＡＰ）ビューコンポーネントは、ＰまたはＢピクチャであってよい。Ｐピクチャは、片方向予測インター予測とイントラ予測とが許されているが、双予測インター予測は許されていないピクチャである。Ｂピクチャは、片方向予測インター予測と、双予測インター予測と、イントラ予測とが許されているピクチャである。さらに、ＪＣＴ３Ｖ−Ａ１００４では、ランダムアクセスポイントアクセスユニットを、コーディングされたピクチャがＲＡＰピクチャであるアクセスユニットとして定義している。
【０１１３】
[0125]いくつかの例では、ランダムアクセス機能は、時間的次元（したがってビューの内側）におけるいくつかの予測に対してＨＥＶＣベース仕様と同様にディセーブルにされるかまたは制約されるかのいずれかがなされるように時間的予測にのみ適用される。しかしながら、ランダムアクセスポイントビューコンポーネントに対するビュー間予測は、それでも可能であり、また典型的であり、これにより、Ｈ．２６４／ＭＶＣにおけるアンカーピクチャと同様に、コーディング効率を改善することができる。
【０１１４】
[0126]ビデオコーダは、ブロック（たとえば、ＰＵ、ＣＵなど）に対する視差ベクトルを決定することができる。一般に、視差ベクトルは、２つのビューの間の変位の推定量として使用される。ビデオコーダは、ブロックに対する視差ベクトルを使用して、ビュー間動きもしくは残差予測について別のビュー内に基準ブロックを配置することができるか、または、ビュー間動き予測のため視差ベクトルを視差動きベクトルに変換し得る。
【０１１５】
[0127]ビデオコーダが、現在のブロック（たとえば、現在のＰＵ、ＣＵなど）に対してビュー間動き予測を実行する場合、ビデオコーダは、現在のブロックに対する視差ベクトルを使用して、基準ビュー内の対応するブロック（たとえば、基準ＰＵ）を識別することができる。次いで、ビデオコーダは、対応するブロックの動き情報（たとえば、動きベクトル、基準インデックスなど）をマージモードまたはＡＭＶＰモードに対する候補リスト内の候補として使用することができる。言い換えれば、現在のブロックの対応するブロックは、視差ベクトルによって識別され、その動きベクトルは、現在のブロックのＡＭＶＰまたはマージリストの追加の候補として使用され得る。さらに、いくつかの例では、ビデオコーダは、現在のブロックに対する視差ベクトルを、マージモードまたはＡＭＶＰモードに対する候補リスト内の候補として使用することができる。すなわち、視差ベクトルは、視差動きベクトルに変換されて、ＡＭＶＰまたはマージリスト内に追加され得る。
【０１１６】
[0128]さらに、ビデオコーダは、ブロック（たとえば、ＰＵ、ＣＵなど）の視差ベクトルを使用して、ビュー間残差予測を実行することができる。ビデオエンコーダ２０が、ビュー間残差予測を実行する場合、ビデオエンコーダ２０は、現在のブロックに対する視差ベクトルを使用して、基準ビュー内の対応するブロックを識別することができる。ビデオエンコーダ２０は、次いで、対応するブロックに対する残差を決定することができる。次いで、ビデオエンコーダ２０は、対応するブロックに対する残差と現在のブロックに対する残差との間の差をシグナリングすることができる。ビデオデコーダ３０は、現在ブロックに対する視差ベクトルを使用して、対応するブロックを識別することができ、対応するブロックに対する残差を決定することができる。次いで、ビデオコーダは、シグナリングされた残差のサンプルを対応するブロックに対する残差の対応するサンプルと現在のブロックに対する予測ブロックの対応するサンプルとに加えて、現在のブロックのサンプルを再構成することができる。この方法で、現在のブロックが現在のＣＵであり、現在のＣＵの対応するブロックが非ゼロの残差ピクセルを含む場合、ブロックの残差は、現在のＣＵの残差を予測するために使用される。
【０１１７】
[0129]いくつかの例では、ビデオコーダは、隣接ブロックベース視差ベクトル（ＮＢＤＶ）の方法を使用して、ブロックに対する視差ベクトルを導出することができる。３Ｄ−ＨＥＶＣでは、最初に、Ｌ．  Ｚｈａｎｇら、「３Ｄ−ＣＥ５．ｈ：  Ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｇｅｎｅｒａｔｉｏｎ  ｒｅｓｕｌｔｓ」、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１との３Ｄビデオコーディング拡張開発に関する共同チーム、第１回会合：ストックホルム、スウェーデン、１６−２０、２０１２年７月、文書ＪＣＴ３Ｖ−Ａ００９７（これ以降、「ＪＣＴ３Ｖ−Ａ００９７」）で提案されているＮＢＤＶ導出プロセスを採用した。ＮＢＤＶ導出プロセスは、それ以来、さらに適応がなされている。たとえば、Ｓｕｎｇら、「３Ｄ−ＣＥ５．ｈ：  Ｓｉｍｐｌｉｆｉｃａｔｉｏｎ  ｏｆ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ＨＥＶＣ−ｂａｓｅｄ  ３Ｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１との３Ｄビデオコーディング拡張開発に関する共同チーム、第１回会合：ストックホルム、スウェーデン、１６−２０、２０１２年７月、文書ＪＣＴ３Ｖ−Ａ０１２６（これ以降、「ＪＣＴ３Ｖ−Ａ０１２６」）において簡素化されたＮＢＤＶとともに暗黙的視差ベクトル（ＩＤＶ）が含まれた。さらに、Ｋａｎｇら、「３Ｄ−ＣＥ５．ｈ  ｒｅｌａｔｅｄ：  Ｉｍｐｒｏｖｅｍｅｎｔｓ  ｆｏｒ  ｄｉｓｐａｒｉｔｙ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ」、ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ  ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１との３Ｄビデオコーディング拡張開発に関する共同チーム、第２回会合：上海、中国、１３−１９、２０１２年１０月、文書ＪＣＴ３Ｖ−Ｂ００４７（これ以降、「ＪＣＴ３Ｖ−Ｂ００４７」）において、ＮＢＤＶ導出プロセスは、復号ピクチャバッファ内に格納されているＩＤＶを取り除くことによってさらに簡素化され、その一方で、ＲＡＰピクチャ選択によりコーディング利得を改善している。
【０１１８】
[0130]マルチビュービデオコーディングにおける視差動き補償は、視差動きベクトルにより実行される。隣接ブロック（たとえば、現在のブロックに空間的または時間的に隣接するブロック）は、ビデオコーディングにおいてほとんど同じ動き／視差情報を共有するので、現在のブロックは、隣接ブロックにおける動きベクトル情報を、コーディング利得を改善するための良好な予測因子として使用することができる。この考え方に従って、ＮＢＤＶ導出プロセスは、異なるビュー内の視差ベクトルを推定するために隣接視差情報を使用する。具体的には、ＮＢＤＶ導出プロセスは、空間的隣接ブロックと時間的隣接ブロックとからの視差動きベクトルを使用して、現在のブロックに対する視差ベクトルを導出する。
【０１１９】
[0131]ビデオコーダが、ＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、隣接ブロックの２つのセットを利用することができる。一方のセットは、空間的隣接ブロックからのものであり、他方のセットは、時間的隣接ブロックからのものである。ビデオコーダは、空間的隣接ブロックと時間的隣接ブロックとを定義済み順序でチェックすることができる。定義済み順序は、現在のブロックと候補ブロックとの間の相関の優先度によって決定され得る。視差動きベクトルが、候補内に見つかった後、ビデオコーダは、視差動きベクトルを視差ベクトルに変換することができる。
【０１２０】
[0132]ＮＢＤＶ導出プロセスのいくつかのバージョンにおいて、ビデオコーダは、視差ベクトル導出に５つの空間的隣接ブロックを使用する。たとえば、ビデオコーダは、空間的隣接ブロック、すなわち、現在のブロックの左下の空間的隣接ブロックと、左の空間的隣接ブロックと、右上の空間的隣接ブロックと、上の空間的隣接ブロックと、左上の空間的隣接ブロックとをチェックすることができる。さらに、ＮＢＤＶ導出プロセスのいくつかのバージョンでは、これら５つの空間的隣接ブロックは、視差ベクトル導出に使用され、ブロックは図２に示されているように位置Ａ０、Ａ１、Ｂ０、Ｂ１、およびＢ２をそれぞれカバーするものとしてよい。いくつかの例では、ＮＢＤＶ導出プロセスで使用される空間的隣接ブロックは、ＨＥＶＣのマージモードで使用されるものと同じである。したがって、いくつかのそのような例では、追加のメモリアクセスは不要である。
【０１２１】
[0133]さらに、上で述べたように、ビデオコーダは、現在のブロック（たとえば、現在のＰＵ）に対する視差ベクトルを決定するプロセスの一部として時間的隣接ＰＵをチェックすることができる。ビデオコーダが、時間的隣接ブロック（たとえば、時間的隣接ＰＵ）をチェックする場合、ビデオコーダは、最初に、候補ピクチャリストの構成プロセスを実行するものとしてよい。ビデオコーダが、候補ピクチャリストの構成プロセスを実行する場合、ビデオコーダは、現在のビュー（すなわち、現在のブロックに関連付けられているビュー）からのすべての基準ピクチャを候補ピクチャとして取り扱うことができる。さらに、ビデオコーダが、候補ピクチャリストの構成プロセスを実行する場合、ビデオコーダは、最初に、候補ピクチャリスト内にいわゆる「同一の位置にあるピクチャ」を挿入し、続いて、候補ピクチャの残りを、基準インデックスの昇順で挿入することができる。すなわち、ビデオコーダは、残りの候補ピクチャが現在のピクチャの基準ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）内に出現する順序に従って残りの候補ピクチャを候補ピクチャリスト内に挿入することができる。現在のブロックを含むスライスのスライスヘッダ内の１つまたは複数のシンタックス要素は、同一の位置にあるピクチャを示すことができる。両方の基準ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）内の同じ基準インデックスを有する基準ピクチャがＮＤＢＶ導出プロセスでの使用に利用可能である場合、同一の位置にあるピクチャと同じ基準ピクチャリスト内の基準ピクチャは、候補ピクチャリスト内で、他の基準ピクチャに先行する。
【０１２２】
[0134]候補ピクチャリストを生成した後、ビデオコーダは、候補ピクチャリスト内の候補ピクチャ内の候補領域を決定することができる。ビデオコーダは、候補領域を使用して、時間的隣接ブロックを決定することができる。上で示されているように、ビデオコーダは、視差動きベクトルまたは時間的隣接ブロックのＩＤＶに基づいて現在ブロックに対する視差ベクトルを導出することができる。いくつかの例では、候補ピクチャリスト内の各候補ピクチャについて、ビデオコーダは、３つの候補領域を決定することができる。これら３つの候補領域は、次のように定義され得る。
【０１２３】
ＣＰＵ：現在のＰＵまたは現在のＣＵの同一の位置にある領域（コロケート領域）
ＣＬＣＵ：現在のＰＵの同一の位置にある領域をカバーする最大コーディングユニット（ＬＣＵ）
ＢＲ：ＣＰＵの右下の４×４のブロック
[0135]１６×１６のブロックにおけるより小さいブロックは、動き補償の結果と同じ動き情報を共有するので、ビデオコーダは、視差ベクトルに対するサンプルブロックを１つだけチェックすればよい。候補領域が、複数の１６×１６のブロックをカバーする場合、ビデオコーダは、ラスタースキャン順序に従って候補領域内のすべての１６×１６のブロックをチェックすることができる。たとえば、時間的に同一の位置にあるブロックに対する動きベクトルは、基準ピクチャの１６×１６のブロック内に格納され、典型的には、ビデオコーダは、４×４のブロックにアクセスして、動きベクトルを見つける。こうして、ビデオコーダが、候補ブロックを１６×１６のブロック内に置いた場合、すべての４×４のブロックは、共通動きベクトルを含み、ビデオコーダは、異なる動きベクトルを見つけるためにすべての４×４のブロックをチェックする必要はない。他方、候補領域が１６×１６より大きい場合、１６×１６のブロックの外の４×４のブロックは、異なる動きベクトルを含み得る。
【０１２４】
[0136]ビデオコーダが、候補領域（または候補領域内の１６×１６のブロック）をチェックする場合、ビデオコーダは、候補領域をカバーするＰＵが視差動きベクトルを指定するかどうかを決定することができる。候補領域をカバーするＰＵが、視差動きベクトルを指定する場合、ビデオコーダは、ＰＵの視差動きベクトルに基づいて現在のブロックの視差ベクトルを決定することができる。
【０１２５】
[0137]いくつかの例では、ビデオコーダは、ＮＢＤＶ導出プロセスを実行する一環として優先度ベースの視差ベクトル決定を実行することができる。たとえば、ビデオコーダは、ビデオコーダが視差動きベクトルを含む隣接ブロックを識別した後に、ビデオコーダが視差動きベクトルを現在のブロックに対する視差ベクトルに変換するように視差ベクトルを導出することができる。次いで、ビデオコーダは、ビュー間動き予測および／またはビュー間残差予測に視差ベクトルを使用することができる。いくつかの例では、隣接ブロックのチェック順序は、隣接ブロックと現在のブロックとの間の相関に基づいて定義される。たとえば、ビデオコーダは、最初に、空間的隣接ブロックを１つずつチェックし得る。ビデオコーダが視差動きベクトルを識別した後、ビデオコーダは、視差動きベクトルを視差ベクトルとして返す。いくつかの例では、５つの空間的隣接ブロックのチェック順序は、Ａ１、Ｂ１、Ｂ０、Ａ０、およびＢ２として定義される。
【０１２６】
[0138]さらに、候補ピクチャリスト内の各候補ピクチャについて、ビデオコーダは、この候補ピクチャにおける３つの候補領域を順にチェックすることができる。３つの領域のチェック順序は、第１の非ベースビューについてはＣＰＵ、ＣＬＣＵ、およびＢＲ、第２の非ベースビューについてはＢＲ、ＣＰＵ、ＣＬＵとして定義される。この例では、第１の非ベースビューに関連付けられているピクチャの復号は、ベースビューに関連付けられているピクチャの復号に依存するが、他のビューに関連付けられているピクチャの復号には依存し得ない。さらに、この例では、第２の非ベースビューに関連付けられているピクチャの復号は、ベースビュー、また場合によっては、第１の非ベースビューに関連付けられているピクチャの復号に依存するが、もし存在すれば他のビューに関連付けられているピクチャの復号には依存し得ない。簡単にするため、空間的隣接ブロック内の視差動きベクトルは、ＳＤＶとして表され、時間的隣接ブロック内の視差動きベクトルは、ＴＤＶとして表され得る。
【０１２７】
[0139]ビデオコーダがブロックの動きベクトル（複数可）（すなわち、空間的隣接ブロック、候補ピクチャの候補領域、または候補ピクチャの候補領域の１６×１６のブロック）をチェックする場合、ビデオコーダは、ブロックの動きベクトル（複数可）が視差動きベクトルであるかどうかを決定することができる。ピクチャのブロックの視差動きベクトルは、ピクチャの視差基準ピクチャ内の位置を指している動きベクトルである。与えられたピクチャの視差基準ピクチャは、与えられたピクチャと同じアクセスユニットに関連付けられているが、与えられたピクチャと異なるビューに関連付けられているピクチャであるものとしてよい。ビデオコーダが、視差動きベクトルを識別する場合、ビデオコーダは、チェックプロセスを終了することができる。ビデオコーダは、返された視差動きベクトルを視差ベクトルに変換することができ、またビュー間動き予測とビュー間残差予測とに対して視差ベクトルを使用することができる。たとえば、ビデオコーダは、視差動きベクトルの水平成分に等しい現在のブロックに対する視差ベクトルの水平成分を設定することができ、視差ベクトルの垂直成分を０に設定することができる。
【０１２８】
[0140]ビデオコーダが空間的隣接ＰＵをチェックする場合に、ビデオコーダは、最初に、隣接ＰＵが視差動きベクトルを有しているかどうかをチェックすることができる。空間的隣接ＰＵのどれもが視差動きベクトルを有していない場合、ビデオコーダは、空間的隣接ＰＵのどれかがＩＤＶを有しているかどうかを決定することができる。ＩＤＶは、空間的または時間的隣接ＰＵ（たとえば、ビュー間動き予測またはビュー間残差予測を使用してコーディングされるＰＵ）の視差ベクトルであってよい。たとえば、ビデオコーダが、ビュー間動き予測でブロックをコーディングする場合、ビデオコーダは、異なるビュー内の対応するブロックを選択するために視差ベクトルを導出することが必要になることがある。この例では、「ＩＤＶ」という用語は、ビュー間動き予測において導出された視差ベクトルを指すものとしてよい。ブロックが、時間的動き予測でコーディングされ得るとしても、ビデオコーダは、１つまたは複数の次のブロックをコーディングするために、導出された視差ベクトルを破棄しない。この方法で、ＩＤＶは、視差ベクトル導出のためにそのブロックに格納され得る。
【０１２９】
[0141]ＮＢＤＶ導出プロセスの一環としてビデオコーダがＩＤＶをチェックするいくつかの例では、ビデオコーダは、次のステップを実行することができる。次のステップのどれかで視差ベクトルを見つけた場合、ビデオコーダは、導出プロセスを終了することができる。
【０１３０】
ステップ１：５つの空間的隣接ブロックを、Ａ１、Ｂ１、Ｂ０、Ａ０、およびＢ２の順序でチェックして、視差動きベクトルを見つける。視差動きベクトルが見つかった後、ビデオコーダは、視差動きベクトルを視差ベクトルに変換する。空間的隣接ブロックがＩＤＶを含んでいる場合、ビデオコーダは、それらのＩＤＶフラグを「ＩＤＶ使用済み」とマークし、ＩＤＶフラグの関連する値を格納する。
【０１３１】
ステップ２：時間的動きベクトル予測がイネーブルにされている場合に、次のように適用する。
【０１３２】
ａ）現在のコーディングモードがＡＭＶＰである場合、ターゲット基準ピクチャリスト内にあるターゲット基準インデックスを有する基準ピクチャが、同一の位置にあるピクチャ（コロケートピクチャ）として使用される。同一の位置にあるピクチャ内の２つのブロックが定義される（すなわち、同一の位置にある（コロケート）ＰＵ（ＢＲ）の右下のブロックと、同一の位置にある（コロケート）ＰＵ（ＣＢ）の中心のブロック）。この例では、ビデオコーダは、次の順序でコロケートピクチャのブロックをチェックする。
【０１３３】
１）ＢＲをチェックして、ＢＲが視差動きベクトルを含んでいるかどうかを確認する。含んでいれば、ビデオコーダは、視差動きベクトルを視差ベクトルに変換する。含んでいなければ、ＢＲがスキップモードとしてコーディングされ、ＢＲがＩＤＶを含んでいる（すなわち、ＩＤＶのフラグが１に等しい）場合、ビデオコーダは、ＢＲを「ＩＤＶ使用済み」とマークし、関連するＩＤＶを格納する。次いで、ビデオコーダは、ステップ３を実行するものとしてよい。
【０１３４】
２）ＣＢをチェックして、ＣＢが視差動きベクトルを含んでいるかどうかを確認する。含んでいれば、ビデオコーダは、視差動きベクトルを視差ベクトルに変換する。含んでいなければ、ＢＲがスキップモードとしてコーディングされ、ＢＲがＩＤＶを含んでいる（すなわち、ＩＤＶのフラグが１に等しい）場合、ビデオコーダは、ＢＲを「ＩＤＶ使用済み」とマークし、ビデオコーダは、関連するＩＤＶを格納する。次いで、ビデオコーダは、ステップ３を実行するものとしてよい。
【０１３５】
ｂ）現在のコーディングモードがスキップ／マージである場合、ビデオコーダは、適用可能な場合に、各基準ピクチャリスト内の２つの同一の位置にある基準ピクチャを使用する。同一の位置にある基準ピクチャを示す基準インデックスは、左の隣接ＰＵの基準インデックスまたは０に等しいものとしてよい。基準ピクチャリスト０と１との同一の位置にあるピクチャの各々について、ビデオコーダは、ａ）１）とａ）２）とのステップを順に実行する。
【０１３６】
ステップ３：５つの空間的隣接ブロックのうちの１つが、スキップモードを使用してコーディングされ、空間的隣接ブロックがＩＤＶを含む（すなわち、空間的隣接ブロックが「ＩＤＶ使用済み」とマークされているフラグを有する）場合に、ビデオコーダは、ＩＤＶを視差ベクトルとして返す。この例では、ＩＤＶに対する空間的隣接ブロックのチェック順序は、Ａ０、Ａ１、Ｂ０、Ｂ１、およびＢ２である。
【０１３７】
ステップ４：時間的動きベクトル予測がイネーブルにされ、「ＩＤＶ使用済み」とマークされているコロケートピクチャ内に１つのブロック（すなわち、ＢＲまたはＣＢ）がある場合、ビデオコーダは、そのブロックに関連付けられているＩＤＶを視差ベクトルに変換する。
【０１３８】
[0142]復号ピクチャバッファ（ＤＰＢ）内のＩＤＶにアクセスすることに関連付けられている要求されるメモリ帯域幅と複雑度とは大きくなる可能性がある。たとえば、隣接ブロックがＮＢＤＶ導出プロセスにおいてＩＤＶを有するかどうかを決定するために、ビデオコーダは、隣接ブロックのＡＭＶＰまたはマージ候補リストを再構成し、再構成されたＡＭＶＰまたはマージ候補リスト内のビュー間動きベクトル候補を識別することが必要になる場合がある。隣接ブロックのＡＭＶＰまたはマージ候補リストの再構成は、比較的計算集約的で、大きな帯域幅を必要とする可能性がある。したがって、ビデオコーダは、低複雑度のＮＢＤＶ導出プロセスを実行するものとしてよい。ビデオコーダは、ビデオコーダが低複雑度のＮＢＤＶ導出プロセスを実行するときに、より少ないブロック候補を考慮する。たとえば、ビデオコーダは、ＤＰＢに、ＩＤＶに対する情報を格納することができる。この例では、ＩＤＶに対する付加的な情報は、すべての以前にコーディングされたピクチャに対するＩＤＶフラグとベクトルとを含み得る。さらに、低複雑度のＮＢＤＶ導出プロセスでは、ＤＰＢ内のＩＤＶ候補を取り除くことで、メモリ帯域幅を減らすことができる。言い換えれば、ビデオコーダは、ＩＤＶ関係情報をＤＰＢに格納しない。
【０１３９】
[0143]いくつかの低複雑度のＮＢＤＶ導出プロセスにおいて、ビデオコーダは、上で説明されているＮＢＤＶ導出プロセスよりも少ない、候補ピクチャの候補領域をチェックする。たとえば、図５は、時間的候補ピクチャの対応するＰＵにおける時間的隣接要素を示す概念図である。図５の例において、ビデオコーダは、「Ｐｏｓ．Ａ」と「Ｐｏｓ．Ｂ」とによって示されるこの位置をカバーする候補領域をチェックすることができる。さらに、いくつかの低複雑度のＮＢＤＶ導出プロセスにおいて、ビデオコーダは、同一の位置にある（コロケート）ピクチャとランダムアクセスピクチャのみの候補領域をチェックすることができる。したがって、いくつかの例において、コロケートピクチャとランダムアクセスピクチャとは、時間的ブロックのチェックについて考慮される（すなわち、図５に示されているような下の下と中心のブロック）。
【０１４０】
[0144]さらに、いくつかの低複雑度のＮＢＤＶ導出プロセスにおいて、ビデオコーダは、スライスレベルまたはピクチャレベルで候補ピクチャ導出を１回実行することができる。言い換えれば、ビデオコーダは、ピクチャまたはスライスごとに１回ＮＢＤＶ導出プロセスで使用するための候補ピクチャリストを生成することができる。その結果、そのような低複雑度のＮＢＤＶ導出プロセスにおいて、ビデオコーダは、ＰＵレベルまたはＣＵレベルで候補ピクチャ導出プロセスをもはや呼び出さない。
【０１４１】
[0145]３Ｄ−ＨＥＶＣで視差ベクトルを導出するためのプロセスは、潜在的に、次の問題を有することがある。たとえば、ＮＢＤＶ導出プロセスは、ビュー間動き予測のためＰＵごとに呼び出され、そのため、計算複雑度が著しく増大し得る。さらに、ＮＢＤＶ導出プロセスにおいてチェックされる空間的隣接ブロックの数は、潜在的に大きく、いくつかの空間的隣接ブロックは、同じ、または類似のコーディング効率を達成するためにチェックされる必要がないこともあり得る。
【０１４２】
[0146]本開示の技術は、３Ｄ−ＨＥＶＣにおける視差ベクトル導出プロセス（すなわち、ＮＢＤＶ）に対していくつかの改善と簡素化とをもたらし得る。たとえば、ＣＵベースの視差ベクトル導出は、視差導出プロセスがＣＵに対して１回のみ呼び出され、ＣＵの内側のすべてのＰＵが、たとえば、ビュー間動き予測とビュー間残差予測とを含む、ビュー間予測に対して、同じ導出された視差ベクトルを共有する仕組みであるものとしてよい。ＣＵベースの視差ベクトル導出の結果、計算複雑度が減少し、並列処理が向上し得る。
【０１４３】
[0147]たとえば、ビデオエンコーダ２０は、ビデオデータのコーディングされた表現を含むビットストリームを生成することができる。ビットストリームを生成する一環として、ビデオエンコーダ２０は、視差ベクトル導出プロセスを実行して、複数のブロック内の代表的ブロックに対する視差ベクトルを導出することができる。この例では、ビデオデータは、複数のブロックに分割される親ブロックを含む。さらに、この例において、ビデオエンコーダ２０は、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック（すなわち、親ブロックの２つまたはそれ以上のブロック）内の２つまたはそれ以上のブロックに対するビュー間予測を実行することによって、ビデオデータのコーディングされた表現を含むビットストリームを生成することができる。
【０１４４】
[0148]別の例において、ビデオデコーダ３０は、視差ベクトル導出プロセスを実行して、複数のブロック内の代表的ブロックに対する視差ベクトルを導出することができる。この例では、ビデオデータは、複数のブロックに分割される親ブロックを含む。さらに、この例において、ビデオデコーダ３０は、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することによって、複数のブロック（たとえば、親ブロック）内の２つまたはそれ以上のブロックに対するサンプルブロックを再構成することができる。
【０１４５】
[0149]本開示の別の例示的な技術では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＰＵに対する視差ベクトルを導出するために修正されたＮＢＤＶ導出プロセスを実行することができる。ビデオコーダが、修正されたＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、３Ｄ−ＨＥＶＣ試験モデル１で説明されているＮＢＤＶ導出プロセスに比べて、ＳＤＶおよび／またはＩＤＶを導出するためにより少ない空間的隣接ブロックをチェックする。たとえば、ビデオコーダが、修正されたＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、左のブロックと上のブロック（図２においてＡ１とＢ１として表されている）のみをチェックする。さらに、この例において、ビデオコーダは、左のブロックをチェックし、次いで、上のブロックをチェックすることができる。他の例では、ビデオコーダは、上のブロックをチェックし、次いで、左のブロックをチェックすることができる。本開示の修正されたＮＢＤＶ導出プロセスの結果、３Ｄ−ＨＥＶＣ試験モデル１で説明されているＮＢＤＶ導出プロセスに対してコーディング利得に対する変更が最小限度に抑えられ、複雑度が低減され得る。
【０１４６】
[0150]たとえば、ビデオエンコーダ２０は、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定することができる。視差ベクトル導出プロセスを実行する一環として、ビデオエンコーダ２０は、第１または第２のいずれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有している場合に、視差動きベクトルまたはＩＤＶを現在のブロックに対する視差ベクトルに変換することができる。この例では、視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたはＩＤＶを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかを決定しない。いくつかの例では、第１の空間的隣接ブロックは、現在のブロックの上縁に隣接し（すなわち、上の隣接ブロック）、第２の空間的隣接ブロックは、現在のブロックの左縁に隣接する（すなわち、左の隣接ブロック）。本開示では、ブロック（たとえば、ＣＴＵのコーディングツリーブロック、ＣＵのコーディングブロック、ＰＵの予測ブロックなど）に対応するサンプルのブロックの外縁をブロックの縁と称することがある。さらに、そのような例では、ビデオエンコーダ２０は、現在のブロックに対する導出された視差ベクトルに部分的に基づいて、現在のブロックの符号化された表現を生成することができる。
【０１４７】
[0151]別の例では、ビデオデコーダ３０は、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定することができる。視差ベクトル導出プロセスを実行する一環として、ビデオデコーダ３０は、第１または第２のいずれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有している場合に、視差動きベクトルまたはＩＤＶを現在のブロックに対する視差ベクトルに変換することができる。視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたはＩＤＶを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかを決定しない。いくつかの例では、第１の空間的隣接ブロックは、現在のブロックの左縁に隣接し（すなわち、左の隣接ブロック）、第２の空間的隣接ブロックは、現在のブロックの上縁に隣接する（すなわち、上の隣接ブロック）。さらに、ビデオデコーダ３０は、一部は、導出された視差ベクトルに基づいて、現在のブロックに対するビュー間予測を実行することによって、現在のブロックに対するサンプルブロックを再構成することができる。
【０１４８】
[0152]３Ｄ−ＨＥＶＣで視差ベクトルを導出するためのプロセスの別の例示的な潜在的問題として、ビデオコーダは、すべてのブロック内の関連するフラグを格納して、空間的隣接ブロックがＩＤＶを含むかどうかを示す。そのようなフラグを格納することで、システム内のメモリの必要量が増大し得る。さらに、各ブロックは、２つまでのＩＤＶを含むことができる（すなわち、ＲｅｆＰｉｃＬｉｓｔ０に対応するＩＤＶとＲｅｆＰｉｃＬｉｓｔ１に対応するＩＤＶ）。本開示で説明されている技術において、そのようなフラグの格納は、必要でない場合がある。
【０１４９】
[0153]本開示の例示的な技術によれば、ＩＤＶは、単純な方法で表現され、これにより、空間的隣接ブロックがＩＤＶを含むかどうかを示す信号のほかに使用されるフラグはない。さらに、ブロックについて、基準インデックス、基準ビューインデックス、または基準ビューインデックスの差がシグナリングされ、不正な基準インデックス（すなわち、１）、不正な基準ビューインデックス（たとえば、現在のビューと同じ）、および／または基準ビューインデックスの不正な差（たとえば、０）は、ブロックに対して、暗黙的視差ベクトルが存在していないことを示す。それに加えて、ただ１つの視差ベクトルが、１つの空間的隣接ブロックに対して存在し得る。
【０１５０】
[0154]したがって、いくつかのそのような例において、空間的隣接ブロックがＩＤＶを含むかどうかを示すために、フラグがシグナリングされない。たとえば、ビデオエンコーダ２０は、空間的隣接ブロックがＩＤＶを含むかどうかを示すためにフラグをシグナリングし得ない。さらに、このようないくつかの例では、不正な基準インデックス、不正な基準ビューインデックス、および基準ビューインデックスの不正な差のうちの１つは、隣接ブロックに対してＩＤＶが存在していることを示す。たとえば、ビデオエンコーダ２０は、隣接ブロックに対してＩＤＶが存在していることを示すために、不正な基準インデックス、不正な基準ビューインデックス、および基準ビューインデックスの不正な差のうちの１つをシグナリングすることができる。
【０１５１】
[0155]本開示の例示的な技術は、別々に、または併せて使用され得る。すなわち、本開示の技術的態様はどれも、視差ベクトル導出に対する完全な解決方法において組み合わされ得る。
【０１５２】
[0156]図６は、本開示の技術を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図６は説明のために用意され、本開示において広範に例示され、説明されているような技術に対する制限とみなされるべきでない。説明のために、本開示では、ＨＥＶＣコーディングを背景としてビデオエンコーダ２０について説明する。しかしながら、本開示の技術は、他のコーディング規格または方法に適用可能であるものとしてよい。
【０１５３】
[0157]図６の例において、ビデオエンコーダ２０は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０とイントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニット１２２と動き補償ユニット１２４とを含む。他の例では、ビデオエンコーダ２０は、より多い、より少ない、または異なる機能コンポーネントを含んでもよい。
【０１５４】
[0158]ビデオエンコーダ２０は、ビデオデータを受信することができる。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス内の各ＣＴＵを符号化することができる。ＣＴＵの各々は、ピクチャのサイズが等しいルーマコーディングツリーブロック（ＣＴＢ）と、対応するＣＴＢとに関連付けられ得る。ＣＴＵを符号化する一環として、予測処理ユニット１００は、四分木分割法を実行して、ＣＴＵのＣＴＢをだんだん小さくなるいくつかのブロックに分割することができる。より小さいブロックは、ＣＵのコーディングブロックであってよい。たとえば、予測処理ユニット１００は、ＣＴＵに関連付けられているＣＴＢをサイズが等しい４つのサブブロックに分割し、それらのサブブロックのうちの１つまたは複数をサイズが等しい４つのサブサブブロックに分割し、というように続けることができる。
【０１５５】
[0159]ビデオエンコーダ２０は、ＣＴＵのＣＵを符号化して、ＣＵの符号化された表現（すなわち、コーディングされたＣＵ）を生成することができる。ＣＵを符号化する一環として、予測処理ユニット１００は、ＣＵに関連付けられているコーディングブロックをＣＵの１つまたは複数のＰＵの間で分割することができる。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連付けられ得る。ビデオエンコーダ２０とビデオデコーダ３０とは、様々なサイズを有するＰＵをサポートすることができる。上で示されているように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指すものとしてよく、ＰＵのサイズは、ＰＵのルーマ予測ブロックのサイズを指すものとしてよい。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０とビデオデコーダ３０とは、イントラ予測に対する２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、インター予測に対する２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様のものの対称的ＰＵサイズとをサポートすることができる。ビデオエンコーダ２０とビデオデコーダ３０とは、インター予測に対する２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称的分割もサポートし得る。
【０１５６】
[0160]インター予測処理ユニット１２０は、ＣＵの各ＰＵにインター予測を実行することによってＰＵに対する予測データを生成することができる。ＰＵに対する予測データは、ＰＵの予測ブロックとＰＵに対する動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライスにあるか、Ｐスライスにあるか、またはＢスライスにあるかに応じてＣＵのＰＵに対して異なるオペレーションを実行し得る。Ｉスライスでは、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス内にある場合、インター予測処理ユニット１２０は、ＰＵにインター予測を実行しない。
【０１５７】
[0161]ＰＵがＰスライス内にある場合、動き推定ユニット１２２は、ＰＵに対する基準領域に対する基準ピクチャのリスト（たとえば、「ＲｅｆＰｉｃＬｉｓｔ０」）内の基準ピクチャを探索することができる。ＰＵに対する基準領域は、ＰＵの予測ブロックに最も正確に対応するサンプルを含む、基準ピクチャ内の、一領域であるものとしてよい。動き推定ユニット１２２は、ＰＵに対する基準領域を含む基準ピクチャのＲｅｆＰｉｃＬｉｓｔ０内の位置を示す基準インデックスを生成することができる。それに加えて、動き推定ユニット１２２は、ＰＵの予測ブロックと基準領域に関連付けられている基準位置との間の空間的変位を示す動きベクトルを生成することができる。たとえば、動きベクトルは、現在のピクチャ内の座標から基準ピクチャ内の座標へのオフセットを与える２次元ベクトルであるものとしてよい。動き推定ユニット１２２は、基準インデックスと動きベクトルとをＰＵの動き情報として出力することができる。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される基準位置における実際の、または補間されたサンプルに基づいてＰＵの予測ブロックを生成することができる。
【０１５８】
[0162]ＰＵがＢスライス内にある場合、動き推定ユニット１２２は、ＰＵに対する片方向予測または双予測を実行することができる。ＰＵに対する片方向予測を実行するために、動き推定ユニット１２２は、ＰＵに対する基準領域に対するＲｅｆＰｉｃＬｉｓｔ０または第２の基準ピクチャリスト（「ＲｅｆＰｉｃＬｉｓｔ１」）の基準ピクチャを探索することができる。動き推定ユニット１２２は、ＰＵの動き情報として、基準領域を含む基準ピクチャのＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１内の位置を示す基準インデックスと、ＰＵの予測ブロックと基準領域に関連付けられている基準位置との間の空間的変位を示す動きベクトルと、基準ピクチャがＲｅｆＰｉｃＬｉｓｔ０内にあるかまたはＲｅｆＰｉｃＬｉｓｔ１内にあるかを示す１つまたは複数の予測方向指標とを出力することができる。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される基準位置における実際の、または補間されたサンプルに少なくとも部分的に基づいてＰＵの予測ブロックを生成することができる。
【０１５９】
[0163]ＰＵに対する双方向インター予測を実行するために、動き推定ユニット１２２は、ＰＵに対する基準領域に対するＲｅｆＰｉｃＬｉｓｔ０内の準備ピクチャを探索し、ＰＵに対する別の基準領域に対するＲｅｆＰｉｃＬｉｓｔ１内の基準ピクチャも探索することができる。動き推定ユニット１２２は、基準領域を含む基準ピクチャのＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１とにおける位置を示す基準インデックスを生成することができる。それに加えて、動き推定ユニット１２２は、基準領域に関連付けられている基準位置とＰＵの予測ブロックとの間の空間的変位を示す動きベクトルを生成することができる。ＰＵの動き情報は、基準インデックスとＰＵの動きベクトルとを含み得る。動き補償ユニット１２４は、ＰＵの動きベクトルによって示される基準位置における実際の、または補間されたサンプルに少なくとも部分的に基づいてＰＵの予測ブロックを生成することができる。
【０１６０】
[0164]イントラ予測処理ユニット１２６は、ＰＵにイントラ予測を実行することによってＰＵに対する予測データを生成することができる。ＰＵに対する予測データは、ＰＵに対する予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライスと、Ｐスライスと、ＢスライスとにおいてＰＵにイントラ予測を実行することができる。
【０１６１】
[0165]ＰＵにイントラ予測を実行するために、イントラ予測処理ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵに対する予測ブロックの複数のセットを生成することができる。特定のイントラ予測モードを使用してイントラ予測を実行する場合、イントラ予測処理ユニット１２６は、隣接ブロックからのサンプルの特定のセットを使用してＰＵに対する予測ブロックを生成することができる。隣接ブロックは、ＰＵと、ＣＵと、ＣＴＵとについて左から右、上から下の符号化順序を仮定して、ＰＵの予測ブロックの上、右上、左上、または左であるものとしてよい。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数は、ＰＵの予測ブロックのサイズに依存し得る。
【０１６２】
[0166]予測処理ユニット１００は、ＰＵに対するインター予測処理ユニット１２０によって生成される予測データまたはＰＵに対するイントラ予測処理ユニット１２６によって生成される予測データのうちからＣＵのＰＵに対する予測データを選択することができる。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／歪み尺度に基づいてＣＵのＰＵに対する予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択予測ブロックと称され得る。
【０１６３】
[0167]残差生成ユニット１０２は、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックと、ＣＵのＰＵの選択された予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとに基づいて、ＣＵのルーマ残差ブロックと、Ｃｂ残差ブロックと、Ｃｒ残差ブロックとを生成することができる。たとえば、残差生成ユニット１０２は、残差ブロック内の各サンプルがＣＵのコーディングブロック内のサンプルとＣＵのＰＵの対応する選択予測ブロック内の対応するサンプルとの間の差に等しい値を有するようにＣＵの残差ブロックを生成することができる。
【０１６４】
[0168]変換処理ユニット１０４は、四分木分割法を実行して、ＣＵの残差ブロックをＣＵのＴＵに関連付けられている変換ブロックに分割することができる。したがって、ＴＵは、ルーマ変換ブロックと２つの対応するクロマ変換ブロックとに関連付けられ得る。ＣＵのＴＵのルーマとクロマとの変換ブロックのサイズと位置とは、ＣＵのＰＵの予測ブロックのサイズと位置とに基づくか、または基づかないものとしてもよい。
【０１６５】
[0169]変換処理ユニット１０４は、１つまたは複数の変換をＴＵの変換ブロックに適用することによってＣＵの各ＴＵに対する変換係数ブロックを生成することができる。変換処理ユニット１０４は、様々な変換をＴＵに関連付けられている変換ブロックに適用することができる。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念上類似している変換を変換ブロックに適用することができる。いくつかの例では、変換処理ユニット１０４は、変換を変換ブロックに適用しない。そのような例では、変換ブロックは、変換係数ブロックとして取り扱われ得る。
【０１６６】
[0170]量子化ユニット１０６は、係数ブロック内の変換係数を量子化することができる。量子化プロセスは、変換係数のうちの一部または全部に関連付けられているビット深度を低減することができる。たとえば、ｎビット変換係数は、切り捨てで量子化時にｍビット変換係数に下げられ、ここで、ｎはｍより大きい。量子化は、情報の損失を持ち込み得るため、量子化された変換係数は、元の変換係数よりも低い精度を有し得る。
【０１６７】
[0171]逆量子化ユニット１０８と逆変換処理ユニット１１０とは、逆量子化と逆変換とをそれぞれ係数ブロックに適用して、係数ブロックから残差ブロックを再構成することができる。再構成ユニット１１２は、再構成された残差ブロックを予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加えて、ＴＵに関連付けられている再構成された変換ブロックを生成することができる。この方法でＣＵの各ＴＵに対して変換ブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構成することができる。
【０１６８】
[0172]フィルタユニット１１４は、１つまたは複数のデブロッキングオペレーションを実行して、ＣＵに関連付けられているコーディングブロック内のブロッキングアーチファクトを低減することができる。復号ピクチャバッファ１１６は、フィルタユニット１１４が再構成されたコーディングブロックに１つまたは複数のデブロッキングオペレーションを実行した後に、再構成されたコーディングブロックを格納することができる。インター予測処理ユニット１２０は、再構成されたコーディングブロックを含む基準ピクチャを使用して、他のピクチャのＰＵにインター予測を実行することができる。それに加えて、イントラ予測処理ユニット１２６は、復号ピクチャバッファ１１６内の再構成されたコーディングブロックを使用して、ＣＵと同じピクチャ内の他のＰＵにイントラ予測を実行することができる。
【０１６９】
[0173]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能コンポーネントからデータを受信することができる。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信することができ、予測処理ユニット１００からシンタックス要素を受信することができる。エントロピー符号化ユニット１１８は、データに１つまたは複数のエントロピー符号化オペレーションを実行して、エントロピー符号化されたデータを生成することができる。たとえば、エントロピー符号化ユニット１１８は、データに、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）オペレーション、ＣＡＢＡＣオペレーション、変数−変数（Ｖ２Ｖ）レングスコーディングオペレーション、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）オペレーション、確率間隔区分エントロピー（ＰＩＰＥ）コーディングオペレーション、指数ゴロム符号化オペレーション、または別の種類のエントロピー符号化オペレーションを実行することができる。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。
【０１７０】
[0174]本開示の１つまたは複数の技術によれば、親ブロックは、複数のブロックに分割され、視差ベクトル導出プロセスが、複数のブロック内の代表的ブロックに対する視差ベクトルを導出するために実行される。ビデオエンコーダ２０は、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測（たとえば、ビュー間動き予測および／またはビュー間残差予測）を実行することによって、ビデオデータのコーディングされた表現を含むビットストリームを生成することができる。さらに、本開示のいくつかの例示的な技術において、ビデオエンコーダ２０は、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定することができる。視差ベクトル導出プロセスを実行する一環として、第１または第２のいずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、ビデオエンコーダ２０は、視差動きベクトルまたは暗黙的視差ベクトルを現在のブロックに対する視差ベクトルに変換することができる。視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない。
【０１７１】
[0175]図７は、本開示の技術を実装するように構成されている例示的なビデオデコーダ３０を示すブロック図である。図７は説明のために用意され、本開示において広範に例示され、説明されているような技術に対する制限ではない。説明のために、本開示では、ＨＥＶＣコーディングを背景としてビデオデコーダ３０について説明する。しかしながら、本開示の技術は、他のコーディング規格または方法に適用可能であるものとしてよい。
【０１７２】
[0176]図７の例において、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４とイントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多い、より少ない、または異なる機能コンポーネントを含んでもよい。
【０１７３】
[0177]コーディングピクチャバッファ（ＣＰＢ）１５１は、ビットストリームの符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受信し、格納することができる。エントロピー復号ユニット１５０は、ＣＰＢ１５１からＮＡＬユニットを受信し、ＮＡＬユニットを解析して、ビットストリームからシンタックス要素を取得することができる。エントロピー復号ユニット１５０は、ＮＡＬユニット内のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構成ユニット１５８と、フィルタユニット１６０とは、ビットストリームから抽出されたシンタックス要素に基づいて復号されたビデオデータを生成することができる。
【０１７４】
[0178]ビットストリームのＮＡＬユニットは、コーディングされたスライスＮＡＬユニットを含み得る。ビットストリームを復号する一環として、エントロピー復号ユニット１５０は、コーディングされたスライスＮＡＬユニットからシンタックス要素を抽出して、エントロピー復号することができる。コーディングされたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含むものとしてよい。
【０１７５】
[0179]ビットストリームからシンタックス要素を復号することに加えて、ビデオデコーダ３０は、ＣＵに復号オペレーションを実行することができる。ＣＵに復号オペレーションを実行することによって、ビデオデコーダ３０は、ＣＵのコーディングブロックを再構成することができる。
【０１７６】
[0180]ＣＵに復号オペレーションを実行する一環として、逆量子化ユニット１５４は、ＣＵのＴＵに関連付けられている係数ブロックを逆量子化する、すなわち、デクオンタイズ（de-quantize）することができる。量子化ユニット１５４は、ＴＵのＣＵに関連付けられているＱＰ値を使用して、量子化の程度と、同じように、逆量子化ユニット１５４が適用する逆量子化の程度とを決定することができる。すなわち、圧縮比、すなわち、元のシーケンスを表すために使用されるビットの数と圧縮されたシーケンスのビットの数との比は、変換係数を量子化するときに使用されるＱＰの値を調整することによって制御され得る。圧縮比は、採用されるエントロピーコーディングの方法にも依存し得る。
【０１７７】
[0181]逆量子化ユニット１５４が係数ブロックを逆量子化した後、逆変換処理ユニット１５６は、１つまたは複数の逆変換を係数ブロックに適用して、ＴＵに関連付けられている残差ブロックを生成することができる。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネン・レーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を係数ブロックに適用することができる。
【０１７８】
[0182]ＰＵがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット１６６は、イントラ予測を実行して、ＰＵに対する予測ブロックを生成することができる。イントラ予測処理ユニット１６６は、イントラ予測モードを使用して、空間的隣接ＰＵの予測ブロックに基づいてＰＵに対する予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。イントラ予測処理ユニット１６６は、ビットストリームから復号された１つまたは複数のシンタックス要素に基づいてＰＵに対するイントラ予測モードを決定することができる。
【０１７９】
[0183]予測処理ユニット１５２は、ビットストリームから抽出されたシンタックス要素に基づいて第１の基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０）と第２の基準ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ１）とを構成することができる。さらに、ＰＵが、インター予測を使用して符号化される場合、エントロピー復号ユニット１５０は、ＰＵに対する動き情報を取得することができる。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、ＰＵに対する１つまたは複数の基準領域を決定することができる。動き補償ユニット１６４は、ＰＵに対する１つまたは複数の基準ブロックにおけるサンプルに基づいて、ＰＵに対する予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成することができる。
【０１８０】
[0184]再構成ユニット１５８は、適用可能な場合に、ＣＵのＴＵに関連付けられているルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックと、ＣＵのＰＵの予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとからの残差値、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを再構成することができる。たとえば、再構成ユニット１５８は、ルーマ変換ブロックと、Ｃｂ変換ブロックと、Ｃｒ変換ブロックとのサンプルを予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとの対応するサンプルに加えて、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを再構成することができる。
【０１８１】
[0185]フィルタユニット１６０は、デブロッキングオペレーションを実行して、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとに関連付けられているブロッキングアーチファクトを低減することができる。ビデオデコーダ３０は、ＣＵのルーマコーディングブロックと、Ｃｂコーディングブロックと、Ｃｒコーディングブロックとを復号ピクチャバッファ１６２に格納することができる。復号ピクチャバッファ１６２は、その後の動き補償、イントラ予測、および図１の表示デバイス３２などの表示デバイスへの表示のために基準ピクチャを提供することができる。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２内のルーマブロックと、Ｃｂブロックと、Ｃｒブロックとに基づいて、他のＣＵのＰＵにイントラ予測オペレーションまたはインター予測オペレーションを実行するものとしてよい。この方法で、ビデオデコーダ３０は、ビットストリームから、有意なルーマ係数ブロックの変換係数レベルを抽出し、変換係数レベルを逆量子化し、変換を変換係数レベルに適用して変換ロックを生成し、変換ブロックに少なくとも部分的に基づいて、コーディングブロックを生成し、表示用のコーディングブロックを出力することができる。
【０１８２】
[0186]本開示の１つまたは複数の技術によれば、親ブロック（たとえば、ＣＴＵ、ＣＵなど）は、複数のブロックに分割されるものとしてよく、視差ベクトル導出プロセスが、複数のブロック内の代表的ブロックに対する視差ベクトルを導出するために実行される。ビデオデコーダ３０は、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することによって、複数のブロック内の２つまたはそれ以上のブロックに対するサンプルブロックを再構成することができる。さらに、いくつかの例では、ビデオデコーダ３０は、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定することができる。視差ベクトル導出プロセスを実行する一環として、第１または第２のいずれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有している場合に、ビデオデコーダ３０は、視差動きベクトルまたはＩＤＶを現在のブロックに対する視差ベクトルに変換することができる。視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたはＩＤＶを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかを決定しない。
【０１８３】
[0187]上で説明されているように、ビデオコーダは、ＣＵベースのＮＢＤＶ導出プロセスを実行して、ＣＵの各ＰＵに対する視差ベクトルを導出することができる。ビデオコーダが、ＣＵベースのＮＢＤＶ導出プロセスを実行して、ＣＵの各ＰＵに対する視差ベクトルを導出する場合、ビデオコーダは、ＣＵに対してＮＢＤＶ導出プロセスを１回だけ実行し、導出された視差ベクトルをＣＵのすべてのＰＵに割り当てる。言い換えれば、ＣＵベースのＮＢＤＶ導出プロセスは、すべてのＰＵとＣＵ自体とが、たとえば、３Ｄ−ＨＥＶＣで導出されるように、ＮＢＤＶ導出プロセスに基づいて１回導出された同じ視差ベクトルを共有するように実行され得る。ＮＢＤＶ導出プロセスは、代表的ブロック（たとえば、ＰＵまたはＣＵ）に適用可能である。たとえば、ＣＵは、複数のＰＵに分割されるものとしてよく、ビデオコーダは、視差ベクトル導出プロセスを実行して、複数のＰＵ（たとえば、ＣＵ内の）内の代表的ＰＵに対する視差ベクトルを導出することができる。
【０１８４】
[0188]さらに、ＣＵベースのＮＢＤＶ導出プロセスは、直接的な拡張としてＬＣＵベースのＮＢＤＶ導出プロセスに、または任意のブロックサイズ用のＮＢＤＶ導出プロセスに拡張され得る。たとえば、ＬＣＵは、複数のＣＵに分割されるものとしてよく、ビデオコーダは、視差ベクトル導出プロセスを実行して、複数のＣＵ内の代表的ＣＵに対する視差ベクトルを導出することができる。
【０１８５】
[0189]上で説明されているように、ビデオコーダは、ＮＢＤＶ導出プロセスを実行するときに５つの空間的隣接ブロックをチェックし得る。５つの空間的隣接ブロックは、常にＣＵ全体に対して代表的ＰＵを１つだけ考慮することによってＮＢＤＶのように配置され得る。
【０１８６】
[0190]本開示では、複数のＰＵの代表的ＰＵは、ＮＢＤＶ処理ユニット（ＮＰＵ）と称され得る。他の例では、ビデオコーダは、ＮＰＵを様々な方法で設定することができる。たとえば、ＮＰＵは、現在のＣＵであってもよい。別の例では、ＮＰＵは、現在のＣＵ内の第１のＰＵであってもよい。この例では、第１のＰＵは、ＣＵの左上のピクセルをカバーするＰＵであると定義されている。
【０１８７】
[0191]別の例において、ビデオコーダは、代表的ブロックとして、ＣＵの右下のピクセルをカバーするＰＵを代表的ＰＵであるとして選択することができる。言い換えれば、ビデオコーダは、ＣＵの右下のピクセルをカバーするＰＵをＮＰＵとして選択することができる。別の例では、ビデオコーダは、代表的ブロックとして、ＣＵの右上のピクセルをカバーするＰＵを代表的ＰＵであるとして選択することができる。言い換えれば、ビデオコーダは、代表的ブロックとして、ＣＵの右上のピクセルをカバーするＰＵをＮＰＵとして選択することができる。さらに別の例では、ビデオコーダは、ＣＵの左下のピクセルをカバーするＰＵを代表的ＰＵであるとして選択することができる。言い換えれば、ビデオコーダは、ＣＵの左下のピクセルをカバーするＰＵをＮＰＵとして選択することができる。本開示では、説明を簡単にするため、ＣＵの右下のピクセル、右上のピクセル、または左下のピクセルは、それぞれ、ＣＵのコーディングブロックの右下のピクセル、右上のピクセル、または左下のピクセルであるものとしてよい。
【０１８８】
[0192]図８は、ＣＵと同一である２Ｎ×２ＮのＰＵにおける例示的な空間的隣接要素と時間的隣接要素とを示す概念図である。図８の例において、ビデオコーダは、ビデオコーダが視差動きベクトルとＩＤＶとについて位置２００と、２０２と、２０４と、２０６と、２０８とをカバーするブロックをチェックするＮＢＤＶ導出プロセスを実行することができる。さらに、図８の例において、ビデオコーダがＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、候補基準ピクチャ内にあり、位置２１０および２１２と同一の位置にあるブロックをチェックすることができる。
【０１８９】
[0193]図９は、ＣＵの第１のＰＵがＣＵに対する代表的ＰＵであるＮＢＤＶ導出プロセスで使用される例示的な空間的隣接ブロックと時間的隣接ブロックとを示す概念図である。図９の例では、代表的ブロックは、ＣＵの左のＮ×２ＮのＰＵである。言い換えれば、図９は、ＰＵがＮ×２Ｎの形状を有する一例である。現在のＣＵのパーティション情報が与えられた場合（たとえば、ＮＸ２Ｎ）、ブロック位置は、第１のＰＵ（たとえば、左のＰＵ）のものにより決定され得る。図９は、ブロック位置（すなわち、隣接ブロックによってカバーされる位置）が第１のＰＵの形状に基づいて決定され得る仕方の一例である。
【０１９０】
[0194]特に、図９の例において、ビデオコーダは、ビデオコーダが視差動きベクトルとＩＤＶとについて位置２５０と、２５２と、２５４と、２５６と、２５８とをカバーするブロックをチェックするＮＢＤＶ導出プロセスを実行することができる。さらに、図９の例において、ビデオコーダがＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、候補基準ピクチャ内にあり、位置２６０および２６２と同一の位置にあるブロックをチェックすることができる。図８および９の例でわかるように、ＮＢＤＶ導出プロセスで使用される隣接ブロックによってカバーされる位置は、ＣＵがＰＵに分割される仕方とＰＵのうちのどれが代表的ブロックであるかとに応じてＣＵのＰＵに対して異なり得る。したがって、ビデオコーダは、第１のＰＵの形状に基づいて複数のブロック位置を決定することができ、ここにおいて、複数のブロック位置における各それぞれのブロック位置は、複数の隣接ブロック内のそれぞれの隣接ブロックによってカバーされる。さらに、ビデオコーダは、空間的視差動きベクトル、暗黙的視差ベクトル、または時間的視差動きベクトルについて隣接ブロックのうちの１つまたは複数をチェックすることができる。
【０１９１】
[0195]図１０は、本開示の１つまたは複数の技術による、ビデオコーダの例示的なオペレーションを示す流れ図である。図１０の例に示されているように、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、視差ベクトル導出プロセスを実行して、複数のブロック内の代表的ブロックに対する視差ベクトルを導出することができる（３００）。図１０の例において、ビデオデータは、複数のブロックに分割される親ブロックを含み得る。たとえば、親ブロックは、ＣＵであってもよく、複数のブロック内の各ブロックは、ＣＵのＰＵであってもよい。この例では、代表的ブロックは、ＣＵの第１のＰＵであるものとしてよい。別の例では、親ブロックは、ＬＣＵであってよく、複数のブロック内の各ブロックは、ＣＵであってよく、代表的ブロックは、ＬＣＵのＣＵのうちの１つであってよい。
【０１９２】
[0196]さらに、ビデオコーダは、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することができる（３０２）。ビデオコーダが、ビデオデコーダであるいくつかの例では、ビデオデコーダは、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することによって、複数のブロック内の２つまたはそれ以上のブロックに対するサンプルブロックを再構成することができる。同様に、ビデオコーダが、ビデオエンコーダであるいくつかの例では、ビデオエンコーダは、一部は、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行することによって、ビデオデータのコーディングされた表現を含むビットストリームを生成することができる。ビデオコーダが、２つまたはそれ以上のブロックに対してビュー間予測を実行する場合、ビデオコーダは、導出された視差ベクトルに基づいて、２つまたはそれ以上のブロックについてビュー間動き予測およびビュー間残差予測のうちの１つまたは複数を実行することができる。
【０１９３】
[0197]図１１Ａは、本開示の１つまたは複数の技術による、ビュー間動き予測を実行するためのビデオエンコーダの例示的なオペレーション３５０を示す流れ図である。図１１Ａの例に示されているように、ビデオエンコーダ（たとえば、ビデオエンコーダ２０）は、現在のＣＵの分割モードを決定することができる（３５２）。本開示の１つまたは複数の技術によれば、ビデオエンコーダは、視差ベクトル導出プロセスを実行して、現在のＣＵの代表的ＰＵに対する視差ベクトルを決定することができる（３５４）。代表的ブロックがＣＵであるいくつかの例では、ビデオエンコーダは、少なくとも一部は複数の隣接ブロックを決定することによって視差ベクトル導出プロセスを実行することができ、ここにおいて、複数の隣接ブロックは、ＣＵに隣接する空間的隣接ブロックと、ＣＵの中心と同一の位置にある位置をカバーする時間的隣接ブロックと、ＣＵの右真下の位置をカバーする時間的隣接ブロックとを含む。さらに、そのような例では、ビデオエンコーダは、空間的視差動きベクトル、暗黙的視差ベクトル、または時間的視差動きベクトルについて隣接ブロックのうちの１つまたは複数をチェックすることができる。
【０１９４】
[0198]次に、ビデオエンコーダは、代表的ＰＵに対する視差ベクトルに基づいて、現在のＰＵに対するビュー間予測動きベクトル候補（ＩＰＭＶＣ）を決定することができる。ＩＰＭＶＣは、現在のピクチャと異なるビューに関連付けられている基準ピクチャ内の位置を示す動きベクトル候補である。現在のＰＵは、現在のＣＵのＰＵのうちの１つである。次いで、ビデオエンコーダは、現在のＰＵに対する候補リスト（たとえば、マージ候補リストまたはＡＭＶＰ候補リスト）内にＩＰＭＶＣを含み得る（３５８）。その後、ビデオエンコーダは、候補リストから候補を選択することができる（３６０）。いくつかの場合において、選択された候補は、ＩＰＭＶＣである。次いで、ビデオエンコーダは、ビットストリーム内に、選択された候補のインデックスを示すデータを含み得る（３６２）。たとえば、候補リストがマージ候補リストである場合、ビデオエンコーダは、ビットストリーム内に、ｍｅｒｇｅ＿ｉｄｘシンタックス要素を示すデータを含み得る。別の例では、候補リストは、ＡＭＶＰ候補リストであり、ビデオエンコーダは、ビットストリーム内に、ｍｖｐ＿ｌ０＿ｆｌａｇシンタックス要素またはｍｖｐ＿ｌ１＿ｆｌａｇシンタックス要素を示すデータを含み得る。この例では、ビデオエンコーダは、現在のＰＵに対する基準インデックスを示すデータ（たとえば、ｒｅｆ＿ｉｄｘｌ０シンタックス要素またはｒｅｆ＿ｉｄｘｌ１シンタックス要素）と、現在のＰＵに対する動きベクトル差を示すデータ（たとえば、ｍｖｄ＿ｃｏｄｉｎｇシンタックス構造）も含み得る。
【０１９５】
[0199]次いで、ビデオエンコーダは、現在のＣＵ内にＰＵが残っているかどうかを決定することができる（３６４）。現在のＣＵ内に１つまたは複数のＰＵが残っている場合（３６４の「はい」）、ビデオエンコーダは、残りのＰＵのうちの１つを現在のＰＵとしてアクション３５６〜３６４を繰り返すことができる。他方、現在のＣＵ内に残っているＰＵがない場合（３６４の「いいえ」）、オペレーション３５０は終了し、ビデオエンコーダは、他の符号化アクションを実行することができる。
【０１９６】
[0200]図１１Ｂは、本開示の１つまたは複数の技術による、ビュー間動き予測を実行するためのビデオデコーダの例示的なオペレーション３８０を示す流れ図である。図１１Ｂの例に示されているように、ビデオデコーダ（たとえば、ビデオデコーダ３０）は、現在のＣＵの分割モードを決定することができる（３８２）。いくつかの例では、ビデオデコーダは、現在のＣＵのｐａｒｔ＿ｍｏｄｅシンタックス要素に基づいて現在のＣＵの分割モードを決定することができる。
【０１９７】
[0201]本開示の１つまたは複数の技術によれば、ビデオデコーダは、視差ベクトル導出プロセスを実行して、現在のＣＵの代表的ＰＵに対する視差ベクトルを決定することができる（３８４）。たとえば、ビデオデコーダは、視差ベクトル導出プロセスを実行して、現在のＣＵの第１のＰＵに対する視差ベクトルを決定することができる。代表的ブロックがＣＵであるいくつかの例では、ビデオデコーダは、少なくとも一部は複数の隣接ブロックを決定することによって視差ベクトル導出プロセスを実行することができ、ここにおいて、複数の隣接ブロックは、ＣＵに隣接する空間的隣接ブロックと、ＣＵの中心と同一の位置にある位置をカバーする時間的隣接ブロックと、ＣＵの右真下の位置をカバーする時間的隣接ブロックとを含む。さらに、そのような例では、ビデオデコーダは、空間的視差動きベクトル、ＩＤＶ、または時間的視差動きベクトルについて隣接ブロックのうちの１つまたは複数をチェックすることができる。
【０１９８】
[0202]次に、ビデオデコーダは、代表的ＰＵに対する視差ベクトルに基づいて、現在のＰＵに対するＩＰＭＶＣを決定することができる（３８６）。現在のＰＵは、現在のＣＵのＰＵのうちの１つである。次いで、ビデオデコーダは、現在のＰＵに対する候補リスト（たとえば、マージ候補リストまたはＡＭＶＰ候補リスト）内にＩＰＭＶＣを含み得る（３８８）。その後、ビデオデコーダは、ビットストリーム内のデータに基づいて、候補リスト内の選択された候補を決定することができる（３９０）。たとえば、候補リストがマージ候補リストである場合、ビデオデコーダは、ビットストリームから取得されたｍｅｒｇｅ＿ｉｄｘシンタックス要素に基づいて選択された候補を決定することができる。別の例では、候補リストがＡＭＶＰ候補リストである場合、ビデオデコーダは、ビットストリームから取得されたｍｖｐ＿ｌ０＿ｆｌａｇシンタックス要素またはｍｖｐ＿ｌ１＿ｆｌａｇシンタックス要素に基づいて選択された候補を決定することができる。いくつかの場合において、選択された候補は、ＩＰＭＶＣである。次いで、ビデオデコーダは、選択された候補に基づいて、現在のＰＵに対する動きベクトルを決定することができる（３９２）。
【０１９９】
[0203]次いで、ビデオデコーダは、現在のＣＵ内にＰＵが残っているかどうかを決定することができる（３９４）。現在のＣＵ内に１つまたは複数のＰＵが残っている場合（３９４の「はい」）、ビデオデコーダは、残りのＰＵのうちの１つを現在のＰＵとしてアクション３８６〜３９４を繰り返すことができる。他方、現在のＣＵ内に残っているＰＵがない場合（３９４の「いいえ」）、オペレーション３８０は終了し、ビデオデコーダは、他の復号アクションを実行することができる。
【０２００】
[0204]図１２Ａは、本開示の１つまたは複数の技術による、ビュー間残差予測を実行するためのビデオエンコーダの例示的なオペレーション４００を示す流れ図である。図１２Ａの例に示されているように、ビデオエンコーダ（たとえば、ビデオエンコーダ２０）は、親ブロックの代表的ブロックについて視差ベクトルを決定することができる（４０２）。いくつかの例では、親ブロックは、親ブロックに対する代表的ブロックを含む、複数のブロックに分割される。たとえば、代表的ブロックはＣＵであってよく、親ブロックはＣＴＵであってよい。他の場合において、代表的ブロックはＰＵであってよく、親ブロックはＣＵであってよい。他の例では、親ブロックは、サブブロックに分割されず、親ブロックに対する代表的ブロックは、親ブロック自体である。たとえば、代表的ブロックと親ブロックとは、同じＰＵ、ＣＵ、ＣＴＵなどであってよい。
【０２０１】
[0205]さらに、図１２Ａの例において、ビデオエンコーダは、代表的ブロックに対する視差ベクトルに基づいて、現在のブロックに対する視差基準ブロックを決定することができる（４０４）。上で示されているように、親ブロックは、１つまたは複数のサブブロックに分割され得る。現在のブロックは、サブブロックのうちの１つであってよい。さらに、現在のブロックに対する視差基準ブロックは、視差基準ピクチャ内のサンプルに基づくサンプルのブロックを備えることができる。たとえば、視差基準ブロックは、視差基準ピクチャのサンプルを含み得る。視差基準ピクチャは、現在のブロックと同じ時間インスタンスに関連付けられているが、現在のブロックと異なるビューに関連付けられる。
【０２０２】
[0206]ビデオエンコーダは、視差基準ブロックに対する残差データを決定することができる（４０６）。視差基準ブロックに対する残差データは、視差基準ブロックのサンプルと視差基準ブロックに対する１つまたは複数の予測ブロックの対応するサンプルとの間の差を示すサンプルを含み得る。次いで、ビデオエンコーダは、現在のブロックに対する残差データを決定することができる（４０８）。現在のブロックに対する残差データは、現在のブロックに対する元のサンプルブロック内の対応するサンプル間の差を示すサンプルと、現在のブロックに対する視差基準ブロックに対する残差データと、１つまたは複数の予測ブロックとを含み得る。その後、ビデオエンコーダは、親ブロック内にサブブロックが残っているかどうかを決定することができる（４１０）。親ブロック内に１つまたは複数のサブブロックが残っている場合（４１０の「はい」）、ビデオエンコーダは、残りのサブブロックのうちの１つを現在のブロックとしてアクション４０４〜４１０を繰り返すことができる。この方法で、ビデオエンコーダは、代表的ブロックに対する視差ベクトルを使用して、親ブロックのサブブロックの各々について視差基準ブロックを決定することができる。
【０２０３】
[0207]他方、親ブロック内に残っているサブブロックがない場合（４１０の「いいえ」）、ビデオエンコーダは、ビットストリーム内に、親ブロックに対する残差を表すデータを含み得る（４１２）。たとえば、親ブロックがＣＴＵであり、サブブロックの各々がＣＵである場合、親ブロックに対する残差データを表すデータは、ＣＴＵのＣＵの各々の残差データの変換され量子化されたバージョンを示すデータを備え得る。別の例では、親ブロックがＣＵであり、サブブロックの各々がＰＵである場合、ＣＵに対する残差データを表すデータは、ＣＵのＰＵの各々の残差データの変換され量子化されたバージョンを示すデータを含み得る。
【０２０４】
[0208]図１２Ｂは、本開示の１つまたは複数の技術による、ビュー間残差予測を実行するためのビデオデコーダの例示的なオペレーション４５０を示す流れ図である。図１２Ｂの例に示されているように、ビデオデコーダ（たとえば、ビデオデコーダ３０）は、親ブロックの代表的ブロックについて視差ベクトルを決定することができる（４５２）。いくつかの例では、親ブロックは、親ブロックに対する代表的ブロックを含む、複数のブロックに分割される。たとえば、代表的ブロックはＣＵであってよく、親ブロックはＣＴＵであってよい。他の場合において、代表的ブロックはＰＵであってよく、親ブロックはＣＵであってよい。他の例では、親ブロックは、サブブロックに分割されず、親ブロックに対する代表的ブロックは、親ブロック自体である。たとえば、代表的ブロックと親ブロックとは、同じＰＵ、ＣＵ、ＣＴＵなどであってよい。
【０２０５】
[0209]さらに、図１２Ｂの例において、ビデオデコーダは、代表的ブロックに対する視差ベクトルに基づいて、現在のブロックに対する視差基準ブロックを決定することができる（４５４）。上で示されているように、親ブロックは、１つまたは複数のサブブロックに分割され得る。現在のブロックは、サブブロックのうちの１つであってよい。さらに、現在のブロックに対する視差基準ブロックは、視差基準ピクチャ内のサンプルに基づくサンプルのブロックを備えることができる。たとえば、視差基準ブロックは、視差基準ピクチャのサンプルを含み得る。視差基準ピクチャは、現在のブロックと同じ時間インスタンスに関連付けられているが、現在のブロックと異なるビューに関連付けられる。
【０２０６】
[0210]ビデオデコーダは、視差基準ブロックに対する残差データを決定することができる（４５６）。視差基準ブロックに対する残差データは、視差基準ブロックのサンプルと視差基準ブロックに対する１つまたは複数の予測ブロックの対応するサンプルとの間の差を示すサンプルを含み得る。その後、ビデオデコーダは、親ブロック内にサブブロックが残っているかどうかを決定することができる（４５８）。親ブロック内に１つまたは複数のサブブロックが残っている場合（４５８の「はい」）、ビデオデコーダは、残りのサブブロックのうちの１つを現在のブロックとしてアクション４５４〜４５８を繰り返すことができる。この方法で、ビデオデコーダは、代表的ブロックに対する視差ベクトルを使用して、親ブロックのサブブロックの各々について視差基準ブロックを決定することができる。
【０２０７】
[0211]他方、親ブロック内に残っているサブブロックがない場合（４５８の「いいえ」）、ビデオデコーダは、親ブロックに対するサンプルブロック（たとえば、コーディングツリーブロック、コーディングブロックなど）を決定することができる（４６０）。親ブロックに対するサンプルブロックは、親ブロックの１つまたは複数のサブブロックと、１つまたは複数の予測ブロックと、ビットストリームでシグナリングされる残差データとに対する視差基準ブロックに対する残差データ内の対応するサンプルの総和であるサンプルを含み得る。
【０２０８】
[0212]上で説明されているように、ビデオコーダは、本開示の技術により、３Ｄ−ＨＥＶＣ試験モデル１で説明されているＮＢＤＶ導出プロセスよりも少ない空間的隣接ブロックを使用する修正されたＮＢＤＶ導出プロセスを実行することができる。一例において、ビデオコーダが、修正されたＮＢＤＶ導出プロセスを実行する場合、ビデオコーダは、左の空間的隣接ブロックと上の空間的隣接ブロックとを考慮するだけでよい（すなわち、図２のＡ１およびＢ１として表されているブロック）。図１３は、２つのＰＵに対する例示的な左の空間的隣接ブロックと上の空間的隣接ブロックとを示す概念図である。特に、図１３は、Ｎ×２ＮのＰＵと２Ｎ×ＮのＰＵとに対する左と上との空間的隣接ブロックを示している。図１３の例に示されているように、左の空間的隣接ブロックは、現在のブロックの左縁に隣接し（たとえば、Ｎ×２ＮのＰＵまたは２Ｎ×ＮのＰＵ）、上の空間的隣接ブロックは、現在のブロックの上縁に隣接する（たとえば、Ｎ×２ＮのＰＵまたは２Ｎ×ＮのＰＵ）。
【０２０９】
[0213]しかしながら、左と上との４×４の空間的隣接ブロックを常に考慮する代わりに、チェックすべきブロックの数が少なくなるようにいくつかの代替的形態も用意され得る。たとえば、一解決方法では、ビデオコーダは、３つの空間的隣接ブロックをチェックする。たとえば、図１４に示されているように、ビデオコーダは、上と、左と、左上との空間的隣接ブロックのみをチェックする。すなわち、図１４は、ＮＢＤＶ導出プロセスで使用される左、上、および左上の空間的隣接ブロックを示す概念図である。この例では、ビデオコーダは、上と、左と、左上との空間的隣接ブロックをその順序でチェックし得る。他の例では、ビデオコーダは、上と、左と、左上との空間的隣接ブロックを他の任意の順序でチェックし得る。
【０２１０】
[0214]他の例では、ビデオコーダは、ＮＢＤＶ導出プロセスにおいて空間的隣接ブロックのどれかをチェックすることができる。言い換えれば、他の空間的隣接ブロックは、図２に示されている５つの空間的隣接ブロックＡ０と、Ａ１と、Ｂ０と、Ｂ１と、Ｂ２との間で間引かれ得る。いくつかの例では、間引きの後にチェックされるべきブロックの総数は、ゼロ超、５未満であるものとしてよい。さらに、いくつかの例では、ビデオコーダは、視差動きベクトルについて５つの空間的隣接ブロックのサブセットをチェックすることができるが、ＩＤＶについては５つの空間的隣接ブロックすべてをチェックすることができる。言い換えれば、この例において、この縮小は、ＩＤＶが探索されるブロックについて適用される場合も適用されない場合もある。さらに、いくつかの例では、空間的隣接ブロックのチェック順序は、順序変更可能である。
【０２１１】
[0215]空間的隣接ブロックの縮小は、本開示の別のところで説明されているＣＵベースＮＢＤＶ導出プロセスと組み合わされ得る。たとえば、図１３の例において、ＮＰＵは、左上のピクセルをカバーするＰＵであり、ＮＰＵの空間的隣接ブロックは、ＮＰＵの上の空間的隣接ブロックと左の空間的隣接ブロックのみである。別の例では、ＮＰＵは、ＣＵであり、空間的隣接ブロックは、図１４に示されているように、ＣＵの上の空間的隣接ブロックと、左の空間的隣接ブロックと、左上の空間的隣接ブロックとである。
【０２１２】
[0216]図１５は、本開示の１つまたは複数の技術による、ビデオコーダの例示的なオペレーション６００を示す流れ図である。図１５の例において、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、視差ベクトル導出プロセスを実行して、現在のブロックに対する視差ベクトルを決定することができる（６０２）。本開示の１つまたは複数の技術によれば、視差ベクトル導出プロセスを実行する一環として、ビデオコーダは、第１または第２のいずれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有している場合に、視差動きベクトルまたはＩＤＶを現在のブロックに対する視差ベクトルに変換することができる。図１５の例において、視差ベクトル導出プロセスは、第１および第２のいずれの空間的隣接ブロックも視差動きベクトルまたはＩＤＶを有していない場合であっても第１および第２の空間的隣接ブロックに加えてどれかの空間的隣接ブロックが視差動きベクトルまたはＩＤＶを有しているかどうかを決定しない。いくつかの例では、第１の空間的隣接ブロックは、現在のブロックの上縁に隣接し、第２の空間的隣接ブロックは、現在のブロックの左縁に隣接する。いくつかの例では、ビデオコーダは、最初に、視差動きベクトル（またはＩＤＶ）について第１の空間的隣接ブロックをチェックし、次いで、視差動きベクトル（またはＩＤＶ）について第２の空間的隣接ブロックをチェックし得る。他の例では、ビデオコーダは、最初に、視差動きベクトル（またはＩＤＶ）について第２の空間的隣接ブロックをチェックし、次いで、視差動きベクトル（またはＩＤＶ）について第１の空間的隣接ブロックをチェックし得る。
【０２１３】
[0217]さらに、図１５の例において、ビデオコーダは、導出された視差ベクトルに基づいて、代表的ブロック以外の複数のブロック内の任意のブロックに対する視差ベクトルを別々に導出することなく、複数のブロック内の２つまたはそれ以上のブロックに対するビュー間予測を実行する（６０４）。ビデオコーダが、ビデオデコーダを備えるいくつかの例では、ビデオデコーダは、一部は、導出された視差ベクトルに基づいて、現在のブロックに対するビュー間予測を実行することによって、現在のブロックに対するサンプルブロックを再構成する。ビデオコーダが、ビデオエンコーダを備えるいくつかの例では、ビデオエンコーダは、現在のブロックに対する導出された視差ベクトルに部分的に基づいて、現在のブロックの符号化された表現を生成する。
【０２１４】
[0218]図１６は、本開示の一例による、現在のブロックに対する視差ベクトルを決定するためのビデオコーダの例示的なオペレーション６２０を示す流れ図である。図１６の例において、ビデオコーダは、現在のブロックに対する視差ベクトルを決定するときに最大２つまでの空間的隣接ブロックを使用する。具体的には、図１６の例において、ビデオコーダは、第１の空間的隣接ブロックが視差動きベクトルを有するかどうかを決定することができる（６２２）。いくつかの例では、第１の空間的隣接ブロックは、現在のブロックの左縁に隣接する。他の例では、第１の空間的隣接ブロックは、現在のブロックの上縁に隣接する。第１の空間的隣接ブロックが視差動きベクトルを有すると決定したことに応答して（６２２の「はい」）、ビデオコーダは、第１の空間的隣接ブロックの視差動きベクトルを現在のブロックに対する視差ベクトルに変換し得る（６２４）。
【０２１５】
[0219]他方、第１の空間的隣接ブロックが視差動きベクトルを有しないと決定したことに応答して（６２２の「いいえ」）、ビデオコーダは、第２の空間的隣接ブロックが視差動きベクトルを有するかどうかを決定することができる（６２６）。いくつかの例では、第２の空間的隣接ブロックは、現在のブロックの左縁に隣接する。他の例では、第２の空間的隣接ブロックは、現在のブロックの上縁に隣接する。第２の空間的隣接ブロックが視差動きベクトルを有すると決定したことに応答して（６２６の「はい」）、ビデオコーダは、第２の空間的隣接ブロックの視差動きベクトルを現在のブロックに対する視差ベクトルに変換し得る（６２８）。そうでない場合、第２の空間的隣接ブロックが視差動きベクトルを有しないと決定したことに応答して（６２６の「いいえ」）、ビデオコーダは、現在のブロックに対する視差ベクトルが利用不可能であることを示し得る（６３０）。
【０２１６】
[0220]上で説明されているように、双予測インター予測では、最大２つまでの基準ピクチャリスト（すなわち、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１）があり得る。さらに、双予測ブロック（たとえば、ＰＵ）は、２つの動きベクトルを含む。ブロックの両方の動きベクトル（すなわち、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１とにそれぞれ対応する動きベクトル）が視差動きベクトルである場合、ＲｅｆＰｉｃＬｉｓｔ１に対応する動きベクトルは冗長であり得る。
【０２１７】
[0221]３Ｄ−ＨＥＶＣ試験モデル１では、ビデオコーダは、隣接ブロックがＲｅｆＰｉｃＬｉｓｔ０内の基準ピクチャを使用するかどうかを決定する。たとえば、ビデオコーダは、ＰｒｅｄＦｌａｇＬ０［ｘＮ］［ｙＮ］が１に等しいかどうかをチェックすることができ、ここで、（ｘＮ，ｙＮ）は、隣接ブロックによってカバーされる位置であり、ＰｒｅｄＦｌａｇＬ０は、特定の座標をカバーするブロックがＲｅｆＰｉｃＬｉｓｔ０内の基準ピクチャを利用するかどうかを示す値の配列である。
【０２１８】
[0222]さらに、３Ｄ−ＨＥＶＣ試験モデル１で説明されているように、隣接ブロックがＲｅｆＰｉｃＬｉｓｔ０内の基準ピクチャを使用する場合、ビデオコーダは、隣接ブロックに対するＲｅｆＰｉｃＬｉｓｔ０基準インデックスがＲｅｆＰｉｃＬｉｓｔ０内のビュー間基準ピクチャを示しているかどうか、もしそうならば、ビュー間基準ピクチャは、特定の基準ビューインデックスに等しいビュー順序インデックスを有するかどうかを決定することができる。たとえば、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ０［ＲｅｆＩｄｘＬ０［ｘＮ］［ｙＮ］］が、ＶｉｅｗＯｒｄｅｒＩｎｄｅｘがｒｅｆＶｉｅｗＩｄｘに等しいビュー間基準ピクチャであるかどうかを決定することができ、ここで、ＲｅｆＩｄｘＬｘ０［ｘＮ］［ｙＮ］は、隣接ブロックに対するＲｅｆＰｉｃＬｉｓｔ０基準インデックスであり、ｒｅｆＶｉｅｗＩｄｘは、特定のビューインデックスである。もしそうならば、ビデオコーダは、視差ベクトルを隣接ブロックに対するＲｅｆＰｉｃＬｉｓｔ０動きベクトルに等しいものとなるように設定することができる。そうでなければ、隣接ブロックの予測モードがスキップモードであり、隣接ブロックが、隣接ブロックがビュー間動きベクトル（たとえば、隣接ブロックがＩＤＶを有しているときに生じ得る）を有することを示すビュー間予測動きベクトルフラグを有する場合に、ビデオコーダは、変数（たとえば、ｉｖｐＭＶＤｉｓｐＮ０）を隣接ブロックの視差ベクトル（たとえば、ＩｖｐＭｖＤｉｓｐＬ０［ｘＮ，ｙＮ］）に設定することができる。次いで、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ１に対してこのプロセスを繰り返すことができる。ビュー順序インデックスは、アクセスユニット内のビューコンポーネントの復号順序を示す値（すなわち、インデックス）であるものとしてよい。
【０２１９】
[0223]したがって、ＪＣＴ３Ｖ−Ａ１００５のセクションＧ．８．５．２．１．１３で説明されているように、
０から１の各Ｘについて、ａｖａｉｌａｂｌｅＮが１に等しく、ＰｒｅｄＦｌａｇＬＸ［ｘＮ］［ｙＮ］が１に等しい場合に、以下が適用される。
【０２２０】
ａ．ＲｅｆＰｉｃＬｉｓｔＸ［ＲｅｆＩｄｘＬＸ［ｘＮ］［ｙＮ］］が、ＶｉｅｗＯｒｄｅｒＩｎｄｅｘがｒｅｆＶｉｅｗＩｄｘに等しいビュー間基準ピクチャである場合に、以下が適用される。
【０２２１】
ｍｖＤｉｓｐ＝ｍｖＬＸＮ［ｘＮ］［ｙＮ］
ａｖａｉｌａｂｌｅＤＶ＝１
ｂ．そうでなければ、ＰｒｅｄＭｏｄｅ［ｘＮ］［ｙＮ］がＭＯＤＥ＿ＳＫＩＰに等しく、ＩｖｐＭｖＦｌａｇＬＸ［ｘＮ，ｙＮ］が１に等しい場合に、以下が適用される。
【０２２２】
ｉｖｐＭｖＤｉｓｐＮＸ＝ＩｖｐＭｖＤｉｓｐＬＸ［ｘＮ，ｙＮ］
ａｖａｉｌａｂｌｅＦｌａｇＩｖｐＭｖＮＸ＝１
[0224]本開示のいくつかの技術によれば、ビデオコーダは、３Ｄ−ＨＥＶＣ試験モデル１で説明されているようにビデオコーダがＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１の両方をチェックするとは限らない刈り込みプロセスを実行することができる。むしろ、ビデオコーダは、基準ピクチャリストのうちの１つのみをチェックすることができる。たとえば、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ０のみをチェックすることができる。他の例では、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ１のみをチェックすることができる。したがって、この刈り込みプロセスでは、空間的隣接ブロックまたは時間的隣接ブロックについて、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１の両方に対応する動きベクトルをチェックする代わりに視差動きベクトルをこのブロックから導出するために、ビデオコーダは、ＲｅｆＰｉｃＬｉｓｔ０（ＲｅｆＰｉｃＬｉｓｔ１）に対応する動きベクトルのみをチェックする。
【０２２３】
[0225]たとえば、ビデオコーダが、視差ベクトル導出プロセスを実行するときに、ビデオコーダは、隣接ブロックについて、隣接ブロックが第２の基準ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）に対応する動きベクトルを有するかどうかに関係なく、第１の基準ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）に対応する隣接ブロックの動きベクトルが視差動きベクトルであるかどうかのみをチェックすることができる。さらに、この例において、第１の基準ピクチャリストに対応する隣接ブロックの動きベクトルが視差動きベクトルである場合、ビデオコーダは、視差動きベクトルを代表的ブロックに対する視差ベクトルに変換し得る。
【０２２４】
[0226]図１７は、本開示の１つまたは複数の技術による、現在のブロックに対する視差ベクトルを決定するためのビデオコーダの例示的なオペレーション６５０を示す流れ図である。図１６および１７の例などの、いくつかの例では、ＩＤＶは、単純な方法で表現されるものとしてよく、このため、隣接ブロックがＩＤＶを含むかどうかをシグナリングするために使用されるフラグはない。むしろ、そのような例では、ビデオコーダは、隣接ブロックの１つまたは複数の既存の変数（たとえば、基準インデックス、基準ビューインデックスなど）を、隣接ブロックがＩＤＶを含むことを示すように設定することができる。
【０２２５】
[0227]図１７の例に示されているように、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在の空間的隣接ブロックが視差動きベクトルを有するかどうかを決定することができる（６５２）。現在の空間的隣接ブロックが視差動きベクトルを有すると決定したことに応答して（６５２の「はい」）、ビデオコーダは、現在の空間的隣接ブロックの視差動きベクトルを現在のブロックに対する視差ベクトルに変換し得る（６５４）。視差動きベクトルを視差ベクトルに変換した後、オペレーション６５０は終了する。
【０２２６】
[0228]他方、現在の空間的隣接ブロックが視差動きベクトルを有しないと決定したことに応答して（６５２の「いいえ」）、ビデオコーダは、残りの空間的隣接ブロックがあるかどうかを決定することができる（６６０）。１つまたは複数の空間的隣接ブロックがあると決定したことに応答して（６６０の「はい」）、ビデオコーダは、空間的隣接ブロックのうちの別の１つに関してアクション６５２〜６５６を繰り返すことができる。この方法で、ビデオコーダは、ビデオコーダが空間的隣接ブロックのすべてを有するか、または空間的動きベクトルを識別するまでアクション６５２〜６５６を実行することができる。ビデオコーダは、空間的隣接ブロックをＡ１、Ｂ１、Ｂ０、Ａ０、およびＢ２の順序でチェックすることができる。
【０２２７】
[0229]残っている空間的隣接ブロックはないと決定したことに応答して（６５６の「いいえ」）、ビデオコーダは、時間的動きベクトル予測がイネーブルにされているかどうかを決定することができる（６５８）。ビデオコーダが、時間的動きベクトル予測がイネーブルにされていると決定した場合（６５８の「はい」）、ビデオコーダは、図１８に示されている（図１７で「Ａ」と示されている）オペレーション６５０の一部分を実行することができる。図１８に示されているオペレーション６５０の一部分を実行した後、または時間的動きベクトル予測がイネーブルにされていないと決定した後（６５８の「いいえ」）、ビデオコーダは、ＩＤＶについて空間的隣接ブロックをチェックすることができる。ビデオコーダは、空間的隣接ブロックをＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の順序でチェックすることができる。したがって、図１７の例において、ビデオコーダは、現在の空間的隣接ブロックがスキップモードでコーディングされ、その特定の変数を不正な値に設定されているかどうかを決定することができる（６６０）。現在の空間的隣接ブロックに対する特定の変数が、不正な値に設定されている場合、現在の空間的隣接ブロックは、ＩＤＶを有する。たとえば、現在のブロックに対する視差ベクトルを決定する前に、ビデオコーダは、現在の空間的隣接ブロックをすでにコーディングしている。現在の空間的隣接ブロックをコーディングする一環として、ビデオコーダは、動き予測プロセス（たとえば、マージモードプロセスまたはＡＭＶＰプロセス）を実行して、現在の空間的隣接ブロックに対する動き情報を決定することができる。３Ｄ−ＨＥＶＣ作業ドラフト１では、ビデオコーダが動き予測プロセスを実行したときに、ビデオコーダは、ビュー間予測動きベクトルフラグ（たとえば、ＩｖｐＭｖＦｌａｇＬＸ）を設定して、現在の空間的隣接ブロックがＩＤＶを有するかどうかを示す。しかしながら、本開示の１つまたは複数の技術によれば、現在の空間的隣接ブロックがＩＤＶを有することを示すために、ビデオコーダは現在の空間的隣接ブロックの特定の変数を不正な値に設定し得る。上で示されているように、特定の変数は、基準インデックスと、基準ビューインデックスと、他の変数とであるものとしてよい。ビデオコーダが、現在の空間的隣接ブロックに対する動き情報を決定した後、ビデオコーダが特定の変数を再び必要としない場合がある。したがって、特定の変数は、現在の空間的隣接ブロックがＩＤＶを有するかどうかを示すために再利用され得る。
【０２２８】
[0230]現在の空間的隣接ブロックがスキップモードでコーディングされ、その特定の変数を不正な値に設定されていると決定したことに応答して（６６０の「はい」）、ビデオコーダは、現在の空間的隣接ブロックのＩＤＶを現在のブロックに対する視差ベクトルに変換し得る（６６２）。現在の空間的隣接ブロックのＩＤＶを現在のブロックに対する視差ベクトルに変換した後、オペレーション６５０は終了する。
【０２２９】
[0231]他方、現在の空間的隣接ブロックがスキップモードでコーディングされていない、または現在の空間的隣接ブロックに対する特定の変数が不正な値に設定されていないと決定したことに応答して（６６０の「いいえ」）、ビデオコーダは、残りの空間的隣接ブロックがあるかどうかを決定することができる（６６４）。１つまたは複数の空間的隣接ブロックが残っていると決定したことに応答して（６６４の「はい」）、ビデオコーダは、残りの空間的隣接ブロックのうちの１つを現在の空間的隣接ブロックとしてアクション６６０〜６６４を繰り返すことができる。
【０２３０】
[0232]残っている空間的隣接ブロックはないと決定したことに応答して（６６４の「いいえ」）、ビデオコーダは、現在のブロックに対する視差ベクトルが利用不可能であることを示し得る（６６６）。次いで、オペレーション６５０は終了し得る。
【０２３１】
[0233]図１８は、図１７に示されているオペレーション６５０の例示的な継続を示す流れ図である。図１８の例に示されているように、ビデオコーダは、現在のブロックのコーディングモードがＡＭＶＰであるかどうかを決定することができる（６９０）。コーディングモードはＡＭＶＰであると決定したことに応答して（６９０の「はい」）、ビデオコーダは、コロケートピクチャ内のＢＲ領域とＣＢ領域とを定義することができる（６９２）。次に、ビデオコーダは、ＢＲ領域をカバーするブロック（たとえば、ＰＵ）が視差動きベクトルを有するかどうかを決定することができる（６９４）。ＢＲ領域をカバーするブロックが視差動きベクトルを有すると決定したことに応答して（６９４の「はい」）、ビデオコーダは、ＢＲ領域をカバーするブロックの視差動きベクトルを現在のブロックに対する視差ベクトルに変換し得る（６９６）。次いで、ビデオコーダは、オペレーション６５０の視差ベクトル導出プロセスを終了させることができる。
【０２３２】
[0234]他方、ＢＲ領域をカバーするブロックが視差動きベクトルを有しないと決定したことに応答して（６９４の「いいえ」）、ビデオコーダは、ＣＢ領域をカバーするブロックが視差動きベクトルを有するかどうかを決定することができる（６９８）。ＣＢ領域をカバーするブロックが視差動きベクトルを有すると決定したことに応答して（６９８の「はい」）、ビデオコーダは、ＣＢ領域をカバーするブロックの視差動きベクトルを現在のブロックの視差ベクトルに変換し得る（７００）。次いで、ビデオコーダは、オペレーション６５０の視差ベクトル導出プロセスを終了させることができる。しかしながら、ＣＢ領域をカバーするブロックが視差動きベクトルを有しない場合（６９８の「いいえ」）、ビデオコーダは、「Ｂ」とマークされている円の後の図１７に示されているオペレーション６５０の一部分を実行することができる。
【０２３３】
[0235]コーディングモードはＡＭＶＰでないと決定したことに応答して（６９０の「いいえ」）、ビデオコーダは、候補ピクチャリスト内の現在のコロケートピクチャ内のＢＲ領域とＣＢ領域とを定義することができる（７０２）。次に、ビデオコーダは、現在の候補ピクチャのＢＲ領域をカバーするブロック（たとえば、ＰＵ）が視差動きベクトルを有するかどうかを決定することができる（７０４）。現在の候補ピクチャのＢＲ領域をカバーするブロックが視差動きベクトルを有すると決定したことに応答して（７０４の「はい」）、ビデオコーダは、現在の候補ピクチャのＢＲ領域をカバーするブロックの視差動きベクトルを現在のブロックに対する視差ベクトルに変換し得る（７０６）。次いで、ビデオコーダは、オペレーション６５０の視差ベクトル導出プロセスを終了させることができる。
【０２３４】
[0236]他方、現在の候補ピクチャのＢＲ領域をカバーするブロックが視差動きベクトルを有しないと決定したことに応答して（７０４の「いいえ」）、ビデオコーダは、現在の候補ピクチャのＣＢ領域をカバーするブロックが視差動きベクトルを有するかどうかを決定することができる（７０８）。現在の候補ピクチャのＣＢ領域をカバーするブロックが視差動きベクトルを有すると決定したことに応答して（７０８の「はい」）、ビデオコーダは、現在の候補ピクチャのＣＢ領域をカバーするブロックの視差動きベクトルを現在のブロックの視差ベクトルに変換し得る（７１０）。次いで、ビデオコーダは、オペレーション６５０の視差ベクトル導出プロセスを終了させることができる。
【０２３５】
[0237]しかしながら、現在の候補ピクチャのＣＢ領域をカバーするブロックが視差動きベクトルを有しないと決定したことに応答して（７０８の「いいえ」）、ビデオコーダは、候補ピクチャリスト内に残りの候補ピクチャがあるかどうかを決定することができる（７１２）。候補ピクチャリスト内に１つまたは複数の候補ピクチャが残っていると決定したことに応答して（７１２の「はい」）、ビデオコーダは、候補ピクチャの別の１つを現在の候補ピクチャとしてアクション７０２〜７１２を実行することができる。他方、候補ピクチャリスト内に候補ピクチャが残っていないと決定したことに応答して（７１２の「いいえ」）、ビデオコーダは、「Ｂ」とマークされている円の後の図１７に示されているオペレーション６５０の一部分を実行することができる。
【０２３６】
[0238]例１。ビデオデータをコーディングする方法であって、１つまたは複数の予測ユニット（ＰＵ）を含むビデオデータのコーディングユニット（ＣＵ）に対する視差ベクトルを決定することと、ここにおいて、視差ベクトルはＣＵの１つまたは複数のＰＵの各々に共通である、決定された視差ベクトルに基づいてＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行することとを備える方法。
【０２３７】
[0239]例２。視差ベクトルを視差動きベクトルとして採用することをさらに備え、ここにおいて、決定された視差ベクトルに基づいてＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行することは、視差動きベクトルを使用してＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行することを備える、例１の方法。
【０２３８】
[0240]例３。ＣＵに対する視差ベクトルを決定することは、視差動きベクトル（ＤＭＶ）とビデオデータの基準ブロックに関連付けられている暗黙的視差ベクトル（ＩＤＶ）とのうちの１つに基づいて視差ベクトルを決定することを備える例１の方法。
【０２３９】
[0241]例４。基準ブロックはＣＵに関連付けられている空間的隣接ブロックと、ＣＵに関連付けられている時間的隣接ブロックとのうちの１つを備える例３の方法。
【０２４０】
[0242]例５。ＣＵは、ビデオデータのフレームの複数のＣＵのうちの１つを備え、空間的隣接ブロックは、ＣＵ以外の、複数のＣＵのうちの別のＣＵ内に含まれ、フレーム内のＣＵに隣接して配置されている、ビデオデータのブロックを備える例４の方法。
【０２４１】
[0243]例６。ＣＵは、ビデオデータの第１のフレームの第１の複数のＣＵのうちの１つを備え、時間的隣接ブロックは、ビデオデータの第２のフレーム内に含まれるビデオデータのブロックを備え、ここにおいて、第１のフレームは第２のフレームと異なる、例４の方法。
【０２４２】
[0244]例７。第２のフレーム内に含まれるブロックは、第２のフレームの第２の複数のＣＵのうちのＣＵ内に含まれるビデオデータのブロックと、ここにおいて、第２のフレームの第２の複数のＣＵのうちのＣＵは、第１のフレームの第１の複数のＣＵのうちのＣＵと同一の位置にある、第２のフレームの第２の複数のＣＵのうちのＣＵに隣接して配置されているビデオデータのブロックとのうちの１つを備える例６の方法。
【０２４３】
[0245]例８。ＣＵは、ビデオデータのフレームの複数のＣＵのうちの１つを備え、基準ブロックは、フレーム内のＣＵの左下隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第１のＣＵ内に含まれる第１の隣接ＰＵと、フレーム内のＣＵのすぐ左に配置されている、ＣＵ以外の、複数のＣＵのうちの第２のＣＵ内に含まれる第２の隣接ＰＵと、フレーム内のＣＵの左上隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第３のＣＵ内に含まれる第３の隣接ＰＵと、フレーム内のＣＵのすぐ上に配置されている、ＣＵ以外の、複数のＣＵのうちの第４のＣＵ内に含まれる第４の隣接ＰＵと、フレーム内のＣＵの右上隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第５のＣＵ内に含まれる第５の隣接ＰＵとのうちの１つを備える例３の方法。
【０２４４】
[0246]例９。基準ブロックは、第１の隣接ＰＵと、第２の隣接ＰＵと、第３の隣接ＰＵと、第４の隣接ＰＵと、第５の隣接ＰＵのサブセットに含まれる１つを備える例８の方法。
【０２４５】
[0247]例１０。基準ブロックはＣＵと同一の位置にある第２のフレームの一部の中に含まれるビデオデータの第２のフレームの第１の領域と、ＣＵのＰＵと同一の位置にある第２のフレームの一部の中に含まれる第２のフレームの第２の領域と、第２のフレームの最大ＣＵ（ＬＣＵ）に対応する、第１の領域と第２の領域とのうちの一方または両方を含む、第２のフレームの第３の領域と、第１の領域と第２の領域とのうちの１つまたは複数の右下隅部に隣接して配置されている第２のフレームの第４の領域とのうちの１つを備える例３の方法。
【０２４６】
[0248]例１１。基準ブロックは、ＣＵの、ＣＵ以外の、空間的隣接ＣＵと時間的隣接ＣＵとのうちの１つのＰＵを備える例３の方法。
【０２４７】
[0249]例１２。基準ブロックは、ＣＵの複数のＰＵのうちの代表的ＰＵに基づいて決定される例３の方法。
【０２４８】
[0250]例１３。視差動きベクトルは、所定の順序によりＣＵに関連付けられている１つまたは複数の基準ブロックの各々の視差動きベクトルと暗黙的視差ベクトルとのうちの１つを決定することによって決定される例３の方法。
【０２４９】
[0251]例１４。所定の順序は、ＣＵと１つまたは複数の基準ブロックの各々との間の相関の量に基づいて定義される例１３の方法。
【０２５０】
[0252]例１５。さらに、
[0253]暗黙的視差ベクトル（ＩＤＶ）がＣＵに関連付けられている基準ブロックについて存在しているかどうかを、基準インデックスと、基準ビューインデックスと、基準ビューインデックスの差と、不正な基準インデックスと、不正な基準ビューインデックスと、不正な基準ビューインデックスの差とのうちの１つをシグナリングすることによって示すことを備える例１の方法。
【０２５１】
[0254]例１６。単一ビットフラグを使用してＩＤＶが基準ブロックに対して存在しているかどうかを示すことを回避することをさらに備える例１５の方法。
【０２５２】
[0255]例１７。例１〜１６の任意の組合せの方法。
【０２５３】
[0256]例１８。方法がエンコーダによって実行される例１〜１６のいずれか１つまたはこれらの組合せの方法。
【０２５４】
[0257]例１９。方法がデコーダによって実行される例１〜１６のいずれか１つまたはこれらの組合せの方法。
【０２５５】
[0258]例２０。例１〜１６のいずれか１つまたはこれらの組合せの方法を実行するように構成されたシステム。
【０２５６】
[0259]例２１。実行されたときに１つまたは複数のプロセッサに例１〜１６のいずれか１つまたはこれらの組合せの方法を実行させる命令を備える非一時的コンピュータ可読ストレージ媒体。
【０２５７】
[0260]例２２。例１〜１６のいずれか１つまたはこれらの組合せの方法を実行するように構成されたビデオ符号化デバイス。
【０２５８】
[0261]例２３。例１〜１６のいずれか１つまたはこれらの組合せの方法を実行するように構成されたビデオ復号デバイス。
【０２５９】
[0262]例２４。ビデオデータをコーディングするためのデバイスであって、１つまたは複数の予測ユニット（ＰＵ）を含むビデオデータのコーディングユニット（ＣＵ）に対する視差ベクトルを決定するための手段と、ここにおいて、視差ベクトルはＣＵの１つまたは複数のＰＵの各々に共通である、決定された視差ベクトルに基づいてＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行するための手段とを備えるデバイス。
【０２６０】
[0263]例２５。視差ベクトルを視差動きベクトルとして採用するための手段をさらに備え、ここにおいて、決定された視差ベクトルに基づいてＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行するための手段は、視差動きベクトルを使用してＣＵに対してビュー間動き予測とビュー間残差予測とのうちの１つまたは複数を実行するための手段を備える、例２４のデバイス。
【０２６１】
[0264]例２６。ＣＵに対する視差ベクトルを決定するための手段は、視差動きベクトル（ＤＭＶ）とビデオデータの基準ブロックに関連付けられている暗黙的視差ベクトル（ＩＤＶ）とのうちの１つに基づいて視差ベクトルを決定するための手段を備える例２４のデバイス。
【０２６２】
[0265]例２７。基準ブロックは、ＣＵに関連付けられている空間的隣接ブロックと、ＣＵに関連付けられている時間的隣接ブロックとのうちの１つを備える例２６のデバイス。
【０２６３】
[0266]例２８。ＣＵは、ビデオデータのフレームの複数のＣＵのうちの１つを備え、空間的隣接ブロックは、ＣＵ以外の、複数のＣＵのうちの別のＣＵ内に含まれ、フレーム内のＣＵに隣接して配置されている、ビデオデータのブロックを備える例２７のデバイス。
【０２６４】
[0267]例２９。ＣＵは、ビデオデータの第１のフレームの第１の複数のＣＵのうちの１つを備え、時間的隣接ブロックは、ビデオデータの第２のフレーム内に含まれるビデオデータのブロックを備え、ここにおいて、第１のフレームは第２のフレームと異なる、例２７のデバイス。
【０２６５】
[0268]例３０。第２のフレーム内に含まれるブロックは、第２のフレームの第２の複数のＣＵのうちのＣＵ内に含まれるビデオデータのブロックと、ここにおいて、第２のフレームの第２の複数のＣＵのうちのＣＵは、第１のフレームの第１の複数のＣＵのうちのＣＵと同一の位置にある、第２のフレームの第２の複数のＣＵのうちのＣＵに隣接して配置されているビデオデータのブロックとのうちの１つを備える例２９のデバイス。
【０２６６】
[0269]例３１。ＣＵは、ビデオデータのフレームの複数のＣＵのうちの１つを備え、基準ブロックは、フレーム内のＣＵの左下隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第１のＣＵ内に含まれる第１の隣接ＰＵと、フレーム内のＣＵのすぐ左に配置されている、ＣＵ以外の、複数のＣＵのうちの第２のＣＵ内に含まれる第２の隣接ＰＵと、フレーム内のＣＵの左上隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第３のＣＵ内に含まれる第３の隣接ＰＵと、フレーム内のＣＵのすぐ上に配置されている、ＣＵ以外の、複数のＣＵのうちの第４のＣＵ内に含まれる第４の隣接ＰＵと、フレーム内のＣＵの右上隅部に隣接して配置されている、ＣＵ以外の、複数のＣＵのうちの第５のＣＵ内に含まれる第５の隣接ＰＵとのうちの１つを備える例２６のデバイス。
【０２６７】
[0270]例３２。基準ブロックは、第１の隣接ＰＵと、第２の隣接ＰＵと、第３の隣接ＰＵと、第４の隣接ＰＵと、第５の隣接ＰＵとのサブセットに含まれる１つを備える例３１のデバイス。
【０２６８】
[0271]例３３。基準ブロックは、ＣＵと同一の位置にある第２のフレームの一部の中に含まれるビデオデータの第２のフレームの第１の領域と、ＣＵのＰＵと同一の位置にある第２のフレームの一部の中に含まれる第２のフレームの第２の領域と、第２のフレームの最大ＣＵ（ＬＣＵ）に対応する、第１の領域と第２の領域とのうちの一方または両方を含む、第２のフレームの第３の領域と、第１の領域と第２の領域とのうちの１つまたは複数の右下隅部に隣接して配置されている第２のフレームの第４の領域とのうちの１つを備える例２６のデバイス。
【０２６９】
[0272]例３４。基準ブロックは、ＣＵの、ＣＵ以外の、空間的隣接ＣＵと時間的隣接ＣＵとのうちの１つのＰＵを備える例２６のデバイス。
【０２７０】
[0273]例３５。基準ブロックは、ＣＵの複数のＰＵのうちの代表的ＰＵに基づいて決定される例２６のデバイス。
【０２７１】
[0274]例３６。視差動きベクトルを決定するための手段は、所定の順序によりＣＵに関連付けられている１つまたは複数の基準ブロックの各々の視差動きベクトルと暗黙的視差ベクトルとのうちの１つを決定するための手段を備える例２６のデバイス。
【０２７２】
[0275]例３７。所定の順序は、ＣＵと１つまたは複数の基準ブロックの各々との間の相関の量に基づいて定義される例３６のデバイス。
【０２７３】
[0276]例３８。暗黙的視差ベクトル（ＩＤＶ）がＣＵに関連付けられている基準ブロックについて存在しているかどうかを、基準インデックスと、基準ビューインデックスと、基準ビューインデックスの差と、不正な基準インデックスと、不正な基準ビューインデックスと、不正な基準ビューインデックスの差とのうちの１つをシグナリングすることによって示すための手段をさらに備える例２４のデバイス。
【０２７４】
[0277]例３９。単一ビットフラグを使用してＩＤＶが基準ブロックに対して存在しているかどうかを示すことを回避するための手段をさらに備える例３８のデバイス。
【０２７５】
[0278]例４０。本開示で説明されている任意のデバイスまたは方法。
【０２７６】
[0279]上記の例はどれもその詳細が、他の例と組み合わされ、本開示と一致するものとしてよい。１つまたは複数の例において、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実装され得る。ソフトウェアで実装される場合、これらの機能は、１つまたは複数の命令もしくはコードとして、コンピュータ可読媒体上で格納または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データストレージ媒体などの有形の媒体に対応する、コンピュータ可読ストレージ媒体、またはたとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を円滑にする媒体を含む通信媒体を含むものとしてよい。このように、コンピュータ可読媒体は、一般的に、（１）非一時的である有形のコンピュータ可読ストレージ媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データストレージ媒体は、本開示において説明されている技術の実装のため、命令、コード、および／またはデータ構造体を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る利用可能な任意の媒体とすることができる。コンピュータプログラム製品はコンピュータ可読媒体を含むものとしてよい。
【０２７７】
[0280]例として、限定はしないが、このようなコンピュータ可読ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭ、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造体の形態で所望のプログラムコードを格納するために使用され得る、コンピュータによってアクセスされ得る他の任意の媒体を備えることができる。また、接続がコンピュータ可読媒体と称されることも適切である。たとえば、命令が同軸ケーブル、光ファイバケーブル、ツイストペア線、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア線、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読ストレージ媒体とデータストレージ媒体とは、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形のストレージ媒体に向けられることが理解されるであろう。本明細書で使用するディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）は、コンパクトディスク（ｄｉｓｃ）（ＣＤ）、レーザディスク（登録商標）（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）、フロッピー（登録商標）ディスク（ｄｉｓｋ）、およびブルーレイディスク（ｄｉｓｃ）を含み、ディスク（ｄｉｓｋ）は、通常、データを磁気的に再生し、ディスク（ｄｉｓｃ）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２７８】
[0281]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の同等の集積回路もしくはディスクリート部品による論理回路などの１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用されているような「プロセッサ」という用語は、前述の構造物または本明細書で説明されている技術の実装に適している他の構造物のいずれかを指すものとしてよい。それに加えて、いくつかの態様では、本明細書で説明されている機能は、符号化と復号とを行うように構成された専用ハードウェアおよび／またはソフトウェアモジュール内に設けられるか、または組み合わされたコーデックに組み込まれ得る。また、これらの技術は、１つまたは複数の回路または論理素子で完全に実装されることもあり得る。
【０２７９】
[0282]本開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）、または一組のＩＣ（たとえば、チップセット）を含む、様々なデバイスもしくは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されているように、様々なユニットが、コーデックハードウェアユニット内に組み合わされるか、または好適なソフトウェアおよび／またはファームウェアと併せて、上述のような１つまたは複数のプロセッサを含む、相互運用性を有するハードウェアユニットの集合体によって構成され得る。
【０２８０】
[0283]様々な例が説明された。これらおよび他の例は、次の請求項の範囲内にある。
【図１】
2016504864.tif 000005
【図２】
2016504864.tif 000006
【図３】
2016504864.tif 000007
【図４】
2016504864.tif 000008
【図５】
2016504864.tif 000009
【図６】
2016504864.tif 000010
【図７】
2016504864.tif 000011
【図８】
2016504864.tif 000012
【図９】
2016504864.tif 000013
【図１０】
2016504864.tif 000014
【図１１Ａ】
2016504864.tif 000015
【図１１Ｂ】
2016504864.tif 000016
【図１２Ａ】
2016504864.tif 000017
【図１２Ｂ】
2016504864.tif 000018
【図１３】
2016504864.tif 000019
【図１４】
2016504864.tif 000020
【図１５】
2016504864.tif 000021
【図１６】
2016504864.tif 000022
【図１７】
2016504864.tif 000023
【図１８】
2016504864.tif 000024
【手続補正書】
【提出日】平成27年8月25日(2015.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって再構成することと、
を備える方法。
【請求項２】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１に記載の方法。
【請求項３】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備える請求項２に記載の方法。
【請求項４】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備える請求項２に記載の方法。
【請求項５】
ビデオデータを符号化する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対して前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成することと、
を備える方法。
【請求項６】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項５に記載の方法。
【請求項７】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備える請求項６に記載の方法。
【請求項８】
前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備える請求項６に記載の方法。
【請求項９】
ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータの現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行するように構成された１つまたは複数のプロセッサと、を備え、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、デバイス。
【請求項１０】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項９に記載のデバイス。
【請求項１１】
前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第１の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第２の空間的隣接ブロックをチェックするように構成される請求項１０に記載のデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第２の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第１の空間的隣接ブロックをチェックするように構成される請求項１０に記載のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって、再構成するようにさらに構成される請求項９に記載のデバイス。
【請求項１４】
前記１つまたは複数のプロセッサは、前記現在のブロックに対する前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成するようにさらに構成される請求項９に記載のデバイス。
【請求項１５】
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行する手段と、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用する手段と、
を備えるデバイス。
【請求項１６】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１５に記載のデバイス。
【請求項１７】
命令が記憶されている非一時的コンピュータ可読データ記憶媒体であって、前記命令は実行されたときに、１つまたは複数のプロセッサに、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用することと、
を行わせる、非一時的コンピュータ可読データ記憶媒体。
【請求項１８】
前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接する請求項１７に記載の非一時的コンピュータ可読データ記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２８０
【補正方法】変更
【補正の内容】
【０２８０】
[0283]様々な例が説明された。これらおよび他の例は、次の請求項の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  ビデオデータを復号する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって再構成することと、
を備える方法。
［Ｃ２］  前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接するＣ１に記載の方法。
［Ｃ３］  前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備えるＣ２に記載の方法。
［Ｃ４］  前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備えるＣ２に記載の方法。
［Ｃ５］  ビデオデータを符号化する方法であって、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
前記現在のブロックに対して前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成することと、
を備える方法。
［Ｃ６］  前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接するＣ５に記載の方法。
［Ｃ７］  前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、を備えるＣ６に記載の方法。
［Ｃ８］  前記視差ベクトル導出プロセスを実行することは、視差動きベクトルについて前記第２の空間的隣接ブロックをチェックすることと、次いで、視差動きベクトルについて前記第１の空間的隣接ブロックをチェックすることと、を備えるＣ６に記載の方法。
［Ｃ９］  ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータの現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行するように構成された１つまたは複数のプロセッサと、を備え、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、デバイス。
［Ｃ１０］  前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接するＣ９に記載のデバイス。
［Ｃ１１］  前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第１の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第２の空間的隣接ブロックをチェックするように構成されるＣ１０に記載のデバイス。
［Ｃ１２］  前記１つまたは複数のプロセッサは、前記１つまたは複数のプロセッサが前記視差ベクトル導出プロセスを実行したときに、前記１つまたは複数のプロセッサが視差動きベクトルについて前記第２の空間的隣接ブロックをチェックし、次いで視差動きベクトルについて前記第１の空間的隣接ブロックをチェックするように構成されるＣ１０に記載のデバイス。
［Ｃ１３］  前記１つまたは複数のプロセッサは、前記現在のブロックに対するサンプルブロックを、一部は、前記導出された視差ベクトルに基づいて前記現在のブロックに対するビュー間予測を実行することによって、再構成するようにさらに構成されるＣ９に記載のデバイス。
［Ｃ１４］  前記１つまたは複数のプロセッサは、前記現在のブロックに対する前記導出された視差ベクトルに一部基づいて、前記現在のブロックの符号化された表現を生成するようにさらに構成されるＣ９に記載のデバイス。
［Ｃ１５］  現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行する手段と、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用する手段と、
を備えるデバイス。
［Ｃ１６］  前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接するＣ１５に記載のデバイス。
［Ｃ１７］  命令が記憶されている非一時的コンピュータ可読データ記憶媒体であって、前記命令は実行されたときに、１つまたは複数のプロセッサに、
現在のブロックに対する視差ベクトルを導出するために、視差ベクトル導出プロセスを実行することと、ここで、前記視差ベクトル導出プロセスを実行することは、
第１または第２の空間的隣接ブロックのいずれかが視差動きベクトルまたは暗黙的視差ベクトルを有している場合に、前記視差動きベクトルまたは前記暗黙的視差ベクトルを前記現在のブロックに対する前記視差ベクトルに変換することを備え、
ここで、前記視差ベクトル導出プロセスは、前記第１および前記第２の空間的隣接ブロックのいずれもが視差動きベクトルまたは暗黙的視差ベクトルを有していない場合であっても、前記第１および第２の空間的隣接ブロックに加えていずれかの空間的隣接ブロックが視差動きベクトルまたは暗黙的視差ベクトルを有しているかどうかを決定しない、
ビュー間予測を実行するために、前記現在のブロックに対する前記視差ベクトルを使用することと、
を行わせる、非一時的コンピュータ可読データ記憶媒体。
［Ｃ１８］  前記第１の空間的隣接ブロックは、前記現在のブロックの上縁に隣接し、前記第２の空間的隣接ブロックは、前記現在のブロックの左縁に隣接するＣ１１に記載の非一時的コンピュータ可読データ記憶媒体。
【国際調査報告】
2016504864.tif 000025
2016504864.tif 000026
2016504864.tif 000027
2016504864.tif 000028