(57)【特許請求の範囲】
【請求項１】
ビデオ情報をコーディングするように構成された装置であって、前記装置が、
少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
第１の振舞いが、前記候補リストに追加されるように１つまたは複数の空間候補を生成するための第２の振舞いと異なるように前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための前記第１の振舞いを決定すること、ここにおいて、前記第１の振舞いが、予測ユニット（ＰＵ）ごとに前記少なくとも１つのベースレイヤ動きベクトル候補が生成されることを指定し、前記第２の振舞いが、前記１つまたは複数の空間候補がコーディングユニット（ＣＵ）中の全てのＰＵについて一回生成されることを指定する、と、
現在ＰＵのサイズが所定のしきい値より大きいという決定に基づいて前記第１の振舞いに従って前記ＣＵ中の前記現在ＰＵのための前記少なくとも１つのベースレイヤ動きベクトル候補を生成すること、ここで、前記ＣＵが１つまたは複数のＰＵを有する、と、
前記第２の振舞いに従って前記ＣＵについての前記１つまたは複数の空間候補を生成することと、
前記第１の振舞いに従って生成された前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することと、
前記第１の振舞いと異なる前記第２の振舞いに従って生成された前記１つまたは複数の空間候補を前記候補リストに追加することと、
を行うように構成された、装置。
【請求項２】
前記装置がエンコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを符号化するようにさらに構成された、請求項１に記載の装置。
【請求項３】
前記装置がデコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを復号するようにさらに構成された、請求項１に記載の装置。
【請求項４】
前記候補リストが時間動きベクトル予測子（ＴＭＶＰ）とをさらに含む、請求項１に記載の装置。
【請求項５】
前記ＴＭＶＰが、前記第１の振舞いに従って生成される、請求項４に記載の装置。
【請求項６】
前記ＴＭＶＰが、前記第２の振舞いに従って生成される、請求項４に記載の装置。
【請求項７】
前記候補リストがマージ候補リスト、または高度動きベクトル予測（ＡＭＶＰ）候補リストである、請求項１に記載の装置。
【請求項８】
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、請求項１に記載の装置。
【請求項９】
ビデオ情報を符号化する方法であって、前記方法は、
第１の振舞いが、候補リストに追加されるために１つまたは複数の空間候補を生成するための第２の振舞いと異なるように、前記ビデオ情報を符号化するための前記候補リストに追加されるための前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための前記第１の振舞いを決定すること、ここにおいて、前記第１の振舞いが、予測ユニット（ＰＵ）ごとに前記少なくとも１つのベースレイヤ動きベクトル候補が生成されることを指定し、前記第２の振舞いが、前記１つまたは複数の空間候補がコーディングユニット（ＣＵ）中の全てのＰＵについて一回生成されることを指定する、と、
現在ＰＵのサイズが所定のしきい値より大きいという決定に基づいて前記第１の振舞いに従って前記ＣＵ中の前記現在ＰＵのための前記少なくとも１つのベースレイヤ動きベクトル候補を生成すること、ここで、前記ＣＵが１つまたは複数のＰＵを有する、と、
前記第２の振舞いに従って前記ＣＵについての前記１つまたは複数の空間候補を生成することと、
前記第１の振舞いに従って生成された前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することと、
前記第１の振舞いと異なる前記第２の振舞いに従って生成された前記１つまたは複数の空間候補を前記候補リストに追加することと、
を備える、方法。
【請求項１０】
ビデオ情報を復号する方法であって、前記方法は、
符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、
第１の振舞いが、候補リストに追加されるために１つまたは複数の空間候補を生成するための第２の振舞いと異なるように、前記ビデオ情報を復号するための前記候補リストに追加されるための前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための前記第１の振舞いを決定すること、ここにおいて、前記第１の振舞いが、予測ユニット（ＰＵ）ごとに前記少なくとも１つのベースレイヤ動きベクトル候補が生成されることを指定し、前記第２の振舞いが、前記１つまたは複数の空間候補がコーディングユニット（ＣＵ）中の全てのＰＵについて一回生成されることを指定する、と、
現在ＰＵのサイズが所定のしきい値より大きいという決定に基づいて前記第１の振舞いに従って前記ＣＵ中の前記現在ＰＵのための前記少なくとも１つのベースレイヤ動きベクトル候補を生成すること、ここで、前記ＣＵが１つまたは複数のＰＵを有する、と、
前記第２の振舞いに従って前記ＣＵについての前記１つまたは複数の空間候補を生成することと、
前記第１の振舞いに従って生成された前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することと、
前記第１の振舞いと異なる前記第２の振舞いに従って生成された前記１つまたは複数の空間候補を前記候補リストに追加することと、
を備える、方法。
【請求項１１】
実行されたとき、請求項９〜１０のいずれか一項に記載の方法を備えるプロセスを装置に行わせるコードを備えるコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ビデオコーディングおよび圧縮、高効率ビデオコーディング（ＨＥＶＣ：high efficiency video coding）に基づくスケーラブルコーディング、ならびにＨＥＶＣに基づくマルチビューおよび３ＤＶコーディングの分野に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００３】
[0003]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を行う。ブロックベースのビデオコーディングの場合、ビデオスライス（例えば、ビデオフレーム、ビデオフレームの一部分など）が、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００４】
[0004]  空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピー符号化が適用され得る。
【発明の概要】
【０００５】
[0005]  スケーラブルビデオコーディング（ＳＶＣ：scalable video coding）は、参照レイヤ（ＲＬ：reference layer）と呼ばれることがあるベースレイヤ（ＢＬ：base layer）と、１つまたは複数のスケーラブルエンハンスメントレイヤ（ＥＬ：enhancement layer）とが使用されるビデオコーディングを指す。ＳＶＣの場合、ベースレイヤは、ベースレベルの品質でビデオデータを搬送できる。１つまたは複数のエンハンスメントレイヤは、より高い空間レベル、時間レベル、および／または信号対雑音ＳＮＲレベルをサポートするために追加のビデオデータを搬送できる。エンハンスメントレイヤは、前に符号化されたレイヤに対して定義され得る。
【０００６】
[0006]  例えば、最下位レイヤはＢＬとして働き得、最上位レイヤはＥＬとして働き得る。中間レイヤは、ＥＬまたはＲＬのいずれか、あるいはその両方として働き得る。例えば、中間にあるレイヤは、ベースレイヤまたは介在エンハンスメントレイヤ（intervening enhancement layer）など、それの下のレイヤのためのＥＬであり、同時に、それの上の１つまたは複数のエンハンスメントレイヤのためのＲＬとして働き得る。同様に、ＨＥＶＣ規格のマルチビューまたは３Ｄ拡張では、複数のビューがあり得、１つのビューの情報は、別のビューの情報（例えば、動き推定、動きベクトル予測および／または他の冗長）をコーディング（例えば、符号化または復号）するために利用され得る。
【０００７】
[0007]  ＨＥＶＣ拡張では、ベースレイヤまたはビュー中の対応するブロックを使用して、エンハンスメントレイヤまたは別のビュー中の現在ブロックが予測され得る。例えば、現在ブロックのシンタックス要素、動き情報（例えば動きベクトル）またはモード情報（例えばイントラモード）は、ベースレイヤ中の対応するブロックに基づき得る。例えば、ベースレイヤ動きベクトル（ＭＶ：motion vector）はエンハンスメントレイヤマージ／ＡＭＶＰ（高度動きベクトル予測(advanced motion vector prediction)）候補リスト中の候補として使用され得る。候補リストは、現在ブロックを予測するためにコーダ（例えば、エンコーダまたはデコーダ）によって利用されるべき空間および時間動きベクトル予測子(spatial and temporal motion vector predictors)のアレイである。このリストは、現在ブロックの空間ネイバーであり、現在ブロックを含む同じピクチャ内にある空間ネイバーブロックの動きベクトルを含み得る。リストはまた、（時間動きベクトル予測子またはＴＭＶＰと呼ばれる）時間的コロケートブロックからの動きベクトルを含み得る。時間的コロケートブロックは、現在ブロックを含むピクチャ以外のピクチャ中のブロックを指し、前記他のピクチャ内の、現在ブロックがそれのピクチャ中にある位置と同じ位置にある。いくつかの例では、リストはまた、別のレイヤまたは別のビュー中のコロケートブロックのための動きベクトルを含み得る。例えば、ブロックはエンハンスメントレイヤ中のピクチャ中にあり得、動きベクトルがそこから導出されるコロケートブロックはベースレイヤ中のピクチャ中にあり得る。別の例として、ブロックは従属ビュー中のピクチャ中にあり得、コロケートブロックはベースビュー中のピクチャ中にあり得る。
【０００８】
[0008]  空間候補と時間候補とが候補リストに追加されたとき、そのような候補がどのように生成され、候補リストに追加されるかは異なり得る。例えば、一実施形態では、空間候補はＰＵごとに生成され得、時間候補は特定のＣＵについて１回のみ生成され得る。しかしながら、例えば、ベースレイヤ動きベクトル（ＢＬ  ＭＶ：base layer motion vector）が候補リストに追加され、単一候補リスト生成（例えば、空間候補について隣接ＰＵへの依存性が除去され、空間候補がＣＵまたはＣＵのグループ中の全てのＰＵについて１回のみ生成される）が、並列動き推定（ＰＭＥ：parallel motion estimation）が使用されるときに定義される動き推定領域（ＭＥＲ：motion estimation region）を用いて使用可能にされるとき、そのようなＢＬ  ＭＶを扱うための方法は定義される必要がある。例えば、単一候補リスト生成のために、ＢＬ  ＭＶが候補リストに追加されるときにそのようなＢＬ  ＭＶをどのように扱うべきかを定義することによって、本開示で説明する技法は、コーディング効率を改善し、および／またはビデオデータをコーディングする方法に関連する計算複雑さを低減し得る。
【０００９】
[0009]  本開示のシステム、方法およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示する望ましい属性を単独で担当するとは限らない。
【００１０】
[0010]  一実施形態では、ビデオ情報をコーディングするように構成された装置は、メモリユニットと、メモリユニットと通信しているプロセッサとを含む。メモリユニットは、ビデオ情報をコーディングするために生成された動きベクトル候補リスト、または単に候補リストを記憶するように構成される。候補リストは少なくとも１つのベースレイヤ動きベクトル候補を備える。プロセッサは、前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞い(behavior)を決定することと、決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ：prediction unit）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、ここにおいて、特定のＣＵが１つまたは複数のＰＵを有する、前記少なくとも１つのベースレイヤ動きベクトル候補を候補リストに追加することとを行うように構成される。候補リスト生成はマージモードまたは高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードのいずれかで行われ得る。例えば、エンコーダは各ＰＵについてモードのうちの１つを選択し、フラグを用いてビットストリーム中でモードをシグナリングし得る。いくつかの実施形態では、候補リストは空間候補と時間動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）とをさらに含み得る。一実施形態では、ベースレイヤ（ＢＬ：base layer）動きベクトル（ＭＶ）候補は各ＰＵについて生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。また別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは特定のＣＵについて１回のみ導出され得る。（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間でプルーニングが適用され得る。代替的に、プルーニングは、（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間で適用されることを妨げられる。ＢＬ  ＭＶは、ベースレイヤ中のコロケートブロックの内側または外側の任意の位置から導出され得る。例えば、それは、中心ブロックまたは任意のコーナー、またはコロケートブロックの外側の右下ブロックであり得る。
【００１１】
[0011]  別の実施形態では、ビデオ情報を符号化する方法は、ビデオ情報を符号化するための候補リストを記憶することと、前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、特定のＣＵが１つまたは複数のＰＵを有する、前記少なくとも１つのベースレイヤ動きベクトル候補を候補リストに追加することとを含む。候補リスト生成はマージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードのいずれかで行われ得る。いくつかの実施形態では、候補リストは空間候補と時間動きベクトル予測子（ＴＭＶＰ）とをさらに含み得る。一実施形態では、ベースレイヤ（ＢＬ）動きベクトル（ＭＶ）候補は各ＰＵについて生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。また別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは特定のＣＵについて１回のみ導出され得る。（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間でプルーニングが適用され得る。代替的に、プルーニングは、（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間で適用されることを妨げられる。ＢＬ  ＭＶは、ベースレイヤ中のコロケートブロックの内側または外側の任意の位置から導出され得る。例えば、それは、中心ブロック、または任意のコーナー、またはコロケートブロックの外側の右下ブロックであり得る。
【００１２】
[0012]  別の実施形態では、ビデオ情報を復号する方法は、符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、ここにおいて、シンタックス要素が、少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストに関連付けられたビデオ情報を備える、前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、特定のＣＵが１つまたは複数のＰＵを有する、前記少なくとも１つのベースレイヤ動きベクトル候補を候補リストに追加することとを含む。候補リスト生成はマージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードのいずれかで行われ得る。いくつかの実施形態では、候補リストは空間候補と時間動きベクトル予測子（ＴＭＶＰ）とをさらに含み得る。一実施形態では、ベースレイヤ（ＢＬ）動きベクトル（ＭＶ）候補は各ＰＵについて生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。また別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは特定のＣＵについて１回のみ導出され得る。（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間でプルーニングが適用され得る。代替的に、プルーニングは、（１つまたは複数の）ＢＬ  ＭＶ候補と（１つまたは複数の）空間候補との間で適用されることを妨げられる。ＢＬ  ＭＶは、ベースレイヤ中のコロケートブロックの内側または外側の任意の位置から導出され得る。例えば、それは、中心ブロック、または任意のコーナー、またはコロケートブロックの外側の右下ブロックであり得る。
【００１３】
[0013]  別の実施形態では、非一時的コンピュータ可読媒体は、実行されたとき、少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶することと、前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、特定のＣＵが１つまたは複数のＰＵを有する、前記少なくとも１つのベースレイヤ動きベクトル候補を候補リストに追加することとを装置に行わせるコードを含む。いくつかの実施形態では、候補リストは空間候補と時間動きベクトル予測子（ＴＭＶＰ）とをさらに含み得る。一実施形態では、ベースレイヤ（ＢＬ）動きベクトル（ＭＶ）候補は各ＰＵについて生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。また別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは特定のＣＵについて１回のみ導出され得る。
【００１４】
[0014]  別の実施形態では、ビデオ情報をコーディングするように構成されたビデオコーディングデバイスは、少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶するための手段と、前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定するための手段と、決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための手段と、特定のＣＵが１つまたは複数のＰＵを有する、前記少なくとも１つのベースレイヤ動きベクトル候補を候補リストに追加するための手段とを含む。いくつかの実施形態では、候補リストは空間候補と時間動きベクトル予測子（ＴＭＶＰ）とをさらに含み得る。一実施形態では、ベースレイヤ（ＢＬ）動きベクトル（ＭＶ）候補は各ＰＵについて生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは各ＰＵについて導出され得る。また別の実施形態では、ＢＬ  ＭＶ候補は特定のＣＵについて１回のみ生成され得、空間候補は特定のＣＵについて１回のみ生成され得、ＴＭＶＰは特定のＣＵについて１回のみ導出され得る。
【図面の簡単な説明】
【００１５】
【図１】本開示で説明する態様による技法を利用し得るビデオ符号化および復号システムの一例を示すブロック図である。
【図２】本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。
【図３】本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。
【図４Ａ】予測されるべきサブブロックの一例を示すブロック図である。
【図４Ｂ】サブブロックのための候補動きベクトルのリストを示す概念図である。
【図５Ａ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｂ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｃ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｄ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｅ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｆ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｇ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｈ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図５Ｉ】異なるパーティションモードについての候補ロケーションの例を示すブロック図である。
【図６Ａ】異なるパーティションモードについての異なる候補ロケーションの例を示すブロック図である。
【図６Ｂ】異なるパーティションモードについての異なる候補ロケーションの例を示すブロック図である。
【図６Ｃ】異なるパーティションモードについての異なる候補ロケーションの例を示すブロック図である。
【図６Ｄ】異なるパーティションモードについての異なる候補ロケーションの例を示すブロック図である。
【図６Ｅ】異なるパーティションモードについての異なる候補ロケーションの例を示すブロック図である。
【図７】並列動き推定領域内のコーディングユニットと予測ユニットとを示す図である。
【図８】本開示の一実施形態による、ビデオ情報をコーディングする方法を示すフローチャートである。
【図９】本開示の一実施形態による、ビデオ情報をコーディングする方法を示すフローチャートである。
【図１０】本開示の一実施形態による、ビデオ情報をコーディングする方法を示すフローチャートである。
【発明を実施するための形態】
【００１６】
[0026]  本明細書で説明するいくつかの実施形態は、ＨＥＶＣ（高効率ビデオコーディング）など、アドバンストビデオコーデックのコンテキストにおけるスケーラブルビデオコーディングのためのレイヤ間予測に関する。より詳細には、本開示は、ＨＥＶＣのスケーラブルビデオコーディング（ＳＶＣ）拡張におけるレイヤ間予測の性能の改善のためのシステムおよび方法に関する。以下の説明では、いくつかの実施形態に関係するＨ．２６４／ＡＶＣ技法について説明し、ＨＥＶＣ規格および関係する技法についても説明する。いくつかの実施形態について、ＨＥＶＣおよび／またはＨ．２６４規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。例えば、本明細書で開示する実施形態は、以下の規格、すなわち、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４のうちの１つまたは複数に適用可能であり得る。
【００１７】
[0027]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を行う。ブロックベースのビデオコーディングの場合、ビデオスライス（例えば、ビデオフレーム、ビデオフレームの一部分など）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【００１８】
[0028]  空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピー符号化が適用され得る。
【００１９】
[0029]  上記で説明したように、ＨＥＶＣ拡張では、２つの動きベクトル予測モード、すなわち、マージモードとＡＭＶＰモードとがあり得る。例えば、マージモードは、コーディングすべき現在ビデオブロックのための（動きベクトル、参照フレームインデックス、予測方向、または他の情報などの）動き情報が、現在ビデオブロック、あるいは異なるピクチャ（例えば、時間ピクチャ、別のレイヤ中のピクチャ、または別のビュー中のピクチャ）中のコロケートビデオブロックを含んでいる同じピクチャ中の空間的に近隣するビデオブロックから継承される１つまたは複数のビデオコーディングモードを指す。同じピクチャ中の空間的に近隣するブロックは空間候補ブロックと呼ばれることがある。異なるピクチャ中のコロケートブロックはコロケート候補ブロックと呼ばれることがある。現在ビデオブロックがそれの動き情報をそこから継承する空間的に近隣するブロックまたはコロケートブロック（例えば、現在ブロックに対する、上、右上、左、左下ブロック、または時間的に隣接するピクチャからのコロケートブロック、別のレイヤからのブロック、または別のビューからのブロック）を識別するために、インデックス値が使用され得る。
【００２０】
[0030]  スキップモードはマージモードの１つのタイプ（またはマージモードと同様のモード）を備え得る。スキップモードでは、動き情報は継承されるが、残差情報はコーディングされない。残差情報は、概して、コーディングされるべきブロックと、空間的に近隣するブロックまたはコロケートブロックから継承される動き情報によって識別される予測ブロックとの間のピクセル差分を示すピクセル差分情報を指し得る。直接モードは別のタイプのマージモード（またはマージモードと同様のモード）であり得る。直接モードは、動き情報が継承されるという点でスキップモードと同様であり得るが、直接モードでは、ビデオブロックは、残差情報を含むようにコーディングされる。「マージモード」という句は、本明細書では、スキップモード、直接モード、またはマージモードと呼ばれることがある、これらのモードのうちのいずれか１つを指すために使用される。
【００２１】
[0031]  ＡＭＶＰモードはマージモードと同様であり得る。しかしながら、ＡＭＶＰモードでは、ビデオコーダはまた、参照インデックスを、インター予測のために使用されるピクチャを識別する（候補動きベクトル予測子のリストとは異なる）参照ピクチャリスト中にコーディングする。言い換えれば、ＡＭＶＰモードでは、ビデオコーダは、参照フレームインデックスを継承しないことがあり、むしろ、参照フレームインデックスはシグナリングされ得る。また、いくつかの実施形態では、ＡＭＶＰモードでは、ビデオコーダは動きベクトル差分（ＭＶＤ）をコーディングし得る。ＭＶＤは、ブロックの実際の動きベクトルと、候補動きベクトル予測子のリストへのインデックスによって識別される動きベクトル予測子との間の差である。
【００２２】
[0032]  従って、動きベクトル自体を符号化し、通信するのではなく、ビデオエンコーダ（例えば、図２のビデオエンコーダ２０）は、知られている（または知り得る）動きベクトルに対する動きベクトル差分（ＭＶＤ）を符号化し、通信し得る。Ｈ．２６４／ＡＶＣでは、現在動きベクトルを定義するためにＭＶＤとともに使用され得る、知られている動きベクトルは、近隣ブロックに関連する動きベクトルの中央値として導出される、いわゆる動きベクトル予測子（ＭＶＰ）によって定義され得る。しかしながら、より高度のＭＶＰ技法は、ビデオエンコーダが、ＭＶＰをそこから定義すべきネイバーを選択することを可能にし得る。
【００２３】
[0033]  単に説明の目的で、本明細書で開示するいくつかの実施形態について、ただ２つのレイヤ（例えば、ベースレイヤなどの下位レベルレイヤ、およびエンハンスメントレイヤなどの上位レベルレイヤ）を含む例を用いて説明する。そのような例は、複数のベースレイヤおよび／またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。ただし、これらの用語は限定的なものではない。例えば、以下で説明する技法は、ブロック（例えば、ＣＵ、ＰＵ、ＴＵ、マクロブロックなど）、スライス、フレームなど、任意の好適なビデオユニットとともに使用され得る。
【００２４】
[0034]  ＨＥＶＣは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。ＨＥＶＣにおける予測のユニットは、いくつかの前のビデオコーディング規格におけるユニット（例えば、マクロブロック）とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、ＨＥＶＣ中に存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、４分木方式に基づく階層構造と置き換えられ得る。例えば、ＨＥＶＣ方式内で、３つのタイプのブロック、コーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、および変換ユニット（ＴＵ：Transform Unit）が定義される。ＣＵは領域分割の基本ユニットを指し得る。ＣＵはマクロブロックの概念に類似すると見なされ得るが、それは、最大サイズを制限せず、コンテンツ適応性を改善するために４つの等しいサイズのＣＵへの再帰的分割を可能にし得る。ＰＵはインター／イントラ予測の基本ユニットと見なされ得、それは、不規則な画像パターンを効果的にコーディングするために、単一のＰＵ中に複数の任意の形状区分を含んでいることがある。ＴＵは変換の基本ユニットと見なされ得る。それは、ＰＵとは無関係に定義され得るが、それのサイズは、ＴＵが属するＣＵに制限され得る。３つの異なる概念へのブロック構造のこの分離は、各々がそれの役割に従って最適化されることを可能にし得、これが改善されたコーディング効率をもたらし得る。
【００２５】
ビデオコーディング規格
[0035]  ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮なしに、画像エンコーダから画像デコーダに搬送されるべき情報の量は、リアルタイム画像送信を不可能にするほど非常に大きい。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００２６】
[0036]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含み、その全ての全体が参照により組み込まれる。
【００２７】
[0037]  さらに、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発されている。ＨＥＶＣの最近のドラフトは、２０１３年１１月１５日現在、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから利用可能であり、その全体が参照により組み込まれる。ＨＥＶＣドラフト１０についての完全引用は、文書ＪＪＣＴＶＣ−Ｌ１００３、Ｂｒｏｓｓら、「High Efficiency Video Coding (HEVC) Text Specification Draft 10」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４日〜２０１３年１月２３日である。
【００２８】
[0038]  添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００２９】
[0039]  本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることが意図され、そのうちのいくつかが例として図面および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００３０】
[0040]  添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。
【００３１】
ビデオコーディングシステム
[0041]  図１は、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
【００３２】
[0042]  図１に示されているように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は符号化ビデオデータを生成する。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（例えば、ラップトップなど）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたるデバイスを備え得る。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００３３】
[0043]  宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、ワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするルータ、スイッチ、基地局、または他の機器を含み得る。
【００３４】
[0044]  別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体に対応し得る。この例では、宛先デバイス１４は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオを記憶する、ファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、（例えば、ウェブサイトなどのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続など）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００３５】
[0045]  本開示の技法は、ワイヤレスの用途または設定には限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信（例えば、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）など）、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００３６】
[0046]  図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／またはビデオデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。
【００３７】
[0047]  ビデオエンコーダ２０は、キャプチャされたビデオデータ、以前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化するように構成され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００３８】
[0048]  図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信する。符号化ビデオデータは、ビデオデータを表す、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。シンタックス要素は、ブロックおよび他のコード化ユニット、例えば、ピクチャグループ（ＧＯＰ：group of pictures）の特性および／または処理を記述し得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【００３９】
[0049]  ディスプレイデバイス３２は、宛先デバイス１４と一体であり得るか、またはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号ビデオデータをユーザに表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４０】
[0050]  ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４１】
[0051]  図１の例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４２】
[0052]  この場合も、図１は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（例えば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化デバイスは、データを符号化し、メモリに記憶し得、および／または、復号デバイスは、メモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信せずに、単純にメモリへのデータを符号化し、および／またはメモリからデータを取り出して復号するデバイスによって行なわれる。
【００４３】
[0053]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００４４】
[0054]  上記で手短に述べられたように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
【００４５】
[0055]  ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を行い得る。ビデオエンコーダ２０がピクチャに対して符号化演算を行うとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタックス構造とを含み得る。シーケンスパラメータセット（ＳＰＳ：sequence parameter set）は、ピクチャの０個以上のシーケンスに適用可能なパラメータを含んでいることがある。ピクチャパラメータセット（ＰＰＳ：picture parameter set）は、０個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット（ＡＰＳ：adaptation parameter set）は、０個以上のピクチャに適用可能なパラメータを含み得る。ＡＰＳ中のパラメータは、ＰＰＳ中のパラメータよりも変化する可能性が高いパラメータであり得る。
【００４６】
[0056]  コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット（ＬＣＵ：largest coding unit）と呼ばれることがある。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。ビデオエンコーダ２０は、４分木区分（quadtree partitioning）を使用して、ツリーブロックのビデオブロックを、ＣＵに関連付けられたビデオブロックに区分し得、従って「ツリーブロック」という名前がある。
【００４７】
[0057]  いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のＣＵを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
【００４８】
[0058]  ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を行い得る。ビデオエンコーダ２０がスライスに対して符号化演算を行うとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
【００４９】
[0059]  コード化スライスを生成するために、ビデオエンコーダ２０は、スライス中の各ツリーブロックに対して符号化演算を行い得る。ビデオエンコーダ２０がツリーブロックに対して符号化演算を行うとき、ビデオエンコーダ２０はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
【００５０】
[0060]  ビデオエンコーダ２０がコード化スライスを生成するとき、ビデオエンコーダ２０は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を行い得る（例えば、そのツリーブロックを符号化し得る）。言い換えれば、ビデオエンコーダ２０は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む、順序で、ビデオエンコーダ２０がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【００５１】
[0061]  ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。従って、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
【００５２】
[0062]  コード化ツリーブロックを生成するために、ビデオエンコーダ２０は、ツリーブロックのビデオブロックに対して４分木区分を再帰的に行って、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。例えば、ビデオエンコーダ２０は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分された、ＣＵであり得る。区分されていないＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分されていない、ＣＵであり得る。
【００５３】
[0063]  ビットストリーム中の１つまたは複数のシンタックス要素は、ビデオエンコーダ２０がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。ＣＵのビデオブロックは形状が正方形であり得る。ＣＵのビデオブロックのサイズ（例えば、ＣＵのサイズ）は、８×８ピクセルから、最大６４×６４以上のピクセルをもつツリーブロックのビデオブロックのサイズ（例えば、ツリーブロックのサイズ）までに及び得る。
【００５４】
[0064]  ビデオエンコーダ２０は、ｚ走査順序に従って、ツリーブロックの各ＣＵに対して符号化演算を行い得る（例えば、各ＣＵを符号化し得る）。言い換えれば、ビデオエンコーダ２０は、左上のＣＵと、右上のＣＵと、左下のＣＵと、次いで右下のＣＵとを、その順序で符号化し得る。ビデオエンコーダ２０が、区分されたＣＵに対して符号化演算を行うとき、ビデオエンコーダ２０は、ｚ走査順序に従って、区分されたＣＵのビデオブロックのサブブロックに関連付けられたＣＵを符号化し得る。言い換えれば、ビデオエンコーダ２０は、左上のサブブロックに関連付けられたＣＵと、右上のサブブロックに関連付けられたＣＵと、左下のサブブロックに関連付けられたＣＵと、次いで右下のサブブロックに関連付けられたＣＵとを、その順序で符号化し得る。
【００５５】
[0065]  ｚ走査順序に従ってツリーブロックのＣＵを符号化した結果として、所与のＣＵの上、左上、右上、左、および左下のＣＵは符号化されていることがある。所与のＣＵの下または右のＣＵはまだ符号化されていない。従って、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接するいくつかのＣＵを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接する他のＣＵを符号化することによって生成された情報にアクセスすることができない可能性がある。
【００５６】
[0066]  ビデオエンコーダ２０が、区分されていないＣＵを符号化するとき、ビデオエンコーダ２０は、ＣＵのために１つまたは複数の予測ユニット（ＰＵ）を生成し得る。ＣＵのＰＵの各々は、ＣＵのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ２０は、ＣＵの各ＰＵについて予測ビデオブロックを生成し得る。ＰＵの予測ビデオブロックはサンプルのブロックであり得る。ビデオエンコーダ２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ビデオブロックを生成し得る。
【００５７】
[0067]  ビデオエンコーダ２０がイントラ予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がイントラ予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはイントラ予測されたＣＵである。ビデオエンコーダ２０がインター予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がインター予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはインター予測されたＣＵである。
【００５８】
[0068]  さらに、ビデオエンコーダ２０がインター予測を使用してＰＵのための予測ビデオブロックを生成するとき、ビデオエンコーダ２０はＰＵの動き情報を生成し得る。ＰＵの動き情報は、ＰＵの１つまたは複数の参照ブロックを示し得る。ＰＵの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはＰＵに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、ＰＵの参照ブロックはＰＵの「参照サンプル」と呼ばれることもある。ビデオエンコーダ２０は、ＰＵの参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００５９】
[0069]  ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ビデオブロックを生成した後、ビデオエンコーダ２０は、ＣＵのＰＵのための予測ビデオブロックに基づいて、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのＰＵのための予測ビデオブロック中のサンプルと、ＣＵの元のビデオブロック中のサンプルとの間の差を示し得る。
【００６０】
[0070]  さらに、区分されていないＣＵに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ＣＵの残差データに対して再帰的な４分木区分を行って、ＣＵの残差データを、ＣＵの変換ユニット（ＴＵ）に関連付けられた残差データの１つまたは複数のブロック（例えば、残差ビデオブロック）に区分し得る。ＣＵの各ＴＵは異なる残差ビデオブロックに関連付けられ得る。
【００６１】
[0071]  ビデオコーダ２０は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用して、ＴＵに関連付けられた変換係数ブロック（例えば、変換係数のブロック）を生成し得る。概念的に、変換係数ブロックは変換係数の２次元（２Ｄ）行列であり得る。
【００６２】
[0072]  変換係数ブロックを生成した後、ビデオエンコーダ２０は、変換係数ブロックに対して量子化プロセスを行い得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。例えば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられることがあり、ここで、ｎはｍよりも大きい。
【００６３】
[0073]  ビデオエンコーダ２０は、各ＣＵを量子化パラメータ（ＱＰ：quantization parameter）値に関連付け得る。ＣＵに関連付けられたＱＰ値は、ビデオエンコーダ２０が、ＣＵに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【００６４】
[0074]  ビデオエンコーダ２０が変換係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ２０は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、確率間隔区分エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
【００６５】
[0075]  ビデオエンコーダ２０によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットを含み得る。ＮＡＬユニットの各々は、ＮＡＬユニット中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、ＮＡＬユニットは、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含み得る。ＮＡＬユニット中のデータは様々なシンタックス構造を含み得る。
【００６６】
[0076]  ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ２０によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ３０がビットストリームを受信するとき、ビデオデコーダ３０は、ビットストリームに対してパース演算(parsing operation)を行い得る。ビデオデコーダ３０がパース演算を行うとき、ビデオデコーダ３０は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ３０は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ２０によって行なわれるプロセスとは逆であり得る。
【００６７】
[0077]  ビデオデコーダ３０がＣＵに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ３０は、シンタックス要素に基づいて、ＣＵのＰＵのための予測ビデオブロックを生成し得る。さらに、ビデオデコーダ３０は、ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、変換係数ブロックに対して逆変換を行い、ＣＵのＴＵに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ３０は、予測ビデオブロックと残差ビデオブロックとに基づいて、ＣＵのビデオブロックを再構成し得る。このようにして、ビデオデコーダ３０は、ビットストリーム中のシンタックス要素に基づいて、ＣＵのビデオブロックを再構成し得る。
【００６８】
ビデオエンコーダ
[0078]  図２は、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、予測ユニット１００は、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加としてまたは代わりに、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
【００６９】
[0079]  説明の目的で、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
【００７０】
[0080]  ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
【００７１】
[0081]  図２の例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、予測ユニット１００と、残差生成ユニット１０２と、変換ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１３と、復号ピクチャバッファ１１４と、エントロピー符号化ユニット１１６とを含む。予測ユニット１００は、インター予測ユニット１２１と、動き推定ユニット１２２と、動き補償ユニット１２４と、イントラ予測ユニット１２６とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。さらに、動き推定ユニット１２２と動き補償ユニット１２４とは、高度に統合され得るが、図２の例では、説明の目的で別々に表されている。
【００７２】
[0082]  ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０は、様々なソースからビデオデータを受信し得る。例えば、ビデオエンコーダ２０は、ビデオソース１８（図１）または別のソースからビデオデータを受信し得る。ビデオデータは一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ２０は、ピクチャの各々に対して符号化演算を行い得る。ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を行い得る。スライスに対して符号化演算を行うことの一部として、ビデオエンコーダ２０は、スライス中のツリーブロックに対して符号化演算を行い得る。
【００７３】
[0083]  ツリーブロックに対して符号化演算を行うことの一部として、予測ユニット１００は、ツリーブロックのビデオブロックに対して４分木区分を行い、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。例えば、予測ユニット１００は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【００７４】
[0084]  ＣＵに関連付けられたビデオブロックのサイズは、８×８サンプルから、最大６４×６４以上のサンプルをもつツリーブロックのサイズまでに及び得る。本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのサンプル寸法、例えば、１６×１６（16x16）サンプルまたは１６×１６（16 by 16）サンプルを指すために交換可能に使用され得る。概して、１６×１６ビデオブロックは、垂直方向に１６個のサンプルを有し（ｙ＝１６）、水平方向に１６個のサンプルを有する（ｘ＝１６）。同様に、Ｎ×Ｎのブロックは、一般に、垂直方向にＮ個のサンプルを有し、水平方向にＮ個のサンプルを有し、ここで、Ｎは非負整数値を表す。
【００７５】
[0085]  さらに、ツリーブロックに対して符号化演算を行うことの一部として、予測ユニット１００は、ツリーブロック用の階層的な４分木データ構造を生成し得る。例えば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。予測ユニット１００が、ツリーブロックのビデオブロックを４つのサブブロックに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブブロックのうちの１つに関連付けられたＣＵに対応する。予測ユニット１００が、サブブロックのうちの１つを４つのサブサブブロックに区分する場合、サブブロックに関連付けられたＣＵに対応するノードは、サブサブブロックのうちの１つに関連付けられたＣＵに各々が対応する、４つの子ノードを有し得る。
【００７６】
[0086]  ４分木データ構造の各ノードは、対応するツリーブロックまたはＣＵのシンタックスデータ（例えば、シンタックス要素）を含み得る。例えば、４分木の中のノードは、そのノードに対応するＣＵのビデオブロックが４つのサブブロックに区分される（例えば、分割される）かどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。
【００７７】
[0087]  ビデオエンコーダ２０は、ツリーブロックの区分されていない各ＣＵに対して符号化演算を行い得る。ビデオエンコーダ２０が、区分されていないＣＵに対して符号化演算を行うとき、ビデオエンコーダ２０は、区分されていないＣＵの符号化表現を表すデータを生成する。
【００７８】
[0088]  ＣＵに対して符号化演算を行うことの一部として、予測ユニット１００は、ＣＵの１つまたは複数のＰＵの中で、ＣＵのビデオブロックを区分し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なＰＵサイズをサポートし得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×ｎＵ、ｎＬ×２Ｎ、ｎＲ×２Ｎ、または同様の対称ＰＵサイズでのインター予測とをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。いくつかの例では、予測ユニット１００は、ＣＵのビデオブロックの辺に直角に接触しない境界に沿って、ＣＵのＰＵの間でＣＵのビデオブロックを区分するように、幾何学的な区分を行い得る。
【００７９】
[0089]  インター予測ユニット１２１はＣＵの各ＰＵに対してインター予測を行い得る。インター予測は時間圧縮を実現し得る。ＰＵに対してインター予測を行うために、動き推定ユニット１２２はＰＵの動き情報を生成し得る。動き補償ユニット１２４は、動き情報と、ＣＵに関連付けられたピクチャ以外のピクチャ（例えば、参照ピクチャ）の復号サンプルと基づくＰＵのための予測ビデオブロックを生成し得る。本開示では、動き補償ユニット１２４によって生成された予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【００８０】
[0090]  スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して異なる演算を行い得る。Ｉスライス中では、全てのＰＵがイントラ予測される。従って、ＰＵがＩスライス中にある場合、動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵに対してインター予測を行わない。
【００８１】
[0091]  ＰＵがＰスライス中にある場合、ＰＵを含んでいるピクチャは、「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。リスト０中の参照ピクチャの各々は、他のピクチャのインター予測に使用され得るサンプルを含んでいる。動き推定ユニット１２２が、Ｐスライス中のＰＵに関して動き推定演算を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得る。ＰＵの参照ブロックは、ＰＵのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、例えば、サンプルのブロックであり得る。動き推定ユニット１２２は、様々なメトリクスを使用して、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを判断し得る。例えば、動き推定ユニット１２２は、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを判断し得る。
【００８２】
[0092]  Ｐスライス中のＰＵの参照ブロックを識別した後、動き推定ユニット１２２は、参照ブロックを含んでいる、リスト０中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット１２２は動きベクトルを異なる精度に生成し得る。例えば、動き推定ユニット１２２は、１／４サンプル精度、１／８サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって識別された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００８３】
[0093]  ＰＵがＢスライス中にある場合、ＰＵを含むピクチャは、「リスト０」および「リスト１」と呼ばれる参照ピクチャの２つのリストと関連付けられ得る。いくつかの例では、Ｂスライスを含むピクチャは、リスト０とリスト１の組合せである、リストの組合せと関連付けられ得る。
【００８４】
[0094]  さらに、ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵについての単方向予測または双方向予測を行い得る。動き推定ユニット１２２が、ＰＵについての単方向予測を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０またはリスト１の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含んでいる、リスト０またはリスト１中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト０中の参照ピクチャを示すか、リスト１中の参照ピクチャを示すかを示し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００８５】
[0095]  動き推定ユニット１２２が、ＰＵについての双方向予測を行うとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得、また、ＰＵのための別の参照ブロックについて、リスト１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含んでいる、リスト０およびリスト１中の参照ピクチャを示す参照インデックスと、参照ブロックとＰＵの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報としてＰＵの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００８６】
[0096]  図８〜図１０に関して以下でさらに説明するように、予測ユニット１００は、図８〜図１０に示されている方法を行うことによって動き推定を行うように構成され得る。
【００８７】
[0097]  いくつかの例では、動き推定ユニット１２２は、ＰＵの動き情報のフルセットをエントロピー符号化ユニット１１６に出力しない。そうではなく、動き推定ユニット１２２は、別のＰＵの動き情報を参照して、ＰＵの動き情報をシグナリングし得る。例えば、動き推定ユニット１２２は、ＰＵの動き情報が、隣接ＰＵの動き情報と十分に類似していると判断し得る。この例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、ＰＵが隣接ＰＵと同じ動き情報を有することをビデオデコーダ３０に示す値を示し得る。別の例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、隣接ＰＵと動きベクトル差分（ＭＶＤ：motion vector difference）とを識別し得る。動きベクトル差分は、ＰＵの動きベクトルと、示される隣接ＰＵの動きベクトルとの間の差分を示す。ビデオデコーダ３０は、示される隣接ＰＵの動きベクトルと、動きベクトル差分とを使用して、ＰＵの動きベクトルを判断し得る。第２のＰＵの動き情報をシグナリングするときに第１のＰＵの動き情報を参照することによって、ビデオエンコーダ２０は、より少数のビットを使用して、第２のＰＵの動き情報をシグナリングすることが可能であり得る。
【００８８】
[0098]  ＣＵに対して符号化演算を行うことの一部として、イントラ予測ユニット１２６は、ＣＵのＰＵに対してイントラ予測を行い得る。イントラ予測は空間的な圧縮を実現し得る。イントラ予測ユニット１２６がＰＵに対してイントラ予測を行うとき、イントラ予測ユニット１２６は、同じピクチャ中の他のＰＵの復号サンプルに基づいて、ＰＵの予測データを生成し得る。ＰＵの予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を行い得る。
【００８９】
[0099]  ＰＵに対してイントラ予測を行うために、イントラ予測ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵの予測データの複数のセットを生成し得る。イントラ予測ユニット１２６が、イントラ予測モードを使用してＰＵの予測データのセットを生成するとき、イントラ予測ユニット１２６は、イントラ予測モードに関連付けられた方向および／または勾配で、隣接ＰＵのビデオブロックからＰＵのビデオブロックにわたって、サンプルを延ばし得る。隣接ＰＵは、ＰＵ、ＣＵ、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測ユニット１２６は、ＰＵのサイズに応じて、様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用し得る。
【００９０】
[00100]  予測ユニット１００は、ＰＵについての、動き補償ユニット１２４によって生成された予測データ、またはＰＵについての、イントラ予測ユニット１２６によって生成された予測データの中から、ＰＵの予測データを選択し得る。いくつかの例では、予測ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＰＵの予測データを選択する。
【００９１】
[00101]  予測ユニット１００が、イントラ予測ユニット１２６によって生成された予測データを選択する場合、予測ユニット１００は、ＰＵの予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モードをシグナリングし得る。予測ユニット１００は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。例えば、選択されたイントラ予測モードは、隣接ＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接ＰＵのイントラ予測モードは現在ＰＵに対して最尤モード(most probable mode)であり得る。従って、予測ユニット１００は、選択されたイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示すための、シンタックス要素を生成し得る。
【００９２】
[00102]  予測ユニット１００がＣＵのＰＵの予測データを選択した後、残差生成ユニット１０２は、ＣＵのビデオブロックからＣＵのＰＵの予測ビデオブロックを差し引くことによって、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのビデオブロック中のサンプルの異なるサンプル成分に対応する、２Ｄ残差ビデオブロックを含み得る。例えば、残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのルミナンス成分と、ＣＵの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、ＣＵの残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのクロミナンス成分と、ＣＵの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【００９３】
[00103]  予測ユニット１００は、４分木区分を行って、ＣＵの残差ビデオブロックをサブブロックに区分し得る。各分割されていない残差ビデオブロックは、ＣＵの異なるＴＵに関連付けられ得る。ＣＵのＴＵに関連付けられた残差ビデオブロックのサイズおよび位置は、ＣＵのＰＵに関連付けられたビデオブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。ＣＵのＴＵはＲＱＴのリーフノードに対応し得る。
【００９４】
[00104]  変換ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための１つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の２Ｄ行列であり得る。変換ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに様々な変換を適用し得る。例えば、変換ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を、ＴＵに関連付けられた残差ビデオブロックに適用し得る。
【００９５】
[00105]  変換ユニット１０４が、ＴＵに関連付けられた変換係数ブロックを生成した後、量子化ユニット１０６は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット１０６は、ＣＵに関連付けられたＱＰ値に基づいて、ＣＵのＴＵに関連付けられた変換係数ブロックを量子化し得る。
【００９６】
[00106]  ビデオエンコーダ２０は、様々な方法でＱＰ値をＣＵに関連付け得る。例えば、ビデオエンコーダ２０は、ＣＵに関連付けられたツリーブロックに対して、レートひずみ分析を行い得る。レートひずみ分析では、ビデオエンコーダ２０は、ツリーブロックに対して符号化演算を複数回行うことによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオエンコーダ２０がツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ２０は、異なるＱＰ値をＣＵに関連付け得る。ビデオエンコーダ２０は、最小のビットレートおよびひずみメトリックを有するツリーブロックのコード化表現で所与のＱＰ値がＣＵに関連付けられるとき、所与のＱＰ値がＣＵに関連付けられることをシグナリングし得る。
【００９７】
[00107]  逆量子化ユニット１０８および逆変換ユニット１１０は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成ユニット１１２は、再構成された残差ビデオブロックを、予測ユニット１００によって生成された１つまたは複数の予測ビデオブロックからの対応するサンプルに追加して、ＴＵに関連付けられた再構成されたビデオブロックを生成し得る。このようにＣＵの各ＴＵのためのビデオブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのビデオブロックを再構成し得る。
【００９８】
[00108]  再構成ユニット１１２がＣＵのビデオブロックを再構成した後、フィルタユニット１１３は、ＣＵに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するためにデブロッキング演算を行い得る。１つまたは複数のデブロッキング演算を行った後、フィルタユニット１１３は、復号ピクチャバッファ１１４にＣＵの再構成されたビデオブロックを記憶し得る。動き推定ユニット１２２および動き補償ユニット１２４は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのＰＵに対してインター予測を行い得る。さらに、イントラ予測ユニット１２６は、復号ピクチャバッファ１１４中の再構成されたビデオブロックを使用して、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を行い得る。
【００９９】
[00109]  エントロピー符号化ユニット１１６は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット１１６は、量子化ユニット１０６から変換係数ブロックを受信し得、予測ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１６がデータを受信するとき、エントロピー符号化ユニット１１６は、１つまたは複数のエントロピー符号化演算を行って、エントロピー符号化されたデータを生成し得る。例えば、ビデオエンコーダ２０は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）演算、ＣＡＢＡＣ演算、変数間（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ）コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して行い得る。エントロピー符号化ユニット１１６は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
【０１００】
[00110]  データに対してエントロピー符号化演算を行うことの一部として、エントロピー符号化ユニット１１６は、コンテキストモデルを選択し得る。エントロピー符号化ユニット１１６がＣＡＢＡＣ演算を行っている場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。ＣＡＢＡＣのコンテキストでは、「ビン」という用語は、シンタックス要素の２値化されたバージョンのビットを指すために使用される。
【０１０１】
ビデオデコーダ
[00111]  図３は、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、動き補償ユニット１６２および／またはイントラ予測ユニット１６４は、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加としてまたは代わりに、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
【０１０２】
[00112]  図３の例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、エントロピー復号ユニット１５０と、予測ユニット１５２と、逆量子化ユニット１５４と、逆変換ユニット１５６と、再構成ユニット１５８と、フィルタユニット１５９と、復号ピクチャバッファ１６０とを含む。予測ユニット１５２は、動き補償ユニット１６２と、イントラ予測ユニット１６４とを含む。いくつかの例では、ビデオデコーダ３０は、図２のビデオエンコーダ２０に関して説明された符号化経路とは全般に逆の復号経路を行い得る。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１０３】
[00113]  ビデオデコーダ３０は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは複数のシンタックス要素を含み得る。ビデオデコーダ３０がビットストリームを受信したとき、エントロピー復号ユニット１５０は、ビットストリームに対してパース演算を行い得る。ビットストリームに対してパース演算を行った結果として、エントロピー復号ユニット１５０は、ビットストリームからシンタックス要素を抽出し得る。パース演算を行うことの一部として、エントロピー復号ユニット１５０は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測ユニット１５２、逆量子化ユニット１５４、逆変換ユニット１５６、再構成ユニット１５８、およびフィルタユニット１５９は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を行い得る。
【０１０４】
[00114]  上記で説明したように、ビットストリームは、一連のＮＡＬユニットを備え得る。ビットストリームのＮＡＬユニットは、シーケンスパラメータセットＮＡＬユニット、ピクチャパラメータセットＮＡＬユニット、ＳＥＩ  ＮＡＬユニットなどを含み得る。ビットストリームに対してパース演算を行うことの一部として、エントロピー復号ユニット１５０は、シーケンスパラメータセットＮＡＬユニットからのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬユニットからのピクチャパラメータセット、ＳＥＩ  ＮＡＬユニットからのＳＥＩデータなどを抽出しエントロピー復号する、パース演算を行い得る。
【０１０５】
[00115]  さらに、ビットストリームのＮＡＬユニットはコード化スライスＮＡＬユニットを含み得る。ビットストリームに対してパース演算を行うことの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからコード化スライスを抽出しエントロピー復号する、パース演算を行い得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット１５０は、コード化されたスライスヘッダ中のシンタックス要素に対して、ＣＡＢＡＣ復号演算などのエントロピー復号演算を行って、スライスヘッダを再構成し得る。
【０１０６】
[00116]  コード化スライスのＮＡＬユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット１５０は、スライスデータ中のコード化ＣＵからシンタックス要素を抽出するパース演算を行い得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット１５０は、次いで、シンタックス要素のうちのいくつかに対してＣＡＢＡＣ復号演算を行い得る。
【０１０７】
[00117]  エントロピー復号ユニット１５０が区分されていないＣＵに対してパース演算を行った後、ビデオデコーダ３０は、区分されていないＣＵに対して再構成演算を行い得る。区分されていないＣＵに対して再構成演算を行うために、ビデオデコーダ３０はＣＵの各ＴＵに対して再構成演算を行い得る。ＣＵの各ＴＵについて再構成演算を行うことによって、ビデオデコーダ３０は、ＣＵに関連付けられた残差ビデオブロックを再構成し得る。
【０１０８】
[00118]  ＴＵに対して再構成演算を行うことの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた変換係数ブロックを逆量子化（inverse quantize）、例えば、逆量子化（de-quantize）し得る。逆量子化ユニット１５４は、ＨＥＶＣ用に提案された、またはＨ．２６４復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化ユニット１５４は、量子化の程度を判断し、同様に、逆量子化ユニット１５４が適用するべき逆量子化の程度を判断するために、変換係数ブロックのＣＵのためにビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用し得る。
【０１０９】
[00119]  逆量子化ユニット１５４が変換係数ブロックを逆量子化した後、逆変換ユニット１５６は、変換係数ブロックに関連付けられたＴＵのための残差ビデオブロックを生成し得る。逆変換ユニット１５６は、ＴＵのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。例えば、逆変換ユニット１５６は、変換係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット１５６は、ビデオエンコーダ２０からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を判断し得る。そのような例では、逆変換ユニット１５６は、変換係数ブロックに関連付けられたツリーブロックの４分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を判断し得る。他の例では、逆変換ユニット１５６は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換ユニット１５６はカスケード逆変換を適用し得る。
【０１１０】
[00120]  いくつかの例では、動き補償ユニット１６２は、補間フィルタに基づく補間を行うことによって、ＰＵの予測ビデオブロックを改良し得る。サブサンプル精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット１６２は、ＰＵの予測ビデオブロックの生成中にビデオエンコーダ２０によって使用された同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルについての補間値を計算し得る。動き補償ユニット１６２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
【０１１１】
[00121]  図８〜図１０に関して以下でさらに説明するように、予測ユニット１５２（例えば、動き補償ユニット１６２を介して）は、図８〜図１０に示されている方法を行うことによって動き補償を行い得る。
【０１１２】
[00122]  ＰＵが、イントラ予測を使用して符号化される場合、イントラ予測ユニット１６４は、ＰＵのための予測ビデオブロックを生成するためにイントラ予測を行い得る。例えば、イントラ予測ユニット１６４は、ビットストリーム中のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを判断し得る。ビットストリームは、ＰＵのイントラ予測モードを判断するためにイントラ予測ユニット１６４が使用し得るシンタックス要素を含み得る。
【０１１３】
[00123]  いくつかの事例では、シンタックス要素は、イントラ予測ユニット１６４が別のＰＵのイントラ予測モードを使用して現在ＰＵのイントラ予測モードを判断するべきであることを示し得る。例えば、現在ＰＵのイントラ予測モードは隣接ＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接ＰＵのイントラ予測モードは現在ＰＵに対して最尤モードであり得る。従って、この例では、ビットストリームは、ＰＵのイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット１６４は、次いで、イントラ予測モードを使用して、空間的に隣接するＰＵのビデオブロックに基づいて、ＰＵの予測データ（例えば、予測サンプル）を生成し得る。
【０１１４】
[00124]  再構成ユニット１５８は、適用可能なとき、ＣＵのＴＵに関連付けられた残差ビデオブロックとＣＵのＰＵの予測ビデオブロックとを使用して、例えば、イントラ予測データまたはインター予測データのいずれかを使用して、ＣＵのビデオブロックを再構成し得る。従って、ビデオデコーダ３０は、ビットストリーム中のシンタックス要素に基づいて、予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成し得る。
【０１１５】
[00125]  再構成ユニット１５８がＣＵのビデオブロックを再構成した後、フィルタユニット１５９は、デブロッキング演算を行って、ＣＵに関連付けられたブロッキングアーティファクトを低減し得る。フィルタユニット１５９がデブロッキング演算を行ってＣＵに関連付けられたブロッキングアーティファクトを低減した後、ビデオデコーダ３０は、復号ピクチャバッファ１６０にＣＵのビデオブロックを記憶し得る。復号ピクチャバッファ１６０は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。例えば、ビデオデコーダ３０は、復号ピクチャバッファ１６０中のビデオブロックに基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を行い得る。
【０１１６】
候補リスト構成
[00126]  図４Ａは、予測されるべきサブブロック４００の一例を示しており、図４Ｂは、サブブロック４００のための候補動きベクトルのリスト４１０（例えば、マージ候補リスト）を示す概念図である。ＡＭＶＰ候補リストは、図４Ｂに示されているように同様に導出され得る。サブブロック４００の例としては、限定はしないが、最大コーディングユニット（ＬＣＵ）、コーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、変換ユニット（ＴＵ）、または任意のサブブロックレベルがある。サブブロック４００は、より大きいブロックの一部分であり得る（従ってサブブロックと呼ばれる）。例えば、サブブロック４００はＣＵのＰＵであり得る。この例では、ＣＵは現在ブロックと呼ばれることがあり、ＰＵはサブブロックと呼ばれることがある。現在ブロックは１つまたは複数のサブブロックを含み得る。しかしながら、サブブロック４００が可能な最大のブロックであることは可能であり得、そのような場合、サブブロック４００は単にブロックと見なされ得る。
【０１１７】
[00127]  図４Ａでは、ＬＡ、Ｌ、ＢＬ、ＡおよびＲＡはサブブロック４００の隣接ブロックを指す。これらの隣接ブロックの各々についての動きベクトルは潜在的にマージリスト４１０のための候補であり得る。例えば、図４Ｂは空間動きベクトル４１１〜４１４を示している。これらの動きベクトルの各々は、図４Ａに示されている隣接ブロックＬＡ、Ｌ、ＢＬ、ＡおよびＲＡのうちの１つのための動きベクトルに対応し得る。
【０１１８】
[00128]  図４ＡはブロックＴを示している。このブロックＴは、それがサブブロック４００の隣接ブロックであることを意味すると解釈されるべきでない。そうではなく、このブロックＴはサブブロック４００の時間的コロケートブロックを指す。時間的コロケートブロックは、現在ブロック（例えば、サブブロック４００）を含むピクチャ以外のピクチャ（例えば、同じレイヤまたはビュー中の別のピクチャ、あるいはベースレイヤまたはベースビュー中の別のピクチャ）中に常駐する。時間的コロケートブロックは、前記他のピクチャ中の、サブブロック４００がそれのピクチャ中に位置するところと同じ位置に位置し得る。例えば、サブブロック４００が第１のピクチャ中に位置する場合、時間的コロケートブロックは第２のピクチャ中に位置する。ブロックＴは、時間動きベクトル予測子（ＴＭＶＰ）があることを示し得る。
【０１１９】
[00129]  いくつかの実施形態では、ブロックＴはコロケートブロックを指すことがあり、ただし、そのコロケートブロックは、サブブロック４００を含むピクチャ（例えば、第１のピクチャ）とは異なるレイヤ中のピクチャ（例えば、第２のピクチャ）中に位置する。他の実施形態では、ブロックＴはコロケートブロックを指すことがあり、ただし、そのコロケートブロックは、サブブロック４００を含むピクチャ（例えば、第１のピクチャ）とは異なるビュー中のピクチャ（例えば、第２のピクチャ）中に位置する。
【０１２０】
[00130]  図４Ｂに示されているように、マージリスト４１０はＴＭＶＰ４１５を含み得る。ＡＭＶＰのためのリストは同様に導出され得る。ＴＭＶＰ４１５は第２のピクチャ中の時間的コロケートブロックのための動きベクトルである。いくつかの実施形態では、図４Ｂに示されているリスト４１０などのリストは、別のレイヤまたは別のビュー中のコロケートブロックのための動きベクトルを含み得る。
【０１２１】
[00131]  いくつかの事例では、ビデオコーダ（例えば、エンコーダまたはデコーダ）は、ビデオコーダがサブブロック４００をコーディング（例えば、符号化または復号）できるように第２のピクチャについてのある情報を決定する必要があり得る。例えば、ビデオコーダが第２のピクチャについてそのような情報を決定すると、ビデオコーダは、第２のピクチャ中にあるコロケートブロックのための動きベクトルがどこを指すかを決定できる。ビデオコーダが、コロケートブロックのための動きベクトルがどこを指すかを決定した後、ビデオコーダは、コロケートブロックの動きベクトルが指すブロックに基づいてサブブロック４００をコーディングし得る。従って、ビデオコーダは、異なるレイヤまたはビュー中のそれのコロケートブロックの動き情報を使用してサブブロック４００をコーディングし得る。
【０１２２】
[00132]  第２のピクチャについて決定されたそのような情報は参照フレーム（例えば、ピクチャ）インデックスであり得る。例えば、サブブロック４００はＰＵであり得る。現在のＨＥＶＣテストモデルでは、ＴＭＶＰ候補のための（参照インデックスとも呼ばれる）参照フレームインデックスは、図４Ａ中のロケーションＬにおける左ネイバーＰＵの（１つまたは複数の）参照インデックスから導出される。ロケーションＬにおける左ネイバーＰＵの参照インデックスが利用可能でない場合、例えば、ＰＵが単予測であるか、またはそれがイントラコーディングされる場合、その参照インデックスは０に設定される。
【０１２３】
[00133]  現在のＨＥＶＣテストモデルでは、潜在的非効率性があり得る。例えば、マージ候補リストがサブブロックレベルごとに生成される必要があり得る。単に説明のためにおよび理解を容易にするために、本技法について、ＣＵ中のＰＵの例を用いて説明する。しかしながら、これらの技法は、ＬＣＵ、ＣＵ、ＰＵ、ＴＵ、ＬＣＵのグループ、ＣＵのグループ、ＰＵのグループ、およびＴＵのグループ、または任意のサブブロックレベルに適用可能である。
【０１２４】
[00134]  リストはＣＵ中のＰＵごとに生成され得、従って、コロケートブロック（例えば、時間ピクチャ中のブロック、異なるビュー中のピクチャ中のブロック、または異なるレイヤ中のピクチャ中のブロック）のための動きベクトルもＰＵごとに導出され得る。コロケートブロックのための動きベクトルを決定することは、そのような決定が、参照フレーム中に対応するブロック（例えば、コロケートブロック）を配置することと、ピクチャ順序カウント（ＰＯＣ）距離に基づいてブロックの動きベクトル（ＭＶ）をスケーリングすることと、参照フレーム（例えば、ピクチャ）インデックスを導出することとを含むので、複雑であり得る。
【０１２５】
[00135]  いくつかの実施形態では、ビデオコーダ（例えば、エンコーダまたはデコーダ）は、ＣＵごとに１回のみコロケートブロックのための動きベクトル情報を導出し、それをＣＵ中の全てのＰＵのための共通動きベクトル予測子候補として使用し得る。いくつかの実施形態では、コロケートブロックから１つの動きベクトル候補のみを生成することと、全てのＰＵについてそれを共有することとが複雑さを潜在的に低減し得る。
【０１２６】
[00136]  いくつかの実施形態では、空間ＭＶ候補ロケーションは、ＨＥＶＣワーキングドラフト中の現在の定義において指定されたものと同じであり得る。言い換えれば、ＣＵ中の各ＰＵは空間ＭＶ候補の異なるセットを有し得る。しかしながら、いくつかの実施形態では、単一のコロケート動きベクトル予測子候補がＣＵ中のＰＵごとに使用され得る。「コロケート動きベクトル予測子」という用語は、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトルを意味する。
【０１２７】
[00137]  図５Ａ〜図５Ｉは、異なるパーティションモードについての候補ロケーションの例を示すブロック図である。図５Ａ〜図５Ｉは、異なるパーティションモードについての単一のコロケートブロック候補を示し得る。また、図５Ａ〜図５Ｉには詳細に示されていないが、本技法はＡＭＰ（非対称動きパーティション）モードまたは他のブロック区分にも適用され得る。また、これらの例では、本技法は、任意のパーティション構成（例えば、パーティションの任意のサイズおよび任意の数）に適用され得る。例えば、パーティションはパーティションユニットまたは予測ユニットと見なされ得る。
【０１２８】
[00138]  例えば、図５Ａ〜図５Ｉの例では、第２のピクチャ（例えば、サブブロック４００を含んでいるピクチャ以外のピクチャ）中の（例えば、図４Ａに示された）サブブロック４００のコロケートブロックのロケーションは、パーティションモードにかかわらず、同じであり得る。これは、図５Ａ〜図５Ｉの各々において同じ位置に位置するブロックＴによって示されている。また、いくつかの例では、第２のピクチャは、（例えば、図４Ａに示された）空間ネイバーＬの動きベクトルによって参照される参照ピクチャに基づいて識別され得る。しかしながら、本開示の態様はそのように限定されず、空間ネイバーサブブロックのいずれか１つは、第２のピクチャを識別するために使用され得る。その上、同じく、時間ピクチャ、別のレイヤ（例えば、ベースレイヤ）中のピクチャ、または別のビュー（例えば、ベースビュー）中のピクチャであり得る第２のピクチャの識別情報をシグナリングすることが可能であり得る。
【０１２９】
[00139]  このようにして、ビデオコーダは第２のピクチャを識別し得る。ビデオコーダは、次いで、第１のピクチャ中の現在ブロックとコロケートされた第２のピクチャ内のコロケートブロックを識別し得る。ビデオコーダは、第２のピクチャ内のコロケートブロックの動きベクトルを決定し、その動きベクトルを、第１のピクチャの現在ブロック内のサブブロックの全てのためのコロケート動きベクトル予測子候補として割り当て得る。この場合も、「コロケート動きベクトル予測子」は、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトルを意味する。
【０１３０】
[00140]  例えば、図５Ａ〜図５Ｉは、１つのサブブロック（例えば、図５Ａ中のＰＵ０）、２つのサブブロック（例えば、図５Ｂ〜図５Ｅ中のＰＵ０およびＰＵ１）、または４つのサブブロック（例えば、図５Ｆ〜図５Ｉ中のＰＵ０〜ＰＵ３）を有する現在ブロック（例えば、ＣＵ）を示している。例えば、上記で説明したように、図５Ａ〜図５ＩのＣＵは第１のピクチャ中にある。いくつかの実施形態では、ビデオコーダは、図５Ａ〜図５Ｉに示されているパーティションモードの各々について、第２のピクチャ中のコロケートブロックに基づいてＣＵ全体のためのコロケート動きベクトル予測子を識別し得る。ビデオコーダは、次いで、パーティション（例えば、パーティションのサイズおよび数）にかかわらず、このコロケート動きベクトル予測子をＰＵの各々に割り当て得る。
【０１３１】
[00141]  本開示の一実施形態によれば、図５Ａ〜図５Ｉでは、パーティションモードにかかわらず、コロケートブロックのロケーションは常に固定であり得る。図５Ａ〜図５Ｉに示されているロケーションは一例にすぎないことを理解されたい。他の実施形態では、現在ＣＵの近隣にある他のロケーションは、コロケート動きベクトル予測子を決定するためのロケーションとして使用され得る。いくつかの実施形態では、パーティションモードにかかわらず単一コロケートブロックロケーションを有する利点は、全てのパーティションモードが、コロケート動きベクトル予測子（例えば、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトル）を導出するために同じモジュールを共有できることであり得る。
【０１３２】
[00142]  いくつかの実施形態では、単一コロケートブロックのロケーションは、パーティションモードに基づいて異なり得る。例えば、所与のパーティションモードの場合、ＣＵ中の全てのＰＵの間で共有されるべきコロケート動きベクトル予測子を導出するために、固定ロケーションが使用され得る。しかしながら、異なるパーティションモードの場合、そのパーティションモードを有するＣＵ中の全てのＰＵの間で共有されるべきコロケート動きベクトル予測子を導出するために、異なる固定ロケーションが使用され得る。
【０１３３】
[00143]  例えば、２Ｎ×２Ｎモードの場合、図５Ａに示されているコロケートブロックのロケーションが使用され得る。しかしながら、Ｎ×２Ｎモードの場合、図６Ａおよび図６Ｂに示されているように、コロケートブロックの異なるロケーションが使用され得る。図６Ａおよび図６Ｂは、異なるパーティションユニットについての異なるマージ候補ロケーションの例を示すブロック図であり、それはＡＭＶＰモードの場合に適用され得る。図６Ａおよび図６Ｂは、Ｎ×２ＮモードのＰＵ０のための単一コロケートブロックロケーションを示し得る。図５Ａ〜図５Ｉと同様に、図６Ａおよび図６Ｂに示されているコロケートブロックのロケーションは一例にすぎない。現在ＣＵの近隣にある他のロケーションも、このパーティションモードの下でコロケート動きベクトル予測子（例えば、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトル）を決定するためのロケーションとして使用され得る。
【０１３４】
[00144]  上記で説明したように、いくつかの実施形態では、コロケートブロックのロケーションはパーティションモードに基づき得る。図６Ｃ〜図６Ｅは、パーティションモードに基づく、異なるマージ候補ロケーションの例を示すブロック図であり、それはＡＭＶＰモードのために適用され得る。図６Ｃ〜図６Ｅに示されているように、（例えば、時間的コロケートブロックを表す）Ｔブロックのロケーションは、図６Ｃ〜図６Ｅの様々なパーティションモードの各々について異なる。
【０１３５】
[00145]  上記で説明したように、いくつかの実施形態では、コロケートブロックのロケーションはシグナリングされ得る。例えば、ビデオエンコーダはコロケートブロックのロケーションをシグナリングし得、ビデオデコーダはコロケートブロックのロケーションを受信し得る。ロケーションをシグナリングするために、ビデオエンコーダはロケーションを符号化し得、ロケーションを受信するために、ビデオデコーダは符号化信号を復号し得る。このプロセスは、一般に、ビデオコーダがロケーションをコーディングすること（例えば、ビデオエンコーダが信号を符号化すること、およびビデオデコーダが信号を復号すること）と呼ばれ得る。コロケートブロックのロケーションは、ＣＵヘッダ、スライスヘッダ、ピクチャレベル、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、または他のレベルでシグナリングされ得る。
【０１３６】
[00146]  本開示の技法はまた、ＴＭＶＰのための参照インデックスをリセットするための機構を提供し得るが、これらの技法は、コロケートブロックがベースレイヤまたはベースビュー中に位置する例に適用可能であり得る。例えば、現在のＨＥＶＣテストモデル（ＨＭ）では、参照リストＬ０と参照リストＬ１の両方について、現在ＰＵのＴＭＶＰ参照インデックスは、それの左ネイバーＰＵの参照インデックスから導出される。いくつかの例では、それの左ネイバーＰＵの参照インデックスが利用可能でない場合、ＴＭＶＰのための対応する参照インデックスは０に設定され、他の場合、ＴＭＶＰのための対応する参照インデックスは、それの左ネイバーＰＵの参照インデックスに等しく設定される。
【０１３７】
[00147]  本開示で説明する例示的な技法では、現在ＰＵのための（例えば、２つのピクチャに関して予測された）双予測ＴＭＶＰのための参照インデックスを導出するときに、それの左ネイバーＰＵの１つの参照リスト、例えば、Ｌ０のための参照インデックスが利用可能でない場合、ＴＭＶＰのための対応する参照インデックスは即時に０に設定されない。代わりに、左ネイバーＰＵの別のリスト、例えば、Ｌ１からの参照インデックスを検査することは有益であり得る。そのような参照インデックスが利用可能である場合、ビデオコーダは、その参照インデックス値を、現在リスト、例えば、Ｌ０のためのＴＭＶＰ参照インデックスに割り当て得る。
【０１３８】
[00148]  １つの可能な実装形態は次のようであり得る。
【０１３９】
１．左ＰＵから参照インデックスｒｅｆＩｄｘ０およびｒｅｆＩｄｘ１を導出する。
【０１４０】
２．ｒｅｆＩｄｘ０が利用可能でないが、ｒｅｆＩｄｘ１が利用可能である場合、ｒｅｆＩｄｘ０＝ｒｅｆＩｄｘ１に設定し、他の場合、ｒｅｆＩｄｘ０＝０に設定する。
【０１４１】
３．ｒｅｆＩｄｘ１が利用可能でないが、ｒｅｆＩｄｘ０が利用可能である場合、ｒｅｆＩｄｘ１＝ｒｅｆＩｄｘ０に設定し、他の場合、ｒｅｆＩｄｘ１＝０に設定する。
【０１４２】
[00149]  上記の例では、左ネイバーＰＵはＴＭＶＰ参照インデックス導出のために使用される。しかしながら、左ネイバーＰＵ以外の異なる空間または時間ロケーションがＴＭＶＰ参照インデックス導出のために使用される場合、本開示の技法はそのような場合にも適用可能である。
【０１４３】
並列動き推定（ＰＭＥ）
[00150]  現在のＨＥＶＣでは、２つの動きベクトル候補リスト構成プロセスがあり、１つは通常プロセスであり、もう１つは並列動き推定（ＰＭＥ）スタイルプロセスである。通常候補リスト構成プロセスの場合、候補リスト構成から、利用不可能な動きベクトル（ＭＶ）候補がスキップされる。例えば、対応するブロックが動き情報を有しない（例えば、イントラコーディングされた）か、あるいはまだコーディングされていないか、あるいは動き情報が（プルーニングアウトされたＭＶ候補としても知られる）リスト中にすでに挿入されたＭＶ候補と同様であるかまたはそれに等しい場合、ＭＶ候補は利用不可能であり得る。
【０１４４】
[00151]  ＰＭＥスタイルの候補リスト構成プロセスは並列動き推定のために使用される。例えば、並列動き推定（ＰＭＥ）は、ＰＭＥエリアのサイズをシグナリングすることによって使用可能であり得、ＰＭＥエリアのサイズが０でない、例えば、サイズが４×４よりも大きい場合、ＰＭＥスタイルマージまたはＡＭＶＰ候補リスト構成は、図７上に示されているようＰＭＥ領域７００の内部に位置するブロックのために適用される。
【０１４５】
[00152]  ＰＭＥスタイル候補リスト構成と通常候補リスト構成との間の差は、ＰＭＥ領域（例えば、図７に示されているＰＭＥ領域７００）の完全に内側に位置する空間候補が候補として使用され得ないということである。ＰＭＥ領域の外側にある空間候補のみが使用され得る。例えば、図７のＰＭＥ領域７００の境界に位置するブロック（例えば、図７中のＣＵ「Ａ」および「Ｂ」）は、図７中のＰＭＥ領域７００の外側に位置する空間ブロックＡＬ、Ｌ、ＡおよびＡＲによって示されているように、ＰＭＥ領域７００の外側にある空間候補を有し得る。ＰＭＥ領域７００の境界を共有しないブロック（例えば、ＣＵ「Ｃ」）は、時間動きベクトル予測子（ＴＭＶＰ）候補のみを有することができる。全ての空間および時間候補が追加された後に候補リストが依然として完了していない（例えば、リストが空であるか、または所定の数よりも少ない候補を含んでいる）場合、候補リストに人工ＭＶ候補（例えば、０，０ベクトル）が追加され得る。
【０１４６】
[00153]  ＰＭＥスタイル候補リスト構成がＰＭＥ領域内の候補リスト依存性をなくすので、動き推定は特定のＰＭＥ領域のために並列に行われ得る。
【０１４７】
[00154]  例えば、ＭＥＲ（動き推定領域、例えば、図７に示されている領域７００）が使用可能である、８×８ＣＵなどの特定のブロックサイズの場合、単一候補リスト構成が適用され得る（例えば、ＣＵまたはＣＵのグループ中の全てのＰＵについて１回のみ、空間候補が生成される）。すなわち、任意の影響を受けるＣＵの場合、ＰＵのための空間候補はＣＵ内の全てのＰＵについて１回のみ導出され、ＴＭＶＰのみが各ＰＵについて導出される。例えば、ＣＵが８×８であり、それが２Ｎ×Ｎパーティションを用いてコーディングされる場合、ＰＵ１およびＰＵ２のための空間候補は、それが８×８  ２Ｎ×２ＮのＣＵの場合であるとき１回導出され、ＴＭＶＰのみが各ＰＵについて導出される。
【０１４８】
ベースレイヤ動きベクトル
[00155]  ＨＥＶＣ拡張では、ベースレイヤ動きベクトル（ＢＬ  ＭＶ）は、マージモードまたはＡＭＶＰモードの場合、候補として使用され得る。しかしながら、ＢＬ  ＭＶが候補リスト中に含められ、単一候補リスト生成（例えば、ＣＵまたはＣＵのグループの全てのＰＵについて１回のみ空間候補が生成される）が、動き推定領域（ＭＥＲ）とともに使用可能であるとき、それらのＢＬ  ＭＶを追加する方法は定義される必要がある。
【０１４９】
[00156]  本明細書で開示する実施形態は、ＳＶＣ、ＭＶＣ、または３ＤＶなどのＨＥＶＣ拡張に適用可能である。いくつかの実施形態では、ベースレイヤ／ビューからの動きフィールドは、空間および時間候補に加えて、エンハンスメントレイヤ／ビューをコーディング（例えば、符号化または復号）するために使用され得る。ＳＶＣ事例の場合、ベースレイヤ動きフィールドは、空間アスペクト比に従ってスケーリングされ得、ベースレイヤとエンハンスメントレイヤとが異なる解像度を有する場合にそのスケーリングが適用されると仮定して、実施形態について説明する。３ＤＶおよびＭＶＣ事例の場合、ベースビューディスパリティ動きベクトルは、ＳＶＣ拡張のそれと同様の様式で適用され得る。
【０１５０】
[00157]  説明の目的で、ＳＶＣ拡張のための実施形態について説明する。しかしながら、他の実施形態は３ＤＶ、ＭＶＣまたは他の拡張を含み、ただし、現在ピクチャコーディングのために、追加の非空間および非時間動きフィールドが利用可能であり、本明細書で説明する技法は、同様の方法でそのような実施形態に適用され得る。
【０１５１】
[00158]  一実施形態では、単一候補リスト構成が使用可能であるときにＢＬ  ＭＶを生成および追加する振舞いを定義することを含む、コーディングシステムおよび方法が開示される。単一候補リスト構成はＭＥＲ（動き推定領域、例えば、図７の領域７００）なしに使用可能であり得ることを諒解されたい。しかしながら、現在のＨＥＶＣでは、単一リスト構成はＭＥＲと併せてのみ使用可能である。
【０１５２】
[00159]  図８は、本開示の一実施形態による、ビデオ情報をコーディングするための方法８００を示すフローチャートである。図８に示されている方法８００は、エンコーダ（例えば、図２に示されたビデオエンコーダ２０）、デコーダ（例えば、図３に示されたビデオデコーダ３０）、または他の構成要素によって行われ得る。便宜上、方法８００については、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
【０１５３】
[00160]  方法８００はブロック８０５において開始する。ブロック８１０において、コーダは、ベースレイヤ動きベクトル候補を生成するための振舞いを決定する。振舞いは、ベースレイヤ動きベクトル候補がどのように生成され、候補リストに追加されるべきかを指定し得る。例えば、そのような振舞いは予測ユニット（ＰＵ）ごとに指定され得る。いくつかの実施形態では、２つ以上のＢＬ  ＭＶが追加され得る。ブロック８１５において、コーダは、コーダによって決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在ＰＵのためのベースレイヤ動きベクトル候補を生成する。例えば、振舞いは、ＢＬ  ＭＶ候補が、ＰＵごとに、または特定のＣＵについてただ１回生成されるべきであることを指定し得る。ブロック８２０において、生成されたＢＬ  ＭＶ候補を候補リストに追加する。方法８００はブロック８２５において終了する。
【０１５４】
[00161]  上記で手短に説明したように、単一候補リスト生成の場合、（１つまたは複数の）ＢＬ  ＭＶが、いくつかの異なる方法で生成され、候補リストに追加され得る。一実施形態では、１つまたは複数のＢＬ  ＭＶ候補はＰＵごとに生成され、空間候補は特定のＣＵ（例えば、８×８）について１回のみ生成され、ＴＭＶＰは、同じく各ＰＵについて導出される。別の実施形態では、１つまたは複数のＢＬ  ＭＶ候補と空間候補とは特定のＣＵ（例えば、８×８）について１回のみ生成され、ＴＭＶＰは、同じく各ＰＵについて導出される。また別の実施形態では、１つまたは複数のＢＬ  ＭＶ候補と空間候補とＴＭＶＰとは、特定のＣＵ（例えば、８×８）について１回のみ生成される。従って、本開示の実施形態によれば、単一候補リスト構成の場合にＢＬ  ＭＶ候補が決定され、候補リストに追加されるとき、ＢＬ  ＭＶ候補を扱うための方法が定義される。一実施形態では、ＢＬ  ＭＶ候補は、空間候補、時間候補または他の候補として扱われ得る。
【０１５５】
[00162]  しかしながら、いくつかの実施形態では、全ての候補が候補リスト中に存在するとは限らない。例えば、対応するブロック（およびその隣接ブロック）がイントラコーディングされるので、空間候補および／またはＴＭＶＰは利用不可能であり得る。従って、上記で説明した候補の生成および導出は動き情報の利用可能性に左右される。
【０１５６】
ベースレイヤ動きベクトルの他の使用
例１：利用不可能な動きベクトル候補の場合、動き情報は、ベースレイヤからの対応するブロックから導出される。
【０１５７】
[00163]  例えば、ＰＭＥ領域の内側のブロックの場合、空間候補は利用可能でない。通常マージモードの場合、候補は、ネイバーブロックがイントラコーディングされる場合、利用可能でないことがある。
【０１５８】
[00164]  そのような利用不可能な空間候補ではなく、ベースレイヤ候補は、エンハンスメントレイヤ中の空間ネイバーブロックのロケーションに対応するベースレイヤコロケートブロックから導出され得る。例えば、左空間候補ではなく、ベースレイヤ中に位置するコロケートブロックの左候補が使用され得る。
【０１５９】
[00165]  例えば、マージリスト構成のシングルレイヤプロセスと同じプロセスが呼び出され得るが、単にエンハンスメントレイヤ中の現在ブロックの空間ネイバー候補を使用するのではなく、コロケートブロックの空間ネイバー候補が使用され得る。
【０１６０】
[00166]  代替的に、ベースレイヤから動き情報を導出するために、空間ネイバーのコロケートブロック以外のロケーションが使用され得る。概して、ベースレイヤ動き情報生成のために、コロケートブロックの内側または外側の任意のサブブロックが使用され得る。例えば、コロケートブロックの任意の中心サブブロックまたは任意のコーナーサブブロックが使用され得る。別の例では、ＴＭＶＰ生成と同様に、コロケートブロックの外側の右下サブブロックが使用され得る。
【０１６１】
[00167]  利用不可能なマージ候補とベースレイヤ動き候補との交換は、通常候補リスト構成のみ、またはＰＭＥスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
【０１６２】
例２：ＴＭＶＰはベースレイヤ動きベクトルと交換される
[00168]  空間候補交換に加えて（または代替的に）、利用不可能なＴＭＶＰ候補がベースレイヤ動きベクトル候補と交換され得る。同様に、任意のサブブロックが使用され得るが、単に統一の目的のために、コロケートブロックの外側の右下サブブロックがＴＭＶＰ交換のために使用され得る。
【０１６３】
[00169]  利用不可能なＴＭＶＰ候補とベースレイヤ動き候補との交換は、通常候補リスト構成のみ、またはＰＭＥスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
【０１６４】
[00170]  代替的に、ＴＭＶＰは、現在ＴＭＶＰがＰＭＥスタイルマージのためにのみ利用可能である場合でも、ベースレイヤ候補（例えば、上記の例において述べた右下）と交換され得る。別の実施形態では、このＴＭＶＰ交換は、ＰＭＥ領域のためにのみ行われ、例えば、境界共有のない、領域の完全に内側に位置するブロックのために行われる。これらのブロックの場合、通常空間候補が候補リスト構成に関与しないので、ＴＭＶＰも交換された場合、ベースレイヤ中のコロケートブロックを使用して完全な候補リスト構成が行われ得る。
【０１６５】
例３：動きベクトル候補を補足すること
[00171]  Ｂスライスの場合、動きベクトル候補が単方向である場合、ベースレイヤから別の方向が導出され得る。導出目的のために、任意のサブブロックが使用され得るが、統一目的のために、対応するコロケートブロックが使用され得る。
【０１６６】
[00172]  例えば、現在ブロックの空間左候補は、参照リストＬ０からの単方向ＭＶのみを有し得る。次いで、コロケートベースレイヤブロックの空間左候補からの参照リストＬ１のための動きベクトルが導出され、現在動きベクトル候補を補足し、それを双方向にし得る。双方向動き補償は単方向動き補償よりも優れていることがよく知られているので、それは性能を改善し得る。
【０１６７】
[00173]  ＴＭＶＰ事例の場合、ＭＶ導出のために、ベースレイヤ中のコロケートブロックの右下サブブロックが使用され得る。
【０１６８】
[00174]  動きベクトル候補を補足することは、通常候補リスト構成のみ、またはＰＭＥスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
【０１６９】
[00175]  図９は、ビデオ情報をコーディングするための方法９００を示すフローチャートである。図９に示されているステップは、エンコーダ（例えば、図２に示されたビデオエンコーダ２０）、デコーダ（例えば、図３に示されたビデオデコーダ３０）、または他の構成要素によって行われ得る。便宜上、ステップについては、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
【０１７０】
[00176]  方法９００はブロック９０５において開始する。ブロック９１０において、コーダは、ベースレイヤ動きベクトル候補が導出されるべきかどうかを決定する。例えば、上記で説明したように、そのような決定は、（例えば、ＰＭＥ領域のために、または隣接ブロックがイントラコーディングされるので）隣接ブロックの動き情報が利用不可能であるかどうかに基づいて行われ得る。別の例では、決定は、ＴＭＶＰがベースレイヤ動きベクトル候補と交換されるべきであるとき、ＰＭＥ領域内の現在ブロックのロケーション（例えば、そのブロックが、任意の境界をＰＭＥの境界と共有するようにＰＭＥ領域の完全に内側にあるかどうか）に基づいて行われ得る。ベースレイヤ動きベクトル候補が導出されるべきでないと決定された場合、方法９００はブロック９２５において終了する。ベースレイヤ動きベクトル候補が導出されるべきであると決定された場合、コーダは、図９のブロック９１５に示されているように、対応するベースレイヤブロックからベースレイヤ動きベクトル候補を導出する。例えば、対応するブロックは、ベースレイヤ中のコロケートブロック、またはベースレイヤ中のコロケートブロックの隣接ブロックであり得る。ブロック９２０において、コーダは、ベースレイヤ動きベクトル候補を、エンハンスメントレイヤ（または従属ビュー）中のブロックをコーディングするために使用されるべき候補リストに追加する。方法９００はブロック９２５において終了する。
【０１７１】
ブロックのグループのためのベースレイヤ情報を導出すること
[00177]  本開示で説明するように、ＳＶＣにおけるベースレイヤまたは３ＤＶ／ＭＶＣにおけるベースビューからのシンタックス情報は、（ＳＶＣの場合）エンハンスメントレイヤのコーディングのために使用されるか、または（３ＤＶ／ＭＶＣの場合）別のビューをコーディングするために使用され得る。例えば、ベースレイヤまたはベースビューからの動きベクトルおよび参照インデックスなどの動き情報は、マージ／ＡＭＶＰモードで動きベクトル候補として使用され得る。別の例では、ベースレイヤまたはベースビューからのイントラモードは、エンハンスメントレイヤまたは別のビューコーディング（例えば、従属ビュー）中の最尤モードまたはイントラモード予測子として使用され得る。
【０１７２】
[00178]  例えば、このベースレイヤまたはベースビュー情報はコロケートまたは対応するブロックから導出され、従って、小さいがあらゆるブロックは、不必要に複雑であり得るこの導出を必要とする。ベースレイヤ／ビュー情報がアクセスされなければならないので、さらなる複雑さがベースレイヤ／ビューシンタックスを使用することに関連し得る。また、エンハンスメントレイヤまたは従属ビューをコーディングするために１つまたは複数の動きベクトルが使用され得る前に、１つまたは複数の動きベクトルはスケーリングを必要とし得る。
【０１７３】
[00179]  本開示で説明する技法は、ベースレイヤ／ビューシンタックス情報を使用することから生じるさらなる複雑さに対処し得る。例えば、以下は、上述の問題に対処し得る例示的な技法（例えば、エンハンスメントレイヤまたは従属ビュー中のブロックを予測するためにベースレイヤ／ビュー情報を使用することに関係する複雑さに対処する技法）である。
【０１７４】
[00180]  一実施形態では、ベースレイヤ／ビュー情報は、エンハンスメントレイヤまたは拡張ビュー（例えば、従属ビュー）中のブロックまたはブロックのグループごとに１回導出され得る。いくつかの実施形態では、エンハンスメントレイヤ／ビュー（例えば、エンハンスメントレイヤまたは従属ビュー）中のブロック区分は、（ＨＥＶＣにおける２Ｎ×２Ｎ、Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×Ｎ、またはＡＭＰのような）区分モードによってシグナリングされ得るか、またはベースレイヤ／ビューパーティションから導出され得る。
【０１７５】
[00181]  一実施形態では、ベースレイヤ／ビューシンタックス導出がいくつかのブロックサイズについて制限され得る。拡張レイヤ／ビュー中のブロックまたはブロックのグループについて１回ベースレイヤ／ビューから動き情報を導出する技法と、いくつかのブロックサイズについてベースレイヤ／ビューシンタックス導出を制限する技法とは、別個にまたは一緒に実装され得ることを理解されたい。言い換えれば、上記の例示的な技法は相互排他的でなく、上記２つの例示的な技法のうちのいずれか一方を別個に実装するか、または本技法を組合せで実装することが可能であり得る。
【０１７６】
[00182]  従って、上記で説明したように、動き情報またはイントラモードなどの情報はベースレイヤから導出され、エンハンスメントレイヤ中の現在ブロック（例えば、予測ユニット）をコーディングするために使用され得る。いくつかの実施形態では、そのような導出は、予測ユニット（ＰＵ）ごとにではなく、コーディングユニット（ＣＵ）ごとに１回行われ得る。代替的に、ベースレイヤ／ビューシンタックス情報は、ＣＵのグループまたは最大コーディングユニット（ＬＣＵ）のグループごとに１回導出され得る。
【０１７７】
[00183]  ベースレイヤ／ビューシンタックス導出領域のサイズは、少なくともヘッダ（例えば、ＳＰＳ、ＰＰＳ、スライス）のうちの１つ中の高レベルフラグとしてシグナリングされ得る。また、ベースレイヤ／ビュー情報がブロックのグループごとに１回導出されるべきかどうかは、同じく少なくともヘッダ上の中の別の高レベルフラグを用いてシグナリングされるか、またはＬＣＵ／ＣＵなどのブロックレベルにおいてシグナリングされ得る。例えば、ベースレイヤ／ビュー情報を共有することになるブロックのグループを示す情報が、ヘッダ中でおよび／またはブロックレベルにおいてシグナリングされ得る。
【０１７８】
[00184]  エンハンスメントレイヤまたは別のビュー（例えば、拡張ビューと呼ばれることがある従属ビュー）中のブロックのグループのために使用されるベースレイヤ／ビューシンタックスは、ベースレイヤ／ビュー中のコロケートされたまたは対応する領域の任意のサブブロックから導出され得る。例えば、ベースレイヤ／ビュー中のコロケートされたまたは対応する領域は、エンハンスメントレイヤ／従属ビュー中のブロックのグループによって包含される領域の中心またはコーナーであり得る。代替または追加として、ベースレイヤ／ビューシンタックスは、コロケートされたまたは対応する領域の外側に導出され得る。
【０１７９】
[00185]  例えば、ベースレイヤ動き情報は、コロケートＣＵの外側の右下サブブロックから導出されるか、あるいは代替または追加として、ＣＵごとに１回コロケートＣＵの中心サブブロックから導出され、エンハンスメントレイヤ中のＣＵのＰＵごとに使用され得る。従属ビューのためのベースビュー動き情報を導出するために、同様の方法が適用され得る。イントラモードまたは他のシンタックス情報を導出するために、同様の方法が適用され得る。
【０１８０】
[00186]  例えば、現在エンハンスメントレイヤコーディングのために２つ以上のベースレイヤシンタックス要素が使用された場合、複雑さのより大きい低減が達成され得、同様の低減は、現在従属ビューコーディングのために使用されるベースビューシンタックス要素のために達成され得る。例えば、いくつかの他の技法（例えば、必ずしも本開示で説明する技法に従うとは限らない技法）では、複数のベースレイヤ／ビュー動き情報は、エンハンスメントレイヤまたは従属ビュー中のＰＵについてマージ／ＡＭＶＰモードで動き候補として使用され得、従って、２つ以上のベースレイヤ／ビュー動きベクトルが導出されなければならず、ＰＵごとにそれを行うことはわずらわしくなり得る。本開示で説明する技法によれば、この複数のベースレイヤ／ビュー動きベクトルは、エンハンスメントレイヤ／従属ビュー中のブロックのグループごとに１回、例えば、ＰＵごとにではなくＣＵについて（例えば、ＣＵ内の各ＰＵではなくＣＵについて）１回導出され得る。
【０１８１】
[00187]  上記で説明したベースレイヤ／ビューシンタックス導出複雑さ低減への追加または代替の実施形態として、ベースレイヤ／ビューシンタックス情報は、あるサイズのブロック（ＰＵまたはＣＵ）についてのみ、例えば、（例えば、所定の、または必要なときに計算される）しきい値よりも大きいサイズについて導出され得る。一実施形態では、現在ＰＵが８×４または４×８よりも大きい場合、ベースレイヤ／ビュー動き情報はそのブロックについて導出され、他の場合、ベースレイヤ／ビュー情報は、コーディングのためのエンハンスメントレイヤブロック／従属ビューブロックのために使用されない。
【０１８２】
[00188]  本明細書で説明する１つまたは複数のアイデア（例えば、あるサイズのブロックについてのみベースレイヤ／ビューシンタックスを導出することに基づく技法）は、ブロックのグループのためのベースレイヤ／ビューシンタックス導出のアイデアと組み合わせられ得る。例えば、しきい値を下回るいくつかのブロックの場合、ベースレイヤ／ビューシンタックスはブロックのグループについて導出され、通常のしきい値よりも大きいブロックの場合、ブロックごとまたはＰＵごとのベースレイヤ／ビューシンタックス導出が適用され得る。代替的に、しきい値よりも小さいブロックの場合、ベースレイヤ／ビュー情報は、そのようなブロックをコーディングするために使用されないことがあり、しきい値よりも大きいブロックの場合、ベースレイヤ／ビュー情報はブロックのグループごとに１回導出され得る（例えば、ＣＵベースの導出）。
【０１８３】
[00189]  上記の説明では、動き情報およびイントラモードを一例として使用した。本開示で説明する技法は他のシンタックス要素に適用可能である。また、本技法は、制限なしにＳＶＣおよび３ＤＶ／ＭＶＣ拡張のために適用可能であり得る。
【０１８４】
[00190]  図１０は、ビデオ情報をコーディングするための方法１０００を示すフローチャートである。図１０に示されている方法１０００は、エンコーダ（例えば、図２に示されたビデオエンコーダ２０）、デコーダ（例えば、図３に示されたビデオデコーダ３０）、または他の構成要素によって行われ得る。便宜上、方法１０００については、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
【０１８５】
[00191]  方法１０００はブロック１００５において開始する。ブロック１０１０において、コーダは、情報がベースレイヤから導出されるべきかどうかを決定する。コーダが、情報がベースレイヤから導出されるべきでないと決定した場合、方法１０００はブロック１０２５において終了する。コーダが、情報がベースレイヤから導出されるべきであると決定した場合、ブロック１０１５において、コーダは、情報がベースレイヤからどのように導出されるべきかを決定する。ブロック１０１０および１０１５は別個に示されているが、ベースレイヤから情報を導出すべきかどうか、およびどのように導出すべきかの決定は、単一の決定に組み合わせられ得る。コーダは、現在コーディングされている特定のＰＵが所定のしきい値よりも大きい（例えば、８×４または４×８よりも大きい）サイズを有するかどうかに基づいて、そのような決定（または一連の決定）を行い得る。例えば、ＰＵが、しきい値よりも大きいサイズを有すると決定された場合、情報はそのようなＰＵごとにベースレイヤから導出され得る。一方、ＰＵが、しきい値よりも小さいサイズを有する場合、情報はＰＵについてベースレイヤから導出されないことがある。別の例では、ＰＵが、しきい値よりも小さいサイズを有する場合、コーダは、ブロックのグループごとに（例えば、特定のＰＵを含むＣＵごとに）ベースレイヤから情報を導出し得、他の場合、コーダはＰＵごとにベースレイヤから情報を導出し得る。また別の例では、ＰＵがしきい値よりも小さいサイズを有する場合、コーダは特定のＰＵについてベースレイヤから情報を導出しないことがあり、他の場合、コーダは、ブロックのグループごとに（例えば、特定のＰＵを含むＣＵごとに１回）ベースレイヤから情報を導出し得る。いくつかの実施形態では、コーダは、情報がサブブロックごとに、ブロックごとに、またはブロックのグループごとにベースレイヤから導出されるべきであると決定するか、あるいはそのサイズにかかわらず各予測サブブロック／ブロックについてベースレイヤからまったく導出されるべきでないと決定し得る。図１０の例では、ベースレイヤから情報が導出されているが、方法１０００を行うために他のレイヤまたはビューが使用され得る。図１０のブロック１０２０に示されているように、コーダが、情報（例えば、動き情報または予測情報）がベースレイヤからどのように導出されるべきかを決定すると、情報は、そのような決定に従ってベースレイヤから導出される。方法１０００はブロック１０２５において終了する。
【０１８６】
ＢＬ  ＭＶと空間候補との間のプルーニング
[00192]  上述の方法に加えて、いくつかの実施形態では、ＢＬ  ＭＶ候補と空間候補との間のプルーニング（例えば、冗長候補を削除すること）が適用され得る。他の実施形態では、プルーニングは、ＢＬ  ＭＶ候補と空間候補との間で適用されることを妨げられ得る。
【０１８７】
他の実施形態
[00193]  いくつかの実施形態では、ＢＬ  ＭＶは、ベースレイヤ中のコロケートブロックの内側または外側の任意の位置から導出され得る。それは、中心ブロックまたは任意のコーナー、現在コロケートブロックの外側の右下ブロックなどであり得る。いくつかの実施形態では、（１つまたは複数の）ＢＬ  ＭＶは、ＴＭＶＰ後のリスト中の第１の候補として、または候補リスト中の任意の位置に含まれ得る。いくつかの実施形態では、ＢＬ  ＭＶ導出は、ベースレイヤ／ビュー中の対応するコロケートブロックからの動きベクトルまたは参照インデックスの導出を含むことができる。
【０１８８】
[00194]  本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１８９】
[00195]  本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【０１９０】
[00196]  本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明する任意の機能は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装した場合、本技法は、実行されたとき、上記で説明した方法のうちの１つまたは複数を行う命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１９１】
[00197]  プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを行うように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に好適な他の構造または装置のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、あるいは複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１９２】
[00198]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１９３】
[00199]  本発明の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオ情報をコーディングするように構成された装置であって、前記装置が、
少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、前記特定のＣＵが１つまたは複数のＰＵを有する、
前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することと
を行うように構成された、装置。
［Ｃ２］
前記装置がエンコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを符号化するようにさらに構成された、Ｃ１に記載の装置。
［Ｃ３］
前記装置がデコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを復号するようにさらに構成された、Ｃ１に記載の装置。
［Ｃ４］
前記装置が、コンピュータと、ノートブックと、ラップトップと、コンピュータと、タブレットコンピュータと、セットトップボックスと、電話ハンドセットと、スマートフォンと、スマートパッドと、テレビジョンと、カメラと、ディスプレイデバイスと、デジタルメディアプレーヤと、ビデオゲームコンソールと、車内コンピュータとのうちの１つまたは複数なるグループから選択されるデバイスを備える、Ｃ１に記載の装置。
［Ｃ５］
前記候補リストが空間候補と時間動きベクトル予測子（ＴＭＶＰ）とをさらに含む、Ｃ１に記載の装置。
［Ｃ６］
前記少なくとも１つのベースレイヤ動きベクトル候補が各ＰＵについて生成され、前記空間候補が前記特定のＣＵについて１回のみ生成され、前記ＴＭＶＰが各ＰＵについて導出される、Ｃ５に記載の装置。
［Ｃ７］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記特定のＣＵについて１回のみ生成され、前記空間候補が前記特定のＣＵについて１回のみ生成され、前記ＴＭＶＰが各ＰＵについて導出される、Ｃ５に記載の装置。
［Ｃ８］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記特定のＣＵについて１回のみ生成され、前記空間候補が前記特定のＣＵについて１回のみ生成され、前記ＴＭＶＰが前記特定のＣＵについて１回のみ導出される、Ｃ５に記載の装置。
［Ｃ９］
前記候補リストがマージ候補リストである、Ｃ１に記載の装置。
［Ｃ１０］
前記候補リストが高度動きベクトル予測（ＡＭＶＰ）候補リストである、Ｃ１に記載の装置。
［Ｃ１１］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、Ｃ５に記載の装置。
［Ｃ１２］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、Ｃ５に記載の装置。
［Ｃ１３］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記候補リスト中の第１の候補として追加される、Ｃ１に記載の装置。
［Ｃ１４］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記ＴＭＶＰの後に追加される、Ｃ５に記載の装置。
［Ｃ１５］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、Ｃ１に記載の装置。
［Ｃ１６］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、Ｃ１に記載の装置。
［Ｃ１７］
前記少なくとも１つのベースレイヤ動きベクトル候補は、前記現在ＰＵのサイズが所定のしきい値よりも大きい場合のみ生成される、Ｃ１に記載の装置。
［Ｃ１８］
前記現在ＰＵのサイズが所定のしきい値よりも小さいとき、前記少なくとも１つのベースレイヤ動きベクトル候補が前記特定のＣＵについて１回のみ生成されるか、または前記特定のＣＵを含むＣＵのグループについて１回のみ生成される、Ｃ１に記載の装置。
［Ｃ１９］
前記少なくとも１つのベースレイヤ動きベクトル候補は、前記現在ＰＵのための１つまたは複数の空間候補が利用不可能であると決定された場合のみ生成される、Ｃ１に記載の装置。
［Ｃ２０］
前記少なくとも１つのベースレイヤ動きベクトル候補は、（ｉ）前記現在ＰＵのための時間動きベクトル予測子（ＴＭＶＰ）が利用不可能であると決定されたか、または（ｉｉ）前記現在ＰＵを含む並列動き推定（ＰＭＥ）領域が指定され、前記現在ＰＵが前記ＰＭＥ領域の完全に内側に位置するときのみ生成される、Ｃ１に記載の装置。
［Ｃ２１］
ビデオ情報を符号化する方法であって、前記方法は、
前記ビデオ情報を符号化するための候補リストを記憶することと、前記候補リストが少なくとも１つのベースレイヤ動きベクトル候補を備える、
前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、前記特定のＣＵが１つまたは複数のＰＵを有する、
前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することと
を備える、方法。
［Ｃ２２］
前記候補リストに空間候補と時間動きベクトル予測子（ＴＭＶＰ）とを追加することをさらに備える、Ｃ２１に記載の方法。
［Ｃ２３］
各ＰＵについて前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
各ＰＵについて前記ＴＭＶＰを生成することとをさらに備える、Ｃ２２に記載の方法。
［Ｃ２４］
前記特定のＣＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
各ＰＵについて前記ＴＭＶＰを生成することと
をさらに備える、Ｃ２２に記載の方法。
［Ｃ２５］
前記特定のＣＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
前記特定のＣＵについて１回のみ前記ＴＭＶＰを生成することと
をさらに備える、Ｃ２２に記載の方法。
［Ｃ２６］
前記候補リストがマージ候補リストである、Ｃ２１に記載の方法。
［Ｃ２７］
前記候補リストが高度動きベクトル予測（ＡＭＶＰ）候補リストである、Ｃ２１に記載の方法。
［Ｃ２８］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、Ｃ２２に記載の方法。
［Ｃ２９］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、Ｃ２２に記載の方法。
［Ｃ３０］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記候補リスト中の第１の候補として追加される、Ｃ２１に記載の方法。
［Ｃ３１］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記ＴＭＶＰの後に追加される、Ｃ２２に記載の方法。
［Ｃ３２］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、Ｃ２１に記載の方法。
［Ｃ３３］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、Ｃ２１に記載の方法。
［Ｃ３４］
前記現在ＰＵのサイズが所定のしきい値よりも大きい場合のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ２１に記載の方法。
［Ｃ３５］
前記現在ＰＵのサイズが所定のしきい値よりも小さいとき、前記特定のＣＵについて１回のみ、または前記特定のＣＵを含むＣＵのグループについて１回のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ２１に記載の方法。
［Ｃ３６］
前記現在ＰＵのための１つまたは複数の空間候補が利用不可能であると決定された場合のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ２１に記載の方法。
［Ｃ３７］
（ｉ）前記現在ＰＵのための時間動きベクトル予測子（ＴＭＶＰ）が利用不可能であると決定されたか、または（ｉｉ）前記現在ＰＵを含む並列動き推定（ＰＭＥ）領域が指定され、前記現在ＰＵが前記ＰＭＥ領域の完全に内側に位置するときのみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ２１に記載の方法。
［Ｃ３８］
ビデオ情報を復号する方法であって、前記方法は、
符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、ここにおいて、前記シンタックス要素が、少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストに関連付けられたビデオ情報を備える、
前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、前記特定のＣＵが１つまたは複数のＰＵを有する、
前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加するための手段と
を備える、方法。
［Ｃ３９］
前記候補リストに空間候補と時間動きベクトル予測子（ＴＭＶＰ）とを追加することをさらに備える、Ｃ３８に記載の方法。
［Ｃ４０］
各ＰＵについて前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
各ＰＵについて前記ＴＭＶＰを生成することと
をさらに備える、Ｃ３９に記載の方法。
［Ｃ４１］
前記特定のＣＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
各ＰＵについて前記ＴＭＶＰを生成することと
をさらに備える、Ｃ３９に記載の方法。
［Ｃ４２］
前記特定のＣＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
前記特定のＣＵについて１回のみ前記ＴＭＶＰを生成することと
をさらに備える、Ｃ３９に記載の方法。
［Ｃ４３］
前記候補リストがマージ候補リストである、Ｃ３８に記載の方法。
［Ｃ４４］
前記候補リストが高度動きベクトル予測（ＡＭＶＰ）候補リストである、Ｃ３８に記載の方法。
［Ｃ４５］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、Ｃ３９に記載の方法。
［Ｃ４６］
前記少なくとも１つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、Ｃ３９に記載の方法。
［Ｃ４７］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記候補リスト中の第１の候補として追加される、Ｃ３８に記載の方法。
［Ｃ４８］
前記少なくとも１つのベースレイヤ動きベクトル候補が前記ＴＭＶＰの後に追加される、Ｃ３９に記載の方法。
［Ｃ４９］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、Ｃ３８に記載の方法。
［Ｃ５０］
前記少なくとも１つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、Ｃ３８に記載の方法。
［Ｃ５１］
前記現在ＰＵのサイズが所定のしきい値よりも大きい場合のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ３８に記載の方法。
［Ｃ５２］
前記現在ＰＵのサイズが所定のしきい値よりも小さいとき、前記特定のＣＵについて１回のみ、または前記特定のＣＵを含むＣＵのグループについて１回のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ３８に記載の方法。
［Ｃ５３］
前記現在ＰＵのための１つまたは複数の空間候補が利用不可能であると決定された場合のみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ３８に記載の方法。
［Ｃ５４］
（ｉ）前記現在ＰＵのための時間動きベクトル予測子（ＴＭＶＰ）が利用不可能であると決定されたか、または（ｉｉ）前記現在ＰＵを含む並列動き推定（ＰＭＥ）領域が指定され、前記現在ＰＵが前記ＰＭＥ領域の完全に内側に位置するときのみ、前記少なくとも１つのベースレイヤ動きベクトル候補を生成することをさらに備える、Ｃ３８に記載の方法。
［Ｃ５５］
実行されたとき、
少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶することと、
前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、前記特定のＣＵが１つまたは複数のＰＵを有する、
前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加することとを備えるプロセスを装置に行わせるコードを備える非一時的コンピュータ可読媒体。
［Ｃ５６］
前記プロセスが、前記候補リストに空間候補と時間動きベクトル予測子（ＴＭＶＰ）とを追加することをさらに備える、Ｃ５５に記載の媒体。
［Ｃ５７］
前記プロセスが、
前記特定のＣＵについてまたは各ＰＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成することと、
前記特定のＣＵについて１回のみ前記空間候補を生成することと、
前記特定のＣＵについてまたは各ＰＵについて１回のみ前記ＴＭＶＰを生成することとをさらに備える、Ｃ５６に記載の媒体。
［Ｃ５８］
ビデオ情報をコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
少なくとも１つのベースレイヤ動きベクトル候補を備える候補リストを記憶するための手段と、
前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための振舞いを決定するための手段と、
前記決定された振舞いに従って特定のコーディングユニット（ＣＵ）中の現在予測ユニット（ＰＵ）のための前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための手段と、前記特定のＣＵが１つまたは複数のＰＵを有する、
前記少なくとも１つのベースレイヤ動きベクトル候補を前記候補リストに追加するための手段と
を備える、ビデオコーディングデバイス。
［Ｃ５９］
前記候補リストに空間候補と時間動きベクトル予測子（ＴＭＶＰ）とを追加するための手段をさらに備える、Ｃ５８に記載のデバイス。
［Ｃ６０］
前記特定のＣＵについてまたは各ＰＵについて１回のみ前記少なくとも１つのベースレイヤ動きベクトル候補を生成するための手段と、
前記特定のＣＵについて１回のみ前記空間候補を生成するための手段と、
前記特定のＣＵについてまたは各ＰＵについて１回のみ前記ＴＭＶＰを生成するための手段と
をさらに備える、Ｃ５９に記載のデバイス。
【図１】
0006293788.tif 000002
【図２】
0006293788.tif 000003
【図３】
0006293788.tif 000004
【図４Ａ】
0006293788.tif 000005
【図４Ｂ】
0006293788.tif 000006
【図５Ａ】
0006293788.tif 000007
【図５Ｂ】
0006293788.tif 000008
【図５Ｃ】
0006293788.tif 000009
【図５Ｄ】
0006293788.tif 000010
【図５Ｅ】
0006293788.tif 000011
【図５Ｆ】
0006293788.tif 000012
【図５Ｇ】
0006293788.tif 000013
【図５Ｈ】
0006293788.tif 000014
【図５Ｉ】
0006293788.tif 000015
【図６Ａ】
0006293788.tif 000016
【図６Ｂ】
0006293788.tif 000017
【図６Ｃ】
0006293788.tif 000018
【図６Ｄ】
0006293788.tif 000019
【図６Ｅ】
0006293788.tif 000020
【図７】
0006293788.tif 000021
【図８】
0006293788.tif 000022
【図９】
0006293788.tif 000023
【図１０】
0006293788.tif 000024