(57)【特許請求の範囲】
【請求項１】
ビデオデータをコード化するように構成された装置であって、前記装置は、
複数の動きベクトル候補を記憶するように構成されたメモリと、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
前記メモリと通信しているプロセッサと
を備え、前記プロセッサは、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づいており、ここにおいて、前記複数の動きベクトル候補の各々の前記優先度レベルは、（ｉ）前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する頻度と、ここにおいて、より高い頻度がより高い優先度レベルに対応する、（ｉｉ）より大きいＰＵに対応する動きベクトル候補がより大きい重み付け係数に関連付けられるように各ＰＵのサイズに基づく重み付け係数と、に基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
を行うように構成された、装置。
【請求項２】
前記複数のＰＵの各々の前記重み付け係数が各ＰＵの前記サイズに正比例する、請求項１に記載の装置。
【請求項３】
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの１つを備え、
各空間動きベクトル候補の位置が前記ＭＥＲの外側に配置された、
請求項１に記載の装置。
【請求項４】
各空間動きベクトル候補の前記優先度レベルが、対応するＰＵに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、請求項３に記載の装置。
【請求項５】
ＰＵのための左位置候補に対応する空間動きベクトル候補が、ＰＵのための左上位置候補よりも高い位置重み付け係数を有する、請求項４に記載の装置。
【請求項６】
前記プロセッサは、
前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
前記マージ候補リストから冗長動きベクトル候補を除外することと
を行うように更に構成された、請求項１に記載の装置。
【請求項７】
前記プロセッサは、動き冗長性検査に基づいて、前記動きベクトル候補が冗長であるかどうかを決定するように更に構成された、請求項６に記載の装置。
【請求項８】
前記動きベクトル候補が候補ＰＵ内に含まれており、
前記プロセッサは、前記候補ＰＵのステータスに基づいて、前記動きベクトル候補が冗長であると決定するように更に構成された、
請求項６に記載の装置。
【請求項９】
前記プロセッサは、前記動きベクトル候補が、前記複数の動きベクトル候補の選択された前記サブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、前記動きベクトル候補が冗長であると決定するように更に構成された、請求項６に記載の装置。
【請求項１０】
前記装置がエンコーダを備える、請求項１に記載の装置。
【請求項１１】
前記装置がデコーダを備える、請求項１に記載の装置。
【請求項１２】
ビデオデータを符号化する方法であって、前記方法は、
複数の動きベクトル候補に関連付けられた情報を決定することと、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づいており、ここにおいて、前記複数の動きベクトル候補の各々の前記優先度レベルは、（ｉ）前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する頻度と、（ｉｉ）より大きいＰＵに対応する動きベクトル候補がより大きい重み付け係数に関連付けられるように各ＰＵのサイズに基づく重み付け係数と、に基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
を備える、方法。
【請求項１３】
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの１つを備え、
各空間動きベクトル候補の位置が前記ＭＥＲの外側に配置された、
請求項１２に記載の方法。
【請求項１４】
各空間動きベクトル候補の前記優先度レベルが、対応するＰＵに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、請求項１３に記載の方法。
【請求項１５】
実行されたとき、装置に、請求項１２−１４に記載の方法を実行させるコードを記憶した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、一般に、ビデオ情報を符号化及び復号するための技法に関し、詳細には、スケーラブルビデオコード化に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，先進的ビデオコード化（ＡＶＣ：Advanced Video Coding）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００３】
[0003]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間（イントラピクチャ）予測及び／又は時間（インターピクチャ）予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライスが、ツリーブロック、コード化単位（ＣＵ：coding unit）及び／又はコード化ノードと呼ばれることもあるビデオブロックに区分化され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測、又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００４】
[0004]空間予測又は時間予測は、コード化されるべきブロックのための予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコード化が適用され得る。
【発明の概要】
【０００５】
[0005]本開示の幾つかの態様に従って構成されたビデオコード化機器は、複数の動きベクトル候補を記憶するように構成されたメモリを含む。各動きベクトル候補は、並列動き推定領域（ＭＥＲ：motion estimation region）中で区分化された複数の予測単位（ＰＵ：prediction unit）のうちの少なくとも１つに対応することができる。ビデオコード化機器は、メモリと通信しているプロセッサをも含む。プロセッサは、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択するように構成される。選択は、各動きベクトル候補の優先度レベルに基づき得る。プロセッサは、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成するように更に構成され得る。
【０００６】
[0006]別の実施形態では、ビデオデータを復号する方法は、符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、マージ候補リスト中に含めるべき動きベクトル候補を選択することと、マージ候補リストを生成することとを含む。シンタックス要素は、複数の動きベクトル候補に関連付けられた情報を含むことができる。各動きベクトル候補は、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応することができる。マージ候補リストを選択することは、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することを含む。選択は、複数の動きベクトル候補の各々の優先度レベルに基づき得る。マージ候補リストは、複数の動きベクトル候補の選択されたサブセットを含むように生成される。
【０００７】
[0007]別の実施形態では、ビデオデータを符号化する方法は、複数の動きベクトル候補に関連付けられた情報を決定することと、複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成することとを含む。
【０００８】
[0008]別の実施形態では、ビデオコード化装置は、複数の動きベクトル候補に関連付けられた情報を決定するための手段と、複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択するための手段と、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成するための手段とを含む。
【０００９】
[0009]別の実施形態では、非一時的コンピュータ可読媒体は、実行されたとき、装置に、複数の動きベクトル候補に関連付けられた情報を受信することと、複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成することとを行わせる、その上に記憶されたコードを含む。
【００１０】
[0010]１つ又は複数の例の詳細が以下の添付の図面及び説明に記載されている。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１１】
【図１】[0011]例示的なビデオコード化システムを示すブロック図。
【図２】[0012]ビデオエンコーダの例示的な構成を示すブロック図。
【図３】[0013]ビデオデコーダの例示的な構成を示すブロック図。
【図４】[0014]コード化単位（ＣＵ）への最大コード化単位（ＬＣＵ：largest coding unit）の分解の一例を示す図。
【図５Ａ】[0015]予測単位（ＰＵ）へのＣＵの分解の例を示す図。
【図５Ｂ】予測単位（ＰＵ）へのＣＵの分解の例を示す図。
【図５Ｃ】予測単位（ＰＵ）へのＣＵの分解の例を示す図。
【図５Ｄ】予測単位（ＰＵ）へのＣＵの分解の例を示す図。
【図６】[0016]例示的な動きベクトル（ＭＶ：motion vector）候補位置を示すブロック図。
【図７Ａ】[0017]幾つかのＰＵのためのＭＶ候補位置を示す例示的なＣＵ分解を示す図。
【図７Ｂ】幾つかのＰＵのためのＭＶ候補位置を示す例示的なＣＵ分解を示す図。
【図７Ｃ】幾つかのＰＵのためのＭＶ候補位置を示す例示的なＣＵ分解を示す図。
【図８Ａ】[0018]幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図８Ｂ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図８Ｃ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図９Ａ】[0019]幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図９Ｂ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図９Ｃ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１０Ａ】[0020]幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１０Ｂ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１０Ｃ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１１Ａ】[0021]幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１１Ｂ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１１Ｃ】幾つかのＰＵのためのＭＶ候補位置を示す別の例示的なＣＵ分解を示す図。
【図１２】[0022]ＣＵ中で区分化された任意のＰＵに対応する各ＭＶ候補を示す３２×３２ＣＵの一例を示す図。
【図１３】[0023]動き推定領域（ＭＥＲ）中で区分化された任意のＰＵに対応する各時間又は外部空間ＭＶ候補を示す３２×３２ＭＥＲの一例を示す図。
【図１４】[0024]ＭＥＲ中で区分化された任意のＰＵに対応する各時間又は外部空間ＭＶ候補の例示的な重み付き頻度を示す３２×３２ＭＥＲの一例を示す図。
【図１５】[0025]ＭＥＲ中で区分化された任意のＰＵに対応する各時間又は外部空間ＭＶ候補の例示的な優先度レベルを示す３２×３２ＭＥＲの一例を示す図。
【図１６】[0026]非冗長ステータスに基づいて、マージ候補リスト中に含めるためのＭＶ候補を選択する例示的なプロセスを示すフローチャート。
【図１７】[0027]優先度レベルに基づいて、マージ候補リスト中に含めるためのＭＶ候補を選択する例示的なプロセスを示すフローチャート。
【発明を実施するための形態】
【００１２】
[0028]現在のＨＥＶＣマージモード設計は、極めて連続的であり、異なるコード化単位（ＣＵ）中の隣接予測単位（ＰＵ）の間の依存性をもたらす。ＨＥＶＣマージモード設計の連続的な性質は、動きベクトルが複数のＰＵについて並列に推定され得る、パイプラインアーキテクチャ（pipelined architecture）のためのエンコーダ側での動き推定（ＭＥ）に困難をもたらすことがある。スループット又は実装コストの考慮事項により、並列動き推定が必要とされ得る。しかしながら、並列動き推定は著しいコード化効率損失をもたらすこともある。並列ＭＥＲ内の所与のＰＵ、例えば３２×３２並列ＭＥＲ内の８×８ＰＵの場合、それの隣接動きデータの全てが、並列処理の結果としてマージ候補リスト中に含めるために利用可能であるとは限らないので、損失が引き起こされ得る。
【００１３】
[0029]異なるＰＵのための動き推定が並列に行われるエリアは動き推定領域（ＭＥＲ）とも呼ばれる。ＨＥＶＣは、高レベルシンタックス要素が並列マージモードを信号伝達する（signal）ことを可能にする。並列マージモードでは、ＬＣＵが幾つかのＭＥＲに分割され得る。この場合、異なるＭＥＲに属する外部隣接動きベクトル（ＭＶ）のみがＭＥＲ中のＰＵためのマージ候補リスト中に含められることを可能にされる。本明細書で説明する、マージ候補リスト中に含めるためのＭＶ候補の改善された選択は、コード化効率を改善し、計算複雑さを低減することができる。
【００１４】
[0030]ビデオコード化規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、それのスケーラブルビデオコード化（ＳＶＣ）及びマルチビュービデオコード化（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。更に、新しいビデオコード化規格、即ち、高効率ビデオコード化（ＨＥＶＣ）が、ＩＴＵ−Ｔビデオコード化エキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコード化（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発されている。「ＨＥＶＣワーキングドラフト６」と呼ばれるＨＥＶＣ規格のドラフトは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／８＿Ｓａｎ％２０Ｊｏｓｅ／ｗｇ１１／ＪＣＴＶＣ−Ｈ１００３−ｖ６．ｚｉｐからダウンロード可能である。ＨＥＶＣワーキングドラフト６についての完全引用は、文書ＪＣＴＶＣ−Ｈ１００３、Ｂｒｏｓｓら、「High Efficiency Video Coding (HEVC) Text Specification Draft 6」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコード化（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第７回会合：ジュネーブ、スイス、２０１１年１１月２１日〜２０１１年１１月３０日である。ＨＥＶＣ規格の別の後のドラフトは、２０１２年６月７日現在、ｈｔｔｐ：／／ｗｇ１１．ｓｃ２９．ｏｒｇ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝５８８５／ＪＣＴＶＣ−Ｉ１００３−ｖ２から入手可能である。「ＨＥＶＣワーキングドラフト７」と呼ばれるＨＥＶＣ規格の別の後のドラフトは、２０１２年６月７日現在、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／９＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｉ１００３−ｖ３．ｚｉｐからダウンロード可能である。ＨＥＶＣワーキングドラフト７についての完全引用は、文書ＨＣＴＶＣ−Ｉ１００３、Ｂｒｏｓｓら、「High Efficiency Video Coding (HEVC) Text Specification Draft 7」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコード化（ＪＣＴ−ＶＣ）、第９回会合：ジュネーブ、スイス、２０１２年４月２７日〜２０１２年５月７日である。ＨＥＶＣ  ＷＤ８（ワーキングドラフト８）と呼ばれるＨＥＶＣ規格の別の後のドラフトは、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１０＿Ｓｔｏｃｋｈｏｌｍ／ｗｇ１１／ＪＣＴＶＣ−Ｊ１００３−ｖ８．ｚｉｐから入手可能である。これらの参考文献の各々は、その全体が参照により組み込まれる。
【００１５】
[0031]添付の図面を参照しながら新規のシステム、装置、及び方法の様々な態様について以下でより十分に説明する。但し、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造又は機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、及び方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、又は方法は実施され得る。更に、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて又はそれらの態様以外に、他の構造、機能、又は構造及び機能を使用して実施されるそのような装置又は方法をカバーするものとする。本明細書で開示する任意の態様が請求項の１つ又は複数の要素によって実施され得ることを理解されたい。
【００１６】
[0032]本明細書では特定の態様について説明するが、これらの態様の多くの変形及び置換は本開示の範囲内に入る。好適な態様の幾つかの利益及び利点について説明するが、本開示の範囲は特定の利益、使用、又は目的に限定されるものではない。むしろ、本開示の態様は、例えば、異なるワイヤレス技術、システム構成、ネットワーク、及び伝送プロトコルを用いて使用され得る、異なるビデオフィルタ及びビデオコーダに広く適用可能であるものとし、それらのうちの幾つかを例として、図において、及び特定の態様についての以下の説明において示す。発明を実施するための形態及び図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲及びそれの均等物によって定義される。
ビデオコード化システム
[0033]図１は、本開示で説明する技法を利用し得る例示的なビデオコード化システム１０を示すブロック図である。本開示では、「ビデオコード化」という用語は、ビデオ符号化とビデオ復号とを指すことがある。図１に示されているように、ビデオコード化システム１０は発信源機器１２と宛先機器１４とを含む。発信源機器１２は符号化ビデオデータを宛先機器１４に与える。宛先機器１４は符号化ビデオデータを後で復号し得る。発信源機器１２及び宛先機器１４は、デスクトップコンピュータ、ノートブック（即ち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、電話ハンドセット、「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器、又はビデオデータを符号化及び復号することが可能なコンピュータ機器のタイプを含む、広範囲にわたる機器のいずれかを備え得る。
【００１７】
[0034]宛先機器１４は、通信チャネル１６を介して符号化ビデオデータを受信し得る。通信チャネル１６は、発信源機器１２から宛先機器１４に符号化ビデオデータを移動することが可能な媒体又は機器を備え得る。一例では、通信チャネル１６は、発信源機器１２が符号化ビデオデータを宛先機器１４にリアルタイムで直接送信することを可能にする通信媒体を備え得る。発信源機器１２又は別の機器は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つ又は複数の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、発信源機器１２から宛先機器１４への符号化ビデオデータの通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００１８】
[0035]幾つかの例では、発信源機器１２及び宛先機器１４は、ワイヤレス通信のために装備され得る。但し、本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。むしろ、本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、発信源機器１２及び宛先機器１４は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び／又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【００１９】
[0036]更に、幾つかの例では、発信源機器１２は符号化ビデオデータを記憶システム３４に出力し得る。同様に、宛先機器１４は、記憶システム３４に記憶された符号化ビデオデータにアクセスし得る。様々な例では、記憶システム３４は、様々な分散した又はローカルでアクセスされるデータ記憶媒体を含み得る。例示的なタイプのデータ記憶媒体は、限定はしないが、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、ソリッドステートメモリユニット、揮発性又は不揮発性メモリ、又は符号化ビデオデータを記憶するのに好適な他のデジタル記憶媒体を含む。
【００２０】
[0037]幾つかの例では、記憶システム３４は、発信源機器１２によって生成された符号化ビデオを保持し得るファイルサーバ又は別の中間記憶装置を備え得る。宛先機器１４は、ストリーミング又はダウンロードを介して、記憶システム３４から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先機器１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）装置、又はローカルディスクドライブがある。宛先機器１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（例えば、デジタル加入者線（ＤＳＬ）、ケーブルモデムなど）、又はその両方の組合せを含み得る。記憶システム３４からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
【００２１】
[0038]図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。幾つかの例では、出力インターフェース２２は変調器及び／又は送信機をも含み得る。ビデオ発信源１８はビデオエンコーダ２０にビデオデータを与える。様々な例では、ビデオ発信源１８は、ビデオデータを与えるための様々なタイプの機器及び／又はシステムを備え得る。例えば、ビデオ発信源１８は、ビデオカメラなどの撮像装置を備え得る。別の例では、ビデオ発信源１８は、以前に撮影されたビデオを含んでいるビデオアーカイブを備え得る。また別の例では、ビデオ発信源１８は、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを備え得る。また別の例では、ビデオ発信源１８は、コンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムを備え得る。
【００２２】
[0039]以下で詳細に説明するように、ビデオエンコーダ２０は、ビデオ発信源１８によって与えられたビデオデータを符号化し得る。幾つかの例では、発信源機器１２は、出力インターフェース２２を介して宛先機器１４に符号化ビデオデータを直接送信し得る。更に、幾つかの例では、記憶システム３４は、宛先機器１４又は他の機器による後のアクセスために符号化ビデオデータを記憶し得る。
【００２３】
[0040]本開示では、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別の機器に「信号伝達」することに言及することがある。但し、ビデオエンコーダ２０は、幾つかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報を信号伝達し得ることを理解されたい。即ち、ビデオエンコーダ２０は、幾つかのシンタックス要素をビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「信号伝達」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され、復号されるより前に、符号化され、記憶され（例えば、記憶システム３４に記憶され）得る。従って、「信号伝達（signaling）」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス又は他のデータの通信を指すことがある。そのような通信は、リアルタイム又はほぼリアルタイムに行われ得る。代替として、そのような通信は、符号化時にシンタックス要素を媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に、復号機器によって取り出され得る。
【００２４】
[0041]図１の例では、宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。幾つかの例では、入力インターフェース２８は受信機及び／又はモデムを含み得る。宛先機器１４の入力インターフェース２８は、通信チャネル１６及び／又は記憶システム３４から符号化ビデオデータを受信する。ビデオデコーダ３０は、入力インターフェース２８によって受信された符号化ビデオデータを復号する。宛先機器１４は、復号ビデオデータを、表示装置３２上での表示のためにレンダリングし得る。
【００２５】
[0042]表示装置３２は、宛先機器１４と一体化され得るか又はその外部にあり得る。幾つかの例では、宛先機器１４は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。様々な例では、表示装置３２は様々なタイプの表示装置を備え得る。例えば、表示装置３２は、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置を備え得る。
【００２６】
[0043]図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２７】
[0044]ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために１つ又は複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００２８】
[0045]ビデオエンコーダ２０及びビデオデコーダ３０は、現在開発中の高効率ビデオコード化（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，先進的ビデオコード化（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。規格に対する例示的な拡張は、Ｈ．２６４／ＡＶＣ規格に対するスケーラブルビデオコード化（ＳＶＣ）拡張とマルチビュービデオコード化（ＭＶＣ）拡張とを含む。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。本開示の技法は、いかなる特定のコード化規格にも限定されない。
【００２９】
[0046]上記で手短に述べたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つ又は複数のピクチャのシーケンスを備え得る。ピクチャの各々は静止画像である。幾つかの事例では、ピクチャは「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットシーケンスを含む。コード化ピクチャはピクチャのコード化表現である。
【００３０】
[0047]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中のピクチャのシーケンスに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャのシーケンスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。更に、ビデオエンコーダ２０は、ピクチャのシーケンスに適用可能なパラメータを含んでいるシーケンスパラメータセットを生成し得る。更に、ビデオエンコーダ２０は、全体としてピクチャに適用可能なパラメータを含んでいるピクチャパラメータセット（ＰＰＳ：picture parameter set）を生成し得る。幾つかの例では、ビデオエンコーダ２０は適応パラメータセット（ＡＰＳ：adaptation parameter set）を生成し得る。ＡＰＳは、全体としてピクチャに適用可能なパラメータを含んでいることがある。
【００３１】
[0048]コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを（「ブロック」と呼ばれることがある）１つ又は複数のツリーブロックに区分し得る。ツリーブロックはビデオデータの２次元（２Ｄ）ブロックである。幾つかの事例では、ツリーブロックは最大コード化単位（ＬＣＵ）と呼ばれることもある。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、１つ又は複数のコード化単位（ＣＵ）を含み得る。
【００３２】
[0049]幾つかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のＣＵを含み得る。幾つかの事例では、スライスは整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。幾つかの例では、ビデオエンコーダ２０は、スライスのバイト単位でのサイズに従って、又はスライス中のツリーブロックの数に従ってスライスを符号化し得る。
【００３３】
[0050]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対する符号化演算は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。コード化スライスはスライスヘッダとスライスデータとを含み得る。スライスデータは、コード化順序で、一連の連続するコード化単位を含み得る。スライスヘッダは、スライスの最初の又は全てのツリーブロックに関するデータ要素を含んでいることがある。
【００３４】
[0051]スライスに対するコード化スライスデータを生成するために、ビデオエンコーダ２０は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ２０がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ２０はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
【００３５】
[0052]コード化ツリーブロックを生成するために、ビデオエンコーダ２０は、ツリーブロックを徐々により小さいＣＵに分割するために、ツリーブロックに対して４分木区分を再帰的に実行し得る。例えば、ビデオエンコーダ２０は、ツリーブロックを４つの等しいサイズのサブＣＵに区分し、サブＣＵのうちの１つ又は複数を、４つの等しいサイズのサブサブＣＵに区分し得、以下同様である。ビットストリーム中の１つ又は複数のシンタックス要素は、ビデオエンコーダ２０がツリーブロックを区分し得る最大の回数を示し得る。ＣＵは形状が正方形であり得る。
【００３６】
[0053]ビデオエンコーダ２０は、ツリーブロック中の区分化されていない各ＣＵに対して符号化演算を実行し得る。区分化されていないＣＵに対して符号化演算を実行することの一部として、ビデオエンコーダ２０はＣＵのための予測データを生成し得る。ビデオエンコーダ２０は、ＣＵのための予測データを生成するためにイントラ予測又はインター予測を使用し得る。ビデオエンコーダ２０が、ＣＵのための予測データを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＣＵを含んでいるピクチャの復号サンプルからＣＵのための予測データを導出する。ビデオエンコーダ２０が、ＣＵのための予測データを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＣＵを含んでいるピクチャ以外の参照ピクチャの復号値からＣＵのための予測データを導出する。
【００３７】
[0054]ビデオエンコーダ２０がＣＵのための予測データを生成した後、ビデオエンコーダ２０はＣＵための残差データを計算し得る。ＣＵのための残差データは、ＣＵのための予測データ中の画素値とＣＵの元の画素値との間の差分を示し得る。
【００３８】
[0055]ツリーブロックの区分化されていない各ＣＵは１つ又は複数の変換単位（ＴＵ：transform unit）を有し得る。ＣＵの各ＴＵは、ＣＵの残差データの異なる部分に関連付けられ得る。ビデオエンコーダ２０は、ＣＵの各ＴＵに対して変換演算を実行し得る。ビデオエンコーダ２０がＴＵに対して変換演算を実行するとき、ビデオエンコーダ２０は、少なくとも部分的に、ＴＵに関連付けられた残差データに変換を適用することによって係数ブロックを生成し得る。
【００３９】
[0056]ビデオエンコーダ２０は、係数ブロック中の係数を量子化し、係数ブロックに対してエントロピー符号化演算を実行し得る。ビデオエンコーダ２０が係数ブロックに対してエントロピー符号化を実行した後、ビデオエンコーダ２０は、ビデオデータのためのビットストリーム中に、エントロピー符号化された係数ブロックを表すデータを含め得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスであり得る。
【００４０】
[0057]ビデオデコーダ３０が符号化ビットストリームを受信したとき、ビデオデコーダ３０は、ビデオエンコーダ２０によって実行される符号化演算とは概して逆である復号演算を実行する。例えば、ビデオデコーダ３０は、ピクチャの各スライスに対して復号演算を実行し得る。ビデオデコーダ３０がピクチャのスライスに対して復号演算を実行したとき、ビデオデコーダ３０は、スライス中のツリーブロックに対して復号演算を実行し得る。ビデオデコーダ３０がツリーブロックに対して復号演算を完了したとき、ビデオデコーダ３０はツリーブロックための画素値を復号している。ビデオデコーダ３０がスライスの各ツリーブロックのための画素値を復号したとき、ビデオデコーダ３０はスライスのための画素値を再構成している。
【００４１】
[0058]マージモードは、隣接ビデオブロックの動き情報（動きベクトル、参照フレームインデックス、予測方向、又は他の情報など）が、コード化されている現在ビデオブロックについて継承される１つ又は複数のビデオコード化モードを指す。現在ビデオブロックがそれの動き情報をそこから継承する候補隣接体のリスト（例えば、現在ブロックに対する、上、右上、左、左下ブロック、又は時間的に隣接するフレームからのコロケート（同一位置配置）ブロック（以下でより詳細に説明する、時間動きベクトル予測子、又はＴＭＶＰなど）を識別するために、インデックス値が使用され得る。これらの候補は、マージ候補リストと呼ばれることがある、リストに記憶され得る。マージ候補リストは、最初に、所定のサイズを有することができる。しかしながら、リストサイズは、（例えば、ビデオが、特定のマージ候補リストサイズを使用するようにコード化される場合）プルーニング（例えば、冗長又は反復リストエントリを除去すること）の結果として、又はトランケーションによって、低減され得る。リストサイズが低減され、候補が削除されるとき（又はより多くの候補がＴＭＶＰの前に挿入される状況では）、ＴＭＶＰは、リストから除去されるか、又は場合によってはリストに追加されないことがある。しかしながら、マージモードが並列動き推定領域にわたって行われるとき、マージ候補リストを生成するために、以下でより詳細に説明する技法などの様々な技法が利用され得る。例えば、これらの技法は、図２に示されているマージ／ＭＶＰリスト生成モジュール１２１によって実行され得る。そのような技法の実施形態について、図４〜図１７に関して以下でより詳細に説明する。
【００４２】
[0059]スキップモードはあるタイプのマージモード（又はマージモードと同様のモード）を備え得る。スキップモードでは、動き情報は継承されるが、残差情報はコード化されない。残差情報は、概して、コード化されるべきブロックと、動き情報がそこから継承されるブロックとの間の画素差分を示す画素差分情報を指すことがある。直接モードは別のタイプのマージモード（又はマージモードと同様のモード）であり得る。直接モードは、動き情報が継承されるという点でスキップモードと同様であり得るが、直接モードでは、ビデオブロックは、残差情報を含むようにコード化される。「マージモード」という句は、本明細書では、スキップモード、直接モード、又はマージモードと呼ばれることがある、これらのモードのうちのいずれか１つを指すために使用される。
【００４３】
[0060]隣接ビデオブロックの動きベクトルが現在ビデオブロックのコード化において使用される別の場合は、所謂動きベクトル予測又は高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）である。これらの場合、動きベクトルの予測コード化は、動きベクトルを通信するために必要とされるデータの量を低減するために適用される。例えば、動きベクトル自体を符号化し、通信するのではなく、ビデオエンコーダ２０は、知られている（又は知り得る）動きベクトルに対する動きベクトル差分（ＭＶＤ：motion vector difference）を符号化し、通信する。Ｈ．２６４／ＡＶＣでは、現在動きベクトルを定義するためにＭＶＤとともに使用され得る、知られている動きベクトルは、隣接ブロックに関連付けられた動きベクトルの中央値として導出される、所謂動きベクトル予測子（ＭＶＰ：motion vector predictor）によって定義され得る。しかしながら、適応動きベクトル予測（ＡＭＶＰ：adaptive motion vector prediction）などのより高度なＭＶＰ技法は、ビデオエンコーダ２０が、ＭＶＰをそこから定義すべき隣接体を選択することを可能にし得る。従って、マージモードの使用は、コード化されるべきブロックと他のブロックとの間の画素差分を示す残差情報を用いる又は用いない、現在ブロックをコード化するための別のブロックからの動き情報の使用を指すことがある。ＡＭＶＰの使用は、ＭＶＰとコード化されるべきブロックの実際のＭＶとの間の差分を示すためのＭＶＤ値を使用した、別のブロックからの動きベクトル情報の使用を指すことがある。動きベクトル情報を取得するための候補ブロックの選択のための技法は、マージモードとＡＭＶＰとについて同じ又は同様であり得る。一般的なバックグラウンドとして、たいていのビデオコード化システムでは、データ圧縮を達成するために、ビデオシーケンス中の時間冗長性を低減するために動き推定及び動き補償が使用される。この場合、動きベクトルは、コード化されている現在ビデオブロックの値を予測するために使用され得る、例えば、別のビデオフレーム又はスライスからのビデオデータの予測ブロックを識別するように生成され得る。残差データのブロックを生成するために、予測ビデオブロックの値が現在ビデオブロックの値から減算される。動きベクトルは、残差データとともにビデオエンコーダ２０からビデオデコーダ３０に通信される。ビデオデコーダ３０は、（動きベクトルに基づいて）同じ予測ブロックを配置し、残差データを予測ブロックのデータと組み合わせることによって符号化ビデオブロックを再構成することができる。ビデオ圧縮を更に改善するために、変換及びエントロピーコード化などの多くの他の圧縮技法も使用され得る。
【００４４】
[0061]ビデオエンコーダ２０は、通常、動き推定プロセスを実行する。ビデオエンコーダ２０は、ビデオデコーダ３０が、所与のビデオブロックを符号化するために使用される予測ブロックを識別することが可能であるように、動き情報（動きベクトル、動きベクトルインデックス、予測方向、又は他の情報など）をビデオデコーダ３０に送信し得る。
【００４５】
[0062]ＭＶＰのための候補として空間的及び時間的方向における幾つかの隣接ブロックを含むことによって動きベクトル候補セットを構築するために、ＡＭＶＰが提案されている。この場合、ビデオエンコーダ２０は、符号化レートと歪みとの分析に基づいて（例えば、所謂レート歪みコスト分析（rate-distortion cost analysis）を使用して）候補セットから最も正確な予測子を選択する。ビデオエンコーダ２０はまた、ＭＶＰをどこに配置すべきかをビデオデコーダ３０に通知するために、動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）をビデオデコーダ３０に信号伝達し得る。ビデオエンコーダ２０はＭＶＤをも信号伝達し得る。ビデオデコーダ３０は、動きベクトルを再構成するように、ＭＶＤを（動きベクトル予測子インデックスによって定義された）ＭＶＰと組み合わせ得る。ビデオデコーダ３０は（ビデオエンコーダ２０のように）インデックスが様々な基準に基づいて適用される候補ＭＶＰのセットを定義し得る。
ビデオエンコーダ
[0063]図２は、ビデオエンコーダ２０の例示的な構成を示すブロック図である。図２は、説明の目的で与えられており、本開示おいて広く例示され、説明される技法を限定するものではない。説明の目的で、本開示では、ＨＥＶＣコード化のコンテキストにおいてビデオエンコーダ２０について説明する。但し、本開示の技法は他のコード化規格又は方法に適用可能であり得る。
【００４６】
[0064]図２の例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、予測モジュール１００と、残差生成モジュール１０２と、変換モジュール１０４と、量子化モジュール１０６と、逆量子化モジュール１０８と、逆変換モジュール１１０と、再構成モジュール１１２と、復号ピクチャバッファ１１４と、エントロピー符号化モジュール１１６と、区分化モジュール１１８とを含む。予測モジュール１００は、マージ／ＭＶＰリスト生成モジュール１２１と、動き推定モジュール１２２と、動き補償モジュール１２４と、イントラ予測モジュール１２６とを含む。マージ／ＭＶＰリスト生成モジュール１２１はＭＶ候補リストを生成し得る。例えば、ＭＥＲ中で区分化された複数のＰＵのうちの少なくともに対応する複数のＭＶ候補の場合、マージ／ＭＶＰリスト生成モジュール１２１は、図４〜図１７に関して以下でより詳細に説明するように、マージ候補リスト中に含めるべき複数のＭＶ候補のサブセットを選択し、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成し得る。
【００４７】
[0065]他の例では、ビデオエンコーダ２０は、より多数の、より少数の、又は異なる機能構成要素を含み得る。例えば、ビデオエンコーダ２０は、再構成されたビデオからブロック歪み（blockiness artifacts）を除去するために再構成モジュール１１２の出力をフィルタ処理するために、デブロッキングフィルタを含み得る。更に、マージ／ＭＶＰリスト生成モジュール１２１と動き推定モジュール１２２と動き補償モジュール１２４とは、高度に統合され得るが、図２の例では、説明の目的で別々に表されている。
【００４８】
[0066]ビデオエンコーダ２０はビデオデータを受信し得る。様々な例では、ビデオエンコーダ２０は様々な発信源からビデオデータを受信し得る。例えば、ビデオエンコーダ２０は、ビデオ発信源１８（図３）又は別の発信源からビデオデータを受信し得る。ビデオデータはピクチャのシーケンスを表し得る。ピクチャはテクスチャビューと深度ビューとを含み得る。ビデオデータを符号化するために、ビデオエンコーダ２０は、ピクチャの各シーケンスに対して符号化演算を実行し得る。ピクチャのシーケンスに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャのシーケンス内の各ピクチャに対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャ中の各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０はコード化スライスを生成する。コード化スライスはそれの符号化された形式のスライスである。コード化スライスはスライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関連付けられたシンタックス要素を含んでいることがある。
【００４９】
[0067]スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、スライス中のツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ２０がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ２０はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。言い換えると、コード化ツリーブロックはそれの符号化された形式のツリーブロックであり得る。
【００５０】
[0068]ツリーブロックに対して符号化演算を実行することの一部として、区分化モジュール１１８は、ツリーブロックを徐々に小さいＣＵに分割するために、ツリーブロックに対して４分木区分を実行し得る。例えば、区分化モジュール１１８は、ツリーブロックを４つの等しいサイズのサブＣＵに区分し、サブＣＵのうちの１つ又は複数を、４つの等しいサイズのサブサブＣＵに区分し得、以下同様である。
【００５１】
[0069]ＣＵのサイズは、８×８画素から最大６４×６４画素以上をもつツリーブロックのサイズまでに及び得る。本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、１６×１６（16x16）画素又は１６×１６（16 by 16）画素を指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６画素（ｙ＝１６）、及び水平方向に１６画素（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、ここで、Ｎは非負整数値を表す。
【００５２】
[0070]ツリーブロックに対して符号化演算を実行することの一部として、区分化モジュール１１８は、ツリーブロック用の階層的な４分木データ構造を生成し得る。例えば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。区分化モジュール１１８が、ツリーブロックを４つのサブＣＵに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブＣＵのうちの１つに対応する。区分化モジュール１１８が、サブＣＵのうちの１つを４つのサブサブＣＵに区分する場合、サブＣＵに対応するノードは、サブサブＣＵのうちの１つにその各々が対応する、４つの子ノードを有し得る。
【００５３】
[0071]４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。例えば、４分木中のノードは、そのノードに対応するＣＵが４つのサブＣＵに区分（例えば、分割）されるかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。区分化されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。４分木データ構造におけるリーフノードは「コード化ノード」と呼ばれることがある。コード化ツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。コード化ツリーブロックはそれの符号化された形式のツリーブロックである。コード化ツリーブロックがそれの符号化された形式のツリーブロックであるとき、コード化ツリーブロックはツリーブロックに対応する。
【００５４】
[0072]ビデオエンコーダ２０は、ツリーブロックの区分化されていない各ＣＵに対して符号化演算を実行し得る。ビデオエンコーダ２０が、区分化されていないＣＵに対して符号化演算を実行するとき、ビデオエンコーダ２０は、区分化されていないＣＵの符号化バージョンを表すデータを生成する。
【００５５】
[0073]ＣＵに対して符号化演算を実行することの一部として、動き推定モジュール１２２及び動き補償モジュール１２４は、ＣＵに対してインター予測を実行し得る。言い換えれば、動き推定モジュール１２２及び動き補償モジュール１２４は、ＣＵを含んでいるピクチャ以外の参照ピクチャの復号サンプルに基づいて、ＣＵのための予測データを生成し得る。インター予測は時間圧縮を実現し得る。
【００５６】
[0074]ＣＵに対してインター予測を実行するために、動き推定モジュール１２２は、ＣＵを１つ又は複数の予測単位（ＰＵ）に区分し得る。ビデオエンコーダ２０及びビデオデコーダ３０は様々なＰＵサイズをサポートし得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０及びビデオデコーダ３０は、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズと、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×ｎＵ、ｎＬ×２Ｎ、ｎＲ×２Ｎ、又は同様の対称ＰＵサイズでのインター予測とをサポートし得る。ビデオエンコーダ２０及びビデオデコーダ３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。幾つかの例では、動き推定モジュール１２２は、ＣＵの辺に直角に接しない境界に沿って、ＣＵをＰＵに区分化し得る。
【００５７】
[0075]動き推定モジュール１２２は、ＣＵの各ＰＵに関して動き推定演算を実行し得る。動き推定モジュール１２２がＰＵに関して動き推定演算を実行するとき、動き推定モジュール１２２は、ＰＵのための１つ又は複数の動きベクトルを生成し得る。例えば、スライスは、Ｉスライス、Ｐスライス、又はＢスライスであり得る。動き推定モジュール１２２及び動き補償モジュール１２４は、ＣＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、全てのＣＵがイントラ予測される。従って、ＣＵがＩスライス中にある場合、動き推定モジュール１２２及び動き推定モジュール１２４は、ＣＵに対してインター予測を実行しない。
【００５８】
[0076]ＣＵがＰスライス中にある場合、ＣＵを含んでいるピクチャは、「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。リスト０中の参照ピクチャの各々は、復号順序で後続のピクチャのインター予測のために使用され得るサンプルを含んでいる。動き推定モジュール１２２が、Ｐスライス中のＰＵに関して動き推定演算を実行するとき、動き推定モジュール１２２は、ＰＵのための参照サンプルについて、リスト０中の参照ピクチャを探索する。ＰＵの参照サンプルは、ＰＵの画素値に最も密接に対応する画素値のセットであり得る。動き推定モジュール１２２は、参照ピクチャ中の画素値のセットがどの程度密接にＰＵの画素値に対応するかを決定するために、様々なメトリックを使用し得る。例えば、動き推定モジュール１２２は、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって、参照ピクチャ中の画素値のセットがどの程度密接にＰＵの画素値に対応するかを決定し得る。
【００５９】
[0077]Ｐスライス中のＣＵのＰＵの参照サンプルを識別した後、動き推定モジュール１２２は、参照サンプルを含んでいる、リスト０中の参照ピクチャを示す参照インデックスと、ＰＵと参照サンプルとの間の空間変位を示す動きベクトルとを生成し得る。様々な例では、動き推定モジュール１２２は動きベクトルを異なる精度に生成し得る。例えば、動き推定モジュール１２２は、１／４画素精度、１／８画素精度、又は他の分数画素精度で動きベクトルを生成し得る。動き推定モジュール１２２は、ＰＵのための動き情報をエントロピー符号化モジュール１１６と動き補償モジュール１２４とに出力し得る。ＰＵのための動き情報は、参照インデックスとＰＵの動きベクトルとを含み得る。動き補償モジュール１２４は、ＰＵの参照サンプルを識別し、取り出すために、ＣＵのＰＵの動き情報を使用し得る。動き補償モジュール１２４は、次いで、ＣＵのための予測データを生成するためにＰＵの参照サンプルの画素値を使用し得る。
【００６０】
[0078]ＣＵがＢスライス中にある場合、ＣＵを含んでいるピクチャは、「リスト０」及び「リスト１」と呼ばれる参照ピクチャの２つのリストに関連付けられ得る。リスト０中の参照ピクチャの各々は、復号順序で後続のピクチャのインター予測のために使用され得るサンプルを含んでいる。リスト１中の参照ピクチャは、復号順序でピクチャの前に生じるが、プレゼンテーション順序でピクチャの後に生じる。幾つかの例では、Ｂスライスを含んでいるピクチャは、リスト０とリスト１との組合せである、リストの組合せに関連付けられ得る。
【００６１】
[0079]更に、ＣＵがＢスライス中にある場合、動き推定モジュール１２２は、ＣＵのＰＵについての単方向予測又は双方向予測を実行し得る。動き推定モジュール１２２が、ＰＵについての単方向予測を実行するとき、動き推定モジュール１２２は、ＰＵのための参照サンプルについて、リスト１の参照ピクチャを探索し得る。動き推定モジュール１２２は、次いで、参照サンプルを含んでいる、リスト１中の参照ピクチャを示す参照インデックスと、ＰＵと参照サンプルとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール１２２は、ＣＵのＰＵのための動き情報をエントロピー符号化モジュール１１６と動き補償モジュール１２４とに出力し得る。ＰＵのための動き情報は、参照インデックスと、予測方向インジケータと、ＰＵの動きベクトルとを含み得る。予測方向インジケータは、参照インデックスが、リスト０中の参照ピクチャを示すか、リスト１中の参照ピクチャを示すかを示し得る。動き補償モジュール１２４は、ＰＵの参照サンプルを識別し、取り出すために、ＣＵのＰＵの動き情報を使用し得る。動き補償モジュール１２４は、次いで、ＣＵのための予測データを生成するためにＰＵの参照サンプルの画素値を使用し得る。
【００６２】
[0080]動き推定モジュール１２２がＰＵについての双方向予測を実行するとき、動き推定モジュール１２２は、ＰＵのための参照サンプルについて、リスト０中の参照ピクチャを探索し得、また、ＰＵのための別の参照サンプルについて、リスト１中の参照ピクチャを探索し得る。動き推定モジュール１２２は、次いで、参照サンプルを示す参照インデックスと、参照サンプルとＰＵとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール１２２は、ＰＵの動き情報をエントロピー符号化モジュール１１６と動き補償モジュール１２４とに出力し得る。ＰＵのための動き情報は、参照インデックスとＰＵの動きベクトルとを含み得る。動き補償モジュール１２４は、ＰＵの参照サンプルを識別し、取り出すために、動き情報を使用し得る。動き補償モジュール１２４は、次いで、ＣＵのＰＵの参照サンプル中の画素値から、ＣＵの予測データの画素値を補間し得る。
【００６３】
[0081]幾つかの事例では、動き推定モジュール１２２は、ＰＵのための動き情報のフルセットをエントロピー符号化モジュール１１６に出力しない。そうではなく、動き推定モジュール１２２は、別のＰＵの動き情報を参照して、ＰＵの動き情報を信号伝達し得る。例えば、動き推定モジュール１２２は、ＰＵの動き情報が、隣接ＰＵの動き情報と十分に類似していると決定し得る。この例では、動き推定モジュール１２２は、ＣＵのための４分木ノードにおいて、ＰＵが隣接ＰＵと同じ動き情報を有することをビデオデコーダ３０に示す値を示し得る。別の例では、動き推定モジュール１２２は、ＣＵに関連付けられた４分木ノードにおいて、隣接ＰＵと動きベクトル差分（ＭＶＤ）とを識別し得る。動きベクトル差分は、ＰＵの動きベクトルと、示される隣接ＰＵの動きベクトルとの間の差分を示す。ビデオデコーダ３０は、ＰＵの動きベクトルを予測するために、示される隣接ＰＵの動きベクトルと、動きベクトル差分とを使用し得る。
【００６４】
[0082]ＣＵに対して符号化演算を実行することの一部として、イントラ予測モジュール１２６は、ＣＵに対してイントラ予測を実行し得る。言い換えれば、イントラ予測モジュール１２６は、他のＣＵの復号画素値に基づいて、ＣＵのための予測データを生成し得る。イントラ予測は空間圧縮を実現し得る。
【００６５】
[0083]ＣＵに対してイントラ予測を実行するために、イントラ予測モジュール１２６は、ＣＵのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測モジュール１２６が、ＣＵのための予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測モジュール１２６は、イントラ予測モードに関連付けられた方向及び／又は勾配で、隣接ＣＵからＣＵにわたって、画素値を延ばし得る。隣接ＣＵは、ＣＵ、及びツリーブロックについて左から右、上から下の符号化順序を仮定すると、ＣＵの上、右上、左上、又は左にあり得る。イントラ予測モジュール１２６は、ＣＵのサイズに応じて、様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用し得る。
【００６６】
[0084]イントラ予測モジュール１２６は、ＣＵのための予測データのセットのうちの１つを選択し得る。様々な例では、イントラ予測モジュール１２６は、ＣＵのための予測データのセットを様々な方法で選択し得る。例えば、イントラ予測モジュール１２６は、予測データのセットのための歪みレートを計算し、最も低い歪みレートを有する予測データのセットを選択することによって、ＣＵのための予測データのセットを選択し得る。
【００６７】
[0085]予測モジュール１００は、ＣＵについての、動き補償モジュール１２４によって生成された予測データ、又はＣＵについての、イントラ予測モジュール１２６によって生成された予測データの中から、ＣＵのための予測データを選択し得る。幾つかの例では、予測モジュール１００は、予測データのセット中の誤差（例えば、歪み）に基づいて、ＣＵのための予測データを選択する。
【００６８】
[0086]予測モジュール１００がＣＵのための予測データを選択した後、残差生成モジュール１０２は、ＣＵの画素値からＣＵの選択された予測データを差し引くことによって、ＣＵのための残差データを生成し得る。ＣＵの残差データは、ＣＵ中の画素の異なる画素成分に対応する、２Ｄ残差ブロックを含み得る。例えば、残差データは、ＣＵの予測データ中の画素のルミナンス成分と、ＣＵの元の画素中の画素のルミナンス成分との間の差分に対応する、残差ブロックを含み得る。更に、ＣＵの残差データは、ＣＵの予測データ中の画素のクロミナンス成分と、ＣＵの元の画素のクロミナンス成分との間の差分に対応する、残差ブロックを含み得る。
【００６９】
[0087]ＣＵは１つ又は複数の変換単位（ＴＵ）を有し得る。ＣＵの各ＴＵは、ＣＵの残差データの異なる部分に対応し得る。ＣＵのＴＵのサイズは、ＣＵのＰＵのサイズに基づくことも基づかないこともある。幾つかの例では、ＣＵは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さい単位に再分割され得る。ＴＵはＲＱＴのノードに対応し得る。
【００７０】
[0088]変換モジュール１０４は、区分化されていないＴＵに対応する残差データに変換を適用することによって、ＣＵの区分化されていない各ＴＵのための１つ又は複数の係数ブロックを生成し得る。係数ブロックの各々は係数の２Ｄ行列であり得る。様々な例では、変換モジュール１０４は、ＴＵに対応する残差データに様々な変換を適用し得る。例えば、変換モジュールは、離散コサイン変換（ＤＣＴ）、方向性変換、又は概念的に同様の変換を適用し得る。
【００７１】
[0089]変換モジュール１０４がＴＵのための係数ブロックを生成した後、量子化モジュール１０６は、係数ブロック中の係数を量子化し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために係数ブロック中の係数が量子化され、更なる圧縮を実現するプロセスを指す。量子化は、係数の一部又は全部に関連付けられたビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００７２】
[0090]逆量子化モジュール１０８及び逆変換モジュール１１０は、係数ブロックから残差データを再構成するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用し得る。再構成モジュール１１２は、復号ピクチャバッファ１１４に記憶するための再構成されたビデオブロックを生成するために、動き補償モジュール１２４又はイントラ予測モジュール１２６によって生成された予測データに再構成された残差データを加算し得る。動き推定モジュール１２２及び動き補償モジュール１２４は、後続のピクチャのＣＵに対してインター予測を実行するために、再構成されたビデオブロックを含んでいる参照ピクチャを使用し得る。更に、イントラ予測モジュール１２６は、イントラ予測を実行するために、現在ピクチャのＣＵの再構成された画素値を使用し得る。
【００７３】
[0091]エントロピー符号化モジュール１１６は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化モジュール１１６は、量子化モジュール１０６から係数ブロック得、予測モジュール１００からシンタックス要素を受信し得る。エントロピー符号化モジュール１１６がデータを受信するとき、エントロピー符号化モジュール１１６は、エントロピー符号化データを生成するために、１つ又は複数のエントロピー符号化演算を実行し得る。例えば、ビデオエンコーダ２０は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ：context adaptive variable length coding）演算、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）演算、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コード化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行し得る。
【００７４】
[0092]ＣＡＢＡＣを実行するために、エントロピー符号化モジュール１１６は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、エントロピー符号化モジュール１１６は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００７５】
[0093]エントロピー符号化モジュール１１６はビットストリームを出力し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスであり得る。ビットストリームは、一連のネットワーク抽象化レイヤ（ＮＡＬ：network abstraction layer）単位を備え得る。ＮＡＬ単位の各々は、ＮＡＬ単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、ＮＡＬ単位は、ＰＰＳ、ＡＰＳ、コード化スライス、補足拡張情報、アクセス単位デリミタ、フィラーデータ、又は別のタイプのデータを表すデータを含んでいることがある。ＮＡＬ単位のデータは、エミュレーション防止ビットが点在しているローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形式であり得る。ＲＢＳＰは、ＮＡＬ単位内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。
【００７６】
[0094]エントロピー符号化モジュール１１６は、一連のＮＡＬ単位を含むビットストリームを出力する。上記で説明したように、ＮＡＬ単位の各々は、ＮＡＬ単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。ビットストリーム中の各コード化スライスＮＡＬ単位はコード化スライスを含んでいる。コード化スライスはコード化スライスヘッダとスライスデータとを含む。スライスデータはコード化ツリーブロックを含み得る。コード化ツリーブロックは１つ又は複数のコード化ＣＵを含み得る。各コード化ＣＵは、１つ又は複数のエントロピー符号化された係数ブロックを含み得る。
ビデオデコーダ
[0095]図３は、ビデオデコーダ３０の例示的な構成を示すブロック図である。図３は、説明の目的で与えられており、本開示おいて広く例示され、説明される技法を限定するものではない。説明の目的で、本開示では、ＨＥＶＣコード化のコンテキストにおいてビデオデコーダ３０について説明する。但し、本開示の技法は他のコード化規格又は方法に適用可能であり得る。
【００７７】
[0096]図３の例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、エントロピー復号モジュール１５０と、予測モジュール１５２と、逆量子化モジュール１５４と、逆変換モジュール１５６と、再構成モジュール１５８と、復号ピクチャバッファ１６０とを含む。予測モジュール１５２は、マージ／ＭＶＰリスト生成モジュール１６１と、動き補償モジュール１６２と、イントラ予測モジュール１６４とを含む。マージ／ＭＶＰリスト生成モジュール１６１はＭＶ候補リストを生成し得る。幾つかの例では、ビデオデコーダ３０は、図２のビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る。他の例では、ビデオデコーダ３０は、より多数の、より少数の、又は異なる機能構成要素を含み得る。例えば、ビデオデコーダ３０は、再構成されたビデオからブロック歪みを除去するために再構成モジュール１５８の出力をフィルタ処理するために、デブロッキングフィルタを含み得る。
【００７８】
[0097]ビデオデコーダ３０は、符号化ビデオデータを備えるビットストリームを受信し得る。ビデオデコーダ３０がビットストリームを受信するとき、エントロピー復号モジュール１５０は、ビットストリームに対して構文解析演算（parsing operation）を実行する。ビットストリームに対して構文解析演算を実行した結果として、エントロピー復号モジュール１５０は、エントロピー復号されたシンタックス要素を生成し得る。エントロピー復号されたシンタックス要素は、エントロピー復号された係数ブロックを含み得る。予測モジュール１５２、逆量子化モジュール１５４、逆変換モジュール１５６、及び再構成モジュール１５８は、復号ビデオデータを生成するために、シンタックス要素を使用する復号演算を実行し得る。
【００７９】
[0098]上記で説明したように、ビットストリームは一連のＮＡＬ単位を備え得る。ビットストリームのＮＡＬ単位は、シーケンスパラメータセットＮＡＬ単位、ピクチャパラメータセットＮＡＬ単位、ＳＥＩ  ＮＡＬ単位などを含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号モジュール１５０は、シーケンスパラメータセットＮＡＬ単位からのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬ単位からのピクチャパラメータセット、ＳＥＩ  ＮＡＬ単位からのＳＥＩデータなどを抽出し、エントロピー復号する、構文解析演算を実行し得る。シーケンスパラメータセットは、０個又はそれ以上のコード化ビデオシーケンス全体に適用されるシンタックス要素を含んでいるシンタックス構造である。ピクチャパラメータセットは、０個又はそれ以上のコード化ピクチャ全体に適用されるシンタックス要素を含んでいるシンタックス構造である。所与のピクチャに関連付けられたピクチャパラメータセットは、所与のピクチャに関連付けられたシーケンスパラメータセットを識別するシンタックス要素を含み得る。
【００８０】
[0099]更に、ビットストリームのＮＡＬ単位はコード化スライスＮＡＬ単位を含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号モジュール１５０は、コード化スライスＮＡＬ単位からコード化スライスを抽出し、エントロピー復号する、構文解析演算を実行し得る。コード化スライスの各々はスライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号モジュール１５０は、スライスヘッダを復元するために、コード化スライスヘッダに対して、ＣＡＶＬＣ復号演算などのエントロピー復号演算を実行し得る。
【００８１】
[0100]コード化スライスＮＡＬ単位からスライスデータを抽出した後、エントロピー復号モジュール１５０は、スライスデータからコード化ツリーブロックを抽出し得る。エントロピー復号モジュール１５０は、次いで、コード化ツリーブロックからコード化ＣＵを抽出し得る。エントロピー復号モジュール１５０は、コード化ＣＵからシンタックス要素を抽出する構文解析演算を実行し得る。抽出されたシンタックス要素は、エントロピー符号化された係数ブロックを含み得る。エントロピー復号モジュール１５０は、次いで、シンタックス要素に対してエントロピー復号演算を実行し得る。例えば、エントロピー復号モジュール１５０は、係数ブロックに対してＣＡＢＡＣ演算を実行し得る。
【００８２】
[0101]エントロピー復号モジュール１５０がデータのセットに対してエントロピー復号演算を実行するとき、エントロピー復号モジュール１５０はコンテキストモデルを選択し得る。エントロピー復号モジュール１５０がＣＡＢＡＣを使用する例では、コンテキストモデルは特定のビンの確率を示し得る。エントロピー復号モジュール１５０がＣＡＶＬＣを使用する例では、コンテキストモデルは、コードワードと、対応するデータとの間のマッピングを示し得る。エントロピー復号モジュール１５０は、次いで、データのセットに対してエントロピー復号演算を実行するために、選択されたコンテキストモデルを使用し得る。
【００８３】
[0102]エントロピー復号モジュール１５０が、区分化されていないＣＵに対して構文解析演算を実行した後、ビデオデコーダ３０は、区分化されていないＣＵに対して復号演算を実行し得る。区分化されていないＣＵに対して復号演算を実行するために、ビデオデコーダ３０は、ＣＵの残差４分木の各レベルにおいて、ＣＵの各ＴＵに対して復号演算を実行し得る。ＣＵの各ＴＵに対して復号演算を実行することによって、ビデオデコーダ３０はＣＵの残差データを再構成し得る。
【００８４】
[0103]区分化されていないＴＵに対して復号演算を実行することの一部として、逆量子化モジュール１５４は、ＴＵに関連付けられた係数ブロックを逆の量子化（inverse quantize）、即ち、逆量子化（de-quantize）し得る。逆量子化モジュール１５４は、ＨＥＶＣのために提案された、又はＨ．２６４復号規格によって定義された逆量子化プロセスと同様の様式で、係数ブロックを逆量子化し得る。逆量子化モジュール１５４は、量子化の程度を決定し、同様に、逆量子化モジュール１５４が適用すべき逆量子化の程度を決定するために、係数ブロックのＣＵのためにビデオエンコーダ２０によって計算される量子化パラメータＱＰＹを使用し得る。
【００８５】
[0104]逆量子化モジュール１５４が係数ブロックを逆量子化した後、逆変換モジュール１５６は、係数ブロックに関連付けられたＴＵのための残差データを生成し得る。逆変換モジュール１５６は、少なくとも部分的に、係数ブロックに逆変換を適用することによって、ＴＵのための残差データを生成し得る。例えば、逆変換モジュール１５６は、係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、又は別の逆変換を適用し得る。幾つかの例では、逆変換モジュール１５６は、ビデオエンコーダ２０からの信号伝達に基づいて、係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換モジュール１５６は、係数ブロックに関連付けられたツリーブロックのための４分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定し得る。他の例では、逆変換モジュール１５６は、ブロックサイズ、コード化モードなど、１つ又は複数のコード化特性から逆変換を推論し得る。幾つかの例では、逆変換モジュール１５６はカスケード逆変換を適用し得る。
【００８６】
[0105]ＣＵが、インター予測を使用して符号化された場合、動き補償モジュール１６２は、ＣＵのための予測データを生成するために動き補償を実行し得る。動き補償モジュール１６２は、ＰＵのための参照サンプルを識別するためにＣＵのＰＵのための動き情報を使用し得る。ＰＵのための動き情報は、動きベクトルと、参照ピクチャインデックスと、予測方向とを含み得る。動き補償モジュール１６２は、次いで、ＣＵのための予測データを生成するためにＰＵのための参照サンプルを使用し得る。
【００８７】
[0106]幾つかの例では、動き補償モジュール１６２は、補間フィルタに基づく補間を実行することによって、ＣＵのための予測データを改良し得る。サブ画素精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償モジュール１６２は、参照ブロックのサブ整数画素についての補間値を計算するために、ＣＵの予測データの生成中にビデオエンコーダ２０によって使用された同じ補間フィルタを使用し得る。動き補償モジュール１６２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測データを生成するためにその補間フィルタを使用し得る。
【００８８】
[0107]ＣＵが、イントラ予測を使用して符号化される場合、イントラ予測モジュール１６４は、ＣＵのための予測データを生成するためにイントラ予測を実行し得る。例えば、イントラ予測モジュール１６４は、ビットストリーム中のシンタックス要素に基づいて、ＣＵのためのイントラ予測モードを決定し得る。イントラ予測モジュール１６４は、次いで、隣接ＣＵの画素値に基づいて、ＣＵのための予測データ（例えば、予測画素値）を生成するために、イントラ予測モードを使用し得る。
【００８９】
[0108]再構成モジュール１５８は、ＣＵのための画素値を再構成するために、ＣＵの残差データとＣＵのための予測データとを使用し得る。幾つかの例では、ビデオデコーダ３０は、スライス又はピクチャの再構成された画素値フィルタからブロック歪みを除去するために、デブロッキングフィルタを適用し得る。復号ピクチャバッファ１６０は、ビデオデータのピクチャのための復号された画素値を記憶し得る。復号ピクチャバッファ１６０は、後続の動き補償、イントラ予測、及び図３の表示装置３４などの表示装置上でのプレゼンテーションのために、参照ピクチャを与え得る。実施形態によっては、本明細書で説明した方法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る（例えば、全ての説明した行為又はイベントが本方法の実施のために必要であるとは限らない）ことを認識されたい。更に、幾つかの実施形態では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
マージ動きベクトル（ＭＶ）候補
[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]図１１Ｃに示されているように、ＣＵ７４０は、各々がサイズ８×１６を有する、上ＰＵ１１ｏと下ＰＵ１１ｐとに区分化され得る。ＰＵ１１ｏに対応する、生成され得るＭＶ候補は、空間候補、左上ＭＶ候補１１ｑと、上ＭＶ候補１１ｒと、左ＭＶ候補１１ｓと、左下ＭＶ候補１１ｕと、時間ＭＶ候補１１ｖとを含む。ＰＵ１１ｐに対応する、生成され得るＭＶ候補は、空間候補、左上ＭＶ候補１１ｓと、上ＭＶ候補１１ｔと、左ＭＶ候補１１ｗと、時間ＭＶ候補１１ｘとを含む。前述のように、単一のＭＶ候補は、２つ以上のＰＵのためのＭＶ候補として働くことができる。例えば、ＭＶ候補１１ｓはＰＵ１１ｏのための左ＭＶ候補であるが、ＭＶ候補１１ｓはＰＵ１１ｐのための左上ＭＶ候補でもある。
【０１１４】
[0135]図１２に、ＣＵ７００並びにＣＵ７１０、７２０、７３０、及び７４０中で区分化された任意のＰＵに対応する各ＭＶ候補を示す３２×３２ＣＵ７００の一例を示す。例えば、図１２は、以下のＰＵ、即ち、３２×３２ＰＵ７ａ、３２×１６ＰＵ７ｇ、３２×１６ＰＵ７ｈ、１６×３２ＰＵ７ｑ、１６×３２ＰＵ７ｒ、１６×１６ＰＵ８ａ、１６×８ＰＵ８ｈ、１６×８ＰＵ８ｉ、８×１６ＰＵ８ｓ、８×１６ＰＵ８ｔ、１６×１６ＰＵ９ａ、１６×８ＰＵ９ｈ、１６×８ＰＵ９ｉ、８×１６ＰＵ９ｒ、８×１６ＰＵ９ｓ、１６×１６ＰＵ１０ａ、１６×８ＰＵ１０ｇ、１６×８ＰＵ１０ｈ、８×１６ＰＵ１０ｑ、８×１６ＰＵ１０ｒ、１６×１６ＰＵ１１ａ、１６×８ＰＵ１１ｆ、１６×８ＰＵ１１ｇ、８×１６ＰＵ１１ｏ、及び８×１６ＰＵ１１ｐに対応するＭＶ候補を含む。特に、図１２は、ＣＵ７００の外部に配置された１３個の空間ＭＶ候補Ｅ１〜Ｅ１３と、ＣＵ７００の内部に配置された２４個の空間ＭＶ候補Ｉ１〜ｉ２４と、６個の時間ＭＶ候補Ｔ１〜Ｔ６とを示している。１３個の外部空間ＭＶ候補Ｅ１〜Ｅ１３、２４個の内部空間ＭＶ候補Ｉ１〜Ｉ２４、及び６個の時間ＭＶ候補Ｔ１〜Ｔ６は、ＣＵ７００内のＰＵのためのＭＶ候補に対応する。多くの事例では、ＭＶ候補は２つ以上のＰＵに対応する。例えば、外部空間ＭＶ候補Ｅ１は、６個のＰＵ、即ち、３２×３２ＰＵ７ａの左上ＭＶ候補７ｂと、３２×１６ＰＵ７ｇの左上ＭＶ候補７ｉと、１６×３２ＰＵ７ｑの左上ＭＶ候補７ｓと、１６×１６ＰＵ８ａの左上ＭＶ候補８ｂと、１６×８ＰＵ８ｈの左上ＭＶ候補８ｊと、８×１６ＰＵ８ｓの左上ＭＶ候補８ｕとに対応する。
ＭＥＲ内のＰＵに対応するＭＶ候補の選択
[0136]図１３に、実装されたＭＥＲをもつ３２×３２ＣＵ７００の一例を示す。例えば、同じ３２×３２ＣＵブロック７００に対応する３２×３２ＭＥＲ領域が実装され得る。他の実施形態では、ＭＥＲのサイズはＬＣＵサイズと同じ又は異なり得る。実装されたＭＥＲでは、ＭＥＲの外部の空間ＭＶ候補及びコロケートされた時間ＭＶ候補のみが、マージ候補リスト中に含めるために考慮される。例えば、ＭＥＲの外部に配置された１３個の空間ＭＶ候補Ｅ１〜Ｅ１３、及び６個の時間ＭＶ候補Ｔ１〜Ｔ６のみが、マージ候補リスト中に含めるために考慮されるであろう。従って、この実施形態では、マージ候補リスト中に含めるために考慮されたマージ動きベクトル候補の総数は１９個である。
【０１１５】
[0137]幾つかの実施形態では、本開示の幾つかの態様に従って構成された、図１及び図２のビデオエンコーダ２０などのビデオコード化機器は、複数の動きベクトル候補を記憶するように構成されたメモリを含む。複数の動きベクトル候補は、初期リストサイズを有する初期リストを備えることができる。例えば、ＭＥＲの外部に配置された１３個の空間ＭＶ候補Ｅ１〜Ｅ１３、及び６個の時間ＭＶ候補Ｔ１〜Ｔ６を備える初期リストが、１９の初期リストサイズを有することができる。１９個の動きベクトル候補の各々は、ＭＥＲ中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応する。例えば、１９個の動きベクトル候補の各々は、以下のＰＵ、即ち、３２×３２ＰＵ７ａ、３２×１６ＰＵ７ｇ、３２×１６ＰＵ７ｈ、１６×３２ＰＵ７ｑ、１６×３２ＰＵ７ｒ、１６×１６ＰＵ８ａ、１６×８ＰＵ８ｈ、１６×８ＰＵ８ｉ、８×１６ＰＵ８ｓ、８×１６ＰＵ８ｔ、１６×１６ＰＵ９ａ、１６×８ＰＵ９ｈ、１６×８ＰＵ９ｉ、８×１６ＰＵ９ｒ、８×１６ＰＵ９ｓ、１６×１６ＰＵ１０ａ、１６×８ＰＵ１０ｇ、１６×８ＰＵ１０ｈ、８×１６ＰＵ１０ｑ、８×１６ＰＵ１０ｒ、１６×１６ＰＵ１１ａ、１６×８ＰＵ１１ｆ、１６×８ＰＵ１１ｇ、８×１６ＰＵ１１ｏ、及び８×１６ＰＵ１１ｐのうちの少なくとも１つに対応する。１９個の動きベクトル候補Ｅ１〜Ｅ１３及びＴ１〜Ｔ６のみの選択は、図１２に示された全ての４３個の動きベクトル候補の選択と比較して全体的な計算コストを低減することができる。
【０１１６】
[0138]ビデオコード化機器は、メモリと通信しているプロセッサをも含むことができる。プロセッサは、初期リストサイズよりも小さいリストサイズを有するマージ候補リスト中に含めるべき複数の動きベクトル候補Ｅ１〜Ｅ１３への及びＴ１〜Ｔ６のうちの１つ又は複数を選択するように構成され得る。リストサイズ及び初期リストサイズは任意の数であり得る。例えば、初期リストサイズは１９であり得、リストサイズは、１、４、５、６、８、及び１０を含む、１から１０の間の任意の数であり得る。
【０１１７】
[0139]選択は、各動きベクトル候補の優先度レベルに基づき得る。一実施形態では、複数の動きベクトル候補Ｅ１〜Ｅ１３への及びＴ１〜Ｔ６の各々の優先度レベルは、動きベクトル候補が、ＭＥＲ中で区分化された複数のＰＵのうちのいずれかに対応する、頻度に基づき得、より高い頻度がより高い優先度レベルに対応する。例えば、一実施形態によれば、外部空間ＭＶ候補Ｅ１は、Ｅ１が、７つのＰＵ、即ち、３２×３２ＰＵ７ａの左上ＭＶ候補７ｂと、３２×１６ＰＵ７ｇの左上ＭＶ候補７ｉと、１６×３２ＰＵ７ｑの左上ＭＶ候補７ｓと、１６×１６ＰＵ８ａの左上ＭＶ候補８ｂと、１６×８ＰＵ８ｈの左上ＭＶ候補８ｊと、８×１６ＰＵ８ｓの左上ＭＶ候補８ｕと、ＰＵ８ａの左上象限中で区分化された８×８ＰＵ（図示せず）の左上候補とに対応することに基づいて、７の頻度を有することができる。プロセッサは、選択された動きベクトル候補を含むようにマージ候補リストを生成するように更に構成され得る。
【０１１８】
[0140]図１３に示された１９個のＭＶ候補は、所与のＭＥＲ内の異なるＣＵ及びＰＵ区分のためのマージモードコストを導出する際にそれらの寄与に関して必ずしも等しく重要であるとは限らない。例えば、幾つかのＭＶ候補は、異なるＣＵ又はＰＵの候補位置重複により、他のＭＶ候補よりも高い頻度を有することができる。所与のＭＥＲに対するＭＶ候補の頻度は、概して静的である。
【０１１９】
[0141]一実施形態では、ＭＶ候補の頻度に基づいて、優先度又は重み付け係数が各候補に割り当てられ得る。より高い頻度を有するＭＶ候補の場合、より高い優先度又は重み付け係数が割り当てられ得る。優先度又は重み付け係数に基づいて、マージ候補リスト中でサポートされるマージ候補の数とコード化性能との間でトレードオフが得られ得る。例えば、幾つかの実施形態では、１９個のＭＶ候補のうちの１０個のみがそれらの優先度に基づいて考慮されるとき、性能低下は、全ての１９個のＭＶマージ候補を考慮することと比較して０．５％よりも少なくなり得ることがわかる。同様に、１９個のＭＶ候補のうちの５個のみがそれらの優先度に基づいて考慮されるとき、全ての１９個のＭＶマージ候補を考慮することと比較して２％よりも少ない性能低下がわかっている。
【０１２０】
[0142]図１４に、ＭＥＲ中で区分化された任意のＰＵに対応する各時間又は外部空間ＭＶ候補の例示的な重み付き頻度を示す３２×３２ＭＥＲの一例を示す。上記で説明したように、複数の動きベクトル候補Ｅ１〜Ｅ１３への及びＴ１〜Ｔ６の各々の優先度レベルは、動きベクトル候補が、ＭＥＲ中で区分化された複数のＰＵのうちのいずれかに対応する、頻度に少なくとも部分的に基づき得、より高い頻度がより高い優先度レベルに対応する。更に、複数の動きベクトル候補Ｅ１〜Ｅ１３及びＴ１〜Ｔ６の各々の優先度レベルは、複数のＰＵの各々のための重み付け係数に更に基づき得る。例えば、重み付け係数は、動きベクトル候補が対応する各ＰＵのサイズに依存することができ、より大きいサイズのＰＵが、より大きい重み付け係数を受信する。従って、ＭＶ候補が、より大きいＰＵのためのマージ候補として働く場合、それは、より小さいＰＵのためにのみ使用される候補よりも高い重み付けを受信することができる。
【０１２１】
[0143]幾つかの実施形態では、複数のＰＵの各々のための重み付け係数は各ＰＵのサイズに正比例し得る。例えば、考慮される最小ＰＵサイズが８×８であると仮定する場合、ＰＵは、ＰＵ内の各８×８領域のための１の重み付け係数を有することができる。従って、３２×３２ＰＵは、１６個の８×８領域を含み、１６の重み付け係数を有するであろう。同様に、１６×３２ＰＵは８の重み付け係数を有することができ、３２×１６ＰＵは８の重み付け係数を有することができ、１６×１６ＰＵは４の重み付け係数を有することができ、８×１６ＰＵは２の重み付け係数を有することができ、１６×８ＰＵは２の重み付け係数を有することができ、８×８ＰＵは１の重み付け係数を有することができる。
【０１２２】
[0144]図１４中の番号付けされた正方形はＭＶ候補Ｅ１〜Ｅ１３及びＴ１〜Ｔ６に対応する。従って、例えば、４１の重み付き優先度レベルを有する左上ＭＶ候補はＥ１に対応する。この実施形態における４１のＥ１の重み付き優先度レベルは、３２×３２ＰＵ７ａの左上ＭＶ候補７ｂが１６の重み付け係数を有し、３２×１６ＰＵ７ｇの左上ＭＶ候補７ｉが８の重み付け係数を有し、１６×３２ＰＵ７ｑの左上ＭＶ候補７ｓが８の重み付け係数を有し、１６×１６ＰＵ８ａの左上ＭＶ候補８ｂが４の重み付け係数を有し、１６×８ＰＵ８ｈの左上ＭＶ候補８ｊが２の重み付け係数を有し、８×１６ＰＵ８ｓの左上ＭＶ候補８ｕが２の重み付け係数を有し、ＰＵ８ａの左上象限中で区分化された８×８ＰＵ（図示せず）の左上候補が１の重み付け係数を有し、即ち、１６＋８＋８＋４＋２＋２＋１が４１であるように計算され得る。他の各ＭＶ候補の重み付き優先度が同様に計算され得る。例えば、一実施形態によれば、３２×３２ＭＥＲに対応するＭＶ候補の重み付き優先度は、Ｅ１が４１の重み付き優先度を有し、Ｅ２が８の重み付き優先度を有し、Ｅ３が３５の重み付き優先度を有し、Ｅ４が２３の重み付き優先度を有し、Ｅ５が４６の重み付き優先度を有し、Ｅ６が４１の重み付き優先度を有し、Ｅ７が６の重み付き優先度を有し、Ｅ８が３の重み付き優先度を有し、Ｅ９が３２の重み付き優先度を有し、Ｅ１０が１７の重み付き優先度を有し、Ｅ１１が６の重み付き優先度を有し、Ｅ１２が３の重み付き優先度を有し、Ｅ１３が４１の重み付き優先度を有し、Ｔ１が１の重み付き優先度を有し、Ｔ２が４の重み付き優先度を有し、Ｔ３が３の重み付き優先度を有し、Ｔ４が２４の重み付き優先度を有し、Ｔ５が６０の重み付き優先度を有し、Ｔ６が１４の重み付き優先度を有するようになる。
【０１２３】
[0145]各ＭＶ候補の重み付き優先度レベルに基づいて、各ＭＶ候補は優先度順にランク付けされ得る。図１５に、ＭＥＲ中で区分化された任意のＰＵに対応する各時間又は外部空間ＭＶ候補の例示的な優先度レベルランク付けを示す３２×３２ＭＥＲの一例を示す。特に、図１５は、重み付き優先度レベルの逆順で各ＭＶ候補に割り当てられたインデックス値を示している。従って、Ｔ５が６０の最高重み付き優先度を有するので、それは最高優先度を有し、インデックス０を有する。例えば、プロセッサが、マージ候補リスト中に単一のＭＶ候補のみを含めるように構成された（例えば、リストサイズは１である）場合、それはＭＶ候補Ｔ５を含めるであろう。Ｔ５の後には、重み付き優先度の順に、Ｅ５、Ｅ１３、Ｅ６、Ｅ１、Ｅ３、Ｅ９、Ｔ４、Ｅ４、Ｅ１０、Ｔ６、Ｅ２、Ｅ７、Ｅ１１、Ｔ２、Ｔ３、Ｅ８、Ｅ１２、及びＴ１が続く。同様に、プロセッサが、マージ候補リスト中に５つのＭＶ候補を含めるように構成された（例えば、リストサイズは５である）場合、それは、ＭＶ候補Ｔ５、Ｅ５、Ｅ１３、Ｅ６、及びＥ１を含めることができる。
【０１２４】
[0146]優先度レベルに基づくＭＶ候補の選択の利点は、重み付き頻度値を含む、頻度値、及び導出された優先度レベルが、イントラ／インターブロック及びＰＵサイズなど、隣接ＰＵのステータスに依存しないことがあることである。従って、例えば、優先度リストは、必ずしもあらゆるＬＣＵのために再生成される必要があるとは限らない。
【０１２５】
[0147]他の実施形態では、ＭＶ候補の優先度レベルは位置重み付け係数に依存することができる。位置重み付け係数は、対応するＰＵに対する空間ＭＶ候補の相対位置に依存することができる。例えば、ＭＶ候補のための重み付け係数は、候補がＰＵのための左候補であるのか、右候補であるのか、上候補であるのかなどに依存することができる。ＰＵのための異なる候補は、ＰＵに対する候補の相対位置に基づいて選択される差分可能性を有し得る。例えば、ＰＵのための左位置候補に対応する空間ＭＶ候補が、ＰＵのための左上位置ＭＶ候補よりも高い位置重み付け係数を有することができる。
【０１２６】
[0148]図１６は、非冗長ステータスに基づいて、マージ候補リスト中に含めるためのＭＶ候補を選択するプロセス８００の実施形態を示し、それぞれ図２又は図３のマージ／ＭＶＰリスト生成モジュール１２１又は１６１によって実行され得る、フローチャートである。プロセス８００は、単独で、又は、優先度レベル、頻度、及び重み付け頻度に基づくＭＶ候補の選択を含む、本明細書の他の場所で説明する任意の他の選択プロセスに加えて、又はそれと組み合わせて適用され得る。例えば、プロセス８００はブロック８１０において開始する。ブロック８２０において、並列ＭＥＲ中で区分化されたＰＵに対応するＭＶ候補を識別する。例えば、３２×３２ＭＥＲの場合、１９個のＭＶ候補が識別される。次いで、プロセス８００はブロック８３０に進み、特定のＭＶ候補が冗長であるかどうかを決定する。例えば、ＭＶ候補が候補ＰＵ内に含まれているとき、プロセッサは、候補ＰＵのステータスに基づいて、ＭＶ候補が冗長であると決定するように構成され得る。特に、例えば、プロセッサは、候補ＰＵがイントラモードでコード化される場合、ＭＶ候補が冗長であると決定するように構成され得る。更に、プロセッサは、ＭＶ候補が、１つ又は複数のＭＶ候補のうちの別のＭＶ候補の動き情報と同じである動き情報を備える場合、ＭＶ候補が冗長であると決定するように更に構成され得る。また、プロセッサは、ＭＶ候補が０動きベクトルを有する場合、ＭＶ候補が冗長であると決定するように構成され得る。次いで、プロセス８００はブロック８４０に進み、動きベクトルリストから、冗長であることがわかっているＭＶ候補を除外する。ブロック８５０において、プロセス８００は、全てのＭＶ候補が識別されたかどうかを検査する。識別されていない場合、プロセス８００はブロック８３０にループバックする。はいの場合、プロセス８００は、ブロック８６０に進み、マージ候補リスト中に含めるための、除外されていない１つ又は複数のＭＶ候補を選択する。プロセス８００はブロック８７０において終了する。
【０１２７】
[0149]図１７は、優先度レベルに基づいて、マージ候補リスト中に含めるためのＭＶ候補を選択するプロセス９００の実施形態を示し、それぞれ図２又は図３のマージ／ＭＶＰリスト生成モジュール１２１又は１６１によって実行され得る、フローチャートである。プロセス９００は、単独で、又は本明細書の他の場所で説明する任意の他の選択プロセスに加えて、若しくはそれと組み合わせて適用され得る。例えば、プロセス９００はブロック９１０において開始する。ブロック９２０において、並列ＭＥＲ中で区分化されたＰＵに対応するＭＶ候補を識別する。例えば、３２×３２ＭＥＲの場合、１９個のＭＶ候補が識別される。次いで、プロセス９００はブロック９３０に進み、ＭＶ候補が、ＭＥＲ中で区分化されたＰＵのうちのいずれかに対応する、頻度ｆを決定する。プロセス９００は、ブロック９４０に進み、頻度ｆに部分的に基づいてＭＶ候補の優先度レベルを決定する。例えば、ＭＶ候補の優先度レベルが頻度ｆのみに基づく一実施形態では、外部空間ＭＶ候補Ｅ１は、Ｅ１が、７つのＰＵ、即ち、３２×３２ＰＵ７ａの左上ＭＶ候補７ｂと、３２×１６ＰＵ７ｇの左上ＭＶ候補７ｉと、１６×３２ＰＵ７ｑの左上ＭＶ候補７ｓと、１６×１６ＰＵ８ａの左上ＭＶ候補８ｂと、１６×８ＰＵ８ｈの左上ＭＶ候補８ｊと、８×１６ＰＵ８ｓの左上ＭＶ候補８ｕと、ＰＵ８ａの左上象限中で区分化された８×８ＰＵ（図示せず）の左上候補とに対応することに基づいて、７の頻度ｆを有することができる。代替的に、ＭＶ候補の優先度レベルが重み付け係数に更に依存する一実施形態では、ＭＶ候補Ｅ１は、３２×３２ＰＵ７ａの左上ＭＶ候補７ｂが１６の重み付け係数を有し、３２×１６ＰＵ７ｇの左上ＭＶ候補７ｉが８の重み付け係数を有し、１６×３２ＰＵ７ｑの左上ＭＶ候補７ｓが８の重み付け係数を有し、１６×１６ＰＵ８ａの左上ＭＶ候補８ｂが４の重み付け係数を有し、１６×８ＰＵ８ｈの左上ＭＶ候補８ｊが２の重み付け係数を有し、８×１６ＰＵ８ｓの左上ＭＶ候補８ｕが２の重み付け係数を有し、ＰＵ８ａの左上象限中で区分化された８×８ＰＵ（図示せず）の左上候補が１の重み付け係数を有し、即ち、１６＋８＋８＋４＋２＋２＋１が４１であるように計算された、４１の優先度レベルを有することができる。ブロック９４０において、任意の他の重み付け係数も適用され得る。プロセス９００は、ブロック９６０に進み、全てのＭＶ候補が識別されたかどうかを決定する。識別されていない場合、プロセス９００はブロック９３０にループバックする。はいの場合、プロセス９００は、ブロック９７０に進み、ＭＶ候補の優先度レベルに基づいて、マージ候補リスト中に含めるためのＭＶ候補を選択する。プロセス９００はブロック９８０において終了する。
【０１２８】
[0150]上記で説明した全ての技法はまた、マージ候補リスト中に含めるためのＭＶ候補を選択することに適用され得る。更に、本開示の幾つかの技法及び例について、３２×３２ＣＵの一例に関して説明した。本明細書で説明した全ての技法が、異なる数の行及び列中で、より多い又はより少ない画素を含んでいる、ＣＵブロックを用いた例に適用され得ることを理解されたい。
【０１２９】
[0151]上記例に応じて、本明細書で説明した技法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る（例えば、全ての説明した行為又はイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。更に、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
【０１３０】
[0152]１つ又は複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び／又はデータ構造を取り出すために１つ又は複数のコンピュータあるいは１つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１３１】
[0153]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、及びＢｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１３２】
[0154]命令は、１つ又は複数のデジタル信号プロセッサ（ＤＳＰ）などの１つ又は複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェアモジュール及び／又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つ又は複数の回路又は論理要素で十分に実装され得る。
【０１３３】
[0155]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置で実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０１３４】
[0156]様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコード化するように構成された装置であって、前記装置は、
複数の動きベクトル候補を記憶するように構成されたメモリと、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
を行うように構成された、装置。
［Ｃ２］
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、Ｃ１に記載の装置。
［Ｃ３］
前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のＰＵの各々のための重み付け係数に更に基づき、前記重み付け係数が各ＰＵのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、Ｃ２に記載の装置。
［Ｃ４］
前記複数のＰＵの各々の前記重み付け係数が各ＰＵの前記サイズに正比例する、Ｃ３に記載の装置。
［Ｃ５］
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの１つを備え、
各空間動きベクトル候補の位置が前記ＭＥＲの外側に配置された、Ｃ２に記載の装置。
［Ｃ６］
各空間動きベクトル候補の前記優先度レベルが、対応するＰＵに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、Ｃ５に記載の装置。
［Ｃ７］
ＰＵのための左位置候補に対応する空間動きベクトル候補が、ＰＵのための左上位置候補よりも高い位置重み付け係数を有する、Ｃ６に記載の装置。
［Ｃ８］
前記プロセッサは、
前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
前記マージ候補リストから冗長動きベクトル候補を除外することとを行うように更に構成された、Ｃ１に記載の装置。
［Ｃ９］
前記プロセッサは、動き冗長性検査に基づいて、前記動きベクトル候補が冗長であるかどうかを決定するように更に構成された、Ｃ８に記載の装置。
［Ｃ１０］
前記動きベクトル候補が候補ＰＵ内に含まれており、
前記プロセッサは、前記候補ＰＵのステータスに基づいて、前記動きベクトル候補が冗長であると決定するように更に構成された、Ｃ８に記載の装置。
［Ｃ１１］
前記プロセッサは、前記動きベクトル候補が、前記複数の動きベクトル候補の前記選択されたサブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、前記動きベクトル候補が冗長であると決定するように更に構成された、Ｃ８に記載の装置。
［Ｃ１２］
前記装置がエンコーダを備える、Ｃ１に記載の装置。
［Ｃ１３］
前記装置がデコーダを備える、Ｃ１に記載の装置。
［Ｃ１４］
前記装置が、前記メモリと前記プロセッサとを備える、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、及びビデオ遠隔会議機器のうちの少なくとも１つを更に備える、Ｃ１に記載の装置。
［Ｃ１５］
ビデオデータを符号化する方法であって、前記方法は、
複数の動きベクトル候補に関連付けられた情報を決定することと、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することとを備える、方法。
［Ｃ１６］
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、Ｃ１５に記載の方法。
［Ｃ１７］
前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のＰＵの各々のための重み付け係数に更に基づいており、前記重み付け係数が各ＰＵのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、Ｃ１６に記載の方法。
［Ｃ１８］
前記複数のＰＵの各々の前記重み付け係数が各ＰＵの前記サイズに正比例する、Ｃ１７に記載の方法。
［Ｃ１９］
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの１つを備え、
各空間動きベクトル候補の位置が前記ＭＥＲの外側に配置された、Ｃ１６に記載の方法。
［Ｃ２０］
各空間動きベクトル候補の前記優先度レベルが、対応するＰＵに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、Ｃ１９に記載の方法。
［Ｃ２１］
ＰＵのための左位置候補に対応する空間動きベクトル候補が、ＰＵのための左上位置候補よりも高い位置重み付け係数を有する、Ｃ２０に記載の方法。
［Ｃ２２］
前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
前記マージ候補リストから冗長動きベクトル候補を除外することとを更に備える、Ｃ１５に記載の方法。
［Ｃ２３］
前記動きベクトル候補が冗長であるかどうかを決定することが、動き冗長性検査に基づく、Ｃ２２に記載の方法。
［Ｃ２４］
前記動きベクトル候補が候補ＰＵ内に含まれており、
前記動きベクトル候補が冗長であるかどうかを決定することが、前記候補ＰＵのステータスに基づく、Ｃ２２に記載の方法。
［Ｃ２５］
前記動きベクトル候補は、前記候補ＰＵがイントラモードでコード化される場合に冗長であると決定される、Ｃ２４に記載の方法。
［Ｃ２６］
前記動きベクトル候補は、前記動きベクトル候補が、前記複数の動きベクトル候補の選択された前記サブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、冗長であると決定される、Ｃ２２に記載の方法。
［Ｃ２７］
ビデオコード化装置であって、前記装置は、
複数の動きベクトル候補に関連付けられた情報を決定するための手段と、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択するための手段と、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成するための手段とを備える、ビデオコード化装置。
［Ｃ２８］
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、Ｃ２７に記載の装置。
［Ｃ２９］
実行されたとき、装置に、
複数の動きベクトル候補に関連付けられた情報を受信することと、前記複数の動きベクトル候補の各々が、並列動き推定領域（ＭＥＲ）中で区分化された複数の予測単位（ＰＵ）のうちの少なくとも１つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の前記選択されたサブセットを含むように前記マージ候補リストを生成することとを行わせるコードを記憶した非一時的コンピュータ可読媒体。
［Ｃ３０］
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記ＭＥＲ中で区分化された前記複数のＰＵのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、Ｃ２９に記載の非一時的コンピュータ可読媒体。
【図１】
0006426184.tif 000002
【図２】
0006426184.tif 000003
【図３】
0006426184.tif 000004
【図４】
0006426184.tif 000005
【図５Ａ】
0006426184.tif 000006
【図５Ｂ】
0006426184.tif 000007
【図５Ｃ】
0006426184.tif 000008
【図５Ｄ】
0006426184.tif 000009
【図６】
0006426184.tif 000010
【図７Ａ】
0006426184.tif 000011
【図７Ｂ】
0006426184.tif 000012
【図７Ｃ】
0006426184.tif 000013
【図８Ａ】
0006426184.tif 000014
【図８Ｂ】
0006426184.tif 000015
【図８Ｃ】
0006426184.tif 000016
【図９Ａ】
0006426184.tif 000017
【図９Ｂ】
0006426184.tif 000018
【図９Ｃ】
0006426184.tif 000019
【図１０Ａ】
0006426184.tif 000020
【図１０Ｂ】
0006426184.tif 000021
【図１０Ｃ】
0006426184.tif 000022
【図１１Ａ】
0006426184.tif 000023
【図１１Ｂ】
0006426184.tif 000024
【図１１Ｃ】
0006426184.tif 000025
【図１２】
0006426184.tif 000026
【図１３】
0006426184.tif 000027
【図１４】
0006426184.tif 000028
【図１５】
0006426184.tif 000029
【図１６】
0006426184.tif 000030
【図１７】
0006426184.tif 000031