(57)【要約】【課題】動きベクトル探索に伴う演算量を削減する。【解決手段】この画像符号化装置は、効率を示すコスト関数によるコスト値の比較により、複数の第１の予測モード及び複数の第２の予測モードから符号化処理に供する最適モードを所定のブロック毎に検出し、最適モードにより画像データを符号化処理する過程で第１の予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し第１の画素精度の前記コスト値を算出し、複数のコスト値の勾配により最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路６を備える。【選択図】      図１
2010028221.tif 000002
【特許請求の範囲】
【請求項１】
予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える
動きベクトル検出装置。
【請求項２】
前記第１の画素精度の前記コスト値の断面とは、所定方向の画素からなる群である
請求項１に記載の動きベクトル検出装置。
【請求項３】
符号化効率を示すコスト関数によるコスト値の比較により、複数の第１の予測モード及び複数の第２の予測モードから符号化処理に供する最適モードを所定ブロック毎に検出し、前記最適モードにより画像データを符号化処理する符号化手段と、
前記第１の予測モード毎に最適な動きベクトルの候補となる複数の動きベクトルに対し第１の精度の前記コスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償手段とを備える
画像符号化装置。
【請求項４】
前記第１の画素精度の前記コスト値の断面とは、所定方向の画素からなる群である
請求項３に記載の画像符号化装置。
【請求項５】
前記第１の予測モードとは、インター予測モードであり、前記第２の予測モードとは、イントラ予測モードであり、前記第１の画素精度とは１／２は画素精度であり、前記第２の画素精度とは１／４画素精度である
請求項３に記載の画像符号化装置。
【請求項６】
前記第２の画素精度は、前記第１の画素精度に比して精細な画素精度である
請求項３に記載の画像符号化装置。
【請求項７】
前記動き予測・補償手段は、前記第１の画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該第１の画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATD値の最小値が中央の点である場合、前記第１の画素精度で最小のSAD或いはSATD値である点を示す動きベクトルを上記直線上の第２の画素精度の動きベクトルと特定し、前記第２の画素精度の最小のSAD或いはSATD値を前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項８】
前記動き予測・補償手段は、前記第１の画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該第１の画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATD値の最小値が端にあり、二番目に小さい点が中央の点であり、一番目、二番目のSAD或いはSATD値の差が小さく、二番目、三番目のSAD或いはSATD値の差が大きい場合、一番目、二番目に小さい点の中間点を示す動きベクトルを、上記直線上の第２の画素精度の動きベクトルと特定し、一番目、二番目、三番目のSAD或いはSATD値の関係から、前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項９】
前記動き予測・補償手段は、前記第１の画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該第１の画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATDの最小値が端にあり、二番目に小さい点が真ん中の点であり、一番目、二番目のSAD或いはSATD値の差と、二番目、三番目のSAD或いはSATD値の差が同程度の場合、二番目に小さい点を示す動きベクトルを、上記直線上の第２の画素精度の動きベクトルと特定し、二番目のSAD或いはSATD値を、前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項１０】
前記動き予測・補償手段は、前記第１の画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該第１の画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATDの最小値が端にあり、一番目、真ん中の点のSAD或いはSATD値の差が大きく、真ん中、逆の端の点のSAD或いはSATD値の差が小さい場合、二番目に小さい点から最小の点の延長上に存在する第２の画素精度の点を示す動きベクトルを、動き補償に用いる動きベクトルと特定し、一番目、二番目、三番目のSAD或いはSATD値の関係から、前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項１１】
前記動き予測・補償手段は、前記第１の画素精度において一直線上にある少なくとも３点の組を二つそれぞれが直交するように選択し、各直線上における第２の画素精度の動きベクトル点、コストを導出し、前記直線に対し前記第２の画素精度動きベクトル点から直交する直線を引き、それぞれが交わる点を、第２の画素精度の動きベクトルと特定し、各直線上における第２の画素精度の動きベクトル点の予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から、上記第２の画素精度の動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項１２】
前記動き予測・補償手段は、前記第１の画素精度において一直線上にある少なくとも３点の組を二つそれぞれが直交するように選択し、特に前記第１の画素精度の予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値が最小となる点において直交するように選択する予測回路を備える
請求項５に記載の画像符号化装置。
【請求項１３】
前記動き予測・補償手段は、前記第１の画素精度において、x値が同じ値の3点の平均をとりX1, X2, X3とし、y値が同じ値の3点の平均をとりY1, Y2, Y3とし、(X1, X2, X3)、(Y1, Y2, Y3)において、所定の条件判定を用いて、それぞれの直線上における前記第２の画素精度の動きベクトル点、コストを導出し、前記直線に対し前記第２の画素精度動きベクトル点から直交する直線を引き、それぞれが交わる点を、前記第２の画素精度の動きベクトルと特定し、それぞれの直線上における前記第２の画素精度の動きベクトル点の予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から、上記前記第２の画素精度の動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する
請求項５に記載の画像符号化装置。
【請求項１４】
予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度のコスト値の分布に応じて、該第１の画素精度の前記コスト値の断面、或いは前記複数のコスト値の勾配を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える
動きベクトル検出装置。
【請求項１５】
前記動き予測・補償回路は、前記第１の画素精度の予測誤差をアダマール変換した絶対値和であるSATD値の最小点が配列された画素の真ん中の点である場合には、前記複数のコスト値の勾配を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出し、該真ん中の点でない場合には、第１の画素精度の前記コスト値の断面、或いは前記複数のコスト値の勾配を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出するする動き予測・補償回路を備える
請求項１４に記載の動きベクトル検出装置。
【請求項１６】
予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する
動きベクトル検出方法。
【請求項１７】
コンピュータが、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル探索に伴う演算量を削減する動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラムに関する。
【背景技術】
【０００２】
従来、放送局等に係る動画の伝送、記録においては、画像データの冗長性を有効に利用して効率良く画像データを伝送、蓄積する技術の開発が進められている。このような技術では、例えばＭＰＥＧ（Moving Picture Experts Group）等の方式に準拠して、離散コサイン変換等の直交変換と動き補償とにより画像データをデータ圧縮する。
【０００３】
その一例であるＭＰＥＧ２（ISO/IEC 13818-2）は、汎用の画像符号化方式として定義された方式である。飛び越し走査方式、順次走査方式の双方に対応できるように、また標準解像度画像、高精細画像の双方に対応できるように定義されている。ＭＰＥＧ２は、現在、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに広範に採用されている。ＭＰＥＧ２によれば、高画質で高い圧縮率を確保できる。
【０００４】
しかしながら、ＭＰＥＧ２は、放送用に適合した高画質符号化方式であり、ＭＰＥＧ１より符号量の少ない高圧縮率の符号化方式には対応していない。そこで、このＭＰＥＧ１より符号量の少ない高圧縮率の符号化方式のニーズに鑑みて、ＭＰＥＧ４（ISO/IEC 14496-2）による符号化方式が規格化されている。
【０００５】
さらに、テレビ会議用の画像符号化を目的としていたＨ２６Ｌ（ITU-T Q6/16 VCEG）の規格化が進み、ＭＰＥＧ４の活動の一環として、このＨ２６Ｌを基礎としつつ、各種機能を取り入れ、更に一段と高い符号化効率を確保する符号化方式の標準化が、Joint Model of Enhanced-Compression Video Codingとして進められ、Ｈ２６４及びＭＰＥＧ−４ Part10（ＡＶＣ：Advanced Video Coding ）として設定された。
【０００６】
しかるに、H.264/AVCをはじめとする画像符号化方式では、画像フレームをブロックに分割し、既に符号化したフレームからの動きを予測する動き補償が採用されている。
【０００７】
この種の技術として、例えば特許文献１では、動きベクトル探索において、現フレームの動き補償ブロック内の画素データと参照フレームの動き補償ブロック内の画素データとの差分に対して、簡易SATDを生成し、動き予測・補償回路が、簡易SATDを用いて規定される評価値を最小にする動きベクトルを特定する技術が開示されている。
【０００８】
【特許文献１】特開２００４−２４１９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、前述した従来技術のように、動き補償・検索回路において1/2画素精度、1/4画素精度の動き検索においては、SADよりも動き検索の精度の高いSATDを用いることが多い。このSATDでは、アダマール変換を使用し、SADと比較して演算量は増大してしまう。従って、1/2画素精度、1/4画素精度の動き検索において膨大な演算処理を要することが問題となる。
【００１０】
そこで、本発明は、動きベクトル探索に伴う演算量を削減することを課題とする。
【課題を解決するための手段】
【００１１】
本発明の第１の観点による動きベクトル検出装置は、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える。
【００１２】
従って、動き予測・補償回路により最適な第２の画素精度の動きベクトルのコスト値が算出される。
【００１３】
本発明の第２の観点による画像符号化装置は、符号化効率を示すコスト関数によるコスト値の比較により、複数の第１の予測モード及び複数の第２の予測モードから符号化処理に供する最適モードを所定ブロック毎に検出し、前記最適モードにより画像データを符号化処理する符号化回路を備える。さらに、前記第１の予測モード毎に最適な動きベクトルの候補となる複数の動きベクトルに対し第１の精度の前記コスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える。
【００１４】
従って、動き予測・補償回路により最適な第２の画素精度の動きベクトルのコスト値が算出される。
【００１５】
本発明の第３の観点による動きベクトル検出装置は、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度のコスト値の分布に応じて、該第１の画素精度の前記コスト値の断面、或いは前記複数のコスト値の勾配を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える。
【００１６】
従って、第１の画素精度の前記コスト値の断面、或いは前記複数のコスト値の勾配を用いて、動き予測・補償回路により最適な第２の画素精度の動きベクトルのコスト値が算出される。
【００１７】
本発明の第４の観点による動きベクトル検出方法は、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する。
【００１８】
従って、第１の画素精度の前記コスト値の断面を用いて、動き予測・補償回路により最適な第２の画素精度の動きベクトルのコスト値が算出される。
【００１９】
本発明の第５の観点によるプログラムは、コンピュータが、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、前記最適な第２の画素精度の動きベクトルのコスト値を算出する。
【００２０】
従って、第１の画素精度の前記コスト値の断面を用いて、動き予測・補償回路により最適な第２の画素精度の動きベクトルのコスト値が算出される。
【発明の効果】
【００２１】
本発明によれば、動きベクトル探索に伴う演算量を削減する動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明を実施するための最良の形態（以下、単に実施の形態と称する）について詳細に説明する。
【００２３】
この発明の実施の形態では、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度のコスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備える。ここで、第１の画素精度のコスト値の断面とは、所定方向の画素からなる群である。以下、これをふまえて詳述する。
【００２４】
（第１の実施の形態）
図１には本発明の一実施の形態に係る動きベクトル検出装置を採用した画像符号化装置の構成を示し説明する。ここでは、ＡＶＣに基づく画像符号化装置を例に挙げる。
【００２５】
この画像符号化装置１では、複数のイントラ予測モードと複数のインター予測モードとから最適な予測モードを選択し、この選択した予測モードによる予測値を画像データから減算して差分データを生成する。そして、この差分データに対して、直交変換処理、量子化処理、可変長符号化処理することで、画像データをイントラ符号化、インター符号化により符号化処理するものである。以下、構成及び作用を詳述する。
【００２６】
図１に示されるように、画像符号化装置１は、アナログ／ディジタル（Ａ／Ｄ）変換回路２、画面並び替えバッファ３、減算回路４、イントラ予測回路５、動きベクトル検出装置に相当する動き予測・補償手段としての動き予測・補償回路６、直交変換回路７、量子化回路８、レート制御回路９、可逆符号化回路１０、蓄積バッファ１１、逆量子化部１２、逆直交変換回路１３、デブロックフィルタ１４、フレームメモリ１５、イントラ・インターモード判定回路１６からなる。更に、動き予測・補償回路６は整数画素精度動き補償・検索回路６１、1/2画素精度動き補償・検索回路６２、1/4画素精度動き予測・補償回路６３からなる。これらのうち、Ａ／Ｄ変換回路２、画面並び替えバッファ３、減算回路４、イントラ予測回路５、直交変換回路７、量子化回路８、レート制御回路９、可逆符号化回路１０等により符号化処理手段が構成される。尚、第１の画素精度とは、例えば1/2画素精度、第２の画素精度とは、例えば1/4画素精度である。
【００２７】
このような構成において、Ａ／Ｄ変換回路２は、ビデオ信号ＳＶをＡ／Ｄ変換して画像データＤ１を出力する。画面並べ替えバッファ３は、この画像データＤ１を受けて、符号化処理に係るＧＯＰ（Group of Pictures ）構造に応じて該画像データＤ１のフレームを並べ替えて出力する。減算回路４は、この画面並べ替えバッファ３から出力される画像データＤ１を受け、イントラ符号化においては、イントラ予測回路５で生成される予測値との差分データＤ２を生成して出力する。一般的には、イントラ予測回路５では、同じ画面内の画像サンプルを使って別位置の画像を予測する。
【００２８】
一方、インター符号化においては、動き予測・補償回路６で生成される予測値との差分データＤ２を生成して出力する。
【００２９】
直交変換回路７は、減算回路４の出力データＤ２を受けて、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を実行し、処理結果による変換係数データＤ３を出力する。量子化回路８は、レート制御回路９のレート制御による量子化スケールにより、この変換係数データＤ３を量子化して出力する。
【００３０】
可逆符号化回路１０は、この量子化回路８の出力データを可変長符号化、算術符号化等により可逆符号化処理して出力する。また、可逆符号化回路１０は、イントラ符号化に係るイントラ予測モードに関する情報、インター符号化に係る動きベクトルに関する情報等をイントラ予測回路５、動き予測・補償回路６から取得し、これらの情報を出力データＤ４のヘッダ情報に設定して出力する。イントラ予測モードとは、画面内予測符号化ともいう。
【００３１】
蓄積バッファ１１は、可逆符号化回路１０の出力データＤ４を蓄積し、伝送路の伝送速度により出力する。レート制御回路９は、この蓄積バッファ１１の空き容量の監視により符号化処理による発生符号量を監視する。さらに、この監視結果により量子化回路８における量子化スケールを切り換え、発生符号量を制御する。
【００３２】
逆量子化回路１２は、量子化回路８の出力データを逆量子化処理し、これにより量子化回路８の入力データを再生する。逆直交変換回路１３は、逆量子化回路１２の出力データを逆直交変換処理し、これにより直交変換回路７の入力データを再生する。
【００３３】
デブロックフィルタ１４は、逆直交変換回路１３の出力データよりブロック歪を除去して出力する。例えば、H.264/AVCでは、フレームメモリ１５に復号画像を格納するに先立ち適応的にデブロックフィルタ１４によってブロック歪みを除去するのである。
【００３４】
そして、フレームメモリ１５は、このデブロックフィルタ１４の出力データに、適宜、イントラ予測回路５又は動き予測・補償回路６により生成される予測値を加算して参照画像情報として記録することになる。
【００３５】
動き予測・補償回路６は、フレームメモリ１５に保持された参照画像情報による予測フレーム（参照フレーム）を基準にして画面並べ替えバッファ３から出力される画像データの動きベクトルを検出する。また、この検出した動きベクトルによりフレームメモリ１５に保持した参照画像情報を動き補償してインター予測の最適モードを検出する。また、インター予測により符号化処理を実行する場合、この最適モードにより予測画像情報を生成し、この予測画像情報による予測値を減算回路４に出力する。
【００３６】
イントラ予測回路５は、イントラ符号化において、フレームメモリ１５に蓄積された参照画像情報に基づいてイントラ予測モードの最適モードを検出する。また、イントラ予測により符号化処理する場合には、この最適モードにより参照画像情報から予測画像情報の予測値を生成して減算回路４に出力する。
【００３７】
このように、この画像符号化装置１では、インター符号化とイントラ符号化とでそれぞれインター予測に係る動き補償による差分データＤ２とイントラ予測による差分データＤ２とを生成し、これらの差分データＤ２を直交変換処理、量子化処理、可変長符号化処理して伝送することになる。
【００３８】
ここで、ＡＶＣは、これらイントラ及びインター予測に係る予測モードに関して、ＡＶＣに係るJoint Model（ＡＶＣ参照符号化方式）により、マルチパスエンコードを前提とした高画質モード（High Complexity Mode）と、１パスエンコードを前提とした高速モード（Low Complexity Mode）とが定義されており、該定義に従って最適モードを選択して符号化処理を実行する。
【００３９】
また、これらのモードのうち、Low Complexity Modeでは、符号化効率を示すコスト関数を次式により定義し、該コスト関数により得られるコスト値Cost(mode)の比較により最適モードを検出する。  
Cost(mode)＝SA(T)D＋SA(T)D0    （１）
ここで、SA(T)Dは、原画像と予測画像との誤差値であり、これら原画像と予測画像との間の、画素値差分値の絶対値誤差和が適用される。
【００４０】
SA(T)D0は、誤差値SA(T)Dに与えられるオフセット値であり、ヘッダビット、モード判定の際の重みとなるコストによるものであり、動きベクトル等の付加的な情報の伝送に供するデータ量が示される。
【００４１】
より具体的には、絶対値誤差和SADは、各マクロブロックについて、次式により示され、それぞれ各予測モードModeにおける原画像と予測画像の差分値が適用される。
【００４２】
【数１】
2010028221.tif 000003
【００４３】
尚、この（２）式による絶対値誤差和SADに代えて、次式による得られる差分加算値にSATD(mode)を用いてもよい。
【００４４】
【数２】
2010028221.tif 000004
【００４５】
Hadamard()は、次式により示すように、対象の行列にアダマール変換行列を掛けるアダマール変換操作である。  
Hadamard(A)＝HTAH  （４）
そして、アダマール変換行列は、（５）式により表され、ＨT は、アダマール変換行列の転置行列である。
【００４６】
【数３】
2010028221.tif 000005
【００４７】
オフセット値SA(T)D0は、前方向予測モードにおいては、次式で示される。  
SA(T)D0
＝QP0(QP)・（2×code_number_of_ref_idx_fwd＋Bit_to_code_MVDFW）  （６）
ここで、QP0(QP)は、量子化パラメータQPを量子化スケールに変換する関数であり、MVDFWは、前方向予測に係る動きベクトルであり、ビット・トゥ・コード（Bit to code） は、この動きベクトルに係るビットストリーム上の符号量である。
【００４８】
そして、オフセット値SA(T)D0は、後方向予測モードでは次式で示される。  
SA(T)D0＝QP0(QP)×Bit_to_code_MVDBW  （７）
ここで、MVDBWは、後方向予測に係る動きベクトルである。
【００４９】
また、オフセット値SA(T)D0は、双方向予測モードでは次式で示される。  
SA(T)D0  
＝QP0(QP)・（2×code_number_of_ref_idx_fwd＋Bit_to_code_forward_Blk_size  
＋Bit_to_code_backward_Blk_size＋Bit_to_code_MVDFW  
＋Bit_to_code_MVDBW）                                  （８）
ここで、Bit to code forward Blk size、Bit to code backward Blk size は、それぞれ前方向予測及び後方向予測に係る動き補償ブロックに関する情報の伝送に必要なビットストリーム上における符号量である。
【００５０】
そして、ダイレクトモードでは、オフセット値SA(T)D0は次式で示される。  
SA(T)D0＝−１６×QP0（QP）  （９）
イントラ４×４予測モードでは、オフセット値SA(T)D0は次式で示される。  
SA(T)D0＝24×QP0（QP）      （１０）
なお、このコスト関数にあっては、動きベクトルの探索にも適用され、次式で示されるように、コスト値Costを最小にする動きベクトルが検出される。  
Cost＝SA(T)D＋SA(T)D0  
SA(T)D0  
＝QP0（QP）・（Bits_to_code_vector＋２×code_number_of_ref_index_fwd）  （１１）
これにより、Low Complexity Modeにおいて、最適モードを検出する場合、符号化装置１では、イントラ予測回路５及び動き予測・補償回路６において、輝度信号を用いて、それぞれイントラ符号化及びインター符号化の全ての予測モードのコスト値Costを計算する。そして、このコスト値Costの最も小さな予測モードを選択して輝度信号の最適モードを検出する。また、これによりイントラ符号化が選択された場合、色差信号について各イントラ予測モードのコスト値を計算し、この計算結果の比較により最も値の小さなコスト値によるイントラ予測モードを色差信号の最適モードに設定する。
【００５１】
このようなコスト関数による予測モードの選択に関しては、例えば特開２００３−２３０１４９号公報等に種々の工夫が開示されている。
【００５２】
したがって、符号化効率を示すコスト関数によるコスト値との比較により、複数のイントラ予測モード及び複数のインター予測モードから符号化処理に供する最適モードをマクロブロック毎に検出し、最適モードにより画像データを符号化処理する画像符号化装置は、例えば、以下の作用をすることになる。
【００５３】
即ち、予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対して第１の画素精度の符号化効率を示すコスト関数によるコスト値を算出し、該第１の画素精度の前記コスト値の断面を用いて、最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する。この第１の画素精度の前記コスト値の断面とは、所定方向の画素からなる群である。また、第１の予測モードとは、インター予測モードであり、前記第２の予測モードとは、イントラ予測モードであり、前記第１の画素精度とは１／２は画素精度であり、前記第２の画素精度とは１／４画素精度である。
【００５４】
以下、図２のフローチャートを参照して、本発明の一実施の形態に係る動きベクトル検出装置を用いた画像符号化装置による最適モード選択に関わる処理手順を説明する。
【００５５】
処理を開始すると（SA1)、動き予測・補償回路６において、候補となるインター予測モード（Inter Mode）の全てに対して(SA2)、整数画素精度動き補償・検索回路６１を用いて各整数画素のコスト値Costを算出する(SA3)。この際、候補となる整数画素精度の動きベクトルに対して先に示した式（２）、（３）によりSA(T)Dを算出する。例えば、整数画素精度で縦方向100、横方向100という範囲を検索すると、SA(T)Dの演算を100x100回行うことになる。このSA(T)Dを用いて先に示した式（１１）よりコスト値Costを算出して該コスト値Costが最小となる動きベクトルを求める(SA3)。
【００５６】
次に、1/2画素精度動き補償・検索回路６２を用いて、整数画素精度でコスト値Costが最小となる動きベクトルの周辺の1/2画素精度の点の候補となる動きベクトルに対して動き補償を行う(SA4)。すなわち、例えば、図３に示すように、9つの1/2画素精度の点が候補となる動きベクトルとなる。この場合において、6タップのFIRフィルタを用いてこれらの1/2画素精度の点の画素を作成する。
【００５７】
続いて、これら1/2画素の各点に関してSA(T)Dとコスト値Costを算出する(SA5)。
【００５８】
次に、1/4画素精度動き予測・補償回路６３を用いて、1/2画素精度のSA(T)D、コスト値Costから1/4素精度の最適な動きベクトルを予測し、SA(T)Dとコスト値Costを予測により算出する(SA6)。この詳細については、後に詳述する。
【００５９】
続いて、動き補償・検索回路６において、ダイレクトモードのコスト値Costを求める(SA7)。そして、イントラ予測回路５において全てのイントラモードに対して各コスト値Costを求める(SA8)。上記のようにして求めた複数のインター予測モード、ダイレクトモード、複数のイントラ予測モードの中のコスト値Costから最小となるものを選択することで、最適モードを決定する(SA9)。こうして、処理を終了する(SA10)。尚、ダイレクトモードには、時間ダイレクトモード、空間ダイレクトモードが概念上含まれる。
【００６０】
以下、図４のフローチャートを参照して、本発明の第１の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路６３による処理手順を詳述する。
【００６１】
以下では、1/2画素精度のコスト値CostをCost_half、1/4画素精度のコスト値CostをCost_quaterと称することにする。この図４の処理では、Cost_halfから、1/4画素精度の動きベクトルのSA(T)D、Cost_quaterを導出する点に特徴を有する。
【００６２】
処理を開始すると（SC1）、図５に示されるように、Cost_halfの最小点に対して、x軸、y軸に平行に例えば３点の組を作る(SC2)。即ち、図５の例では、x軸方向において符号１０１，１０２，１０３で示される点により組２０１を作り、y軸方向において符号１０１、１０４，１０５で示される点により組２０２を作る。換言すれば、ある一の方向の画素を群として、他の方向の画素を別の群として組を作ることになる。
【００６３】
尚、このSC2では、例えば、図６に示されるように、x軸方向に平行に並ぶ３点の各平均Ｓ４，Ｓ５，Ｓ６、y軸方向に垂直にならぶ３点の各平均Ｓ１，Ｓ２，Ｓ３を求めるようにしてもよい。
【００６４】
続いて、それぞれ一直線上に並んだ３点に対して(SC3)、SATD値を比較する。即ち、先ずx軸に平行な直線上の３点に対して、SATD値を比較する。例えば、図５の例では、符号１０１〜１０３で示される点に対して、SATD値を比較する。そして、SATD値の最小値が真ん中の点１０２であるか否かを判定する(SC4)。この条件判定をYesに分岐する場合（center）、その真ん中の点を直線上の動きベクトルと特定する (SC7)。
【００６５】
即ち、図７（ａ）に示されるように、符号３０１〜３０３の点のうちSATD値の最小値が真ん中の点３０２である場合、その点３０２を直線上の動きベクトルと特定する（図中、符号３０４）。
【００６６】
SC4の条件判定でNoとなった場合、SATD値の二番目に小さい点が真ん中の点で、一番目、二番目のSATD値の差が小さく、二番目、三番目のSATD値の差が大きいか否かを判断する(SC5)。この条件判定をYesに分岐する場合（Internal qpel）、一番目、二番目に小さい点の中間点を、1/4画素精度の直線上の動きベクトルと特定する(SC8)。
【００６７】
即ち、図７（ｂ）に示されるように、符号３０５〜３０７の点のうち点３０５と点３０６のSATD値の差Ａ１が小さく、点３０５と点３０６のSATD値の差Ａ２が大きい場合には、点３０６，３０７の中間点３０８を直線上の動きベクトルと特定する。
【００６８】
SC5の条件判定でNoとなった場合、SATD値の二番目に小さい点が真ん中の点であり一番目、二番目のSATD値の差と、二番目、三番目のSATD値の差が同程度であるか否かを判定する(SC6)。この条件判定をYesに分岐すると（Halfpel）、一番目に小さい点を1/4画素精度の直線上の動きベクトルと特定する(SC9)。
【００６９】
即ち、図７（ｃ）に示されるように、SATD値の二番目に小さい点３１０が真ん中の点であり、点３０９と３１０のSATD値の差Ａ３と、点３１０と３１１のSATD値の差Ａ４が同程度の場合には、一番小さい点３０９を直線上の動きベクトルと特定する（図中、符号３１２で示す）。
【００７０】
一方、SC6の条件判定でNoとなった場合、SATD値の一番目に小さい点と真ん中のSATD値の差が大きく、真ん中、逆の端（他端）の点のSATD値の差が小さい場合、二番目に小さい点から最小の点の延長上に存在する1/4画素精度の点を直線上の動きベクトルと特定する(SC10)。
【００７１】
即ち、図７（ｄ）に示されるように、SATD値の一番目に小さい点３１３と真ん中の点３１４のSATD値の差Ａ５が大きく、真ん中の点３１４、逆の端の点３１５のSATD値の差Ａ６が小さい場合、二番目に小さい点３１４から最小の点３１３の延長上に存在する1/4画素精度の点３１６を、直線上の動きベクトルと特定する。即ち、換言すれば、点３１３と３１４の勾配により定まる点３１６を1/4画素精度の動きベクトルとして特定することになる。
【００７２】
続いて、図５に示したように、例えば直線２０４上で予測された1/4画素精度の点１０６と直線２０３上で予測された1/4画素精度の点１０７を求め、直線上の1/4画素精度の動きベクトルから直線に対して直交する直線（1/4画素候補線２０５）を規定することになる(SC11)。そして、y軸に平行な直線に対しても同様にSATD値の比較を行い、1/4画素候補線２０６を引くことになる(SC4〜SC11)。
【００７３】
こうして、1/4画素候補線２０５，２０６が交わる点１０８を1/4画素精度の動きベクトルと特定し、9点のSATD値の勾配からSATD値を特定し、コスト値Costを導出する(SC13)。以上で一例の処理を終了することになる。
【００７４】
尚、ステップSC7〜SC10の任意の条件判定の組み合わせを適用することも可能であることは勿論である。即ち、以下の（ａ）〜（ｄ）の任意の組み合わせも可能である。
【００７５】
（ａ）1/2画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該1/2画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATD値の最小値が中央の点である場合、1/2画素精度で最小のSAD或いはSATD値である点を示す動きベクトルを直線上の1/4画素精度の動きベクトルと特定し、1/4画素精度の最小のSAD或いはSATD値を動きベクトルのSAD或いはSATD値とし、動きベクトルのコスト値を算出する（center）。
【００７６】
（ｂ）1/2画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該1/2画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATD値の最小値が端にあり、二番目に小さい点が中央の点であり、一番目、二番目のSAD或いはSATD値の差が小さく、二番目、三番目のSAD或いはSATD値の差が大きい場合、一番目、二番目に小さい点の中間点を示す動きベクトルを、直線上の1/4画素精度の動きベクトルと特定し、一番目、二番目、三番目のSAD或いはSATD値の関係から、動きベクトルのSAD或いはSATD値とし、動きベクトルのコスト値を算出する（Internal qpel）。
【００７７】
（ｃ）1/2画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該1/2画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATDの最小値が端にあり、二番目に小さい点が真ん中の点であり、一番目、二番目のSAD或いはSATD値の差と、二番目、三番目のSAD或いはSATD値の差が同程度の場合、二番目に小さい点を示す動きベクトルを、直線上の1/4画素精度の動きベクトルと特定し、二番目のSAD或いはSATD値を、動きベクトルのSAD或いはSATD値とし、動きベクトルのコスト値を算出する(Haifpel)。
【００７８】
（ｄ）1/2画素精度の動き探索における、予測誤差の絶対値和であるSAD値、或いは予測誤差をアダマール変換した絶対値和であるSATD値から該1/2画素精度において一直線上にある少なくとも３点を選択し、SAD或いはSATDの最小値が端にあり、一番目、真ん中の点のSAD或いはSATD値の差が大きく、真ん中、逆の端の点のSAD或いはSATD値の差が小さい場合、二番目に小さい点から最小の点の延長上に存在する1/4画素精度の点を示す動きベクトルを、動き補償に用いる動きベクトルと特定し、一番目、二番目、三番目のSAD或いはSATD値の関係から、前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する(External qpel)。
【００７９】
最も効果があるのは、（ａ）〜（ｄ）の組み合わせであり、効果のある順番に（ａ）＋（ｂ）＋（ｃ）、（ａ）＋（ｂ）、（ａ）となる。条件にもれた場合には、1/2画素精度で最良（best）の点を1/4画素精度の点とする。
【００８０】
以上説明したように、本発明の第１の実施の形態では、1/4画素精度動き予測・補償器を用いることにより、SA(T)Dの演算回数を大幅に削減でき、サイクル数、HW規模数共に削減可能である。また、1/2画素精度の動き補償・検索の結果から、1/4画素精度の動きベクトル、SA(T)D値、Costを算出するため、1/4画素の動き検索のために1/4画素精度の画素を作成する必要がなく、メモリ素子の削減効果もある。
【００８１】
（第２の実施の形態）
この発明の一実施の形態に係る画像符号化装置は、符号化効率を示すコスト関数によるコスト値の比較により、複数の第１の予測モード及び複数の第２の予測モードから符号化処理に供する最適モードを所定単位毎に検出し、前記最適モードにより画像データを符号化処理するものである。
【００８２】
そして、特に、第１の予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し第１の画素精度のコスト値を算出し、複数のコスト値の勾配により最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備えている。
【００８３】
あるいは、特に第１の予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し第１の画素精度のコスト値を算出し、第１の画素精度のコスト値に対し順位をつけ、上位N個の優劣関係により最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備えている。
【００８４】
あるいは、第１の予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し第１の画素精度の前記コスト値を算出し、第１の画素精度のコスト値の小さい方から３つの優劣関係により最適な第２の画素精度の動きベクトルと、最適な第２の画素精度の動きベクトルのコスト値を算出する動き予測・補償回路を備えている。
【００８５】
ここで、第１の画素精度とは、例えば荒い画素精度であり、第２の画素精度とは、例えば該第１の画素精度に比して細かい画素精度であってよい。
【００８６】
尚、本発明の第２の実施の形態に係る画像符号化装置の構成は先に説明した第１の実施の形態（図１）と同様であるので、ここでは重複した説明は省略し、同一構成については同一符号を用いて説明を進める。図１と同様の構成の下、この第２の実施の形態に係る画像符号化装置は、以下の作用を奏することになる。
【００８７】
・1/4画素精度動き予測・補償回路６３が、インター予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し1/2画素精度の前記コスト値を算出し、前記複数のコスト値の勾配により最適な1/4画素精度の動きベクトルと、前記最適な1/4画素精度の動きベクトルのコスト値を算出する。
【００８８】
・1/4画素精度動き予測・補償回路６３が、インター予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し1/2画素精度の前記コスト値を算出し、1/2画素精度のコスト値に対し順位をつけ、上位N個の優劣関係により最適な1/4画素精度の動きベクトルと、最適な1/4画素精度の動きベクトルのコスト値を算出する。
【００８９】
・1/4画素精度動き予測・補償回路６３が、インター予測モード毎に、最適な動きベクトルの候補となる複数の動きベクトルに対し1/2画素精度の前記コスト値を算出し、1/2画素精度のコスト値の小さい方から３つの優劣関係により最適な1/4画素精度の動きベクトルと、最適な1/4画素精度の動きベクトルのコスト値を算出する。
【００９０】
次に、図８のフローチャートを参照して、本発明の一実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路６３による処理手順を詳述する。
【００９１】
以下では、1/2画素精度のコスト値CostをCost_half、1/4画素精度のコスト値CostをCost_quaterと称することにする。この図３の処理では、Cost_halfから、1/4画素精度の動きベクトルのSA(T)D、Cost_quaterを導出する点に特徴を有する。
【００９２】
即ち、処理を開始すると（SB1)、先ず1/4画素精度動き予測・補償回路６３はCost_halfの最小点の絶対値を見て著しく小さいか判断する(SB2)。このSB2にて、条件判定の結果がYesである場合には、Cost_halfの最小点を1/4画素精度の動きベクトルと特定し、1/2画素の最小のSATD値を動きベクトルのSATD値とし、この最小点のSATD値を用いてコスト値Cost_quaterを算出する(SB7)。
【００９３】
このSB2の条件判定の結果がNoである場合、Cost_halfの最小点のSATDの値とCost_halfが二番目に小さい点のSATDの値を比較し著しく小さいか判断する(SB3)。ここで、条件判定の結果がYesである場合には、前条件分岐と同様にCost_halfの最小点を1/4画素精度の動きベクトルと特定し、1/2画素の最小のSATD値を動きベクトルのSATD値とし、この最小点のSATD値を用いてコスト値Cost_quaterを算出する(SB7)。
【００９４】
即ち、例えば、図９（ａ）に示されるように、２つのポイントBest1，Best2を比較した結果、Best1のSATDの比（あるいは差分の絶対値）が極端に小さい場合には、Best1の位置（つまり、1/2画素精度でベストな位置）を1/4画素精度の動きベクトルとして出力し、この最小点のSATD値を用いてCost_quaterを算出する。ここで、「極端に小さい場合」とは、Best1の絶対値が770のときなどである。
【００９５】
このSB3の条件判定の結果がNoである場合、Cost_halfの最小点のSATDの値と二番目に小さいSATDの値を比較して小さく、二番目に小さいSATDの値と三番目に小さいSATDの値が近い（差が小さい等）か否かを判断する(SB4)。ここで、条件判定の結果がYesである場合、前条件分岐と同様にCost_halfの最小点のSATDの値を1/4画素精度の動きベクトルと特定し、この最小点のSATDの値を用いてCost_quaterを算出する(SB7)。
【００９６】
即ち、例えば、図９（ｂ）に示されるように、例えば３つのポイントBest1〜Best3を比較した結果、Best1とBest2のSATDの比が小さく、Best2とBest3のSATDが近い（差が小さい）ときには、Best1の位置を1/4画素精度の動きベクトルとして出力し、この最小点のSATD値を用いてCost_quaterを算出する。ここで、「Best1とBest2の比が小さい」とは、例えばその比が0.8の場合等であり、「Best2とBest3の差分値が小さい」とは、該差分値が1000以下のとき等である。
【００９７】
このSB4の条件判定の結果がNoである場合、Cost_halfの最小点の値が二番目に小さい値と比較して近く、二番目に小さい値が三番目に小さい値と比較して小さいか判断する(SB5)。ここで、条件判定の結果がYesである場合には、Cost_halfの最小点と二番目に小さい値の中間の点を1/4画素精度の動きベクトルと特定し、二番目と三番目のSATDの値の勾配からこの1/4画素のSATD値を予測しCost_quaterを算出する(SB8)。
【００９８】
即ち、図９（ｃ）に示されるように、例えば３つのポイントBest1〜Best3を比較した結果、Best1とBest2のSATDが近く（比が小さい、あるいは差分が小さい等）、Best2がBest3に比して極端に小さい場合（比が小さい、あるいは差分が小さい等）、Best1とBest2の中間を1/4画素精度の動きベクトルとして出力し、この最小点のSATD値を用いてCost_quaterを算出する。SATDはBest2とBest3の勾配より算出する。
【００９９】
ここで、「Best1とBest2の比が小さい」とは、該比が0.9等のときであり、「Best2とBest3の比が小さい」とは、該比が0.99等のときである。また、「Best1とBest2の差分が小さい」とは差分値が500等のときであり、「Best2とBest3の差分が小さい」とは差分値が250等のときである。
【０１００】
このSB5の条件判定の結果がNoの場合は、Cost_halfの最小点、二番目に小さいSATDの値、三番目に小さいSATDの値が近い（比が小さい、あるいは差分が小さい等）場合に相当する。このとき、最小点、二番目に小さい点、三番目に小さい点がこの順番で一直線上に並んでいるか否かを判断する(SB6)。このSB6の条件判定の結果がYesの場合、３点のSATDの値の関係、例えば二番目の点から最小点の延長上にある1/4画素の点を1/4画素精度の動きベクトルと特定し、最小点と二番目に小さい値のSATD値の勾配からこの1/4画素のSATD値を予測してCost_quaterを算出する(SB9)。
【０１０１】
即ち、図９（ｄ）に示されるように、例えば３つのポイントBest1〜Best3を比較した結果、Best1とBest2のSATDが近く（比が小さい、あるいは差分が小さい等）、Best2とBest3のSATDが近い（比が小さい、あるいは差分が小さい等）場合には、これらが一直線上に並んでいるかを判断する。
【０１０２】
そして、図１０（ａ）に示されるように、これらが一直線上に並んでいる場合には、例えばBest1〜Best3の外部の点（例えば外挿点）を1/4画素精度の動きベクトルとして出力し、この最小点のSATD値を用いCost_quaterを算出する。
【０１０３】
ここで、「Best1とBest2の比が小さい」とは、該比が0.99等のときであり、「Best2とBest3の比が小さい」とは、該比が0.9等のときである。また、「Best1とBest2の差分が小さい」とは、該差分値が250等のときであり、「Best2とBest3の差分が小さい」とは、該差分値が500等のときである。
【０１０４】
このSB6の条件判定の結果がNoである場合、Cost_halfの最小点、二番目に小さい点、三番目に小さい点の中間にある位置する1/4画素精度の点を示す動きベクトルを1/4画素精度の動きベクトルと特定し、最小点と二番目のSATD値の勾配からこの1/4画素のSATD値を予測し、Cost_quaterを算出する（SB10）。
【０１０５】
即ち、図９（ｄ）に示されるように、例えば３つのポイントBest1〜Best3を比較した結果、Best1とBest2のSATDが近く（比が小さい、あるいは差分が小さい等）、Best2とBest3のSATDが近い（比が小さい、あるいは差分が小さい等）場合には、これらが一直線上に並んでいるかを判断する。
【０１０６】
ここで、「Best1とBest2の比が小さい」とは、該比が0.99等のときであり、「Best2とBest3の比が小さい」とは、該比が0.99等のときである。また、「Best1とBest2の差分が小さい」とは、該差分値が250のとき等であり、「Best2とBest3の差分が小さい」とは、該差分値が250のとき等である。
【０１０７】
そして、図１０（ｂ）に示されるように、これらが一直線上に並んでおらずまとまっている場合には、Best1〜Best3の中間を1/4画素精度の動きベクトルとして出力し、この最小点のSATD値を用いCost_quaterを算出する。
【０１０８】
こうして、一連の処理を終了する（SB11）。
【０１０９】
また、SB7〜SB10の処理を任意に組み合わせることにより、1/2画素精度の前記コスト値から1/4画素精度の動きベクトルと、前記1/4画素精度の動きベクトルのSATD値、コスト値を算出することも可能である。
【０１１０】
即ち、以下の（Ａ）乃至（Ｅ）の少なくともいずれかの組み合わせを用いて、1/2画素精度の前記コスト値から1/4画素精度の動きベクトルと、前記1/4画素精度の動きベクトルのSAD或いはSATD値、コスト値を算出するようにしてもよい。
【０１１１】
（Ａ）  1/2画素における最小のSAD値或いはSATD値の絶対値が小さい場合、或いは1/2画素における最小のSAD或いはSATD値と二番目に小さいSAD或いはSATD値を比較し、最小のSAD或いはSATD値が極端に小さい場合、最小のSAD或いはSATD値である点を示す動きベクトルを動き補償に用いる動きベクトルと特定する。そして、1/2画素の最小のSAD或いはSATD値を前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する。
【０１１２】
（Ｂ）  1/2画素における最小のSAD或いはSATD値と二番目に小さいSAD或いはSATD値を比較し最小のSAD或いはSATD値が小さく、二番目に小さいSAD或いはSATD値と三番目に小さいSAD或いはSATD値を比較し、差が小さい場合、最小のSAD或いはSATD値である点を示す動きベクトルを動き補償に用いる動きベクトルと特定する。そして、1/2画素の最小のSAD或いはSATD値を前記動きベクトルのSAD或いはSATD値とし、前記動きベクトルのコスト値を算出する。
【０１１３】
（Ｃ）  1/2画素における最小のSAD或いはSATD値と二番目に小さいSAD或いはSATD値を比較し最小のSAD或いはSATD値の差が小さく、二番目に小さいSAD或いはSATD値と三番目に小さいSAD或いはSATD値を比較し差が大きい場合、最小のSAD或いはSATD値の点と二番目にSAD或いはSATD値の小さい点の中間の点を示す動きベクトルを、動き補償に用いる動きベクトルと特定する。そして、３点のSAD或いはSATD値の関係から前記動きベクトルのSAD或いはSATD値を算出し、前記動きベクトルのコスト値を算出する。
【０１１４】
（Ｄ）  1/2画素における最小のSAD或いはSATD値と二番目に小さいSAD或いはSATD値を比較し最小のSAD或いはSATD値の差が小さく、二番目に小さいSAD或いはSATD値と三番目に小さいSAD或いはSATD値を比較し差が小さい場合に、SAD或いはSATDの最小点、二番目に小さい点、三番目に小さい点が、最小点、二番目に小さい点、三番目に小さい点の順番で直線上に並んでいる場合、二番目に小さい点から最小の点の延長上に存在する1/4画素精度の点を示す動きベクトルを動き補償に用いる動きベクトルと特定する。そして、上記３点のSAD或いはSATD値の関係から動き補償に用いる動きベクトルの点のSAD或いはSATD値を算出し、前記動きベクトルのコスト値を算出する。
【０１１５】
（Ｅ）  1/2画素における最小のSAD或いはSATD値と二番目に小さいSAD或いはSATD値を比較し最小のSAD或いはSATD値の差が小さく、二番目に小さいSAD或いはSATD値と三番目に小さいSAD或いはSATD値を比較し差が小さい場合に、SAD或いはSATDの最小点、二番目に小さい点、三番目に小さい点が直線上に並んでいない場合、最小点、二番目に小さい点、三番目に小さい点の中間に位置する1/4画素精度の点を示す動きベクトルを動き補償に用いる動きベクトルと特定する。そして、上記３点のSAD或いはSATD値の関係から動き補償に用いる動きベクトルの点のSAD或いはSATD値を算出し、前記動きベクトルのコスト値を算出する。
【０１１６】
最も効果があるのは、（Ａ）乃至（Ｅ）全ての組み合わせである。その次に、効果がある順番では、（Ａ）＋（Ｂ）＋（Ｃ）＋（Ｄ）、（Ａ）＋（Ｂ）＋（Ｃ）、（Ａ）＋（Ｂ）、（Ａ）となる。但し、これには限定されない。条件にもれた場合には、1/2整数精度でベストの点を1/4整数精度の点としてもよい。
【０１１７】
図１１のフローチャートは（Ａ）＋（Ｂ）＋（Ｃ）＋（Ｄ）の組み合わせを採用した場合の処理手順を示す。図８と同じ処理には同じステップ番号を付し、重複した説明は省略する。SB6の条件判定でNoに分岐した場合、処理を終了する（SB11）。
【０１１８】
図１２のフローチャートは（Ａ）＋（Ｂ）＋（Ｃ）の組み合わせを採用した場合の処理手順を示す。図８と同じ処理には同じステップ番号を付し、重複した説明は省略する。SB5の条件判定でNoに分岐した場合、処理を終了する（SB11）。
【０１１９】
図１３のフローチャートは（Ａ）＋（Ｂ）の組み合わせを採用した場合の処理手順を示す。図８と同じ処理には同じステップ番号を付し、重複した説明は省略する。SB4の条件判定でNoに分岐した場合、処理を終了する（SB11）。
【０１２０】
図１４のフローチャートは（Ａ）の組み合わせを採用した場合の処理手順を示す。図８と同じ処理には同じステップ番号を付し、重複した説明は省略する。SB3の条件判定でNoに分岐した場合、処理を終了する（SB11）。
【０１２１】
以上詳述したように、本発明の第２の実施の形態によれば、1/4画素精度動き予測・補償器を用いることにより、SATDの演算回数を大幅に削減することができ、サイクル数、ハードウェア規模数を共に削減することが可能となる。
【０１２２】
なお、1/2画素精度の動き補償・検索の結果から、1/4画素精度の動きベクトルやSA(T)D値、Costを算出するため、1/4画素の動き検索のために1/4画素精度の画素を作成する必要がなく、メモリ素子の削減効果もある。
【０１２３】
（第３の実施の形態）
この第３の実施の形態は、前述した第１の実施の形態と第２の実施の形態を組み合わせるものである。
【０１２４】
即ち、図１５のフローチャートに示すように、処理を開始すると（SD1）、Cost_halfの最小点に対して、x軸、y軸に平行に例えば３点の組を作る(SD2)。換言すれば、ある一の方向の画素を群として、他の方向の画素を別の群として組を作ることになる。
【０１２５】
続いて、それぞれ一直線上に並んだ３点に対して、SATD値を比較する。即ち、先ずx軸に平行な直線上の３点に対して、SATD値を比較する。そして、SATD値の最小値が真ん中の点１０２であるか否かを判定する(SD3)。そして、動き予測・補償回路は、前記1/2画素精度のSA(T)D値の最小点が配列された画素の真ん中の点である場合には、図８の処理に従い、前記複数のコスト値の勾配を用いて、最適な1/4画素精度の動きベクトルと、最適な1/4画素精度の動きベクトルのコスト値を算出する（SD4）。
【０１２６】
該真ん中の点でない場合には、図４の処理に従い、1/2画素精度のコスト値の断面を用いて、最適な1/4画素精度の動きベクトルと、最適な1/4画素精度の動きベクトルのコスト値を算出する(SD5)。こうして、一連の処理を終了する(SD6)。
【０１２７】
以上、本発明の実施の形態について説明したが、本発明はこれに限定されることなくその趣旨を逸脱しない範囲で種々の改良・変更が可能であることは勿論である。
【０１２８】
例えば、1/4画素精度動きベクトル予測回路において、ノイズレベルを示す指標、画素の分散値、平均値、隣接ブロックの動きベクトルを用いて、1/4画素精度の動きベクトルを算出する予測回路を備えるようにしてもよい。
【０１２９】
尚、前述した実施の形態では、コスト値Cost、SAD、SATDを例に挙げて説明したが、これに限定されることはなく、MAE(Mean Absolute Error)等を採用してもよい。
【０１３０】
【数４】
2010028221.tif 000006
【０１３１】
MAEは絶対誤差ei＝ｆi-ｙiの重み付けされた平均である。上記式において、ｆiは予測値、ｙiは真の値である。
【０１３２】
また、Temporal filter等の動き検出を利用したNR（Noise Reduction）装置にも本アルゴリズムは適用可能である。この場合、動きベクトルの検出を行い、コスト値Costと動きベクトルを求める。そして、このコスト値Costに応じてTemporal filterの強度を適応的に変化させ、複数枚のフレームを入力としてフィルタリングを行い、その結果、ノイズが除去されたフレームを得ることになる。
【図面の簡単な説明】
【０１３３】
【図１】本発明の第１の実施の形態に係る動きベクトル検出装置を採用した画像符号化装置の構成を示す図である。
【図２】本発明の第１の実施の形態に係る動きベクトル検出装置を用いた画像符号化装置による最適モード選択に関わる処理手順を説明するフローチャートである。
【図３】1/2画素の配列を示す図である。
【図４】本発明の第１の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による処理手順を詳述するフローチャートである。
【図５】1/4画素精度の点を特定する手順を示す概念図である。
【図６】一直線上に並ぶ画素の群の平均をとる手順を示す概念図である。
【図７】（ａ）乃至（ｄ）は、1/4画素精度の点を示す動きベクトルを特定する手順を説明する概念図である。
【図８】本発明の第２の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による処理手順を詳述するフローチャートである。
【図９】（ａ）乃至（ｄ）は、1/2画素におけるSATD値の比較により1/4画素精度の点を示す動きベクトルを動き補償に用いる動きベクトルと特定する為の概念図。
【図１０】（ａ）及び（ｂ）は、1/2画素におけるSATD値の比較により1/4画素精度の点を示す動きベクトルを動き補償に用いる動きベクトルと特定する為の他の概念図。
【図１１】本発明の第２の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による処理手順の改良例を詳述するフローチャートである。
【図１２】本発明の第２の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による他の処理手順の他の改良例を詳述するフローチャートである。
【図１３】本発明の第２の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による他の処理手順の更に他の改良例を詳述するフローチャートである。
【図１４】本発明の第２の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による他の処理手順の別の改良例を詳述するフローチャートである。
【図１５】本発明の第３の実施の形態に係る画像符号化装置の1/4画素精度動き予測・補償回路による他の処理手順を示すフローチャートである。
【符号の説明】
【０１３４】
１…画像符号化装置、２…Ａ／Ｄ変換回路、３…画像並び替えバッファ、４…減算回路、５…イントラ予測回路、６…動き予測・補償回路、７…直交変換回路、８…量子化回路、９…レート制御回路、１０…可逆符号化回路、１１…蓄積バッファ、１２…逆量子化回路、１３…逆直交変換回路、１４…デブロックフィルタ、１５…フレームメモリ、１６…イントラ・インターモード判定回路。
【図１】
2010028221.tif 000007
【図２】
2010028221.tif 000008
【図３】
2010028221.tif 000009
【図４】
2010028221.tif 000010
【図５】
2010028221.tif 000011
【図６】
2010028221.tif 000012
【図７】
2010028221.tif 000013
【図８】
2010028221.tif 000014
【図９】
2010028221.tif 000015
【図１０】
2010028221.tif 000016
【図１１】
2010028221.tif 000017
【図１２】
2010028221.tif 000018
【図１３】
2010028221.tif 000019
【図１４】
2010028221.tif 000020
【図１５】
2010028221.tif 000021