"ビデオデータを符号化する方法であって、ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、を備える、方法。前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照フレームを参照する、請求項1に記載の方法。前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項1に記載の方法。前記候補部分は前記現在部分に隣接する、請求項3に記載の方法。前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングすることは、ゼロの前記動きベクトル差分を示すフラグをシグナリングすることを備える、請求項1に記載の方法。前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを備える、請求項1に記載の方法。前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすること、をさらに備える、請求項1に記載の方法。ビデオデータを復号する方法であって、ビデオフレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、前記候補部分に関連する候補動きベクトルを取り出すことと、前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、を備える、方法。前記現在部分のビデオデータをエントロピー復号することと、残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、をさらに備える、請求項8に記載の方法。前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことをさらに備え、動き補償を実行することは、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用することをも備える、請求項8に記載の方法。参照ビデオフレームを識別する参照インデックスを受信することと、前記候補部分に関連する動き予測方向を取り出すことと、をさらに備え、動き補償を実行することは、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用することを備える、請求項8に記載の方法。前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することは、前記候補部分に関連する前記候補動きベクトルをコピーすることを備える、請求項8に記載の方法。ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、前記現在動きベクトルと前記候補動きベクトルのそれぞれの間の動きベクトル差分を計算することと、前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、を行うように構成されたビデオエンコーダを備える装置。前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項13に記載の装置。前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項13に記載の装置。前記候補部分は前記現在部分に隣接する、請求項15に記載の方法。前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記ビデオエンコーダは、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングするように構成された、請求項13に記載の装置。前記ビデオエンコーダは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択するようにさらに構成された、請求項13に記載の装置。前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記ビデオエンコーダは、前記選択された候補動きベクトルに関連する参照ビデオフレームを識別する参照インデックスをシグナリングするようにさらに構成された、請求項13に記載の装置。ビデオフレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、前記候補部分に関連する候補動きベクトルを取り出すことと、前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、を行うように構成されたビデオデコーダを備える、装置。前記ビデオデコーダは、前記現在部分のビデオデータをエントロピー復号することと、残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、を行うようにさらに構成された、請求項20に記載の装置。前記ビデオデコーダは、前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、を行うようにさらに構成された、請求項20に記載の装置。前記ビデオデコーダは、参照ビデオフレームを識別する参照インデックスを受信することと、前記候補部分に関連する動き予測方向を取り出すことと、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとをも使用して動き補償を実行することと、を行うようにさらに構成された、請求項20に記載の装置。前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記ビデオデコーダは、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定するようにさらに構成された、請求項20に記載の装置。ビデオデータを符号化するように構成された装置であって、ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定する手段と、現在ビデオフレームの現在部分のための現在動きベクトルを決定するための手段と、前記現在動きベクトルは参照フレームの部分を識別し、前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算する手段と、前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する手段と、前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングする手段と、前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングする手段と、を備える、装置。前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項25に記載の装置。前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項25に記載の装置。前記候補部分は前記現在部分に隣接する、請求項27に記載の方法。前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングする前記手段は、ゼロの前記動きベクトル差分を示すフラグをシグナリングする手段を備える、請求項25に記載の装置。前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する前記手段は、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択する手段を備える、請求項25に記載の装置。前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングする手段をさらに備える、請求項25に記載の装置。ビデオデータを復号するように構成された装置であって、ビデオフレームの候補部分を識別するインデックスを受信する手段と、動きベクトル差分を受信する手段と、前記候補部分に関連する候補動きベクトルを取り出す手段と、前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定する手段と、予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行する手段と、を備える、装置。前記現在部分のビデオデータをエントロピー復号する手段と、残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換する手段と、復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成する手段と、をさらに備える、請求項32に記載の装置。前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出す手段をさらに備え、動き補償を実行する前記手段は、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用する手段をも備える、請求項32に記載の装置。参照ビデオフレームを識別する参照インデックスを受信する手段と、前記候補部分に関連する動き予測方向を取り出す手段と、をさらに備え、動き補償を実行する前記手段は、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用する手段をも備える、請求項32に記載の装置。前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定する前記手段は、前記候補部分に関連する前記候補動きベクトルをコピーする手段を備える、請求項32に記載の装置。実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項37に記載のコンピュータプログラム製品。前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項37に記載のコンピュータプログラム製品。前記候補部分は前記現在部分に隣接する、請求項39に記載のコンピュータプログラム製品。前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記コンピュータプログラム製品は、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングすることをプロセッサに行わせる命令をさらに含む、請求項37に記載のコンピュータプログラム製品。最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することをプロセッサに行わせる命令をさらに含む、請求項37に記載のコンピュータプログラム製品。前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記コンピュータプログラム製品は、前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすることをプロセッサに行わせる命令をさらに含む、請求項37に記載のコンピュータプログラム製品。実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、ビデオフレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、前記候補部分に関連する候補動きベクトルを取り出すことと、前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。前記現在部分のビデオデータをエントロピー復号することと、残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、をプロセッサに行わせる命令をさらに含む、請求項44に記載のコンピュータプログラム製品。前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、をプロセッサに行わせる命令をさらに含む、請求項44に記載のコンピュータプログラム製品。参照ビデオフレームを識別する参照インデックスを受信することと、前記候補部分に関連する動き予測方向を取り出すことと、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用して動き補償を実行することと、をプロセッサに行わせる命令をさらに含む、請求項44に記載のコンピュータプログラム製品。前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することをプロセッサに行わせる命令をさらに含む、請求項44に記載のコンピュータプログラム製品。0021概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、ビデオデータをインターモードコーディングするすなわち、他のフレームのブロックに対してコーディングするときに動き推定および動き補償を実行するための技法について説明する。特に、本開示は、現在ブロックをコーディングするときに、隣接ブロックから予測方向と参照フレームインデックスとをコピーすることを提案する。さらに、本開示は、よりフレキシブルで効率的なコーディングを可能にするために、現在ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の動きベクトル差分を使用することを提案する。動きベクトル全体の代わりに動きベクトル差分を送ることにより、シグナリングされるビットがより少なくなり得る。さらに、予測方向と参照フレームインデックスとをコピーすることとともに、動きベクトル差分を使用することにより、すでに復号された予測シンタックスの効率的な再利用を実現しながら、現在ブロックの動きベクトルのより正確な再生が実現される。0022デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的フレーム内予測および/または時間的フレーム間予測技法を適用し得る。0023一例として、JointCooperativeTeamforVideoCodingJCT-VCによって現在開発中の高効率ビデオコーディングHEVC規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニットCU:codingunitは、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。CUは、通常、Yとして示されるルミナンス成分と、UおよびVとして示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるUおよびV成分のサイズは、Y成分のサイズと同じであるかまたはそれとは異なり得る。CUは、一般に方形であり、たとえば、ITU-TH.264などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のHEVC規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、H.264または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリproprietaryビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。0024HEVCの規格化の取り組みは、HEVCテストモデルHM:HEVCTestModelと呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU-TH.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは34個ものイントラ予測符号化モードを提供する。0025HMによれば、CUは、1つまたは複数の予測ユニットPU:predictionunitおよび/または1つまたは複数の変換ユニットTU:transformunitを含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大CUである最大コーディングユニットLCU:largestcodingunitを定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはさらにサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニットSCU:smallestcodingunitをも定義し得る。本開示ではまた、CU、PU、またはTUのいずれかを指すためにブロックまたは部分という用語を使用する。概して、部分は、ビデオフレームの任意のサブセットを指し得る。0026LCUは4分木データ構造に関連付けられ得る。図1Aは、4分木分割の概念図である。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しなくても、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。0027その上、リーフCUのTUもそれぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。本開示では、LCUがどのように区分されるかを示す4分木をCU4分木と呼び、リーフCUがどのようにTUに区分されるかを示す4分木をTU4分木と呼ぶ。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してLCUに対応する。分割されないTU4分木のTUはリーフTUと呼ばれる。0028リーフCUは、1つまたは複数の予測ユニットPUを含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含み得る。たとえば、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度たとえば、1/4ピクセル精度もしくは1/8ピクセル精度、動きベクトルがポイントする参照フレーム、および/または動きベクトルの参照リストたとえば、リスト0もしくはリスト1を記述し得る。1つまたは複数のPUを定義するリーフCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、PUは、以下で説明するリーフ変換ユニットと同じように扱われ得る。0029ビデオフレーム間の動き推定および補償を伴うインター予測では、追加のタイプの分割が提案されている。この追加のタイプのPU分割は、幾何学的分割または区分と呼ばれ、厳密に水平および/または垂直でない動き境界を識別することを可能にする。幾何学的分割の概念図を図1Bに示す。幾何学的分割では、サブCUは、θおよびρの関数として定義された直線によって2つのパーティション予測ユニットPUと呼ばれることもあるに分割される。θは、x軸から測定され、中心0,0から延びるパーティション線に直角な線の角度を定義し、ρは、パーティション線までのこの線の距離または長さを定義する。0030実行される分割のタイプにかかわらず、エンコーダは、サブCUを分割した後に形成される得られた各部分たとえば、PUについて動きベクトルを決定するために、動き推定と通常呼ばれるプロセスを実行し得る。エンコーダは、一例として、エンコーダが時間的に後続のあるいは将来の参照フレーム中の各部分について探索する、参照フレーム中の動き探索と呼ばれ得るものを実行することによってこれらの動きベクトルを決定する。現在部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在部分の現在動きベクトルを、現在部分から参照フレーム中の一致する部分までのすなわち、現在部分の中心から一致する部分の中心までのロケーションの差分として決定する。0031いくつかの従来の例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。ただし、動きベクトル全体をシグナリングすると、動きベクトルは一般に多数のビットによって表されるので、コーディングがあまり効率的でなくなることがある。0032いくつかの事例では、動きベクトル全体をシグナリングするのではなく、エンコーダは、各パーティションについて動きベクトルを予測し得る。この動きベクトル予測を実行する際に、エンコーダは、現在部分と同じフレーム中の空間的に隣接するPUについて決定される候補動きベクトルのセット、あるいは別の参照フレーム中のコロケートPUについて決定される候補動きベクトルを選択し得る。エンコーダは、シグナリングにおける複雑さおよびビットレートを低減するために、動きベクトル全体をシグナリングするのではなく動きベクトル予測を実行し得る。0033従来では、動きベクトル予測の2つの異なるモードまたはタイプが使用される。一方のモードはマージモードと呼ばれる。他方のモードは適応動きベクトル予測AMVP:adaptivemotionvectorpredictionと呼ばれる。マージモードでは、エンコーダは、フレームの現在部分のための選択された候補動きベクトルから、動きベクトルと、所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する参照インデックスと、すなわち、参照フレームが時間的に現在フレームに先行するかまたは後続するかに関して、参照ピクチャリストを識別する動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、選択された候補動きベクトルを有する候補部分を識別するインデックスをビットストリーム中でシグナリングすることによって達成される。したがって、マージモードでは、予測シンタックスは、モードこの場合はマージモードを識別するフラグと、候補部分のロケーションを識別するインデックスとを含み得る。いくつかの事例では、候補部分は、現在部分に関する因果的部分になる。すなわち、候補部分は、デコーダによってすでに復号されていることになる。したがって、デコーダは、候補部分のための動きベクトル、参照インデックス、および動き予測方向をすでに受信および/または決定している。したがって、デコーダは、単に、メモリから、候補部分に関連する動きベクトル、参照インデックス、および動き予測方向を取り出し、現在部分についてこれらの値をコピーし得る。0034AMVPでは、エンコーダは、候補部分から動きベクトルのみをコピーするようにビットストリームシグナリングを通してデコーダに命令し、参照フレームおよび予測方向を別々にシグナリングする。AMVPでは、コピーされるべき動きベクトルは、動きベクトル差分MVD:motionvectordifferenceを送ることによってシグナリングされ得る。MVDは、現在部分の現在動きベクトルと、候補部分の候補動きベクトルとの間の差分である。このように、デコーダは、現在動きベクトルのために候補動きベクトルの厳密なコピーを使用する必要はないが、むしろ、現在動きベクトルに値が近接した候補動きベクトルを使用し、現在動きベクトルを再生するためにMVDを加算し得る。たいていの状況では、MVDは、シグナリングするために現在動きベクトル全体よりも少ないビットを必要とする。したがって、AVMPは、動きベクトル全体を送ることに勝るコーディング効率を維持しながら、現在動きベクトルをより正確にシグナリングすることを可能にする。対照的に、マージモードはMVDの指定に対応しておらず、したがって、マージモードは、シグナリング効率の増加すなわち、ビットの低減のために動きベクトルシグナリングの精度を犠牲にする。AVMPの予測シンタックスは、モードこの場合はAMVPのフラグと、候補部分のインデックスと、現在動きベクトルと候補部分の候補動きベクトルとの間のMVDと、参照インデックスと、動き予測方向とを含み得る。0035部分の各々について動きベクトルを決定するために動き推定が実行されると、エンコーダは、動き探索が実行された場合は参照フレーム中の一致する部分または動きベクトル予測が実行された場合は予測動きベクトルによって識別される参照フレームの部分を現在部分と比較する。この比較は、一般に、現在部分から参照フレーム中の参照サンプルと通常呼ばれる部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から周波数領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換DCTを適用する。エンコーダは、残差データが全体としてではなく得られた変換係数が変換後に符号化されるだけで済むように残差データをさらに圧縮するために、この変換を実行する。0036一般に、得られた変換係数は、特に変換係数が最初に量子化される丸められる場合、ランレングス符号化を可能にする方法で一緒にグループ化される。エンコーダは、量子化変換係数についてこのランレングス符号化を実行し、次いで、ランレングスコーディングされた量子化変換係数をさらに圧縮するために統計的ロスレスまたはいわゆるエントロピー符号化を実行する。0037ロスレス統計的コーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。このビットストリームはまた、いくつかの事例では、たとえば、動きベクトル予測が実行されたかどうかと、動きベクトルモードと、動きベクトル予測子MVP:motionvectorpredictorインデックスすなわち、選択された動きベクトルをもつ候補部分のインデックスとを指定するいくつかの予測シンタックス要素を含む。MVPインデックスは、それのシンタックス要素変数名mvp_idxとして呼ばれることもある。0038高効率ビデオコーディングHEVCと呼ばれる、ITU-T/ISO/IECJointCollaborativeTeamonVideoCodingJCT-VCによって採用のために提案されている現在の設計では、エンコーダは、上記で説明した1AMVPおよび2マージモードを含む、現在部分の動きベクトルをそれによって予測するためのいくつかの動きベクトル予測モードを実行する。これらの2つのモードは同様であるが、AMVPは、MVD、動き予測方向および参照インデックスを定義することが可能であることに関してより多くのフレキシビリティを提供し、マージモードは、単にこの動きベクトル情報すなわち、動きベクトル、動き予測方向、および参照インデックスをコピーし、MVDの精度の増加に対応しない。別の違いは、AMVPは、参照フレーム中のコロケートPUからの時間的候補動きベクトルと、現在フレーム中の近接または隣接するPUからの動きベクトルとを考慮するが、マージモードは、現在フレーム中の近接または隣接するPUからの動きベクトルのみを考慮することである。0039これらの動きベクトル予測モードの両方は、動き情報のシグナリングを可能にするために提供される。AMVPは、動きベクトル自体ではなく、MVDのみが指定されることを必要とすることによって、この動き情報をシグナリングすることに関連するコストを低減する。マージモードは、現在部分のためにコピーするために、隣接する空間的候補動きベクトルのうちのどの1つが選択されたかのみをシグナリングすることによって、これらの同じシグナリングコストをなお一層低減する。しかし、マージモードは、現在部分が現在部分の動きベクトルをそれから継承する隣接部分のみを指定することを可能にし、AMVPによって提供されるフレキシビリティを可能にしないという点で、限定的である。0040本開示に記載する技法によれば、動きベクトルと他の予測シンタックスとをコーディングするための追加の動きベクトル予測モードが提示される。例示のために、エンコーダは、1つまたは複数の候補部分の各々のための候補動きベクトルを決定し得る。一例では、候補部分は、現在部分と同じフレーム中にあり得る。候補部分は現在部分に隣接する部分であり得る。特に、候補部分は、現在部分に対して因果的である隣接部分であり得る。すなわち、隣接する候補部分は、現在ブロックを符号化するときにエンコーダにおいてすでに符号化されていることがある。逆に、デコーダにおいて、隣接する候補部分は、現在ブロックを復号するときにすでに復号されている。候補部分のロケーションにかかわらず、エンコーダは、次いで、現在フレームの現在動きベクトルを決定する。エンコーダは、参照フレーム中の一致する部分についての全動き探索を採用することによってこの現在動きベクトルを決定し得る。0041候補動きベクトルと現在動きベクトルとを決定した後に、エンコーダは、動きベクトル差分MVDを決定するために、現在動きベクトルを隣接動きベクトルの各々と比較する。所定のアルゴリズムに従って、エンコーダは、次いで、候補動きベクトルのうちの1つと、関連するMVCとを選択する。概して、候補動きベクトルを選択するアルゴリズムは、最少のビットで表され得るMVDを生成する候補動きベクトルを選択することを試み得る。すなわち、エンコーダは、候補動きベクトルの対応するMVDが、他の決定される動きベクトル差分のすべてと比較してシグナリングすべきビットに関して最小となるように、候補動きベクトルのうちの1つを選択し得る。0042いくつかの事例では、開示する動きベクトル予測モードは、候補部分の候補動きベクトルがすべて同じ参照フレームを逆参照する事例への動きベクトル予測モードの適用をエンコーダが制限するように実装され得る。隣接動きベクトルのすべてが同じ参照フレームを参照するとき、隣接動きベクトルから参照が推測され得るので、本技法は、参照インデックスをシグナリングする必要を回避するためにこの点において実装を制限し得る。0043図2Aは、すべての候補動きベクトルが同じ参照フレームを逆参照するときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス6は、動きベクトル予測モードを示すモードフラグ1と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス3と、動きベクトル差分7すなわち、選択された候補動きベクトルに関して決定された対応するMVDとを含み得る。開示する動きベクトル予測モードが使用される唯一のモードである場合、モードフラグ1は随意であり得る。すなわち、モードフラグ1は、開示する動きベクトル予測モードを、たとえば、マージモードまたはAMVPと区別するために使用され得る。予測シンタックス6はまた、随意のMVD=0フラグ5を含み得る。このフラグは、MVDが0であるすなわち、現在動きベクトルと選択された候補動きベクトルとが同じであるときに使用され得る。このフラグは、シグナリングのために必要とされるビットをさらに低減し得る。代替的に、このフラグは使用されず、MVD7としてすべて0が送られることがある。本開示のこの態様は、MVD、および候補部分のうちのどれが選択された候補動きベクトルを有するかを識別するインデックスとともに、参照インデックスと動き予測方向の両方がシグナリングされる必要があるAMVPと、選択された候補動きベクトルを有する候補部分を識別するインデックスだけがシグナリングされるマージモードとの間の平衡を与える。0044他の事例では、候補動きベクトルに同じ参照をポイントさせるこの制限は削除され得る。図2Bは、すべての候補動きベクトルが同じ参照フレームを逆参照するとは限らないときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス8は、動きベクトル予測モードを示すモードフラグ1と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス3と、動きベクトル差分7すなわち、選択された候補動きベクトルに関して決定された対応するMVDとを含み得る。図2Aの例示的な予測シンタックス6とは対照的に、図2Bの予測シンタックス8は、選択された候補動きベクトルがポイントする参照フレームを識別する参照フレームインデックス9をさらに含む。この場合も、モードフラグ1は随意であり得る。また、予測シンタックス8は、MVD=0フラグ5を随意に含み得る。この例では、開示する動きベクトル予測モードは、AMVPモードとマージモードの両方を包含するように非常に一般的になり得る。これらの2つのモード間の差異をなくすことにより、単一のモードが残るので、動きベクトル予測を実行するために使用されるモードをシグナリングすることに関連するシグナリングコストが低減され得る。0045図2Aの予測シンタックス6と図2Bの予測シンタックス8は、相互排他的でなく、同じシステムにおいて使用され得ることを理解されたい。この点について、これらの2つのモード間で区別するためにモードフラグ1が使用され得る。すなわち、動きベクトル予測モードは、そのすべてが同じ参照フレームを逆参照する候補動きベクトルに制限されるか、そのような制限がないかに応じて、モードフラグ1は異なる値をとり得る。0046図5に関して以下でより詳細に説明するように、デコーダは、現在フレームに対して動き補償を実行するために、シグナリングされた予測シンタックスを使用して動きベクトルと動き予測方向と参照インデックスとを取り出し得る。概して、デコーダは、予測ユニットインデックス3と動きベクトル差分7とを含む図2Aの予測シンタックスを受信し得る。候補部分に関連する候補動きベクトルが、候補部分を識別する予測ユニットインデックス3に基づいて取り出され得る。いくつかの例では、候補部分は、復号されている現在部分に対して因果的であり得るすなわち、候補部分はすでに復号されている。したがって、候補部分に関連する動きベクトルはメモリからアクセスされ得る。候補部分が因果的でない場合、デコーダは、候補部分が復号された状態になるまで、候補部分に関連する候補動きベクトルを取り出すのを待つ。0047候補動きベクトルが取り出されると、デコーダは、受信された動きベクトル差分7と、取り出された候補動きベクトルとに基づいて現在部分の現在動きベクトルを決定する。すなわち、現在動きベクトルは、候補動きベクトルに動きベクトル差分を加算することによって決定され得る。別の例では、受信された動きベクトル差分は、図2A~図2BのMVD=0フラグ5であり得る。この場合、候補部分に関連する候補動きベクトルは、単に現在部分にコピーされる。デコーダはまた、候補部分に関連する参照インデックスおよび動き予測方向を取り出し得る。いくつかの例では、デコーダに、シグナリングされた予測ユニットインデックスに関連する参照フレームから参照フレームインデックスをコピーさせる代わりに、参照フレームインデックスは明示的にシグナリングされるたとえば、図2Bの例。次いで、決定された現在動きベクトルと動き予測方向と参照インデックスを使用して、現在部分に対して動き補償が実行される。0048概して、本開示は、ビデオデータを符号化する方法であって、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することとを含む方法を提案する。現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。本方法はまた、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択することと、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングすることを含む。この符号化方法はビデオエンコーダによって実行され得る。0049本開示はまた、ビデオデータを復号する方法であって、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを含む方法を提案する。この復号方法はビデオデコーダによって実行され得る。0050図3は、本開示の例による動きベクトル予測のための技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。図3に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。符号化ビデオデータはまた、記憶媒体34またはファイルサーバ36に記憶され得、必要に応じて宛先デバイス14によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ20は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスクCD、ブルーレイ登録商標またはデジタルビデオディスクDVDバーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、CDまたはDVDリーダーなど、ビデオデコーダ30とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与え得る。0051ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブックすなわち、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネルたとえば、Wi-Fi接続、ワイヤード接続たとえば、DSL、ケーブルモデムなど、または両方の組合せを含み得る。0052本開示の例による、動きベクトル予測のための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。0053図3の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。0054キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。0055ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。0056ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、たとえば、ウェブサイトのためのウェブサーバ、FTPサーバ、ネットワーク接続ストレージNASデバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネルたとえば、Wi-Fi接続、ワイヤード接続たとえば、DSL、ケーブルモデム、イーサネット登録商標、USBなど、または両方の組合せを含み得る。0057図3の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダコーデックの一部を形成し得る。0058ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイLCD、プラズマディスプレイ、有機発光ダイオードOLEDディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。0059図3の例では、通信チャネル16は、無線周波数RFスペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。0060ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディングHEVC規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデルHMに準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4,Part10,AdvancedVideoCodingAVCと呼ばれるITU-TH.264規格、またはそのような規格の拡張など、他のプロプライエタリまたは業界標準に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG-2およびITU-TH.263がある。0061図3には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX-DEMUXユニットはITUH.223マルチプレクサプロトコル、またはユーザデータグラムプロトコルUDPなどの他のプロトコルに準拠し得る。0062ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダコーデックの一部として統合され得る。0063ビデオエンコーダ20は、ビデオ符号化プロセスにおける動きベクトル予測のための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオコーディングプロセスにおける動きベクトル予測のためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。0064本開示の一例では、ソースデバイス12のビデオエンコーダ20は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することと、現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別し、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択することと、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングすることとを行うように構成され得る。0065本開示の別の例では、宛先デバイス14のビデオデコーダ30は、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを行うように構成され得る。0066図4は、本開示で説明する動きベクトル予測のための技法を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVCコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモードIモードは、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測Pモードまたは双方向予測Bモードなどのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。0067図4に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図4の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームバッファ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。図5に示す変換ユニット52は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、CUの変換ユニットTUと呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ図4に図示せずも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。0068符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニットLCUに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。0069モード選択ユニット40は、たとえば、各モードについての誤差すなわち、ひずみ結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロックたとえば、予測ユニットPUを、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器62に与える。加算器62は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換ユニット60からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。0070動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定または動き探索は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和SAD:sumofabsolutedifference、2乗差分和SSD:sumofsquareddifference、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロックたとえば、コーディングユニット境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。0071動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって識別される参照サンプルを取り出すことによって、現在CUの予測ユニットについての予測値を計算し得る。0072本開示の技法によれば、動き推定ユニット42が現在部分の現在動きベクトルを決定すると、動き推定ユニット42は、その現在動きベクトルをそれぞれのあるいは1つまたは複数の候補部分における動きベクトルすなわち、候補動きベクトルと比較する。現在動きベクトルと、候補動きベクトルの各々との間の動きベクトル差分が計算される。特定の候補動きベクトルが、たとえば、それの関連する動きベクトル差分のいくつかの基準に基づいて選択される。たとえば、最小のMVDを生成する候補動きベクトルが選択され得る。0073候補動きベクトルが選択されると、動き推定ユニット42は、符号化ビットストリーム中で、関連するMVDと、関連する予測シンタックスとをシグナリングし得る。一例では、候補部分の各々は、同じ参照フレームをポイントする動きベクトルを有する候補部分に制限される。この例では、動き推定ユニット42は、選択された動きベクトルを有する候補部分を識別するインデックスと、MVDとをシグナリングする。デコーダは、次いで、選択された動きベクトルを有する候補部分から残りの予測シンタックスすなわち、参照インデックスおよび動き予測方向をコピーし得る。さらに、開示する動きベクトル予測方法が使用されているというモードフラグ指示もシグナリングされ得る。随意に、MVDが0であるすなわち、現在動きベクトルが、選択された候補動きベクトルに正確に一致する状況では、MVDの代わりにMVD=0フラグがシグナリングされ得る。上記で説明したように、図2Aは、この例のためのシグナリングの概念例を示している。0074別の例では、候補部分の動きベクトルは、同じ参照フレームのみをポイントすることに制限されない。この場合、参照フレームインデックスもシグナリングされる。上記で説明したように、図2Bはこのシグナリングの概念例を示している。0075このコンテキストでは、符号化ビットストリーム中で動きベクトル差分と他の予測シンタックスとをシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とするのではなく、そのようなシンタックス要素がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、たとえば、ビデオ会議におけるリアルタイム送信、ならびにたとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、DVD、ブルーレイなどにおけるデコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。0076イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測ユニット46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測ユニット46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、34個の方向性予測モードで構成され得る。0077イントラ予測ユニット46は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成combineし、その合成された値をPU中の1つまたは複数のピクセル位置に適用するための機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット46は、PUと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット46は、次いで、PUを加算器50に送り得る。0078ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測ユニット46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。0079変換ユニット52は、残差ブロックから1つまたは複数の変換ユニットTUを形成し得る。変換ユニット52は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性に基づいて選択され得る。変換ユニット52は、次いで、選択された変換をTUに適用して、変換係数の2次元アレイを備えるビデオブロックを生成する。0080変換ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット56が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行し得ることを理解されたい。0081変換係数が1次元アレイに走査されると、エントロピー符号化ユニット56は、CAVLC、CABAC、シンタックスベースコンテキスト適応型バイナリ算術コーディングSBAC:syntaxbasedcontextadaptivebinaryarithmeticcoding、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。0082CAVLCを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。0083CABACを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロであるか否かに関係し得る。エントロピー符号化ユニット56はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット56は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および/または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。0084エントロピー符号化ユニット56によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ30などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。0085場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、CUおよびPUのコード化ブロックパターンCBP:codedblockpattern値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は係数のランレングスコーディングを実行し得る。0086逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。0087図5は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図5の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20図4参照に関して説明した符号化パスとは概して逆の復号パスを実行し得る。0088エントロピー復号ユニット70は、変換係数の1次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ20によって使用されたエントロピーコーディングたとえば、CABAC、CAVLCなどに依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。0089いくつかの例では、エントロピー復号ユニット70または逆量子化ユニット76は、ビデオエンコーダ20のエントロピー符号化ユニット56または量子化ユニット54によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は互いに高度に統合され得る。0090逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化inversequantize、すなわち、逆量子化dequantizeする。逆量子化プロセスは、たとえば、HEVCのために提案されたプロセスまたはH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1次元アレイから2次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。0091逆変換ユニット78は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換ユニット78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの1つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換ユニット78は、現在ブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。代替的に、変換は、LCU4分木中のリーフノードCUのためのTU4分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換ユニット78は、逆変換ユニット78が、復号されている現在ブロックの変換係数に2つ以上の逆変換を適用する、カスケード逆変換を適用し得る。0092本開示の例によれば、ビデオデコーダ30は、符号化ビットストリームから、動きベクトル差分と他の予測シンタックスとを識別するシグナリング情報を受信し得る。MVDおよび予測シンタックスは、エントロピー復号ユニット70またはビデオデコーダ30の別のユニットによって動き補償ユニット72に受け渡され得る。0093イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。0094本開示の例によれば、動き補償ユニット72は、エントロピー復号ユニット70から受信されたMVDおよび予測シンタックスに基づいて予測データを生成し得る。動き補償ユニット72は、符号化ビットストリーム中でMVDと予測シンタックスとを受信する。図2Aの例では、予測シンタックスは、シグナリングされたMVDを作成するために使用される候補動きベクトルを有する候補部分を識別するインデックスを含む。動き補償ユニット72は、シグナリングされた候補部分に関連する候補動きベクトルすなわち、候補部分のインデックスをメモリから取り出すためにこのインデックスを使用し得る。動きベクトルは、参照フレームバッファ82などのメモリに記憶され得る。動き補償ユニット72は、次いで、シグナリングされたMVDを、取り出された候補動きベクトルに加算することによってフレームの現在部分のための現在動きベクトルを計算し得る。図2Aを参照しながら上記で説明したように、いくつかの例では、MVDを送るのではなく、ゼロのMVDがフラグとしてシグナリングされ得る。この状況では、動き補償ユニット72は、現在動きベクトルとして単に候補動きベクトルをコピーし得る。0095動き補償ユニット72はまた、候補部分に関連する動き予測方向および参照インデックスを取り出し得る。参照予測方向は、インター予測モードが単方向であるたとえば、Pフレームか、双方向であるBフレームかを示す。参照インデックスは、候補動きベクトルがどの参照フレームに基づくかを示す。図2Bなどに示す他の例では、参照フレームインデックスは、デコーダにシグナリングされ、取り出される必要がないことがある。0096取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償ユニットは現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。0097動き補償ユニット72は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。0098さらに、動き補償ユニット72およびイントラ予測ユニット74は、HEVCの例では、たとえば、4分木によって与えられるシンタックス情報の一部を使用して、符号化ビデオシーケンスの1つまたは複数のフレームを符号化するために使用されたLCUのサイズを決定し得る。動き補償ユニット72およびイントラ予測ユニット74はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各CUがどのように分割されるかおよび、同様に、サブCUがどのように分割されるかを記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモードたとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モードと、各インター符号化PUについての1つまたは複数の参照フレームおよび/またはそれらの参照フレームの識別子を含んでいる参照リストと、符号化ビデオシーケンスを復号するための他の情報とを含み得る。0099加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって生成される対応する予測ブロックと合成combineして、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、その後の動き補償のための参照ブロックを与え、また、図3のディスプレイデバイス32などのディスプレイデバイス上での提示のために復号ビデオを生成する。0100上述のように、本開示において提示する、動きベクトル予測、動き補償および動き推定のための技法は、エンコーダとデコーダの両方に適用可能である。概して、上記の説明に従って、エンコーダは、ビデオフレームの現在部分の現在動きベクトルのための動きベクトル予測子として使用すべき候補動きベクトルを決定し得る。エンコーダは、選択された候補動きベクトルと現在ベクトルとの間の動きベクトル差分をシグナリングする。エンコーダはまた、選択された候補動きベクトルを有する候補部分を識別するインデックスをシグナリングする。デコーダは、次いで、候補部分に関連する動き予測方向および参照フレームインデックスを取り出し、現在部分のためにそれらをコピーし得る。デコーダはまた、候補部分に関連する候補動きベクトルを取り出し、その候補動きベクトルに、シグナリングされた動きベクトル差分を加算して、現在部分の現在動きベクトルを生成する。次いで、現在動きベクトル、動きベクトル予測、および参照フレームインデックスを使用した動き補償プロセスを通して、デコーダによって予測データが形成され得る。0101図6は、図4のビデオエンコーダ20などのビデオエンコーダによって実行され得る、ビデオを符号化する例示的な方法を示すフローチャートである。ビデオデータを符号化する方法は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定する120。一例では、候補部分は、同じフレーム中の現在部分に隣接する部分である。上記で説明したように、候補動きベクトルは、動き探索プロセスを通して前もって決定され、メモリに記憶された動きベクトルであり得る。次に、エンコーダは、現在フレームの現在部分のための現在動きベクトルを決定し、この現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する122。この場合も、このプロセスは動き探索プロセスであり得る。0102現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算する124。MVDを計算した後に、エンコーダは、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択する126。選択される候補動きベクトルは、最小の動きベクトル差分を生成する候補動きベクトルであり得る。候補動きベクトルが選択されると、エンコーダは、たとえば符号化ビットストリーム中で、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングし、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングする128。ステップ128のシグナリングは、候補動きベクトルの各々が現在動きベクトルと同じ参照フレームを参照する場合に適用可能である。0103別の随意の例では、候補動きベクトルのうちの少なくとも1つが、現在動きベクトルとは異なる参照フレームを参照する。この場合、エンコーダは、選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングし得る130。0104いくつかの例では、候補動きベクトルのうちの選択された1つは、ゼロの動きベクトル差分に対応する。その場合、候補動きベクトルのうちの選択された1つに関して決定された対応する動きベクトル差分をシグナリングすることは、動きベクトル差分自体をシグナリングするのではなく、動きベクトル差分を示すフラグをシグナリングすることを含み得る。0105図7は、図5のビデオデコーダ30などのビデオデコーダによって実行され得る、ビデオを復号する例示的な方法を示すフローチャートである。ビデオデータを復号する方法は、フレームの候補部分を識別するインデックスを受信し、動きベクトル差分を受信することと136、候補部分に関連する候補動きベクトルを取り出すことと138を含む。候補動きベクトルは、すでに復号されている候補部分すなわち、因果的部分のためのメモリから取り出され得る。いくつかの例では、受信された動きベクトル差分は、動きベクトル差分がゼロであることを示すフラグによって示され得る。ビデオデコーダはまた、候補部分に関連する動き予測方向および参照フレームインデックスを取り出す140。ビデオデコーダは、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定する142。これは、候補動きベクトルに動きベクトル差分を加算することによって達成され得る。ビデオデコーダは、次いで、予測ビデオデータを生成するために、決定された現在動きベクトル、動き予測方向および参照フレームインデックスを使用して現在部分に対して動き補償を実行する144。0106図8は、図7に示す方法のわずかな変形態である、ビデオを復号する例示的な方法を示すフローチャートである。図8の例では、ビデオデコーダは、動きベクトル差分、およびフレームの候補部分を識別するインデックスとともに、参照フレームインデックスを受信する137。したがって、動きベクトル138および動き予測方向141のみを取り出す必要がある。0107図9は、ビデオを復号する別の例示的な方法を示すフローチャートである。図7~図8に示す方法の前にまたはそれと並列に、ビデオデコーダは、現在部分のビデオデータをエントロピー復号し146、残差データを生成するために、エントロピー復号されたビデオデータを逆量子化し、逆変換する148。図7または図8に示す方法によって予測データが生成されると、ビデオデコーダは、復号されたビデオデータを形成するために予測ビデオデータを残差ビデオデータと合成combineする150。01081つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。0109限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdiskおよびディスクdiscは、コンパクトディスクdiscCD、レーザーディスクdisc登録商標、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdisk、およびブルーレイディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。0110命令は、1つまたは複数のデジタル信号プロセッサDSPなどの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用するプロセッサという用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。0111本開示の技法は、ワイヤレスハンドセット、集積回路IC、またはICのセットたとえば、チップセットを含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。0112様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。"