(57)【要約】【課題】圧縮率の高い符号化を行うとともに、画質の劣化を抑えることができるようにする。【解決手段】損失情報量演算部１０５は、符号化劣化度として、減算器１００において求めた画素ごとの差分データと、復元した差分データとの差分値の絶対値和LOSTを演算する。さらに、差分絶対値和演算部１０８は、減算器１００で求めた画素ごとの差分値の絶対値和MADを演算する。そして、演算した２つの絶対値和を用いて評価関数costを算出して、評価関数costが最も小さくなるような動きベクトルを探索するようにして、圧縮率の高い符号化を行うとともに、画質の劣化を抑えることができるようにする。【選択図】図１
2010109903.tif 000002
【特許請求の範囲】
【請求項１】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索装置であって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索手段を有することを特徴とする動きベクトル探索装置。
【請求項２】
前記符号化劣化度とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分と、前記符号化の対象となるマクロブロックと参照ピクチャの探索位置における画素との差分を符号化して復号化した画素の差分と、の差分の絶対値和であることを特徴とする請求項１に記載の動きベクトル探索装置。
【請求項３】
前記符号化劣化度とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分と、前記符号化の対象となるマクロブロックと参照ピクチャの探索位置における画素との差分を符号化して復号化した画素の差分と、から求めるピーク信号対雑音比の逆数であることを特徴とする請求項１に記載の動きベクトル探索装置。
【請求項４】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索装置であって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索手段を有することを特徴とする動きベクトル探索装置。
【請求項５】
前記発生符号量を評価する値とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分の絶対値和であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項６】
前記発生符号量を評価する値とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分値を直交変換した係数の絶対値和であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項７】
前記発生符号量を評価する値とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分値を符号化することにより発生する符号量であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項８】
前記発生符号量を評価する値とは、動きベクトルの符号量であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項９】
前記発生符号量を評価する値とは、前記符号化の対象となるマクロブロックと前記参照ピクチャの探索位置における画素との差分値を符号化することにより発生する符号量に所定の重みを掛けた値と、動きベクトルの符号量に重み付けした値と、の和であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項１０】
前記評価関数とは、前記発生符号量を評価する値を二乗して所定の重みを掛けた値と前記符号化劣化度を二乗して所定の重みを掛けた値との和であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項１１】
前記評価関数とは、前記発生符号量を評価する値に所定の重みを掛けた値と前記符号化劣化度に所定の重みを掛けた値との和であることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項１２】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索方法であって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索工程を有することを特徴とする動きベクトル探索方法。
【請求項１３】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索方法であって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索工程を有することを特徴とする動きベクトル探索方法。
【請求項１４】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索するようにコンピュータに実行させるプログラムであって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索工程をコンピュータに実行させることを特徴とするプログラム。
【請求項１５】
符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、符号化効率を考慮した前記各々のマクロブロックの動きベクトルを探索するようにコンピュータに実行させるプログラムであって、
前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索工程をコンピュータに実行させることを特徴とするプログラム。
【請求項１６】
請求項１４又は１５に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動きベクトル探索装置、動きベクトル探索方法、プログラム及び記憶媒体に関し、特に、Ｈ．２６４方式等の動画像符号化技術に用いて好適な技術に関する。
【背景技術】
【０００２】
近年、音声信号、映像信号などマルチメディアに関連する情報のデジタル化が急進しており、これに対応して映像信号の圧縮符号化及び復号化技術が注目されている。圧縮符号化及び復号化技術により、映像信号の格納に必要な記憶容量や伝送に必要な帯域を減少させることができるため、マルチメディア産業にとっては極めて重要な技術である。
【０００３】
これらの圧縮符号化及び復号化技術は、多くの映像信号が有する自己相関性の高さ（すなわち、冗長性）を用いて情報量／データ量を圧縮している。映像信号が有する冗長性には、時間冗長性及び二次元の空間冗長性があり、時間冗長性は、ブロック単位の動き推定及び動き補償を用いて低減させることができる。一方、空間冗長性は、離散コサイン変換（ＤＣＴ）を用いて低減させることができる。
【０００４】
圧縮符号化及び復号化技術として知られるＭＰＥＧ方式などでは、これらの手法により映像信号の冗長性を低減させ、経時的に変わるビデオフレーム／フィールド（以下、フレーム／フィールドを代表してフレームと称す）のデータ圧縮効果を向上させている。ここで、前述した時間冗長性を低減させるためのブロック単位の動き推定とは、連続して入力される参照フレーム（過去のフレーム）と符号化対象フレームとの間で最も近似するブロックを探し出す作業である。また、対応するブロックの移動方向、移動量を表すベクトルは動きベクトルと呼ばれている。したがって、動き推定とは動きベクトルの推定と同義である。
【０００５】
動きベクトルを推定する方法としては、ブロックマッチング方式が一般に用いられている。ブロックマッチング方式とは、参照フレームと符号化対象フレームとの２枚の映像をブロック単位で比較し、信号類型の整合度に基づいてブロック単位で動きを推定する方法である。このブロックマッチング方式により、参照フレームと符号化対象フレームとからブロックごとに動きベクトルを推定し、推定された動きベクトルを用いて動き補償予測を行う。このブロックマッチング方式については、例えば特許文献１に記載されている。
【０００６】
【特許文献１】特開平４−３２３７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記のブロックマッチング方式では、一般的に参照フレームのブロックと符号化対象フレームのブロックとの画素差分が最も小さくなるベクトルを動きベクトルとして採用している。しかしながら、画素差分の絶対値が最小となるベクトルを動きベクトルとした場合、多くの場合においてマクロブロックの発生符号量を小さくすることはできるものの、符号化劣化については十分に対処できていない。
【０００８】
符号化劣化が十分に対処できていない理由について、図８を参照しながら説明する。例えば、ＭＰＥＧ方式では、ブロックごとに現在ピクチャと参照ピクチャとの画素差分を直交変換した後、量子化して、さらに逆量子化、逆直交変換することにより復号する。なお、図８の説明においては、直交変換、逆直交変換処理については本題とは関係がないため、説明は省略する。また、量子化、逆量子化処理についても本題とは関係の無いため、詳細な説明を省略し、各々、除算、積算のみで説明する。その際、図８では、量子化において画素差分値を８で割ることにより情報量を圧縮し、逆量子化の際には８が掛けられることにより情報を復元するものとする。また、図８では、処理単位となるブロック中の１画素に注目して説明する。
【０００９】
図８（ａ）を参照しながら、現在画素値４０ａが１０８であり、参照画素値４１ａが１００である場合について説明する。
図８（ａ）において、現在画素値４０ａから参照画素値４１ａを減算器４２で減算した結果、差分値＝８となる。そして、その結果が量子化部４３に送信される。
【００１０】
量子化部４３では、差分値＝８を量子化した（８で割った）結果、量子化後値＝１となる。そして、その結果が逆量子化部４４に送信される。逆量子化部４４では、量子化後値＝１を逆量子化した（８を掛けた）結果、逆量子化後値＝８となる。ここで、差分値と逆量子化後値とを比較すると、ともに値が８であるので量子化によって失われた情報量は無く、逆量子化により差分値＝８が完全に復元できる。
【００１１】
次に、図８（ｂ）を参照しながら、現在画素値４０ｂが１０８であり、参照画素値４１ｂが１０３である場合について説明する。
図８（ｂ）において、現在画素値４０ｂから参照画素値４１ｂを減算器４２で減算した結果、差分値＝５となる。そして、その結果が量子化部４３に送信される。
【００１２】
量子化部４３では、差分値＝５を量子化した（８で割った）結果、量子化後値＝０となる。そして、その結果が逆量子化部４４に送信される。逆量子化部４４では、量子化後値＝０を逆量子化した（８を掛けた）結果、逆量子化後値＝０となる。ここで、差分値と逆量子化後値とを比較すると、逆量子化で完全に情報量を復元できず、量子化によって（差分値＝５）−（逆量子化後値＝０）＝５だけ情報量が失われる。
【００１３】
以上のように図８（ａ）では差分値＝８に対して、図８（ｂ）では差分値＝５と差分値は小さくなっている。ところが、図８（ａ）の場合は情報を完全に復元できているのに対し、図８（ｂ）の場合は情報が完全に復元できておらず画像の画質が劣化してしまうことがわかる。このように、差分値によって符号化劣化が生じてしまうという問題点があった。
【００１４】
本発明は前述の問題点に鑑み、圧縮率の高い符号化を行うとともに、画質の劣化を抑えることができるようにすることを目的としている。
【課題を解決するための手段】
【００１５】
本発明の動きベクトル探索装置は、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索装置であって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索手段を有することを特徴とする。
また、本発明の動きベクトル探索装置の他の特徴とするところは、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索装置であって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索手段を有することを特徴とする。
【００１６】
本発明の動きベクトル探索方法は、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索方法であって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索工程を有することを特徴とする。
また、本発明の動きベクトル探索方法の他の特徴とするところは、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索する動きベクトル探索方法であって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索工程を有することを特徴とする。
【００１７】
本発明のプログラムは、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索するようにコンピュータに実行させるプログラムであって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度を算出し、前記算出した符号化劣化度が最も小さくなる動きベクトルを探索する動きベクトル探索工程をコンピュータに実行させることを特徴とする。
また、本発明のプログラムの他の特徴とするところは、符号化の対象となるピクチャを構成する複数のマクロブロックの各々について、前記各々のマクロブロックに対応する参照ピクチャに設定された探索領域で探索することにより、前記各々のマクロブロックの動きベクトルを探索するようにコンピュータに実行させるプログラムであって、前記符号化の対象となるマクロブロックを符号化して復号化したマクロブロックにおいて損失した情報量を数値化した符号化劣化度と発生符号量を評価する値とが関連する評価関数を用いて動きベクトルを決定する動きベクトル探索工程をコンピュータに実行させることを特徴とする。
【００１８】
本発明の記憶媒体は、前記に記載のプログラムを記憶したことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、符号化効率を良好にするとともに画質の劣化を抑えることができる。
【発明を実施するための最良の形態】
【００２０】
（第１の実施形態）
以下、本発明の実施形態について図面を参照しながら説明する。まず、従来のブロックマッチング方式を説明するために、従来の動きベクトル探索装置の構成について説明する。
図６は、従来のブロックマッチング方式を用いた動きベクトル探索装置の構成例を示すブロック図である。
図６において、動きベクトル探索装置は、符号化対象のピクチャを保存する現在フレーム／フィールド保存部２０と、参照ピクチャを保存する参照フレーム／フィールド保存部２１とを備えている。さらに、符号化対象のピクチャのうち、符号化対象の画素ブロック（マクロブロック）を保存する現在マクロブロック保存バッファ２２と、サーチウィンドウ保存バッファ２３と、動きベクトル探索部２４とを備えている。
【００２１】
現在マクロブロック保存バッファ２２は現在フレーム／フィールド保存部２０から符号化対象のマクロブロック（現在のマクロブロック）の画像を取り出すためのものである。サーチウィンドウ保存バッファ２３は、現在のマクロブロックの中心に探索領域の中心を設定し、探索領域の範囲（以下、サーチウィンドウと称す）分だけ参照フレーム／フィールド保存部２１から画像を取り出して保存するためのものである。
【００２２】
動きベクトル探索部２４では、サーチウィンドウ内で現在のマクロブロックの画素値と参照フレーム／フィールド（以下、フレーム／フィールドを代表してフレームと称す）の画素値との差分を画素ごとに取る。そして、画素差分の絶対値和が最も小さくなるベクトルを探索し、現在のマクロブロックについての最終的な動きベクトルを推定する。
【００２３】
また、ブロックマッチング方式には、図７に示すように、図６の動きベクトル探索装置に、動きベクトル探索部２４で推定された動きベクトルを保存する動きベクトル保存部３５を加えた構成も存在する。図７に示す構成では、動きベクトル保存部３５から１つ前のマクロブロックについて推定した動きベクトルを参照フレーム／フィールド保存部２１に提供する。そして、参照フレーム／フィールド保存部２１は、１つ前のマクロブロックの動きベクトル分だけ符号化対象のマクロブロックからずらした位置に探索領域の中心位置を設定し、サーチウィンドウ保存バッファ２３へ参照画像を出力する。
【００２４】
以上のように説明したローカル動き補償方式は現在国際標準方式であるＨ．２６１、Ｈ．２６３、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４で用いられており、最も広く採用されている動き補償方式である。
【００２５】
以下、図１のブロック図及び図２のフローチャートを参照しながら、本発明に係る動きベクトル探索装置の好適な実施形態について詳細に説明する。なお、本実施形態では、動きベクトル探索部１４の動作が従来とは異なっている。
【００２６】
図１は、本実施形態に係る動きベクトル探索装置５０の構成例を示すブロック図である。
図１において、現在フレーム／フィールド保存部１０は、符号化対象のピクチャを保存するためのものである。参照フレーム／フィールド保存部１１は、参照ピクチャを保存するためのものである。
【００２７】
現在マクロブロック保存バッファ１２は、現在フレーム／フィールド保存部２０から符号化対象のマクロブロック（現在のマクロブロック）の画像を取り出して保存するためのものである。サーチウィンドウ保存バッファ１３は、現在のマクロブロックの中心に探索領域の中心を設定し、探索領域の範囲（サーチウィンドウ）分だけ参照フレーム／フィールド保存部２１から画像を取り出して保存するためのものである。
【００２８】
動きベクトル探索部１４は、サーチウィンドウ内で最終的な動きベクトルを推定するためのものである。以下、動きベクトル探索部１４を構成する各ブロックの詳細な構成について説明する。
【００２９】
減算器１００は、符号化対象のマクロブロックとサーチウィンドウ内の探索位置の参照フレームとの差分を求めるためのものである。直交変換部１０１は、減算器１００において求めた差分値に対して整数直交変換を行うためのものである。量子化部１０２は、直交変換部１０１において整数直交変換された変換係数に対して所定の量子化スケールで量子化を施すためのものである。
【００３０】
逆量子化部１０３は、量子化部１０２において量子化された変換係数に対して所定の逆量子化処理を施すためのものである。逆直交変換部１０４は、逆量子化部１０３において逆量子化された変換係数を元の画像データ空間に戻す逆整数直交変換を行うためのものである。
【００３１】
損失情報量演算部１０５は、逆直交変換部１０４において逆直交変換されて復元された符号化対象のマクロブロックとサーチウィンドウ内の探索位置の参照フレームとの差分値を求める。また、損失情報量演算部１０５は、符号化対象のマクロブロックとサーチウィンドウ内の探索位置の参照フレームとの差分値も求め、さらに、求めた２つの差分値の差分（損失情報量）を求める。
【００３２】
評価関数演算部１０６は、符号化対象のマクロブロックとサーチウィンドウ内の探索位置の参照フレームとの差分値と、損失情報量演算部１０５において求めた損失情報量とを用いて、動きベクトルを決定するための評価関数costを演算するためのものである。動きベクトル決定部１０７は、評価関数costが小さいサーチウィンドウ内の探索位置を最終的な動きベクトルとして決定する動きベクトル決定部である。差分絶対値和演算部１０８は、減算器１００において求めた画素ごとの差分値の絶対値和を演算するためのものである。
【００３３】
次に、本実施形態におけるベクトル探索の処理の流れを、図１のブロック図及び図２のフローチャートを参照しながら説明する。図２は、本実施形態における動きベクトルの探索処理手順の一例を示すフローチャートである。なお、本実施系形態では、特に、動きベクトル探索部１４の処理について詳細に説明する。
【００３４】
まず、ステップＳ２００において、減算器１００は符号化対象マクロブロックとサーチウィンドウ内の探索位置の参照フレームとの画素ごとの差分を求める。そして、差分データを差分絶対値和演算部１０８、損失情報量演算部１０５及び直交変換部１０１に送信する。次に、ステップＳ２０１において、直交変換部１０１は、減算器１００において求めた画素ごとの差分に対して整数直交変換を施し、一般の画像空間からエネルギー集中を高めた変換係数の空間に直交変換して量子化部１０２に送信する。
【００３５】
次に、ステップＳ２０２において、量子化部１０２は、直交変換された差分データの変換係数に対して所定のステップ幅で直交変換成分に応じた量子化を行い、逆量子化部１０３に送信する。そして、ステップＳ２０４において、逆量子化部１０３は、量子化された変換係数に対して逆量子化を行うことにより変換係数を復元し、逆直交変換部１０４に送信する。
【００３６】
次に、ステップＳ２０４において、逆直交変換部１０４は、逆量子化部１０３において復元された変換係数を元の画像データ空間に戻し、予測画像情報との差分データとして復元する。そして、復元した差分データを損失情報量演算部１０５に送信する。なお、復元した差分データは量子化処理における量子化誤差によって、入力画像データよりも僅かに劣化している画像となっている。
【００３７】
次に、ステップＳ２０５において、損失情報量演算部１０５は、符号化劣化度として、ステップＳ２００で減算器１００において求めた画素ごとの差分データと、ステップＳ２０４で復元した差分データとの差分値の絶対値和LOSTを演算する。そして、絶対値和LOSTの情報を評価関数演算部１０６に送信する。なお、ステップＳ２０５で求めた絶対値和LOSTは量子化処理における量子化誤差によって損失した情報量を数値化した符号化劣化の程度を表している。
【００３８】
次に、ステップＳ２０６において、差分絶対値和演算部１０８は、減算器１００で求めた画素ごとの差分値の絶対値和MAD（Mean Absolute Difference）を演算し、評価関数演算部１０６に送信する。そして、評価関数演算部１０６は、差分絶対値和演算部１０８から送信された絶対値和MAD及び損失情報量演算部１０５から送信された絶対値和LOSTを用いて、以下の数１に示す二乗の評価関数演算式を計算する。そして、動きベクトルを決定するための評価関数costを演算し、動きベクトル決定部１０７に送信する。
【００３９】
【数１】
2010109903.tif 000003
【００４０】
ここで、α、βは絶対値和MAD、LOSTの次元を正規化するための実数である。数１に示す式では、MAD＝０、LOST＝０の時を最小とし、絶対値和MAD、LOSTを二軸に取った時の距離を最も短くする動きベクトルを最適な動きベクトルとする。したがって、MADが同じ値であるならば絶対値和LOSTが最も小さくなるような動きベクトルの探索を行うことになる。
【００４１】
なお、以下の数２に示す式を用いて評価関数costを演算し、MAD＝０、LOST＝０の時を最小とし、絶対値和MAD、LOSTの次元を正規化した時の和が最も小さくなる動きベクトルを最適な動きベクトルとしてもよい。
【００４２】
【数２】
2010109903.tif 000004
【００４３】
次に、ステップＳ２０７において、動きベクトル決定部１０７は、評価関数演算部１０６から送信される評価関数costと、今までそれ以前に送信されてきた評価関数のうち最小の値である最小評価関数costminとを比較する。この比較の結果、評価関数costの方が小さい場合は、ステップＳ２０８に進む。そして、ステップＳ２０８において、最小評価関数costminをcostに更新するとともに、最終的な動きベクトルの候補であるvecをそのときの探索位置に更新する。なお、サーチウィンドウの最初の探索位置では無条件に最小評価関数costmin及びvecを更新する。一方、ステップＳ２０７の比較の結果、最小評価関数costminの方が小さいもしくは同じである場合は、ステップＳ２０９に進む。
【００４４】
次に、ステップＳ２０９において、サーチウィンドウ内の全ての画素に対して動きベクトルの探索を行ったか否かを判断する。この判断の結果、全ての画素に対して探索を行っていない場合は、ステップＳ２００に戻り、同様の処理を繰り返す。一方、ステップＳ２０９の判断の結果、全ての画素に対して動きベクトルの探索を行った場合は、ステップＳ２１０に進み、そのときのvecを最終的な動きベクトルとして決定し、処理を終了する。
【００４５】
以上、説明したように本実施形態によれば、評価関数には、発生符号量と相関のある値である現マクロブロックと参照画像との差分絶対値のみならず、符号化劣化とも関連のある値を含んでいる。このため、符号化効率と画質とを両立させた動きベクトルを探索することが可能になる。
【００４６】
また、本実施形態では、符号化劣化と相関のある値として符号化対象のフレームの画素と復号化した参照フレームの画素との差分絶対値和を用いている。一方、符号化対象のフレームの画素と復号化した参照フレームの画素との差分から、さらに以下の数３に示す式を用いて、ＰＳＮＲ（ピーク信号対雑音比）の逆数を算出して用いてもよい。
【００４７】
【数３】
2010109903.tif 000005
【００４８】
なお、Ｎ及びＭはそれぞれ画像の縦方向及び横方向の画素数であり、ｐ（ｉ，ｊ）は現行入力画像の場所（ｉ，ｊ）の画素値である。また、ｐ′（ｉ，ｊ）は復元画像の場所（ｉ，ｊ）の画素値であり、Ｔは画像の階調数−１（８ビット／ピクセル画像ではＴ＝２５５）である。
【００４９】
（第２の実施形態）
以下、図３を参照しながら、本実施形態に係る動きベクトル探索装置について詳細に説明する。なお、本実施形態に係る動きベクトル探索装置は、差分絶対値和演算部１０８の代わりに直交変換係数絶対値和演算部３０８を有する点が第１の実施形態とは異なるが、それ以外の構成は第１の実施形態とほぼ同じである。また、直交変換係数絶対値和演算部３０８及び評価関数演算部１０６以外の動作は第１の実施形態と同様のため説明は省く。
【００５０】
直交変換係数絶対値和演算部３０８は、直交変換部１０１から差分データの直交変換係数を受信する。そして、直交変換係数の絶対値和SATD（Sum of Absolute Transform Difference）を演算し、評価関数演算部１０６に送信する。
【００５１】
次に、評価関数演算部１０６は、直交変換係数絶対値和演算部６０８から送信される絶対値和SATD及び損失情報量演算部１０５から送信されてくる絶対値和LOSTを用いて、以下の数４に示す二乗の評価関数演算式を計算する。そして、動きベクトルを決定するための評価関数costを演算し、動きベクトル決定部１０７に送信する。
【００５２】
【数４】
2010109903.tif 000006
【００５３】
ここで、α、βは絶対値和SATD、LOSTの次元を正規化するための実数である。
数４に示す式ではSATD＝０、LOST＝０の時を最小とし、絶対値和SATD、LOSTを二軸に取った時の距離を最も短くする動きベクトルを最適な動きベクトルとする。
【００５４】
なお、以下の数５に示す式を用いて評価関数costを演算し、SATD＝０、LOST＝０の時を最小とし、絶対値和SATD、LOSTの次元を正規化した時の和が最も小さくなる動きベクトルを最適な動きベクトルとしてもよい。
【００５５】
【数５】
2010109903.tif 000007
【００５６】
次に、動きベクトル決定部１０７は、評価関数演算部１０６から送信される評価関数costと今までそれ以前に送信されてきた評価関数のうち最小の値である最小評価関数costminとを比較する。この比較の結果、評価関数costの方が小さい場合は、最小評価関数costminをcostに更新するとともに、最終的な動きベクトルの候補であるvecをそのときの探索位置に更新する。なお、サーチウィンドウの最初の探索位置では無条件に最小評価関数costmin及びvecを更新する。そして、以上の処理をサーチウィンドウ内の全ての画素に対して行った後、そのときのvecを最終的な動きベクトルとして決定する。
【００５７】
以上のように本実施形態によれば、評価関数が発生符号量と相関のある値である絶対値和MADの代わりに更に発生符号量との相関が強い値である絶対値和SATDを用いるようにした。これにより、より符号化効率を考慮し、かつ画質を両立させた動きベクトルを探索することが可能になる。
【００５８】
（第３の実施形態）
以下、図４を参照しながら、本実施形態に係る動きベクトル探索装置について詳細に説明する。なお、本実施形態に係る動きベクトル探索装置は、直交変換係数絶対値和演算部３０８の代わりに二値符号量演算部４０８を有する点が第２の実施形態と異なるが、それ以外の構成は第２の実施形態とほぼ同じである。また、二値符号量演算部４０８及び評価関数演算部１０６以外の動作は第２の実施形態と同様のため説明は省く。また、本実施形態では符号化方式としてＨ．２６４を想定するものとする。
【００５９】
二値符号量演算部７０８は、量子化部１０２から直交変換係数を量子化した値coefを受信し、値coefの二値符号量を演算して評価関数演算部１０６に送信する。評価関数演算部１０６は、二値符号量演算部７０８から送信される二値符号量及び損失情報量演算部１０５から送信される絶対値和LOSTを用いて、以下の数６に示す二乗の評価関数演算式を計算する。そして、動きベクトルを決定するための評価関数costを演算し、動きベクトル決定部１０７に送信する。
【００６０】
【数６】
2010109903.tif 000008
【００６１】
ここで、α、βは二値符号量及び絶対値和LOSTの次元を正規化するための実数である。数６に示す式は、二値符号量＝０、LOST＝０の時を最小とし、二値符号量及び絶対値和LOSTを二軸に取った時の距離を最も短くする動きベクトルを最適な動きベクトルとする。
【００６２】
なお、以下の数７に示す式を用いて評価関数costを演算し、二値符号量＝０、LOST＝０の時を最小とし、二値符号量及び絶対値和LOSTの次元を正規化した時の和が最も小さくなる動きベクトルを最適な動きベクトルとしてもよい。
【００６３】
【数７】
2010109903.tif 000009
【００６４】
次に、動きベクトル決定部１０７は、評価関数演算部１０６から送信される評価関数costと今までそれ以前に送信されてきた評価関数のうち最小の値である最小評価関数costminとを比較する。この比較の結果、評価関数costの方が小さい場合は、最小評価関数costminをcostに更新するとともに、最終的な動きベクトルの候補であるvecをそのときの探索位置に更新する。なお、サーチウィンドウの最初の探索位置では無条件に最小評価関数costmin及びvecを更新する。そして、以上の処理をサーチウィンドウ内の全ての画素に対して行った後、そのときのvecを最終的な動きベクトルとして決定する。
【００６５】
以上のように本実施形態によれば、評価関数が発生符号量と相関のある値である絶対値和SATDの代わりに更に発生符号量との相関が強い値である二値符号量を用いるようにした。これにより、より符号化効率を考慮し、かつ画質を両立させた動きベクトルを探索することが可能になる。
【００６６】
（第４の実施形態）
以下、図５を参照しながら、本実施形態に係る動きベクトル探索装置について詳細に説明する。なお、本実施形態に係る動きベクトル探索装置は、ベクトル符号量演算部８０９及び動きベクトル保存部８１０を有する点が第３の実施形態と異なるが、それ以外の構成は第２の実施形態とほぼ同じである。また、ベクトル符号量演算部８０９、動きベクトル保存部８１０及び評価関数演算部１０６以外の動作は第３の実施形態と同様のため、説明は省略する。
【００６７】
ベクトル符号量演算部８０９は、サーチウィンドウ保存バッファ１３からサーチウィンドウ内の探索位置の参照フレームを読み出し、動きベクトル保存部８１０から予め求められている周辺マクロブロックの動きベクトルを受信する。そして、動きベクトルの符号量VEC＿CODEを算出し、評価関数演算部１０６に送信する。
【００６８】
評価関数演算部１０６は、二値符号量演算部７０８から送信される二値符号量、前述のベクトル符号量VEC＿CODE、及び損失情報量演算部１０５から送信される絶対値和LOSTを用いて以下の数８に示す二乗の評価関数演算式を計算する。そして、動きベクトルを決定するための評価関数costを演算し、動きベクトル決定部１０７に送信する。
【００６９】
【数８】
2010109903.tif 000010
【００７０】
ここで、α、β、γは二値符号量、絶対値和LOST、及びベクトル符号量VEC＿CODEの次元を正規化するための実数である。数８に示す式は、二値符号量＝０、LOST＝０、VEC＿CODE＝０の時を最小とし、二値符号量、絶対値和LOST、及びベクトル符号量VEC＿CODEを三軸に取った時の距離を最も短くする動きベクトルを最適な動きベクトルとする。
【００７１】
また、二値符号量及びベクトル符号量VEC＿CODEはともに符号量として相関のある値であるので、二つの値をまとめて、以下の数９に示す式を用いて評価関数costを演算してもよい。
【００７２】
【数９】
2010109903.tif 000011
【００７３】
なお、以下の数１０に示す式を用いて評価関数costを演算してもよい。この場合、二値符号量＝０、LOST＝０、VEC＿CODE＝０の時を最小とし、二値符号量、絶対値和LOST、及びベクトル符号量VEC＿CODEの次元を正規化した時の和が最も小さくなる動きベクトルを最適な動きベクトルとしてもよい。
【００７４】
【数１０】
2010109903.tif 000012
【００７５】
さらに、二値符号量及びベクトル符号量VEC＿CODEはともに符号量として相関のある値であるので、二つの値をまとめて、以下の数１１に示す式を用いて評価関数costを演算してもよい。
【００７６】
【数１１】
2010109903.tif 000013
【００７７】
動きベクトル決定部１０７は、評価関数演算部１０６から送信される評価関数costと今までそれ以前に送信されてきた評価関数のうち最小の値である最小評価関数costminとを比較する。この比較の結果、評価関数costの方が小さい場合は、最小評価関数costminをcostに更新するとともに、最終的な動きベクトルの候補であるvecをそのときの探索位置に更新する。なお、サーチウィンドウの最初の探索位置では無条件に最小評価関数costmin及びvecを更新する。そして、以上の処理をサーチウィンドウ内の全ての画素に対して行った後、そのときのvecを最終的な動きベクトルとして決定し、動きベクトル保存部８１０に保存する。
【００７８】
以上のように本実施形態によれば、評価関数にベクトル符号量を加味して発生する符号量との相関を強めることにより、より符号化効率を考慮し、かつ画質を両立させた動きベクトルを探索することが可能になる。
【００７９】
（本発明に係る他の実施形態）
前述した本発明の実施形態における動きベクトル探索装置を構成する各手段、並びに動きベクトル探索方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記憶したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００８０】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００８１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図２に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８４】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００８５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。
【００８６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８７】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８９】
さらに、その他の方法として、まず記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９０】
【図１】本発明の第１の実施形態に係る動きベクトル探索装置の構成例を示すブロック図である。
【図２】本発明の第１の実施形態における動きベクトルの探索処理手順の一例を示すフローチャートである。
【図３】本発明の第２の実施形態に係る動きベクトル探索装置の構成例を示すブロック図である。
【図４】本発明の第３の実施形態に係る動きベクトル探索装置の構成例を示すブロック図である。
【図５】本発明の第４の実施形態に係る動きベクトル探索装置の構成例を示すブロック図である。
【図６】従来のブロックマッチング方式を用いた動きベクトル探索装置の構成例を示すブロック図である。
【図７】従来のブロックマッチング方式を用いた動きベクトル探索装置の他の構成例を示すブロック図である。
【図８】ブロックごとに現在ピクチャと参照ピクチャとの画素差分の直交変換等を行い、符号化劣化が生じることを説明する図である。
【符号の説明】
【００９１】
１０  現在フレーム／フィールド保存部
１１  参照フレーム／フィールド保存部
１２  現在マクロブロック保存バッファ
１３  サーチウィンドウ保存バッファ
１４  動きベクトル探索部
５０  動きベクトル探索装置
１００  減算器
１０１  直交変換部
１０２  量子化部
１０３  逆量子化部
１０４  逆直交変換部
１０５  損失情報量演算部
１０６  評価関数演算部
１０７  動きベクトル決定部
１０８  差分絶対値和演算部
３０８  直交変換係数絶対値和演算部
４０８  二値符号量演算部
５０９  ベクトル符号量演算部
５１０  動きベクトル保存部
【図１】
2010109903.tif 000014
【図２】
2010109903.tif 000015
【図３】
2010109903.tif 000016
【図４】
2010109903.tif 000017
【図５】
2010109903.tif 000018
【図６】
2010109903.tif 000019
【図７】
2010109903.tif 000020
【図８】
2010109903.tif 000021