(57)【要約】動画像の動き補償符号化／復号化であって、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルを符号化する場合に、（１）差分動きベクトルの符号化精度又は（２）予測動きベクトルと符号化動きベクトルの符号化精度をブロック毎に切り替えて符号化する。また、上記符号化によって符号化された差分動きベクトルから、動きベクトルを復号する場合は、符号化と逆の処理によって行う。
2003063503.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の符号化ブロックに分割し、符号化ブロックの動きベクトルを隣接ブロックの動きベクトルから予測して予測動きベクトルとし、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像の符号化方法であって、
差分動きベクトルの精度を数種類用意し、符号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の差分動きベクトルとを符号化する手順を有する。
【請求項２】
画像を複数の符号化ブロックに分割し、符号化ブロックの動きベクトルを隣接ブロックの動きベクトルから予測して予測動きベクトルとし、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像の符号化方法であって、
動きベクトルの精度を数種類用意し、符号化ブロック毎に動きベクトルの精度を選定し、上記選定した精度の情報及び上記選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化する手順を有する。
【請求項３】
画像を複数の復号ブロックに分割し、復号ブロックの動きベクトルを隣接ブロックの復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手段を含む動画像復号化方法であって、
差分動きベクトルの精度を数種類用意し、復号ブロック毎に差分動きベクトルの精度情報とその精度の差分動きベクトルを復号化し、復号差分動きベクトルの精度を予測動きベクトルと同じ精度に修正した後、精度修正した復号差分動きベクトルと予測動きベクトルから復号ブロックの動きベクトルを算出する手順を有する。
【請求項４】
画像を複数の復号ブロックに分割し、復号ブロックの動きベクトルを隣接ブロックの復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手段を含む動画像復号化方法であって、動きベクトルの精度を数種類用意し、復号ブロック毎に動きベクトルの精度情報とその精度の差分動きベクトルを復号化し、予測動きベクトルの精度を復号精度情報と同じ精度に修正した後、復号差分動きベクトルと精度修正した予測動きベクトルから復号ブロックの動きベクトルを算出する手順をもつ。
【請求項５】
請求項１の動画像の符号化方法であって、更に、差分動きベクトルの精度を付加情報として符号化するか、或いは固定の精度に規定するかを示す識別情報を含み、かつ符号化ブロックの種類として符号化すべき動きベクトルの数が異なる複数のブロックタイプを用意し、差分動きベクトルの精度と符号化ブロック内の動きベクトル数とこの組み合わせに該当するブロックタイプとを選定する手順を含み、符号化ブロックのブロックタイプが付加情報として差分動きベクトルの精度を符号化することを示す場合にはブロックタイプと選定した精度の情報とその精度の差分動きベクトルとを符号化し、符号化ブロックのブロックタイプが規定の精度で差分動きベクトルを符号化することを示す場合にはブロックタイプと規定精度の差分動きベクトルとを符号化する。
【請求項６】
請求項２記載の動画像の符号化方法であって、更に、動きベクトルの精度を付加情報として符号化するか、或いは固定の精度に規定するかを示す識別情報を含み、かつ符号化ブロックの種類として符号化すべき動きベクトルの数が異なる複数のブロックタイプを用意し、動きベクトルの精度と符号化ブロック内の動きベクトル数とこの組み合わせに該当するブロックタイプとを選定する手順を含み、
ブロックタイプが付加情報として動きベクトルの精度を符号化することを示す場合には、ブロックタイプと、選定した精度の情報と、選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化し、
ブロックタイプが規定の精度で動きベクトルを符号化することを示す場合には、ブロックタイプと、規定精度に修正した予測動きベクトルと規定精度の動きベクトルより算出される差分動きベクトルを符号化する手順を有する。
【請求項７】
請求項３記載の動画像の復号化方法であって、さらに、差分動きベクトルの精度を付加情報として復号するか、或いは固定の精度に規定するかを示す識別情報を含み、かつ復号ブロックの種類として復号すべき動きベクトルの数が異なる複数のブロックタイプを用意し、復号すべきブロックのブロックタイプを復号する手順を有し、
復号ブロックタイプが付加情報として差分動きベクトルの精度を復号することを示す場合には精度の情報とその精度の差分動きベクトルとを復号し、
復号ブロックタイプが規定の精度で差分動きベクトルを復号することを示す場合には規定精度の差分動きベクトルを復号し、
復号差分動きベクトルの精度を予測動きベクトルと同じ精度に修正した後、精度修正した復号差分動きベクトルと予測動きベクトルから復号ブロックの動きベクトルを算出する手順を有する。
【請求項８】
請求項４記載のの動画像の復号化方法であって、さらに、動きベクトルの精度を付加情報として復号するか、或いは固定の精度に規定するかを示す識別情報を含み、かつ復号ブロックの種類として復号すべき動きベクトルの数が異なる複数のブロックタイプを用意し、ブロックタイプを復号しする手順を有し、
復号ブロックタイプが付加情報として動きベクトルの精度を復号することを示す場合には精度の情報とその精度の差分動きベクトルとを復号し、
復号ブロックタイプが規定の精度で動きベクトルを復号することを示す場合には規定精度の差分動きベクトルを復号し、復号差分動きベクトルと精度修正した予測動きベクトルから復号ブロックの動きベクトルを算出することする手順を有する。
【請求項９】
請求項１記載の動画像の符号化方法であって、さらに、
ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状を用意し、前記差分動きベクトルの精度、小ブロック形状種及び前記差分動きベクトルの精度を付加情報として符号化するか否かを決定し、前記決定に応じて一意に定まる識別情報をブロック毎に符号化して出力する手順を有する。
【請求項１０】
請求項１記載の動画像の符号化方法であって、さらに、ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状を用意し、前記動きベクトルの精度、小ブロック形状種、及び、前記動きベクトルの精度を付加情報として符号化するか否かを決定する手順と、
各ブロックについて、付加情報として動きベクトルの精度を符号化する場合は、前記決定に応じて一意定まる識別情報、選定した精度の情報及び選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化して出力し、
付加情報として動きベクトルの精度を符号化しない場合は、前記決定に応じて一意定まる識別情報、該識別情報に応じた精度に修正した予測動きベクトルと該精度の動きベクトルより算出される差分動きベクトルとを符号化して出力する手順を有する。
【請求項１１】
画像を複数のブロックに分割し、該ブロックの動きベクトルを隣接する復号動きベクトルから予測し、復号差分動きベクトルと予測した動きベクトルより該ブロックの動きベクトルを算出する手順を含む動画像の復号化方法であって、
前記復号差分動きベクトルの精度を複数用意し、ブロック内で復号化すべき動きベクトルの数が異なる複数種の小ブロック形状を用意し、前記復号差分動きベクトルの精度、小ブロック形状種、及び、前記復号差分動きベクトルの精度を付加情報として復号化するか否かに応じて一意に定まるブロック毎に符号化された識別情報を受け取り、複合化した該識別情報に従って複合化を行う手順を有する。
【請求項１２】
請求項１記載の動画像符号化方法であって、さらに、
ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状タイプを用意し、前記各小ブロック形状について、差分動きベクトル精度をデフォルト値で固定するか可変値とするかが規定されており、前記差分動きベクトルの精度、小ブロック形状種及び差分動きベクトルの精度を付加情報として符号化するか否かを決定する手順、前記デフォルト値と前記決定に応じて一意に定まる識別情報をコード化し、符号化データに含めて出力する手順を有する。
【請求項１３】
画像を複数の復号ブロックに分割し、該ブロックの動きベクトルを隣接位置の復号動きベクトルから予測し、前記ブロックの動きベクトルを復号し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法であって、
差分動きベクトルの精度を複数用意し、ブロック内で復号すべき動きベクトル数が異なる複数種の小ブロック形状タイプを用意し、前記各小ブロック形状について、差分動きベクトル精度をデフォルト値で固定するか可変値とするかが規定されており、前記デフォルト値と、前記差分動きベクトルの精度情報或いは差分動きベクトルの精度を付加情報として復号するかデフォルト値とするかを示す情報と小ブロック形状種とを一意に定める識別情報を符号化データから解読する手順を有する。
【請求項１４】
画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像符号化方法であって、
動きベクトルの精度を数種類用意し、上記動きベクトルと上記予測動きベクトルのビット列のデータ長は用意されている精度のうち最も高い精度のベクトル値を表現できる長さであり、動きベクトル精度を選定し、上記動きベクトルと上記予測動きベクトルのビット列を選定した精度より高い精度の数値を表すためのビット分だけ右に算術シフトした修正動きベクトルと修正予測動きベクトルのビット列をそれぞれ算出し、上記修正予測動きベクトル並びに上記修正動きベクトルから算出される差分動きベクトルを符号化する手順を有する。
【請求項１５】
画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像符号化方法であって、動きベクトルの精度を数種類用意し、上記動きベクトルと上記予測動きベクトルのビット列のデータ長は用意されている精度のうち最も高い精度のベクトル値を表現できる長さであり、符号化ブロックの種類として符号化すべき動きベクトル数が異なる複数のブロックタイプを用意し、さらに各ブロックタイプは動きベクトルの精度を規定する識別情報を含んでおり、動きベクトル精度とブロック内の動きベクトル数の組み合わせに該当するブロックタイプを選定し、上記動きベクトルと上記予測動きベクトルのビット列を選定した精度より高い精度の数値を表すためのビット分だけ右に算術シフトした修正動きベクトルと修正予測動きベクトルのビット列をそれぞれ算出し、ブロックタイプと、上記修正予測動きベクトル並びに上記修正動きベクトルより算出される差分動きベクトルとを符号化する手順を有する。
【請求項１６】
画像を複数の復号ブロックに分割し、復号ブロック内の動きベクトルを隣接位置の復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手段を含む動画像復号化方法であって、動きベクトルの精度を数種類用意し、上記動きベクトルと上記予測動きベクトルのビット列のデータ長は用意されている精度のうち最も高い精度のベクトル値を表現できる長さであり、差分動きベクトルを復号化し、上記予測動きベクトルのビット列を上記規定精度より高い精度の数値を表すためのビット分だけ右に算術シフトした修正予測動きベクトルのビット列を算出し、上記復号差分動きベクトルと修正予測動きベクトルから規定精度のベクトル値を表現できるデータ長の動きベクトルを算出し、該動きベクトルを上記復号動きベクトルのデータ長に変換する手順を有する。
【請求項１７】
画像を複数の復号ブロックに分割し、復号ブロック内の動きベクトルを隣接位置の復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手段を含む動画像復号化方法であって、動きベクトルの精度を数種類用意し、上記動きベクトルと上記予測動きベクトルのビット列のデータ長は用意されている精度のうち最も高い精度のベクトル値を表現できる長さであり、復号ブロックの種類として復号すべき動きベクトル数が異なる複数のブロックタイプを用意し、さらに各ブロックタイプは、動きベクトルの精度を規定する識別情報を含んでおり、ブロックタイプを復号し、復号ブロックタイプにより規定される精度の差分動きベクトルを復号化し、上記予測動きベクトルのビット列から上記規定精度を高い精度の数値を表すためのビット分だけ右に算術シフトした修正予測動きベクトルのビット列を算出し、上記復号差分動きベクトルと該修正予測動きベクトルから復号ブロックタイプにより規定される精度のベクトル値を表現できるデータ長の動きベクトルを算出し、該動きベクトルを上記復号動きベクトルのデータ長に変換する手順を有する。
【請求項１８】
画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像の符号化方法であって、
動きベクトルの精度を複数用意し、動きベクトルの水平成分と垂直成分で異なる精度を割り当て、上記予測ベクトルの各成分を該割り当てられた精度に修正し、上記修正された予測動きベクトルと割り当てられた精度の動きベクトルから算出される差分動きベクトルを符号化する手順を有する。
【請求項１９】
請求項１８記載の動画像符号化方法であって、上記は像が順次走査された画像であり、上記動きベクトルの精度は３種類以上であり、上記動きベクトルの水平成分と垂直成分で異なる精度を割り当ては動きベクトルの水平成分に第１の精度、フィールド構造の符号化ブロックにおける動きベクトルの垂直成分に第１の精度より低い第２の精度、フレーム構造の符号化ブロックにおける動きベクトルの垂直成分に第２の精度より低い第３の精度を割り当てる。
【請求項２０】
画像を複数の復号ブロックに分割し、復号ブロック内の動きベクトルを隣接位置の復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手段を含む動画像復号化方法であって、
動きベクトルの精度を数種類用意し、動きベクトルの水平成分と、垂直成分に異なる精度が割り当てられており、差分動きベクトルを復号化し、上記予測動きベクトルの各成分を割り当てられた精度に修正し、上記復号差分動きベクトルと修正予測動きベクトルから割り当てられた精度で動きベクトルの各成分を算出し、該動きベクトルの各成分を上記復号動きベクトルの精度に変換するものであって、前記水平成分の精度は前記垂直成分より高い。
【請求項２１】
請求項２０記載の動画像復号化方法であって、上記画像が順次走査であり、上記動きベクトルの精度を３種類以上であり、動きベクトルの水平成分と、垂直成分に異なる精度が割り当てが動きベクトルの水平成分に第１の精度、フィールド構造の復号ブロックにおける動きベクトルの垂直成分に第１の精度より低い第２の精度、フレーム構造の復号ブロックにおける動きベクトルの垂直成分に第２の精度より低い第３の精度を割り当て、、差分動きベクトルを復号化し、上記予測動きベクトルの各成分を割り当てられた精度に修正し、上記復号差分動きベクトルと修正予測動きベクトルから割り当てられた精度で動きベクトルの各成分を算出し、該動きベクトルの各成分を上記復号動きベクトルの精度に変換する手順を有する。
【発明の詳細な説明】
技術分野
本発明は、動画像信号の符号化方法、復号化方法、符号化装置及び復号化装置、特に、動きベクトルの符号化及び復号化技術に関するものである。
背景技術
動画像の符号化・復号化処理の概要について説明する。動画像の符号化は、一般的に、図１３の符号化装置で行われる。符号化の対象となる動画像の１フレームは、図３に示すように、１個の輝度信号（Ｙ信号：６１）と２個の色差信号（Ｃｒ信号：６２，Ｃｂ信号：６３）で構成されており、色差信号の画像サイズは縦横とも輝度信号の１／２となる。一般のビデオ規格では、動画像の各フレームを小ブロックに分割し、マクロブロックと呼ばれるブロック単位で再生処理を行う。
上記マクロブロックは、図５に示ように、１６ｘ１６画素の１個のＹ信号ブロック３０と、それと空間的に一致する８ｘ８画素のＣｒ信号ブロック３１並びにＣｂ信号ブロック３１で構成されている。画像信号の符号化は、上記マクロブロック単位で処理される。符号化には、大きく分けて、イントラ符号化（イントラモード）、と予測符号化（インターモード）とがある。
図１３の画像信号の符号化装置において、イントラ符号化の場合は、符号化対象の入力マクロブロック画像２０１は、ＤＣＴ符号化ブロックに分割されＤＣＴ変換器２０３で直接ＤＣＴ２０３を行い、ＤＣＴ係数に変換される。各変換係数は量子化器で２０４され、多重化器２０６で符号化される。
ＤＣＴ符号化ブロックサイズは従来の符号化方式では８×８画素が一般的であるが、最近ではＭＰＥＧ−４  Ｐａｒｔ  １０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）等で４ｘ４画素サイズによるＤＣＴ変換も検討されている。
図６に示すように、各マクロブロックは２４個の４ｘ４画素ブロックに分割され、ＤＣＴ変換器２０３でそれぞれ１６個のＤＣＴ係数に変換される。量子化されたＤＣＴ係数はの一部は、局部復号器２２０の逆量子化器２０７と逆ＤＣＴ器２０８で、入力マクロブロックに復号され、フレームメモリ２１０に合成される。局部復号器２２０は、後述の復号装置と同様の復号画像を作成する。フレームメモリ２１０に蓄積された画像は後述の時間方向の予測に用いられる。このイントラ符号化は、前フレームに似通った部分がないマクロブロック（第１符号化フレームも含む）や、ＤＣＴに伴う蓄積演算誤差を解消したい部分等に配置される。
インター（予測符号化）符号化の場合は、入力マクロブロック画像２０１とフレームメモリ２１０に蓄積されている符号化済みフレームの復号画像（参照フレーム）間の動き補償処理が、動き補償器２１１で行われる。動き補償とは、参照フレームから対象マクロブロックの内容と似通った部分（一般的には、ブロック内の予測誤差信号の絶対値和あるいは２乗誤差和が小さい部分を選択する）を検索し、その動き量（動きベクトル）を符号化する時間方向の圧縮技術である。
図４に動き補償の処理構造を示す。図４は、太枠で囲んだ現フレーム７１の輝度信号ブロック７２について、前フレーム７３（参照フレーム）上の予測ブロック７５と動きベクトル７６を示した図である。動きベクトル７６は、現フレームの太枠ブロックに対して空間的に同位置に相当する前フレーム上のブロック７４（破線）から、前フレーム上の予測ブロック７５領域までの移動分を示す（色差信号用の動きベクトル長は、輝度信号の半分とし、符号化はしない）。検出された動きベクトルは、ＭＶ予測器２１５から得られる予測動きベクトル（隣接ブロックの動きベクトルから予測）との間で差分処理された後、多重化器２０６で符号化される。動き補償により前フレームから抜き出された予測マクロブロック画像２１３は、現フレームの入力マクロブロック画像２０１との間で差分器２０２にて差分処理され、差分マクロブロック画像が生成される。
差分マクロブロック画像は、図６に示すように、２４個の４ｘ４画素ブロックに分割され、ＤＣＴ変換器２０３でそれぞれ１６個のＤＣＴ係数に変換される。各ＤＣＴ係数は、量子化器２０４にて量子化され、多重化器２０６で符号化される。インター符号化の場合も、量子化ＤＣＴ係数を局部復号器２２０の逆量子化器２０７と逆ＤＣＴ器２０８で、差分マクロブロック画像に復号し、加算器２０９にて予測マクロブロック画像と加算した後、フレームメモリ２１０に合成する。なお、ここでは、１マクロブロックで符号化する動きベクトルの数を１本としているが、マクロブロックを更に小ブロックに分割し、小ブロック毎に動きベクトルを算出し符号化する方法が一般的である。例えば、ＭＰＥＧ−４  Ｐａｒｔ  １０（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）では、動き補償を行う際のマクロブロック分割タイプ（輝度成分）を図７として考える。基本はタイプ５１〜タイプ５４の４種類である。タイプ５４は、４個の８×８ブロック５４−０〜５４−３それぞれについて、更にタイプ５４ａ，５４ｂ，５４ｃ，５４ｄとイントラ符号化の５種類から選択する。
更に、予測符号化の動き補償方法としては、時間的に過去のフレームの情報を用いて動き補償を行う前方向予測符号化と、時間的に過去と未来のフレームの情報を用いて動き補償を行う双方向予測符号化に分けられる。上記前方向予測符号化の動き補償では、前方予測のみを扱うが、双方向符号化の動き補償では、前方予測の他に、後方予測、双方向予測並びに時間的に未来のフレームにおける動きベクトル情報を利用して双方向から予測を行う直接予測を扱う。
動きベクトルの符号化精度は、整数画素以下の精度まで扱うことが一般的である。例えば、ＭＰＥＧ−４  Ｐａｒｔ  ２のＡｄｖａｎｃｅｄ  Ｓｉｍｐｌｅ  Ｐｒｏｆｉｌｅでは、１／２画素精度と１／４画素精度がビットデータ毎に選択することが可能となっている。整数画素精度以下の予測値の算出方法については、説明を省くが、１／２画素精度では２タップの線形フィルタ、１／４画素精度では８タップフィルタと２タップフィルタを画素位置に応じて適応的に用いている。また、ＭＰＥＧ−４  Ｐａｒｔ  １０でも１／４画素精度で動きベクトルを表現することが検討されており、６タップフィルタと２タップフィルタを用いて予測値を算出する。このように、長いタップ数のフィルタを用いることにより予測性能が向上する。
全てのマクロブロックに対してイントラ符号化を適用したフレームをＩ−Ｐｉｃｔｕｒｅ、前方向予測符号化あるいはイントラ符号化にて構成されるフレームをＰ−Ｐｉｃｔｕｒｅ、双方向符号化符号化あるいはイントラ符号化にて構成されるフレームをＢ−Ｐｉｃｔｕｒｅと呼ぶ。Ｐ−ＰｉｃｔｕｒｅあるいはＢ−Ｐｉｃｔｕｒｅでは、図１３のＩＮＴＲＡ／ＩＮＴＥＲ判定器２１４にて、各マクロブロックを予測符号化とイントラ符号化のいずれで行うかを判定し、判定結果２１８を多重化器２０６で符号化する。
動画像の符号化信号の復号化は、符号化と逆の手順で行われる。一般的に、図１４の動画像復号装置で行われる。
符号解読部５０１では、入力された符号化データを解析し、動きベクトル関連情報とマクロブロックタイプ情報をＭＶ予測器５０８に、量子化ＤＣＴ係数情報を逆量子化器５０２に振り分ける。マクロブロックタイプがイントラ符号化であった場合には、復号した量子化ＤＣＴ係数情報を、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に逆量子化・逆ＤＣＴ処理し、マクロブロック画像を再生する。マクロブロックの予測モードが予測符号化であった場合には、ＭＶ予測器５０８にて復号差分動きベクトルと予測動きベクトルから復号動きベクトルが算出され、動き補償器５０４に入力される。動き補償器５０４では、動き量に従って、前フレームの復号画像が蓄積されているフレームメモリ５０７から予測マクロブロック画像を抜き出す。
次に、予測誤差信号に関する符号化データを、逆量子化器５０２と逆ＤＣＴ器５０３において、４×４画素ブロック毎に、逆量子化・逆ＤＣＴ処理し、差分マクロブロック画像を再生する。そして、予測マクロブロック画像と差分マクロブロック画像を加算器５０５にて加算処理し、マクロブロック画像を再生する。再生されたマクロブロック画像は、合成器５０６にて復号フレーム画像に合成される。また、復号フレーム画像は、次フレームの予測用にフレームメモリ５０７に蓄積される。
本発明に関連する文献として、特許公開公報（特開平１１−４６３６４号公報）がある。この文献では、ブロック単位で符号化・復号化処理を行う動画像の符号化・復号化方法において、数種類の動きベクトル精度を用意し、複数個束ねたブロック単位で動きベクトルの符号化精度を切り換える手段が、記載されている。
従来知られている動画像信号の動き補償符号化では、ブロックに含まれる動きベクトル数が複数種類用意されており、動きベクトルの符号化精度が１／８画素精度のように高い符号化方式が検討されている。しかしながら、動きベクトルの符号量の関係から、ブロックに複数の動きが含まれる場合でも、少ない動きベクトル数で符号化する方法が選択される傾向がある。また、整数画素精度以下の予測画素を長いタップ数のフィルタを用いて生成する場合には、１個の予測ブロックを生成するために用いる参照画像内の画素数が大きくなるというメモリアクセスの問題が発生する。この問題は、特に動き補償を行う際に問題となる。
従って、本発明の目的は、動きベクトルの符号量を削減及び符号化ブロック内のブロック数の増大による動き予測誤差情報の削減ができる動画像信号の符号化方法、復号化方法、符号化装置及び復号化装置を提供することである。
本発明の他の目的は、符号化装置及び復号化装置において、動き補償時メモリアクセス範囲を低減することである。
発明の開示
上記目的を達成するため、本発明は、画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像符号化方法において、
動きベクトルを符号化が、（１）差分動きベクトルの精度を数種類用意し、符号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の差分動きベクトルとを符号化する手順をもつ。又は（２）動きベクトルの精度を数種類用意し、符号化ブロック毎に動きベクトルの精度を選定し、選定した精度の情報と、選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化する手順をもつ。
ここで、上記（１）及び（２）の場合において、差分動きベクトルの符号化に伴う精度値（以下、ｍｖ＿ｓｈｉｆｔ値とも略称）の決定及び符号化処理は、全てのマクロブロックで行う他、マクロブロックのタイプ（例えば、符号化動きベクトルの数の大小）や周囲の状況（例えば、隣接マクロブロックルの状況）を利用し、特定マクロブロックのｍｖ＿ｓｈｉｆｔ値の符号化を省略する場合を含む。
上記（２）の場合、動きベクトルの水平成分と垂直成分で異なる精度を割り当て、各成分は割り当てられた精度の動きベクトルから算出された差分ベクトルを符号化するようにしてもよい。
本発明の動画像の復号化は、本発明の動画像符号化による符号を用いて、符号化の手順と逆の手順によって、符号化ブロックの画像再生を行う。即ち、動きベクトルの精度を複数用意し、動きベクトルの水平成分と垂直成分で異なる精度を割り当てる。各成分は該割り当てられた精度に修正し、該修正予測動きベクトルと割り当てられた精度の動きベクトルから算出される差分動きベクトルを符号化する。
さらに、復号化の場合にも、ｍｖ＿ｓｈｉｆｔ値の設定は、復号すべき符号が符号化された処理に対応して行われる。例えば、符号化において、マクロブロックのタイプ、あるいは周囲の状況でｍｖ＿ｓｈｉｆｔ値が符号化されていない符号の再生においては、復号マクロブロックのタイプ、あるいは周囲の状況でｍｖ＿ｓｈｉｆｔ値が決定、処理される。
本発明の目的、特徴、符号化装置及び復号化装置の構成は以下の図面を伴う実施例の説明によってさらに明確にされる。
発明を実施するための最良の形態
本発明の実施例を説明する前に、以下の説明の理解を容易にするため、符号化装置の多重化器で作成される符号データのデータシンタックスについて説明する。
図１がＰ−Ｐｉｃｔｕｒｅのデータシンタックス、図２がＢ−Ｐｉｃｔｕｒｅデータシンタックスの一部（ＣＢＰ１５以降は図１と同じであるため省略）を示す。なお、ここでは、データ（動きベクトル精度情報）１３は、データシンタックス内に現れないものとして説明する。また、Ｉ−ｐｉｃｔｕｒｅについては、本発明の特徴に含まれないため説明を省略する。
ｐｉｃｔｕｒｅ  ｈｅａｄｅｒ１０には画像サイズ、再生時刻等フレームの再生情報に関するデータが含まれる。ｐｉｃｔｕｒｅ  ｔｙｐｅ１１は、フレームタイプ情報で、Ｉ−Ｐｉｃｔｕｒｅ，Ｐ−Ｐｉｃｔｕｒｅ，Ｂ−Ｐｉｃｔｕｒｅの種別がここで符号化される。ＭＢ  ｔｙｐｅ１２からＴｃｏｅｆｆ  ｃｈｒｏｍａ１７がマクロブロックデータにあたり、フレーム内のマクロブロック数だけ繰り返される。ＭＢ  ｔｙｐｅ１２では図１５の表９５（Ｐ−ｐｉｃｔｕｒｅ）又は表９６（Ｂ−Ｐｉｃｔｕｒｅ）に示されるマクロブロックモードからマクロブロック毎に１つのモードが選択され、符号化される。
ＳＫＩＰモードは、前フレームの復号画像から空間的に同一位置に相当するマクロブロック画像を切り出しコピーすることを意味する。表内のＩｎｔｒａＭ×ＮのＭ，Ｎは空間予測を行う際の小ブロックサイズを示す。Ｍ×Ｎは動き補償を行う際の小ブロック単位を示しており、それぞれ図７のモード１〜モード４に対応している。
Ｄｉｒｅｃｔは、直接予測を意味する。Ｂｌｏｃｋ  １並びにＢｌｏｃｋ  ２は、図７のモード２又はモード３における２個の小ブロックを識別しており、各小ブロックの予測方向がＦｏｒｗａｒｄ（前方予測）、Ｂａｃｋｗａｒｄ（後方予測）、Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ（双方向予測）のいずれであるかを示す。ＭＢ  ｔｙｐｅ１２で８ｘ８（ｓｐｌｉｔ）を選択したマクロブロックについては、８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８が発生する。それ以外のマクロブロックモードでは、８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８は発生しない。８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８では、図１１の表９２（Ｐ−ｐｉｃｔｕｒｅ）又は図１２の表９４（Ｂ−Ｐｉｃｔｕｒｅ）に示される８ｘ８  パーティションモードから８ｘ８  パーティション毎に１つのモードが選択され、符号化される。表内のＩｎｔｒａは空間予測を示す。Ｍ×Ｎは動き補償を行う際の小ブロック単位を示しており、それぞれ図７のパーティション１〜パーティション４に対応している。Ｄｉｒｅｃｔは、直接予測を意味する。
Ｐｒｅｄｉｃｔｉｏｎは、各小ブロックの予測方向がＦｏｒｗａｒｄ（前方予測）、Ｂａｃｋｗａｒｄ（後方予測）、Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ（双方向予測）のいずれであるかを示す。ＭＶＤ１４は、Ｐ−Ｐｉｃｔｕｒｅにおける差分動きベクトルの符号化データを示す。従って、ＭＢ  ｔｙｐｅ１２がＩｎｔｒａＭ×Ｎの場合には、このデータは発生しない。ＭＢ  ｔｙｐｅ１２がＭ×Ｎの場合には、ＭＶＤ１４は、ＭＢ  ｔｙｐｅと８×８Ｐａｒｔｉｔｉｏｎが示すベクトル数だけ繰り返し符号化される。例えば、１６×８の場合には、符号化すべき差分動きベクトル数が２個であり、各動きベクトルは水平、垂直の２成分から構成されるため、４個のＭＶＤが連続して符号化される。ＭＶＤＦＷ２３とＭＶＤＢＷ２４は、Ｂ−Ｐｉｃｔｕｒｅにおける差分動きベクトルの符号化データを示す。ＭＶＤＦＷ２３は、ＭＢ  ｔｙｐｅ１２と８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８が示す前方予測（双方向予測も含む）に伴う動きベクトルを含むマクロブロックである場合に発生する。同様に、ＭＶＤＢＷ２４は、ＭＢ  ｔｙｐｅ１２と８ｘ８  Ｐａｒｔｉｔｉｏｎ  １８が示す後方予測（双方向予測も含む）に伴う動きベクトルを含むマクロブロックである場合に発生する。従って、ＭＢ  ｔｙｐｅ１２がＩｎｔｒａＭ×ＮあるいはＤｉｒｅｃｔの場合の場合には、このデータは発生しない。ＭＢ  ｔｙｐｅ１２がＭ×Ｎであり、前方予測（双方向予測も含む）に伴う動きベクトルが存在する場合には、ＭＶＤＦＷ２３は、ＭＢ  ｔｙｐｅと８×８  Ｐａｒｔｉｔｉｏｎが示す前方予測（双方向予測も含む）に伴うベクトル数（差分動きベクトル数×２、水平・垂直成分）だけ繰り返し符号化される。同様に、ＭＢ  ｔｙｐｅ１２がＭ×Ｎであり、後方予測（双方向予測も含む）に伴う動きベクトルが存在する場合には、ＭＶＤＢＷ２４は、ＭＢ  ｔｙｐｅと８×８  Ｐａｒｔｉｔｉｏｎが示す後方予測（双方向予測も含む）に伴うベクトル数（差分動きベクトル数×２、水平・垂直成分）だけ繰り返し符号化される。
ＣＢＰ１５は、図６に示される２４個のＤＣＴブロックについて、０以外の量子化ＤＣＴ係数（有意係数）が１６個係数に含まれているか否かを示す符号化データである。但し、２４個の各ＤＣＴブロックについてそれぞれ有意係数の有無情報を符号化すると付加情報が大きくなるため、ここでは、図６に示すように４個のＤＣＴブロックをまとめた８×８ブロック単位で有意係数の有無を符号化するものとする。
Ｔｃｏｅｆｆ  ｌｕｍａ１６は、輝度ブロック４０における量子化ＤＣＴ係数の符号化データを示す。符号化は、４×４ブロック４０−０から４ｘ４ブロック４０−１５まで、番号の小さい順にそれぞれ１６個の量子化係数が符号化される。但し、ＣＢＰにて有意係数が無いことが示されている８×８ブロックについては、符号化処理が省略される。
Ｔｃｏｅｆｆ  ｃｈｒｏｍａ１７は、輝度ブロック４０における量子化ＤＣＴ係数の符号化データを示す。符号化は、４×４ブロック４１−０，４１−２，４１−３，４１−４，４２−０，４２−１，４２−３，４２−４の順にそれぞれ１６個の量子化係数が符号化される。但し、ＣＢＰ１５で有意係数が無いことが示されている信号成分については、符号化処理が省略される。
図１と２に示したマクロブロックレベルの符号化データの符号化方法については、１種類の可変長符号表のみを用いるＵｎｉｖｅｒｓａｌ  ＶＬＣ（ＵＶＬＣ）、固定長符号化と可変長符号化（各符号化要素に異なる符号表を用意）を組み合わせた符号化方法並びに、算術符号化（例えば、非特許文献１参照）等が考えられる。図１６の表８３がＵＶＬＣの構成を示しており、Ｘｎの値は‘０’又は‘１’となる。表８４に、実際の可変長符号表の例を示す。算術符号化の具体的な方法としては、各符号の意味を数ビットのバイナリーデータに置き換え、各ビットを各々の０と１の発生確率を示す生起確率モデルに応じて符号化する方法を考える。この方法は、ＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）と呼ばれている（Ｗｉｔｔｅｎ  ｅｔ  ａｌ．，”Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ  ｆｏｒ  Ｄａｔａ  Ｃｏｍｐｒｅｓｓｉｏｎ”，Ｃｏｍｍ．ｏｆ  ｔｈｅ  ＡＣＭ，３０（６），１９８７，ｐｐ．５２０−５４１）。
本発明は、特に、動きベクトルの符号化部／復号化部に特徴をもつ。即ち、図１及び図２のデータＭＶＤシンタックスでＭＶＤｐｒｅｃｉｓｉｏｎ１３部の処理、図１３の符号化装置のＭＶ予測部部２１５、動き補償部２１１部、及び図１４の復号化装置のＭＶ部５０８、動き補償部５０４部の構成並び信号処理方法にの特徴をもつ。他の部分の構成及び信号処理方法は従来の装置、方法と実質的に同じであり、以下本発明の特徴部の実施例について説明する。
〈実施例１〉
本実施は、動きベクトルの符号化部は、画像を複数の符号化ブロックに分割し、上記符号化ブロックの画像信号及び上記符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する動画像符号化（以下動画像の動き補償符号化と略称）において、差分動きベクトルの精度を数種類用意し、復号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の情報の差分動きベクトルを符号化する方法である。
まず、上記予測動きベクトルの生成を図８を用いて説明する。ここで、動きベクトルを符号化する対象の小ブロックを５０とする。小ブロック５０では、動きベクトルの水平・垂直成分それぞれについて、隣接位置Ａ，Ｂ，Ｃに位置する３ブロックの動きベクトルを候補としてその中間値を計算し、中間値の動きベクトルを予測動きベクトルとする。但し、符号化順序やマクロブロック位置の関係で位置Ｃのブロックが符号化前の場合や画像の外に位置する場合には、位置Ｃの代わりに位置Ｄに位置するブロックの動きベクトルを候補動きベクトルの１つとして用いる。なお、位置Ａ，Ｂ，Ｃ，Ｄのブロックが動きベクトルを持たない場合には、その動きベクトルを０ベクトルとして予測処理を行う。この際、３個の候補ブロックのうち２個が動きベクトルを持たない場合には、残りの１つの候補動きベクトルを予測動きベクトルとする。上述の予測方法は、図７のモード１（５１）のブロック５１−０，モード４（５４）の小ブロック５４ａ−０、５４ｂ−０、５４ｂ−１、５４ｃ−０、５４ｃ−２並びに５４ｄ−０〜５４ｄ−３については、同じ予測方法を用いる。
モード２（５２）の２個の小ブロック（５２−０，５２−１）、モード３（５３）の２個の小ブロック（５３−０，５３−１）については、図８に示す矢印の根元に位置するブロックの動きベクトルを予測値とする。なお、いずれのモードにおいても、色差成分用の動きベクトルは符号化せず、輝度成分の動きベクトルを２で割る等して使用する。
本実施例１では、まず、差分動きベクトルの精度の候補を、１／４画素精度、１／２画素精度、１画素精度の３種類とする。ＭＶを１／４画素精度表現の動きベクトル成分を４倍した値、ＰＭＶを１／４画素精度表現の予測動きベクトル成分を４倍した値とすると、この表現で、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも４の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも２の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも１の倍数となるＭＶ。
従って、本方式の効果を符号化特性に反映させるためには動きベクトル推定において、予測誤差信号の絶対値和或いは２乗誤差和に、動きベクトルの符号量の影響を加えた評価関数を用意する。この際、各小ブロックの最適評価値を（ＭＶ−ＰＭＶ）の各精度について算出し、マクロブロック内の全小ブロックの動きベクトル推定処理が終了した後、各精度について小ブロックの評価値の加算値を計算することにより、評価値の総和が小さい精度を差分動きベクトルの精度と決定する。符号化する差分動きベクトルＭＶＤは式（１）で算出される。
2003063503.tif 000003
式（１）中のｍｖ＿ｓｈｉｆｔは、図９の表８１に示す値である。式（１）は、動きベクトル成分ＭＶから予測動きベクトル成分ＰＭＶを引いた値を、ｍｖ＿ｓｈｉｆｔで示す数だけ右に算術ビットシフトした値が差分動きベクトル成分ＭＶＤであることを示す。ここで、動きベクトル成分ＭＶから予測動きベクトル成分ＰＭＶを引いた値は１＜＜ｍｖ＿ｓｈｉｆｔの倍数であり、算術右ビットシフト処理した差分動きベクトル成分ＭＶＤが１の倍数の値となる。
Ｐｉｃｔｕｒｅ  ｔｙｐｅがＰ−Ｐｉｃｔｕｒｅの場合には、ｍｖ＿ｓｈｉｆｔが図１のデータＭＶＤ  ｐｒｅｃｉｓｉｏｎ１３に示す符号化データ要素、ＭＶＤがデータＭＶＤ１４に示す符号化要素として符号化される。Ｐｉｃｔｕｒｅ  ｔｙｐｅがＢ−Ｐｉｃｔｕｒｅの場合には、ｍｖ＿ｓｈｉｆｔが図２のデータＭＶＤ  ｐｒｅｃｉｓｉｏｎ１３に示す符号化データ要素、ＭＶＤがデータＭＶＤＦＷ２３（ＭＶＤが前方予測の差分動きベクトルの場合）又はデータＭＶＤＢＷ２４（ＭＶＤが後方予測の差分動きベクトルの場合）に示す符号化データ要素として符号化される。なお、ＭＶＤ  ｐｒｅｃｉｓｉｏｎの符号化は差分動きベクトルの符号化データ（ＭＶＤ１４又は、ＭＶＤＦＷ２３とＭＶＤＢＷ２４）が発生しないマクロブロックでは省略される。具体的には、Ｐ−Ｐｉｃｔｕｒｅ：ＭＢ  ｔｙｐｅがＩｎｔｒａＭ×Ｎ又は、ＭＢ  ｔｙｐｅが８ｘ８（ｓｐｌｉｔ）で４個の小ブロックの８ｘ８  ｐａｒｔｉｔｉｏｎが全てｉｎｔｒａの場合、Ｂ−Ｐｉｃｔｕｒｅ：ＭＢ  ｔｙｐｅがＩｎｔｒａＭ×Ｎ又はＤｉｒｅｃｔの場合、さらにＭＢ  ｔｙｐｅが８ｘ８（ｓｐｌｉｔ）で４個の小ブロックの８ｘ８  ｐａｒｔｉｔｉｏｎが全てｉｎｔｒａ又はｄｉｒｅｃｔの場合である。
従来例に示したように、符号化方法としては、ＵＶＬＣや算術符号化等を採用する。図９の表８１に示すコードは、ＵＶＬＣを使用した場合の符号化コードの例である。算術符号化の場合には、例えば符号化ＭＢ（図１０の７Ｃ）の予測動きベクトルの生成値は、直左ＭＢ（図１０の７Ａ）と直上ＭＢ（図１０の７Ｂ）のｍｖ＿ｓｈｉｆｔ値から算出される発生確率テーブルに従って符号化する。
復号化側では、復号ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤ並びにＰＭＶから、以下の式、
2003063503.tif 000004
に従って、各動きベクトル成分の復号、即ちＭＶ値を再生（復号化）する。式（２）は、差分動きベクトル成分ＭＶＤをｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトした値に予測動きベクトル成分ＰＭＶを加えた値が復号動きベクトル成分ＭＶになることを示す。この算術左ビットシフト処理により、復号された差分動きベクトル成分ＭＶＤは１の倍数から１＜＜ｍｖ＿ｓｈｉｆｔの倍数（符号化側のＭＶ−ＰＭＶに対応）となる。この値にＰＭＶを加えることで復号動きベクトル成分ＭＶは元の精度の値に復元される。
次に、差分動きベクトルの精度の候補が、１／８画素精度、１／４画素精度、１／２画素精度、１画素精度の４種類の場合について述べる。ＭＶを１／８画素精度表現の動きベクトル成分を８倍した値、ＰＭＶを１／８画素精度表現の予測動きベクトル成分を８倍した値とすると、この表現で、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも８の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも４の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも２の倍数となるＭＶ。
１／８画素精度：マクロブロック内の全小ブロックにおける（ＭＶ−ＰＭＶ）の値が水平・垂直成分とも１の倍数となるＭＶ。
動き推定の方法については、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであるため、説明を省略する。差分動きベクトルＭＶＤは式（１）で算出される。ここで、動きベクトル成分ＭＶから予測動きベクトル成分ＰＭＶを引いた値は１＜＜ｍｖ＿ｓｈｉｆｔの倍数であり、算術右ビットシフト処理した差分動きベクトル成分ＭＶＤが１の倍数の値となり、前述の式（１）で算出される。式（１）中のｍｖ＿ｓｈｉｆｔは、図９の表８２に示す値である。
ｍｖ＿ｓｈｉｆｔとＭＶＤの符号化方法ついては、差分動きベクトルの精度の候補が、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであるため、説明を省略するが、ＵＶＬＣを使用した場合の符号化コードは、表８１ではなく表８２に従うことなる。
復号化側の処理も、差分動きベクトルの精度の候補が、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであり、復号ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤ並びにＰＭＶから、前述の式（２）に従って、各動きベクトル成分の復号ＭＶ値が再生される。式（２）は、差分動きベクトル成分ＭＶＤをｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトした値に予測動きベクトル成分ＰＭＶを加えた値が復号動きベクトル成分ＭＶになることを示す。この算術左ビットシフト処理により、復号された差分動きベクトル成分ＭＶＤは１の倍数から１＜＜ｍｖ＿ｓｈｉｆｔの倍数（符号化側のＭＶ−ＰＭＶに対応）となる。この値にＰＭＶを加えることで復号動きベクトル成分ＭＶは元の精度の値に復元される。
〈実施例２〉
本実施２は、動画像の動き補償符号化において、動きベクトルの精度を複数種類用意し、マクロブロック毎に動きベクトルの精度を選定し、選定した精度情報と、その選定した精度に修正した予測動きベクトルとその選定した精度に修正した符号化動きベクトルから算出される差分動きベクトルを符号化する方法である。
まず、予測動きベクトルと符号化動きベクトルの精度の候補を、１／４画素精度、１／２画素精度、１画素精度の３種類とする。ＭＶを１／４画素精度表現の動きベクトル成分を４倍した値、ＰＭＶを１／４画素精度表現の予測動きベクトル成分を４倍した値とすると、この表現で、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも４の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも２の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも１の倍数となるＭＶ。
従って、本方式の効果を符号化特性に反映されるためには動きベクトル推定において、予測誤差信号の絶対値和或いは２乗誤差和に、動きベクトルの符号量の影響を加えた評価関数を用意する。この際、各小ブロックの最適評価値をＭＶの各精度について算出してき、マクロブロック内の全小ブロックの動きベクトル推定処理が終了した後、各精度について小ブロックの評価値の加算値を計算することにより、評価値の総和が小さい精度を差分動きベクトルの精度を決定できる。符号化する差分動きベクトルＭＶＤは以下の式、
2003063503.tif 000005
で算出される。式（３）中のｍｖ＿ｓｈｉｆｔは、図９の表８１に示す値である。式（３）は、動きベクトル成分ＭＶから、予測動きベクトル成分ＰＭＶをｍｖ＿ｓｈｉｆｔで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を引いた値に対して、さらにｍｖ＿ｓｈｉｆｔで示す数だけ第２の算術右ビットシフトを実施した値が差分動きベクトル成分ＭＶＤになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理は、予測動きベクトル成分ＰＭＶの値をＭＶと同じ１＜＜ｍｖ＿ｓｈｉｆｔの倍数の値に変換する役割を果たす。また、第２の算術右ビットシフト処理により、差分動きベクトル成分ＭＶＤが１の倍数の値となる。
このように、符号化動きベクトルの精度を切り換える方法では、動き推定の際にＰＭＶの精度を考慮する必要はないが、ＭＶＤの生成処理の際に、ＰＭＶ予測動きベクトルの精度をｍｖ＿ｓｈｉｆｔの精度に落とす処理を行う必要がある。但し、式（３）は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、動きベクトル成分ＭＶと予測動きベクトル成分ＰＭＶを１の倍数の値に変換してから差分処理を実施している。「１の倍数に変換した予測ベクトル成分を１＜＜ｍｖ＿ｓｈｉｆｔ倍した値」は上式における「１＜＜ｍｖ＿ｓｈｉｆｔ倍の値に変換した予測動きベクトル成分」と同等であり、また動きベクトル成分ＭＶは１＜＜ｍｖ＿ｓｈｉｆｔの倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
2003063503.tif 000006
ｍｖ＿ｓｈｉｆｔと  ＭＶＤのデータシンタックス図１と図２への割り当てと符号化方法については、差分動きベクトルの精度を切り換える方法と同じであるため説明を省略する。
復号化側では、復号ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤ並びにＰＭＶから、以下の式、
2003063503.tif 000007
に従って、各動きベクトル成分の復号ＭＶ値を再生する。この式（５）は、差分動きベクトル成分ＭＶＤをｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトした値に、予測動きベクトル成分ＰＭＶをｍｖ＿ｓｈｉｆｔで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を加えた値が復号動きベクトル成分ＭＶになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理と、ＭＶＤを差分動きベクトル成分ｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトする処理は、各成分を１＜＜ｍｖ＿ｓｈｉｆｔの倍数の値に変換する役割を果たしている。従って、復号動きベクトル成分ＭＶは元の１＜＜ｍｖ＿ｓｈｉｆｔの倍数となる。なお、式（５）は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。式（５）では、１の倍数の値に変換した予測動きベクトル成分ＰＭＶに復号した差分動きベクトルＤＭＶを加算した値に対して、ｍｖ＿ｓｈｉｆｔで示す数だけ左算術ビットシフトを施した値が復号動きベクトル成分ＭＶになることを示す。「１の倍数に変換した予測ベクトル成分を１＜＜ｍｖ＿ｓｈｉｆｔ倍した値」は上式における「１＜＜ｍｖ＿ｓｈｉｆｔの倍数に変換した予測動きベクトル成分」と同等であり、また差分動きベクトル成分ＤＭＶは１の倍数であるため、下記式（６）を用いることによる情報の欠落は発生しない。
2003063503.tif 000008
次に、差分動きベクトルの精度の候補が、１／８画素精度、１／４画素精度、１／２画素精度、１画素精度の４種類の場合について述べる。ＭＶを１／８画素精度表現の動きベクトル成分を８倍した値、ＰＭＶを１／８画素精度表現の予測動きベクトル成分を８倍した値とすると、この表現で、各精度候補に対するＭＶの値は以下のように制限される。
１画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも８の倍数となるＭＶ。
１／２画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも４の倍数となるＭＶ。
１／４画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも２の倍数となるＭＶ。
１／８画素精度：マクロブロック内の全小ブロックにおけるＭＶの値が水平・垂直成分とも１の倍数となるＭＶ。
動き推定の方法については、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであるため、説明を省略する符号化する。符号化する差分動きベクトルＭＶＤは以下の式、
2003063503.tif 000009
で算出される。式中のｍｖ＿ｓｈｉｆｔは、図９の表８２に示す値である。この式は、動きベクトル成分ＭＶから予測動きベクトル成分ＰＭＶをｍｖ＿ｓｈｉｆｔで示す数だけ右に算術ビットシフトのち直ちに左に算術ビッビットシフトした値を引いた値に対して、さらにｍｖ＿ｓｈｉｆｔで示す数だけ第２の算術右ビットシフトを実施した値が差分動きベクトル成分ＭＶＤになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理は、予測動きベクトル成分ＰＭＶの値をＭＶと同じ１＜＜ｍｖ＿ｓｈｉｆｔの倍数の値に変換する役割を果たす。
また、第２の算術右ビットシフト処理により、差分動きベクトル成分ＭＶＤが１の倍数の値となる。
ｍｖ＿ｓｈｉｆｔとＭＶＤの符号化方法ついては、差分動きベクトルの精度の候補が、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであるため、説明を省略するが、ＵＶＬＣを使用した場合の符号化コードは、表８１ではなく表８２に従うことなる。但し、上式は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、動きベクトル成分ＭＶと予測動きベクトル成分ＰＭＶを１の倍数の値に変換してから差分処理を実施している。「１の倍数に変換した予測ベクトル成分を１＜＜ｍｖ＿ｓｈｉｆｔ倍した値」は上式における「１＜＜ｍｖ＿ｓｈｉｆｔの倍数に変換した予測動きベクトル成分」と同等であり、また動きベクトル成分ＭＶは１＜＜ｍｖ＿ｓｈｉｆｔの倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
2003063503.tif 000010
復号化側の処理も、差分動きベクトルの精度の候補が、１／４画素精度、１／２画素精度、１画素精度の３種類の場合と同じであり、復号ｍｖ＿ｓｈｉｆｔ値と復号ＭＶＤ並びにＰＭＶから、以下の式、
2003063503.tif 000011
に従って、各動きベクトル成分の復号ＭＶ値が再生される。この式は、差分動きベクトル成分ＭＶＤをｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトした値に、予測動きベクトル成分ＰＭＶをｍｖ＿ｓｈｉｆｔで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を加えた値が復号動きベクトル成分ＭＶになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理と、ＭＶＤを差分動きベクトル成分ｍｖ＿ｓｈｉｆｔで示す数だけ左に算術ビットシフトする処理は、各成分を１＜＜ｍｖ＿ｓｈｉｆｔの倍数の値に変換する役割を果たしている。従って、復号動きベクトル成分ＭＶは元の１＜＜ｍｖ＿ｓｈｉｆｔの倍数となる。なお、この式は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、１の倍数の値に変換した予測動きベクトル成分ＰＭＶに復号した差分動きベクトルＤＭＶを加算した値に対して、ｍｖ＿ｓｈｉｆｔで示す数だけ左算術ビットシフトを施した値が復号動きベクトル成分ＭＶになることを示す。「１の倍数に変換した予測ベクトル成分をｍｖ＿ｓｈｉｆｔ倍した値」は上式における「ｍｖ＿ｓｈｉｆｔの倍数に変換した予測動きベクトル成分」と同等であり、また差分動きベクトル成分ＤＭＶは１の倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
2003063503.tif 000012
上記実施例１及び２を比較すると、実施例１は実際に符号化する差分動きベクトルの精度を調整するため、実施例２に比較して演算が簡単である。これに対して、実施例２は、符号化すべき動きベクトルの精度を調整するため、各精度を想定した場合の探索画素が予測ベクトルに依存しない。従って、符号化性能のみを追求する場合には実施例１が有効であるが、後述するメモリアクセス削減方法では、実施例２が有効である。
〈実施例３〉
本実施例３は、ｍｖ＿ｓｈｉｆｔ値の符号化を極力行わずに、ブロックモードに応じて予め決めておく符号化方法及び復号化方法で、マクロブロックの選択率が高い領域での、ｍｖ＿ｓｈｉｆｔ値の符号量の増大防止する方法である。即ち、マクロブロックに伴う動きベクトル数が少ないモードでは、予め規定したデフォルトの動きベクトル精度で差分動きベクトルの符号化並びに復号化処理を行う。この処理により、動きベクトル精度情報の符号化並びに復号化処理を省略する。
例えば、ＭＢ  ｔｙｐｅが１６×１６のマクロブロックでは、１／４画素精度或いは１／８画素精度で符号化並びに復号化処理を行うように符号化側と復号側で設定し、これらのモードのマクロブロックでは精度情報の符号化・復号化処理を省略する。ここでは、ＭＢ  ｔｙｐｅが１６ｘ１６のマクロブロックのみを精度情報の符号化・復号化処理を省略するモードとして設定しているが、その対象をさらに拡張できる。例えば、ＭＢ  ｔｙｐｅが  １６ｘ１６，１６ｘ８並びに８ｘ１６のマクロブロックを１／４画素精度或いは１／８画素精度で符号化並びに復号化処理を行うように符号化側と復号側で設定することも有効である。また、Ｐ−Ｐｉｃｔｕｒｅでは、ＭＢ  ｔｙｐｅが１６ｘ１６のマクロブロックのみを精度情報の符号化・復号化処理を省略するモードとして設定し、符号化する動きベクトル数が多いＢ−Ｐｉｃｔｕｒｅでは、ＭＢ  ｔｙｐｅが１６ｘ１６，１６ｘ８並びに８ｘ１６のマクロブロックまでを精度情報の符号化・復号化処理を省略するモードとして設定してもよい。
なお、上記動きベクトル精度のｄｅｆａｕｌｔ値は、ｍｖ＿ｓｈｉｆｔ値と同様に０−３（１／４  ＭＣ  ｔｙｐｅのときには０−２）の範囲で設定可能であり、ビットストリーム単位或いはフレーム単位で切り換える。この際、ｄｅｆａｕｌｔ値の符号は、ビットストリーム単位の場合にはデータの始めのヘッダ部、フレーム単位の場合にはｐｉｃｔｕｒｅ  ｈｅａｄｅｒデータに含まれるものとする。なお、ビットストリーム単位の場合においては、符号化側と復号化側で予め定めておけば、符号化データに含める必要はない。
さらに、図１５の表９５と表９６の替わりに、図１１の表９１と図１２の表９３に示すようなｍｖ＿ｓｈｉｆｔの値を規定したマクロブロックタイプを用意することにより、ｍｖ＿ｓｈｉｆｔ値の符号化に伴う付加情報を削減することができる。また、ｍｖ＿ｓｈｉｆｔ値を算術符号化する際に、マクロブロックに含まれる動きベクトル数の基づいて、符号化に用いる確率モデルを適応的に切り換えることで、符号化効率を向上させることができる。なお、ここでは、ｍｖ＿ｓｈｉｆｔの切り換え単位をマクロブロック単位としているが、８×８毎に切り換える場合も考えられる。このような処理は、ＭＢ＿ｔｙｐｅに８×８毎に処理するモードと１６×１６毎に処理するモードを設けることにより実現できる。また、表８１又は表８２に８ｘ８毎に切り換えるモードを設け、更に４個のｍｖ＿ｓｈｉｆｔ値を８ｘ８毎に符号化する方法でも実現できる。
またさらに、差分動きベクトル或いは動きベクトルの精度の選択切り換え単位として、フレーム全体で固定にする場合やシーケンス全体で固定にするようにしてもよい。精度の選択切り換え単位を固定することは、符号化／復号化処理を簡略化することになる。従って、実装コストを考慮したシンプルな符号化／復号化方式では、精度の切り換え単位をフレーム単位やシーケンス単位で固定することが有効である。
〈実施例４〉
本実施例４は、周囲の状況からシフト値を一意に判定する方法である。即ち、隣接マクロブロックから符号化対象マクロブロックのｍｖ＿ｓｈｉｆｔ値を予測することにより、ｍｖ＿ｓｈｉｆｔ値の符号量を削減する。例えば、符号化対象マクロブロック（図１０のマクロブロック７Ｃ）のｍｖ＿ｓｈｉｆｔ値を、直左のマクロブロック（７Ａ）、直上のマクロブロック（７Ｂ）のｍｖ＿ｓｈｉｆｔ値から予測する。予測方法としては、７Ａと７Ｂのｍｖ＿ｓｈｉｆｔ値の加算値から予測する方法がある。具体的な利用手段としては、加算値が０であり、７ＣのＭＢ  ｔｙｐｅが１６ｘ１６の場合には、ｍｖ＿ｓｈｉｆｔ値（ＭＶＤ  ｐｒｅｃｉｓｉｏｎ）の符号化を省略し規定値として１／８画素精度或いは１／４画素精度を符号化・復号化側の両者で用い、それ以外の加算値とＭＢ  ｔｙｐｅの組み合わせの場合には、ｍｖ＿ｓｈｉｆｔ値の符号化を行制御手段がある。なお、この具体例は一例であり、予測に用いる隣接マクロブロックの種類、予測方法、制御を行うＭＢ  ｔｙｐｅの種類、制御時の場合分け種類等の組み合わせは多種ある。例えば、制御を行うＭＢ  ｔｙｐｅを２個以下の差分動きベクトルまで拡張したり、加算値の制御ポイントを２以下に拡張したりすることで、ｍｖ＿ｓｈｉｆｔ値の符号量の削減量は大きくなる。また、動きベクトルの予測のような方法で隣接ＭＢのｍｖ＿ｓｈｉｆｔ値から現ＭＢのｍｖ＿ｓｈｉｆｔ値を予測し、その差分値を符号化する方法等がある。
上述の実施例の動きベクトルの符号化精度切り換える手段には次のような変形も含まれる。
本実施例では、動きベクトルの符号化精度の候補を１／８画素精度、１／４画素精度、１／２画素精度、１画素精度としているが、これに限定されない。例えば１／１６画素精度まで含める場合や、１／２画素精度、１画素精度の２種類とする場合。
また、上記実施例では、動きベクトルの符号化精度情報の符号化をマクロブロック単位で行っているが、複数のマクロブロックグループ毎に動きベクトルの符号化精度情報を切り換える方法。
さらに、上記実施例では、マクロブロックにおける動き補償ブロックの分割モードを図７に示した４種類としているが、本明細書の動きベクトル符号化方法は、動き補償ブロックの分割モードの種類と数が変更されても実施できるため、動きベクトルの符号化ブロック構成は限定されない。
また、上記実施例では、符号化データの符号化方式としてＵＶＬＣや算術符号化を説明した、本明細書の動きベクトル符号化方法は、エントロピー符号化の種類に限定されず実施できる。また、ＵＶＬＣの符号表の構成や算術符号化／復号化の構成の方法も実施例の表には限定されない。またさらに、本実施例では、１６ｘ１６，１６ｘ８並びに８ｘ１６モードについてｍｖ＿ｓｈｉｆｔ値のｄｅｆａｕｌｔ値を利用しているが、このｄｅｆａｕｌｔ値を８ｘ８（ｓｐｌｉｔ）の一部のＰａｒｔｉｔｉｏｎモードに適用できる。また、実施例では、ｄｅｆａｕｌｔ値の設定をビットストリーム単位又はフレーム単位としているが、各マクロブロック単位について、異なる値を割り当てもよい。例えば、１６ｘ１６モードでは、ｄｅｆａｕｌｔ値を１と設定し、１６ｘ８と８ｘ１６モードでは、ｄｅｆａｕｌｔ値を０と設定する方法がある。総括的に言えば、マクロブロックモードや８ｘ８  Ｐａｒｔｉｔｉｏｎモードについて、それぞれ適用する差分動きベクトル（或いは動きベクトル）の符号化精度をフレーム単位或いはシーケンス単位で規定し、符号化伝送すればよい（シーケンス単位の場合には、予め符号化側と復号化側で各モードにおける符号化精度を決めておけば、精度情報の符号化は必要ない）。前述のように、符号化精度の選択切り換え単位を固定することは、符号化／復号化処理を簡略化することになる。ｄｅｆａｕｌｔ値を規定するモードを増やすことにより、実装コストはさらに低減される。よりシンプルな構成を必要とする符号化／復号化方式では、より多くのモードに対して、符号化精度の切り換え単位を固定することが有効である。
以上は本発明による動画像の符号化方法及び復号化方法の実施例について説明した。本発明による動画像の符号化装置及び復号化装置は、実施例の方法図１３の符号化装置については、まず、動き補償器２１１にＭＢ  ｔｙｐｅと８ｘ８  Ｐａｒｔｉｔｉｏｎの組み合わせに応じてｍｖ＿ｓｈｉｆｔ値の符号化をＯＮ／ＯＦＦする判定処理、ｍｖ＿ｓｈｉｆｔ値を考慮した動き推定処理、ｍｖ＿ｓｈｉｆｔを伴うＭＶＤ，ＭＶＤＦＷ，ＭＶＤＢＷの算出処理並びにｍｖ＿ｓｈｉｆｔ値を多重化器２０６に伝える処理が追加される。また、多重化器２０６にｍｖ＿ｓｈｉｆｔ値をＭＶＤ  ｐｒｅｃｉｓｉｏｎとして符号化する処理を追加する。図１４の復号化装置については、符号解読器５０１にＭＢ  ｔｙｐｅと８ｘ８Ｐａｒｔｉｔｉｏｎの復号値に応じてｍｖ＿ｓｈｉｆｔ値の復号化をＯＮ／ＯＦＦする判定処理、ＭＶＤ  ｐｒｅｃｉｓｉｏｎをｍｖ＿ｓｈｉｆｔ値として復号する処理並びにｍｖ＿ｓｈｉｆｔ値をＭＶ予測器５０８に伝える処理を加える処理部を設ける。また、ＭＶ予測器５０８にｍｖ＿ｓｈｉｆｔを伴うＭＶＤ，ＭＶＤＦＷ，ＭＶＤＢＷをＭＶに再生する処理部を設ける。
図２５、図２７、図２９、図３１、図３３、図３５、図３７、図３９及び図４１は、何れも本発明による動画像の符号化装置の実施例の要部（動きベクトルの符号化部）構成を示すブロック図である。図２６、図２８、図３０、図３２、図３４、図３６、図３８、図４０及び図４２は、それぞれ図２５、図２７、図２９、図３１、図３３、図３５、図３７、図３９及び図４１の符号化装置に対応する本発明による動画像の復号化装置の実施例の要部（動きベクトルの復号化部）構成を示すブロック図である。の実施例の要部（動きベクトルの符号化部）構成を示すブロック図である。
各図において、実質的に同じ機能ブロックについては同一番号を付している。各図の装置の構成、動作は、上記実施例１ないし４の説明によって、容易に実現できるので、上記各実施例との対応のみ示し、詳細な説明は省く。
図２５と図２６の装置は、それぞれ実施例１の式（１）及び（２）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）のみによって制御される。ＭＶ予測部２１５は各ブロックの動きベクトルＭＶを記憶したメモリ１０１を利用し、予測動きベクトルＰＭＶを作る。減算器１０２は、これらの差分ＭＶ−ＰＭＶをえる。右シフト処理部１０３はＭＶ−ＰＭＶを右シフトする。復号側では、符号側の逆処理を行うため、動きベクトルＭＶを記憶したメモリ１０１、左シフト処理部１１３及び加算器１１２が設けられる。
図２７と図２８の装置は、それぞれ実施例１の式（１）及び（２）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）とマクロブロックのタイプ等の条件のいずれかによって決定され、制御される。シフト値選択部１０４は特定のブロックタイプを選択した場合、ｍｖ＿ｓｈｉｆｔ値を選択し、制御回路１０５で、該部からのｍｖ＿ｓｈｉｆｔ値から、ブロックタイプに対応したｍｖ＿ｓｈｉｆｔ値で右シフト処理部１０３を処理する。
図２９と図３０の装置は、それぞれ実施例１のそれぞれ式（１）及び（２）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定がマクロブロックのタイプ等の条件のみによって決定され、制御される。
図３１と図３２の装置は、それぞれ実施例２の式（３）及び（５）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）のみによって制御される。精度修正処理部１０６は、式（３）の（ＰＭＶ＞＞ｍｖ＿ｓｈｉｆｔ）＜＜ｍｖ＿ｓｈｉｆｔの処理を行う。
図３３と図３４の装置は、それぞれ実施例２の式（３）及び（５）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）とマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
図３５と図３６の装置は、それぞれ実施例２の式（３）及び（５）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定がマクロブロックのタイプ等のみによって制御される。
図３７と図３８の装置は、それぞれ実施例２の式（４）及び（６）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）のみによって制御される。
図３９と図４０の装置は、それぞれ実施例２の式（４）及び（６）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定が外部入力（動きベクトル検出時に求まる）とマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
図４１と図４２の装置は、それぞれ実施例２のそれぞれ式（４）及び（６）を実行する回路で構成され、シフト（ｍｖ＿ｓｈｉｆｔ）値の決定がマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
〈実施例５〉
図１８は、実施例５の符号化方法の処理フロー図である。
本実施例５は長いタップ数のフィルタを用いた動き補償でメモリアクセス領域が拡大する問題を解決するため、符号化動きベクトルの精度を切り換える符号化・復号化方法である。
長いフィルタを用いて生成する予測値は、画素精度以下の予測画素のみである。従って、動きベクトルの符号化精度を整数画素に限定することにより、メモリアクセス領域は削減できる。しかし、動きベクトルの符号化精度を整数画素に限定することは、予測性能を低減させる。そこで、本実施例５では、メモリアクセス範囲の拡大が装置実装或いはソフトウェア実装に影響する程度に応じて、画素精度を制限する。特に、動き補償時のブロックサイズが小さい場合についてのみ、動きベクトルの符号化精度を制限する。
メモリアクセス領域の拡大に伴う影響は、ブロックサイズが小さいほど大きくなる。サイズの小さいブロックは本来アクセスする画素数が少ない。そのため、サイズの大きいブロックと小さいブロックを比較すると、元のアクセス範囲に対する拡大アクセス領域の比率は、ブロックサイズが小さいほど大きい。
本実施例の符号化装置方法は、１／４画素精度の動き補償を図７のブロック分割に対して行う場合、図１８のように、まずブロックサイズ判別し（処理８０１）、ｍｖ＿ｓｈｉｆｔ値を選択する。本実施例の場合には、８ｘ８Ｐａｒｔｉｔｉｏｎ  ２（８ｘ４）と８ｘ８  Ｐａｒｔｉｔｉｏｎ  ３（４ｘ８）では１／２画素精度（処理８１１）、８ｘ８  Ｐａｒｔｉｔｉｏｎ  ３（４ｘ４）では整数画素精度（処理８１２）、８ｘ８画素並びにそれ以上の大きなサイズのブロックでは、１／４画素精度（図１８  処理８１３）を選択し、選択されたｍｖ＿ｓｈｉｆｔで、右シフト処理分１０３、を駆動して動き補償を行う。動きベクトルの符号化時には、８ｘ４と４ｘ８画素サイズのブロックではｍｖ＿ｓｈｉｆｔを１、４ｘ４画素サイズのブロックではｍｖ＿ｓｈｉｆｔを２、それ以外の画素サイズのブロックではｍｖ＿ｓｈｉｆｔを０とする。
また、Ｐ−ｐｉｃｔｕｒｅとＢ−ｐｉｃｔｕｒｅを用いた方式では、Ｂ−ｐｉｃｔｕｒｅのみに上記精度切り換えを適用し、Ｐ−ｐｉｃｔｕｒｅでは、ブロックサイズに関わらず１／４画素精度で動き補償を行うようにしてもよい。なお、ここでは、整数画素精度で動き補償を行うブロックサイズを４ｘ４のみとしているが、これを、８ｘ４と４ｘ８まで拡張してもよい。この場合、８ｘ４と４ｘ８と４ｘ４画素サイズのブロックではｍｖ＿ｓｈｉｆｔを２、それ以外の画素サイズのブロックではｍｖ＿ｓｈｉｆｔを０とする。
本実施例による動画像の符号化装置及び復号化装置における動きベクトルの符号化部及び復号化部は、それぞれ前記図４１及び図４２と同様に構成される。
〈実施例６〉
図１９，図４５及び図４６は，それぞれ本発明の実施例６の符号化方法処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。本実施例も長いタップ数のフィルタを用いた動き補償でメモリアクセス領域が拡大する問題を解決するため、動きベクトルの垂直・水平各成分を異なる符号化精度で符号化することにより、メモリアクセス範囲を制限する。
符号化装置のシフト選択部１２４は、図１９のように、動きベクトルが垂直成分か否かをし（処理８０１）、ｍｖ＿ｓｈｉｆｔを選択する。タイプ適応部１２４は、選択されたｍｖ＿ｓｈｉｆｔで、右シフト処理部１０３を駆動して動き補償を行う。本実施例では、１／４画素精度の動き補償で、動きベクトルの垂直成分を整数画素精度（処理８１２）、水平成分を１／４画素精度（処理８１３）とし、垂直成分を符号化／復号化する際のｍｖ＿ｓｈｉｆｔを２、水平成分を符号化／復号化する際のｍｖ＿ｓｈｉｆｔを０とする。
本実施例のメモリアクセス範囲拡大の影響が大きい動きベクトルの垂直成分の符号化精度を制限する方法は効果が大きい。画像データは、左上から右下に向けてラスタスキャン順でメモリに保存されているのが一般的である。そのため、ある画素から隣接画素にアクセス範囲を広げる場合、水平方向の１画素は１画素分を意味するが、垂直方向の１画素は１ライン分を意味する。従って、垂直方向へのメモリアクセスに伴う工数は、水平方向のそれよりも大きい。さらに、１画素１ｂｙｔｅの画素データを、ｂｙｔｅ単位（１画素）ではなく、ｗｏｒｄ単位（２画素毎）やｄｗｏｒｄ単位（４画素毎）で保存する実装方法では、水平方向へのメモリアクセス範囲の拡大は、ｗｏｒｄ単位或いはｄｗｏｒｄ単位で発生するため、その影響はあまり大きくない。これに対して、垂直方向では１画素分のアクセスであっても、メモリアクセス範囲は必ず拡大される。従って、垂直方向の動きベクトルの符号化精度を制限する方法は、メモリアクセス範囲の縮小という観点で効果的である。
また、実施例５及び実施例６の方法を綜合して、図２３のような処理を行うようにしてもよい。即ち、シフト選択部１２４は、８ｘ４，４ｘ８並びに４ｘ４画素サイズのブロックについてのみ、動きベクトルの垂直成分を整数画素に制限する。さらに、ブロックサイズに応じて、範囲を制限するベクトル成分を切り替える手段も有効である。
上述のように、メモリアクセス領域の拡大に伴う影響は、ブロックサイズが小さいほど大きいが、これは、ブロックの縦横比率にも言える。つまり、ブロックの縦横サイズの比率が異なる場合には、サイズの小さい成分ほどアクセス範囲拡大の影響は大きくなる。図７のブロック分割で考えると、サイズが４画素の成分に対して制限をかけることが有効と言える。
〈実施例７〉
図２４、図４３及び図４４は、それぞれ、本発明の実施例７の符号化方法の処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。
本実施例は、符号化装置（図４３）、復号化装置（図４４）のシフト値選択部１２４は図２４の処理フローに示すように、ブロックサイズが８ｘ４（縦ｘ横）のときは水平成分を整数画素精度（ｍｖ＿ｓｈｉｆｔ＝２）で垂直成分を１／４画素精度（ｍｖ＿ｓｈｉｆｔ＝０）、ブロックサイズが４ｘ８（縦ｘ横）のときは水平成分を１／４画素精度（ｍｖ＿ｓｈｉｆｔ＝０）で垂直成分を整数画素精度（ｍｖ＿ｓｈｉｆｔ＝２）、ブロックサイズが４ｘ４（縦ｘ横）のときは水平・垂直成分とも整数画素精度（ｍｖ＿ｓｈｉｆｔ＝２）とする。なお、予測性能の観点から、８ｘ４と４ｘ８モードの水平・垂直成分の扱いを入れ替えてもよい。これは、サイズが小さい成分ほど精度の高い予測方法が有効という概念に起因する。いずれの方法を適用するかは、メモリアクセス制限の必要性、符号化性能、ビットレート等のアプリケーションによって決定される。
〈実施例８〉
図２０、図４７及び図４８は、それぞれ、本発明の実施例８の符号化方法処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。本実施例は、実施例７において、入力画像がインタレース信号であり、マクロブロックがフレーム構造の場合に、動きベクトルの垂直成分を偶数画素精度に制限する方法である。
図１７は、インタレース信号をフレーム構造で符号化／復号化する場合のマクロブロックを示す。図上の実線は奇数フィールド（ｔｏｐ  ｆｉｅｌｄ）、破線は偶数フィールド（ｂｏｔｔｏｍ  ｆｉｅｌｄ）を意味する。図１７から、奇数値の動きベクトルは、奇数フィールド上の予測値を参照画像上の偶数フィールドから生成され、偶数フィールド上の予測値を参照画像上の奇数フィールドから生成される。インタレース信号では、奇数フィールドと偶数フィールドは表示時刻が異なるため、奇数値の垂直成分ベクトルは、実際には発生しない。
そこで、本実施例では、入力画像がインタレース信号で、マクロブロックがフレーム構造の場合について動きベクトルの垂直成分を偶数画素精度に制限する。符号化／復号化装置において、垂直成分を符号化／復号化する際のｍｖ＿ｓｈｉｆｔを３（図２０  処理８０３、８１４）、水平成分を符号化／復号化する際のｍｖ＿ｓｈｉｆｔを０（図２０  処理８１３）とする。このインタレース信号のフレーム構造場合も、図２１及び図２２の流れ図に示すように、実施例７の方法と組み合わせて、８ｘ４，４ｘ８並びに４ｘ４画素サイズのブロックについてのみ（図２１  処理８０１）、動きベクトルの垂直成分を整数画素に制限するするようにしてもよい。さらに、インタレース信号の符号化方式としては、フレーム構造、フィールド構造並びにフレーム構造とフィールド構造をマクロブロック毎に切り換える適応方式があり、その方法に応じて動きベクトルの符号化精度の選定方法を変えるようにしてもよい。例えば、インタレース信号とプログレッシブ信号を扱う符号化規格では、フレーム構造の符号化方式は信号走査に関わらず同じ場合がある。この場合には、フレーム構造並びにフィールド構造では、小さいサイズのブロックについて、垂直方向の動きベクトルの符号化精度を整数画素精度に限定して符号化／復号化（図２０と図２１並びに図２２  処理８１２）し、フレーム構造とフィールド構造をマクロブロック毎に切り換える適応方式では、小さいサイズのブロックについて、フレーム構造では垂直方向の動きベクトルの符号化精度を偶数画素精度に限定し（図２０と図２１の処理８１４）、フィールド構造では整数画素精度に限定して符号化／復号化する（図２０と図２１の処理８１２）という方法でもよい。なお、この際、フレーム構造ではブロックのサイズに関わらず垂直方向の動きベクトルの符号化精度を偶数画素精度に限定し（図２２の処理８１４）、フィールド構造では小さいサイズのブロックについて整数画素精度に限定して符号化／復号化する（図２２  処理８０１と処理８１２）という方法でもよい。
実施例７及び８のメモリアクセス範囲低減方式では、ｍｖ＿ｓｈｉｆｔ値の符号化／復号化処理は必要ない。従って、図１、図２における  ＭＶＤ  Ｐｒｅｄｉｃｔｉｏｎ１３と図１１と図１２におけるｍｖ＿ｓｈｉｆｔは必要ない。また、図１３において、ｍｖ＿ｓｈｉｆｔ値を動き補償器２１１から多重化器２０６に伝える処理は必要ない。さらに、図１４において、ｍｖ＿ｓｈｉｆｔ値を符号解読器５０１からＭＶ予測器５０８に伝える処理は必要ない。ｍｖ＿ｓｈｉｆｔ値は、予測モードに従ってＭＶ予測器５０８で決められる。
なお、本実施例８のメモリアクセス範囲低減方式は、符号化動きベクトルと予測動きベクトルの精度を切り換える手段を用いて「ブロックサイズに応じて動きベクトルの符号化精度を整数画素に限定すること」、「動きベクトルの垂直成分の符号化精度を整数画素或いは偶数画素に限定すること」であり、動き補償の精度、用意する動きベクトル符号化精度の種類並びに動きベクトルの符号化精度を切り換えるブロックサイズについては、上記実施例に限定されるものではない。また、動きベクトルの精度を１／２画素精度に限定することでメモリアクセス範囲が低減される動き補償方式では、動きベクトルを整数画素精度ではなく、１／２画素精度に限定する方法も本発明で実現できる。
産業上の利用可能性
本発明は動画像を伝送、蓄積、表示する装置、システムで、画像情報をより少ない符号量のディジタル信号を符号化する技術を必要とする産業上の分野で利用される。
【図面の簡単な説明】
図１は、前方向予測フレームのデータシンタックスの例を示した図である。
図２は、双方向予測フレームのデータシンタックスの例を示した図である。
図３は、マクロフロック分割を説明する図である。
図４は、動き補償の原理を説明する図である。
図５は、マクロブロックに含まれる有意ＤＣＴ係数の有無を符号化する際に利用するブロック構成を示す図である。
図６は、ＤＣＴ処理並びに符号化処理を行うブロック単位を示すマクロブロック構成を示す図である。
図７は、動き補償を行うブロック単位を示す輝度ブロックの構成を示す図である。
図８は、予測動きベクトルの生成を説明する図である。
図９は、動きベクトル精度の符号表の例を示した図である。
図１０は、動きベクトル精度の予測方法を説明する図である。
図１１は、本発明の実施例によるＰ−Ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８ｘ８パーティションタイプの符号表を示す図である。
図１２は、本発明の実施例によるＢ−Ｐｉｃｔｕｒｅにおけるマクロブロックタイプの符号表と８ｘ８パーティションタイプの符号表を示す図である。
図１３は、動画像符号化装置の一般的構成を示すブロック図である。
図１４は、本動画像復号化装置の一般的構成を示すブロック図である。
図１５は、従来法におけるマクロブロックタイプの符号表の例を説明した図である。
図１６は、ユニバーサル符号化表の構成例を示した図である。
図１７は、フィールド信号におけるフレーム構造のマクロブロックの構成例を示した図である。
図１８は、ブロックサイズで動きベクトルの符号化精度を切り換える処理の流れ図である。
図１９は、本発明の実施例における動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図である。
図２０は、本発明の実施例における動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図である。
図２１は、本発明の実施例におけるブロックサイズと動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図である。
図２２は、本発明の実施例におけるブロックサイズと動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図の別例である。
図２３は、本発明の実施例におけるブロックサイズと動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図の例である。
図２４は、本発明の実施例におけるブロックサイズと動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図の別例である。
図２５は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図２６は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図２７は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図２８は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図２９は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図３０は本発明による動画像復号化装置の動きベクトルの復号号化部の実施例の構成図である。
図３１は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図３２は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図３３は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図３４は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図３５は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図３６は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図３７は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図３８は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図３９は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図４０は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図４１は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図４２は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図４３は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図４４は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図４５は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図４６は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
図４７は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。
図４８は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
【図１】
2003063503.tif 000013
【図２】
2003063503.tif 000014
【図３】
2003063503.tif 000015
【図４】
2003063503.tif 000016
【図５】
2003063503.tif 000017
【図６】
2003063503.tif 000018
【図７】
2003063503.tif 000019
【図８】
2003063503.tif 000020
【図９】
2003063503.tif 000021
【図１０】
2003063503.tif 000022
【図１１】
2003063503.tif 000023
【図１２】
2003063503.tif 000024
【図１３】
2003063503.tif 000025
【図１４】
2003063503.tif 000026
【図１５】
2003063503.tif 000027
【図１６】
2003063503.tif 000028
【図１７】
2003063503.tif 000029
【図１８】
2003063503.tif 000030
【図１９】
2003063503.tif 000031
【図２０】
2003063503.tif 000032
【図２１】
2003063503.tif 000033
【図２２】
2003063503.tif 000034
【図２３】
2003063503.tif 000035
【図２４】
2003063503.tif 000036
【図２５】
2003063503.tif 000037
【図２６】
2003063503.tif 000038
【図２７】
2003063503.tif 000039
【図２８】
2003063503.tif 000040
【図２９】
2003063503.tif 000041
【図３０】
2003063503.tif 000042
【図３１】
2003063503.tif 000043
【図３２】
2003063503.tif 000044
【図３３】
2003063503.tif 000045
【図３４】
2003063503.tif 000046
【図３５】
2003063503.tif 000047
【図３６】
2003063503.tif 000048
【図３７】
2003063503.tif 000049
【図３８】
2003063503.tif 000050
【図３９】
2003063503.tif 000051
【図４０】
2003063503.tif 000052
【図４１】
2003063503.tif 000053
【図４２】
2003063503.tif 000054
【図４３】
2003063503.tif 000055
【図４４】
2003063503.tif 000056
【図４５】
2003063503.tif 000057
【図４６】
2003063503.tif 000058
【図４７】
2003063503.tif 000059
【図４８】
2003063503.tif 000060
【手続補正書】
【提出日】平成15年7月2日(2003.7.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
請求項４記載の動画像の復号化方法であって、さらに、動きベクトルの精度を付加情報として復号するか、或いは固定の精度に規定するかを示す識別情報を含み、かつ復号ブロックの種類として復号すべき動きベクトルの数が異なる複数のブロックタイプを用意し、ブロックタイプを復号する手順を有し、
復号ブロックタイプが付加情報として動きベクトルの精度を復号することを示す場合には精度の情報とその精度の差分動きベクトルとを復号し、
復号ブロックタイプが規定の精度で動きベクトルを復号することを示す場合には規定精度の差分動きベクトルを復号し、復号差分動きベクトルと精度修正した予測動きベクトルから復号ブロックの動きベクトルを算出する手順を有する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
請求項２記載の動画像の符号化方法であって、さらに、ブロック内で符号化すべき動きベクトルの数が異なる複数種の小ブロック形状を用意し、前記動きベクトルの精度、小ブロック形状種、及び、前記動きベクトルの精度を付加情報として符号化するか否かを決定する手順と、
各ブロックについて、付加情報として動きベクトルの精度を符号化する場合は、前記決定に応じて一意に定まる識別情報、選定した精度の情報及び選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化して出力し、
付加情報として動きベクトルの精度を符号化しない場合は、前記決定に応じて一意に定まる識別情報、該識別情報に応じた精度に修正した予測動きベクトルと該精度の動きベクトルより算出される差分動きベクトルとを符号化して出力する手順を有する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】請求項１１
【補正方法】変更
【補正の内容】
【請求項１１】
画像を複数のブロックに分割し、該ブロックの動きベクトルを隣接する復号動きベクトルから予測し、復号差分動きベクトルと予測した動きベクトルより該ブロックの動きベクトルを算出する手順を含む動画像の復号化方法であって、
前記復号差分動きベクトルの精度を複数用意し、ブロック内で復号化すべき動きベクトルの数が異なる複数種の小ブロック形状を用意し、前記復号差分動きベクトルの精度、小ブロック形状種、及び、前記復号差分動きベクトルの精度を付加情報として復号化するか否かに応じて一意に定まるブロック毎に符号化された識別情報を受け取り、復号化した該識別情報に従って復号化を行う手順を有する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】請求項１９
【補正方法】変更
【補正の内容】
【請求項１９】
請求項１８記載の動画像符号化方法であって、上記画像は飛び越し走査された画像であり、上記動きベクトルの精度は３種類以上であり、上記動きベクトルの水平成分と垂直成分で異なる精度を割り当て、動きベクトルの水平成分に第１の精度、フィールド構造の符号化ブロックにおける動きベクトルの垂直成分に第１の精度より低い第２の精度、フレーム構造の符号化ブロックにおける動きベクトルの垂直成分に第２の精度より低い第３の精度を割り当てる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】請求項２１
【補正方法】変更
【補正の内容】
【請求項２１】
請求項２０記載の動画像復号化方法であって、上記画像は飛び越し走査された画像であり、上記動きベクトルの精度を３種類以上であり、動きベクトルの水平成分と、垂直成分に異なる精度を割り当て、動きベクトルの水平成分に第１の精度、フィールド構造の復号ブロックにおける動きベクトルの垂直成分に第１の精度より低い第２の精度、フレーム構造の復号ブロックにおける動きベクトルの垂直成分に第２の精度より低い第３の精度を割り当て、差分動きベクトルを復号化し、上記予測動きベクトルの各成分を割り当てられた精度に修正し、上記復号差分動きベクトルと修正予測動きベクトルから割り当てられた精度で動きベクトルの各成分を算出し、該動きベクトルの各成分を上記復号動きベクトルの精度に変換する手順を有する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
発生する。この問題は、特に動き補償を行う際に問題となる。
従って、本発明の目的は、動きベクトルの符号量を削減及び符号化ブロック内のブロック数の増大による動き予測誤差情報の削減ができる動画像信号の符号化方法、復号化方法、符号化装置及び復号化装置を提供することである。
本発明の他の目的は、符号化装置及び復号化装置において、動き補償時メモリアクセス範囲を低減することである。
発明の開示
上記目的を達成するため、本発明は、画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像符号化方法において、
動きベクトルを符号化が、（１）差分動きベクトルの精度を数種類用意し、符号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の差分動きベクトルとを符号化する手順をもつ。又は（２）動きベクトルの精度を数種類用意し、符号化ブロック毎に動きベクトルの精度を選定し、選定した精度の情報と、選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化する手順をもつ。
ここで、上記（１）及び（２）の場合において、差分動きベクトルの符号化に伴う精度値（以下、ｍｖ＿ｓｈｉｆｔ値とも略称）の決定及び符号化処理は、全てのマクロブロックで行う他、マクロブロックのタイプ（例えば、符号化動きベクトルの数の大小）や周囲の状況（例えば、隣接マクロブロックの状況）を利用し、特定マクロブロックのｍｖ＿ｓｈｉｆｔ値の




【国際調査報告】
2003063503.tif 000061
2003063503.tif 000062
2003063503.tif 000063
2003063503.tif 000064