(57)【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
ビデオコーダと、を備え、前記ビデオコーダは、
前記ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること
を行うように構成され、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補を含み、
前記ビデオコーダは、さらに、
前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補を含むことによって前記マージ候補リストを形成することと、ここにおいて、前記ＡＴＭＶＰ候補は、前記現在ブロックが、複数のサブブロックにスプリットされる前記ＡＴＭＶＰ候補によって識別される１つのブロックを使用して予測されることを示し、前記複数のサブブロックの各々は、それぞれの動き情報のセットを有し、
前記マージ候補リスト中の前記複数のマージ候補のうちの前記ＡＴＭＶＰ候補を識別するインデックスを前記マージ候補リストにコーディングすることと、
前記ＡＴＭＶＰ候補を識別する前記インデックスに基づいて、ビデオデータの前記現在ブロックをコーディングすることと、ここにおいて、前記ビデオデータの前記現在ブロックをコーディングするために、前記ビデオコーダは、前記現在ブロックのサブブロックを、前記ＡＴＭＶＰ候補によって識別される前記ブロックの前記サブブロックの前記それぞれの動き情報を使用してコーディングするように構成された、
を行うように構成されることを特徴とする、デバイス。
【請求項２】
前記マージ候補リストを形成するために、前記ビデオコーダは、
前記現在ブロックについて、参照ピクチャ中の対応するブロックを決定することと、
動き情報が前記対応するブロックのために利用可能であるかどうかを決定することと、
動き情報が前記対応するブロックのために利用可能であると決定した後に、前記ＡＴＭＶＰ候補を含むように前記マージ候補リストを形成することと、
を行うように構成された、請求項１に記載のデバイス。
【請求項３】
動き情報が前記対応するブロックのために利用可能であるかどうかを決定するために、前記ビデオコーダは、前記対応するブロックの一部分がイントラ予測されるかどうかを決定するように構成された、請求項２に記載のデバイス。
【請求項４】
前記マージ候補リストを形成するために、前記ビデオコーダは、参照ピクチャ中の前記現在ブロックに対する対応するブロックのための動き情報の代表的セットから前記ＡＴＭＶＰ候補を形成するように構成された、請求項１に記載のデバイス。
【請求項５】
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成するために、前記ビデオコーダは、前記対応するブロックの所定の位置のための、または前記対応するブロックの所定のサブ予測ユニット（サブＰＵ）のための動き情報から前記ＡＴＭＶＰ候補を形成するように構成された、請求項４に記載のデバイス。
【請求項６】
前記マージ候補リストを形成するために、前記ビデオコーダは、
第１の動きソースピクチャ中の第１の高度時間動きベクトル予測（ＡＴＭＶＰ）候補を識別するために、前記現在ブロックに対して、第１の時間動きベクトルを使用することと、
前記第１のＡＴＭＶＰ候補が利用可能であるとき、前記ＡＴＭＰＶ候補として、前記マージ候補リストに前記第１のＡＴＭＶＰ候補を追加することと、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、
第２の動きソースピクチャ中の第２のＡＴＭＶＰ候補を識別するために、前記現在ブロックに対して、第２の時間動きベクトルを使用することと、
前記ＡＴＭＶＰ候補として、前記マージ候補リストに前記第２のＡＴＭＶＰ候補を追加することと、
を行うように構成された、請求項１に記載のデバイス。
【請求項７】
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、同じ時間動きベクトルを備え、前記第１の動きソースピクチャと前記第２の動きソースピクチャとは、異なる動きソースピクチャを備える、請求項６に記載のデバイス。
【請求項８】
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、異なる時間動きベクトルを備える、請求項６に記載のデバイス。
【請求項９】
前記ビデオコーダは、前記隣接ブロックの時間ベクトルから、所定の順序に従って、前記第１の時間動きベクトルおよび前記第２の時間動きベクトルを選択するようにさらに構成された、請求項６に記載のデバイス。
【請求項１０】
前記マージ候補リストを形成するために、前記ビデオコーダは、
動きベクトルが、参照ピクチャリストＸのための前記ＡＴＭＶＰ候補のサブブロックのために利用可能であるかどうかを決定することと、
前記動きベクトルが利用可能であると決定した後に、前記候補リストに前記ＡＴＭＶＰ候補を追加することと、
を行うように構成された、請求項１に記載のデバイス。
【請求項１１】
前記動きベクトルが参照ピクチャリストＸのために利用可能でないが、参照ピクチャリストＸ以外の参照ピクチャリストを備える参照ピクチャリストＹのために利用可能であるとき、前記ビデオコーダは、参照ピクチャリストＸのために利用可能であるように前記動きベクトルを設定することと、参照ピクチャリストＸ中の参照ピクチャに前記動きベクトルをスケーリングすることとを行うように構成された、請求項１０に記載のデバイス。
【請求項１２】
前記ビデオコーダは、前記インデックスを復号するように構成されたビデオデコーダを備え、前記現在ブロックをコーディングするために、前記ビデオデコーダは、
予測ブロックを形成するために、前記ＡＴＭＶＰ候補によって識別される前記ブロックの前記サブブロックの前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックのための残差情報を復号することと、
前記復号された残差情報と前記予測ブロックとを使用して、前記現在ブロックを復号することと、
を行うように構成された、請求項１に記載のデバイス。
【請求項１３】
前記ビデオコーダは、前記インデックスを符号化するように構成されたビデオエンコーダを備え、前記現在ブロックをコーディングするために、前記ビデオエンコーダは、
予測ブロックを形成するために、前記ＡＴＭＶＰ候補によって識別される前記ブロックの前記サブブロックの前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックと前記予測ブロックとの間の差分を表す残差ブロックを形成することと、
前記残差情報を符号化することと、
を行うように構成された、請求項１に記載のデバイス。
【請求項１４】
前記ビデオコーダは、ビデオエンコーダであり、前記デバイスは、前記符号化されたビデオデータを送信するための送信機をさらに備える、請求項１に記載のデバイス。
【請求項１５】
ビデオデータをコーディングする方法であって、前記方法は、
ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、ここで、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補を含む、
を備え、前記複数のマージ候補は、前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補を含み、ここにおいて、前記ＡＴＭＶＰ候補は、前記現在ブロックが、複数のサブブロックにスプリットされる前記ＡＴＭＶＰ候補によって識別される１つのブロックを使用して予測されることを示し、前記複数のサブブロックの各々は、それぞれの動き情報のセットを有し、
前記マージ候補リスト中の前記複数のマージ候補のうちの前記ＡＴＭＶＰ候補を識別するインデックスを前記マージ候補リストにコーディングすることと、
前記ＡＴＭＶＰ候補を識別する前記インデックスに基づいて、ビデオデータの前記現在ブロックをコーディングすることと、ここにおいて、前記現在ブロックをコーディングすることは、前記現在ブロックのサブブロックを、前記ＡＴＭＶＰ候補によって識別される前記ブロックの前記サブブロックの前記それぞれの動き情報を使用してコーディングすることを備える、
を特徴とする、方法。
【請求項１６】
実行されたとき、プロセッサに、請求項１５に記載の方法を行わせる命令を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１５年１月２６日に出願された米国仮出願第６２／１０７，９３３号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６５によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を含む。ブロックベースビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、いくつかの技法ではツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、ビデオデータのブロックのための動き情報のコーディング（たとえば、符号化または復号）に関係する技法について説明する。より詳細には、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、高度時間動きベクトル予測（ＡＴＭＶＰ：advanced temporal motion vector prediction）を使用して現在ブロック（たとえば、現在予測ユニット（ＰＵ））のための動き情報をコーディングするように構成され得る。ＡＴＭＶＰは、概して、複数のサブＰＵにスプリットされる対応する予測ユニットを識別するために時間動きベクトルを使用することを伴う。現在ＰＵをサブＰＵにスプリットするのではなく、時間動きベクトルは、単に、各々がそれら自体の動き情報を有する複数のサブＰＵにスプリットされる対応するブロックを識別し得、ビデオコーダは、それぞれのサブＰＵの動き情報を使用して現在ブロックの対応する部分を予測するように構成され得る。現在ブロックをアクティブにスプリットすることを回避することによって、オーバーヘッドシグナリング情報は、通常ならば現在ブロックをサブＰＵにスプリットすることから生じ得る現在ブロックの部分のためのきめの細かい予測を依然として達成しながら、現在ブロックのために低減され得る。
【０００７】
[0007]一例では、ビデオデータをコーディングする方法は、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後の、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含む、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることと、を含む。
【０００８】
[0008]別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後の、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含む、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることとを行うように構成されたビデオコーダとを含む。
【０００９】
[0009]別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成するための手段、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後の、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含む、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングするための手段と、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングするための手段と、を含む。
【００１０】
[0010]別の例では、コンピュータ可読記憶媒体は、実行されたとき、プロセッサに、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後の、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含む、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることと、を行わせる命令を記憶している。
【００１１】
[0011]１つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]高度時間動きベクトル予測（ＡＴＭＶＰ）を実装するための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0013]高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】[0014]高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法を実装し得るビデオデコーダの一例を示すブロック図。
【図４】[0015]高効率ビデオコーディング（ＨＥＶＣ）における空間隣接候補を示す概念図。
【図５】[0016]ＨＥＶＣにおける時間動きベクトル予測（ＴＭＶＰ：temporal motion vector prediction）を示す概念図。
【図６】[0017]３Ｄ−ＨＥＶＣのための例示的な予測構造を示す概念図。
【図７】[0018]３Ｄ−ＨＥＶＣにおけるサブＰＵベースインタービュー動き予測を示す概念図。
【図８】[0019]参照ピクチャからのサブＰＵ動き予測を示す概念図。
【図９】[0020]（ＴＭＶＰと同様の）ＡＴＭＶＰにおける関連するピクチャを示す概念図。
【図１０】[0021]本開示の技法による、符号化プロセス中にＡＴＭＶＰ候補を候補リストに追加するための例示的な方法を示すフローチャート。
【図１１】[0022]本開示の技法による、復号プロセス中にＡＴＭＶＰ候補を候補リストに追加するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0023]概して、本開示は、ビデオコーデックにおける動きベクトル予測に関する。より詳細には、高度時間（advanced temporal）動きベクトル予測が、所与のブロック（予測ユニット）のためのサブブロック（サブＰＵ）レベルにおいて動きベクトルを収集することによって達成される。
【００１４】
[0024]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）拡張とマルチビュービデオコーディング（ＭＶＣ：Multiview Video Coding）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。ＭＶＣの１つのジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ＩＴＵ−Ｔ勧告Ｈ．２６４、２０１０年３月に記載されている。
【００１５】
[0025]さらに、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：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から入手可能である。ＨＥＶＣ規格はまた、両方が「High efficiency video coding」と題する、両方が２０１４年１０月に発行された、勧告ＩＴＵ−Ｔ  Ｈ．２６５および国際規格ＩＳＯ／ＩＥＣ２３００８−２において一緒に提示される。
【００１６】
[0026]動き情報：各ブロックについて、動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向のための動き情報を含んでいる。ここで、前方予測方向および後方予測方向は、双方向予測モードの２つの予測方向であり、「前方」および「後方」という用語は、必ずしも配置（ジオメトリgeometry）意味を有するとは限らず、代わりに、これらの用語は、現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応する。ピクチャまたはスライスについて１つの参照ピクチャリストのみが利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、スライスの各ブロックの動き情報は常に前方である。
【００１７】
[0027]各予測方向について、動き情報は、参照インデックスと動きベクトルとを含んでいなければならない。いくつかの場合には、簡単のために、動きベクトル自体が、それが、関連する参照インデックスを有するかのように言及され得る。参照インデックスは、現在参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。
【００１８】
[0028]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント（ＰＯＣ：picture order count）が広く使用されている。１つのコード化ビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有し得る場合があるが、一般に、それはコード化ビデオシーケンス内で起こらない。複数のコード化ビデオシーケンスがビットストリーム中に存在するとき、ＰＯＣの同じ値をもつピクチャは、復号順序に関して互いに近いことがある。ピクチャのＰＯＣ値は、一般に、参照ピクチャリスト構成と、ＨＥＶＣの場合のような参照ピクチャセットの導出と、動きベクトルスケーリングとのために使用される。
【００１９】
[0029]アドバンストビデオコーディング（ＡＶＣ）（Ｈ．２６４）におけるマクロブロック（ＭＢ）構造：Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、４つの異なる方法に区分され得る。
・１つの１６×１６ＭＢ区分
・２つの１６×８ＭＢ区分
・２つの８×１６ＭＢ区分
・４つの８×８ＭＢ区分
[0030]１つのＭＢ中の異なるＭＢ区分は、各方向について異なる参照インデックス値（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。
【００２０】
[0031]ＭＢが４つの８×８ＭＢ区分に区分されないとき、ＭＢは、各ＭＢ区分について各方向に１つの動きベクトルのみを有する。
【００２１】
[0032]ＭＢが４つの８×８ＭＢ区分に区分されるとき、各８×８ＭＢ区分は、その各々が各方向に異なる動きベクトルを有することができるサブブロックにさらに区分され得る。８×８ＭＢ区分からサブブロックを得るための４つの異なる方法がある。
・１つの８×８サブブロック
・２つの８×４サブブロック
・２つの４×８サブブロック
・４つの４×４サブブロック
[0033]各サブブロックは、各方向に異なる動きベクトルを有することができる。したがって、動きベクトルは、サブブロックよりも高いか等しいレベルにおいて存在する。
【００２２】
[0034]ＡＶＣにおける時間直接モード（temporal direct mode）：ＡＶＣでは、時間直接モードは、Ｂスライス中のスキップまたは直接モードについてＭＢレベルまたはＭＢ区分レベルのいずれかにおいてイネーブルにされ得る。各ＭＢ区分について、動きベクトルを導出するために、現在ブロックのＲｅｆＰｉｃＬｉｓｔ１［０］中の現在ＭＢ区分とコロケートされた（co-located）ブロックの動きベクトルが使用される。コロケートされたブロック中の各動きベクトルは、ＰＯＣ距離に基づいてスケーリングされる。
【００２３】
[0035]ＡＶＣにおける空間直接モード：ＡＶＣでは、直接モードはまた、空間ネイバーから動き情報を予測することができる。
【００２４】
[0036]高効率ビデオコーディング（ＨＥＶＣ）におけるコーディングユニット（ＣＵ）構造：ＨＥＶＣでは、スライス中の最大コーディングユニットは、コーディングツリーブロック（ＣＴＢ）またはコーディングツリーユニット（ＣＴＵ）と呼ばれる。ＣＴＢは、それのノードがコーディングユニットである４分木を含んでいる。
【００２５】
[0037]（技術的に、８×８ＣＴＢサイズがサポートされ得るが）ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４までの範囲であり得る。コーディングユニット（ＣＵ）は、ＣＴＢの同じサイズであり得るが、８×８程度に小さくなり得る。各コーディングユニットは、１つのモードを用いてコーディングされる。ＣＵがインターコーディングされるとき、ＣＵは、２つまたは４つの予測ユニット（ＰＵ）にさらに区分され得るか、あるいは、さらなる区分が適用されないとき、ただ１つのＰＵになり得る。１つのＣＵ中に２つのＰＵが存在するとき、２つのＰＵは、１／２サイズの長方形、あるいはＣＵの１／４または３／４サイズをもつ２つの長方形サイズであり得る。
【００２６】
[0038]ＣＵがインターコーディングされるとき、各ＰＵについて動き情報の１つのセットが存在する。さらに、各ＰＵは、動き情報のセットを導出するために固有のインター予測モードを用いてコーディングされる。
【００２７】
[0039]ＨＥＶＣにおける動き予測：ＨＥＶＣ規格では、予測ユニット（ＰＵ）のために、それぞれ、マージモード（スキップはマージの特殊な場合と見なされる）および高度動きベクトル予測（ＡＭＶＰ）モードと称される２つのインター予測モードがある。
【００２８】
[0040]ＡＭＶＰモードまたはマージモードのいずれかでは、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子のために維持される。現在ＰＵの、（１つまたは複数の）動きベクトル、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補をとることによって生成される。
【００２９】
[0041]ＭＶ候補リストは、マージモードのための最高５つの候補とＡＭＶＰモードのための２つのみの候補とを含んでいる。マージ候補は、動き情報のセット、たとえば、参照ピクチャリスト（リスト０およびリスト１）と参照インデックスの両方に対応する動きベクトルを含んでいることがある。マージ候補がマージインデックスによって識別された場合、参照ピクチャは現在ブロックの予測のために使用され、ならびに、関連する動きベクトルが決定される。しかしながら、リスト０またはリスト１のいずれかからの各潜在的予測方向についてのＡＭＶＰモード下で、参照インデックスは、ＡＭＶＰ候補が動きベクトルのみを含んでいるので、ＭＶ候補リストへのＭＶＰインデックスとともに明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測される動きベクトルはさらに改良され得る。
【００３０】
[0042]上記でわかるように、マージ候補は動き情報のフルセットに対応し、ＡＭＶＰ候補は、特定の予測方向および参照インデックスのためのただ１つの動きベクトルを含んでいる。
【００３１】
[0043]両方のモードのための候補は、同じ空間および時間隣接ブロックから同様に導出される。
【００３２】
[0044]２ＤビデオコーデックのためのサブＰＵ設計、特に高度ＴＭＶＰに関係するものは、以下の問題に遭遇し得る。サブＰＵベース時間動きベクトル予測プロセスは、そのようなプロセスを追加の候補、すなわちＡＴＭＶＰ候補として定義することによって達成され得る。しかしながら、そのようなＡＴＭＶＰ候補について以下の設計問題がある：
１．ＡＴＭＶＰ候補はＴＭＶＰのような追加の候補として挿入され得るが、そのようなＡＴＭＶＰ候補の位置、ならびにより高いコーディング効率を達成するためのＴＭＶＰ候補との相互作用は、知られていない。
２．ＡＴＭＶＰ候補の利用可能性をどのように定義すべきかは明らかでなく、それは、ＡＴＭＶＰ候補が利用不可能であり、したがってＡＴＭＶＰ候補に挿入され得るかどうかを決定するためにすべてのサブＰＵのすべての動きベクトルが検査されるべきである場合、極めて複雑であろう。
３．ＡＴＭＶＰ候補を用いたプルーニングプロセスが必要とされ得るが、そのような候補を用いたプルーニングは複雑であり得る。
４．コーディング効率と複雑さとの間の最良のトレードオフを達成するための、ＡＴＭＶＰ候補のための様々な他の設計詳細は、未知のままである。
【００３３】
[0045]図１は、高度時間動きベクトル予測（ＡＴＭＶＰ）を実装するための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介してビデオデータを宛先デバイス１４に与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４はワイヤレス通信のために装備され得る。
【００３４】
[0046]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３５】
[0047]いくつかの例では、符号化データは、出力インターフェース２２からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス１２によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００３６】
[0048]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエア(over-the-air)テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３７】
[0049]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００３８】
[0050]図１の図示のシステム１０は一例にすぎない。高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００３９】
[0051]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００４０】
[0052]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、ソースデバイス１２から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【００４１】
[0053]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４２】
[0054]ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）規格、ＨＥＶＣ規格に対する拡張、またはＩＴＵ−Ｔ  Ｈ．２６６などの後続の規格など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４３】
[0055]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４４】
[0056]ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＥＶＣ  ＨＭは３３個ものイントラ予測符号化モードを与え得る。
【００４５】
[0057]概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）にスプリットされ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵにスプリットされた場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００４６】
[0058]４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵにスプリットされるかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵにスプリットされるかどうかに依存し得る。ＣＵがさらにスプリットされない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的スプリッティングが存在しない場合でも、リーフＣＵの４つのサブＣＵはリーフＣＵとも呼ばれる。たとえば、１６×１６サイズのＣＵがさらにスプリットされない場合、その１６×１６ＣＵが決してスプリットされなくても、４つの８×８サブＣＵはリーフＣＵとも呼ばれる。
【００４７】
[0059]ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の４つの子ノードにスプリットされ得る。４分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックがスプリットされ得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示は、ＨＥＶＣのコンテキストにおけるＣＵ、ＰＵ、またはＴＵ、あるいは他の規格のコンテキストにおける同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそれのサブブロック）のいずれかを指すために「ブロック」という用語を使用する。
【００４８】
[0060]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセル以上をもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含んでいることがある。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従ってＣＵを１つまたは複数のＴＵに区分することをも記述し得る。ＴＵは、形状が正方形または非正方形（たとえば、矩形）であり得る。
【００４９】
[0061]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【００５０】
[0062]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間エリアを表し、そのＰＵのための参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵのデータは、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００５１】
[0063]１つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上記で説明されたように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、スプリットフラグは、リーフＣＵが４つの変換ユニットにスプリットされるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブＴＵにさらにスプリットされ得る。ＴＵがさらにスプリットされないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、イントラコーディングでは、リーフＣＵに属するすべてのリーフＴＵは同じイントラ予測モードを共有する。すなわち、概して、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングでは、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、ＰＵよりも大きいことも小さいこともある。イントラコーディングでは、ＰＵは、同じＣＵのための対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００５２】
[0064]その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連し得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してツリーブロック（またはＬＣＵ）に対応する。スプリットされないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示は、特に明記しない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００５３】
[0065]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ：group of pictures）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
【００５４】
[0066]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称ＰＵサイズでのインター予測とをサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部（トップ）の２Ｎ×０．５Ｎ  ＰＵと下部（ボトム）の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５５】
[0067]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここで、Ｎは非負整数値を表す。ブロック中のピクセルは行および列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ここで、Ｍは必ずしもＮに等しいとは限らない。
【００５６】
[0068]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換し得る。
【００５７】
[0069]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００５８】
[0070]量子化の後に、ビデオエンコーダは、変換係数を走査し、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（したがって、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（したがって、より高い周波数）係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応型走査を実行し得る。１次元ベクトルを形成するために量子化変換係数を走査した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５９】
[0071]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣ中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６０】
[0072]本開示の技法によれば、ビデオエンコーダ２０およびビデオデコーダ３０は、単独でまたは任意の組合せで、以下の列挙されたリストに示されている以下の技法のいずれかまたはすべてを実行するように構成され得る。
【００６１】
１．たとえば、マージ候補リストとして、挿入される場合の、ＡＴＭＶＰ候補の位置
ａ．空間候補およびＴＭＶＰ候補が、ある順序でマージ候補リストに挿入されると仮定する。ＡＴＭＶＰ候補は、それらの候補の任意の比較的固定された位置中に挿入され得る。
【００６２】
ｉ．一代替では、たとえば、ＡＴＭＶＰ候補は、最初の２つの空間候補、たとえば、Ａ１およびＢ１の後にマージ候補リストに挿入され得る。
【００６３】
ｉｉ．一代替では、たとえば、ＡＴＭＶＰ候補は、最初の３つの空間候補、たとえば、Ａ１およびＢ１およびＢ０の後に挿入され得る。
【００６４】
ｉｉｉ．一代替では、たとえば、ＡＴＭＶＰ候補は、最初の４つの候補、たとえば、Ａ１、Ｂ１、Ｂ０、およびＡ０の後に挿入され得る。
【００６５】
ｉｖ．一代替では、たとえば、ＡＴＭＶＰ候補は、ＴＭＶＰ候補の直前に挿入され得る。
【００６６】
ｖ．一代替的にでは、たとえば、ＡＴＭＶＰ候補は、ＴＭＶＰ候補の直後に挿入され得る。
【００６７】
ｂ．代替的に、候補リスト中のＡＴＭＶＰ候補の位置は、ビットストリーム中でシグナリングされ得る。さらに、ＴＭＶＰ候補を含む他の候補の位置がシグナリングされ得る。
【００６８】
２．動き情報のただ１つのセットにアクセスすることによって、ＡＴＭＶＰ候補の利用可能性検査が適用され得る。情報のそのようなセットが利用不可能であり、たとえば、１つのブロックがイントラコーディングされるとき、全ＡＴＭＶＰ候補が利用不可能であると見なされる。その場合、ＡＴＭＶＰはマージリストに挿入されない。
【００６９】
ａ．単に、ＡＴＭＶＰ候補の利用可能性を検査するために、中心位置、または中心サブＰＵ（center sub-PU）が使用される。中心サブＰＵが使用されるとき、中心サブＰＵは、中心位置（たとえば、ＰＵの左上サンプルに対する（Ｗ／２，Ｈ／２）の相対座標をもつ、中心３位置、ここにおいて、Ｗ×ＨはＰＵのサイズである）をカバーするものであるように選定される。そのような位置または中心サブＰＵは、動きソースピクチャ中の対応するブロックを識別するために、時間ベクトルとともに使用され得る。対応するブロックの中心位置をカバーするブロックからの動き情報のセットが識別される。
【００７０】
３．サブＰＵからのＡＴＭＶＰコード化ＰＵのための動き情報の代表的セット。
【００７１】
ａ．ＡＴＭＶＰ候補を形成するために、動き情報の代表的セットは、最初に形成される。
【００７２】
ｂ．動き情報のそのような代表的セットは、固定位置または固定サブＰＵから導出され得る。それは、箇条２に記載されているような、ＡＴＭＶＰ候補の利用可能性を決定するために使用される動き情報のセットのそれと同様の方法で選定され得る。
【００７３】
ｃ．サブＰＵが動き情報のそれ自体のセットを識別しており、利用不可能であるとき、それは、動き情報の代表的セットに等しくなるように設定される。
【００７４】
ｄ．動き情報の代表的セットがサブＰＵのそれであるように設定される場合、追加の動き記憶は、ワーストケースシナリオにおいて現在ＣＴＵまたはスライスのためにデコーダ側において必要とされない。
【００７５】
ｅ．動き情報のそのような代表的セットは、プルーニングを含めて、動き情報の１つのセットによって全ＰＵが表されることを復号プロセスが要求するとき、そのプロセスが、複合双予測マージング候補を生成するために使用されるように、すべてのシナリオにおいて使用される。
【００７６】
４．ＡＴＭＶＰ候補がＴＭＶＰ候補を用いてプルーニングされ、ＴＭＶＰとＡＴＭＶＰとの間の相互作用が考慮され得、詳細な技法が以下に記載される。
【００７７】
ａ．通常候補を用いた、サブＰＵベース候補、たとえば、ＡＴＭＶＰ候補のプルーニングは、そのようなサブＰＵベース候補について（箇条３の場合のように）動き情報の代表的セットを使用することによって行われ得る。動き情報のそのようなセットが通常マージ候補と同じである場合、２つの候補は同じであると見なされる。
【００７８】
ｂ．代替的に、追加として、ＡＴＭＶＰが複数のサブＰｕのための動き情報の複数の異なるセットを含んでいるかどうかを決定するために、検査が実行され、少なくとも２つの異なるセットが識別された場合、サブＰＵベース候補は、プルーニングのために使用されず、すなわち、他の候補とは異なると見なされる。他の場合、それは、プルーニングのために使用され得る（たとえば、プルーニングプロセス中にプルーニングされ得る）。
【００７９】
ｃ．代替的に、追加として、ＡＴＭＶＰ候補は、Ａ１およびＢ１として示された位置をもつ、空間候補、たとえば、左および上の空間候補のみを用いてプルーニングされ得る。
【００８０】
ｄ．代替的に、ＡＴＭＶＰ候補またはＴＭＶＰ候補のいずれかである、１つの候補のみが、時間参照から形成される。ＡＴＭＶＰが利用可能であるとき、候補はＡＴＭＶＰであり、他の場合、候補はＴＭＶＰである。そのような候補は、ＴＭＶＰの位置と同様の位置においてマージ候補リストに挿入される。この場合、候補の最大数は、不変であるように保たれ得る。
【００８１】
ｉ．代替的に、ＴＭＶＰは、ＡＴＭＶＰが利用不可能であるときでも常にディセーブルにされる。
【００８２】
ｉｉ．代替的に、ＴＭＶＰは、ＡＴＭＶＰが利用不可能であるときのみ使用される。
【００８３】
ｅ．代替的に、ＡＴＭＶＰが利用可能であり、ＴＭＶＰが利用不可能であるとき、１つのサブＰＵの動き情報の１つのセットがＴＭＶＰ候補として使用される。この場合、さらに、ＡＴＭＶＰとＴＭＶＰとの間のプルーニングプロセスは適用されない。
【００８４】
ｆ．また、代替または追加として、ＡＴＭＶＰのために使用される時間ベクトルは、ＨＥＶＣにおいて現在ＴＭＶＰのために使用されるような右下位置または中心３位置が使用される必要がないように、ＴＭＶＰのために使用され得る。
【００８５】
ｉ．代替的に、時間ベクトルによって識別された位置ならびに右下および中心３位置は、一緒に、利用可能なＴＭＶＰ候補を与えると見なされる。
【００８６】
５．ＡＴＭＶＰに対する複数の利用可能性検査は、ＡＴＭＶＰ候補がより正確で効率的となる、より高い可能性を与えるためにサポートされる。（たとえば、図９に示されているように）第１の時間ベクトルによって識別されるような動きソースピクチャからの現在ＡＴＭＶＰ候補が利用不可能であるとき、他のピクチャは動きソースピクチャと見なされ得る。別のピクチャが考慮されるとき、それは、異なる第２の時間ベクトルに関連し得るか、または、単に、利用不可能なＡＴＭＶＰ候補を指す第１の時間ベクトルからスケーリングされる第２の時間ベクトルに関連し得る。
【００８７】
ａ．第２の時間ベクトルは、第２の動きソースピクチャ中のＡＴＭＶＰ候補を識別することができ、同じ利用可能性検査が適用され得る。第２の動きソースピクチャから導出されるようなＡＴＭＶＰ候補が利用可能である場合、ＡＴＭＶＰ候補が導出され、他のいかなるピクチャも検査される必要がなく、他の場合、動きソースピクチャとしての他のピクチャが検査される必要がある。
【００８８】
ｂ．検査されるべきピクチャは、所与の順序をもつ、現在ピクチャの参照ピクチャリスト中のピクチャであり得る。各リストについて、ピクチャは、参照インデックスの昇順で検査される。リストＸが最初に検査され、リスト（１−Ｘである）Ｙ中のピクチャが続く。
【００８９】
ｉ．リストＸは、リストＸが、ＴＭＶＰのために使用されるコロケートされたピクチャを含んでいるリストであるように選定される。
【００９０】
ｉｉ．代替的に、Ｘは、単に、１または０であるように設定される。
【００９１】
ｃ．検査されるべきピクチャは、所与の順序をもつ、空間ネイバーの動きベクトルによって識別されるピクチャである。
【００９２】
６．現在ＡＴＭＶＰが適用されるＰＵの区分は、２Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、または、２Ｎ×Ｎ／２などの非対称動き区分（ＡＭＰ：asymmetric motion partition）区分であり得る。
【００９３】
ａ．代替的に、追加として、他の区分サイズが可能にされ得る場合、ＡＴＭＶＰもサポートされ得、そのようなサイズは、たとえば、６４×８を含み得る。
【００９４】
ｂ．代替的に、モードは、いくつかの区分、たとえば、２Ｎ×２Ｎに適用されるにすぎないことがある。
【００９５】
７．ＡＴＭＶＰ候補は、マージ候補の異なるタイプとしてマークされる。
【００９６】
８．ネイバーからベクトル（第１のステージの場合のような時間ベクトル）を識別するとき、複数の隣接位置、たとえば、マージ候補リスト構成において使用される隣接位置が順番に検査され得る。ネイバーの各々について、参照ピクチャリスト０（リスト０）または参照ピクチャリスト１（リスト１）に対応する動きベクトルが順番に検査され得る。２つの動きベクトルが利用可能であるとき、リストＸ中の動きベクトルが最初に検査され、その後に（Ｙが１−Ｘに等しい）リストＹが続き得、その結果、リストＸは、ＴＭＶＰのために使用されるコロケートされたピクチャを含んでいるリストとなる。ＡＴＭＶＰでは、サブＰＵの中心位置のシフトとして時間ベクトルが追加され使用され、ここにおいて、時間ベクトルの成分は、整数にシフトされる必要があり得る。そのようなシフトされる中心位置は、たとえば、現在中心位置をカバーする４×４のサイズをもつ、動きベクトルが割り振られ得る最も小さいユニットを識別するために使用される。
【００９７】
ａ．代替的に、リスト０に対応する動きベクトルが、リスト１に対応する動きベクトルの前に検査され得る。
【００９８】
ｂ．代替的に、リスト１に対応する動きベクトルが、リスト０に対応する動きベクトルの前に検査され得る。
【００９９】
ｃ．代替的に、すべての空間ネイバー中のリストＸに対応するすべての動きベクトルが順番に検査され、その後に（Ｙが１−Ｘに等しい）リストＹに対応する動きベクトルが続く。ここで、リスト「Ｘ」は、コロケートされたピクチャがどこに属するかを示すリストであるか、あるいは、ただ単に、０または１であるように設定され得る。
【０１００】
ｄ．空間ネイバーの順序は、ＨＥＶＣマージモードで使用される順序と同じであり得る。
【０１０１】
９．参照ピクチャを識別する情報を含まない、時間ベクトルを識別する第１のステージにあるとき、図９に示されているような動きソースピクチャは、単に、固定ピクチャ、たとえば、ＴＭＶＰのために使用されるコロケートされたピクチャであるように設定され得る。
【０１０２】
ａ．そのような場合、ベクトルは、そのような固定ピクチャを指す動きベクトルのみから識別され得る。
【０１０３】
ｂ．そのような場合、ベクトルは、任意のピクチャを指す動きベクトルからのみ識別されるが、さらに、固定ピクチャのほうへスケーリングされ得る。
【０１０４】
１０．図９に示されているような動きソースピクチャ、参照ピクチャを識別することなる、ベクトルを識別する第１のステージにあるとき、以下の追加の検査のうちの１つまたは複数が、候補動きベクトルに対して適用され得る。
【０１０５】
ａ．動きベクトルが、イントラコーディングされるピクチャまたはスライスに関連する場合、そのような動きベクトルは、利用不可能であると見なされ、ベクトルに変換されるために使用されないことがある。
【０１０６】
ｂ．動きベクトルが、関連するピクチャ中で（たとえば、動きベクトルをもつ現在中心座標を追加することによって）イントラブロックを識別する場合、そのような動きベクトルは、利用不可能であると見なされ、ベクトルに変換されるために使用されないことがある。
【０１０７】
１１．ベクトルを識別する第１のステージにあるとき、ベクトルの成分は、それが動きソースピクチャ中の右下ピクセル位置を識別するように、（現在ＰＵの１／２の幅，現在ＰＵの１／２の高さ）であるように設定され得る。ここで、（ｘ，ｙ）は、１つの動きベクトルの水平成分と垂直成分とを示す。
【０１０８】
ａ．代替的に、ベクトルの成分は、（ｓｕｍ（現在ＰＵの１／２の幅、Ｍ），ｓｕｍ（現在ＰＵの１／２の高さ、Ｎ））であるように設定され得、ここで、関数ｓｕｍ（ａ，ｂ）はａとｂの和を返す。一例では、動き情報が４×４ユニットにおいて記憶されるとき、ＭとＮは両方とも２に等しくなるように設定される。別の例では、動き情報が８×８ユニットにおいて記憶されるとき、ＭとＮは両方とも４に等しくなるように設定される。
【０１０９】
１２．ＡＴＭＶＰが適用されるときのサブブロック／サブＰＵサイズは、パラメータセット、たとえば、ピクチャパラメータセットのシーケンスパラメータセット中でシグナリングされる。サイズは、最小ＰＵサイズからＣＴＵサイズに及ぶ。サイズはまた、あらかじめ定義されるか、またはシグナリングされ得る。サイズは、たとえば、４×４程度に小さくなり得る。代替的に、サブブロック／サブＰＵサイズは、ＰＵまたはＣＵのサイズに基づいて導出され得る。たとえば、サブブロック／サブＰＵは、ｍａｘ（４×４，（ＣＵの幅）＞＞Ｍ）に等しく設定され得る。Ｍの値は、あらかじめ定義されるか、またはビットストリーム中でシグナリングされ得る。
【０１１０】
１３．マージ候補の最大数は、ＡＴＭＶＰが新しいマージ候補と見なされ得ることにより、１だけ増加され得る。たとえば、プルーニングの後にマージ候補リスト中の最高５つの候補を要するＨＥＶＣと比較して、マージ候補の最大数は６に増加され得る。
【０１１１】
ａ．代替的に、従来のＴＭＶＰ候補を用いたプルーニングまたは従来のＴＭＶＰ候補との統一は、マージ候補の最大数が、不変であるように保たれ得るように、ＡＴＭＶＰに対して実行され得る。
【０１１２】
ｂ．代替的に、ＡＴＭＶＰが利用可能であると識別されたとき、空間隣接候補がマージ候補リストから除外され、たとえば、フェッチング順序での最後の空間隣接候補が除外される。
【０１１３】
１４．複数の空間隣接動きベクトルが時間ベクトルを導出すると見なされるとき、動きベクトルの類似度が、現在ＰＵの隣接動きベクトル、ならびに、動きベクトルに等しく設定されている特定の時間ベクトルによって識別された隣接動きベクトルに基づいて計算され得る。最も高い動き類似度をもたらすものが、最終時間ベクトルとして選定され得る。
【０１１４】
ａ．一代替では、隣接位置Ｎからの各動きベクトルについて、動きベクトルは、動きソースピクチャ中のブロック（現在ＰＵと同じサイズ）を識別し、ここにおいて、それの隣接位置Ｎは動き情報のセットを含んでいる。動きベクトルのこのセットは、現在ブロックの隣接位置Ｎの場合のように動き情報のセットと比較される。
【０１１５】
ｂ．別の代替では、隣接位置Ｎからの各動きベクトルについて、動きベクトルは、動きソースピクチャ中のブロックを識別し、ここにおいて、それの隣接位置は動き情報の複数のセットを含んでいる。動きベクトルのこれらの複数のセットは、同じ相対位置において現在ＰＵの隣接位置からの動き情報の複数のセットと比較される。動き情報の類似度が計算される。たとえば、現在ＰＵは、ＭＩＡ１、ＭＩＢ１、ＭＩＡ０およびＭＩＢ０として示される、Ａ１、Ｂ１、Ａ０およびＢ０からの動き情報の以下のセットを有する。時間ベクトルＴＶについて、それは、動きソースピクチャ中のＰＵに対応するブロックを識別する。そのようなブロックは、同じ相対Ａ１、Ｂ１、Ａ０およびＢ０位置からの動き情報を有し、ＴＭＩＡ１、ＴＭＩＢ１、ＴＭＩＡ０およびＴＭＩＢ０として示した。ＴＶによって決定された動き類似度は、
【０１１６】
【数１】
0006636530.tif 000002
【０１１７】
として計算され、ここにおいて、ＭＶＳｉｍは動き情報の２つのセット間の類似度を定義する。
【０１１８】
ｃ．上記の場合の両方では、動き類似度ＭＶＳｉｍが使用され得、ここにおいて、２つの入力パラメータは、各々が最高２つの動きベクトルと２つの参照インデックスとを含んでいる、動き情報の２つのセットである。リストＸ中の動きベクトルの各ペアは、実際は、異なるピクチャ、すなわち、現在ピクチャおよび動きソースピクチャの異なるリストＸ中の参照ピクチャに関連する。（Ｘが０または１に等しい）２つの動きベクトルＭＶＸＮおよびＴＭＶＸＮの各々について、動きベクトル差分ＭＶＤＸＮがＭＶＸＮ−ＴＭＶＸＮとして計算され得る。その後、差分ＭＶＳｉｍＸが、たとえば、
【０１１９】
【数２】
0006636530.tif 000003
【０１２０】
として計算される。動き情報の両方のセットが、利用可能な動きベクトルを含んでいる場合、ＭＶＳｉｍは、ＭＶＳｉｍ０＋ＭＶＳｉｍ１に等しく設定される。
【０１２１】
ｉ．動き差分の統一された計算を有するために、動きベクトルの両方は、たとえば、現在ピクチャのリストＸの第１の参照ピクチャＲｅｆＰｉｃＬｉｓｔＸ［０］であり得る、同じ固定ピクチャのほうへスケーリングされる必要がある。
【０１２２】
ｉｉ．第１のセットからのリストＸ中の動きベクトルの利用可能性と第２のセットからのリストＸ中の動きベクトルの利用可能性とが異なる、すなわち、一方の参照インデックスが−１であり、他方の参照インデックスが−１でない場合、動き情報のそのような２つのセットは、方向Ｘにおいて類似していないと見なされる。２つのセットが両方のセットにおいて類似していない場合、最終ＭＶＳｉｍ関数は大きい値Ｔを返し得、それは、たとえば、無限と見なされ得る。
【０１２３】
ｉｉｉ．代替的に、動き情報のセットのペアについて、一方が、（Ｙが１−Ｘに等しい）リストＹではなく（Ｘが０または１に等しい）リストＸから予測され、他方が同じステータスを有する場合、１から２の間の重み付け（たとえば、ＭＶＳｉｍはＭＶＳｉｍＸ＊１．５に等しい）が使用され得る。一方のセットがリストＸのみから予測され、他方のセットがリストＹのみから予測されるとき、ＭＶＳｉｍは、大きい値Ｔに設定される。
【０１２４】
ｉｖ．代替的に、動き情報の任意のセットについて、１つの動きベクトルが利用可能である限り、両方の動きベクトルが生成される。１つの動きベクトルのみが利用可能である（リストＸに対応している）場合、それは、他のリストＹに対応する動きベクトルを形成するためにスケーリングされる。
【０１２５】
ｄ．代替的に、動きベクトルは、現在ＰＵの隣接ピクセルと、動きベクトルによって識別されたブロック（現在ＰＵと同じサイズ）の隣接ピクセルとの間の差分に基づいて測定され得る。最も小さい差分をもたらす動きベクトルが、最終時間ベクトルとして選定され得る。
【０１２６】
１５．現在ブロックの時間ベクトルを導出するとき、ＡＴＭＶＰを用いてコーディングされる隣接ブロックからの動きベクトルおよび／または時間ベクトルは、他の隣接ブロックからの動きベクトルよりも高い優先度を有し得る。
【０１２７】
ａ．一例では、隣接ブロックの時間ベクトルのみが最初に検査され、第１の利用可能なものが現在ブロックの時間ベクトルに設定され得る。そのような時間ベクトルが存在しないときのみ、さらに、通常動きベクトルが検査される。この場合、ＡＴＭＶＰコード化ブロックのための時間ベクトルが記憶される必要がある。
【０１２８】
ｂ．別の例では、ＡＴＭＶＰコード化隣接ブロックからの動きベクトルのみが最初に検査され、第１の利用可能なものが現在ブロックの時間ベクトルに設定され得る。そのような時間ベクトルが存在しないときのみ、さらに、通常動きベクトルが検査される。
【０１２９】
ｃ．別の例では、ＡＴＭＶＰコード化隣接ブロックからの動きベクトルのみが最初に検査され、第１の利用可能なものが現在ブロックの時間ベクトルに設定され得る。そのような動きベクトルが利用可能でない場合、時間ベクトルの検査は、箇条１５ａの場合と同様に続く。
【０１３０】
ｄ．別の例では、隣接ブロックからの時間ベクトルが最初に検査され、第１の利用可能なものが現在ブロックの時間ベクトルに設定され得る。そのような動きベクトルが利用可能でない場合、時間ベクトルの検査は、箇条１５ｂの場合と同様に続く。
【０１３１】
ｅ．別の例では、ＡＴＭＶＰコード化隣接ブロックの時間ベクトルと動きベクトルとが最初に検査され、第１の利用可能なものが現在ブロックの時間ベクトルに設定され得る。そのような時間ベクトルおよび動きベクトルが存在しないときのみ、さらに、通常動きベクトルが検査される。
【０１３２】
１６．複数の空間隣接動きベクトルが時間ベクトルを導出すると見なされるとき、動きベクトルは、それが、ピクセル領域から計算されるひずみを最小限に抑えるように選定され得、たとえば、最小マッチングコストをもたらすものが最終時間ベクトルとして選択されるように時間ベクトルを導出するために、テンプレートマッチングが使用され得る。
【０１３３】
１７．（動きソースピクチャ中の）対応するブロックからの動き情報のセットの導出は、動きベクトルが、任意のリストＸのために、対応するブロック中で利用可能であるとき（動きベクトルをＭＶＸであると示す）、ＡＴＭＶＰ候補の現在サブＰＵについて、動きベクトルが（ＭＶＸをスケーリングすることによって）リストＸのために利用可能であると見なされるように、行われる。動きベクトルが、任意のリストＸのために、対応するブロック中で利用不可能である場合、動きベクトルはリストＸのために利用不可能であると見なされる。
【０１３４】
ａ．代替的に、対応するブロック中の動きベクトルがリストＸのために利用不可能であるが、リスト１−Ｘのために利用可能であるとき（１−XがYで示され、動きベクトルをＭＶＹであるとして示す）、動きベクトルは、依然として、（リストＸ中のターゲット参照ピクチャのほうへＭＶＹをスケーリングすることによって）リストＸのために利用可能であると見なされる。
【０１３５】
ｂ．代替的に、または追加として、リストＸおよびリスト（１−Ｘに等しい）Ｙのための対応するブロック中の両方の動きベクトルが利用可能であるとき、リストＸおよびリストＹからの動きベクトルが、スケーリングによって現在サブＰＵの２つの動きベクトルを直接スケーリングし、生成するために必要な使用されない。
【０１３６】
ｉ．一例では、ＡＴＭＶＰ候補を構築するとき、ＴＭＶＰにおいて行われるような低遅延検査が各サブＰＵに適用される。現在スライスのあらゆる参照ピクチャリスト中の（ｒｅｆＰｉｃによって示される）あらゆるピクチャについて、ｒｅｆＰｉｃのピクチャ順序カウント（ＰＯＣ）値が現在スライスのＰＯＣよりも小さい場合、現在スライスは低遅延モードで考慮される。この低遅延モードでは、リストＸおよびリストＹからの動きベクトルは、それぞれ、リストＸおよびリストＹのための現在サブＰＵの動きベクトルを生成するためにスケーリングされる。低遅延モードにないとき、ＭＶＸまたはＭＶＹからの１つの動きベクトルＭＶＺのみが選定され、現在サブＰＵのための２つの動きベクトルを生成するためにスケーリングされる。ＴＭＶＰと同様に、そのような場合、Ｚは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇに等しく設定され、これは、それが、ＴＭＶＰの場合のようなコロケートされたピクチャが現在ピクチャのリストＸまたはリストＹ中にあるかどうかに依存することを意味する。代替的に、Ｚは、以下のように設定され、すなわち、動きソースピクチャがリストＸから識別される場合、ＺがＸに設定される。代替的に、追加として、動きソースピクチャが両方の参照ピクチャリストに属し、ＲｅｆＰｉｃＬｉｓｔ０［ｉｄｘ０］が、リスト０中に最初に存在する動きソースピクチャであり、ＲｅｆＰｉｃＬｉｓｔ（１）［ｉｄｘ１］が、リスト１中に最初に存在する動きソースピクチャであるとき、Ｚは、ｉｄｘ０がｉｄｘ１よりも小さいかそれに等しい場合、０であるように設定され、他の場合、１であるように設定される。
【０１３７】
１８．動きソースピクチャは、コード化ビットストリーム中でビデオエンコーダ２０によってシグナリングされ、たとえば、生成され得る。詳細に、動きソースピクチャがリスト０からであるのかリスト１からであるのかを示すフラグが、Ｂスライスのためにシグナリングされる。代替的に、追加として、現在ピクチャのリスト０またはリスト１への参照インデックスが、動きソースピクチャを識別するためにシグナリングされ得る。
【０１３８】
１９．時間ベクトルを識別するとき、それが、関連する動きソースピクチャ中のイントラコード化ブロックを指す場合、ベクトルは利用不可能であると見なされる（したがって他のベクトルが考慮され得る）。
【０１３９】
[0073]本開示の様々な技法の実装が、以下で説明される。ＡＴＭＶＰはＨＥＶＣバージョン１の上に実装されると仮定される。動き圧縮は参照ピクチャに適用されないことがあり、双方向動き補償をもつより小さいブロックがイネーブルにされ得る。
【０１４０】
[0074]ＳＰＳ中でのＡＴＭＶＰのシグナリング：
[0075]ａｔｍｖｐ＿ｓｕｂ＿ｐｕ＿ｓｉｚｅがＳＰＳ中に存在し得る。
【０１４１】
[0076]ａｔｍｖｐ＿ｓｕｂ＿ｐｕ＿ｓｉｚｅは、ＡＴＭＶＰモードを用いてコーディングされるＰＵのサブＰＵのサイズを指定し得る。それは、両端値を含む、２〜６の範囲内にある。ＡＴＭＶＰのためのサブＰＵサイズ（ｓｐｕＷｉｄｔｈ，ｓｐｕＨｅｉｇｈｔ）は、ｍｉｎ（ｗ，１＜＜ａｔｍｖｐ＿ｓｕｂ＿ｐｕ＿ｓｉｚｅ）×ｍｉｎ（ｈ，１＜＜ａｔｍｖｐ＿ｓｕｂ＿ｐｕ＿ｓｉｚｅ）として導出され、ここにおいて、ｗ×ｈは現在ＰＵのサイズである。
【０１４２】
[0077]代替的に、サブＰＵサイズの幅と高さの両方が、ＳＰＳ中で別々にシグナリングされる。
【０１４３】
[0078]代替的に、サブＰＵサイズは、ＣＴＵサイズまたは最小コーディングユニットサイズとは対照的にシグナリングされる。
【０１４４】
[0079]変数ａｔｍｖｐＥｎａｂｌｅＦｌａｇは、ａｔｍｖｐ＿ｓｕｂ＿ｐｕ＿ｓｉｚｅがＣＴＵサイズよりも小さい（たとえば、ＨＥＶＣバージョン１の場合のように６）場合、１に等しくなるように導出され、他の場合、０である。
【０１４５】
[0080]スライスヘッダ中でのＡＴＭＶＰのシグナリング：ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、５から減算されたスライス中でサポートされるマージングＭＶＰ候補の最大数を指定する。マージングＭＶＰ候補の最大数、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、次のように導出される。
【０１４６】
【数３】
0006636530.tif 000004
【０１４７】
[0081]ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄの値は、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄが、両端値を含む、１〜（ａｔｍｖｐＥｎａｂｌｅＦｌａｇ？６：５）の範囲内にあるように制限されるものとする。
【０１４８】
[0082]代替的に、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄはｓｉｘ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄに変更され、セマンティクスは以下の通りである。
【０１４９】
[0083]ｓｉｘ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、６から減算されたスライス中でサポートされるマージングＭＶＰ候補の最大数を指定する。マージングＭＶＰ候補の最大数、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは、次のように導出される。
【０１５０】
【数４】
0006636530.tif 000005
【０１５１】
[0084]代替的に、ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＿ｍｉｎｕｓ１が直接シグナリングされる。
【０１５２】
[0085]いくつかの例では、他のシンタックス変更は不要であり、ＡＴＭＶＰ候補は、両端値を含む、０〜５の範囲内にあり得る、ｍｅｒｇｅ＿ｉｄｘによって識別される。
【０１５３】
[0086]ＡＴＭＶＰに関係する復号プロセス：以下の復号プロセスは、ＡＴＭＶＰ候補を構築し、それをマージ候補リストの一部として含めるために、たとえば、ビデオデコーダ３０によって実装され得る。
【０１５４】
[0087]第１ステージ時間ベクトルの識別：
[0088]変数ｍｔＳｒｃＰＯＣを、ＴＭＶＰにおいて使用されるコロケートされたピクチャのＰＯＣ値に設定し、ｔＶをゼロベクトルに設定し、ａｔｍｖｐＡｖａＦｌａｇは０に設定される。
【０１５５】
[0089]Ａ１、Ｂ１、Ｂ０、Ａ０、およびＢ２である、空間隣接位置の位置Ｎの各々について、以下が適用される。
【０１５６】
・ｄｉｒがｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇに等しく設定される、
・現在スライスがＢスライスである場合、両端値を含む、ｄｉｒ〜（１−ｄｉｒ）に等しいＸについて、または、現在スライスがＢスライスでない場合、ただ０に等しいＸについて、以下が適用される。
【０１５７】
・隣接ブロックＮが利用可能であり、それがイントラコーディングされず、ＲｅｆＩｄｘＸ［Ｎ］が０よりも大きいかまたはそれに等しいとき（ＭＶＬＸ［Ｎ］およびＲｅｆＩｄｘＸ［Ｎ］が、ＲｅｆＰｉｃＬｉｓｔＸに対応する隣接ブロックＮの動きベクトルおよび参照インデックスであることを示す）、以下のステップが順番に適用される。
【０１５８】
・ｍｔＳｒｃＰＯＣが、ＲｅｆＰｉｃＬｉｓｔＸ［ＲｅｆＩｄｘＸ［Ｎ］］のＰＯＣ値に等しく設定される、
・ｔＶがＭＶＬＸ［Ｎ］に等しく設定される、
・ａｔｍｖｐＡｖａＦｌａｇが１に設定される、
・このプロセスを終了する。
【０１５９】
[0090]利用可能な動きソースの識別：
ピクチャのリストを、空のリストであるべきＣａｎＰｉｃＡＴＭＶＰであるように設定する。
ＣａｎＰｉｃＡＴＭＶＰ［０］が、ｍｔＳｒｃＰＯＣに等しいＰＯＣ値をもつピクチャであるように設定される。
ｉが１に等しく設定される、
ＭｏｔｉｏｎＳｒｃＰｉｃは、空のピクチャであり、以下で指定されているように更新され得る。
利用可能な参照ピクチャリストＸの各々について、以下が適用される。
【０１６０】
・ｄｉｒがｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇに等しく設定される、
・現在スライスがＢスライスである場合、両端値を含む、ｄｉｒ〜（１−ｄｉｒ）に等しいＸについて、または、現在スライスがＢスライスでない場合、ただ０に等しいＸについて、以下が適用される。
【０１６１】
・０〜ｎｕｍ＿ｒｅｆ＿ａｃｔｉｖｅ＿ｌＸ＿ｍｉｎｕｓ１の各ｉｄｘについて、
・CanPicATMVP[i++]=RefPicListX[idx];
（ＣｕｒｒＰｏｓＸ，ＣｕｒｒＰｏｓＹ）を現在ＰＵの左上ピクセル位置の座標とする。
両端値を含む、０〜ｉに等しいｎについて、以下が適用される。
【０１６２】
・ｎが０に等しくない場合、ｔＳｃａｌｅｄＶｅｃｔｏｒを導出するためにピクチャＣａｎＰｉｃＡＴＭＶＰ［ｎ］のほうへｔＶをスケーリングし、ここにおいて、ｔＶのための関連するピクチャは、現在ピクチャおよびＣａｎＰｉｃＡＴＭＶＰ［０］であり、宛先(目的destination)ベクトルｔＳｃａｌｅｄＶｅｃｔｏｒのための関連するピクチャは、現在ピクチャおよびＣａｎＰｉｃＡＴＭＶＰ［ｉ］である、
・他の場合（ｎが０に等しい）、ｔＳｃａｌｅｄＶｅｃｔｏｒはｔＶに等しく設定される。
【０１６３】
・以下のように、ＣａｎＰｉｃＡＴＭＶＰ［ｎ］から中心サブＰＵに対応するブロックの動き情報を得る。
【０１６４】
・centerPosX=CurrPosX+=((tScaledVector[0]+2)>>2);
・centerPosY=CurrPosY+=((tScaledVector[1]+2)>>2);
・（ｃｅｎｔｅｒＰｏｓＸ，ｃｅｎｔｅｒＰｏｓＹ）を、中心サブＰＵの対応するブロックを識別する位置とし、現在ＰＵサイズを、幅×高さとする。
【０１６５】
・centerPosX+=CurrPosX+((width/spuWidth)>>1)*spuWidth+
(min(spuWidth, width)>>1);
・centerPosY+=CurrPosX+((height/spuHeight)>>1)*spuHeight+
(min(spuHeight, height)>>1);
・入力として、ＣａｎＰｉｃＡＴＭＶＰ［ｎ］に等しいピクチャｍｔｎＳｒｃＰｉｃ、および（ｃｅｎｔｅｒＰｏｓＸ，ｃｅｎｔｅｒＰｏｓＹ）に等しい位置（ｐｏｓＸ，ｐｏｓＹ）をもつ、ならびに、出力として、サブＰＵ動き利用可能フラグＳｕｂＰｕＭｔｎＡｖａＦｌａｇ、参照インデックスｓＣｏｌＲｅｆＩｄｘ０とｓＣｏｌＲｅｆＩｄｘ１とのペア、および動きベクトル、ｓＣｏｌＭＶ０、ｓＣｏｌＭＶ１のペアをもつ、動き情報を捕捉する動き情報フェッチングプロセスを呼び出す。
【０１６６】
・ＳｕｂＰｕＭｔｎＡｖａＦｌａｇが１に等しい場合、以下が適用される。
【０１６７】
・ＭｏｔｉｏｎＳｒｃＰｉｃがＣａｎＰｉｃＡＴＭＶＰ［ｎ］に設定される
・ｔＶがｔＳｃａｌｅｄＶｅｃｔｏｒであるように設定される
・このループを終了する。
【０１６８】
[0091]動き情報フェッチングプロセス：
このプロセスの入力は、ピクチャｍｔｎＳｒｃＰｉｃおよびそのピクチャを用いた位置（ｐｏｓＸ，ｐｏｓＹ）であり、このプロセスの出力は、動き利用可能フラグｍｔｎＡｖａＦｌａｇ、参照インデックスｒｅｆＩｄｘ０とｒｅｆＩｄｘ１とのペア、および動きベクトル、ｍｖ０、ｍｖ１のペアである。
（ｐｏｓＸ，ｐｏｓＹ）は、最初に、ピクチャｍｔｎＳｒｃＰｉｃ内にあるようにクリッピングされる。
位置（ｐｏｓＸ，ｐｏｓＹ）を含んでいる、４×４（または動き情報を記憶している他の最も小さいサイズ）ブロックｂｌｋＴが識別される。
ｍｔｎＡｖａＦｌａｇは０に等しく設定される。
ｂｌｋＴがイントラコーディングされず、それの動き情報が、ｂｌｋＴＲｅｆＩｄｘ０と、ｂｌｋＴＲｅｆＩｄｘ１と、ｂｌｋＴＭｖ０と、ｂｌｋＴＭｖ１とを含んでいる場合、以下が適用される。
【０１６９】
・ｂｌｋＴＲｅｆＩｄｘ０またはｂｌｋＴＲｅｆＩｄｘ１のいずれかが０よりも大きいかまたはそれに等しいとき、ｍｔｎＡｖａＦｌａｇは１に等しく設定され、０および１に等しいＸについて以下が適用される。
【０１７０】
・ｒｅｆＩｄｘＸがｂｌｋＴＲｅｆＩｄｘＸに等しく設定される
・ｍｖＸがｂｌｋＴＭｖＸに等しく設定される
[0092]ＡＴＭＶＰのためのサブＰＵ動きの生成：
ＳｕｂＰｕＭｔｎＡｖａＦｌａｇが１に等しい場合、以下のプロセスが呼び出される。
【０１７１】
・（たとえば、ラスタ走査順序での）サブＰＵの各々について、以下が適用される。
【０１７２】
・現在サブＰＵの水平インデックスおよび垂直インデックスを、それぞれｋおよびｌとして示し、ここにおいて、ｋは、両端値を含む、０〜幅／ｓｐｕＷｉｄｔｈ−１に及び、ｌは、両端値を含む、０〜高さ／ｓｐｕＨｅｉｇｈｔ−１に及ぶ。たとえば、１６×１６ＰＵが４つの８×８サブＰＵにデバイドされる場合、ラスタ走査順序での４つのサブＰＵの（ｋ，ｌ）値は、それぞれ（０，０）、（１，０）、（０，１）および（１，１）である。
【０１７３】
・サブＰＵの座標（ｔｅｍｐＰｏｓＸ，ｔｅｍｐＰｏｓＹ）は、（ｔｅｍｐＰｏｓＸ，ｔｅｍｐＰｏｓＹ）＝（ＣｕｒｒＰｏｓＸ，ＣｕｒｒＰｏｓＹ）＋（ｋ＊ｓｐｕＷｉｄｔｈ，ｌ＊ｓｐｕＨｅｉｇｈｔ）として計算される。
［以下、イタリック体のテキスト］
・tempPosX+=((tV[0’]+2)>>2);
・tempPosY+=((tV[l]+2)>>2);
・入力として、ＭｏｔｉｏｎＳｒｃＰｉｃに等しいピクチャｍｔｎＳｒｃＰｉｃ、および（ｔｅｍｐＰｏｓＸ，ｔｅｍｐＰｏｓＹ）に等しい位置（ｐｏｓＸ，ｐｏｓＹ）をもつ、ならびに、出力として、サブＰＵ動き利用可能フラグｃｕｒｒＳｕｂＰｕＭｔｎＡｖａＦｌａｇ、参照インデックスｃｕｒｒＳｕｂＲｅｆＩｄｘ０とｃｕｒｒＳｕｂＲｅｆＩｄｘ１とのペア、および動きベクトル、ｃｕｒｒＳｕｂＭＶ０、ｃｕｒｒＳｕｂＭＶ１のペアをもつ、動き情報を捕捉する動き情報フェッチングプロセスを呼び出す。
【０１７４】
・ｃｕｒｒＳｕｂＰｕＭｔｎＡｖａＦｌａｇが０に等しいとき、両端値を含む、０および１に等しいＸについて、ｃｕｒｒＳｕｂＲｅｆＩｄｘＸはｃＣｏｌＲｅｆＩｄｘＸに等しく設定され、ｃｕｒｒＳｕｂＭＶＸはｃＣｏｌＭＶＸに等しく設定される。
【０１７５】
・両端値を含む、０および１に等しいＸについて、ＴＭＶＰの場合と同様に、ＲｅｆＰｉｃＬｉｓｔＸ［０］である、現在ピクチャのデフォルトターゲット参照ピクチャのほうへ、動きベクトルｃｕｒｒＳｕｂＭＶＸをスケーリングする。［以上、イタリック体のテキスト］
現在サブＰＵのための導出された参照インデックスおよび動きベクトルをｃＳｐｕＲｅｆＩｄｘＸおよびｃＳｐｕＭＶＸとして示し、それらは以下のように導出される。
【０１７６】
・cSpuRefIdxX=(currSubRefIdxX>=0 ? 0:-1);
・ｃＳｐｕＭＶＸは、ＴＭＶＰの場合と同様に、ｃｕｒｒＳｕｂＭＶＸのスケーリングされたベクトルであるように設定される。
このＡＴＭＶＰ候補のための（０または１に等しいＸについての）動き情報の代表的セット、ａＲｅｆＩｄｘＸおよびａＭＶＸは、以下のように導出される：
・aRefIdxX=(cColRefIdxX>=0 ? 0:-1);
・ａＭＶＸは、ＴＭＶＰの場合と同様に、ｃＣｏｌＭＶＸのスケーリングされたベクトルであるように設定される。
［以下、イタリック体のテキスト］
代替的に、動きフェッチングプロセスおよび動きスケーリングプロセスは、ＨＥＶＣバージョン１のＴＭＶＰの場合と同じ（または同様）であり、すなわち、ＨＥＶＣバージョン１のサブクローズ８．５．３．２．８：「コロケートされた動きベクトルのための導出プロセス」が、このサブセクション中のハイライトされたテキストに取って代わるために適用される。この場合、ＴＭＶＰ（サブクローズ８．５．３．２．８）の場合のような動きフェッチングプロセスおよび動きスケーリングプロセスが、（イタリック体のテキスト（なお、［以下、イタリック体のテキスト］と［以上、イタリック体のテキスト］とで囲まれた範囲にイタリック体で示されたテキストを示す。）によって示されるようなものを含む）上記で定義された動きフェッチングプロセスおよび動きスケーリングプロセスに取って代わる。
［以上、イタリック体のテキスト］
[0093]マージ候補リストへのＡＴＭＶＰ候補の挿入：
[0094]ＳｕｂＰｕＭｔｎＡｖａＦｌａｇが１に等しいとき、ＡＴＭＶＰ候補は、［以下、イタリック体のテキスト］Ａ０（または代替的に［以上、イタリック体のテキスト］Ｂ０）候補がテストされ、場合によってはマージ候補リストに挿入された後、マージ候補に挿入される。
【０１７７】
[0095]この候補のための動き情報は、（Ｘが０または１に等しい）ａＲｅｆＩｄｘＸ、およびａＭＶＸによって形成されると見なされる。
【０１７８】
[0096]ＴＭＶＰ候補が利用可能であるとき、それは、ＡＴＭＶＰ候補の代表的情報（ａＲｅｆＩｄｘＸ、およびａＭＶＸ）とさらに比較され、ＴＭＶＰ候補が、（Ｘが０または１に等しい）ａＲｅｆＩｄｘＸに等しくないｒｅｆＩｄｘＸ、またはａＭＶＸに等しくない動きベクトルを有する場合のみ、それは、さらに、マージ候補リストに挿入される。
【０１７９】
[0097]ＡＴＭＶＰ候補を含むすべての候補が、動き情報（最高２つの参照インデックスおよび２つの関連する動きベクトル）の１つの単一のセットによって表されると透過的に見なされるとき、ＡＴＭＶＰ候補のための代表的情報は使用される。たとえば、複合（combined）双予測マージング候補のための導出プロセスにおいて、ＡＴＭＶＰの代表的動き情報は使用される。
【０１８０】
[0098]追加として、各マージ候補は、そのような候補がＡＴＭＶＰ候補であるかどうかを示す（フラグまたはタイプであり得る）タグとアタッチされる。
【０１８１】
[0099]追加として、ＡＴＭＶＰ候補では、０および１に等しいＸについてならびに現在ＰＵについてｃＳｐｕＲｅｆＩｄｘＸおよびｃＳｐｕＭＶＸとして上記で示された動き情報セットが各サブＰＵのために記憶される必要がある復号される。
【０１８２】
[0100]ＡＴＭＶＰ候補に基づく動き補償：現在ＰＵがマージモードを用いてコーディングされ、ｍｅｒｇｅ＿ｉｄｘが、ＡＴＭＶＰ候補として示される候補を指定したとき、各サブＰＵについて、（０および１に等しいＸについて）動き情報ｃＳｐｕＲｅｆＩｄｘＸおよびｃＳｐｕＭＶＸが導出され、現在サブＰＵに対して動き補償を実行するために使用される。動き補償が行われた後、残差復号および他のプロセスが、他のインターモードと同様の方法で行われる。
【０１８３】
[0101]ビデオエンコーダ２０は、さらに、ブロックベースシンタックスデータ、フレームベースシンタックスデータ、およびＧＯＰベースシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のフレームの数を記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【０１８４】
[0102]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【０１８５】
[0103]図２は、高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【０１８６】
[0104]図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、順に、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、区分ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するための（図２に示されていない）デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。（ループ中またはループ後の）追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【０１８７】
[0105]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【０１８８】
[0106]その上、区分ユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、複数のサブＣＵへのＬＣＵの区分を示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【０１８９】
[0107]モード選択ユニット４０は、たとえば、誤差結果（error results）に基づいてコーディングモード、すなわち、イントラまたはインターのうちの１つを選択し得、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、参照フレームとして使用するための符号化ブロックを再構成するために加算器６２に与える。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット５６に与える。
【０１９０】
[0108]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム（または他のコード化ユニット）内でコーディングされている現在ブロックに関する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり（closely）一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０１９１】
[0109]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの各々が、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０１９２】
[0110]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【０１９３】
[0111]ビデオエンコーダ２０は、図１に関して上記で説明された本開示の様々な技法のいずれかを実行するように構成され得る。たとえば、動き補償ユニット４４は、本開示の技法に従ってＡＭＶＰモードまたはマージモードを使用してビデオデータのブロックのための動き情報をコーディングするように構成され得る。
【０１９４】
[0112]動き補償ユニット４４がマージモードを実行することを選ぶと仮定すると、動き補償ユニット４４は、マージ候補のセットを含む候補リストを形成し得る。動き補償ユニット４４は、特定の、所定の順序に基づいて候補リストに候補を追加し得る。一例では、動き補償ユニット４４は、Ａ１、Ｂ１、Ｂ０、Ａ０、次いで高度時間動きベクトル予測（ＡＴＭＶＰ）候補の順序で、候補リストに候補を追加する。動き補償ユニット４４はまた、上記で説明されたように、追加の候補を追加し、候補リストのプルーニングを実行し得る。最終的に、モード選択ユニット４０は、現在ブロックの動き情報を符号化し、選択された候補を表すマージインデックスを符号化するために、それらの候補のうちのどれが使用されるべきかを決定し得る。
【０１９５】
[0113]さらに、いくつかの例では、動き補償ユニット４４は、最初に、ＡＴＭＶＰ候補が利用可能であるかどうかを決定し得る。たとえば、動き補償ユニットは、参照ピクチャ中の現在ブロックに対応するブロックを決定し、動き情報が、対応するブロックのために利用可能であるかどうかを決定し得る。動き補償ユニット４４は、次いで、動き情報が、対応するブロックのために利用可能であるとき、ＡＴＭＶＰ候補（すなわち、対応するブロック）が利用可能であると決定し得る。いくつかの例では、動き補償ユニット４４は、対応するブロック全体（たとえば、以下の図５ａに示されている、中心位置ブロック）がイントラ予測を使用せずに予測されるとき、動き情報が対応するブロックのために利用可能であるが、対応するブロックの少なくとも一部がイントラ予測を使用して予測されるとき、動き情報が対応するブロックのために利用可能でないと決定し得る。
【０１９６】
[0114]同様に、いくつかの例では、動き補償ユニット４４は、２つの潜在的ＡＴＭＶＰ候補のうちのどちらが、候補リストに最終的に追加されるＡＴＭＶＰ候補として使用されるべきであるかを決定し得る。たとえば、動き補償ユニット４４は、第１の動きソースピクチャ、すなわち、第１の参照ピクチャ中の第１のＡＴＭＶＰ候補を識別する現在ブロックに対する第１の時間動きベクトルを形成し得る。動き情報が第１のＡＴＭＶＰ候補のために利用可能でない場合、動き補償ユニット４４は、動き情報が第２の異なるＡＴＭＶＰ候補のために利用可能であるかどうかを決定し得る。第２のＡＴＭＶＰ候補は、第２の異なる参照ピクチャを参照する同じ時間動きベクトル、同じ（すなわち第１の）参照ピクチャを参照する異なる時間動きベクトル、または第２の異なる参照ピクチャを参照する異なる時間動きベクトルを使用して識別され得る。検査されるべき参照ピクチャは、上記で説明されたように、参照ピクチャリスト中の参照インデックスの昇順であり得る。同様に、異なる時間動きベクトルが使用される場合、時間動きベクトルは、現在ブロックへの隣接ブロックの時間ベクトルから、所定の順序で選択され得る。
【０１９７】
[0115]さらに、動き補償ユニット４４は、動きベクトルが特定の参照ピクチャリストのためのＡＴＭＶＰ候補中のサブＰＵのために利用可能であるかどうかを決定し得る。利用可能である場合、動きベクトルは、その参照ピクチャリストのために利用可能であると見なされる。他の場合、動きベクトルは、その参照ピクチャリストのために利用不可能であると見なされる。代替的に、動きベクトルが他の参照ピクチャリストのために利用可能である場合、動き補償ユニット４４は、上記で説明されたように、第１の参照ピクチャリスト中のターゲット参照ピクチャを指すように動きベクトルをスケーリングすることによって、動き情報を変更し得る。
【０１９８】
[0116]イントラ予測ユニット４６は、上記で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【０１９９】
[0117]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【０２００】
[0118]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【０２０１】
[0119]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。
【０２０２】
[0120]いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【０２０３】
[0121]量子化の後に、エントロピー符号化ユニット５６は量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【０２０４】
[0122]逆量子化ユニット５８および逆変換ユニット６０は、たとえば、参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照ピクチャメモリ６４に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット４４によって生成された動き補償予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０２０５】
[0123]このようにして、図２のビデオエンコーダ２０は、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることと、を行うように構成されたビデオコーダの一例を表す。
【０２０６】
[0124]図３は、高度時間動きベクトル予測（ＡＴＭＶＰ）のための技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明された符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【０２０７】
[0125]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０２０８】
[0126]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０２０９】
[0127]動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０２１０】
[0128]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
【０２１１】
[0129]ビデオデコーダ３０は、図１に関して上記で説明された本開示の様々な技法のいずれかを実行するように構成され得る。たとえば、動き補償ユニット７２は、本開示の技法に従って、ビデオデータのブロックのための動き情報がＡＭＶＰモードを使用してコーディングされるのかマージモードを使用してコーディングされるのかを決定するように構成され得る。より詳細には、エントロピー復号ユニット７０は、動き情報が現在ブロックについてどのようにコーディングされるかを表す１つまたは複数のシンタックス要素を復号し得る。
【０２１２】
[0130]マージモードが実行されることをシンタックス要素が示すと仮定すると、動き補償ユニット７２は、マージ候補のセットを含む候補リストを形成し得る。動き補償ユニット７２は、特定の、所定の順序に基づいて候補リストに候補を追加し得る。一例では、動き補償ユニット７２は、Ａ１、Ｂ１、Ｂ０、Ａ０、次いで高度時間動きベクトル予測（ＡＴＭＶＰ）候補の順序で、候補リストに候補を追加する。動き補償ユニット７２はまた、上記で説明されたように、追加の候補を追加し、候補リストのプルーニングを実行し得る。最終的に、動き補償ユニット７２は、現在ブロックのための動き情報をコーディングするために、それらの候補のうちのどれが使用されるかを表すマージインデックスを復号し得る。
【０２１３】
[0131]さらに、いくつかの例では、動き補償ユニット７２は、最初に、ＡＴＭＶＰ候補が利用可能であるかどうかを決定し得る。たとえば、動き補償ユニットは、参照ピクチャ中の現在ブロックに対応するブロックを決定し、動き情報が、当該対応するブロックのために利用可能であるかどうかを決定し得る。動き補償ユニット７２は、次いで、動き情報が、当該対応するブロックのために利用可能であるとき、ＡＴＭＶＰ候補（すなわち、当該対応するブロック）が利用可能であると決定し得る。いくつかの例では、動き補償ユニット７２は、当該対応するブロック全体がイントラ予測を使用せずに予測されるとき、動き情報が当該対応するブロックのために利用可能であるが、当該対応するブロックの少なくとも一部がイントラ予測を使用して予測されるとき、動き情報が当該対応するブロックのために利用可能でないと決定し得る。
【０２１４】
[0132]同様に、いくつかの例では、動き補償ユニット７２は、２つの潜在的ＡＴＭＶＰ候補のうちのどちらが、候補リストに最終的に追加されるＡＴＭＶＰ候補として使用されるべきであるかを決定し得る。たとえば、動き補償ユニット７２は、第１の動きソースピクチャ、すなわち、第１の参照ピクチャ中の第１のＡＴＭＶＰ候補を識別する現在ブロックに対する第１の時間動きベクトルを形成し得る。動き情報が第１のＡＴＭＶＰ候補のために利用可能でない場合、動き補償ユニット７２は、動き情報が第２の異なるＡＴＭＶＰ候補のために利用可能であるかどうかを決定し得る。第２のＡＴＭＶＰ候補は、第２の異なる参照ピクチャを参照する同じ時間動きベクトル、同じ（すなわち第１の）参照ピクチャを参照する異なる時間動きベクトル、または第２の異なる参照ピクチャを参照する異なる時間動きベクトルを使用して識別され得る。検査されるべき参照ピクチャは、上記で説明されたように、参照ピクチャリスト中の参照インデックスの昇順であり得る。同様に、異なる時間動きベクトルが使用される場合、時間動きベクトルは、現在ブロックの隣接ブロックの時間ベクトルから所定の順序で選択され得る。
【０２１５】
[0133]さらに、動き補償ユニット７２は、動きベクトルが特定の参照ピクチャリストのためのＡＴＭＶＰ候補中のサブＰＵのために利用可能であるかどうかを決定し得る。利用可能である場合、動きベクトルは、その参照ピクチャリストのために利用可能であると見なされる。他の場合、動きベクトルは、その参照ピクチャリストのために利用不可能であると見なされる。代替的に、動きベクトルが他の参照ピクチャリストのために利用可能である場合、動き補償ユニット７２は、上記で説明されたように、第１の参照ピクチャリスト中のターゲット参照ピクチャを指すように動きベクトルをスケーリングすることによって、動き情報を変更し得る。
【０２１６】
[0134]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によってエントロピー復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。
【０２１７】
[0135]逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０２１８】
[0136]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも（コーディングループ中またはコーディングループ後のいずれかで）使用され得る。所与のフレームまたはピクチャの復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号ビデオを記憶する。
【０２１９】
[0137]このようにして、ビデオデコーダ３０は、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることと、を行うように構成されたビデオコーダの一例を表す。
【０２２０】
[0138]図４は、ＨＥＶＣにおける空間隣接候補を示す概念図である。空間ＭＶ候補は、特定のＰＵ（ＰＵ０）について、図４上に示されている隣接ブロックから導出されるが、ブロックから候補を生成する方法は、マージモードおよびＡＭＶＰモードについて異なる。
【０２２１】
[0139]マージモードでは、最高４つの空間ＭＶ候補が、番号とともに図４（ａ）に示されている順序を用いて導出され得、その順序は、図４（ａ）に示されているように、左（０，Ａ１）、上（１，Ｂ１）、右上（２，Ｂ０）、左下（３，Ａ０）、および左上（４，Ｂ２）である。すなわち、図４（ａ）では、ブロック１００はＰＵ０  １０４ＡとＰＵ１  １０４Ｂとを含む。ビデオコーダが、マージモードを使用してＰＵ０  １０４Ａのための動き情報をコーディングすべきであるとき、ビデオコーダは、空間隣接ブロック１０８Ａ、１０８Ｂ、１０８Ｃ、１０８Ｄ、および１０８Ｅからの動き情報を、その順序で候補リストに追加する。ブロック１０８Ａ、１０８Ｂ、１０８Ｃ、１０８Ｄ、および１０８Ｅは、それぞれ、ＨＥＶＣの場合のように、ブロックＡ１、Ｂ１、Ｂ０、Ａ０、およびＢ２と呼ばれることもある。
【０２２２】
[0140]ＡＶＭＰモードでは、隣接ブロックは、２つのグループ、すなわち、図４（ｂ）上に示されているように、ブロック０および１を含む左グループと、ブロック２、３、および４を含む上グループとに分割される。これらのブロックは、それぞれ、図４（ｂ）中でブロック１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄ、および１１０Ｅとラべリングされる。特に、図４（ｂ）では、ブロック１０２は、ＰＵ０  １０６ＡとＰＵ１  １０６Ｂとを含み、ブロック１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄ、および１１０Ｅは、ＰＵ０  １０６Ａに対する空間ネイバーを表す。各グループについて、シグナリングされた参照インデックスによって示される参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、グループの最終候補を形成するために選定されるべき最高優先度を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第１の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって、時間距離差分が補償され得る。
【０２２３】
[0141]図５は、ＨＥＶＣにおける時間動きベクトル予測を示す概念図である。特に、図５（ａ）は、ＰＵ０  １２２ＡとＰＵ１  １２２Ｂとを含む例示的なＣＵ１２０を示す。ＰＵ０  １２２Ａは、ＰＵ１２２Ａのための中心ブロック１２６とＰＵ０  １２２Ａに対する右下ブロック１２４とを含む。図５（ａ）はまた、以下で説明されるように、動き情報がＰＵ０  １２２Ａの動き情報からそれについて予測され得る外部ブロック１２８を示す。図５（ｂ）は、動き情報がそれについて予測されるべきである現在ブロック１３８を含む現在ピクチャ１３０を示す。特に、図５（ｂ）は、（現在ブロック１３８に対するコロケートされたブロック１４０を含む）現在ピクチャ１３０に対するコロケートされたピクチャ１３４と、現在参照ピクチャ１３２と、コロケートされた参照ピクチャ１３６とを示す。コロケートされたブロック１４０は、ブロック１３８の動き情報のための時間動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）１４２として使用される、動きベクトル１４４を使用して予測される。
【０２２４】
[0142]ビデオコーダは、ＴＭＶＰがイネーブルにされ、ＴＭＶＰ候補が利用可能である場合、ＴＭＶＰ候補（たとえば、ＴＭＶＰ候補１４２）を、任意の空間動きベクトル候補の後にＭＶ候補リストに追加し得る。ＴＭＶＰ候補のための動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードの両方について同じである。しかしながら、マージモードでのＴＭＶＰ候補のためのターゲット参照インデックスは、ＨＥＶＣに従って、０に設定される。
【０２２５】
[0143]ＴＭＶＰ候補導出のための１次ブロックロケーションは、空間隣接候補を生成するために使用される上および左ブロックへのバイアスを補償するための、ＰＵ０  １２２Ａに対するブロック１２４として図５（ａ）に示されているような、コロケートされたＰＵの外側の右下ブロックである。しかしながら、ブロック１２４が現在ＣＴＢ行の外側に位置するか、または、動き情報がブロック１２４のために利用可能でない場合、そのブロックは、図５（ａ）に示されているようにＰＵの中心ブロック１２６と置換される。
【０２２６】
[0144]ＴＭＶＰ候補１４２のための動きベクトルは、スライスレベル情報に示されているように、コロケートされたピクチャ１３４のコロケートされたブロック１４０から導出される。
【０２２７】
[0145]ＡＶＣにおける時間直接モードと同様に、ＴＭＶＰ候補の動きベクトルは、動きベクトルスケーリングを受けることがあり、動きベクトルスケーリングは、現在ピクチャ１３０と現在参照ピクチャ１３２との間の、およびコロケートされたピクチャ１３４とコロケートされた参照ピクチャ１３６との間のピクチャ順序カウント（ＰＯＣ）距離差分を補償するために実行される。すなわち、動きベクトル１４４は、これらのＰＯＣ差分に基づいて、ＴＭＶＰ候補１４２を生成するためにスケーリングされ得る。
【０２２８】
[0146]ＨＥＶＣのマージモードおよびＡＭＶＰモードのいくつかの態様が、以下で説明される。
【０２２９】
[0147]動きベクトルスケーリング：動きベクトルの値はプレゼンテーション時間におけるピクチャ間の距離に比例すると仮定される。動きベクトルは、２つのピクチャ、すなわち、参照ピクチャと、動きベクトルを含んでいるピクチャ（すなわち、含有ピクチャ（containing picture））とを関連付ける。別の動きベクトルを予測するためにビデオエンコーダ２０またはビデオデコーダ３０によって動きベクトルが使用されるとき、含有ピクチャと参照ピクチャとの間の距離は、ピクチャ順序カウント（ＰＯＣ）値に基づいて計算される。
【０２３０】
[0148]予測されるべき動きベクトルについて、それの関連する含有ピクチャと参照ピクチャとは異なる。すなわち、２つの別個の動きベクトル、すなわち、予測されるべき第１の動きベクトルと、第１の動きベクトルを予測するために使用される第２の動きベクトルとについて、２つのＰＯＣ差分値がある。その上、第１のＰＯＣ差分は、第１の動きベクトルの現在ピクチャと参照ピクチャとの間の差分であり、第２のＰＯＣ差分は、第２の動きベクトルを含んでいているピクチャと第２の動きベクトルが参照する参照ピクチャとの間の差分である。第２の動きベクトルは、これらの２つのＰＯＣ距離に基づいてスケーリングされ得る。空間隣接候補では、２つの動きベクトルのための含有ピクチャは同じであるが、参照ピクチャは異なる。ＨＥＶＣでは、動きベクトルスケーリングは、空間および時間隣接候補のためにＴＭＶＰとＡＭＶＰの両方に適用される。
【０２３１】
[0149]擬似（artificial）動きベクトル候補生成：動きベクトル候補リストが完全でない場合、擬似動きベクトル候補が生成され、リストが所定の数の候補を含むまでリストの最後に挿入され得る。
【０２３２】
[0150]マージモードでは、２つのタイプの擬似ＭＶ候補、すなわち、Ｂスライスについてのみ導出された複合候補と、第１のタイプが十分な擬似候補を与えない場合にＡＭＶＰのためにのみ使用されるゼロ候補とがある。
【０２３３】
[0151]すでに候補リスト中にあり、必要な動き情報を有する候補の各ペアについて、双方向複合動きベクトル候補が、リスト０中のピクチャを参照する第１の候補の動きベクトルとリスト１中のピクチャを参照する第２の候補の動きベクトルとの組合せによって導出される。
【０２３４】
[0152]候補挿入のためのプルーニングプロセス：異なるブロックからの候補は同じであることがあり得、これはマージ／ＡＭＶＰ候補リストの効率を減少させる。この問題を解決するために、プルーニングプロセスが適用され得る。プルーニングプロセスに従って、ビデオコーダは、ある程度まで、同等の候補を挿入することを回避するために、現在候補リスト中のある候補を他の候補と比較する。複雑さを低減するために、各潜在的候補を、すでにリスト中にあるすべての他の既存の候補と比較する代わりに、限られた数のプルーニングプロセスのみが適用される。
【０２３５】
[0153]図６は、３Ｄ−ＨＥＶＣのための例示的な予測構造を示す。３Ｄ−ＨＥＶＣは、ＪＣＴ−３Ｖによって開発中のＨＥＶＣの３Ｄビデオ拡張である。本開示の技法に関係するいくつかの技法が、以下の図６および図７に関して説明される。
【０２３６】
[0154]図６は、３つのビューの場合のマルチビュー予測構造を示す。Ｖ３はベースビューを示し、非ベースビュー（Ｖ１またはＶ５）中のピクチャは、同じ時間インスタンスの従属（ベース）ビュー中のピクチャから予測され得る。
【０２３７】
[0155]（再構成されたサンプルからの）インタービューサンプル予測がＭＶ−ＨＥＶＣにおいてサポートされ、それの一般的な予測構造が図８に示される。
【０２３８】
[0156]ＭＶ−ＨＥＶＣと３Ｄ−ＨＥＶＣの両方は、ベース（テクスチャ）ビューがＨＥＶＣ（バージョン１）デコーダによって復号可能であるようにＨＥＶＣに適合する。ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣのためのテストモデルは、２０１５年１月２６日現在、ウェブサイトmpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding/test-model-6-3d-hevc-and-mv-hevcにおいて入手可能な、Ｚｈａｎｇら、「Test Model 6 of 3D-HEVC and MV-HEVC」、ＪＣＴ−３ＶドキュメントＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ１３９４０に記載されている。
【０２３９】
[0157]ＭＶ−ＨＥＶＣでは、非ベースビュー中の現在ピクチャは、同じビュー中のピクチャと同じ時間インスタンスの参照ビュー中のピクチャの両方によって、これら全てのピクチャをそのピクチャの参照ピクチャリスト中に入れることによって、予測され得る。したがって、現在ピクチャの参照ピクチャリストは、時間参照ピクチャとインタービュー参照ピクチャの両方を含んでいる。
【０２４０】
[0158]時間参照ピクチャに対応する参照インデックスに関連する動きベクトルは、時間動きベクトルと示される。
【０２４１】
[0159]インタービュー参照ピクチャに対応する参照インデックスに関連する動きベクトルは、ディスパリティ動きベクトルと示される。
【０２４２】
[0160]３Ｄ−ＨＥＶＣはＭＶ−ＨＥＶＣにおけるすべての特徴をサポートする。したがって、上述のようなインタービューサンプル予測がイネーブルにされる。
【０２４３】
[0161]追加として、より高度のテクスチャオンリーコーディングツール（texture only coding tool）および深度関係／依存コーディングツール（depth related/dependent coding tool）がサポートされる。
【０２４４】
[0162]テクスチャオンリーコーディングツールは、しばしば、同じオブジェクトに属し得る（ビュー間の）対応するブロックの識別を必要とする。したがって、ディスパリティベクトル導出は、３Ｄ−ＨＥＶＣにおける基本技術である。
【０２４５】
[0163]図７は、３Ｄ−ＨＥＶＣにおけるサブＰＵベースインタービュー動き予測を示す概念図である。図７は、現在ビュー（Ｖ１）の現在ピクチャ１６０と参照ビュー（Ｖ０）中のコロケートされたピクチャ１６２とを示す。現在ピクチャ１６０は、４つのサブＰｕ１６６Ａ〜１６６Ｄ（サブＰＵ１６６）を含む現在ＰＵ１６４を含む。それぞれのディスパリティベクトル１７４Ａ〜１７４Ｄ（ディスパリティベクトル１７４）は、コロケートされたピクチャ１６２中の、サブＰＵ１６６に対応するサブＰＵ１６８Ａ〜１６８Ｄを識別する。３Ｄ−ＨＥＶＣでは、インタービューマージ候補のためのサブＰＵレベルインタービュー動き予測方法、すなわち、候補は参照ビュー中の参照ブロックから導出された。
【０２４６】
[0164]そのようなモードがイネーブルにされるとき、現在ＰＵ１６４は、参照ビュー中の（ディスパリティベクトルによって識別される現在ＰＵと同じサイズをもつ）参照エリアに対応し得、参照エリアは、一般にＰＵのための動き情報の１つのセット生成のために必要とされるよりも豊富な動き情報を有し得る。したがって、図７に示されているように、サブＰＵレベルインタービュー動き予測（ＳＰＩＶＭＰ：sub-PU level inter-view motion prediction）方法が使用され得る。
【０２４７】
[0165]このモードはまた、特殊マージ候補としてシグナリングされ得る。サブＰＵの各々は、動き情報のフルセットを含んでいる。したがって、ＰＵは、動き情報の複数のセットを含んでいることがある。
【０２４８】
[0166]３Ｄ−ＨＥＶＣにおけるサブＰＵベース動きパラメータ継承（ＭＰＩ：motion parameter inheritance）：同様に、３Ｄ−ＨＥＶＣでは、ＭＰＩ候補も、サブＰＵレベルインタービュー動き予測と同様の方法で拡張され得る。たとえば、現在深度ＰＵが、複数のＰＵを含んでいるコロケートされた領域を有する場合、現在深度ＰＵはサブＰＵに分離され得、各々が動き情報の異なるセットを有し得る。この方法は、サブＰＵ  ＭＰＩと呼ばれる。すなわち、対応するサブＰＵ１６８Ａ〜１６８Ｄの動きベクトル１７２Ａ〜１７２Ｄは、図７に示されているように、動きベクトル１７０Ａ〜１７０Ｄとして、サブＰＵ１６６Ａ〜１６６Ｄによって継承され得る。
【０２４９】
[0167]２ＤビデオコーディングのためのサブＰＵ関係情報：その全体が参照により本明細書に組み込まれる、米国特許出願第６１／８８３，１１１号では、サブＰＵベース高度ＴＭＶＰ設計が記載されている。シングルレイヤコーディングでは、２ステージ高度時間動きベクトル予測設計が提案される。
【０２５０】
[0168]第１のステージは、参照ピクチャ中の現在予測ユニット（ＰＵ）の対応するブロックを識別するベクトルを導出することであり、第２のステージは、対応するブロックから複数のセット動き情報を抽出し、それらをＰＵのサブＰＵに割り当てることである。ＰＵの各サブＰＵは、したがって、別々に動き補償される。ＡＴＭＶＰの概念は以下のように要約される。
１．第１のステージにおけるベクトルは、現在ＰＵの空間および時間隣接ブロックから導出され得る。
２．このプロセスは、すべての他のマージ候補のうちの１つのマージ候補をアクティブにすることとして達成され得る。
【０２５１】
[0169]シングルレイヤコーディングおよびサブＰＵ時間動きベクトル予測に適用可能であるが、ＰＵまたはＣＵは、予測子の上で伝達されるべき動き改良データを有し得る。
【０２５２】
[0170]６１／８８３，１１１出願のいくつかの設計態様が、以下のようにハイライトされる。
１．ベクトル導出の第１のステージはまた、ただゼロベクトルによって簡略化され得る。
２．ベクトル導出の第１のステージは、動きベクトルとそれの関連するピクチャとを一緒に識別することを含み得る。関連するピクチャを選択し、さらに、動きベクトルが第１ステージベクトルであると決める、様々な方法が提案されている。
３．上記のプロセス中の動き情報が利用不可能である場合、「第１ステージベクトル」は、置換のために使用される。
４．時間ネイバーから識別された動きベクトルは、ＴＭＶＰにおける動きベクトルスケーリングと同様の方法で、現在サブＰＵのために使用されるようにスケーリングされなければならない。しかしながら、そのような動きベクトルがどの参照ピクチャにスケーリングされ得るかは、以下の方法のうちの１つを用いて設計され得る。
【０２５３】
ａ．そのピクチャは、現在ピクチャの固定参照インデックスによって識別される。
【０２５４】
ｂ．そのピクチャは、現在ピクチャの参照ピクチャリスト中でも利用可能である場合、対応する時間ネイバーの参照ピクチャであると識別される。
【０２５５】
ｃ．そのピクチャは、第１のステージにおいて、および動きベクトルがそこから捕捉された場所から識別された、コロケートされたピクチャであるように設定される。
【０２５６】
[0171]図８は、参照ピクチャからのサブＰＵ動き予測を示す概念図である。この例では、現在ピクチャ１８０は、現在ＰＵ１８４（たとえば、１つのＰＵ）を含む。この例では、動きベクトル１９２は、ＰＵ１８４に対する参照ピクチャ１８２のＰＵ１８６を識別する。ＰＵ１８６は、各々がそれぞれの動きベクトル１９０Ａ〜１９０Ｄを有する、サブＰＵ１８８Ａ〜１８８Ｄに区分される。したがって、現在ＰＵ１８４は、実際は別個のサブＰＵに区分されないが、この例では、現在ＰＵ１８４は、サブＰＵ１８８Ａ〜１８８Ｄからの動き情報を使用して予測され得る。特に、ビデオコーダは、それぞれの動きベクトル１９０Ａ〜１９０Ｄを使用して現在ＰＵ１８４のサブＰＵをコーディングし得る。しかしながら、ビデオコーダは、現在ＰＵ１８４が複数のサブＰＵにスプリットされることを示すシンタックス要素をコーディングする必要がない。このようにして、現在ＰＵ１８４は、現在ＰＵ１８４を複数のサブＰＵにスプリットするために使用されるシンタックス要素のシグナリングオーバーヘッドなしに、それぞれのサブＰＵ１８８Ａ〜１８８Ｄから継承される、複数の動きベクトル１９０Ａ〜１９０Ｄを使用して効果的に予測され得る。
【０２５７】
[0172]図９は、（ＴＭＶＰと同様の）ＡＴＭＶＰにおける関連するピクチャを示す概念図である。特に、図９は、現在ピクチャ２０４と、動きソースピクチャ２０６と、参照ピクチャ２００、２０２とを示す。より詳細には、現在ピクチャ２０４は現在ブロック２０８を含む。時間動きベクトル２１２は、現在ブロック２０８に対する動きソースピクチャ２０６の対応するブロック２１０を識別する。対応するブロック２１０は、今度は、動きベクトル２１４を含み、これは、参照ピクチャ２０２を参照し、現在ブロック２０８の少なくとも一部分、たとえば、現在ブロック２０８のサブＰＵのための高度時間動きベクトル予測子として働く。すなわち、動きベクトル２１４は、現在ブロック２０８のための候補動きベクトル予測子として追加され得る。選択された場合、現在ブロック２０８の少なくとも一部分は、参照ピクチャ２００を参照する、対応する動きベクトル、すなわち、動きベクトル２１６を使用して予測され得る。
【０２５８】
[0173]図１０は、本開示の技法による、符号化プロセス中にＡＴＭＶＰ候補を候補リストに追加するための例示的な方法を示すフローチャートである。図１０の方法は、ビデオエンコーダ２０（図１および図２）によって実行されるものとして説明される。ただし、他の符号化デバイスが、この方法または同様の方法を実行するように構成され得ることを理解されたい。
【０２５９】
[0174]最初に、ビデオエンコーダ２０は、符号化されるべきビデオデータのブロックを取得する（図１０に図示せず）。ブロックは、図４（ａ）および図４（ｂ）に示されたものなど、空間ネイバーのセットを含み得る。動き補償ユニット４４は、最初に左空間候補を候補リストに追加することによって、候補リストを構成し得る（２５０）。すなわち、図４（ａ）に関して、ＰＵ０  １０４Ａが、符号化されるべきブロックであると仮定すると、ビデオエンコーダ２０は、最初に空間ネイバー１０８Ａを候補リストに挿入し得る。
【０２６０】
[0175]次に、動き補償ユニット４４は、上空間候補を候補リストに追加する（２５２）。図４（ａ）に関して、ビデオエンコーダ２０は、空間ネイバー１０８Ｂを候補リストに挿入し得る。
【０２６１】
[0176]次に、動き補償ユニット４４は、右上空間候補を候補リストに追加する（２５４）。図４（ａ）に関して、ビデオエンコーダ２０は、空間ネイバー１０８Ｃを候補リストに挿入し得る。
【０２６２】
[0177]次に、動き補償ユニット４４は、左下空間候補を候補リストに追加する（２５６）。図４（ａ）に関して、ビデオエンコーダ２０は、空間ネイバー１０８Ｄを候補リストに挿入し得る。
【０２６３】
[0178]次に、動き補償ユニット４４は、高度時間動きベクトル予測子（ＡＴＭＶＰ：advanced temporal motion vector predictor）候補を候補リストに追加する（２５８）。上記で説明されたように、ＡＴＭＶＰ候補は、たとえば、図８および図９に示され、それらに関して説明されたように、時間ベクトルによって識別される対応するブロックを表し得る。さらに、いくつかの例では、動き補償ユニット４４は、最初に、ＡＴＭＶＰ候補が利用可能であるかどうかを決定し得る。たとえば、動き補償ユニットは、参照ピクチャ中の現在ブロックに対応するブロックを決定し、動き情報が、対応するブロックのために利用可能であるかどうかを決定し得る。動き補償ユニット４４は、次いで、動き情報が、対応するブロックのために利用可能であるとき、ＡＴＭＶＰ候補（すなわち、対応するブロック）が利用可能であると決定し得る。いくつかの例では、動き補償ユニット４４は、対応するブロック全体がイントラ予測を使用せずに予測されるとき、動き情報が対応するブロックのために利用可能であるが、対応するブロックの少なくとも一部がイントラ予測を使用して予測されるとき、動き情報が対応するブロックのために利用可能でないと決定し得る。
【０２６４】
[0179]同様に、いくつかの例では、動き補償ユニット４４は、２つの潜在的ＡＴＭＶＰ候補のうちのどちらが、候補リストに最終的に追加されるＡＴＭＶＰ候補として使用されるべきであるかを決定し得る。たとえば、動き補償ユニット４４は、第１の動きソースピクチャ、すなわち、第１の参照ピクチャ中の第１のＡＴＭＶＰ候補を識別する現在ブロックに対する第１の時間動きベクトルを形成し得る。動き情報が第１のＡＴＭＶＰ候補のために利用可能でない場合、動き補償ユニット４４は、動き情報が第２の異なるＡＴＭＶＰ候補のために利用可能であるかどうかを決定し得る。第２のＡＴＭＶＰ候補は、第２の異なる参照ピクチャを参照する同じ時間動きベクトル、同じ（すなわち、第１の）参照ピクチャを参照する異なる時間動きベクトル、または第２の異なる参照ピクチャを参照する異なる時間動きベクトルを使用して識別され得る。検査されるべき参照ピクチャは、上記で説明されたように、参照ピクチャリスト中の参照インデックスの昇順であり得る。同様に、異なる時間動きベクトルが使用される場合、時間動きベクトルは、現在ブロックへの隣接ブロックの時間ベクトルから所定の順序で選択され得る。
【０２６５】
[0180]さらに、動き補償ユニット４４は、動きベクトルが特定の参照ピクチャリストのためのＡＴＭＶＰ候補中のサブＰＵのために利用可能であるかどうかを決定し得る。利用可能である場合、動きベクトルは、その参照ピクチャリストのために利用可能であると見なされる。他の場合、動きベクトルは、その参照ピクチャリストのために利用不可能であると見なされる。代替的に、動きベクトルが他の参照ピクチャリストのために利用可能である場合、動き補償ユニット４４は、上記で説明されたように、第１の参照ピクチャリスト中のターゲット参照ピクチャを指すように動きベクトルをスケーリングすることによって、動き情報を変更し得る。
【０２６６】
[0181]ビデオエンコーダ２０は、次いで、候補リストから候補のうちの１つを選択する（２６０）。たとえば、ビデオエンコーダ２０は、候補リスト中の候補のいずれかまたはすべてを使用してブロックの符号化をテストし得る。追加または代替として、ビデオエンコーダ２０の動き推定ユニット４２は、動き探索を実行し、ブロックのための動きベクトルを決定し、高度動きベクトル予測（ＡＭＶＰ）モードを使用して当該動きベクトルを符号化すべきなのかマージモードを使用して当該動きベクトルを符号化すべきなのかを決定し得る。
図１０の例では、ビデオエンコーダ２０がマージモードを使用して動き情報を符号化することを選んだと仮定される。概して、ビデオエンコーダ２０（より詳細には、モード選択ユニット４０）は、候補リスト中の候補のうちのどれが最良のレートひずみ特性を生じるかを決定し、ブロックを予測するために使用されるようにその候補を選択し得る。
【０２６７】
[0182]したがって、ビデオエンコーダ２０は、選択された候補を使用して現在ブロックを予測する（２６２）。すなわち、動き補償ユニット４４は、選択された候補の動き情報によって識別される１つまたは複数の参照ブロックを取り出し得、いくつかの例では、動き情報がサブピクセル精度を有する場合、分数ピクセルについての値を補間し得る。
【０２６８】
[0183]ビデオエンコーダ２０は、次いで、現在ブロックのための残差ブロックを形成する（２６４）。上記で説明されたように、加算器５０は、現在ブロックと予測されたブロックとの間のピクセルごとの差分を計算し、残差ブロックを形成し得る。ビデオエンコーダ２０は、次いで、残差ブロックの残差情報を符号化し、マージインデックスを符号化する（２６６）。すなわち、変換処理ユニット５２は、残差情報を表す変換係数を生成するために、残差ブロックを変換し得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６は、次いで、量子化変換係数、ならびに、動き情報コーディングモード（この例では、マージモード）を表すシンタックス要素、および候補リストからの選択された候補を表すマージインデックスをエントロピー符号化し得る。
【０２６９】
[0184]このようにして、図１０の方法は、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることと、を含む方法の一例を表す。
【０２７０】
[0185]図１１は、本開示の技法による、復号プロセス中にＡＴＭＶＰ候補を候補リストに追加するための例示的な方法を示すフローチャートである。図１１の方法は、ビデオデコーダ３０（図１および図３）によって実行されるものとして説明される。ただし、他の復号デバイスが、この方法または同様の方法を実行するように構成され得ることを理解されたい。
【０２７１】
[0186]最初に、ビデオデコーダ３０は、符号化されるべきビデオデータのブロックを取得する（図１１に図示せず）。ブロックは、図４（ａ）および図４（ｂ）に示されたものなど、空間ネイバーのセットを含み得る。動き補償ユニット７２は、最初に左空間候補を候補リストに追加することによって、候補リストを構成し得る（２７０）。すなわち、図４（ａ）に関して、ＰＵ０  １０４Ａが、符号化されるべきブロックであると仮定すると、ビデオデコーダ３０は、最初に空間ネイバー１０８Ａを候補リストに挿入し得る。
【０２７２】
[0187]次に、動き補償ユニット７２は、上空間候補を候補リストに追加する（２７２）。図４（ａ）に関して、ビデオデコーダ３０は、空間ネイバー１０８Ｂを候補リストに挿入し得る。
【０２７３】
[0188]次に、動き補償ユニット７２は、右上空間候補を候補リストに追加する（２７４）。図４（ａ）に関して、ビデオデコーダ３０は、空間ネイバー１０８Ｃを候補リストに挿入し得る。
【０２７４】
[0189]次に、動き補償ユニット７２は、左下空間候補を候補リストに追加する（２７６）。図４（ａ）に関して、ビデオデコーダ３０は、空間ネイバー１０８Ｄを候補リストに挿入し得る。
【０２７５】
[0190]次に、動き補償ユニット７２は、高度時間動きベクトル予測子（ＡＴＭＶＰ）候補を候補リストに追加する（２７８）。上記で説明されたように、ＡＴＭＶＰ候補は、たとえば、図８および図９に示され、それらに関して説明されたように、時間ベクトルによって識別される対応するブロックを表し得る。さらに、いくつかの例では、動き補償ユニット７２は、最初に、ＡＴＭＶＰ候補が利用可能であるかどうかを決定し得る。たとえば、動き補償ユニットは、参照ピクチャ中の現在ブロックに対応するブロックを決定し、動き情報が、対応するブロックのために利用可能であるかどうかを決定し得る。動き補償ユニット７２は、次いで、動き情報が、対応するブロックのために利用可能であるとき、ＡＴＭＶＰ候補（すなわち、対応するブロック）が利用可能であると決定し得る。いくつかの例では、動き補償ユニット７２は、対応するブロック全体がイントラ予測を使用せずに予測されるとき、動き情報が対応するブロックのために利用可能であるが、対応するブロックの少なくとも一部がイントラ予測を使用して予測されるとき、動き情報が対応するブロックのために利用可能でないと決定し得る。
【０２７６】
[0191]同様に、いくつかの例では、動き補償ユニット７２は、２つの潜在的ＡＴＭＶＰ候補のうちのどちらが、候補リストに最終的に追加されるＡＴＭＶＰ候補として使用されるべきであるかを決定し得る。たとえば、動き補償ユニット７２は、第１の動きソースピクチャ、すなわち、第１の参照ピクチャ中の第１のＡＴＭＶＰ候補を識別する現在ブロックに対する第１の時間動きベクトルを形成し得る。動き情報が第１のＡＴＭＶＰ候補のために利用可能でない場合、動き補償ユニット７２は、動き情報が第２の異なるＡＴＭＶＰ候補のために利用可能であるかどうかを決定し得る。第２のＡＴＭＶＰ候補は、第２の異なる参照ピクチャを参照する同じ時間動きベクトル、同じ（すなわち、第１の）参照ピクチャを参照する異なる時間動きベクトル、または第２の異なる参照ピクチャを参照する異なる時間動きベクトルを使用して識別され得る。検査されるべき参照ピクチャは、上記で説明されたように、参照ピクチャリスト中の参照インデックスの昇順であり得る。同様に、異なる時間動きベクトルが使用される場合、時間動きベクトルは、現在ブロックへの隣接ブロックの時間ベクトルから所定の順序で選択され得る。
【０２７７】
[0192]さらに、動き補償ユニット７２は、動きベクトルが特定の参照ピクチャリストのためのＡＴＭＶＰ候補中のサブＰＵのために利用可能であるかどうかを決定し得る。利用可能である場合、動きベクトルは、その参照ピクチャリストのために利用可能であると見なされる。他の場合、動きベクトルは、その参照ピクチャリストのために利用不可能であると見なされる。代替的に、動きベクトルが他の参照ピクチャリストのために利用可能である場合、動き補償ユニット７２は、上記で説明されたように、第１の参照ピクチャリスト中のターゲット参照ピクチャを指すように動きベクトルをスケーリングすることによって、動き情報を変更し得る。
【０２７８】
[0193]ビデオデコーダ３０は、次いで、候補リストから候補のうちの１つを選択するためにマージインデックスを復号する（２８０）。より詳細には、ビデオデコーダ３０のエントロピー復号ユニット７０は、現在ブロックの動き情報がマージモードを使用して符号化されるかどうかを表す１つまたは複数のシンタックス要素、ならびに候補リストからの選択された候補を表すマージインデックスをエントロピー復号し得る。
【０２７９】
[0194]したがって、ビデオデコーダ３０は、選択された候補を使用して現在ブロックを予測する（２８２）。すなわち、動き補償ユニット７２は、選択された候補の動き情報によって識別される１つまたは複数の参照ブロックを取り出し得、いくつかの例では、動き情報がサブピクセル精度を有する場合、分数ピクセルについての値を補間し得る。
【０２８０】
[0195]ビデオデコーダ３０はまた、現在ブロックのための残差ブロックを復号する（２８４）。特に、エントロピー復号ユニット７０は、量子化変換係数を復号し得、逆量子化ユニット７６が、変換ブロックを形成するためにそれを逆量子化し得る。逆変換ユニット７８は、次いで、残差ブロックを再生するために変換ブロックを逆変換し得る。加算器８０は、次いで、特に、現在ブロックを再構成することによって、現在ブロックを復号するために、予測されたブロックを残差ブロックと組み合わせる（２８６）。
【０２８１】
[0196]このようにして、図１１の方法は、ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成すること、複数のマージ候補が、現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含む、と、マージ候補リスト中の複数のマージ候補のうちのマージ候補を識別するインデックスをマージ候補リストにコーディングすることと、識別されたマージ候補の動き情報を使用してビデオデータの現在ブロックをコーディングすることとを含む方法の一例を表す。
【０２８２】
[0197]上記例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。
【０２８３】
[0198]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２８４】
[0199]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２８５】
[0200]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０２８６】
[0201]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０２８７】
[0202]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングする方法であって、前記方法は、
ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成することと、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、
前記マージ候補リスト中の前記複数のマージ候補のうちの１つのマージ候補を識別するインデックスを前記マージ候補リストにコーディングすることと、
前記識別されたマージ候補の動き情報を使用して、ビデオデータの前記現在ブロックをコーディングすることと、
を備える、方法。
［Ｃ２］
前記マージ候補リストを形成することは、
前記現在ブロックについて、参照ピクチャ中の対応するブロックを決定することと、
動き情報が前記対応するブロックのために利用可能であるかどうかを決定することと、
動き情報が前記対応するブロックのために利用可能であると決定した後に、前記ＡＴＭＶＰ候補を含むように前記マージ候補リストを形成することと、
を備える、Ｃ１に記載の方法。
［Ｃ３］
動き情報が前記対応するブロックのために利用可能であるかどうかを決定することは、前記対応するブロックの一部分がイントラ予測されるかどうかを決定することを備える、Ｃ２に記載の方法。
［Ｃ４］
前記マージ候補リストを形成することは、参照ピクチャ中の前記現在ブロックに対する対応するブロックのための動き情報の代表的セットから前記ＡＴＭＶＰ候補を形成することを備える、Ｃ１に記載の方法。
［Ｃ５］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成することは、前記対応するブロックの所定の位置のための動き情報から前記ＡＴＭＶＰ候補を形成することを備える、Ｃ４に記載の方法。
［Ｃ６］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成することは、前記対応するブロックの所定のサブ予測ユニット（サブＰＵ）のための動き情報から前記ＡＴＭＶＰ候補を形成することを備える、Ｃ４に記載の方法。
［Ｃ７］
前記マージ候補リストを形成することは、
第１の動きソースピクチャ中の第１の高度時間動きベクトル予測（ＡＴＭＶＰ）候補を識別するために、前記現在ブロックに対して、第１の時間動きベクトルを使用することと、
前記第１のＡＴＭＶＰ候補が利用可能であるとき、前記ＡＴＭＰＶ候補として、前記マージ候補リストに前記第１のＡＴＭＶＰ候補を追加することと、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、
第２の動きソースピクチャ中の第２のＡＴＭＶＰ候補を識別するために、前記現在ブロックに対して、第２の時間動きベクトルを使用することと、
前記ＡＴＭＶＰ候補として、前記マージ候補リストに前記第２のＡＴＭＶＰ候補を追加することと、
を備える、Ｃ１に記載の方法。
［Ｃ８］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、同じ時間動きベクトルを備え、前記第１の動きソースピクチャと前記第２の動きソースピクチャとは、異なる動きソースピクチャを備える、Ｃ７に記載の方法。
［Ｃ９］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、異なる時間動きベクトルを備える、Ｃ７に記載の方法。
［Ｃ１０］
前記隣接ブロックの時間ベクトルから、所定の順序に従って、前記第１の時間動きベクトルおよび前記第２の時間動きベクトルを選択することをさらに備える、Ｃ７に記載の方法。
［Ｃ１１］
前記マージ候補リストを形成することは、
動きベクトルが、参照ピクチャリストＸのための前記ＡＴＭＶＰ候補のサブブロックのために利用可能であるかどうかを決定することと、
前記動きベクトルが利用可能であると決定した後に、前記候補リストに前記ＡＴＭＶＰ候補を追加することと、
を備える、Ｃ１に記載の方法。
［Ｃ１２］
前記動きベクトルが参照ピクチャリストＸのために利用可能でないが、参照ピクチャリストＸ以外の参照ピクチャリストを備える参照ピクチャリストＹのために利用可能であるとき、参照ピクチャリストＸのために利用可能であるように前記動きベクトルを設定し、参照ピクチャリストＸ中の参照ピクチャに前記動きベクトルをスケーリングする、Ｃ１１に記載の方法。
［Ｃ１３］
前記インデックスをコーディングすることは、前記インデックスを復号することを備え、前記現在ブロックをコーディングすることは、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックのための残差情報を復号することと、
前記復号された残差情報と前記予測ブロックとを使用して、前記現在ブロックを復号することと、
を備える、Ｃ１に記載の方法。
［Ｃ１４］
前記インデックスをコーディングすることは、前記インデックスを符号化することを備え、前記現在ブロックをコーディングすることは、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックと前記予測ブロックとの間の差分を表す残差ブロックを形成することと、
前記残差情報を符号化することと、
を備える、Ｃ１に記載の方法。
［Ｃ１５］
ビデオデータをコーディングするためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
ビデオコーダと、を備え、前記ビデオコーダは、
前記ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成することと、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、
前記マージ候補リスト中の前記複数のマージ候補のうちの１つのマージ候補を識別するインデックスを前記マージ候補リストにコーディングすることと、
前記識別されたマージ候補の動き情報を使用して、ビデオデータの前記現在ブロックをコーディングすることと、
を行うように構成された、デバイス。
［Ｃ１６］
前記マージ候補リストを形成するために、前記ビデオコーダは、
前記現在ブロックについて、参照ピクチャ中の対応するブロックを決定することと、
動き情報が前記対応するブロックのために利用可能であるかどうかを決定することと、
動き情報が前記対応するブロックのために利用可能であると決定した後に、前記ＡＴＭＶＰ候補を含むように前記マージ候補リストを形成することと、
を行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ１７］
動き情報が前記対応するブロックのために利用可能であるかどうかを決定するために、前記ビデオコーダは、前記対応するブロックの一部分がイントラ予測されるかどうかを決定するように構成された、Ｃ１６に記載のデバイス。
［Ｃ１８］
前記マージ候補リストを形成するために、前記ビデオコーダは、参照ピクチャ中の前記現在ブロックに対する対応するブロックのための動き情報の代表的セットから前記ＡＴＭＶＰ候補を形成するように構成された、Ｃ１５に記載のデバイス。
［Ｃ１９］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成するために、前記ビデオコーダは、前記対応するブロックの所定の位置のための動き情報から前記ＡＴＭＶＰ候補を形成するように構成された、Ｃ１８に記載のデバイス。
［Ｃ２０］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成するために、前記ビデオコーダは、前記対応するブロックの所定のサブ予測ユニット（サブＰＵ）のための動き情報から前記ＡＴＭＶＰ候補を形成するように構成された、Ｃ１８に記載のデバイス。
［Ｃ２１］
前記マージ候補リストを形成するために、前記ビデオコーダは、
第１の動きソースピクチャ中の第１の高度時間動きベクトル予測（ＡＴＭＶＰ）候補を識別するために、前記現在ブロックに対して、第１の時間動きベクトルを使用することと、
前記第１のＡＴＭＶＰ候補が利用可能であるとき、前記ＡＴＭＰＶ候補として、前記マージ候補リストに前記第１のＡＴＭＶＰ候補を追加することと、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、
第２の動きソースピクチャ中の第２のＡＴＭＶＰ候補を識別するために、前記現在ブロックに対して、第２の時間動きベクトルを使用することと、
前記ＡＴＭＶＰ候補として前記マージ候補リストに前記第２のＡＴＭＶＰ候補を追加することと、
を行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ２２］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、同じ時間動きベクトルを備え、前記第１の動きソースピクチャと前記第２の動きソースピクチャとは、異なる動きソースピクチャを備える、Ｃ２１に記載のデバイス。
［Ｃ２３］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、異なる時間動きベクトルを備える、Ｃ２１に記載のデバイス。
［Ｃ２４］
前記ビデオコーダは、前記隣接ブロックの時間ベクトルから、所定の順序に従って、前記第１の時間動きベクトルおよび前記第２の時間動きベクトルを選択するようにさらに構成された、Ｃ２１に記載のデバイス。
［Ｃ２５］
前記マージ候補リストを形成するために、前記ビデオコーダは、
動きベクトルが、参照ピクチャリストＸのための前記ＡＴＭＶＰ候補のサブブロックのために利用可能であるかどうかを決定することと、
前記動きベクトルが利用可能であると決定した後に、前記候補リストに前記ＡＴＭＶＰ候補を追加することと、
を行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ２６］
前記動きベクトルが参照ピクチャリストＸのために利用可能でないが、参照ピクチャリストＸ以外の参照ピクチャリストを備える参照ピクチャリストＹのために利用可能であるとき、前記ビデオコーダは、参照ピクチャリストＸのために利用可能であるように前記動きベクトルを設定することと、参照ピクチャリストＸ中の参照ピクチャに前記動きベクトルをスケーリングすることとを行うように構成された、Ｃ２５に記載のデバイス。
［Ｃ２７］
前記ビデオコーダは、前記インデックスを復号するように構成されたビデオデコーダを備え、前記現在ブロックをコーディングするために、前記ビデオデコーダは、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックのための残差情報を復号することと、
前記復号された残差情報と前記予測ブロックとを使用して、前記現在ブロックを復号することと、
を行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ２８］
前記ビデオコーダは、前記インデックスを符号化するように構成されたビデオエンコーダを備え、前記現在ブロックをコーディングするために、前記ビデオエンコーダは、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックと前記予測ブロックとの間の差分を表す残差ブロックを形成することと、
前記残差情報を符号化することと、
を行うように構成された、Ｃ１５に記載のデバイス。
［Ｃ２９］
前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス、
のうちの少なくとも１つを備える、Ｃ１５に記載のデバイス。
［Ｃ３０］
ビデオデータをコーディングするためのデバイスであって、前記デバイスは、
ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成するための手段と、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、
前記マージ候補リスト中の前記複数のマージ候補のうちの１つのマージ候補を識別するインデックスを前記マージ候補リストにコーディングするための手段と、
前記識別されたマージ候補の動き情報を使用して、ビデオデータの前記現在ブロックをコーディングするための手段と、
を備える、デバイス。
［Ｃ３１］
前記マージ候補リストを形成することは、
前記現在ブロックについて、参照ピクチャ中の対応するブロックを決定するための手段と、
動き情報が前記対応するブロックのために利用可能であるかどうかを決定するための手段と、
動き情報が前記対応するブロックのために利用可能であると決定した後に、前記ＡＴＭＶＰ候補を含むように前記マージ候補リストを形成するための手段と、
を備える、Ｃ３０に記載のデバイス。
［Ｃ３２］
動き情報が前記対応するブロックのために利用可能であるかどうかを決定するための前記手段は、前記対応するブロックの一部分がイントラ予測されるかどうかを決定するための手段を備える、Ｃ３１に記載のデバイス。
［Ｃ３３］
前記マージ候補リストを形成するための前記手段は、参照ピクチャ中の前記現在ブロックに対する対応するブロックのための動き情報の代表的セットから前記ＡＴＭＶＰ候補を形成するための手段を備える、Ｃ３０に記載のデバイス。
［Ｃ３４］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成するための前記手段は、前記対応するブロックの所定の位置のための動き情報から前記ＡＴＭＶＰ候補を形成するための手段を備える、Ｃ３３に記載のデバイス。
［Ｃ３５］
動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成するための前記手段は、前記対応するブロックの所定のサブ予測ユニット（サブＰＵ）のための動き情報から前記ＡＴＭＶＰ候補を形成するための手段を備える、Ｃ３３に記載のデバイス。
［Ｃ３６］
前記マージ候補リストを形成するための前記手段は、
第１の動きソースピクチャ中の第１の高度時間動きベクトル予測（ＡＴＭＶＰ）候補を識別するために、前記現在ブロックに対して、第１の時間動きベクトルを使用するための手段と、
前記第１のＡＴＭＶＰ候補が利用可能であるとき、前記ＡＴＭＰＶ候補として、前記マージ候補リストに前記第１のＡＴＭＶＰ候補を追加するための手段と、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、第２の動きソースピクチャ中の第２のＡＴＭＶＰ候補を識別するために、前記現在ブロックに対して、第２の時間動きベクトルを使用するための手段と、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、前記ＡＴＭＶＰ候補として前記マージ候補リストに前記第２のＡＴＭＶＰ候補を追加するための手段と、
を備える、Ｃ３０に記載のデバイス。
［Ｃ３７］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、同じ時間動きベクトルを備え、前記第１の動きソースピクチャと前記第２の動きソースピクチャとは、異なる動きソースピクチャを備える、Ｃ３６に記載のデバイス。
［Ｃ３８］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、異なる時間動きベクトルを備える、Ｃ３６に記載のデバイス。
［Ｃ３９］
前記隣接ブロックの時間ベクトルから、所定の順序に従って、前記第１の時間動きベクトルおよび前記第２の時間動きベクトルを選択するための手段をさらに備える、Ｃ３６に記載のデバイス。
［Ｃ４０］
前記マージ候補リストを形成するための前記手段は、
動きベクトルが、参照ピクチャリストＸのための前記ＡＴＭＶＰ候補のサブブロックのために利用可能であるかどうかを決定するための手段と、
前記動きベクトルが利用可能であると決定した後に、前記候補リストに前記ＡＴＭＶＰ候補を追加するための手段と、
を備える、Ｃ３０に記載のデバイス。
［Ｃ４１］
前記動きベクトルが参照ピクチャリストＸのために利用可能でないが、参照ピクチャリストＸ以外の参照ピクチャリストを備える参照ピクチャリストＹのために利用可能であるとき、参照ピクチャリストＸのために利用可能であるように前記動きベクトルを設定し、参照ピクチャリストＸ中の参照ピクチャに前記動きベクトルをスケーリングするための手段をさらに備える、Ｃ４０に記載のデバイス。
［Ｃ４２］
前記インデックスをコーディングするための前記手段は、前記インデックスを復号するための手段を備え、前記現在ブロックをコーディングするための前記手段は、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測するための手段と、
前記現在ブロックのための残差情報を復号するための手段と、
前記復号された残差情報と前記予測ブロックとを使用して、前記現在ブロックを復号するための手段と、
を備える、Ｃ３０に記載のデバイス。
［Ｃ４３］
前記インデックスをコーディングするための前記手段は、前記インデックスを符号化することを備え、前記現在ブロックをコーディングするための前記手段は、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測するための手段と、
前記現在ブロックと前記予測ブロックとの間の差分を表す残差ブロックを形成するための手段と、
前記残差情報を符号化するための手段と、
を備える、Ｃ３０に記載のデバイス。
［Ｃ４４］
実行されたとき、プロセッサに、
ビデオデータの現在ブロックについて、複数のマージ候補を含むマージ候補リストを形成することと、前記複数のマージ候補は、前記現在ブロックの４つの隣接ブロックからの４つの空間隣接候補と、前記４つの空間隣接候補の直後に、高度時間動きベクトル予測（ＡＴＭＶＰ）候補とを含み、
前記マージ候補リスト中の前記複数のマージ候補のうちの１つのマージ候補を識別するインデックスを前記マージ候補リストにコーディングすることと、
前記識別されたマージ候補の動き情報を使用して、ビデオデータの前記現在ブロックをコーディングすることと、
を行わせる命令を記憶したコンピュータ可読記憶媒体。
［Ｃ４５］
前記プロセッサに前記マージ候補リストを形成させる前記命令は、前記プロセッサに、
前記現在ブロックについて、参照ピクチャ中の対応するブロックを決定することと、
動き情報が前記対応するブロックのために利用可能であるかどうかを決定することと、
動き情報が前記対応するブロックのために利用可能であると決定した後に、前記ＡＴＭＶＰ候補を含むように前記マージ候補リストを形成することと、
を行わせる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ４６］
前記プロセッサに、動き情報が前記対応するブロックのために利用可能であるかどうかを決定させる前記命令は、前記プロセッサに、前記対応するブロックの一部分がイントラ予測されるかどうかを決定させる命令を備える、Ｃ４５に記載のコンピュータ可読記憶媒体。
［Ｃ４７］
前記プロセッサに前記マージ候補リストを形成させる前記命令は、前記プロセッサに、参照ピクチャ中の前記現在ブロックに対する対応するブロックのための動き情報の代表的セットから前記ＡＴＭＶＰ候補を形成させる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ４８］
前記プロセッサに、動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成させる前記命令は、前記プロセッサに、前記対応するブロックの所定の位置のための動き情報から前記ＡＴＭＶＰ候補を形成させる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
［Ｃ４９］
前記プロセッサに、動き情報の前記代表的セットから前記ＡＴＭＶＰ候補を形成させる前記命令は、前記プロセッサに、前記対応するブロックの所定のサブ予測ユニット（サブＰＵ）のための動き情報から前記ＡＴＭＶＰ候補を形成させる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
［Ｃ５０］
前記プロセッサに前記マージ候補リストを形成させる前記命令は、前記プロセッサに、
第１の動きソースピクチャ中の第１の高度時間動きベクトル予測（ＡＴＭＶＰ）候補を識別するために、前記現在ブロックに対して、第１の時間動きベクトルを使用することと、
前記第１のＡＴＭＶＰ候補が利用可能であるとき、前記ＡＴＭＰＶ候補として、前記マージ候補リストに前記第１のＡＴＭＶＰ候補を追加することと、
前記第１のＡＴＭＶＰ候補が利用可能でないとき、
第２の動きソースピクチャ中の第２のＡＴＭＶＰ候補を識別するために、前記現在ブロックに対して、第２の時間動きベクトルを使用することと、
前記ＡＴＭＶＰ候補として、前記マージ候補リストに前記第２のＡＴＭＶＰ候補を追加することと、
を行わせる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ５１］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、同じ時間動きベクトルを備え、前記第１の動きソースピクチャと前記第２の動きソースピクチャとは、異なる動きソースピクチャを備える、Ｃ５０に記載のコンピュータ可読記憶媒体。
［Ｃ５２］
前記第１の時間動きベクトルと前記第２の時間動きベクトルとは、異なる時間動きベクトルを備える、Ｃ５０に記載のコンピュータ可読記憶媒体。
［Ｃ５３］
前記プロセッサに、前記隣接ブロックの時間ベクトルから、所定の順序に従って、前記第１の時間動きベクトルおよび前記第２の時間動きベクトルを選択させる命令をさらに備える、Ｃ５０に記載のコンピュータ可読記憶媒体。
［Ｃ５４］
前記プロセッサに前記マージ候補リストを形成させる前記命令は、前記プロセッサに、
動きベクトルが、参照ピクチャリストＸのための前記ＡＴＭＶＰ候補のサブブロックのために利用可能であるかどうかを決定することと、
前記動きベクトルが利用可能であると決定した後に、前記候補リストに前記ＡＴＭＶＰ候補を追加することと、
を行わせる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ５５］
前記動きベクトルが参照ピクチャリストＸのために利用可能でないが、参照ピクチャリストＸ以外の参照ピクチャリストを備える参照ピクチャリストＹのために利用可能であるとき、前記命令は、前記プロセッサに、参照ピクチャリストＸのために利用可能であるように前記動きベクトルを設定させ、参照ピクチャリストＸ中の参照ピクチャに前記動きベクトルをスケーリングさせる、Ｃ５４に記載のコンピュータ可読記憶媒体。
［Ｃ５６］
前記プロセッサに前記インデックスをコーディングさせる前記命令は、前記プロセッサに前記インデックスを復号させる命令を備え、前記プロセッサに前記現在ブロックをコーディングさせる前記命令は、前記プロセッサに、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックのための残差情報を復号することと、
前記復号された残差情報と前記予測ブロックとを使用して、前記現在ブロックを復号することと、
を行わせる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ５７］
前記プロセッサに前記インデックスをコーディングさせる前記命令は、前記インデックスを符号化することを備え、前記プロセッサに前記現在ブロックをコーディングさせる前記命令は、前記プロセッサに、
予測ブロックを形成するために、前記識別されたマージ候補の前記動き情報を使用して前記現在ブロックを予測することと、
前記現在ブロックと前記予測ブロックとの間の差分を表す残差ブロックを形成することと、
前記残差情報を符号化することと、
を行わせる命令を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
【図１】
0006636530.tif 000006
【図２】
0006636530.tif 000007
【図３】
0006636530.tif 000008
【図４（ａ）】
0006636530.tif 000009
【図４（ｂ）】
0006636530.tif 000010
【図５】
0006636530.tif 000011
【図６】
0006636530.tif 000012
【図７】
0006636530.tif 000013
【図８】
0006636530.tif 000014
【図９】
0006636530.tif 000015
【図１０】
0006636530.tif 000016
【図１１】
0006636530.tif 000017