(57)【要約】  一例において、映像コーディングデバイスは、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す値をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す値をコーディングし、ｘ成分の絶対値がゼロよりも大きいときに、ｘ成分の絶対値を表す情報をコーディングし、ｙ成分の絶対値がゼロよりも大きいときに、ｙ成分の絶対値を表す情報をコーディングし、ｘ成分の絶対値がゼロよりも大きいときに、ｘ成分の符号をコーディングし、及び、ｙ成分の絶対値がゼロよりも大きいときに、ｙ成分の符号をコーディングするように構成された映像コーダを含む。
2014523714.tif 000002
【特許請求の範囲】
【請求項１】
映像データをコーディングする方法であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングすることと、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングすることと、を備える、方法。
【請求項２】
コーディングすることは、符号化することを備え、
映像データの前記現在のブロックに関する動きベクトルを計算することと、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することと、をさらに備える請求項１に記載の方法。
【請求項３】
コーディングすることは、復号することを備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定することと、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することと、をさらに備える請求項１に記載の方法。
【請求項４】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることであって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きいことをさらに備え、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすること及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングすることを備える請求項１に記載の方法。
【請求項５】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することをさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定することと、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することと、を備える請求項４に記載の方法。
【請求項６】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを備える請求項５に記載の方法。
【請求項７】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることは、動きベクトル解像度フラグに関する値をコーディングすることを備える請求項４に記載の方法。
【請求項８】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項１記載の方法。
【請求項９】
映像データをコーディングするための装置であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングし、前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングし、及び、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングするように構成された映像コーダ、を備える、装置。
【請求項１０】
前記映像コーダは、映像符号器を備え、前記映像符号器は、映像データの前記現在のブロックに関する動きベクトルを計算し及び前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するようにさらに構成される、請求項９に記載の装置。
【請求項１１】
前記映像コーダは、映像復号器を備え、前記映像復号器は、映像データの前記現在のブロックに関する動きベクトル予測子を決定し及び映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するようにさらに構成される請求項９に記載の装置。
【請求項１２】
前記映像コーダは、映像データの前記現在のブロックの動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするように構成され、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、前記映像コーダは、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするように構成される請求項９に記載の装置。
【請求項１３】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトルと関連付けられたスレショルド値を決定し、及び、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するように構成される請求項１２に記載の装置。
【請求項１４】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成される請求項１３に記載の装置。
【請求項１５】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成される請求項１２に記載の装置。
【請求項１６】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをするように構成され、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをするように構成され、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項９記載の装置。
【請求項１７】
前記装置は、
集積回路、
マイクロプロセッサ、及び
前記映像コーダを含む無線通信デバイスのうちの少なくとも１つを備える請求項９に記載の装置。
【請求項１８】
映像データをコーディングするための装置であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングするための手段と、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｘ成分の符号をコーディングするための手段と、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｙ成分の符号をコーディングするための手段と、を備える、装置。
【請求項１９】
コーディングするための前記手段は、符号化するための手段を備え、
映像データの前記現在のブロックに関する動きベクトルを計算するための手段と、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するための手段と、をさらに備える請求項１８に記載の装置。
【請求項２０】
コーディングするための前記手段は、復号するための手段を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定するための手段と、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するための手段と、をさらに備える請求項１８に記載の装置。
【請求項２１】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするための手段であって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きい手段と、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするための手段と、をさらに備える請求項１８に記載の装置。
【請求項２２】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定するための手段と、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するための手段と、を備える請求項２１に記載の装置。
【請求項２３】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための前記手段は、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段を備える請求項２２に記載の装置。
【請求項２４】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングするための前記手段は、動きベクトル解像度フラグに関する値をコーディングするための手段を備える請求項２１に記載の装置。
【請求項２５】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項１８記載の装置。
【請求項２６】
実行されたときに、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングし、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングし、及び
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングすることを映像データをコーディングするためのデバイスの１つ以上のプロセッサに行わせる命令を格納しているコンピュータによって読み取り可能な記憶媒体、を備える、コンピュータプログラム製品。
【請求項２７】
コーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、符号化することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトルを計算し、及び
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備える請求項２６に記載のコンピュータプログラム製品。
【請求項２８】
コーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、復号することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定し、及び
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備える請求項２６に記載のコンピュータプログラム製品。
【請求項２９】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す値をまとめてコーディングすることを前記１つ以上のプロセッサに行わせる命令を備える請求項２６に記載のコンピュータプログラム製品。
【請求項３０】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定し、及び
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項３０に記載のコンピュータプログラム製品。
【請求項３２】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、動きベクトル解像度フラグに関する値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項２９に記載のコンピュータプログラマブル製品。
【請求項３３】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項２６に記載のコンピュータプログラマブル製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、各々の内容全体がここにおける引用によって組み入れられている米国仮特許出願第６１／５０４，１５０号（出願日：２０１１年７月１日）、及び米国仮特許出願第６１／５５４，３９８号（出願日：２０１１年１１月１日）、の利益を主張するものである。
【０００２】
本開示は、映像コーディングに関するものである。本開示は、より具体的には、映像コーディングにおける動き補償のための映像データのコーディングに関するものである。
【背景技術】
【０００３】
デジタル映像能力は、デジタルテレビ、デジタル直接放送システム、無線放送システム、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤー、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話、衛星無線電話、ビデオ会議デバイス、等を含む広範なデバイス内に組み入れることができる。デジタル映像デバイスは、デジタル映像情報をより効率的に送信及び受信するために映像圧縮技法、例えば、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、によって定義される規格、又は該規格の拡張において説明されるそれら、を実装する。
【０００４】
映像圧縮技法は、映像シーケンスにおいて固有の冗長性を低減又は除去するための空間予測及び／又は時間予測を実施する。ブロックに基づく映像コーディングの場合は、映像フレーム又はスライスをマクロブロックに分割することができる。各マクロブロックは、さらに分割することができる。イントラコーディングされた（Ｉ）フレーム又はスライス内のマクロブロックは、隣接するマクロブロックに関する空間予測を用いて符号化される。インターコーディングされた（Ｐ又はＢ）フレーム又はスライス内のマクロブロックは、同じフレーム又はスライス内の隣接するマクロブロックに関する空間予測又はその他の基準フレームに関する時間予測を使用することができる。
【発明の概要】
【０００５】
概して、本開示は、動きベクトルのｘ及びｙ成分（ｃｏｍｐｏｎｅｎｔ）に関する動きベクトル差分値（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｉｆｆｅｒｅｎｃｅ  ｖａｌｕｅ）をまとめてコーディングするための技法を提供する。動きベクトル差分値をまとめてコーディングすることは、動きベクトル差分値のｘ及びｙ成分を表す情報が、例えば、ｘ及びｙ成分に関する値をインターリービングすることによって又は動きベクトル差分値のｘ及びｙ成分の両方を表す単一値をコーディングすることによって、コーディングプロセス中にいっしょに符号化又は復号されるプロセスを意味することができる。幾つかの例では、動きベクトル差分のｘ及びｙ成分を表す情報は、動きベクトル差分のｘ成分及び／又はｙ成分がゼロよりも大きいかどうかを表す情報と、動きベクトル差分値のｘ成分及びｙ成分の符号を表す情報と、を含むことができる。幾つかの情報、例えば、ｘ及び／又はｙ成分の符号及び大きさ、は、動きベクトル差分値の大きさｘ成分又はｙ成分がゼロより大きいかどうかに基づいて条件付きでシグナリングすることができる。本開示は、動きベクトルの精度をシグナリングするための技法も提供する。動きベクトルは、サブピクセル精度、例えば、１／４サブピクセル精度又は１／８サブピクセル精度、を有することができる。
【０００６】
一例では、映像データをコーディングする方法は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の符号をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の符号をコーディングすることと、を含む。
【０００７】
他の例では、装置は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、動きベクトル差分値のｘ成分の絶対値がゼロより大きいときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングし、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の符号をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の符号をコーディングするように構成された映像コーダを含む。
【０００８】
他の例では、コンピュータプログラム製品は、実行されたときに、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングし、動きベクトル差分値のｘ成分の絶対値がゼロより大きいときに、動きベクトル差分値のｘ成分の符号をコーディングし、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の符号をコーディングすることを映像データをコーディングするためのデバイスの１つ以上のプロセッサに行わせる命令を格納しているコンピュータによって読み取り可能な媒体を含む。
【０００９】
他の例では、デバイスは、映像データの現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするための手段を含み、第２のサブピクセル精度は、第１のサブピクセル精度よりも大きく、動きベクトルが第２のサブピクセル精度を有するとき、動きベクトル差分値のｘ成分がゼロに等しくないとき、及び動きベクトル差分値のｙ成分がゼロに等しくないときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすること及び動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすることは、動きベクトル差分値のｘ成分及び動きベクトル差分値のｙ成分の両方を表す、まとめてコーディングされた値をコーディングすることを備える。
【００１０】
１つ以上の例の詳細が添付図面及び以下の説明において示される。これらの説明及び図面から、及び請求項からその他の特徴、目的、及び利点が明確になるであろう。
【図面の簡単な説明】
【００１１】
【図１】本開示の技法と一致する映像符号化及び復号システムの一例を示したブロック図である。
【図２】本開示の技法と一致する映像符号器の一例を示したブロック図である。
【図３】本開示の技法と一致する映像復号器の一例を示したブロック図である。
【図４】動きベクトル差分値のｘ及びｙ成分をまとめて符号化し及び現在のブロックをエントロピーコーディングするための方法例を示したフローチャートである。
【図５】ＨＥＶＣ試験モデル３．０（ＨＭ３．０）による動きベクトル差分値を別々にシグナリングする方法例を示したフローチャートである。
【図６】動きベクトル差分値のｘ及びｙ成分をまとめて符号化するための方法例を示したフローチャートである。
【図７】動きベクトル差分値のｘ及びｙ成分をまとめて符号化し及び動きベクトル差分値のｘ及びｙ成分の解像度を符号化するための方法例を示したフローチャートである。
【図８】動きベクトル差分値のｘ及びｙ成分をまとめて復号し及びエントロピーコーディングされたデータを復号して現在のブロックを生成するための方法例を示したフローチャートである。
【図９】動きベクトル差分値のｘ及びｙ成分をまとめて復号するための方法例を示したフローチャートである。
【発明を実施するための形態】
【００１２】
概して、本開示は、映像コーディング中に動きベクトル差分値に関するデータをコーディングするための技法について説明する。映像データは、動きをシミュレーションするために高速で連続して再生されるフレーム（又はピクチャ）のシーケンスを含む。映像データの各フレームは、ブロックに分割することができる。映像コーディング中、より具体的にはインター予測中に、デバイス、例えば、映像符号器又は映像復号器、は、ブロックのピクセル値を予測することができる。映像符号器又は復号器は、他のフレームからの又は隣接ブロックのピクセル値からのブロックのピクセル値に基づいてブロックに関する予測を行うことができる。
【００１３】
イントラ予測の場合は、映像符号器は、動きベクトルを用いて基準ブロックの変位を示すことができる。動きベクトルは、ｘ成分及びｙ成分を有することができる。動きベクトルのｘ及びｙ成分は、サブピクセル精度、例えば、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度、との変位を示すことができる。サブピクセル精度を達成するため、映像符号器又は復号器は、補間法、等の技法を用いて、動きベクトルによって示される位置におけるサブピクセル値を決定することができる。動きベクトルのｘ及びｙ成分を決定した後は、映像符号器は、動きベクトル予測子（ｐｒｅｄｉｃｔｏｒ）に関する動きベクトル成分に関する動きベクトル差分（ＭＶＤ）値を計算することができる。
【００１４】
本開示は、概して、動きＭＶＤ値をまとめてコーディングするための技法を提供する。本開示では、まとめてコーディングすることは、動きベクトル差分値の第２の成分に関連する情報をコーディングする前にｘ又はｙ成分のうちの１つに関連する全情報をコーディングするのとは反対に、動きベクトル差分値のｘ及びｙ成分に関連する情報がインターリービングされるコーディング技法を意味することができる。まとめてコーディングすることは、ｘ及びｙ成分の両方に関する値を表すために１つの値を使用することも意味することができる。さらに、本開示は、動きベクトル差分をコーディングするための技法についても説明し、それらは、様々なサブピクセル精度、例えば、１／４ピクセル精度又は１／８ピクセル精度を有することができ、動きベクトルと関連付けられた動きベクトル差分及び動きベクトルの精度を示す。
【００１５】
映像シーケンスは、１つ以上のフレーム又はピクチャを含む。それらのピクチャの各々は、１つ以上のブロックに分割することができ、それらの各々は、個々にコーディングすることができる。現在は高効率映像コーディング（ＨＥＶＣ）と呼ばれ、時々ＩＴＵ  Ｈ．２６５と呼ばれる新しい符号化規格を作成するための努力が進行中である。この来るべき規格は、ルミナンスデータとクロミナンスデータを含む特定のピクセルブロックとしてコーディングユニット（ＣＵ）に言及し、ここで、ルミナンスデータは、２Ｎ×２Ｎの解像度を有し、クロミナンスデータは、Ｎ×Ｎの解像度を有する。コーディングユニットは、４つの等しいサイズの、正方形の、互いに重なり合わないサブコーディングユニットに分割することができる。
【００１６】
サブコーディングユニットの各々は、この方法で、さらなるサブコーディングユニットに分割することもできる。サブコーディングユニットに分割されないコーディングユニットは、リーフノード（ｌｅａｆ−ｎｏｄｅ）コーディングユニットと呼ばれる。リーフノードコーディングユニットは、予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とを含むことができ、ここで、ＰＵは、予測データを表し、ＴＵは、残差データ、すなわち、ＴＵに対応するピクセルに関する予測データとオリジナルのコーディングされていないデータとの間のコーディングされたピクセル別の差分を表す。一例として、ＰＵは、インター予測モードを用いてコーディングすることができ、映像符号器は、動き推定プロセスを用いてＰＵに関する動きベクトルを計算することができる。映像符号器は、本開示で説明されるように、ＰＵに関する符号化モード及び計算された動きベクトルに関する動きベクトル差分値をさらにシグナリングすることができる。
【００１７】
同様に、映像復号器は、コーディングされたブロックに関する予測データを形成するためにコーディングされたビットストリームに含まれる予測モードを示す情報を使用することができる。データは、動きベクトルの精度、及び動きベクトルが指し示すフラクショナルピクセル（ｆｒａｃｔｉｏｎａｌ  ｐｉｘｅｌ）位置（例えば、基準フレーム又は基準スライスの１／８ピクセル位置）の表示をさらに含むことができる。
【００１８】
映像コーディングデバイス、例えば、映像符号器又は映像復号器、は、コーディングユニット（例えば、フレーム、スライス、又はブロック）に関する予測的動きベクトルを決定することができる。映像コーディングデバイスは、現在のブロックに関する動きベクトルの動きベクトル差分値を計算するために予測的動きベクトル（動きベクトル予測子とも呼ばれる）のｘ及びｙ成分を使用することができる。映像コーディングデバイスは、動きベクトルに関する動きベクトル差分値をまとめてコーディングするために本開示の技法を実装することができ、それは、サブピクセル精度を有することができる。
【００１９】
上述されるように、予測ブロックを形成するためのＰＵの予測データは、空間的に隣接するＣＵ又は前にコーディングされている時間的に隣接するフレームのＣＵの前にコーディングされたデータに基づくことができる。映像符号器は、時間的に分離された、前にコーディングされたフレーム内の対応するＣＵに関する予測ブロックの位置を示すＰＵの動きベクトルを計算することができる。映像符号器は、動きベクトルを符号化するために動きベクトルに関する動きベクトル差分値をさらに計算することができる。動きベクトル差分値は、概して、計算された動きベクトルと動きベクトル予測子との間の差分に対応することができる。現在のブロックに関する動きベクトルは、水平オフセットに関するｘ成分（ＭＶ_ｘ）、及び垂直オフセットに関するｙ成分（ＭＶ_ｖ）を有することができる。動きベクトル予測子は、ｐ_ｘのｘ成分及びｐ_ｙのｙ成分を有することができる。従って、動きベクトル予測子は、＜ＭＶ_ｘ−ｐ_ｘ，ＭＶ_ｙ−ｐ_ｙ＞として決定することができる。
【００２０】
本開示は、動きベクトル差分値のｘ成分及びｙ成分をまとめてコーディングするための技法を提供する。本開示では、まとめてコーディングすることは、動きベクトル差分値のｘ及びｙ成分に関連する情報がインターリービングされるコーディング技法を意味することができる。動きベクトル差分に関連する情報は、幾つかの例として、動きベクトル差分値の成分がゼロであるかどうかを表す値、ｘ及び／又はｙ成分の符号値を表す１つ以上の値、及び動きベクトル差分値のｘ及びｙ成分の絶対値を表す１つ以上の値を含むことができる。
【００２１】
本開示の技法により、動きベクトル差分値の１つの又は両方の成分に関連する情報は、動きベクトル差分の他方の成分に関連する情報をコーディングする前に動きベクトル差分の１方の成分に関連する全情報をコーディングする必要がないように交互にコーディングすることができる。換言すると、ｘ成分の１つの要素、例えば、ｘ成分がゼロより大きい大きさを有するかどうか、をｙ成分の対応する要素とインターリービングすることができる。動きベクトル差分のｘ及びｙ成分をまとめてコーディングすることは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４内の規約に準拠して、動きベクトル差分値のｘ及びｙ成分のうちの１つに関連する全情報を別々にコーディングすることと対照的である。動きベクトル差分値のｘ及びｙ成分をまとめてコーディングすることは、映像コーディングビットストリームの複雑さを低減させ、その結果、コーディングされた映像に関するビットレートが低下し、及びここにおいて説明されるその他の潜在的な利点が得られる。
【００２２】
従来のＩＴＵ−Ｔ  Ｈ．２６４規格による映像コーディングでは、動きベクトルは、１／４ピクセル（すなわち、ピクセルの１／４）精度を有することができる。幾つかの例では、１／８ピクセル（すなわち、１／８のピクセル）精度が、幾つかの利点を提供することができる。高効率映像コーディング試験モデル（ＨＭ）は、１／８ピクセル精度を有する動きベクトルを用いて予測ユニットを形成する能力を有する。特に、ＨＭは、１／４ピクセル精度又は１／８ピクセル精度を好適に選択する能力を提供する。このようにして、動きベクトルは、動きベクトル解像度とも呼ばれる適応型精度を有することができる。このフラクショナルな、整数よりも小さい（ｓｕｂ−ｉｎｔｅｇｅｒ）ピクセル精度は、前にコーディングされたフレーム内の内挿されたピクセル値のブロックに関して動きベクトルを定義するために使用することができる。
【００２３】
本開示は、１／４又は１／８ピクセル精度の動きベクトルを使用することができる特定の事例を選択するための技法、及び動きベクトル精度を特定の動きベクトルに関してシグナリングすることができる方法も提供する。特に、本開示の技法は、動きベクトル解像度を選択すること、及び幾つかの例において動き解像度フラグを用いて解像度をシグナリングすることを対象とする。本開示は、特定の動きベクトルのｘ及びｙ成分をまとめてシグナリングするための技法も提供する。
【００２４】
本開示は、動きベクトルコーディングに関連する幾つかの技法、例えば、動きベクトル差分値をまとめてコーディングすること、及び１つ以上の動きベクトル差分値の精度、振幅、及び符号をシグナリングすること、について説明する。本開示の技法は、映像コーディングデバイス、例えば、映像符号器又は映像復号器、によって行われるコーディングプロセス中に実施することができる。本開示では、用語“コーディング”は、符号器で生じる符号化又は復号器で生じる復号を意味する。同様に、用語コーダは、符号器、復号器、又は結合された符号器／復号器（ＣＯＤＥＣ）を意味する。用語コーダ、符号器、復号器及びＣＯＤＥＣは、すべて、本開示と一致する映像データのコーディング（符号化及び又は復号）のために設計された特定のマシンを意味する。
【００２５】
図１は、動きベクトルをまとめてシグナリングするための技法を利用することができる映像符号化及び復号システム例１０を示したブロック図である。図１に示されるように、システム１０は、通信チャネル１６を介して行先デバイス１４に符号化された映像を送信するソースデバイス１２を含む。ソースデバイス１２及び行先デバイス１４は、広範なデバイスのうちのいずれかを備えることができる。幾つかの事例では、ソースデバイス１２及び行先デバイス１４は、無線通信デバイス、例えば、無線ハンドセット、いわゆる携帯電話又は衛星無線電話、又は通信チャネル１６を通じて映像情報を通信することができるあらゆる無線デバイス、を備え、この場合、通信チャネル１６は無線である。しかしながら、本開示の技法は、サブピクセル精度を有することができる動きベクトル差分値をまとめてコーディングする、例えば、まとめてシグナリングする及び／又はまとめてシグナリングされた値を解釈することに関するものであり、必ずしも無線用途又は設定には限定されない。例えば、これらの技法は、オーバーザエアのテレビ放送、ケーブルテレビ送信、衛星テレビ送信、インターネット映像送信、記憶媒体上に符号化される符号化されたデジタル映像、又はその他のシナリオに適用することができる。従って、通信チャネル１６は、符号化された映像データの送信又は格納に適した無線、有線、又は記憶媒体のあらゆる組み合わせを備えることができる。
【００２６】
図１の例では、ソースデバイス１２は、映像ソース１８と、映像符号器２０と、変調器／復調器（モデム）２２と、送信機２４と、を含む。行先デバイス１４は、受信機２６と、モデム２８と、映像復号器３０と、表示装置３２と、を含む。本開示により、ソースデバイス１２の映像符号器２０は、サブピクセル精度を有することができる動きベクトル差分をシグナリングするための技法に適用するように構成することができる。その他の例では、ソースデバイス及び行先デバイスは、その他のコンポーネント又は配置を含むことができる。例えば、ソースデバイス１２は、外部の映像源１８、例えば、外部カメラ、から映像データを受信することができる。同様に、行先デバイス１４は、一体化された表示装置を含むのではなく、外部の表示装置とインタフェースすることができる。
【００２７】
図１の例示されるシステム１０は、単なる一例であるにすぎない。動きベクトル差分精度をまとめてシグナリングするための技法は、あらゆるデジタル映像符号化及び又は復号デバイスによって実施することができる。概して、本開示の技法は、映像符号化デバイスによって実施されるが、それらの技法は、典型的には“ＣＯＤＥＣ”と呼ばれる映像符号器／復号器によって実施することもできる。さらに、本開示の技法は、映像プリプロセッサによって実施することもできる。ソースデバイス１２及び行先デバイス１４は、該コーディングデバイスの単なる例であり、ソースデバイス１２が行先デバイス１４に送信するためのコーディングされた映像データを生成する。幾つかの例では、デバイス１２、１４は、デバイス１２、１４の各々が映像符号化及び復号コンポーネントを含むように実質的に対称的に動作することができる。従って、システム１０は、例えば、映像ストリーミング、映像再生、映像放送、又は映像テレフォニーのための、映像デバイス１２、１４間での１方向又は２方向の映像送信をサポートすることができる。
【００２８】
ソースデバイス１２の映像ソース１８は、映像キャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされた映像が入った映像アーカイブ、及び／又はビデオコンテンツプロバイダからの映像フィードを含むことができる。さらなる代替として、映像ソース１８は、コンピュータグラフィックスに基づくデータをソース映像、又は、ライブ映像、アーカイブに保存された映像、及びコンピュータによって生成された映像の組み合わせとして生成することができる。幾つかの場合、映像ソース１８がビデオカメラである場合は、ソースデバイス１２及び行先デバイス１４は、いわゆるカメラフォン又はビデオフォンを形成することができる。しかしながら、上述されるように、本開示で説明される技法は、映像コーディング全般に対して適用可能であり、無線及び／又は有線の用途に適用することができる。各々の場合において、キャプチャされた、予めキャプチャされた、又はコンピュータによって生成された映像は、映像符号器２０によって符号化することができる。符号化された映像情報は、通信規格によりモデムによって変調し、送信機２４を介して行先１４に送信することができる。モデム２２は、様々なミキサ、フィルタ、増幅器又は信号変調用に設計されたその他のコンポーネントを含むことができる。送信機２４は、データを送信するように設計された回路を含むことができ、増幅器と、フィルタと、１つ以上のアンテナと、を含む。
【００２９】
行先デバイス１４の受信機２６は、チャネル１６を通じて情報を受信し、モデム２８がその情報を復調する。繰り返すと、映像符号化プロセスは、サブピクセル精度を有することができる動きベクトル差分をシグナリングするためにここにおいて説明される技法のうちの１つ以上を実装することができる。チャネル１６を通じて通信される情報は、マクロブロック及びその他のコーディングされたユニット、例えば、ＧＯＰ、の特徴及び／又は処理について記述する構文要素を含む、映像符号器２０によって定義された構文情報を含むことができ、それは、映像復号器３０によっても使用される。表示装置３２は、復号された映像データをユーザに表示し、及び、様々な表示装置、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又はその他のタイプの表示装置、を備えることができる。
【００３０】
図１の例において、通信チャネル１６は、あらゆる無線又は有線の通信媒体、例えば、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的送信線、又は無線媒体と有線媒体のあらゆる組み合わせを備えることができる。通信チャネル１６は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク、例えば、インターネットの一部を成すことができる。通信チャネル１６は、概して、映像データをソースデバイス１２から行先デバイス１４に送信するためのあらゆる適切な通信媒体、又は異なる通信媒体の集合、を表し、有線又は無線媒体のあらゆる適切な組み合わせを含む。通信チャネル１６は、ルータ、スイッチ、基地局、又はソースデバイス１２から行先デバイス１４への通信を容易にするのに役立つことができるその他のあらゆる装置を含むことができる。その他の例では、ソースデバイス１２は、符号化されたデータを送信するのではなく、記憶媒体に格納することができる。同様に、行先デバイス１４は、符号化されたデータを記憶媒体から取り出すように構成することができる。
【００３１】
映像符号器２０及び映像復号器３０は、映像圧縮規格、例えば、近い将来のＩＴＵ−Ｔ高効率映像コーディング（ＨＥＶＣ）規格であり、“Ｈ．２６５”とも呼ばれる、に準拠して動作することができる。ＨＥＶＣは、まだ最終化されておらず、このため、映像符号器２０及び復号器３０は、高効率映像コーディング試験モデル（ＨＭ）と呼ばれるＨＥＶＣの最新草案に準拠して動作することができる。その他の例は、ＭＰＥＧ−２と、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＴＵ−Ｔ  Ｈ．２６４と、を含む。図１には示されていないが、幾つかの態様では、映像符号器２０及び復号器３０は、各々、音声符号器及び復号器とともに一体化することができ、及び、１つの共通のデータストリーム又は別々のデータストリーム内での音声及び映像の両方の符号化を取り扱うための該当するＭＵＸ−ＤＥＭＵＸユニット、又はその他のハードウェアとソフトウェア、を含むことができる。該当する場合は、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はその他のプロトコル、例えば、ユーザデータグラムプロトコル（ＵＤＰ）、に準拠することができる。
【００３２】
ＨＥＶＣ規格は、映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）として知られる集団的なパートナーシップの産物として、ＩＴＵ−Ｔ映像コーディング専門家グループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣムービングピクチャエキスパーツグループが共同で現在策定中である。ＨＭでは、以前のコーディング規格、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣ、に準拠したデバイスよりも優れた映像コーディングデバイスの幾つかの能力を想定している。例えば、Ｈ．２６４は、９つのイントラ予測符号化モードを提供するが、ＨＭは、３４ものイントラ予測符号化モードを提供する。
【００３３】
映像符号器２０及び映像復号器３０は、各々、様々な適切な符号器回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせ、のうちのいずれかとして実装することができる。映像符号器２０及び映像復号器３０の各々は、１つ以上の符号器又は復号器に含めることができ、それらのいずれも、各々のカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバ、等内の結合された符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。
【００３４】
映像シーケンスは、典型的には、一連の映像フレームを含む。ピクチャのグループ（ＧＯＰ）は、概して、一連の１つ以上の映像フレームを備える。ＧＯＰは、ＧＯＰに含まれるフレーム数を記述する構文データをＧＯＰのヘッダ、ＧＯＰの１つ以上のフレームのヘッダ、又はその他の場所に含めることができる。各フレームは、各々のフレームに関する符号化モードを記述するフレーム構文データを含むことができる。映像符号器２０は、典型的には、映像データを符号化するために個々の映像フレーム内の映像ブロック、ＣＵとも呼ばれる、に関して動作する。映像ブロックは、ＬＣＵ又はＬＣＵのパーティションに対応することができる。映像ブロックは、固定されたサイズ又は可変のサイズを有することができ、及び、規定されたコーディング規格によりサイズが異なることができる。各映像フレームは、複数のスライスを含むことができる。各スライスは、複数のＬＣＵを含むことができ、それらは、サブＣＵとも呼ばれるパーティション内に配置することができる。
【００３５】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、様々なブロックサイズ、例えば、ルマ成分の場合は１６  ｂｙ  １６、８  ｂｙ  ８、又は４  ｂｙ  ４、クロマ成分の場合は８  ×  ８、のイントラ予測、及び、様々なブロックサイズ、例えば、ルマ成分の場合は１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、クロマ成分の場合は対応するスケーリングされたサイズのインター予測、をサポートする。本開示では、“Ｎ×Ｎ”及び“Ｎ  ｂｙ  Ｎ”は、縦及び横の寸法に関するブロックのピクセル寸法を意味するために互換可能な形で使用することができ、例えば、１６×１６ピクセル又は１６  ｂｙ  １６ピクセルである。概して、１６×１６ブロックは、縦方向に１６ピクセル（ｙ＝１６）及び横方向に１６ピクセル（ｘ＝１６）を有することになる。同様に、Ｎ×Ｎブロックは、概して、縦方向にＮピクセル、横方向にＮピクセルを有し、ここで、Ｎは、負でない整数値を表す。ブロック内のピクセルは、行及び列内に配置することができる。さらに、ブロックは、必ずしも横方向と縦方向で同じ数のピクセルを有する必要はない。例えば、ブロックは、Ｎ×Ｍピクセルを備えることができ、ここで、Ｍは必ずしもＮに等しくない。
【００３６】
ＨＥＶＣは、映像データのブロックをコーディングユニット（ＣＵ）と呼び、１つ以上の予測ユニット（ＰＵ）及び／又は１つ以上の変換ユニット（ＴＵ）を含むことができる。ビットストリーム内の構文データは、ピクセル数の点で最大のコーディングユニットである最大コーディングユニット（ＬＣＵ）を定義することができる。概して、ＣＵは、Ｈ．２６４のマクロブロックと同様の目的を有するが、ＣＵは、サイズの区別がない。従って、ＣＵは、サブＣＵに分割することができる。概して、本ＣＵでのＣＵへの言及は、ピクチャ又はＬＣＵのサブＣＵの最大のコーディングユニットを意味することができる。ＬＣＵは、サブＣＵに分割することができ、及び、各サブＣＵは、サブＣＵにさらに分割することができる。ビットストリームに関する構文データは、ＬＣＵを分割することができる最大回数を定義することができ、ＣＵ深度と呼ばれる。従って、ビットストリームは、最小のコーディングユニット（ＳＣＵ）も定義することができる。本開示は、ＣＵ、ＰＵ、又はＴＵのうちのいずれかを指すために用語“ブロック”も使用する。
【００３７】
ＬＣＵは、四分木（ｑｕａｄｔｒｅｅ）データ構造と関連付けることができる。概して、四分木データ構造は、ＣＵ当たり１つのノードを含み、根ノードがＬＣＵに対応する。ＣＵが４つのサブＣＵに分割される場合は、ＣＵに対応するノードは、４つの葉ノードを含み、それらの各々は、サブＣＵのうちの１つに対応する。四分木データ構造の各ノードは、対応するＣＵに関する構文データを提供することができる。例えば、四分木内のノードは、分割されたフラグを含むことができ、ノードに対応するＣＵがサブＣＵに分割されるかどうかを示す。ＣＵに関する構文要素は、繰り返し定義することができ、及び、ＣＵがサブＣＵに分割されるかどうかに依存することができる。ＣＵがさらに分割されない場合は、葉ＣＵと呼ばれる。本開示では、原葉ＣＵの明示の分割は存在しないが、葉ＣＵの４つのサブＣＵも葉ＣＵと呼ばれる。例えば、１６×１６サイズのＣＵがそれ以上分割されない場合は、１６×１６ＣＵは分割されなかったが、４つの８×８サブＣＵも葉ＣＵと呼ばれる。
【００３８】
さらに、葉ＣＵのＴＵは、各々の四分木データ構造と関連付けることもできる。すなわち、葉ＣＵは、その葉ＣＵがどのようにしてＴＵに分割されるかを示す四分木を含むことができる。本開示は、ＬＣＵがどのように分割されるかを示す四分木をＣＵ四分木と呼び、葉ＣＵがどのように分割されるかを示す四分木をＴＵ四分木と呼ぶ。ＴＵ四分木の根ノードは、概して、ＴＵ四分木としてＴＵに分割される。ＴＵ四分木の根ノードは、概して、葉ＣＵに対応し、ＣＵ四分木の根ノードは、概して、ＬＣＵに対応する。分割されないＴＵ四分木のＴＵは、葉ＴＵと呼ばれる。
【００３９】
葉ＣＵは、１つ以上の予測ユニット（ＰＵ）を含むことができる。概して、ＰＵは、対応するＣＵの全体又は一部分を表し、ＰＵに関する基準サンプルを取り出すためのデータを含むことができる。例えば、ＰＵがインターモード符号化されるときには、ＰＵは、ＰＵに関する動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度（例えば、１／４ピクセル精度又は１／８ピクセル精度）、動きベクトルが指し示す基準フレーム、及び／又は動きベクトルに関する基準リスト（例えば、リスト０又はリスト１）を記述することができる。ＰＵを定義する葉ＣＵに関するデータも、例えば、１つ以上のＰＵへのＣＵの分割を記述することができる。モードを分割することは、ＣＵがコーディングされていない、イントラ予測モード符号化されている、又はイントラ予測モード符号化されているかに依存して異なることができる。イントラコーディングの場合は、ＰＵは、後述される葉変換ユニットと同じに取り扱うことができる。
【００４０】
葉ＣＵは、１つ以上の変換ユニット（ＴＵ）を含むことができる。変換ユニットは、上述されるように、ＴＵ四分木構造を用いて指定することができる。すなわち、分割されたフラグは、葉ＣＵが４つの変換ユニットに分割されるかどうかを示すことができる。各変換ユニットは、４つのサブＴＵにさらに分割することができる。ＴＵがそれ以上分割されないときには、それは葉ＴＵと呼ぶことができる。概して、イントラコーディングの場合は、葉ＣＵに属するすべての葉ＴＵが同じイントラ予測モードを共有する。すなわち、葉ＣＵのすべてのＴＵに関する予測値を計算するために同じイントラ予測モードが概して適用される。イントラコーディングの場合は、映像符号器は、ＴＵに対応する予測値の部分と原ブロックとの間の差分として、イントラ予測モードを用いて各葉ＴＵに関する残差値を計算することができる。残差値は、変換、量子化、及び走査することができる。インターコーディングの場合は、映像符号器は、ＰＵレベルで予測を行うことができ及び各ＰＵに関する残差を計算することができる。葉ＣＵに対応する残差値は、変換、量子化、及び走査することができる。インターコーディングの場合は、葉ＴＵはＰＵよりも大きいこと又は小さいことができる。イントラコーディングの場合は、ＰＵは、対応する葉ＴＵと共配置することができる。幾つかの例では、葉ＴＵの最大サイズは、対応する葉ＣＵのサイズであることができる。
【００４１】
概して、本開示は、別記がないかぎり、葉ＣＵ及び葉ＴＵをそれぞれ意味するために用語ＣＵ及びＴＵを使用する。概して、本開示の技法は、ＣＵのデータを変換、量子化、走査、及びエントロピー符号化することに関するものである。一例として、本開示の技法は、ブロックを予測するために使用されるイントラ予測モードに基づいてイントラ予測されたブロックの残差値を変換するために使用する変換の選択を含む。本開示は、イントラ予測モード方向に依存する該変換を意味するために用語“方向性変換”又は“設計された変換”も使用する。すなわち、映像符号器は、変換ユニット（ＴＵ）に適用するための方向性変換を選択することができる。上述されるように、イントラ予測は、同じピクチャの以前にコーディングされたＣＵ及びＴＵからピクチャの現在のＣＵのＴＵを予測することを含む。より具体的には、映像符号器は、特定のイントラ予測モードを用いてピクチャの現在のＴＵをイントラ予測することができる。
【００４２】
インター予測モード中に、映像符号器２０は、ＰＵの特定の動きベクトルに関する解像度、例えば、１／４又は１／８ピクセル解像度、を決定することができる。この解像度は、動きベクトル予測子とＣＵのＰＵに関する計算された動きベクトルの間の誤差量を最小にすることを試みる技法を用いて決定することができ、以前にコーディングされたフレームの変位を予測するために使用される動きベクトルであることができる。
【００４３】
映像符号器２０は、動きベクトル予測子に関する精度、及びベクトルの変位を決定することができ、それは、ｘ成分、ｐ_ｘ、及びｙ成分、ｐ_ｙを含むことができる。映像符号器２０は、動きベクトル予測子と計算された動きベクトルとの間の差分に対応する動きベクトル差分を計算することができる。動きベクトル差分（“ＭＶＤ”と呼ばれる）は、ｘ成分、ｍｖｄ_ｘ及びｙ成分、ｍｖｄ_ｙを有することもできる。ｍｖｄ_ｘ及びｍｖｄ_ｙの大きさ、ベクトルの精度（すなわち、１／４、又は１／８ピクセル解像度）、及びスレショルド値に基づき、映像符号器２０は、動きベクトル差分値のｘ成分及びｙ成分に関連する１つ以上の値をまとめてコーディングするように構成することができる。
【００４４】
本開示の技法により、映像符号器２０及び／又は映像復号器３０は、ブロックに関する動きベクトル差分に関連する情報をまとめてコーディングするように構成することができる。まとめてコーディングすることは、動きベクトル差分値のｘ成分及びｙ成分に関連する情報がインターリービングされる技法を意味することができる。情報は、これらの成分の大きさ、例えば、絶対値、がゼロよりも大きいかどうかを示す情報と、対応する成分の絶対値がゼロよりも大きいときの成分に関する符号と、絶対値がゼロよりも大きいときに成分の絶対値を示す情報と、を含むことができる。動きベクトル差分の１つ以上の値をまとめてコーディングすることは、映像コーディングビットストリームの複雑さを低減させることができ、ここにおいて説明される利点を提供することができる。映像符号器２０と同様に、映像復号器３０は、符号化された映像ビットストリームを受信することができ及び映像符号器２０と基本的に相互的に動作することができる。例えば、映像復号器３０は、ＭＶＤに関するコーディングされた値を受信し、まとめてコーディングされた値を復号し、及び、ブロックに関する動きベクトルをそのブロックに関するＭＶＤと動きベクトル予測子の合計として計算することができる。
【００４５】
概して、動きベクトル差分値のｘ成分は、“ＭＶＤ_ｘ”と呼ぶことができ、動きベクトル差分値のｙ成分は、“ＭＶＤ_ｙ”と呼ぶことができる。映像データのブロック、例えば、ＰＵ、に関する動きベクトル差分値は、＜ＭＶＤ_ｘ，ＭＶＤ_ｙ＞によって記述することができる。概して、ＭＶＤ_ｘは、ブロックに関する動きベクトルのｘ成分とブロックに関して選択された動きベクトル予測子のｘ成分との間の差分に対応する。同様に、ＭＶＤ_ｙは、ブロックに関する動きベクトルのｙ成分とブロックに関して選択された動きベクトル予測子のｙ成分との間の差分に対応する。このようにして、映像符号器２０は、ブロックに関する動きベクトルのｘ成分とブロックに関して選択された動きベクトル予測子のｘ成分との間の差分を計算することによってＭＶＤ_ｘを、及び、ブロックに関する動きベクトルのｙ成分とブロックに関して選択された動きベクトル予測子のｙ成分との間の差分を計算することによってＭＶＤ_ｙを計算することができる。同様に、映像復号器３０は、動きベクトル予測子のｘ成分にＭＶＤ_ｘを加えることによって、及び動きベクトル予測子のｙ成分にＭＶＤ_ｙを加えることによってブロックに関する動きベクトルを再構築することができる。換言すると、ＭＶ_ｘ及びＭＶ_ｙが動きベクトルのｘ成分及びｙ成分をそれぞれ表すとすると、
ＭＶＤ_ｘ＝ＭＶ_ｘ−ｐ_ｘ                                  （１）
ＭＶＤ_ｙ＝ＭＶ_ｘ−ｐ_ｙ                                  （２）
幾つかの例では、映像符号器２０は、ブロックに関する動きベクトル差分値に関する情報をまとめてコーディングする、例えば、シグナリングする、ことができる。例えば、映像符号器２０は、ＭＶＤ_ｘの絶対値、すなわち、｜ＭＶＤ_ｘ｜がゼロよりも大きいかどうかを示す情報、及び、後続する、ＭＶＤ_ｙの絶対値、すなわち、｜ＭＶＤ_ｙ｜がゼロよりも大きいかどうかを示す情報、をコーディングすることができる。該情報は、例えば、ＭＶＤ値のｘ及びｙ成分がそれぞれゼロよりも大きいかどうかを表すフラグを含むことができる。映像符号器２０は、ＭＶＤ_ｘがゼロよりも大きいかどうかを表すフラグが、ＭＶＤ_ｘが実際にゼロよりも大きいことを示すと仮定して、ＭＶＤ_ｙがゼロよりも大きいかどうかを表すフラグをシグナリングした後にＭＶＤ_ｘに関する符号を表す値をシグナリングすることもできる。映像符号器２０は、｜ＭＶＤ_ｘ｜がゼロに等しいときにはＭＶＤ_ｘに関する符号をシグナリングする必要がない。
【００４６】
ＭＶＤ_ｘに関する符号を示す値（シグナリングされたとき）又は｜ＭＶＤ_ｙ｜がゼロよりも大きいかどうかを示す情報（ＭＶＤ_ｘの符号がシグナリングされないとき）のいずれかに従い、映像符号器２０は、｜ＭＶＤ_ｙ｜がゼロよりも大きいと再度仮定して、ＭＶＤ_ｙに関する符号をシグナリングすることができる。さらに、映像符号器２０は、ＭＶＤ_ｘ及びＭＶＤ_ｙのいずれか又は両方がゼロよりも大きい絶対値を有するかどうかに依存してＭＶＤ_ｘ及び／又はＭＶＤ_ｙの絶対値を表す情報をシグナリングすることができる。繰り返すと、ＭＶＤ_ｘ及びＭＶＤ_ｙの絶対値を表す情報は、以前にシグナリングされた値が、ＭＶＤ_ｘ及びＭＶＤ_ｙのいずれか又は両方の絶対値がゼロに等しいことを示すときにはシグナリングする必要がない。
【００４７】
同様に、映像復号器３０は、ＭＶＤ_ｘがゼロよりも大きい絶対値を有するかどうかを表すデータ、及び後続する、ＭＶＤ_ｙがゼロよりも大きい絶対値を有するかどうかを表すデータをコーディング（例えば、復号及び解釈）することができる。ＭＶＤ_ｘの絶対値がゼロよりも大きいことをそのデータが示すときには、映像復号器３０は、ＭＶＤ_ｘに関する符号を表す情報を構文解析するように構成することができる。ＭＶＤ_ｘに関する符号を表す情報を構文解析した後、又は｜ＭＶＤ_ｘ｜がゼロに等しいと決定した後は、映像復号器３０は、ＭＶＤ_ｙの絶対値がゼロよりも大きいことをそのデータが示すときには、ＭＶＤ_ｙに関する符号を表す情報を構文解析するように構成することができる。同様に、映像復号器３０は、ＭＶＤ_ｘ及びＭＶＤ_ｙの絶対値がゼロよりも大きいと再度仮定し、ＭＶＤ_ｘ及びＭＶＤ_ｙに関する絶対値を表す情報を構文解析することができる。
【００４８】
映像復号器３０は、成分がゼロよりも大きくない（すなわち、ゼロに等しい）絶対値を有することをデータが示すときのその成分の符号及び絶対値に関連する情報を期待しないように構成することができる。すなわち、映像復号器３０は、前のシグナリングされた情報によって示されるように、ゼロに等しい絶対値を有するＭＶＤ成分の符号及び絶対値に関するデータを受信もコーディングもせずに、その他の映像データ、例えば、ブロックに関するその他のデータ、を構文解析するように構成することができる。
【００４９】
このようにしてｘ及びｙ成分をまとめてコーディングすることは、ｘ及びｙ成分に関するデータを別々にコーディングすることよりも有利な点をいくつか達成することができる。例えば、ｘ及びｙ成分をまとめてコーディングすることは、エントロピーコーディング中のスループットを向上させることができる。１つの特定の例として、動きベクトル差分値をまとめてコーディングすることは、映像符号器２０又は復号器３０がエントロピーコーディングを行うためにＣＡＢＡＣを使用時にエントロピーコーディングスループットを向上させることができる。動きベクトル差分値のｘ及びｙ成分の絶対値を表す情報がまとめてコーディングされるときには、映像符号器２０又は映像復号器３０は、ＣＡＢＡＣのバイパスモードを用いて動きベクトル差分値のｘ及びｙ成分をいっしょにエントロピーコーディングすることができる。ＣＡＢＡＣバイパスモードは、エントロピーコーディングスループットを向上させることができる。ｘ及びｙ成分を表す、まとめてコーディングされた情報をエントロピーコーディングすることは、映像符号器２０又は復号器３０がＣＡＢＡＣのバイパスモードを用いて連続して両方の構文要素をエントロピーコーディングするのを可能にすることができ、それは、ｘ及びｙ成分を別々にエントロピーコーディングすることと比較してエントロピーコーディング性能を向上させることができる。前例ではＣＡＢＡＣに関して説明されるが、動きベクトル差分値のｘ及びｙ成分をまとめてコーディングすることは、その他のエントロピーコーディング技法、例えば、ＶＬＣ、及びＣＡＶＬＣ、を使用時にエントロピーコーディング効率及び／又はスループットも向上させることができる。
【００５０】
予測データ及び残差データを生成するためにイントラ予測又はインター予測コーディングに従い、及び、変換係数を生成するためにいずれかの変換（例えば、Ｈ．２６４／ＡＶＣで使用される４×４又は８×８整数変換又は離散コサイン変換ＤＣＴ）に従い、変換係数の量子化を行うことができる。量子化は、概して、変換係数を表すために使用されるデータ量を低減させるために変換係数が量子化されるプロセスを意味する。量子化プロセスは、幾つかの又はすべての係数と関連付けられたビット深度を低減させることができる。例えば、量子化中にｎビット値を切り捨ててｍビットにすることができ、ここで、ｎはｍよりも大きい。
【００５１】
量子化に引き続き、例えば、コンテンツ適応型可変長コーディング（ＣＡＬＶＡＣ）、コンテンツ適応型バイナリ算術コーディング（ＣＡＢＡＣ）、又はその他のエントロピーコーディング法により、量子化されたデータのエントロピーコーディングを行うことができる。エントロピーコーディング用に構成された処理ユニット、又は他の処理ユニット、は、その他の処理機能、例えば、量子化された係数のゼロラン長コーディング及び／又は構文情報、例えば、コーディングされたブロックパターン（ＣＢＰ）値、マクロブロックタイプ、コーディングモード、コーディングされたユニット（例えば、フレーム、スライス、マクロブロック、又はシーケンス）に関する最大マクロブロックサイズ、等の生成、を行うことができる。
【００５２】
映像符号器２０は、構文データ、例えば、ブロックに基づく構文データ、フレームに基づく構文データ、及びＧＯＰに基づく構文データを例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダにおいて、映像復号器３０にさらに送信することができる。ＧＯＰ構文データは、各々のＧＯＰ内のフレーム数を記述することができ、フレーム構文データは、対応するフレームを符号化するために使用される符号化／予測モードを示すことができる。
【００５３】
映像符号器２０及び映像復号器３０は、各々、様々な適切な符号器又は復号器回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせ、のうちのいずれかとして適宜実装することができる。映像符号器２０及び映像復号器３０の各々は、１つ以上の符号器又は復号器に含めることができ、それらのいずれも、結合された符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。映像符号器２０及び／又は映像復号器３０を含む装置は、集積回路、マイクロプロセッサ、及び／又は無線通信デバイス、例えば、携帯電話、を備えることができる。
【００５４】
図２は、動きベクトルをまとめてシグナリングするための技法を実装することができる映像符号器２０の例を示したブロック図であり、サブピクセル精度を有することができる。映像符号器２０は、映像フレーム内のブロックのイントラ及びインターコーディングを行うことができ、ＣＵ、又はＣＵのサブＣＵを含む。イントラコーディングは、空間予測に依存し、所定の映像フレーム内の映像の空間的冗長性を低減させるか又は除去する。インターコーディングは、時間的予測に依存し、映像シーケンスの隣接するフレーム内の映像の時間的冗長性を低減させるか又は除去する。イントラモード（Ｉモード）は、幾つかの空間に基づく圧縮モードのうちのいずれかを意味することができ、インターモード、例えば、単方向予測（Ｐモード）又は両方向予測（Ｂモード）は、幾つかの時間に基づく圧縮モードのうちのいずれかを意味することができる。図２にはインターモード符号化のためのコンポーネントが描かれているが、映像符号器２０は、イントラモード符号化のためのコンポーネントをさらに含むことができることが理解されるべきである。しかしながら、該コンポーネントは、簡潔さと明確さを目的として例示されていない。
【００５５】
図２に示されるように、映像符号器２０は、符号化されるべき映像フレーム内の現在の映像ブロックを受け取る。図２の例では、映像符号器２０は、動き補償ユニット４４と、動き推定ユニット４２と、基準フレームメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピーコーディングユニット５６と、を含む。映像ブロック再構築に関して、映像符号器２０は、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とも含む。ブロック境界をフィルタリングしてブロッキネスアーティファクトを再構築された映像から除去するためにデブロッキングフィルタ（図２には示されていない）を含めることもできる。希望される場合は、デブロッキングフィルタは、典型的には、加算器６２の出力をフィルタリングする。
【００５６】
符号化プロセス中は、映像符号器２０は、コーディングされるべき映像フレーム、スライス、又はＣＵを受信する。フレーム又はスライスは、複数の映像ブロックに分割することができる。動き推定ユニット４２及び動き補償ユニット４４は、時間的圧縮を提供するために１つ以上の基準フレーム内の１つ以上のブロックに関して受信された映像ブロックのインター予測コーディングを行う。イントラ予測ユニット４６は、空間圧縮を提供するためにコーディングされるべきブロックと同じフレーム又はスライス内の１つ以上の隣接ブロックに関して受信された映像ブロックのイントラ予測コーディングを行うことができる。以下において説明される技法により、動き推定ユニット４２は、動きベクトル予測子に関する精度を決定することができ、それは、モード選択ユニット４０が以前に決定しているイントラ又はインター予測モードに基づいて決定することができる。動き推定ユニット４２、又は映像符号器２０の他のユニット、例えば、エントロピーコーディングユニット５６、は、受信されたフレーム、スライス、又はＣＵのＰＵに関する動きベクトル予測子と計算された動きベクトルの間の差分に対応する動きベクトル差分をさらに決定することができる。エントロピーコーディングユニット５６は、動きベクトル差分の解像度、符号、及び振幅に関連する情報、及び以下において説明されるように動きベクトルをまとめてコーディングすることに関連するその他の情報をさらにコーディングすることができる。
【００５７】
モード選択ユニット４０は、例えば、誤差結果に基づいてコーディングモードのうちの１つ、イントラ又はインター、を選択し、その結果得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成するための加算器５０に及び符号化されたブロックを基準フレームとしての使用のために再構築するための加算器６２に提供することができる。さらに、モード選択ユニット４０は、動きベクトルに関する動きベクトル精度を選択することができる。例えば、モード選択ユニット４０は、１／４サブピクセル精度及び１／８サブピクセル精度の動きベクトルと関連付けられたレート−歪み最適化（ＲＤＯ）に基づいて動きベクトルに関する動きベクトル精度を選択することができる。１／４ピクセル精度を有する動きベクトルは、１／８ピクセル精度を有する動きベクトルと比較してより少ないビットをコーディング対象として要求することができる。しかしながら、１／４ピクセル精度でコーディングされた動きベクトルによって示される予測ブロックは、１／８サブピクセル精度でコーディングされた予測ブロックと比較してより多い量の残差情報を得ることができる。映像符号器２０は、動きベクトルによって示される予測ブロックと現在コーディング中のブロックとの間の差分と関連付けられた残差情報（歪み）に関して特定の動きベクトルをコーディングするために使用されるビット数（すなわち、ビットレート）を最適化するためにＲＤＯを行うことができる。ＲＤＯの結果に基づいて、モード選択ユニット４０は、レートと歪みのトレードオフ（ｔｒａｄｅｏｆｆ）を最適化する動きベクトル精度、例えば、１／４又は１／８サブピクセル精度、を選択することができる。
【００５８】
動き補償ユニット４４は、様々な精度、例えば、１／８及び１／４サブピクセル、のサブピクセル、例えば、基準フレームのサブピクセル、を計算するために必要になることがある。サブピクセルを内挿するために、動き補償ユニット４４は、様々な技法を利用することができる。例として、動き補償ユニット４４は、サブピクセルを内挿するために共一次内挿を利用すること又はＮタップの有限応答フィルタ（ＦＩＲ）を利用することができる。動き補償ユニット４４、等のデバイスが、２つのピクセル又はサブピクセルの平均を求めることによってフラクショナルピクセル（ｆｒａｃｔｉｏｎａｌ  ｐｉｘｅｌ）に関する値を計算するときには、その結果得られた値を丸める、及び／又はスケーリングすることができる。幾つかの場合は、動き補償ユニット４４は、整数よりも小さいピクセル（ｓｕｂ−ｉｎｔｅｇｅｒ  ｐｉｘｅｌ）まで平均した結果である２つのサブピクセルに関する値の平均を求めることができる。
【００５９】
動き補償ユニット４４は、サポートの組に内挿フィルタを適用することによって、より多くの整数よりも小さいピクセルの位置、例えば、１／８ピクセル位置、に関する値を計算することができる。サポートは、概して、１つ以上の基準ピクセル、例えば、共通の線又は領域内のピクセル、に関する値を意味する。ピクセルは、以前に計算された完全ピクセルの位置又は整数よりも小さいピクセルの位置に対応することができる。幾つかの例では、動き補償ユニット４４は、共一次内挿を用いて整数よりも小さいピクセルに関する値を計算することができ、及び、各々の整数よりも小さいピクセルの位置に関して異なるサポートの組に共一次内挿フィルタのうちの１つ以上を適用することによって２つ以上の異なる整数よりも小さいピクセルの位置に関する値を計算するために同様の共一次内挿フィルタを使用することができる。
【００６０】
幾つかのその他の事例では、動き補償ユニット４４は、サブピクセル値を内挿するためにＮタップの有限応答フィルタ（ＦＩＲ）を利用することができる。ＦＩＲ，例えば、６タップ又は１２タップのＷｉｅｎｅｒフィルタ、は、整数よりも小さいピクセル値を内挿するめために近くのサポートピクセル値を利用することができる。サポートピクセルは、ＦＩＲへの入力として使用されるピクセル又はサブピクセル値である。ＦＩＲは、１つ以上の次元を有することができる。一次元ＦＩＲでは、動き補償ユニット４４、等のデバイスは、線、例えば、水平線、垂直線内の又は角度内の幾つかのサポートピクセル又はサブピクセルにフィルタを適用することができる。直線内のサポートピクセルを使用することができる一次元ＦＩＲとは対照的に、二次元ＦＩＲは、内挿されたピクセル値を計算するために正方形又は長方形を形成する付近のサポートピクセル又はサブピクセルを使用することができる。
【００６１】
動き推定ユニット４２及び動き補償ユニット４４は、非常に一体化しやすいが、概念上の目的で別々に例示される。動き推定は、映像ブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又はその他のコーディングされたユニット）内のコーディング中の現在のブロックに関する予測基準フレーム（又はその他のコーディングされたユニット）の予測ブロックの変位を示すことができる。予測ブロックは、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又はその他の差分測定法によって決定することができるピクセル差分の点で、コーディングされるべきブロックに非常にマッチすることが判明しているブロックである。動きベクトルは、マクロブロックのパーティションの変位を示すこともできる。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ（ｆｅｔｃｈ）又は生成することを含むことができる。繰り返すと、動き推定ユニット４２及び動き補償ユニット４４は、幾つかの例では、機能的に一体化することができる。
【００６２】
動き推定ユニット４２は、基準フレームメモリ６４内の基準フレームの映像ブロックとインターコーディングされたフレームの映像データのブロックを比較することによってその映像ブロックに関する動きベクトルを計算する。動き補償ユニット４４は、基準フレーム、例えば、Ｉフレーム又はＰフレーム、の整数よりも小さいピクセルを内挿することもできる。一例として、動きベクトルは、基準フレームの２つのリスト、すなわち、符号化中の現在のフレームよりも早い表示順を有する基準フレームを含むリスト０、及び、符号化中の現在のフレームよりも遅い表示順を有する基準フレームを含むリスト１、から予測することができる。従って、基準フレームメモリ６４に格納されるデータは、これらのリストに従って編成することができる。
【００６３】
動き推定ユニット４２は、基準フレームメモリ６４からの１つ以上の基準フレームのブロックを、現在のフレーム、例えば、Ｐフレーム又はＢフレームの符号化されるべきブロックと比較する。基準フレームメモリ６４内の基準フレームが整数よりも小さいピクセルに関する値を含むときには、動き推定ユニット４２によって計算される動きベクトルは、基準フレームメモリ６４に格納される基準フレームのうちの１つの整数よりも小さいピクセルの位置を指し示すことができる。動き推定ユニット４２及び／又は動き補償ユニット４４は、整数よりも小さいピクセルの位置に関する値が基準フレームメモリ６４に格納されていない場合は基準フレームメモリ６４に格納された基準フレームの整数よりも小さいピクセルの位置に関する値を計算するように構成することもできる。動き推定ユニット４２は、計算された動きベクトルをエントロピーコーディングユニット５６及び動き補償ユニット４４に送信する。動きベクトルによって識別された基準フレームブロックを予測ブロックと呼ぶことができる。現在のフレーム内でコーディング中の現在のブロックに関する予測ブロックの変位を示す動きベクトルは、ｍｖｄ_ｘのｘ成分及びｍｖｄ_ｙのｙ成分を有することができる。
【００６４】
動き補償ユニット４４は、予測ブロックに基づいて予測データを計算することができる。映像符号器２０は、動き補償ユニット４４からの予測データをコーディング中の原映像ブロックから減じることによって残差映像ブロックを形成する。加算器５０は、この減算を行うコンポーネント又はコンポーネント（複数）を表す。変換処理ユニット５２は、変換、例えば、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換、を残差ブロックに適用し、残差変換係数値を備える映像ブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に類似するその他の変換、例えば、Ｈ．２６４規格によって定義されるそれら、を実施することができる。ウェーブレット変換、整数変換、サブバンド変換又はその他のタイプの変換も使用可能である。いずれの場合も、変換処理ユニット５２は、残差ブロックに変換を適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から変換領域、例えば、周波数領域、に変換することができる。量子化ユニット５４は、ビットレートをさらに低減させるために残差変換係数を量子化する。量子化プロセスは、一部の又は全部の係数と関連付けられたビット深度を低減させることができる。量子化度は、量子化パラメータを調整することによって修正することができる。
【００６５】
量子化に引き続き、エントロピーコーディングユニット５６は、量子化された変換係数をエントロピーコーディングする。例えば、エントロピーコーディングユニット５６は、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、又は他のエントロピーコーディング技法を実施することができる。動きベクトル差分値のｘ及びｙ成分をまとめてコーディングすることは、エントロピーコーディングユニット５６がＣＡＢＡＣを使用時により高いエントロピーコーディングスループットを達成することを可能にすることができる。エントロピーコーディングユニット５６は、動きベクトル差分値の別々にコーディングされたｘ成分及びｙ成分をエントロピーコーディングすることと比較して動きベクトル差分値のまとめてコーディングされたｘ及びｙ成分をエントロピーコーディングするスループットを向上させるためにＣＡＢＡＣのバイパスモードを使用することができる。エントロピーコーディングユニット５６によるエントロピーコーディングに引き続き、符号化された映像は、のちの送信又は取り出しのために他のデバイスに送信すること又はアーカイブに保存することができる。コンテキスト適応型バイナリ算術コーディングの場合は、コンテキストは、隣接ブロックに基づくことができる。
【００６６】
幾つかの事例では、エントロピーコーディングユニット５６又は映像符号器２０の他のユニットは、エントロピーコーディングに加えて、その他のコーディング機能を実施するように構成することができる。例えば、エントロピーコーディングユニット５６は、マクロブロック及びパーティションに関するＣＢＰ値を決定するように構成することができる。さらに、幾つかの事例では、エントロピーコーディングユニット５６は、マクロブロック又はそれのパーティション内の係数のラン長（ｒｕｎ  ｌｅｎｇｔｈ）コーディングを実施することができる。特に、エントロピーコーディングユニット５６は、マクロブロック又はパーティション内の変換係数を走査するためにジグザグ走査又はその他の走査パターンを適用し、さらなる圧縮のためにゼロのランを符号化することができる。エントロピーコーディングユニット５６は、符号化された映像ビットストリームでの送信のために該当する構文要素でヘッダ情報を構築することもできる。
【００６７】
本開示の技法により、量子化ユニット５４及びエントロピーコーディングユニット５６は、動きベクトルをまとめてコーディングすることができ、それは、以下において説明されるようにサブピクセル精度を有することができる。幾つかの例では、量子化ユニット４５及びエントロピーコーディングユニット５６は、動きベクトル差分値のｘ及び／又はｙ成分がゼロであるかを表す１つ以上のフラグ値、ｘ及びｙ成分がゼロに等しくない絶対値を有するときにそれらの成分の符号を表す１つ以上の値、及び、動きベクトル差分値のｘ及びｙ成分がゼロでない絶対値を有するときにそれらの成分の大きさの絶対値を表す情報をシグナリングすることができる。量子化ユニット４５及びエントロピーコーディングユニット５６は、動きベクトルのサブピクセル解像度を表すことができる動き解像度フラグ、及び動きベクトルの大きさ及び精度の両方に関連するスレショルド値をシグナリングすることもできる。
【００６８】
逆量子化ユニット５８及び逆変換ユニット６０は、例えば、基準ブロックとしてのちに使用するために、ピクセル領域内で残差ブロックを再構築するために逆量子化及び逆変換をそれぞれ適用する。動き補償ユニット４４は、基準フレームメモリ６４のフレームのうちの１つの予測ブロックに残差ブロックを加えることによって基準ブロックを計算することができる。動き補償ユニット４４は、動き推定での使用のために整数よりも小さいピクセル値を計算するために１つ以上の内挿フィルタを再構築された残差ブロックに適用することもできる。加算器６２は、基準フレームメモリ６４内での格納のために再構築された映像ブロックを生成するために再構築された残差ブロックを動き補償ユニット４４によって生成された動き補償された予測ブロックに加える。再構築された映像ブロックは、後続する映像フレーム内のブロックをインターコーディングするための基準ブロックとして動き推定ユニット４２及び動き補償ユニット４４によって使用することができる。
【００６９】
映像符号器２０は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す映像データを符号化するように及び動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す映像データを符号化するように構成された映像符号器の代表例である。映像符号器２０は、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｘ成分の絶対値を表す映像データを符号化するように、及び、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｙ成分の絶対値を表す映像データを符号化するように構成することができる。映像符号器２０は、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｘ成分の符号を表す映像データを符号化ように、及び動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｙ成分の符号を符号化するように構成することもできる。
【００７０】
図３は、符号化された映像シーケンスを復号する映像復号器３０の例を示したブロック図である。図３の例では、映像復号器３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、基準フレームメモリ８２と、加算器８０と、を含む。映像復号器３０は、幾つかの例では、映像符号器２０に関して説明される符号化パス（ｐａｓｓ）と概して相互的な復号パスを実施することができる（図２）。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成することができる。
【００７１】
動き補償ユニット７２は、基準フレームメモリ８２に格納された基準フレームのうちの１つ内の予測ブロックを識別するためにビットストリーム内で受信された動きベクトルを使用することができ、ここにおいて説明される技術によってシグナリングされた動きベクトルを含む。イントラ予測ユニット７４は、空間的に隣接するブロックから予測ブロックを形成するためにビットストリーム内で受信されたイントラ予測モードを使用することができる。逆量子化ユニット７６は、ビットストリーム内で提供されてエントロピー復号ユニット７０によって復号される量子化されたブロック係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、例えば、Ｈ．２６４復号規格によって定義された従来のプロセスを含むことができる。逆量子化プロセスは、量子化度、及び同様に逆量子化度、を決定するために各マクロブロックに関して符号器５０によって計算される量子化パラメータＱＰＹの使用を含むこともできる。
【００７２】
エントロピー復号ユニット７０及び逆量子ユニット７６は、フラグ及び符号化されたビットストリーム内のその他の値を含む様々な構文要素を解釈することによってまとめてコーディングされた動きベクトル差分値を再構築することもできる。一例として、エントロピー復号ユニット７０及び逆量子化ユニット７６は、動きベクトル差分のｘ及び／又はｙ成分がゼロよりも大きいかどうかを表す１つ以上の値、動きベクトルのサブピクセル解像度を示すことができる動き解像度フラグ、及び動きベクトル差分値の最大の大きさ及び／又は解像度を示すことができるスレショルド値を受信することができる。一例では、エントロピー復号ユニット７０は、バイパスモードでＣＡＢＡＣを使用して動きベクトル差分値のまとめてコーディングされたｘ及びｙ成分を復号することができる。ＣＡＢＡＣのバイパスモードを使用することは、エントロピーコーディングユニット７０が、動きベクトル差分値のｘ及びｙ成分を別々にエントロピーコーディングするのと比較して向上されたスループットでまとめてコーディングされた動きベクトル差分値を復号するのを可能にすることができる。エントロピー復号ユニット７０及び逆量子化ユニット７６は、動きベクトル差分値のｘ及び／又はｙ成分の符号を表す１つ以上の値、及び動きベクトル差分値の各成分の大きさの絶対値を表す値も受信することができる。エントロピー復号ユニット７０及び逆量子化ユニット７６は、動きベクトル差分値の振幅、符号、精度、ｘ及びｙ成分を再構築するために動きベクトル差分値のｘ及びｙ成分がゼロよりも大きいかどうかを表す値、及び、動きベクトル差分値の各成分の大きさの絶対値を表す値を使用することができる。
【００７３】
逆変換ユニット５８は、ピクセル領域内で残差ブロックを生成するために逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット７２は、動き補償されたブロックを生成し、内挿フィルタに基づく内挿を行う。サブピクセル精度での動き推定のために使用される内挿フィルタに関する識別子を構文要素に含めることができる。動き補償ユニット７２は、基準ブロックの整数よりも小さいピクセルに関する内挿された値を計算するために映像ブロックの符号化中に映像符号器２０によって使用される内挿フィルタを使用することができる。動き補償ユニット７２は、受信された構文情報により映像符号器２０によって使用される内挿フィルタを決定すること及び予測ブロックを生成するために内挿フィルタを使用することができる。
【００７４】
動き補償ユニット７２は、符号化された映像シーケンスのフレームを符号化するために用いられるマクロブロックのサイズを決定するための構文情報、符号化された映像シーケンスフレームの各マクロブロックがどのようにして分割されるかを記述したパーティション情報、各パーティションがどのようにして符号化されるかを示すモード、各々のインター符号化されたマクロブロック又はパーティションに関する１つ以上の基準フレーム（及び基準フレームリスト）、及び符号化された映像シーケンスを復号するためのその他の情報のうちの幾つかを使用する。一例として、動き補償ユニット７２は、ＭＶＤ値及び動きベクトル予測子を受信することができる。動き補償ユニット７２は、現在のブロックに関する計算されたベクトルを現在のブロックのＭＶＤ値及び動きベクトル予測子の和としてさらに決定することができる。現在のブロックに関する計算された動きベクトルは、予測ブロックの位置をさらに示すことができる。幾つかの例では、動き補償ユニット７２は、例えば、動きベクトルがサブピクセル精度、例えば、１／４又は１／８精度、を有するときに予測ブロックに関するピクセル値を計算することができる。
【００７５】
加算器８０は、復号されたブロックを形成するために動き補償ユニット７２又はイントラ予測ユニットによって生成された対応する予測ブロックと残差ブロックを合計する。希望される場合は、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用することもできる。復号された映像ブロックは、基準フレームメモリ８２に格納され、それは、後続する動き補償のための基準ブロックを提供し、及び、表示装置（例えば、図１の表示装置３２）上での提示のための復号された映像も生成する。
【００７６】
現在のブロックに関する動きベクトルに基づき、動き補償ユニットは、基準フレームメモリ８２に格納された１つ以上のフレームから予測ブロックを決定することができる。動き補償ユニット７２は、動き補償ユニット７２が生成する予測ブロックのサブピクセルを計算するために必要になることがある。様々な精度、例えば、１／８及び１／４サブピクセルの予測ブロック、例えば、基準フレームのサブピクセル。サブピクセルを内挿するために、動き補償ユニット７２は、様々な技法を利用することができる。例として、動き補償ユニット７２は、サブピクセルを内挿するために共一次内挿を利用すること又はＮタップの有限応答フィルタ（ＦＩＲ）を利用することができる。動き補償ユニット７２、等のデバイスが、２つのピクセル又はサブピクセルの平均を求めることによってフラクショナルピクセルに関する値を計算するときには、その結果得られた値を丸める、及び／又はスケーリングすることができる。幾つかの場合は、動き補償ユニット７２は、整数よりも小さいピクセルまで平均した結果である２つのサブピクセルに関する値の平均を求めることができる。
【００７７】
動き補償ユニット７２は、サポートの組に内挿フィルタを適用することによって、整数よりも小さいピクセルの位置、例えば、１／８ピクセル位置、に関する値を計算することができる。サポートは、概して、１つ以上の基準ピクセル、例えば、共通の線又は領域内のピクセル、に関する値を意味する。ピクセルは、以前に計算された完全ピクセルの位置又は整数よりも小さいピクセルの位置に対応することができる。幾つかの例では、動き補償ユニット７２は、共一次内挿を用いて整数よりも小さいピクセルに関する値を計算することができ、及び、各々の整数よりも小さいピクセルの位置に関して異なるサポートの組に共一次内挿フィルタのうちの１つ以上を適用することによって２つ以上の異なる整数よりも小さいピクセルの位置に関する値を計算するために同様の共一次内挿フィルタを使用することができる。
【００７８】
幾つかのその他の事例では、動き補償ユニット４２は、サブピクセル値を内挿するためにＮタップの有限応答フィルタ（ＦＩＲ）を利用することができる。ＦＩＲ，例えば、６タップ又は１２タップのＷｉｅｎｅｒフィルタ、は、整数よりも小さいピクセル値を内挿するために近くのサポートピクセル値を利用することができる。サポートピクセルは、ＦＩＲへの入力として使用されるピクセル又はサブピクセル値である。ＦＩＲは、１つ以上の次元を有することができる。一次元ＦＩＲでは、動き補償ユニット７２、等のデバイスは、線、例えば、水平線、垂直線内の又は角度内の幾つかのサポートピクセル又はサブピクセルにフィルタを適用することができる。直線内のサポートピクセルを使用することができる一次元ＦＩＲとは対照的に、二次元ＦＩＲは、内挿されたピクセル値を計算するために正方形又は長方形を形成する付近のサポートピクセル又はサブピクセルを使用することができる。
【００７９】
映像復号器３０は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す映像データを復号するように及び動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す映像データを復号するように構成された映像符号器の代表例である。映像復号器３０は、動きベクトル差分値の絶対値がゼロよりも大きいときに動きベクトル差分値のｘ成分の絶対値を表す映像データを復号するように、及び、動きベクトル差分値の絶対値がゼロよりも大きいときに動きベクトル差分値のｙ成分の絶対値を表す映像データを復号するように構成することができる。映像復号器３０は、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｘ成分の符号を表す映像データを復号するように、及び動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに動きベクトル差分値のｙ成分の符号を復号するように構成することもできる。
【００８０】
図４は、動きベクトル差分値のｘ及びｙ成分をまとめて符号化し及び現在のブロックをエントロピーコーディングするための方法例を示したフローチャートである。方法１５０では、映像符号器２０の動き推定ユニット４２は、現在のブロックを予測することができる（１５２）。現在のブロックを予測する一環として、動き推定ユニット４２は、動きベクトルを計算することができる。動きベクトルは、現在のブロックに対する予測ブロックの変位を示すことができる。動きベクトルの変位は、ｘ及びｙ成分、ＭＶ_ｘ、及びＭＶ_ｙを有することができる。予測ブロックは、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又はその他の差分測定法によって決定することができるピクセル差分の点で、現在のブロックに非常にマッチすることができる。現在のフレームがインター予測される事例では、予測ブロックは、異なるフレーム、例えば、図２の基準フレームメモリ６４内の１つ以上のフレームのうちの１つ、のブロックを備えることができる。
【００８１】
動き補償ユニット４４又は映像符号器２０の他のユニットは、現在のブロックの動きベクトルに関する動きベクトル予測子を決定することができる（１５４）。動きベクトル予測子は、動き補償ユニット４４が現在のブロックに関する動きベクトル差分値を計算するために使用する動きベクトルである。幾つかの例では、動きベクトル予測子は、現在のブロックのＰＵに隣接する複数のブロックのうちの１つの動きベクトルであることができる。動き補償ユニット４４
は、基準フレームメモリ６４内に格納された基準フレームのうちの１つの共配置されたブロックから動きベクトル予測子を決定することもできる。動きベクトル予測子は、ｐ_ｘのｘ成分及びｐ_ｙのｙ成分を有することができる。映像符号器２０は、動きベクトル予測子が現在のブロックに関する動きベクトルと動きベクトル予測子の間の差分を最小にするような動きベクトル予測子を決定することができる。
【００８２】
動きベクトル予測子に基づき、映像符号器２０の動き補償ユニット４４、又は映像符号器２０の他のユニット、例えば、エントロピーコーディングユニット５６、は、現在のブロックに関する動きベクトル差分値を計算することができる（１５６）。動き補償ユニット４４は、現在のブロックに関する動きベクトル差分を、現在のブロックに関する動きベクトルと現在のブロックに関する動きベクトル予測子の差分として計算することができる。従って、動き補償ユニット４４は、現在のブロックに関する動きベクトル予測子を＜ｐ_ｘ−ＭＶ_ｘ，ｐ_ｙ−ＭＶ_ｙ＞として計算することができ、ここでは、ｐ_ｘ及びｐ_ｙは、動きベクトル予測子のｘ及びｙ成分であり、ＭＶ_ｘ及びＭＶ_ｙは、現在のブロックに関する動きベクトルのｘ及びｙ成分である。
【００８３】
エントロピーコーディングユニット５６は、現在のブロックに関する動きベクトル差分値の要素をまとめてコーディングすることができる（１５８）。例えば、エントロピーコーディングユニット５６は、動きベクトル差分値の要素をまとめてコーディングすることができ、それらは、以下において図６及び７でより詳細に説明されるように動きベクトル差分のｘ及びｙ成分を含む。幾つかの限定しない例として、動きベクトル差分の要素は、動きベクトル差分のｘ及びｙ成分がゼロであるかどうかを表す１つ以上の値と、動きベクトル差分値のｘ及び／又はｙ成分の符号値を表す値と、動きベクトル差分値の成分の絶対値を表す値と、も含むことができる。
【００８４】
変換処理ユニット５２又は動き補償ユニット４４は、現在のブロックに関する残差ブロックを計算することができる（１６０）。残差ブロックは、現在のブロックに関する動きベクトルによって示される予測映像ブロックと現在の映像ブロックとの間のピクセル差分を備えることができる。変換処理ユニット５２は、変換、例えば、離散コサイン変換（ＤＣＴ）、を現在のブロックに関する残差ブロックに適用することができ、他方、量子化ユニット５４は、変換処理ユニット５２からの変換係数を量子化することができる（１６２）。
【００８５】
エントロピーコーディングユニット５６は、１６２の変換の結果得られた変換された係数を走査することができる。幾つかの事例では、エントロピーコーディングユニット５６は、変換された残差ブロックの変換係数を走査するためにジグザグ走査又はその他の走査パターンを適用することができる（１６４）。
【００８６】
エントロピーコーディングユニット５６は、さらなる圧縮のために、例えば、ラン長コーディングを用いて、１６４の走査の結果得られたゼロのラン（ｒｕｎｓ  ｏｆ  ｚｅｒｏｓ）を備える係数を符号化することができる（１６６）。
【００８７】
エントロピーコーディングユニット５６は、エントロピーコーディングされた係数及びまとめてコーディングされたＭＶＤ値を出力することができる（１６８）。すなわち、エントロピーコーディングユニット５６は、エントロピーコーディングされた量子化された変換係数に加えて、ＭＶＤ値のｘ及びｙ成分に関するまとめてコーディングされたデータを出力することができる。
【００８８】
図４の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせのいずれに実装されるかにかかわらず、あらゆる処理ユニット又はプロセッサによって実施することができ、ソフトウェア又はファームウェアにおいて実装されるときには、そのソフトウェア又はファームウェアに関する命令を実行するために対応するハードウェアを提供することができる。例を目的として、図４の技法は、映像コーディングデバイスに関して説明され、それは、映像符号器２０のコンポーネントと実質的に類似するそれらを含むことができる（図１及び２）。ただし、その他のデバイスも類似の技法を実施するように構成できることが理解されるべきである。さらに、図４に例示されるステップは、本開示の技法を逸脱することなしに、異なる順序で又は並行して実施することができ、及び追加のステップを加えること及び幾つかのステップを省略することができる。
【００８９】
図５は、ＨＥＶＣ試験モデル３．０（ＨＭ３．０、ＨＭ３とも呼ばれる）において説明される技法により動きベクトル差分値を別々にシグナリングする方法を例示したフローチャートである。ＨＥＶＣの技法は、２０１２年４月２７日乃至２０１２年５月７日にスイスのジュネーブで開催されたＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１，第９回会議の文書ＨＣＴＶＣ−Ｉ１００３、Ｂｒｏｓｓ  ｅｔ  ａｌ．，“High Efficiency Video Coding(HEVC) Text Specification Draft 7”（高効率映像コーディング（ＨＥＶＣ）本文仕様草案７）、映像コーディングに関する共同チーム（ＪＣＴ−ＶＣ）でも説明されており、２０１２年６月７現在では、
http://
phenix.it-sudparis.eu/jct/doc
end user/documents/9 Geneva/wg11/JCTVC-I1003-v3.zipからダウンロード可能である。ＨＭ３において提案されており、図５において例示される方法により、動きベクトル差分値のｘ及びｙ成分に対応するｍｖｄ_ｘ及びｍｖｄ_ｙ値は、別々にシグナリングされる。方法１８０は、ｍｖｄ_ｘに関連する１つ以上の構文要素をどのようにしてシグナリングすることができるかについて例示し、方法１９２は、ｍｖｄ_ｙに関連する１つ以上の構文要素をどのようにしてシグナリングすることができるかについて例示する。
【００９０】
方法１８０では、映像符号器２０のユニット、例えば、動き補償ユニット４４又はエントロピーコーディングユニット５６、は、ｍｖｄ_ｘ＝＝０フラグをシグナリングすることができる（１８２）。ｍｖｄ_ｘ＝＝０フラグは、ＣＵのＰＵに関する計算された動きベクトル及び動きベクトルの動きベクトル予測子のｘ成分間の差分が等しいかどうか、従って、２つのｘ成分間の対応する差分がゼロに等しいかどうかを表す。
【００９１】
ｍｖｄ_ｘ＝＝０フラグが設定されている場合は、ＭＶＤのｘ成分であるｍｖｄ_ｘは、ゼロに等しく（１８４の“はい”分岐）、方法が終了する（１９０）。しかしながら、ｍｖｄ_ｘがゼロでない場合は（１８４の“いいえ”分岐）、映像符号器２０は、ａｂｓ_ｍｖｄ_ｘ−１をシグナリングすることができる（１８６）。ａｂｓ_ｍｖｄ_ｘ−１は、ｍｖｄ_ｘ−１の絶対値を表すことができる。映像符号器２０は、ｍｖｄ_ｘの符号を表す値をさらにシグナリングすることができる（１８８）。符号は、例えば、正又は負であることができる。
【００９２】
同様に、方法１９２では、映像符号器、例えば、図１の映像符号器２０、は、ｍｖｄ_ｙ＝＝０フラグをシグナリングすることができる（１９４）。ｍｖｄ_ｙ＝＝０フラグは、ＣＵのＰＵに関する計算された動きベクトル及び動きベクトルの動きベクトル予測子のｙ成分間の差分が等しいかどうか、従って、２つのｙ成分間の対応する差分がゼロに等しいかどうかを表す。
【００９３】
ｍｖｄ_ｙ＝＝０フラグが設定されている場合は、ＭＶＤのｙ成分であるｍｖｄ_ｙは、ゼロに等しく（１９６の“はい”分岐）、方法が終了する（２０２）。しかしながら、ｍｖｄ_ｙがゼロでない場合は（１９６の“いいえ”分岐）、映像符号器２０は、ａｂｓ_ｍｖｄ_ｙ−１をシグナリングすることができる（１９８）。ａｂｓ_ｍｖｄ_ｙ−１は、ｍｖｄ_ｙ−１の絶対値を表す値であることができる。映像符号器２０は、ｍｖｄ_ｙの符号を表す値をさらにシグナリングすることができる（２００）。符号は、例えば、正又は負であることができる。
【００９４】
図６は、動きベクトル差分値のｘ及びｙ成分をまとめて符号化するために動きベクトル差分値をまとめて符号化する方法例２２０を示したフローチャートである。概して、図６の方法２２０は、図４のステップ１５８に対応する。従って、図６の方法２２０は、動きベクトル差分値のｘ及びｙ成分のデータをまとめてコーディングするための方法例を表す。さらに、例えば、図４のステップ１５６に関して説明されるように、図６の方法例の実施前に、映像符号器２０の動き補償ユニット４４、又は映像符号器２０の他のユニット、例えば、映像符号器２０のエントロピーコーディングユニット５６は、映像データの現在のブロックに関する動きベクトルを計算し、及び、動きベクトル差分値を、映像データの現在のブロックに関する動きベクトルと映像データの現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することができる。動きベクトル差分値のｘ及びｙ成分に関するデータをまとめてコーディングするために、エントロピーコーディングユニット５６は、動きベクトル差分値のｘ成分であるｍｖｄ_ｘの絶対値がゼロよりも大きいかどうかを表す情報を符号化することができる（２２２）。次に、エントロピーコーディングユニット５６は、動きベクトル差分値のｙ成分の絶対値（ｍｖｄ_ｙ）がゼロよりも大きいかどうかを表す情報を符号化することができる（２２４）。
【００９５】
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときは、エントロピーコーディングユニット５６は、動きベクトル差分値のｘ成分の絶対値を表す情報を符号化することができる（２２６）。及び、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときは、エントロピーコーディングユニット５６は、動きベクトル差分値のｙ成分の絶対値を表す情報を符号化することができる（２２８）。幾つかの例では、エントロピーコーディングユニット５６は、動きベクトル差分値のｘ及びｙ成分の絶対値を表す情報を、ｍｖｄ_ｘ／２−１及びｍｖｄ_ｙ／２−１の絶対値としてそれぞれ符号化することができる。
【００９６】
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときには、エントロピーコーディングユニット５６は、動きベクトル差分値のｘ成分の符号を符号化することができる（２３０）。動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときには、エントロピーコーディングユニット５６は、動きベクトル差分値のｙ成分の符号を符号化することができる（２３２）。
【００９７】
図６の技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせのいずれに実装されるかにかかわらず、あらゆる処理ユニット又はプロセッサによって実施することができ、ソフトウェア又はファームウェアにおいて実装されるときには、そのソフトウェア又はファームウェアに関する命令を実行するために対応するハードウェアを提供することができる。例を目的として、図６の技法は、映像コーディングデバイスに関して説明され、それは、映像符号器２０のコンポーネントと実質的に類似するそれらを含むことができる（図１及び２）。ただし、その他のデバイスも類似の技法を実施するように構成できることが理解されるべきである。さらに、図６に例示されるステップは、本開示の技法を逸脱することなしに、異なる順序で又は並行して実施することができ、及び追加のステップを加えること及び幾つかのステップを省略することができる。
【００９８】
このように、図６の方法は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の符号をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の符号をコーディングすることと、を含む方法の代表例である。従って、図６の方法は、映像データの現在のブロックの動きベクトルに関して計算された動きベクトル差分値のｘ及びｙ成分の要素をまとめてコーディングする例を表す。
【００９９】
図７は、ｍｖｄ_ｘ値及びｍｖｄ_ｙ値に関する値をシグナリングするための方法を例示したフローチャートである。ＭＶＤのｘ及びｙ成分を別々にコーディングすることを例示した図５の方法１８０及び１９２とは異なり、及び図６の方法と同様に、図７の方法は、符号器が動きベクトル差分値のｘ及びｙ成分、すなわち、ｍｖｄ_ｘ及びｍｖｄ_ｙ、をまとめてコーディングするのを可能にすることもできる。この例では、符号器、例えば、図１及び２の映像符号器２０、によってビットストリームにおいてシグナリングされた１つの構文要素は、動きベクトル差分値のｘ及びｙ成分に関する大きさ、符号及び／又はその他の情報を含むことができる。
【０１００】
図７の例では、以下において説明されるように、映像符号器２０は、映像データの現在のブロックの動きベクトルが第１のサブピクセル精度、例えば、１／４ピクセル精度、を有するか又は第２のサブピクセル精度、例えば、１／８ピクセル精度、を有するかを表す値である動き解像度フラグを符号化することができる。この例では、動き解像度フラグは、現在のブロックの動きベクトルが１／４ピクセル精度を有することを示すための１の値、及び、動き解像度フラグが１／８ピクセル精度を有することを示すための０の値を有する。映像符号器２０は、動きベクトル差分の成分のうちの１つ又は両方の大きさが２の絶対値を有するかどうかを表す値、“ａｂｓ_ｍｖｄ_ｅｑｕａｌ_２”を符号化することもできる。映像符号器２０は、以下の表１の例に基づいてａｂｓ_ｍｖｄ_ｅｑｕａｌ_２に値を割り当てることができる。
【０１０１】
図７の方法２４０の例において、動き補償ユニット４４又は映像符号器２０の他のユニットは、ｍｖｄ_ｘ＝＝０フラグ（２４２）及びｍｖｄ_ｙ＝＝０フラグ（２４４）をシグナリングすることができる。これらのフラグは、対応するｍｖｄ_ｘ又はｍｖｄ_ｙ値がゼロに等しいときに設定することができる。ｍｖｄ_ｘ及びｍｖｄ_ｙの両方がゼロである（２４６の“はい”の分岐）場合は、さらなるデータをシグナリングする必要がなく、方法２４０が終了する（２６６）。
【０１０２】
ｍｖｄ_ｘ又はｍｖｄ_ｙのいずれかがゼロでない（２４６の“いいえ”の分岐）場合は、動き補償ユニット４４は、動き解像度フラグをシグナリング又は符号化することができる（２４６）。動き解像度フラグ（ｍｖｒｅｓ_ｆｌａｇ）は、動きベクトル差分値に対応する動きベクトルに関する動きベクトル解像度（動きベクトル精度とも呼ばれる）を示すことができる構文要素の例である。動き解像度フラグは、映像データの現在のブロックの動きベクトルが第１のサブピクセル精度又は第２のサブピクセル精度、例えば、１／４ピクセル精度又は１／８ピクセル精度のいずれを有するかを示すことができる。
【０１０３】
映像符号器２０は、現在のフレームに関するスレショルドを決定することもでき、それは、現在のブロックに関する動きベクトルとも関連付けられ、及び、スライスヘッダ又は他のデータ構造、例えば、スライスパラメータセット（ＳＰＳ）又はピクチャパラメータセット（ＰＰＳ）、においてシグナリングすることができる。映像符号器２０は、１／８ピクセル動きベクトル差分値の振幅を制限するためにスレショルドを使用することができ及び動きベクトル差分値のｘ成分（ｍｖｄ_ｘ）及び動きベクトル差分値のｙ成分（ｍｖｄ_ｙ）の両方がスレショルドよりも大きいときに動きベクトルが第１のサブピクセル精度を有することを示すことができる。例えば、以下の表１に関して説明されるように、映像符号器（例えば、映像符号器２０）は、１／８ピクセル精度動きベクトル差分値のｘ及びｙ成分の大きさを１又は２の値に制限することができる。映像符号器は、スレショルドフラグを用いてスレショルドの値をシグナリングすることができる。
【０１０４】
ＰＵに関する動きベクトルのｘ及びｙ成分に関して計算されたＭＶＤが決定されたスレショルドよりも大きい場合は、動き解像度フラグは、真に設定することができる。動き解像度フラグが真に設定される場合は、動きベクトルが１／４ピクセル精度を有することを表すフラグ。ＭＶＤ値が選択されたスレショルド以下である場合は、映像符号器は、対応する動きベクトルが１／４ピクセル精度又は１／８ピクセル精度のいずれを有するかを示すように動き解像度フラグに関する値を設定することができる。
【０１０５】
方法２４０は、動き解像度フラグが１に等しいかどうかを決定する映像符号器２０をさらに備えることができる（２５０）。動き解像度フラグは、例えば、動きベクトル精度が１／４ピクセル精度である場合は１に等しいことができる。動き解像度フラグが１に設定される場合は、映像符号器２０は、ｍｖｄ_ｘがゼロでない場合は値ａｂｓ_ｍｖｄ_ｘ／２−１を表す値をシグナリング又は符号化することができ、ここで、ａｂｓ_ｍｖｄ_ｘは、ＭＶＤのｘ成分の絶対値を表す値である（２５２）。映像符号器２０は、ｍｖｄ_ｙがゼロでない場合はａｂｓ_ｍｖｄ_ｙ／２−１を表す値を同様に符号化することができ、ここで、ａｂｓ_ｍｖｄ_ｙは、ＭＶＤのｙ成分の絶対値である（２５４）。幾つかの例では、映像符号器２０は、ｍｖｄ_ｘがゼロでない場合ではなくｍｖｄ_ｙがゼロでない場合にａｂｓ_ｍｖｄ_ｙ／２−１をシグナリングすることができる。
【０１０６】
動き解像度フラグが１に等しくない（２５０の“いいえ”の分岐）である場合は、映像符号器２０は、スレショルドが１に等しいかどうかを決定することができる。スレショルドは、この例では１又は２の値を有することができる。一例では、スレショルドは、２の値を有することができる。動きベクトルは、ｍｖｄ_ｘ及びｍｖｄ_ｙの値がスレショルドを超えないときには１／８ピクセル精度しか有することができないため、ｍｖｄ_ｘ及びｍｖｄ_ｙの値は、この例では１又は２に制限される。さらに、スレショルドが１に等しい（２５６の“はい”の分岐）場合で、動きベクトルが１／４ピクセル精度を有する場合は（動き解像度フラグによって示され、それは、この例ではステップ２５０に従って真でなければならない）、映像符号器は、ｍｖｄ値に関する追加情報をシグナリングする必要がない。すなわち、ｍｖｄ_ｘ及びｍｖｄ_ｙの値は、その他の情報を用いてゼロ又は１であると決定することができる。特に、ｍｖｄ_ｘ及びｍｖｄ_ｙがゼロであるか又は１であるかは、ステップ２４８及び２６４において符号値がシグナリングされるかどうかに基づいて示すことができる。スレショルドが２に等しい（２５６の“いいえ”の分岐）場合は、映像符号器２０は、ｍｖｄ_ｘ又はｍｖｄ_ｙ値のいずれかがゼロに等しいかどうかを決定することができる。ｍｖｄ_ｘ又はｍｖｄ_ｙがゼロに等しい（２６０の“はい”の分岐）場合は、映像符号器２０は、ｍｖｄ_ｘ及びｍｖｄ_ｙのうちのゼロでないそれの符号をシグナリングすることに進むことができる（２５８、２６４）。幾つかの例では、映像符号器２０は、ｍｖｄ_ｘ及びｍｖｄ_ｙのうちのゼロでないそれに関する値を追加でシグナリングすることができ、従って、代わりに、ステップ２５８ではなく２５２に進むことができる。
【０１０７】
しかしながら、ｍｖｄ_ｘ及びｍｖｄ_ｙの両方がゼロでない、すなわち、ｍｖｄ_ｘ及びｍｖｄ_ｙのいずれもゼロの値を有さない場合は（２６０の“いいえ”の分岐）、映像符号器２０は、ａｂｓ_ｍｖｄ_ｅｑｕａｌ_２フラグをシグナリングすることができる。ａｂｓ_ｍｖｄ_ｅｑｕａｌ_２フラグは、ｍｖｄ_ｘ及びｍｖｄ_ｙに関するまとめてコーディングされた値の例である。映像符号器は、以下の表１に基づいてａｂｓ_ｍｖｄ_ｅｑｕａｌ_２に値を割り当てることができる。
【表１】
2014523714.tif 000003
【０１０８】
ａｂｓ_ｍｖｄ_ｘ及びａｂｓ_ｍｖｄ_ｙの値に基づき、映像符号器２０は、例えば、表１により、ａｂｓ_ｍｖｄ_ｅｑｕａｌ_２の値をシグナリングすることができる（２６２）。映像符号器２０は、単項２値化を用いてａｂｓ_ｍｖｄ_ｅｑｕａｌ_２の値をシグナリングすることができる。映像符号器２０は、ｍｖｄ_ｘがゼロでない場合はｍｖｄ_ｘの符号をさらにシグナリングすることができ（２５８）、同様に、ｍｖｄ_ｘがゼロでない場合はｍｖｄ_ｙの符号をシグナリングすることができる（２６４）。幾つかの例では、映像符号器２０は、ｍｖｄ_ｙがゼロでない場合はｍｖｄ_ｙの符号をシグナリングすることができる
幾つかの例では、動き解像度フラグ、ｍｖｄ_ｘ＝＝０フラグ、及びｍｖｄ_ｙ＝＝０フラグがまとめてコーディングされる。任意選択で、及び一例として、ＶＬＣコードを以下の表２により使用することができる。
【表２】
2014523714.tif 000004
【０１０９】
映像符号器２０は、１／４及び１／８ピクセル動きベクトル解像度のうちの１つを示すための動き解像度フラグをシグナリングすることができる。例えば、映像符号器２０は、１／４ｐｅｌと１／８ｐｅｌとの間の動きベクトル差分の解像度をシグナリングすることができる。映像符号器２０は、ＭＶＤがスレショルド値よりも小さいときに１／４ピクセル動きベクトル精度と１／８ピクセル動きベクトル精度との間の差分を示すための動き解像度フラグをシグナリングすることができる。映像符号器２０は、ＭＶＤの成分のうちの１つ又は両方がスレショルド値よりも大きいときに１／４ピクセル動きベクトル精度と１／８ピクセル動きベクトル精度との間の差分を示すための動き解像度フラグをシグナリングすることもできる。
【０１１０】
映像復号デバイス、例えば、映像復号器３０、は、図７に例示される技法を実施するために映像符号器２０と基本的に相互的に動作することができる。このようにして、映像復号器３０は、動きベクトルを表す値、例えば、動き解像度フラグ、を受信して復号することに基づいて、各動きベクトルに関する動きベクトル精度を好適に選択することができる。映像復号器３０は、（２５６）からスレショルド値を受信して復号することもできる。映像復号器３０は、フレームに関する１／８サブピクセル動きベクトル差分値の振幅を制限するために各基準フレームに関するスレショルド値を受信して復号することができる。スレショルドは、スライスヘッダで受信することができる。スレショルドは、ゼロ、１又は２の値を有することができる。スレショルドは制限されず、その他の値に拡大することができる。動きベクトル差分値のｘ及びｙ成分に関する情報をコーディングすることによって、コーディングされた映像ビットストリームの複雑さを低減させることができ、その結果、符号化された映像データに関してより低い全体的ビットレートを得ることができる。
【０１１１】
一例では、映像コーディングデバイス、例えば、映像符号器２０又は映像復号器３０、は、映像データの現在のブロックの動きベクトルが第１のサブピクセル精度又は第２のサブピクセル精度、例えば、１／４サブピクセル精度又は１／８サブピクセル精度、のいずれを有するかを表している値、例えば、図７の動き解像度フラグ、をコーディングすることができる。第２のサブピクセル精度は、第１のサブピクセル精度よりも大きいことができる。動きベクトルが第２のサブピクセル精度、例えば、１／８ピクセル精度、を有するとき、動きベクトル差分値のｘ成分がゼロに等しくないとき、及び動きベクトル差分値のｙ成分がゼロに等しくないときには、映像符号器２０又は映像復号器３０は、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすること、及び、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングすることができる。映像符号器２０又は映像復号器３０は、動きベクトル差分値のｘ成分及び動きベクトル差分値のｙ成分の両方を表す、まとめてコーディングされた値をコーディングすることができる。
【０１１２】
図７の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせのいずれに実装されるかにかかわらず、あらゆる処理ユニット又はプロセッサによって実施することができ、ソフトウェア又はファームウェアにおいて実装されるときには、そのソフトウェア又はファームウェアに関する命令を実行するために対応するハードウェアを提供することができる。例を目的として、図７の技法は、映像コーディングデバイスに関して説明され、それは、映像符号器２０のコンポーネントと実質的に類似するそれらを含むことができる（図１及び２）。図１及び３の映像復号器３０は、概して、図７において例示される技法により符号化されたビットストリームを復号するために図７において例示されて説明される動作と相互的なそれらを実施することができる。その他のデバイスも類似の技法を実施するように構成できることも理解されるべきである。さらに、図７に例示されるステップは、本開示の技法を逸脱することなしに、異なる順序で又は並行して実施することができ、及び追加のステップを加えること及び幾つかのステップを省略することができる。
【０１１３】
図７の方法は、映像データのコーディングユニットの予測ユニットを符号化するために第１のサブピクセル精度又は第２のサブピクセル精度のいずれを有する動きベクトルを使用すべきかを決定することであって、第２のサブピクセル精度は第１のサブピクセル精度よりも大きいことと、その決定に基づいて第１のサブピクセル精度又は第２のサブピクセル精度のいずれかを有する動きベクトルのｘ及びｙ成分を計算することであって、ｘ及びｙ成分は、第２のサブピクセル精度を有することと、動きベクトルのｘ及びｙ成分の値及び動きベクトルに関する予測されたｘ成分及び予測されたｙ成分の値に基づいて動きベクトル差分値を決定することと、動きベクトルに関するｘ成分及びｙ成分に関する動きベクトル差分値を表す、まとめてコーディングされた値を符号化することと、を含む方法の例を表す。
【０１１４】
映像復号器によって相互的な（ｒｅｃｉｐｒｏｃａｌ）方法を実施することができる。相互的な方法は、例えば、動きベクトルに関する動き解像度フラグの値を用いて映像データのコーディングユニットの予測ユニットの動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを決定することであって、第２のサブピクセル精度は第１のサブピクセル精度よりも大きいことと、動きベクトルが第２のサブピクセル精度を有するときに、動きベクトルのｘ及びｙ成分に関する動きベクトル差分値を表す、まとめてコーディングされた値を復号することと、動きベクトル差分値及び動きベクトルに関する予測された  ｘ成分及び予測されたｙ成分の値に基づいて動きベクトルを復号することと、復号された動きベクトルを用いてコーディングユニットに関する予測データを形成することと、を含むことができる。
【０１１５】
映像符号器２０又は映像復号器３０は、図７において例示されるスレショルド値に基づいて現在のブロックに関する動きベクトルの解像度を決定することができる。より具体的には、映像符号器２０又は映像復号器３０は、動きベクトルと関連付けられたスレショルド値を決定することによって現在のブロックに関する動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを決定することができる。映像符号器２０又は映像復号器３０は、現在のブロックの動きベクトル差分値のｘ成分及び動きベクトル差分値のｙ成分の両方がスレショルドよりも大きいときに動きベクトルは第１のサブピクセル精度を有すると決定することができる。
【０１１６】
動きベクトル差分値のｘ成分及び動きベクトル差分値のｙ成分のうちの少なくとも１つがスレショルド以下であるときに、映像符号器２０又は映像復号器３０は、動きベクトル解像度フラグの値に基づいて動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを決定することができる。
【０１１７】
例に依存して、ここにおいて説明される技法の幾つかの行為又はイベントは、異なる順序で行うことができ、及び、追加すること、結合すること、又はまったく省略することができること（例えば、それらの技法を実践するためにすべての説明される行為又はイベントが必要なわけではないこと）が認識されるべきである。さらに、幾つかの例では、行為又はイベントは、順次ではなく、同時並行して、例えば、マルチスレッド処理、割り込み処理、又は複数のプロセッサを通じて、行うことができる。
【０１１８】
図８は、現在のブロックを生成するために動きベクトル差分値のｘ成分及びｙ成分をまとめて復号し及びエントロピーコーディングされたデータを復号するための方法例を示したフローチャートである。図８の方法２８０のステップは、概して、図４の方法１５０と相互的である。方法２８０では、動き補償ユニット７２又は映像復号器３０の他のユニットは、現在のブロックを予測することができる（２８２）。現在のブロックを予測する一部として、動き補償ユニット７２は、動きベクトル差分値のまとめてコーディングされた成分を復号することができる（２８４）。映像復号器は、図９において例示される方法３２０の技法により動きベクトル差分のまとめてコーディングされた成分を復号することができる。現在のブロックに関する動きベクトル差分値は、ｍｖｄ_ｘのｘ成分及びｍｖｄ_ｙのｙ成分を有することができる。動きベクトル差分値のまとめてコーディングされた成分は、現在のブロックに関する動きベクトル差分値のｘ及びｙ成分、及び、動きベクトル差分値に関連するその他の情報、例えば、いくつかの限定しない例として、動きベクトル差分のｘ及びｙ成分がゼロであるかどうかを表す１つ以上の値、動きベクトル差分値のｘ及び／又はｙ成分の符号値を表す値、及び動きベクトル差分値の成分の絶対値を表す値、を含むことができる。
【０１１９】
映像符号器２０の動き補償ユニット４４は、現在のブロックの動きベクトルに関する動きベクトル予測子を受信することもできる（２８６）。動きベクトル予測子は、動き補償ユニット７２が現在のブロックに関する動きベクトル差分値を計算するために使用する動きベクトルである。幾つかの例では、動きベクトル予測子は、現在のブロックのＰＵに隣接する複数のブロックのうちの１つの動きベクトルであることができる。動き補償ユニット７２は、基準フレームメモリ８２に格納された基準フレームのうちの１つの共配置されたブロックから動きベクトル予測子を決定することもできる。動きベクトル予測子は、ｐ_ｘのｘ成分及びｐ_ｙのｙ成分を有することができる。動きベクトル予測子は、動きベクトル予測子が現在のブロックに関する動きベクトル予測子と動きベクトル予測子の差分を最小にするために符号化段階中に映像符号器２０によって決定しておくことができる。動きベクトル予測子に基づき、映像符号器２０の動き補償ユニット７２は、現在のブロックに関する動きベクトルを計算することができる（２８６）。映像復号器３０は、動きベクトルを、動きベクトル差分成分及び動きベクトル予測子の和、＜ｐ_ｘ＋ｍｖｄ_ｘ，ｐ_ｙ＋ｍｖｄ_ｙ＞として計算することができる（２８８）。
【０１２０】
エントロピー復号ユニット７０は、ブロックの変換された係数を再生成するために現在のブロックに関するエントロピーコーディングされたデータを受信し、及び、データ、例えば、ブロックの変換されたラン長のコーディングされた係数、を復号することができる（２９２）。エントロピー復号ユニット７０は、係数の１つ以上の一次元ベクトルからの係数を再編して変換された係数の二次元ブロックにするために再生成された係数を逆走査することができる（２９４）。
【０１２１】
逆量子化ユニット７６は、変換係数の二次元ブロックを逆量子化することができ、逆変換ユニット７８は、変換されないピクセルのブロックを生成するために逆量子化された係数を逆変換することができる（２９６）。残差ブロックは、現在のブロックに関する動きベクトルによって示される予測映像ブロックと現在の映像ブロックとの間のピクセル差分を備えることができる。映像復号器３０は、現在のフレームの現在のブロックを形成するために残差ブロックを予測ブロックと結合することができる（２９８）。
【０１２２】
図８の技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせのいずれに実装されるかにかかわらず、あらゆる処理ユニット又はプロセッサによって実施することができ、ソフトウェア又はファームウェアにおいて実装されるときには、そのソフトウェア又はファームウェアに関する命令を実行するために対応するハードウェアを提供することができる。例を目的として、図８の技法は、映像復号デバイスに関して説明され、それは、映像復号器３０のコンポーネントと実質的に類似するそれらを含むことができる（図１及び３）。ただし、その他のデバイスも類似の技法を実施するように構成できることが理解されるべきである。さらに、図８に例示されるステップは、本開示の技法を逸脱することなしに、異なる順序で又は並行して実施することができ、及び追加のステップを加えること及び幾つかのステップを省略することができる。
【０１２３】
図９は、動きベクトル差分値のｘ及びｙ成分をまとめて復号するための方法例を示したフローチャートである。図９の方法３２０のステップは、図６の方法２２０のステップと概して相互的である。同様に、方法３２０は、概して、図８のステップ２８４に対応する。図９の方法３２０では、映像復号器３０の動き補償ユニット７２又は映像復号器３０の他のユニットは、映像データの現在のブロックに関する動きベクトルのまとめてコーディングされた表現を受信することができる。映像復号器３０は、動きベクトル予測子を決定することもでき、それは、映像復号器、例えば、映像符号器２０、が予め決定して符号化しておくことができる。映像復号器３０は、現在のブロックに関する動きベクトルを、映像データの現在のブロックに関する動きベクトル予測子及び映像データの現在のブロックに関して決定された動きベクトル予測子の和差（ｓｕｍ  ｄｉｆｆｅｒｅｎｃｅ）として計算することができる。
【０１２４】
動きベクトル差分値の成分を決定するために、映像復号器３０の動き補償ユニット７２は、動きベクトル差分値のｘ成分、ｍｖｄ_ｘの絶対値がゼロよりも大きいかどうかを表す情報を復号することができる（３２２）。次に、動き補償ユニット７２は、動きベクトル差分値のｙ成分（ｍｖｄ_ｙ）の絶対値がゼロよりも大きいかどうかを表す情報を復号することができる（３２４）。
【０１２５】
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときには、動き補償ユニット７２は、動きベクトル差分値のｘ成分の絶対値を表す情報を復号することができる（３２６）。動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときには、動き補償ユニット７２は、動きベクトル差分値のｙ成分の絶対値を表す情報を復号することができる（３２８）。幾つかの例では、映像復号器３０は、動きベクトル差分値のｘ及びｙ成分の絶対値を表す情報を、ｍｖｄ_ｘ／２−１、及びｍｖｄ_ｙ／２−１のそれぞれの絶対値として復号することができる。
【０１２６】
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときには、動き補償ユニット７２は、動きベクトル差分値のｘ成分の符号を復号することができる（３３０）。動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときには、動き補償ユニット７２は、動きベクトル差分値のｙ成分の符号を復号することができる（３３２）。
【０１２７】
図９の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせのいずれに実装されるかにかかわらず、あらゆる処理ユニット又はプロセッサによって実施することができ、ソフトウェア又はファームウェアにおいて実装されるときには、そのソフトウェア又はファームウェアに関する命令を実行するために対応するハードウェアを提供することができる。例を目的として、図９の技法は、映像コーディングデバイスに関して説明され、それは、映像復号器３０のコンポーネントと実質的に類似するそれらを含むことができる（図１及び３）。ただし、その他のデバイスも類似の技法を実施するように構成できることが理解されるべきである。さらに、図９に例示されるステップは、本開示の技法を逸脱することなしに、異なる順序で又は並行して実施することができ、及び追加のステップを加えること及び幾つかのステップを省略することができる。
【０１２８】
このようにして、図９の方法は、映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の絶対値を表す情報をコーディングすることと、動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｘ成分の符号をコーディングすることと、動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値のｙ成分の符号をコーディングすることと、を含む方法の代表例である。従って、図９の方法は、動きベクトル差分値のデータをまとめてコーディングするための方法の他の代表例である。さらに、映像復号器３０は、図７の方法と実質的に類似する映像復号方法を実施するように構成することもできる。本開示の幾つかの技法は、実験によって評価されている。具体的には、適応型サブピクセル精度に関連する本開示の技法は、ＨＭ３．０に関して実装され、共通の試験条件の下でシミュレーションされた。性能は、Ｂｊoｎｔｅｇａａｒｄ  Ｄｅｌｔａ（ＢＤ）  Ｂｉｔ  Ｒａｔｅに関してＨＭ３．０アンカーと比較されている。シミュレーション結果では、高効率の構成に関しては平均０．４％のＢＤレートの節約、複雑さが少ない構成に関しては平均０．６％のＢＤレートの節約が示された。以下の表３は、それらの実験結果を要約したものである。
【表３】
2014523714.tif 000005
【０１２９】
例に依存して、ここにおいて説明される技法の幾つかの行為又はイベントは、異なる順序で行うことができ、及び、追加すること、結合すること、又はまったく省略することができること（例えば、それらの技法を実践するためにすべての説明される行為又はイベントが必要なわけではないこと）が認識されるべきである。さらに、幾つかの例では、行為又はイベントは、順次ではなく、同時並行して、例えば、マルチスレッド処理、割り込み処理、又は複数のプロセッサを通じて、行うことができる。
【０１３０】
１つ以上の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのあらゆる組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、機能は、コンピュータによって読み取り可能な媒体において１つ以上の命令又はコードとして格納又は送信すること及びハードウェアに基づく処理ユニットによって実行することができる。コンピュータによって読み取り可能な媒体は、有形な媒体、例えば、データ記憶媒体、に対応するコンピュータによって読み取り可能な記憶媒体、又は、例えば、通信プロトコルにより１つの場所から他へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体を含むことができる。このようにして、コンピュータによって読み取り可能な媒体は、概して、（１）非一時的である有形なコンピュータによって読み取り可能な記憶媒体又は（２）通信媒体、例えば、信号又は搬送波、に対応することができる。データ記憶媒体は、本開示において説明される技法の実装を目的として命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスすることができるあらゆる利用可能な媒体であることができる。
【０１３１】
一例として、及び制限することなしに、該コンピュータによって読み取り可能な記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又はその他の光学ディスク記憶装置、磁気ディスク記憶装置又はその他の磁気記憶装置、フラッシュメモリ、又は、希望されるプログラムコードを命令又はデータ構造の形態で格納するために用いることができ及びコンピュータによってアクセス可能なあらゆるその他の媒体、を含むことができる。さらに、いずれの接続もコンピュータによって読み取り可能な媒体であると適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者ライン（ＤＳＬ）、又は無線技術、例えば、赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合は、該同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、又は無線技術、例えば赤外線、無線、及びマイクロ波、は、媒体の定義の中に含まれる。しかしながら、コンピュータによって読み取り可能な記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又はその他の一時的な媒体を含まず、代わりに、非一時的な、有形な記憶媒体が対象であることが理解されるべきである。ここにおいて用いられるときのディスク（ｄｉｓｋ及びｄｉｓｃ）は、コンパクトディスク（ＣＤ）（ｄｉｓｃ）と、レーザディスク（ｄｉｓｃ）と、光ディスク（ｄｉｓｃ）と、デジタルバーサタイルディスク（ＤＶＤ）（ｄｉｓｃ）と、フロッピー（登録商標）ディスク（ｄｉｓｋ）と、ブルーレイディスク（ｄｉｓｃ）と、を含み、ここで、ｄｉｓｋは通常は磁気的にデータを複製し、ｄｉｓｃは、レーザを用いて光学的にデータを複製する。上記の組合せも、コンピュータによって読み取り可能な媒体の適用範囲に含めるべきである。
【０１３２】
命令は、１つ以上のプロセッサ、例えば、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、又はその他の同等の集積回路又はディスクリート論理回路、によって実行することができる。従って、ここにおいて用いられる場合の用語“プロセッサ”は、上記の構造又はここにおいて説明される技法の実装に適するあらゆるその他の構造のうちのいずれかを意味することができる。さらに、幾つかの態様では、ここにおいて説明される機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内で提供すること、又は、結合されたコーデック内に組み入れることができる。さらに、それらの技法は、１つ以上の回路又は論理素子内に完全に実装可能である。
【０１３３】
本開示の技法は、無線ハンドセット、集積回路（ＩＣ）又はＩＣの組（例えば、チップセット）を含む非常に様々なデバイス又は装置に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求するわけではない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び／又はファームウェアと関係させて、１つのコーデックハードウェアユニットに結合するか又は上述される１つ以上のプロセッサを含む相互運用可能なハードウェアユニットの集合によって提供することができる。
【０１３４】
様々な例が説明されている。これらの及びその他の例は、以下の請求項の範囲内である。
【図１】
2014523714.tif 000006
【図２】
2014523714.tif 000007
【図３】
2014523714.tif 000008
【図４】
2014523714.tif 000009
【図５】
2014523714.tif 000010
【図６】
2014523714.tif 000011
【図７】
2014523714.tif 000012
【図８】
2014523714.tif 000013
【図９】
2014523714.tif 000014
【手続補正書】
【提出日】平成26年3月25日(2014.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
映像データをエントロピーコーディングする方法であって、
現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、および前記現在のブロックに関する前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値を表す情報をエントロピーコーディングすることを備え、前記動きベクトル差分値を表す前記情報をエントロピーコーディングすることは、
映像データの前記現在のブロックに関する動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいかどうかを表す情報と、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいかどうかを表す情報をインターリービングすることと、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｘ成分の符号、、および前記動きベクトル差分値の前記ｙ成分の符号をインターリービングすることと、を備える、方法。
【請求項２】
エントロピーコーディングすることは、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することを備え、
映像データの前記現在のブロックに関する動きベクトルを計算することと、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することと、をさらに備える請求項１に記載の方法。
【請求項３】
エントロピーコーディングすることは、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することを備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定することと、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することと、をさらに備える請求項１に記載の方法。
【請求項４】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることであって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きいことをさらに備え、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすること及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングすることを備える請求項１に記載の方法。
【請求項５】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することをさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定することと、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することと、を備える請求項４に記載の方法。
【請求項６】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを備える請求項５に記載の方法。
【請求項７】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることは、動きベクトル解像度フラグに関する値をコーディングすることを備える請求項４に記載の方法。
【請求項８】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項１記載の方法。
【請求項９】
映像データをエントロピーコーディングするための装置であって、
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、および前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値を表す情報をエントロピーコーディングするように構成された映像エントロピーコーダを備え、前記動きベクトル差分値を表す前記情報をエントロピーコーディングするために、エントロピーコーディングするための前記装置は、
映像データの現在のブロックに関する前記動きベクトル差分値の前記ｘ成分の絶対値がゼロよりも大きいかどうかを表す情報と、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいかどうかを表す情報をインターリービングし、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｘ成分の符号、及び前記動きベクトル差分値の前記ｙ成分の符号をインターリービングするように構成される、装置。
【請求項１０】
前記映像エントロピーコーダは、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）映像符号器を備え、前記ＣＡＢＡＣ映像符号器は、映像データの前記現在のブロックに関する動きベクトルを計算し及び前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するようにさらに構成される、請求項９に記載の装置。
【請求項１１】
前記映像エントロピーコーダは、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）映像復号器を備え、前記ＣＡＢＡＣ映像復号器は、映像データの前記現在のブロックに関する動きベクトル予測子を決定し及び映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するようにさらに構成される請求項９に記載の装置。
【請求項１２】
前記映像コーダは、映像データの前記現在のブロックの動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするように構成され、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、前記映像コーダは、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするように構成される請求項９に記載の装置。
【請求項１３】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトルと関連付けられたスレショルド値を決定し、及び、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するように構成される請求項１２に記載の装置。
【請求項１４】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成される請求項１３に記載の装置。
【請求項１５】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成される請求項１２に記載の装置。
【請求項１６】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをするように構成され、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをするように構成され、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項９記載の装置。
【請求項１７】
前記装置は、
集積回路、
マイクロプロセッサ、及び
前記映像コーダを含む無線通信デバイスのうちの少なくとも１つを備える請求項９に記載の装置。
【請求項１８】
映像データをエントロピーコーディングするための装置であって、
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、および前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに前記動きベクトル差分値を表す情報をエントロピーコーディングするための手段を備え、前記動きベクトル差分値を表す前記情報をエントロピーコーディングするための前記手段は、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報と、前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をインターリービングするための手段と、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｘ成分の符号、および前記動きベクトル差分値の前記ｙ成分の符号をインターリービングするための手段と、を備える、装置。
【請求項１９】
エントロピーコーディングするための前記手段は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化するための手段を備え、
映像データの前記現在のブロックに関する動きベクトルを計算するための手段と、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するための手段と、をさらに備える請求項１８に記載の装置。
【請求項２０】
エントロピーコーディングするための前記手段は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号するための手段を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定するための手段と、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するための手段と、をさらに備える請求項１８に記載の装置。
【請求項２１】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするための手段であって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きい手段と、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするための手段と、をさらに備える請求項１８に記載の装置。
【請求項２２】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定するための手段と、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するための手段と、を備える請求項２１に記載の装置。
【請求項２３】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための前記手段は、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段を備える請求項２２に記載の装置。
【請求項２４】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングするための前記手段は、動きベクトル解像度フラグに関する値をコーディングするための手段を備える請求項２１に記載の装置。
【請求項２５】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項１８記載の装置。
【請求項２６】
実行されたときに、
動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいときに、および前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいときに、動きベクトル差分値を表す情報をエントロピーコーディングすることを映像データをコーディングするためのデバイスの１つ以上のプロセッサに行わせる命令を格納しているコンピュータによって読み取り可能な記憶媒体を備えるコンピュータプログラム製品であって、前記動きベクトル差分値を表す前記情報をエントロピーコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、
映像データの前記現在のブロックに関する前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいかどうかを表す情報と、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいかどうかを表す情報をインターリービングし、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報、前記動きベクトル差分値の前記ｘ成分の符号、及び前記動きベクトル差分値の前記ｙ成分の符号をインターリービングすることを前記１つ以上のプロセッサに行わせる、コンピュータプログラム製品。
【請求項２７】
エントロピーコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトルを計算し、及び
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備える請求項２６に記載のコンピュータプログラム製品。
【請求項２８】
エントロピーコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定し、及び
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備える請求項２６に記載のコンピュータプログラム製品。
【請求項２９】
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す値をまとめてコーディングすることを前記１つ以上のプロセッサに行わせる命令を備える請求項２６に記載のコンピュータプログラム製品。
【請求項３０】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定し、及び
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項３０に記載のコンピュータプログラム製品。
【請求項３２】
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、動きベクトル解像度フラグに関する値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備える請求項２９に記載のコンピュータプログラマブル製品。
【請求項３３】
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備える請求項２６に記載のコンピュータプログラマブル製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
様々な例が説明されている。これらの及びその他の例は、以下の請求項の範囲内である。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
映像データをコーディングする方法であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることと、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングすることと、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングすることと、を備える、方法。
［Ｃ２］
コーディングすることは、符号化することを備え、
映像データの前記現在のブロックに関する動きベクトルを計算することと、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することと、をさらに備えるＣ１に記載の方法。
［Ｃ３］
コーディングすることは、復号することを備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定することと、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することと、をさらに備えるＣ１に記載の方法。
［Ｃ４］
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることであって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きいことをさらに備え、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすること及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングすることを備えるＣ１に記載の方法。
［Ｃ５］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することをさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定することと、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することと、を備えるＣ４に記載の方法。
［Ｃ６］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを備えるＣ５に記載の方法。
［Ｃ７］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることは、動きベクトル解像度フラグに関する値をコーディングすることを備えるＣ４に記載の方法。
［Ｃ８］
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備えるＣ１記載の方法。
［Ｃ９］
映像データをコーディングするための装置であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングし、前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングし、及び、前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングするように構成された映像コーダ、を備える、装置。
［Ｃ１０］
前記映像コーダは、映像符号器を備え、前記映像符号器は、映像データの前記現在のブロックに関する動きベクトルを計算し及び前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するようにさらに構成される、Ｃ９に記載の装置。
［Ｃ１１］
前記映像コーダは、映像復号器を備え、前記映像復号器は、映像データの前記現在のブロックに関する動きベクトル予測子を決定し及び映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するようにさらに構成されるＣ９に記載の装置。
［Ｃ１２］
前記映像コーダは、映像データの前記現在のブロックの動きベクトルが第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするように構成され、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、前記映像コーダは、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするように構成されるＣ９に記載の装置。
［Ｃ１３］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトルと関連付けられたスレショルド値を決定し、及び、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するように構成されるＣ１２に記載の装置。
［Ｃ１４］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成されるＣ１３に記載の装置。
［Ｃ１５］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するために、前記映像コーダは、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するように構成されるＣ１２に記載の装置。
［Ｃ１６］
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをするように構成され、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするために、前記映像コーダは、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをするように構成され、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備えるＣ９記載の装置。
［Ｃ１７］
前記装置は、
集積回路、
マイクロプロセッサ、及び
前記映像コーダを含む無線通信デバイスのうちの少なくとも１つを備えるＣ９に記載の装置。
［Ｃ１８］
映像データをコーディングするための装置であって、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングするための手段と、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするための手段と、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｘ成分の符号をコーディングするための手段と、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに前記動きベクトル差分値の前記ｙ成分の符号をコーディングするための手段と、を備える、装置。
［Ｃ１９］
コーディングするための前記手段は、符号化するための手段を備え、
映像データの前記現在のブロックに関する動きベクトルを計算するための手段と、
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算するための手段と、をさらに備えるＣ１８に記載の装置。
［Ｃ２０］
コーディングするための前記手段は、復号するための手段を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定するための手段と、
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算するための手段と、をさらに備えるＣ１８に記載の装置。
［Ｃ２１］
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングするための手段であって、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きい手段と、
前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す、まとめてコーディングされた値をコーディングするための手段と、をさらに備えるＣ１８に記載の装置。
［Ｃ２２］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定するための手段と、
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定するための手段と、を備えるＣ２１に記載の装置。
［Ｃ２３］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための前記手段は、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定するための手段を備えるＣ２２に記載の装置。
［Ｃ２４］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングするための前記手段は、動きベクトル解像度フラグに関する値をコーディングするための手段を備えるＣ２１に記載の装置。
［Ｃ２５］
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングするための前記手段は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングするための手段を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備えるＣ１８記載の装置。
［Ｃ２６］
実行されたときに、
映像データの現在のブロックに関する動きベクトル差分値のｘ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、
前記動きベクトル差分値のｙ成分の絶対値がゼロよりも大きいかどうかを表す情報をコーディングし、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし、
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングし、
前記動きベクトル差分値の前記ｘ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｘ成分の符号をコーディングし、及び
前記動きベクトル差分値の前記ｙ成分の前記絶対値がゼロよりも大きいときに、前記動きベクトル差分値の前記ｙ成分の符号をコーディングすることを映像データをコーディングするためのデバイスの１つ以上のプロセッサに行わせる命令を格納しているコンピュータによって読み取り可能な記憶媒体、を備える、コンピュータプログラム製品。
［Ｃ２７］
コーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、符号化することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトルを計算し、及び
前記動きベクトル差分値を、映像データの前記現在のブロックに関する前記動きベクトルと映像データの前記現在のブロックに関して決定された動きベクトル予測子との間の差分として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備えるＣ２６に記載のコンピュータプログラム製品。
［Ｃ２８］
コーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、復号することを前記１つ以上のプロセッサに行わせる命令を備え、
映像データの前記現在のブロックに関する動きベクトル予測子を決定し、及び
映像データの前記現在のブロックに関する動きベクトルを、前記動きベクトル差分値及び前記動きベクトル予測子の和として計算することを前記１つ以上のプロセッサに行わせる命令をさらに備えるＣ２６に記載のコンピュータプログラム製品。
［Ｃ２９］
映像データの前記現在のブロックの動きベクトルは第１のサブピクセル精度を有するか又は第２のサブピクセル精度を有するかを表す値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、前記第２のサブピクセル精度は、前記第１のサブピクセル精度よりも大きく、
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングし及び前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトルが前記第２のサブピクセル精度を有するとき、前記動きベクトル差分値の前記ｘ成分がゼロに等しくないとき、及び前記動きベクトル差分値の前記ｙ成分がゼロに等しくないときに前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方を表す値をまとめてコーディングすることを前記１つ以上のプロセッサに行わせる命令を備えるＣ２６に記載のコンピュータプログラム製品。
［Ｃ３０］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令をさらに備え、
前記動きベクトルと関連付けられたスレショルド値を決定し、及び
前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分の両方が前記スレショルドよりも大きいときに前記動きベクトルは前記第１のサブピクセル精度を有すると決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備えるＣ２９に記載のコンピュータプログラム製品。
［Ｃ３１］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分及び前記動きベクトル差分値の前記ｙ成分のうちの少なくとも１つが前記スレショルド以下であるときに、動きベクトル解像度フラグの値に基づいて前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを決定することを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備えるＣ３０に記載のコンピュータプログラム製品。
［Ｃ３２］
前記動きベクトルは前記第１のサブピクセル精度を有するか又は前記第２のサブピクセル精度を有するかを表す前記値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、動きベクトル解像度フラグに関する値をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる命令を備えるＣ２９に記載のコンピュータプログラマブル製品。
［Ｃ３３］
前記動きベクトル差分値の前記ｘ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプログラミング可能なプロセッサに行わせる前記命令は、実行されたときに、前記動きベクトル差分値の前記ｘ成分の前記絶対値をｍｖｄ_ｘ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｘは、前記動きベクトル差分値の前記ｘ成分を備え、
前記動きベクトル差分値の前記ｙ成分の前記絶対値を表す情報をコーディングすることを前記１つ以上のプロセッサに行わせる前記命令は、前記動きベクトル差分値の前記ｙ成分の前記絶対値をｍｖｄ_ｙ／２−１としてコーディングをすることを前記１つ以上のプロセッサに行わせる命令を備え、ｍｖｄ_ｙは、前記動きベクトル差分値の前記ｙ成分を備えるＣ２６に記載のコンピュータプログラマブル製品。
【国際調査報告】
2014523714.tif 000015
2014523714.tif 000016
2014523714.tif 000017
2014523714.tif 000018