(57)【要約】  ビデオコーダは、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、ビデオコーダは、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定する。ビデオコーダは、現在ブロックの動きベクトルを決定し得る。ビデオコーダは、現在ブロックの動きベクトルに基づいて予測ブロックをも決定し得る。【選択図】図２７
2020523853.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビデオデコーダによって、前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記ビデオデコーダによって、前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記ビデオデコーダによって、前記現在ブロックのための前記ＭＶＰに基づいて、前記現在ブロックの動きベクトルを決定することと、
前記ビデオデコーダによって、前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記ビデオデコーダによって、前記予測ブロックに基づいて、前記現在ピクチャのサンプル値を再構築することと、
を備える、方法。
【請求項２】
前記現在ブロックのための前記ＭＶＰを決定することは、
前記ビデオデコーダによって、前記隣接しないブロックの前記動きベクトルに部分的に基づいて、動きベクトル予測子（ＭＶＰ）候補のリストを生成することと、ここにおいて、ＭＶＰ候補の前記リストは、前記隣接しないブロックの前記動きベクトルを指定するＭＶＰ候補を含む、
前記ビデオデコーダによって、ＭＶＰ候補の前記リスト中の前記ＭＶＰ候補の中から、前記現在ブロックのための前記ＭＶＰを決定することと、
を備える、請求項１に記載の方法。
【請求項３】
前記隣接しないブロックは第１の隣接しないブロックであり、前記方法は、
前記ビデオデコーダによって、前記リスト中で複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けること、をさらに備え、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記複数の隣接しないブロックは前記第１の隣接しないブロックを含み、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補は、前記現在ブロックからの対応する隣接しないブロックの距離に従って前記リスト中で順序付けられる、
請求項２に記載の方法。
【請求項４】
前記隣接しないブロックは第１の隣接しないブロックであり、前記方法は、
前記ビデオデコーダによって、第１の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を決定することと、
ここにおいて、前記第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの前記動きベクトルを指定し、
ここにおいて、前記第１の複数の隣接しないブロックは前記第１の隣接しないブロックを含む、
前記ビデオデコーダによって、前記リスト中で第２の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けることと、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第１の複数のＮＡ−ＳＭＶＰ候補中の重複しないＮＡ−ＳＭＶＰ候補を備え、
ここにおいて、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第２の複数のＮＡ−ＳＭＶＰ候補中の前記ＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが前記第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度に従って、前記リスト中で順序付けられる、
をさらに備える、請求項２に記載の方法。
【請求項５】
前記ビデオデコーダによって、前記リストにプルーニングプロセスを適用することをさらに備え、ここにおいて、前記プルーニングプロセスは前記現在ブロックのブロックサイズに適応可能である、請求項２に記載の方法。
【請求項６】
前記現在ブロックのための前記ＭＶＰはアフィンモードにある、請求項１に記載の方法。
【請求項７】
前記現在ブロックの前記動きベクトルを決定することは、
前記ビデオデコーダによって、前記現在ブロックの前記動きベクトルが前記現在ブロックのための前記ＭＶＰの動きベクトルを指定するように、前記現在ブロックの前記動きベクトルを決定すること、
を備える、請求項１に記載の方法。
【請求項８】
前記現在ブロックの前記動きベクトルを決定することは、
前記ビデオデコーダによって、前記現在ブロックの前記動きベクトルが前記現在ブロックのための前記ＭＶＰの動き情報の動きベクトル＋動きベクトル差分（ＭＶＤ）に等しくなるように、前記現在ブロックの前記動きベクトルを決定すること、
を備える、請求項１に記載の方法。
【請求項９】
前記隣接しないブロックは、前記現在ブロックの位置に対するブロックの固定パターンを定義するテンプレート中のブロックである、請求項１に記載の方法。
【請求項１０】
前記ビデオデコーダによって、前記現在ピクチャ中にあり、前記現在ブロックより前に復号される各ブロックについての動きベクトルを指定するＭＶＰ候補を備えるグローバル動きベクトル候補リストを決定することと、
前記ビデオデコーダによって、前記グローバル動きベクトル候補リスト中のＭＶＰ候補から前記隣接しないブロックの前記動きベクトルを決定することと、
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記ビデオデコーダによって、先入れ先出し（ＦＩＦＯ）バッファに複数の隣接しないＭＶＰ候補を記憶することと、前記複数の隣接しないＭＶＰ候補は、前記隣接しないブロックの前記動きベクトルを指定する隣接しないＭＶＰ候補を含む、
前記ビデオデコーダによって、最も早期に追加された隣接しないＭＶＰ候補を前記ＦＩＦＯバッファから削除するために前記ＦＩＦＯバッファを更新し、前記ＦＩＦＯバッファにＭＶＰ候補を追加することと、
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記ビデオデコーダによって、コーディングユニット（ＣＵ）レベルフレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補のセットを決定することと、
前記ビデオデコーダによって、ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットからＣＵレベルＦＲＵＣ動きベクトル候補を選択することと、
前記ビデオデコーダによって、少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定することと、
前記ビデオデコーダによって、ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいて前記ＣＵレベル動きベクトルを改良することと、
をさらに備え、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットおよびＦＲＵＣサブＣＵレベル動きベクトル候補の前記セットのうちの少なくとも１つは、前記隣接しないブロックの前記動きベクトルを指定する隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）を含む、
請求項１に記載の方法。
【請求項１３】
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと前記現在ブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更すること、
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記隣接しないブロックの前記位置を変更することは、前記隣接しないブロックの位置を、前記現在ピクチャ中のブロックの第２のグリッドよりも粗い前記現在ピクチャ中のブロックの第１のグリッド上の位置に丸めることを備える、請求項１３に記載の方法。
【請求項１５】
前記隣接しないブロックの前記位置を変更することは、前記隣接しないブロックの位置を前記距離しきい値にクリッピングすることを備える、請求項１３に記載の方法。
【請求項１６】
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと現在コーディングツリーブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更することをさらに備え、前記現在コーディングツリーブロックは前記現在ブロックを含んでいる、
請求項１に記載の方法。
【請求項１７】
ビデオデータを符号化する方法であって、
ビデオエンコーダによって、前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記ビデオエンコーダによって、前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記ビデオエンコーダによって、前記現在ブロックの動きベクトルを決定することと、ここにおいて、前記動きベクトルは、前記現在ブロックのための前記ＭＶＰの動きベクトルに等しいか、または、前記現在ブロックのための前記ＭＶＰの前記動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、
前記ビデオエンコーダによって、前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記ビデオエンコーダによって、前記予測ブロックに基づいて、残差サンプル値を生成することと、
を備える、方法。
【請求項１８】
前記現在ブロックのための前記ＭＶＰを決定することは、
前記ビデオエンコーダによって、前記隣接しないブロックの前記動きベクトルに部分的に基づいて、動きベクトル予測子（ＭＶＰ）候補のリストを生成することと、ここにおいて、ＭＶＰ候補の前記リストは、前記隣接しないブロックの前記動きベクトルを指定するＭＶＰ候補を含む、
前記ビデオエンコーダによって、ＭＶＰ候補の前記リスト中の前記ＭＶＰ候補の中から、前記現在ブロックのための前記ＭＶＰを決定することと、
を備える、請求項１７に記載の方法。
【請求項１９】
前記隣接しないブロックは第１の隣接しないブロックであり、前記方法は、
前記ビデオエンコーダによって、前記リスト中で複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けること、をさらに備え、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記複数の隣接しないブロックは前記第１の隣接しないブロックを含み、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補は、前記現在ブロックからの対応する隣接しないブロックの距離に従って前記リスト中で順序付けられる、
請求項１８に記載の方法。
【請求項２０】
前記隣接しないブロックは第１の隣接しないブロックであり、前記方法は、
前記ビデオエンコーダによって、第１の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を決定することと、
ここにおいて、前記第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記第１の複数の隣接しないブロックは前記第１の隣接しないブロックを含む、
前記ビデオエンコーダによって、前記リスト中に第２の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を含めることと、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第１の複数のＮＡ−ＳＭＶＰ候補中の重複しないＮＡ−ＳＭＶＰ候補を備え、
ここにおいて、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第２の複数のＮＡ−ＳＭＶＰ候補中の前記ＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが前記第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度に従って、前記リスト中で順序付けられる、
をさらに備える、請求項１８に記載の方法。
【請求項２１】
前記ビデオエンコーダによって、前記リストにプルーニングプロセスを適用することをさらに備え、ここにおいて、前記プルーニングプロセスは前記現在ブロックのブロックサイズに適応可能である、請求項１８に記載の方法。
【請求項２２】
前記現在ブロックのための前記ＭＶＰはアフィンモードにある、請求項１７に記載の方法。
【請求項２３】
前記隣接しないブロックは、前記現在ブロックの位置に対するブロックの固定パターンを定義するテンプレート中のブロックである、請求項１７に記載の方法。
【請求項２４】
前記ビデオエンコーダによって、前記現在ピクチャ中にあり、前記現在ブロックより前に符号化される各ブロックについての動きベクトルを指定するＭＶＰ候補を備えるグローバル動きベクトル候補リストを決定することと、
前記ビデオエンコーダによって、前記グローバル動きベクトル候補リスト中のＭＶＰ候補から前記隣接しないブロックの前記動きベクトルを決定することと、
をさらに備える、請求項１７に記載の方法。
【請求項２５】
前記ビデオエンコーダによって、先入れ先出し（ＦＩＦＯ）バッファに複数の隣接しないＭＶＰ候補を記憶することと、前記複数の隣接しないＭＶＰ候補は、前記隣接しないブロックの前記動きベクトルを指定する隣接しないＭＶＰ候補を含む、
前記ビデオエンコーダによって、最も早期に追加された隣接しないＭＶＰ候補を前記ＦＩＦＯバッファから削除するために前記ＦＩＦＯバッファを更新し、前記ＦＩＦＯバッファにＭＶＰ候補を追加することと、
をさらに備える、請求項１７に記載の方法。
【請求項２６】
前記ビデオエンコーダによって、コーディングユニット（ＣＵ）レベルフレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補のセットを決定することと、
前記ビデオエンコーダによって、ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットからＣＵレベルＦＲＵＣ動きベクトル候補を選択することと、
前記ビデオエンコーダによって、少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定することと、
前記ビデオエンコーダによって、ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいて前記ＣＵレベル動きベクトルを改良することと、
をさらに備え、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットおよびＦＲＵＣサブＣＵレベル動きベクトル候補の前記セットのうちの少なくとも１つは、前記隣接しないブロックの前記動きベクトルを指定する隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）を含む、
請求項１７に記載の方法。
【請求項２７】
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと前記現在ブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更すること、
をさらに備える、請求項１７に記載の方法。
【請求項２８】
前記隣接しないブロックの前記位置を変更することは、前記隣接しないブロックの位置を、前記現在ピクチャ中のブロックの第２のグリッドよりも粗い前記現在ピクチャ中のブロックの第１のグリッド上の位置に丸めることを備える、請求項２７に記載の方法。
【請求項２９】
前記隣接しないブロックの前記位置を変更することは、前記隣接しないブロックの位置を前記距離しきい値にクリッピングすることを備える、請求項２７に記載の方法。
【請求項３０】
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと現在コーディングツリーブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更することをさらに備え、前記現在コーディングツリーブロックは前記現在ブロックを含んでいる、
請求項１７に記載の方法。
【請求項３１】
ビデオデータを復号するための装置であって、
ビデオデータを記憶するように構成された１つまたは複数の記憶媒体と、
１つまたは複数のプロセッサと、
を備え、前記１つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記現在ブロックのための前記ＭＶＰに基づいて、前記現在ブロックの動きベクトルを決定することと、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記予測ブロックに基づいて、前記現在ピクチャのサンプル値を再構築することと、
を行うように構成された、装置。
【請求項３２】
前記１つまたは複数のプロセッサは、前記現在ブロックのための前記ＭＶＰを決定することの一部として、前記１つまたは複数のプロセッサが、
前記隣接しないブロックの前記動きベクトルに部分的に基づいて、動きベクトル予測子（ＭＶＰ）候補のリストを生成することと、ここにおいて、ＭＶＰ候補の前記リストは、前記隣接しないブロックの前記動きベクトルを指定するＭＶＰ候補を含む、
ＭＶＰ候補の前記リスト中の前記ＭＶＰ候補の中から、前記現在ブロックのための前記ＭＶＰを決定することと、
を行うように構成された、請求項３１に記載の装置。
【請求項３３】
前記隣接しないブロックは第１の隣接しないブロックであり、前記１つまたは複数のプロセッサは、
前記リスト中で複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けるようにさらに構成され、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記複数の隣接しないブロックは前記第１の隣接しないブロックを含み、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補は、前記現在ブロックからの対応する隣接しないブロックの距離に従って前記リスト中で順序付けられる、
請求項３２に記載の装置。
【請求項３４】
前記隣接しないブロックは第１の隣接しないブロックであり、前記１つまたは複数のプロセッサは、
第１の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を決定することと、
ここにおいて、前記第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの前記動きベクトルを指定し、
ここにおいて、前記第１の複数の隣接しないブロックは前記第１の隣接しないブロックを含む、
前記リスト中で第２の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けることと、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第１の複数のＮＡ−ＳＭＶＰ候補中の重複しないＮＡ−ＳＭＶＰ候補を備え、
ここにおいて、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第２の複数のＮＡ−ＳＭＶＰ候補中の前記ＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが前記第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度に従って、前記リスト中で順序付けられる、
を行うようにさらに構成された、請求項３２に記載の装置。
【請求項３５】
前記１つまたは複数のプロセッサは、前記リストにプルーニングプロセスを適用するようにさらに構成され、ここにおいて、前記プルーニングプロセスは前記現在ブロックのブロックサイズに適応可能である、請求項３２に記載の装置。
【請求項３６】
前記現在ブロックのための前記ＭＶＰはアフィンモードにある、請求項３１に記載の装置。
【請求項３７】
前記１つまたは複数のプロセッサは、前記現在ブロックの前記動きベクトルを決定することの一部として、前記１つまたは複数のプロセッサが、
前記現在ブロックの前記動きベクトルが前記現在ブロックのための前記ＭＶＰ候補の動きベクトルを指定するように、前記現在ブロックの前記動きベクトルを決定する、
ように構成された、請求項３１に記載の装置。
【請求項３８】
前記１つまたは複数のプロセッサは、前記現在ブロックの前記動きベクトルを決定することの一部として、前記１つまたは複数のプロセッサが、
前記現在ブロックの前記動きベクトルが前記現在ブロックのための前記ＭＶＰの動き情報の動きベクトルに等しくなるように、前記現在ブロックの前記動きベクトルを決定する
ように構成された、請求項３１に記載の装置。
【請求項３９】
前記隣接しないブロックは、前記現在ブロックの位置に対するブロックの固定パターンを定義するテンプレート中のブロックである、請求項３１に記載の装置。
【請求項４０】
前記１つまたは複数のプロセッサは、
前記現在ピクチャ中にあり、前記現在ブロックより前に復号される各ブロックについての動きベクトルを指定するＭＶＰ候補を備えるグローバル動きベクトル候補リストを決定することと、
前記グローバル動きベクトル候補リスト中のＭＶＰ候補から前記隣接しないブロックの前記動きベクトルを決定することと、
を行うようにさらに構成された、請求項３１に記載の装置。
【請求項４１】
前記１つまたは複数のプロセッサは、
先入れ先出し（ＦＩＦＯ）バッファに複数の隣接しないＭＶＰ候補を記憶することと、前記複数の隣接しないＭＶＰ候補は、前記隣接しないブロックの前記動きベクトルを指定する隣接しないＭＶＰ候補を含む、
最も早期に追加された隣接しないＭＶＰ候補を前記ＦＩＦＯバッファから削除するために前記ＦＩＦＯバッファを更新し、前記ＦＩＦＯバッファにＭＶＰ候補を追加することと、
を行うようにさらに構成された、請求項３１に記載の装置。
【請求項４２】
前記１つまたは複数のプロセッサは、
コーディングユニット（ＣＵ）レベルフレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補のセットを決定することと、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットからＣＵレベルＦＲＵＣ動きベクトル候補を選択することと、
少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定することと、
ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいて前記ＣＵレベル動きベクトルを改良することと、
を行うようにさらに構成され、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットおよびＦＲＵＣサブＣＵレベル動きベクトル候補の前記セットのうちの少なくとも１つは、前記隣接しないブロックの前記動きベクトルを指定する隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）を含む、
請求項３１に記載の装置。
【請求項４３】
前記１つまたは複数のプロセッサは、
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと前記現在ブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更する、
ように構成された、請求項３１に記載の装置。
【請求項４４】
前記１つまたは複数のプロセッサは、前記隣接しないブロックの前記位置を変更することの一部として、前記１つまたは複数のプロセッサが、前記隣接しないブロックの位置を、前記現在ピクチャ中のブロックの第２のグリッドよりも粗い前記現在ピクチャ中のブロックの第１のグリッド上の位置に丸めるように構成された、請求項４３に記載の装置。
【請求項４５】
前記１つまたは複数のプロセッサは、前記隣接しないブロックの前記位置を変更することの一部として、前記１つまたは複数のプロセッサが、前記隣接しないブロックの位置を前記距離しきい値にクリッピングするように構成された、請求項４３に記載の装置。
【請求項４６】
前記１つまたは複数のプロセッサは、
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと現在コーディングツリーブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更するように構成され、前記現在コーディングツリーブロックは前記現在ブロックを含んでいる、
請求項３１に記載の装置。
【請求項４７】
前記装置は、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
を備える、請求項３１に記載の装置。
【請求項４８】
ビデオデータを符号化するための装置であって、
ビデオデータを記憶するように構成された１つまたは複数の記憶媒体と、
１つまたは複数のプロセッサと、
を備え、前記１つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記現在ブロックの動きベクトルを決定することと、ここにおいて、前記動きベクトルは、前記現在ブロックのための前記ＭＶＰの動きベクトルに等しいか、または、前記現在ブロックのための前記ＭＶＰの前記動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記予測ブロックに基づいて、残差サンプル値を生成することと、
を行うように構成された、装置。
【請求項４９】
前記１つまたは複数のプロセッサは、前記現在ブロックのための前記ＭＶＰを決定することの一部として、前記１つまたは複数のプロセッサが、
前記隣接しないブロックの前記動きベクトルに部分的に基づいて、動きベクトル予測子（ＭＶＰ）候補のリストを生成することと、ここにおいて、ＭＶＰ候補の前記リストは、前記隣接しないブロックの前記動きベクトルを指定するＭＶＰ候補を含む、
ＭＶＰ候補の前記リスト中の前記ＭＶＰ候補の中から、前記現在ブロックのための前記ＭＶＰを決定することと、
を行うように構成された、請求項４８に記載の装置。
【請求項５０】
前記隣接しないブロックは第１の隣接しないブロックであり、前記１つまたは複数のプロセッサは、
前記リスト中で複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を順序付けるようにさらに構成され、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記複数の隣接しないブロックは前記第１の隣接しないブロックを含み、
ここにおいて、前記複数のＮＡ−ＳＭＶＰ候補は、前記現在ブロックからの対応する隣接しないブロックの距離に従って前記リスト中で順序付けられる、
請求項４９に記載の装置。
【請求項５１】
前記隣接しないブロックは第１の隣接しないブロックであり、前記１つまたは複数のプロセッサは、
第１の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を決定することと、
ここにおいて、前記第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、前記それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、前記それぞれのＮＡ−ＳＭＶＰは、前記それぞれの隣接しないブロックの動きベクトルを指定し、
ここにおいて、前記第１の複数の隣接しないブロックは前記第１の隣接しないブロックを含む、
前記リスト中に第２の複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）候補を含めることと、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第１の複数のＮＡ−ＳＭＶＰ候補中の重複しないＮＡ−ＳＭＶＰ候補を備え、
ここにおいて、前記第２の複数のＮＡ−ＳＭＶＰ候補は、前記第２の複数のＮＡ−ＳＭＶＰ候補中の前記ＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが前記第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度に従って、前記リスト中で順序付けられる、
を行うようにさらに構成された、請求項５０に記載の装置。
【請求項５２】
前記１つまたは複数のプロセッサは、前記リストにプルーニングプロセスを適用するようにさらに構成され、ここにおいて、前記プルーニングプロセスは前記現在ブロックのブロックサイズに適応可能である、請求項４９に記載の装置。
【請求項５３】
前記現在ブロックのための前記ＭＶＰはアフィンモードにある、請求項４８に記載の装置。
【請求項５４】
前記隣接しないブロックは、前記現在ブロックの位置に対するブロックの固定パターンを定義するテンプレート中のブロックである、請求項４８に記載の装置。
【請求項５５】
前記１つまたは複数のプロセッサは、
前記現在ピクチャ中にあり、前記現在ブロックより前に符号化される各ブロックについての動きベクトルを指定するＭＶＰ候補を備えるグローバル動きベクトル候補リストを決定することと、
前記グローバル動きベクトル候補リスト中のＭＶＰ候補から前記隣接しないブロックの前記動きベクトルを決定することと、
を行うようにさらに構成された、請求項４８に記載の装置。
【請求項５６】
前記１つまたは複数のプロセッサは、
先入れ先出し（ＦＩＦＯ）バッファに複数の隣接しないＭＶＰ候補を記憶することと、前記複数の隣接しないＭＶＰ候補は、前記隣接しないブロックの前記動きベクトルを指定する隣接しないＭＶＰ候補を含む、
最も早期に追加された隣接しないＭＶＰ候補を前記ＦＩＦＯバッファから削除するために前記ＦＩＦＯバッファを更新し、前記ＦＩＦＯバッファにＭＶＰ候補を追加することと、
を行うようにさらに構成された、請求項４８に記載の装置。
【請求項５７】
前記１つまたは複数のプロセッサは、
コーディングユニット（ＣＵ）レベルフレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補のセットを決定することと、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットからＣＵレベルＦＲＵＣ動きベクトル候補を選択することと、
少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定することと、
ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいて前記ＣＵレベル動きベクトルを改良することと、
を行うようにさらに構成され、
ＣＵレベルＦＲＵＣ動きベクトル候補の前記セットおよびＦＲＵＣサブＣＵレベル動きベクトル候補の前記セットのうちの少なくとも１つは、前記隣接しないブロックの前記動きベクトルを指定する隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）を含む、
請求項４８に記載の装置。
【請求項５８】
前記１つまたは複数のプロセッサは、
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと前記現在ブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更する、
ように構成された、請求項４８に記載の装置。
【請求項５９】
前記１つまたは複数のプロセッサは、前記隣接しないブロックの前記位置を変更することの一部として、前記１つまたは複数のプロセッサが、前記隣接しないブロックの位置を、前記現在ピクチャ中のブロックの第２のグリッドよりも粗い前記現在ピクチャ中のブロックの第１のグリッド上の位置に丸めるように構成された、請求項５８に記載の装置。
【請求項６０】
前記１つまたは複数のプロセッサは、前記隣接しないブロックの前記位置を変更することの一部として、前記１つまたは複数のプロセッサが、前記隣接しないブロックの位置を前記距離しきい値にクリッピングするように構成された、請求項５８に記載の装置。
【請求項６１】
前記１つまたは複数のプロセッサは、
前記隣接しないブロックの前記動きベクトルを決定することより前に、および前記隣接しないブロックと現在コーディングツリーブロックとの間の距離がしきい値距離よりも大きいことに基づいて、前記隣接しないブロックの位置を変更するように構成され、前記現在コーディングツリーブロックは前記現在ブロックを含んでいる、請求項４８に記載の装置。
【請求項６２】
前記装置は、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
を備える、請求項４８に記載の装置。
【請求項６３】
ビデオデータを復号するための装置であって、
前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定するための手段と、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定するための手段と、
前記現在ブロックのための前記ＭＶＰに基づいて、前記現在ブロックの動きベクトルを決定するための手段と、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定するための手段と、
前記予測ブロックに基づいて、前記現在ピクチャのサンプル値を再構築するための手段と、
を備える、装置。
【請求項６４】
ビデオデータを符号化するための装置であって、
前記ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定するための手段と、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定するための手段と、
前記現在ブロックの動きベクトルを決定するための手段と、ここにおいて、前記動きベクトルは、前記現在ブロックのための前記ＭＶＰの動きベクトルに等しいか、または、前記現在ブロックのための前記ＭＶＰの前記動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定するための手段と、
前記予測ブロックに基づいて、残差サンプル値を生成するための手段と、
を備える、装置。
【請求項６５】
実行されたとき、１つまたは複数のプロセッサに、
ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記現在ブロックのための前記ＭＶＰに基づいて、前記現在ブロックの動きベクトルを決定することと、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記予測ブロックに基づいて、前記現在ピクチャのサンプル値を再構築することと、
を行わせる命令を記憶するコンピュータ可読記憶媒体。
【請求項６６】
実行されたとき、１つまたは複数のプロセッサに、
ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、前記隣接しないブロックは、前記現在ピクチャの現在ブロックに隣接しない、
前記隣接しないブロックの前記動きベクトルに基づいて、前記現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、
前記現在ブロックの動きベクトルを決定することと、ここにおいて、前記動きベクトルは、前記現在ブロックのための前記ＭＶＰの動きベクトルに等しいか、または、前記現在ブロックのための前記ＭＶＰの前記動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、
前記現在ブロックの前記動きベクトルに基づいて予測ブロックを決定することと、
前記予測ブロックに基づいて、残差サンプル値を生成することと、
を行わせる命令を記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により組み込まれる、２０１７年６月１３日に出願された米国仮特許出願第６２／５１９，００７号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングを実施するように構成されたデバイスに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、またはＩＴＵ−Ｔ  Ｈ．２６５，高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実施し得る。ブロックベースのビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、コーディングツリーブロック（coding tree block）およびコーディングブロックなどのビデオブロックに区分され得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。
【発明の概要】
【０００５】
[0005]概して、本開示は、動きベクトル予測に関係する技法について説明する。本開示の技法は、ＨＥＶＣ（高効率ビデオコーディング）などの既存のビデオコーデック、または任意の将来のビデオコーディング規格のいずれかに適用され得る。
【０００６】
[0006]一例では、本開示は、ビデオデータを復号する方法を説明し、本方法は、ビデオデコーダによって、ビデオデータの現在ピクチャの隣接しない（non-adjacent）ブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、ビデオデコーダによって、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、ビデオデコーダによって、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定することと、ビデオデコーダによって、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、ビデオデコーダによって、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築することとを備える。
【０００７】
[0007]別の例では、本開示は、ビデオデータを符号化する方法を説明し、本方法は、ビデオエンコーダによって、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、ビデオエンコーダによって、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、ビデオエンコーダによって、現在ブロックの動きベクトルを決定することと、ここにおいて、動きベクトルが、現在ブロックのためのＭＶＰの動きベクトルに等しいか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、ビデオエンコーダによって、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、ビデオエンコーダによって、予測ブロックに基づいて、残差サンプル値を生成することとを備える。
【０００８】
[0008]別の例では、本開示は、ビデオデータを復号するための装置を説明し、本装置は、ビデオデータを記憶するように構成された１つまたは複数の記憶媒体と、１つまたは複数のプロセッサとを備え、１つまたは複数のプロセッサは、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定することと、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築することとを行うように構成される。
【０００９】
[0009]別の例では、本開示は、ビデオデータを符号化するための装置を説明し、本方法は、ビデオエンコーダによって、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、ビデオエンコーダによって、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、ビデオエンコーダによって、現在ブロックの動きベクトルを決定することと、ここにおいて、動きベクトルが、現在ブロックのためのＭＶＰの動きベクトルに等しいか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、ビデオエンコーダによって、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、ビデオエンコーダによって、予測ブロックに基づいて、残差サンプル値を生成することとを備える。
【００１０】
[0010]別の例では、本開示は、ビデオデータを復号するための装置を説明し、本装置は、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定するための手段と、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定するための手段と、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定するための手段と、現在ブロックの動きベクトルに基づいて予測ブロックを決定するための手段と、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築するための手段とを備える。
【００１１】
[0011]別の例では、本開示は、ビデオデータを符号化するための装置を説明し、本装置は、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定するための手段と、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定するための手段と、現在ブロックの動きベクトルを決定するための手段と、ここにおいて、動きベクトルが、現在ブロックのためのＭＶＰの動きベクトルに等しいか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、現在ブロックの動きベクトルに基づいて予測ブロックを決定するための手段と、予測ブロックに基づいて、残差サンプル値を生成するための手段とを備える。
【００１２】
[0012]別の例では、本開示は、命令を記憶するコンピュータ可読記憶媒体を説明し、前記命令は、実行されたとき、１つまたは複数のプロセッサに、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定することと、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築することとを行わせる。
【００１３】
[0013]別の例では、本開示は、命令を記憶するコンピュータ可読記憶媒体を説明し、前記命令は、実行されたとき、１つまたは複数のプロセッサに、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定することと、隣接しないブロックが、現在ピクチャの現在ブロックに隣接しない、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定することと、現在ブロックの動きベクトルを決定することと、ここにおいて、動きベクトルが、現在ブロックのためのＭＶＰの動きベクトルに等しいか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しい、現在ブロックの動きベクトルに基づいて予測ブロックを決定することと、予測ブロックに基づいて、残差サンプル値を生成することとを行わせる命令を記憶するコンピュータ可読記憶媒体について説明する。
【００１４】
[0014]本開示の１つまたは複数の態様の詳細が添付の図面および以下の説明に記載されている。本開示で説明される技法の他の特徴、目的、および利点は、その説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】[0015]本開示で説明される１つまたは複数の技法を使用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0016]マージ／スキップモードのための空間および時間近隣動きベクトル候補の一例の図。
【図３】[0017]両方向（bilateral）マッチングの一例の図。
【図４】[0018]テンプレートマッチングの一例の図。
【図５】[0019]フレームレートアップコンバージョン（frame-rate up conversion）における一方向（unilateral）動き推定の一例の図。
【図６】[0020]両方向テンプレートマッチングに基づくデコーダ側動きベクトル改良（decoder-side motion vector refinement）の一例の図。
【図７】[0021]コーディングユニットのための高度時間動きベクトル予測（advanced temporal motion vector prediction）の動き予測の一例の図。
【図８】[0022]４つのサブブロックとそれの近隣ブロックとをもつ１つのコーディングユニットの一例の図。
【図９】[0023]現在アフィンブロックのための例示的な簡略化されたアフィン（affine）動きモデルのブロック図。
【図１０】[0024]現在アフィンブロックのための簡略化されたアフィン動きモデルの一例の図。
【図１１】[0025]動き補償予測動きベクトルフィールド（motion vector field）の一例の図。
【図１２】[0026]記憶された動きベクトルフィールドの一例の図。
【図１３】[0027]ＡＦ＿ＩＮＴＥＲについての動きベクトル予測の一例の図。
【図１４Ａ】[0028]ＡＦ＿ＭＥＲＧＥについての候補ブロックのための選択順序を示すブロック図。
【図１４Ｂ】[0029]左下候補ブロックがアフィンモードにおいてコーディングされる場合のＡＦ＿ＭＥＲＧＥについての候補を示すブロック図。
【図１５】[0030]本開示の技法による、例示的な隣接しないブロックを示すブロック図。
【図１６】[0031]本開示の技法による、隣接しないブロックの選択の一例を示すブロック図。
【図１７】[0032]親ブロックに基づく隣接しないブロックの選択の一例を示すブロック図。
【図１８Ａ】[0033]本開示の技法による、隣接しないブロックの位置変更の一例を示すブロック図。
【図１８Ｂ】[0034]本開示の技法による、隣接しないブロックの位置変更の一例を示すブロック図。
【図１９Ａ】[0035]本開示の技法による、隣接しないブロックを変更するためのしきい値の一例を示すブロック図。
【図１９Ｂ】[0036]本開示の技法による、隣接しないブロックを変更するためのしきい値の一例を示すブロック図。
【図２０】[0037]本開示の技法による、隣接しないブロックの選択の一例を示すブロック図。
【図２１】[0038]本開示の技法による、隣接しないブロックの選択の一例を示すブロック図。
【図２２】[0039]本開示の技法による、隣接しないブロックの選択の一例を示すブロック図。
【図２３】[0040]本開示の技法による、親ブロックに基づく隣接しないブロックの選択の一例を示すブロック図。
【図２４】[0041]本開示で説明される１つまたは複数の技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図２５】[0042]本開示で説明される１つまたは複数の技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図２６】[0043]本開示の１つまたは複数の技法による、ビデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図２７】[0044]本開示の１つまたは複数の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図２８】[0045]本開示の技法による、フレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補を使用してＮＡ−ＳＭＶＰを決定するための例示的な動作を示すフローチャート。
【図２９】[0046]本開示の１つまたは複数の技法による、現在ブロックのためのＭＶＰ候補のリスト中に合成候補を含めるビデオエンコーダの例示的な動作を示すフローチャート。
【図３０】[0047]本開示の１つまたは複数の技法による、現在ブロックのためのＭＶＰ候補のリスト中に合成候補を含めるビデオデコーダの例示的な動作を示すフローチャート。
【図３１】[0048]本開示の技法による、ビデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図３２】[0049]本開示の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図３３】[0050]本開示の技法による、ビデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図３４】[0051]本開示の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【図３５】[0052]本開示の技法による、ビデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャート。
【図３６】[0053]本開示の技法による、ビデオデータを復号するためのビデオデコーダの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１６】
[0054]ビデオ圧縮が改善するにつれて、動きベクトルを表すために使用される符号化データの比率が上昇した。したがって、より大きいビデオ圧縮を達成するために、動きベクトルがどのように符号化されるかを改善することが望ましいことがある。より大きいビデオ圧縮を達成することは、既存のインフラストラクチャを通してより高品質のビデオデータを送ることが可能であること、ネットワーク輻輳を低減することなど、多くの理由のために望ましい。動きベクトル予測は、ブロックのための動きベクトルを符号化するために使用されるデータの量を低減する１つの一般的なやり方である。たいていの動きベクトル予測システムでは、ビデオエンコーダが、ブロックのための動きベクトル予測子のリストを決定し、動きベクトル予測子を選択し、次いで、選択された動きベクトルのリスト中の位置をシグナリングする。ビデオデコーダが、動きベクトル予測子の同じリストを決定し、ビットストリーム中でシグナリングされたデータに基づいて、選択された動きベクトル予測子を決定する。ビデオデコーダは、次いで、ブロックの１つまたは複数の動きベクトルを決定するために動きベクトル予測子を使用し得る。
【００１７】
[0055]本開示は、再構築された動きベクトル情報をより十分に使用することによって、動きベクトル予測を改善し、それにより、ビデオ圧縮効率を潜在的に改善し得る技法について説明する。たとえば、本開示は、現在ピクチャの現在ブロックに空間的に隣接し（adjacent）ない現在ピクチャの１つまたは複数のブロックからの動きベクトル予測子を使用する技法について説明する。この例では、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）が、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、この例では、ビデオコーダは、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定し得る。ビデオコーダは、次いで、（たとえば、現在ブロックのためのＭＶＰに基づいて）現在ブロックの動きベクトルを決定し得る。さらに、ビデオコーダは、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る。
【００１８】
[0056]さらに、本開示は、合成動きベクトル候補を生成するための技法について説明する。本開示は、追加の時間動きベクトル予測子（temporal motion vector predictor）候補を生成するための技法についても説明する。さらに、本開示は、現在ブロックのための最確（most probable）イントラ予測モードのセット中の１つまたは複数の最確イントラ予測モードを決定するために、現在ピクチャの現在ブロックに空間的に隣接しない現在ピクチャの１つまたは複数のブロックからのイントラ予測モードを使用する技法について説明する。本開示の技法、またはそれの部分組合せは、一緒にまたは別々に使用され得る。
【００１９】
[0057]図１は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。ソースデバイス１２はビデオデータを符号化するための装置であり得、宛先デバイス１４はビデオデータを復号するための装置であり得る。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４に符号化ビデオデータを与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレットコンピュータ、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスおよび装置のいずれかを備え得る。いくつかの場合には、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備される。したがって、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信デバイスであり得る。本開示で説明される技法は、ワイヤレスおよび／またはワイヤード適用例に適用され得る。ソースデバイス１２は、例示的なビデオ符号化デバイス（すなわち、ビデオデータを符号化するためのデバイス）である。宛先デバイス１４は、例示的なビデオ復号デバイス（すなわち、ビデオデータを復号するためのデバイス）である。
【００２０】
[0058]図１の図示されたシステム１０は一例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実施され得る。いくつかの例では、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによって実施され得る。ソースデバイス１２と宛先デバイス１４とは、ソースデバイス１２が宛先デバイス１４への送信のためのコード化ビデオデータを生成するような、コーディングデバイスの例である。いくつかの例では、ソースデバイス１２と宛先デバイス１４とは、ソースデバイス１２および宛先デバイス１４の各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作する。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス１２と宛先デバイス１４との間の片方向または二方向ビデオ送信をサポートし得る。
【００２１】
[0059]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオデータを記憶するように構成された記憶媒体１９と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２６と、符号化ビデオデータを記憶するように構成された記憶媒体２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。他の例では、ソースデバイス１２と宛先デバイス１４とは、他の構成要素または構成を含む。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１４は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００２２】
[0060]ビデオソース１８はビデオデータのソースである。ビデオデータは一連のピクチャを備え得る。ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースを含み得る。いくつかの例では、ビデオソース１８は、コンピュータグラフィックスベースのビデオデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成する。記憶媒体１９は、ビデオデータを記憶するように構成され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。
【００２３】
[0061]出力インターフェース２２は、コンピュータ可読媒体１６に、符号化ビデオ情報を出力し得る。出力インターフェース２２は、様々なタイプの構成要素またはデバイスを備え得る。たとえば、出力インターフェース２２は、ワイヤレス送信機、モデム、ワイヤードネットワーキング構成要素（たとえば、イーサネット（登録商標）カード）、または別の物理的構成要素を備え得る。出力インターフェース２２がワイヤレス送信機を備える例では、出力インターフェース２２は、４Ｇ、４Ｇ−ＬＴＥ（登録商標）、ＬＴＥアドバンスト、５Ｇなどのセルラー通信規格に従って変調された、符号化ビデオデータなどのデータを送信するように構成され得る。出力インターフェース２２がワイヤレス送信機を備えるいくつかの例では、出力インターフェース２２は、ＩＥＥＥ８０２．１１仕様、ＩＥＥＥ８０２．１５仕様（たとえば、ＺｉｇＢｅｅ（登録商標））、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格などの他のワイヤレス規格に従って変調された、符号化ビデオデータなどのデータを送信するように構成され得る。いくつかの例では、出力インターフェース２２の回路は、ビデオエンコーダ２０、および／またはソースデバイス１２の他の構成要素の回路に組み込まれる。たとえば、ビデオエンコーダ２０および出力インターフェース２２は、システムオンチップ（ＳｏＣ）の一部であり得る。ＳｏＣは、汎用マイクロプロセッサ、グラフィックス処理ユニットなど、他の構成要素をも含み得る。
【００２４】
[0062]宛先デバイス１４は、コンピュータ可読媒体１６を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。いくつかの例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備える。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。宛先デバイス１４は、符号化ビデオデータおよび復号ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体を備え得る。
【００２５】
[0063]いくつかの例では、出力インターフェース２２は、符号化ビデオデータなどのデータを、ストレージデバイスなどの中間デバイスに出力し得る。同様に、宛先デバイス１４の入力インターフェース２６は、中間デバイスから符号化データを受信し得る。中間デバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。いくつかの例では、中間デバイスはファイルサーバに対応する。例示的なファイルサーバは、ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。
【００２６】
[0064]宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２７】
[0065]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００２８】
[0066]宛先デバイス１４の入力インターフェース２６は、コンピュータ可読媒体１６からデータを受信する。入力インターフェース２６は、様々なタイプの構成要素またはデバイスを備え得る。たとえば、入力インターフェース２６は、ワイヤレス受信機、モデム、ワイヤードネットワーキング構成要素（たとえば、イーサネットカード）、または別の物理的構成要素を備え得る。入力インターフェース２６がワイヤレス受信機を備える例では、入力インターフェース２６は、４Ｇ、４Ｇ−ＬＴＥ、ＬＴＥアドバンスト、５Ｇなどのセルラー通信規格に従って変調された、ビットストリームなどのデータを受信するように構成され得る。入力インターフェース２６がワイヤレス受信機を備えるいくつかの例では、入力インターフェース２６は、ＩＥＥＥ８０２．１１仕様、ＩＥＥＥ８０２．１５仕様（たとえば、ＺｉｇＢｅｅ）、Ｂｌｕｅｔｏｏｔｈ規格などの他のワイヤレス規格に従って変調された、ビットストリームなどのデータを受信するように構成され得る。いくつかの例では、入力インターフェース２６の回路は、ビデオデコーダ３０、および／または宛先デバイス１４の他の構成要素の回路に組み込まれ得る。たとえば、ビデオデコーダ３０および入力インターフェース２６は、ＳｏＣの部分であり得る。ＳｏＣは、汎用マイクロプロセッサ、グラフィックス処理ユニットなど、他の構成要素をも含み得る。
【００２９】
[0067]記憶媒体２８は、入力インターフェース２６によって受信された符号化ビデオデータ（たとえば、ビットストリーム）など、符号化ビデオデータを記憶するように構成され得る。ディスプレイデバイス３２は、ユーザに復号ビデオデータを表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３０】
[0068]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し得、本開示の技法を実施するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオコーディング規格または仕様に従ってビデオデータを符号化および復号する。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、あるいは別のビデオコーディング規格または仕様に従ってビデオデータを符号化および復号し得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、またはＩＴＵ−Ｔ  Ｈ．２６５として知られているように高効率ビデオコーディング（ＨＥＶＣ）、それの範囲およびスクリーンコンテンツコーディング拡張、それの３Ｄビデオコーディング拡張（３Ｄ−ＨＥＶＣ）、それのマルチビュー拡張（ＭＶ−ＨＥＶＣ）、またはそれのスケーラブル拡張（ＳＨＶＣ）に従ってビデオデータを符号化および復号する。ＨＥＶＣ、ＳＨＶＣ、および３Ｄ−ＨＥＶＣは、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）およびＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）のジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）ならびにジョイントコラボレーションチームオン３Ｄビデオコーディング拡張開発（ＪＣＴ−３Ｖ：Joint Collaboration Team on 3D Video Coding Extension Development）によって開発された。
【００３１】
[0069]ＩＴＵ−Ｔ  ＶＣＥＧ（Ｑ６／１６）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（ＪＴＣ１／ＳＣ２９／ＷＧ１１）は、（スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのためのそれの現在の拡張および短期での拡張を含む）現在のＨＥＶＣ規格の圧縮能力を著しく超える圧縮能力をもつ将来のビデオコーディング技術の規格化の潜在的ニーズを現在研究している。グループは、このエリアにおけるそれらの専門家によって提案された圧縮技術設計を評価するために、ジョイントビデオ探査チーム（ＪＶＥＴ：Joint Video Exploration Team）として知られるジョイントコラボレーション作業においてこの探査活動に関して協働している。ＪＶＥＴは、２０１５年１０月１９日〜２１日の間、初めて開かれた。Ｃｈｅｎら、「Algorithm Description of Joint Exploration Test Model 5」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ２９／ＷＧ１１とのジョイントビデオ探査チーム（ＪＶＥＴ）、第５回会合、ジュネーブ、スイス、２０１７年１月１２日〜２０日、ドキュメントＪＶＥＴ  Ｅ−１００１は、ジョイント探査テストモデル（Joint Exploration Test Model）６（ＪＥＭ５）のアルゴリズム説明である。Ｃｈｅｎら、「Algorithm Description of Joint Exploration Test Model 6」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ２９／ＷＧ１１とのジョイントビデオ探査チーム（ＪＶＥＴ）、第６回会合、ホバート、オーストラリア、２０１７年３月３１日〜４月７日、ドキュメントＪＶＥＴ  Ｆ−１００１は、ジョイント探査テストモデル６（ＪＥＭ６）のアルゴリズム説明である。ビデオエンコーダ２０およびビデオデコーダ３０は、ジョイント探査モデルまたは現在開発中の新しい汎用ビデオコーディング（ＶＶＣ：Versatile Video Coding）規格に従って動作し得る。
【００３２】
[0070]本開示は、概して、シンタックス要素など、ある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指すことがある。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時にビットストリーム中でコンピュータ可読記憶媒体にシンタックス要素を記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【００３３】
[0071]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオデータは一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、１つまたは複数のサンプルアレイを含み得る。ピクチャの各それぞれのサンプルアレイは、それぞれの色成分についてのサンプルのアレイを備え得る。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLはルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbはＣｂクロマサンプルの２次元アレイである。ＳCrはＣｒクロマサンプルの２次元アレイである。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００３４】
[0072]ビデオデータを符号化することの一部として、ビデオエンコーダ２０はビデオデータのピクチャを符号化し得る。言い換えれば、ビデオエンコーダ２０は、ビデオデータのピクチャの符号化表現を生成し得る。ピクチャの符号化表現は、本明細書では「コード化ピクチャ」または「符号化ピクチャ」と呼ばれることがある。
【００３５】
[0073]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はピクチャのブロックを符号化し得る。ビデオエンコーダ２０は、ビットストリーム中に、ビデオブロックの符号化表現を含め得る。いくつかの例では、ピクチャのブロックを符号化するために、ビデオエンコーダ２０は、１つまたは複数の予測ブロックを生成するためにイントラ予測またはインター予測を実施する。さらに、ビデオエンコーダ２０は、ブロックのための残差データを生成し得る。残差ブロックは残差サンプルを備える。各残差サンプルは、生成された予測ブロックのうちの１つのサンプルとブロックの対応するサンプルとの間の差分を示し得る。このようにして、ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る。ビデオエンコーダ２０は、変換係数を生成するために、残差サンプルのブロックに変換を適用し得る。さらに、ビデオエンコーダ２０は変換係数を量子化し得る。いくつかの例では、ビデオエンコーダ２０は、変換係数を表すために、１つまたは複数のシンタックス要素を生成し得る。ビデオエンコーダ２０は、変換係数を表すシンタックス要素のうちの１つまたは複数をエントロピー符号化し得る。
【００３６】
[0074]より詳細には、ＨＥＶＣまたは他のビデオコーディング仕様に従ってビデオデータを符号化するとき、ピクチャの符号化表現を生成するために、ビデオエンコーダ２０は、ピクチャの各サンプルアレイをコーディングツリーブロック（ＣＴＢ：coding tree block）に区分し、ＣＴＢを符号化し得る。ＣＴＢは、ピクチャのサンプルアレイ中のサンプルのＮ×Ｎブロックであり得る。ＨＥＶＣメインプロファイルでは、技術的に、８×８ＣＴＢサイズがサポートされ得るが、ＣＴＢのサイズは１６×１６から６４×６４に及び得る。
【００３７】
[0075]ピクチャのコーディングツリーユニット（ＣＴＵ：coding tree unit）は、１つまたは複数のＣＴＢを備え得、１つまたは複数のＣＴＢのサンプルを符号化するために使用されるシンタックス構造を備え得る。たとえば、各ＣＴＵは、ルーマサンプルのＣＴＢと、クロマサンプルの２つの対応するＣＴＢと、ＣＴＢのサンプルを符号化するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のＣＴＢと、そのＣＴＢのサンプルを符号化するために使用されるシンタックス構造とを備え得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。本開示では、「シンタックス構造」は、指定された順序でビットストリーム中に一緒に存在する０個またはそれ以上のシンタックス要素として定義され得る。いくつかのコーデックでは、符号化ピクチャは、そのピクチャのすべてのＣＴＵを含んでいる符号化表現である。
【００３８】
[0076]ピクチャのＣＴＵを符号化するために、ビデオエンコーダ２０は、ＣＴＵのＣＴＢを１つまたは複数のコーディングブロックに区分し得る。コーディングブロックはサンプルのＮ×Ｎブロックである。いくつかのコーデックでは、ピクチャのＣＴＵを符号化するために、ビデオエンコーダ２０は、ＣＴＢをコーディングブロックに区分するためにＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングユニット（ＣＵ）は、１つまたは複数のコーディングブロックと、１つまたは複数のコーディングブロックのサンプルを符号化するために使用されるシンタックス構造とを備え得る。たとえば、ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルを符号化するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。ＨＥＶＣでは、スライス中の最大コーディングユニットは、コーディングツリーブロック（ＣＴＢ）またはコーディングツリーユニット（ＣＴＵ）と呼ばれる。ＣＴＢは、それのノードがＣＵである４分木を含んでいる。（技術的に、８×８ＣＴＢサイズがサポートされ得るが）ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４に及び得る。コーディングユニット（ＣＵ）は、ＣＴＢの同じサイズであり得るが、８×８程度に小さくなり得る。各コーディングユニットは、１つのモードを用いてコーディングされる。
【００３９】
[0077]さらに、ビデオエンコーダ２０は、ビデオデータのピクチャのＣＵを符号化し得る。いくつかのコーデックでは、ＣＵを符号化することの一部として、ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ：prediction unit）は、ＣＵの１つまたは複数の予測ブロックと、その１つまたは複数の予測ブロックを予測するために使用されるシンタックス構造とを備え得る。たとえば、ＰＵは、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。
【００４０】
[0078]ビデオエンコーダ２０は、ＣＵのＰＵの予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）のための予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）を生成し得る。ビデオエンコーダ２０は、予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０が予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＣＵを含むピクチャの復号サンプルに基づいて予測ブロックを生成し得る。ビデオエンコーダ２０が現在ピクチャのＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、参照ピクチャ（すなわち、現在ピクチャ以外のピクチャ）の復号サンプルに基づいてＰＵの予測ブロックを生成し得る。ＨＥＶＣでは、ビデオエンコーダ２０は、インター予測されたＰＵのための「ｃｏｄｉｎｇ＿ｕｎｉｔ」シンタックス構造内では「ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ」シンタックス構造を生成するが、イントラ予測されたＰＵのための「ｃｏｄｉｎｇ＿ｕｎｉｔ」シンタックス構造内では「ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ」シンタックス構造を生成しない。むしろ(rather)、ＨＥＶＣでは、イントラ予測されたＰＵに関係するシンタックス要素は、「ｃｏｄｉｎｇ＿ｕｎｉｔ」シンタックス構造中に直接含まれる。ＣＵがインターコーディングされるとき、ＣＵは、２つまたは４つのＰＵにさらに区分され得るか、あるいは、さらなる区分が適用されないとき、ただ１つのＰＵになり得る。１つのＣＵ中に２つのＰＵが存在するとき、それらのＰＵは、１／２サイズの長方形、あるいはＣＵの１／４または３／４サイズをもつ２つの長方形サイズであり得る。ＣＵがインターコーディングされるとき、各ＰＵについて動き情報の１つのセットが存在する。さらに、各ＰＵは、動き情報のセットを導出するために固有のインター予測モードを用いてコーディングされる。本開示では、「ブロック」という用語は、ＣＵ、ＰＵ、またはビデオコーディング目的で使用される任意の他のコーディングユニットを指すことがある。
【００４１】
[0079]ビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダは、複数の利用可能なイントラ予測モードから選択されたイントラ予測モードを使用してイントラ予測を実施し得る。イントラ予測モードは、イントラ予測方向と呼ばれることもある、方向性イントラ予測モードを含み得る。異なる方向性イントラ予測モードは異なる角度に対応する。いくつかの例では、方向性イントラ予測モードを使用して予測ブロックの現在サンプルの値を決定するために、ビデオコーダは、方向性イントラ予測モードに対応する角度において現在サンプルを通過するラインが境界サンプルのセットと交差する点を決定し得る。境界サンプルは、予測ブロックのすぐ左の列（column）中のサンプルと、予測ブロックのすぐ上の行(row)中のサンプルとを備え得る。点が境界サンプルのうちの２つの間にある場合、ビデオコーダは、その点に対応する値を補間するか、またはさもなければその値を決定し得る。点が境界サンプルのうちの単一の境界サンプルに対応する場合、ビデオコーダは、その点の値が境界サンプルに等しいと決定し得る。ビデオコーダは、予測ブロックの現在サンプルの値を点の決定された値に等しく設定し得る。
【００４２】
[0080]ＨＥＶＣおよびいくつかの他のコーデックでは、ビデオエンコーダ２０は、１つの予測モード（すなわち、イントラ予測またはインター予測）のみを使用してＣＵを符号化する。したがって、ＨＥＶＣおよび特定の他のコーデックでは、ビデオエンコーダ２０は、イントラ予測を使用してＣＵの各ＰＵの予測ブロックを生成し得るか、または、ビデオエンコーダ２０は、インター予測を使用してＣＵの各ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０がＣＵを符号化するためにインター予測を使用するとき、ビデオエンコーダ２０はＣＵを２つまたは４つのＰＵに区分し得るか、または、１つのＰＵがＣＵ全体に対応する。１つのＣＵ中に２つのＰＵが存在するとき、２つのＰＵは、１／２サイズの長方形、あるいはＣＵの１／４または３／４サイズをもつ２つの長方形サイズであり得る。ＨＥＶＣでは、インター予測モードを用いてコーディングされるＣＵのための８つの区分モード、すなわち、ＰＡＲＴ＿２Ｎ×２Ｎ、ＰＡＲＴ＿２Ｎ×Ｎ、ＰＡＲＴ＿Ｎ×２Ｎ、ＰＡＲＴ＿Ｎ×Ｎ、ＰＡＲＴ＿２Ｎ×ｎＵ、ＰＡＲＴ＿２Ｎ×ｎＤ、ＰＡＲＴ＿ｎＬ×２Ｎ、およびＰＡＲＴ＿ｎＲ×２Ｎがある。ＣＵがイントラ予測されるとき、２Ｎ×２ＮとＮ×Ｎとが唯一の許容されるＰＵ形状であり、各ＰＵ内で単一のイントラ予測モードがコーディングされる（クロマ予測モードがＣＵレベルにおいてシグナリングされる）。
【００４３】
[0081]ビデオエンコーダ２０は、ＣＵのための１つまたは複数の残差ブロックを生成し得る。たとえば、ビデオエンコーダ２０はＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０はＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０は、ＣＵのためのＣｒ残差ブロックをも生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４４】
[0082]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロックを１つまたは複数の変換ブロックに分解し得る。たとえば、ビデオエンコーダ２０は、ＣＵの残差ブロックを１つまたは複数の変換ブロックに分解するために４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ：transform unit）は、１つまたは複数の変換ブロックを備え得る。たとえば、ＴＵは、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとを有し得る。ＴＵのルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００４５】
[0083]ビデオエンコーダ２０は、ＴＵのための係数ブロックを生成するために、ＴＵの変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。いくつかの例では、１つまたは複数の変換は、変換ブロックをピクセル領域から周波数領域にコンバートする。したがって、そのような例では、変換係数は、周波数領域中にあると考えられるスカラー量であり得る。変換係数レベルは、変換係数値の算出のためのスケーリングより前の復号プロセスにおける特定の２次元周波数インデックスに関連する値を表す整数量である。
【００４６】
[0084]いくつかの例では、ビデオエンコーダ２０は、変換ブロックへの変換の適用をスキップする。そのような例では、ビデオエンコーダ２０は、変換係数と同じやり方で残差サンプル値を扱い得る。したがって、ビデオエンコーダ２０が変換の適用をスキップする例では、変換係数および係数ブロックの以下の説明は、残差サンプルの変換ブロックに適用可能であり得る。
【００４７】
[0085]ＪＥＭによれば、（ビデオエンコーダ２００などの）ビデオコーダは、ピクチャを複数のコーディングツリーユニット（ＣＴＵ）に区分する。ビデオエンコーダ２００は、４分木２分木（ＱＴＢＴ：quadtree-binary tree）構造などのツリー構造に従ってＣＴＵを区分し得る。ＪＥＭのＱＴＢＴ構造は、ＨＥＶＣのＣＵとＰＵとＴＵとの間の分離など、複数の区分タイプの概念を除去する。したがって、ＪＥＭのコンテキストでは、「ＰＵ」または「ＴＵ」という用語はＣＵに適用され得る。ＪＥＭのＱＴＢＴ構造は、２つのレベル、すなわち、４分木区分に従って区分される第１のレベルと２分木区分に従って区分される第２のレベルとを含む。ＱＴＢＴ構造のルートノードはＣＴＵに対応する。２分木のリーフノードはコーディングユニット（ＣＵ）に対応する。
【００４８】
[0086]いくつかの例では、ビデオエンコーダ２００およびビデオデコーダ３００は、ルミナンス成分およびクロミナンス成分の各々を表すために単一のＱＴＢＴ構造を使用し得、他の例では、ビデオエンコーダ２００およびビデオデコーダ３００は、ルミナンス成分のための１つのＱＴＢＴ構造および両方のクロミナンス成分のための別のＱＴＢＴ構造（またはそれぞれのクロミナンス成分のための２つのＱＴＢＴ構造）など、２つまたはそれ以上のＱＴＢＴ構造を使用し得る。
【００４９】
[0087]係数ブロックを生成した後に、ビデオエンコーダ２０は、係数ブロックを表すために使用されるデータの量を場合によっては低減するために係数ブロックを量子化し、さらなる圧縮を潜在的に与え得る。量子化は、概して、値の範囲が単一の値に圧縮されるプロセスを指す。たとえば、量子化は、値を定数で除算し、次いで最も近い整数に丸める（round）ことによって行われ得る。係数ブロックを量子化するために、ビデオエンコーダ２０は、係数ブロックの変換係数を量子化し得る。量子化は、一部または全部の変換係数に関連するビット深度を低減し得る。たとえば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられる（rounded down）ことがあり、ここで、ｎはｍよりも大きい。いくつかの例では、ビデオエンコーダ２０は量子化をスキップする。
【００５０】
[0088]ビデオエンコーダ２０は、一部または全部の潜在的に量子化された変換係数を示すシンタックス要素を生成し得る。ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素のうちの１つまたは複数をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実施し得る。したがって、符号化ブロック（たとえば、符号化ＣＵ）が、量子化された変換係数を示すエントロピー符号化シンタックス要素を含み得る。
【００５１】
[0089]ビデオエンコーダ２０は、符号化ビデオデータを含むビットストリームを出力し得る。言い換えれば、ビデオエンコーダ２０は、ビデオデータの符号化表現を含むビットストリームを出力し得る。ビデオデータの符号化表現は、ビデオデータのピクチャの符号化表現を含み得る。たとえば、ビットストリームは、ビデオデータおよび関連データの符号化ピクチャの表現を形成するビットのシーケンスを備え得る。いくつかの例では、符号化ピクチャの表現は、ピクチャのブロックの符号化表現を含み得る。
【００５２】
[0090]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。上述のように、ビットストリームは、ビデオデータの符号化表現を備え得る。ビデオデコーダ３０は、ビデオデータのピクチャを再構築するためにビットストリームを復号し得る。ビットストリームを復号することの一部として、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構築し得る。ビデオデータのピクチャを再構築するためのプロセスは、概して、ピクチャを符号化するためにビデオエンコーダ２０によって実施されるプロセスの逆であり得る。
【００５３】
[0091]たとえば、ビデオデータのピクチャを復号することの一部として、ビデオデコーダ３０は、予測ブロックを生成するためにインター予測またはイントラ予測を使用し得る。さらに、ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に基づいて変換係数を決定し得る。いくつかの例では、ビデオデコーダ３０は、決定された変換係数を逆量子化する。逆量子化は、量子化された値を再構築された値にマッピングする。たとえば、ビデオデコーダ３０は、量子化ステップサイズを乗算された値を決定することによって、値を逆量子化し得る。さらに、ビデオデコーダ３０は、残差サンプルの値を決定するために、決定された変換係数に対して逆変換を適用し得る。ビデオデコーダ３０は、残差サンプルと、生成された予測ブロックの対応するサンプルとに基づいて、ピクチャのブロックを再構築し得る。たとえば、ビデオデコーダ３０は、ブロックの再構築されたサンプルを決定するために、残差サンプルを、生成された予測ブロックの対応するサンプルに加算し得る。
【００５４】
[0092]より詳細には、ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオデコーダ３０は、現在ＣＵの各ＰＵのための１つまたは複数の予測ブロックを生成するためにインター予測またはイントラ予測を使用し得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵの係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵの変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在ＣＵのＰＵの予測ブロックのサンプルと、現在ＣＵのＴＵの変換ブロックの残差サンプルとに基づいて、現在ＣＵのコーディングブロックを再構築し得る。いくつかの例では、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応する復号サンプルに加算することによって、現在ＣＵのコーディングブロックを再構築し得る。ピクチャの各ＣＵのためのコーディングブロックを再構築することによって、ビデオデコーダ３０はピクチャを再構築し得る。
【００５５】
[0093]ピクチャのスライスは、ピクチャの整数個のブロックを含み得る。たとえば、ＨＥＶＣおよび他のビデオコーディング仕様では、ピクチャのスライスは、ピクチャの整数個のＣＴＵを含み得る。スライスのＣＴＵは、ラスタ走査順序などの走査順序で連続的に順序付けられ得る。ＨＥＶＣおよび潜在的に他のコーデックでは、スライスは、１つの独立スライスセグメントと、同じアクセスユニット内の（もしあれば）次の独立スライスセグメントに先行する（もしあれば）すべての後続の依存スライスセグメントとの中に含まれている、整数個のＣＴＵとして定義される。さらに、ＨＥＶＣおよび潜在的に他のコーデックでは、スライスセグメントは、タイル走査において連続的に順序付けられ、単一のＮＡＬユニット中に含まれている、整数個のＣＴＵとして定義される。タイル走査は、ＣＴＢがタイル中のＣＴＢラスタ走査において連続的に順序付けられるが、ピクチャ中のタイルがピクチャのタイルのラスタ走査において連続的に順序付けられる、ピクチャを区分するＣＴＢの特定の連続順序付けである。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のＣＴＢの矩形領域である。
【００５６】
[0094]上述のように、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在ピクチャのビデオブロックのための予測ブロックを生成するためにインター予測を適用し得る。たとえば、ＨＥＶＣおよび他のビデオコーディング仕様のコンテキストでは、ビデオコーダは、現在ブロックのＣＵのＰＵの予測ブロックのための予測ブロックを生成するために、インター予測を適用し得る。ビデオコーダが予測ブロックを生成するためにインター予測を適用する場合、ビデオコーダは、１つまたは複数の参照ピクチャの復号サンプルに基づいて予測ブロックを生成し得る。参照ピクチャは、現在ピクチャ以外のピクチャである。ビデオコーダは、１つまたは複数の参照ピクチャリストを決定し得る。参照ピクチャリストの各々は、０個またはそれ以上の参照ピクチャを含み得る。ＨＥＶＣおよび他のビデオコーディング仕様のコンテキストでは、参照ピクチャリストのうちの１つは、参照ピクチャリスト０（すなわち、ＲｅｆＰｉｃＬｉｓｔ０またはｌｉｓｔ０）と呼ばれることがあり、別の参照ピクチャリストは、参照ピクチャリスト１（すなわち、ＲｅｆＰｉｃＬｉｓｔ１またはｌｉｓｔ１）と呼ばれることがある。
【００５７】
[0095]ビデオコーダは、予測ブロックを生成するために単方向（uni-directional）インター予測または双方向（bi-directional）インター予測を適用し得る。ビデオコーダがビデオブロックのための予測ブロックを生成するために単方向インター予測を適用するとき、ビデオコーダは、単一の参照ピクチャのサンプルに基づいてビデオブロックのための単一の参照ブロックを決定する。さらに、ビデオコーダが単方向インター予測を適用するとき、ビデオコーダは、予測ブロックを参照ブロックに等しく設定し得る。ビデオコーダがビデオブロックのための予測ブロックを生成するために双方向インター予測を適用するとき、ビデオコーダは、ビデオブロックのための２つの参照ブロックを決定する。いくつかの例では、２つの参照ブロックは、異なる参照ピクチャリスト中の参照ピクチャ中にある。さらに、ビデオコーダが双方向インター予測を適用するとき、ビデオコーダは、２つの参照ブロックに基づいて予測ブロックを決定し得る。たとえば、ビデオコーダは、予測ブロックの各サンプルが２つの参照ブロックの対応するサンプルの重み付き平均になるように、予測ブロックを決定し得る。参照ピクチャリストのうちのどれが、参照ブロックを決定するために使用される参照ピクチャを含むかを示すために、参照リストインジケータが使用され得る。
【００５８】
[0096]上述のように、ビデオコーダは、参照ピクチャのサンプルに基づいて参照ブロックを決定し得る。いくつかの例では、ビデオコーダは、参照ブロックの各サンプルが参照ピクチャのサンプルに等しくなるように、参照ブロックを決定し得る。いくつかの例では、参照ブロックを決定することの一部として、ビデオコーダは、参照ピクチャのサンプルから参照ブロックのサンプルを補間し得る。たとえば、ビデオコーダは、予測ブロックのサンプルが参照ピクチャの２つまたはそれ以上のサンプルの重み付き平均であると決定し得る。
【００５９】
[0097]いくつかの例では、ビデオエンコーダ２０が単方向インター予測を実施するとき、ビデオエンコーダ２０は、参照ピクチャリストのうちの１つ中の１つまたは複数の参照ピクチャ内で参照ブロックを探索する。参照ブロックは、予測ブロックと同様である、サンプルのブロックであり得る。いくつかの例では、ビデオエンコーダ２０は、参照ブロックと予測ブロックとの間の類似度を決定するために平均２乗誤差を使用するさらに、ビデオエンコーダ２０は、予測ブロックのための動き情報を決定し得る。予測ブロックのための動き情報（すなわち、動きパラメータ）は、動きベクトルと参照インデックスとを含み得る。動きベクトルは、現在ピクチャ（すなわち、特定のビデオブロックを含むピクチャ）内の特定のビデオブロックの位置と参照ピクチャ内の参照ブロックの位置との間の空間変位を示し得る。参照インデックスは、参照ピクチャリストを含んでいる参照フレームの参照ピクチャリスト内の位置を示す。特定のビデオブロックのための予測ブロックは、参照ブロックに等しくなり得る。
【００６０】
[0098]ビデオエンコーダ２０が特定のビデオブロックについて双方向インター予測を実施するとき、ビデオエンコーダ２０は、第１の参照ピクチャリスト（「リスト０」）中の参照ピクチャ内で第１の参照ブロックを探索し得、第２の参照ピクチャリスト（「リスト１」）中の参照ピクチャ内で第２の参照ブロックを探索し得る。ビデオエンコーダ２０は、第１および第２の参照ブロックに少なくとも部分的に基づいて、特定のビデオブロックのための予測ブロックを生成し得る。さらに、ビデオエンコーダ２０は、特定のビデオブロックと第１の参照ブロックとの間の空間変位を示す第１の動きベクトルを生成し得る。ビデオエンコーダ２０は、第１の参照ブロックを含んでいる参照ピクチャの第１の参照ピクチャリスト内のロケーションを識別する第１の参照インデックスをも生成し得る。さらに、ビデオエンコーダ２０は、特定のビデオブロックと第２の参照ブロックとの間の空間変位を示す第２の動きベクトルを生成し得る。ビデオエンコーダ２０は、第２の参照ブロックを含む参照ピクチャの第２の参照ピクチャリスト内のロケーションを識別する第２の参照インデックスをも生成し得る。
【００６１】
[0099]ビデオエンコーダ２０が特定のビデオブロックに対して単方向インター予測を実施するとき、ビデオデコーダ３０は、特定のビデオブロックの参照ブロックを識別するために特定のビデオブロックの動き情報を使用し得る。ビデオデコーダ３０は、次いで、参照ブロックに基づいて特定のビデオブロックの予測ブロックを生成し得る。ビデオエンコーダ２０が特定のビデオブロックのための予測ブロックを決定するために双方向インター予測を実施するとき、ビデオデコーダ３０は、２つの参照ブロックを決定するために特定のビデオブロックの動き情報を使用し得る。ビデオデコーダ３０は、特定のビデオブロックの２つの参照サンプルに基づいて特定のビデオブロックの予測ブロックを生成し得る。このようにして、単方向インター予測または双方向インター予測のいずれかについて、ビデオエンコーダ２０およびビデオデコーダ３０は、ブロックの動きベクトルに基づいて予測ブロックを決定し得る。
【００６２】
[0100]ビデオエンコーダ２０は、様々なやり方でビデオユニットの動き情報をシグナリングし得る。そのような動き情報は、動きベクトル、参照インデックス、参照ピクチャリストインジケータ、および／または動きに関係する他のデータを含み得る。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、動き情報をシグナリングするために使用されるデータの量を低減するために動き予測を使用し得る。動き予測は、１つまたは複数の他のビデオユニットの動き情報に基づく、ビデオユニット（たとえば、ＰＵ）の動き情報の決定を備え得る。様々なタイプの動き予測がある。たとえば、マージモードと高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードとが、動き予測の２つのタイプである。すなわち、ＨＥＶＣ規格では、予測ユニット（ＰＵ）のために、それぞれ、マージモード（スキップはマージの特殊な場合と見なされる）および高度動きベクトル予測（ＡＭＶＰ）モードと称される２つのインター予測モードがある。ＡＭＶＰモードまたはマージモードのいずれかでは、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子のために維持される。Ｊ．−Ｌ．Ｌｉｎ、Ｙ．−Ｗ．Ｃｈｅｎ、Ｙ．−Ｗ．Ｈｕａｎｇ、およびＳ．−Ｍ．Ｌｅｉ、「Motion vector coding in the HEVC standard」、Ｓｅｌｅｃｔｅｄ  Ｔｏｐｉｃｓ  ｉｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、ＩＥＥＥ  Ｊｏｕｒｎａｌ、ｖｏｌ．７、ｎｏ．６、９５７〜９６８ページ、２０１３年を参照されたい。
【００６３】
[0101]マージモードでは、ビデオエンコーダ２０は候補リストを生成する。候補リストは、１つまたは複数のソースビデオユニットの動き情報を示す候補のセットを含む。ソースビデオユニットは、現在ビデオユニットに、空間的にまたは時間的に近隣し得る。さらに、マージモードでは、ビデオエンコーダ２０は、候補リストから候補を選択し得、現在ビデオユニットの動き情報として、選択されたマージ候補によって示される動き情報を使用し得る。ビデオエンコーダ２０は、選択された候補の候補リスト中の位置をシグナリングし得る。ビデオデコーダ３０は、ビットストリームから取得された情報に基づいて、候補リストへのインデックスを決定し得る。さらに、ビデオデコーダ３０は、同じ候補リストを生成し得、インデックスに基づいて、選択された候補を決定し得る。ビデオデコーダ３０は、次いで、現在ビデオユニットのための予測ブロックを生成するために、選択された候補の動き情報を使用し得る。
【００６４】
[0102]スキップモードはマージモードと同様である。スキップモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、マージモードにおいてビデオエンコーダ２０およびビデオデコーダ３０が候補リストを使用するのと同じやり方で候補リストを生成し、使用する。ただし、ビデオエンコーダ２０がスキップモードを使用して現在ビデオユニットの動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ビデオユニットのための残差データをシグナリングしない。したがって、ビデオデコーダ３０は、残差データの使用なしに、候補リスト中の選択された候補の動き情報によって示される１つまたは複数の参照ブロックに基づいて、ビデオユニットのための予測ブロックを決定し得る。
【００６５】
[0103]スキップモードおよびマージモードでは、マージング候補リスト中のどの候補が使用されるかを示すために、マージインデックスがシグナリングされる。インター予測インジケータ、参照インデックス、または動きベクトル差分は送信されない。マージモードでは、空間動きベクトル予測子（ＳＭＶＰ：spatial motion vector predictor）と時間動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）とを含む、マージング候補の２つまたはそれ以上のタイプが考慮される。ＳＭＶＰ導出では、図２に示されている位置にある候補の中から最大４つのマージ候補が選択される。導出の順序は、Ａ1→Ｂ1→Ｂ0→Ａ0→（Ｂ2）である。ＨＥＶＣでは、位置Ｂ2は、位置Ａ1、Ｂ1、Ｂ0、Ａ0のＰＵが利用可能でないかまたはイントラコーディングされるとき、あるいは、位置Ａ1、Ｂ1、Ｂ0、Ａ0からの、プルーニングの後の候補の総数が４よりも小さいときのみ、考慮される。
【００６６】
[0104]ＴＭＶＰの導出では、シグナリングされた参照ピクチャリスト内の現在ピクチャの参照ピクチャのうちの１つに属するコロケートＰＵに基づいて、スケーリングされた動きベクトルが導出される。コロケートＰＵの導出のために使用される参照ピクチャリストは、現在ピクチャのスライスのスライスヘッダ中で明示的にシグナリングされ得る。時間マージ候補のためのスケーリングされた動きベクトルは、ＰＯＣ距離、ｔｂおよびｔｄを使用して、コロケートＰＵのスケーリングされた動きベクトルを用いて取得され得、ここで、ｔｂは現在ピクチャの参照ピクチャと現在ピクチャとの間のＰＯＣ差分であるように定義され、ｔｄはコロケートピクチャの参照ピクチャとコロケートピクチャとの間のＰＯＣ差分であるように定義される。時間マージ候補の参照ピクチャインデックスは、０に等しく設定される。スケーリングプロセスの実際の実現は、https://www.itu.int/rec/T-REC-H.265から入手可能であるＨＥＶＣドラフト仕様において説明される。Ｂスライスについて、一方が参照ピクチャリスト０のための動きベクトルであり、他方が参照ピクチャリスト１のための動きベクトルである、２つの動きベクトルが取得され、双予測マージ候補を作るために組み合わせられる。
【００６７】
[0105]コロケートＰＵの位置は、図２に示されているように、２つの候補位置、ＣおよびＨの間で選択される。位置ＨにおけるＰＵが利用可能でないか、イントラコーディングされるか、または現在ＣＴＵ行（すなわち、現在ＰＵを含んでいるＣＴＵ行）の外部にある場合、位置Ｃが使用される。他の場合、時間マージ候補の導出のために位置Ｈが使用される。
【００６８】
[0106]ＳＭＶＰおよびＴＭＶＰに加えて、２つのタイプの合成マージ候補、すなわち、（１）組合せ双予測ＭＶＰおよび（２）０ＭＶＰがあり得る。組合せ双予測ＭＶＰは、ＳＭＶＰおよびＴＭＶＰを利用することによって生成される。ＨＥＶＣでは、組合せ双予測マージ候補は、Ｂスライスのみについて使用される。たとえば、ｍｖＬ０およびｒｅｆＩｄｘＬ０またはｍｖＬ１およびｒｅｆＩｄｘＬ１を有する、元のマージ候補リスト中の２つの候補が、組合せ双予測マージ候補を作成するために使用される。０ＭＶＰは、０の大きさをもつ１つまたは複数の動きベクトルを有する。
【００６９】
[0107]候補選択のプロセスにおいて、処理順序の前の候補と同じ動きパラメータを有する複製された候補は、候補リストから削除され得る。このプロセスは、プルーニングプロセスとして定義される。また、並列マージ処理を助けるために、同じマージ推定領域（ＭＥＲ：merge estimation region）内の候補は考慮されない。仮想２Ｎ×２Ｎ区分をエミュレートしないために、冗長な区分形状が回避される。
【００７０】
[0108]マージ候補リスト中でマージ候補を生成する各ステップの間で、導出プロセスは、マージ候補の数がＭａｘＮｕｍＭｅｒｇｅＣａｎｄに達した場合に停止され得る。ＨＥＶＣおよび潜在的に他のコーデックでは、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄは５に等しく設定される。候補の数は一定であるので、最良のマージ候補のインデックスは、短縮単項（truncated unary）２値化を使用して符号化され得る。
【００７１】
[0109]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成し得、候補リストから候補を選択し得るという点で、マージモードと同様である。しかしながら、現在ブロック（すなわち、ビデオユニット）のための予測ブロックを決定する際に使用される各それぞれの参照ブロックについて、ビデオエンコーダ２０は、現在ブロックのためのそれぞれの動きベクトル差分（ＭＶＤ）と、現在ブロックのためのそれぞれの参照インデックスと、候補リスト中の選択された候補を示すそれぞれの候補インデックスとをシグナリングし得る。ブロックのためのＭＶＤは、ブロックの動きベクトルと選択された候補の動きベクトルとの間の差分を示し得る。現在ブロックのための参照インデックスは、参照ブロックが決定される参照ピクチャを示す。
【００７２】
[0110]さらに、ＡＭＶＰモードが使用されるとき、現在ブロックのための予測ブロックを決定する際に使用される各それぞれの参照ブロックについて、ビデオデコーダ３０は、現在ブロックのためのＭＶＤと、現在ブロックのための参照インデックスと、候補インデックスと、動きベクトル予測（ＭＶＰ）フラグとを決定し得る。ビデオデコーダ３０は、同じ候補リストを生成し得、候補インデックスに基づいて、候補リスト中の選択された候補を決定し得る。前述のように、このリストは、同じ参照インデックス、ならびに、時間参照ピクチャ中のコロケートブロックの近隣ブロックの動きパラメータに基づいて導出された時間動きベクトル予測子に関連する近隣ブロックの動きベクトルを含み得る。ビデオデコーダ３０は、ＭＶＤを、選択されたＡＭＶＰ候補によって示される動きベクトルに加算することによって、現在ＰＵの動きベクトルを復元し得る。すなわち、ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルとＭＶＤとに基づいて、現在ＰＵの動きベクトルを決定し得る。ビデオデコーダ３０は、次いで、現在ＰＵのための予測ブロックを生成するために、復元された動きベクトル、または現在ＰＵの動きベクトルを使用し得る。
【００７３】
[0111]ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）が現在ＰＵのためのＡＭＶＰ候補リストを生成するとき、ビデオコーダは、現在ＰＵに空間的に近隣するロケーションをカバーするＰＵ（すなわち、空間的に近隣するＰＵ）の動き情報に基づいて１つまたは複数のＡＭＶＰ候補を導出し、現在ＰＵに時間的に近隣するＰＵの動き情報に基づいて１つまたは複数のＡＭＶＰ候補を導出し得る。本開示では、ＰＵ（あるいは他のタイプのビデオユニットまたはブロック）は、ＰＵの予測ブロック（またはビデオユニットの他のタイプのサンプルブロック）がロケーションを含む場合、ロケーションを「カバーする」と言われ得る。候補リストは、同じ参照インデックス、ならびに、時間参照ピクチャ中のコロケートブロックの近隣ブロックの動きパラメータ（すなわち、動き情報）に基づいて導出された時間動きベクトル予測子に関連する近隣ブロックの動きベクトルを含み得る。現在ＰＵに時間的に近隣するＰＵ（すなわち、現在ＰＵとは異なる時間インスタンス中にあるＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト中の候補は、ＴＭＶＰと呼ばれることがある。ＴＭＶＰは、ＨＥＶＣのコーディング効率を改善するために使用され、他のコーディングツールとは異なり得、ＴＭＶＰは、復号ピクチャバッファ中の、より詳細には、参照ピクチャリスト中のフレームの動きベクトルにアクセスする必要があり得る。
【００７４】
[0112]ＡＭＶＰモードでは、リスト０予測、リスト１予測、または双予測を示すために、インター予測インジケータが送信される。次に、複数の参照ピクチャがあるとき、１つまたは２つの参照インデックスが送信される。候補リストから１つの動き候補を選択するために、各予測方向についてインデックスが送信される。図２に示されているように、インターモードのための候補リストは、２つの空間動き候補と１つの時間動き候補とを含む。
【００７５】
１．左候補（Ａ0、Ａ1から最初に利用可能なもの）
２．上候補（Ｂ0、Ｂ1、Ｂ2から最初に利用可能なもの）
３．時間候補（ＨおよびＣから最初に利用可能なもの）
[0113]ＨＥＶＣでは、ビデオコーダは、左下から左に左空間動き候補を探索し（すなわち、Ａ0およびＡ1）、ビデオコーダは、左候補として最初に利用可能な候補を選択する。ビデオコーダは、右上から左上に上空間動き候補を探索し（すなわち、Ｂ0、Ｂ1およびＢ2）、ビデオコーダは、上候補として最初に利用可能な候補を選択する。ビデオコーダは、時間コロケートピクチャと呼ばれる、参照ピクチャ中に位置するブロック（ＨまたはＣ）から時間動き候補を選択し得る。時間コロケートピクチャは、どの参照ピクチャリストかを指定するためにスライスヘッダ中で１つのフラグを送信し、参照リスト中のどの参照ピクチャがコロケート参照ピクチャとして使用されるかを示すためにスライスヘッダ中で１つの参照インデックスを送信することによって、示される。ＨＥＶＣでは、インデックスが送信された後に、１つまたは２つの対応する動きベクトル差分（ＭＶＤ）が送信される。
【００７６】
[0114]さらに、ＨＥＶＣおよび潜在的に他のコーデックでは、候補リスト構築とインデックスのパースとを分離するために、固定候補リストサイズが使用される。固定リストサイズによって引き起こされるコーディング性能損失を補償するために、追加の候補が候補リスト中の空の位置に割り当てられる。このプロセスでは、インデックスは最大長の短縮単項コードでコーディングされ、ここで、最大長は、スキップモードおよびマージモードではスライスヘッダ中で送信され、インターモードでは２に固定される。上記で説明されたように、スキップモードおよびマージモードでは、４つの空間動き候補および１つの時間動き候補の導出およびプルーニングの後に、利用可能な候補の数が固定候補リストサイズよりも小さい場合、追加の合成候補が導出され、マージング候補リスト中の空の位置を埋めるために追加される。ＡＭＶＰモードでは、２つの空間動き候補および１つの時間動き候補の導出およびプルーニングの後にＡＭＶＰ候補リスト中の空の位置を埋めるために、ゼロベクトル動き候補が追加される。
【００７７】
[0115]ＪＥＭ参照ソフトウェアでは、デコーダ側で現在ブロックのための動きベクトル（ＭＶ）を導出および／または改良するか、あるいはアフィン動きモデルを利用するいくつかのインターコーディングツールがある。これらの新しいインター予測手法は、以下で詳述される。
【００７８】
[0116]パターンマッチングされた動きベクトル導出（ＰＭＭＶＤ：pattern matched motion vector derivation）モードは、フレームレートアップコンバージョン（ＦＲＵＣ）技法に基づく特殊なマージモードである。ＰＭＭＶＤモードでは、ブロックの動き情報は、シグナリングされないが、代わりに、デコーダ側で導出される。ＦＲＵＣフラグは、ブロック（たとえば、ＣＵ）について、それのマージフラグが真であるとき、シグナリングされる。ＦＲＵＣフラグが偽であるとき、マージインデックスがシグナリングされ、通常のマージモードが使用される。ＦＲＵＣフラグが真であるとき、ブロックのための動き情報を導出するためにどちらの方法（両方向マッチングまたはテンプレートマッチング）が使用されるべきであるかを示すために、追加のＦＲＵＣモードフラグがシグナリングされる。
【００７９】
[0117]エンコーダ側では、ＣＵのためにＦＲＵＣマージモードを使用すべきかどうかに関する決定は、通常マージ候補のために行われるようにレート／ひずみ（ＲＤ）コスト選択に基づき得る。すなわち、２つのマッチングモード（両方向マッチングおよびテンプレートマッチング）は両方とも、ＲＤコスト選択を使用することによってＣＵについて検査され得る。さらに、最小コストにつながるモードが、他のＣＵモードと比較される。ＦＲＵＣマッチングモードが最も効率的なモードである場合、ＦＲＵＣフラグはＣＵについて真に設定され、関係するマッチングモードが使用される。
【００８０】
[0118]ＦＲＵＣマージモードにおける動き導出プロセスは、２つのステップを含む。ＣＵレベル動き探索が最初に実施され得、その後に、サブＣＵレベル動き改良が続く。ＣＵレベルにおいて、初期動きベクトル（すなわち、開始ＭＶ）が、両方向マッチングまたはテンプレートマッチングに基づいて全ＣＵについて導出される。最初に、ＭＶ候補のリストが生成され（ＦＲＵＣ  ＭＶ候補）、最小マッチングコストにつながる候補が、さらなるＣＵレベル改良のための開始点として選択される。次いで、開始点の周りの両方向マッチングまたはテンプレートマッチングに基づくローカル探索が実施され、最小マッチングコストを生じるＭＶが、全ＣＵのためのＭＶとしてとられる。その後、動き情報は、開始点としての導出されたＣＵ動きベクトルを用いてサブＣＵレベルにおいてさらに改良される。
【００８１】
[0119]たとえば、以下の導出プロセスは、Ｗ×Ｈ  ＣＵ動き情報導出のために実施され得、ここで、Ｗは幅であり、Ｈは高さである。第１の段において、全Ｗ×Ｈ  ＣＵのためのＭＶが導出される。第２の段において、ＣＵは、さらに、Ｍ×ＭサブＣＵにスプリットされる。Ｍの値は、以下で、式（１）の場合のように計算され、Ｄは、ＪＥＭにおいてデフォルトで３に設定された、あらかじめ定義されたスプリッティング深度（splitting depth）である。次いで、各サブＣＵのためのＭＶが導出される。
【００８２】
【数１】
2020523853.tif 000003
【００８３】
[0120]図３に示されているように、両方向マッチングは、２つの異なる参照ピクチャ中の現在ＣＵの動き軌道に沿った２つのブロック間の最良のマッチを見つけることによって、現在ＣＵの動き情報を導出するために使用される。連続的動き軌道の仮定の下では、２つの参照ブロックを指す動きベクトルＭＶ０およびＭＶ１は、現在ピクチャと２つの参照ピクチャとの間の時間距離、すなわち、ＴＤ０およびＴＤ１に比例する。特殊な場合として、現在ピクチャが時間的に２つの参照ピクチャ間にあり、現在ピクチャから２つの参照ピクチャまでの時間距離が同じであるとき、両方向マッチングはミラーベースの双方向ＭＶになる。
【００８４】
[0121]図４に示されているように、テンプレートマッチングは、現在ピクチャ中のテンプレート（現在ＣＵの上および／または左近隣ブロック）と参照ピクチャ中のブロック（テンプレートと同じサイズ）との間の最良のマッチを見つけることによって、現在ＣＵの動き情報を導出するために使用される。上述のＦＲＵＣマージモードを除いて、テンプレートマッチングは、ＡＭＶＰモードにも適用される。ＪＥＭでは、ＨＥＶＣの場合のように、ＡＭＶＰは２つの候補を有する。テンプレートマッチング方法では、新しい候補が導出される。テンプレートマッチングによる新たに導出された候補が第１の既存のＡＭＶＰ候補とは異なる場合、新たに導出された候補はＡＭＶＰ候補リストのまさに始まりにおいて挿入され、次いで、リストサイズは２に設定される（第２の既存のＡＭＶＰ候補を削除するを意味する）。ＡＭＶＰモードに適用されるとき、ＣＵレベル探索のみが適用される。
【００８５】
[0122]ＣＵレベルＦＲＵＣ  ＭＶ候補セット中で、ＣＵレベルにおけるＭＶ候補セットは、以下を備えるか、または以下からなる。
【００８６】
（ｉ）現在ＣＵがＡＭＶＰモードにある場合、元のＡＭＶＰ候補
（ｉｉ）すべてのマージ候補、
（ｉｉｉ）本開示の他の場所で紹介される、補間ＭＶフィールド（interpolated MV field）中のいくつかのＭＶ
（ｉｖ）上および左近隣動きベクトル
[0123]両方向マッチングを使用するとき、マージ候補の各有効なＭＶが、両方向マッチングの仮定を用いてＭＶペアを生成するために、入力として使用される。たとえば、マージ候補の１つの有効なＭＶは、参照リストＡにおける（ＭＶa，ｒｅｆa）である。次いで、それのペアにされた両方向ＭＶの参照ピクチャｒｅｆbが、ｒｅｆaとｒｅｆbとが時間的に現在ピクチャの異なる側にあるように、他の参照リストＢ中で見つけられる。そのようなｒｅｆbが参照リストＢ中で利用可能でない場合、ｒｅｆbは、ｒｅｆaとは異なる参照として決定され、現在ピクチャまでのそれの時間距離は、リストＢ中の最小時間距離である。ｒｅｆbが決定された後に、ＭＶbは、現在ピクチャとｒｅｆa、ｒｅｆbとの間の時間距離に基づいてＭＶaをスケーリングすることによって導出される。
【００８７】
[0124]また、補間ＭＶフィールドからの４つのＭＶが、ＣＵレベル候補リストに追加され得る。より詳細には、現在ＣＵの位置（０，０）、（Ｗ／２，０）、（０，Ｈ／２）および（Ｗ／２，Ｈ／２）における補間ＭＶが追加され得る。ＦＲＵＣがＡＭＶＰモードにおいて適用されるとき、元のＡＭＶＰ候補もＣＵレベルＭＶ候補セットに追加され得る。ＣＵレベルにおいて、ＡＭＶＰ  ＣＵについての最高１５個のＭＶとマージＣＵについての最高１３個のＭＶとが候補リストに追加される。本開示では、ＡＭＶＰ  ＣＵは、ＡＭＶＰモードを使用して動き情報が予測されるＣＵである。さらに、本開示では、マージＣＵは、マージモードを使用して動き情報が予測されるＣＵである。
【００８８】
[0125]いくつかの例では、サブＣＵレベルにおけるＭＶ候補セットは、以下からなるか、または以下を備える。
【００８９】
（ｉ）ＣＵレベル探索から決定されたＭＶ、
（ｉｉ）上、左、左上および右上近隣ＭＶ、
（ｉｉｉ）参照ピクチャからのコロケートＭＶのスケーリングされたバージョン、
（ｉｖ）最高４つの高度時間動きベクトル予測（ＡＴＭＶＰ：advanced temporal motion vector prediction）候補、
（ｖ）最高４つの時空間動きベクトル予測（ＳＴＭＶＰ：spatial-temporal motion vector prediction）候補。
【００９０】
[0126]参照ピクチャからのスケーリングされたＭＶは、以下のように導出され得る。両方のリスト中のすべての参照ピクチャが横断される。参照ピクチャ中のサブＣＵのコロケート位置におけるＭＶは、開始ＣＵレベルＭＶの参照にスケーリングされる。すなわち、ＨＥＶＣにおけるＴＭＶＰのように、コロケート位置におけるＭＶは、ＰＯＣ距離に従ってスケーリングされ得る。ＡＴＭＶＰ候補およびＳＴＭＶＰ候補は、最高４つのＡＴＭＶ候補およびＳＴＭＶＰ候補に限定される。サブＣＵレベルにおいて、最高１７個のＭＶが候補リストに追加される。
【００９１】
[0127]上述のように、ＣＵレベルＦＲＵＣ  ＭＶ候補セット中で、ＣＵレベルにおけるＭＶ候補セットは、補間ＭＶフィールド中の１つまたは複数のＭＶを含み得る。フレームをコーディングする前に、補間動きフィールド（すなわち、補間ＭＶフィールド）は、一方向動き推定に基づいて全ピクチャのために生成される。動きフィールドは、次いで、ＣＵレベルＭＶ候補またはサブＣＵレベルＭＶ候補として後で使用され得る。最初に、両方の参照リスト中の各参照ピクチャの動きフィールドは、４×４ブロックレベルにおいて横断され得る。図５は、フレームレートアップコンバージョンにおける一方向動き推定の一例である。図５中のピクチャ５００は、現在ピクチャのための参照ピクチャである。現在ピクチャは、ピクチャ５０２の出力時間に対応する出力時間を有する。ピクチャ５０４は、ピクチャ５００のための参照ピクチャである。ビデオコーダは、現在ピクチャのサンプルを補間するために、ピクチャ５０４中のロケーションを指すピクチャ５００中のブロックの動きベクトルを使用する。ピクチャ５０２は、得られた補間サンプルを含んでいる。いくつかの例では、図５のピクチャ５００中の各４×４ブロックについて、４×４ブロックに関連する動きが現在ピクチャ中の４×４ブロックを通過すること、４×４ブロックが補間動きを割り当てられなかった場合、参照ブロックの動きは、時間距離ＴＤ０およびＴＤ１に従って（ＨＥＶＣにおけるＴＭＶＰのＭＶスケーリングのやり方と同じやり方）現在ピクチャにスケーリングされ、スケーリングされた動きは、現在フレーム中のブロックに割り当てられる。スケーリングされたＭＶが現在フレーム中の４×４ブロックに割り当てられない場合、現在フレーム中のブロックの動きは、補間動きフィールド中で利用不可能としてマークされる。他の例では、他のブロックサイズが使用され得る。
【００９２】
[0128]動きベクトルが分数サンプル位置を指すとき、動き補償補間が必要とされ得る。動き補償補間は、ピクチャの実際のサンプルからピクチャの実際のサンプル間のロケーションについてのサンプル値を補間し得る。動き補償補間の複雑さを低く保つために、通常の８タップＨＥＶＣ補間の代わりに双線形補間が、両方向マッチングとテンプレートマッチングの両方のために使用され得る。マッチングコストの計算は異なるステップにおいて異なる。たとえば、ＣＵレベルにおいて候補セットから最良の候補を選択するとき、マッチングコストは、両方向マッチングまたはテンプレートマッチングの絶対和差分（ＳＡＤ）である。開始ＭＶが決定された後に、マッチングコストＣが、以下で、式（２）を使用して計算され得る。
【００９３】
【数２】
2020523853.tif 000004
【００９４】
式（２）では、ｗは、経験的に４に設定される重み付け係数であり、ＭＶおよびＭＶSは、それぞれ、現在ＭＶおよび開始ＭＶを示し（ＭＶxおよびＭＶxsは、それぞれ、現在ＭＶおよび開始ＭＶの水平成分であり、ＭＶyおよびＭＶysは、それぞれ、現在ＭＶおよび開始ＭＶの垂直成分である）、｜｜は絶対値を示す。
【００９５】
[0129]いくつかの例では、ＦＲＵＣモードでは、ＭＶは、ルーマサンプルのみを使用することによって導出される。そのような例では、導出された動きは、動き補償インター予測のためにルーマとクロマの両方について使用され得る。ＭＶが導出された後に、ルーマについて８タップ補間フィルタを使用し、クロマについて４タップ補間フィルタを使用して、最終動き補償が実施される。
【００９６】
[0130]ＭＶ改良は、両方向マッチングコストまたはテンプレートマッチングコストの基準をもつパターンベースのＭＶ探索を含み得る。ＪＥＭでは、２つの探索パターン、すなわち、それぞれ、ＣＵレベルおよびサブＣＵレベルにおけるＭＶ改良についての、（１）無制約中心バイアスダイヤモンド探索（ＵＣＢＤＳ：unrestricted center-biased diamond search）、および（２）適応型相互探索（adaptive cross search）がサポートされる。ＣＵレベルとサブＣＵレベルの両方のＭＶ改良について、ＭＶは、１／４ルーマサンプルＭＶ確度において直接探索され得、これの後に、次いで、１／８ルーマサンプルＭＶ改良が続き得る。ＣＵとサブＣＵの両方のステップについてのＭＶ改良の探索範囲は、８つのルーマサンプルに等しく設定され得る。
【００９７】
[0131]ビデオコーダは、以下のように、テンプレートマッチングＦＲＵＣマージモードにおいて予測方向を選択し得る。両方向マッチングマージモードでは、２つの異なる参照ピクチャ中の現在ＣＵの動き軌道に沿った２つのブロック間の最良のマッチに基づいて、ＣＵの動き情報が導出されるので、双予測が常に適用される。ＪＥＭでは、テンプレートマッチングマージモードについてのそのような限定はない。テンプレートマッチングマージモードでは、ビデオコーダは、ｌｉｓｔ０からの単予測、ｌｉｓｔ１からの単予測、またはＣＵのための双予測の中から選択し得る。選択は、以下のように、テンプレートマッチングコストに基づき得る。
【００９８】
【数３】
2020523853.tif 000005
【００９９】
上記の、シーケンス１の擬似コードでは、ｃｏｓｔ０はｌｉｓｔ０テンプレートマッチングのＳＡＤであり、ｃｏｓｔ１はｌｉｓｔ１テンプレートマッチングのＳＡＤであり、ｃｏｓｔＢｉは双予測テンプレートマッチングのＳＡＤである。ファクタの値は５／４に等しく、これは、選択プロセスが双予測にバイアスされることを意味する。ＪＥＭでは、インター予測方向選択は、ＣＵレベルテンプレートマッチングプロセスのみに適用される。
【０１００】
[0132]双予測テンプレートマッチング動作では、１つのブロック領域の予測の場合、それぞれ、ｌｉｓｔ０のＭＶおよびｌｉｓｔ１のＭＶを使用して形成された、２つの予測ブロックが、単一の予測信号を形成するために組み合わせられる。デコーダ側動きベクトル改良（ＤＭＶＲ：decoder-side motion vector refinement）方法では、双予測の２つの動きベクトルは、両方向テンプレートマッチングプロセス（bilateral template matching process）によってさらに改良される。両方向テンプレートマッチングは、追加の動き情報の送信なしに、改良されたＭＶを取得するために、両方向テンプレートと参照ピクチャ中の再構築サンプルとの間でひずみベースの探索を実施するためにビデオデコーダ３０において適用され得る。
【０１０１】
[0133]ＤＭＶＲでは、両方向テンプレートは、図６に示されているように、それぞれ、ｌｉｓｔ０の初期ＭＶ０およびｌｉｓｔ１のＭＶ１から、２つの予測ブロックの重み付き組合せ（すなわち平均）として生成される。テンプレートマッチング動作は、生成された両方向テンプレートと参照ピクチャ中の（初期予測ブロックの周りの）サンプル領域との間でコスト測度を計算することを含むか、またはそれからなり得る。２つの参照ピクチャの各々について、最小テンプレートコストを生じるＭＶが、元のＭＶに取って代わるためのそのリストの更新されたＭＶと見なされ得る。テンプレートコストは、現在テンプレートと参照サンプルとの間の絶対差分和（ＳＡＤ：sum of absolute difference）または２乗差分和（ＳＳＤ：sum of squared difference）として計算され得る。ＪＥＭでは、９つのＭＶ候補が各リストについて探索される。９つのＭＶ候補は、元のＭＶと、水平方向または垂直方向のいずれか、あるいはその両方における元のＭＶに対する１つのルーマサンプルオフセットをもつ８つの周囲ＭＶとを含む。最終的に、２つの新しいＭＶ、すなわち、図６に示されているＭＶ０’およびＭＶ１’が、最終双予測結果を生成するために使用される。ＳＡＤは、コスト測度として利用され得る。図６は、両方向テンプレートマッチングに基づく提案されたＤＭＶＲである。
【０１０２】
[0134]したがって、図６の例では、現在ピクチャ６０２中の現在ブロック６００は、第１の動きベクトル６０４（ＭＶ０）と第２の動きベクトル６０６（ＭＶ１）とを有する。動きベクトル６０４は、ｌｉｓｔ０参照ピクチャ６１０中の参照ブロック６０８を指す。動きベクトル６０６は、ｌｉｓｔ１参照ピクチャ６１４中の参照ブロック６１２を指す。参照ブロック６０８と参照ブロック６１２とは、本明細書では予測ブロックと呼ばれることもある。参照ブロック６０８と参照ブロック６１２とを識別した後に、ビデオコーダが、参照ブロック６０８および参照ブロック６１２の重み付き平均として予測ブロック６１６を生成し得る。予測ブロック６１６は、本明細書では両方向テンプレートと呼ばれることもある。したがって、図６の例では、ビデオコーダは、ＭＶ０およびＭＶ１によって参照される予測ブロックから両方向テンプレートを生成し得る。さらに、ビデオコーダは、予測ブロック６１６に最も良くマッチするブロックについて参照ピクチャ６１０中で探索し得る。図６の例では、ビデオコーダは、予測ブロック６１６のための最良のマッチとして、参照ピクチャ６１０のブロック６１８を識別した。ビデオコーダは、予測ブロック６１６に最も良くマッチするブロックについて参照ピクチャ６１４中でも探索し得る。図６の例では、ビデオコーダは、予測ブロック６１６のための最良のマッチとして、ブロック６２０を識別した。動きベクトル６２２（ＭＶ０’）が、現在ブロック６００とブロック６１８との間の空間変位を示す。動きベクトル６２４（ＭＶ１’）が、現在ブロック６００とブロック６２０との間の空間変位を示す。
【０１０３】
[0135]ＤＭＶＲは、追加のシンタックス要素の送信なしに、過去における参照ピクチャからのあるＭＶと将来における参照ピクチャからの別のＭＶとを用いる双予測のマージモードのために適用され得る。ＪＥＭ５では、局所照明補償（ＬＩＣ：local illumination compensation）、アフィン動き、ＦＲＵＣ、またはサブＣＵマージ候補がＣＵのために有効化されるとき、ＤＭＶＲは適用されない。
【０１０４】
[0136]ＱＴＢＴを用いるＪＥＭでは、各ＣＵは、各予測方向について、動きの多くとも１つのセットを有することができる。２つのサブＣＵレベル動きベクトル予測方法は、大きいＣＵをサブＣＵにスプリットし、大きいＣＵのすべてのサブＣＵのための動き情報を導出することによって与えられる。高度時間動きベクトル予測（ＡＴＭＶＰ）方法は、各ＣＵが、コロケート参照ピクチャ中の現在ＣＵよりも小さい複数のブロックから動き情報の複数のセットをフェッチすることを可能にする。時空間動きベクトル予測（ＳＴＭＶＰ）方法では、サブＣＵの動きベクトルは、時間動きベクトル予測子と空間近隣動きベクトルとを使用することによって再帰的に導出される。サブＣＵ動き予測のためのより正確な動きフィールドを保つために、参照フレームのための動き圧縮は、現在、ＪＥＭにおいてディセーブルされる。
【０１０５】
[0137]高度時間動きベクトル予測（ＡＴＭＶＰ）方法では、動きベクトルの時間動きベクトル予測（ＴＭＶＰ）は、各ＣＵが、現在ＣＵよりも小さい複数のブロックから（動きベクトルと参照インデックスとを含む）動き情報の複数のセットをフェッチすることを可能にすることによって改善される。図７に示されているように、サブＣＵは、正方形Ｎ×Ｎブロックである（Ｎはデフォルトで４に設定される）。
【０１０６】
[0138]ＡＴＭＶＰは、２つのステップにおいてＣＵ内のサブＣＵの動きベクトルを予測する。第１のステップは、いわゆる時間ベクトルを用いて参照ピクチャ中の対応するブロックを識別することである。参照ピクチャは、動きソースピクチャと呼ばれる。第２のステップは、図７に示されているように、現在ＣＵをサブＣＵにスプリットし、各サブＣＵに対応するブロックから各サブＣＵの動きベクトルならびに参照インデックスを取得することである。
【０１０７】
[0139]図７は、現在ピクチャ７０２中の現在ＣＵ７００のためのＡＴＭＶＰ動き予測を示す。第１のステップにおいて、参照ピクチャ７０４と、対応するブロック７０６とが、現在ＣＵ７００の空間近隣ブロックの動き情報によって決定される。参照ピクチャ７０４は、ビデオコーダが動きソースピクチャ７０４を現在ピクチャ７０２中の現在ＣＵ７００のための動き情報のソースとして使用するので、動きソースピクチャ７０４と呼ばれることもある。近隣ブロックの反復的な走査プロセスを回避するために、現在ＣＵ７００のマージ候補リスト中の第１のマージ候補の動き情報が、参照ピクチャ７０４と、対応するブロック７０６とを決定するために使用される。第１の利用可能な動きベクトルならびにそれの関連する参照インデックスは、時間ベクトル７０８と動きソースピクチャ７０４へのインデックスとであるように設定される。このようにして、ＡＴＭＶＰでは、対応するブロック７０６は、ＴＭＶＰと比較して、より正確に識別され得、ここにおいて、（コロケートブロックと呼ばれることがある）対応するブロックは、常に、現在ＣＵ７００に対して右下または中心位置にある。
【０１０８】
[0140]第２のステップにおいて、現在ＣＵ７００のサブＣＵの対応するブロックは、時間ベクトル７０８を現在ＣＵ７００の（ｘ，ｙ）座標に加算することによって、動きソースピクチャ７０４中で時間ベクトル７０８によって識別される。現在ＣＵ７００の各サブＣＵについて、それの対応するブロックの動き情報（中心ピクセルをカバーする最小動きグリッド）は、サブＣＵのための動き情報を導出するために使用される。対応するＮ×Ｎブロックの動き情報が識別された後に、対応するＮ×Ｎブロックの動き情報は、ＴＭＶＰと同じやり方で、現在サブＣＵの動きベクトルおよび参照インデックスにコンバートされ、ここにおいて、動きスケーリングと他のプロシージャとが適用される。たとえば、ビデオデコーダ３０は、低遅延条件が満たされるかどうかを検査し得、場合によっては、各サブＣＵについて動きベクトルＭＶyを予測するために動きベクトルＭＶx（参照ピクチャリストＸに対応する動きベクトル）を使用する（Ｘは０または１に等しく、Ｙは１−Ｘに等しい）。これは、時間動きベクトル予測の場合と同じやり方で行われる。
【０１０９】
[0141]時空間動きベクトル予測では、サブＣＵの動きベクトルは、ラスタ走査順序に従って、再帰的に導出される。図８は、この概念を示す。たとえば、図８に示されているように、４つの４×４サブＣＵ  Ａ、Ｂ、Ｃ、およびＤを含んでいる（より太い輪郭をもつ正方形として図８に示されている）８×８ＣＵを考慮する。現在フレーム中の近隣Ｎ×Ｎブロックは、図８においてａ、ｂ、ｃ、およびｄとしてラベリングされる。
【０１１０】
[0142]サブＣＵ  Ａのための動き導出は、それの２つの空間ネイバーを識別することによって開始する。第１のネイバーは、サブＣＵ  Ａの上のＮ×Ｎブロック（ブロックｃ）である。ブロックｃが利用可能でないかまたはイントラコーディングされる場合、サブＣＵ  Ａの上の他のＮ×Ｎブロックが検査される（左から右に、ブロックｃにおいて開始する）。第２のネイバーは、サブＣＵ  Ａの左のブロック（ブロックｂ）である。ブロックｂが利用可能でないかまたはイントラコーディングされる場合、サブＣＵ  Ａの左の他のブロックが検査される（上から下に、ブロックｂを見つめる）。各リストについての近隣ブロックから取得された動き情報は、所与のリストについての第１の参照フレームにスケーリングされる。次に、サブブロックＡの時間動きベクトル予測子（ＴＭＶＰ）が、ＨＥＶＣにおいて指定され、本開示において上記で説明されたように、ＴＭＶＰ導出の同じプロシージャに従うことによって導出される。ロケーションＤにおけるコロケートブロックの動き情報は、フェッチされ、それに応じてスケーリングされる。最後に、動き情報を取り出し、スケーリングした後に、すべての利用可能な動きベクトル（最高３つ）が、各参照リストについて別々に平均化される。平均化された動きベクトルは、現在サブＣＵの動きベクトルとして割り当てられる。
【０１１１】
[0143]サブＣＵ動き予測モードシグナリングでは、サブＣＵモードが追加のマージ候補として有効化され、それらのモードをシグナリングするために必要とされる追加のシンタックス要素はない。ＡＴＭＶＰモードとＳＴＭＶＰモードとを表すために、２つの追加のマージ候補が各ＣＵのマージ候補リストに追加される。ＡＴＭＶＰとＳＴＭＶＰとが有効化されることをシーケンスパラメータセットが示す場合、最高７つのマージ候補が使用される。符号化において、追加のマージ候補の論理は、ＨＥＶＣテストモデル（ＨＭ）におけるマージ候補と同じであり、これは、ＰまたはＢスライス中の各ＣＵについて、２つの追加のマージ候補のために２つそれ以上のＲＤ検査が必要とされることを意味する。マージインデックスコーディングを改善するために、ＪＥＭでは、マージインデックスのすべてのビンがＣＡＢＡＣによってコンテキストコーディングされる。ＨＥＶＣの間、第１のビンのみがコンテキストコーディングされ、残りのビンはコンテキストバイパスコーディングされる。
【０１１２】
[0144]ビンに対してバイパスＣＡＢＡＣコーディングを実施することは、ビンに対して通常のＣＡＢＡＣコーディングを実施することよりも、計算コストが高くないことがある。さらに、バイパスＣＡＢＡＣコーディングを実施することは、より高度の並列化およびスループットを可能にし得る。バイパスＣＡＢＡＣコーディングを使用して符号化されたビンは、「バイパスビン」と呼ばれることがある。一緒にバイパスビンをグループ化することは、ビデオエンコーダ２０およびビデオデコーダ３０のスループットを増加させ得る。バイパスＣＡＢＡＣコーディングエンジンは、単一のサイクルにおいていくつかのビンをコーディングすることが可能であり得るが、通常のＣＡＢＡＣコーディングエンジンは、サイクルにおいて単一のビンのみをコーディングすることが可能であり得る。バイパスＣＡＢＡＣコーディングエンジンがコンテキストを選択せず、両方のシンボル（０および１）について１／２の確率を仮定し得るので、バイパスＣＡＢＡＣコーディングエンジンは、より単純であり得る。したがって、バイパスＣＡＢＡＣコーディングでは、間隔は、直接半分にスプリットされる。しかしながら、圧縮効率は低下され得る。
【０１１３】
[0145]ＨＥＶＣでは、変換動きモデルのみが、動き補償予測（ＭＣＰ）のために適用される。実世界では、多くの種類の動き、たとえばズームイン／アウト、回転、遠近法の動きおよび他の不規則な動きがある。ＪＥＭでは、アフィン変換動き補償予測が、コーディング効率を改善するために適用される。ブロックがアフィン動きモデルに従う場合、そのブロック中の位置（ｘ，ｙ）のＭＶは、アフィン動きモデルによって決定され得る。
【０１１４】
【数４】
2020523853.tif 000006
【０１１５】
式（３）では、ａ、ｂ、ｃ、ｄ、ｅおよびｆはアフィンパラメータである。さらに、式（３）では、ｖxは位置（ｘ，ｙ）のＭＶの水平成分であり、ｖyは位置（ｘ，ｙ）のＭＶの垂直成分である。
【０１１６】
[0146]図９は、現在アフィンブロック９００のための簡略化されたアフィン動きモデルのブロック図である。図９に示されているように、６パラメータアフィン動きモデルは、左上制御点９０２（ｘ0，ｙ0）の動きベクトルｖ0と、右上制御点９０４（ｘ1，ｙ1）の動きベクトルｖ1と、左下制御点９０６（ｘ2，ｙ2）の動きベクトルｖ2とによって表され得る。左上制御点９０２が座標系の原点であり、これが（ｘ0，ｙ0）＝（０，０）を意味すると仮定して、現在アフィンブロック９００中の位置（ｘ，ｙ）のＭＶは、以下で、式（４）によって表される。
【０１１７】
【数５】
2020523853.tif 000007
【０１１８】
式（４）では、（ｖ0x，ｖ0y）は左上隅制御点９０２の動きベクトルであり、（ｖ1x，ｖ1y）は右上隅制御点９０４の動きベクトルであり、（ｖ2x，ｖ2y）は左下隅制御点９０６の動きベクトルであり、ｗ＝（ｘ1−ｘ0）は左上制御点９０２と右上制御点９０４との間の水平距離であり、ｈ＝（ｙ2−ｙ0）は左上制御点９０２と左下制御点９０６との間の垂直距離である。式（４）では、ｖxは位置（ｘ，ｙ）のＭＶの水平成分であり、ｖyは位置（ｘ，ｙ）のＭＶの垂直成分である。
【０１１９】
[0147]しかしながら、ＪＥＭでは、アフィン動きモデルは、式（３）においてａ＝ｅおよびｂ＝−ｄを仮定することによって、４パラメータアフィン動きモデルに簡略化され、これが、以下で、式（５）に示されているような、ｖxおよびｖyの式を生じる。
【０１２０】
【数６】
2020523853.tif 000008
【０１２１】
４パラメータアフィン動きモデルは、次いで、起点として仮定される左上制御点９０２（ｘ0，ｙ0）の動きベクトルｖ0と、右上制御点９０４（ｘ1，ｙ1）の動きベクトルｖ1とによって表される。式（５）では、ｖxは位置（ｘ，ｙ）のＭＶの水平成分であり、ｖyは位置（ｘ，ｙ）のＭＶの垂直成分である。図１０は、現在アフィンブロック１０００のための簡略化されたアフィン動きモデルの一例である。図１０に示されているように、ブロックのアフィン動きフィールドは、２つの制御点動きベクトル（control point motion vector）、ｖ0およびｖ1によって表される。ブロックの動きベクトルフィールド（ＭＶＦ：motion vector field）は、式（６）によって表される。
【０１２２】
【数７】
2020523853.tif 000009
【０１２３】
式（６）では、（ｖ0x，ｖ0y）は左上隅制御点１００２の動きベクトルであり、（ｖ1x，ｖ1y）は右上隅制御点１００４の動きベクトルであり、ｗ＝（ｘ1−ｘ0）は左上制御点１００２と右上制御点１００４との間の水平距離である。ｖxは位置（ｘ，ｙ）のＭＶの水平成分であり、ｖyは位置（ｘ，ｙ）のＭＶの垂直成分である。
【０１２４】
[0148]動き補償予測をさらに簡略化するために、ブロックベースのアフィン変換予測が適用され得る。各サブブロックの動きベクトルを導出するために、図１１に示されている、各サブブロックの中心サンプルの動きベクトルは、式（６）に従って計算され、１／１６の分数確度に丸められる。次いで、ビデオコーダが、導出された動きベクトルを用いて各サブブロックの予測を生成するために動き補償補間フィルタを適用し得る。アフィンブロック内の各サブブロックのための補間動きベクトルは、以下のコンテキストにおいてＭＣＰ動きベクトルフィールド（ＭＶＦ）と称される。サブブロックサイズは、制御点間のＭＶ差分に応じて変動することができる。図１１は、各サブブロック（たとえば、４×４ブロック）のＭＶが制御点のＭＶによって補間される、例示的なＭＣＰ  ＭＶフィールドであり、ＭＶは、次いで、各サブブロックについて動き補償予測（ＭＣＰ）を実施するために使用される。各サブブロックの動きベクトルは、その組合せが予測ブロックを形成する、対応する参照ブロックを識別するために使用され得る。したがって、このようにして、ビデオコーダは、ブロックの動きベクトル（たとえば、ブロックの制御点の動きベクトル）に基づいて予測ブロックを生成し得る。
【０１２５】
[0149]動き補償予測の後に、各サブブロックの高確度動きベクトルは、通常動きベクトルと同じ確度のように丸められ、保存される。ＪＥＭでは、およびＨＥＶＣでは、各インター予測ＣＵまたはＰＵのための動きベクトルは、他のインターブロックのＭＶ予測のために記憶される。動きベクトルのための記憶ユニットは、４×４ブロックである。言い換えれば、ＪＥＭでは、アフィンブロックの補間ＭＶが生成され、各４×４ブロックについて記憶される。しかしながら、制御点のＭＶは後続のブロックのために使用され得るので、隅４×４ブロックのための記憶されたＭＶは、図１２に示されているように、ＭＣＰのために使用される関連するＭＶではなく制御点のＭＶである。ＪＥＭ６では、同じく、左下および右下制御点のＭＶが左上および右上制御点のＭＶによって生成されることに留意されたい。
【０１２６】
[0150]したがって、図１２では、ＣＵ１２００は１６個のサブブロックを含む。ＣＵ１２００の隅にない１２個のサブブロックの各それぞれのサブブロックについて、ビデオコーダは、それぞれのサブブロックの中心点について（１つまたは複数の）動きベクトルを記憶する。ＣＵ１２００の隅における各それぞれのサブブロックについて、ビデオコーダは、それぞれのサブブロックの外側の隅について（１つまたは複数の）動きベクトルを記憶する。
【０１２７】
[0151]ＪＥＭでは、２つのアフィン動きモード、すなわち、アフィンインター（ＡＦ＿ＩＮＴＥＲ）モードおよびアフィンマージ（ＡＦ＿ＭＥＲＧＥ）モードがある。８よりも大きい幅と高さの両方をもつＣＵの場合、ＡＦ＿ＩＮＴＥＲモードが適用され得る。ＣＵレベルにおけるアフィンフラグは、ＡＦ＿ＩＮＴＥＲモードが使用されるかどうかを示すためにビットストリーム中でシグナリングされる。このモードでは、動きベクトルセット｛（ＭＶＰ0，ＭＶＰ1）｜ＭＶＰ0＝｛ｖA，ｖB，ｖc｝，ＭＶＰ1＝｛ｖD，ｖE｝｝をもつ候補リストが、ネイバーブロックを使用して構築される。図１３に示されているように、ＭＶＰ0は、ブロックＡ、ＢまたはＣの動きベクトルから選択される。図１３は、ＡＦ＿ＩＮＴＥＲについてのＭＶＰの一例を示す。ネイバーブロックからの動きベクトルは、参照リストと、ネイバーブロックのための参照のピクチャ順序カウント（ＰＯＣ：Picture Order Count）、現在ＣＵのための参照のＰＯＣ、および現在ＣＵのＰＯＣの間の関係とに従ってスケーリングされる。ネイバーブロックＤおよびＥからＭＶＰ1を選択するための手法は、同様である。ＪＥＭでは、候補リスト中の候補の数が２よりも小さい場合、リストは、ＡＭＶＰ候補｛ＡＭＶＰ0，ＡＭＶＰ0｝および｛ＡＭＶＰ1，ＡＭＶＰ1｝の各々を複製することによって作成された動きベクトルペアによってパディングされる。
【０１２８】
[0152]さらに、ＪＥＭでは、候補リスト中の候補の数が２よりも大きいとき、候補は、最初に、近隣動きベクトルの一貫性（ペア候補における２つの動きベクトルの類似度）に従ってソートされ、図１３の右部に示されているように、最初の２つの候補のみが保持される。ビデオコーダは、レートひずみ（ＲＤ）コスト検査を使用し得、どの動きベクトルセット候補が現在ＣＵの制御点動きベクトル予測（ＣＰＭＶＰ：control point motion vector prediction）として選択されるかを決定するために使用される。候補リスト中のＣＰＭＶＰの位置を示すインデックスが、ビットストリーム中でシグナリングされる。現在アフィンＣＵのＣＰＭＶＰが決定された後に、アフィン動き推定が適用され、制御点動きベクトル（ＣＰＭＶ：control point motion vector）が見つけられる。次いで、ＣＰＭＶとＣＰＭＶＰとの差分がビットストリーム中でシグナリングされ得る。
【０１２９】
[0153]ＣＵがアフィンマージ（ＡＦ＿ＭＥＲＧＥ）モードにおいて適用されるとき、ＣＵは、訪問順序、Ａ１→Ｂ１→Ｂ０→Ａ０→Ｂ２に基づいて、有効なネイバーの再構築されたブロックから、アフィンモードを用いてコーディングされた第１のブロックを得る。候補ブロックのための選択順序は、図１４Ａに示されているように、左、上、右上、左下から、左上への順序である。ネイバー左下ブロックＡが、図１４Ｂに示されているようにアフィンモードにおいてコーディングされる場合、ブロックＡを含んでいるＣＵの左上隅、右上隅および左下隅の動きベクトルｖ2、ｖ3およびｖ4が導出される。現在ＣＵ上の左上隅の動きベクトルｖ0は、（ｘ2，ｙ2）が、（ｘ2，ｙ2）＝（０，０）を意味する起点であると仮定することによって、以下で、式（７）を使用して、ｖ2、ｖ3およびｖ4に従って外挿される。第２に、現在ＣＵの右上の動きベクトルｖ1が同様のやり方で計算される。式（７）は、以下で示される。
【０１３０】
【数８】
2020523853.tif 000010
【０１３１】
式（７）では、（ｖ2x，ｖ2y）は左上隅制御点（ｘ2，ｙ2）の動きベクトルであり、（ｖ3x，ｖ3y）は右上隅制御点（ｘ3，ｙ3）の動きベクトルであり、（ｖ4x，ｖ4y）はネイバーアフィンブロック中の左下隅制御点（ｘ4，ｙ4）の動きベクトルであり、ｗ＝（ｘ3−ｘ2）は左上制御点と右上制御点との間の水平距離であり、ｈ＝（ｙ4−ｙ2）は左上制御点と左下制御点との間の垂直距離であり、ｖxはロケーション（ｘ，ｙ）のための動きベクトルの水平成分であり、ｖyはロケーション（ｘ，ｙ）のための動きベクトルの垂直成分である。
【０１３２】
[0154]現在ＣＵのＣＰＭＶ、ｖ0およびｖ1が導出された後に、アフィン動きモデル式（６）に従って、現在ＣＵのＭＶＦが生成される。現在ＣＵがＡＦ＿ＭＥＲＧＥモードを用いてコーディングされるかどうかを識別するために、アフィンモードにおいてコーディングされた少なくとも１つのネイバーブロックがあるとき、アフィンフラグがビットストリーム中でシグナリングされる。
【０１３３】
[0155]ＨＥＶＣでは、（ＰＵの動きベクトルと予測された動きベクトルとの間の）動きベクトル差分（ＭＶＤ）は、１／４ルーマサンプルの単位でシグナリングされる。ＪＥＭでは、高度動きベクトル解像度（ＡＭＶＲ：Advanced Motion Vector Resolution）が導入される。ＪＥＭ５では、ＭＶＤが、１／４ルーマサンプル、整数ルーマサンプルまたは４ルーマサンプルの単位でコーディングされ得る。ＪＥＭ５では、ＭＶＤ解像度がＣＵレベルにおいて制御され、ＭＶＤ解像度フラグが、少なくとも１つの非０ＭＶＤ成分を有する各ＣＵについて条件付きでシグナリングされる。
【０１３４】
[0156]少なくとも１つの非０ＭＶＤ成分を有するＣＵについて、１／４ルーマサンプルＭＶ精度がＣＵにおいて使用されるかどうかを示すために、第１のフラグがシグナリングされる。（１に等しい）第１のフラグが、１／４ルーマサンプルＭＶ精度が使用されないことを示すとき、整数ルーマサンプルＭＶ精度が使用されるのか４ルーマサンプルＭＶ精度が使用されるのかを示すために、別のフラグがシグナリングされる。
【０１３５】
[0157]ＣＵの第１のＭＶＤ解像度フラグが０であるか、またはＣＵのためにコーディングされない（ＣＵ中のすべてのＭＶＤが０であることを意味する）とき、そのＣＵのために、１／４ルーマサンプルＭＶ解像度が使用される。ＣＵが整数ルーマサンプルＭＶ精度または４ルーマサンプルＭＶ精度を使用するとき、ＣＵのためのＡＭＶＰ候補リスト中のＭＶＰは、対応する精度に丸められる。
【０１３６】
[0158]エンコーダ側で、ビデオエンコーダ２０は、どのＭＶＤ解像度がＣＵのために使用されるかを決定するために、ＣＵレベルＲＤ検査を使用し得る。すなわち、ＣＵレベルＲＤ検査は、各ＭＶＤ解像度について、それぞれ、３回実施され得る。エンコーダ速度を加速するために、以下の符号化方式がＪＥＭにおいて適用される。
【０１３７】
・  通常１／４ルーマサンプルＭＶＤ解像度を用いるＣＵのＲＤ検査中に、現在ＣＵの動き情報（整数ルーマサンプル確度（accuracy））が記憶される。（丸めの後の）記憶された動き情報は、時間がかかる動き推定プロセスが３回複製されないように、整数ルーマサンプルおよび４ルーマサンプルＭＶＤ解像度を用いる同じＣＵのためのＲＤ検査中に、さらに小さい範囲の動きベクトル改良のための開始点として使用される。
【０１３８】
・  ４ルーマサンプルＭＶＤ解像度を用いるＣＵのＲＤ検査は、条件付きで呼び出される。ＣＵについて、整数ルーマサンプルＭＶＤ解像度のためのＲＤコストが、１／４ルーマサンプルＭＶＤ解像度のＲＤコストよりもはるかに大きい（たとえば、整数ルーマサンプルＭＶＤ解像度のためのＲＤコストと、１／４ルーマサンプルＭＶＤ解像度のためのＲＤコストとの比がしきい値よりも大きい）とき、そのＣＵについての４ルーマサンプルＭＶＤ解像度のＲＤ検査はスキップされる。
【０１３９】
[0159]再構築された動きベクトル情報は、ＨＥＶＣ／Ｈ．２６５、ＡＶＣ／Ｈ．２６４、およびＪＥＭなど、既存のビデオコーデックにおける動きベクトル予測の既存の方式において十分に利用されない。
【０１４０】
[0160]本開示は、動きベクトル予測（ＭＶＰ）を実施するコンピューティングデバイスを改善し得る技法について説明する。技法は、以下で説明されるいくつかの異なる態様において詳述される。以下の技法が個々に適用され得る。代替的に、技法の任意の組合せが適用され得る。
【０１４１】
[0161]本開示の１つまたは複数の技法によれば、ビデオコーダは、特に空間動きベクトル間の相関が、現在ブロックの動き情報が、隣接しないブロックの動き情報と同様になるほど十分に強いとき、隣接しないブロックの動きベクトルが予測効率をさらに改善することができるので、現在ブロックに直接隣接しないブロックの動きベクトルを使用し得る。したがって、隣接しないブロックからの動き情報は、現在ブロックのための良好なＭＶＰ候補であり得る。本開示では、１つまたは複数の隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ：non-adjacent spatial motion vector predictor）が、現在ブロックの動き情報のための動きベクトル予測子を導出するために使用されること、または、ＮＡ−ＳＭＶＰが、インター予測を実施するために現在ブロックによって直接再使用され得ることが提案される。本開示は、ＭＶ予測のために他のＭＶ予測子（たとえば、通常のＳＭＶＰ、ＴＭＶＰ、合成ＭＶＰ）とともにＮＡ−ＳＭＶＰを適応的に組み込むための技法について説明する。
【０１４２】
[0162]したがって、本開示の技法によれば、ビデオエンコーダ２０が、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、ビデオエンコーダ２０は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る。ビデオエンコーダ２０は、現在ブロックの動きベクトルをも決定し得る。動きベクトルは、現在ブロックのためのＭＶＰの動きベクトルに等しくなり得るか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされた動きベクトル差分（ＭＶＤ）に等しくなり得る。さらに、ビデオエンコーダ２０は、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る。ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る。
【０１４３】
[0163]同様に、ビデオデコーダ３０が、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、ビデオデコーダ３０は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る。さらに、ビデオデコーダ３０は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定し得る。ビデオデコーダ３０は、現在ブロックの動きベクトルに基づいて予測ブロックをも決定し得る。ビデオデコーダ３０は、次いで、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る。
【０１４４】
[0164]いくつかの例では、隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）は、現在ブロックがその中に位置する同じピクチャ、スライス、またはあらかじめ定義された領域内に位置する空間的に隣接しないブロックの動き情報から導出される。隣接しないブロックの動き情報は現在ブロックのための動きベクトル予測子として再使用され得るので、動き情報が再構築された隣接しないブロックのみが、隣接しないＭＶＰ導出のために考慮される。本開示は、ＮＡブロックと現在ブロックとの間の距離が範囲内にあるように制約するために、ＮＡブロックに制約をさらに追加することを提案する。距離は、Ｌ１またはＬ２の観点でピクセル距離において測定され得るか、または、距離は、Ｌ１またはＬ２の観点でブロック距離において測定され得る。固定直交座標系をもつｎ次元実ベクトル空間中の２つの座標点間のＬ１距離は、座標軸上への点間のラインセグメントの投影（projection）の長さの和である。Ｌ１ピクセル距離の場合、投影の長さは、１つのピクセルの高さまたは幅である。Ｌ１ブロック距離の場合、投影の長さは、ブロックの幅または高さである。Ｌ２距離は、２つの点間のユークリッド距離である。距離は、ブロック中心、または各ブロック内の任意の指定された点間で測定され得る。いくつかの例では、ＮＡブロックを、現在ブロックに隣接せず、現在ブロックに直接隣接するブロックに隣接しないブロックであるように制約する別の制約が、ＮＡブロックに追加される。
【０１４５】
[0165]図１５は、本開示の技法による、例示的な隣接しないブロックを示すブロック図である。図１５に示されているように、隣接しないブロック１５００は、現在ブロック１５０２に直接隣接しない再構築されたブロックである。隣接しないブロックのサイズは、動き情報を記憶するために使用される最小ユニットブロック（たとえば４×４ブロック）、またはインター予測のための基本ユニット（たとえば、ＨＥＶＣではＰＵ）、またはＪＥＭにおけるアフィンモード、ＦＲＵＣモードにおいて使用されるサブブロック、あるいは他の指定されたブロックサイズとして定義され得る。図１５は、隣接する、再構築されていないブロック１５０４、および、隣接しない、再構築されていないブロック１５０６をも示す。
【０１４６】
[0166]図１６は、本開示の技法による、隣接しないブロックの選択の一例を示すブロック図である。図１７は、本開示の技法による、親ブロックに基づく隣接しないブロックの選択の一例を示すブロック図である。潜在的にすべての隣接しないブロックがＭＶＰ導出のために使用され得るが、ＭＶＰ導出のために限られた数の隣接しないブロック（ＮＡブロック）のみを選択することが（実装複雑さの点で）より望ましいことがある。動きベクトル予測子（ＭＶＰ）導出のためにＮ個の（ここでＮは非負整数である）隣接しないブロックを選択するためのいくつかのやり方が、以下で詳述される。たとえば、ＭＶＰ導出のためにＮ個の隣接しないブロックを選択することの一例では、隣接しないブロックの固定パターンが、ＮＡ−ＳＭＶＰ導出のために選択される。固定パターンは、現在ブロックの位置に対して配置される。図１６に示されている一例では、現在ブロック１６００についてＨＥＶＣにおいて使用される通常のＳＭＶＰを導出するために使用される隣接するブロック（たとえばＡ0、Ａ1、Ｂ0、Ｂ1およびＢ2）のほかに、現在ブロック１６００を囲む１１個のＮＡブロック（ＮＡ1,1、ＮＡ1,2、ＮＡ1,3、ＮＡ1,4、ＮＡ1,5、ＮＡ1,6、ＮＡ1,7、ＮＡ1,8、ＮＡ1,9、ＮＡ1,10、ＮＡ1,11）の固定パターンが、ＮＡ−ＳＭＶＰを導出するために使用される。水平距離ｓ1と垂直距離ｔ1とが、このパターンの２つの記述子である。
【０１４７】
[0167]図１７に示されている別の例では。図１７の例では、ＨＥＶＣにおいて使用される通常のＳＭＶＰを導出するために使用される隣接するブロックのほかに、ビデオコーダは、現在ブロック１７０２を含んでいる親ブロック１７００の隣接するブロックをＭＶＰ導出のためにＮＡブロックとして使用する。図１７では、親ブロック１７００の隣接するブロック（ＮＡ1,1、ＮＡ1,2、ＮＡ1,3、ＮＡ1,4、ＮＡ1,5、ＮＡ1,6、ＮＡ1,7、ＮＡ1,8、ＮＡ1,9）が、現在ブロック１７０２を含む親ブロック１７００内のブロックについての隣接しないブロックとして選択される。親ブロック１７００のサイズは、事前決定されるか、ビットストリーム中でシグナリングされるか、現在ブロック１７０２のサイズに依存するか、または現在ブロック１７０２のコード化モード（たとえば、スキップ／マージ／ＡＭＶＰ）に依存し得る。本開示のＮＡ−ＳＭＶＰは、限定はしないが、隣接しない空間ブロックの開示されるパターンから導出され得る。
【０１４８】
[0168]マルチレベル周囲ＮＡブロックの例が、以下のように与えられる。各レベルについて、ＮＡブロックの数が異なり得ることに留意されたい。
【０１４９】
[0169]パターンＡ１：マルチレベル周囲ＮＡブロック。各レベル（レベルｉ）は、距離パラメータ（ｓiおよびｔi）によって表される。図２０、図２１および図２２は、２レベル周囲ＮＡブロックの例を示すが、レベルの数は任意の非負整数であり得る。図２０、図２１、および図２２の例では、黒い正方形が第１のレベルにおけるＮＡブロックに対応し、グレーの正方形が第２のレベルにおけるＮＡブロックに対応する。ｔ1が、現在ブロック２０００、２１００、または２２００から第１のレベルまでの垂直距離を示す。ｔ2が、現在ブロック２０００、２１００、または２２００から第２のレベルまでの垂直距離を示す。ｓ1が、現在ブロック２０００、２１００、または２２００から第１のレベルまでの水平距離を示す。ｓ2が、現在ブロック２０００、２１００、または２２００から第２のレベルまでの水平距離を示す。
【０１５０】
[0170]パターンＡ２：親ブロックに基づくマルチレベル周囲ＮＡブロック。各レベル（レベルｉ）は、距離パラメータ（ｓiおよびｔi）によって表される。親ブロックのサイズは、事前決定されるか、またはビットストリーム中でシグナリングされ得る。図２３は、２レベル周囲ＮＡブロックの例を示すが、レベルの数は任意の非負整数であり得る。
【０１５１】
[0171]さらに、いくつかの例では、現在ブロックと隣接しないブロックとの間の距離が、Ｌ１ノルム（すなわち、Ｌ１距離）またはＬ２ノルム（すなわち、ユークリッド距離）によって定義される。
【０１５２】
[0172]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、逆コーディング順序に従ってＮ個の隣接しないブロックを選択する。たとえば、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ビデオコーダがブロックをコーディングした順序の反対である順序に従ってブロックを走査することによって、隣接しないブロックを選択し得る。
【０１５３】
[0173]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、あらかじめ定義された順序に従ってすべての再構築されたＭＶをこのリストに挿入することによって、グローバルＭＶ候補リストを構築する。グローバルＭＶ候補リストは、隣接するブロックから導出されたＭＶならびに隣接しないブロックから導出されたＭＶを含んでいることがある。次いで、現在ブロックのＭＶ予測子が、このグローバルＭＶ候補を使用して導出され得る。したがって、そのような例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在ピクチャ中にあり、現在ブロックより前に符号化される各ブロックについての動きベクトルを指定するＭＶＰ候補を備えるグローバル動きベクトル候補リストを決定し得る。さらに、ビデオコーダは、グローバル動きベクトル候補リスト中のＭＶＰ候補から隣接しないブロックの動きベクトルを決定し得る。
【０１５４】
[0174]いくつかの例では、隣接しないＭＶ候補を直接フェッチすることがラインバッファのサイズを増加させ得るので、ビデオコーダは、再構築されたＭＶを記憶するための代替のやり方を適用する。たとえば、ビデオコーダは、先入れ先出し様式で履歴バッファに再構築されたＭＶを記憶し得る。隣接しないＭＶ候補を模倣するために、履歴バッファ中のそれらの古いＭＶのみが、隣接しないＭＶ候補としてとられる。履歴バッファ中の古いＭＶは、履歴バッファの最後に近いＭＶとして定義され得る。たとえば、履歴バッファのサイズがＮである場合、（Ｔ＝Ｎ／４などの）しきい値Ｔが、シグナリングされるか、または、履歴バッファ中の出口に最も近いＴ個のＭＶが古いＭＶとして定義されるように設定され得る。
【０１５５】
[0175]いくつかの例では、隣接しない動き情報（すなわち、隣接しないブロックの動き情報）を記憶するために使用されるバッファのバッファサイズを低減するために、隣接しない空間動きベクトル予測子を導出するために制約が追加される。隣接しないブロックと現在ブロック（または現在ＣＴＵ）との間の距離がしきい値よりも大きい場合、隣接しないブロックの位置は変更され得る。言い換えれば、第１のロケーション（たとえば、ＮＡブロックの固定パターンによって指定されたロケーション）におけるＮＡブロックに基づいてＭＶ候補を決定するのではなく、ビデオコーダは、第１の位置から現在ブロックまでの距離がしきい値よりも大きいとき、第１の位置に基づいて第２の位置を決定し得る。いくつかの例では、第１のロケーション（たとえば、ＮＡブロックの固定パターンによって指定されたロケーション）におけるＮＡブロックに基づいてＭＶ候補を決定するのではなく、ビデオコーダは、第１の位置から現在ブロックまでの距離がしきい値よりも大きいとき、第１の位置が有効でないと決定し得る。しきい値は、水平距離および垂直距離について異なり得る。したがって、いくつかの例では、隣接しないブロックの動きベクトルを決定することより前に、および隣接しないブロックと現在ブロックとの間の距離がしきい値距離よりも大きいことに基づいて、ビデオコーダは、隣接しないブロックの位置を変更し得る。いくつかの例では、隣接しないブロックの動きベクトルを決定することより前に、および隣接しないブロックと現在コーディングツリーブロックとの間の距離がしきい値距離よりも大きいことに基づいて、ビデオコーダは、隣接しないブロックの位置を変更し得る。そのような例では、現在コーディングツリーブロックは現在ブロックを含んでいる。
【０１５６】
[0176]位置変更の一例は、第１の位置を粗いグリッドに丸めること、すなわち、記憶された隣接しない動きを低減することであり得る。したがって、この例では、ビデオコーダは、少なくとも部分的に、隣接しないブロックの位置を、現在ピクチャ中のブロックの第２のグリッドよりも粗い現在ピクチャ中のブロックの第１のグリッド上の位置に丸めることによって、隣接しないブロックの位置を変更し得る。
【０１５７】
[0177]位置変更の別の例は、第１の位置までの距離がしきい値よりも大きい場合、その位置をしきい値にクリッピングすることであり得る。その位置をしきい値にクリッピングすることは、その位置がしきい値を超える場合、その位置をしきい値になるように変更することを意味する。したがって、この例では、ビデオコーダは、少なくとも部分的に、隣接しないブロックの位置を距離しきい値にクリッピングすることによって、隣接しないブロックの位置を変更し得る。異なるしきい値を用いた複数の位置変更方法が組み合わせられ得る。
【０１５８】
[0178]図１８Ａおよび図１８Ｂは、本開示の技法による、隣接しないブロックの位置変更の一例を示すブロック図である。図１９Ａおよび図１９Ｂは、本開示の技法による、隣接しないブロックを変更するためのしきい値の例を示すブロック図である。位置を変更することのいくつかの例が、以下で与えられる。これらの例では、隣接しないブロックの位置が（ｘＮＡ，ｙＮＡ）であると仮定すると、隣接しないブロックの変更された位置は（ｘＮＡ’，ｙＮＡ’）であり、現在ＣＴＵ１８００、１９００の左上グリッドの位置は（ｘＣＴＵ，ｙＣＴＵ）であり、現在ＣＵの位置は（ｘＣＵ，ｙＣＵ）である。制約の例は、以下の通りであり得る。
【０１５９】
１．（ｙＣＴＵ−ｙＮＡ）＞（または≧）ｙＴｈｒｄである場合、ｙＮＡ’＝ｙＴｈｒｄである。（ｘＣＴＵ−ｘＮＡ）＞（または≧）ｘＴｈｒｄである場合、ｘＮＡ’＝ｘＴｈｒｄである。ｙＴｈｒｄはｘＴｈｒｄよりも小さくなり得る。図１８Ａは、ｙＴｈｒｄを用いる一例を示し、ここで、Ｔｈｒｄはしきい値の省略形である。したがって、図１８Ａでは、ＣＴＵ１８００は現在ＣＵ（ｃｕｒｒ）１８０２を含んでいる。隣接しないブロックの位置ＮＡ１８０４の垂直座標とＣＴＵ１８００の垂直座標との間の差分がしきい値（ｙＴｈｒｄ）よりも大きい場合、ビデオコーダは、位置ＮＡ１８０４の垂直座標をしきい値にクリッピングし、位置ＮＡ’１８０６を生じる。
【０１６０】
２．（ｙＣＴＵ−ｙＮＡ）＞（または≧）ｙＴｈｒｄおよび（または）（ｘＣＴＵ−ｘＮＡ）＞（または≧）ｘＴｈｒｄである場合、ａｂｓ（ｘＮＡ’，ｙＮＡ’）＝（（ｘＮＡ＞＞ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸ）＜＜ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸ，（ｙＮＡ＞＞ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹ）＜＜ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹ）である。ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸおよびＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹは、位置丸めを制御するための値である。たとえば、（ｘＮＡ，ｙＮＡ）が（３６，１８）であり、（ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸ，ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹ）が（４，４）である場合、丸められた位置（ｘＮＡ’，ｙＮＡ’）は、（（３６＞＞４）＜＜４，（１８＞＞４）＜＜４）＝（３２，１６）である。言い換えれば、隣接しないブロックの位置が現在ブロックから遠い場合、ビデオコーダは、その位置をより粗いグリッドに丸め得る。したがって、動きバッファは、より粗いグリッド上に、隣接しないブロックの動きを記憶するにすぎないことがある。図１８Ｂは一例を示す。したがって、図１８Ｂの例では、ＣＴＵ１８５０は現在ＣＵ（ｃｕｒｒ）１８５２を含んでいる。位置ＮＡ１８５４の垂直（ｙ）座標とＣＴＵ１８５０の位置の垂直座標との間の差分が垂直しきい値（ｙＴｈｒｄ）よりも大きく、および／または、位置ＮＡ１８５４の水平（ｘ）座標の間の異なるが水平しきい値（ｘＴｈｒｄ）よりも大きい場合、ビデオコーダは、（ｘＮＡ＞＞ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸ）＜＜ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＸへの変更された位置ＮＡ’１８５６の水平座標と、（ｙＮＡ＞＞ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹ）＜＜ＣｏｍｐｒｅｓｓｅｄＬｏｇ２ＳｉｚｅＹへの変更された位置ＮＡ’１８５６の垂直座標とを決定し得る。いくつかの例では、ｘＴｈｒｄは負の無限大である。したがって、そのような例では、（ｘＣＴＵ−ｘＮＡ）は、常にｘＴｈｒｄよりも大きい。
【０１６１】
３．いくつかの例では、隣接しないブロックを変更することのしきい値が以下の通り、すなわち、（ｙＣＴＵ−ｙＮＡ）＞ｙＴｈｒｄである場合、隣接しないブロックは変更される。図１９Ａは一例を示し、影付きブロックは、変更されるべきである隣接しないブロック位置である。詳細には、図１９Ａの例では、ＣＴＵ１９００は現在ＣＵ（ｃｕｒｒ）１９０２を含む。隣接しないブロックの垂直座標が、しきい値（ｙＴｈｒｄ）超だけＣＴＵ１９００の垂直座標とは異なる場合、ビデオコーダは、隣接しないブロックの位置を変更し得る。
【０１６２】
４．隣接しないブロックを変更することのしきい値は、２つ以上のルールの組合せであり得る。一例は、以下の通りであり得る。（１）（ｙＣＴＵ−ｙＮＡ）＞ｙＴｈｒｄである場合、隣接しないブロックは変更されるべきである。（２）（ｙＣＴＵ−ｙＮＡ）＞０および（ｘＣＴＵ−ｘＮＡ）＞０である場合、隣接しないブロックは変更されるべきである。図１９Ｂは２つのルールの組合せの例を示し、影付きブロックは、変更されるべきである隣接しないブロック位置である。詳細には、図１９Ｂの例では、ＣＴＵ１９５０は現在ＣＵ（ｃｕｒｒ）１９５２を含む。隣接しないブロックの垂直座標が、垂直しきい値（ｙＴｈｒｄ）超だけＣＴＵ１９５０の垂直座標とは異なる場合、ビデオコーダは、隣接しないブロック垂直座標を変更し得る。さらに、隣接しないブロックの水平座標とＣＴＵ１９５０の水平座標との間の差分が０よりも大きく、隣接しないブロックの垂直座標とＣＴＵ１９５０の垂直座標との間の差分が０よりも大きい場合、ビデオコーダは、隣接しないブロックの水平座標を変更し得る。
一例では、現在ブロックと同じＣＴＵ行に位置する隣接しないブロックのみが選択され得る。別の例では、現在ブロックと同じＣＴＵに位置する隣接しないブロックのみが選択され得る。
【０１６３】
[0179]ビデオコーダが、Ｎ個の隣接しないブロックが決定されると決定した後、ビデオコーダは、Ｎ個の隣接しないブロック（ＮＡブロック）からＭ個の（ここでＭ≦Ｎ）隣接しない空間動きベクトル予測子（ＮＡ−ＳＭＶＰ）を導出し得る。ビデオコーデックにおいて使用されるインター予測機構に応じて隣接しないＳＭＶＰを利用するための異なるやり方がある。たとえば、競合的動き候補機構（たとえば、ＨＥＶＣまたはＪＥＭにおけるマージ／スキップモード）が使用されるとき、１つまたは複数の隣接しない空間ＭＶＰ（ＮＡ−ＳＭＶＰ）は、導出され、あらかじめ定義された順序に従って候補リストに挿入される。図１６に示されている一例では、１１個の隣接しないＭＶＰが、従来の空間ＭＶＰ、時間ＭＶＰの後に、および合成組合せ候補、合成０候補の前に、マージング候補リストに挿入される。
【０１６４】
[0180]いくつかの例では、全動き（full motion）プルーニングプロセスがＮＡ−ＳＭＶＰおよび他のマージング候補に適用され得るか、または、部分動き（partial motion）プルーニングがＮＡ−ＳＭＶＰおよび他のマージング候補に適用され得る。全動きプルーニングプロセスは、ある程度まで同等の候補を挿入することを回避するために、現在候補リスト中のある候補をすべての前に導出された候補と比較する。複雑さを低減するために、部分動きプルーニングプロセスは、各潜在的候補をすべての他の既存の候補と比較する代わりに、限られた数の候補のみを比較する。隣接しないブロックのより多くの挿入順序が、以下で、シーケンス２〜シーケンス５において与えられる。本開示のＮＡ−ＳＭＶＰは、候補リストに挿入され得、限定はしないが、開示される挿入順序を含む。
【０１６５】
【数９】
2020523853.tif 000011
【０１６６】
[0181]競合的時空間動き候補方式は、利用可能な動き予測子のセットから動き予測子が選択されるシステムを含み得る。ＨＥＶＣまたはＪＥＭあるいは他のビデオコーデックにおけるＡＭＶＰモードなど、競合的時空間動き候補方式が使用されるとき、隣接しないＭＶＰ候補は、導出され、あらかじめ定義された順序に従って候補リストに挿入される。一例では、ビデオコーダは、図１６の１１個の隣接しないＭＶＰを、従来の空間ＭＶＰ、時間ＭＶＰの後に、および任意の合成０候補の前に、ＡＭＶＰ候補リストに挿入する。ＮＡ−ＳＭＶＰ導出は、ＨＥＶＣと同じ導出ルール、または、隣接するブロックから導出されたＳＭＶＰに適用される任意の他のルールに従うことができる。
【０１６７】
[0182]ＮＡ−ＳＭＶＰ候補の順序は、あるあらかじめ定義されたルールによって決定され得るか、または、適応可能なやり方で決定され得るかのいずれかである。たとえば、ビデオコーダは、本開示の他の場所で与えられる例のいずれかに従って、Ｎ個のＮＡブロックが選択されるのと同じ順序で、Ｎ個の隣接しないブロックからＭ個の候補を構成し得る。代替的に、一例では、ビデオコーダは、Ｍ個の候補の頻度（すなわち、すべてのＭＶ候補の中のそれらの候補の発生回数）および／またはＮＡブロックと現在ブロックとの間の距離に従って、それらの候補を並べ替える。したがって、この例では、ビデオコーダは、ＮＡ−ＳＭＶＰ候補リスト（すなわち、ＮＡ−ＳＭＶＰ候補および場合によっては他の候補を含む候補リスト）中で前方に、より頻度が高い候補および／または現在ブロックにより近いＮＡブロックからの候補を配置し得る。さらに、ビデオコーダは、上記で、シーケンス２〜シーケンス５において説明されたように、すべてのＮＡ−ＳＭＶＰ候補を候補リスト中の固定位置において挿入し得、それらのＮＡ−ＳＭＶＰ候補は、ＮＡ−ＳＭＶＰ候補のみの中で並べ替えられることを可能にされる。別の例では、ビデオコーダは、動き情報の頻度（すなわち、すべてのＭＶ候補の中の動きベクトルの発生回数）あるいは現在ピクチャおよび／または前にコーディングされたピクチャからの任意の利用可能な動き統計値など、いくつかの基準に従って、（ＮＡ−ＳＭＶＰおよび他の候補を含む）リスト中のすべての候補を並べ替え得る。候補リスト中のＮＡ−ＳＭＶＰの順序は、いくつかのコーディングモード、たとえばマージおよび／またはＡＭＶＰモードについて異なり得、必ずしも、開示される候補順序に限定されるとは限らない。たとえば、ビデオコーダは、第１の順序に従ってＮＡ−ＳＭＶＰ候補をマージ候補リストに挿入し得、第１の順序とは異なる第２の順序に従ってＮＡ−ＳＭＶＰ候補をＡＭＶＰ候補リストに挿入し得る。
【０１６８】
[0183]いくつかの例では、プルーニングプロセスはブロックサイズに適応可能である。一例では、しきい値は、何がプルーニングされる必要があるかを定義するために使用され得る。たとえば、ブロックサイズが大きい（すなわち、あらかじめ定義されたブロックサイズよりも大きい）場合、ビデオコーダは、それに応じてしきい値を増加させ得る。（より早期にリストに追加された）動きベクトルＭＶ０およびＭＶ１をもつ２つの候補を考慮すると、一例では、ＭＶ０とＭＶ１との間の距離のＬ１またはＬ２ノルムがしきい値よりも小さい場合、ビデオコーダはＭＶ１の候補をプルーニングする。ビデオエンコーダ２０は、ＳＰＳ、ＰＰＳ、スライスヘッダを通して、または別のシンタックス構造においてシグナリングされたしきい値をシグナリングし得る。
【０１６９】
[0184]別の例では、しきい値は、現在ブロックサイズに基づいて適応可能である。たとえば、この例では、第１のしきい値は、あらかじめ定義されたブロックサイズよりも小さいサイズを有するブロックのために適用され、第２の異なるしきい値は、あらかじめ定義されたブロックサイズよりも大きいサイズを有するブロックのために適用される。この例では、あらかじめ定義されたブロックサイズよりも小さいサイズを有するブロックのための候補リストを生成するとき、ビデオコーダは、ある候補の動きベクトルとリスト中の別の候補の動きベクトルとの間の距離のＬ１またはＬ２ノルムが第１のしきい値よりも小さい場合、その候補をリストからプルーニングし得る。この例では、あらかじめ定義されたブロックサイズよりも大きいサイズを有するブロックのための候補リストを生成するとき、ビデオコーダは、ある候補の動きベクトルとリスト中の別の候補の動きベクトルとの間の距離のＬ１またはＬ２ノルムが第２のしきい値よりも小さい場合、その候補をリストからプルーニングし得る。
【０１７０】
[0185]別の例示的なプルーニングプロセスでは、しきい値は、候補の空間的位置と現在ブロックの空間的位置との間の距離に基づいて適応可能である。ビデオコーダは、候補が現在ブロックからより遠くに離れて位置する場合、より大きいしきい値を使用し得る。たとえば、現在ブロックのための候補リストを生成するとき、ビデオコーダは、特定の隣接しないブロックに基づいて第１のＮＡ−ＳＭＶＰを決定し得る。この例では、ビデオコーダは、リスト中の第１のＮＡ−ＳＭＶＰ候補の動きベクトルと第２の候補の動きベクトルとの間の距離のＬ１またはＬ２ノルムが特定のしきい値よりも小さい場合、第１のＮＡ−ＳＭＶＰ候補をリストからプルーニングし得る。この例では、特定のしきい値は、特定の隣接しないブロックと現在ブロックとの間の距離に依存し得る。
【０１７１】
[0186]いくつかの例では、動きベクトルの分類は、限定はしないがＫ平均またはサポートベクターマシンを含む方法を使用して行われ得、Ｎc個のクラスの各々からの最初のＭc個の候補のみが候補リスト中で保たれるべきであり、ここで、Ｍcとクラスの数Ｎcとは、あらかじめ定義されるか、または高レベルシンタックスにおいてシグナリングされ得る。
【０１７２】
[0187]ＪＥＭにおけるアフィンマージモードなど、単一のＭＶＰのみが使用される方式では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）はまた、他のＭＶＰとともに候補セット中に１つまたは複数の隣接しないＳＭＶＰ（ＮＡ−ＳＭＶＰ）を含め得る。次いで、最後のＭＶＰが、あらかじめ定義された順序に従って最初の利用可能なＭＶＰとして選択される。一例では、ＣＵがアフィンマージ（ＡＦ＿ＭＥＲＧＥ）モードにおいて適用されるとき、それは、訪問順序、Ａ１→Ｂ１→Ｂ０→Ａ０→Ｂ２→ＮＡブロックに基づいて、有効なネイバーの再構築されたブロックから、アフィンモードを用いてコーディングされた第１のブロックを得る。したがって、この例では、ブロックＡ１、Ｂ１、Ｂ０、Ａ０、またはＢ２のいずれもアフィンモードを用いてコーディングされない場合、ビデオコーダは、ＣＵについてのＭＶＰがアフィンモードにおいてコーディングされる隣接しないブロックの最初のＭＶＰであると決定し得る。
【０１７３】
[0188]上記で手短に説明されたように、ＦＲＵＣマージモードにおける動き導出プロセスは、２つのステップを含む。特に、ＣＵレベル動き探索が最初に実施され、その後に、サブＣＵレベル動き改良が続く。ＣＵレベルにおいて、ビデオコーダは、両方向マッチングまたはテンプレートマッチングに基づいて全ＣＵについて初期動きベクトルを導出する。全ＣＵについての初期動きベクトルを導出するために、ビデオコーダは、最初に、ＭＶ候補（ＦＲＵＣ  ＣＵレベルＭＶ候補セット）のリストを生成し得、ビデオコーダは、さらなるＣＵレベル改良のための開始点として、最小マッチングコストにつながる候補を選択する。次いで、ビデオコーダは、開始点の周りの両方向マッチングまたはテンプレートマッチングに基づいてローカル探索を実施する。ビデオコーダは、次いで、最小マッチングコストを生じるＭＶを、全ＣＵについてのＭＶとしてとる。その後、ビデオコーダは、導出されたＣＵ動きベクトルを含んでいるＦＲＵＣサブＣＵレベルＭＶ候補セットを用いてサブＣＵレベルにおいて、動き情報をさらに改良し得る。
【０１７４】
[0189]本開示は、ＦＲＵＣ  ＣＵレベルＭＶ候補セット、ＦＲＵＣサブＣＵレベルＭＶ候補セット、またはその両方に、１つまたは複数のＮＡ−ＳＭＶＰを追加することを提案する。したがって、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＣＵレベルＦＲＵＣ動きベクトル候補のセットを決定し得る。本開示の技法によれば、ＣＵレベルＦＲＵＣ動きベクトル候補のセットは、１つまたは複数のＮＡ−ＳＭＶＰを含み得る。さらに、ビデオコーダは、ＣＵレベルＦＲＵＣ動きベクトル候補のセットからＣＵレベルＦＲＵＣ動きベクトル候補を選択し得る。ビデオコーダは、次いで、少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定し得る。ビデオコーダはまた、ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいてＣＵレベル動きベクトルを改良し得る。この例では、ＣＵレベルＦＲＵＣ動きベクトル候補のセットおよびＦＲＵＣサブＣＵレベル動きベクトル候補のセットのうちの少なくとも１つは、隣接しないブロックの動きベクトルを指定するＮＡ−ＳＭＶＰを含み得る。ＮＡ−ＳＭＶＰは、本開示の他の場所で与えられる例のいずれかに従って決定され得る。
【０１７５】
[0190]隣接しないＭＶＰに関係する高レベルシンタックスが、事前決定されるか、またはビットストリーム中に明示的にシグナリングされ得る。高レベルシンタックスは、限定はしないが、以下の制御パラメータを含む。
【０１７６】
１．隣接するブロックの数Ｎ。いくつかの例では、その数は、ブロックサイズなどのコーディング情報に従って適応可能である。いくつかの例では、数Ｎは、コード化モード（たとえば、スキップ／マージ／ＡＭＶＰ）、またはマージ／ＡＭＶＰ／スキップモードのための候補の最大許容数に依存する。
【０１７７】
２．距離ｓ／ｔ（複数のパラメータｓ／ｔが存在する場合、それらをシグナリングする）、ここで、図２０〜図２３に示されているように、ＮＡブロックについて、ｓは水平変位であり、ｔは垂直変位である。
【０１７８】
３．ＮＡブロック決定のための親ブロックのサイズ。
【０１７９】
４．隣接しないＭＶＰの有効化／無効化。
【０１８０】
５．図２０〜図２２に関して上記で説明されたように、ＮＡブロックの位置を特定するためのレベルの数。
【０１８１】
[0191]ＨＥＶＣでは、マージング候補リストサイズは１から５に及び、ＡＭＶＰ候補リストサイズは２に固定される。ＪＥＭでは、マージング候補リストサイズは１から７に及び、ＡＭＶＰ候補リストサイズは２に固定される。ＮＡ−ＳＭＶＰがＭＶＰまたはマージング候補リスト中に含まれるとき、最大候補リストサイズは、それに応じて増加され得る。たとえば、マージング候補リストサイズは、１つまたは複数のＮＡ−ＳＭＶＰがマージング候補リストサイズに挿入されるとき、Ｎまで増加され得る（ここで、Ｎは正の整数であり、Ｎ＞７である）。この例では、ＡＭＶＰ候補リストサイズは、１つまたは複数のＮＡ−ＳＭＶＰがマージング候補リストサイズに挿入されるとき、Ｍまで増加され得る（Ｍは正の整数であり、Ｍ＞２である）。
【０１８２】
[0192]本開示はまた、ＨＥＶＣにおいて与えられるものに加えて、合成ＭＶ候補を使用することを提案する。追加の合成ＭＶ候補の利用も、隣接しないＭＶＰの使用に関して本開示の他の場所で与えられる例に従うことができる。すなわち、合成ＭＶ候補は、隣接しないブロックの動きパラメータに基づいて生成され得、ここで、隣接しないブロックは、上記で与えられた例のいずれかに従って決定される。
【０１８３】
[0193]いくつかの例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、Ａ1、Ｂ1、Ｂ0、Ａ0、Ｂ2（図２参照）など、あらかじめ定義された順序に従って、利用可能な双予測ＭＶ候補を２つの別々の単予測候補にスプリットすることによって、合成単予測候補を生成する。ビデオコーダは、次いで、作成された合成単予測候補を候補リストに挿入し得る。
【０１８４】
[0194]さらに、いくつかの例では、整数ＭＶＤ（すなわち、１つのルーマサンプルの精度に指定されたＭＶＤ）または４ルーマサンプルＭＶＤ（すなわち、４つのルーマサンプルの精度に指定されたＭＶＤ）が有効化されるとき、ビデオコーダは、利用可能なＭＶ候補を整数ＭＶまたは４ルーマサンプルＭＶ候補に丸めるかまたは切り捨てる（truncate）ことによって、合成整数ＭＶ候補（すなわち、１つのルーマサンプルの精度をもつ動きベクトルを有するＭＶ候補）または４ルーマサンプルＭＶ候補（すなわち、４つのルーマサンプルの精度をもつ動きベクトルを有するＭＶ候補）を生成し得る。ビデオコーダは、次いで、生成された合成整数ＭＶ候補または４ルーマサンプルＭＶ候補を候補リストに挿入し得る。
【０１８５】
[0195]本開示は、マージ候補リストまたはＡＭＶＰ候補リスト中に複数のＴＭＶＰ候補を含めるやり方をも提案する。一例では、１つのコロケートピクチャがシグナリングされるＨＥＶＣ設計に続いて、ビデオコーダは、より多くのＴＭＶＰ候補を導出するためにより多くの時間近隣ブロックを使用する。たとえば、ただ順序通り（図２に示された）ＨブロックおよびＣブロックを検査し、それらのうちの１つを選ぶことに加えて、ビデオコーダは、より多くのブロック（たとえば、現在ブロックの空間近隣ブロックのコロケートブロック）を検査し得る。一例では、ビデオコーダによって検査される空間近隣ブロックは、隣接するブロック、たとえば、図１６に示されているように、Ａ0、Ａ1、Ｂ0、Ｂ1およびＢ2のみを含み得る。したがって、この例では、ビデオコーダは、（ＨブロックおよびＣブロックを含むかまたはそれらに加えて）隣接するブロックの最高５つのコロケートブロックを考慮する。別の例では、ビデオコーダは、ＮＡブロック（たとえば、図１６中の１１個のＮＡブロック（ＮＡ1,1、ＮＡ1,2、ＮＡ1,3、ＮＡ1,4、ＮＡ1,5、ＮＡ1,6、ＮＡ1,7、ＮＡ1,8、ＮＡ1,9、ＮＡ1,10、ＮＡ1,11））のコロケートブロックをも考慮し得る。
【０１８６】
[0196]いくつかの例では、ビデオコーダは、現在ブロックの反対側に位置するコロケートブロックを考慮する。たとえば、図１６中の（（−４，−４）位置に位置する）ＮＡブロックＮＡ1,6について、ビデオコーダは、対応するＮＡ−ｃｏｌ−ブロック（すなわち、隣接しないブロックとコロケートされ、参照ピクチャであるブロック）を（Ｗ＋３，Ｈ＋３）に位置するブロックとして選択し得、ここで、ＷおよびＨは、動き情報のブロックサイズの基本ユニットにおける現在ブロックの幅および高さである（たとえば、４×４）。これは、現在ブロックの下位置および右位置にあるＮＡ−ｃｏｌ−ブロックのセットを作成する。いくつかの例では、ビデオコーダは、インターリービング様式で、ＮＡ−ＳＭＶＰにＭＶ候補（すなわち、ＮＡ−ｃｏｌ−ブロックから定義されたＭＶ候補）のこのセットを追加する。代替的に、いくつかの例では、ビデオコーダは、本開示の他の場所で説明される既存のＡＭＶＰまたはマージ導出プロセスの場合のように、ＭＶ候補のこのセットをＴＭＶＰ候補のセットとして挿入し得る。
【０１８７】
[0197]いくつかの例では、ビデオコーダは、２つ以上のコロケートピクチャを選択し得る。言い換えれば、ビデオコーダは、ＴＭＶＰ候補をそこから導出すべき２つ以上の参照ピクチャを選択し得る。そのような例では、選択されたピクチャは、参照ピクチャリスト中に含まれるすべての参照ピクチャとして定義され得るか、または、選択されたピクチャはシグナリングされ得る。一例では、各選択された参照ピクチャについて、ビデオコーダは、ＨＥＶＣにおいて使用されるのと同じ順序で（すなわち、右下、次いで中心）、選択された参照ピクチャ内のＨブロックおよびＣブロックを検査し得る。代替的に、一例では、各選択されたピクチャについて、ビデオコーダは、より多くのブロック（たとえば、現在ブロックの空間的に隣接するブロックおよび／またはＮＡブロックのコロケートブロック）を検査する。
【０１８８】
[0198]さらに、ビデオコーダが複数のＴＭＶＰ候補を導出したとき、ビデオコーダは、それらの中の同等のＴＭＶＰ候補を削除するためにプルーニングプロセスを適用し得る。代替的に、いくつかの例では、ビデオコーダは、制限付きプルーニングプロセスを適用し得、制限付きプルーニングプロセスは、ＴＭＶＰ候補のうちの１つが、他の候補のすべてではなく一定数の候補のみと比較され得ることを意味する。一例では、さらに、ビデオコーダはさらに、１つのＴＭＶＰ候補と（空間マージング候補などの）他の候補との間でプルーニングプロセスを適用し得る。追加のＴＭＶＰを使用するための提案される技法は、マージおよび／またはＡＭＶＰモードなど、いくつかのコーディングモードに適用され得る。
【０１８９】
[0199]Ｇ．Ｊ．Ｓｕｌｌｉｖａｎ、Ｊ．−Ｒ．Ｏｈｍ、Ｗ．−Ｊ．Ｈａｎ、およびＴ．Ｗｉｅｇａｎｄ、「Overview of the High Efficiency Video Coding (HEVC) Standard」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．２２、ｎｏ．１２、１６４９〜１６６８ページ、２０１２年１２月において説明されているように、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣと比較してイントラ予測方向の増加された数により、ＨＥＶＣは、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣにおいて考慮される１つの最確モードではなく、ルーマイントラ予測モードを予測的にコーディングするとき、３つの最確モード（ＭＰＭ：most probable mode）を考慮する。ＭＰＭは、空間的に隣接するブロックのイントラモードから導出される。現在ルーマ予測モードが３つのＭＰＭのうちの１つである場合、ＭＰＭインデックスのみがデコーダに送信される。他の場合、３つのＭＰＭを除く現在ルーマ予測モードのインデックスが、５ビット固定長コードを使用することによってデコーダに送信される。ＪＥＭはまた、同じイントラモード予測方式に従う。ただし、ＪＥＭは４つ以上のＭＰＭを含み得る。
【０１９０】
[0200]本開示は、より良い予測効率を達成するために１つまたは複数のＭＰＭを導出するために隣接しないブロックのイントラモードを使用するための技法を提案する。前のセクションにおいて説明された技法が、ＭＰＭ導出に適用され得る。隣接しないブロックからＭＰＭを導出する例は、以下で、図３５および図３６に関して与えられる。
【０１９１】
[0201]図２４は、本開示の技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。図２４は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。本開示の技法は、様々なコーディング規格または方法に適用可能であり得る。
【０１９２】
[0202]処理回路がビデオエンコーダ２０を含み、ビデオエンコーダ２０は、本開示で説明される例示的な技法のうちの１つまたは複数を実施するように構成される。たとえば、ビデオエンコーダ２０は集積回路を含み、図２４に示されている様々なユニットは、回路バスと相互接続されるハードウェア回路ブロックとして形成され得る。これらのハードウェア回路ブロックは別々の回路ブロックであり得るか、または、ユニットのうちの２つまたはそれ以上が組み合わせられて共通ハードウェア回路ブロックになり得る。ハードウェア回路ブロックは、算術論理ユニット（ＡＬＵ：arithmetic logic unit）、初等関数ユニット（ＥＦＵ：elementary function unit）、ならびに、ＡＮＤ、ＯＲ、ＮＡＮＤ、ＮＯＲ、ＸＯＲ、ＸＮＯＲ、および他の同様の論理ブロックなどの論理ブロックなど、演算ブロックを形成する電気的構成要素の組合せとして形成され得る。
【０１９３】
[0203]いくつかの例では、図２４に示されているユニットのうちの１つまたは複数は、処理回路上で実行するソフトウェアユニットであり得る。そのような例では、これらのソフトウェアユニットのためのオブジェクトコードは、メモリに記憶される。オペレーティングシステムが、ビデオエンコーダ２０にオブジェクトコードを取り出させ、オブジェクトコードを実行させ得、オブジェクトコードは、ビデオエンコーダ２０に、例示的な技法を実装するための動作を実施させる。いくつかの例では、ソフトウェアユニットは、ビデオエンコーダ２０が起動時に実行するファームウェアであり得る。したがって、ビデオエンコーダ２０は、例示的な技法を実施するハードウェアを有する構造構成要素であるか、または、例示的な技法を実施するためにハードウェアを特殊化するためにハードウェア上で実行するソフトウェア／ファームウェアを有する。
【０１９４】
[0204]図２４の例では、ビデオエンコーダ２０は、予測処理ユニット１００と、ビデオデータメモリ１０１と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換処理ユニット１１０と、再構築ユニット１１２と、フィルタユニット１１４と、復号ピクチャバッファ１１６と、エントロピー符号化ユニット１１８とを含む。予測処理ユニット１００は、インター予測処理ユニット１２０と、イントラ予測処理ユニット１２６とを含む。インター予測処理ユニット１２０は、動き推定ユニットと、動き補償ユニットとを含み得る（図示せず）。
【０１９５】
[0205]ビデオデータメモリ１０１は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶するように構成され得る。ビデオデータメモリ１０１に記憶されたビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ１１６は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいてビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１０１および復号ピクチャバッファ１１６は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ１０１は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。ビデオデータメモリ１０１は、図１の記憶媒体１９と同じであるかまたはそれの一部であり得る。
【０１９６】
[0206]ビデオエンコーダ２０は、ビデオデータを受信する。ビデオエンコーダ２０は、ビデオデータのピクチャのスライス中の各ＣＴＵを符号化し得る。ＣＴＵの各々は、等しいサイズのルーマコーディングツリーブロック（ＣＴＢ）と、ピクチャの対応するＣＴＢとに関連し得る。ＣＴＵを符号化することの一部として、予測処理ユニット１００は、ＣＴＵのＣＴＢを徐々により小さいブロックに分割するために区分を実施し得る。より小さいブロックはＣＵのコーディングブロックであり得る。たとえば、予測処理ユニット１００は、ツリー構造に従ってＣＴＵに関連するＣＴＢを区分し得る。
【０１９７】
[0207]ビデオエンコーダ２０は、ＣＵの符号化表現（すなわち、コード化ＣＵ）を生成するためにＣＴＵのＣＵを符号化し得る。ＣＵを符号化することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの中でＣＵに関連するコーディングブロックを区分し得る。したがって、各ＰＵは、ルーマ予測ブロックと、対応するクロマ予測ブロックとに関連し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なサイズを有するＰＵをサポートし得る。上記のように、ＣＵのサイズはＣＵのルーマコーディングブロックのサイズを指すことがあり、ＰＵのサイズはＰＵのルーマ予測ブロックのサイズを指すことがある。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測のための２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、インター予測のための２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称ＰＵサイズとをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、インター予測のための２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。
【０１９８】
[0208]インター予測処理ユニット１２０は、ＰＵのための予測データを生成し得る。ＰＵのための予測データを生成することの一部として、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実施する。ＰＵのための予測データは、ＰＵの予測ブロックとＰＵのための動き情報とを含み得る。インター予測処理ユニット１２０は、ＰＵがＩスライス中にあるのか、Ｐスライス中にあるのか、Ｂスライス中にあるのかに応じて、ＣＵのＰＵについて異なる演算を実施し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、インター予測処理ユニット１２０は、ＰＵに対してインター予測を実施しない。したがって、Ｉモードにおいて符号化されたブロックの場合、予測されたブロックは、同じフレーム内の前に符号化された近隣ブロックからの空間予測を使用して形成される。ＰＵがＰスライス中にある場合、インター予測処理ユニット１２０は、ＰＵの予測ブロックを生成するために単方向インター予測を使用し得る。ＰＵがＢスライス中にある場合、インター予測処理ユニット１２０は、ＰＵの予測ブロックを生成するために単方向インター予測または双方向インター予測を使用し得る。
【０１９９】
[0209]インター予測処理ユニット１２０は、本開示の特定の技法を実施し得る。たとえば、インター予測処理ユニット１２０は、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得、隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、インター予測処理ユニット１２０は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る。さらに、インター予測処理ユニット１２０は、現在ブロックの動きベクトルを決定し得、ここにおいて、動きベクトルは、現在ブロックのためのＭＶＰの動きベクトルに等しいか、または、現在ブロックのためのＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされたＭＶＤに等しい。
【０２００】
[0210]イントラ予測処理ユニット１２６は、ＰＵに対してイントラ予測を実施することによって、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵの予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実施し得る。
【０２０１】
[0211]ＰＵに対してイントラ予測を実施するために、イントラ予測処理ユニット１２６は、ＰＵのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット１２６は、ＰＵのための予測ブロックを生成するために近隣ＰＵのサンプルブロックからのサンプルを使用し得る。近隣ＰＵは、ＰＵ、ＣＵ、およびＣＴＵについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測処理ユニット１２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、ＰＵに関連する領域のサイズに依存し得る。
【０２０２】
[0212]予測処理ユニット１００は、ＰＵのためにインター予測処理ユニット１２０によって生成された予測データ、またはＰＵのためにイントラ予測処理ユニット１２６によって生成された予測データの中からＣＵのＰＵのための予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいてＣＵのＰＵのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。イントラ予測処理ユニット１２６は、ＭＰＭに関係する本開示の技法を実施し得る。
【０２０３】
[0213]残差生成ユニット１０２は、ＣＵのためのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）、ならびにＣＵのＰＵのための選択された予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）に基づいて、ＣＵのための残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロックおよびＣｒ残差ブロック）を生成し得る。たとえば、残差生成ユニット１０２は、残差ブロック中の各サンプルが、ＣＵのコーディングブロック中のサンプルとＣＵのＰＵの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、ＣＵの残差ブロックを生成し得る。
【０２０４】
[0214]変換処理ユニット１０４は、ＣＵの残差ブロックをＣＵのＴＵの変換ブロックに区分し得る。たとえば、変換処理ユニット１０４は、ＣＵの残差ブロックをＣＵのＴＵの変換ブロックに区分するために、４分木区分を実施し得る。したがって、ＴＵは、ルーマ変換ブロックと２つのクロマ変換ブロックとに関連し得る。ＣＵのＴＵのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、ＣＵのＰＵの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad-tree）として知られる４分木構造は、領域の各々に関連するノードを含み得る。ＣＵのＴＵはＲＱＴのリーフノードに対応し得る。
【０２０５】
[0215]変換処理ユニット１０４は、ＴＵの変換ブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための変換係数ブロックを生成し得る。変換処理ユニット１０４は、ＴＵに関連する変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット１０４は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
【０２０６】
[0216]量子化ユニット１０６は、係数ブロック中の変換係数を量子化し得る。量子化ユニット１０６は、ＣＵに関連する量子化パラメータ（ＱＰ）値に基づいて、ＣＵのＴＵに関連する係数ブロックを量子化し得る。ビデオエンコーダ２０は、ＣＵに関連するＱＰ値を調整することによって、ＣＵに関連する係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得る。したがって、量子化された変換係数は、元の係数よりも低い精度を有し得る。
【０２０７】
[0217]逆量子化ユニット１０８および逆変換処理ユニット１１０は、係数ブロックから残差ブロックを再構築するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット１１２は、ＴＵに関連する再構築された変換ブロックを生成するために、再構築された残差ブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにＣＵの各ＴＵについて変換ブロックを再構築することによって、ビデオエンコーダ２０は、ＣＵのコーディングブロックを再構築し得る。
【０２０８】
[0218]フィルタユニット１１４は、ＣＵに関連するコーディングブロック中のブロッキングアーティファクトを低減するために１つまたは複数のデブロッキング演算を実施し得る。復号ピクチャバッファ１１６は、フィルタユニット１１４が、再構築されたコーディングブロックに対して１つまたは複数のデブロッキング演算を実施した後に、再構築されたコーディングブロックを記憶し得る。インター予測処理ユニット１２０は、他のピクチャのＰＵに対してインター予測を実施するために、再構築されたコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット１２６は、ＣＵと同じピクチャ中の他のＰＵに対してイントラ予測を実施するために、復号ピクチャバッファ１１６中の再構築されたコーディングブロックを使用し得る。
【０２０９】
[0219]エントロピー符号化ユニット１１８は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１８は、量子化ユニット１０６から係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１８は、エントロピー符号化データを生成するために、データに対して１つまたは複数のエントロピー符号化演算を実施し得る。たとえば、エントロピー符号化ユニット１１８は、ＣＡＢＡＣ演算、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）演算、可変対可変（Ｖ２Ｖ：variable-to-variable）長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実施し得る。ビデオエンコーダ２０は、エントロピー符号化ユニット１１８によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、ＣＵのための変換係数の値を表すデータを含み得る。
【０２１０】
[0220]図２５は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図２５は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０２１１】
[0221]処理回路がビデオデコーダ３０を含み、ビデオデコーダ３０は、本開示で説明される例示的な技法のうちの１つまたは複数を実施するように構成される。たとえば、ビデオデコーダ３０は集積回路を含み、図２５に示されている様々なユニットは、回路バスと相互接続されるハードウェア回路ブロックとして形成され得る。これらのハードウェア回路ブロックは別々の回路ブロックであり得るか、または、ユニットのうちの２つまたはそれ以上が組み合わせられて共通ハードウェア回路ブロックになり得る。ハードウェア回路ブロックは、算術論理ユニット（ＡＬＵ）、初等関数ユニット（ＥＦＵ）、ならびに、ＡＮＤ、ＯＲ、ＮＡＮＤ、ＮＯＲ、ＸＯＲ、ＸＮＯＲ、および他の同様の論理ブロックなどの論理ブロックなど、演算ブロックを形成する電子的構成要素の組合せとして形成され得る。
【０２１２】
[0222]いくつかの例では、図２５に示されているユニットのうちの１つまたは複数は、処理回路上で実行するソフトウェアユニットであり得る。そのような例では、これらのソフトウェアユニットのためのオブジェクトコードは、メモリに記憶される。オペレーティングシステムが、ビデオデコーダ３０にオブジェクトコードを取り出させ、オブジェクトコードを実行させ得、オブジェクトコードは、ビデオデコーダ３０に、例示的な技法を実装するための動作を実施させる。いくつかの例では、ソフトウェアユニットは、ビデオデコーダ３０が起動時に実行するファームウェアであり得る。したがって、ビデオデコーダ３０は、例示的な技法を実施するハードウェアを有する構造構成要素であるか、または、例示的な技法を実施するためにハードウェアを特殊化するためにハードウェア上で実行するソフトウェア／ファームウェアを有する。
【０２１３】
[0223]図２５の例では、ビデオデコーダ３０は、エントロピー復号ユニット１５０と、ビデオデータメモリ１５１と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換処理ユニット１５６と、再構築ユニット１５８と、フィルタユニット１６０と、復号ピクチャバッファ１６２とを含む。予測処理ユニット１５２は、動き補償ユニット１６４と、イントラ予測処理ユニット１６６とを含む。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０２１４】
[0224]ビデオデータメモリ１５１は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどの符号化ビデオデータを記憶し得る。ビデオデータメモリ１５１に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ１５１は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ１６２は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいてビデオデコーダ３０によってビデオデータを復号する際に使用するための、あるいは出力のための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ１５１および復号ピクチャバッファ１６２は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ１５１は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。ビデオデータメモリ１５１は、図１の記憶媒体２８と同じであるかまたはそれの一部であり得る。
【０２１５】
[0225]ビデオデータメモリ１５１は、ビットストリームの符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶する。エントロピー復号ユニット１５０は、ビデオデータメモリ１５１から符号化ビデオデータ（たとえば、ＮＡＬユニット）を受信し得、シンタックス要素を取得するためにＮＡＬユニットをパースし得る。エントロピー復号ユニット１５０は、ＮＡＬユニット中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換処理ユニット１５６、再構築ユニット１５８、およびフィルタユニット１６０は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。エントロピー復号ユニット１５０は、エントロピー符号化ユニット１１８のプロセスとは概して逆のプロセスを実施し得る。
【０２１６】
[0226]ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ３０は、区分されていないＣＵに対して再構築演算を実施し得る。ＣＵに対して再構築演算を実施するために、ビデオデコーダ３０はＣＵの各ＴＵに対して再構築演算を実施し得る。ＣＵの各ＴＵについて再構築演算を実施することによって、ビデオデコーダ３０はＣＵの残差ブロックを再構築し得る。
【０２１７】
[0227]ＣＵのＴＵに対して再構築演算を実施することの一部として、逆量子化ユニット１５４は、ＴＵに関連する係数ブロックを逆量子化、すなわち、量子化解除し得る。逆量子化ユニット１５４が係数ブロックを逆量子化した後に、逆変換処理ユニット１５６は、ＴＵに関連する残差ブロックを生成するために係数ブロックに１つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【０２１８】
[0228]イントラ予測を使用してＰＵが符号化される場合、イントラ予測処理ユニット１６６は、ＰＵの予測ブロックを生成するためにイントラ予測を実施し得る。イントラ予測処理ユニット１６６は、サンプル空間的に近隣するブロックに基づいてＰＵの予測ブロックを生成するためにイントラ予測モードを使用し得る。イントラ予測処理ユニット１６６は、ビットストリームから取得された１つまたは複数のシンタックス要素に基づいてＰＵのためのイントラ予測モードを決定し得る。イントラ予測処理ユニット１６６は、ＭＰＭに関係する本開示の技法を実施し得る。
【０２１９】
[0229]インター予測を使用してＰＵが符号化される場合、エントロピー復号ユニット１５０および／または動き補償ユニット１６４は、ＰＵのための動き情報を決定し得る。動き補償ユニット１６４は、ＰＵの動き情報に基づいて、１つまたは複数の参照ブロックを決定し得る。動き補償ユニット１６４は、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ブロック（たとえば、予測ルーマブロック、予測Ｃｂブロックおよび予測Ｃｒブロック）を生成し得る。
【０２２０】
[0230]本開示の技法によれば、動き補償ユニット１６４は、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得、隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。さらに、動き補償ユニット１６４は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのための動きＭＶＰを決定し得る。動き補償ユニット１６４は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルをも決定し得る。
【０２２１】
[0231]再構築ユニット１５８は、ＣＵのためのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）を再構築するために、適用可能なとき、ＣＵのＴＵのための変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック）、ならびにＣＵのＰＵの予測ブロック（たとえば、ルーマブロック、ＣｂブロックおよびＣｒブロック）、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構築ユニット１５８は、ＣＵのコーディングブロック（たとえば、ルーマコーディングブロック、ＣｂコーディングブロックおよびＣｒコーディングブロック）を再構築するために、変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロックおよびＣｒ変換ブロック）のサンプルを、予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロックおよびＣｒ予測ブロック）の対応するサンプルに加算し得る。
【０２２２】
[0232]フィルタユニット１６０は、ＣＵのコーディングブロックに関連するブロッキングアーティファクトを低減するためにデブロッキング演算を実施し得る。ビデオデコーダ３０は、復号ピクチャバッファ１６２にＣＵのコーディングブロックを記憶し得る。復号ピクチャバッファ１６２は、後続の動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ３０は、復号ピクチャバッファ１６２中のブロックに基づいて、他のＣＵのＰＵについてイントラ予測演算またはインター予測演算を実施し得る。
【０２２３】
[0233]本開示のいくつかの態様は、説明の目的でＨＥＶＣ規格の拡張に関して説明された。ただし、本開示で説明される技法は、まだ開発されていない他の規格またはプロプライエタリビデオコーディングプロセスを含む、他のビデオコーディングプロセスのために有用であり得る。
【０２２４】
[0234]本開示で説明されるビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。本開示では、「に基づいて」という句は、のみに基づいて、に少なくとも部分的に基づいて、または、に何らかのやり方で基づいて、を示し得る。本開示は、１つまたは複数のサンプルブロックと、サンプルの１つまたは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造とを指すために、「ビデオユニット」、または「ビデオブロック」、または「ブロック」という用語を使用し得る。例示的なタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分などを含み得る。いくつかのコンテキストでは、ＰＵの説明は、マクロブロックまたはマクロブロック区分の説明と交換され得る。例示的なタイプのビデオブロックは、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックを含み得る。
【０２２５】
[0235]図２６は、本開示の１つまたは複数の技法による、ビデオデータを符号化するためのビデオエンコーダの例示的な動作を示すフローチャートである。図２６の例では、ビデオエンコーダ２０が、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る（２６００）。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。
【０２２６】
[0236]さらに、ビデオエンコーダ２０は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（２６０２）。いくつかの例では、現在ブロックのためのＭＶＰはアフィンモードにある。言い換えれば、動きベクトルは、ＭＶＰにおける制御点について指定される。いくつかの例では、隣接しないブロックは、現在ブロックの位置に対する隣接しないブロックの固定パターンを定義するテンプレート中のブロックである。
【０２２７】
[0237]一例では、現在ブロックのためのＭＶＰを決定することの一部として、ビデオエンコーダ２０は、隣接しないブロックの動きベクトルに部分的に基づいて、ＭＶＰ候補のリストを生成し得る。この例では、ＭＶＰ候補のリストは、隣接しないブロックの動きベクトルを指定するＭＶＰ候補を含む。さらに、この例では、ビデオエンコーダ２０は、ＭＶＰ候補のリスト中のＭＶＰ候補の中から、現在ブロックのためのＭＶＰを決定し得る。たとえば、ビデオエンコーダ２０は、現在ブロックのためのＭＶＰを決定するためにＲＤコスト分析を使用し得る。
【０２２８】
[0238]いくつかの例では、ビデオエンコーダ２０は、ＭＶＰ候補のリスト中で複数のＮＡ−ＳＭＶＰ候補を順序付ける。そのような例では、複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応し、それぞれのＮＡ−ＳＭＶＰは、それぞれの隣接しないブロックの動きベクトルを指定する。複数の隣接しないブロックは第１の隣接しないブロックを含む。さらに、この例では、ビデオエンコーダ２０は、現在ブロックからの対応する隣接しないブロックの距離に従ってリスト中で複数のＮＡ−ＳＭＶＰ候補を順序付け得る。距離は、Ｌ１またはＬ２の観点であり得る。
【０２２９】
[0239]いくつかの例では、ビデオエンコーダ２０は、第１の複数のＮＡ−ＳＭＶＰ候補を決定する。第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応する。それぞれのＮＡ−ＳＭＶＰは、それぞれの隣接しないブロックの動きベクトルを指定する。第１の複数の隣接しないブロックは第１の隣接しないブロックを含む。この例では、ビデオエンコーダ２０は、リスト中に第２の複数のＮＡ−ＳＭＶＰ候補を含め得、第２の複数のＮＡ−ＳＭＶＰ候補は、第１の複数のＮＡ−ＳＭＶＰ候補中の重複しない（non-duplicative）ＮＡ−ＳＭＶＰ候補を備える。このようにして、ビデオエンコーダ２０は、重複（duplicate）ＮＡ−ＳＭＶＰ候補をリストから削除するプルーニングプロセスを実施し得る。第２の複数のＮＡ−ＳＭＶＰ候補は、第２の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度（frequency）に従って、リスト中で順序付けられ得る。
【０２３０】
[0240]いくつかの例では、ＭＶＰ候補のリストは、グローバル動きベクトル候補リストである。グローバル動きベクトル候補リストは、現在ピクチャ中にあり、現在ブロックより前に符号化される各ブロックについての動きベクトルを指定するＭＶＰ候補を備える。そのような例では、ビデオコーダは、グローバル動きベクトル候補リスト中のＭＶＰ候補から隣接しないブロックの動きベクトルを決定し得る。
【０２３１】
[0241]さらに、いくつかの例では、ビデオエンコーダ２０は、ＦＩＦＯバッファに複数の隣接しないＭＶＰ候補を記憶する。複数の隣接しないＭＶＰ候補は、隣接しないブロックの動きベクトルを指定する隣接しないＭＶＰ候補を含む。そのような例では、ビデオエンコーダ２０は、最も早期に追加された隣接しないＭＶＰ候補をＦＩＦＯバッファから削除するためにＦＩＦＯバッファを更新し、ＦＩＦＯバッファにＭＶＰ候補を追加する。
【０２３２】
[0242]いくつかの例では、ビデオエンコーダ２０は、リストにプルーニングプロセスを適用する。プルーニングプロセスは、現在ブロックのブロックサイズに適応可能である。たとえば、本開示の他の場所で説明されたように、全動きプルーニングプロセスまたは部分動きプルーニングプロセスが適用され得る。
【０２３３】
[0243]ビデオエンコーダ２０は、現在ブロックの動きベクトルをも決定し得る（２６０４）。マージモードが使用される場合など、いくつかの例では、現在ブロックの動きベクトルはＭＶＰの動きベクトルに等しい。ＡＭＶＰが使用されるときなど、いくつかの例では、現在ブロックの動きベクトルは、ＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされたＭＶＤに等しい。
【０２３４】
[0244]さらに、ビデオエンコーダ２０は、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る（２６０６）。ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る（２６０８）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、予測ブロックを決定し、残差サンプル値を生成し得る。
【０２３５】
[0245]図２７は、本開示の１つまたは複数の技法による、ビデオデータを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図２７の例では、ビデオデコーダ３０が、ビデオデータの現在ピクチャの隣接しないブロックの動きベクトルを決定し得る（２７００）。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。いくつかの例では、隣接しないブロックは、現在ブロックの位置に対するブロックの固定パターンを定義するテンプレート中のブロックである。
【０２３６】
[0246]いくつかの例では、ＭＶＰ候補のリストは、グローバル動きベクトル候補リストである。グローバル動きベクトル候補リストは、現在ピクチャ中にあり、現在ブロックより前に符号化される各ブロックについての動きベクトルを指定するＭＶＰ候補を備える。そのような例では、ビデオコーダは、グローバル動きベクトル候補リスト中のＭＶＰ候補から隣接しないブロックの動きベクトルを決定し得る。
【０２３７】
[0247]さらに、いくつかの例では、ビデオデコーダ３０は、ＦＩＦＯバッファに複数の隣接しないＭＶＰ候補を記憶する。複数の隣接しないＭＶＰ候補は、隣接しないブロックの動きベクトルを指定する隣接しないＭＶＰ候補を含む。そのような例では、ビデオエンコーダ２０は、最も早期に追加された隣接しないＭＶＰ候補をＦＩＦＯバッファから削除するためにＦＩＦＯバッファを更新し、ＦＩＦＯバッファにＭＶＰ候補を追加する。
【０２３８】
[0248]さらに、ビデオデコーダ３０は、隣接しないブロックの動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（２７０２）。いくつかの例では、現在ブロックのためのＭＶＰは、アフィンモード、非アフィンモード、または動き補償予測の別のモードにあり得る。一例では、現在ブロックのためのＭＶＰを決定することの一部として、ビデオデコーダ３０は、隣接しないブロックの動きベクトルに部分的に基づいて、ＭＶＰ候補のリストを生成し得る。この例では、ＭＶＰ候補のリストは、隣接しないブロックの動きベクトルを指定するＭＶＰ候補を含む。さらに、この例では、ビデオデコーダ３０は、ＭＶＰ候補のリスト中のＭＶＰ候補の中から、現在ブロックのためのＭＶＰを決定し得る。たとえば、ビデオデコーダ３０は、ＭＶＰ候補のリスト中の最良のＭＶＰを識別するためにレートひずみ分析を使用し得る。
【０２３９】
[0249]いくつかの例では、隣接しないブロックは第１の隣接しないブロックであり、ビデオデコーダ３０は、リスト中で複数のＮＡ−ＳＭＶＰ候補を順序付ける。言い換えれば、ビデオデコーダ３０は、特定の順序に従って複数のＮＡ−ＳＭＶＰ候補をリストに挿入する。そのような例では、複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応する。それぞれのＮＡ−ＳＭＶＰは、それぞれの隣接しないブロックの動きベクトルを指定する。いくつかの例では、ビデオデコーダ３０は、現在ブロックからの対応する隣接しないブロックの（たとえば、Ｌ１またはＬ２の観点からの）距離に従ってリスト中で複数のＮＡ−ＳＭＶＰ候補を順序付ける。いくつかの例では、ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、複数のＮＡ−ＳＭＶＰ候補を順序付ける。
【０２４０】
[0250]いくつかの例では、隣接しないブロックは第１の隣接しないブロックであり、ビデオデコーダ３０は、第１の複数のＮＡ−ＳＭＶＰ候補をさらに決定する。たとえば、そのような例では、第１の複数のＮＡ−ＳＭＶＰ候補の各それぞれのＮＡ−ＳＭＶＰ候補について、それぞれのＮＡ−ＳＭＶＰ候補は、複数の隣接しないブロックのそれぞれの隣接しないブロックに対応する。それぞれのＮＡ−ＳＭＶＰは、それぞれの隣接しないブロックの動きベクトルを指定する。第１の複数の隣接しないブロックは第１の隣接しないブロックを含む。さらに、そのような例では、ビデオデコーダ３０は、リスト中で第２の複数のＮＡ−ＳＭＶＰ候補を順序付け得る。言い換えれば、ビデオデコーダ３０は、特定の順序に従ってリスト中に第２の複数のＮＡ−ＳＭＶＰ候補を含め得る。第２の複数のＮＡ−ＳＭＶＰ候補は、第１の複数のＮＡ−ＳＭＶＰ候補中の重複しないＮＡ−ＳＭＶＰ候補を備える。いくつかの例では、第２の複数のＮＡ−ＳＭＶＰ候補は、第２の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定された動きベクトルが第１の複数のＮＡ−ＳＭＶＰ候補中のＮＡ−ＳＭＶＰ候補によって指定される、頻度に従って、リスト中で順序付けられる。
【０２４１】
[0251]いくつかの例では、ビデオデコーダ３０は、リストにプルーニング（pruning）プロセスを適用し得る。いくつかのそのような例では、プルーニングプロセスは、現在ブロックのブロックサイズに適応可能である。いくつかの例では、ビデオデコーダ３０は、本開示の他の場所で説明されたように、ＮＡ−ＳＭＶＰおよび他のマージング候補に全動きプルーニングプロセスを適用する。いくつかの例では、ビデオデコーダ３０は、本開示の他の場所で説明されたように、ＮＡ−ＳＭＶＰおよび他のマージング候補に部分動きプルーニングプロセスのみを適用する。
【０２４２】
[0252]さらに、ビデオデコーダ３０は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定し得る（２７０４）。いくつかの例では、ＭＶＰ候補のリストがマージ候補リストである場合、ビデオデコーダ３０は、現在ブロックのためのＭＶＰがＭＶＰ候補のリスト中のＭＶＰ候補の動きベクトルを指定するように、現在ブロックのためのＭＶＰを決定し得る。いくつかの例では、ＭＶＰ候補のリストがＡＭＶＰ候補リストである場合、ビデオデコーダ３０は、現在ブロックのためのＭＶＰの動きベクトルがＭＶＰ候補のリスト中のＭＶＰ候補の動きベクトル＋ＭＶＤに等しくなるように、現在ブロックのためのＭＶＰを決定し得る。
【０２４３】
[0253]ビデオデコーダ３０は、現在ブロックの動きベクトルに基づいて予測ブロックをも決定し得る（２７０６）。たとえば、ビデオデコーダ３０は、本開示の他の場所で詳細に説明されたように、動きベクトルによって示されたロケーションにおける参照ピクチャのサンプルに基づいて予測ブロックを決定し得る。ビデオデコーダ３０は、次いで、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る（２７０８）。たとえば、ビデオデコーダ３０は、予測ブロック中のサンプル値を残差サンプル値に加算することによって、現在ピクチャのサンプル値を再構築し得る。
【０２４４】
[0254]図２８は、本開示の技法による、ＦＲＵＣ動きベクトル候補を使用してＮＡ−ＳＭＶＰを決定するための例示的な動作を示すフローチャートである。図２８の例では、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＣＵレベルフレームレートアップコンバージョン（ＦＲＵＣ）動きベクトル候補のセットを決定し得る（２８００）。さらに、ビデオコーダは、ＣＵレベルＦＲＵＣ動きベクトル候補のセットからＣＵレベルＦＲＵＣ動きベクトル候補を選択し得る（２８０２）。ビデオコーダは、少なくとも部分的に、選択されたＣＵレベルＦＲＵＣ動きベクトル候補から開始するローカル探索を実施することによって、ＣＵレベル動きベクトルを決定し得る（２８０４）。さらに、ビデオコーダは、ＦＲＵＣサブＣＵレベル動きベクトル候補のセットを用いてサブＣＵレベルにおいてＣＵレベル動きベクトルを改良し得る（２８０６）。本開示の技法によれば、ＣＵレベルＦＲＵＣ動きベクトル候補のセットおよびＦＲＵＣサブＣＵレベル動きベクトル候補のセットのうちの少なくとも１つは、図２６および図２７の隣接しないブロックの動きベクトルを指定するＮＡ−ＳＭＶＰを含む。ＦＲＵＣプロセスは、場合によっては、本開示の他の場所で与えられる例に従い得る。
【０２４５】
[0255]図２９は、本開示の１つまたは複数の技法による、現在ブロックのためのＭＶＰ候補のリスト中に合成候補を含めるビデオエンコーダ２０の例示的な動作を示すフローチャートである。図２９の例では、ビデオエンコーダ２０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定し得る（２９００）。ＭＶＰ候補のリストは、双予測ＭＶＰ候補と合成単予測ＭＶＰ候補とを含む。さらに、図２９の例では、および本開示の技法によれば、ビデオエンコーダ２０は、ＭＶＰ候補のリストを決定することの一部として、双予測ＭＶＰ候補によって指定された動きベクトルに基づいて合成単予測ＭＶＰ候補を生成する（２９０２）。一例では、ビデオエンコーダ２０は、あらかじめ定義された順序に従って、利用可能な双予測ＭＶ候補を２つの別々の単予測候補にスプリットすることによって、合成単予測候補を生成する。この例では、ビデオエンコーダ２０は、次いで、作成された合成単予測候補を候補リストに挿入し得る。いくつかの例では、整数ＭＶＤまたは４ルーマサンプルＭＶＤが有効化されるとき、ビデオエンコーダ２０は、利用可能なＭＶ候補を整数ＭＶ候補または４ルーマサンプルＭＶ候補に丸めるかまたは切り捨てることによって、合成整数ＭＶ候補または４ルーマサンプルＭＶ候補を生成し得る。そのような例では、ビデオエンコーダ２０は、合成整数ＭＶ候補または４ルーマサンプルＭＶ候補を候補リストに挿入する。
【０２４６】
[0256]さらに、図２９の例では、ビデオエンコーダ２０は、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（２９０４）。さらに、ビデオエンコーダ２０は、現在ブロックの動きベクトルを決定し得る（２９０６）。マージモードが使用される場合など、いくつかの例では、現在ブロックの動きベクトルはＭＶＰの動きベクトルに等しい。ＡＭＶＰが使用されるときなど、いくつかの例では、現在ブロックの動きベクトルは、ＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされたＭＶＤに等しい。
【０２４７】
[0257]ビデオエンコーダ２０は、現在ブロックの動きベクトルに基づいて予測ブロックをも決定し得る（２９０８）。さらに、ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る（２９１０）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、予測ブロックを決定し、残差サンプル値を生成し得る。
【０２４８】
[0258]図３０は、本開示の１つまたは複数の技法による、現在ブロックのためのＭＶＰ候補のリスト中に合成候補を含めるビデオデコーダ３０の例示的な動作を示すフローチャートである。図３０の例では、ビデオデコーダ３０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定し得る（３０００）。ＭＶＰ候補のリストは、双予測ＭＶＰ候補と合成単予測ＭＶＰ候補とを含む。さらに、図３０の例では、および本開示の技法によれば、ビデオデコーダ３０は、ＭＶＰ候補のリストを決定することの一部として、双予測ＭＶＰ候補によって指定された動きベクトルに基づいて合成単予測ＭＶＰ候補を生成する（３００２）。一例では、ビデオデコーダ３０は、あらかじめ定義された順序に従って、利用可能な双予測ＭＶ候補を２つの別々の単予測候補にスプリットすることによって、合成単予測候補を生成する。この例では、ビデオデコーダ３０は、次いで、作成された合成単予測候補を候補リストに挿入し得る。いくつかの例では、整数ＭＶＤまたは４ルーマサンプルＭＶＤが有効化されるとき、ビデオデコーダ３０は、利用可能なＭＶ候補を整数ＭＶ候補または４ルーマサンプルＭＶ候補に丸めるかまたは切り捨てることによって、合成整数ＭＶ候補または４ルーマサンプルＭＶ候補を生成する。そのような例では、ビデオデコーダ３０は、合成整数ＭＶ候補または４ルーマサンプルＭＶ候補を候補リストに挿入する。
【０２４９】
[0259]図３０の例では、ビデオデコーダ３０は、次いで、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（３００４）。さらに、ビデオデコーダ３０は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定する（３００６）。ビデオデコーダ３０は、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る（３００８）。さらに、ビデオデコーダ３０は、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る（３０１０）。ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補を選択し、動きベクトルを決定し、予測ブロックを決定し、現在ピクチャの値を再構築し得る。
【０２５０】
[0260]図３１は、本開示の技法による、ビデオデータを符号化するためのビデオエンコーダ２０の例示的な動作を示すフローチャートである。図３１の例では、ビデオエンコーダ２０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定する（３１００）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補のリストを決定し得る。さらに、本開示の技法によれば、ビデオエンコーダ２０は、リスト中のＭＶＰ候補を整数解像度または４ルーマサンプル解像度に丸めるかまたは切り捨てることによって、合成ＭＶＰ候補を決定する（３１０２）。ビデオエンコーダ２０は、次いで、合成ＭＶＰ候補をＭＶＰ候補のリストに挿入し得る（３１０４）。
【０２５１】
[0261]ビデオエンコーダ２０は、次いで、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのための動きベクトル予測子（ＭＶＰ）を決定し得る（３１０６）。たとえば、ビデオエンコーダ２０は、現在ブロックのためのＭＶＰを選択するためにレートひずみテストを使用し得る。さらに、ビデオエンコーダ２０は、現在ブロックの動きベクトルを決定し得る（３１０８）。マージモードが使用される場合など、いくつかの例では、現在ブロックの動きベクトルはＭＶＰの動きベクトルに等しい。ＡＭＶＰが使用されるときなど、いくつかの例では、現在ブロックの動きベクトルは、ＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされたＭＶＤに等しい。
【０２５２】
[0262]ビデオエンコーダ２０は、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る（３１１０）。次に、ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る（３１１２）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、予測ブロックを決定し、残差サンプル値を生成し得る。
【０２５３】
[0263]図３２は、本開示の技法による、ビデオデータを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図３２の例では、ビデオデコーダ３０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定する（３２００）。ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補のリストを決定し得る。さらに、本開示の技法によれば、ビデオデコーダ３０は、リスト中のＭＶＰ候補を整数解像度または４ルーマサンプル解像度に丸めるかまたは切り捨てることによって、合成ＭＶＰ候補を決定し得る（３２０２）。ビデオデコーダ３０は、次いで、合成ＭＶＰ候補をＭＶＰ候補のリストに挿入し得る（３２０４）。
【０２５４】
[0264]その後、ビデオデコーダ３０は、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（３２０６）。さらに、ビデオデコーダ３０は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定し得る（３２０８）。ビデオデコーダ３０は、現在ブロックの動きベクトルに基づいて予測ブロックをも決定し得る（３２１０）。さらに、ビデオデコーダ３０は、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る（３２１２）。ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補を選択し、動きベクトルを決定し、予測ブロックを決定し、現在ピクチャの値を再構築し得る。
【０２５５】
[0265]図３３は、本開示の技法による、ビデオデータを符号化するためのビデオエンコーダ２０の例示的な動作を示すフローチャートである。図３３の例では、ビデオエンコーダ２０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定し得る（３３００）。概して、ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補のリストを決定し得る。ただし、本開示の技法によれば、ＭＶＰ候補のリストは複数のＴＭＶＰ候補を含む。ＭＶＰ候補のリスト中の各それぞれのＭＶＰ候補は、それぞれの動きベクトルを指定する。複数のＴＭＶＰ候補のそれぞれのＴＭＶＰ候補は、１つまたは複数の参照ピクチャ（たとえば、単一の参照ピクチャ、複数の参照ピクチャなど）中の１つまたは複数のブロックの動きベクトルを指定する。
【０２５６】
[0266]いくつかの例では、複数のＴＭＶＰ候補は、現在ピクチャ中のロケーション（たとえば、現在ブロックに隣接するロケーション、現在ブロックに隣接しないロケーション）とコロケートされた参照ブロックの動きベクトルを指定する２つまたはそれ以上のＴＭＶＰ候補を含む。そのような例では、参照ブロックは、１つまたは複数の参照ピクチャのブロックである。
【０２５７】
[0267]いくつかの例では、ビデオエンコーダ２０は、ＭＶＰ候補のリストにプルーニングプロセスを適用する。たとえば、ビデオエンコーダ２０は、ＭＶＰ候補のリスト中の全部または一部の同等のＭＶＰ候補を削除するために、ＭＶＰ候補のリストにプルーニングプロセスを適用し得る。
【０２５８】
[0268]さらに、図３３の例では、ビデオエンコーダ２０は、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（３３０２）。たとえば、ビデオエンコーダ２０は、現在ブロックのためのＭＶＰを決定するためにレートひずみテストを使用し得る。ビデオエンコーダ２０は、現在ブロックの動きベクトルをも決定し得る（３３０４）。マージモードが使用される場合など、いくつかの例では、現在ブロックの動きベクトルはＭＶＰの動きベクトルに等しい。ＡＭＶＰが使用されるときなど、いくつかの例では、現在ブロックの動きベクトルは、ＭＶＰの動きベクトル＋ビットストリーム中でシグナリングされたＭＶＤに等しい。
【０２５９】
[0269]さらに、ビデオエンコーダ２０は、予測ブロックを決定するために現在ブロックの動きベクトルを使用し得る（３３０６）。さらに、ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る（３３０８）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、予測ブロックを決定し、残差サンプル値を生成し得る。
【０２６０】
[0270]図３４は、本開示の１つまたは複数の例による、ビデオデータを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図３４の例では、ビデオデコーダ３０は、ビデオデータの現在ピクチャの現在ブロックのためのＭＶＰ候補のリストを決定し得る（３４００）。概して、ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補のリストを決定し得る。ただし、本開示の技法によれば、ＭＶＰ候補のリストは複数のＴＭＶＰ候補を含む。ＭＶＰ候補のリスト中の各それぞれのＭＶＰ候補は、それぞれの動きベクトルを指定する。複数のＴＭＶＰ候補のそれぞれのＴＭＶＰ候補は、１つまたは複数の参照ピクチャ（たとえば、単一の参照ピクチャ、複数の参照ピクチャなど）中の１つまたは複数のブロックの動きベクトルを指定する。
【０２６１】
[0271]一例では、複数のＴＭＶＰ候補は、現在ピクチャ中のロケーションとコロケートされた参照ブロックの動きベクトルを指定する２つまたはそれ以上のＴＭＶＰ候補を含む。この例では、参照ブロックは、１つまたは複数の参照ピクチャ（たとえば、単一の参照ピクチャ、複数の参照ピクチャなど）のブロックである。この例のいくつかの事例では、ロケーションは現在ブロックに隣接する。この例のいくつかの事例では、ロケーションは現在ブロックに隣接しない。
【０２６２】
[0272]いくつかの例では、ビデオデコーダ３０は、ＭＶＰ候補のリストにプルーニングプロセスを適用し得る。たとえば、ビデオデコーダ３０は、ＭＶＰ候補のリスト中の全部または一部の同等のＭＶＰ候補を削除するために、ＭＶＰ候補のリストにプルーニングプロセスを適用し得る。
【０２６３】
[0273]さらに、図３４の例では、ビデオデコーダ３０は、ＭＶＰ候補のリスト中の選択されたＭＶＰ候補の動きベクトルに基づいて、現在ブロックのためのＭＶＰを決定し得る（３４０２）。ビデオデコーダ３０は、現在ブロックのためのＭＶＰに基づいて、現在ブロックの動きベクトルを決定し得る（３４０４）。さらに、ビデオデコーダ３０は、現在ブロックの動きベクトルに基づいて予測ブロックを決定し得る（３４０６）。ビデオデコーダ３０は、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る（３４０８）。ビデオデコーダ３０は、本開示の他の場所で与えられる例のいずれかに従って、ＭＶＰ候補を選択し、動きベクトルを決定し、予測ブロックを決定し、現在ピクチャの値を再構築し得る。
【０２６４】
[0274]図３５は、本開示の技法による、ビデオデータを符号化するためのビデオエンコーダ２０の例示的な動作を示すフローチャートである。図３５の例では、ビデオエンコーダ２０は、複数の最確モード（ＭＰＭ）を決定し得る（３５００）。複数のＭＰＭの各それぞれのＭＰＭは、それぞれのブロックのそれぞれのイントラ予測モードを指定する。図３５の例では、複数のＭＰＭは、ビデオデータの現在ピクチャの隣接しないブロックのイントラ予測モードを指定する特定のＭＰＭを含む。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。いくつかの例では、隣接しないブロックは、現在ブロックの位置に対する隣接しないブロックの固定パターンを定義するテンプレート中のブロックである。他の例では、隣接しないブロックは、現在ブロックの特定の距離内にあるブロックである。隣接しないブロックは、本開示の他の場所で与えられる例のいずれかに従って決定され得る。
【０２６５】
[0275]いくつかの例では、複数のＭＰＭを決定することの一部として、ビデオエンコーダ２０は、ＭＰＭの順序付きリストを決定し得る。そのような例では、隣接しないブロックに基づくＭＰＭは、イントラ予測モードが複数の隣接しないブロック中の隣接しないブロックによって指定される、頻度に従って、リスト中で順序付けられる。他の例では、隣接しないブロックに基づくＭＰＭは、そのような頻度に従ってリスト中で順序付けられない。
【０２６６】
[0276]いくつかの例では、複数のＭＰＭを決定するために、ビデオエンコーダ２０は、現在ピクチャ中にあり、現在ブロックより前に符号化される各ブロックについての動き情報を指定するＭＰＭを備えるグローバルＭＰＭリストを決定し得る。そのような例では、ビデオエンコーダ２０は、グローバル動きベクトル候補リスト中のＭＰＭからＭＰＭを決定し得る。いくつかの例では、ビデオエンコーダ２０は、ＦＩＦＯバッファに複数の隣接しないＭＰＭを記憶し得る。そのような例では、複数の隣接しないＭＰＭは、隣接しないブロックのイントラ予測モードを指定する隣接しないＭＰＭを含む。さらに、そのような例では、ビデオエンコーダ２０は、最も早期に追加された隣接しないＭＰＭをＦＩＦＯバッファから削除するためにＦＩＦＯバッファを更新し得、ＦＩＦＯバッファにＭＰＭを追加し得る。複数のＭＰＭは、ＦＩＦＯバッファ中のＭＰＭを含み得る。
【０２６７】
[0277]さらに、図３５の例では、ビデオエンコーダ２０は、複数のＭＰＭのうちのＭＰＭによって指定されたイントラ予測モードに基づいて予測ブロックを生成し得る（３５０２）。さらに、ビデオエンコーダ２０は、予測ブロックに基づいて、残差サンプル値を生成し得る（３５０４）。ビデオエンコーダ２０は、本開示の他の場所で与えられる例のいずれかに従って、予測ブロックを決定し、残差サンプル値を生成し得る。
【０２６８】
[0278]図３６は、本開示の技法による、ビデオデータを復号するためのビデオデコーダ３０の例示的な動作を示すフローチャートである。図３６の例では、ビデオデコーダ３０は、複数のＭＰＭを決定し得る（３６００）。複数のＭＰＭの各それぞれのＭＰＭは、それぞれのブロックのそれぞれのイントラ予測モードを指定する。本開示の技法によれば、複数のＭＰＭは、ビデオデータの現在ピクチャの隣接しないブロックのイントラ予測モードを指定する特定のＭＰＭを含む。隣接しないブロックは、現在ピクチャの現在ブロックに隣接しない。いくつかの例では、隣接しないブロックは、現在ブロックの位置に対する隣接しないブロックの固定パターンを定義するテンプレート中のブロックである。他の例では、隣接しないブロックは、現在ブロックからの固定距離である。隣接しないブロックは、本開示の他の場所で与えられる例のいずれかに従って決定され得る。
【０２６９】
[0279]いくつかの例では、複数のＭＰＭを決定することの一部として、ビデオデコーダ３０は、ＭＰＭの順序付きリストを決定し得る。そのような例では、隣接しないブロックに基づくＭＰＭは、イントラ予測モードが複数の隣接しないブロック中の隣接しないブロックによって指定される、頻度に従って、リスト中で順序付けられる。他の例では、隣接しないブロックに基づくＭＰＭは、そのような頻度に従ってリスト中で順序付けられない。
【０２７０】
[0280]いくつかの例では、複数のＭＰＭは、現在ピクチャ中にあり、現在ブロックより前に符号化される各ブロックについての動き情報を指定するＭＰＭを備えるグローバルＭＰＭリストである。そのような例では、ビデオデコーダ３０は、グローバル動きベクトル候補リスト中のＭＰＭからＭＰＭを決定し得る。いくつかの例では、ビデオデコーダ３０は、先入れ先出し（ＦＩＦＯ）バッファに複数の隣接しないＭＰＭを記憶し得る。そのような例では、複数の隣接しないＭＰＭは、隣接しないブロックのイントラ予測モードを指定する隣接しないＭＰＭを含む。さらに、そのような例では、ビデオデコーダ３０は、最も早期に追加された隣接しないＭＰＭをＦＩＦＯバッファから削除するためにＦＩＦＯバッファを更新し得、ＦＩＦＯバッファにＭＰＭを追加する。複数のＭＰＭは、ＦＩＦＯバッファ中のＭＰＭを含み得る。
【０２７１】
[0281]さらに、図３６の例では、ビデオデコーダ３０は、複数のＭＰＭのうちのＭＰＭによって指定されたイントラ予測モードに基づいて予測ブロックを生成し得る（３６０２）。さらに、ビデオデコーダ３０は、予測ブロックに基づいて、現在ピクチャのサンプル値を再構築し得る（３６０４）。ビデオデコーダ３０は、本開示の他の場所で与えられる技法のいずれかに従って、予測ブロックを生成し、サンプル値を再構築し得る。
【０２７２】
[0282]本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
【０２７３】
[0283]本開示では、「第１の」、「第２の」、「第３の」など、順序を示す用語は、必ずしも順序内の位置のインジケータであるとは限らず、むしろ、単に同じ物の異なるインスタンスを区別するために使用され得る。
【０２７４】
[0284]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【０２７５】
[0285]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数の処理回路によってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２７６】
[0286]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、キャッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２７７】
[0287]本開示で説明される機能は、固定機能および／またはプログラマブル処理回路によって実施され得る。たとえば、命令は、固定機能および／またはプログラマブル処理回路によって実行され得る。そのような処理回路は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。処理回路は、様々なやり方で他の構成要素に結合され得る。たとえば、処理回路は、内部デバイス相互接続、ワイヤードまたはワイヤレスネットワーク接続、あるいは別の通信媒体を介して他の構成要素に結合され得る。
【０２７８】
[0288]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０２７９】
[0289]様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2020523853.tif 000012
【図２】
2020523853.tif 000013
【図３】
2020523853.tif 000014
【図４】
2020523853.tif 000015
【図５】
2020523853.tif 000016
【図６】
2020523853.tif 000017
【図７】
2020523853.tif 000018
【図８】
2020523853.tif 000019
【図９】
2020523853.tif 000020
【図１０】
2020523853.tif 000021
【図１１】
2020523853.tif 000022
【図１２】
2020523853.tif 000023
【図１３】
2020523853.tif 000024
【図１４Ａ】
2020523853.tif 000025
【図１４Ｂ】
2020523853.tif 000026
【図１５】
2020523853.tif 000027
【図１６】
2020523853.tif 000028
【図１７】
2020523853.tif 000029
【図１８Ａ】
2020523853.tif 000030
【図１８Ｂ】
2020523853.tif 000031
【図１９Ａ】
2020523853.tif 000032
【図１９Ｂ】
2020523853.tif 000033
【図２０】
2020523853.tif 000034
【図２１】
2020523853.tif 000035
【図２２】
2020523853.tif 000036
【図２３】
2020523853.tif 000037
【図２４】
2020523853.tif 000038
【図２５】
2020523853.tif 000039
【図２６】
2020523853.tif 000040
【図２７】
2020523853.tif 000041
【図２８】
2020523853.tif 000042
【図２９】
2020523853.tif 000043
【図３０】
2020523853.tif 000044
【図３１】
2020523853.tif 000045
【図３２】
2020523853.tif 000046
【図３３】
2020523853.tif 000047
【図３４】
2020523853.tif 000048
【図３５】
2020523853.tif 000049
【図３６】
2020523853.tif 000050
【国際調査報告】
2020523853.tif 000051
2020523853.tif 000052
2020523853.tif 000053
2020523853.tif 000054
2020523853.tif 000055