(57)【要約】【課題】複数の動き補償ブロックサイズに応じた動きベクトルから適切な動きベクトルを比較的小さな演算量で検出可能な動きベクトル検出装置を提供する。【解決手段】第１のブロック単位の原画像の第１の動きベクトルを生成する生成部１０１と、第１のブロックを分割した第２のブロック毎に第２のＳＡＤの最小値を合計し、第３のＳＡＤを算出する算出部１０３と、第１のＳＡＤの最小値に対する第３のＳＡＤの減少量が閾値を超えれば、第２のブロック単位の原画像の第２の動きベクトルを夫々生成する生成部１０６と、減少量が閾値以下であれば第１の動きベクトルを選択し、第１の符号化コストが第２の符号化コスト以下であれば第１の動きベクトルを選択し、第１の符号化コストが第２の符号化コストを超えれば第２の動きベクトルを選択し、選択した動きベクトルを出力する選択部１０９とを具備する。【選択図】      図１
2009267820.tif 000002
【特許請求の範囲】
【請求項１】
第１の動きベクトル候補によって第１のブロック単位で動き補償された原画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の原画像の第１の動きベクトルを生成する第１の生成部と、
前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された原画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶する記憶部と、
前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出する第１の算出部と、
前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、前記第２のブロック単位の原画像の第２の動きベクトルを夫々生成する第２の生成部と、
前記第１の動きベクトルの第１の符号化コストを算出する第２の算出部と、
前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出する第３の算出部と、
前記減少量が前記閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力する選択部と
を具備することを特徴とする動きベクトル検出装置。
【請求項２】
前記第２の算出部は、前記第１の動きベクトルによる発生符号量と第１の差分絶対値和の最小値とを重み付き加算することにより前記第１の符号化コストを算出し、
前記第３の算出部は、前記第２の動きベクトルによる発生符号量と当該第２の動きベクトルに関する第４の差分絶対値和とを重み付き加算することにより前記第２の符号化コストを夫々算出する
ことを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記記憶部は、前記第２の差分絶対値和の最小値を与える第２の動きベクトル候補を更に記憶し、
前記第２の生成部は、前記第２の動きベクトル候補を中心に動き探索を行うことにより、前記第２の動きベクトルを夫々生成する
ことを特徴とする請求項１または２記載の動きベクトル検出装置。
【請求項４】
前記第２の動きベクトルが生成された場合に当該第２の動きベクトルが前記検出動きベクトルとして選択される選択率を算出する第４の算出部と、
前記閾値と前記選択率との関係を近似した関係式に従って、前記選択率が目標値に近づくように前記閾値を更新する更新部と
を更に具備することを特徴とする請求項１乃至３のいずれか１項記載の動きベクトル検出装置。
【請求項５】
動き補償予測残差が符号化された符号化ビットストリームを復号し、復号画像を生成する復号部と、
前記符号化ビットストリームから符号化された動きベクトルを抽出し、当該符号化された動きベクトルを復号して復号動きベクトルを得る抽出部と、
前記復号動きベクトルを中心とする第１の動きベクトル候補によって第１のブロック単位で動き補償された復号画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の復号画像の第１の動きベクトルを生成する第１の生成部と、
前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された前記復号画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶する記憶部と、
前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出する第１の算出部と、
前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、当該復号動きベクトルを中心とする第２の動きベクトル候補によって前記第２のブロック単位で動き探索を行って、前記第２のブロック単位の復号画像の第２の動きベクトルを夫々生成する第２の生成部と、
前記第１の動きベクトルの第１の符号化コストを算出する第２の算出部と、
前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出する第３の算出部と、
前記減少量が閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力する選択部と
を具備することを特徴とする動きベクトル検出装置。
【請求項６】
第１の動きベクトル候補によって第１のブロック単位で動き補償された原画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の原画像の第１の動きベクトルを生成すること、
前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された原画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶すること、
前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出すること、
前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、前記第２のブロック単位の原画像の第２の動きベクトルを夫々生成すること、
前記第１の動きベクトルの第１の符号化コストを算出すること、
前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出すること、
前記減少量が前記閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力すること
を具備することを特徴とする動きベクトル検出方法。
【請求項７】
コンピュータを
第１の動きベクトル候補によって第１のブロック単位で動き補償された原画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の原画像の第１の動きベクトルを生成する第１の生成手段、
前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された原画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶する記憶手段、
前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出する第１の算出手段、
前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、前記第２のブロック単位の原画像の第２の動きベクトルを夫々生成する第２の生成手段、
前記第１の動きベクトルの第１の符号化コストを算出する第２の算出手段、
前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出する第３の算出手段、
前記減少量が前記閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力する選択手段
として機能させるための動きベクトル検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償ブロックサイズを複数有する動画像符号化方式に適用される動きベクトル検出装置に関する。
【背景技術】
【０００２】
動画像符号化方式において、動画像を構成するフレーム間の冗長性を利用して情報量を圧縮するために、フレーム間動き補償予測が用いられる。フレーム間動き補償予測では、参照画像に対する符号化対象ブロックの動き量を示す動きベクトルが検出される。動きベクトルの検出処理は、一般に演算量が大きい。
【０００３】
非特許文献１記載の動き補償予測方式は、ダイヤモンドサーチと呼ばれる動き探索アルゴリズムを用いて動きベクトルの探索範囲を絞り込むことにより、動きベクトルの検出処理に必要な演算量を削減している。しかしながら、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４などの動画像符号化方式では複数の動き補償ブロックサイズが規定されており、上記サイズ毎に動きベクトルの探索範囲は異なる。従って、非特許文献１記載の動き補償予測方式によって、最適な動きベクトルを検出する場合、動き補償ブロック毎に探索が必要となる。即ち、動きベクトルの検出処理に必要な演算量が動き補償ブロックサイズ数に応じて増大する。
【０００４】
特許文献１記載のデータ処理装置は、動き補償ブロックサイズの大きい順に動きベクトルを探索する。より詳細には、特許文献１記載のデータ処理装置は、上記動きベクトルの探索毎に評価値を計算し、当該評価値の極小値が得られた時点で動きベクトルの探索を中止し、当該極小値が得られた動き補償ブロックサイズに応じた動きベクトルを選択する。特許文献１記載のデータ処理装置によれば、評価値の極小値が得られた時点で動きベクトルの探索を中止できるため、残りの動き補償ブロックサイズに応じた動きベクトルの探索を省略できる。即ち、特許文献１記載のデータ処理装置によれば、動き補償ブロックサイズが複数規定される動画像符号化方式における動きベクトルの検出処理に必要な演算量を削減できる。
【特許文献１】特開２００５−１９１８７６号公報
【非特許文献１】S. Zhu and K. K. Ma, "A new diamond search algorithm for fast block matching motion estimation, "IEEE Trans. on Image Processing, vol. 9, no. 2, pp. 287-290, Feb. 2000"
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１記載のデータ処理装置は、評価値の極小値を得るまで動きベクトルの探索を行う必要がある。即ち、特許文献１記載のデータ処理装置は、少なくとも２つの動き補償ブロックサイズに応じた動きベクトルの探索を行わなければならない。具体的には、特許文献１記載のデータ処理装置は、最も大きな動き補償ブロックサイズに応じた動きベクトルの探索と、上記最も大きな動き補償ブロックサイズを２分割した動き補償ブロックサイズの各々に応じた動きベクトルの探索とを少なくとも行わなければならない。仮に、１回の動きベクトルの探索に必要な演算量が同程度であるとすれば、特許文献１記載のデータ処理装置による動きベクトル検出処理には当該演算量の３倍程度が少なくとも必要とされる。
【０００６】
従って、本発明は複数の動き補償ブロックサイズに応じた動きベクトルから適切な動きベクトルを比較的小さな演算量で検出可能な動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る動きベクトル検出装置は、第１の動きベクトル候補によって第１のブロック単位で動き補償された原画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の原画像の第１の動きベクトルを生成する第１の生成部と、前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された原画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶する記憶部と、前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出する第１の算出部と、前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、前記第２のブロック単位の原画像の第２の動きベクトルを夫々生成する第２の生成部と、前記第１の動きベクトルの第１の符号化コストを算出する第２の算出部と、前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出する第３の算出部と、前記減少量が前記閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力する選択部とを具備する。
【０００８】
本発明の他の態様に係る動きベクトル検出装置は、動き補償予測残差が符号化された符号化ビットストリームを復号し、復号画像を生成する復号部と、前記符号化ビットストリームから符号化された動きベクトルを抽出し、当該符号化された動きベクトルを復号して復号動きベクトルを得る抽出部と、前記復号動きベクトルを中心とする第１の動きベクトル候補によって第１のブロック単位で動き補償された復号画像と参照画像との間の第１の差分絶対値和に基づく動き探索を行って、前記第１のブロック単位の復号画像の第１の動きベクトルを生成する第１の生成部と、前記第１のブロックを分割した第２のブロック単位で、前記動き探索において前記第１の動きベクトル候補によって動き補償された前記復号画像と前記参照画像との間の第２の差分絶対値和の最小値を夫々記憶する記憶部と、前記第２のブロック毎に前記第２の差分絶対値和の最小値を合計し、第３の差分絶対値和を算出する第１の算出部と、前記第１の差分絶対値和の最小値に対する前記第３の差分絶対値和の減少量が閾値を超えれば、当該復号動きベクトルを中心とする第２の動きベクトル候補によって前記第２のブロック単位で動き探索を行って、前記第２のブロック単位の復号画像の第２の動きベクトルを夫々生成する第２の生成部と、前記第１の動きベクトルの第１の符号化コストを算出する第２の算出部と、前記第２の動きベクトル毎に第２の符号化コストを算出し、当該第２の符号化コストを合計して第３の符号化コストを算出する第３の算出部と、前記減少量が閾値以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コスト以下であれば前記第１の動きベクトルを選択し、前記第１の符号化コストが前記第３の符号化コストを超えれば前記第２の動きベクトルを選択し、選択した動きベクトルを出力する選択部とを具備する。
【発明の効果】
【０００９】
本発明によれば、複数の動き補償ブロックサイズに応じた動きベクトルから適切な動きベクトルを比較的小さな演算量で検出可能な動きベクトル検出装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態について説明する。  
（第１の実施形態）  
図１に示すように、本発明の第１の実施形態に係る動きベクトル検出装置は、第１の動きベクトル生成部１０１、第２の動きベクトル候補記憶部１０２、第１のＳＡＤ（差分絶対値和）記憶部１０３、第２のＳＡＤ算出部１０４、制御部１０５、第２の動きベクトル生成部１０６、第１のコスト算出部１０７、第２のコスト算出部１０８、動きベクトル選択部１０９、選択率算出部１１０及び閾値更新部１１１を有する。
【００１１】
本実施形態に係る動きベクトル検出装置は、例えばＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４に準拠した符号化ビットストリームを生成する動画像符号化装置に適用されるものとする。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、動画像を構成する各フレームをマクロブロックと呼ばれる１６×１６画素のブロック単位に分割し、当該ブロック単位で符号化が行われる。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、動き補償ブロックサイズは複数規定されている。具体的には、図３に示すように１６×１６画素、１６×８画素、８×１６画素、８×８画素、８×４画素、４×８画素及び４×４画素が、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４において利用可能な動き補償ブロックサイズとして規定されている。尚、本実施形態に係る動きベクトル検出装置は、例えばＭＰＥＧ−２など、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４以外の動画像符号化方式に準拠した動画像符号化装置に適用されてもよい。
【００１２】
第１の動きベクトル生成部１０１は、ブロック単位の原画像１０（動き補償対象画像）及び参照画像１１を用いて第１の動き補償ブロックに応じた第１の動きベクトルを生成する。本実施形態の説明では単純化のため、上記第１の動き補償ブロックサイズを１６×１６画素、後述する第２の動き補償ブロックサイズを１６×８画素とした場合を一例とするが、第１及び第２の動き補償ブロックサイズはこれらに限られない。第１の動き補償ブロックサイズと、第２の動き補償ブロックサイズとは階層関係にあることが望ましい。即ち、第２の動き補償ブロックは、第１の動き補償ブロックが分割されたものであることが望ましい。尚、以降の説明において、第２の動き補償ブロック（１６×８画素）のうち上側のブロックを上部ブロック、下側のブロックを下部ブロックと夫々称する。
【００１３】
以下、図５に示すフローチャートを用いて、第１の動きベクトル生成部１０１の動作を説明する。  
まず、第１の動きベクトル生成部１０１は、第１の動きベクトル候補を生成する（ステップＳ３０１）。具体的には、第１の動きベクトル生成部１０１は、非特許文献１記載のダイヤモンドサーチを用いて、探索中心点及び当該探索中心点を中心とする探索点（サーチパターン）を定める。第１の動きベクトル生成部１０１は、上記探索中心点及び探索点を第１の動きベクトル候補として夫々生成する。本例では、第１の動きベクトル生成部１０１は、１６×１６画素ブロックの動きベクトル候補を生成する。尚、第１の動きベクトル生成部１０１が用いる動きベクトル探索アルゴリズムは、ステップサーチなど他の探索アルゴリズムであってよい。
【００１４】
次に、第１の動きベクトル生成部１０１は、ステップＳ３０１において生成した動きベクトル候補に基づいて第２の動き補償ブロック単位のＳＡＤを数式（１）に従って夫々計算する（ステップＳ３０２）。
【数１】
2009267820.tif 000003
【００１５】
数式（１）においてＳ(x,y)は、動きベクトルが指し示す参照画像１１の画像ブロック内の相対的な座標(x,y)における画素値、Ｃ(x,y)は原画像１０の座標(x,y)における画素値を夫々示す。
【００１６】
本例では、第１の動きベクトル生成部１０１は、ステップＳ３０１において生成した１６×１６画素ブロックの動きベクトル候補に基づいて１６×８画素ブロックのＳＡＤを夫々計算する。即ち、１６×８画素の上部ブロック及び下部ブロックのＳＡＤを夫々計算する。
【００１７】
尚、第１の動きベクトル生成部１０１は、探索中心点及び各探索点を示す動きベクトル及び当該動きベクトルに関してステップＳ３０２において計算した第２の動き補償ブロックのＳＡＤを、第２の動きベクトル候補記憶部１０２に入力する。
【００１８】
次に、第１の動きベクトル生成部１０１は、ステップＳ３０２において計算した第２の動き補償ブロックのＳＡＤに基づいて第１の動き補償ブロックのＳＡＤを計算する（ステップＳ３０３）。本例では、第１の動きベクトル生成部１０１は、ステップＳ３０２において計算した１６×８画素の上部ブロックのＳＡＤ及び下部ブロックのＳＡＤを加算（合計）することにより、１６×１６画素ブロックのＳＡＤを計算する。尚、第１の動きベクトル生成部１０１は、探索中心点を示す動きベクトル及び当該動きベクトルに関してステップＳ３０３において計算したＳＡＤを、第１のＳＡＤ記憶部１０３に入力する。
【００１９】
次に、第１の動きベクトル生成部１０１は、第１の動きベクトルの探索を終了するか否かを判定する（ステップＳ３０４）。具体的には、探索中心点を示す動きベクトルに関してステップＳ３０３において算出されたＳＡＤが他の探索点を示す動きベクトルに関して算出された全てのＳＡＤよりも小さければ、当該探索中心点を示す動きベクトルは第１の動きベクトルとして決定され、処理はステップＳ３０５に進む。一方、ステップＳ３０３において、最小のＳＡＤが得られた動きベクトルが探索中心点を示す動きベクトルでなければ、当該最小のＳＡＤが得られた動きベクトルが示す探索点が新たな探索中心点として定められ、処理はステップＳ３０１に戻る。
【００２０】
ステップＳ３０５において、第１の動きベクトル生成部１０１は、ステップＳ３０４において決定された第１の動きベクトル及び当該第１の動きベクトルに関する第１の動き補償ブロックのＳＡＤを第１のコスト算出部１０７に入力する。本例では、第１の動きベクトル生成部１０１は、ステップＳ３０４において決定された１６×１６画素ブロックの動きベクトル及び当該動きベクトルに関する１６×１６画素ブロックのＳＡＤを第１のコスト算出部１０７に入力する。
【００２１】
第２の動きベクトル候補記憶部１０２には、第１の動きベクトル生成部１０１から入力される第２の動き補償ブロックのＳＡＤが最小となる動きベクトル及び当該ＳＡＤが第２の動き補償ブロック毎に記憶される。本例では、第２の動きベクトル候補記憶部１０２には、第１の動きベクトル生成部１０１から入力される１６×８画素の上部ブロックのＳＡＤが最小となる動きベクトル及び当該ＳＡＤと、１６×８画素の下部ブロックのＳＡＤが最小となる動きベクトル及び当該ＳＡＤとが記憶される。以下の説明において、上部ブロックのＳＡＤの最小値をＳＡＤ16x8min_upper、当該ＳＡＤ16x8min_upperを与える動きベクトルをＭＶ＿ＳＡＤ16x8min_upperと称する。また、下部ブロックのＳＡＤの最小値をＳＡＤ16x8min_lower、当該ＳＡＤ16x8min_lowerを与える動きベクトルをＭＶ＿ＳＡＤ16x8min_lowerと称する。
【００２２】
第１のＳＡＤ記憶部１０３には、第１の動きベクトル生成部１０１から入力されるＳＡＤ（以下、第１のＳＡＤと称する）の最小値が記憶される。即ち、第１のＳＡＤ記憶部１０３には、第１の動きベクトル生成部１０１が、第１の動きベクトルの探索を行っている間に入力される第１のＳＡＤの最小値が保持される。本例では、第１のＳＡＤ記憶部１０３には、１６×１６画素ブロックのＳＡＤの最小値（以下、ＳＡＤ16x16minと称する）が記憶される。
【００２３】
第２のＳＡＤ算出部１０４は、第１の動きベクトル生成部１０１が第１の動きベクトルの生成を終了すると、第２の動きベクトル候補記憶部１０２から第２の動き補償ブロック毎にＳＡＤを読み出す。第２のＳＡＤ算出部１０４は、第２の動きベクトル候補記憶部１０２から読み出したＳＡＤを前述した第１のＳＡＤの最小値と比較するために、第２の動き補償ブロックのＳＡＤを第１の動き補償ブロックのＳＡＤに換算した第２のＳＡＤを算出する。第２のＳＡＤ算出部１０４は、算出した第２のＳＡＤを制御部１０５に入力する。
【００２４】
本例では、第２のＳＡＤ算出部１０４は、第１の動きベクトル生成部１０１が１６×１６画素ブロックの動きベクトルの生成を終了すると、第２の動きベクトル候補記憶部１０２からＳＡＤ16x8min_upper及びＳＡＤ16x8min_lowerを読み出す。第２のＳＡＤ算出部１０４は、上記ＳＡＤ16x8min_upper及びＳＡＤ16x8min_lowerを、ＳＡＤ16x16minと比較するために、以下に示す数式（２）に従って１６×８画素ブロックのＳＡＤを１６×１６画素ブロックのＳＡＤに換算した１６×１６画素ブロックのＳＡＤ（以下、ＳＡＤ16x8min_sumと称する）を算出する。
【数２】
2009267820.tif 000004
【００２５】
数式（２）では、１６×１６画素ブロックを上下に分割した１６×８画素の上部ブロックのＳＡＤ及び下部ブロックのＳＡＤを加算することにより、１６×１６画素ブロックのＳＡＤに換算している。第２のＳＡＤ算出部１０４は、上記ＳＡＤ16x8min_sumを制御部１０５に入力する。
【００２６】
制御部１０５は、第１の動きベクトル生成部１０１が第１の動きベクトルの生成を終了すると、第１のＳＡＤ記憶部１０３から第１のＳＡＤを読み出し、当該第１のＳＡＤ及び第２のＳＡＤ算出部１０４から入力される第２のＳＡＤに基づいて、第２の補償ブロックに応じた第２の動きベクトルの生成の実行／中止を決定する。具体的には、制御部１０５は第１のＳＡＤに対する第２のＳＡＤの減少度を後述する閾値と比較し、当該減少度が閾値以下であれば第２の動きベクトルの生成の中止、当該減少度が閾値を超えれば第２の動きベクトルの生成の実行を夫々決定する。尚、閾値は固定であってもよいが、後述する閾値更新部１１１によって動的に更新されることが望ましい。
【００２７】
以下、第１のＳＡＤに対する第２のＳＡＤの減少度と閾値との比較結果に基づいて、第２の動きベクトルの生成の実行／中止を決定することの技術的意義を説明する。  
前述したように、第２のＳＡＤは、第２の補償ブロックのＳＡＤを第１の補償ブロックのＳＡＤに換算して得られる。従って、実際に生成された第２の動きベクトルに関するＳＡＤの合計値が第２のＳＡＤよりも小さくなる可能性はあるものの、両値は概ね近いと推測される。即ち、第１のＳＡＤに対する第２のＳＡＤの減少量は、実際に第２の動きベクトルを生成した場合のＳＡＤの減少量の概算値に相当する。
【００２８】
後述するように、ＳＡＤ及び発生符号量（オーバーヘッド）の重み付き和で算出される符号化コストの大小によって、第１の動きベクトル及び第２の動きベクトルのいずれかが動きベクトル１２として選択され、出力される。一般的に、動き補償ブロックサイズを小さくすると、ＳＡＤは小さくなるものの発生符号量は大きくなる。従って、動き補償ブロックサイズを小さくすることによる発生符号量の増加量を見込んで閾値を設定すれば、第２の動きベクトルの生成を実際に行うことなく、第１の動きベクトルが第２の動きベクトルに比べ符号化コストが小さくなるか否かを推測することが可能となる。即ち、第２の動きベクトルが動きベクトル１２として選択されそうにない場合には、制御部１０５が第２の動きベクトルの生成の中止を決定することにより、本実施形態に係る動きベクトル検出装置の演算量を削減できる。
【００２９】
尚、本例では条件式（３）に示すように、制御部１０５は第１の動きベクトル生成部１０１が１６×１６画素ブロックの動きベクトルの生成を終了すると、ＳＡＤ16x16minに対するＳＡＤ16x8min_sumの減少度を、閾値Ｔｈと比較する。
【数３】
2009267820.tif 000005
【００３０】
条件式（３）が「真(True)」であれば制御部１０５は第２の動きベクトルの生成の中止を決定し、条件式（３）が「偽(False)」であれば第２の動きベクトルの生成の実行を決定する。
【００３１】
第２の動きベクトル生成部１０６は、制御部１０５が第２の動きベクトルの生成を実行すると決定した場合、第２の動きベクトル候補記憶部１０２から第２の動き補償ブロック毎に記憶されている動きベクトルを読み出す。第２の動きベクトル生成部１０６は、上記動きベクトルの各々に基づいて探索中心点を決定し、前述した第１の動きベクトル生成部１０１と同様の手法で第２の動きベクトルを生成する。第２の動きベクトル生成部１０６は、生成した第２の動きベクトル及び当該第２の動きベクトルに関するＳＡＤを第２のコスト算出部１０８に夫々入力する。本例では、第２の動きベクトル生成部１０６は、１６×８画素の上部ブロックの動きベクトル（以下、ＭＶ16x8_upperと称する）及び下部ブロックの動きベクトル（以下、ＭＶ16x8_lowerと称する）を生成する。
【００３２】
第１のコスト算出部１０７は、第１の動きベクトルの符号化コスト（以下、第１の符号化コストと称する）を算出する。符号化コストは、数式（４）に従って算出される。
【数４】
2009267820.tif 000006
【００３３】
数式（４）において、Ｓａｄは符号化コストの算出対象としている動きベクトルに関するＳＡＤ、Ｒは当該動きベクトルを符号化した場合の発生符号量、λは係数を夫々示す。即ち、第１の符号化コストは、第１の動きベクトルに関するＳＡＤと、当該第１の動きベクトルを符号化した場合の発生符号量との重み付き和である。第１のコスト算出部１０７は、算出した第１の符号化コストを動きベクトル選択部１０９に入力する。尚、本例では、１６×１６画素の動きベクトルの符号化コストを、ＭＥCost16x16と称する。
【００３４】
第２のコスト算出部１０８は、第２の動きベクトルの符号化コストの合計（以下、第１の符号化コストと称する）を算出する。第２のコスト算出部１０８は、第２の動きベクトルに関するＳＡＤと、当該第２の動きベクトルを符号化した場合の発生符号量との重み付き和を合計し、第２の符号化コストを算出する。第２のコスト算出部１０８は、第２の符号化コストを動きベクトル選択部１０９に入力する。尚、制御部１０５が第２の動きベクトルの生成を中止すると決定した場合、所定値が第２の符号化コスト動きベクトル選択部１０９に入力される。尚、上記所定値は、例えば第２のコスト算出部１０８が算出し得る第２の符号化コストの最大値など、十分に大きな値であることが望ましい。
【００３５】
本例では、第２のコスト算出部１０８は、数式（４）に従って得られたＭＶ16x8_upperの符号化コストとＭＶ16x8_lowerの符号化コストとを数式（５）に示すように加算し、第２の符号化コスト（以下、ＭＥCost16x8と称する）を算出する。
【数５】
2009267820.tif 000007
【００３６】
動きベクトル選択部１０９は、第１のコスト算出部１０７から入力される第１の符号化コストと、第２のコスト算出部１０８から入力される第２の符号化コストとを比較し、第１の動きベクトル及び第２の動きベクトルのいずれか一方を動きベクトル１２として選択し、出力する。具体的には、動きベクトル生成部１０９は、第１の符号化コストが第２の符号化コスト以下であれば第１の動きベクトルを動きベクトル１２として選択し、そうでなければ第２の動きベクトルを動きベクトル１２として選択する。また、動きベクトル選択部１０９は、第２の動きベクトルの生成が実行されたか否かと、当該第２の動きベクトルを動きベクトル１２として選択したか否かを選択率算出部１１０に通知する。
【００３７】
本例では、数式（６）に示すように、動きベクトル生成部１０９は、ＭＥCost16x16がＭＥCost16x8以下であれば１６×１６画素ブロックの動きベクトルを動きベクトル１２として選択し、そうでなければ１６×８画素ブロックの動きベクトルを動きベクトル１２として選択する。
【数６】
2009267820.tif 000008
【００３８】
選択率算出部１１０は、第２の動きベクトルの生成が実行された場合に当該第２の動きベクトルが動きベクトル１２として選択された確率を示す選択率を算出する。具体的には、選択率算出部１１０は、第２の動きベクトルの生成が実行された回数と、当該第２の動きベクトルが動きベクトル１２として選択された回数とをカウントし、これらのカウント値を用いて選択率を算出する。選択率算出部１１０は、算出した選択率を閾値更新部１１１に入力する。
【００３９】
本例では、選択率算出部１１０は、１６×８画素ブロックの動きベクトルの生成が実行された回数を数えるための変数ME_num16x8と、当該１６×８画素の動きベクトルが動きベクトル１２として選択された回数を数えるための変数select_num16x8を用いる。動きベクトル選択部１０９から１６×８画素ブロックの動きベクトルの生成が実行されたことが通知されれば選択率算出部１１０は変数ＭＥ_num16x8を１インクリメントし、更に当該１６×８画素ブロックの動きベクトルが動きベクトル１２として選択されたことが通知されれば選択率算出部１１０は変数select_num16x8を１インクリメントする。選択率算出部１１０は、数式（７）に従って選択率select_rate16x8を算出する。
【数７】
2009267820.tif 000009
【００４０】
閾値更新部１１１は、選択率算出部１１０からの選択率を用いて前述した閾値を更新する。具体的には、閾値更新部１１１は、実測により得られた閾値と選択率との関係を示すグラフを近似した関係式に従って、選択率が目標とする値に近づくように閾値を更新する。尚、閾値の更新は、逐次行われる必要はなく例えば１フレームに１回程度行われればよい。
【００４１】
本例では、閾値更新部１１１は、図６に示すグラフを近似した関係式に従って、選択率算出部１１０からの選択率select_rate16x8が目標値target_rate16x8に近づくように閾値Ｔｈを更新する。図６から明らかなように、閾値Ｔｈが大きくなるにつれ選択率Ｐ16x8も高くなる。選択率が高ければ、１６×８画素ブロックの動きベクトルの生成が無駄なく実行されているといえる。この観点からすると、閾値Ｔｈはより大きく設定した方がよい。しかしながら、１６×８画素ブロックの動きベクトルの生成を実行するか否かは、前述したように条件式（３）によって決まるので、閾値Ｔｈを大きくしすぎると１６×８画素ブロックの動きベクトルの生成が殆ど実行されない。即ち、１６×１６画素ブロックの動きベクトルばかりが動きベクトル１２として出力されることになり、復号画質の劣化が生じるおそれがある。従って、閾値Ｔｈは単に大きな値とするのでなく、１６×８画素ブロックの動きベクトルの生成による演算量を削減しつつ復号画質の劣化を抑制できるよう適切な値を目標値target_rate16x8とすることが望ましい。
【００４２】
以下に示す数式（８）は、図６に示すグラフの近似した関係式である。尚、数式（８）は関係式の一例に過ぎず、例えば対数近似により得られる他の関係式であってもよい。  
【数８】
2009267820.tif 000010
【００４３】
数式（８）において、ｌ及びｋは、ｌ／ｋが所定の定数Constとなる係数である。定数Constは、閾値Ｔｈを無限大に近づけた場合のＰ16x8の極限値であり、０以上１以下であるが、１に近い値であることが望ましい。数式（８）において、制御部１０５が現在使用している閾値Ｔｈ_nowを閾値Ｔｈに、選択率select_rate16x8をＰ16x8に夫々代入すると、以下に示す数式（９）が導出される。
【数９】
2009267820.tif 000011
【００４４】
数式（８）において、目標値target_rateをＰ16x8に、更新後の閾値Ｔｈ_newをＴhに、数式（９）により得られた値をｋ及びｌに夫々代入し、上記更新後の閾値Ｔｈ_newについて解くと、以下に示す数式（１０）が導出される。
【数１０】
2009267820.tif 000012
【００４５】
尚、前述したように、閾値Ｔｈが大きくなりすぎると画質劣化の問題が生じ、更に、第２の動きベクトルの生成が殆ど実行されなくなるため選択率select_rate16x8の計算が実質的に不可能となる。即ち、閾値Ｔｈの更新が困難になる。従って、閾値Ｔｈのとり得る最大値Ｔｈ_maxを用意し、数式（１１）に示すように、更新後の閾値Ｔｈ_newが当該最大値Ｔｈ_maxを超えないように制限することが望ましい。
【数１１】
2009267820.tif 000013
【００４６】
以下、図４に示すフローチャートを用いて、本実施形態に係る動きベクトル検出装置の動作を説明する。  
まず、第１の動きベクトル生成部１０１が、ブロック単位の原画像１０及び参照画像１１を用いて第１の動き補償ブロックに応じた第１の動きベクトルを生成する（ステップＳ３００）。ステップＳ３００における詳細な処理は、図５に示す通りである。尚、本例では、前述したように第１の動き補償ブロックは１６×１６画素ブロックである。
【００４７】
次に、制御部１０５が第１のＳＡＤに対する第２のＳＡＤの減少量と、閾値とを比較して第２の動きベクトルの生成を実行するか否かを決定する（ステップＳ３１１）。本例では、前述したように制御部１０５は条件式（３）の真偽に応じて１６×８画素ブロックの動きベクトルの生成の中止／実行を決定する。第２の動きベクトルの生成を実行する場合には処理はステップＳ３１２に進み、第２の動きベクトルの生成を中止する場合には処理はステップＳ３１３に進む。
【００４８】
ステップＳ３１２では、第２の動きベクトル生成部１０６が第２の動きベクトルを生成し、処理はステップＳ３１３に進む。本例では、前述したように第２の動きベクトルは１６×８画素ブロックの動きベクトルである。
【００４９】
ステップＳ３１３では、動きベクトル選択部１０９が、第１の符号化コスト及び第２の符号化コストを大小比較し、動きベクトル１２を選択する。本例では、動きベクトル選択部１０９は、ＭＥCost16x16及びＭＥCost16x8を大小比較し、１６×１６画素ブロックの動きベクトル及び１６×８画素ブロックの動きベクトルのいずれか一方を動きベクトル１２として選択する。
【００５０】
以上説明したように、本実施形態に係る動きベクトル検出装置は、第１の動きベクトルを生成後、第２の動きベクトルの生成の実行／中止を決定している。従って、本実施形態に係る動きベクトル検出装置によれば、第２の動きベクトルの生成の無駄な実行を抑制できるので、動きベクトル検出に必要な演算量を削減することができる。更に第２の動きベクトルの生成の実行／中止を決定するために用いられる閾値を動的に更新すれば、動き補償対象画像によらず動きベクトル検出に必要な演算量を削減しつつ復号画質の劣化を防ぐことができる。
【００５１】
（第２の実施形態）  
図２に示すように、本発明の第２の実施形態に係る動画像符号化装置は、前述した第１の実施形態に係る動きベクトル検出装置に相当する動きベクトル検出部１００、動き補償部２０１、減算部２０２、直交変換部２０３、量子化部２０４、エントロピー符号化部２０５、逆量子化部２０６、逆直交変換部２０７、加算部２０８及びフレームメモリ２０９を有する。
【００５２】
動きベクトル検出部１００は、ブロック単位の原画像１０と、フレームメモリ２０９から読み出した参照画像１１とを用いて、当該原画像１０の動き量を示す動きベクトル１２を検出し、動き補償部２０１に入力する。また、動きベクトル検出部１００は、上記動きベクトル１２をエントロピー符号化部２０５にも入力する。
【００５３】
動き補償部２０１は、フレームメモリ２０９から読み出した参照画像１１及び動きベクトル検出部１００からの動きベクトル１２を用いて、原画像１０を動き補償予測した動き補償予測画像を生成する。動き補償部２０１は、上記動き補償予測画像を減算部２０２に入力する。また、動き補償部２０１は、後述する局所復号画像を生成するために、加算部２０８にも上記動き補償予測画像を入力する。
【００５４】
減算部２０２は、動き補償部２０１からの動き補償予測画像を上記原画像１０から減算し、予測残差を得る。上記予測残差は、直交変換部２０３に転送される。直交変換部２０３は、減算部２０２からの予測残差に対して例えばＤＣＴ（離散コサイン変換）などの直交変換を行って、直交変換係数を得る。上記直交変換係数は、量子化部２０４に転送される。尚、ＤＣＴは、画素値を空間周波数成分に変換する直交変換の１つに過ぎず、直交変換部２０３は必要に応じて他の直交変換を行ってよい。
【００５５】
量子化部２０４は、図示しない量子化制御部によって制御される量子化パラメータに従って、直交変換部２０３からの直交変換係数を量子化し、エントロピー符号化部２０５及び逆量子化部２０６に入力する。
【００５６】
エントロピー符号化部２０５は、量子化部２０４からの量子化された直交変換係数（以下、量子化直交変換係数と称する）を可変長符号化し、符号化ビットストリームを生成する。また、エントロピー符号化部２０５は、動きベクトル検出部１００からの動きベクトル１２にも可変長符号化を行い、いわゆるサイド情報として上記符号化ビットストリームと共に出力する。
【００５７】
逆量子化部２０６は、量子化部２０４からの量子化直交変換係数を、前述した量子化パラメータに従って逆量子化し、直交変換係数を復号する。復号された直交変換係数（以下、復号直交変換係数と称する）は、逆直交変換部２０７に転送される。
【００５８】
逆直交変換部２０７は、逆量子化部２０６からの復号直交変換係数に対して前述した直交変換部２０３が行う直交変換に応じた逆直交変換を行って、予測残差を復号する。復号された予測残差（以下、復号予測残差と称する）は、加算部２０８に入力される。
【００５９】
加算部２０８は、逆直交変換部２０７からの復号予測残差と、動き補償部２０１からの動き補償予測画像とを加算し、局所復号画像を生成する。上記局所復号画像は、フレームメモリ２０９によってフレーム単位で蓄積され、前述した参照画像１１として適宜読み出される。尚、上記局所復号画像は、フレームメモリ２０９によって蓄積される前にデブロッキングフィルタによるフィルタ処理が行われてもよい。
【００６０】
以上説明したように、本実施形態に係る動画像符号化装置は、前述した第１の実施形態に係る動きベクトル検出装置に相当する動きベクトル検出部を備えている。従って、本実施形態に係る動画像符号化装置によれば、複数の動き補償ブロックサイズに応じた動きベクトルから適切な動きベクトルを比較的小さな演算量で検出し、動き補償予測に必要な演算量を削減することができる。
【００６１】
（第３の実施形態）  
図７に示すように、本発明の第３の実施形態に係る動きベクトル検出装置は、図１に示す第１の実施形態に係る動きベクトル検出装置において、第１の動きベクトル生成部１０１を第１の動きベクトル生成部４０１、第２の動きベクトル候補記憶部１０２を第２の動き補償ブロックＳＡＤ記憶部４０２、第２の動きベクトル生成部１０６を第２の動きベクトル生成部４０６に夫々置き換え、動きベクトル抽出部４１２及び画像復号部４１３を更に設けている。以下の説明では、図７において図１と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
【００６２】
動きベクトル抽出部４１２には、例えばＭＰＥＧ−２に準拠した符号化ビットストリームが入力される。尚、動きベクトル抽出部４１２に入力される符号化ビットストリームは、例えばＭＰＥＧ−４などのＭＰＥＧ−２以外の動画像符号化方式に準拠していてもよいが、以下の説明ではＭＰＥＧ−２に準拠している場合を一例とする。動きベクトル抽出部４１２は、上記符号化ビットストリームにおいてサイド情報として符号化された動きベクトルを抽出し、当該符号化された動きベクトルを復号する。動きベクトル抽出部４１２は、復号した動きベクトル（以下、復号動きベクトルと称する）の動き補償ブロックサイズが第１の動き補償ブロックに一致すれば当該復号動きベクトルを第１の動きベクトル生成部４０１に入力し、第２の動き補償ブロックに一致すれば当該復号動きベクトルを第１の動きベクトル生成部４０１及び第２の動きベクトル生成部４０６に入力する。
【００６３】
前述したように本例では、動きベクトル抽出部４１２にはＭＰＥＧ−２符号化ストリームが入力される。ＭＰＥＧ−２では、動き補償ブロックサイズは１６×１６画素と１６×８画素の２種類が規定されている。以下の説明では、前述した第１の実施形態と同様に１６×１６画素ブロックを第１の動き補償ブロック、１６×８画素ブロックを第２の動き補償ブロックとする。動きベクトル抽出部４１２は、上記ＭＰＥＧ−２符号化ビットストリームにおいてサイド情報として符号化された動きベクトルを抽出し、当該符号化された動きベクトルを復号する。動きベクトル抽出部４１２は、復号動きベクトルが１６×１６画素ブロックの動きベクトル（以下、ＭＶmpeg2_16x16と称する）であれば当該復号動きベクトルを第１の動きベクトル生成部４０１に入力し、１６×８画素ブロックの動きベクトル（以下、上部ブロックの動きベクトルをＭＶmpeg2_16x8_upper、下部ブロックの動きベクトルをＭＶmpeg2_16x8_lowerとして夫々称する）であれば当該復号動きベクトルを第１の動きベクトル生成部４０１及び第２の動きベクトル生成部４０６に入力する。
【００６４】
画像復号部４１３には、動きベクトル抽出部４１２と同様に前述した符号化ビットストリームが入力される。画像復号部４１３は、上記符号化ビットストリームを復号し、復号画像２０を生成する。画像復号部４１３は、復号画像２０をブロック単位で第１の動きベクトル生成部４０１及び第２の動きベクトル生成部４０６に入力する。
【００６５】
第１の動きベクトル生成部４０１は、動きベクトル抽出部４１２からの復号動きベクトルに基づいて第１の動きベクトルを生成する。具体的には、第１の動きベクトル生成部４０１は、復号動きベクトルを中心として近傍の動き探索を行うことにより、第１の動きベクトルを生成する。上記動き探索は、例えば１／４画素精度などの小数画素精度動き探索である。第１の動きベクトル生成部４０１は、第１の動きベクトル及び当該第１の動きベクトルに関するＳＡＤを第１のコスト算出部１０７に入力する。
【００６６】
前述したように本例では、第１の動きベクトル生成部４０１に入力される復号動きベクトルは、ＭＶmpeg2_16x16またはＭＶmpeg2_16x8_upper及びＭＶmpeg2_16x8_lowerのいずれかである。復号動きベクトルがＭＶmpeg2_16x16であれば、図８Ａに示すように、第１の動きベクトル生成部４０１は当該復号動きベクトル（５００）を中心として、１／４画素精度の動き探索を行うことにより、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４に準拠した１６×１６画素ブロックの動きベクトル（５０１）を生成する。
【００６７】
一方、復号動きベクトルがＭＶmpeg2_16x8_upper及びＭＶmpeg2_16x8_lowerであれば、図８Ｂに示すように、第１の動きベクトル生成部４０１は当該復号動きベクトル（５１０）を中心として１／４画素精度の動き探索を行うことにより、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４に準拠した１６×１６画素ブロックの動きベクトル（５１１）を生成する。
【００６８】
ＭＰＥＧ−２では１／２画素精度までの動き探索が行われ、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では前述したように１／４画素精度までの動き探索が行われる。従って、第１の動きベクトルによれば、復号動きベクトルに比べ復号画質の向上が期待できる。
【００６９】
第２の動き補償ブロックＳＡＤ記憶部４０２には、第１の動きベクトル生成部４０１による前述した小数画素精度動き探索において入力される第２の動き補償ブロックのＳＡＤの最小値が、当該第２の動き補償ブロック毎に記憶される。本例では、第２の動き補償ブロックＳＡＤ記憶部４０２には、第１の動きベクトル生成部４０１から入力される１６×８画素の上部ブロックのＳＡＤの最小値と、１６×８画素の下部ブロックのＳＡＤの最小値とが記憶される。
【００７０】
尚、後述するように本例では、第２の動きベクトル生成部４０６による１６×８画素ブロックの動きベクトルの生成は、復号動きベクトルの動き補償ブロックサイズが１６×８画素の場合にのみ行われ、しかも、当該復号動きベクトルを中心に±１／４画素までを探索範囲とする。即ち、上記探索範囲は、１６×１６画素ブロックの動きベクトルの探索範囲と等しい。従って、第２のＳＡＤ算出部１０４において算出される１６×８画素の上部ブロック及び下部ブロックのＳＡＤの合計値は、実際に１６×８画素ブロックの動きベクトルを生成して得られるＳＡＤの合計値と一致する。従って、制御部１０５は、１６×８画素ブロックの生成の実行／中止をより無駄なく決定できる。
【００７１】
第２の動きベクトル生成部４０６は、動きベクトル抽出部４１２から復号動きベクトルが入力され、かつ、制御部１０５が第２の動きベクトルの生成を実行すると決定した場合、上記復号動きベクトルに基づいて第２の動きベクトルを生成する。具体的には、第２の動きベクトル生成部４０６は、復号動きベクトルを中心として近傍の動き探索を行うことにより、第２の動きベクトルを生成する。上記動き探索は、例えば１／４画素精度などの小数画素精度動き探索である。第２の動きベクトル生成部４０６は、第２の動きベクトル及び当該第２の動きベクトルに関するＳＡＤを第２のコスト算出部１０８に入力する。
【００７２】
前述したように本例では、第２の動きベクトル生成部４０６に入力される復号動きベクトルは、ＭＶmpeg2_16x8_upper及びＭＶmpeg2_16x8_lowerである。図８Ｂに示すように、第２の動きベクトル生成部４０６は当該復号動きベクトル（５１０）を中心として１／４画素精度の動き探索を行うことにより、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４に準拠した１６×８画素ブロックの動きベクトル（５１２）を生成する。
【００７３】
一方、復号動きベクトルがＭＶmpeg2_16x16であれば、図８Ａに示すように当該復号動きベクトル（５００）は第２の動きベクトル生成部４０６には入力されず、１６×８画素ブロックの動きベクトル（５０２）の探索は行われない。このように１６×８画素ブロックの動きベクトルの探索を省略する理由は、復号動きベクトルの動き補償ブロックサイズが１６×１６画素であれば１６×８画素ブロックの動きベクトルを新たに生成したとしても動きベクトル１２として選択される可能性が低いと予想されるためである。
【００７４】
前述したように、ＭＰＥＧ−２では１／２画素精度までの動き探索が行われ、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では１／４画素精度までの動き探索が行われる。従って、第２の動きベクトルによれば、復号動きベクトルに比べ復号画質の向上が期待できる。
【００７５】
以上説明したように、本実施形態に係る動きベクトル検出装置は、符号化ストリームから抽出・復号した復号動きベクトルを用いて当該復号動きベクトルよりも更に高精度な動きベクトルを検出している。従って、本実施形態に係る動きベクトル検出装置によれば、複数の動き補償ブロックサイズに応じた動きベクトルから適切な動きベクトルを比較的小さな演算量で検出することができる。
【００７６】
尚、本実施形態の説明において挙げた例では、ＭＰＥＧ−２の動きベクトルを中心に±１／４画素までを探索範囲としているが、例えばＭＰＥＧ−２の動きベクトルと同様の探索範囲（±１／２画素）としたり、±１画素までを探索範囲としたりしてもよい。
【００７７】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【００７８】
その一例として例えば、上記各実施形態では、第２の動き補償ブロックを１つのみとしたが、並列的に複数の第２の動き補償ブロックが設けられてもよい。この場合、複数の第２の動き補償ブロックの各々に対応する閾値を用意することが望ましい。尚、複数の第２の動きベクトルに関してＳＡＤの減少量が閾値を超える場合、当該第２の動きベクトルを全て生成してもよいし、上記減少量の最も大きい第２の動きベクトルのみを生成してもよい。
【００７９】
その他、本発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【図面の簡単な説明】
【００８０】
【図１】第１の実施形態に係る動きベクトル検出装置を示すブロック図。
【図２】第２の実施形態に係る動画像符号化装置を示すブロック図。
【図３】図１の動きベクトル検出装置が利用可能な動き補償ブロックサイズの例を示す図。
【図４】図１の動きベクトル検出装置の動作を示すフローチャート。
【図５】図１の第１の動きベクトル生成部の動作を示すフローチャート。
【図６】図１の動きベクトル選択部による第２の動きベクトルの選択率と閾値との関係を示すグラフ図。
【図７】第３の実施形態に係る動きベクトル検出装置を示すブロック図。
【図８Ａ】図７の動きベクトル検出装置による動きベクトルの探索の一例を示す図。
【図８Ｂ】図８Ａの他の例を示す図。
【符号の説明】
【００８１】
１０・・・原画像
１１・・・参照画像
１２・・・動きベクトル
２０・・・復号画像
１００・・・動きベクトル検出部
１０１・・・第１の動きベクトル生成部
１０２・・・第２の動きベクトル候補記憶部
１０３・・・第１のＳＡＤ記憶部
１０４・・・第２のＳＡＤ算出部
１０５・・・制御部
１０６・・・第２の動きベクトル生成部
１０７・・・第１のコスト算出部
１０８・・・第２のコスト算出部
１０９・・・動きベクトル選択部
１１０・・・選択率算出部
１１１・・・閾値更新部
２０１・・・動き補償部
２０２・・・減算部
２０３・・・直交変換部
２０４・・・量子化部
２０５・・・エントロピー符号化部
２０６・・・逆量子化部
２０７・・・逆直交変換部
２０８・・・加算部
２０９・・・フレームメモリ
４０１・・・第１の動きベクトル生成部
４０２・・・第２の動き補償ブロックＳＡＤ記憶部
４０６・・・第２の動きベクトル生成部
４１２・・・動きベクトル抽出部
４１３・・・画像復号部
【図１】
2009267820.tif 000014
【図２】
2009267820.tif 000015
【図３】
2009267820.tif 000016
【図４】
2009267820.tif 000017
【図５】
2009267820.tif 000018
【図６】
2009267820.tif 000019
【図７】
2009267820.tif 000020
【図８Ａ】
2009267820.tif 000021
【図８Ｂ】
2009267820.tif 000022