(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記１つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており、
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記１つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を備え、前記動きベクトル予測プロセスは、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を備える、方法。
【請求項２】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照フレームを参照する、請求項１に記載の方法。
【請求項３】
前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項１に記載の方法。
【請求項４】
前記候補部分は前記現在部分に隣接する、請求項３に記載の方法。
【請求項５】
前記候補動きベクトルのうちの前記選択された１つに関連する前記動きベクトル差分がゼロの動きベクトル差分に対応する場合、前記方法は、前記候補動きベクトルのうちの前記選択された１つに関して決定された前記対応する動きベクトル差分をシグナリングすることがゼロの前記動きベクトル差分を示すフラグをシグナリングすることを備える、をさらに備える請求項１に記載の方法。
【請求項６】
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを備える、請求項１に記載の方法。
【請求項７】
ビデオデータを復号する方法であって、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行することと、
を備え、前記動きベクトル予測プロセスは、
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号化されるときに既に復号されており、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を備える、方法。
【請求項８】
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をさらに備える、請求項７に記載の方法。
【請求項９】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することは、前記候補部分に関連する前記候補動きベクトルをコピーすることを備える、請求項７に記載の方法。
【請求項１０】
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記１つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており、
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記１つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を行うように構成されたビデオエンコーダを備え、
前記ビデオエンコーダは、さらに、
前記現在動きベクトルと前記候補動きベクトルのそれぞれの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行うように構成された、装置。
【請求項１１】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項１０に記載の装置。
【請求項１２】
前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項１０に記載の装置。
【請求項１３】
前記候補部分は前記現在部分に隣接する、請求項１２に記載の方法。
【請求項１４】
前記候補動きベクトルのうちの前記選択された１つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、前記ビデオエンコーダは、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングするように構成された、請求項１０に記載の装置。
【請求項１５】
前記ビデオエンコーダは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択するようにさらに構成された、請求項１０に記載の装置。
【請求項１６】
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行するように構成されたビデオデコーダを備え、前記ビデオデコーダは、さらに、
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を行うように構成された、装置。
【請求項１７】
前記ビデオデコーダは、
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を行うようにさらに構成された、請求項１６に記載の装置。
【請求項１８】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記ビデオデコーダは、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定するようにさらに構成された、請求項１６に記載の装置。
【請求項１９】
ビデオデータを符号化するように構成された装置であって、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定する手段と、前記１つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており、
前記現在部分のための現在動きベクトルを決定するための手段と、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記１つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行する手段と、
を備え、前記動きベクトル予測プロセスを実行する手段は、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算する手段と、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択する手段と、
前記現在動きベクトルに関連する参照インデックスまたは予測方向をシグナリングしない手段と、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングする手段と、
を備える、装置。
【請求項２０】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項１９に記載の装置。
【請求項２１】
前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項１９に記載の装置。
【請求項２２】
前記候補部分は前記現在部分に隣接する、請求項２１に記載の装置。
【請求項２３】
前記候補動きベクトルのうちの前記選択された１つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、前記候補動きベクトルのうちの前記選択された１つに関して決定された前記対応する動きベクトル差分をシグナリングする前記手段は、ゼロの前記動きベクトル差分を示すフラグをシグナリングする手段を備える、請求項１９に記載の装置。
【請求項２４】
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択する前記手段は、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択する手段を備える、請求項１９に記載の装置。
【請求項２５】
ビデオデータを復号するように構成された装置であって、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行する手段と、
を備え、前記動きベクトル予測プロセスを実行する手段は、
ビデオフレームの候補部分を識別するインデックスを受信する手段と、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており、
動きベクトル差分を受信する手段と、
前記候補部分に関連する候補動きベクトルを取り出す手段と、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出す手段と、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定する手段と、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行する手段と、
を備える、装置。
【請求項２６】
前記現在部分のビデオデータをエントロピー復号する手段と、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換する手段と、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成する手段と、
をさらに備える、請求項２５に記載の装置。
【請求項２７】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定する前記手段は、前記候補部分に関連する前記候補動きベクトルをコピーする手段を備える、請求項２５に記載の装置。
【請求項２８】
実行されたとき、ビデオデータを符号化するためのデバイスの１つまたは複数のプロセッサに、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記１つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており、
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記１つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体であって、
前記動きベクトル予測プロセスは、前記プロセッサに、さらに、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行わせる、コンピュータ可読記憶媒体。
【請求項２９】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記候補部分は前記現在部分に隣接する、請求項３０に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記候補動きベクトルのうちの前記選択された１つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、
前記コンピュータ可読記憶媒体は、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングすることを前記１つまたは複数のプロセッサに行わせる命令をさらに含む、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３３】
最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを前記１つまたは複数のプロセッサに行わせる命令をさらに含む、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３４】
実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体であって、
前記動きベクトル予測プロセスは、前記プロセッサに、さらに
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を行わせることを備える、コンピュータ可読記憶媒体。
【請求項３５】
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を前記１つまたは複数のプロセッサに行わせる命令をさらに含む、請求項３４に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、
前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することを前記１つまたは複数のプロセッサに行わせる命令をさらに含む、請求項３４に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、どちらもそれぞれの全体が参照により本明細書に組み込まれる、２０１１年１月２１日に出願された米国仮出願第６１／４３５，２０４号、および２０１１年３月７日に出願された米国仮出願第６１／４４９，９９１号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオデータをコーディングするときに動きベクトル予測、動き推定および動き補償を実行するための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
[0005]インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００６】
[0006]概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、インターモードコーディング（すなわち、他のフレームのブロックに対して現在ブロックをコーディング）するときに動きベクトル予測、動き推定および動き補償を実行するための技法について説明する。いくつかの例では、本技法は、現在ブロックをコーディングするときに、隣接ブロックから予測方向と参照フレームインデックスとをコピーすることを含み得る。さらに、本技法は、より効率的なコーディングを可能にするために、現在ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の動きベクトル差分を使用することを含み得る。
【０００７】
[0007]本開示の一例では、ビデオデータを符号化する方法は、ビデオフレームの１つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することとを含む。現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。本方法はまた、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択することと、候補動きベクトルのうちの選択された１つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された１つに関して計算された対応する動きベクトル差分をシグナリングすることと、を含む。
【０００８】
[0008]本開示の別の例では、ビデオデータを符号化するように構成された装置が提示される。本装置は、ビデオフレームの１つまたは複数の候補部分の各々のための候補動きベクトルを決定し、現在フレームの現在部分のための現在動きベクトルを決定するように構成されたビデオエンコーダを備え、現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。ビデオエンコーダはさらに、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算し、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択し、候補動きベクトルのうちの選択された１つを有する候補部分を識別するインデックスをシグナリングし、候補動きベクトルのうちの選択された１つに関して計算された対応する動きベクトル差分をシグナリングするように構成される。
【０００９】
[0009]本開示の別の例では、ビデオデータを復号する方法は、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すこと（retrieving）と、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することと、を含む。
【００１０】
[0010]本開示の別の例では、ビデオデータを復号するように構成された装置が提示される。本装置は、フレームの候補部分を識別するインデックスを受信し、動きベクトル差分を受信するように構成されたビデオデコーダを含む。ビデオデコーダはさらに、候補部分に関連する候補動きベクトルを取り出し、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定し、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行するように構成される。
【００１１】
[0011]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】コーディングユニット分割の例を示す概念図。
【図１Ｂ】コーディングユニット分割の例を示す概念図。
【図２Ａ】予測シンタックスコーディングの例の概念図。
【図２Ｂ】予測シンタックスコーディングの例の概念図。
【図３】例示的なビデオ符号化および復号システムを示すブロック図。
【図４】例示的なビデオエンコーダを示すブロック図。
【図５】例示的なビデオデコーダを示すブロック図。
【図６】ビデオを符号化する例示的な方法を示すフローチャート。
【図７】ビデオを復号する例示的な方法を示すフローチャート。
【図８】ビデオを復号する別の例示的な方法を示すフローチャート。
【図９】ビデオを復号する別の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0021]概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、ビデオデータをインターモードコーディングする（すなわち、他のフレームのブロックに対してコーディングする）ときに動き推定および動き補償を実行するための技法について説明する。特に、本開示は、現在ブロックをコーディングするときに、隣接ブロックから予測方向と参照フレームインデックスとをコピーすることを提案する。さらに、本開示は、よりフレキシブルで効率的なコーディングを可能にするために、現在ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の動きベクトル差分を使用することを提案する。動きベクトル全体の代わりに動きベクトル差分を送ることにより、シグナリングされるビットがより少なくなり得る。さらに、予測方向と参照フレームインデックスとをコピーすることとともに、動きベクトル差分を使用することにより、すでに復号された予測シンタックスの効率的な再利用を実現しながら、現在ブロックの動きベクトルのより正確な再生が実現される。
【００１４】
[0022]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用し得る。
【００１５】
[0023]一例として、Ｊｏｉｎｔ  Ｃｏｏｐｅｒａｔｉｖｅ  Ｔｅａｍ  ｆｏｒ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニット（ＣＵ：coding unit）は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。ＣＵは、通常、Ｙとして示されるルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるＵおよびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。ＣＵは、一般に方形であり、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、Ｈ．２６４または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリ（proprietary）ビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【００１６】
[0024]ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３４個ものイントラ予測符号化モードを提供する。
【００１７】
[0025]ＨＭによれば、ＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）および／または１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大ＣＵである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【００１８】
[0026]ＬＣＵは４分木データ構造に関連付けられ得る。図１Ａは、４分木分割の概念図である。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しなくても、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００１９】
[0027]その上、リーフＣＵのＴＵもそれぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。本開示では、ＬＣＵがどのように区分されるかを示す４分木をＣＵ４分木と呼び、リーフＣＵがどのようにＴＵに区分されるかを示す４分木をＴＵ４分木と呼ぶ。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＬＣＵに対応する。分割されないＴＵ４分木のＴＵはリーフＴＵと呼ばれる。
【００２０】
[0028]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。たとえば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがポイントする参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するリーフＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【００２１】
[0029]ビデオフレーム間の動き推定および補償を伴うインター予測では、追加のタイプの分割が提案されている。この追加のタイプのＰＵ分割は、幾何学的分割または区分と呼ばれ、厳密に水平および／または垂直でない動き境界を識別することを可能にする。幾何学的分割の概念図を図１Ｂに示す。幾何学的分割では、サブＣＵは、θおよびρの関数として定義された直線によって２つのパーティション（予測ユニット（ＰＵ）と呼ばれることもある）に分割される。θは、ｘ軸から測定され、中心（０，０）から延びるパーティション線に直角な線の角度を定義し、ρは、パーティション線までのこの線の距離または長さを定義する。
【００２２】
[0030]実行される分割のタイプにかかわらず、エンコーダは、サブＣＵを分割した後に形成される得られた各部分（たとえば、ＰＵ）について動きベクトルを決定するために、「動き推定」と通常呼ばれるプロセスを実行し得る。エンコーダは、一例として、エンコーダが時間的に後続のあるいは将来の参照フレーム中の各部分について探索する、参照フレーム中の「動き探索」と呼ばれ得るものを実行することによってこれらの動きベクトルを決定する。現在部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在部分の現在動きベクトルを、現在部分から参照フレーム中の一致する部分までの（すなわち、現在部分の中心から一致する部分の中心までの）ロケーションの差分として決定する。
【００２３】
[0031]いくつかの従来の例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。ただし、動きベクトル全体をシグナリングすると、動きベクトルは一般に多数のビットによって表されるので、コーディングがあまり効率的でなくなることがある。
【００２４】
[0032]いくつかの事例では、動きベクトル全体をシグナリングするのではなく、エンコーダは、各パーティションについて動きベクトルを予測し得る。この動きベクトル予測を実行する際に、エンコーダは、現在部分と同じフレーム中の空間的に隣接するＰＵについて決定される候補動きベクトルのセット、あるいは別の参照フレーム中のコロケートＰＵについて決定される候補動きベクトルを選択し得る。エンコーダは、シグナリングにおける複雑さおよびビットレートを低減するために、動きベクトル全体をシグナリングするのではなく動きベクトル予測を実行し得る。
【００２５】
[0033]従来では、動きベクトル予測の２つの異なるモードまたはタイプが使用される。一方のモードは「マージ」モードと呼ばれる。他方のモードは適応動きベクトル予測（ＡＭＶＰ：adaptive motion vector prediction）と呼ばれる。マージモードでは、エンコーダは、フレームの現在部分のための選択された候補動きベクトルから、動きベクトルと、（所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する）参照インデックスと、（すなわち、参照フレームが時間的に現在フレームに先行するかまたは後続するかに関して、参照ピクチャリストを識別する）動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、選択された候補動きベクトルを有する候補部分を識別するインデックスをビットストリーム中でシグナリングすることによって達成される。したがって、マージモードでは、予測シンタックスは、モード（この場合は「マージ」モード）を識別するフラグと、候補部分のロケーションを識別するインデックスとを含み得る。いくつかの事例では、候補部分は、現在部分に関する因果的部分になる。すなわち、候補部分は、デコーダによってすでに復号されていることになる。したがって、デコーダは、候補部分のための動きベクトル、参照インデックス、および動き予測方向をすでに受信および／または決定している。したがって、デコーダは、単に、メモリから、候補部分に関連する動きベクトル、参照インデックス、および動き予測方向を取り出し、現在部分についてこれらの値をコピーし得る。
【００２６】
[0034]ＡＭＶＰでは、エンコーダは、候補部分から動きベクトルのみをコピーするようにビットストリームシグナリングを通してデコーダに命令し、参照フレームおよび予測方向を別々にシグナリングする。ＡＭＶＰでは、コピーされるべき動きベクトルは、動きベクトル差分（ＭＶＤ：motion vector difference）を送ることによってシグナリングされ得る。ＭＶＤは、現在部分の現在動きベクトルと、候補部分の候補動きベクトルとの間の差分である。このように、デコーダは、現在動きベクトルのために候補動きベクトルの厳密なコピーを使用する必要はないが、むしろ、現在動きベクトルに値が「近接」した候補動きベクトルを使用し、現在動きベクトルを再生するためにＭＶＤを加算し得る。たいていの状況では、ＭＶＤは、シグナリングするために現在動きベクトル全体よりも少ないビットを必要とする。したがって、ＡＶＭＰは、動きベクトル全体を送ることに勝るコーディング効率を維持しながら、現在動きベクトルをより正確にシグナリングすることを可能にする。対照的に、マージモードはＭＶＤの指定に対応しておらず、したがって、マージモードは、シグナリング効率の増加（すなわち、ビットの低減）のために動きベクトルシグナリングの精度を犠牲にする。ＡＶＭＰの予測シンタックスは、モード（この場合はＡＭＶＰ）のフラグと、候補部分のインデックスと、現在動きベクトルと候補部分の候補動きベクトルとの間のＭＶＤと、参照インデックスと、動き予測方向とを含み得る。
【００２７】
[0035]部分の各々について動きベクトルを決定するために動き推定が実行されると、エンコーダは、（動き探索が実行された場合は）参照フレーム中の一致する部分または（動きベクトル予測が実行された場合は）予測動きベクトルによって識別される参照フレームの部分を現在部分と比較する。この比較は、一般に、現在部分から参照フレーム中の（「参照サンプル」と通常呼ばれる）部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から周波数領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換（ＤＣＴ）を適用する。エンコーダは、残差データが全体としてではなく得られた変換係数が変換後に符号化されるだけで済むように残差データをさらに圧縮するために、この変換を実行する。
【００２８】
[0036]一般に、得られた変換係数は、特に変換係数が最初に量子化される（丸められる）場合、ランレングス符号化を可能にする方法で一緒にグループ化される。エンコーダは、量子化変換係数についてこのランレングス符号化を実行し、次いで、ランレングスコーディングされた量子化変換係数をさらに圧縮するために統計的ロスレス（またはいわゆる「エントロピー」）符号化を実行する。
【００２９】
[0037]ロスレス統計的コーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。このビットストリームはまた、いくつかの事例では、たとえば、動きベクトル予測が実行されたかどうかと、動きベクトルモードと、動きベクトル予測子（ＭＶＰ：motion vector predictor）インデックス（すなわち、選択された動きベクトルをもつ候補部分のインデックス）とを指定するいくつかの予測シンタックス要素を含む。ＭＶＰインデックスは、それのシンタックス要素変数名「ｍｖｐ＿ｉｄｘ」として呼ばれることもある。
【００３０】
[0038]高効率ビデオコーディング（ＨＥＶＣ）と呼ばれる、ＩＴＵ−Ｔ／ＩＳＯ／ＩＥＣ  Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって採用のために提案されている現在の設計では、エンコーダは、上記で説明した１）ＡＭＶＰおよび２）マージモードを含む、現在部分の動きベクトルをそれによって予測するためのいくつかの動きベクトル予測モードを実行する。これらの２つのモードは同様であるが、ＡＭＶＰは、ＭＶＤ、動き予測方向および参照インデックスを定義することが可能であることに関してより多くのフレキシビリティを提供し、マージモードは、単にこの動きベクトル情報（すなわち、動きベクトル、動き予測方向、および参照インデックス）をコピーし、ＭＶＤの精度の増加に対応しない。別の違いは、ＡＭＶＰは、参照フレーム中のコロケートＰＵからの時間的候補動きベクトルと、現在フレーム中の近接または隣接するＰＵからの動きベクトルとを考慮するが、マージモードは、現在フレーム中の近接または隣接するＰＵからの動きベクトルのみを考慮することである。
【００３１】
[0039]これらの動きベクトル予測モードの両方は、動き情報のシグナリングを可能にするために提供される。ＡＭＶＰは、動きベクトル自体ではなく、ＭＶＤのみが指定されることを必要とすることによって、この動き情報をシグナリングすることに関連するコストを低減する。マージモードは、現在部分のためにコピーするために、隣接する空間的候補動きベクトルのうちのどの１つが選択されたかのみをシグナリングすることによって、これらの同じシグナリングコストをなお一層低減する。しかし、マージモードは、現在部分が現在部分の動きベクトルをそれから継承する隣接部分のみを指定することを可能にし、ＡＭＶＰによって提供されるフレキシビリティを可能にしないという点で、限定的である。
【００３２】
[0040]本開示に記載する技法によれば、動きベクトルと他の予測シンタックスとをコーディングするための追加の動きベクトル予測モードが提示される。例示のために、エンコーダは、１つまたは複数の候補部分の各々のための候補動きベクトルを決定し得る。一例では、候補部分は、現在部分と同じフレーム中にあり得る。候補部分は現在部分に隣接する部分であり得る。特に、候補部分は、現在部分に対して因果的である隣接部分であり得る。すなわち、隣接する候補部分は、現在ブロックを符号化するときにエンコーダにおいてすでに符号化されていることがある。逆に、デコーダにおいて、隣接する候補部分は、現在ブロックを復号するときにすでに復号されている。候補部分のロケーションにかかわらず、エンコーダは、次いで、現在フレームの現在動きベクトルを決定する。エンコーダは、参照フレーム中の一致する部分についての全動き探索を採用することによってこの現在動きベクトルを決定し得る。
【００３３】
[0041]候補動きベクトルと現在動きベクトルとを決定した後に、エンコーダは、動きベクトル差分（ＭＶＤ）を決定するために、現在動きベクトルを隣接動きベクトルの各々と比較する。所定のアルゴリズムに従って、エンコーダは、次いで、候補動きベクトルのうちの１つと、関連するＭＶＣとを選択する。概して、候補動きベクトルを選択するアルゴリズムは、最少のビットで表され得るＭＶＤを生成する候補動きベクトルを選択することを試み得る。すなわち、エンコーダは、候補動きベクトルの対応するＭＶＤが、他の決定される動きベクトル差分のすべてと比較して（シグナリングすべきビットに関して）最小となるように、候補動きベクトルのうちの１つを選択し得る。
【００３４】
[0042]いくつかの事例では、開示する動きベクトル予測モードは、候補部分の候補動きベクトルがすべて同じ参照フレームを逆参照する事例への動きベクトル予測モードの適用をエンコーダが制限するように実装され得る。隣接動きベクトルのすべてが同じ参照フレームを参照するとき、隣接動きベクトルから参照が推測され得るので、本技法は、参照インデックスをシグナリングする必要を回避するためにこの点において実装を制限し得る。
【００３５】
[0043]図２Ａは、すべての候補動きベクトルが同じ参照フレームを逆参照するときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス６は、動きベクトル予測モードを示すモードフラグ１と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス３と、動きベクトル差分７（すなわち、選択された候補動きベクトルに関して決定された対応するＭＶＤ）とを含み得る。開示する動きベクトル予測モードが使用される唯一のモードである場合、モードフラグ１は随意であり得る。すなわち、モードフラグ１は、開示する動きベクトル予測モードを、たとえば、マージモードまたはＡＭＶＰと区別するために使用され得る。予測シンタックス６はまた、随意のＭＶＤ＝０フラグ５を含み得る。このフラグは、ＭＶＤが０である（すなわち、現在動きベクトルと選択された候補動きベクトルとが同じである）ときに使用され得る。このフラグは、シグナリングのために必要とされるビットをさらに低減し得る。代替的に、このフラグは使用されず、ＭＶＤ７としてすべて０が送られることがある。本開示のこの態様は、（ＭＶＤ、および候補部分のうちのどれが選択された候補動きベクトルを有するかを識別するインデックスとともに、参照インデックスと動き予測方向の両方がシグナリングされる必要がある）ＡＭＶＰと、（選択された候補動きベクトルを有する候補部分を識別するインデックスだけがシグナリングされる）マージモードとの間の平衡を与える。
【００３６】
[0044]他の事例では、候補動きベクトルに同じ参照をポイントさせるこの制限は削除され得る。図２Ｂは、すべての候補動きベクトルが同じ参照フレームを逆参照するとは限らないときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス８は、動きベクトル予測モードを示すモードフラグ１と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス３と、動きベクトル差分７（すなわち、選択された候補動きベクトルに関して決定された対応するＭＶＤ）とを含み得る。図２Ａの例示的な予測シンタックス６とは対照的に、図２Ｂの予測シンタックス８は、選択された候補動きベクトルがポイントする参照フレームを識別する参照フレームインデックス９をさらに含む。この場合も、モードフラグ１は随意であり得る。また、予測シンタックス８は、ＭＶＤ＝０フラグ５を随意に含み得る。この例では、開示する動きベクトル予測モードは、ＡＭＶＰモードとマージモードの両方を包含するように非常に一般的になり得る。これらの２つのモード間の差異をなくすことにより、単一のモードが残るので、動きベクトル予測を実行するために使用されるモードをシグナリングすることに関連するシグナリングコストが低減され得る。
【００３７】
[0045]図２Ａの予測シンタックス６と図２Ｂの予測シンタックス８は、相互排他的でなく、同じシステムにおいて使用され得ることを理解されたい。この点について、これらの２つのモード間で区別するためにモードフラグ１が使用され得る。すなわち、動きベクトル予測モードは、そのすべてが同じ参照フレームを逆参照する候補動きベクトルに制限されるか、そのような制限がないかに応じて、モードフラグ１は異なる値をとり得る。
【００３８】
[0046]図５に関して以下でより詳細に説明するように、デコーダは、現在フレームに対して動き補償を実行するために、シグナリングされた予測シンタックスを使用して動きベクトルと動き予測方向と参照インデックスとを取り出し得る。概して、デコーダは、予測ユニットインデックス３と動きベクトル差分７とを含む図２Ａの予測シンタックスを受信し得る。候補部分に関連する候補動きベクトルが、候補部分を識別する予測ユニットインデックス３に基づいて取り出され得る。いくつかの例では、候補部分は、復号されている現在部分に対して因果的であり得る（すなわち、候補部分はすでに復号されている）。したがって、候補部分に関連する動きベクトルはメモリからアクセスされ得る。候補部分が因果的でない場合、デコーダは、候補部分が復号された状態になるまで、候補部分に関連する候補動きベクトルを取り出すのを待つ。
【００３９】
[0047]候補動きベクトルが取り出されると、デコーダは、受信された動きベクトル差分７と、取り出された候補動きベクトルとに基づいて現在部分の現在動きベクトルを決定する。すなわち、現在動きベクトルは、候補動きベクトルに動きベクトル差分を加算することによって決定され得る。別の例では、受信された動きベクトル差分は、図２Ａ〜図２ＢのＭＶＤ＝０フラグ５であり得る。この場合、候補部分に関連する候補動きベクトルは、単に現在部分にコピーされる。デコーダはまた、候補部分に関連する参照インデックスおよび動き予測方向を取り出し得る。いくつかの例では、デコーダに、シグナリングされた予測ユニットインデックスに関連する参照フレームから参照フレームインデックスをコピーさせる代わりに、参照フレームインデックスは明示的にシグナリングされる（たとえば、図２Ｂの例）。次いで、決定された現在動きベクトルと動き予測方向と参照インデックスを使用して、現在部分に対して動き補償が実行される。
【００４０】
[0048]概して、本開示は、ビデオデータを符号化する方法であって、ビデオフレームの１つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することとを含む方法を提案する。現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。本方法はまた、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択することと、候補動きベクトルのうちの選択された１つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された１つに関して計算された対応する動きベクトル差分をシグナリングすることを含む。この符号化方法はビデオエンコーダによって実行され得る。
【００４１】
[0049]本開示はまた、ビデオデータを復号する方法であって、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを含む方法を提案する。この復号方法はビデオデコーダによって実行され得る。
【００４２】
[0050]図３は、本開示の例による動きベクトル予測のための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図３に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化ビデオデータはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ２０は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク（ＣＤ）、ブルーレイ（登録商標）またはデジタルビデオディスク（ＤＶＤ）バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、ＣＤまたはＤＶＤリーダーなど、ビデオデコーダ３０とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ３０に与え得る。
【００４３】
[0051]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。
【００４４】
[0052]本開示の例による、動きベクトル予測のための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４５】
[0053]図３の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【００４６】
[0054]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００４７】
[0055]ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００４８】
[0056]ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、または両方の組合せを含み得る。
【００４９】
[0057]図３の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００５０】
[0058]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００５１】
[0059]図３の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００５２】
[0060]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、またはそのような規格の拡張など、他のプロプライエタリまたは業界標準に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００５３】
[0061]図３には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５４】
[0062]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００５５】
[0063]ビデオエンコーダ２０は、ビデオ符号化プロセスにおける動きベクトル予測のための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおける動きベクトル予測のためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【００５６】
[0064]本開示の一例では、ソースデバイス１２のビデオエンコーダ２０は、ビデオフレームの１つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することと、現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別し、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択することと、候補動きベクトルのうちの選択された１つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された１つに関して計算された対応する動きベクトル差分をシグナリングすることとを行うように構成され得る。
【００５７】
[0065]本開示の別の例では、宛先デバイス１４のビデオデコーダ３０は、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを行うように構成され得る。
【００５８】
[0066]図４は、本開示で説明する動きベクトル予測のための技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【００５９】
[0067]図４に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図４の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照フレームバッファ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図５に示す変換ユニット５２は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、ＣＵの変換ユニット（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図４に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００６０】
[0068]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００６１】
[0069]モード選択ユニット４０は、たとえば、各モードについての誤差（すなわち、ひずみ）結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（たとえば、予測ユニット（ＰＵ））を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換ユニット６０からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００６２】
[0070]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定（または動き探索）は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（たとえば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【００６３】
[0071]動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在ＣＵの予測ユニットについての予測値を計算し得る。
【００６４】
[0072]本開示の技法によれば、動き推定ユニット４２が現在部分の現在動きベクトルを決定すると、動き推定ユニット４２は、その現在動きベクトルをそれぞれのあるいは１つまたは複数の候補部分における動きベクトル（すなわち、候補動きベクトル）と比較する。現在動きベクトルと、候補動きベクトルの各々との間の動きベクトル差分が計算される。特定の候補動きベクトルが、たとえば、それの関連する動きベクトル差分のいくつかの基準に基づいて選択される。たとえば、最小のＭＶＤを生成する候補動きベクトルが選択され得る。
【００６５】
[0073]候補動きベクトルが選択されると、動き推定ユニット４２は、符号化ビットストリーム中で、関連するＭＶＤと、関連する予測シンタックスとをシグナリングし得る。一例では、候補部分の各々は、同じ参照フレームをポイントする動きベクトルを有する候補部分に制限される。この例では、動き推定ユニット４２は、選択された動きベクトルを有する候補部分を識別するインデックスと、ＭＶＤとをシグナリングする。デコーダは、次いで、選択された動きベクトルを有する候補部分から残りの予測シンタックス（すなわち、参照インデックスおよび動き予測方向）をコピーし得る。さらに、開示する動きベクトル予測方法が使用されているというモードフラグ指示もシグナリングされ得る。随意に、ＭＶＤが０である（すなわち、現在動きベクトルが、選択された候補動きベクトルに正確に一致する）状況では、ＭＶＤの代わりにＭＶＤ＝０フラグがシグナリングされ得る。上記で説明したように、図２Ａは、この例のためのシグナリングの概念例を示している。
【００６６】
[0074]別の例では、候補部分の動きベクトルは、同じ参照フレームのみをポイントすることに制限されない。この場合、参照フレームインデックスもシグナリングされる。上記で説明したように、図２Ｂはこのシグナリングの概念例を示している。
【００６７】
[0075]このコンテキストでは、符号化ビットストリーム中で動きベクトル差分と他の予測シンタックスとをシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とするのではなく、そのようなシンタックス要素がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、（たとえば、ビデオ会議における）リアルタイム送信、ならびに（たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、ＤＶＤ、ブルーレイなどにおける）デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
【００６８】
[0076]イントラ予測ユニット４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測ユニット４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測ユニット４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３４個の方向性予測モードで構成され得る。
【００６９】
[0077]イントラ予測ユニット４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成（combine）し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【００７０】
[0078]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００７１】
[0079]変換ユニット５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換ユニット５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換ユニット５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。
【００７２】
[0080]変換ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット５６が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット５４などの他の処理ユニットが走査を実行し得ることを理解されたい。
【００７３】
[0081]変換係数が１次元アレイに走査されると、エントロピー符号化ユニット５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【００７４】
[0082]ＣＡＶＬＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【００７５】
[0083]ＣＡＢＡＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロであるか否かに関係し得る。エントロピー符号化ユニット５６はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット５６は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および／または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【００７６】
[0084]エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００７７】
[0085]場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、ＣＵおよびＰＵのコード化ブロックパターン（ＣＢＰ：coded block pattern）値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は係数のランレングスコーディングを実行し得る。
【００７８】
[0086]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームバッファ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７９】
[0087]図５は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図５の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームバッファ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図４参照）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【００８０】
[0088]エントロピー復号ユニット７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（たとえば、ＣＡＢＡＣ、ＣＡＶＬＣなど）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【００８１】
[0089]いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット７６において実行され得るが、走査については、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。
【００８２】
[0090]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【００８３】
[0091]逆変換ユニット７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換ユニット７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換ユニット７８は、現在ブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換ユニット７８は、逆変換ユニット７８が、復号されている現在ブロックの変換係数に２つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【００８４】
[0092]本開示の例によれば、ビデオデコーダ３０は、符号化ビットストリームから、動きベクトル差分と他の予測シンタックスとを識別するシグナリング情報を受信し得る。ＭＶＤおよび予測シンタックスは、エントロピー復号ユニット７０またはビデオデコーダ３０の別のユニットによって動き補償ユニット７２に受け渡され得る。
【００８５】
[0093]イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【００８６】
[0094]本開示の例によれば、動き補償ユニット７２は、エントロピー復号ユニット７０から受信されたＭＶＤおよび予測シンタックスに基づいて予測データを生成し得る。動き補償ユニット７２は、符号化ビットストリーム中でＭＶＤと予測シンタックスとを受信する。図２Ａの例では、予測シンタックスは、シグナリングされたＭＶＤを作成するために使用される候補動きベクトルを有する候補部分を識別するインデックスを含む。動き補償ユニット７２は、シグナリングされた候補部分に関連する候補動きベクトル（すなわち、候補部分のインデックス）をメモリから取り出すためにこのインデックスを使用し得る。動きベクトルは、参照フレームバッファ８２などのメモリに記憶され得る。動き補償ユニット７２は、次いで、シグナリングされたＭＶＤを、取り出された候補動きベクトルに加算することによってフレームの現在部分のための現在動きベクトルを計算し得る。図２Ａを参照しながら上記で説明したように、いくつかの例では、ＭＶＤを送るのではなく、ゼロのＭＶＤがフラグとしてシグナリングされ得る。この状況では、動き補償ユニット７２は、現在動きベクトルとして単に候補動きベクトルをコピーし得る。
【００８７】
[0095]動き補償ユニット７２はまた、候補部分に関連する動き予測方向および参照インデックスを取り出し得る。参照予測方向は、インター予測モードが単方向である（たとえば、Ｐフレーム）か、双方向である（Ｂフレーム）かを示す。参照インデックスは、候補動きベクトルがどの参照フレームに基づくかを示す。図２Ｂなどに示す他の例では、参照フレームインデックスは、デコーダにシグナリングされ、取り出される必要がないことがある。
【００８８】
[0096]取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償ユニットは現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【００８９】
[0097]動き補償ユニット７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９０】
[0098]さらに、動き補償ユニット７２およびイントラ予測ユニット７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを決定し得る。動き補償ユニット７２およびイントラ予測ユニット７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【００９１】
[0099]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成される対応する予測ブロックと合成（combine）して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ８２に記憶され、参照フレームバッファ８２は、その後の動き補償のための参照ブロックを与え、また、（図３のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【００９２】
[0100]上述のように、本開示において提示する、動きベクトル予測、動き補償および動き推定のための技法は、エンコーダとデコーダの両方に適用可能である。概して、上記の説明に従って、エンコーダは、ビデオフレームの現在部分の現在動きベクトルのための動きベクトル予測子として使用すべき候補動きベクトルを決定し得る。エンコーダは、選択された候補動きベクトルと現在ベクトルとの間の動きベクトル差分をシグナリングする。エンコーダはまた、選択された候補動きベクトルを有する候補部分を識別するインデックスをシグナリングする。デコーダは、次いで、候補部分に関連する動き予測方向および参照フレームインデックスを取り出し、現在部分のためにそれらをコピーし得る。デコーダはまた、候補部分に関連する候補動きベクトルを取り出し、その候補動きベクトルに、シグナリングされた動きベクトル差分を加算して、現在部分の現在動きベクトルを生成する。次いで、現在動きベクトル、動きベクトル予測、および参照フレームインデックスを使用した動き補償プロセスを通して、デコーダによって予測データが形成され得る。
【００９３】
[0101]図６は、図４のビデオエンコーダ２０などのビデオエンコーダによって実行され得る、ビデオを符号化する例示的な方法を示すフローチャートである。ビデオデータを符号化する方法は、ビデオフレームの１つまたは複数の候補部分の各々のための候補動きベクトルを決定する（１２０）。一例では、候補部分は、同じフレーム中の現在部分に隣接する部分である。上記で説明したように、候補動きベクトルは、動き探索プロセスを通して前もって決定され、メモリに記憶された動きベクトルであり得る。次に、エンコーダは、現在フレームの現在部分のための現在動きベクトルを決定し、この現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する（１２２）。この場合も、このプロセスは動き探索プロセスであり得る。
【００９４】
[0102]現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算する（１２４）。ＭＶＤを計算した後に、エンコーダは、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択する（１２６）。選択される候補動きベクトルは、最小の動きベクトル差分を生成する候補動きベクトルであり得る。候補動きベクトルが選択されると、エンコーダは、たとえば符号化ビットストリーム中で、候補動きベクトルのうちの選択された１つを有する候補部分を識別するインデックスをシグナリングし、候補動きベクトルのうちの選択された１つに関して計算された対応する動きベクトル差分をシグナリングする（１２８）。ステップ１２８のシグナリングは、候補動きベクトルの各々が現在動きベクトルと同じ参照フレームを参照する場合に適用可能である。
【００９５】
[0103]別の随意の例では、候補動きベクトルのうちの少なくとも１つが、現在動きベクトルとは異なる参照フレームを参照する。この場合、エンコーダは、選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングし得る（１３０）。
【００９６】
[0104]いくつかの例では、候補動きベクトルのうちの選択された１つは、ゼロの動きベクトル差分に対応する。その場合、候補動きベクトルのうちの選択された１つに関して決定された対応する動きベクトル差分をシグナリングすることは、動きベクトル差分自体をシグナリングするのではなく、動きベクトル差分を示すフラグをシグナリングすることを含み得る。
【００９７】
[0105]図７は、図５のビデオデコーダ３０などのビデオデコーダによって実行され得る、ビデオを復号する例示的な方法を示すフローチャートである。ビデオデータを復号する方法は、フレームの候補部分を識別するインデックスを受信し、動きベクトル差分を受信することと（１３６）、候補部分に関連する候補動きベクトルを取り出すことと（１３８）を含む。候補動きベクトルは、すでに復号されている候補部分（すなわち、因果的部分）のためのメモリから取り出され得る。いくつかの例では、受信された動きベクトル差分は、動きベクトル差分がゼロであることを示すフラグによって示され得る。ビデオデコーダはまた、候補部分に関連する動き予測方向および参照フレームインデックスを取り出す（１４０）。ビデオデコーダは、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定する（１４２）。これは、候補動きベクトルに動きベクトル差分を加算することによって達成され得る。ビデオデコーダは、次いで、予測ビデオデータを生成するために、決定された現在動きベクトル、動き予測方向および参照フレームインデックスを使用して現在部分に対して動き補償を実行する（１４４）。
【００９８】
[0106]図８は、図７に示す方法のわずかな変形態である、ビデオを復号する例示的な方法を示すフローチャートである。図８の例では、ビデオデコーダは、動きベクトル差分、およびフレームの候補部分を識別するインデックスとともに、参照フレームインデックスを受信する（１３７）。したがって、動きベクトル（１３８）および動き予測方向（１４１）のみを取り出す必要がある。
【００９９】
[0107]図９は、ビデオを復号する別の例示的な方法を示すフローチャートである。図７〜図８に示す方法の前にまたはそれと並列に、ビデオデコーダは、現在部分のビデオデータをエントロピー復号し（１４６）、残差データを生成するために、エントロピー復号されたビデオデータを逆量子化し、逆変換する（１４８）。図７または図８に示す方法によって予測データが生成されると、ビデオデコーダは、復号されたビデオデータを形成するために予測ビデオデータを残差ビデオデータと合成（combine）する（１５０）。
【０１００】
[0108]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１０１】
[0109]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（disc）（登録商標）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１０２】
[0110]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１０３】
[0111]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１０４】
[0112]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオデータを符号化する方法であって、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を備える、方法。
［２］  前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照フレームを参照する、［１］に記載の方法。
［３］  前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、［１］に記載の方法。
［４］  前記候補部分は前記現在部分に隣接する、［３］に記載の方法。
［５］  前記候補動きベクトルのうちの前記選択された１つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された１つに関して決定された前記対応する動きベクトル差分をシグナリングすることは、ゼロの前記動きベクトル差分を示すフラグをシグナリングすることを備える、［１］に記載の方法。
［６］  前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを備える、［１］に記載の方法。
［７］  前記候補動きベクトルのうちの少なくとも１つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすること、をさらに備える、［１］に記載の方法。
［８］  ビデオデータを復号する方法であって、
ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を備える、方法。
［９］  前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をさらに備える、［８］に記載の方法。
［１０］  前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことをさらに備え、動き補償を実行することは、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用することをも備える、［８］に記載の方法。
［１１］  参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
をさらに備え、動き補償を実行することは、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用することを備える、［８］に記載の方法。
［１２］  前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することは、前記候補部分に関連する前記候補動きベクトルをコピーすることを備える、［８］に記載の方法。
［１３］    ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行うように構成されたビデオエンコーダを備える装置。
［１４］  前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、［１３］に記載の装置。
［１５］  前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、［１３］に記載の装置。
［１６］  前記候補部分は前記現在部分に隣接する、［１５］に記載の方法。
［１７］  前記候補動きベクトルのうちの前記選択された１つは、ゼロの動きベクトル差分に対応し、前記ビデオエンコーダは、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングするように構成された、［１３］に記載の装置。
［１８］  前記ビデオエンコーダは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択するようにさらに構成された、［１３］に記載の装置。
［１９］  前記候補動きベクトルのうちの少なくとも１つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記ビデオエンコーダは、前記選択された候補動きベクトルに関連する参照ビデオフレームを識別する参照インデックスをシグナリングするようにさらに構成された、［１３］に記載の装置。
［２０］    ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を行うように構成されたビデオデコーダを備える、装置。
［２１］  前記ビデオデコーダは、
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を行うようにさらに構成された、［２０］に記載の装置。
［２２］  前記ビデオデコーダは、
前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、
前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、
を行うようにさらに構成された、［２０］に記載の装置。
［２３］  前記ビデオデコーダは、
参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとをも使用して動き補償を実行することと、
を行うようにさらに構成された、［２０］に記載の装置。
［２４］  前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記ビデオデコーダは、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定するようにさらに構成された、［２０］に記載の装置。
［２５］  ビデオデータを符号化するように構成された装置であって、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定する手段と、
現在ビデオフレームの現在部分のための現在動きベクトルを決定するための手段と、前記現在動きベクトルは参照フレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算する手段と、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択する手段と、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングする手段と、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングする手段と、
を備える、装置。
［２６］  前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、［２５］に記載の装置。
［２７］  前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、［２５］に記載の装置。
［２８］  前記候補部分は前記現在部分に隣接する、［２７］に記載の方法。
［２９］  前記候補動きベクトルのうちの前記選択された１つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された１つに関して決定された前記対応する動きベクトル差分をシグナリングする前記手段は、ゼロの前記動きベクトル差分を示すフラグをシグナリングする手段を備える、［２５］に記載の装置。
［３０］  前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択する前記手段は、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択する手段を備える、［２５］に記載の装置。
［３１］  前記候補動きベクトルのうちの少なくとも１つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングする手段をさらに備える、［２５］に記載の装置。
［３２］  ビデオデータを復号するように構成された装置であって、
ビデオフレームの候補部分を識別するインデックスを受信する手段と、
動きベクトル差分を受信する手段と、
前記候補部分に関連する候補動きベクトルを取り出す手段と、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定する手段と、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行する手段と、
を備える、装置。
［３３］  前記現在部分のビデオデータをエントロピー復号する手段と、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換する手段と、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成する手段と、
をさらに備える、［３２］に記載の装置。
［３４］  前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出す手段をさらに備え、動き補償を実行する前記手段は、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用する手段をも備える、［３２］に記載の装置。
［３５］  参照ビデオフレームを識別する参照インデックスを受信する手段と、
前記候補部分に関連する動き予測方向を取り出す手段と、
をさらに備え、動き補償を実行する前記手段は、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用する手段をも備える、［３２］に記載の装置。
［３６］  前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定する前記手段は、前記候補部分に関連する前記候補動きベクトルをコピーする手段を備える、［３２］に記載の装置。
［３７］  実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオフレームの１つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの１つを選択することと、
前記候補動きベクトルのうちの前記選択された１つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された１つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［３８］  前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、［３７］に記載のコンピュータプログラム製品。
［３９］  前記１つまたは複数の候補部分は前記現在ビデオフレーム中にある、［３７］に記載のコンピュータプログラム製品。
［４０］  前記候補部分は前記現在部分に隣接する、［３９］に記載のコンピュータプログラム製品。
［４１］  前記候補動きベクトルのうちの前記選択された１つは、ゼロの動きベクトル差分に対応し、
前記コンピュータプログラム製品は、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングすることをプロセッサに行わせる命令をさらに含む、［３７］に記載のコンピュータプログラム製品。
［４２］  最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することをプロセッサに行わせる命令をさらに含む、［３７］に記載のコンピュータプログラム製品。
［４３］  前記候補動きベクトルのうちの少なくとも１つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記コンピュータプログラム製品は、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすることをプロセッサに行わせる命令をさらに含む、［３７］に記載のコンピュータプログラム製品。
［４４］  実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［４５］  前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をプロセッサに行わせる命令をさらに含む、［４４］に記載のコンピュータプログラム製品。
［４６］  前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、
前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、
をプロセッサに行わせる命令をさらに含む、［４４］に記載のコンピュータプログラム製品。
［４７］  参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用して動き補償を実行することと、
をプロセッサに行わせる命令をさらに含む、［４４］に記載のコンピュータプログラム製品。
［４８］  前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、
前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することをプロセッサに行わせる命令をさらに含む、［４４］に記載のコンピュータプログラム製品。
【図１Ａ】
0005778299.tif 000002
【図１Ｂ】
0005778299.tif 000003
【図２Ａ】
0005778299.tif 000004
【図２Ｂ】
0005778299.tif 000005
【図３】
0005778299.tif 000006
【図４】
0005778299.tif 000007
【図５】
0005778299.tif 000008
【図６】
0005778299.tif 000009
【図７】
0005778299.tif 000010
【図８】
0005778299.tif 000011
【図９】
0005778299.tif 000012