(57)【特許請求の範囲】
【請求項１】
ビュー間またはレイヤ間ビデオ復号の方法であって、前記方法は、
候補動きベクトル予測子のリストを構成することと、
候補動きベクトル予測子の前記リストから動きベクトル予測子を選択するための、候補動きベクトル予測子の前記リストへのインデックスを含む情報と、現在のブロックについての動きベクトルを前記選択された動きベクトル予測子から導出するための動きベクトル差分に関する情報とを含むビットストリームを受信することと、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャにおけるブロックを指し、ここにおいて、前記動きベクトル差分に関する前記情報を用いて導出された前記現在のブロックについての前記動きベクトルが動きベクトル制限に準拠するように前記動きベクトル差分に関する前記情報を決定することによって、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記動きベクトル差分に関する前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出することと、
前記現在のブロックについての前記導出された動きベクトルによって指される前記ブロックのピクセル値に基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号することと
を備える方法。
【請求項２】
前記動きベクトル差分が前記動きベクトル予測子に加算されたときに、得られる動きベクトルが前記動きベクトル制限に準拠するように前記動きベクトル差分を、前記受信されたビットストリームから決定することをさらに備え、
前記動きベクトルを導出することは、前記動きベクトル予測子と前記動きベクトル差分とを加算することを備える、請求項１に記載の方法。
【請求項３】
ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を、前記受信されたビットストリームから決定することと、
前記垂直動きベクトル範囲に基づいて、前記ビュー間またはレイヤ間参照ピクチャと前記現在のブロックを含む現在のピクチャとを並列復号することと
をさらに備える、請求項１に記載の方法。
【請求項４】
ビュー間またはレイヤ間ビデオ符号化の方法であって、
候補動きベクトル予測子のリストを構成することと、
候補動きベクトル予測子の前記リストから動きベクトル予測子を選択することと、
現在のブロックについての動きベクトルを前記動きベクトル予測子から導出するために使用される動きベクトル差分に関する情報を決定することと、ここにおいて、前記動きベクトル差分に関する前記情報を用いて導出された前記現在のブロックについての前記動きベクトルは、動きベクトル制限に準拠し、ここにおいて、前記現在のブロックについての前記導出された動きベクトルは、ビュー間またはレイヤ間参照ピクチャにおけるブロックを指し、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限し、前記動きベクトル差分に関する前記情報は、候補動きベクトル予測子の前記リストへのインデックスを含む、
前記動きベクトル差分に関する前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出することと、
前記現在のブロックについての前記導出された動きベクトルによって指される前記ブロックのピクセル値に基づいて、前記現在のブロックをビュー間またはレイヤ間予測符号化することと、
前記動きベクトルを導出するための前記動きベクトル差分に関する前記決定された情報を出力用に生成することと
を備える方法。
【請求項５】
前記動きベクトル差分に関する前記情報は、シンタックス要素を含む、請求項１または４に記載の方法。
【請求項６】
前記動きベクトル差分に関する情報を決定することは、
前記動きベクトル差分が前記動きベクトル予測子に加算されたときに、得られる動きベクトルが前記動きベクトル制限に準拠するように、前記動きベクトル差分を決定すること
をさらに備える、請求項４に記載の方法。
【請求項７】
前記動きベクトル差分に関する前記情報はフラグの値を含み、前記動きベクトル差分に関する前記情報を決定することは、前記フラグが示す値に基づいて、前記フラグの参照ピクチャリスト中のピクチャについての前記動きベクトル差分が０ではないことを決定することをさらに備える、請求項４に記載の方法。
【請求項８】
前記動きベクトルが前記レイヤ間参照ピクチャを指すときに、前記動きベクトル制限は、前記導出された動きベクトルが０に等しくなるべきであることを示す、請求項４に記載の方法。
【請求項９】
ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を出力用に生成すること
をさらに備える、請求項４に記載の方法。
【請求項１０】
ブロックサイズの前記ユニットは、最大コーディングユニットの高さおよび最小コーディングユニットの高さのユニットの１つを備える、請求項９に記載の方法。
【請求項１１】
前記ビュー間またはレイヤ間参照ピクチャは、第１のビュー間またはレイヤ間参照ピクチャを含み、前記方法は、
前記現在のブロックによってビュー間またはレイヤ間参照に使用され得ない、前記第１のビュー間またはレイヤ間参照ピクチャを含む任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを決定することと、
ここにおいて、前記動きベクトルを導出することは、前記現在のブロックについての前記動きベクトルを、前記動きベクトルが任意のビュー間またはレイヤ間参照ピクチャ中の前記利用不可能な参照エリアを指さないように、前記決定された利用不可能なエリアに基づいて導出することを備え、
前記利用不可能な参照エリアを示す情報を出力用に生成することと
をさらに備える、請求項４に記載の方法。
【請求項１２】
前記利用不可能な参照エリアを示す情報を出力用に生成することは、ラスタ走査順序で前記利用不可能な参照エリアを示す情報を出力用に生成することを備える、請求項１１に記載の方法。
【請求項１３】
実行されたときに、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに、請求項１から１２のいずれか一項に記載の方法を実行させる、命令を記憶したコンピュータ可読記憶媒体。
【請求項１４】
候補動きベクトル予測子のリストを構成するための手段と、
候補動きベクトル予測子の前記リストから動きベクトル予測子を選択するための手段と、
現在のブロックについての動きベクトルを前記動きベクトル予測子から導出するために使用される動きベクトル差分に関する情報を決定するための手段と、ここにおいて、前記動きベクトル差分に関する前記情報を用いて導出された前記現在のブロックについての前記動きベクトルは、動きベクトル制限に準拠し、ここにおいて、前記現在のブロックについての前記導出された動きベクトルは、ビュー間またはレイヤ間参照ピクチャにおけるブロックを指し、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限し、前記動きベクトル差分に関する前記情報は、候補動きベクトル予測子の前記リストへのインデックスを含む、
前記動きベクトル差分に関する前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出するための手段と、
前記現在のブロックについての前記導出された動きベクトルによって指される前記ブロックのピクセル値に基づいて、前記現在のブロックをビュー間またはレイヤ間予測符号化するための手段と、
前記動きベクトルを導出するための前記動きベクトル差分に関する前記決定された情報を出力用に生成するための手段と
を備えるデバイス。
【請求項１５】
候補動きベクトル予測子のリストを構成するための手段と、
候補動きベクトル予測子の前記リストから動きベクトル予測子を選択するための、候補動きベクトル予測子の前記リストへのインデックスを含む情報と、現在のブロックについての動きベクトルを前記選択された動きベクトル予測子から導出するための動きベクトル差分に関する情報とを含むビットストリームを受信するための手段と、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャにおけるブロックを指し、ここにおいて、前記動きベクトル差分に関する前記情報を用いて導出された前記現在のブロックについての前記動きベクトルが動きベクトル制限に準拠するように前記動きベクトル差分に関する前記情報を決定することによって、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記動きベクトル差分に関する前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出するための手段と、
前記現在のブロックについての前記導出された動きベクトルによって指される前記ブロックのピクセル値に基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号するための手段と
を備えるデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１３年１月４日に出願された米国仮出願第６１／７４９，２１３号、２０１３年１月２１日に出願された米国仮出願第６１／７５４，８６４号、２０１３年１月２２日に出願された米国仮出願第６１／７５５，２７４号、および２０１３年１月２９日に出願された米国仮出願第６１／７５８，２０６号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関し、より詳細には、ビデオデータをコーディングするための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングでは、ビデオフレームまたはスライスがブロックに区分され得る。各ブロックはさらに区分され得る。イントラコーディングされた（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコーディングされた（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測によって、コーディングされるべきブロックについての予測ブロックが生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
[0005]インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数が、次いで量子化され得る。最初は２次元アレイに構成される量子化変換係数は、エントロピーコーディングのための変換係数の１次元ベクトルを生成するために、特定の順序で走査され得る。
【発明の概要】
【０００６】
[0006]一般に、本開示は、導出された動きベクトルが動きベクトル制限に違反しないことを確実にするビデオコーディング技法について説明する。たとえば、ビデオエンコーダは、ビデオデコーダが動きベクトルを導出する方法を定義するシンタックス要素をビットストリーム中でシグナリングすることができる。本技法は、動きベクトル制限に違反する動きベクトルをビデオデコーダに導出させることになるシンタックス要素値をビットストリームが含まないことを確実にし得る。
【０００７】
[0007]本開示はまた、並列復号に有用であり得る復号遅延を示すための技法について説明する。たとえば、本技法は、ビデオデコーダによって並列復号に広く使用され得る復号遅延を示すことができる。復号遅延を示すためのそのような技法は、導出された動きベクトルが動きベクトル制限に違反しないことを確実にする技法とともに使用され得る。ただし、本開示で説明する技法は、そのように限定されない。
【０００８】
[0008]一例では、本開示は、ビュー間またはレイヤ間ビデオ復号の方法について説明し、本方法は、現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信することを備え、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、導出された動きベクトルが動きベクトル制限に準拠することを情報が確実にするように、ビットストリームは制約され、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。本方法はまた、ビットストリーム中の情報に基づいて、現在のブロックについての動きベクトルを導出することと、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測復号することとを含む。
【０００９】
[0009]一例では、本開示は、ビュー間またはレイヤ間ビデオ符号化の方法について説明し、本方法は、現在のブロックについての動きベクトルを動きベクトル予測子から導出するために使用される、導出された動きベクトルが動きベクトル制限に準拠することを確実にする情報を決定することを備え、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。本方法はまた、情報に基づいて、現在のブロックについての動きベクトルを導出することと、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測符号化することと、動きベクトルを導出するための決定された情報を出力用に生成することとを含む。
【００１０】
[0010]一例では、本開示は、ビデオデコーダを備えるデバイスについて説明し、ビデオデコーダは、１つまたは複数のプロセッサを備え、現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信するように構成され、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、導出された動きベクトルが動きベクトル制限に準拠することを情報が確実にするように、ビットストリームは制約され、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。ビデオデコーダはまた、ビットストリーム中の情報に基づいて、現在のブロックについての動きベクトルを導出し、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測復号するように構成される。
【００１１】
[0011]一例では、本開示は、ビデオエンコーダを備えるデバイスについて説明し、ビデオエンコーダは、１つまたは複数のプロセッサを備え、現在のブロックについての動きベクトルを動きベクトル予測子から導出するために使用される、導出された動きベクトルが動きベクトル制限に準拠することを確実にする情報を決定するように構成され、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。ビデオエンコーダはまた、情報に基づいて、現在のブロックについての動きベクトルを導出し、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測符号化し、動きベクトルを導出するための決定された情報を出力用に生成するように構成される。
【００１２】
[0012]一例では、本開示は、命令を記憶したコンピュータ可読記憶媒体について説明し、命令は実行されたときに、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信させ、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、導出された動きベクトルが動きベクトル制限に準拠することを情報が確実にするように、ビットストリームは制約され、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。命令はまた、１つまたは複数のプロセッサに、ビットストリーム中の情報に基づいて、現在のブロックについての動きベクトルを導出させ、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測復号させる。
【００１３】
[0013]一例では、本開示は、デバイスについて説明し、デバイスは、現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信するための手段を備え、ここにおいて、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、導出された動きベクトルが動きベクトル制限に準拠することを情報が確実にするように、ビットストリームは制約され、ここにおいて、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。デバイスはまた、ビットストリーム中の情報に基づいて、現在のブロックについての動きベクトルを導出するための手段と、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測復号するための手段とを含む。
【００１４】
[0014]１つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面から、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】[0015]本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0016]例示的なマルチビュービデオコーディング（ＭＶＣ）復号順序を示すグラフ図。
【図３】[0017]マルチビュービデオコーディング用の構造を示す概念図。
【図４】[0018]２つのビューのための並列コーディングプロセスの一例を示すフロー図。
【図５】[0019]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図６】[0020]本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図７】[0021]本開示で説明する技法によるビュー間またはレイヤ間ビデオ復号の例示的な動作を示すフローチャート。
【図８】[0022]本開示で説明する技法によるビュー間またはレイヤ間ビデオ符号化の例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１６】
[0023]動きベクトル制限は、動きベクトルのｘ成分またはｙ成分のうちの少なくとも１つを値の範囲内に限定することを指す。このようにして、動きベクトル制限は、現在のブロックをインター予測するために使用され得る参照ピクチャのブロックを制限する。たとえば、ｙ成分が一定の範囲内に制限される場合、ｙ成分範囲の外にある参照ピクチャ中の任意のブロックは、現在のブロックをインター予測するために使用され得ない。一般に、動きベクトル制限は、より詳細に説明するように、ビュー間またはレイヤ間参照ピクチャであり得る参照ピクチャのサブ部分を指すように動きベクトルの範囲を限定するために使用され得る。
【００１７】
[0024]動きベクトル制限が有用であり得る様々な理由があり得る。一例として、動きベクトル制限は、現在のブロックをインター予測するためにアクセスされる必要がある参照ピクチャのデータの量を減らすことができ、これのことは、メモリ帯域幅効率を高める。たとえば、制限範囲外に存在するブロックのビデオデータは、現在のブロックをインター予測するためにアクセスされる必要はないことがある。
【００１８】
[0025]別の例として、動きベクトル制限は、並列復号を可能にし得る。たとえば、マルチビュービデオコーディングまたはスケーラブルビデオコーディングでは、従属ビューまたはレイヤ中のピクチャが、参照ビューまたはレイヤ（たとえば、ベースビューまたはレイヤ）中のピクチャによりインター予測（たとえば、ビュー間予測またはレイヤ間予測）され得る。動きベクトル制限がない場合、ビデオデコーダは、従属ビューまたはレイヤのピクチャを再構成する前に、参照ビューまたはレイヤのピクチャ全体を再構成する必要があり得る。この理由で、従属ビューまたはレイヤのピクチャを再構成する前に参照ビューまたはレイヤのピクチャ全体を再構成する必要を回避するために、動きベクトル制限が望まれ得る。
【００１９】
[0026]その上、動きベクトル制限がある場合、ビデオデコーダは、参照ビューまたはレイヤのピクチャと並列に、従属ビューまたはレイヤのピクチャを再構成することが可能であり得る。たとえば、動きベクトル制限が、従属ビューまたはレイヤのピクチャ中の任意のブロックについての動きベクトルのｙ成分が参照ビューまたはレイヤ（たとえば、ベースビューまたはレイヤ）中でＴｈ（Ｔｈは、ｙ成分制限を定義する）を超えることができないと定義すると仮定する。言い換えれば、現在のブロックが、従属ビューまたはレイヤのピクチャ中の（ｘ，ｙ）に位置する場合、参照ビューまたはレイヤのピクチャ中の（ｘ，ｙ＋Ｔｈ）以上に位置するブロックのみが、現在のブロックをインター予測するために使用され得る。
【００２０】
[0027]この例では、ビデオデコーダが参照ビューまたはレイヤのピクチャをｙ＋Ｔｈブロックまで再構成した後、ビデオデコーダは、参照ビューまたはレイヤのピクチャと並列に従属ビューまたはレイヤのピクチャを再構成することができる。これの理由は、参照ビューまたはレイヤのピクチャ中のｙ＋Ｔｈブロックの後のいかなるブロックも、「ｙ」のｙ成分値を有する従属ビューまたはレイヤのピクチャ中のブロックをインター予測するために使用され得ないことである。この意味で、動きベクトル制限は、並列復号遅延（すなわち、ビデオデコーダが従属ビューまたはレイヤのピクチャの再構成を開始し得る前に再構成されなければならない参照ビューまたはレイヤのピクチャの行の数）を定義することができる。いくつかの例では、参照ビューまたはレイヤのピクチャを再構成する際に使用されるフィルタ処理のタイプに基づいて、ビデオデコーダは、ｙ＋Ｔｈ行の後の行中のいくつかのブロックが再構成されるまで、従属ビューまたはレイヤのピクチャの再構成を開始することが可能ではないことがある。
【００２１】
[0028]しかしながら、動きベクトル制限を使用することに伴う問題があり得る。たとえば、多くの場合、ビデオエンコーダは、現在のブロックの実際の動きベクトルの情報（たとえば、シンタックス要素）をシグナリングしないことがある。代わりに、ビデオエンコーダは、ビデオデコーダが動きベクトルを導出する際の導出元となる情報（たとえば、シンタックス要素）をシグナリングすることがある。一例として、ビデオエンコーダは、現在のブロックの動きベクトルの情報をシグナリングするのではなく、マージ／スキップモードまたは高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードの一部として、候補動きベクトル予測子のリストへのインデックスをシグナリングし得る。ビデオデコーダは、受信されたインデックスに基づいて、候補動きベクトル予測子のリストから動きベクトル予測子を選択し、動きベクトル予測子に基づいて、現在のブロックについての動きベクトルを導出することができる。これらの例のうちのいくつかでは、動きベクトルを導出する際に、動きベクトル制限に違反する動きベクトルをビデオデコーダが導出することが考えられ得る。
【００２２】
[0029]たとえば、マージ／スキップモードでは、ビデオデコーダは、動きベクトル予測子の動きベクトルを採用する（すなわち、現在のブロックの動きベクトルを動きベクトル予測子に等しくセットする）。現在のブロックの動きベクトルが動きベクトル予測子に等しくセットされた場合に、それ、動きベクトルが現在のブロックの動きベクトル制限に準拠する保証がないことがある。
【００２３】
[0030]別の例として、ＡＭＶＰモードでは、ビデオデコーダは、選択された動きベクトル予測子とベストマッチ探索から決定された動きベクトルとの間の動きベクトル差分（ＭＶＤ）を受信する。ビデオデコーダは、現在のブロックについての動きベクトルを導出するために、選択された動きベクトル予測子にＭＶＤを加算する。しかしながら、いくつかの例では、動きベクトル予測子にＭＶＤを加算することによって、得られる導出された動きベクトルが動きベクトル制限に違反することが考えられ得る。
【００２４】
[0031]以下でより詳細に説明する時間的動きベクトル予測子（ＴＭＶＰ）の場合など、動きベクトル制限を使用するときに存在する他のそのような問題があり得る。以下でより詳細に説明するように、動きベクトル制限を使用するときに、特定の参照ピクチャリストを指す動きベクトル予測子についてのすべてのＭＶＤが０であることを示すＭＶＤフラグに伴う問題もあり得る。
【００２５】
[0032]ビデオデコーダが動きベクトルを導出するために使用するビットストリーム中の情報が、導出された動きベクトルが動きベクトル制限に違反しないことを確実にすることを、本開示で説明する技法は確実にし得る。一例として、マージ／スキップモードの場合、本技法は、現在のブロックについての動きベクトルとして採用された場合に、導出された動きベクトルに動きベクトル制限に違反させることになる動きベクトル予測子についての候補動きベクトル予測子のリストへのインデックスをビットストリームが含まないことを確実にし得る。別の例として、ＡＭＶＰモードの場合、本技法は、動きベクトル予測子に加算されたときに、得られる導出された動きベクトルに動きベクトル制限に準拠させるＭＶＤをビットストリームが含むことを確実にし得る。
【００２６】
[0033]並列復号の一部として動きベクトル制限を使用することに伴う問題または懸念もあり得る。いくつかの技法は、２つのマクロブロック行の固定値に並列復号遅延をセットすることができる。しかしながら、いくつかの最近のビデオコーディング規格は、マクロブロックに依存せず、代わりに、ツリーブロックの階層構造または最大コーディングユニット（ＬＣＵ）もしくはコーディングツリーユニット（ＣＴＵ）を使用する。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード（すなわち、コーディングされたビデオブロック）を備える。したがって、「マクロブロック」を使用する圧縮技法からの「行」の概念は、マクロブロックの代わりにツリーブロックを使用する技法にはうまく当てはまらないことがある。
【００２７】
[0034]実際、そのような階層構造を利用するビデオコーディング規格には、マクロブロック行からブロック行への単純な拡張がないことがある。言い換えれば、ツリーブロック階層構造を使用するビデオコーディング技法には、２つのマクロブロック行の並列復号遅延の単純な方法がないことがある。
【００２８】
[0035]動きベクトル制限をいくつかのマクロブロック行に固定することの限界を克服するために、いくつかの技法は、たとえば、ＬＣＵ行のユニットにおける動きベクトル制限をシグナリングする。しかしながら、ビデオデコーダは、並列復号をいつ開始すべきか（たとえば、並列復号遅延）を決定するためにビデオデコーダが利用することができる値にＬＣＵ行のユニットを変換する必要が依然としてあり得る。
【００２９】
[0036]一例として、ビデオデコーダは、ＬＣＵサイズに基づいて、並列復号をいつ開始すべきかを決定するためにビデオデコーダが利用することができる値にＬＣＵ行を変換する必要があり得る。しかしながら、あらゆるビデオデコーダが、並列復号のためにビデオデコーダが利用することができる値にＬＣＵ行を変換し得る統一的方法がないことがあり、結果的に、異なるビデオデコーダが異なる量の並列復号遅延を決定することになり得る。異なるビデオデコーダが異なる量の並列復号遅延を決定することは、復号の非効率、および場合によっては復号エラーをもたらし得る。
【００３０】
[0037]いくつかの例では、本開示で説明する技法は、コーディングユニットサイズで並列復号遅延をシグナリングし得る。この形では、あらゆるビデオデコーダが並列復号遅延を決定することが可能であり得る一貫した方法があり得る。たとえば、ビデオデコーダは、並列復号がいつ開始できるかを決定するために利用され得る値に受信済み並列復号遅延情報をさらに変換する必要がないことがある。
【００３１】
[0038]図１は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００３２】
[0039]宛先デバイス１４は、リンク１６を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備えることができる。一例では、リンク１６は、ソースデバイス１２が、符号化されたビデオデータをリアルタイムに宛先デバイス１４に直接送信できるようにする通信媒体を備えることができる。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を支援するために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３３】
[0040]代替的に、符号化されたデータは、出力インターフェース２２からストレージデバイス３４に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス３４からアクセスされ得る。ストレージデバイス３４は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス３４は、ソースデバイス１２によって生成された符号化されたビデオを保持できるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス３４から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適しているワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含むことができる。ストレージデバイス３４からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３４】
[0041]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３５】
[0042]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００３６】
[0043]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化されたビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３４上に記憶され得る。
【００３７】
[0044]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して、符号化されたビデオデータを受信する。リンク１６を介して通信され、またはストレージデバイス３４上に提供された符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ３０などのビデオデコーダが使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信され記憶媒体上に記憶される符号化されたビデオデータとともに含まれ得、またはファイルサーバを記憶した。本開示では、ビットストリーム中の「情報」という用語は、シンタックス要素を含むビットストリーム中の任意の情報を一般的に指すために使用される。
【００３８】
[0045]ディスプレイデバイス３２は、宛先デバイス１４と一体化されること、またはその外部に存在することがある。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３９】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格などのビデオ圧縮規格、またはそのような規格の拡張に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）規格などの他のプロプライエタリ規格または業界規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４０】
[0047]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４１】
[0048]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。
【００４２】
[0049]ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されてよい。一例として、デバイスはビデオデコーダ３０を含むことができ、デバイスの一例は集積回路（ＩＣ）であり、デバイスの別の例はマイクロプロセッサである。別の例として、デバイスはビデオデコーダ３０を含むことができ、デバイスの一例はワイヤレス通信デバイスである。ビデオエンコーダ２０は同様に、ＩＣ、マイクロプロセッサで、またはワイヤレス通信デバイスで形成され得る。
【００４３】
[0050]ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発された新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）がある。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００４４】
[0051]これ以降ＨＥＶＣ  ＷＤ９と呼ばれる、ＨＥＶＣの最新のワーキングドラフト（ＷＤ）が、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１１＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴＶＣ−Ｋ１００３−ｖ１３．ｚｉｐから入手可能である。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０」または「ＷＤ１０」と呼ばれるＨＥＶＣ規格の別の最近のドラフトは、文書ＪＣＴＶＣ−Ｌ１００３ｖ３４、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  （ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  １０  （ｆｏｒ  ＦＤＩＳ  ＆  Ｌａｓｔ Ｃａｌｌ）」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４〜２３日に記載されており、この文書は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ３４．ｚｉｐからダウンロード可能である。ＨＥＶＣ規格のさらに別のドラフトは、本明細書で「ＷＤ１０改訂」と呼ばれ、Ｂｒｏｓｓら、「Ｅｄｉｔｏｒｓ’  ｐｒｏｐｏｓｅｄ  ｃｏｒｒｅｃｔｉｏｎｓ  ｔｏ  ＨＥＶＣ  ｖｅｒｓｉｏｎ  １」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１３回会合、仁川、韓国、２０１３年４月に記載されており、この文書は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１３＿Ｉｎｃｈｅｏｎ／ｗｇ１１／ＪＣＴＶＣ−Ｍ０４３２−ｖ３．ｚｉｐから入手可能である。ＨＥＶＣ  ＷＤ９、ＷＤ１０、およびＷＤ１０改訂の内容全体が参照により本明細書に組み込まれる。
【００４５】
[0052]概して、ＨＭのワーキングモデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載している。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード（すなわち、コーディングされたビデオブロック）を備える。コーディングされたビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００４６】
[0053]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が正方形または非正方形であり得る。
【００４７】
[0054]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、通常、ＰＵと同じサイズであるか、またはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
【００４８】
[0055]一般に、ＰＵは、予測プロセスに関係するデータを含む。たとえば、ＰＵがイントラモード符号化（イントラ予測）されるとき、ＰＵは、ＰＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化（インター予測）されるとき、ＰＵは、ＰＵについての動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０（Ｌ０）もしくはリスト１（Ｌ１））を記述し得る。リスト０およびリスト１は、それぞれＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１と呼ばれることがある。
【００４９】
[0056]概して、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）を含む場合もある。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示は、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノードとＰＵとＴＵとを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指すために「ビデオブロック」という用語を使用する場合もある。
【００５０】
[0057]たとえば、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングでは、（ピクチャとも呼ばれる）ビデオフレームがコーディングユニット（ＣＵ）と予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とに区分され得る。ＣＵは、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。ＣＵは、一般に正方形の形状を有し、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆる「マクロブロック」と同様であると見なされ得る。
【００５１】
[0058]より良いコーディング効率を達成するために、ＣＵは、それが含んでいるビデオデータに応じて可変サイズを有し得る。すなわち、ＣＵは、より小さいブロックまたはサブＣＵに区分または「分割」され得、その各々はＣＵと呼ばれることもある。さらに、サブＣＵに分割されない各ＣＵは、それぞれ、ＣＵの予測および変換のために１つまたは複数のＰＵとＴＵとにさらに区分され得る。
【００５２】
[0059]ＰＵは、Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるブロックのパーティションと同様であると見なされ得る。ＰＵは、「残差」係数を生成するためにブロックについての予測が実行されるベースである。ＣＵの残差係数は、ＣＵのビデオデータと、ＣＵの１つまたは複数のＰＵを使用して決定されたＣＵについての予測データとの間の差を表す。詳細には、１つまたは複数のＰＵは、ＣＵが予測のためにどのように区分されるかを指定し、ＣＵの各パーティション内に含まれているビデオデータを予測するためにどの予測モードが使用されるかを指定する。
【００５３】
[0060]ＣＵの１つまたは複数のＴＵは、ＣＵのための残差変換係数のブロックを生成するために、ブロックにどの変換が適用されるかに基づいて、ＣＵの残差係数のブロックのパーティションを指定する。１つまたは複数のＴＵはまた、適用される変換のタイプに関連し得る。変換は、残差係数をピクセル領域または空間領域から周波数領域などの変換領域に変換する。さらに、１つまたは複数のＴＵは、量子化残差変換係数のブロックを生成するために残差変換係数の得られたブロックにどの量子化が適用されるかに基づいてパラメータを指定し得る。残差変換係数は、場合によっては、係数を表すために使用されるデータの量を低減するために量子化され得る。
【００５４】
[0061]ＣＵは、一般に、Ｙとして示される１つのルミナンス成分とＵおよびＶとして示される２つのクロミナンス成分とを含む。言い換えれば、サブＣＵにさらに分割されない所与のＣＵは、Ｙ成分とＵ成分とＶ成分とを含み得、その各々は、前に説明したように、ＣＵの予測および変換のために１つまたは複数のＰＵとＴＵとにさらに区分され得る。たとえば、ビデオサンプリングフォーマットに応じて、サンプルの数で表されるＵ成分およびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。したがって、予測、変換、および量子化に関して上記で説明した技法は、所与のＣＵのＹ成分、Ｕ成分およびＶ成分の各々について実行され得る。
【００５５】
[0062]ＣＵを符号化するために、ＣＵの１つまたは複数のＰＵに基づいて、ＣＵのための１つまたは複数の予測子が最初に導出される。予測子は、ＣＵについての予測データを含んでいる参照ブロックであり、前に説明したように、ＣＵのための対応するＰＵに基づいて導出される。たとえば、ＰＵは、予測データが決定される際の対象となるＣＵのパーティションと、予測データを決定するために使用される予測モードとを示す。予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）モードまたはインター（ＰまたはＢ）予測（すなわち、時間的予測）モードのいずれかを通して導出され得る。したがって、いくつかのＣＵは、同じフレーム中の隣接参照ブロックまたはＣＵに対する空間的予測を使用してイントラコーディング（Ｉ）され得るが、他のＣＵは、他のフレーム中の参照ブロックまたはＣＵに対してインターコーディング（ＰまたはＢ）され得る。
【００５６】
[0063]ＣＵの１つまたは複数のＰＵに基づいて１つまたは複数の予測子を識別するときに、１つまたは複数のＰＵに対応するＣＵの元のビデオデータと１つまたは複数の予測子中に含まれているＣＵについての予測データとの間の差が計算される。予測残差とも呼ばれるこの差は、残差係数を備え、前に説明したように、１つまたは複数のＰＵと１つまたは複数の予測子とによって指定されたＣＵの部分間のピクセル差分を指す。残差係数は、概して、１つまたは複数のＰＵｏＣＵに対応する２次元（２Ｄ）アレイに構成される。
【００５７】
[0064]さらなる圧縮を達成するために、予測残差は、概して、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネンレーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または別の変換を使用して変換される。変換は、同じく前に説明したように、空間領域中の予測残差、すなわち、残差係数を変換領域、たとえば、周波数領域中の残差変換係数に変換する。変換係数はまた、概して、ＣＵの１つまたは複数のＴＵに対応する２Ｄアレイに構成される。さらなる圧縮のために、残差変換係数は、同じく前に説明したように、場合によっては、係数を表すために使用されるデータの量を低減するために量子化され得る。
【００５８】
[0065]またさらなる圧縮を達成するために、エントロピーコーダは、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：Context Adaptive Variable Length Coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率間隔区分エントロピーコーディング（ＰＩＰＥ：Probability Interval Partitioning Entropy Coding）、または別のエントロピーコーディング方法を使用して、得られた残差変換係数を後で符号化する。エントロピーコーディングは、他のＣＵと比較して、係数によって表される、ＣＵのビデオデータに固有の統計的冗長性を低減または除去することによって、このさらなる圧縮を達成し得る。
【００５９】
[0066]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００６０】
[0067]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００６１】
[0068]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般的に、１６×１６ブロックは、垂直方向に１６個のピクセルを有し（ｙ＝１６）、水平方向に１６個のピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ個のピクセルを有し、水平方向にＮ個のピクセルを有し、ここでＮは非負整数値を表す。ブロック中のピクセルは行と列とに構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、この場合に、Ｍは必ずしもＮに等しいとは限らない。
【００６２】
[0069]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵ用の変換係数を生成するために、ＴＵを変換することができる。
【００６３】
[0070]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実施し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられてよく、ここでｎはｍよりも大きい。
【００６４】
[0071]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化されたビデオデータ（たとえば、符号化されたビデオデータに関連する情報）に関連するシンタックス要素をエントロピー符号化し得る。
【００６５】
[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]たとえば、「インター予測」という用語は、現在のピクチャ中のブロックが参照ピクチャ中のブロック（たとえば、参照ピクチャ中の予測ブロック）に基づいて予測される場合を指す。現在のピクチャ中のブロックについての動きベクトルは、参照ピクチャ中のブロックを指す。マルチビュービデオコーディングでは、参照ピクチャは、現在のピクチャと同じビュー中にあるピクチャまたは別のビュー中にあるピクチャであり得る。参照ピクチャが別のビュー中にある場合、参照ピクチャと現在のピクチャとは同じアクセスユニット中にある。たとえば、前述のように、アクセスユニットは、同じ時間インスタンスについての異なるビューのピクチャを含み、別のビュー中の参照ピクチャは、現在のピクチャと同じアクセスユニット中にあることが必要とされ得る。
【００９４】
[0101]参照ピクチャが現在のピクチャとは別のビュー中にあるとき、他のビュー中の参照ピクチャを指す動きベクトルは、視差動きベクトルと呼ばれる。また、参照ピクチャが現在のピクチャとは別のビュー中にあるとき、現在のピクチャ中のブロックは、ビュー間予測されると呼ばれ得る。言い換えれば、ビュー間予測では、現在のピクチャ中のブロックが、現在のピクチャを含むビュー以外のビュー中にある参照ピクチャ中のブロックを指す視差動きベクトルによりビュー間予測される。
【００９５】
[0102]インター予測（すなわち、ビュー間予測または同じビュー中のピクチャによるインター予測）を実行するために、ビデオエンコーダ２０およびビデオデコーダ３０は、１つまたは２つの参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１と呼ばれる）を構成することができる。ビデオエンコーダ２０およびビデオデコーダ３０は、参照ピクチャリスト中で識別されたピクチャをインター予測目的に利用することができる。本開示で説明する技法では、ビュー間参照ピクチャ（すなわち、符号化または復号されている現在のピクチャのビュー以外のビュー中にある参照ピクチャ）が、参照ピクチャリスト内の任意のロケーションに挿入され得る。ビデオエンコーダ２０およびビデオデコーダ３０が参照ピクチャリストを構成した（すなわち、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１とを構成した）後、参照ピクチャリストへの参照インデックスが、参照ピクチャリスト中に含まれる任意の参照ピクチャを識別することができる。
【００９６】
[0103]たとえば、双予測ピクチャ（Ｂピクチャ）の場合、ビデオエンコーダ２０は、双予測ピクチャを符号化するために使用された参照ピクチャを識別するＲｅｆＰｉｃＬｉｓｔ０へのインデックスとＲｅｆＰｉｃＬｉｓｔ１へのインデックスとをシグナリングすることができる。ビデオデコーダ３０は、現在のピクチャを復号する（たとえば、再構成する）ために必要とした参照ピクチャ（ＲｅｆＰｉｃＬｉｓｔ０からの１つおよびＲｅｆＰｉｃＬｉｓｔ１からの１つ）を決定するためにインデックスを利用することができる。単方向予測ピクチャ（Ｐピクチャ）の場合、ビデオエンコーダ２０は、単方向予測ピクチャを符号化するために使用された参照ピクチャを識別するＲｅｆＰｉｃＬｉｓｔ０もしくはＲｅｆＰｉｃＬｉｓｔ１のうちの１つへのインデックス、またはＲｅｆＰｉｃＬｉｓｔ０へのインデックスのみ（その場合、ビデオデコーダ３０はＲｅｆＰｉｃＬｉｓｔ１を再構成することはない）をシグナリングすることができる。ビデオデコーダ３０は、現在のピクチャを復号する（たとえば、再構成する）ために必要とされる参照ピクチャを決定するためにインデックスを利用することができる。
【００９７】
[0104]一般に、Ｂピクチャ（双予測ピクチャ）の第１または第２の参照ピクチャリストについての参照ピクチャリスト構成は、２つのステップ、すなわち参照ピクチャリスト初期化と、参照ピクチャリスト並べ替え（修正）とを含む。参照ピクチャリスト初期化は、参照ピクチャメモリ（復号ピクチャバッファ（ＤＰＢ）としても知られる）中の参照ピクチャを、ＰＯＣ（ピクチャの表示順で整列されるピクチャ順序カウント）値の順序に基づいてリストに入れる明示的機構である。参照ピクチャリスト並べ替え機構は、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置を任意の新しい位置に修正すること、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化リストに属さなくても、任意の位置に入れることができる。参照ピクチャリスト並べ替え（修正）後のいくつかのピクチャは、リスト中のはるかに離れた位置に入れられる場合がある。ただし、ピクチャの位置が、リストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリとは見なされない。アクティブ参照ピクチャの数は、各リスト用のスライスヘッダに入れてシグナリングされ得る。
【００９８】
[0105]図４は、２つのビューのための並列コーディングプロセスの一例を示すフロー図である。図４は、補足エンハンスメント情報（ＳＥＩ）の並列コーディング（たとえば、復号）情報を示す。Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、並列復号をサポートするＳＥＩメッセージがある。ビューコンポーネントごとに、１つのマクロブロックを復号するとき、現在のビューと参照ビューとの２つの間に少なくとも２つのマクロブロック（ＭＢ）行遅延があることが考慮される。追加ＭＢ行のユニットにおける追加遅延が、各ビューおよびそれの参照ビューの各々についてＳＥＩメッセージでシグナリングされる。このＳＥＩメッセージの使用の一例が図４に示されている。
【００９９】
[0106]図４は、第２のビュー（ビュー１）のピクチャ４２の復号と並列な第１のビュー（ビュー０）のピクチャ４０の復号を示す。この例では、ピクチャ４０は、ピクチャ４２に対する参照ピクチャである（すなわち、ピクチャ４０のブロックは、ピクチャ４２のブロックをインター予測、特にビュー間予測するために使用される）。また、図４は、ピクチャ４０がプロセッサＰ０によって復号されていることと、ピクチャ４２がプロセッサＰ１によって復号されていることとを示す。プロセッサＰ０およびＰ１への言及は、ピクチャ４０とピクチャ４２とを復号するために実行した処理アルゴリズムを示すことである。プロセッサＰ０およびＰ１は、ビデオデコーダ３０の一部であり得る。言い換えれば、図４は、ピクチャ４０とピクチャ４２とを並列に復号するビデオデコーダ３０の一例を示している。
【０１００】
[0107]時間４４において、ビデオデコーダ３０は、復号プロセスを開始するが、ピクチャ４２については、ビデオデコーダ３０がピクチャ４２の第１の行の復号を開始する前に遅延がある。たとえば、図４では、並列復号遅延は、マクロブロックの２行である。前述のように、いくつかの技法は、少なくとも、２行の復号遅延を必要とし得る。ビデオエンコーダ２０は、ＳＥＩメッセージ中で正確な復号遅延をビデオデコーダ３０にシグナリングすることができる。
【０１０１】
[0108]時間４６において、ビデオデコーダ３０は、ピクチャ４０のマクロブロックの第１の行を再構成するために、ピクチャ４０のマクロブロックの第１の行を復号する。時間４８において、ビデオデコーダ３０は、ピクチャ４０のマクロブロックの再構成された第１の行を、ビデオデコーダ３０の復号ピクチャバッファ（ＤＰＢ）に記憶する。時間５０において、ビデオデコーダ３０は、ピクチャ４０のマクロブロックの第２の行を再構成するために、第２の行を復号する。時間５２において、ビデオデコーダ３０は、ピクチャ４０のマクロブロックの再構成された第２の行を、ビデオデコーダ３０のＤＰＢに記憶する。また、時間５２において、ビデオデコーダ３０は、ピクチャ４２の並列復号が開始できることを決定する。たとえば、第１の処理アルゴリズム（プロセッサＰ０）は、第２の処理アルゴリズム（プロセッサＰ１）に、（たとえば、プロセッサＰ１に制御信号「ビュー１通知」を送ることによって）ピクチャ４２の並列復号が開始できることを通知する。
【０１０２】
[0109]時間５４において、ビデオデコーダ３０は、ピクチャ４０の第３の行を再構成するために、ピクチャ４０の第３の行を復号し、並列に（たとえば、同時に）、ピクチャ４２の第１の行を再構成するために、ピクチャ４２の第１の行を復号する。時間５６において、ビデオデコーダ３０は、ピクチャ４０の再構成された第３の行をＤＰＢに記憶する。図示されていないが、ビデオデコーダ３０は、ピクチャ４２の再構成された第１の行をＤＰＢに記憶することもできる。
【０１０３】
[0110]また、時間５６において、プロセッサＰ０はプロセッサＰ１に、ピクチャ４２の次の行の復号が開始できることを通知する。時間５８において、ビデオデコーダ３０は、ピクチャ４０の第４の行を再構成するために、ピクチャ４０の第４の行を復号し、並列に（たとえば、同時に）、ピクチャ４２の第２の行を再構成するために、ピクチャ４２の第２の行を復号する。ビデオデコーダ３０は、ピクチャ４０とピクチャ４２とを再構成するために、これらのステップを繰り返す。このようにして、ビデオデコーダ３０は、ビューからの１つのピクチャ（たとえば、ビュー０のピクチャ４０）が別のビューからの別のピクチャ（たとえば、ビュー１のピクチャ４２）のための参照ピクチャである、異なるビューからの２つのピクチャの並列復号を実施することができる。
【０１０４】
[0111]いくつかの例では、動きベクトル制限は並列復号を促進する。図４に示す例では、ピクチャ４２中のブロックについての動きベクトルは、ピクチャ４２中のブロックについての動きベクトルのｙ成分が１行の距離よりも大きくなり得ないように制限され得る。一例として、図４では、ビデオデコーダ３０は、ピクチャ４０の第３の行の復号と並列にピクチャ４２の第１の行の復号を開始する（すなわち、ビデオデコーダ３０は、ピクチャ４２の第１の行を復号する前にピクチャ４０の２行が再構成されるまで待機しなければならない）。この例では、ピクチャ４２の第１の行中のブロックについての動きベクトルが、ピクチャ４０の第２の行の後にあるブロックを指している場合、ビデオデコーダ３０がピクチャ４０のその行をまだ復号していないことがあるので、復号エラーがあり得る。動きベクトル制限がある場合、ビデオエンコーダ２０は、ブロックのｙ成分が１行の距離よりも大きいピクチャ４２のブロックについての動きベクトル値をビデオデコーダ３０にシグナリングすることはない。
【０１０５】
[0112]図４に示す例では、動きベクトル制限はピクチャ４２についての動きベクトルのｙ成分についての１行であり得る。このようにして、ビデオデコーダ３０がピクチャ４０の第２の行を再構成した後、ビデオデコーダ３０は、ピクチャ４２中のブロックが、垂直距離がブロックから１行を超える参照ピクチャ中の任意のブロックを指さないので、ピクチャ４２の復号を開始することが可能であり得る。したがって、動きベクトル制限は、並列復号遅延を示すものと見なされ得る。以下でより詳細に説明するように、いくつかの例では、ビデオデコーダ３０によって実行されるフィルタ処理に基づいて、ビデオデコーダ３０は、現在のピクチャ（たとえば、ピクチャ４２）の再構成を開始する前に、参照ピクチャ（たとえば、ピクチャ４０）の追加の行を再構成する必要があり得る。
【０１０６】
[0113]図４の上記の例では、ビデオエンコーダ２０およびビデオデコーダ３０は、Ｈ．２６４／ＡＶＣのＭＶＣ拡張に従って機能し得る。しかしながら、動きベクトル制限および並列復号遅延に関係する技法が、ＨＥＶＣベースのビデオコーディング技法に拡張されるとき、いくつかの問題があり得る。たとえば、異なるビューに参照ピクチャがあるときに動きベクトル制限を実施することに伴ういくつかの問題があることがあり、ＨＥＶＣコーディング構造により並列復号遅延を示すための技法を利用することに伴ういくつかの問題があり得る。さらに、上記の例はマルチビュービデオコーディングについて説明されているが、本開示で説明する技法は、ＨＥＶＣのスケーラブル拡張（たとえば、ＳＨＶＣ）を含むスケーラブルビデオコーディングにも拡張され得る。
【０１０７】
[0114]スケーラブルビデオコーディング（ＳＶＣ）では、多重レイヤがあり得る。最下位レベルにあるレイヤはベースレイヤ（ＢＬ）としてのみ働き、最上位レベルにあるレイヤはエンハンスメントレイヤ（ＥＬ）としてのみ働き得る。中間にあるすべてのレイヤは、ＥＬとＢＬの両方として働き得る。たとえば、中間にあるレイヤは、それの下のレイヤのためのＥＬであり、同時にそれの上のレイヤのためのＢＬとしてのものであり得る。説明を簡単にするために、本開示は、現在の技法を示す際に、ＢＬおよびＥＬという２つのレイヤがあることを仮定する。本開示で説明する技法は多重レイヤを伴う場合にも適用可能であることに留意されたい。
【０１０８】
[0115]たとえば、上記の例は、従属ビューからのピクチャの現在のブロックが別のビュー（たとえば、ベースビュー）中の参照ピクチャによりインター予測されるビュー間予測の概念について説明した。いくつかの例では、レイヤ間予測において、エンハンスメントレイヤからのピクチャの現在のブロックが、別のレイヤ（たとえば、ベースレイヤ）中の参照ピクチャによりインター予測される。本開示で説明する技法では、動きベクトル制限および並列復号がスケーラブルビデオコーディング技法にも利用され得る。たとえば、レイヤ間ピクチャ（たとえば、ベースレイヤピクチャ）を指すエンハンスメントレイヤピクチャのブロックについての動きベクトル制限があり得る。また、２つのレイヤを並列復号する場合で、図４に関して上述した方法と同様の方法でインター予測目的（たとえば、レイヤ間予測目的）のために一方のレイヤが他方のレイヤを使用することが考えられ得る。
【０１０９】
[0116]前述のように、マルチビュービデオコーディングの場合、異なるＨＥＶＣベースのマルチビュービデオコーディング拡張に関する進行中の議論がある。１つの例は、ＨＥＶＣの３ＤＶ拡張であり、別の例は、ＨＥＶＣのＭＶ拡張である。たとえば、ＭＰＥＧは、ＨＥＶＣに基づいて３ＤＶおよびＭＶの規格を開発しており、３ＤＶおよびＭＶの規格に対して、規格化の取り組みの一部は、ＨＥＶＣに基づくマルチビュービデオコーデックの規格化も含む。ＨＥＶＣベースの３ＤＶおよびＭＶでは、異なるビューからの再構成されたビューコンポーネントに基づくビュー間予測が有効にされる。
【０１１０】
[0117]ＨＥＶＣベースの３ＤＶとＨＥＶＣベースのＭＶとの間の差異の１つは、ハイレベルシンタックスのみ（ＨＬＳのみ）という要件である。たとえば、ＡＶＣでは、マルチビュー拡張が、拡張が「ＨＬＳのみ」という要件を実際に満たすように行われた。「ＨＬＳのみ」という要件は、ＡＶＣ中のマクロブロックレベルにおけるモジュールが再設計される必要がなく、マルチビュービデオコーディング（ＭＶＣ）に完全に再使用され得ないように、ＭＶＣにおいてハイレベルシンタックス（ＨＬＳ）の変更しか存在しないことを保証する。
【０１１１】
[0118]このＨＬＳのみ要件は、ＭＶ−ＨＥＶＣに拡張されるが、３ＤＶ−ＨＥＶＣには拡張されない。たとえば、ＭＶ−ＨＥＶＣ規格の１つの要件は、ＭＶ−ＨＥＶＣがＨＥＶＣ規格に対して、ＨＬＳのみ要件を満たすことであり得る。３ＤＶ−ＨＥＶＣ規格は、ＨＬＳのみ変更を必要としないことがある。３ＤＶ−ＨＥＶＣはＨＬＳのみ変更を必要としないが、ＨＥＶＣ規格に対してＨＬＳのみ変更が行われた場合、結果は、３ＤＶ−ＨＥＶＣに依然として準拠し得る。言い換えれば、「ＨＬＳのみ」という要件は、ＨＥＶＣのＭＶＣ／３ＤＶ拡張に対して、また、マルチループ復号が受け入れ可能であると考えられる場合には、ＨＥＶＣのスケーラブルビデオコーディング（ＳＶＣ）拡張（ＳＨＶＣ）に対しても満たされ得ることが可能である。
【０１１２】
[0119]ビュー間予測を可能にするために、最低限の、および場合によっては、必ずしも必要ではないが、ＨＬＳの変更が、以下のピクチャ識別目的のためのものであり、ここで参照ピクチャリストの構成および標識は、特定のビュー中のピクチャを識別することが可能である必要がある。たとえば、マルチビュービデオコーディングの場合、参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１）の一方または両方は、ビュー間ピクチャ（すなわち、符号化または復号されているピクチャと同じビュー中にないピクチャ）またはレイヤ間ピクチャ（すなわち、符号化または復号されているピクチャと同じレイヤ中にないピクチャ）を含み得る。
【０１１３】
[0120]ＨＬＳの変更が、Ｈ．２６４／ＭＶＣにおける「ＨＬＳのみ」という要件を満たすには十分ではない場合、ローレベルコーディングモジュールが、ＨＥＶＣのローレベルコーディングモジュールの構成目的とされていない機能を実施する必要がある（たとえば、無動きに関するスケーリングを処理する）状況に決して遭遇することがないように、他の制約、仮定が行われる。そのような制約、修正、および仮定は以下の通りである。（１）コロケートされたピクチャがビュー間（のみ）参照ピクチャである場合、時間的ダイレクトモードを無効にする、（２）ビュー間（のみ）参照ピクチャを、短期の、空間的ダイレクト関連ではないものと見なし、暗黙的重み付け予測を無効にする。
【０１１４】
[0121]ＨＬＳのみＨＥＶＣ拡張の１つの例は、ＭＶ−ＨＥＶＣであり、ＭＶ−ＨＥＶＣの最新のワーキングドラフトは、ＪＣＴ３Ｖ−Ｂ１００４、「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ２」、Ｇ．Ｔｅｃｈ、Ｋ．Ｗｅｇｎｅｒ、Ｙ．Ｃｈｅｎ、Ｍ．Ｈａｎｎｕｋｓｅｌａであり、これはｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／２＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴ３Ｖ−Ｂ１００４−ｖ１．ｚｉｐで入手可能であり、その内容全体が参照により本明細書に組み込まれる。
【０１１５】
[0122]本開示は、Ｎａｋａｇａｍｉらによる「ＭＶ−ＨＥＶＣ：Ｖｅｒｔｉｃａｌ  ｌｅｎｇｔｈ  ｒｅｓｔｒｉｃｔｉｏｎ  ｏｆ  ｉｎｔｅｒ−ｖｉｅｗ  ｖｅｃｔｏｒ  ｆｏｒ  ＨＥＶＣ  ｓｉｍｐｌｅ  ３Ｄ  ｅｘｔｅｎｓｉｏｎ」と題するＪＣＴ３Ｖ−Ｂ００３７も参照し、これはｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝２２５から入手可能であり、その内容全体が参照により組み込まれる。ＪＣＴ３Ｖ−Ｂ００３７では、メモリ帯域幅要件を緩和し、デコーダをより並列に使いやすくするために、ＭＶ−ＨＥＶＣにおける動きベクトルのポインティングを、垂直方向のベースビュー参照フレームに制限することが示唆されている。この制限は、次のようなＳＰＳにおいてシグナリングされるフラグによって示されることが示唆されている。
【０１１６】
（ｐｒｏｆｉｌｅ＿ｉｄｃ＝＝「マルチビューサポートプロファイル」）の場合
【数１】
0006416115.tif 000002
【０１１７】
[0123]動きベクトル制限は並列復号に関して上述されているが、動きベクトル制限は、他の追加の、独立した理由により有用であり得る。言い換えれば、いくつかの例では、ビデオデコーダ３０が並列復号を実施するように構成されない場合でも、動きベクトル制限は有用であるか、または望ましいことがある。
【０１１８】
[0124]一例として、動きベクトル制限は、メモリ帯域幅の低減（たとえば、メモリアクセスおよび／またはアクセスされる必要のあるデータの量を低減すること）に有用であり得る。たとえば、動きベクトル制限がある場合、現在のピクチャを符号化または復号するために、ビデオエンコーダ２０またはビデオデコーダ３０が参照ピクチャからアクセスする必要があるデータの量は低減され得る。メモリ帯域幅は、予測ピクセルごとの参照ピクチャからのアクセスされるピクセルの数に基づいて推定され得る。たとえば、参照ピクチャ中でアクセスされるピクセルの数の低減により、メモリ帯域幅はより低くなる。多くの使用事例では、メモリ帯域幅はボトルネックと見なされることがあり、最悪ケースに備えたメモリ帯域幅の低減は有利と見なされ得る。たとえば、本技法は、他の技法と比べて、メモリアクセスを単純化、低減、または除去することができる。
【０１１９】
[0125]たとえば、別のビュー中のピクチャを指す動きベクトルの垂直成分が制約されるとき、参照ビューピクチャのピクセルにアクセスすることによって必要とされるメモリ帯域幅は低減され得る。一例として、垂直成分（すなわち、動きベクトルのｙ成分）がより小さい値に制限される場合、補間目的のためにブロックの外の垂直方向における任意のピクセルにアクセスする必要はないことがある。
【０１２０】
[0126]たとえば、ブロックについての動きベクトルは、参照ピクチャ中の整数ピクセルを指さず、代わりに、サブ整数ピクセル（ペルと呼ばれる）を指すことがある。ビデオエンコーダ２０およびビデオデコーダ３０は、これらのサブ整数ピクセルまたはペルを、参照ピクチャ中の隣接整数ピクセルのピクセル値を補間することによって生成する。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、サブ整数ピクセルを補間するためにＤＰＢから、動きベクトルによって指されるブロックの外に及ぶピクセルについてのピクセル値を含む、参照ピクチャについてのピクセル値にアクセスする。動きベクトル制限がある場合、ビデオエンコーダ２０およびビデオデコーダ３０は、補間のために動きベクトルが制限されるエリアの外に存在するピクセルについてのピクセル値にアクセスする必要はないことがあり、このことは、ビデオエンコーダ２０およびビデオデコーダ３０がそれぞれのＤＰＢから取り出す必要があるデータの量を低減し、それによりメモリ帯域幅低減を促進する。
【０１２１】
[0127]それでも、動きベクトルが動きベクトル制限に違反しないことを確実にするために、追加の態様が考慮される必要があり得る。たとえば、ビデオエンコーダ２０は、ビデオデコーダ３０がブロックについての動きベクトルを決定するために使用するブロックについての動きベクトルのｘ成分およびｙ成分をシグナリングしないことがある。代わりに、ビデオエンコーダ２０は、ビデオデコーダ３０が動きベクトルを導出するために使用する情報をシグナリングすることがある。
【０１２２】
[0128]たとえば、ビデオデコーダ３０は、マージ／スキップモードおよび高度動きベクトル予測（ＡＭＶＰ）モードの一部として、動きベクトル予測子に基づいて、現在のブロックについての動きベクトルを導出することができる。マージ／スキップモードおよびＡＭＶＰモードでは、ビデオエンコーダ２０は、現在のブロックについての動きベクトルをシグナリングしないことがあるが、代わりに候補動きベクトル予測子のリストへのインデックスをシグナリングし得る。ビデオデコーダ３０は、現在のブロックについての動きベクトルを、候補動きベクトル予測子のリストへのインデックスによって識別された動きベクトル予測子から導出することができる。
【０１２３】
[0129]たとえば、マージ／スキップモードおよびＡＭＶＰモードでは、ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、候補動きベクトル予測子のリストを構成する。ビデオエンコーダ２０およびビデオデコーダ３０は、候補動きベクトル予測子のそれぞれのリストを構成するために、リスト中で識別された候補動きベクトル予測子がビデオエンコーダ２０とビデオデコーダ３０の両方にとって同じになるように、実質的に同様の技法を実施することができる。
【０１２４】
[0130]マージ／スキップモードおよびＡＭＶＰモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、隣接ブロックの動き情報に基づいて候補動きベクトル予測子のリストを構成する。隣接ブロックの例としては、空間的隣接ブロックおよび時間的隣接ブロックがある。空間的隣接ブロックは、現在のブロックに隣接し、現在のブロックと同じピクチャ中にあるブロックを指す。時間的隣接ブロックは、現在のブロックに隣接するが、別のピクチャ中にあるブロックを指す。現在のブロックについての動きベクトル予測子であり得る空間的隣接ブロックについての動きベクトルは、空間的動きベクトル予測子（ＳＭＶＰ）と呼ばれる。現在のブロックについての動きベクトル予測子であり得る時間的隣接ブロックについての動きベクトルは、時間的動きベクトル予測子（ＴＭＶＰ）と呼ばれる。
【０１２５】
[0131]マージ／スキップモードまたはＡＭＶＰモードの両方では、ビデオエンコーダ２０は、ビデオデコーダ３０が受信する候補動きベクトル予測子のリストへのインデックスをシグナリングする。次いでビデオデコーダ３０は、候補動きベクトル予測子のリストへのシグナリングされたインデックスから動き情報（たとえば、参照ピクチャおよび１つまたは複数の動きベクトル）を識別し、識別された動き情報に基づいて、現在のブロックについての動きベクトルを決定する。
【０１２６】
[0132]たとえば、マージ／スキップモードでは、ビデオデコーダ３０は、候補動きベクトル予測子のリストへのインデックスを受信し、シグナリングされたインデックスに基づいて、候補動きベクトル予測子のリストに記憶された動き情報を識別する。ビデオデコーダ３０は、識別された動き情報から参照ピクチャリストと、参照インデックスと、動きベクトルとを決定する。次いでビデオデコーダ３０は、識別された動き情報からの決定された参照ピクチャリストと、参照インデックスと、動きベクトルとを、現在のブロックについての動き情報として採用する。言い換えれば、現在のブロックは、候補動きベクトル予測子のリストへのインデックスによって識別されたブロックの動き情報を継承する。このようにして、ビデオデコーダ３０は、動きベクトル予測子に基づいて現在のブロックについての動きベクトルを導出する（たとえば、ビデオデコーダ３０は、現在のブロックについての動きベクトルを動きベクトル予測子に等しくセットする）。
【０１２７】
[0133]いくつかの例では、マージ／スキップモードにおいて、候補動きベクトル予測子のリストへのインデックスによって識別されたブロックが時間的隣接ブロックを指す場合、ビデオデコーダ３０は、この動きベクトル候補に関連する動き情報を採用することはない。ビデオデコーダ３０は、参照ピクチャリストへの参照インデックスを決定する（たとえば、参照ピクチャリストの一方または両方へのインデックス０を選択する）ために、任意の既知の技法または開発されることになる任意の技法を利用することができる。本開示では、時間的隣接ブロックについての動きベクトルが動きベクトル予測子として使用されるときに、参照ピクチャリストへの参照インデックスとしてデフォルトインデックス（たとえば、インデックス０）が使用されるときなど、参照ピクチャリストに対するいくつかの制約があり得る。
【０１２８】
[0134]このようにして、ビデオデコーダ３０は、マージ／スキップモードにおいて現在のブロックについての動き情報を決定することができる。マージモードでは、ビデオデコーダ３０はまた、現在のブロックと決定された動き情報によって指されるブロックとの間の残差データを受信することができ、ビデオデコーダ３０は、現在のブロックのピクセル値を決定するために、残差データを利用することができる。スキップモードでは、ビデオデコーダ３０は、現在のブロックと決定された動き情報によって指されるブロックとの間の残差データを受信することはない。この例では、ビデオデコーダ３０は、残差データが０であると仮定する（すなわち、現在のブロックのピクセル値を、決定された情報によって指されるブロックのピクセル値に等しくなるようにセットする）ことができる。
【０１２９】
[0135]ＡＭＶＰモードはマージ／スキップモードと同様であり得るが、ビデオデコーダ３０は、候補動きベクトル予測子のリストへのインデックスを受信することに加えて、ビデオエンコーダ２０からの参照ピクチャリストについての参照インデックス値と動きベクトル差分とを受信することもできる。動きベクトル差分（ＭＶＤ）は、候補動きベクトル予測子のリストへのインデックスによって識別されたブロックの動きベクトルと別の動きベクトル（たとえば、ビデオエンコーダ２０によってベストマッチ探索に基づいて発見された動きベクトル）との間の動きベクトルの差であり得る。
【０１３０】
[0136]たとえば、ビデオデコーダ３０は、候補動きベクトル予測子のリストへのインデックスによって識別されたブロックの動きベクトルを決定することができる。ビデオデコーダ３０は、現在のブロックについての動きベクトルを決定するために、候補動きベクトル予測子のリストへのインデックスによって識別されたブロックの動きベクトルの値を、シグナリングされた動きベクトル差分により加算または減算することができる。加えて、ビデオデコーダ３０は、参照ピクチャリストを示すシグナリングされた情報およびその参照ピクチャリストへのシグナリングされたインデックスに基づいて、決定された動きベクトルが指す参照ピクチャを決定することができる。このようにして、ビデオデコーダ３０は、ＡＭＶＰモードにおいて現在のブロックについての動き情報を決定することができる。
【０１３１】
[0137]前述のように、マージ／スキップモードおよびＡＭＶＰモードの場合、ビデオエンコーダ２０およびビデオデコーダ３０は、候補動きベクトル予測子のリストを構成する。以下では、候補動きベクトル予測子のリストを構成する例示的な方法について説明する。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、時間的隣接ブロックの動き情報が候補動きベクトル予測子のリスト中に含まれるべきである場合に、ピクチャ順序カウント（ＰＯＣ）値に基づいて時間的隣接ブロックの動きベクトル情報をスケーリングすることができる。
【０１３２】
[0138]以下では、どの時間的動きベクトル予測子が候補動きベクトル予測子のリスト中に含むべきかをビデオエンコーダ２０およびビデオデコーダ３０が決定し得る方法に関するいくつかの説明を行う。時間的動きベクトル予測子（ＴＭＶＰ）を得るために、ビデオエンコーダ２０およびビデオデコーダ３０は最初に、コロケートされたピクチャを識別することができる。現在のピクチャがＢスライス（たとえば、双予測スライス）である場合、ビデオエンコーダ２０は、コロケートされたピクチャがどの参照ピクチャリストからのものであるか（たとえば、コロケートされたピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものであるか、それともＲｅｆＰｉｃＬｉｓｔ１からのものであるか）を示すために、スライスヘッダ中でｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇをシグナリングすることができる。ビデオデコーダ３０は、コロケートされたピクチャがどの参照ピクチャからのものであるかを、スライスヘッダ中でシグナリングされたｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇに基づいて決定することができる。
【０１３３】
[0139]参照ピクチャリストが識別された後、ビデオエンコーダ２０は、スライスヘッダ中のｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素が、識別された参照ピクチャリスト中のピクチャを識別することになることをシグナリングすることができる。ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素は、ビデオエンコーダ２０がビットストリーム中でシグナリングし得る情報の一例である。ビデオデコーダ３０は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素に基づいて、識別された参照ピクチャリスト中でピクチャを識別することができ、ここでこのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素は、ビデオデコーダ３０が受信するビットストリーム中の情報の一例である。
【０１３４】
[0140]ビデオエンコーダ２０およびビデオデコーダ３０は、コロケートされたピクチャをチェックすることによって、コロケートされた予測ユニット（ＰＵ）を識別することができる。コロケートされたＰＵは、コロケートされた領域の右下ＰＵ（たとえば、ＢＲブロック）、またはいわゆる「中央３」もしくはＣＲブロック（すなわち、コロケートされた領域の中央の右下ＰＵ）のいずれかであり得る。
【０１３５】
[0141]ルーマロケーション（ｘＰ，ｙＰ）が、現在のピクチャの左上ルーマサンプルに対して現在のルーマ予測ブロックの左上サンプルを指定し、変数ｎＰｂＷおよびｎＰｂＨが、それぞれ、ルーマ予測ブロックの幅および高さを指定すると仮定すると、ＢＲブロックおよび中央３またはＣＲブロックは次のように定義され得る。
【０１３６】
−  コロケートされた領域の右下ＰＵ：
【数２】
0006416115.tif 000003
【０１３７】
−  （ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅＹ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅＹ）に等しく、ｘＰＲｂがｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓ未満である場合、以下が当てはまる。
【０１３８】
−  コロケートされたＰＵは、ｃｏｌＰｉｃによって指定されたコロケートされたピクチャ内の（（ｘＰＲｂ＞＞４）＜＜４，（ｙＰＲｂ＞＞４）＜＜４）によって与えられた修正ロケーションをカバーするルーマ予測ブロックを指定する。
【０１３９】
−  中央３：
【数３】
0006416115.tif 000004
【０１４０】
−  変数であるコロケートされたＰＵは、ｃｏｌＰｉｃ内の（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられた修正ロケーションをカバーするルーマ予測ブロックを指定する。
【０１４１】
[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]別の例として、本技法は逆を適用し得る。たとえば、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが真であるべきである場合、動きベクトル制限は有効化されることはない。言い換えれば、ビデオエンコーダ２０は、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが真である場合に、動きベクトル制限が有効化されていることを示す動きベクトル制限フラグをシグナリングすることはなく、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが偽である場合にのみ、動きベクトル制限が有効化されていることを示す動きベクトル制限フラグをシグナリングすることができる。
【０１８０】
[0181]ビデオエンコーダ２０は、以下の方法で、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが偽である場合にのみ、動きベクトル制限が有効化されていることを示すフラグをシグナリングする条件を実装し得る。
【０１８１】
（ｐｒｏｆｉｌｅ＿ｉｄｃ＝「マルチビューサポートプロファイル」＆＆ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇ＝＝偽）の場合
【数４】
0006416115.tif 000005
【０１８２】
[0182]別の例として、単純化された技法は、動きベクトル制限が有効化されているときに、（ＡＭＶＰモードにおける）明示的にシグナリングされる参照インデックスがビュー間またはレイヤ間参照ピクチャを指すことはできないというものであり得る。たとえば、ＡＭＶＰモードでは、ビデオエンコーダ２０は、動きベクトル制限が有効化されているかどうかを決定することができる。動きベクトル制限が有効化されている場合、ビデオエンコーダ２０は、ビュー間またはレイヤ間参照ピクチャを指さない参照ピクチャリストへの参照インデックスを決定することができる。この例では、ビデオエンコーダ２０がビュー間またはレイヤ間参照ピクチャを選択しないことになるので、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇは０に等しくなるように制約されなくてよい。したがって、導出された動きベクトルはビュー間またはレイヤ間参照ピクチャを指さないことになり、ここで動きベクトル制限は適用可能ではないことがある。
【０１８３】
[0183]すぐ上の例示的な技法は、参照インデックスに対して制約的であると見なされ得る。この例では、ビデオエンコーダ２０は、（負の垂直値成分は、参照ビューについてのすでに再構成されたブロックを指し得るので）絶対値または代替的に正の値のみを動きベクトル制限要件と比較することができる。動きベクトルが動きベクトル制限の条件で満たされない場合のみ、ビュー間またはレイヤ間参照ピクチャ（たとえば、ベースビューまたはベースレイヤ）を指す参照インデックスは、使用することが許されない。たとえば、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが１に等しく、参照インデックスがビュー間またはレイヤ間参照ピクチャを指す場合の導出された動きベクトルが動きベクトル制限ルールに適合することが考えられ得る。ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが真である場合でも、導出された動きベクトルが動きベクトル制限ルールに適合する場合には、ビデオエンコーダ２０は、ビュー間またはレイヤ間参照ピクチャを指す参照インデックスを選択することができる。
【０１８４】
[0184]前述のように、マルチビュービデオコーディングの場合、動きベクトル制限の使用は、選択可能であってよく、動きベクトル制限が有効化されていることを示すフラグまたは他のシンタックス要素によりビットストリーム中で示され得る。スケーラブルビデオコーディングの場合、動きベクトル制限は、永続的に有効化されることがあり、いくつかの例では、動きベクトル制限要件は、導出された動きベクトルが０ベクトルである（たとえば、動きベクトルがレイヤ間参照ピクチャを指す場合に、導出された動きベクトルの水平（ｘ）成分および垂直（ｙ）成分が両方とも０に等しい）というものであり得る。
【０１８５】
[0185]上述した例示的なＭＶＤ制御技法は、スケーラブルビデオコーディング技法（たとえば、ＳＨＶＣ）でも使用され得る。たとえば、動きベクトルが制約的である（たとえば、動きベクトル制限が使用されている）場合、ビデオエンコーダ２０は、導出された動きベクトルが制約を満たす（たとえば、ＭＶ＝ＭＶＤ＋ＭＶＰ＝０）ようにＭＶＤによる動きベクトル予測子の補償を可能にするために、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇを０にセットすることができる。言い換えれば、ビデオエンコーダ２０は、動きベクトル制限に違反する導出された動きベクトルをもたらすＭＶＰとＭＶＤとの組合せを回避することができる。
【０１８６】
[0186]別の例として、ビデオエンコーダ２０は、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが有効化されている場合に、導出された動きベクトルに動きベクトル制限に違反させることになる動きベクトル予測子の選択を回避することができる。たとえば、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが有効化されている場合、ビデオエンコーダ２０は、制約（すなわち、動きベクトル制限）を満たすことができる動きベクトル予測子（たとえば、ＡＭＶＰ候補）のみを選択することができる。
【０１８７】
[0187]たとえば、１つの例は、レイヤ間参照ピクチャについて、インター予測を形成するために使用されるＭＶを０に制限することができる。これは、ＡＭＶＰモードの場合にＭＶ＝ＭＶＰ＋ＭＶＤが０であることを意味する。前述のように、ビデオデコーダ３０は、ビデオエンコーダ２０によってシグナリングされ、ビデオデコーダ３０によって受信されたＭＶＰインデックス（すなわち、候補動きベクトル予測子のリストへのインデックス）に基づいてＭＶＰを決定する。参照リストＬ１（すなわち、ＲｅｆＰｉｃＬｉｓｔ１）の場合、参照インデックスがレイヤ間参照ピクチャを指すとき、ＭＶは０に等しくなるべきであるので、有効化されたｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇにより、ビデオエンコーダ２０は、値が０である（すなわち、水平成分および垂直成分が０に等しい）動きベクトル予測子を指す候補動きベクトル予測子のリストへのインデックスのみを選択することができる。このようにして、有効化されているｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇから、ＭＶＤは０に等しいと推測されるので、ＭＶＰが０に等しいので、導出された動きベクトルは０に等しくなる（すなわち、ＭＶ＝ＭＶＰ＋ＭＶＤ、およびＭＶＰ＝０、およびＭＶＤ＝０、したがってＭＶ＝０）。したがって、ビデオエンコーダ２０は、有効化されたｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇと、レイヤ間参照ピクチャについて０に制約されたＭＶとにより、非０のＡＭＶＰ候補（すなわち、ＭＶＰは０に等しくない）を使用するレイヤ間参照ピクチャを指す参照インデックスについて、ＭＶＰインデックス（すなわち、候補動きベクトル予測子のリストへのインデックス）を使用およびシグナリングすることはない。
【０１８８】
[0188]別の例として、ＭＶ制約（すなわち、動きベクトル制限）を使用するレイヤについてｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇが無効化される（０としてシグナリングされる）こともある。また別の例として、ビデオエンコーダ２０は、ビュー間またはレイヤ間（たとえば、ベースビュー／レイヤ）についてのみｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇをシグナリングすることができ、ＭＶ制約のあるエンハンスメントビュー／レイヤについて、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇシグナリングは省略されてよく、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇの値は０であると推測される。
【０１８９】
[0189]別の例として、ビデオエンコーダ２０は、参照ピクチャリストＬ１（ＲｅｆＰｉｃＬｉｓｔ）が少なくとも１つのビュー間／レイヤ間参照ピクチャを含む場合、ＭＶ制約のあるエンハンスメントビュー／レイヤについて、０であるか、または０であると推測されるｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇのみをシグナリングすることができる。また別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、参照ピクチャに従って別様にｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇを扱うことができる。たとえば、参照ピクチャがビュー間／レイヤ間ピクチャである場合、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇに関係なく、ビデオエンコーダ２０は常にＭＶＤ値をシグナリングすることができる。
【０１９０】
[0190]同様の特徴はＭＶＣ拡張にも適用され得る。また、ＭＶは、上記の例において０以外の他の値に対して制約的であってよく、制約は、垂直ＭＶ成分、水平ＭＶ成分、または両方について行われ得る。言い換えれば、動きベクトル制限は、導出された動きベクトルが非０値に制限されることを要求し得る。また、制限は、ｙ成分のみ、ｘ成分のみに適用可能であること、またはｘ成分とｙ成分の両方に適用可能であることがある。さらに、一方の成分の制限は必ずしも、他方の成分の制限に等しくなる必要はない。
【０１９１】
[0191]一般に、いくつかの例では、ビデオエンコーダ２０は、参照ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ１）中のピクチャについての動きベクトル差分が０ではないことをフラグの値（たとえば、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇ）が常に示すことを決定することがあり、フラグの値を出力用に生成することがある。ビデオデコーダ３０の観点から、ビデオデコーダ３０は、参照ピクチャリスト中で参照ピクチャリスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ１）中で識別されたピクチャについての動きベクトル差分が０であるかどうかを示すフラグ値（たとえば、ｍｖｄ＿ｌ１＿ｚｅｒｏ＿ｆｌａｇ）を、受信されたビットストリームから決定し、参照ピクチャリスト中のピクチャについての動きベクトル差分が０ではないことをフラグ値が常に示すことを決定し得る。
【０１９２】
[0192]いくつかの例では、動きベクトル制限では、ビュー間またはレイヤ間参照ピクチャ（たとえば、ベースビューまたはベースレイヤ参照ピクチャ）の配置は、ＴＭＶＰに関して上述したビュー間またはレイヤ間参照ピクチャの配置に加えて、メモリ帯域幅低減に影響を与え得る。たとえば、メモリ帯域幅低減にとって重要なケースは、最悪ケースシナリオであり得る。あるいは、ビデオデコーダ３０にとって、何らかの他の非最悪ケース条件が考慮される場合でも、最悪ケースの実装は依然として考慮される必要があることがあり、さもなければ、実際の単純化またはメモリ帯域幅低減は達成されないことがある。この目的で、動きベクトル制限（たとえば、マルチビュービデオコーディングの場合の視差動きベクトル範囲またはスケーラブルビデオコーディングの場合のレイヤ間動きベクトル範囲）から恩恵を受けるために、動きベクトル制限が適用されるときに、参照ピクチャに対するいくつかの制約があり得る。
【０１９３】
[0193]たとえば、ビュー間予測を使用しないビューの各ビューコンポーネント（すなわち、テクスチャビューコンポーネントまたは深度ビューコンポーネント）についての異なる時間的参照ピクチャの最大数がｍａｘＮｕｍＴｅｍｐＰｉｃｓ０であると仮定し、ビュー間予測によりコーディングされた各ビューコンポーネントについての異なる時間的参照ピクチャの最大数がｍａｘＮｕｍＴｅｍｐＰｉｃｓ１であると仮定する。いくつかの例では、ｍａｘＮｕｍＴｅｍｐＰｉｃｓ０はｍａｘＮｕｍＴｅｍｐＰｉｃｓ１以下となるべきである。
【０１９４】
[0194]そのため、ビュー間またはレイヤ間参照ピクチャ（たとえば、ベースビューまたはベースレイヤ参照ピクチャ）を指す動きベクトルの制限垂直成分による実際のメモリ帯域幅低減を行うためには、そのビュー間またはレイヤ間参照ピクチャは、少なくとも１つの参照リストに存在する必要があり得る。そうではなく、ビュー間またはレイヤ間参照ピクチャが参照ピクチャリストに挿入されていない場合、たとえば、他の時間的参照ピクチャが代わりに使用され得る場合、ビュー間またはレイヤ間参照ピクチャを指す動きベクトルのための動きベクトル制限は、この例では参照リスト中に参照ピクチャとしてすべての時間的ピクチャを有することになる最悪ケースに対処しない。
【０１９５】
[0195]言い換えれば、動きベクトル制限が有効化されている場合、メモリ帯域幅低減などの動きベクトル制限の利益は、ビュー間またはレイヤ間参照ピクチャが参照ピクチャリストのうちの１つ中に含まれている場合にのみ実現可能であり得る。そうでない場合、参照ピクチャリスト中のすべてのピクチャは時間的ピクチャとなり、動きベクトル制限は適用可能ではなくなる。したがって、いくつかの例では、動きベクトル制限が有効化されている場合、ビデオエンコーダ２０およびビデオデコーダ３０は、少なくとも１つのビュー間またはレイヤ間参照ピクチャを参照ピクチャリストのうちの１つ中に含めることを必要とするように構成され得る。
【０１９６】
[0196]参照ピクチャリストに対する１つの例示的な制約として、非ベースビューまたはレイヤ（たとえば、従属ビューまたは従属／エンハンスメントレイヤ）のすべてのビューコンポーネントは、最大で２つの時間的参照ピクチャと１つのビュー間またはレイヤ間参照ピクチャ（たとえば、ベースビューまたはベースレイヤ）とを有する。参照ピクチャリストに対する別の例示的な制約として、非ベースビューまたはレイヤのすべてのビューコンポーネントは、最大で２つの時間的参照ピクチャを有し、（１つのビュー間またはレイヤ間参照ピクチャにより）ビュー間またはレイヤ間予測されるビューコンポーネントもあれば、ビュー間またはレイヤ間予測されないビューコンポーネントもある。
【０１９７】
[0197]前述のように、マルチビューコーディングの場合、動きベクトル制限の使用は選択可能であり得る。いくつかの例では、メモリアクセスを容易にするために、ＬＣＵごとにピクセルメモリが構成されているときは特に、視差動きベクトルが０の垂直成分を有するときに（または有するときにのみ）メモリ帯域幅低減の利益があり得る。視差動きベクトル範囲のシグナリングの単純化のために、いくつかの例では、ビデオエンコーダ２０は、補足エンハンスメント情報（ＳＥＩ）メッセージ、シーケンスパラメータセット、ビデオパラメータセット、またはビデオユーザビリティ情報（ＶＵＩ：video usability information）メッセージ中で、視差動きベクトルのｙ成分が０に制限されることを示すフラグをシグナリングすることができる。
【０１９８】
[0198]以下の擬似コードは、視差動きベクトルのｙ成分が０に制限されることを示すフラグをＳＥＩメッセージ中に含めるための方法を示す。
【表１】
0006416115.tif 000006
【０１９９】
[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]並列復号情報ＳＥＩメッセージシンタックスが以下で証明される。
【表２】
0006416115.tif 000007
【０２２５】
[0225]ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄは、ビュー間またはレイヤ間従属関係情報を含むビデオパラメータセットを指定する。ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄの値は、並列復号情報ＳＥＩメッセージを含むアクセスユニットのコーディングされたピクチャのビューコンポーネントまたはレイヤコンポーネントによって参照されるｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄの値に等しいものとする。
【０２２６】
[0226]ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２およびｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２は、アクティブビデオパラメータセット識別子で指定されるようなビュー間またはレイヤ間予測を使用するコーディングされたビューコンポーネントによってビュー間またはレイヤ間参照に使用されないものとする任意の参照ビューコンポーネントまたはレイヤピクチャ中の利用不可能な参照エリアが、現在のＳＥＩメッセージ中に含まれるシンタックス要素ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄに等しいことを指定する。
【０２２７】
[0227]変数ｈｏｒＣｔｂは次のように導出される。ｈｏｒＣｔｂ＝ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２？ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２＋２＋（ＣｔｂＡｄｄｒＩｎＲＳ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ）：０。
【０２２８】
[0228]変数ｖｅｒＣｔｂは次のように導出される。
【０２２９】
ｖｅｒＣｔｂ＝ＣｔｂＡｄｄｒＩｎＲＳ／ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ＋ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２＋２。
【０２３０】
[0229]ｒｅｆＣｔｂＡｄｄｒのｒｅｆＣｔｂアドレスは次のように導出される。
【０２３１】
ｒｅｆＣｔｂＡｄｄｒ＝Ｍｉｎ（ｈｏｒＣｔｂ，ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ）＋ｖｅｒＣｔｂ＊ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ。
【０２３２】
[0230]利用不可能な参照エリアは、ｒｅｆＣｔｂＡｄｄｒ以上のコーディングツリーブロックアドレスすべてを含む。コーディングされたビューコンポーネントを復号するとき、参照ビューのビューコンポーネントからの利用不可能な参照エリアからのサンプルは、ビュー間またはレイヤ間予測プロセスによって参照されないものとする。
【０２３３】
[0231]ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２の値は、両端値を含む０〜ＰｉｃＨｅｉｇｈｔＩｎＣｔｂｓＹ−２の範囲内とする。ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２の値は、両端値を含む０〜ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ−２の範囲内とする。
【０２３４】
[0232]ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２が０に等しいとき、ｖｅｒＣｔｂ未満の垂直アドレスを有するＬＣＵ行中の任意のＬＣＵ（コーディングツリーブロック）が、ビュー間またはレイヤ間予測に使用され得る。垂直ＬＣＵ行遅延は、２以上であり得る（たとえば、２以上とする）。水平ＬＣＵ列遅延は、適用可能な場合、２以上であり得る（たとえば、２以上とする）。
【０２３５】
[0233]いくつかの例では、各ビューが同じＬＣＵ（コーディングツリーブロック）サイズを有するという制約が必要とされ得る。ビューが異なるＬＣＵサイズを有するとき、最大ＬＣＵサイズが上記導出に適用され得る。そのような最大ＬＣＵサイズは、ビデオパラメータセット拡張でシグナリングされ得る。
【０２３６】
[0234]現在のＬＣＵを復号するとき、水平視差動きベクトルが非常に小さいと仮定すると、ビデオデコーダ３０は、コロケートされたＬＣＵを必要とし得る。しかしながら、コロケートされたＬＣＵを利用可能にするために、コロケートされたＬＣＵの下、右および右下のＬＣＵが、少なくともデブロッキングフィルタ処理される必要があり得る。それを可能にするために、上記ＬＣＵのうちの下および右のＬＣＵが（たとえば、動き補償および／またはイントラ予測によって）予測される必要があり得る。この場合、少なくとも２つのＬＣＵ行遅延および２つのＬＣＵ列遅延が必要とされ得る。言い換えれば、サンプル適応オフセット（ＳＡＯ：Sample Adaptive Offset）フィルタ処理およびデブロッキングフィルタ処理などのループ内フィルタ処理を可能にするために、ビデオデコーダ３０は、現在のピクチャの並列復号を開始する前に、ビュー間またはレイヤ間参照ピクチャの追加の行が再構成されるまで待機する必要があり得る。
【０２３７】
[0235]いくつかの例では、ビデオエンコーダ２０は、ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２が２に等しいときのみ、ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２をシグナリングすることができる。別の例として、ビデオエンコーダ２０は、次のように垂直ＬＣＵ行遅延をシグナリングするだけであり得る。
【表３】
0006416115.tif 000008
【０２３８】
[0236]ｖｅｒＣｔｂ＝ＣｔｂＡｄｄｒＩｎＲＳ／ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ＋ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ３＋３。
【０２３９】
[0237]利用不可能な参照エリアは、座標（０，（ｖｅｒＣｔｂ＊ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ））を左上隅とし、座標（ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓ，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓ）を右下隅とする方形エリアである。コーディングされたビューコンポーネントを復号するとき、参照ビューのビューコンポーネントからの利用不可能な参照エリアからのサンプルは、ビュー間またはレイヤ間予測プロセスによって参照されることはない（たとえば、参照されないものとする）。
【０２４０】
[0238]いくつかの例では、ビデオエンコーダ２０は、ラスタ走査順序でＬＣＵ遅延を指定するｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｒｓ＿ａｄｄｒｅｓｓをシグナリングすることができる。いくつかの例では、ビデオエンコーダ２０は、ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｒｓ＿ａｄｄｒｅｓｓ＿ｍｉｎｕｓｃｔｂｗｉｄｔｈをシグナリングし得る。これらの例では、ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｒｓ＿ａｄｄｒｅｓｓ＿ｍｉｎｕｓｃｔｂｗｉｄｔｈ＋ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹは、ラスタ走査順序でＬＣＵ遅延を示す。
【０２４１】
[0239]いくつかの例では、ビデオエンコーダ２０は、各ビューの参照ビューまたはレイヤのすべてについてビューごとに別個にｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２とｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２とをシグナリングすることができる。いくつかの例では、ビデオエンコーダ２０は、ビュー間またはレイヤ間予測を使用する各ビューまたはレイヤの参照ビューまたはレイヤごとに別個にｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ２とｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ２とをシグナリングすることができる。たとえば、次の通りである。
【表４】
0006416115.tif 000009
【０２４２】
[0240]いくつかの例では、上記のケースすべてについて、ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ１はシグナリングされず、０に等しいと推測される。いくつかの例では、ｖｉｄｅｏ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄは固定長、たとえばｕ（４）としてシグナリングされ得る。
【０２４３】
[0241]ピクセル再構成（たとえば、動き補償およびイントラ予測を含む）のみがＬＣＵごとに行われる必要がある一方、デブロッキングはブロックごとに（すなわち、８×８ブロック）ごとに行われてよく、サンプル適応オフセット（ＳＡＯ）フィルタ処理はラインごとに行われてよいと仮定されるとき、ＬＣＵ遅延は大幅に減少し得る。たとえば、ビデオエンコーダ２０が垂直ＬＣＵ行遅延のみをシグナリングするとき、最小行遅延は２である。ビデオエンコーダ２０が垂直ＬＣＵ行遅延と水平ＬＣＵ列遅延の両方をシグナリングするとき、最小行遅延は１であり、最小ＬＣＵ列遅延も１である。後者の場合、シンタックスは次のように修正され得る。
【表５】
0006416115.tif 000010
【０２４４】
[0242]セマンティクスは同様であるが、ｖｅｒＣｔｂおよびｈｏｒＣｔｂの計算は次のように若干修正され得る。変数ｈｏｒＣｔｂは次のように導出される。ｈｏｒＣｔｂ＝ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ１？ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｈｏｒｉｚｏｎｔａｌ＿ｍｉｎｕｓ１＋１＋（ＣｔｂＡｄｄｒＩｎＲＳ％ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ）：０。変数ｖｅｒＣｔｂは次のように導出される。
【０２４５】
ｖｅｒＣｔｂ＝ＣｔｂＡｄｄｒＩｎＲＳ／ＰｉｃＷｉｄｔｈＩｎＣｔｂｓＹ＋ｐｄｉ＿ｉｎｉｔ＿ｄｅｌａｙ＿ｃｔｂ＿ｖｅｒｔｉｃａｌ＿ｍｉｎｕｓ１＋１。
【０２４６】
[0243]以下では、異なるＬＣＵサイズを有する並列復号情報ＳＥＩメッセージが以下で説明されることについて説明する。この例は、並列復号情報ＳＥＩメッセージについての選択肢のうちの１つと同様であるが、様々なコーディングされたビューコンポーネント中の異なるＣＴＵサイズに対する追加のサポートがある。さらに、例は、ＳＥＩメッセージに関して説明されるが、本技法はＶＵＩシンタックス要素に拡張され得る。
【０２４７】
[0244]並列復号情報ＳＥＩメッセージシンタックスが以下で提供される。
【表６】
0006416115.tif 000011
【０２４８】
[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]逆量子化処理ユニット８６０は、ビットストリーム中で与えられ、エントロピー復号ユニット８００によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定するために、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータを使用することを含み得る。逆変換処理ユニット８８０は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０２８３】
[0280]動き補償ユニット８２０が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換処理ユニット８８０からの残差ブロックを動き補償ユニット８２０によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９００は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタ処理するデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、（コーディングループ内またはコーディングループ後のいずれかの）他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２０に記憶される。参照ピクチャメモリ９２０はまた、図４のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【０２８４】
[0281]このようにして、ビデオデコーダ３０は、本開示で説明する例示的な技法を実装するように構成されたビデオデコーダの一例である。たとえば、ビデオデコーダ３０は、１つまたは複数のプロセッサを含むことができ、本開示で説明する例示的な技法を実装するように構成され得る。
【０２８５】
[0282]たとえば、ビデオデコーダ３０は、動きベクトル制限に準拠することを確実にされる動きベクトル予測子から動きベクトルを導出することができる。たとえば、マージ／スキップモードでは、ビデオデコーダ３０は、動きベクトル予測子に等しく動きベクトルをセットするので、動きベクトル予測子は、動きベクトル制限に準拠することが必要とされる。ＡＭＶＰモードでは、ビデオデコーダ３０は、値が、動きベクトル差分が動きベクトル予測子に加算されたときに、得られる動きベクトルが動きベクトル制限に準拠するようなものである動きベクトル差分を、ビットストリームから決定する。この例では、ビデオデコーダ３０は、動きベクトル予測子と動きベクトル差分とを加算することによって、動きベクトルを導出することができる。
【０２８６】
[0283]いくつかの例では、ビデオデコーダ３０は、ブロックサイズの動きベクトル制限の垂直動きベクトル範囲を、受信されたビットストリームから決定することができる。ビデオデコーダ３０は、垂直動きベクトル範囲に基づいて、ビュー間またはレイヤ間参照ピクチャと現在のブロックを含む現在のピクチャとを並列復号することができる。
【０２８７】
[0284]また、いくつかの例では、ビデオデコーダ３０は、現在のブロックによってビュー間またはレイヤ間参照に使用され得ない任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを、受信されたビットストリームから決定することができる。これらの例では、ビデオデコーダ３０は、現在のブロックについての動きベクトルを、動きベクトルが任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを指さないように、ビットストリーム中の情報に基づいて導出することができる。一例として、ビデオデコーダ３０は、ラスタ走査順序で利用不可能な参照エリアを決定することができる。
【０２８８】
[0285]図７は、本開示で説明する技法によるビュー間またはレイヤ間ビデオ復号の例示的な動作を示すフローチャートである。例示のために、本技法は、ビデオデコーダ３０に関して説明される。たとえば、ビデオデコーダ３０は、現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信する（１０００）ことができる。動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し得る。ビットストリームから受信された情報が、導出された動きベクトルが動きベクトル制限に準拠することを確実にし得るように、ビットストリームは制約され得る。また、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。
【０２８９】
[0286]ビデオデコーダ３０は、ビットストリーム中の情報に基づいて、現在のブロックについての動きベクトルを導出する（１００２）ことができる。ビデオデコーダ３０は、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測復号する（１００４）ことができる。
【０２９０】
[0287]図８は、本開示で説明する技法によるビュー間またはレイヤ間ビデオ符号化の例示的な動作を示すフローチャートである。例示のために、本技法は、ビデオデコーダ３０に関して説明される。たとえば、ビデオエンコーダ２０は、現在のブロックについての動きベクトルを動きベクトル予測子から導出するために使用される、導出された動きベクトルが動きベクトル制限に準拠することを確実にする情報を決定する（１００６）ことができる。上記と同様に、動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、動きベクトル制限は、ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように動きベクトルの範囲を制限する。
【０２９１】
[0288]ビデオエンコーダ２０は、情報に基づいて、現在のブロックについての動きベクトルを導出する（１００８）ことができる。ビデオエンコーダ２０は、導出された動きベクトルに基づいて、現在のブロックをビュー間またはレイヤ間予測符号化する（１０１０）ことができる。ビデオエンコーダ２０は、動きベクトルを導出するための決定された情報を出力用に生成する（１０１２）ことができる。
【０２９２】
[0289]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または、（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明した技法を実装するための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータ、または１つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０２９３】
[0290]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここでディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０２９４】
[0291]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に適した任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に設けられる場合があるか、または複合コーデックに組み込まれる場合がある。また、本技法は、１つまたは複数の回路または論理要素において完全に実装され得る。
【０２９５】
[0292]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、もしくはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、前述のように、適切なソフトウェアおよび／またはファームウェアとともに、様々なユニットがコーデックハードウェアユニットにおいて組み合わせられ得るか、または前述のような１つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体よって設けられ得る。
【０２９６】
[0293]様々な例について説明してきた。これら例および他の例は、以下の特許請求の範囲内にある。
［Ｃ１］  ビュー間またはレイヤ間ビデオ復号の方法であって、
現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信することと、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記導出された動きベクトルが動きベクトル制限に準拠することを前記情報が確実にするように、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出することと、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号することと
を備える方法。
［Ｃ２］  前記情報は、前記ビットストリーム中にシンタックス要素を含む、Ｃ１に記載の方法。
［Ｃ３］  候補動きベクトル予測子のリストを構成することと、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを、前記受信されたビットストリームから決定することと
をさらに備え、
前記動きベクトルを導出することは、前記動きベクトル予測子に等しく前記動きベクトルをセットすることを備え、
前記動きベクトル予測子は、前記動きベクトル制限に準拠することが必要とされる、Ｃ１に記載の方法。
［Ｃ４］  候補動きベクトル予測子のリストを構成することと、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを、前記受信されたビットストリームから決定することと、
その値が、動きベクトル差分が前記動きベクトル予測子に加算されたときに、前記得られる動きベクトルが前記動きベクトル制限に準拠するようなものである前記動きベクトル差分を、前記受信されたビットストリームから決定することと
をさらに備え、
前記動きベクトルを導出することは、前記動きベクトル予測子と前記動きベクトル差分とを加算することを備える、Ｃ１に記載の方法。
［Ｃ５］  参照ピクチャリスト中で識別されたピクチャについての動きベクトル差分が０であるかどうかを示すフラグ値を、前記受信されたビットストリームから決定することをさらに備え、前記参照ピクチャリスト中の前記ピクチャについての前記動きベクトル差分が０ではないことを前記フラグ値は常に示す、Ｃ１に記載の方法。
［Ｃ６］  前記動きベクトルが前記レイヤ間参照ピクチャを指すときに、前記動きベクトル制限は、前記導出された動きベクトルが０に等しくなるべきであることを示す、Ｃ１に記載の方法。
［Ｃ７］  ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を、前記受信されたビットストリームから決定することと、
前記垂直動きベクトル範囲に基づいて、前記ビュー間またはレイヤ間参照ピクチャと前記現在のブロックを含む現在のピクチャとを並列復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ８］  ブロックサイズの前記ユニットは、最大コーディングユニットの高さおよび最小コーディングユニットの高さのユニットの１つを備える、Ｃ７に記載の方法。
［Ｃ９］  前記ビュー間またはレイヤ間参照ピクチャは、第１のビュー間またはレイヤ間参照ピクチャを含み、前記方法は、
前記現在のブロックによってビュー間またはレイヤ間参照に使用され得ない、前記第１のビュー間またはレイヤ間参照ピクチャを含む任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを、前記受信されたビットストリームから決定すること
をさらに備え、
前記動きベクトルを導出することは、前記現在のブロックについての前記動きベクトルを、前記動きベクトルが任意のビュー間または任意のレイヤ間参照ピクチャ中の前記利用不可能な参照エリアを指さないように、前記ビットストリーム中の前記情報に基づいて導出することを備える、Ｃ１に記載の方法。
［Ｃ１０］  前記利用不可能な参照エリアを決定することは、ラスタ走査順序で前記利用不可能な参照エリアを決定することを備える、Ｃ９に記載の方法。
［Ｃ１１］  ビュー間またはレイヤ間ビデオ符号化の方法であって、
現在のブロックについての動きベクトルを動きベクトル予測子から導出するために使用される、前記導出された動きベクトルが動きベクトル制限に準拠することを確実にする情報を決定することと、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出することと、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測符号化することと、
前記動きベクトルを導出するための前記決定された情報を出力用に生成することと
を備える方法。
［Ｃ１２］  前記情報は、出力用に生成されるシンタックス要素を含む、Ｃ１１に記載の方法。
［Ｃ１３］  候補動きベクトル予測子のリストを構成すること
をさらに備え、
情報を決定することは、値が前記動きベクトル制限に準拠する、前記動きベクトルを導出するために使用される、前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを決定することを備え
出力用に生成することは、候補動きベクトル予測子の前記リストへの前記インデックスを出力用に生成することを備える、Ｃ１１に記載の方法。
［Ｃ１４］  候補動きベクトル予測子のリストを構成すること
をさらに備え、
情報を決定することは、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを決定することと、
動きベクトル差分が前記動きベクトル予測子に加算されたときに、前記得られる動きベクトルが前記動きベクトル制限に準拠するように、前記動きベクトル差分を決定することと
を備え、
出力用に生成することは、候補動きベクトル予測子の前記リストへの前記インデックスと前記動きベクトル差分とを出力用に生成することを備える、Ｃ１１に記載の方法。
［Ｃ１５］  情報を決定することは、参照ピクチャリスト中のピクチャについての動きベクトル差分が０ではないことをフラグの値が常に示すことを決定することを備え、出力用に生成することは、前記フラグの前記値を出力用に生成することを備える、Ｃ１１に記載の方法。
［Ｃ１６］  前記動きベクトルが前記レイヤ間参照ピクチャを指すときに、前記動きベクトル制限は、前記導出された動きベクトルが０に等しくなるべきであることを示す、Ｃ１１に記載の方法。
［Ｃ１７］  ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を出力用に生成すること
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１８］  ブロックサイズの前記ユニットは、最大コーディングユニットの高さおよび最小コーディングユニットの高さのユニットの１つを備える、Ｃ１７に記載の方法。
［Ｃ１９］  前記ビュー間またはレイヤ間参照ピクチャは、第１のビュー間またはレイヤ間参照ピクチャを含み、前記方法は、
前記現在のブロックによってビュー間またはレイヤ間参照に使用され得ない、前記第１のビュー間またはレイヤ間参照ピクチャを含む任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを決定することと、
ここにおいて、前記動きベクトルを導出することは、前記現在のブロックについての前記動きベクトルを、前記動きベクトルが任意のビュー間またはレイヤ間参照ピクチャ中の前記利用不可能な参照エリアを指さないように、前記決定された利用不可能なエリアに基づいて導出することを備え、
前記利用不可能な参照エリアを示す情報を出力用に生成することと
をさらに備える、Ｃ１１に記載の方法。
［Ｃ２０］  前記利用不可能な参照エリアを示す情報を出力用に生成することは、ラスタ走査順序で前記利用不可能な参照エリアを示す情報を出力用に生成することを備える、Ｃ１９に記載の方法。
［Ｃ２１］  ビデオデコーダを備えるデバイスであって、前記ビデオデコーダは、１つまたは複数のプロセッサを備え、
現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信し、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記導出された動きベクトルが動きベクトル制限に準拠することを前記情報が確実にするように、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出し、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号する
ように構成される、デバイス。
［Ｃ２２］  前記情報は、前記ビットストリーム中にシンタックス要素を含む、Ｃ２１に記載のデバイス。
［Ｃ２３］  前記ビデオデコーダは、
候補動きベクトル予測子のリストを構成し、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを、前記受信されたビットストリームから決定する
ように構成され、
前記動きベクトルを導出するために、前記ビデオデコーダは、前記動きベクトル予測子に等しく前記動きベクトルをセットするように構成され、
前記動きベクトル予測子は、前記動きベクトル制限に準拠することが必要とされる、Ｃ２１に記載のデバイス。
［Ｃ２４］  前記ビデオデコーダは、
候補動きベクトル予測子のリストを構成し、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを、前記受信されたビットストリームから決定し、
値が、動きベクトル差分が前記動きベクトル予測子に加算されたときに、前記得られる動きベクトルが前記動きベクトル制限に準拠するようなものである前記動きベクトル差分を、前記受信されたビットストリームから決定する
ように構成され、
前記動きベクトルを導出するために、前記ビデオデコーダは、前記動きベクトル予測子と前記動きベクトル差分とを加算するように構成される、Ｃ２１に記載のデバイス。
［Ｃ２５］  前記ビデオデコーダは、
参照ピクチャリスト中で識別されたピクチャについての動きベクトル差分が０であるかどうかを示すフラグ値を、前記受信されたビットストリームから決定するように構成され、前記参照ピクチャリスト中の前記ピクチャについての前記動きベクトル差分が０ではないことを前記フラグ値は常に示す、Ｃ２１に記載のデバイス。
［Ｃ２６］  前記ビデオデコーダは、
ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を、前記受信されたビットストリームから決定し、
前記垂直動きベクトル範囲に基づいて、前記ビュー間またはレイヤ間参照ピクチャと前記現在のブロックを含む現在のピクチャとを並列復号する
ように構成される、Ｃ２１に記載のデバイス。
［Ｃ２７］  前記ビュー間またはレイヤ間参照ピクチャは、第１のビュー間またはレイヤ間参照ピクチャを含み、前記ビデオデコーダは、
前記現在のブロックによってビュー間またはレイヤ間参照に使用され得ない、前記第１のビュー間またはレイヤ間参照ピクチャを含む任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを、前記受信されたビットストリームから決定する
ように構成され、
前記動きベクトルを導出するために、前記ビデオデコーダは、前記現在のブロックについての前記動きベクトルを、前記動きベクトルが任意のビュー間または任意のレイヤ間参照ピクチャ中の前記利用不可能な参照エリアを指さないように、前記ビットストリーム中の前記情報に基づいて導出するように構成される、Ｃ２１に記載のデバイス。
［Ｃ２８］  前記利用不可能な参照エリアを決定するために、前記ビデオデコーダは、ラスタ走査順序で前記利用不可能な参照エリアを決定するように構成される、Ｃ２７に記載のデバイス。
［Ｃ２９］  前記デバイスは、
ワイヤレス通信デバイス、
マイクロプロセッサ、および
集積回路
のうちの１つを備える、Ｃ２１に記載のデバイス。
［Ｃ３０］  ビデオエンコーダを備えるデバイスであって、前記ビデオエンコーダは、１つまたは複数のプロセッサを備え、
現在のブロックについての動きベクトルを動きベクトル予測子から導出するために使用される、前記導出された動きベクトルが動きベクトル制限に準拠することを確実にする情報を決定し、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出し、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測符号化し、
前記動きベクトルを導出するための前記決定された情報を出力用に生成する
ように構成される、デバイス。
［Ｃ３１］  前記情報は、出力用に生成されるシンタックス要素を含む、Ｃ３０に記載のデバイス。
［Ｃ３２］  前記ビデオエンコーダは、
候補動きベクトル予測子のリストを構成するように構成され、
情報を決定するために、前記ビデオエンコーダは、値が前記動きベクトル制限に準拠する、前記動きベクトルを導出するために使用される、前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを決定するように構成され、
出力用に生成するために、前記ビデオエンコーダは、候補動きベクトル予測子の前記リストへの前記インデックスを出力用に生成するように構成される、Ｃ３０に記載のデバイス。
［Ｃ３３］  前記ビデオエンコーダは、
候補動きベクトル予測子のリストを構成するように構成され、
情報を決定するために、前記ビデオエンコーダは、
前記動きベクトルを導出するために使用される前記動きベクトル予測子を識別する候補動きベクトル予測子の前記リストへのインデックスを決定し、
動きベクトル差分が前記動きベクトル予測子に加算されたときに、前記得られる動きベクトルが前記動きベクトル制限に準拠するように、前記動きベクトル差分を決定するように構成され、
出力用に生成するために、前記ビデオエンコーダは、候補動きベクトル予測子の前記リストへの前記インデックスと前記動きベクトル差分とを出力用に生成するように構成される、Ｃ３０に記載のデバイス。
［Ｃ３４］  情報を決定するために、前記ビデオエンコーダは、参照ピクチャリスト中のピクチャについての動きベクトル差分が０ではないことをフラグの値が常に示すことを決定するように構成され、出力用に生成するために、前記ビデオエンコーダは、前記フラグの前記値を出力用に生成するように構成される、Ｃ３０に記載のデバイス。
［Ｃ３５］  前記ビデオエンコーダは、
ブロックサイズのユニットにおける前記動きベクトル制限の垂直動きベクトル範囲を出力用に生成する
ように構成される、Ｃ３４に記載のデバイス。
［Ｃ３６］  前記ビュー間またはレイヤ間参照ピクチャは、第１のビュー間またはレイヤ間参照ピクチャを含み、前記ビデオエンコーダは、
前記現在のブロックによってビュー間またはレイヤ間参照に使用され得ない、前記第１のビュー間またはレイヤ間参照ピクチャを含む任意のビュー間または任意のレイヤ間参照ピクチャ中の利用不可能な参照エリアを決定し、
ここにおいて、前記動きベクトルを導出するために、前記ビデオエンコーダは、前記現在のブロックについての前記動きベクトルを、前記動きベクトルが任意のビュー間またはレイヤ間参照ピクチャ中の前記利用不可能な参照エリアを指さないように、前記決定された利用不可能なエリアに基づいて導出するように構成され、
前記利用不可能な参照エリアを示す情報を出力用に生成する
ように構成される、Ｃ３０に記載のデバイス。
［Ｃ３７］  前記利用不可能な参照エリアを示す情報を出力用に生成するために、前記ビデオエンコーダは、ラスタ走査順序で前記利用不可能な参照エリアを示す情報を出力用に生成するように構成される、Ｃ３６に記載のデバイス。
［Ｃ３８］  命令を記憶したコンピュータ可読記憶媒体であって、前記命令は実行されたときに、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、
現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信させ、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記導出された動きベクトルが動きベクトル制限に準拠することを前記情報が確実にするように、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出させ、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号させる、コンピュータ可読記憶媒体。
［Ｃ３９］  現在のブロックについての動きベクトルを動きベクトル予測子から導出するための情報を含むビットストリームを受信するための手段と、ここにおいて、前記動きベクトルは、ビュー間またはレイヤ間参照ピクチャを指し、ここにおいて、前記導出された動きベクトルが動きベクトル制限に準拠することを前記情報が確実にするように、前記ビットストリームは制約され、ここにおいて、前記動きベクトル制限は、前記ビュー間またはレイヤ間参照ピクチャのサブ部分を指すように前記動きベクトルの範囲を制限する、
前記ビットストリーム中の前記情報に基づいて、前記現在のブロックについての前記動きベクトルを導出するための手段と、
前記導出された動きベクトルに基づいて、前記現在のブロックをビュー間またはレイヤ間予測復号するための手段と
を備えるデバイス。
【図１】
0006416115.tif 000012
【図２】
0006416115.tif 000013
【図３】
0006416115.tif 000014
【図４】
0006416115.tif 000015
【図５】
0006416115.tif 000016
【図６】
0006416115.tif 000017
【図７】
0006416115.tif 000018
【図８】
0006416115.tif 000019