(57)【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
ビデオデータの現在のピクチャ中の現在のブロックの動き情報を導出するための複数の候補動きベクトルを備える動きベクトル候補リストを決定することと、前記動き情報は、参照ビデオデータに対する前記現在のブロックの動きを示し、
前記動きベクトル候補リストから候補動きベクトルを選択することと、 参照ピクチャの参照データの第１のセットを指し示す、前記現在のブロックの導出される動きベクトルを決定することと、
を備え、
前記導出される動きベクトルを決定することは、
前記参照ピクチャの参照データの前記第１のセットに対する動き探索を実行することと、前記参照ピクチャは前記候補動きベクトルによって指し示され、前記候補動きベクトルは前記動き探索のための前記参照ピクチャ中の開始点を示し、
前記導出される動きベクトルを決定するために、前記候補動きベクトルを改良することと、前記導出される動きベクトルは、前記導出される動きベクトルが指し示す前記参照データと、前記現在のブロックとの間のマッチングコストを最小にする、
を備え、
前記マッチングコストは、前記導出される動きベクトルと前記候補動きベクトルとの間の差分を備える、方法。
【請求項２】
前記動きベクトル候補リストを生成することをさらに備え、ここにおいて、前記動きベクトル候補リストの各エントリが、動きベクトルと、それの関連する参照インデックスとを備える、請求項１に記載の方法。
【請求項３】
前記動きベクトル候補リストを生成することが、前記現在のブロックの空間的なネイバーから１つまたは複数の動きベクトルを識別すること、前記現在のブロックの時間的なネイバーから１つまたは複数の動きベクトルを識別すること、または動きベクトル導出技法を使用して動きベクトルを導出することを備える、請求項２に記載の方法。
【請求項４】
前記動きベクトル候補リストを生成することが、前記動きベクトル候補リストとマージモード動きベクトル候補リストとを同じ方式で生成することを備える、請求項２に記載の方法。
【請求項５】
前記動きベクトル候補リストを生成することが、前記現在のブロックを含む前記ピクチャの動きフィールドを外挿または補間することと、前記外挿または補間された動きフィールドから１つまたは複数の候補動きベクトルを決定することとを備える、請求項２に記載の方法。
【請求項６】
前記動きベクトル候補リストを生成することが、前記動きベクトル候補リストから複製の候補動きベクトルをプルーニングすることを備える、請求項２に記載の方法。
【請求項７】
前記現在のブロックの参照ピクチャリストの固定された参照ピクチャを使用して前記候補動きベクトルをスケーリングすることをさらに備え、ここにおいて、前記固定された参照ピクチャが、前記現在のブロックの前記参照ピクチャリスト中の初期ピクチャである、請求項２に記載の方法。
【請求項８】
前記動きベクトル候補リストから各候補動きベクトルのための動きベクトルペアを取得することと、
それぞれの動きベクトルペアのために両側マッチングプロセスを実行することと、
をさらに備え、
前記１つまたは複数の候補動きベクトルを選択することが、前記両側マッチングプロセスから１つまたは複数の動きベクトルを選択することを備える、請求項１に記載の方法。
【請求項９】
各候補動きベクトルのための前記動きベクトルペアを取得することが、前記それぞれの候補動きベクトルから前記ペアの第１の動きベクトルを決定することと、前記現在のブロックの参照ピクチャリストの参照ピクチャに基づいて、前記ペアの第２の動きベクトルを決定することと、を備える、請求項８に記載の方法。
【請求項１０】
前記現在のブロックの前記導出される動きベクトルを決定することが、
前記候補動きベクトルに基づいて、参照ピクチャ中の探索ウィンドウを決定することと、
ここにおいて、前記動き探索が、前記決定された探索ウィンドウ内の参照データの第２のセットとベストマッチする参照データの前記第１のセットを探すことを備え、
前記探すことの結果に基づいて、前記現在のブロックの前記導出される動きベクトルを決定することと、
を備える、請求項１に記載の方法。
【請求項１１】
前記導出された動きベクトルを使用してビデオデータの前記現在のブロックを復号することをさらに備え、ここにおいて、前記現在のブロックを復号することが、
前記導出された動きベクトルに基づいて参照ピクチャの中の参照ブロックを決定することと、
符号化されたビットストリームから残差データを復号することと、
前記現在のブロックを再構築するために、前記復号された残差と前記決定された参照ブロックとを合成することと、
を備える、請求項１に記載の方法。
【請求項１２】
前記現在のブロックを符号化することをさらに備え、ここにおいて、前記現在のブロックを符号化することが、符号化されたビットストリームの中の前記現在のブロックの残差データを符号化することを備え、前記符号化されたビットストリームが、前記導出された動きベクトルを示すデータを含まない、請求項１に記載の方法。
【請求項１３】
前記候補動きベクトルを選択することが、前記候補動きベクトルと関連付けられるマッチングコストに基づいて、前記候補動きベクトルを選択することをさらに備え、
前記導出される動きベクトルを決定することが、前記候補動きベクトルによって示される探索ウィンドウ内で参照ビデオデータの第２のセットとベストマッチする参照データの前記第１のセットを、前記動き探索の一部として探すことと、前記探すことの結果に基づいて前記導出される動きベクトルを決定することと、を備える、請求項１に記載の方法。
【請求項１４】
ビデオデータを処理するための装置であって、
ビデオデータの現在のピクチャの現在のブロックの動き情報を導出するための複数の候補動きベクトルを備える動きベクトル候補リストを決定するための手段と、
前記動きベクトル候補リストから候補動きベクトルを選択するための手段と、ここにおいて、前記動き情報が参照ビデオデータに対する前記現在のブロックの動きを示す、
参照ピクチャの参照データの第１のセットを指し示す、前記現在のブロックの導出される動きベクトルを決定するための手段と、
を備え、
前記導出される動きベクトルを決定することは、
前記参照ピクチャの参照データの前記第１のセットに対する動き探索を実行することと、前記参照ピクチャは、前記候補動きベクトルによって指し示され、前記候補動きベクトルは、前記動き探索のための前記参照ピクチャ中の開始点を示し、
前記導出される動きベクトルが指し示す前記対応する参照データと、前記現在のブロックとの間のマッチングコストを最小にする、前記導出される動きベクトルを選択することと、
を備え、
前記マッチングコストは、前記導出される動きベクトルと前記候補動きベクトルとの間の差分を備える、装置。
【請求項１５】
実行されると、１つまたは複数のプロセッサに、請求項１乃至１３のいずれか一項に記載の方法を行わせる命令を記憶している、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１５年３月２７日に出願された米国仮出願第６２／１３９，５７２号、および２０１５年６月１９日に出願された米国仮出願第６２／１８２，３６７号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法などの、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶し得る。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的（spatial）（イントラピクチャ）予測および／または時間的（temporal）（インターピクチャ）予測を含む。ブロックベースビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、いくつかの技法ではツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差分を示す。イントラコーディングされるブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことがあり、その残差変換係数が次いで、量子化され得る。最初に２次元アレイで構成される量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査されることがあり、なお一層の圧縮を達成するためにエントロピーコーディングが適用されることがある。
【発明の概要】
【０００６】
[0006]本開示の技法は、ビデオコーディングにおいて動き情報を導出することに関する。たとえば、ビデオコーダ（ビデオエンコーダまたはビデオデコーダ）は、ビットストリームに含まれるビデオデータをコーディングするために、ビットストリームに含まれない動き情報を生成し得る。符号化ループまたは復号ループにおいて動き情報を導出することによって、従来のイントラ予測技法などの、ビットストリームに動き情報を含める技法と比較して、ビットの節約が達成され得る。
【０００７】
[0007]一例では、ビデオデータを復号する方法は、現在のブロックの動き情報を決定するための複数の動き情報導出モードからある動き情報導出モードを選択することと、ここにおいて、複数の動き情報導出モードのうちの各動き情報導出モードが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報が、参照ビデオデータに対する現在のブロックの動きを示し、選択された動き情報導出モードを使用して、現在のブロックの動き情報を決定することと、動き情報を表すシンタックス要素を復号することなく、決定された動き情報を使用して現在のブロックを復号することと、を含む。
【０００８】
[0008]別の例では、ビデオデータを符号化する方法は、現在のブロックの動き情報を決定するための複数の動き情報導出モードからある動き情報導出モードを選択することと、ここにおいて、複数の動き情報導出モードのうちの各動き情報導出モードが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報が、参照ビデオデータに対する現在のブロックの動きを示し、選択された動き情報導出モードを使用して、現在のブロックの動き情報を決定することと、動き情報を表すシンタックス要素を符号化することなく、決定された動き情報を使用して現在のブロックを符号化することと、を含む。
【０００９】
[0009]別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータの現在のブロックを記憶するように構成されるメモリと、現在のブロックの動き情報を決定するための複数の動き情報導出モードからある動き情報導出モードを選択することと、ここにおいて、複数の動き情報導出モードのうちの各動き情報導出モードが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報が、参照ビデオデータに対する現在のブロックの動きを示し、選択された動き情報導出モードを使用して、現在のブロックの動き情報を決定することと、動き情報を表すシンタックス要素をコーディングすることなく、決定された動き情報を使用して現在のブロックをコーディングすることと、を行うように構成される、１つまたは複数のプロセッサと、を含む。
【００１０】
[0010]別の例では、ビデオデータをコーディングするための装置は、現在のブロックの動き情報を決定するための複数の動き情報導出モードからある動き情報導出モードを選択するための手段と、ここにおいて、複数の動き情報導出モードのうちの各動き情報導出モードが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報が、参照ビデオデータに対する現在のブロックの動きを示し、選択された動き情報導出モードを使用して、現在のブロックの動き情報を決定するための手段と、動き情報を表すシンタックス要素を復号することなく、決定された動き情報を使用して現在のブロックをコーディングするための手段と、を含む。
【００１１】
[0011]別の例では、非一時的コンピュータ可読媒体は、実行されると、１つまたは複数のプロセッサに、現在のブロックの動き情報を決定するための複数の動き情報導出モードからある動き情報導出モードを選択することと、ここにおいて、複数の動き情報導出モードのうちの各動き情報導出モードが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報が、参照ビデオデータに対する現在のブロックの動きを示し、選択された動き情報導出モードを使用して、現在のブロックの動き情報を決定することと、動き情報を表すシンタックス要素を復号することなく、決定された動き情報を使用して現在のブロックをコーディングすることと、を行わせる、命令を記憶している。
【００１２】
[0012]別の例では、ビデオデータを処理する方法は、ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、決定された候補動きベクトルに基づいて、現在のブロックのための導出された動きベクトルを決定することと、を含み、ここにおいて、導出された動きベクトルを決定することが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備える。
【００１３】
[0013]別の例では、ビデオデータを処理するためのデバイスは、ビデオデータの現在のブロックを記憶するように構成されるメモリと、ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、決定された候補動きベクトルに基づいて、現在のブロックのための導出された動きベクトルを決定することと、を行うように構成される、１つまたは複数のプロセッサと、を含み、ここにおいて、導出された動きベクトルを決定することが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備える。
【００１４】
[0014]別の例では、ビデオデータを処理するための装置は、ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定するための手段と、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、決定された候補動きベクトルに基づいて、現在のブロックのための導出された動きベクトルを決定するための手段と、を含み、導出された動きベクトルを決定するための手段が、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行するための手段を備える。
【００１５】
[0015]別の例では、非一時的コンピュータ可読媒体は、実行されると、１つまたは複数のプロセッサに、ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、決定された候補動きベクトルに基づいて、現在のブロックのための導出された動きベクトルを決定することと、を行わせる、命令を記憶しており、ここにおいて、導出された動きベクトルを決定することために、この命令が、１つまたは複数のプロセッサに、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行させる。
【００１６】
[0016]別の例では、ビデオデータを処理する方法は、ビデオデータの現在のブロックを現在のブロックの動き情報を導出するための複数のサブブロックへ分割することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、複数のサブブロックの各々のそれぞれのサブブロックに対して別々に動き情報を導出することが、各々のそれぞれのサブブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報を表すシンタックス要素を復号することなく、導出された動き情報に基づいて複数のサブブロックを復号することと、を含む。
【００１７】
[0017]別の例では、ビデオデータを処理する方法は、ビデオデータの現在のブロックを現在のブロックの動き情報を導出するための複数のサブブロックへ分割することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、複数のサブブロックの各々のそれぞれのサブブロックに対して別々に動き情報を導出することが、各々のそれぞれのサブブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報を表すシンタックス要素を符号化することなく、導出された動き情報に基づいて複数のサブブロックを符号化することと、を含む。
【００１８】
[0018]別の例では、ビデオデータを処理するためのデバイスは、ビデオデータの現在のブロックを記憶するように構成されるメモリと、ビデオデータの現在のブロックを現在のブロックの動き情報を導出するための複数のサブブロックへ分割することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、複数のサブブロックの各々のそれぞれのサブブロックに対して別々に動き情報を導出することが、各々のそれぞれのサブブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報を表すシンタックス要素をコーディングすることなく、導出された動き情報に基づいて複数のサブブロックをコーディングすることと、を行うように構成される、１つまたは複数のプロセッサと、を含む。
【００１９】
[0019]別の例では、非一時的コンピュータ可読媒体は、実行されると、１つまたは複数のプロセッサに、ビデオデータの現在のブロックを現在のブロックの動き情報を導出するための複数のサブブロックへ分割することと、ここにおいて、動き情報が参照ビデオデータに対する現在のブロックの動きを示し、複数のサブブロックの各々のそれぞれのサブブロックに対して別々に動き情報を導出することが、各々のそれぞれのサブブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備え、動き情報を表すシンタックス要素を復号することなく、導出された動き情報に基づいて複数のサブブロックを復号することと、を行わせる、命令を記憶している。
【００２０】
[0020]別の例では、ビデオデータを処理するためのデバイスは、現在のピクチャを記憶するように構成されるメモリと、複数のコーディングされたピクチャを含む符号化されたビットストリームを取得することと、符号化されたビットストリームに含まれない１つまたは複数の参照ピクチャを補間することと、補間された１つまたは複数の参照ピクチャに基づいて、符号化されたビットストリームの現在のピクチャのビデオデータを復号することと、を行うように構成される、１つまたは複数のプロセッサと、を含む。
【００２１】
[0021]本開示の１つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００２２】
【図１】[0022]本開示の技法を実装し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0023]本開示の技法を実装し得るビデオエンコーダの例を示すブロック図。
【図３】[0024]本開示の技法を実装し得るビデオデコーダの例を示すブロック図。
【図４Ａ】[0025]マージモードのための例示的な空間的隣接動きベクトル候補を示す概念図。
【図４Ｂ】高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードのための空間的隣接動きベクトル候補を示す概念図。
【図５Ａ】[0026]例示的な時間的動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）候補および動きベクトルのスケーリングを示す概念図。
【図５Ｂ】例示的な時間的動きベクトル予測子候補および動きベクトルのスケーリングを示す概念図。
【図６】[0027]フレームレートアップコンバージョン（ＦＲＵＣ：frame rate up-conversion）における片側（unilateral）動き推定（ＭＥ：motion estimation）の例を示す概念図。
【図７】[0028]ＦＲＵＣにおける両側（bilateral）動き推定（ＭＥ）の例を示す概念図。
【図８】[0029]テンプレートマッチングベースのデコーダ側動きベクトル導出（ＤＭＶＤ：decoder side motion vector derivation）の例を示す概念図。
【図９】[0030]ＤＭＶＤにおけるミラーベースの双方向動きベクトル導出の例を示す概念図。
【図１０】[0031]拡張（extended）両側マッチングベースの動きベクトル導出を示す概念図。
【図１１】[0032]ＤＭＶＤを使用して予測ユニット（ＰＵ）を復号する例を示すフローチャート。
【図１２】[0033]ビデオデータのブロックをコーディングするための動き情報導出モードを決定するための例示的なプロセスを示すフローチャート。
【図１３】[0034]ビデオデータのブロックをコーディングするための動きベクトルを導出するための例示的なプロセスを示すフローチャート。
【図１４】[0035]ビデオデータのブロックのサブブロックの動き情報を導出するための例示的なプロセスを示すフローチャート。
【詳細な説明】
【００２３】
[0036]本開示の技法は、ブロックベースのビデオコーディングにおける、デコーダ側の動き情報導出、ブロック区分、および／またはビデオデータ補間に関する。本技法は、高効率ビデオコーディング（ＨＥＶＣ）などの既存のビデオコーデックのいずれにも適用され得、あらゆる未来のビデオコーディング規格に対する効率的なコーディングツールになり得る。
【００２４】
[0037]ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的予測（たとえば、フレーム内予測）、時間的予測（たとえば、フレーム間予測）、および／または他の予測技法を適用することを含み得る。ビデオエンコーダは通常、（以下でより詳細に説明されるように）ビデオブロックまたはコーディングユニットと呼ばれる矩形の領域に、元のビデオシーケンスの各ピクチャを区分する。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【００２５】
[0038]インター予測モードでは、ビデオエンコーダは通常、参照フレームと呼ばれる別の時間的ロケーションにあるフレームにおいて符号化されているブロックに類似するブロックを探す。ビデオエンコーダは、符号化されるべきブロックからの一定の空間的変位に対する探索を制限し得る。水平方向の変位成分（component）と垂直方向の変位成分とを含む２次元（２Ｄ）動きベクトルを使用して、ベストマッチが特定され（be located）得る。イントラ予測モードでは、ビデオエンコーダは、同じピクチャ内の以前に符号化された隣接ブロックからのデータに基づいて、空間的予測技法を使用して予測されたブロックを形成し得る。
【００２６】
[0039]ビデオエンコーダは、予測誤差、すなわち、符号化されているブロック中のピクセル値と予測されたブロックとの間の差分（残差とも呼ばれる）を決定し得る。ビデオエンコーダはまた、変換係数を生成するために、離散コサイン変換（ＤＣＴ）などの変換を予測誤差に適用し得る。変換の後で、ビデオエンコーダは変換係数を量子化し得る。量子化された変換係数および動きベクトルは、シンタックス要素を使用して表されることがあり、制御情報とともに、ビデオシーケンスのコーディングされた表現を形成し得る。いくつかの事例では、ビデオエンコーダは、シンタックス要素をエントロピーコーディングし得、それによりそれらの表現に必要なビットの数をさらに減らす。
【００２７】
[0040]ビデオデコーダは、上で論じられたシンタックス要素と制御情報とを使用して、現在のフレームを復号するための予測データ（たとえば、予測ブロック）を構築し得る。たとえば、ビデオデコーダは、予測ブロックと圧縮された予測誤差とを追加し得る。ビデオデコーダは、量子化された係数を使用して変換基底関数（transform basis functions）を重み付けることによって、圧縮された予測誤差を決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【００２８】
[0041]いくつかの事例では、ビデオデコーダまたは後処理デバイスは、１つまたは複数の参照ピクチャに基づいてピクチャを補間し得る。そのような補間されたピクチャは、符号化されたビットストリームに含まれない。ビデオデコーダまたは後処理デバイスは、符号化されたビットストリームの元のフレームレートをアップコンバートするために、ピクチャを補間し得る。この処理は、フレームレートアップコンバージョン（ＦＲＵＣ）と呼ばれ得る。代わりに、ビデオデコーダまたは後処理デバイスは、より低いフレームレートでビデオシーケンスを符号化するためにビデオエンコーダによってスキップされた１つまたは複数のピクチャを挿入するために、ピクチャを補間し得る。いずれの場合でも、ビデオデコーダまたは後処理デバイスは、ビデオデコーダによって受信されている符号化されたビットストリームに含まれないフレームを補間する。ビデオデコーダまたは後処理デバイスは、いくつかの補間技法のいずれかを使用して、たとえば、動き補償されたフレーム補間、フレーム反復、またはフレーム平均化を使用して、ピクチャを補間し得る。
【００２９】
[0042]ピクチャを補間するためのいくつかの技法がアップコンバージョンの目的で使用されてきたが、そのような技法は、ビデオコーディングの間に、たとえば符号化されたビットストリームに含まれるビデオデータをコーディングするためには広く使用されてこなかった。たとえば、ピクチャを補間するための技法は、比較的時間集約的（intensive）であり、および／または比較的大量の処理能力を必要とし得る。したがって、そのような技法は通常、ビデオデータを復号するときにループ内で実行されてこなかった。
【００３０】
[0043]本開示の態様によれば、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）は、ビットストリームをコーディングするときに動き情報を導出し得る。たとえば、ビデオコーダは、ビットストリームに含まれるビデオデータをコーディングするために、ビットストリームに含まれない動き情報を生成し得る。符号化ループまたは復号ループにおいて動き情報を導出することによって、（上で述べられたインター予測技法などの）ビットストリームに動き情報を含める技法と比較して、ビットの節約が達成され得る。
【００３１】
[0044]本開示のいくつかの態様によれば、ビデオコーダは、コーディングの間に複数の動き情報導出技法を利用し得る。そのような例では、ビデオコーダは、現在のブロックの動き情報を決定するときにどの動き情報導出技法を使用すべきかを決定するために、動き情報導出モードを決定し得る。一般に、動き情報を導出するために動き情報導出モードを使用することは、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを含み得る。たとえば、動き情報導出モード（たとえば、以下でより詳細に説明されるような、両側マッチング技法、テンプレートマッチング技法、または別の技法）を使用して、ビデオコーダは動きベクトル候補のリストの中のある動きベクトル候補を選択し得る。ビデオコーダは、現在のピクチャのデータと比較的よく一致する（relatively closely matches）参照ピクチャ中の参照データを識別する（これは参照データの「ベストマッチ」を決定することとして呼ばれることがある）動きベクトル候補に基づいて、動きベクトル候補を選択し得る。
【００３２】
[0045]いくつかの事例では、ビデオコーダは、参照ピクチャ中の探索ウィンドウを識別するために、選択された動きベクトル候補を使用し得る。ビデオコーダは、現在のピクチャ中の対応するデータと比較的よく一致する探索ウィンドウ中の参照データに基づいて、動きベクトル候補を改良し得る。すなわち、ビデオコーダは、現在のピクチャ中のデータとよく一致する探索ウィンドウ中の参照データ間の動きに基づいて、現在のブロックの新しい動き情報を導出し得る。ビデオコーダは次いで、導出された動き情報を使用して、現在のブロックのための動き補償を実行し得る。このようにして、ビデオコーダは、符号化されたビットストリームにおいて動き情報がシグナリングされることなく、現在のブロックの動き情報を導出し得る。
【００３３】
[0046]本開示の態様によれば、いくつかの例では、ビデオコーダは、動き情報を導出するときに、ビデオデータのブロックをサブブロックへ分割し得る。たとえば、ビデオコーダは、より大きいブロックの各サブブロックの動き情報を別々に導出し得る。いくつかの事例では、ビデオコーダは、ブロックの動き情報を最初に決定し、導出された動き情報をサブブロックの各々の候補動き情報として使用し得る。ビデオコーダは次いで、たとえば動き情報導出モード（たとえば、以下でより詳細に説明されるような、両側マッチング技法、テンプレートマッチング技法、または別の技法）を使用して、サブブロックの各々の導出された動き情報をさらに改良し得る。
【００３４】
[0047]本開示の技法はまた、ピクチャを補間するための技法を含み得る。いくつかの事例では、上の技法の任意の組合せが、たとえばフレームレートアップコンバージョンと同様に、ビットストリームに含まれないピクチャを補間するために使用され得る。しかしながら、補間されたピクチャを単にビデオシーケンスに追加するのではなく、ビデオデコーダは、コーディングの間、補間されたフレームを使用し得る。たとえば、ビデオデコーダは、補間されたピクチャの少なくとも一部分に基づいて、現在のピクチャのデータを復号し得る。いくつかの事例では、ビデオデコーダは、補間されたピクチャを現在のピクチャに等しく設定し得る。たとえば、ビデオデコーダは、ビットストリームに含まれる現在のピクチャのシンタックスデータ（たとえば、スライスヘッダデータなど）を復号し、ピクチャを補間し、補間されたピクチャを現在のピクチャとして設定し得る。他の事例では、ビデオデコーダは、ピクチャを補間し、補間されたピクチャに対する現在のピクチャのデータを復号し得る。この事例では、ビデオデコーダは、予測の目的で、補間されたピクチャを参照ピクチャメモリに追加し得る。
【００３５】
[0048]したがって、ＦＲＵＣに言及して本明細書で説明されるいくつかの技法は、いくつかの例では、（たとえば、デコーダ側の動き情報導出プロセスにおいて）動き情報を決定するために使用され得る。他の例では、ＦＲＵＣに言及して本明細書で説明される技法は、たとえばビデオデータをコーディングするための参照のために、または出力のために、ビデオデータを補間するために使用され得る。
【００３６】
[0049]図１は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス１２を含む。具体的には、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００３７】
[0050]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が宛先デバイス１４にリアルタイムで符号化されたビデオデータを直接送信することを可能にする通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００３８】
[0051]いくつかの例では、符号化されたデータは、出力インターフェース２２から記憶デバイスに出力され得る。同様に、符号化されたデータは、記憶デバイスから入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス１２によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することができ、その符号化されたビデオデータを宛先デバイス１４に送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００３９】
[0052]本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオ電話などの適用をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４０】
[0053]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００４１】
[0054]図１の示されるシステム１０は一例にすぎない。動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、本技法は、「コーデック」と通常は呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４への送信のためのコーディングされたビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス１２とビデオデバイス１４との間で一方向または双方向のビデオ送信をサポートし得る。
【００４２】
[0055]ソースデバイス１２のビデオソース１８は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。いくつかの場合には、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディングに適用可能であることがあり、ワイヤレスおよび／またはワイヤード適用例に適用されることがある。各々の場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、その後、出力インターフェース２２によってコンピュータ可読媒体１６に出力され得る。
【００４３】
[0056]コンピュータ可読媒体１６は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、もしくは他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示されず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化されたビデオデータを受信し、その符号化されたビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備などの、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを製造し得る。したがって、様々な例では、コンピュータ可読媒体１６は、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００４４】
[0057]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、たとえば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、ビデオエンコーダ２０によって定義されビデオデコーダ３０によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００４５】
[0058]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合されることがあり、共通のデータストリームまたは別個のデータストリームの中でオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４６】
[0059]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されることがある。
【００４７】
[0060]本開示は、一般に、ビデオエンコーダ２０が、ビデオデコーダ３０などの別のデバイスにある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、全般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで発生し得る。代替として、そのような通信は、符号化時に符号化されたビットストリームにおいてシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間の長さにわたって行われることがあり、次いで、シンタックス要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出されることがある。
【００４８】
[0061]ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオコーディング規格に従って動作し得る。Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）、ならびにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  （ＶＣＥＧ）およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  （ＭＰＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｔｅｎｓｉｏｎ  Ｄｅｖｅｌｏｐｍｅｎｔ  （ＪＣＴ−３Ｖ）によって開発された例示的なビデオコーディング規格には、その範囲拡張と、マルチビュー拡張（ＭＶ−ＨＥＶＣ）とスケーラブル拡張（ＳＨＶＣ）とを含む、高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５がある。完成したＨＥＶＣ規格文書は、「ＩＴＵ−Ｔ  Ｈ．２６５、ＳＥＲＩＥＳ  Ｈ：ＡＵＤＩＯＶＩＳＵＡＬ  ＡＮＤ  ＭＵＬＴＩＭＥＤＩＡ  ＳＹＳＴＥＭＳ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ−Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、国際電気通信連合（ＩＴＵ）の電気通信標準化部門、２０１３年４月として公開されている。代わりに、ビデオエンコーダ２０およびビデオデコーダ３０は、そのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）と拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＶｉｓｕａｌおよびＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）などの、他のプロプライエタリ規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。たとえば、本開示の技法は、ＩＴＵ−Ｔ  Ｈ．２６６などの、様々な他のプロプライエタリもしくは非プロプライエタリビデオコーディング技法または後続の規格とともに使用され得る。
【００４９】
[0062]上で述べられたように、インター予測モードでは、ビデオエンコーダ２０は、参照ピクチャと呼ばれる別の時間的ロケーションのピクチャにおいて、符号化されているブロック（「現在のブロック」）に類似するブロックを探し得る。参照ピクチャを特定するために使用される情報は、動き情報と呼ばれ得る。たとえば、各ブロックについて、動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向のための動き情報を含む。ここで、前方予測方向および後方予測方向は、双方向予測モードの２つの予測方向であり、「前方」および「後方」という用語は、必ずしも幾何学的な意味を有するとは限らず、代わりに、これらの用語は、現在のピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応する。ピクチャまたはスライスについて１つの参照ピクチャリストのみが利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、スライスの各ブロックの動き情報は常に前方である。
【００５０】
[0063]いくつかの場合、動きベクトルは、その参照インデックスとともに復号プロセスにおいて使用され、そのような動きベクトルは関連する参照インデックスとともに、動き情報の単予測セットと表記される。
【００５１】
[0064]各予測方向について、動き情報は、参照インデックスと動きベクトルとを含まなければならない。場合によっては、簡単のために、動きベクトルが関連する参照インデックスを有すると仮定されるような方法では、動きベクトル自体が参照されることがある。参照インデックスは、現在の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。
【００５２】
[0065]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント（ＰＯＣ：picture order count）が広く使用されている。１つのコーディングされたビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有し得る場合があるが、一般に、コーディングされたビデオシーケンス内でそのようなことは起こらない。複数のコーディングされたビデオシーケンスがビットストリーム中に存在するとき、ＰＯＣの同じ値をもつピクチャは、復号順序に関して互いに近いことがある。ピクチャのＰＯＣ値は、一般に、参照ピクチャリスト構築、ＨＥＶＣの場合のような参照ピクチャセットの導出、および動きベクトルスケーリングのために使用される。
【００５３】
[0066]Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、１つの１６×１６ＭＢ区分と、２つの１６×８ＭＢ区分と、２つの８×１６ＭＢ区分と、４つの８×８ＭＢ区分とを含む、４つの異なる方法へと区分され得る。１つのＭＢ中の異なるＭＢ区分は、各方向について異なる参照インデックス値（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を有し得る。ＭＢが４つの８×８ＭＢ区分へと区分されないとき、ＭＢは、各ＭＢ区分について各方向に１つの動きベクトルのみを有する。
【００５４】
[0067]ＭＢが４つの８×８ＭＢ区分へと区分されるとき、各８×８ＭＢ区分は、その各々が各方向に異なる動きベクトルを有し得るサブブロックへさらに区分され得る。１つの８×８サブブロックと、２つの８×４サブブロックと、２つの４×８サブブロックと、４つの４×４サブブロックとを含むサブブロックを８×８ＭＢの区分から得るために、４つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有し得る。したがって、動きベクトルは、サブブロックよりも高いに等しいレベルに存在する。
【００５５】
[0068]ＡＶＣでは、時間的直接モードは、Ｂスライス中のスキップモードまたは直接モードに対して、ＭＢレベルまたはＭＢ区分レベルのいずれかにおいて有効にされ得る。各ＭＢ区分について、動きベクトルを導出するために、現在のブロックのＲｅｆＰｉｃＬｉｓｔ１［０］中の現在のＭＢ区分とコロケートされるブロックの動きベクトルが使用される。コロケートされたブロック中の各動きベクトルは、ＰＯＣ距離に基づいてスケーリングされる。ＡＶＣでは、直接モードはまた、空間的なネイバーから動き情報を予測することができ、これは空間的直接モードと呼ばれ得る。
【００５６】
[0069]ＨＥＶＣでは、ピクチャの符号化された表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロック（ＣＴＢ）と、クロマサンプルの２つの対応するＣＴＢと、ＣＴＢのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のＣＴＢブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００５７】
[0070]コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。（技術的には８×８のＣＴＢサイズがサポートされ得るが）ＣＴＢのサイズは、ＨＥＶＣメインプロファイルでは１６×１６から６４×６４までの範囲であり得る。コーディングユニット（ＣＵ）は、ＣＴＢの同じサイズであり得るが、８×８程度に小さくなり得る。各コーディングユニットは、１つのモードを用いてコーディングされる。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなどの他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスター走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００５８】
[0071]コーディングされたＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するように、ＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に（recursively）実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックはサンプルのＮ×Ｎブロックであり得る。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００５９】
[0072]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別個のカラープレーンを有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックの、予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成し得る。
【００６０】
[0073]ビデオエンコーダ２０は、ＰＵの予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵと関連付けられるピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵと関連付けられるピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ＣＵがインターコーディングされるとき、ＣＵは２つまたは４つのＰＵへとさらに区分され得る。１つのＣＵに２つのＰＵが存在するとき、いくつかの事例では、ＰＵは、半分のサイズの長方形、またはＣＵの１／４もしくは３／４のサイズを有する２つの長方形サイズであり得る。
【００６１】
[0074]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵの予測ルーマブロックと、予測Ｃｂブロックと、予測Ｃｒブロックとを生成した後、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つの中のルーマサンプルとＣＵの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０は、ＣＵのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つの中のＣｂサンプルと、ＣＵの元のＣｂコーディングブロックの中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つの中のＣｒサンプルと、ＣＵの元のＣｒコーディングブロックの中の対応するサンプルとの間の差分を示し得る。
【００６２】
[0075]さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックとＣｂ残差ブロックとＣｒ残差ブロックとを１つまたは複数のルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとに分解するために、４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックと関連付けられ得る。ＴＵと関連付けられるルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００６３】
[0076]ビデオエンコーダ２０は、ＴＵのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、ＴＵのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００６４】
[0077]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮をもたらすプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を実行し得る。
【００６５】
[0078]ビデオエンコーダ２０は、コーディングされたピクチャと、関連するデータの表現とを形成する、ビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビット（emulation prevention bits）が散在させられているローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含むバイトとを含んでいるシンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。
【００６６】
[0079]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化することができ、第２のタイプのＮＡＬユニットはコーディングされたスライスのためのＲＢＳＰをカプセル化することができ、第３のタイプのＮＡＬユニットはＳＥＩのためのＲＢＳＰをカプセル化することができ、以下同様である。ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれ得る。
【００６７】
[0080]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし（parse）得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵと関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵと関連付けられた変換ブロックを再構築するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在のＣＵのＰＵの予測ブロックのサンプルを現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在のＣＵのコーディングブロックを再構築し得る。ピクチャのＣＵごとにコーディングブロックを再構築することによって、ビデオデコーダ３０はピクチャを再構築し得る。
【００６８】
[0081]ＣＵがインターコーディングされるとき、ＰＵごとに動き情報の１つのセットが存在する。加えて、各ＰＵは、動き情報のセットを導出するために固有のインター予測モードを用いてコーディングされる。ＨＥＶＣ規格では、予測ユニット（ＰＵ）のために、それぞれ、マージモード（スキップはマージの特殊な場合と見なされる）および高度動きベクトル予測（ＡＭＶＰ）モードと称される２つのインター予測モードがある。
【００６９】
[0082]ＡＭＶＰモードまたはマージモードのいずれかにおいて、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子のために維持される。現在のＰＵの、（１つまたは複数の）動きベクトル、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補をとることによって生成される。
【００７０】
[0083]ＭＶ候補リストは、マージモードのための最高で５つの候補とＡＭＶＰモードのための２つの候補とを含んでいる。マージ候補は、動き情報のセット、たとえば、参照ピクチャリスト（リスト０およびリスト１）と参照インデックスの両方に対応する動きベクトルを含み得る。マージ候補がマージインデックスによって識別される場合、現在のブロックの予測のために参照ピクチャが使用され、ならびに関連する動きベクトルが決定される。しかしながら、リスト０またはリスト１のいずれかからの各々の可能性のある（potential）予測方向に対するＡＭＶＰモードのもとでは、ＡＭＶＰ候補が動きベクトルのみを含んでいるので、ＭＶＰインデックスとともに参照インデックスがＭＶ候補リストに明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測動きベクトルはさらに改良され得る。
【００７１】
[0084]このように、マージ候補は、動き情報のフルセットに対応するが、ＡＭＶＰ候補は、特定の予測方向および参照インデックスのための１つだけの動きベクトルを含む。両方のモードに対する候補は、以下で図４および図５に関して説明されるように、同じ空間的隣接ブロックおよび時間的隣接ブロックから同様に導出される。
【００７２】
[0085]本開示の態様によれば、以下でより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための、本明細書で説明される技法の任意の組合せを実行するように構成され得る。動き情報導出に関して、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することによって、動き情報を導出するように構成され得る。一致は、参照データ間の類似性の程度に基づいて決定されることがあり、本明細書では「マッチ」または「ベストマッチ」を決定することとして呼ばれることがある。
【００７３】
[0086]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は最初に、動き導出プロセスが有効であるかどうかを示す１つまたは複数のシンタックス要素をコーディングすることができる。いくつかの事例では、１つまたは複数のシンタックス要素は、上で説明されたマージモードなどの別のモードに組み込まれ得る。たとえば、図１０の例に関してより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、動き導出を実行するかどうかを示すマージモードを実行するときの１つまたは複数のシンタックス要素（たとえば、フラグ、マージ候補リストの中のインデックスなど）をコーディングする。
【００７４】
[0087]動き導出が有効にされる事例では、本開示の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パターンマッチングされた動きベクトル導出を実行することができる。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、複数の動き情報導出モードからのどの動き情報導出モードを適用すべきかを示す、１つまたは複数のシンタックス要素をコーディングすることができる。ビデオエンコーダ２０および／またはビデオデコーダ３０は、２つの動き導出情報モードを区別するためのフラグ、または２つより多くの動き情報導出モードを区別するためのインデックスをコーディングすることができる。本明細書で説明されるように、例示的なパターンマッチングされる動き情報導出モードは、両側マッチングまたはテンプレートマッチングを含む。
【００７５】
[0088]動き導出プロセスの間、ビデオエンコーダ２０および／またはビデオデコーダ３０は、選択された動き導出プロセスに基づいて、ブロック全体（たとえば、全体のＰＵ）のための初期動きベクトルを導出することができる。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、マージモードと関連付けられる候補リストから動きベクトルを使用し、候補リストからのどの動きベクトルがベストマッチをもたらすかを決定することができる。すなわち、ビデオエンコーダ２０および／またはビデオデコーダ３０は、選択された動き導出プロセスにおいて使用されるときに、候補リストからのどの動きベクトルが、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセット、たとえば現在のピクチャまたは参照ピクチャの中のデータとよく一致する参照データをもたらすかを、決定することができる。一般に、「ベストマッチ」は、ピクセル差分の観点で最も類似しているビデオデータを指し得る。
【００７６】
[0089]説明を目的とする例として、図８に関してより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、テンプレートマッチング動き情報導出モードを選択し得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、参照ピクチャの中のテンプレートと最もよく一致するテンプレートをもたらす最高のベクトル候補に基づいて、マージモードから動きベクトル候補を選択することができる。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行するように構成されることがあり、データの第１のセットは現在のピクチャの中のテンプレートを備え、参照データの第２のセットは参照ピクチャの中のテンプレートを備える。いくつかの事例では、以下でより詳細に説明されるように、ビデオエンコーダ２０および／またはビデオデコーダ３０は、加えて、または代わりに、最小のマッチングコストに基づいて候補動きベクトルを選択することができる。
【００７７】
[0090]本開示の態様によれば、候補動きベクトルを決定した後で、ビデオエンコーダ２０および／またはビデオデコーダ３０はさらに、現在のブロックの動き情報を導出するために候補動きベクトルを改良することができる。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、候補動きベクトルによって示される参照ピクチャの事前に定義されたエリアの中で探索（たとえば、動き情報導出モードを使用した探索）を実行することができる。ビデオエンコーダ２０および／またはビデオデコーダ３０は、現在のピクチャのビデオデータとのベストマッチおよび／または最小マッチングコストを有する、事前に定義されたエリアの中の参照データを示す動きベクトルに基づいて、現在のブロックの動き情報を導出することができる。
【００７８】
[0091]いくつかの事例では、本開示の態様によれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、動き情報を導出するときに、ビデオデータのブロックをサブブロックへ分割することができる。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、より大きいブロックの各サブブロックの動き情報を別々に導出することができる。いくつかの事例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、（たとえば、上で説明されたプロセスを使用して）ブロックのために導出された動き情報をサブブロックの各々の候補動き情報として使用することができる。ビデオエンコーダ２０および／またはビデオデコーダ３０は次いで、たとえば特定の動き情報導出モード（たとえば、以下でより詳細に説明されるような、両側マッチング技法、テンプレートマッチング技法、または別の技法）を使用して、サブブロックの各々の導出された動き情報をさらに改良することができる。
【００７９】
[0092]図２は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための技法を実施し得るビデオエンコーダ２０の例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【００８０】
[0093]図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、ビデオデータメモリ３８と、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、分割ユニット４８とを含む。ビデオブロックの再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、（図２に示されていない）デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器６２の出力をフィルタリングする。追加のフィルタ（ループ内またはループ後）もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタリングし得る。
【００８１】
[0094]符号化プロセスの間に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。ビデオデータメモリ３８は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３８に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。参照ピクチャメモリ６４は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、ＤＰＢと呼ばれることがある。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３８は、ビデオエンコーダ２０の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【００８２】
[0095]動き推定ユニット４２および動き補償ユニット４４は、時間的予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代わりに、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００８３】
[0096]その上、区分ユニット４８は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、最初にフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【００８４】
[0097]モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモード、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器５０に提供し、参照フレームとして使用するための符号化されたブロックを再構築するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器６２に提供し得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素を、エントロピー符号化ユニット５６に与える。
【００８５】
[0098]動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコーディングされたユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコーディングされたユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリクス（metrics）によって決定され得るピクセル差分に関して、コーディングされるべきブロックとよく一致することが判明しているブロックである。
【００８６】
[0099]いくつかの例では、ビデオエンコーダ２０は、ブロックの動きベクトルを決定するために高速動き探索を実行することができる。たとえばＬｕｒｎｇ−Ｋｕｏ  Ｌｉｕ，  Ｅｐｈｒａｉｍ  Ｆｅｉｇ、「Ａ  ｂｌｏｃｋ−ｂａｓｅｄ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ  ｓｅａｒｃｈ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｂｌｏｃｋ  ｍｏｔｉｏｎ  ｅｓｔｉｍａｔｉｏｎ  ｉｎ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌ．、ｖｏｌ．  ６、ｐｐ．４１９−４２２、１９９６年８月において記述されるようなＢｌｏｃｋ−Ｂａｓｅｄ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ  Ｓｅａｒｃｈ  （ＢＢＧＤＳ）、たとえばＪｏ  Ｙｅｗ  Ｔｈａｍ、Ｓｕｒｅｎｄｒａ  Ｒａｎｇａｎａｔｈ、Ｍａｉｔｒｅｙａ  Ｒａｎｇａｎａｔｈ、およびＡｓｈｒａｆ  Ａｌｉ  Ｋａｓｓｉｍ、「Ａ  ｎｏｖｅｌ  ｕｎｒｅｓｔｒｉｃｔｅｄ  ｃｅｎｔｅｒ−ｂｉａｓｅｄ  ｄｉａｍｏｎｄ  ｓｅａｒｃｈ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｂｌｏｃｋ  ｍｏｔｉｏｎ  ｅｓｔｉｍａｔｉｏｎ」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌ．、ｖｏｌ．  ８、ｐｐ．３６９−３７７、１９９８年８月において記述されるようなＵｎｒｅｓｔｒｉｃｔｅｄ  Ｃｅｎｔｅｒ−Ｂｉａｓｅｄ  Ｄｉａｍｏｎｄ  Ｓｅａｒｃｈ  （ＵＣＢＤＳ）、ならびに、たとえばＣｅ  Ｚｈｕ、Ｘｉａｏ  Ｌｉｎ、およびＬａｐ−Ｐｕｉ  Ｃｈａｕ、「Ｈｅｘａｇｏｎ−Ｂａｓｅｄ  Ｓｅａｒｃｈ  Ｐａｔｔｅｒｎ  ｆｏｒ  Ｆａｓｔ  Ｂｌｏｃｋ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌ．、ｖｏｌ．  １２、ｐｐ．３４９−３５５、２００２年５月において記述されるようなＨＥＸａｇｏｎ−Ｂａｓｅｄ  Ｓｅａｒｃｈ  （ＨＥＢＳ）などの、文献において提案されている多くの高速動き探索方法がある。基本的に、これらの技法は、事前に定義された探索パターンに基づいて、探索ウィンドウの内側のいくつかの数の位置だけを探索することを含む。これらの技法は普通は、動きが小さく穏やかであるときには良好に機能する。
【００８７】
[0100]いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００８８】
[0101]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵの動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されることがあり、それらの各々が、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６および動き補償ユニット４４に送る。
【００８９】
[0102]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのＰＵの動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックを位置特定し（located）得る。加算器５０は、以下で説明されるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット４２は、ルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方について、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際のビデオデコーダ３０による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【００９０】
[0103]イントラ予測ユニット４６は、上で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
【００９１】
[0104]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの間で最も良好なレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに、符号化されたブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比率を計算し得る。
【００９２】
[0105]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に提供し得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックのための符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確（most probable）イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルのインジケーションとを含み得る構成データを、送信されるビットストリームに含め得る。
【００９３】
[0106]本開示の態様によれば、本明細書で説明されるように、ビデオエンコーダ２０は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための、本明細書で説明される技法の任意の組合せを実行するように構成され得る。具体的には、本開示のいくつかの技法は、導出ユニット４９によって実行され得る。たとえば、導出ユニット４９は、動き情報を示すデータをビットストリームに含めることなく現在のブロックの動き情報を決定するように構成され得る。
【００９４】
[0107]いくつかの事例では、導出ユニット４９（および／またはモード選択ユニット４０）は、レートひずみ分析に基づいて、ある特定のブロックのための動き導出を実行するかどうか（たとえば、イントラ予測か従来のインター予測か）を決定することができる。たとえば、導出ユニット４９は、マージモードにおいてマージ候補に対して実行されるようなレートひずみコスト選択と同様の方式で、動き導出を実行するかどうかを決定することができる。この例では、導出ユニット４９は、レートひずみコスト選択を使用して、複数の動き情報導出モード（たとえば、両側マッチングモード、テンプレートマッチングモードなど）の各動き情報導出モードを確認することができる。導出ユニット４９はさらに、最小のコストを有する動き情報導出モードを他のＰＵモード（たとえば、イントラ予測モード、従来のインター予測モード、パレットコーディングモードなど）と比較することができる。動き導出モードがコーディング効率の観点で最も効率的なモードである事例では、ビデオエンコーダ２０は、動き情報が現在のブロックに対して（シグナリングされるのではなく）導出されることを示す１つまたは複数のシンタックス要素を符号化することができる。ビデオエンコーダ２０はまた、複数の動き情報導出モードから動き導出モードをインジケーションするために、１つまたは複数のシンタックス要素を符号化することができる。
【００９５】
[0108]他の例では、本開示の態様によれば、導出ユニット４９は、ビデオシーケンスのための符号化されたビットストリームに含まれないビデオデータを補間することができる。たとえば、導出ユニット４９は、たとえばフレームレートアップコンバージョンと同様に、ビットストリームに含まれないピクチャを補間するために動き導出技法の任意の組合せを実行することができる。いくつかの事例では、ビデオエンコーダ２０は、補間されたピクチャを符号化の間に使用することができる。たとえば、導出ユニット４９はピクチャを補間することができ、ビデオエンコーダ２０は補間されたピクチャに対する現在のピクチャのデータを符号化することができる。この例では、ビデオエンコーダ２０は、補間されたピクチャを参照ピクチャメモリ６４に追加し、補間されたピクチャの少なくとも一部分に基づいて他のピクチャのデータを符号化することができる。
【００９６】
[0109]他の例では、導出ユニット４９はピクチャを補間することができ、ビデオエンコーダ２０は補間されたピクチャを現在のピクチャに等しく設定することができる。たとえば、導出ユニット４９は現在のピクチャを補間することができ、ビデオエンコーダ２０はビットストリームに含まれるべき現在のピクチャのためのシンタックスデータ（たとえば、スライスヘッダデータなど）を符号化することができるが、現在のピクチャのためのビデオデータの符号化をスキップすることができる。
【００９７】
[0110]導出ユニット４９は、いくつかの導出および／または補間技法を実行するように構成され得るが、本明細書で説明されるように、ビデオエンコーダ２０の１つまたは複数の他のユニットも、またはそれらが代わりに、データを補間するように構成され得ることを理解されたい。たとえば、ビデオエンコーダ２０は、たとえば動き補償の間のサブピクセル（サブペル）ロケーションにおいてピクセルを補間するための、様々な他の補間器またはフィルタを含み得る。
【００９８】
[0111]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴに概念的に類似する他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。
【００９９】
[0112]いずれの場合でも、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４へ送り得る。量子化ユニット５４は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は次いで、量子化された変換係数を含むマトリックスの走査を実行し得る。代わりに、エントロピー符号化ユニット５６が走査を実行し得る。
【０１００】
[0113]量子化の後に、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、または後の送信もしくは取り出しのためにアーカイブされ得る。
【０１０１】
[0114]逆量子化ユニット５８および逆変換ユニット６０は、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のフレームのうちの１つの予測ブロックに加えることによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照ピクチャメモリ６４に記憶するための再構築されたビデオブロックを生成するために、動き補償ユニット４４によって生成された動き補償された予測ブロックに、再構築された残差ブロックを加える。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１０２】
[0115]図３は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための技法を実施し得るビデオデコーダ３０の例を示すブロック図である。図３の例では、ビデオデコーダ３０は、ビデオデータメモリ６８と、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて、予測データを生成することができるが、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて、予測データを生成することができる。
【０１０３】
[0116]復号プロセスの間に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデータメモリ６８に記憶されるビデオデータは、たとえば、コンピュータ可読媒体から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ６８は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する、コーディングされたピクチャバッファ（ＣＰＢ）を形成し得る。
【０１０４】
[0117]参照ピクチャメモリ８２は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する、ＤＰＢと呼ばれることがある。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ６８は、ビデオデコーダ３０の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【０１０５】
[0118]ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０１０６】
[0119]ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームが、インターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づくデフォルトの構築技法を使用して、参照フレームリスト、リスト０およびリスト１を構築し得る。
【０１０７】
[0120]動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックの予測情報を決定し、復号されている現在のビデオブロックの予測ブロックを生成するために、この予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数に対する構築情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【０１０８】
[0121]動き補償ユニット７２は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用された補間フィルタを使用することができる。この場合に、動き補償ユニット７２は、受け取られたシンタックス要素から、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用することができる。
【０１０９】
[0122]本開示の態様によれば、ビデオデコーダ３０は、動き情報を導出し、ブロック区分を実行し、および／またはビデオデータを補間するための、本明細書で説明される技法の任意の組合せを実行するように構成され得る。具体的には、本開示のいくつかの技法は、導出ユニット７５によって実行され得る。たとえば、本開示の態様によれば、導出ユニット７５は、符号化されたビットストリームから動き情報を復号することなく現在のブロックの動き情報を決定するように構成され得る。
【０１１０】
[0123]いくつかの事例では、導出ユニット７５は、ある特定のブロックのための動き導出を実行するかどうか（たとえば、イントラ予測か従来のインター予測か）を決定することができる。たとえば、ビデオデコーダ３０は、復号されているブロックのために動き情報が（シグナリングされるのではなく）導出されることを示す、１つまたは複数のシンタックス要素を復号することができる。ビデオデコーダ３０はまた、ブロックを復号するために使用されるべき、複数の動き情報導出モードからの１つの動き情報導出モードを示す、１つまたは複数のシンタックス要素を復号することができる。導出ユニット７５は、復号されたシンタックスに基づいて、動き導出を実行するかどうかと、ブロックのための動き情報導出モードとを決定することができる。いくつかの例では、本明細書で説明されるように、シンタックスは、マージモード、ＡＭＶＰ、または他の復号機能などの、１つまたは複数の他のモードと関連付けられ得る。
【０１１１】
[0124]本開示の他の態様によれば、導出ユニット７５は、ビデオシーケンスのための符号化されたビットストリームに含まれないビデオデータを補間することができる。たとえば、導出ユニット７５は、たとえばフレームレートアップコンバージョンと同様に、パースされるビットストリームに含まれないピクチャを補間するために動き導出技法の任意の組合せを実行することができる。いくつかの事例では、ビデオデコーダ３０は、補間されたピクチャを符号化の間に使用することができる。たとえば、導出ユニット７５はピクチャを補間することができ、ビデオデコーダ３０は補間されたピクチャに対する現在のピクチャのデータを復号することができる。この例では、ビデオデコーダ３０は、補間されたピクチャを参照ピクチャメモリ８２に追加し、補間されたピクチャの少なくとも一部分に基づいて他のピクチャのデータを復号することができる。
【０１１２】
[0125]他の例では、導出ユニット７５はピクチャを補間することができ、ビデオデコーダ３０は補間されたピクチャを現在のピクチャに等しく設定することができる。たとえば、導出ユニット７５は現在のピクチャを補間することができ、ビデオデコーダ３０は符号化されたビットストリームから現在のピクチャのためのシンタックス要素（たとえば、スライスヘッダデータなど）を復号することができるが、現在のピクチャのためのビデオデータの復号をスキップし、代わりに現在のピクチャを補間することができる。
【０１１３】
[0126]導出ユニット７５は、いくつかの補間技法を実行するように構成され得るが、本明細書で説明されるように、ビデオデコーダ３０の１つまたは複数の他のユニットも、またはそれらが代わりに、データを補間するように構成され得ることを理解されたい。たとえば、ビデオデコーダ３０は、たとえば動き補償の間のサブピクセル（サブペル）ロケーションにおいてピクセルを補間するための、様々な他の補間器またはフィルタを含み得る。
【０１１４】
[0127]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化された変換係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックに対してビデオデコーダ３０によって計算される量子化パラメータＱＰYを使用することを含み得る。
【０１１５】
[0128]逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１１６】
[0129]動き補償ユニット７２が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタリングする、デブロッキングフィルタも適用され得る。他のループフィルタ（コーディングループの中、またはコーディングループの後のいずれかにおける）も、ピクセルの遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ内の復号されたビデオブロックは次いで、参照ピクチャメモリ８２内に記憶され、参照ピクチャメモリ８２は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上で後で提示するための、復号されたビデオを記憶する。
【０１１７】
[0130]図４Ａおよび図４Ｂは、ＨＥＶＣにおける空間的隣接候補を示す概念図である。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ＰＵ０の隣接ブロック０、隣接ブロック１、隣接ブロック２、隣接ブロック３、または隣接ブロック４から、空間的動きベクトル（ＭＶ）候補を導出することができる。
【０１１８】
[0131]いくつかの事例では、ブロックからＭＶ候補を生成するための技法は、マージモードとＡＭＶＰモードとで異なる。図４Ａは、マージモードの一例を示す。たとえば、ＨＥＶＣでは、ビデオコーダ（たとえば、図１〜図３のビデオエンコーダ２０および／またはビデオデコーダ３０など）は、最高で４つの空間的ＭＶ候補を導出することができる。これらの候補は、特定の順序を有する候補リストに含められ得る。一例では、図４Ａの例の順序は、隣接ブロック０（Ａ１）、隣接ブロック１（Ｂ１）、隣接ブロック２（Ｂ０）、隣接ブロック３（Ａ０）、および隣接ブロック４（Ｂ２）であり得る。
【０１１９】
[0132]図４Ｂは、ＡＭＶＰモードの一例を示す。たとえば、ＨＥＶＣでは、ビデオコーダは、隣接ブロック０と隣接ブロック１とを含む左グループと、隣接ブロック２と隣接ブロック３と隣接ブロック４とを含む上グループという、２つのグループへと隣接ブロックを分けることができる。各グループについて、（現在コーディングされているブロックのための）シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロックと関連付けられる可能性のある動きベクトル候補が、グループの最終候補を形成するために選ばれるのに最高の優先度を有し得る。隣接ブロックのいずれも、同じ参照ピクチャを指す動きベクトルを含んでいない可能性がある。したがって、そのような候補が見つけられ得ない場合、ビデオコーダは、最終候補を形成するために最初の利用可能な候補をスケーリングすることができ、したがって、時間的距離差分が補償され得る。
【０１２０】
[0133]本開示の態様によれば、図４Ａおよび図４Ｂに示される隣接ブロックと関連付けられる動きベクトルなどの動きベクトル候補は、ブロックの動きベクトルを導出するために使用され得る。たとえば、ビデオコーダは、図４Ａおよび図４Ｂに示される隣接ブロックからの動きベクトル候補を含む候補リストを生成することができる。この例では、ビデオコーダは、動き情報導出プロセス（たとえば、両側マッチング、テンプレートマッチングなど）において、候補リストの候補のうちの１つまたは複数を初期動きベクトルとして使用することができる。ビデオコーダは、参照データを識別するために、動きベクトル導出プロセスの動き探索において動きベクトル候補の１つまたは複数を適用することができる。ビデオコーダは、（たとえば、以下で図８〜図９に関して説明されるように）よく一致する参照データを識別する候補をリストから選択することができる。たとえば、ビデオコーダは、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することができる。いくつかの事例では、ビデオコーダはさらに、動き情報導出プロセスを使用して導出された動きベクトルを決定するために、たとえば、選択された候補によって示されるエリアの中で追加の動き探索を実行することによって、候補を改良することができる。
【０１２１】
[0134]図５Ａおよび図５Ｂは、ＨＥＶＣにおける時間的動きベクトル予測を示す概念図である。時間的動きベクトル予測子（ＴＭＶＰ）候補は、有効であり利用可能である場合、空間的動きベクトル候補の後でＭＶ候補リストに追加される。ＨＥＶＣでは、ＴＭＶＰ候補のための動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードの両方で同じであるが、マージモードにおけるＴＭＶＰ候補のターゲット参照インデックスは、通常は０に設定される。
【０１２２】
[0135]図５Ａは、ＴＭＶＰ候補の主要なブロックロケーション（ブロック「Ｔ」として示されている）を示し、これはコロケートされたＰＵの外側の右下のブロックである。このロケーションは、空間的隣接候補を生成するために使用される上と左のブロックに対するバイアスを補償し得る。しかしながら、ブロックＴが現在のＣＴＢの行の外側に位置する場合、または動き情報が利用可能ではない場合、図５ＡのブロックＴからの破線の矢印によって示されるように、そのブロックはＰＵの中央のブロックにより置き換えられる。
【０１２３】
[0136]図５Ｂは、（たとえば、スライスヘッダにおいて）スライスレベルで示されるように、コロケートされたピクチャ９２のコロケートされたＰＵ９０から現在のピクチャ８８の現在のブロック８６のためのＴＭＶＰ候補８４を導出することを示す。ＡＶＣにおける時間的直接モードと同様に、ＴＭＶＰ候補の動きベクトルは動きベクトルのスケーリングを受けることがあり、これは、距離の差、たとえばピクチャ間の時間的な距離を補償するために実行される。動きベクトルのスケーリングに関して、ビデオコーダ（ビデオエンコーダ２０および／またはビデオデコーダ３０など）は、動きベクトルの値が提示時間におけるピクチャの距離に比例すると初期に決定するように構成され得る。動きベクトルは、２つのピクチャ、すなわち、参照ピクチャと、動きベクトルを含んでいるピクチャ（すなわち、含有ピクチャ（containing picture））とを関連付ける。他の動きベクトルを予測するためにある動きベクトルが利用されるとき、含有ピクチャと参照ピクチャの距離は、ピクチャ順序カウント（ＰＯＣ）値に基づいて計算される。
【０１２４】
[0137]予測されるべき動きベクトルについて、動きベクトルの関連する含有ピクチャと、動きベクトルの参照ピクチャの両方が異なり得る。したがって、ビデオコーダはＰＯＣ値に基づいて新しい距離を計算することができ、ビデオコーダはこれらの２つのＰＯＣ距離に基づいて動きベクトルをスケーリングすることができる。空間的隣接候補について、２つの動きベクトルのための含有ピクチャは同じであるが、参照ピクチャは異なる。ＨＥＶＣでは、動きベクトルのスケーリングは、空間的隣接候補および時間的隣接候補のためのＴＭＶＰとＡＭＶＰの両方に適用される。
【０１２５】
[0138]いくつかの例では、ビデオコーダは、１つまたは複数の人工的動きベクトル候補を決定するように構成され得る。たとえば、動きベクトル候補リストが完全ではない場合、ビデオコーダは、人工的動きベクトル候補を生成し、リストが所定の数のエントリを含むまでリストの最後に人工的動きベクトル候補を挿入することができる。マージモードでは、Ｂスライスのためだけに導出された複合候補を含む人工的ＭＶ候補と、ゼロ候補という２つのタイプがある。いくつかの事例では、ゼロ候補は、複合タイプが十分な人工的な候補を提供しない場合に、ＡＭＶＰのためだけに使用される。
【０１２６】
[0139]すでに候補リスト中にあり、必要な動き情報を有する候補の各ペアについて、双方向複合動きベクトル候補が、リスト０の中のピクチャを参照する第１の候補の動きベクトルとリスト１の中のピクチャを参照する第２の候補の動きベクトルとの組合せによって導出される。
【０１２７】
[0140]本開示の態様によれば、図５Ａおよび図５Ｂに示されるＴＭＶＰなどの動きベクトル候補は、ブロックの動きベクトルを導出するために使用され得る。たとえば、ビデオコーダは、上で説明された処理に従って決定されるＴＭＶＰを含む候補リストを生成することができる。この例では、ビデオコーダは、動き情報導出プロセス（たとえば、両側マッチング、テンプレートマッチングなど）において、ＴＭＶＰを初期動きベクトルとして使用することができる。ビデオコーダは、参照データを識別するために、動きベクトル導出プロセスにおいてＴＭＶＰを適用することができる。ビデオコーダは、（たとえば、以下で図８〜図９に関して説明されるように）ＴＭＶＰがよく一致する参照データを識別する事例において、ＴＭＶＰを選択することができる。いくつかの事例では、ビデオコーダは、動き情報導出プロセスを使用して導出された動きベクトルを決定するために、ＴＭＶＰをさらに改良することができる。
【０１２８】
[0141]いくつかの例では、ビデオコーダは、（図４Ａ〜図５Ｂに関して説明されたものなどの）動きベクトル候補を含む候補リストをプルーニングする（prune）ことができる。たとえば、いくつかの事例では、異なるブロックからの候補は偶然同じであることがあり、これはマージ／ＡＭＶＰ候補リストの効率を下げる。ビデオコードは、この問題を解決するためにプルーニングプロセスを適用することができる。ビデオコーダは、同一の候補を挿入するのを避けるために、ある候補を現在の候補リスト中の他の候補と比較することができる。複雑さを下げるために、ビデオコーダは、各々の可能性のある候補をすべての他の既存の候補と比較する代わりに、限られた数のプルーニングプロセスのみを適用することができる。
【０１２９】
[0142]図６は、フレームレートアップコンバージョン（ＦＲＵＣ）における片側動き推定（ＭＥ）の例を示す概念図である。具体的には、図６は、現在のフレーム１００と、参照フレーム１０２と、補間されたフレーム１０４とを示す。いくつかの事例では、ビデオデコーダまたは後処理デバイスは、１つまたは複数の参照ピクチャに基づいてピクチャを補間することができる。ビデオデコーダまたは後処理デバイスは、符号化されたビットストリームの元のフレームレートをアップコンバートするために、ピクチャを補間することができる。代わりに、ビデオデコーダまたは後処理デバイスは、低減されたフレームレートでビデオシーケンスを符号化するためにビデオエンコーダによってスキップされた１つまたは複数のピクチャを挿入するために、ピクチャを補間することができる。いずれの場合でも、ビデオデコーダまたは後処理デバイスは、復号されたピクチャ（現在のフレーム１００および参照フレーム１０２など）を使用してビデオデコーダによって受信された、符号化されたビットストリームに含まれないフレーム（補間されたフレーム１０４など）を補間する。ビデオデコーダまたは後処理デバイスは、いくつかの補間技法のいずれかを使用して、たとえば、動き補償されたフレーム補間、フレーム反復、またはフレーム平均化を使用して、ピクチャを補間することができる。
【０１３０】
[0143]上で述べられたフレーム補間技法は通常、ループ後に実施される。たとえば、ビデオデコーダは通常、現在のフレーム１００と参照フレーム１０２とを含むビデオシーケンスの再構築された表現を生成するために、符号化されたビットストリームを受信して復号する。復号ループに続いて、ビデオデコーダまたは別の後処理デバイスは、補間されたフレーム１０４を含む再構築された表現とともに含まれるべきピクチャを補間することができる。いくつかの事例では、ピクチャを補間するプロセスは、フレームレートアップコンバージョン（ＦＲＵＣ）と呼ばれることがあり、それは、ピクチャの得られたシーケンスが、符号化されたビットストリームに含まれなかった追加の（補間された）ピクチャを含むからである。
【０１３１】
[0144]したがって、ＦＲＵＣ技術は、低フレームレートのビデオに基づいて高フレームレートのビデオを生成するために使用され得る。ＦＲＵＣはディスプレイ業界において使用されてきた。例は、Ｈ．  Ｌｉｕ，  Ｒ．  Ｘｉｏｎｇ、Ｄ．  Ｚｈａｏ、Ｓ．  Ｍａ、Ｗ．  Ｇａｏ、「Ｍｕｌｔｉｐｌｅ  Ｈｙｐｏｔｈｅｓｅｓ  Ｂａｙｅｓｉａｎ  Ｆｒａｍｅ  Ｒａｔｅ  Ｕｐ−Ｃｏｎｖｅｒｓｉｏｎ  ｂｙ  Ａｄａｐｔｉｖｅ  Ｆｕｓｉｏｎ  ｏｆ  Ｍｏｔｉｏｎ−Ｃｏｍｐｅｎｓａｔｅｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎｓ」、ＩＥＥＥ  ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  ｃｉｒｃｕｉｔｓ  ａｎｄ  ｓｙｓｔｅｍｓ  ｆｏｒ  ｖｉｄｅｏ  ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．  ２２、Ｎｏ．  ８、２０１２年８月、Ｗ．  Ｈ．  Ｌｅｅ、Ｋ．  Ｃｈｏｉ、Ｊ．  Ｂ．  Ｒａ、「Ｆｒａｍｅ  ｒａｔｅ  ｕｐ  ｃｏｎｖｅｒｓｉｏｎ  ｂａｓｅｄ  ｏｎ  ｖａｒｉａｔｉｏｎａｌ  ｉｍａｇｅ  ｆｕｓｉｏｎ」、ＩＥＥＥ  ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  ｉｍａｇｅ  ｐｒｏｃｅｓｓｉｎｇ、ｖｏｌ．  ２３、Ｎｏ．  １、２０１４年１月、およびＵ．  Ｓ．  Ｋｉｍ、Ｍ．  Ｈ．  Ｓｕｎｗｏｏ、「Ｎｅｗ  ｆｒａｍｅ  ｒａｔｅ  ｕｐ−ｃｏｎｖｅｒｓｉｏｎ  ａｌｇｏｒｉｔｈｍｓ  ｗｉｔｈ  ｌｏｗ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ｃｏｍｐｌｅｘｉｔｙ」、ＩＥＥＥ  ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  ｃｉｒｃｕｉｔｓ  ａｎｄ  ｓｙｓｔｅｍｓ  ｆｏｒ  ｖｉｄｅｏ  ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．  ２４、Ｎｏ．  ３、２０１４年３月を含む。
【０１３２】
[0145]ＦＲＵＣアルゴリズムは２つのタイプに分けられ得る。一方のタイプの方法は、単純なフレーム反復または平均化によって中間フレームを補間する。しかしながら、この方法は、多くの動きを含むピクチャでは不適切な結果をもたらす。動き補償されたＦＲＵＣ（ＭＣ−ＦＲＵＣ）と呼ばれる他方のタイプの方法は、それが中間フレームを生成するときにオブジェクトの動きを考慮し、動き推定（ＭＥ）および動き補償された補間（ＭＣＩ：motion-compensated interpolation）という２つのステップからなる。ＭＥは、ベクトルを使用してオブジェクトの動きを表す動きベクトル（ＭＶ）を生成し、一方でＭＣＩは、中間フレームを生成するためにＭＶを使用する。
【０１３３】
[0146]ブロックマッチングアルゴリズム（ＢＭＡ）が、実装が簡単であるため、ＭＣ−ＦＲＵＣにおいてＭＥのために広く使用されている。ＢＭＡは、画像をブロックに分け、たとえばブロックが対応するかどうかを決定するために、それらのブロックの動きを検出する。片側ＭＥおよび両側ＭＥという、２つの種類のＭＥがＢＭＡのために主に使用される。
【０１３４】
[0147]図６に示されるように、片側ＭＥは、現在のフレーム１００の参照フレーム１０２からベストマッチのブロックを探すことによって、ＭＶを取得する。次いで、ＭＶが達成されるように、補間されたフレームの中の動きの軌跡（trajectory）の上にあるブロックが位置特定され（be located）得る。図６に示されるように、現在のフレーム１００からの１０６Ａと、１０６Ｂと、１０６Ｃとを含む３つのブロック、参照フレーム１０２、および補間されたフレーム１０４がそれぞれ、動きの軌跡をたどることに関与する。現在のフレーム１００の中のブロック１０６Ａはコーディングされたブロックに属するが、参照フレーム１０２の中のベストマッチのブロック１０６Ｂはコーディングされたブロックに完全には属さないことがあり、補間されたフレーム１０４の中のブロック１０６Ｃもコーディングされたブロックに属さない。その結果、ブロックのオーバーラップされた領域と満たされていない（ホールの（holes））領域が、補間されたフレームの中に生じ得る。
【０１３５】
[0148]オーバーラップに対処するために、単純なＦＲＵＣアルゴリズムは、オーバーラップされたピクセルを平均化して上書きすることを伴うだけである。その上、ホールは参照フレームまたは現在のフレームからのピクセル値によってカバーされる。しかしながら、これらのアルゴリズムはブロッキングアーティファクトとぼけ（blurring）をもたらす。したがって、ブロッキングアーティファクトとぼけを増やすことなくホールとオーバーラップに対処するために、動きフィールドのセグメント化、離散ハートレー変換を使用した連続的な外挿（extrapolation）、および画像のインペインティング（inpainting）が提案されている。
【０１３６】
[0149]本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０および／またはビデオデコーダ３０など）は、図６に示される片側マッチング技法を使用して、符号化ループまたは復号ループにおいて補間されたフレーム１０４を生成することができる。たとえば、ビデオコーダは、再構築されたピクセルアレイを使用して、現在のピクチャの予測子として補間されたフレーム１０４を補間するために、ピクチャレベルのＦＲＵＣを使用することができる。いくつかの例では、そのような補間されたピクチャは、参照ピクチャまたは現在のフレーム１００の再構築であると見なされ得る。他の例では、ビデオコーダは、現在のピクチャを補間されたピクチャに等しく設定することができる。そのようなピクチャは、シンタックス要素または復号プロセスによって、廃棄可能なピクチャおよび／または非参照ピクチャとしてマークされ得る。
【０１３７】
[0150]いくつかの例では、ビデオコーダは、ＦＲＵＣモードが唯一の許可されるモードであるように現在のピクチャを補間することができ、ここで、ＦＲＵＣモードは、図６に示される片側マッチング技法、または本明細書で説明される任意の他の動き情報導出技法もしくは補間技法を示す。したがって、４分木ベースのＣＵ構造のシグナリングの代わりに、すべてのブロックが、同じ事前に定義されたサイズまたはシグナリングされたサイズを有し得る。いくつかの事例では、通常のスキップ、通常のマージ、ＦＲＵＣモード、およびイントラモードなどの、有効なＣＵコーディングモードのサブセットのみが許可され得る。代わりに、または加えて、ＦＲＵＣのためのホールフィリング（hole filling）モードが、そのようなピクチャまたはスライスにおいて許可され得る。
【０１３８】
[0151]本開示の態様によれば、どのピクチャまたはピクチャのサブシーケンスがピクチャレベルのＦＲＵＣによってコーディングされるかを示すための、ＳＥＩメッセージが導入され得る。そのようなピクチャは、他のピクチャの品質に影響を与えることなく廃棄され得る。そのようなＳＥＩメッセージは、どの（１つまたは複数の）時間的レベルがＦＲＵＣコーディングされたピクチャを含むか、またはＦＲＵＣコーディングされたピクチャだけを含むかを示す（または追加で示す）ことができる。ＳＥＩメッセージ中のそのような情報はまた、ＰＰＳ、ＳＰＳ、およびＶＰＳなどの、高レベルシンタックスの他の場所として提示され得る。
【０１３９】
[0152]いくつかの例では、ビデオコーダは、ピクチャの一部分をコーディングし、残りのビデオデータを補間することができる。たとえば、ビデオコーダは、デコーダ側のフレームレートアップコンバージョンのためのいわゆる「ヒント」をコーディングすることができ、このヒントは、スマートなデコーダまたはリソースの豊富なデコーダがＦＲＵＣフレームを任意選択で生成することを可能にし得る。たとえば、そのようなＦＲＵＣフレームのためのヒントとして、いくつかの重要な領域（長方形の領域など）がシグナリングされ得る。ヒントが受信され任意選択で処理されるとき、デコーダの一部として指定されるＦＲＵＣ方法は、重要な領域ではない領域に対して最初に使用され得るが、重要な領域は、ホールフィリング方法などの、デコーダによって指定されないことがある手段によって、さらに処理されなければならない。
【０１４０】
[0153]ホールフィリングに関して、本開示の態様によれば、ビデオコーダは、ブロックベースのホールフィリング技法を実施することができる。たとえば、あるホールフィリング技法は、同じＣＴＵの中の現在のイントラブロックを予測するために、空間的に隣接するインターブロックを使用することになる。たとえば、ビデオコーダはＣＴＵを２回符号化／復号することができる。最初の符号化／復号は普通である。２回目では、イントラブロックだけが符号化／復号され、上書きされる。あるイントラブロックに対して、現在のブロックの右下のインターブロックを含む、同じＣＴＵの中の、そのイントラブロックに空間的に隣接するすべてのインターブロックが、イントラ予測に利用可能であるものとしてマークされる。ホールフィリング方法はまた、スライスレベル、タイルレベル、ピクチャレベル、他の任意の他のレベルであり得る。別のホールフィリング方法は、画像インペインティング技法を使用し得る。他のホールフィリング技法も適用され得る。
【０１４１】
[0154]図７は、ＦＲＵＣにおける両側動き推定（ＭＥ）の例を示す概念図である。具体的には、図７は、現在のフレーム１１４の現在のブロック１１２および参照フレーム１１８の参照ブロック１１６から補間される、補間されたフレーム１１０の補間されたブロック１０８を示す。図７に示されるように、両側ＭＥは、図６に示されるオーバーラップおよびホールによって引き起こされる問題を回避するために使用され得る（ＭＣ−ＦＲＵＣにおける）別の解決法である。両側ＭＥは、それぞれ、現在のフレーム１１４のブロック１１２と参照フレーム１１８のブロック１１６との間の時間的な対称性を使用して、補間されたブロック１０８を通るＭＶを取得する。結果として、それはオーバーラップとホールを生成しない。現在のブロックは、たとえばビデオコーディングの場合のように、ある順序で処理されているブロックであると仮定されるので、そのようなブロックのシーケンスは、オーバーラップを伴わずに中間ピクチャ全体をカバーする。たとえば、ビデオコーディングの場合、ブロックは復号順序で処理され得る。
【０１４２】
[0155]本開示の態様によれば、図７の例に示される両側動き推定が、動き情報を導出するために利用され得る。たとえば、以下で図９に関してより詳細に説明されるように、ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０など）は、コーディングの間に動き情報を導出するために、動き情報導出モードとして両側マッチングを適用することができる。両側マッチングでは、ビデオコーダは、第２の参照ピクチャの中の参照データの第２のセットに対応する第１の参照ピクチャの中の参照データの第１のセットに対する動き探索を実行することができる。
【０１４３】
[0156]本開示の他の態様によれば、ビデオコーダ（ビデオエンコーダ２０および／またはビデオデコーダ３０など）は、図７に示される両側マッチング技法を使用して、符号化ループまたは復号ループにおいて補間されたフレームを生成することができる。たとえば、ビデオコーダは、再構築されたピクセルアレイを使用して、現在のピクチャの予測子として補間されたピクチャを補間するために、ピクチャレベルのＦＲＵＣを使用することができる。いくつかの例では、そのような補間されたピクチャは、参照ピクチャまたは現在のピクチャの再構築であると見なされ得る。他の例では、ビデオデコーダは、現在のピクチャを補間されたピクチャに等しく設定することができる。そのようなピクチャは、シンタックス要素または復号プロセスによって、廃棄可能なピクチャおよび／または非参照ピクチャとしてマークされ得る。
【０１４４】
[0157]図８は、デコーダ側動きベクトル導出（ＤＭＶＤ）に基づくテンプレートマッチングの例を示す概念図である。高度なビデオコーデックでは、ビットストリーム中の動き情報のビットの割合はより高くなる。いくつかの事例では、ＤＭＶＤは動き情報のビットコストを低減することができる。テンプレートマッチングベースのＤＭＶＤは、たとえば、Ｓ．  Ｋａｍｐ、Ｍ．  Ｗｉｅｎ、「Ｄｅｃｏｄｅｒ−ｓｉｄｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ｂｌｏｃｋ−ｂａｓｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＥＥＥ  ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  ｃｉｒｃｕｉｔｓ  ａｎｄ  ｓｙｓｔｅｍｓ  ｆｏｒ  ｖｉｄｅｏ  ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．  ２２、Ｎｏ．  １２、２０１２年１２月において説明されるように、コーディング効率の改善を示し得る。
【０１４５】
[0158]図８の例では、現在のピクチャ１２０は、予測ターゲット１２２（たとえば、現在コーディングされているブロック）とテンプレート１２４とを含む。参照ピクチャ１２６は、コロケートされたテンプレート１２８と、ベストマッチ１３０と、変位ベクトル１３２とを含む。ビデオコーダ（ビデオエンコーダ２０および／またはビデオデコーダ３０など）は、（たとえば、まだコーディングされていない予測ターゲット１２２自体を使用するのではなく）予測ターゲット１２２に対するベストマッチを探すためにテンプレート１２４を使用することができる。たとえば、ビデオコーダは、予測ターゲット１２２の外側の参照データの第２のセット（たとえば、テンプレート１２４）に対応する参照データの第１のセット（たとえば、ベストマッチ１３０）を識別するために動き探索を実行することができる。上で述べられたように、一致は、参照データ間の類似性の程度に基づいて決定されることがあり、本明細書では「マッチ」または「ベストマッチ」を決定することとして呼ばれることがある。
【０１４６】
[0159]示される例では、ビデオコーダは、参照ピクチャ１２６の中のコロケートされたテンプレート１２８を識別することができる。ビデオコーダは次いで、テンプレート１２４と類似するピクセル値を含むベストマッチ１３０を探すことができる。ビデオコーダは、参照ピクチャ１２６の中のコロケートされたテンプレート１２８とベストマッチ１３０との変位に基づいて、変位ベクトル１３２を決定することができる。
【０１４７】
[0160]テンプレート１２４および予測ターゲット１２２が同じオブジェクトからのものであると仮定すると、テンプレートの動きベクトルは、予測ターゲットの動きベクトルとして使用されることが可能である。したがって、図８の例では、ビデオコーダは、変位ベクトル１３２を予測ターゲット１２２に適用することができる。テンプレートマッチングがビデオエンコーダとビデオデコーダの両方において行われるので、動きベクトルは、シグナリングコストを避けるためにデコーダ側で導出され得る。
【０１４８】
[0161]本開示の態様によれば、ビデオコーダは、動き情報導出モードとしてテンプレートマッチングを適用することができる。たとえば、ビデオコーダは、現在のピクチャのテンプレート１２４と参照ピクチャ１２６の中の対応する参照データとの間のベストマッチを見つけること（locating）によって、現在のブロックの動き情報を導出するために、テンプレートマッチングを適用することができる。図８の例はビデオデータのＬ型ブロックとしてテンプレート１２４を示すが、他のテンプレートも使用され得ることを理解されたい。たとえば、ビデオコーダは、複数のブロック、たとえば予測ターゲット１２２の左に位置する１つまたは複数のブロックおよび予測ターゲット１２２の上に位置する１つまたは複数のブロックを、テンプレートとして使用することができる。
【０１４９】
[0162]本開示の態様によれば、ビデオコーダは、動きベクトルの候補リストからの１つまたは複数の動きベクトルを使用して、図８に示されるテンプレートマッチング技法を適用することができる。たとえば、ビデオコーダは、本明細書で説明される技法（たとえば、マージモード候補、ＡＭＶＰ候補、ＴＭＶＰなど）の任意の組合せを使用して、１つまたは複数の候補動きベクトルを決定するように構成され得る。ビデオコーダは次いで、コロケートされたテンプレート１２８を位置特定するために、候補動きベクトルの１つまたは複数をテンプレート１２４に適用するように構成され得る（この例では、コロケートされたテンプレート１２８のロケーションは、１つまたは複数の候補動きベクトルによって記述され、必ずしも厳密にコロケートされていない）。ビデオコーダは、候補動きベクトルのうちのいずれがテンプレート１２４とコロケートされたテンプレート１２８との間のベストマッチをもたらすかを決定するように構成され得る。
【０１５０】
[0163]本開示の態様によれば、ビデオコーダは次いで、予測ターゲット１２２の動き情報を導出するために、候補動きベクトルを改良するように構成され得る。たとえば、ビデオコーダは、候補動きベクトルによって識別される参照ピクチャ１２６の領域において、テンプレート１２４に対するベストマッチを探すことができる。ベストマッチを決定すると、ビデオコーダは、テンプレート１２４と決定されたベストマッチとの間の変位を決定することができる。ビデオコーダは、この変位を、予測ターゲット１２２の導出された動きベクトルとして指定することができる。
【０１５１】
[0164]図９は、ＤＭＶＤにおける双方向動きベクトル導出の例を示す概念図である。ＤＭＶＤの別のカテゴリは、たとえば、Ｙ．−Ｊ．  Ｃｈｉｕ、Ｌ．  Ｘｕ、Ｗ．  Ｚｈａｎｇ、Ｈ．  Ｊｉａｎｇ、「Ｄｅｃｏｄｅｒ−ｓｉｄｅ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ  ａｎｄ  Ｗｉｅｎｅｒ  ｆｉｌｔｅｒ  ｆｏｒ  ＨＥＶＣ」、Ｖｉｓｕａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  （ＶＣＩＰ）、２０１３年において記述されているような、ミラーベースの双方向ＭＶ導出である。ＤＭＶＤにおける双方向動きベクトル導出の概念は、ＦＲＵＣにおける両側ＭＥと類似していることがある。たとえば、ミラーベースのＭＶ導出は、分数サンプルの精度で、探索中心の周りの中心対称の（Centro-symmetric）動き推定によって適用され得る。
【０１５２】
[0165]図９の例は、現在のブロック１４２（現在コーディングされているブロック）を有する現在のピクチャ１４０と、第１の参照ピクチャ１４６（Ｌ０  ｒｅｆ）の第１のテンプレートブロック１４４を識別する第１の候補動きベクトルＰＭＶ０と、第２の参照ピクチャ１５０の第２のテンプレートブロック１４８を識別する第２の候補動きベクトルＰＭＶ１とを含む。ビデオコーダは、第１の参照ピクチャ１４６の探索ウィンドウ１５４において第１の参照ブロック１５２を位置特定し、第２の参照ピクチャ１５０の探索ウィンドウ１５８において第２の参照ブロック１５６を位置特定するために、ｄＭＶをオフセットとして適用することができる。
【０１５３】
[0166]たとえば、ビデオコーダは、ＭＶのペアであるＭＶ０とＭＶ１とを生成するために、ｄＭＶをＰＭＶ０に加算し、ＰＭＶ１からｄＭＶを減算することができる。ビデオコーダは、ｄＭＶのどの値がＬ０  ｒｅｆの第１の参照ブロック１５２（たとえば、参照データの第１のセット）とＬ１  ｒｅｆの第２の参照ブロック１５６（たとえば、参照データの第２のセット）との間のベストマッチをもたらすかを決定するために、探索ウィンドウ１５４および１５８の内部のｄＭＶのすべての値を確認することができる。いくつかの例では、ビデオコーダは、絶対差分和（ＳＡＤ）に基づいてベストマッチを決定することができる。他の例では、ビデオコーダは、ベストマッチを決定するために別のメトリックを使用することができる。探索ウィンドウ１５４および１５８のサイズおよびロケーションは、事前に定義されることがあり、またはビットストリームにおいてシグナリングされることがある。
【０１５４】
[0167]ビデオコーダは、中心対称の動き推定の出力として、最小のＳＡＤを有するＭＶペアを選択することができる。この技法は、未来の参照（現在のフレームより時間的に後の位置における参照）とより早い参照（現在のフレームより時間的に早い位置における参照）とをＳＡＤマッチングのために使用するので、前者の参照しか利用可能ではないＰフレームまたは低遅延のＢフレームに、この技法が適用されることは可能ではない。
【０１５５】
[0168]本開示の態様によれば、ビデオコーダは、動き情報導出モードとして双方向動きベクトル導出技法を適用することができる。いくつかの例では、ビデオコーダは、動きベクトルの候補リストからの１つまたは複数の動きベクトルを使用して、図９に示される技法を適用することができる。たとえば、ビデオコーダは、本明細書で説明される技法（たとえば、マージモード候補、ＡＭＶＰ候補、ＴＭＶＰなど）の任意の組合せを使用して、１つまたは複数の候補動きベクトルを決定するように構成され得る。ビデオコーダは次いで、第１のテンプレートブロック１４４と第２のテンプレートブロック１４８とを位置特定するために、候補動きベクトルの１つまたは複数をＰＭＶ０および／またはＰＭＶ１として適用するように構成され得る。ビデオコーダは、候補動きベクトルのうちのいずれが第１のテンプレートブロック１４４と第２のテンプレートブロック１４８との間のベストマッチをもたらすかを決定するように構成され得る。
【０１５６】
[0169]本開示の態様によれば、ビデオコーダは次いで、現在のブロック１４２の動き情報を導出するために、候補動きベクトルを改良するように構成され得る。たとえば、ビデオコーダは、上で説明された方式で、ｄＭＶの様々な値を適用することによってベストマッチを探すことができる。このようにして、ビデオコーダは、ＭＶペアであるＭＶ０とＭＶ１とを導出することができる。
【０１５７】
[0170]図１１は、拡張両側マッチングベースの動きベクトル導出を示す概念図である。（たとえば、図１０に示されるような）ミラーベースの双方向ＭＶ導出の１つの潜在的な欠点は、現在のピクチャの２つの参照が現在のピクチャよりもともに早いとき、またはともに遅いときに機能しないということである。本明細書で説明される拡張両側マッチング技法は、いくつかの事例において、現在のピクチャのすべての参照ピクチャが（表示順序において）現在のピクチャと同じ側にあるという欠点を克服することができる。
【０１５８】
[0171]図１１の例は、現在のブロック１６２を含む現在のピクチャ１６０と、第１の参照ブロック１６６を含む第１の参照ピクチャ（Ｒｅｆ０）１６４と、第２の参照ブロック１７０を含む第２の参照ピクチャ（Ｒｅｆ１）１６８とを含む。図１１に示されるように、第１の参照ピクチャ（Ｒｅｆ０）１６４および第２の参照ピクチャ（Ｒｅｆ１）１６８はともに、時間的な方向において現在のピクチャの前に位置する。第１の参照ブロック１６６、第２の参照ブロック１７０、および現在のブロック１６２が同じ動きの軌跡に沿っていると仮定すると、ＭＶ０とＭＶ１との間の比率は、時間的な距離ＴＤ０とＴＤ１との間の比率に等しいはずである。言い換えると、現在のピクチャに対する時間的な距離ＴＤ０およびＴＤ１を有する２つの参照Ｒｅｆ０およびＲｅｆ１を仮定すると、Ｒｅｆ０の中の任意のＭＶ０に対して、Ｒｅｆ１の中のＭＶ１はＭＶ０をスケーリングして決定され得る。
【０１５９】
[0172]ビデオコーダは、（たとえば、図１０に関して上で説明されたように）ＭＶ０によって指し示されるブロックペアとＭＶ１によって指し示されるブロックペアとの間のマッチングコストを最小にするペアとして、最終的なＭＶ０とＭＶ１のペアを選択することができる。理論的には、現在のブロック１６２は、第１の参照ブロック１６６および第２の参照ブロック１７０に基づいて外挿された（extrapolated）ブロックであると見なされ得る。拡張両側マッチングは、現在のピクチャが時間的に２つの参照と参照の間にある通常の双方向の場合においても機能することに、留意されたい。この場合、現在のブロック１６２は、第１の参照ブロック１６６および第２の参照ブロック１７０に基づいて補間されたブロックであると見なされ得る。その上、本明細書で説明される両側マッチング技法は、双方向の場合であっても、ＭＶ０とＭＶ１との間の「ミラー関係」を必要としない。両側マッチングの仮定は、ＭＶ０とＭＶ１との間の比率が、Ｒｅｆ０から現在のピクチャまでの時間的な距離とＲｅｆ１から現在のピクチャまでの時間的な距離との間の比率に比例しているというものである。
【０１６０】
[0173]明らかに、第１の参照ブロック１６６および第２の参照ブロック１７０以外の参照ブロックに対して、ビデオコーダは異なるＭＶペアを導出することができる。一例では、ビデオデコーダは、参照ピクチャが参照ピクチャリストにおいて出現する順序に従って、両側マッチングを実行するための参照ピクチャを選択することができる。たとえば、ビデオコーダは、参照リスト０の中の第１の参照をＲｅｆ０として、参照リスト１の中の第１の参照をＲｅｆ１として選択することができる。ビデオコーダは次いで、ＭＶペア（ＭＶ０、ＭＶ１）を探すことができる。別の例では、ビデオコーダは、初期リスト（たとえば、初期動きベクトル候補リスト）の中のエントリに基づいてＲｅｆ０を選択する。ビデオコーダは次いで、現在のピクチャに時間的に最も近い他の参照ピクチャリスト中のある参照ピクチャに、Ｒｅｆ１を設定することができる。その結果、ビデオコーダは、Ｒｅｆ０およびＲｅｆ１においてＭＶペア（ＭＶ０，ＭＶ１）を探すことができる。
【０１６１】
[0174]したがって、本開示の態様によれば、ビデオコーダは、動き情報導出モードとして図１１に示される拡張双方向動き導出技法を適用することができる。たとえば、ビデオコーダは、２つの異なる参照ピクチャにおいて、現在のブロックの動きの軌跡に沿った２つのブロック（たとえば、第１の参照ブロック１６６および第２の参照ブロック１７０など）の間のベストマッチを見つけることによって、現在のブロック１６２の動き情報を導出するために両側マッチングを使用することができる。連続的な動きの軌跡という仮定のもとでは、２つの参照ブロックである第１の参照ブロック１６６および第２の参照ブロック１７０を指し示す動きベクトルＭＶ０およびＭＶ１は、現在のピクチャと２つの参照ピクチャとの間の時間的な距離、すなわちＴＤ０およびＴＤ１に比例するはずである。ある特別な場合、現在のピクチャ１６０が、（図１０の例に示されるように）時間的に２つの参照ピクチャと参照ピクチャの間にあり、現在のピクチャから２つの参照ピクチャまでの時間的な距離が同じであるとき、両側マッチングはミラーベースの双方向ＭＶになる。
【０１６２】
[0175]図１１は、ＤＭＶＤを使用して予測ユニット（ＰＵ）を復号する例を示すフローチャートである。Ｙ．−Ｊ．  Ｃｈｉｕ、Ｌ．  Ｘｕ、Ｗ．  Ｚｈａｎｇ、Ｈ．  Ｊｉａｎｇ、「Ｄｅｃｏｄｅｒ−ｓｉｄｅ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ  ａｎｄ  Ｗｉｅｎｅｒ  ｆｉｌｔｅｒ  ｆｏｒ  ＨＥＶＣ」、Ｖｉｓｕａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  （ＶＣＩＰ）、２０１３年において、ミラーベースの双方向ＭＶ導出を、ＨＥＶＣにおけるマージモードと組み合わせることがさらに提案された。提案された技法では、ＤＭＶＤモードが現在のＰＵに適用されるかどうかを示すために、ＢスライスのＰＵに対してｐｕ＿ｄｍｖｄ＿ｆｌａｇと呼ばれるフラグが追加される。ＤＭＶＤモードはビットストリームにおいていずれのＭＶ情報も明示的には送信しないので、ｐｕ＿ｄｍｖｄ＿ｆｌａｇシンタックス要素は、（動きベクトル自体ではなく動きベクトルを表すデータのインデックスを使用する）ＨＥＶＣにおけるマージモードのシンタックスと統合される。
【０１６３】
[0176]図１１の例では、ビデオデコーダ（ビデオデコーダ３０など）がＰＵを復号することを開始し得る（１８０）。ビデオデコーダ３０は、たとえばＰＵを含むビットストリームに含まれるシンタックスに基づいて、ＰＵを復号するために使用されるモードがマージモードであるかどうかを決定することができる（１８２）。マージモードが使用されない場合（ステップ１８２の「ｎｏ」の分岐）、ビデオデコーダ３０は、ＰＵを復号して（１８４）プロセスを終了する（１８６）ために、非マージＰＵのための通常のプロセスを使用することができる。
【０１６４】
[0177]マージモードが使用される場合（ステップ１８２の「ｙｅｓ」の分岐）、ビデオデコーダ３０は、ｐｕ＿ｄｍｖｄ＿ｆｌａｇシンタックス要素の値に基づいて、ＤＭＶＤがＰＵの動き情報を決定するために使用されるかどうかを決定することができる（１８８）。ＤＭＶＤが使用されない場合（ステップ１８８の「ｎｏ」の分岐）、ビデオデコーダ３０は、ＰＵを復号して（１９０）プロセスを終了する（１８６）ために、通常のマージモードを使用することができる。ＤＭＶＤが使用される場合（ステップ１８８の「ｙｅｓ」の分岐）、ビデオデコーダ３０は、ＰＵの動き情報を決定して（１９２）プロセスを終了する（１８６）ために、ＤＭＶＤプロセスを適用することができる。
【０１６５】
[0178]いくつかの事例では、現在のビデオコーディング技法はいくつかの制約を有し得る。たとえば、いくつかのＤＭＶＤ技法は、ＦＲＵＣ技術のサブセットとして見なされることがある。ＤＭＶＤはビデオコーディングにおいて適用されてきたが、他の効率的なＦＲＵＣ技法は、ビデオコーディングにおいて、たとえばビデオエンコーダまたはビデオデコーダによるビデオコーディングループにおいて実施されてこなかった。加えて、ＤＭＶＤの様々な技法が提案されてきたが、そのような技法の相互作用およびオーバーラップはデコーダにおいて利用されていない。すなわち、１つだけのＤＭＶＤモードが他のビデオコーディングシステムにおいて使用されてきた。コーディング効率をさらに改善するために複数のＤＭＶＤ技法を使用する方式は、研究されていない。
【０１６６】
[0179]別の可能性のある制約として、ＤＭＶＤは、ビデオデータの比較的大きいブロックにのみ適用され得るので、あまり効率的ではないことがある。より小さいブロックにそのような方法を適用することは、シグナリングコストが原因の大きなオーバーヘッドにつながり得る。いくつかの事例では、従来のＤＭＶＤ技法の探索範囲は比較的小さいことがあり、いくつかの点、たとえば１６個の点だけが探索される。加えて、上で述べられたように、ミラーベースの双方向ＭＶ導出は低遅延Ｂの場合には適用されることが可能ではなく、それは、現在のピクチャの前または後の表示順序を有する２つの参照ピクチャが識別される必要があり、これは低遅延の場合には不可能であるからである。
【０１６７】
[0180]別の可能性のある制約は、デコーダにおいて、従来のＤＭＶＤ技法のマッチングコストがひずみしか考慮しないことがあるということであり得る。しかしながら、動きベクトルの大きさ（magnitude）はマッチングコストにおいて考慮されておらず、これは、たとえばピクセル領域のノイズが原因の、局所的な最適化またはマッチングの不正確な結果につながり得る。その上、従来のＤＭＶＤ技法の複雑さは、特にデコーダにおける探索の間に分数ペル（fractional-pel）動きベクトルのために補間が必要であるという事実が原因で、メモリ帯域幅と計算の複雑さの両方に関して比較的高いことがある。
【０１６８】
[0181]本開示の技法は、上で説明された可能性のある制約の１つまたは複数に対処し得る。いくつかの例では、動き情報を導出するための技法は、個別に適用され得る。代わりに、本明細書で説明される技法の任意の組合せが、一緒に適用され得る。本明細書で説明されるように、参照インデックス情報は一般に、動き情報の一部と見なされ得る。いくつかの事例では、動きベクトル情報および参照インデックス情報は、動き情報のセットと呼ばれ得る。
【０１６９】
[0182]本開示のいくつかの技法は、複数の可能性のある動き導出モードからある動き導出モードを選択することを含む。たとえば、本開示の態様によれば、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ビットストリームにおける動き情報のシグナリングを避けるためにビデオデコーダにおいて動き情報のより良好な予測を行うために、２つ以上の動き導出技法を使用することができる。２つ以上の動き導出技法は、限定はされないが、両側マッチング、テンプレートマッチング、および任意の他のマッチング方法を含み得る。これらの技法は一般に、動き情報導出モードまたはＦＲＵＣモードと呼ばれ得る。したがって、いくつかの事例では、ＦＲＵＣモードと呼ばれる技法は代わりに、（たとえば、ビデオデータの新しいブロックを補間するためではなく）現在のブロックの動き情報を補間するために使用され得ることを理解されたい。
【０１７０】
[0183]いくつかの例では、複数の動き導出方法が使用されるとき、異なる導出方法に対して異なる最適化方法を有する代わりに、動き導出方法の２つ以上に対して最良の動きを見つけるためのプロセスは、探索の開始点の選択と、開始点の周りでどのように探すかということとに関して、アラインされ（be aligned）得る。たとえば、ビデオコーダは、動きベクトル候補リストを構築し、リストから初期候補を選択し、同じ探索およびマッチングの技法を使用して候補を改良することができる。この例では、双方向動き導出およびテンプレートマッチングベースの動き導出は、デコーダ側において適応的な方式で使用され得る。
【０１７１】
[0184]本開示の態様によれば、どの動き導出方法が現在のブロックをコーディングするために使用されるかを識別するために、ブロックレベルでの追加のシグナリングが導入される。たとえば、ビデオコーダは、動き情報導出が有効にされるかどうかを示すために、１つまたは複数のシンタックス要素をコーディングすることができる。ビデオコーダはまた、複数の可能性のあるモードからある特定の動き情報導出モードを示すために、１つまたは複数のシンタックス要素をコーディングすることができる。他の例では、使用されるべき動き情報導出技法は、シグナリングされないことがあるが、たとえば、現在のブロックが復号される前に利用可能な予測モードまたは他の情報に基づいて、ビデオデコーダにおいて導出されることがある。さらに他の例では、ビデオコーダは、複数の動き情報導出モードを実行し、現在のブロックをコーディングするために２つ以上の導出技法から予測の加重平均（weighted average）を決定することができる。
【０１７２】
[0185]説明を目的とする例では、ビデオデコーダ３０などのビデオデコーダはまず、（たとえば、ビットストリーム中のシンタックスに基づいて）動き情報補間モードを適用するかどうかを識別することができる。ビデオデコーダ３０は次いで、（たとえば、ビットストリーム中のシンタックスに基づいて）どの動き情報導出モードが適用されるべきかを特定することができる。一例では、複数の動き導出方法、たとえば拡張両側マッチングモードとテンプレートマッチングモードの両方が同時にサポートされるとき、どの動き導出方法が現在のブロックに対して実際に使用されているかを示すために、ビットストリームにおいてインデックス値がシグナリングされ得る。このインデックスは、オフと、拡張両側マッチングと、テンプレートマッチングとを含む、３つの値を有し得る。
【０１７３】
[0186]ＣＡＢＡＣコーディングを使用するとき、インデックスを表すために２つのビンが使用され得る。これらの２つのビンの両方が空間的なネイバーをコンテキストとして使用することがあり、またはそれらのうちの１つだけが空間的なネイバーコンテキストを使用する。代わりに、一方または両方のビンが、ＣＵ深度などの他のコーディングされる情報を、コンテキストとして使用し得る。オフに対しては「０」、拡張両側マッチングに対しては「１０」、テンプレートマッチングに対しては「１１」などの、インデックスのバイナリ化が事前に定義され得る。代わりに、インデックスのバイナリ化は、スライスヘッダにおいてシグナリングされることがあり、またはスライスタイプ、時間的レベル、もしくはＱＰ情報などのコーディングされた情報から導出されることがある。
【０１７４】
[0187]本開示の態様によれば、動き情報導出モードを示すシンタックスが、別のコーディングモードとともに含まれることがある。一例では、動き情報導出モードは、特定のマージ候補であると見なされることがあるので、マージインデックスによって示されることがある。この場合、マージ候補リストのサイズは、追加のインデックスを収容するように増やされ得る。動き情報導出モードのマージ候補インデックスは、事前に定義されることがあり、またはビットストリームにおいてシグナリングされることがある。
【０１７５】
[0188]いくつかの例では、拡張両側マッチングおよびテンプレートマッチングはともに、マージモードとともにサポートされる。そのような例では、ｍｅｒｇｅ＿ｆｌａｇが１に等しいとき、動き情報が現在のＰＵのために導出されるかどうかを示すために、新しい動き情報導出フラグがシグナリングされる。このフラグは、上および左のブロックなどのその空間的なネイバーの同じフラグを、ＣＡＢＡＣコーディングのコンテキストとして使用し得る。このフラグがオンであるとき、どの動き情報導出モード（たとえば、拡張両側マッチングまたはテンプレートマッチング）がブロックの動き情報を導出するために使用されるかを示すために、第２のフラグがシグナリングされる。動き導出がオンであるとき、現在のモードがマージモードであるときでも、マージインデックスはシグナリングされない。代わりに、または加えて、ＰＵが復号順序においてＣＵの最初のＰＵではない場合、ある特定の動き情報導出（たとえば、テンプレートマッチングなど）が許可されない。この場合、拡張両側マッチングがＰＵのために使用されるかどうかを示すためのフラグだけが、シグナリングされる必要がある。
【０１７６】
[0189]別の例では、動き情報導出モードは、たとえばＰＵレベルにおいて、ＡＭＶＰモードと組み合わされ得る。一例では、動き情報導出モードを示すために、追加のシンタックス要素（たとえば、追加のフラグ）がシグナリングされ得る。このモードがオンであるとき、ＡＭＶＰインデックスはビットストリームにおいてシグナリングされないことがある。それ以外の場合、通常のＡＭＶＰインデックスがビットストリームにおいてシグナリングされ得る。別の例では、動き情報導出モードは、ＡＭＶＰ候補リストの中の、第１のＡＭＶＰ候補などのある特定のＡＭＶＰ候補として見なされることがある。いくつかの事例では、ＡＭＶＰモードと組み合わされるとき、動きベクトルはサブＰＵレベルで導出されないことがある。
【０１７７】
[0190]他の態様によれば、ビデオコーダは最初に、現在のＣＵ内のすべてのＰＵが動き情報導出モードを使用するかどうかを示すために、（たとえば、インターコーディングされたＣＵのための）ＣＵレベルフラグを条件付きでコーディングすることができる。一例では、ＰＵレベルフラグはシグナリングされない。別の例では、ＣＵフラグが０に等しい（すなわち、すべてのＰＵがそのモードでコーディングされるのではない）とき、第１のＰＵのＰＵレベルフラグがさらに、第２のＰＵがＰＵレベルフラグを含まない間にシグナリングされる。
【０１７８】
[0191]いくつかの例では、動き情報導出モードは、特定のスライスタイプ、時間的レベル、ブロックタイプ、またはブロックサイズに対しては無効にされ得る。一例では、動き情報導出は、それらの時間的位置がすべて現在のピクチャの前または後になる参照ピクチャだけを現在のスライスが含むとき、許可されない。別の例では、動き情報導出は、２Ｎｘ２ＮではないＰＵに対しては許可されない。動き情報導出を無効にするとき、動き情報導出に関するブロックレベルのシグナリングは必要ではない。
【０１７９】
[0192]本開示の態様によれば、本明細書で説明される動き情報導出技法を有効または無効にすることは、複雑さとコーディング効率とのより良好なトレードオフ、および／またはエンコーダ／デコーダの柔軟性をもたらすように、高水準のシンタックスによって制御され得る。一例では、動き情報導出モードの使用を示すために、ＳＰＳ、ＰＰＳ、スライスヘッダ、または任意の他の高水準シンタックスヘッダにおいて、フラグがシグナリングされ得る。このコーディングモードが有効ではないことをこのフラグが示すとき、ＣＵ／ＰＵレベルフラグはビットストリームにおいてコーディングされないことがある。
【０１８０】
[0193]いくつかの事例では、加えて、または代わりに、動き情報導出の他のパラメータを示すために、高レベルのシンタックスが使用され得る。たとえば、ＰＵレベルの動きベクトルを探すために使用されるべき探索アルゴリズムのインデックスは、ＳＰＳ、ＰＰＳ、またはスライスヘッダ内のビットストリームにおいてコーディングすることができる。いくつかの事例では、サブブロックレベルの動きベクトルを探すために使用されるインデックス探索アルゴリズムは、ＳＰＳ、ＰＰＳ、またはスライスヘッダ内のビットストリームにおいてコーディングされ得る。いくつかの例では、デコーダ側において計算の複雑さを低く保つために、ＰＵレベルにおけるブロック／区分のマッチングの最大の数、サブＰＵレベルにおけるブロック／区分のマッチングの最大の数、および／または、ＰＵレベルとサブＰＵレベルの両方における合計のマッチングの数が制約され得る。いくつかの事例では、そのような最大の数は、ビットストリームにおいて事前に定義されることがあり、またはシグナリングされることがある。
【０１８１】
[0194]本開示の技法は、動き情報を導出するための様々な技法を含む。いくつかの例では、ビデオコーダは動きベクトルを含むエントリの初期リスト（開始候補リスト）を決定することができ、最良の開始点が初期リストからのエントリとして識別される。動きベクトルを含むエントリは、空間的なネイバーからの動きベクトル、時間的なネイバーからの動きベクトル、および／または他の手段によって導出された動きベクトルであり得る。代わりに、最良の開始点（または最良の開始点のインデックス）は、デコーダにシグナリングされ得る。
【０１８２】
[0195]いくつかの例では、初期リストは、空間的なネイバーまたは時間的なネイバーからの動きベクトルを含み得る。初期リストの各エントリは、１つの動きベクトルとその参照インデックスとを含む、動き情報の単予測のセットであり得る。一例では、初期リストは、別のコーディングモードにおいて使用される動き予測候補リストと同じ方法で、たとえばマージ候補リストと同じ方法で生成され得る。この場合、各マージ候補の最大で２つの動きベクトルが、初期リスト中の最大で２つのエントリを生成するために使用され得る。いくつかの事例では、初期リスト中のエントリは、別のコーディングモードにおいて使用されるリストの中の動き予測候補のサブセット、たとえばマージ候補リストのサブセットから生成され得る。
【０１８３】
[0196]別の例では、別のコーディングモードにおいて使用される動き予測候補リストの中の動きベクトルに加えて、たとえば、マージ候補リストの中の動きベクトルに加えて、追加の動きベクトルが初期リストに追加され得る。代わりに、または加えて、上のブロック、左のブロック、右上のブロック、または別のブロックなどの、現在のブロックの空間的なネイバーの動きベクトルが、初期リストに追加され得る。いくつかの事例では、異なる参照ピクチャインデックスを有するゼロ動きベクトルもリストに追加され得る。
【０１８４】
[0197]代わりに、または加えて、現在のブロックの時間的にコロケートされたブロックの動きベクトル（たとえば、現在のブロックのＴＭＶＰ）、および／または参照ピクチャの中の現在のブロックの時間的に右下のコロケートされたブロックの動きベクトルが、初期リストに追加され得る。特定の候補動きベクトルをリストに追加する前に、動きベクトルは時間的距離に基づいてスケーリングされることもされないこともある。
【０１８５】
[0198]いくつかの態様では、動きベクトルは、参照ピクチャから補間および／または外挿されることがあり、初期リストに追加されることがある。たとえば、インターピクチャをコーディングする前に、ピクチャの補間および／または外挿された動きフィールドが、片側ＭＥのような技法を用いてその参照ピクチャに基づいて生成され得る。ブロックの補間および／または外挿された動きフィールドは、ＭＶ予測のために使用されることがあり、または、動き情報導出モードのＭＶ探索において追加の開始候補として使用されることがある。補間および／または外挿された動きフィールドは、４ｘ４もしくは８ｘ８の単位で、または任意の他の事前に定義された／シグナリングされるブロックレベルで確保され（saved）、ＰＵは、複数の補間および／または外挿されたＭＶが使用され得るように複数のそのようなブロックを含み得ることに留意されたい。
【０１８６】
[0199]一例では、両方の参照リストの中の各参照ピクチャの動きフィールドは、辿られた（traversed）各々のＮｘＮブロックであり、Ｎは、４、８、もしくは１６など事前に定義されることがあり、またはシグナリングされることがある。各ブロックに対して、ブロックに関連付けられる動きが現在のピクチャ中のＮｘＮブロックを通過し、そのブロックがいずれの補間された動きも割り当てられていない場合、参照ブロックの動きは、ＴＭＶＰにおけるＭＶのスケーリングと同じ方法で現在のピクチャにスケーリングされ、スケーリングされた動きは現在のフレーム中のブロックに割り当てられる。スケーリングされたＭＶがＮｘＮブロックに割り当てられない場合、ブロックの動きは、補間された動きフィールドにおいて利用不可能であるものとしてマークされる。別の例では、現在のピクチャの中のＮｘＮブロックは、補間された動きフィールドの中の複数の動きベクトルを割り当てられ得る。
【０１８７】
[0200]いくつかの事例では、ビデオコーダは、候補リストから１つまたは複数の候補をプルーニングすることができる。プルーニングは、最良開始点選択プロセスの前に、たとえばリストの各候補のマッチングコストを計算する前に、初期リストから同一のエントリを除去するために適用され得る。
【０１８８】
[0201]いくつかの事例では、各参照リストの中の最初のピクチャが参照ピクチャとして使用されることがあり、動きベクトル候補は必要であればそれに従ってスケーリングされる。そのような場合、初期リストの各エントリの参照インデックスは、ＴＭＶＰの場合と同様に、たとえばＰＯＣ距離に基づいて動きベクトルがスケーリングされた後で、修正され得る。いくつかの事例では、各エントリの参照インデックスは１つまたは２つのピクチャに固定されることが可能であり、関連する動きベクトルはそのようなピクチャに向かってスケーリングされることが可能である。
【０１８９】
[0202]一例では、両側マッチングのために、動きベクトルと、それぞれ参照リスト０およびリスト１への動きベクトルの関連する参照インデックスとの両方を含む、動き情報のフルセットである動きベクトルペアが、初期候補リストの各エントリに基づいて取得され得る。ビデオコーダは次いで、初期リストの中のすべてのエントリから生成されるすべてのＭＶペアに対する両側マッチングを実行し、最小のマッチングコストにつながる候補を選択することができる。
【０１９０】
[0203]ＭＶペアを生成するために、ビデオコーダは、初期リストのエントリを第１の動きベクトルとして選択し、第２の動きベクトルを生成することができる。たとえば、あるエントリが現在の第１の動きベクトルＭＶAを含み、それが参照ピクチャリストＡ（Ａは０または１に等しい）の中の第１の参照ピクチャへの参照インデックス（ＰＯＣ値ＰＯＣAを有する）と関連付けられると仮定する。現在のピクチャのＰＯＣ値がＰＯＣCであると仮定すると、ビデオコーダは、それのＰＯＣ値ＰＯＣBが（２×ＰＯＣC−ＰＯＣA）に等しくなるような、参照ピクチャリストＢ（Ｂは１−Ａに等しい）からの第２の参照ピクチャを見つけるように構成され得る。参照ピクチャリストＢの中の参照ピクチャが（２×ＰＯＣC−ＰＯＣ0）に等しいＰＯＣ値を有しない場合、ビデオコーダは、ＰＯＣBがＰＯＣAに等しくなく、ＰＯＣC−ＰＯＣBの絶対値が最小であるように、リストＢの中のすべての参照ピクチャを確認することによって、第２の参照ピクチャを選択することができる。要約すると、ビデオコーダは、同じＰＯＣ距離を有する（表示順序において）現在のピクチャの他の側に位置するピクチャを選択することができる。利用可能ではない場合、ビデオコーダは、現在のピクチャまでの最小の距離を有する他の側におけるピクチャを選択することができる。すべての参照ピクチャが、現在のピクチャと比較したときにＰＯＣAを有する第１の参照と同じ時間的な側にある場合、ビデオコーダは、現在のピクチャに最も時間的に近くＰＯＣA以外のＰＯＣを有する参照を選択することができる。前述の仮定のもとで、ビデオコーダは、たとえばＴＭＶＰの場合のようにＰＯＣ差分に基づいて、第２の参照ピクチャと関連付けられる第２の動きベクトルを生成するために、第１の動きベクトルＭＶAをスケーリングすることができる。代わりに、両側ＭＶの仮定に基づく任意の技法が、第２の参照ピクチャとその動きベクトルとを生成するために使用され得る。
【０１９１】
[0204]いくつかの態様によれば、２つの開始動きベクトルは初期リストから選択され得る。これらの２つの動きベクトルの各々が、初期リストの２つのサブセット中のエントリから（最小マッチングコストの観点で）選択される。各サブサブセットは、参照ピクチャリスト０だけに対する参照インデックス、または参照ピクチャリスト１だけに対する参照インデックスと関連付けられる、動きベクトルを含む。
【０１９２】
[0205]本開示の態様によれば、ビデオコーダは、動きベクトルと関連付けられるマッチングコストに基づいて、候補からある候補を選択するように構成され得る。加えて、候補リストから候補を選択した後で、ビデオコーダは、ブロックの動き情報を導出するために候補動きベクトルを改良することができる。たとえば、候補動きベクトルは、参照ピクチャの開始点を示すために使用されることがあり、それは次いで、マッチングコストに基づいてベストマッチを見つけるために探され得る。
【０１９３】
[0206]本開示の態様によれば、たとえば、初期動きベクトル候補のベストマッチを決定するとき、および／または、初期動きベクトル候補を改良するとき、様々なマッチングコストが使用され得る。一例では、ブロックの動きを探索するとき、ＭＶコストは、ノイズによる負の影響を避けるために、マッチングコストに含められ得る。たとえば、ＭＶＲと表記される動きベクトルの改良部分（たとえば、現在のＭＶと探索中心との間の差）が、コストを計算するために使用され得る。この例では、コストはｗ×（｜ＭＶＲ［０］｜＋｜ＭＶＲ［１］｜）であることがあり、ｗは、シグナリングされ得る、または事前に定義され得る加重係数（weighting factor）であり、ＭＶＲ［０］およびＭＶＲ［１］はＭＶＲの２つの成分である。代わりに、改良された動きベクトルＭＶは、たとえばｗ×（｜ＭＶ［０］｜＋｜ＭＶ［１］｜）としてコストを計算するために使用され得る。
【０１９４】
[0207]いくつかの例では、ブロックが比較的小さいとき、たとえば４ｘ４以下であるとき、ブロックをカバーするより大きいブロック（たとえば、拡張された境界を有するブロック）が、雑音を抑制するためにマッチングコスト計算において使用され得る。たとえば、４ｘ４ブロックに対するベストマッチを探すとき、マッチングコストは、中心のブロックがその４ｘ４ブロックである８ｘ８ブロックに基づいて計算され得る。
【０１９５】
[0208]いくつかの例では、マッチングコストは、絶対差分和（ＳＡＤ：sum of absolute differences）、予測平方和（ＳＳＥ：sum of squared errors of prediction）、または絶対変換差分和（ＳＡＴＤ：sum of absolute transformed differences）などの、任意の種類の距離／コストであり得る。計算的な複雑さを下げるために、ＳＡＤ、ＳＳＥ、または他のコストが、水平方向、垂直方向、または両方の方向の分解能が下げられた状態で計算され得る。たとえば、８ｘ８ブロックに対して、ＳＡＤは奇数行のみに基づいて計算され得る。別の例では、マッチングコストは、ブロックの選択されたサブセットに基づいて計算されることがあり、たとえば、ａの中心領域のみが使用されることがある。
【０１９６】
[0209]本開示の態様によれば、ベストマッチ（たとえば、マッチングコストに基づく選択された候補）の改良プロセスは、より効率的でありながらより複雑ではない探索を実現するために、常に小さいウィンドウを使用する代わりに事前に定義されたまたはシグナリングされた探索ウィンドウ内で、たとえば２ｘ２のウィンドウ（ここで単位はピクセルであり、分数動きベクトルがウィンドウ内で探し出され得る）内で、実行され得る。この例では、探索ウィンドウの範囲（たとえば、１６ｘ１６のサイズを有する）は、ビットストリームにおいて事前に定義され、またはシグナリングされ得る。
【０１９７】
[0210]完全探索、３段階探索、ダイヤモンド探索、たとえばＬｕｒｎｇ−Ｋｕｏ  Ｌｉｕ、Ｅｐｈｒａｉｍ  Ｆｅｉｇ、「Ａ  ｂｌｏｃｋ−ｂａｓｅｄ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ  ｓｅａｒｃｈ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｂｌｏｃｋ  ｍｏｔｉｏｎ  ｅｓｔｉｍａｔｉｏｎ  ｉｎ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌ．、ｖｏｌ．  ６、ｐｐ．４１９−４２２、１９９６年８月に記述されているようなブロックベース勾配降下探索アルゴリズム（ＢＢＧＤＳ：block-based gradient descent search algorithm）、または、たとえばＪｏ  Ｙｅｗ  Ｔｈａｍ、Ｓｕｒｅｎｄｒａ  Ｒａｎｇａｎａｔｈ，  Ｍａｉｔｒｅｙａ  Ｒａｎｇａｎａｔｈ、およびＡｓｈｒａｆ  Ａｌｉ  Ｋａｓｓｉｍ、「Ａ  ｎｏｖｅｌ  ｕｎｒｅｓｔｒｉｃｔｅｄ  ｃｅｎｔｅｒ−ｂｉａｓｅｄ  ｄｉａｍｏｎｄ  ｓｅａｒｃｈ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｂｌｏｃｋ  ｍｏｔｉｏｎ  ｅｓｔｉｍａｔｉｏｎ」、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌ．、ｖｏｌ．  ８、ｐｐ．３６９−３７７、１９９８年８月に記述されているような無制約の中心バイアスダイヤモンド探索アルゴリズム（ＵＣＢＤＳ：unrestricted center-biased diamond search algorithm）などの、探索するための探索アルゴリズムが事前に定義され得る。
【０１９８】
[0211]いくつかの事例では、異なる探索技法が、シグナリングまたは事前に定義された基準に基づいて、異なる事例において使用され得る。たとえば、ＰＵ全体を探索するために、ダイヤモンド探索が使用され得る。サブＰＵを探索するために、小さいダイヤモンド探索が使用され得る。加えて、または代わりに、たとえばマッチングコストが事前に定義された閾値または適応的な閾値より低いとき、探索の間に早期停止が適用され得る。テンプレートマッチングを使用するとき、改良後の２つの参照リストの２つの動きベクトルが同じ参照ピクチャ中の同じブロックを指し示さないものとするという制約が、さらに適用され得る。
【０１９９】
[0212]上で述べられたように、本開示は、既存のＤＭＶＤプロセスのためのいくつかの最適化技法を説明する。たとえば、図１０の例に関して上で説明されたように、本技法は、双方向予測から単方向予測へと両側マッチングを拡張することを含む。両側マッチングはまた、２つの参照ピクチャの時間的位置がともに、現在のスライスの時間的位置の前または後にある（すなわち、ＰＯＣ値が現在のピクチャのＰＯＣ値より小さい、または大きい）ときに適用され得る。そのような技法は、拡張両側マッチングと本明細書では総称的に呼ばれ得る。
【０２００】
[0213]本開示の他の態様は、補間技法に関する。たとえば、本開示の態様によれば、補間技法は、複雑さを下げるために簡略化され得る。図２に関して上で述べられたように、動き探索は通常、サブピクセル精度を使用して実行される。したがって、非整数のピクセル位置に対して、補間が必要とされる。計算的な複雑さを下げるために、本開示の態様によれば、ビデオコーダは、通常の動き補償補間と比較してより短いタップ（taps）を有する補間フィルタを使用することができる。一例では、ビデオコーダは、たとえば初期候補動きベクトルを適用するとき、またはそのような動きベクトルを改良するとき、動き探索の間にバイリニア（bilinear）補間フィルタを使用することができる。別の例では、ビデオコーダは、整数ピクセル位置を使用して動き探索を最初に実行し、続いて、開始点として整数ピクセル位置のベストマッチを有する分数ピクセル位置において動き探索を実行するように構成され得る。
【０２０１】
[0214]本開示の他の技法は、サブブロックのための動き情報を導出することに関する。たとえば、本開示の態様によれば、ビデオコーダは、任意の動き導出技法に基づいて、ブロック／ＰＵを（オーバーラップされていない）サブＰＵ／サブブロックに分割することができる。ＰＵが複数のより小さいサイズのサブＰＵへと分割されるとき、ビデオコーダは、各サブＰＵの動き情報の固有のセットを導出することができる。
【０２０２】
[0215]説明を目的とする例では、３２ｘ３２のＰＵは、１６個の８ｘ８のサブＰＵに分割され得る。この例では、ビデオコーダは、８ｘ８のサブＰＵの各々の異なる参照インデックスおよび／または動きベクトルを決定することができる。他の例では、サブＰＵは他のサイズ、たとえば４ｘ４、２ｘ２、または１ｘ１を有し得る。
【０２０３】
[0216]いくつかの事例では、サブブロック／サブＰＵのサイズは、ブロック／ＰＵのサイズとは無関係に、事前に定義され固定されていることがある。他の例では、ＰＵが４分木に従って分割され得る回数を制御する、ＰＵの分割深度（depth）Ｄが定義され得る。いくつかの例では、現在のブロック／ＰＵがそれらへと分割されるべきサブブロック／サブＰＵの目標サイズを示すために、最小限のサブＰＵ／サブブロックサイズが事前に定義され、またはシグナリングされ得る。目標サイズは最小限のサブＰＵ／サブブロックサイズと、４分木構造に従って現在のブロックをＤ回分割することによって得られるサイズとのうちの、大きい方であり得る。
【０２０４】
[0217]本開示の態様によれば、ビデオコーダは、ＰＵのサブＰＵの動き情報を導出するとき、ＰＵの導出された動き情報を利用することができる。たとえば、ビデオコーダは、各サブＰＵのために、全体のブロックの動き情報を探索中心（初期探索点）として設定することによって、それぞれの固有の動き情報を探索することができる。ビデオコーダは次いで、各サブＰＵの動きを改良することができる。代わりに、各サブＰＵの探索中心は、開始点候補のリストから導出され得る。
【０２０５】
[0218]別の例では、動きベクトル候補リストは、本明細書で説明される技法のいずれかを使用して、サブＰＵのために生成され得る。ビデオコーダは次いで、探索中心（たとえば、ＰＵから導出された初期探索点）を確認した後で、リスト中の各候補を確認することができる。本開示の態様によれば、サブＰＵは、通常のブロックに適用可能であるものとして本明細書で説明される技法のいずれかを使用して、改良され得る。他の例では、上で説明された方式でベストマッチに対する動きベクトル候補リストを確認した後で、改良は、サブＰＵに対して常に、または条件付きでスキップされ得る。１つの可能性のある条件は、候補リストを確認した後でもベストマッチがＰＵの動き情報によって示される候補（たとえば、初期探索点）のままであるかどうかということであり得る。そうである場合、ビデオコーダは改良をスキップすることができる。そうではない場合、ビデオコーダは改良を実行することができる。
【０２０６】
[0219]いくつかの例では、動きベクトルのフィルタリングは、単独の（isolated）誤った動きベクトルを訂正するためにサブＰＵに対して実行され得る。たとえば、ビデオコーダは、現在のサブＰＵの動きベクトルおよび最大で４つの隣接サブＰＵの動きベクトルとともに、メジアンフィルタを使用することができる。本開示の態様によれば、変換を適用するとき、ビデオコーダは、変換がサブＰＵの境界にまたがり得るように、ＰＵ全体をブロック全体として見なすことができる。他の例では、ビデオコーダは、変換サイズがサブＰＵサイズより大きくならないように、変換を各サブＰＵに適用することができる。いくつかの事例では、テンプレートマッチングが使用されるとき、ＰＵ全体はまた、より小さいサブＰＵへとさらに分割され得る。空間的なネイバーがすべて現在のＰＵの中にあるサブＰＵについて（それらのサブＰＵのテンプレートは利用可能ではない）、ビデオコーダは、それらのサブＰＵの動きベクトルを、ＰＵ全体に対して導出された動きベクトルに設定することができる。
【０２０７】
[0220]いくつかの例では、ビデオコーダは、特定のブロックが分割されるかどうかを示す別個のシンタックス要素をコーディングすることができる。別の例では、拡張両側マッチングモードを有するすべての２Ｎｘ２Ｎブロックがさらに小さい区分へと分割され、追加のフラグはシグナリングされない。サブブロックのサイズは、事前に定義されることがあり、またはシグナリングされることがある。代わりに、サブブロックのサイズは、現在のブロックのサイズに基づき得る。たとえば、サブブロックのサイズは、２つの値のうちのより大きい方の数として導出され得る。第１の値は、事前に定義された、またはシグナリングされる最小限のサブブロックサイズ（たとえば、４ｘ４または８ｘ８など）である。第２の値は、（Ｓ＞＞ｄ）ｘ（Ｓ＞＞ｄ）などの、現在のブロックに対する相対的なサイズであり、ここでＳｘＳは現在のブロックサイズであるが、ｄは、現在のブロックがサブブロックへと分割される際に用いる４分木の深度を示すための、事前に定義された値またはシグナリングされる値である。上の例では、ＰＵという用語はブロックという用語と交換可能に使用され、サブＰＵという用語はサブブロックという用語と交換可能に使用されることを理解されたい。
【０２０８】
[0221]上で述べられたように、本明細書で説明される技法は、独立に、または組合せで使用され得る。例として、ある動き情報導出モード（たとえば、拡張両側マッチングモード、テンプレートマッチングモード、または任意の他のモード）と関連付けられる動き情報導出プロセスは３つのステップを含み得るが、第３のステップは、スライスタイプ、時間的レベル、ブロックタイプ、ブロックサイズ、またはビットストリームにおいて定義されるシンタックスに基づいて、条件付きで実行され得る。
【０２０９】
[0222]第１のステップにおいて、ビデオコーダは、現在のブロックの動き情報の単予測のセットの初期候補リストを編成する（formulate）ことができる。ビデオコーダは、たとえばマッチングコストに基づいて、最良の開始点を有する候補をリストから選択することができる。第２のステップにおいて、ビデオコーダは、現在のブロックの動き情報を導出するために、選択された候補を改良することができる。本明細書で説明されるように、この改良はマッチングコストにも基づき得る。ビデオコーダは次いで、任意選択で、本明細書で説明されるように現在のブロックをサブブロックへとさらに分割し、各サブブロックの各動きベクトルを改良することができる。最後に、ビデオコーダは、導出された動き情報を使用して、現在のブロックのために動き補償を適用することができる。分割が実行されている場合、ビデオコーダは、サブブロックごとに動き補償を適用することができる。
【０２１０】
[0223]一例では、動き情報導出モードを使用してブロックを再構築するために以下の疑似コードが使用されることがあり、動き情報は両側マッチングまたはテンプレートマッチングのいずれかによって導出される。両側マッチングが使用されるとき、ブロックはさらにサブブロックへと分割される（ここでのＭＶは参照情報を含むことに留意されたい）。
ＦＲＵＣにおいて（サイズＷｘＨの）ブロックＢを再構築する
初期リストを構築する
ｉｆ  Ｂが両側マッチングである
｛
両側マッチングの測定結果との、開始点としての初期リストにおけるベストマッチ（たとえば、両側マッチング）を見つける
ブロックＢの動きベクトルＭＶBを得るために、両側マッチングを用いて開始点に基づいてＭＶを改良する
ｆｏｒ  ブロックＢの中の各サブブロック
｛
ＭＶBを開始点として採用し、各サブブロックのＭＶを改良する
導出されたＭＶ情報を用いてサブブロックのための動き補償を行う
｝
｝
ｅｌｓｅ／／テンプレートマッチング
｛
テンプレートマッチングの測定結果との、開始点としての初期リストにおけるベストマッチ（たとえば、テンプレートマッチング）を見つける
テンプレートマッチングを用いて開始点に基づいてＭＶを改良する
｝
【０２１１】
[0224]したがって、本開示の態様によれば、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のブロック（現在符号化または復号されているブロック）の動き情報を決定するために、動き情報補間モードを決定することができる。動き情報補間モード（たとえば、両側マッチング、テンプレートマッチング、または別の技法）を使用して、ビデオエンコーダ２０またはビデオデコーダ３０は、動きベクトル候補のリストの中の最良の動きベクトル候補、たとえば、現在のブロックとよく一致する参照ブロックを識別する動きベクトルを決定することができる。ビデオエンコーダ２０またはビデオデコーダ３０は、参照ピクチャ中の探索ウィンドウを識別するために、動きベクトル候補を使用することができる。
【０２１２】
[0225]ビデオエンコーダ２０またはビデオデコーダ３０は、現在のブロックとよく一致する探索ウィンドウ中の参照ブロックに基づいて、動きベクトル候補を改良することができる。すなわち、ビデオエンコーダ２０またはビデオデコーダ３０は、現在のブロックとよく一致する探索ウィンドウ中の参照ブロックと、現在のブロックとの間の動きに基づいて、現在のブロックの新しい補間された動きベクトルを決定することができる。ビデオエンコーダ２０またはビデオデコーダ３０は次いで、補間された動きベクトルを使用して、現在のブロックのための動き補償を実行することができる。
【０２１３】
[0226]いくつかの事例では、ビデオエンコーダ２０またはビデオデコーダ３０は、予測の目的で２つ以上のサブブロックへと現在のブロックを分割することができる。その上、他の例では、ビデオエンコーダ２０またはビデオデコーダ３０は、動き情報を補間するために、より多数の、より少数の、または異なる技法の構成を実行することができる。
【０２１４】
[0227]したがって、現在のピクチャがＦＲＵＣにおいて参照ピクチャによって補間されるものと見なされ得るのと同様の方法で現在のピクチャの現在のブロックが参照ピクチャによって予測されるものと見なされ得るという仮定のもとで、本開示のいくつかの技法は、ＦＲＵＣからのいくつかの概念を利用するブロックレベルコーディングツールとして一般化され得る。一例では、動きベースのプロセスのみがブロックレベルコーディングツールのために使用される。別の例では、ピクセルベースのプロセスのみがブロックレベルコーディングツールのために使用される。別の例では、動きベースのプロセスまたはピクセルベースのプロセスのいずれかが、所与のブロックのために使用される。別の例では、ピクセルベースのプロセスと動きベースのプロセスの両方がブロックレベルコーディングツールのために使用される。別の例では、他のシンタックスは、他の時間的フレームから再使用または予測されることがあり、コーディングツリーの情報、ＳＡＯ、ＡＬＦ、ＲＱＴ情報などの、コーディングツールのために使用されることがある。
【０２１５】
[0228]図１２は、ビデオデータのブロックをコーディングするための動き情報導出モードを決定するための例示的なプロセスを示すフローチャートである。図１２の例示的なプロセスは、ビデオコーダに関して説明され、ビデオコーダは、ビデオエンコーダ２０、ビデオデコーダ３０、または別のプロセッサとして構成され得る。
【０２１６】
[0229]図１２の例では、ビデオコーダは、複数の動き導出モードからある動き導出モードを選択することができる（２００）。一般に、動き導出モードの各々は、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを含み得る。たとえば、テンプレートマッチングに関して、ビデオコーダは、参照ピクチャの中のテンプレート（たとえば、参照データの第２のセット）に対応する現在のピクチャの中のテンプレート（たとえば、参照データの第１のセット）を識別するために、動き探索を実行することができる。別の例では、両側モーショニング（motioning）に関して、ビデオコーダは、第２の参照ピクチャの中の第２の参照ブロック（たとえば、参照データの第２のセット）に対応する第１の参照ピクチャの中の参照ブロック（たとえば、参照データの第１のセット）を識別するために、動き探索を実行することができる。例示的な動き導出モードは、片側動き推定モード、両側マッチングモード、テンプレートマッチングモード、またはミラーベースモードを含み得る。
【０２１７】
[0230]いくつかの態様によれば、ビデオコーダは、ビットストリームに含まれる１つまたは複数のシンタックス要素に従って、動き情報導出モードを選択することができる。たとえば、ビデオデコーダは、ビットストリームから１つまたは複数のシンタックス要素をパースおよび復号して、シンタックスに基づいて動き情報導出モードを決定することができる。ビデオエンコーダは、複数の動き情報導出モードをテストし、最良のＲＤコストを有するモードを選択し、選択されたモードを示す１つまたは複数のシンタックス要素をビットストリームにおいて符号化することができる。
【０２１８】
[0231]ビデオコーダは、選択された動き導出モードを使用してブロックの動き情報を決定することができ、これは、選択されたモードを使用して初期動き情報を決定すること（２０２）と、初期動き情報を改良するために最適化プロセスを使用すること（２０４）とを含み得る。たとえば、ビデオコーダは、初期動き情報を決定するための候補を用いて、動きベクトル候補リストを構築することができる。本明細書で説明されるように、初期動き情報は、動き情報を改良するための開始点を提供することができる。
【０２１９】
[0232]ビデオコーダは次いで、動き情報を表すシンタックスをコーディングすることなく、決定された動き情報を使用してブロックをコーディングすることができる（２０６）。たとえば、ビデオコーダがビデオデコーダを備える事例では、ビデオデコーダは、決定された動き情報に基づいて参照ピクチャ中の参照ブロックを決定し、符号化されたビットストリームから残差データを復号し、現在のブロックを再構築するために復号された残差と決定された参照ブロックとを合成する（combine）ことができる。ビデオコーダがビデオエンコーダを備える事例では、ビデオエンコーダは、残差データの参照インデックスまたは動きベクトルをコーディングすることなく、符号化されたビットストリームの中の現在のブロックの残差データを符号化することができる。
【０２２０】
[0233]図１３は、ビデオデータのブロックをコーディングするための動きベクトルを導出するための例示的なプロセスを示すフローチャートである。図１３の例示的なプロセスは、ビデオコーダに関して説明され、ビデオコーダは、ビデオエンコーダ２０、ビデオデコーダ３０、または別のプロセッサとして構成され得る。
【０２２１】
[0234]ビデオコーダは、候補動きベクトルリストを生成することができる（２１０）。候補動きベクトルリストは、現在のブロックの動き情報を導出するために使用され得る、１つまたは複数の動きベクトル候補を含み得る。いくつかの例では、動きベクトル候補は、空間的に隣接するブロックから、時間的ブロックから、または他のロケーションから決定され得る。
【０２２２】
[0235]ビデオコーダは、動き情報を導出するためのリストから候補を決定することができる（２１２）。いくつかの例では、ビデオコーダは、特定の動き導出モードを使用して候補を決定するために、１つまたは複数のコスト計算を実行することができる。たとえば、ビデオコーダは、参照データの第１のセットおよび参照データの第２のセットのマッチングコストを決定することができ、これは、本明細書で説明されるように、それぞれの動きベクトルと関連付けられるコストを含み得る。
【０２２３】
[0236]ビデオコーダは次いで、決定された候補に基づいて、導出される動きベクトルを決定することができる（２１４）。たとえば、ビデオコーダは、動き導出モードを使用して導出される動きベクトルを決定するために、決定された候補を改良することができる。ビデオコーダは次いで、導出された動きベクトルを使用してブロックをコーディングすることができる（２１６）。たとえば、ビデオコーダがビデオデコーダを備える事例では、ビデオデコーダは、導出された動きベクトルに基づいて参照ピクチャ中の参照ブロックを決定し、符号化されたビットストリームから残差データを復号し、現在のブロックを再構築するために復号された残差と決定された参照ブロックとを合成することができる。ビデオコーダがビデオエンコーダを備える事例では、ビデオエンコーダは、導出された動きベクトルをコーディングすることなく、符号化されたビットストリームの中の現在のブロックの残差データを符号化することができる。
【０２２４】
[0237]図１４は、ビデオデータのブロックのサブブロックの動き情報を導出するための例示的なプロセスを示すフローチャートである。図１４の例示的なプロセスは、ビデオコーダに関して説明され、ビデオコーダは、ビデオエンコーダ２０、ビデオデコーダ３０、または別のプロセッサとして構成され得る。
【０２２５】
[0238]ビデオコーダは、現在のブロックの動き情報を導出することができる（２２０）。いくつかの例では、ビデオコーダは、動き情報を導出するために、本明細書で説明された動き情報導出技法の任意の組合せを使用することができる。たとえば、ビデオコーダは、現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行するために、本明細書で説明された技法のいずれかを使用することができる（たとえば、テンプレートマッチング、両側マッチングなど）。
【０２２６】
[0239]本開示の態様によれば、ビデオコーダはまた、ブロックを複数のサブブロックに分割することができる（２２２）。ビデオコーダは、それぞれのサブブロックの動き情報を別々に導出することができ、これは、各々のそれぞれのサブブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備える（２２４）。やはり、ビデオコーダは、たとえば、テンプレートマッチング、両側マッチングなどの動き情報を導出するために、本明細書で説明される任意の技法を使用することができる。たとえば、ビデオコーダは、サブブロックの各々の動き情報を導出するための開始点として、導出された動きベクトルを使用することができ、本明細書で説明された動き情報導出技法の任意の組合せを使用して、導出された動き情報をさらに改良することができる。
【０２２７】
[0240]ビデオコーダは次いで、動き情報を表すシンタックス要素をコーディングすることなく、導出された動き情報に基づいてサブブロックの各々をコーディングすることができる（２２６）。たとえば、ビデオコーダがビデオデコーダを備える事例では、ビデオデコーダは、決定された動き情報に基づいて各サブブロックの参照ピクチャ中の参照ブロックを決定し、符号化されたビットストリームから各サブブロックの残差データを復号し、各サブブロックを再構築するために復号された残差と決定された参照ブロックとを合成することができる。ビデオコーダがビデオエンコーダを備える事例では、ビデオエンコーダは、残差データの参照インデックスまたは動きベクトルをコーディングすることなく、符号化されたビットストリームの中の各サブブロックの残差データを符号化することができる。
【０２２８】
[0241]例に応じて、本明細書で説明された技法のうちのいずれかのいくつかのアクト（acts）またはイベントが、異なるシーケンスで実行されることがあり、追加され、マージされ、または完全に除外され得る（たとえば、すべての説明されたアクトまたはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、アクトまたはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて同時に実行され得る。
【０２２９】
[0242]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２３０】
[0243]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０２３１】
[0244]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等の集積された論理回路もしくは個別の論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内で与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０２３２】
[0245]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられ得るか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０２３３】
[0246]様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを処理する方法であって、
ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、前記動き情報が参照ビデオデータに対する前記現在のブロックの動きを示す、
前記決定された候補動きベクトルに基づいて、前記現在のブロックの導出される動きベクトルを決定することと、ここにおいて、前記導出される動きベクトルを決定することが、前記現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備える、
を備える、方法。
［Ｃ２］
前記候補動きベクトルを決定することが、複数のエントリを備える候補リストから前記候補動きベクトルを選択することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記候補リストを生成することをさらに備え、ここにおいて、前記候補リストの各エントリが、動きベクトルと、前記動きベクトルの関連する参照インデックスとを備える、Ｃ２に記載の方法。
［Ｃ４］
前記候補リストを生成することが、前記現在のブロックの空間的なネイバーから１つまたは複数の動きベクトルを識別すること、前記現在のブロックの時間的なネイバーから１つまたは複数の動きベクトルを識別すること、または動きベクトル導出技法を使用して動きベクトルを導出することを備える、Ｃ３に記載の方法。
［Ｃ５］
前記候補リストを生成することが、前記候補リストとマージモード動きベクトル候補リストとを同じ方式で生成することを備える、Ｃ３に記載の方法。
［Ｃ６］
前記候補リストを生成することが、前記現在のブロックを含む前記ピクチャの動きフィールドを外挿または補間することと、前記外挿または補間された動きフィールドから１つまたは複数の候補動きベクトルを決定することとを備える、Ｃ３に記載の方法。
［Ｃ７］
前記候補リストを生成することが、前記候補リストから複製の候補動きベクトルをプルーニングすることを備える、Ｃ３に記載の方法。
［Ｃ８］
前記現在のブロックの参照ピクチャリストの固定された参照ピクチャを使用して前記動きベクトル候補をスケーリングすることをさらに備え、ここにおいて、前記固定された参照ピクチャが、前記現在のブロックの前記参照ピクチャリスト中の初期ピクチャである、Ｃ３に記載の方法。
［Ｃ９］
前記候補動きベクトルを選択することが、参照データの前記第１のセットと参照データの前記第２のセットとの間のベストマッチを示す前記候補動きベクトルを選択することを備える、Ｃ２に記載の方法。
［Ｃ１０］
前記候補動きベクトルを選択することが、前記候補動きベクトルと関連付けられる動きベクトルコストに基づいて前記候補動きベクトルを選択することを備え、ここにおいて、前記動きベクトルコストが、前記候補動きベクトルと、前記導出された動きベクトルを決定するために探索されている参照ピクチャの探索エリアの中心との間の差分を備える、Ｃ２に記載の方法。
［Ｃ１１］
前記候補リストから各候補動きベクトルのための動きベクトルペアを取得することと、
それぞれの動きベクトルペアのために両側マッチングプロセスを実行することと、
をさらに備え、
前記１つまたは複数の候補動きベクトルを選択することが、前記両側マッチングプロセスから１つまたは複数の動きベクトルを選択することを備える、Ｃ２に記載の方法。
［Ｃ１２］
各候補動きベクトルのための前記動きベクトルペアを取得することが、前記それぞれの候補動きベクトルから前記ペアの第１の動きベクトルを決定することと、前記現在のブロックの参照ピクチャリストの参照ピクチャに基づいて、前記ペアの第２の動きベクトルを決定することと、を備える、Ｃ１１に記載の方法。
［Ｃ１３］
前記決定された候補動きベクトルを改良することが、
前記候補動きベクトルに基づいて、参照ピクチャ中の探索ウィンドウを決定することと、
前記決定された探索ウィンドウ内の前記動き情報導出プロセスを使用して、ベストマッチ参照データを探すことと、
前記ベストマッチ参照データに基づいて、前記現在のブロックの前記導出された動きベクトルを決定することと、
を備える、Ｃ１に記載の方法。
［Ｃ１４］
前記ベストマッチを探すことが、完全探索、３段階探索、ダイヤモンド探索、ブロックベース勾配降下探索、または無制約の中心バイアスダイヤモンド探索のうちの１つまたは複数を実行することを備える、Ｃ１３に記載の方法。
［Ｃ１５］
ベストマッチ参照データを探すことが、前記ベストマッチ参照データと関連付けられる動きベクトルの動きベクトルコストを決定することを備える、Ｃ１３に記載の方法。
［Ｃ１６］
前記導出された動きベクトルを使用してビデオデータの前記現在のブロックを復号することをさらに備え、ここにおいて、前記現在のブロックを復号することが、
前記導出された動きベクトルに基づいて参照ピクチャの中の参照ブロックを決定することと、
符号化されたビットストリームから残差データを復号することと、
前記現在のブロックを再構築するために、前記復号された残差と前記決定された参照ブロックとを合成することと、
を備える、Ｃ１に記載の方法。
［Ｃ１７］
前記現在のブロックを符号化することをさらに備え、ここにおいて、前記現在のブロックを符号化することが、符号化されたビットストリームの中の前記現在のブロックの残差データを符号化することを備え、前記符号化されたビットストリームが、前記導出された動きベクトルを示すデータを含まない、Ｃ１に記載の方法。
［Ｃ１８］
ビデオデータの前記現在のブロックの動き情報を導出するための候補動きベクトルの初期リストを生成することをさらに備え、
前記候補動きベクトルを決定することが、前記候補動きベクトルと関連付けられるマッチングコストに基づいて、前記初期リストから前記候補動きベクトルを選択することを備え、
前記候補動きベクトルを改良することが、前記候補動きベクトルによって示される探索ウィンドウ内で前記動き情報導出プロセスを使用してベストマッチ参照データを探すことを備え、
前記現在のブロックの前記導出された動きベクトルを決定することが、前記ベストマッチ参照データに基づいて前記導出された動きベクトルを決定することを備える、Ｃ１に記載の方法。
［Ｃ１９］
ビデオデータを処理するためのデバイスであって、
ビデオデータの現在のブロックを記憶するように構成されるメモリと、
１つまたは複数のプロセッサと、
を備え、前記１つまたは複数のプロセッサが、
ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、前記動き情報が参照ビデオデータに対する前記現在のブロックの動きを示す、
前記決定された候補動きベクトルに基づいて、前記現在のブロックの導出される動きベクトルを決定することと、ここにおいて、前記導出される動きベクトルを決定することが、前記現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行することを備える、
を行うように構成される、デバイス。
［Ｃ２０］
前記候補動きベクトルを決定するために、前記１つまたは複数のプロセッサが、複数のエントリを備える候補リストから前記候補動きベクトルを選択するように構成される、Ｃ１９に記載のデバイス。
［Ｃ２１］
前記１つまたは複数のプロセッサがさらに前記候補リストを生成するように構成され、ここにおいて、前記候補リストの各エントリが、動きベクトルと、前記動きベクトルの関連する参照インデックスとを備える、Ｃ２０に記載のデバイス。
［Ｃ２２］
前記候補リストを生成するために、前記１つまたは複数のプロセッサが、前記現在のブロックの空間的なネイバーから１つまたは複数の動きベクトルを識別すること、前記現在のブロックの時間的なネイバーから１つまたは複数の動きベクトルを識別すること、または動きベクトル導出技法を使用して動きベクトルを導出すること、を行うように構成される、Ｃ２１に記載のデバイス。
［Ｃ２３］
前記候補リストを生成するために、前記１つまたは複数のプロセッサが、前記候補リストとマージモード動きベクトル候補リストとを同じ方式で生成するように構成される、Ｃ２１に記載のデバイス。
［Ｃ２４］
前記候補リストを生成するために、前記１つまたは複数のプロセッサが、前記現在のブロックを含む前記ピクチャの動きフィールドを外挿または補間することと、前記外挿または補間された動きフィールドから１つまたは複数の候補動きベクトルを決定することと、を行うように構成される、Ｃ２１に記載のデバイス。
［Ｃ２５］
前記候補リストを生成するために、前記１つまたは複数のプロセッサが、前記候補リストから複製の候補動きベクトルをプルーニングするように構成される、Ｃ２１に記載のデバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサがさらに、前記現在のブロックの参照ピクチャリストの固定された参照ピクチャを使用して前記動きベクトル候補をスケーリングするように構成され、ここにおいて、前記固定された参照ピクチャが、前記現在のブロックの前記参照ピクチャリスト中の初期ピクチャである、Ｃ２１に記載のデバイス。
［Ｃ２７］
前記候補動きベクトルを選択するために、前記１つまたは複数のプロセッサが、参照データの前記第１のセットと参照データの前記第２のセットとの間のベストマッチを示す前記候補動きベクトルを選択するように構成される、Ｃ２０に記載のデバイス。
［Ｃ２８］
前記候補動きベクトルを選択するために、前記１つまたは複数のプロセッサが、前記候補動きベクトルと関連付けられる動きベクトルコストに基づいて前記候補動きベクトルを選択するように構成され、ここにおいて、前記動きベクトルコストが、前記候補動きベクトルと、前記導出された動きベクトルを決定するために探索されている参照ピクチャの探索エリアの中心との間の差分を備える、Ｃ２０に記載のデバイス。
［Ｃ２９］
前記１つまたは複数のプロセッサがさらに、
前記候補リストから各候補動きベクトルのための動きベクトルペアを取得することと、
それぞれの動きベクトルペアのために両側マッチングプロセスを実行することと、
を行うように構成され、
前記１つまたは複数の候補動きベクトルを選択するために、前記１つまたは複数のプロセッサが、前記両側マッチングプロセスから１つまたは複数の動きベクトルを選択するように構成される、Ｃ２０に記載のデバイス。
［Ｃ３０］
各候補動きベクトルのための前記動きベクトルペアを取得するために、前記１つまたは複数のプロセッサが、前記それぞれの候補動きベクトルから前記ペアの第１の動きベクトルを決定することと、前記現在のブロックの参照ピクチャリストの参照ピクチャに基づいて、前記ペアの第２の動きベクトルを決定することと、を行うように構成される、Ｃ２９に記載のデバイス。
［Ｃ３１］
前記決定された候補動きベクトルを改良するために、前記１つまたは複数のプロセッサが、
前記候補動きベクトルに基づいて、参照ピクチャ中の探索ウィンドウを決定することと、
前記決定された探索ウィンドウ内の前記動き情報導出プロセスを使用して、ベストマッチ参照データを探すことと、
前記ベストマッチ参照データに基づいて、前記現在のブロックの前記導出された動きベクトルを決定することと、
を行うように構成される、Ｃ１９に記載のデバイス。
［Ｃ３２］
前記ベストマッチを探すために、前記１つまたは複数のプロセッサが、完全探索、３段階探索、ダイヤモンド探索、ブロックベース勾配降下探索、または無制約の中心バイアスダイヤモンド探索のうちの１つまたは複数を実行するように構成される、Ｃ３１に記載のデバイス。
［Ｃ３３］
ベストマッチ参照データを探すために、前記１つまたは複数のプロセッサが、前記ベストマッチ参照データと関連付けられる動きベクトルの動きベクトルコストを決定するように構成される、Ｃ３１に記載のデバイス。
［Ｃ３４］
前記１つまたは複数のプロセッサがさらに、前記導出された動きベクトルを使用してビデオデータの前記現在のブロックを復号するように構成され、ここにおいて、前記現在のブロックを復号するために、前記１つまたは複数のプロセッサが、
前記導出された動きベクトルに基づいて参照ピクチャの中の参照ブロックを決定することと、
符号化されたビットストリームから残差データを復号することと、
前記現在のブロックを再構築するために、前記復号された残差と前記決定された参照ブロックとを合成することと、
を行うように構成される、Ｃ１９に記載のデバイス。
［Ｃ３５］
前記復号されたブロックを表示するように構成されるディスプレイをさらに備える、Ｃ３４に記載のデバイス。
［Ｃ３６］
前記１つまたは複数のプロセッサがさらに前記現在のブロックを符号化するように構成され、ここにおいて、前記現在のブロックを符号化するために、前記１つまたは複数のプロセッサが、符号化されたビットストリームの中の前記現在のブロックの残差データを符号化するように構成され、前記符号化されたビットストリームが、前記導出された動きベクトルを示すデータを含まない、Ｃ１９に記載のデバイス。
［Ｃ３７］
ビデオデータの前記ブロックを含むピクチャをキャプチャするように構成されるカメラをさらに備える、Ｃ３６に記載のデバイス。
［Ｃ３８］
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、Ｃ１９に記載のデバイス。
［Ｃ３９］
前記１つまたは複数のプロセッサがさらに、
ビデオデータの前記現在のブロックの動き情報を導出するための候補動きベクトルの初期リストを生成するように構成され、
前記候補動きベクトルを決定するために、前記１つまたは複数のプロセッサが、前記候補動きベクトルと関連付けられるマッチングコストに基づいて、前記初期リストから前記候補動きベクトルを選択するように構成され、
前記候補動きベクトルを改良するために、前記１つまたは複数のプロセッサが、前記候補動きベクトルによって示される探索ウィンドウ内で前記動き情報導出プロセスを使用してベストマッチ参照データを探すように構成され、
前記現在のブロックの前記導出された動きベクトルを決定するために、前記１つまたは複数のプロセッサが、前記ベストマッチ参照データに基づいて前記導出された動きベクトルを決定するように構成される、Ｃ１９に記載のデバイス。
［Ｃ４０］
ビデオデータを処理するための装置であって、
ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定するための手段と、ここにおいて、前記動き情報が参照ビデオデータに対する前記現在のブロックの動きを示す、
前記決定された候補動きベクトルに基づいて、前記現在のブロックの導出される動きベクトルを決定するための手段と、ここにおいて、前記導出される動きベクトルを決定するための前記手段が、前記現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行するための手段を備える、
を備える、装置。
［Ｃ４１］
実行されると、１つまたは複数のプロセッサに、
ビデオデータの現在のブロックの動き情報を導出するための候補動きベクトルを決定することと、ここにおいて、前記動き情報が参照ビデオデータに対する前記現在のブロックの動きを示す、
前記決定された候補動きベクトルに基づいて、前記現在のブロックの導出される動きベクトルを決定することと、
を行わせる命令を記憶している、非一時的コンピュータ可読媒体であって、
前記導出される動きベクトルを決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記現在のブロックの外側の参照データの第２のセットに対応する参照データの第１のセットに対する動き探索を実行させる、非一時的コンピュータ可読媒体。
【図１】
0006740243.tif 000002
【図２】
0006740243.tif 000003
【図３】
0006740243.tif 000004
【図４Ａ】
0006740243.tif 000005
【図４Ｂ】
0006740243.tif 000006
【図５Ａ】
0006740243.tif 000007
【図５Ｂ】
0006740243.tif 000008
【図６】
0006740243.tif 000009
【図７】
0006740243.tif 000010
【図８】
0006740243.tif 000011
【図９】
0006740243.tif 000012
【図１０】
0006740243.tif 000013
【図１１】
0006740243.tif 000014
【図１２】
0006740243.tif 000015
【図１３】
0006740243.tif 000016
【図１４】
0006740243.tif 000017