(57)【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行することと、
前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定することと
を備え、前記動き改良データを決定することは、前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定すること、または前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定することを備える、方法。
【請求項２】
前記ＰＵのための前記第１のステージの動きベクトルを決定することは、前記ＰＵの空間的隣接ブロックまたは時間的隣接ブロックのうちの１つまたは複数から前記第１のステージの動きベクトルを導出することを備える、
請求項１に記載の方法。
【請求項３】
前記ＰＵのための前記第１のステージの動きベクトルを決定することは、前記ＰＵのためのマージモード候補リストから前記第１のステージの動きベクトルを選択することを備える、
請求項１に記載の方法。
【請求項４】
前記サブＰＵのうちの１つのための前記第２のステージの動き情報の前記少なくとも１つの動きベクトルが利用可能でないことに基づいて、前記サブＰＵのうちの前記１つのための代表的な動きベクトルを使用することをさらに備える、
請求項１に記載の方法。
【請求項５】
前記第２のステージの動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記ビデオブロックおよび前記予測ブロックに基づいて残差ブロックを生成することと、
ビデオビットストリーム中に前記ＰＵのための少なくとも前記第１の動きステージの動きベクトルのインジケータおよび前記残差ブロックを符号化することと
をさらに備える、請求項１に記載の方法。
【請求項６】
受信したビデオビットストリームから前記ＰＵのための少なくとも前記第１のステージの動きベクトルのインジケータおよび残差ブロックを復号することと、
前記第２のステージの動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記予測ブロックおよび前記残差ブロックに基づいて前記ビデオブロックの再構成されたバージョンを生成することと
をさらに備える、請求項１に記載の方法。
【請求項７】
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信する１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、と
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行することと、
前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定することと
を行うように構成され、前記１つまたは複数のプロセッサは、前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定すること、または前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定することを行うように構成される、ビデオ処理デバイス。
【請求項８】
前記１つまたは複数のプロセッサは、前記ＰＵの空間的隣接ブロックまたは時間的隣接ブロックのうちの１つまたは複数から前記第１のステージの動きベクトルを導出することを行うように構成される、
請求項７に記載のデバイス。
【請求項９】
前記１つまたは複数のプロセッサは、前記ＰＵのためのマージモード候補リストから前記第１のステージの動きベクトルを選択することを行うように構成される、
請求項７に記載のデバイス。
【請求項１０】
前記サブＰＵのうちの１つのための前記第２のステージの動き情報の前記少なくとも１つの動きベクトルが利用可能でないことに基づいて、前記１つまたは複数のプロセッサは、前記サブＰＵのうちの前記１つのための代表的な動きベクトルを使用することを行うように構成される、
請求項７に記載のデバイス。
【請求項１１】
前記ビデオ処理デバイスは、ビデオ符号化デバイスを備え、前記１つまたは複数のプロセッサは、
前記第２のステージの動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記ビデオブロックおよび前記予測ブロックに基づいて残差ブロックを生成することと、
ビデオビットストリーム中に前記ＰＵのための少なくとも前記第１の動きステージの動きベクトルのインジケータおよび前記残差ブロックを符号化することと
を行うように構成される、請求項７に記載のデバイス。
【請求項１２】
前記ビデオ処理デバイスは、ビデオ復号デバイスを備え、前記１つまたは複数のプロセッサは、
受信したビデオビットストリームから前記ＰＵのための少なくとも前記第１のステージの動きベクトルのインジケータおよび残差ブロックを復号することと、
前記第２のステージの動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記予測ブロックおよび前記残差ブロックに基づいて前記ビデオブロックの再構成されたバージョンを生成することと
を行うように構成される、請求項７に記載のデバイス。
【請求項１３】
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定するための手段、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分するための手段と、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定するための手段、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行するための手段と、
前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定するための手段と
を備え、前記動き改良データを決定するための手段は、前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定するための手段、または前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定するための手段を備える、ビデオ処理デバイス。
【請求項１４】
ビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、１つまたは複数のプロセッサに、
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、と、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行することと、
前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定することと
を行わせ、前記動き改良データを決定することは、
前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定すること、または
前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定することを備える、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本出願は、内容全体が参照により本明細書に組み込まれる、２０１３年９月２６日に出願された米国仮特許出願第６１／８８３，１１１号の利益を主張する。
【技術分野】
【０００２】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラー電話機もしくは衛星無線電話機、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイス、および類似物を含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記述されているビデオ圧縮技法などのビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶することができる。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的（ピクチャ内）予測および／または時間的（ピクチャ間）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライスにおけるビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライスにおけるビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測によって、コーディングされるべきブロックの予測ブロックが生じる。残差データは、コーディングすべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、次いで量子化され得る残差変換係数が生じ得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するためにスキャンされ得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]一般に、本開示は、高効率ビデオコーディング（ＨＥＶＣ）規格における、およびＨＥＶＣ規格に対する３Ｄ拡張における、ビデオコーディングのためのサブ予測ユニット（ＰＵ）ベースの動き予測の技法について説明する。一例では、本開示は、動きベクトル改良が可能にされ得るシングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度時間的動きベクトル予測（ＴＭＶＰ：temporal motion vector prediction）モードを実行するための技法について説明する。従来、サブＰＵ設計は、予測された動きベクトルのさらなる改良を可能にしないマージインター予測モードを使用したレイヤ間またはビュー間の動き予測のためにのみ可能にされる。高度ＴＭＶＰモードは、ＰＵのサブＰＵの各々のために異なる動きベクトルおよび参照インデックスを含む、ＰＵのための動き情報を導出するために、少なくとも２つのステージでＰＵのための動きベクトルを決定することを含む。
【０００７】
[0007]３Ｄ−ＨＥＶＣ拡張は、マルチビュービデオに加えて深度フォーマットのコーディングをサポートする。一例では、サブＰＵ後方ビュー合成予測（ＢＶＳＰ：sub-PU backward view synthesis prediction）モードでは、現在のＰＵのための動き情報は、視差動きベクトルおよび関連付けられたビュー間参照ピクチャから予測され、視差動きベクトルは、ビュー間参照ピクチャの深度ブロックに関連付けられたサブＰＵ動き情報に基づいて改良される。サブＰＵ  ＢＶＳＰモードでは、別個のサブＰＵ動き情報に基づいてＰＵのサブＰＵの各々を予測するために、動き補償が実行される。従来、サブＰＵの各々を予測するために動き補償を実行した後、現在のＰＵのための視差動きベクトルだけが記憶される。本開示の技法によれば、サブＰＵ  ＢＶＳＰモードを使用して予測される各ＰＵに対して、ビデオコーディングデバイスは、動き補償が実行された後ですら、現在のＰＵのサブＰＵの各々に対して導出された別個の動き情報を記憶する。現在のＰＵに対して記憶された追加の動き情報は、次いで、現在のＰＵが隣接ブロックである後続ＰＵを予測するために使用され得る。
【０００８】
[0008]加えて、本開示は、サブＰＵ境界において人工的ＰＵ境界または人工的ＴＵ境界を作成することによって、変換ユニット（ＴＵ）境界およびコーディングユニット（ＣＵ）中のサブＰＵ境界を含むＰＵ境界をフィルタリングするために、ビデオブロックの各ＣＵにデブロッキングフィルタを適用するための技法について説明する。
【０００９】
[0009]一例では、本開示は、高度ＴＭＶＰモードの第１のステージとして、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１のステージの動きベクトルを決定することと、ここにおいて、第１のステージの動きベクトルが、ＰＵに対応する参照ピクチャのブロックを識別する、ＰＵを２つ以上のサブＰＵに区分することと、高度ＴＭＶＰモードの第２のステージとして、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定することと、ここにおいて、サブＰＵの各々のための第２のステージの動き情報が、少なくとも１つの動きベクトルと関連付けられた参照インデックスとを含む、サブＰＵの各々のための第２のステージの動き情報に基づいて、サブＰＵの各々のための動き補償を別個に実行することとを備える、ビデオデータを処理する方法を対象とする。
【００１０】
[0010]別の例では、本開示は、ビデオデータを記憶するように構成されたメモリと、メモリと通信する、１つまたは複数のプロセッサとを備えるビデオ処理デバイスを対象とする。１つまたは複数のプロセッサは、高度ＴＭＶＰモードの第１のステージとして、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１のステージの動きベクトルを決定することと、ここにおいて、第１のステージの動きベクトルが、ＰＵに対応する参照ピクチャのブロックを識別する、ＰＵを２つ以上のサブＰＵに区分することと、高度ＴＭＶＰモードの第２のステージとして、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定することと、ここにおいて、サブＰＵの各々のための第２のステージの動き情報が、少なくとも１つの動きベクトルと関連付けられた参照インデックスとを含む、サブＰＵの各々のための第２のステージの動き情報に基づいて、サブＰＵの各々のための動き補償を別個に実行することとを行うように構成される。
【００１１】
[0011]さらなる例では、本開示は、高度ＴＭＶＰモードの第１のステージとして、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１のステージの動きベクトルを決定するための手段と、ここにおいて、第１のステージの動きベクトルが、ＰＵに対応する参照ピクチャのブロックを識別する、ＰＵを２つ以上のサブＰＵに区分するための手段と、高度ＴＭＶＰモードの第２のステージとして、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定するための手段と、ここにおいて、サブＰＵの各々のための第２のステージの動き情報が、少なくとも１つの動きベクトルと関連付けられた参照インデックスとを含む、サブＰＵの各々のための第２のステージの動き情報に基づいて、サブＰＵの各々のための動き補償を別個に実行するための手段とを備える、ビデオ処理デバイスを対象とする。
【００１２】
[0012]追加の例では、本開示は、実行されるとき、１つまたは複数のプロセッサに、高度ＴＭＶＰモードの第１のステージとして、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１のステージの動きベクトルを決定することと、ここにおいて、第１のステージの動きベクトルが、ＰＵに対応する参照ピクチャのブロックを識別する、ＰＵを２つ以上のサブＰＵに区分することと、高度ＴＭＶＰモードの第２のステージとして、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定することと、ここにおいて、サブＰＵの各々のための第２のステージの動き情報が、少なくとも１つの動きベクトルと関連付けられた参照インデックスとを含む、サブＰＵの各々のための第２のステージの動き情報に基づいて、サブＰＵの各々のための動き補償を別個に実行することとを行わせる、ビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体を対象とする。
【００１３】
[0013]別の例では、本開示は、ビデオデータを処理する方法に関し、本方法は、ＢＶＳＰモードに従って、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１の動き情報を決定することと、ここにおいて、第１の動き情報が、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む、ＰＵを２つ以上のサブＰＵに区分することと、サブＰＵの各々のための第２の動き情報を決定することと、ここにおいて、第２の動き情報が、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、第２の動き情報に基づいて、ビュー間参照ピクチャからサブＰＵの各々を予測するために、動き補償を実行することと、後続ＰＵを予測するために使用されるように、ＰＵのサブＰＵの各々のための第２の動き情報をメモリに記憶することとを備える。
【００１４】
[0014]さらなる例では、本開示は、ビデオデータを記憶するように構成されたメモリと、メモリと通信する、１つまたは複数のプロセッサとを備えるビデオ処理デバイスを対象とする。１つまたは複数のプロセッサは、ＢＶＳＰモードに従って、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１の動き情報を決定することと、ここにおいて、第１の動き情報が、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む、ＰＵを２つ以上のサブＰＵに区分することと、サブＰＵの各々のための第２の動き情報を決定することと、ここにおいて、第２の動き情報が、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、第２の動き情報に基づいて、ビュー間参照ピクチャからサブＰＵの各々を予測するために、動き補償を実行することとを行うように構成される。メモリは、後続ＰＵを予測するために使用されるように、ＰＵのサブＰＵの各々のための第２の動き情報を記憶するように構成される。
【００１５】
[0015]追加の例では、本開示は、ＢＶＳＰモードに従って、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１の動き情報を決定するための手段と、ここにおいて、第１の動き情報が、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む、ＰＵを２つ以上のサブＰＵに区分するための手段と、サブＰＵの各々のための第２の動き情報を決定するための手段と、ここにおいて、第２の動き情報が、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、第２の動き情報に基づいて、ビュー間参照ピクチャからサブＰＵの各々を予測するために、動き補償を実行するための手段と、後続ＰＵを予測するために使用されるように、ＰＵのサブＰＵの各々のための第２の動き情報をメモリに記憶するための手段とを備えるビデオ処理デバイスを対象とする。
【００１６】
[0016]別の例では、本開示は、実行されるとき、１つまたは複数のプロセッサに、ＢＶＳＰモードに従って、ＰＵの隣接ブロックからビデオブロックのＣＵのＰＵのための第１の動き情報を決定することと、ここにおいて、第１の動き情報が、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む、ＰＵを２つ以上のサブＰＵに区分することと、サブＰＵの各々のための第２の動き情報を決定することと、ここにおいて、第２の動き情報が、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、第２の動き情報に基づいて、ビュー間参照ピクチャからサブＰＵの各々を予測するために、動き補償を実行することと、後続ＰＵを予測するために使用されるように、ＰＵのサブＰＵの各々のための第２の動き情報をメモリに記憶することとを行わせる、ビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体を対象とする。
【００１７】
[0017]添付の図面および以下の説明において、１つまたは複数の例の詳細について説明する。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】本開示の技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）を定義するための８つの区分モードを示す概念図。
【図３】ＣＵ内の変換ツリー（transform tree）構造を示す概念図。
【図４Ａ】マージモードのための空間的隣接候補を示す概念図。
【図４Ｂ】高度動きベクトル予測（ＡＭＶＰ）モードのための空間的隣接候補を示す概念図。
【図５Ａ】時間的動きベクトル予測（ＴＭＶＰ）候補を示す概念図。
【図５Ｂ】ＴＭＶＰのための動きベクトル（ＭＶ）スケーリングを示す概念図。
【図６】例示的なデブロッキングフィルタプロセスを示すフローチャート。
【図７】デブロッキングフィルタプロセスのための境界強度（Ｂ）計算の例示的な動作を示すフローチャート。
【図８】デブロッキングフィルタプロセスのためのコーディングツリー（coding tree）ユニット（ＣＴＵ）境界におけるＢ計算のために再使用または参照される情報を示す概念図。
【図９】デブロッキングフィルタプロセスのためのオン／オフフィルタ決定および強い／弱いフィルタ選択に関与するピクセルを示す概念図。
【図１０】Ｖ３がベースビューを示し、非ベースビュー（すなわち、Ｖ１またはＶ５）中のピクチャが同じ時間インスタンスのベースビュー中のピクチャから予測され得る、３つのビューの事例に対するマルチビュー予測構造を示す概念図。
【図１１】隣接ブロックベースの視差ベクトル（ＮＢＤＶ）導出のためにアクセスされる空間的隣接ブロックがマージモードおよびＡＭＶＰモードのためにアクセスされる空間的隣接ブロックと同じである、ＮＢＤＶ導出のための空間的隣接ブロックを示す概念図。
【図１２】ＰＵの異なるサブＰＵのための異なる動きベクトルを割り当てる後方ビュー合成予測（ＢＶＳＰ）モードを示す概念図。
【図１３】サブＰＵレベルのビュー間動き予測を示す概念図。
【図１４Ａ】シングルレイヤコーディングにおけるＰＵ中のサブＰＵを予測するための高度ＴＭＶＰモードを示す概念図。
【図１４Ｂ】シングルレイヤコーディングにおけるＰＵ中のサブＰＵを予測するための高度ＴＭＶＰモードを示す概念図。
【図１５】本開示の技法を実装し得るビデオ符号化器の一例を示すブロック図。
【図１６】本開示の技法を実装し得るビデオ復号器の一例を示すブロック図。
【図１７】サブＰＵ  ＢＶＳＰモードを使用して、現在のＰＵを予測し、決定されたサブＰＵ動き情報記憶を記憶する例示的な動作を示すフローチャート。
【図１８】ＣＵ中のサブＰＵ境界を含めて、ＴＵ境界およびＰＵ境界をフィルタリングするために、ビデオブロックの各ＣＵにデブロッキングフィルタを適用する例示的な動作を示すフローチャート。
【図１９】シングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度ＴＭＶＰモードの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１９】
[0038]本開示は、高効率ビデオコーディング（ＨＥＶＣ）規格に対する３Ｄ拡張を使用する、ビデオコーディングのためのサブ予測ユニット（ＰＵ）レベルの動き予測のための技法について説明する。３Ｄ−ＨＥＶＣ拡張は、マルチビュービデオに加えて深度フォーマットのコーディングをサポートする。マルチビュービデオコーディングでは、現在のビデオピクチャは、同じビュー中の時間的参照ピクチャと参照ビュー中のビュー間参照ピクチャの両方によって予測され得る。
【００２０】
[0039]一例では、３Ｄ−ＨＥＶＣにおけるビュー合成予測は、サブＰＵ後方ビュー合成予測（ＢＶＳＰ）モードを使用して実行され得る。サブＰＵ  ＢＶＳＰモードでは、現在のＰＵのための動き情報は、視差動きベクトル、およびビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスから予測される。サブＰＵ  ＢＶＳＰモードでは、現在のＰＵは２つ以上のサブＰＵに区分され、視差動きベクトルは、ビュー間参照ピクチャの対応する深度ブロックに基づいて、サブＰＵの各々に対して導出されたサブＰＵ動き情報に基づいて改良される。別個のサブＰＵ動き情報に基づいてＰＵのサブＰＵの各々を予測するために、動き補償が実行される。従来、サブＰＵの各々を予測するために動き補償を実行した後、現在のＰＵのための視差動きベクトルだけが記憶される。
【００２１】
[0040]本開示の技法によれば、サブＰＵ  ＢＶＳＰモードを使用して予測される各ＰＵに対して、ビデオコーディングデバイスは、動き補償が実行された後ですら、現在のＰＵのサブＰＵの各々に対して導出された別個の動き情報を記憶する。現在のＰＵに対して記憶された追加の動き情報は、次いで、現在のＰＵが隣接ブロックである後続ＰＵを予測するために使用され得る。
【００２２】
[0041]別の例では、本開示は、動きベクトル改良が可能にされ得るシングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度時間的動きベクトル予測（ＴＭＶＰ）モードを実行するための技法について説明する。従来、サブＰＵ設計は、予測された動きベクトルのさらなる改良を可能にしないマージインター予測モードを使用したレイヤ間またはビュー間の動き予測に対してのみ可能にされる。高度ＴＭＶＰモードは、ＰＵのサブＰＵの各々のための異なる動きベクトルおよび参照インデックスを含む、ＰＵのための動き情報を導出するために、少なくとも２つのステージでＰＵのための動きベクトルを決定することを含む。ＰＵ内のサブＰＵは、Ｎ×ＮまたはＮ×Ｍのサイズであり得、ＮおよびＭは、任意の整数であり得る。典型的なサブＰＵサイズは、４×４、８×８、４×８、または８×４であり得る。
【００２３】
[0042]本開示の技法によれば、現在のＰＵのための第１のステージの動きベクトルは、そのＰＵの隣接ブロックから決定され、この場合、第１のステージの動きベクトルは、現在のＰＵに対応する参照ピクチャのブロックを識別する。３Ｄ−ＨＥＶＣにおけるサブＰＵ動き予測と同様に、より小さいサブＰＵを含む参照ピクチャの対応する領域（たとえば、ブロック）のサイズは、現在のＰＵのサイズと同じである。このようにして、現在のＰＵのサブＰＵは、一意の動きベクトルを用いて識別された参照ピクチャの対応する領域中に対応するサブＰＵを有する。第１のステージの動きベクトルは、空間的および／または時間的近隣に基づいて識別され得る。代替的に、第１のステージの動きベクトルは、定数、たとえば、０、または別のあらかじめ規定された値に設定され得、現在のＰＵのサイズに関連する。別の代替態様では、ＰＵのサブＰＵの各々は、異なる動きベクトルを用いて参照ピクチャのその対応するブロックを識別することができる。
【００２４】
[0043]上記で説明したように、現在のＰＵは２つ以上のサブＰＵに区分され、サブＰＵの各々のための第２のステージの動き情報は、第１のステージの動きベクトルによって識別された参照ピクチャの対応する領域、たとえば、ブロックから決定され、この場合、サブＰＵの各々のための第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む。サブＰＵの各々のための第２のステージの動き情報に基づいて、サブＰＵの各々を別々に予測するために、動き補償が実行される。この高度ＴＭＶＰプロセスは、すべての他のマージ候補の中でマージ候補をアクティブ化すると、つまり、現在のＰＵのためにそのようなプロセスが実行される必要があることを示すために、特定のマージ候補が作成されると達成され得る。いくつかの例では、単にマージモードで動作する代わりに、サブＰＵの各々のための第２のステージの動き情報の少なくとも１つの動きベクトルを改良するために、動きベクトル差分が決定され得る。
【００２５】
[0044]さらなる例として、本開示は、複数のサブＰＵを有する、少なくとも１つのＰＵを含むビデオブロックのコーディングユニット（ＣＵ）に適用されるデブロッキングフィルタプロセスに関する技法について説明する。ＨＥＶＣ規格に対するデブロッキングフィルタは、ＰＵ内で、すなわち、ＰＵの隣接するサブＰＵ間のサブＰＵ境界に沿って、フィルタするように設計されていないが、これは、ＨＥＶＣブロックでは、動き補償はＰＵ全体に対して同じであると仮定されるためである。本開示の技法は、ＨＥＶＣデブロッキングフィルタが３Ｄ−ＨＥＶＣブロックのために引き続き使用され得るように、サブＰＵをデブロッキングフレンドリーな構造に変換することによって、サブＰＵ境界がデブロッキングされるのを可能にする。提案されるデブロッキング技法は、３Ｄ−ＨＥＶＣを含めて、マルチレイヤコーデックに適用可能であり得る。
【００２６】
[0045]本開示の技法によれば、サブＰＵを有するＰＵを含むビデオブロックのＣＵにデブロッキングフィルタを適用するのに先立って、サブＰＵ境界において人工的ＰＵ境界または人工的ＴＵ境界を作成するために、ＣＵは変換される。一例では、サブＰＵ境界が人工的ＴＵ境界に変換されるように、ＰＵを変換ツリー階層に関連付け、サブＰＵの各々をＴＵに関連付けるために、ＣＵの変換ツリーは変換される。別の例では、サブＰＵ境界が人工的ＰＵ境界に変換されるように、ＰＵをＣＵに関連付け、サブＰＵの各々をＰＵに関連付けるために、ＣＵはコーディングツリーに変換される。次いで、人工的ＰＵ境界と人工的ＴＵ境界とを含めて、ＣＵの２つの隣接するＰＵ間のＰＵ境界および／またはＣＵの２つの隣接するＴＵ間のＴＵ境界にデブロッキングフィルタが適用され得る。
【００２７】
[0046]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、そのスケーラブルビデオコーディング（ＳＶＣ）拡張およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。ＭＶＣの最新のジョイントドラフトは、ＩＴＵ−Ｔ  Ｈ．２６４、Ｓｅｒｉｅｓ  Ｈ：Ａｕｄｉｏｖｉｓｕａｌ  ａｎｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｙｓｔｅｍｓ、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ、Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ，Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ  ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ（ＩＴＵ）、２０１０年３月に記載されている。
【００２８】
[0047]加えて、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）の設計が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）およびＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって確定された。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １０」または「ＷＤ１０」と呼ばれるＨＥＶＣドラフト仕様は、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  １０（ＦＤＩＳ＆Ｌａｓｔ  Ｃａｌｌに対して）」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４〜２３日、ＪＣＴＶＣ−Ｌ１００３ｖ３４に記載されており、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。
【００２９】
[0048]確定された規格文書は、ＩＴＵ−Ｔ  Ｈ２６５、Ｓｅｒｉｅｓ  Ｈ：Ａｕｄｉｏｖｉｓｕａｌ  ａｎｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｙｓｔｅｍｓ，Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ，Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｔｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ，Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ  ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ（ＩＴＵ）、２０１３年４月として公開されている。Ｉｌ−Ｋｏｏ  Ｋｉｍら、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｔｅｓｔ  Ｍｏｄｅｌ  １０（ＨＭ１０）Ｅｎｃｏｄｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４〜２３日に記載されたＨＥＶＣの最近の符号化器記述は、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1002-v3.zipから入手可能である。
【００３０】
[0049]３Ｄサービスをサポートする、ＨＥＶＣの２つの拡張が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）の３Ｄビデオコーディング共同研究部会（ＪＣＴ−３Ｖ：Joint Collaboration Team on 3D Video coding）によって開発されている。これらの２つの拡張は、ＨＥＶＣに対するマルチビュー拡張（ＭＶ  ＨＥＶＣ）およびＨＥＶＣに対する３Ｄ拡張（３Ｄ−ＨＥＶＣ）である。
【００３１】
[0050]ＭＶ−ＨＥＶＣは、ＨＥＶＣのブロックレベル設計を変更せずに複数のテクスチャビューのコーディングをサポートする。ＭＶ−ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ５（ＷＤ５）と呼ばれ、Ｔｅｃｈら、「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ５」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発に関する共同研究部会（ＪＣＴ−３Ｖ：Joint Collaborative Team on 3D Video Coding Extension Development）、第５回会議：ウィーン、オーストリア、２０１３年７月２７〜８月２日、ＪＣＴ３Ｖ−Ｅ１００４ｖ６に記載されるＭＶ−ＨＥＶＣのドラフト仕様は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｅ１００４−ｖ６．ｚｉｐから入手可能である。
【００３２】
[0051]３Ｄ−ＨＥＶＣは、マルチビュービデオに加えて深度フォーマットのコーディングをサポートし、ＨＥＶＣコーディングモジュールに加えて組み込まれた新しいコーディングツールを含む。新たに導入されたコーディングツールは、テクスチャコーディングと深度コーディングの両方に適用可能である。「３Ｄ−ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  １（ＷＤ１）」と呼ばれ、Ｔｅｃｈら、「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  １」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発に関する共同研究部会（ＪＣＴ−３Ｖ）、第５回会議：ウィーン、オーストリア、２０１３年７月２７〜８月２日、ＪＣＴ３Ｖ−Ｅ１００１ｖ３に記載される３Ｄ−ＨＥＶＣのドラフト仕様は、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1001-v3.zipから入手可能である。
【００３３】
[0052]図１は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介してビデオデータを宛先デバイス１４に提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４はワイヤレス通信のために装備され得る。
【００３４】
[0053]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信することができる。コンピュータ可読媒体１６は、符号化ビデオデータをソースデバイス１２から宛先デバイス１４に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信するのを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波（ＲＦ）スペクトルあるいは１つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３５】
[0054]いくつかの例では、符号化データは、出力インターフェース２２からストレージデバイスへ出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、Ｂｌｕｅ−ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含み得る。さらなる例では、ストレージデバイスは、ソースデバイス１２によって生成された符号化ビデオを記憶することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶でき、符号化ビデオデータを宛先デバイス１４に送信できる、任意のタイプのサーバとすることができる。例示的なファイルサーバは、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチドストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準データ接続を介して、符号化ビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその組合せとすることができる。
【００３６】
[0055]本開示の技法は、ワイヤレス応用またはワイヤレス設定に必ずしも限定されない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ＨＴＴＰ上の動的適応ストリーミング（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の応用例など、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／もしくはビデオ電話などの応用をサポートするために一方向または両方向のビデオ送信をサポートするように構成され得る。
【００３７】
[0056]図１の例では、ソースデバイス１２は、ビデオソース１８と、深度推定ユニット１９と、ビデオ符号化器２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオ復号器３０と、深度画像ベースのレンダリング（ＤＩＢＲ：depth image based rendering）ユニット３１と、ディスプレイデバイス３２とを含む。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含んでもよい。たとえば、ソースデバイス１２は、外部カメラなどの外部のビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
【００３８】
[0057]図１の例示されたシステム１０は、一例にすぎない。本開示の技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオ符号化器／復号器によっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が、宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、もしくはビデオ電話のためのビデオデバイス１２とビデオデバイス１４の間の一方向または双方向のビデオ送信をサポートし得る。
【００３９】
[0058]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを包含する（containing）ビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成することができる。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、上記で述べたように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび／またはワイヤード用途に適用され得る。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオ符号化器２０によって符号化され得る。次いで、符号化ビデオ情報は、出力インターフェース２２によってコンピュータ可読媒体１６に出力され得る。
【００４０】
[0059]ビデオソース１８は、ビデオ符号化器２０にビデオデータの複数のビューを提供し得る。たとえば、ビデオソース１８は、各々が、撮影されている特定のシーンに対して一意の水平位置を有するカメラのアレイに対応し得る。代替的に、ビデオソース１８は、たとえばコンピュータグラフィックスを使用して異なる水平カメラの視点からビデオデータを生成することができる。深度推定ユニット１９は、テクスチャ画像内のピクセルに対応する深度ピクセルのための値を決定するように構成され得る。たとえば、深度推定ユニット１９は、音響航法／測距（ＳＯＮＡＲ：Sound Navigation and Ranging）ユニット、光検出／測距（ＬＩＤＡＲ：Light Detection and Ranging）ユニット、またはシーンのビデオデータを記録しながら実質的に同時に深度値を直接決定することが可能な他のユニットを表し得る。
【００４１】
[0060]追加または代替として、深度推定ユニット１９は、異なる水平カメラ視点から実質的に同時にキャプチャされた２つ以上の画像を比較することによって間接的に深度値を計算するように構成され得る。画像内の実質的に同様のピクセル値の間の水平視差を計算することによって、深度推定ユニット１９は、シーン内の様々なオブジェクトの深度を概算することができる。深度推定ユニット１９は、いくつかの例では、ビデオソース１８と機能的に統合され得る。たとえば、ビデオソース１８がコンピュータグラフィックス画像を生成するとき、深度推定ユニット１９は、たとえば、ピクセルのｚ座標と、テクスチャ画像をレンダリングするために使用されたオブジェクトのｚ座標とを使用して、グラフィカルオブジェクトのための実際の深度マップを提供することができる。
【００４２】
[0061]コンピュータ可読媒体１６は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化ビデオデータを受信し、宛先デバイス１４に符号化ビデオデータを提供することができる。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを包含するディスクを生成することができる。したがって、様々な例では、コンピュータ可読媒体１６は、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００４３】
[0062]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオ符号化器２０によって定義され、またビデオ復号器３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ＧＯＰの特性ならびに／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、ユーザに復号ビデオデータを表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。いくつかの例では、ディスプレイデバイス３２は、たとえば、閲覧者のための３Ｄ視覚影響を生成するために、同時にまたは実質的に同時に２つ以上のビューを表示することが可能なデバイスを備え得る。
【００４４】
[0063]宛先デバイス１４のＤＩＢＲユニット３１は、ビデオ復号器３０から受信された復号ビューのテクスチャおよび深度情報を使用して、合成されたビューをレンダリングすることができる。たとえば、ＤＩＢＲユニット３１は、対応する深度マップ中のピクセルの値に応じて、テクスチャ画像のピクセルデータのための水平視差を決定し得る。ＤＩＢＲユニット３１は、次いで、決定された水平視差によって、テクスチャ画像中のピクセルを左または右にオフセットすることによって、合成された画像を生成し得る。このようにして、ディスプレイデバイス３２は、任意の組合せにおける、復号ビューおよび／または合成ビューに対応し得る、１つもしくは複数のビューを表示することができる。ビデオ復号器３０は、ビューを適切に合成するために、深度範囲とカメラパラメータとを使用することができるＤＩＢＲユニット３１に深度範囲およびカメラパラメータのための精度値を提供することができる。
【００４５】
[0064]図１には示されていないが、いくつかの態様では、ビデオ符号化器２０およびビデオ復号器３０は各々、オーディオ符号化器およびオーディオ復号器と統合され得、共通のデータストリームもしくは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４６】
[0065]ビデオ符号化器２０およびビデオ復号器３０は、現在の開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などの、ビデオコーディング規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオ符号化器２０およびビデオ復号器３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格もしくは業界規格、またはＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣのＭＶＣ拡張など、そのような規格の拡張に従って動作し得る。
【００４７】
[0066]ビデオ符号化器２０およびビデオ復号器３０は各々、１つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な符号化器回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために、１つまたは複数のプロセッサを使用して命令をハードウェアで実行することができる。ビデオ符号化器２０およびビデオ復号器３０の各々は、１つもしくは複数の符号化器または復号器の中に含まれ得、そのいずれかが、それぞれのデバイスにおいて複合符号化器／復号器（コーデック）の一部として統合され得る。ビデオ符号化器２０および／またはビデオ復号器３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話機などのワイヤレス通信デバイスを備えることができる。
【００４８】
[0067]最初に、ＨＥＶＣの例示的なコーディング技法について説明する。上記で参照したＨＥＶＣ  ＷＤ１０は、たとえば、ＩＴＵ−Ｔ  Ｈ２６４／ＡＶＣに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加の能力を推定する。たとえば、Ｈ．２６４は９個のイントラ予測符号化モードを提供するが、ＨＥＶＣ  ＷＤ１０は３３個もの角度イントラ予測符号化モードに加えてＤＣモードと平面モードとを提供することができる。
【００４９】
[0068]ＨＥＶＣＷＤ１０および他のビデオコーディング規格では、ビデオシーケンスは、一般に、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれる場合もある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLは、ルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbは、Ｃｂクロミナンスサンプルの２次元アレイである。ＳCrは、Ｃｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００５０】
[0069]ＨＥＶＣ  ＷＤ１０は、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むコーディングツリーユニット（ＣＴＵ）または最大コーディングユニット（ＬＣＵ）のシーケンスに分割され得ることを記載している。ＣＴＵは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するＣＴＵを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分される場合がある。各ＣＴＵは、４分木に従って、コーディングユニット（ＣＵ）にスプリットされ得る。たとえば、４分木のルートノードとしてのＣＴＵは、４つの子ノードにスプリットされ得、各子ノードは、次に親ノードとなり得、別の４つの子ノードにスプリットされ得る。４分木のリーフノードとしての、最終的な、スプリットされていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられるシンタックスデータは、ＣＴＵがスプリットされ得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００５１】
[0070]ＣＵは、コーディングノードと、コーディングノードに関連付けられた予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから、６４×６４ピクセル以上の最大値を有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを包含し得る。ＣＵに関連付けられたシンタックスデータは、たとえば、１つまたは複数のＰＵへのＣＵの区分を記述することができる。区分モードは、ＣＵがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なる可能性がある。ＰＵは、形状が非正方形に区分され得る。ＣＵに関連付けられたシンタックスデータは、たとえば、４分木に従う１つまたは複数のＴＵへのＣＵの区分を記述することもできる。ＴＵは、形状が方形または非方形であり得る。
【００５２】
[0071]ＨＥＶＣ  ＷＤ１０は、異なるＣＵに対して異なり得る、ＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＣＴＵまたはＬＣＵのために定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般に、ＰＵ以下のサイズである。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られている４分木構造を使用して、より小さいユニットに副分割され得る。ＲＱＴのリーフノードはＴＵと呼ばれる場合がある。ＴＵに関連付けられたピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【００５３】
[0072]概して、ＰＵは、予測プロセスに関するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのためのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。ＰＵのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルのための参照ピクチャリスト（たとえば、リスト０もしくはリスト１）を記述し得る。
【００５４】
[0073]一般に、ＴＵは、変換処理および量子化処理のために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数のＴＵを含む場合もある。予測に続いて、ビデオ符号化器２０は、ＰＵに対応する残差値を計算することができる。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、スキャンされ得るピクセル差分値を備える。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノードとＰＵおよびＴＵとを含む、ＬＣＵまたはＣＵと呼ばれる場合もあるＣＴＵと呼ばれる「ビデオブロック」という用語を使用する場合もある。
【００５５】
[0074]ビデオシーケンスは、一般に、一連のビデオフレームまたはビデオピクチャを含む。ピクチャグループ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰに含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオ符号化器２０は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定されたサイズまたは変化するサイズを有することができ、規定されたコーディング規格に従ってサイズが異なり得る。
【００５６】
[0075]一例として、ＨＥＶＣ  ＷＤ１０は、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＥＶＣ  ＷＤ１０は、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測、および２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称のＰＵサイズでのインター予測をサポートする。ＨＥＶＣ  ＷＤ１０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をもサポートする。非対称区分では、ＣＵの一方の方向は区分されず、他方の方向は、２５％と７５％とに区分される。ＣＵのうちで２５％区分に対応する部分は、「ｎ」とそれに続く「Ｕｐ（上）」、「Ｄｏｗｎ（下）」、「Ｌｅｆｔ（左）」、または「Ｒｉｇｈｔ（右）」の表示とによって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部で２Ｎ×０．５Ｎ  ＰＵ、および下部で２Ｎ×１．５Ｎ  ＰＵに水平に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００５７】
[0076]本開示では、「Ｎ×Ｎ（Ｎ×Ｎ）」および「Ｎ×Ｎ（Ｎ  ｂｙ  Ｎ）」は、垂直寸法および水平寸法の観点からビデオブロックのピクセル寸法、たとえば、１６×１６（１６×１６）ピクセルまたは１６×１６（１６  ｂｙ１６）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセル、水平方向にＮピクセルを有し、Ｎは、非負の整数値を表す。ブロック中のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、この場合、Ｍは必ずしもＮに等しいとは限らない。
【００５８】
[0077]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオ符号化器２０は、ＣＵのＴＵのための残差データを計算することができる。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備える場合があり、ＴＵは、変換、たとえば、残差ビデオデータに対する離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用を受けて、変換領域において係数を備える場合がある。残差データは、符号化されていないピクチャのピクセルとＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオ符号化器２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換することができる。
【００５９】
[0078]変換係数を生成するためのすべての変換に続いて、ビデオ符号化器２０は、変換係数の量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減し得る。たとえば、ｎビットの値は、量子化の間にｍビットの値に端数を丸められてよく、ここで、ｎはｍよりも大きい。
【００６０】
[0079]いくつかの例では、ビデオ符号化器２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数をスキャンするためにあらかじめ定義されたスキャン順序を利用し得る。他の例では、ビデオ符号化器２０は適応スキャンを実行し得る。１次元のベクトルを形成するために、量子化変換係数をスキャンした後、ビデオ符号化器２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピー符号化の方法に従って、１次元のベクトルをエントロピー符号化することができる。ビデオ符号化器２０は、ビデオデータを復号する際のビデオ復号器３０による使用のために、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化することもできる。
【００６１】
[0080]ＣＡＢＡＣを実行するために、ビデオ符号化器２０は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が非ゼロであるか否かに関するものとすることができる。ＣＡＶＬＣを実行するために、ビデオ符号化器２０は、送信されるべきシンボルの可変長コードを選択することができる。ＶＬＣにおける符号語は、相対的により短いコードがよりありそうなシンボルに対応し、より長いコードがよりありそうにないシンボルに対応するように構築され得る。この形で、ＶＬＣの使用は、たとえば、送信されるべきシンボルごとに等しい長さの符号語を使用することに対するビット節約を達成することができる。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６２】
[0081]ビデオ符号化器２０は、コード化ピクチャおよび関連付けられたデータの表現を形成するビットのシーケンスを含むビットストリームを出力することができる。ビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）をカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって規定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを包含するシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは０ビットを含む。
【００６３】
[0082]様々なタイプのＮＡＬユニットは、様々なタイプのＲＢＳＰをカプセル化することができる。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットはコード化スライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットは補助強化情報（ＳＥＩ：supplemental enhancement information）のためのＲＢＳＰをカプセル化し得、以下同様である。ＰＰＳは、０以上のコード化ピクチャ全体に適用されるシンタックス要素を包含し得るシンタックス構造である。ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれる場合がある。コード化スライスをカプセル化するＮＡＬユニットは、本明細書ではコード化スライスＮＡＬユニットと呼ばれる場合がある。コード化スライスのためのＲＢＳＰは、スライスヘッダとスライスデータとを含み得る。
【００６４】
[0083]ビデオ復号器３０は、ビットストリームを受信することができる。加えて、ビデオ復号器３０は、ビットストリームからシンタックス要素を復号するために、ビットストリームを解析することができる。ビデオ復号器３０は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するための処理は、概して、ビデオ符号化器２０によって実行される処理の逆であり得る。たとえば、ビデオ復号器３０は、現在のＣＵのＰＵのための予測ブロックを決定するために、ＰＵの動きベクトルを使用することができる。ビデオ復号器３０は、ＰＵのための予測ブロックを生成するために、ＰＵの１つまたは複数の動きベクトルを使用することができる。
【００６５】
[0084]さらに、ビデオ復号器３０は、現在のＣＵのＴＵに関連付けられた係数ブロックを逆量子化することができる。ビデオ復号器３０は、現在のＣＵのＴＵに関連付けられた変換ブロックを再構築するために、係数ブロックに対して逆変換を実行することができる。ビデオ復号器３０は、現在のＣＵのＰＵのための予測ブロックの予測サンプルを、現在のＣＵのＴＵの変換ブロックの対応する残差サンプルに加算することによって、現在のＣＵのコーディングブロックを再構築することができる。ピクチャの各ＣＵのコーディングブロックを再構築することによって、ビデオ復号器３０は、ピクチャを再構築することができる。ビデオ復号器３０は、出力のためにおよび／または他のピクチャを復号する際に使用するために、復号ピクチャを復号ピクチャバッファに記憶することができる。
【００６６】
[0085]ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣでは、ビデオ符号化器２０は、一連のネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを備えるマルチレイヤビットストリームを生成することができる。ビットストリームの異なるＮＡＬユニットが、ビットストリームの異なるレイヤに関連付けられ得る。レイヤは、同じレイヤ識別子を有するビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットおよび関連付けられた非ＶＣＬ  ＮＡＬユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを伴う同じレイヤのすべてのビューコンポーネントを包含し得る。各ビューコンポーネントは、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコード化ピクチャであり得る。３Ｄ−ＨＥＶＣでは、レイヤは、特定のビューのすべてのコード化深度ピクチャ、または特定のビューのコード化テクスチャピクチャのいずれかを包含し得る。同様に、スケーラブルビデオコーディングのコンテキストにおいて、レイヤは、一般に、他のレイヤの中のコード化ピクチャと異なるビデオ特性を有するコード化ピクチャに対応する。そのようなビデオ特性は、一般に、空間解像度と品質レベル（信号対雑音比）とを含む。ＨＥＶＣおよびそれの拡張では、時間スケーラビリティ（temporal scalability）は、特定の時間レベル（temporal level）を伴うピクチャのグループをサブレイヤと定義することによって、１つのレイヤ内で達成され得る。
【００６７】
[0086]ビットストリームの各それぞれのレイヤについて、より低いレイヤの中のデータは、任意のより高いレイヤの中のデータと無関係に復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤの中のデータは、エンハンスメントレイヤの中のデータと無関係に復号され得る。ＮＡＬユニットは、単一のレイヤのデータをカプセル化するだけである。ビデオ復号器３０が、あるビュー中のピクチャを任意の他のレイヤのデータを参照せずに復号することができる場合、そのビューは「ベースレイヤ」と呼ばれる場合がある。ベースレイヤは、ＨＥＶＣベース仕様に準拠し得る。したがって、ビットストリームの残りの最高レイヤのデータをカプセル化するＮＡＬユニットは、ビットストリームの残りのレイヤの中のデータの復号可能性に影響を及ぼすことなく、ビットストリームから除去され得る。ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣでは、より高いレイヤは、さらなるビューコンポーネントを含み得る。
【００６８】
[0087]次に、ビデオコーディングのいくつかの一般的な特徴をより詳細に論じる。最初に、動き情報について論じる。各ブロックに対して、動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向のための動き情報を含む。ここで、前方予測方向および後方予測方向は、双方向予測モードの２つの予測方向であり、「前方」および「後方」という用語は、必ずしも幾何学的な意味を有するとは限らず、代わりに、これらの用語は現在のピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応する。１つの参照ピクチャリストのみがピクチャまたはスライスに利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり得、スライスの各ブロックの動き情報は常に前方である。
【００６９】
[0088]各予測方向に対して、動き情報は参照インデックスと動きベクトルとを含む。場合によっては、簡単のために、動きベクトル自体は、それが関連付けられた参照インデックスを有すると仮定されるように呼ばれる場合がある。参照インデックスは、現在の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。
【００７０】
[0089]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント（ＰＯＣ：picture order count）が広く使用されている。１つのコード化ビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有する場合が存在するが、一般に、コード化ビデオシーケンス内でそのようなことは生じない。複数のコード化ビデオシーケンスがビットストリーム中に存在するとき、同じＰＯＣ値を有するピクチャは、復号順序の点で、互いにより近傍であり得る。ピクチャのＰＯＣ値は、一般に、参照ピクチャリスト構築、ＨＥＶＣにおけるような参照ピクチャセットの導出、および動きベクトルスケーリングのために使用される。
【００７１】
[0090]次に、Ｈ．２６４／ＡＶＣにおけるいくつかの特定の技法について論じる。最初に、ＡＶＣにおけるマクロブロック構造について論じる。Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、１つの１６×１６ＭＢ区分と、２つの１６×８ＭＢ区分と、２つの８×１６ＭＢ区分と、４つの８×８ＭＢ区分の、４つの異なる方法で区分され得る。１つのＭＢ中の異なるＭＢ区分は、各方向に異なる参照インデックス値（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。ＭＢが４つの８×８ＭＢ区分に区分されないとき、ＭＢは各ＭＢ区分について各方向に１つの動きベクトルしか有さない。ＭＢが、４つの８×８ＭＢ区分に区分されるとき、各８×８ＭＢ区分は、各々が各方向に異なる動きベクトルを有し得るサブブロックにさらに区分され得る。
【００７２】
[0091]８×８ＭＢ区分から、サブブロック、すなわち、１つの８×８サブブロック、２つの８×４サブブロック、２つの４×８サブブロック、または４つの４×４サブブロックを得るための、４つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有し得る。したがって、動きベクトルは、サブブロックレベル以上のレベルに存在する。
【００７３】
[0092]次に、ＡＶＣにおける時間的直接モードについて説明する。ＡＶＣでは、時間的直接モードは、Ｂスライス中のスキップモードもしくは直接モードのためのＭＢレベルまたはＭＢ区分レベルのいずれかで有効にされ得る。各ＭＢ区分では、動きベクトルを導出するために、現在のブロックのＲｅｆＰｉｃＬｉｓｔ１［０］中の現在のＭＢ区分とコロケートされたブロックの動きベクトルが使用される。コロケートブロック中の各動きベクトルはＰＯＣ距離に基づいてスケーリングされる。
【００７４】
[0093]次に、ＨＥＶＣにおけるいくつかの特定の技法について論じる。ＨＥＶＣでは、スライス中の最大コーディングユニット（ＣＵ）はコーディングツリーブロック（ＣＴＢ）と呼ばれる。ＣＴＢは４分木を含み、４分木のノードはＣＵである。技術的に、８×８ＣＴＢサイズがサポートされ得るが、ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４に及ぶ。ＣＵのサイズは、ＣＴＢと同じ大きいサイズから８×８の小さいサイズに及ぶ。各ＣＵは１つのモードでコーディングされる。ＣＵがインターコーディングされるとき、ＣＵは、２つもしくは４つの予測ユニット（ＰＵ）にさらに区分され得るか、または、さらなる区分が適用されないとき、１つのＰＵだけになる。ＣＵがインターコーディングされるとき、ＣＵの各ＰＵのために、１つのセットの動き情報が存在する。加えて、動き情報の関連付けられたセットを導出するために、ＣＵの各ＰＵは一意のインター予測モードでコーディングされる。
【００７５】
[0094]図２は、ＣＵのＰＵを定義するための８つの区分モード３３Ａ〜３３Ｈ（「区分モード３３」）を示す概念図である。ＰＵは、ＣＵを区分することによって定義される予測が適用される領域である。図２に示すように、ピクチャ中の実際のオブジェクトの境界に一致するように、ＣＵの区分を円滑にするために、ＰＵは形の点で方形になると限定されない。区分モードに応じて、各ＣＵは、１つ、２つ、または４つのＰＵを含む。いくつかの例では、２つのＰＵが１つのＣＵ中に存在するとき、ＰＡＲＴ＿２Ｎ×Ｎ  ３３Ｂ区分モードおよびＰＡＲＴ＿Ｎ×２Ｎ  ３３Ｃ区分モードにあるように、ＰＵは半分のサイズの矩形であり得る。他の例では、２つのＰＵが１つのＣＵ中に存在するとき、ＰＵは、ＰＡＲＴ＿２Ｎ×ｎＵ  ３３Ｅ区分モード、ＰＡＲＴ＿２Ｎ×ｎＤ  ３３Ｆ区分モード、ＰＡＲＴ＿ｎＬ×２Ｎ  ３３Ｇ区分モード、およびＰＡＲＴ＿ｎＲ×２Ｎ  ３３Ｈ区分モードにおけるように、ＣＵのサイズの１／４または３／４のサイズを有する２つの方形であり得る。ＰＡＲＴ＿２Ｎ×２Ｎ  ３３Ａ区分モードおよびＰＡＲＴ＿Ｎ×Ｎ  ３３Ｄ区分モードがイントラコード化ＣＵのために使用される。ＰＡＲＴ＿Ｎ×Ｎ  ３３Ｄ区分モードは、対応するＣＵサイズが最小ＣＵサイズに等しいときだけ可能にされる。
【００７６】
[0095]図３は、ＣＵ内の変換ツリー構造３４を示す概念図である。各ＣＵは、４分木である、１つの変換ツリーに対応し、そのリーフは変換ユニット（ＴＵ）である。変換ツリー構造３４中のＴＵの各々は、ＣＵの４分木区分によって定義される、変換プロセスおよび量子化プロセスが適用される方形領域である。図３に示すように、ＴＵは形の点で常に方形である。ＴＵは、３２×３２サンプルの大きさから４×４サンプルに至るまでであり得る。最大４分木深度、すなわち、変換ツリー構造３４がリーフノードを形成するためにどの程度までスプリットされ得るかは、調整可能であり、スライスヘッダシンタックス中で規定される。インターＣＵの場合、ＴＵは、ＰＵよりも大きい場合があり、すなわち、ＴＵはＰＵ境界を包含し得る。しかしながら、イントラＣＵの場合、ＴＵはＰＵ境界を超えることができない。
【００７７】
[0096]１に等しいシンタックス要素ｒｑｔ＿ｒｏｏｔ＿ｃｂｆは、現在のＣＵのためのｔｒａｎｓｆｏｒｍ＿ｔｒｅｅシンタックス構造が存在することを規定する。０に等しいシンタックス要素ｒｑｔ＿ｒｏｏｔ＿ｃｂｆは、現在のＣＵのためのｔｒａｎｓｆｏｒｍ＿ｔｒｅｅシンタックス構造が存在しないことを規定する。シンタックス要素ｒｑｔ＿ｒｏｏｔ＿ｃｂｆが存在しないとき、その値は１に等しいと推論される。シンタックス要素ｒｑｔ＿ｒｏｏｔ＿ｃｂｆが０に等しいとき、変換ツリーは１つのノードのみを包含し、つまり、その変換ツリーはさらにスプリットされず、ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇは０に等しい。変換ツリー内部のノードの場合、そのノードが１に等しいｓｐｌｉｔ＿ｔｒａｎｆｏｒｍ＿ｆｌａｇを有する場合、そのノードは４つのノードにさらにスプリットされ、変換ツリーのリーフは０に等しいｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇを有する。
【００７８】
[0097]簡単のために、ＴＵすなわち変換ツリーが変換を有さないブロックに対応する場合、それは、依然として、ＴＵすなわち変換ユニットと見なされるが、これは、変換が適用されない場合ですら、変換自体の階層は依然として存在するためである。一般に、変換がスキップされるブロックは変換ユニットに対応する。
【００７９】
[0098]１に等しいＴＵのコード化ブロックフラグ（ｃｂｆ）は、ＴＵが１つまたは複数の非ゼロ変換係数レベルを包含すること、すなわち、０に等しくないことを規定する。０に等しいＴＵのＣＢＦは、ＴＵのすべての変換係数レベルが０に等しいことを規定する。ＣＢＦは、ＴＵの各成分に対して設定され、すなわち、ＣＢＦは、ルミナンス（Ｙ）成分ならびにクロミナンス（ＣｂおよびＣｒ）成分の各々に対して設定される。
【００８０】
[0099]ＨＥＶＣ規格では、現在の予測ユニット（ＰＵ）のための動きを予測するための、マージモードおよび高度動きベクトル予測（ＡＭＶＰ）モードと名付けられた、２つのインター予測モードが存在する。スキップモードは、マージモードの特殊事例と見なされる。ＡＭＶＰモードまたはマージモードのいずれかで、複数の動きベクトル予測子を含む動きベクトル（ＭＶ）候補リストが維持される。ＭＶ候補リストから候補のうちの１つを選択することによって、動きベクトル、ならびに、マージモードにおいて関連付けられた参照インデックスが現在のＰＵのために生成される。
【００８１】
[0100]マージモードでは、ＭＶ候補リストは５つまでの候補を含む。マージ候補は、動き情報、たとえば、参照ピクチャリスト（リスト０およびリスト１）ならびに関連付けられた参照インデックスの両方に対応する動きベクトルのセットを包含し得る。マージ候補が現在のＰＵのためのマージインデックスによって識別される場合、現在のＰＵの予測のために動きベクトルおよび関連付けられた参照ピクチャが使用される。
【００８２】
[0101]ＡＭＶＰモードでは、ＭＶ候補リストは２つのみの候補を含む。ＡＭＶＰ候補は、両方の参照ピクチャリスト（リスト０およびリスト１）に対応する動きベクトルを包含する。ＡＭＶＰ候補が現在のＰＵのためのＡＭＶＰインデックスによって識別される場合、ＡＭＶＰ候補は動きベクトルのみを含むため、参照インデックスは、ＡＭＶＰインデックスとともに、リスト０またはリスト１のいずれかからの各潜在的な予測方向のために明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測動きベクトルは、動きベクトル差分をシグナリングし、動きベクトルスケーリングを実行することによって、さらに改良され得る。
【００８３】
[0102]上記で説明したように、マージ候補は、動き情報の完全セットに対して含むが、ＡＭＶＰ候補は、特定の予測方向のための１つの動きベクトルおよび明示的にシグナリングされた参照インデックスのみを含む。両方のモードのための候補は、現在のＰＵの同じ空間的隣接ブロックおよび時間的隣接ブロック（temporal neighboring blocks）から同様に導出される。
【００８４】
[0103]図４Ａおよび図４Ｂは、それぞれ、マージモードおよびＡＭＶＰモードのための空間的隣接候補を示す概念図である。空間的ＭＶ候補は、現在のＰＵ（ＰＵ０）のための、図４Ａおよび図４Ｂに示す隣接ブロックから導出されるが、ブロックから候補を生成するための方法はマージモードおよびＡＭＶＰモードに対して異なる。
【００８５】
[0104]マージモードでは、図４Ａに示す、番号付けされた順序で、ＰＵ０  ９０の隣接ブロックから４つまでの空間的ＭＶ候補が導出され得る。図４Ａに示す例では、この順序は、次の通り、すなわち、左ブロック（０）、上ブロック（１）、右上ブロック（２）、左下ブロック（３）、および左上ブロック（４）である。
【００８６】
[0105]ＡＭＶＰモードでは、図４Ｂに示す、番号付けされた順序で、ＰＵ０  ９２の隣接ブロックから２つまでの空間的ＭＶ候補が導出され得る。図４Ｂに示すように、ＰＵ０  ９２の隣接ブロックは２つのグループ、すなわち、左下ブロック（０）と左ブロック（１）とを含む左グループ、および右上ブロック（２）と、上ブロック（３）と、左上ブロック（４）とを含む上グループに分割される。各グループに対して、ＰＵ０  ９２のための明示的なシグナリングされた参照インデックスと同じ参照ピクチャを指す隣接ブロックのための動きベクトルは、そのグループの最終的なＭＶ候補を形成するように選ばれている最高優先順位を有する。いくつかの例では、隣接ブロックのうちのいずれも、明示的にシグナリングされた参照ピクチャを指す動きベクトルを有さない可能性がある。そのようなＭＶ候補が発見され得ない場合、そのグループの最終的なＭＶ候補を形成するために、第１の利用可能な動きベクトルがスケーリングされることになる。この場合、いずれの時間的な距離差分も補償されることになる。
【００８７】
[0106]図５Ａは、現在のＰＵ（ＰＵ０）９４のための時間的動きベクトル予測（ＴＭＶＰ）候補を示す概念図である。ＴＭＶＰ候補は、有効にされ、利用可能である場合、空間的ＭＶ候補の後にＭＶ候補リストに追加される。ＴＭＶＰ候補のための動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードの両方に対して同じである。しかしながら、マージモードでは、ＴＭＶＰ候補のためのターゲット参照インデックスは常に０に設定される。
【００８８】
[0107]ＴＭＶＰ候補導出のためのプライマリブロックロケーションは、図５ＡでブロックＴ  ９７として示される、ＰＵ０  ９４のコロケートＰＵ（ＰＵ１）９６の外部の右下ブロックである。右下ブロックＴ９７は、空間的隣接候補を生成するために使用される上ブロックおよび左ブロックに対するバイアスを補償するように選択される。しかしながら、右下ブロックＴがＰＵ０  ９４の現在のＬＣＵ９８の外部（すなわち、位置９９）に位置するか、または右下ブロックＴ９７のための動き情報が利用可能でない場合、ＴＭＶＰ候補導出のために使用されるブロックは、ＰＵ０  ９４の中央ブロックＴ９５に置換される。
【００８９】
[0108]図５Ｂは、現在のピクチャ１０２中の現在のＰ１００のためのＴＭＶＰモードに対するＭＶスケーリングを示す概念図である。ＴＭＶＰ候補のための動きベクトルは、スライスレベルで示された、コロケートピクチャ１０６のコロケートＰＵ１０４から導出される。上記で説明した、ＡＶＣ中の時間的直接モードと同様に、ＴＭＶＰ候補の動きベクトルは、図５Ｂに示すように、コロケートテンポラル距離（すなわち、コロケートピクチャ１０６とコロケート参照ピクチャ１０７との間の距離）と（すなわち、現在のピクチャ１０２と現在の参照ピクチャ１０３との間の）現在のテンポラル差分との間の差分を補償するために実行される、スケーリングを使用して、現在のＰＵ１００のために生成され得る。
【００９０】
[0109]次に、ＨＥＶＣにおける動きベクトル予測の他の態様について論じる。動きベクトルスケーリングでは、動きベクトルの値は提示時間におけるピクチャの距離に比例すると仮定される。動きベクトルは、２つのピクチャ、すなわち、参照ピクチャと（すなわち、包含ピクチャ（containing picture））動きベクトルを包含するピクチャとを関連付ける。別の動きベクトルを予測するためにある動きベクトルが利用されるとき、包含ピクチャと参照ピクチャの距離は、それらのピクチャのピクチャ順序カウント（ＰＯＣ）値に基づいて計算される。予測されるべき動きベクトルに対して、その包含ピクチャと関連付けられた参照ピクチャの両方は異なり得る。この場合、（ＰＯＣに基づいて）新しい距離が計算される。動きベクトルはこれらの２つのＰＯＣ距離に基づいてスケーリングされる。空間的隣接候補の場合、２つの動きベクトルに対する包含ピクチャは同じであるが、参照ピクチャは異なる。ＨＥＶＣでは、動きベクトルスケーリングは、空間的隣接候補および時間的隣接候補のためのＴＭＶＰとＡＭＶＰの両方に適用される。
【００９１】
[0110]人工的動きベクトル候補生成では、動きベクトル候補リストが完全でない（すなわち、指定された数の候補未満が利用可能である）場合、そのリストが指定された数の候補を含むまで、人工的動きベクトル候補が生成されて、リストの最後に挿入され得る。マージモードでは、２つのタイプの人工的ＭＶ候補が存在する。すなわち、Ｂスライスに対してのみ導出される結合候補、および、第１のタイプが十分な人工的候補を提供しない場合、ＡＭＶＰに対してのみ使用されるゼロ候補である。候補リスト中にすでにあり、必要な動き情報を有する候補の対の各々に対して、リスト０中のピクチャを指す第１の候補の動きベクトルと、リスト１中のピクチャを指す第２の候補の動きベクトルの結合に基づいて、双方向結合動きベクトル候補が導出される。
【００９２】
[0111]候補挿入のための刈り込みプロセスで、異なるブロックからの候補は偶然同じである場合があり、これはマージ／ＡＭＶＰ候補リストの効率を低減する。刈り込みプロセスはこの問題に対処するために適用され得る。刈り込みプロセスは、ある状況において同一候補を挿入するのを避けるために、現在の候補リスト中のある候補を他の候補と比較する。複雑さを低減するために、各潜在的な候補をすべての他の既存の候補と比較する代わりに、限定された数の刈り込みプロセスのみが適用され得る。
【００９３】
[0112]次に、ＨＥＶＣにおけるデブロッキングフィルタプロセスについて説明する。デブロッキングフィルタプロセスは、復号プロセスと同じ順序でビデオブロックの各ＣＵのために実行される。第１に、垂直エッジがフィルタリングされ（すなわち、水平フィルタリング）、次いで、水平エッジがフィルタリングされる（すなわち、垂直フィルタリング）。デブロッキングフィルタリングは、両方ともルーマ成分およびクロマ成分に関する、フィルタリングされるべきであると決定されたＣＵ内のブロック境界に適用される。いくつかの例では、複雑さを低減するために、８×８ブロック境界はフィルタリングされるが、４×４ブロック境界は処理されない。２つの種類の境界、すなわち、ＴＵ境界およびＰＵ境界がデブロッキングフィルタプロセスに関与する。ＣＵ境界は必然的にＴＵ境界およびＰＵ境界でもあるため、ＣＵ境界も考慮される。
【００９４】
[0113]図６は、デブロッキングフィルタプロセスの例示的な処理フロー１０８を示すフローチャートである。境界は３つのフィルタリング状態値、すなわち、フィルタリングなし、弱いフィルタリング、および強いフィルタリングを有し得る。各フィルタリング決定は、境界強度Ｂと、しきい値βおよびｔCとに基づく。
【００９５】
[0114]図７は、デブロッキングフィルタプロセスのための境界強度（Ｂ）計算１１０の例示的な動作を示すフローチャートである。境界強度（Ｂ）は、フィルタリングプロセスが境界のためにどの程度強く必要とされ得るかを反映する。たとえば、２のＢ値は強いフィルタリングを示し、１のＢ値は弱いフィルタリングを示し、０のＢ値はデブロッキングフィルタリングがないことを示す。
【００９６】
[0115]ＰおよびＱをフィルタリングに関与するブロックと定義し、この場合、Ｐは、デブロッキングされるべき境界の左（垂直エッジの場合）または上（水平エッジの場合）に対して位置するブロックを表し、Ｑは、デブロッキングされるべき境界の右（垂直エッジの場合）または上（水平エッジの場合）に対して位置するブロックを表す。図７に示した動作は、イントラコーディングモード、非ゼロ変換係数の存在、参照ピクチャ、動きベクトルの数、および動きベクトル差分に基づいて、Ｂ値がどのように計算されるかを示す。
【００９７】
[0116]図８は、デブロッキングフィルタプロセスのためのコーディングツリーユニット（ＣＴＵ）境界１１３におけるグリッド１１２中のピクセル間のＢ計算のために再使用または参照される情報を示す概念図である。Ｂは４×４ブロックベースで計算されるが、Ｂは８×８グリッドに再度マッピングされる。４×４グリッド中のラインからなる８つのピクセルに対応するＢの２つの値の最大値が、８×８グリッド中の境界のためのＢとして選択される。ＣＴＵ境界１１３において、ラインバッファメモリ要件を削減するために、図８に示すように、左側にまたは上側に（４×４グリッド上の）すべての第２のブロックの情報が再使用される。
【００９８】
[0117]フィルタオン／オフ決定、強いフィルタおよび弱いフィルタの選択、ならびに弱いフィルタリングプロセスにしきい値β’およびｔC’が関与する。これらのしきい値は、下の表１に示すように、ルーマ量子化パラメータＱの値から導出される。
【００９９】
【表１】
0006545667.tif 000002
【０１００】
変数βは次のようにβ’から導出される。  
β = β′ * ( 1  <<  ( BitDepthY - 8 ) )  
変数ｔCは次のようにｔC’から導出される。  
tC = tC′ * ( 1  <<  ( BitDepthY - 8 ) )
【０１０１】
[0118]図９は、境界１１４におけるデブロッキングフィルタプロセスのためのオン／オフフィルタ決定および強い／弱いフィルタ選択に関与するＰブロック１１６ならびにＱブロック１１７中のピクセルを示す概念図である。フィルタオン／オフ決定は、計算上の複雑さを低減するために、（図９で、黒の輪郭線のボックスを使用して示した）ユニットとして各々グループ化された、境界１１４を超える４本のラインのピクセルを使用して行われる。フィルタが４本のラインの第１のセット１１８のためにオンであるか、またはオフであるかを決定するために、４本のラインの第１のセット１１８中の２つのボックスの各々に含まれた６つのピクセルが使用される。フィルタが４本のラインの第２のセット１１９のためにオンであるか、またはオフであるかを決定するために、４本のラインの第２のセット１１９中の２つのボックスの各々に含まれた６つのピクセルが使用される。
【０１０２】
[0119]オン／オフフィルタ決定のために、以下の変数が定義される。  
dp0 = | p2,0 - 2*p1,0 + p0,0 |  
dp3 = | p2,3 - 2*p1,3 + p0,3 |  
dq0 = | q2,0 - 2*q1,0 + q0,0 |  
dq3 = | q2,3 - 2*q1,3 + q0,3 |  
ｄｐ０＋ｄｑ０＋ｄｐ３＋ｄｑ３＜βである場合、４本のラインの第１のセット１１８のためのフィルタリングがオンにされ、強い／弱いフィルタ選択プロセスが適用される。この条件が満たされない場合、４本のラインの第１のセット１１８のために何のフィルタリングも行われない。
【０１０３】
[0120]加えて、この条件が満たされる場合、変数ｄＥ、ｄＥｐ１、およびｄＥｐ２は次のように、すなわち、  
ｄＥが１に等しいように設定される。  
dp0 + dp3 < (β + ( β >> 1 )) >> 3  である場合、変数ｄＥＰ１は、１に等しいように設定される  
dq0 + dq3 < (β + ( β >> 1 )) >> 3  である場合、変数ｄＥｑ１は、１に等しいように設定される  
フィルタオン／オフ決定は、４本のラインの第２のセット１１９のために上記で説明したのと同様の方法で行われる。
【０１０４】
[0121]フィルタリングがオンにされる場合、強いフィルタリングと弱いフィルタイングとの間で決定が行われる。関与するピクセルは、図９に示したように、フィルタオン／オフ決定のために使用されたピクセルと同じである。以下の２つの条件セットが満たされた場合、４本のラインの第１のセット１１８のフィルタリングのために強いフィルタが使用される。さもなければ、弱いフィルタが使用される。
(1)    2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 )および| p00 - q00 | < ( 5* tC + 1 ) >> 1  
(2)    2*(dp3+dq3) < ( β >> 2 ), | p33 - p03 | + | q03
- q33 | < ( β >> 3 )および| p03 - q03 | < ( 5* tC + 1 ) >> 1  
４本のラインの第２のセット１１９のために強いフィルタリングを選択するかまたは弱いフィルタリングを選択するかに関する決定は類似の方法で行われる。
【０１０５】
[0122]強いフィルタリングの場合、フィルタリングされたピクセル値は以下の方程式によって取得される。３つのピクセルは、Ｐブロック１１６およびＱブロック１１７の各々のための入力として４つのピクセルを使用して修正されることに留意されたい。  
P0’ = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3  
q0’ = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3  
p1’ = ( p2 + p1 + p0 + q0 + 2 ) >> 2  
q1’ = ( p0 + q0 + q1 + q2 + 2 ) >> 2  
p2’ = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3  
q2’ = ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3
【０１０６】
[0123]弱いフィルタリングの場合、フィルタリングされたピクセル値は以下の方程式によって取得される。２つのピクセルは、Ｐブロック１１６およびＱブロック１１７の各々のための入力として３つのピクセルを使用して修正されることに留意されたい。  
デルタ（Δ）は次のように定義される。  
Δ= ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4  
ａｂｓ（Δ）がｔC*１０未満であるとき、  
Δ= Clip3( - tC , tC , Δ)  
P0’ = Clip1Y( p0 +Δ)   
q0’ = Clip1Y( q0 -Δ)  
ｄＥｐ１が１に等しい場合、  
Δp = Clip3( -( tC >> 1), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 +Δ) >>1 )   
p1’ = Clip1Y( p1 +Δp )  
ｄＥｑ１が１に等しい場合、  
Δq = Clip3( -( tC >> 1), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 -Δ) >>1 )  
q1’ = Clip1Y( q1 +Δq )
【０１０７】
[0124]上記で説明したデブロッキング決定はルーマ成分をフィルタリングするためである。クロマフィルタリングのための境界強度Ｂはルーマから継承される。Ｂ＞１である場合、クロマフィルタリングが実行される。１つのフィルタのみが適用され得るため、クロマのために何のフィルタ選択プロセスも実行されない。フィルリングされたサンプル値ｐ0’およびｑ0’は、次のように導出される。  
Δ= Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )  
p0’ = Clip1C( p0 +Δ)  
q0’ = Clip1C( q0 -Δ)
【０１０８】
[0125]次に、３Ｄ−ＨＥＶＣにおけるいくつかの特定の技法について論じる。ＨＥＶＣ規格の３Ｄビデオ拡張（３Ｄ−ＨＥＶＣ）はＪＣＴ−３Ｖによって開発中である。３Ｄ−ＨＥＶＣ拡張は、マルチビュービデオに加えて深度フォーマットのコーディングをサポートする。
【０１０９】
[0126]図１０は、Ｖ３がベースビューを示し、非ベースビュー（すなわち、Ｖ１またはＶ５）中のピクチャが同じ時間インスタンスのベースビュー中のピクチャから予測され得る、３つのビューの事例に対するマルチビュー予測構造１２０を示す概念図である。図１０に示すマルチビュー予測構造１２０を使用するビュー間サンプル予測は、ＨＥＶＣのマルチビュー拡張（ＭＶ−ＨＥＶＣ）によってサポートされる。ＭＶ−ＨＥＶＣと３Ｄ−ＨＥＶＣは両方とも、ベースビューまたはテクスチャビュー（すなわち、Ｖ３）がＨＥＶＣ復号器によって復号可能であるような形でＨＥＶＣに対して互換性がある。
【０１１０】
[0127]ＭＶ−ＨＥＶＣでは、非ベースビュー（すなわち、Ｖ１またはＶ５）中の現在のピクチャは、これらのピクチャのすべてを現在のピクチャのための参照ピクチャリスト中に含めることによって、同じタイムインスタンスの同じビュー中のピクチャと参照ビュー中のピクチャの両方によって予測され得る。現在のピクチャの参照ピクチャリストは、したがって、時間的参照ピクチャとビュー間参照ピクチャの両方を包含する。時間的参照ピクチャに対応する参照インデックスに関連付けられた動きベクトルは、時間的動きベクトルとして示される。ビュー間参照ピクチャに対応する参照インデックスに関連付けられた動きベクトルは、視差動きベクトルとして示される。
【０１１１】
[0128]３Ｄ−ＨＥＶＣ拡張は、ビュー間サンプル予測が３Ｄ−ＨＥＶＣによってやはりサポートされるように、ＭＶ−ＨＥＶＣのすべての特徴をサポートする。加えて、３Ｄ−ＨＥＶＣ拡張は、ＭＶ−ＨＥＶＣ拡張によってサポートされない、より高度なテクスチャオンリーコーディングツール（texture-only coding tools）および深度関連／依存コーディングツール（depth related/dependent coding tools）をサポートする。テクスチャオンリーコーディングツールは、同じオブジェクトに属するビュー間の対応するブロックの識別を必要とし得る。視差ベクトル導出は、したがって、３Ｄ−ＨＥＶＣにおける基本的な技術である。
【０１１２】
[0129]マルチビューコーディング技術の１つの主な態様は、視差ベクトルの正確で効率的な導出によって、異なるビューの対応するブロックを識別することである。３Ｄ−ＨＥＶＣでは、隣接ブロックベースの視差ベクトル（ＮＢＤＶ）導出は、ＨＥＶＣにおけるＡＭＶＰモードおよびマージモードに類似した方法で設計される。しかしながら、視差ベクトルは隣接ブロックだけから導出され、その結果、視差ベクトルのさらなる改良またはスケーリングのために追加のビットは必要とされない。ビュー間サンプル予測が有効にされるとき、ビュー間参照ピクチャに対応する動きベクトル、すなわち、視差動きベクトルは、通常の動きベクトル、すなわち、時間的動きベクトルとともに、現在のブロックのための動きフィールド中にすでに存在する。ＮＢＤＶ導出の基本的な考えは、空間的隣接ブロックおよび時間的隣接ブロックのみを確認することによって、動きフィールド中の視差動きベクトルを使用することである。
【０１１３】
[0130]図１１は、現在のブロック１２２のためのＮＢＤＶ導出のためにアクセスされる空間的隣接ブロックベースがマージモードおよびＡＭＶＰモードのためにアクセスされる空間的隣接ブロックと同じである、ＮＢＤＶ導出のための空間的隣接ブロックを示す概念図である。ＮＢＤＶのためにアクセスされる空間的隣接ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２は、図４Ａおよび図４Ｂ、ならびに図１１に示した、ＡＭＶＰモードおよびマージモードのためにアクセスされる空間的隣接ブロックと同じである。
【０１１４】
[0131]しかしながら、いずれの関連付けられた視差動きベクトルを有する現在のブロック１２２の空間的隣接ブロックが存在しない可能性が高い。この場合、時間的隣接ブロックも確認される。現在のブロック１２２の時間的隣接ブロックは、ＴＭＶＰモードで使用されるような、コロケートピクチャ、加えて、視差動き補償を使用するより良好な機会を有し得る別のピクチャ、たとえば、ランダムアクセスピクチャ、または最低ｔｅｍｐｏｒａｌＩｄを有するピクチャの中のブロックである。図５Ａに示したＴＭＶＰモードと同様の各時間的ピクチャに対して、中央ブロックおよび右下ブロックが確認される。現在のブロック１２２のすべての空間的隣接ブロックおよび時間的隣接ブロックが順に確認される。視差動きベクトルが識別されると、識別された視差動きベクトルと同じになるように現在のブロック１２２の視差ベクトルが導出され、ＮＢＤＶ導出プロセスは終了する。現在のブロック１２２の視差ベクトルは、たとえば、ビュー間動き予測およびビュー間残差予測におけるように、参照ビューのピクチャ中のビュー間参照ブロックを識別するために使用される。
【０１１５】
[0132]３Ｄ−ＨＥＶＣでは、隣接ブロックのためにさらに使用されるように、ＮＢＤＶ導出の結果として、いくつかの導出された視差ベクトルを記憶することが可能であり得る。そのような導出された視差ベクトルは、暗黙的視差ベクトル（ＩＤＶ：implicit disparity vectors）と名付けられる。たとえば、ＮＢＤＶ導出が隣接ブロックからのいずれの視差動きベクトルも識別しない場合、現在のブロック１２２のための最終的な視差ベクトルを導出するために使用される空間的隣接ブロックのいずれかの利用可能なＩＤＶを識別するために、空間的隣接ブロックが再度確認され得る。最近、３Ｄ−ＨＥＶＣは、より少ない空間的隣接ブロックおよび時間的隣接ブロックを確認することによって、ＮＢＤＶ方法の簡略化も含めた。
【０１１６】
[0133]３Ｄ−ＨＥＶＣにおけるビュー合成予測（ＶＳＰ）は、２つの主な技術的モジュール、すなわち、深度指向性ＮＢＤＶ（Ｄｏ−ＮＢＤＶ：Depth-Oriented NBDV）および後方ビュー合成予測（ＢＶＳＰ）によって実現される。
【０１１７】
[0134]Ｄｏ−ＮＢＤＶ導出では、ＮＢＤＶ方式によって生成された視差ベクトルは、コード化深度マップ中の情報を使用してさらに改良され得る。このようにして、視差ベクトルの精度は、ベースビュー深度マップ中でコーディングされた情報を利用することによって向上され得る。改良ステップは次のように説明される。  
１．同じアクセスユニットの前にコーディングされた（ベースビューなど）参照深度ビューピクチャ中の現在のＰＵのためにＮＢＤＶ方式によって導出された視差ベクトルに基づいて、対応する深度ブロックを位置特定し、対応する深度ブロックのサイズは現在のＰＵのサイズと同じである。  
２．４つのコーナーピクセル深度値の最大値に基づいて、対応する深度ブロックから現在のＰＵのための視差ベクトルを計算する。最大値は、計算された視差ベクトルの水平成分に等しいように設定されるが、視差ベクトルの垂直成分は０に設定される。
【０１１８】
[0135]ＮＢＤＶ方式からの視差ベクトルは、次いで、Ｄｏ−ＮＢＤＶ方式から新しく導出された視差ベクトルによって置換され、現在のＰＵのためのビュー間動き予測のために、（Ｄｏ−ＮＢＤＶからの）改良された視差ベクトルが使用される。しかしながら、（ＮＢＤＶからの）改良されていない視差ベクトルは、現在のＰＵのためのビュー間残差予測のために使用され得る。加えて、改良された視差ベクトルは、ＢＶＳＰモードでコーディングされる場合、現在のＰＵの１つの動きベクトルとして記憶され得る。
【０１１９】
[0136]ＢＶＳＰモードは、その開始動きベクトルを視差動きベクトルに設定させた特殊マージモード候補として実現される。そのような候補はＢＶＳＰ候補と呼ばれる。現在のＰＵの空間的隣接ブロックがＢＶＳＰモードでコーディングされるとき、現在のＰＵのための追加のＢＶＳＰ候補を定義するために、隣接ブロックからの関連付けられた視差ベクトルおよび参照ビューインデックスが使用される。そのような空間的隣接ブロックから導出された空間的マージモード候補は、１に等しいＢＶＳＰフラグを用いてタグ付けされる。
【０１２０】
[0137]図１２は、現在のピクチャ１２５中の現在のＰＵ１２６の異なるサブＰＵのために異なる動きベクトルを割り当てるＢＶＳＰモード１２４を示す概念図である。本開示では、３Ｄ−ＨＥＶＣにおける現在のＢＶＳＰモードは、サブＰＵ  ＢＶＳＰモードと呼ばれる場合がある。ＢＶＳＰモードでは、現在のＰＵ１２６の空間的隣接ブロックまたは時間的隣接ブロックから現在のＰＵ１２６のための第１の動き情報が決定される。上記で説明したように、第１の動き情報は、マージモード候補リスト中のＢＶＳＰ候補として選択され得る。第１の動き情報は、視差動きベクトルと、ビュー間参照ピクチャ１２８を識別する、関連付けられた参照ビューインデックスとを含む。ＢＶＳＰモードの第１のステップは、上記で説明したＮＢＤＶ導出と実質的に同様であり得る。
【０１２１】
[0138]現在のＰＵ１２６は、サブ領域またはサブＰＵにさらに区分される。たとえば、そのサイズがＮ×Ｍによって示されるＰＵは、Ｋ×Ｌ（式中、ＫおよびＬは８もしくは４であり得るが、両方とも４であり得ない）に等しいサイズを有する、いくつかのサブ領域またはサブＰＵにさらに区分され得る。各サブ領域またはサブＰＵに対して、第１の視差ベクトルに関連付けられた参照ビューインデックスによって識別されたビュー間参照ピクチャ１２８に関連付けられた参照深度ビューピクチャ１２９中の深度ブロック１３０のうちの対応する１つの深度ブロックにアクセスすることによって導出された別個の視差動きベクトルを含む第２の動き情報が決定される。より具体的には、現在のＰＵ１２６の各サブＰＵに対して、深度ブロック１３０のうちの対応する１つの深度ブロックの４つのコーナーピクセルの最大値が選択され、サブＰＵのための視差動きベクトルの水平成分に変換され、視差動きベクトルはゼロに等しい垂直成分を有する。ＢＶＳＰモードの第２のステップは、上記で説明したＤｏ−ＮＢＤＶ導出と実質的に同様であり得る。
【０１２２】
[0139]現在のＰＵ１２６の各サブ領域またはサブＰＵがその動き情報を予測させた後、各サブＰＵのための第２の動き情報に基づいて、ビュー間参照ピクチャ１２８から現在のＰＵ１２６の各サブ領域またはサブＰＵを予測するために、ＨＥＶＣの動き補償エンジンが使用され得る。ＢＶＳＰモードでは、現在のＰＵ１２６の各サブＰＵを予測するために動き補償を実行した後、現在のＰＵ１２６のために選択された第１の動き情報内に含まれた第１の視差動きベクトルだけが現在のＰＵ１２６のために記憶され、サブＰＵのための第２の動き情報内に含まれた別個の視差ベクトルは廃棄される。
【０１２３】
[0140]ＢＶＳＰモードで、各ＰＵは、２つ以上のセットの動き情報を有し得、すなわち、ＰＵ内部のサブＰＵは異なる動きベクトルを有し得る。これは、各ＰＵが１つのセットの動き情報のみを有するＨＥＶＣとは異なる。一般に、ＢＶＳＰモードでは、ＰＵ内部のサブＰＵは異なる動きベクトルを有し得るが、サブＰＵのための参照インデックス値は同じである。ＢＶＳＰモードの複雑さの増大は、主に電力消費の増大にあり、最悪の複雑さは、サブＰＵのサイズ、ならびに、双予測状態が、ＨＥＶＣにおいて有効にされる動き補償ブロックのサイズよりも決して小さくない限り、ＨＥＶＣ動き補償と同様である。
【０１２４】
[0141]３Ｄ−ＨＥＶＣでは、関連付けられたテクスチャビューの後、深度ビューがコーディングされる。深度ビュー中のＰＵがコーディングされるとき、ＰＵのコロケート領域内のテクスチャビューの動き情報は、現在のＰＵのためのマージ候補を作成し得る。この場合、マージ候補は、フルセットの動き情報を包含する動きパラメータ継承（ＭＰＩ）候補と呼ばれる場合がある。
【０１２５】
[0142]ＪＣＴ３Ｖ−Ｅ０１８４、Ｊｉｃｈｅｎｇ  Ａｎら、３Ｄ−ＣＥ３．ｈ関連：Ｓｕｂ−ＰＵ  ｌｅｖｅｌ  ｉｎｔｅｒ−ｖｉｅｗ  ｍｏｔｉｏｎ  ｐｒｅｄｉｃｔｉｏｎ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１との３Ｄビデオコーディング拡張開発に関する共同研究部会、第５回会議、ウィーン、オーストリア、２０１３年７月２７日〜８月２日では、ビュー間マージ候補、すなわち、ビュー間参照ピクチャ中の参照ブロックから導出された候補に対するサブＰＵレベルのビュー間動き予測方法の使用が説明されている。
【０１２６】
[0143]図１３は、現在のビュー（Ｖ１）１３２中の現在のＰＵ１３４のためのサブＰＵレベルのビュー間動き予測１３１を示す概念図である。ビュー間動き予測モードが有効にされるとき、現在のＰＵ１３４は、参照ビュー（Ｖ０）１３６中の視差ベクトルによって識別された現在のＰＵと同じサイズを有する参照領域に対応し得る。場合によっては、参照エリアは、現在のＰＵ１３４のための１つのセットの動き情報のみの生成のために必要とされるよりもより豊富な動き情報を有し得る。したがって、現在のＰＵ１３４が複数のサブＰＵに区分され、視差ベクトル（ＤＶ）が使用される、現在のＰＵ１３４のサブＰＵの各々のための参照ビュー（Ｖ０）１３６中の参照ブロック１３８を識別する、サブＰＵレベルのビュー間動き予測（ＳＰＩＶＭＰ：sub-PU level inter-view motion prediction）方法が提案される。ＳＰＩＶＭＰモードでは、現在のＰＵ１３４のサブＰＵの各々は、現在のＰＵ１３４が複数のセットの動き情報を包含し得るように、参照ブロック１３８から複写されたフルセットの動き情報を有する。ＳＰＩＶＭＰモードはまた、上記で説明したサブＰＵ  ＢＶＳＰモードと同様の特殊マージモード候補としてシグナリングされ得る。
【０１２７】
[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]いくつかの例示的な実装詳細が下で提供される。下のテキストは本開示で説明する技法のうちのいくつかの実装形態のための、３Ｄ−ＨＥＶＣ  ＷＤ１に対して提案される修正を示す。  
復号プロセス  
Ｈ．８．１  一般的な復号プロセス  
．．．  
３．従属節８．４、８．５、８．６、８．７、および８．８におけるプロセスは、すべてのシンタックス構造レイヤにおいてシンタックス要素を使用した復号プロセスを規定する。スライスへのピクチャの分割、スライス区分へのスライスの分割、およびコーディングツリーユニットへのスライス区分の分割はそれぞれ、ピクチャの区分を形成するように、ピクチャのコード化スライスがピクチャのコーディングツリーユニットごとにスライス区分データを包含するものとすることがビットストリームコンフォーマンスの要件である。  
．．．  
Ｈ．８．５．３．３．２  参照ピクチャ選択プロセス  
このプロセスへの入力は参照インデックスｒｅｆＩｄｘＬＸである。  
このプロセスの出力は、ルーマサンプルｒｅｆＰｉｃＬＸLの１つの２次元アレイと、クロマサンプルｒｅｆＰｉｃＬＸCbおよびｒｅｆＰｉｃＬＸCrの２つの２次元アレイとからなる参照ピクチャである。  
出力された参照ピクチャＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は、ルーマサンプルｒｅｆＰｉｃＬＸLの１つのｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅ×ｐｉｃ＿ｈｅｉｇｈｔ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓアレイと、クロマサンプルｒｅｆＰｉｃＬＸCbおよびｒｅｆＰｉｃＬＸCrの２つのＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓＣ×ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓＣアレイとからなる。  
参照ピクチャサンプルアレイｒｅｆＰｉｃＬＸL、ｒｅｆＰｉｃＬＸCb、およびｒｅｆＰｉｃＬＸCrは、前に復号されたピクチャのための従属節第８．７および従属節８．８によって導出された復号サンプルアレイＳL、ＳCb、ならびにＳCrに対応する。  
Ｈ．８．７  変換ツリー修正プロセス  
Ｈ．８．７．１  一般  
このプロセスに対する入力は、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、コーディングユニットのサブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅである。  
このプロセスの出力は、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇである。  
各コーディングユニットに対して、そのユニットがインター予測モードでコーディングされ、そのユニットがサブ予測ユニット設計を利用する予測ユニットを包含する場合、変換ツリーのスプリットフラグは、サブ予測ユニット境界が変換ユニット境界になるように修正される。  
−  従属節８．７．２で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、（０，０）に等しく設定されたルーマロケーション（ｘＢ０，ｙＢ０）、（１＜＜Ｌｏｇ２ＭａｘＣｂＳｉｚｅ）に等しく設定されたルーマコーディングブロックサイズｎＣｂＳ、０に等しく設定されたコーディングツリー深度ｃｕＤｅｐｔｈ、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、およびサブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
Ｈ．８．７．２．サブ予測ユニットを包含するコーディングユニットの変換ツリー修正プロセス  
このプロセスへの入力は以下の通りである。  
−  現在のピクチャの左上ルーマサンプルに対する現在のルーマコーディングブロックの左上サンプルを規定するルーマロケーション（ｘＣｂ，ｙＣｂ）、  
−  現在のルーマコーディングブロックの左上サンプルに対する現在のルーマブロックの左上サンプルを規定するルーマロケーション（ｘＢ０，ｙＢ０）、  
−  ルーマコーディングブロックサイズｎＣｂＳ、  
−  コーディングツリー深度を規定する変数ｃｕＤｅｐｔｈ、  
−  コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、  
−  変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、  
−  サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、  
−  サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅ、  
このプロセスの出力は修正済みである。  
−  変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、  
ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］［ｃｕＤｅｐｔｈ］の値に応じて、以下が適用される。  
−  ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］［ｃｕＤｅｐｔｈ］が１に等しい場合、以下の順序のステップが適用される。  
１．変数ｘＢ１およびｙＢ１は次のように導出される。
【０１５６】
−変数ｘＢ１は、ｘＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
−変数ｙＢ１は、ｙＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
２．この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＢ０，ｙＢ０）、（ｎＣｂＳ＞＞１）に等しく設定されたルーマコーディングブロックサイズｎＣｂＳ、ｃｕＤｅｐｔｈ＋１に等しく設定されたコーディングツリー深度ｃｕＤｅｐｔｈ、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
３．この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＢ１，ｙＢ０）、（ｎＣｂＳ＞＞１）に等しく設定されたルーマコーディングブロックサイズｎＣｂＳ、ｃｕＤｅｐｔｈ＋１に等しく設定されたコーディングツリー深度ｃｕＤｅｐｔｈ、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
４．この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＢ０，ｙＢ１）、（ｎＣｂＳ＞＞１）に等しく設定されたルーマコーディングブロックサイズｎＣｂＳ、ｃｕＤｅｐｔｈ＋１に等しく設定されたコーディングツリー深度ｃｕＤｅｐｔｈ、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
５．この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＢ１，ｙＢ１）、（ｎＣｂＳ＞＞１）に等しく設定されたルーマコーディングブロックサイズｎＣｂＳ、ｃｕＤｅｐｔｈ＋１に等しく設定されたコーディングツリー深度ｃｕＤｅｐｔｈ、コーディングツリーのスプリットフラグアレイｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ、コーディングユニットの区分モードアレイＰａｒｔＭｏｄｅ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、変換ツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
−  さもなければ（ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］［ｃｕＤｅｐｔｈ］が０に等しい）、ｎＣｂＳがｓｕｂＰＵＳｉｚｅより大きい場合、以下の順序のステップが適用される。  
１．変数ｘＢ１およびｙＢ１は次のように導出される。  
−変数ｘＢ１は、ｘＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
−変数ｙＢ１は、ｙＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
２．変数ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇを以下の順序のステップによって導出する。  
−ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇが０に等しく設定される。  
−ｓｕｂＰｕＦｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］が１に等しい場合、ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇは１に等しく設定される。  
ｓｕｂＰｕＦｌａｇ［ｘＣｂ＋ｘＢ１］［ｙＣｂ＋ｙＢ０］が１に等しい場合、ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇは１に等しく設定される。  
−ｓｕｂＰｕＦｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ１］が１に等しい場合、ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇは１に等しく設定される。  
−ｓｕｂＰｕＦｌａｇ［ｘＣｂ＋ｘＢ１］［ｙＣｂ＋ｙＢ１］が１に等しい場合、ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇは１に等しく設定される。  
−ＰａｒｔＭｏｄｅ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］がＰＡＲＴ＿ｎＬ×２Ｎに等しい場合、またはＰａｒｔＭｏｄｅ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］がＰＡＲＴ＿ｎＲ×２Ｎに等しい場合、またはＰａｒｔＭｏｄｅ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］がＰＡＲＴ＿２Ｎ×ｎＵに等しい場合、またはＰａｒｔＭｏｄｅ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］がＰＡＲＴ＿２Ｎ×ｎＤに等しい場合、ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇは０に等しく設定される。  
３．ｓｕｂＰｕＤｅｂｌｏｃｋｉｎｇＦｌａｇが１に等しい場合、次の順序ステップが適用される。  
−ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］［ｃｕＤｅｐｔｈ］が０に等しい場合、ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ［ｘＣｂ＋ｘＢ０］［ｙＣｂ＋ｙＢ０］［ｃｕＤｅｐｔｈ］を１に等しくなるように設定する。  
−従属節８．７．３で規定された変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＢ０，ｙＢ０）、コーディングツリー深度ｃｕＤｅｐｔｈ、ブロックサイズｎＣｂＳ、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、予測ユニットのサブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、予測ユニットのサブ予想ユニットサイズアレイｓｕｂＰｕＳｉｚｅと、出力として、コーディングツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
Ｈ．８．７．３  ルーマコーディングブロックの変換ツリー修正プロセス  
このプロセスへの入力は以下の通りである。  
−  現在のピクチャの左上ルーマサンプルに対する現在のルーマ予測ブロックの左上サンプルを規定するルーマロケーション（ｘＣｂ，ｙＣｂ）、  
−  現在のルーマコーディングブロックの左上サンプルに対する現在のルーマブロックの左上サンプルを規定するルーマロケーション（ｘＢ０，ｙＢ０）、  
−  ブロックサイズを規定する変数ｎＣｂＳ、  
−  変換ツリー深度を規定する変数ｔｒａｆｏＤｅｐｔｈ、  
−  変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、  
−  サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、  
−  サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅ、  
このプロセスの出力は修正済みである。  
−  変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、  
ｎＣｂＳがｓｕｂＰＵＳｉｚｅよりも大きい場合、以下の順序のステップが適用される。  
−  変数ｘＢ１およびｙＢ１は次のように導出される。  
−  変数ｘＢ１は、ｘＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
−  変数ｙＢ１は、ｙＢ０＋（ｎＣｂＳ＞＞１）に等しく設定される。  
−  ｘＢ０、ｘＢ１のｘに対して  
−  ｙＢ０、ｙＢ１のｙに対して、  
−  ｓｕｂＰｕＦｌａｇ［ｘＣｂ＋ｘ］［ｙＣｂ＋ｙ］が１に等しい場合、  
−  ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ［ｘＣｂ＋ｘ］［ｙＣｂ＋ｙ］［ｔｒａｆｏＤｅｐｔｈ＋１］が０に等しい場合、  
−  ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ［ｘＣｂ＋ｘ］［ｙＣｂ＋ｙ］［ｔｒａｆｏＤｅｐｔｈ＋１］を１に等しくなるように設定する、  
−  この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＣｂ＋ｘ，ｙＣｂ＋ｙ）、変換ツリー深度ｔｒａｆｏＤｅｐｔｈはｔｒａｆｏＤｅｐｔｈ＋１に等しく設定される、ブロックサイズｎＣｂＳは（ｎＣｂＳ＞＞１）に等しく設定される、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、コーディングツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
−  さもなければ（ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ［ｘＣｂ＋ｘ］［ｙＣｂ＋ｙ］［ｔｒａｆｏＤｅｐｔｈ＋１］が１に等しい場合）、  
−  この従属節で規定される変換ツリーの修正プロセスは、入力として、ルーマロケーション（ｘＣｂ，ｙＣｂ）、ルーマロケーション（ｘＣｂ＋ｘ，ｙＣｂ＋ｙ）、変換ツリー深度ｔｒａｆｏＤｅｐｔｈはｔｒａｆｏＤｅｐｔｈ＋１に等しく設定される、ブロックサイズｎＣｂＳは（ｎＣｂＳ＞＞１）に等しく設定される、変換ツリーのスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ、サブ予測ユニットフラグアレイｓｕｂＰｕＦｌａｇ、サブ予測ユニットサイズｓｕｂＰｕＳｉｚｅと、出力として、コーディングツリーの修正されたスプリットフラグアレイｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇとで呼び出される。  
Ｈ．８．８  インループフィルタプロセス  
．．．
【０１５７】
[0174]図１５は、本開示の技法を実装するように構成され得るビデオ符号化器２０の一例を示すブロック図である。ビデオ符号化器２０は、ビデオスライス、たとえば、テクスチャ画像と深度マップの両方のスライス内のビデオブロックのイントラコーディングおよびインターコーディング（ビュー間コーディングを含む）を実行し得る。テクスチャ情報は、概して、ルミナンス（輝度または強度）情報とクロミナンス（色、たとえば、赤い色相および青い色相）情報とを含む。いくつかの例では、ビデオ符号化器２０は、ルミナンススライスに対するコーディングモードを決定し、クロミナンス情報を符号化するために（たとえば、区分情報、イントラ予測モード選択、動きベクトルなどを再使用することによって）ルミナンス情報をコーディングすることからの予測情報を再使用することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを指す場合がある。単一方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指す場合がある。
【０１５８】
[0175]図１５に示すように、ビデオ符号化器２０は、符号化されるべきビデオフレーム（たとえば、テクスチャ画像または深度マップ）内の現在のビデオブロック（すなわち、ルミナンスブロック、クロミナンスブロック、または深度ブロックなどのビデオデータのブロック）を受信する。図１５の例では、ビデオ符号化器２０は、モード選択ユニット４０と、ビデオデータメモリ４１と、復号ピクチャバッファ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、フィルタユニット６３と、エントロピー符号化ユニット５６とを含む。フィルタユニット６３は、本開示で説明するように、デブロッキングフィルタプロセスを適用することができる。モード選択ユニット４０は、今度は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測処理ユニット４６と、区分ユニット４８とを含む。ビデオブロックの再構築のために、ビデオ符号化器２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。フィルタユニット６３は、再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタおよび／またはＳＡＯフィルタを含み得る。追加のフィルタ（インループまたはポストループ）も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔さのために図示されていないが、望まれる場合には、加算器５０の出力を（インループフィルタとして）フィルタリングすることができる。
【０１５９】
[0176]ビデオデータメモリ４１は、ビデオ符号化器２０の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ４１に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ６４は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオ符号化器２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ４１および復号ピクチャバッファ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ４１および復号ピクチャバッファ６４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ４１は、ビデオ符号化器２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１６０】
[0177]符号化プロセス中に、ビデオ符号化器２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間的予測を提供するために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測処理ユニット４６は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つもしくは複数の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオ符号化器２０は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【０１６１】
[0178]さらに、区分ユニット４８は、前のコーディングパス内の前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、区分ユニット４８は、最初に、フレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいて、ＬＣＵの各々をサブＣＵに区分することができる。モード選択ユニット４０は、サブＣＵへのＬＣＵの区分を示す４分木データ構造をさらに生成することができる。四分木の葉ノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【０１６２】
[0179]モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し、結果のイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に、参照フレームとしての使用のために符号化されたブロックを再構築するために加算器６２に供給することができる。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット５６に提供する。
【０１６３】
[0180]動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念上の目的から別々に図示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックのための動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（もしくは、他のコード化ユニット）内でコーディングされている現在のブロックに対する参照フレーム（もしくは、他のコード化ユニット）内の予測ブロックに対する現在のビデオフレームまたは現在のピクチャ内のビデオブロックのＰＵの変位を示すことができる。
【０１６４】
[0181]予測ブロックは、絶対差の合計（ＳＡＤ：sum of absolute difference）、二乗差の合計（ＳＳＤ：sum of square difference）、または他の差分基準によって決定され得るピクセル差に関する、コーディングされるべきブロックとよく一致することがわかったブロックである。いくつかの例では、ビデオ符号化器２０は、復号ピクチャバッファ６４に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算し得る。たとえば、ビデオ符号化器２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対する動き検索を実行し、分数ピクセル精度を有する動きベクトルを出力することができる。
【０１６５】
[0182]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのためのＰＵの動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの各々は、復号ピクチャバッファ６４に記憶された１つまたは複数の参照ピクチャを識別する。参照ピクチャリストは、本開示の技法を使用して構築され得る。動き推定ユニット４２は、計算された動きベクトルを、エントロピー符号化ユニット５６および動き補償ユニット４４に送る。
【０１６６】
[0183]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信するとすぐ、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックを位置特定することができる。加算器５０は、下で論じるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット４２は、ルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のために、ルーマ成分に基づいて計算された動きベクトルを使用する。このように、動き補償ユニット４４は、動き推定ユニット４２がクロマ成分のための動き探索を実行する必要がないように、クロマ成分をコーディングするためにルーマ成分に対して決定された動き情報を再使用することができる。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオ復号器３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成することができる。
【０１６７】
[0184]イントラ予測処理ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット４６は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット４６は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
【０１６８】
[0185]たとえば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または、誤差）の量、ならびに符号化されたブロックを作成するのに使用されたビットレート（すなわち、ビットの個数）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックのための最良のレートひずみ値を示すのかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を算出することができる。
【０１６９】
[0186]ブロックのためのイントラ予測モードを選択した後、イントラ予測処理ユニット４６は、エントロピー符号化ユニット５６にブロックのために選択されたイントラ予測モードを示す情報を提供することができる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオ符号化器２０は、複数のイントラ予測モードインデックステーブルおよび（符号語マッピングテーブルとも呼ばれる）複数の修正されたイントラ予測モードインデックステーブルと、様々なブロックのための符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの表示とを含み得る構成データを、送信されるビットストリーム中に含めることができる。
【０１７０】
[0187]ビデオ符号化器２０は、モード選択ユニット４０からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的には類似する変換のような変換を残差ブロックに適用し、残差変換係数の値を備えるビデオブロックを生成する。変換処理ユニット５２は、概念的にはＤＣＴに類似する他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いずれの場合でも、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。
【０１７１】
[0188]変換は、ピクセル値領域からの残差情報を、周波数領域のような変換領域に変換することができる。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４へ送ることができる。量子化ユニット５４は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列のスキャンを実行することができる。代替的に、エントロピー符号化ユニット５６がスキャンを実行することができる。
【０１７２】
[0189]量子化に続いて、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応２進算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応２進算術コーディング（ＳＢＡＣ）、確率区間区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピーコーディング技法を実行することができる。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス（たとえば、ビデオ復号器３０）に送信され、または後の送信もしくは取出のためにアーカイブされ得る。
【０１７３】
[0190]逆量子化ユニット５８および逆変換処理ユニット６０は、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを復号ピクチャバッファ６４に記憶された参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット４４は、動き推定での使用のためにサブ整数ピクセル値を計算するために、再構築された残差ブロックに１つまたは複数の補間フィルタを適用することもできる。加算器６２は、復号ピクチャバッファ６４に記憶するための再構築されたビデオブロックを生成するために、再構築された残差ブロックを動き補償ユニット４４によって生成された動き補償された予測ブロックに加算する。再構築されたビデオブロックは、後続ビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット４２と動き補償ユニット４４とによって使用され得る。
【０１７４】
[0191]ビデオ符号化器２０は、対応するクロミナンス成分がなくとも、ルミナンス成分をコーディングするためのコーディング技法に実質的に似るように深度マップを符号化することができる。たとえば、イントラ予測処理ユニット４６は、深度マップのブロックをイントラ予測することができるが、動き推定ユニット４２および動き補償ユニット４４は、深度マップのブロックをインター予測し得る。しかしながら、上記で論じたように、深度マップのインター予測の間、動き補償ユニット４４は、深度範囲と、それらの深度範囲のための精度値との差に基づいて、参照深度マップの値をスケーリング（すなわち、調整する）ことができる。たとえば、現在の深度マップ中および参照深度マップ中の異なる最大深度値が同じ実世界深度に対応する場合、ビデオ符号化器２０は、予測のために、現在の深度マップ中の最大深度値に等しくなるように、参照深度マップの最大深度値をスケーリングすることができる。追加または代替として、ビデオ符号化器２０は、たとえば、ビュー間予測と実質的に同様の技法を使用して、ビュー合成予測のためのビュー合成ピクチャを生成するために、更新された深度範囲値と精度値とを使用することができる。
【０１７５】
[0192]ビデオ符号化器２０は、本開示で説明する技法のいずれかを、単独でまたは任意の組合せで実行するように構成され得るビデオ符号化器の一例を表す。たとえば、ビデオ符号化器２０は、３Ｄ−ＨＥＶＣにおけるビデオコーディングのためのサブＰＵレベルの動き予測のための技法を実行するように構成され得る。
【０１７６】
[0193]一例では、ビデオ符号化器２０は、２つ以上のサブＰＵを含むＰＵを予測するためにサブＰＵ  ＢＶＳＰモードを実行するように構成され得る。サブＰＵ  ＢＶＳＰモードでは、ビデオ符号化器２０の動き補償ユニット４４は、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む、現在のＰＵのための第１の動き情報を決定する。動き補償ユニット４４は、次いで、現在のＰＵを２つ以上のサブＰＵに区分し、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、サブＰＵの各々のための第２の動き情報を決定する。動き補償ユニット４４は、サブＰＵの各々のための第２の動き情報に基づいて、ＰＵのサブＰＵの各々を予測するために、動き補償を実行する。本開示の技法によれば、サブＰＵ  ＢＶＳＰモードを使用して予測される各ＰＵに対して、ビデオ符号化器２０は、動き補償が実行された後ですら、現在のＰＵのサブＰＵの各々のために導出された第２の動き情報を記憶する。第２の動き情報は、復号ピクチャバッファ６４に記憶され得る。現在のＰＵのために記憶された追加の動き情報は、次いで、現在のＰＵが隣接ブロックである後続ＰＵを予測するために使用され得る。
【０１７７】
[0194]別の例では、ビデオ符号化器２０は、動きベクトル改良が可能にされ得るシングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度ＴＭＶＰモードを実行するように構成され得る。高度ＴＭＶＰモードでは、ビデオ符号化器２０の動き補償ユニット４４は、現在のＰＵに対応する参照ピクチャのブロックを識別する、現在のＰＵのための第１のステージの動きベクトルを決定する。動き補償ユニット４４は、次いで、現在のＰＵを２つ以上のサブＰＵに区分し、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定し、この場合、サブＰＵの各々のための第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む。動き補償ユニット４４は、サブＰＵの各々のための第２のステージの動き情報に基づいてサブＰＵの各々を別個に予測するために、動き補償を実行する。いくつかの例では、動き補償ユニット４４は、サブＰＵの各々のための第２のステージの動き情報の少なくとも１つの動きベクトルを改良するために、動きベクトル差分を決定することができる。
【０１７８】
[0195]別の例では、ビデオ符号化器２０は、複数のサブＰＵを有する、少なくとも１つのＰＵを含むビデオブロックのＣＵに適用されたデブロッキングフィルタプロセスに関する技法を実行するように構成され得る。本開示の技法によれば、サブＰＵを有するＰＵを含むビデオブロックのＣＵにデブロッキングフィルタを適用するのに先立って、ビデオ符号化器２０のフィルタユニット６３は、サブＰＵ境界において人工的ＰＵ境界または人工的ＴＵ境界を作成するために、ＣＵを変換する。一例では、フィルタユニット６３は、サブＰＵ境界が人工的ＴＵ境界に変換されるように、ＰＵを変換ツリー階層に関連付け、サブＰＵの各々をＴＵに関連付けるために、ＣＵの変換ツリーを変換する。別の例では、フィルタユニット６３は、サブＰＵ境界が人工的ＰＵ境界に変換されるように、ＰＵをＣＵに関連付け、サブＰＵの各々をＰＵに関連付けるために、ＣＵをコーディングツリーに変換する。次いで、フィルタユニット６３は、人工的ＰＵ境界と人工的ＴＵ境界とを含めて、ＣＵの２つの隣接するＰＵ間のＰＵ境界および／またはＣＵの２つの隣接するＴＵ間のＴＵ境界にデブロッキングフィルタを適用する。
【０１７９】
[0196]図１６は、本開示の技法を実装し得るビデオ復号器３０の一例を示すブロック図である。図１６の例では、ビデオ復号器３０は、エントロピー復号ユニット７０と、ビデオデータメモリ７１と、動き補償ユニット７２と、イントラ予測処理ユニット７４と、逆量子化ユニット７６と、逆変換処理ユニット７８と、復号ピクチャバッファ８２と、フィルタユニット８３と、加算器８０とを含む。ビデオ復号器３０は、いくつかの例では、ビデオ符号化器２０（図１５）に関して説明された符号化パスとは全般に逆の復号パスを実行することができる。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成することができ、イントラ予測処理ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【０１８０】
[0197]ビデオデータメモリ７１は、ビデオ復号器３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ７１に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ７１は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成することができる。復号ピクチャバッファ８２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオ復号器３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ７１および復号ピクチャバッファ８２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ７１および復号ピクチャバッファ８２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ７１は、ビデオ復号器３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１８１】
[0198]復号プロセスの間、ビデオ復号器３０は、符号化ビデオスライスのビデオブロックおよび関連付けられたシンタックス要素を表す符号化ビットストリームをビデオ符号化器２０から受信する。ビデオ復号器３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオ復号器３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受け取ることができる。
【０１８２】
[0199]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測処理ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームまたは現在のピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコード化（すなわち、ＢまたはＰ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオ復号器３０は、復号ピクチャバッファ８２に記憶された参照ピクチャに基づいて、本開示の技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構築することができる。動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックの予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数についての構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０１８３】
[0200]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルのために補間された値を計算するために、ビデオブロックの符号化の間にビデオ符号化器２０によって使用された補間フィルタを使用することができる。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオ符号化器２０によって使用された補間フィルタを決定し、予測ブロックを生成するために補間フィルタを使用することができる。
【０１８４】
[0201]逆量子化ユニット７６は、ビットストリーム内で提供され、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックのためにビデオ復号器３０によって計算される量子化パラメータＱＰYの使用を含み得る。逆変換処理ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１８５】
[0202]動き補償ユニット７２が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオ復号器３０は、逆変換処理ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。フィルタユニット６３は、デブロッキングフィルタプロセスを適用することができる。フィルタユニット６３は、再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタおよび／またはＳＡＯフィルタを含み得る。追加のフィルタ（インループまたはポストループ）も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔さのために示されていないが、望まれる場合には、加算器８０の出力を（インループフィルタとして）フィルタリングすることができる。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ８２に記憶される。復号ピクチャバッファ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のために、復号ビデオを記憶する。
【０１８６】
[0203]ビデオ復号器３０は、対応するクロミナンス成分がなくとも、ルミナンス成分を復号するための復号技法に実質的に似るように深度マップを復号することができる。たとえば、イントラ予測処理ユニット７４は、深度マップのブロックをイントラ予測することができるが、動き補償ユニット７２は、深度マップのブロックをインター予測し得る。しかしながら、上記で論じたように、深度マップのインター予測の間、動き補償ユニット７２は、深度範囲と、それらの深度範囲のための精度値との差に基づいて、参照深度マップの値をスケーリング（すなわち、調整する）ことができる。たとえば、現在の深度マップおよび参照深度マップ中の異なる最大深度値が同じ実世界深度に対応する場合、ビデオ復号器３０は、予測のために、現在の深度マップ中の最大深度値に等しくなるように、参照深度マップの最大深度値をスケーリングすることができる。追加または代替として、ビデオ復号器３０は、たとえば、ビュー間予測に実質的に類似した技法を使用して、ビュー合成予測のためのビュー合成ピクチャを生成するために、更新された深度範囲値と精度値とを使用することができる。
【０１８７】
[0204]ビデオ復号器３０は、本開示で説明する技法のいずれかを、単独でまたは任意の組合せで実行するように構成され得るビデオ復号器の一例を表す。たとえば、ビデオ復号器３０は、３Ｄ−ＨＥＶＣにおけるビデオコーディングのためのサブＰＵレベルの動き予測のための技法を実行するように構成され得る。
【０１８８】
[0205]一例では、ビデオ復号器３０は、２つ以上のサブＰＵを含むＰＵを予測するためにサブＰＵ  ＢＶＳＰモードを実行するように構成され得る。サブＰＵ  ＢＶＳＰモードでは、ビデオ復号器３０の動き補償ユニット７２は、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む現在のＰＵのための第１の動き情報を決定する。動き補償ユニット７２は、次いで、現在のＰＵを２つ以上のサブＰＵに区分し、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックに関連付けられた、少なくとも１つの視差動きベクトルを含む、サブＰＵの各々のための第２の動き情報を決定する。動き補償ユニット７２は、サブＰＵの各々のための第２の動き情報に基づいてＰＵのサブＰＵの各々を予測するために、動き補償を実行する。本開示の技法によれば、サブＰＵ  ＢＶＳＰモードを使用して予測される各ＰＵに対して、ビデオ復号器３０は、動き補償が実行された後ですら、現在のＰＵのサブＰＵの各々のために導出された第２の動き情報を記憶する。第２の動き情報は、復号ピクチャバッファ８２に記憶され得る。現在のＰＵのために記憶された追加の動き情報は、次いで、現在のＰＵが隣接ブロックである後続ＰＵを予測するために使用され得る。
【０１８９】
[0206]別の例では、ビデオ復号器３０は、動きベクトル改良が可能にされ得るシングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度ＴＭＶＰモードを実行するように構成され得る。高度ＴＭＶＰモードでは、ビデオ復号器３０の動き補償ユニット７２は、現在のＰＵに対応する参照ピクチャのブロックを識別する、現在のＰＵのための第１のステージの動きベクトルを決定する。動き補償ユニット７２は、次いで、現在のＰＵを２つ以上のサブＰＵに区分し、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定し、この場合、サブＰＵの各々のための第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む。動き補償ユニット７２は、サブＰＵの各々のための第２のステージの動き情報に基づいてサブＰＵの各々を別個に予測するために、動き補償を実行する。いくつかの例では、動き補償ユニット７２は、サブＰＵの各々のための第２のステージの動き情報の少なくとも１つの動きベクトルを改良するために、動きベクトル差分を決定することができる。
【０１９０】
[0207]別の例では、ビデオ復号器３０は、複数のサブＰＵを有する、少なくとも１つのＰＵを含むビデオブロックのＣＵに適用されるデブロッキングフィルタプロセスに関する技法を実行するように構成され得る。本開示の技法によれば、サブＰＵを有するＰＵを含むビデオブロックのＣＵにデブロッキングフィルタを適用するのに先立って、ビデオ復号器３０のフィルタユニット８３は、サブＰＵ境界において人工的ＰＵ境界または人工的ＴＵ境界を作成するために、ＣＵを変換する。一例では、フィルタユニット８３は、サブＰＵ境界が人工的ＴＵ境界に変換されるように、ＰＵを変換ツリー階層に関連付け、サブＰＵの各々をＴＵに関連付けるために、ＣＵの変換ツリーを変換する。別の例では、フィルタユニット８３は、サブＰＵ境界が人工的ＰＵ境界に変換されるように、ＰＵをＣＵに関連付け、サブＰＵの各々をＰＵに関連付けるために、ＣＵをコーディングツリーに変換する。次いで、フィルタユニット８３は、人工的ＰＵ境界と人工的ＴＵ境界とを含めて、ＣＵの２つの隣接するＰＵ間のＰＵ境界および／またはＣＵの２つの隣接するＴＵ間のＴＵ境界にデブロッキングフィルタを適用する。
【０１９１】
[0208]図１７は、サブＰＵ  ＢＶＳＰモードを使用して、現在のＰＵを予測し、決定されたサブＰＵ動き情報記憶を記憶する例示的な動作を示すフローチャートである。本開示では、示した演算について、図１６のビデオ復号器３０を参照しながら説明する。他の例では、示した演算は、図１５のビデオ符号化器２０、または３Ｄ−ＨＥＶＣ規格に従って動作する任意の他の符号化デバイスもしくは復号デバイスによって実行され得る。
【０１９２】
[0209]ビデオ復号器３０は、符号化スライスのビデオブロックと、関連付けられたシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオ復号器３０のエントロピー復号ユニット７０は、量子化された変換係数と、動き情報および予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームを復号する。エントロピー復号ユニット７０は、復号されるべきビデオブロックの残差ブロックを再構築するために、復号された量子化変換係数を逆量子化ユニット７６および逆変換処理ユニット７８に送る。エントロピー復号ユニット７０は、復号動き情報とインター予測モードインジケータとを動き補償ユニット７２に送る。
【０１９３】
[0210]動き補償ユニット７２は、マージモードまたはＡＭＶＰインター予測モードのうちの示されたモードに従って復号されるべきビデオブロックの各ＣＵの各ＰＵを予測する。たとえば、マージモードでは、動き補償ユニット７２は、動き情報、すなわち、現在のＰＵの空間的隣接ブロックおよび時間的隣接ブロックの動きベクトル、ならびに、関連付けられた参照インデックスを含む動き情報のマージモード候補リストを生成することができる。この場合、復号動き情報は、現在のＰＵを予測するために、マージモード候補リスト中の動き情報のセットのうちの１つを示すマージインデックスを含み得る。ＢＶＳＰモードでは、マージモード候補リストは、視差動きベクトルと関連付けられた参照ビューインデックスとを含む動き情報を有する特殊ＢＶＳＰ候補を含み、深度情報は動き情報を改良するために使用される。
【０１９４】
[0211]本開示の技法によれば、動き補償ユニット７２は、ＢＶＳＰモードに従って、ＰＵの隣接ブロックから、現在のＰＵのための第１の動き情報を決定し、この場合、第１の動き情報は、少なくとも１つの視差動きベクトルと、ビュー間参照ピクチャを識別する、関連付けられた参照ビューインデックスとを含む（１４０）。上記で説明したように、動き補償ユニット７２は、マージモード候補リストからのＢＶＳＰ候補として、現在のＰＵのための第１の動き情報を選択することができる。場合によっては、現在のＰＵのための第１の動き情報は、第１の参照ピクチャリストおよび第２の参照ピクチャリストの各々に対応する視差動きベクトルを含み得る。
【０１９５】
[0212]動き補償ユニット７２は、次いで、現在のＰＵを２つ以上のサブＰＵに区分する（１４２）。動き補償ユニット７２は、サブＰＵの各々のための第２の動き情報を決定する、この場合、第２の動き情報は、サブＰＵの各々に対応するビュー間参照ピクチャの少なくとも１つの視差動きベクトル関連深度ブロックを含む（１４４）。たとえば、動き補償ユニット７２は、サブＰＵの各々に対応するビュー間参照ピクチャの深度ブロックのための４つのコーナーピクセルの最大値を選択し、最大値を、サブＰＵの各々のための視差動きベクトルの水平成分に変換することができる。サブＰＵの各々のための視差動きベクトルの垂直成分はゼロに等しい。場合によっては、サブＰＵの各々のための第２の動き情報は、第１の参照ピクチャリストおよび第２の参照ピクチャリストの各々に対応する視差動きベクトルを含み得る。
【０１９６】
[0213]動き補償ユニット７２は、第２の動き情報に基づいて、ビュー間参照ピクチャから現在のＰＵのサブＰＵの各々を予測するために、動き補償を実行する（１４６）。動き補償を実行した後、ビデオ復号器３０は、後続のＰＵを予測するために使用されることになる、現在のＰＵのサブＰＵの各々のための第２の動き情報をメモリ、たとえば、ビデオ復号器３０の復号ピクチャバッファ８２に記憶する（１４８）。たとえば、ビデオ復号器３０は、サブＰＵの各々のために導出された視差動きベクトルを、ＰＵのための第１の動き情報の参照ビューインデックスによって識別されたビュー間参照ピクチャを含む参照ピクチャリストに関連付けられた復号ピクチャバッファ８２に記憶することができる。動き補償の間、ＰＵのサブＰＵの各々のための予測ブロックを生成した後、ビデオ復号器３０は、対応する残差ブロックの再構築されたバージョンと、サブＰＵの各々のための予測ブロックとに基づいて、ビデオブロックの再構築されたバージョンを生成する。
【０１９７】
[0214]従来、３Ｄ−ＨＥＶＣのＢＶＳＰモードでは、サブＰＵの各々を予測するために動き補償を実行した後、各参照ピクチャリストに対応する単一の視差動きベクトルのみが現在のＰＵのために記憶される。ＰＵの動き補償がＰＵの複数のサブＰＵのための複数の動きベクトルに基づく場合ですら、各参照ピクチャリストのための単一の視差動きベクトルが記憶される。この場合、後続ＰＵを予測するために現在のＰＵが使用されるとき、現在のＰＵのサブＰＵは、サブＰＵ  ＢＶＳＰモードが動きベクトル予測の精度の改善に与える影響がほとんどないように、同じ動きベクトルを有すると見なされる。
【０１９８】
[0215]本開示の技法によれば、サブＰＵ  ＢＶＳＰモードでコーディングされる各ＰＵに対して、ビデオ復号器３０は、動き補償が実行された後ですら、現在のＰＵのサブＰＵの各々のために導出された第２の動き情報を記憶する。現在のＰＵのために記憶された追加の動き情報は、次いで、現在のＰＵが隣接ブロックである後続ＰＵを予測するために使用され得る。たとえば、動き補償ユニット７２は、マージモード候補リスト中のサブＰＵ  ＢＶＳＰ候補として、復号ピクチャバッファ８２に記憶されたＰＵのサブＰＵのうちの少なくとも１つのための第２の動き情報を含む、後続ＰＵを予測するための動き情報のマージモード候補リストを生成することができる。一例では、後続ＰＵがサブＰＵ  ＢＶＳＰモードでコーディングされる場合、動き補償ユニット７２は、後続ＰＵのサブＰＵの各々のための第２の動き情報を導出する必要がない。代わりに、動き補償ユニット７２は、代わりに、後続ＰＵのサブＰＵを予測するための動き情報のマージモード候補リストからサブＰＵ  ＢＶＳＰ候補として第２の動き情報を選択することができる。
【０１９９】
[0216]図１８は、ＣＵ中のサブＰＵ境界を含めて、ＴＵ境界およびＰＵ境界をフィルタリングするために、ビデオブロックの各ＣＵにデブロッキングフィルタを適用する例示的な動作を示すフローチャートである。ビデオブロックを再構築した後、および参照ピクチャのブロックとしてビデオブロックを復号ピクチャバッファに記憶する前に、デブロッキングフィルタが適用される。本開示では、示した演算について、図１６のビデオ復号器３０を参照しながら説明する。他の例では、示した演算は、図１５のビデオ符号化器２０、またはサブＰＵ設計およびデブロッキングフィルタを使用する任意の他の符号化デバイスもしくは復号デバイスのビデオブロック再構築ループで実行され得る。
【０２００】
[0217]ビデオ復号器３０は、対応する残差ブロックの再構築されたバージョンと予測ブロックとに基づいて、ビデオブロックの再構築バージョンを生成する（１５０）。ビデオブロックは少なくとも１つのＣＵを含み、ＣＵは、２つ以上のサブＰＵに区分された、少なくとも１つのＰＵを含み得る。図１７に関して上記で説明したように、ビデオ復号器３０の動き補償ユニット７２は、ＰＵのサブＰＵの各々のためのビデオ圧縮の間、予測ブロックを生成することができる。ＨＥＶＣ規格のためのデブロッキングフィルタは、ＰＵ内で、すなわち、サブＰＵ境界に沿って、フィルタするように設計されていないが、これは、ＨＥＶＣブロックでは、動き補償はＰＵ全体のために同じであると仮定されるためである。本開示は、ＨＥＶＣデブロッキングフィルタが３Ｄ−ＨＥＶＣブロックのために引き続き使用され得るように、サブＰＵを有するＰＵをデブロッキングフレンドリーな構造に変換するための技法について説明する。
【０２０１】
[0218]２つ以上のサブＰＵを有するＰＵを含むビデオブロックのＣＵにデブロッキングフィルタを適用するのに先立って、ビデオ復号器３０のフィルタユニット８３は、ＰＵの２つの隣接するサブＰＵ間のサブＰＵ境界において人工的ＰＵ境界または人工的ＴＵ境界を作成するために、ＣＵを変換する（１５２）。一例では、フィルタユニット８３は、サブＰＵ境界が人工的ＴＵ境界に変換されるように、ＰＵを変換ツリー階層に関連付け、サブＰＵの各々をＴＵに関連付けるために、ＣＵの変換ツリーを変換する。別の例では、フィルタユニット８３は、サブＰＵ境界が人工的ＰＵ境界に変換されるように、ＰＵをＣＵに関連付け、サブＰＵの各々をＰＵに関連付けるために、ＣＵをコーディングツリーに変換する。
【０２０２】
[0219]次いで、フィルタユニット８３は、人工的ＰＵ境界と人工的ＴＵ境界とを含めて、ＣＵの２つの隣接するＰＵ間のＰＵ境界および／またはＣＵの２つの隣接するＴＵ間のＴＵ境界にデブロッキングフィルタを適用する（１５４）。ビデオブロックの再構築されたバージョンのＣＵの各々をフィルタリングした後、フィルタユニット８３は、参照ピクチャのブロックとしてビデオブロックを復号ピクチャバッファ８２に記憶する（１５６）。
【０２０３】
[0220]図１９、シングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度ＴＭＶＰモードの例示的な動作を示すフローチャート。本開示では、示した演算について、図１６のビデオ復号器３０を参照しながら説明する。他の例では、示した演算は、図１５のビデオ符号化器２０、またはサブＰＵ設計を使用する任意の他の符号化デバイスもしくは復号デバイスによって実行され得る。
【０２０４】
[0221]ビデオ復号器３０は、符号化ビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオ復号器３０のエントロピー復号ユニット７０は、量子化された変換係数と、動き情報および予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームを復号する。エントロピー復号ユニット７０は、復号されるべきビデオブロックの残差ブロックを再構築するために、復号された量子化変換係数を逆量子化ユニット７６および逆変換処理ユニット７８に送る。エントロピー復号ユニット７０は、復号動き情報とインター予測モードインジケータとを動き補償ユニット７２に送る。
【０２０５】
[0222]動き補償ユニット７２は、マージモードまたはＡＭＶＰインター予測モードのうちの示されたモードに従って復号されるべきビデオブロックの各ＣＵの各ＰＵを予測する。たとえば、マージモードでは、動き補償ユニット７２は、動き情報、すなわち、現在のＰＵの空間的隣接ブロックおよび時間的隣接ブロックの動きベクトル、ならびに、関連付けられた参照インデックスを含む動き情報のマージモード候補リストを生成することができる。この場合、復号動き情報は、現在のＰＵを予測するために、マージモード候補リスト中の動き情報のセットのうちの１つを示すマージインデックスを含み得る。別の例では、ＡＭＶＰモードでは、動き補償ユニット７２は、現在のＰＵの空間的隣接ブロックおよび時間的隣接ブロックの動きベクトルのみを含むＡＭＶＰモード候補リストを生成することができる。この場合、復号動き情報は、ＡＭＶＰモード候補リスト中の動きベクトルのうちの１つを示すＡＭＶＰインデックスを含み得、現在のＰＵを予測するために選択された動きベクトルを改良するために、明示的にシグナリングされた参照インデックスおよび任意の動きベクトル差分をやはり含み得る。
【０２０６】
[0223]従来、サブＰＵ設計は、マージインター予測モードを使用したレイヤ間予測またはビュー間予測のためにのみ有効にされる。本開示は、動きベクトル改良が可能にされ得るシングルレイヤコーディングにおけるＰＵのサブＰＵを予測するための高度ＴＭＶＰモードについて説明する。一例では、現在のＰＵを予測するための高度ＴＭＶＰモードの性能を示すために、動き補償ユニット７２は、ＰＵのためのマージモード候補リスト中に高度ＴＭＶＰ候補を生成することができ、この場合、高度ＴＭＶＰ候補の選択は、ＰＵを予測するための高度ＴＭＶＰモードの性能を示す。
【０２０７】
[0224]本開示の技法によれば、動き補償ユニット７２は、現在のＰＵに対応する参照ピクチャのブロックを識別するＰＵの隣接ブロックから、現在のＰＵのための第１のステージの動きベクトルを決定する（１６０）。一例として、動き補償ユニット７２は、現在のＰＵの空間的隣接ブロックおよび／または時間的隣接ブロックから第１のステージの動きベクトルを導出することができる。別の例では、動き補償ユニット７２は、現在のＰＵのためのマージモード候補リストから第１のステージの動きベクトルを選択することができる。別の例では、第１のステージの動きベクトルは、一定の値またはあらかじめ定義された値になるように設定され得る。
【０２０８】
[0225]動き補償ユニット７２は、次いで、現在のＰＵを２つ以上のサブＰＵに区分する（１６２）。動き補償ユニット７２は、第１のステージの動きベクトルによって識別された参照ピクチャのブロックからサブＰＵの各々のための第２のステージの動き情報を決定し、この場合、サブＰＵの各々のための第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む（１６４）。場合によっては、サブＰＵの各々のための第２のステージの動き情報は、第１の参照ピクチャリストおよび第２の参照ピクチャリストの各々に対応する動きベクトルを含み得る。サブＰＵのうちの１つのための第２のステージの動き情報の動きベクトルのうちの少なくとも１つが利用可能でない場合、動き補償ユニット７２は、サブＰＵのうちの１つのために、第１のステージの動きベクトルなど、代表的な動きベクトルを使用することができる。
【０２０９】
[0226]いくつかの例では、単にマージモードで動作する代わりに、ＡＭＶＰモードと同様の動きベクトル改良が有効にされ得る。たとえば、動き補償ユニット７２は、高度ＴＭＶＰモードを使用して予測される現在のＰＵのための動き改良データを決定することができる。１つの事例では、動き補償ユニット７２は、サブＰＵのうちの１つまたは複数のための第２のステージの動き情報に適用可能な動きベクトル差分を決定することができる。上記で説明したように、動きベクトル差分は、符号化ビデオビットストリームに含まれた動き情報中でシグナリングされ得る。この例では、現在のＰＵを予測するための動き改良データを使用する高度ＴＭＶＰモードの性能を示すために、動き補償ユニット７２は、ＰＵのためのＡＭＶＰモード候補リスト中に高度ＴＭＶＰ候補を生成することができ、この場合、高度ＴＭＶＰ候補の選択は、ＰＵを予測するための動き改良データを使用する高度ＴＭＶＰモードの性能を示す。
【０２１０】
[0227]動き補償ユニット７２は、サブＰＵの各々のための第２のステージの動き情報に基づいてサブＰＵの各々を別個に予測するために、動き補償を実行する（１６６）。動き補償の間、ＰＵのサブＰＵの各々のための予測ブロックを生成した後、ビデオ復号器３０は、対応する残差ブロックの再構築されたバージョンと、サブＰＵの各々のための予測ブロックとに基づいて、ビデオブロックの再構築されたバージョンを生成する。
【０２１１】
[0228]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は１つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号もしくはキャリア波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび／あるいはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２１２】
[0229]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０２１３】
[0230]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の同等の集積回路またはディスクリート論理回路などの１つもしくは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用される時に、前述の構造のいずれかまたは本明細書で説明した技法の実装に適切な任意の他の構造を指すことができる。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび／もしくはソフトウェアモジュール内で提供され得る。また、本技法は、１つもしくは複数の回路または論理要素で十分に実装され得る。
【０２１４】
[0231]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）もしくはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示した技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した１つもしくは複数のプロセッサを含む、適切なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
【０２１５】
[0232]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを処理する方法であって、
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行することと
を備える、方法。
［Ｃ２］
前記ＰＵのための前記第１のステージの動きベクトルを決定することは、前記ＰＵの空間的隣接ブロックまたは時間的隣接ブロックのうちの１つまたは複数から前記第１のステージの動きベクトルを導出することを備える、
Ｃ１に記載の方法。
［Ｃ３］
前記ＰＵのための前記第１のステージの動きベクトルを決定することは、前記ＰＵのためのマージモード候補リストから前記第１のステージの動きベクトルを選択することを備える、
Ｃ１に記載の方法。
［Ｃ４］
前記ＰＵのためのマージモード候補リスト中に高度ＴＭＶＰ候補を生成することをさらに備え、前記高度ＴＭＶＰ候補は、前記ＰＵを予測する、前記高度ＴＭＶＰモードの性能を示す、
Ｃ１に記載の方法。
［Ｃ５］
前記サブＰＵのうちの１つのための前記第２のステージの動き情報の前記少なくとも１つの動きベクトルが利用可能でないことに基づいて、前記サブＰＵのうちの１つのための代表的な動きベクトルを使用することをさらに備える、
Ｃ１に記載の方法。
［Ｃ６］
前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定することをさらに備える、
Ｃ１に記載の方法。
［Ｃ７］
前記動き改良データを決定することは、前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定することを備える、
Ｃ６に記載の方法。
［Ｃ８］
前記動き改良データを決定することは、前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定することを備える、
Ｃ６に記載の方法。
［Ｃ９］
前記ＰＵのための高度動きベクトル予測（ＡＭＶＰ）モード候補リスト中に高度ＴＭＶＰ候補を生成することをさらに備え、前記高度ＴＭＶＰ候補は、現在のＰＵを予測するための、前記動き改良データを使用する前記高度ＴＭＶＰモードの性能を示す、
Ｃ６に記載の方法。
［Ｃ１０］
前記第２の動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記ビデオブロックおよび前記予測ブロックに基づいて残差ブロックを生成することと、
ビデオビットストリーム中に前記ＰＵのための少なくとも前記第１の動きステージの動きベクトルのインジケータおよび前記残差ブロックを符号化することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
受信したビデオビットストリームから前記ＰＵのための少なくとも前記第１のステージの動きベクトルのインジケータおよび残差ブロックを復号することと、
前記第２の動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記予測ブロックおよび前記残差ブロックに基づいて前記ビデオブロックの再構成されたバージョンを生成することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１２］
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信する１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、と
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行することと
を行うように構成される、ビデオ処理デバイス。
［Ｃ１３］
前記１つまたは複数のプロセッサは、前記ＰＵの空間的隣接ブロックまたは時間的隣接ブロックのうちの１つまたは複数から前記第１のステージの動きベクトルを導出することを行うように構成される、
Ｃ１２に記載のデバイス。
［Ｃ１４］
前記１つまたは複数のプロセッサは、前記ＰＵのためのマージモード候補リストから前記第１のステージの動きベクトルを選択すること行うように構成される、
Ｃ１２に記載のデバイス。
［Ｃ１５］
前記１つまたは複数のプロセッサは、前記ＰＵのためのマージモード候補リスト中に高度ＴＭＶＰ候補を生成すること行うように構成され、前記高度ＴＭＶＰ候補は、前記ＰＵを予測する、前記高度ＴＭＶＰモードの性能を示す、
Ｃ１２に記載のデバイス。
［Ｃ１６］
前記サブＰＵのうちの１つのための前記第２のステージの動き情報の前記少なくとも１つの動きベクトルが利用可能でないことに基づいて、前記１つまたは複数のプロセッサは、前記サブＰＵのうちの１つのための代表的な動きベクトルを使用すること行うように構成される、
Ｃ１２に記載のデバイス。
［Ｃ１７］
前記１つまたは複数のプロセッサは、前記高度ＴＭＶＰモードを使用して予測された前記ＰＵのための動き改良データを決定することを行うように構成される、
Ｃ１２に記載のデバイス。
［Ｃ１８］
前記１つまたは複数のプロセッサは、前記ＰＵの前記サブＰＵの各々のための前記第２のステージの動き情報に適用可能である前記ＰＵのための単一動きベクトル差分を決定することを行うように構成される、
Ｃ１７に記載のデバイス。
［Ｃ１９］
前記１つまたは複数のデバイスは、前記サブＰＵの各々のための前記第２のステージの動き情報に対する異なる動きベクトル差分を決定することを行うように構成される、
Ｃ１７に記載音デバイス。
［Ｃ２０］
前記１つまたは複数のプロセッサは、前記ＰＵのための高度動きベクトル予測（ＡＭＶＰ）モード候補リスト中に高度ＴＭＶＰ候補を生成することを行うように構成され、前記高度ＴＭＶＰ候補は、現在のＰＵを予測するための、前記動き改良データを使用する前記高度ＴＭＶＰモードの性能を示す、
Ｃ１７に記載のデバイス。
［Ｃ２１］
前記ビデオ処理デバイスは、ビデオ符号化デバイスを備え、前記１つまたは複数のプロセッサは、
前記第２の動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記ビデオブロックおよび前記予測ブロックに基づいて残差ブロックを生成することと、
ビデオビットストリーム中に前記ＰＵのための少なくとも前記第１の動きステージの動きベクトルのインジケータおよび前記残差ブロックを符号化することと
を行うように構成される、Ｃ１２に記載のデバイス。
［Ｃ２２］
前記ビデオ処理デバイスは、ビデオ復号デバイスを備え、前記１つまたは複数のプロセッサは、
受信したビデオビットストリームから前記ＰＵのための少なくとも前記第１のステージの動きベクトルのインジケータおよび残差ブロックを復号することと、
前記第２の動き情報に基づいて前記ＰＵの前記サブＰＵの各々のための予測ブロックを生成することと、
前記サブＰＵの各々のための前記予測ブロックおよび前記残差ブロックに基づいて前記ビデオブロックの再構成されたバージョンを生成することと
を行うように構成される、Ｃ１２に記載のデバイス。
［Ｃ２３］
高度時間的動きベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定するための手段、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分するための手段と、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定するための手段、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々のための動き補償を別個に実行するための手段と
を備える、ビデオ処理デバイス。
［Ｃ２４］
ビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、１つまたは複数のプロセッサに、
高度時間的モードベクトル予測（ＴＭＶＰ）モードの第１のステージとして、予測ユニット（ＰＵ）の隣接ブロックからビデオブロックのコーディングユニット（ＣＵ）の前記ＰＵのための第１のステージの動きベクトルを決定すること、ここにおいて、前記第１のステージの動きベクトルは、前記ＰＵに対応する参照ピクチャのブロックを識別する、と、
前記ＰＵを２つ以上のサブＰＵに区分することと、
前記高度ＴＭＶＰモードの第２のステージとして、前記第１のステージの動きベクトルによって識別された前記参照ピクチャの前記ブロックから前記サブＰＵの各々のための第２のステージの動き情報を決定すること、ここにおいて、前記サブＰＵの各々のための前記第２のステージの動き情報は、少なくとも１つの動きベクトルと、関連付けられた参照インデックスとを含む、と、
前記サブＰＵの各々のための前記第２のステージの動き情報に基づいて、前記サブＰＵの各々に関する動き補償を別個に実行することと
を行わせる、コンピュータ可読記憶媒体。
【図１】
0006545667.tif 000003
【図２】
0006545667.tif 000004
【図３】
0006545667.tif 000005
【図４Ａ】
0006545667.tif 000006
【図４Ｂ】
0006545667.tif 000007
【図５Ａ】
0006545667.tif 000008
【図５Ｂ】
0006545667.tif 000009
【図６】
0006545667.tif 000010
【図７】
0006545667.tif 000011
【図８】
0006545667.tif 000012
【図９】
0006545667.tif 000013
【図１０】
0006545667.tif 000014
【図１１】
0006545667.tif 000015
【図１２】
0006545667.tif 000016
【図１３】
0006545667.tif 000017
【図１４Ａ】
0006545667.tif 000018
【図１４Ｂ】
0006545667.tif 000019
【図１５】
0006545667.tif 000020
【図１６】
0006545667.tif 000021
【図１７】
0006545667.tif 000022
【図１８】
0006545667.tif 000023
【図１９】
0006545667.tif 000024