(57)【特許請求の範囲】
【請求項１】
画像データを縮小して別の階層の画像データを生成する処理を繰り返し、複数の階層の画像データを生成する縮小手段と、
前記複数の階層の画像データの鮮鋭度に関する評価値を算出する評価手段と、同じ階層の複数の画像データのいずれかの位置をずらしながら相関を求めることで、前記複数の画像データの間の動きベクトルを検出する動きベクトル検出手段を有し、
前記評価値は前記鮮鋭度が高いほど大きな値となり、
前記動きベクトル検出手段は、
第１階層の画像データを縮小して生成した第２階層の画像データから算出された前記評価値が予め定めた閾値以上であれば、前記第２階層の画像データにおける第１の動きベクトルをもとに前記第１階層の画像データにおける第１の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を第１の量だけずらしながら、前記第１階層の画像データのうちの前記第１の検出範囲における画像データの相関を求めて前記第１階層の画像データにおける第２の動きベクトルを検出し、
前記第２階層の画像データから算出された評価値が前記予め定めた閾値以上でなければ、前記第１階層の複数の画像データのいずれかの位置を第１の量より大きな第２の量だけずらしながら相関を求めて第３の動きベクトルを検出し、検出した前記第３の動きベクトルをもとに前記第１階層の画像データにおける第２の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を前記第２の量よりも小さい第３の量だけずらしながら、前記第１階層の画像データのうちの前記第２の検出範囲における画像データの相関を求めて、前記第１階層の画像データにおける第４の動きベクトルを検出し、
前記評価値が予め閾値以上である複数の階層の画像データのうち、最も縮小された階層の画像データから順に、動きベクトルの検出と相関の検出範囲の設定を繰り返すものであって、
前記予め定めた閾値は複数の階層の画像データごとに異なる値に設定されており、最も縮小された階層の画像データに対応する閾値から順に、小さな値に設定されることを特徴とする画像処理装置。
【請求項２】
前記評価手段は、前記画像データから抽出した高域成分の値を用いて前記評価値を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記評価手段は、前記画像データから高域成分を抽出するフィルタ手段と、前記フィルタ手段の出力の絶対値を積分する積分手段を有することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
縮小手段が画像データを縮小して別の階層の画像データを生成する処理を繰り返し、複数の階層の画像データを生成する工程と、
評価手段が前記複数の階層の前記画像データの鮮鋭度に関する評価値を算出する工程と、
動きベクトル検出手段が同じ階層の複数の画像データのいずれかの位置をずらしながら相関を求めることで、前記複数の画像データの間の動きベクトルを検出する工程を有し、
前記評価値は前記鮮鋭度が高いほど大きな値となり、
前記動きベクトル検出手段は、
第１階層の画像データを縮小して生成した第２階層の画像データから算出された前記評価値が予め定めた閾値以上であれば、前記第２階層の画像データにおける第１の動きベクトルをもとに前記第１階層の画像データにおける第１の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を第１の量だけずらしながら、前記第１階層の画像データのうちの前記第１の検出範囲における画像データの相関を求めて前記第１階層の画像データにおける第２の動きベクトルを検出し、
前記第２階層の画像データから算出された評価値が前記予め定めた閾値以上でなければ、前記第１階層の複数の画像データのいずれかの位置を第１の量より大きな第２の量だけずらしながら相関を求めて第３の動きベクトルを検出し、検出した前記第３の動きベクトルをもとに前記第１階層の画像データにおける第２の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を前記第２の量よりも小さい第３の量だけずらしながら、前記第１階層の画像データのうちの前記第２の検出範囲における画像データの相関を求めて、前記第１階層の画像データにおける第４の動きベクトルを検出し、
前記評価値が予め閾値以上である複数の階層の画像データのうち、最も縮小された階層の画像データから順に、動きベクトルの検出と相関の検出範囲の設定を繰り返すものであって、
前記予め定めた閾値は複数の階層の画像データごとに異なる値に設定されており、最も縮小された階層の画像データに対応する閾値から順に、小さな値に設定されることを特徴とする画像処理方法。
【請求項５】
コンピュータが読み出すことで、該コンピュータに請求項４に記載の画像処理方法を実行させるプログラムコードを含むプログラム。
【請求項６】
請求項５に記載のプログラムを記憶した不揮発性の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像間における動きベクトルを検出する画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
２つの画像間の動きベクトルをそれらの画像の相関から求めるブロックマッチングは、例えば動画像における圧縮技術を中心に開発が進んでいる。このような動きベクトルを求める技術は、連続して撮影した複数の画像間の位置ずれを求めることができるため、複数枚の画像を合成することによる電子防振処理やダイナミックレンジの拡大処理など、多岐の技術分野にわたって応用されている。
【０００３】
ブロックマッチングとは、それぞれの画像内に設定した所定の大きさの矩形ブロックにおける画像の相関を、互いの矩形ブロックの位置をずらして複数の位置で算出し、最も相関の高い位置を求めることで、２つの画像間における動きベクトルを求める方法である。
【０００４】
図９は、ブロックマッチングを概念的に説明するための図である。画像データ９０１が動きベクトルを求める際の基準となる画像であり、画像データ９０２が画像データ９０１に対する動きベクトルを求める対象となる画像である。
【０００５】
まず、画像処理装置は、画像データ９０１において、動きベクトルを求める基準となる領域であるベースブロック９０３を設定する。画像処理装置は、画像データ９０２において、画像データ９０１のベースブロック９０３と同じ位置およびサイズとなる射影ブロック９０４を求め、この射影ブロック９０４の位置を基準として、射影ブロック９０４を包括する所定サイズの検出範囲９０５を設定する。
【０００６】
そして、画像処理装置は、画像データ９０２において、この検出範囲９０５に含まれ、かつ、ベースブロック９０３と同じサイズであるターゲットブロック９０６を設定する。そして、画像データ９０１のベースブロック９０３の画像と画像データ９０２のターゲットブロック９０６の画像との相関を求める。画像処理装置は、ベースブロック９０３の画像データにおける信号レベルとターゲットブロック９０６の画像データの信号レベルの差分の絶対値の総和（ＳＡＤ：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を求める。画像処理装置は、ＳＡＤの値が小さくなるほど、ベースブロック９０３の画像とターゲットブロック９０６の画像の相関が高いと判定する。
【０００７】
画像処理装置は、検出範囲９０５の全領域にターゲットブロック９０６を移動させてその都度ＳＡＤを求める。最もＳＡＤの値が小さくなるターゲットブロック９０６の位置を検出することで、検出範囲９０５内において、ベースブロック９０３の画像と最も相関の高いターゲットブロック９０６の位置を求めることができる。そして、画像処理装置は、このときのベースブロック９０３とターゲットブロック９０６の位置のずれを、画像データ９０１と画像データ９０２の間におけるベースブロック９０３の画像データの動きベクトルとして求める。ベースブロック９０３の位置を複数設定すれば、画像データ９０１と画像データ９０２の間における複数の動きベクトルを求めることができる。
【０００８】
図１０は、画像処理装置に含まれる、ベースブロック９０３の画像データとターゲットブロック９０６の画像データからＳＡＤを求める演算回路１００１を説明するための図である。
【０００９】
画像処理装置は演算回路１００１を有しており、入力１の端子でベースブロック９０３の画像データを受け取り、入力２の端子でターゲットブロック９０６の画像データを受け取る。演算回路１００１は、ベースブロック９０３の画像データの各画素における信号レベルから、ターゲットブロック９０６の画像データの対応画素における信号レベルを減算し、その絶対値を加算することでＳＡＤを求める。
【００１０】
例えば、ベースブロック９０３およびターゲットブロック９０６の画像データが、１６×１６の２５６画素の信号で構成された画像データであるとする。ベースブロック９０３の画像データの各画素の信号レベルをＰ（１，１）、Ｐ（１，２）・・・Ｐ（１，１６）、Ｐ（２，１）、Ｐ（２，２）・・・Ｐ（１６，１６）とする。また、ベースブロック９０３の画像データの各画素の信号レベルをＱ（１，１）、Ｑ（１，２）・・・Ｑ（１，１６）、Ｑ（２，１）、Ｑ（２，２）・・・Ｑ（１６，１６）とする。演算回路１００１はＳＡＤを下記の（式１）にて求めることができる。
【００１１】
【数１】
0005683153.tif 000002
【００１２】
ここで、検出範囲９０５を、射影ブロック９０４を中心とした２５×２５画素からなる領域に設定すると、ターゲットブロック９０６は縦横ともに１０通りの位置に移動できる。そのため、最多で、検出範囲９０５において１００個のＳＡＤを求めることになる。さらに、検出範囲９０５を、射影ブロック９０４を中心とした３２×３２画素からなる領域に設定すると、ターゲットブロック９０６は縦横ともに１７通りの位置に移動できる。そのため、最多で、検出範囲９０５において２８９個のＳＡＤを求めることになる。このように、検出範囲９０５に含まれる画素数の、ベースブロック９０３に含まれる画素数に対する割合を大きくするほど、ＳＡＤを求めるための演算回数が増えてしまい、処理時間の増加につながってしまう。しかしながら、演算回数を抑えるために検出範囲９０５を狭くしてしまうと、動きベクトルが検出できなくなる可能性が増えてしまう。
【００１３】
そこで、画像データ９０１および画像データ９０２をともに縮小した縮小画像を用いておおまかな動きベクトルを検出した後に、もとの画像データ９０１および画像データ９０２を用いて詳細な動きベクトルを検出するものが提案されている。こうすることで、演算量を減らすことができる（特許文献１を参照）。
【００１４】
例えば、画像データ９０１のベースブロック９０３が１６×１６画素で設定され、画像データ９０２の検出範囲９０５が３２×３２画素で構成されているとする。上記の方法であれば、動きベクトルを検出するためには２８９個のＳＡＤを求める必要があった。ここで、もとの画像データ９０１および９０２を第１階層の画像データということにする。この第１階層の画像データ９０１および９０２を、ともに縦横が１／２倍となる第２階層の画像データに変換すると、同じベースブロック９０３が８×８画素で構成され、検出範囲９０５が１６×１６画素で構成される。さらに、これらの第２階層の画像データを縦横が１／２倍となる第３階層の画像データに変換すると、同じベースブロック９０３が４×４画素で構成され、検出範囲９０５が８×８画素で構成される。さらに、これらの第３階層の画像データを縦横が１／２倍となる第４階層の画像データに変換すると、同じベースブロック９０３が２×２画素で構成され、検出範囲９０５が４×４画素で構成される。この第４階層の画像データであれば、ターゲットブロック９０６は縦横ともに３通りの位置に移動できるため、ＳＡＤを９個求めれば動きベクトルを検出することができる。さらに、ベースブロック９０３に含まれる画素数自体が少ないため、ＳＡＤを求めるための（式１）における演算量も少なくすることができる。
【００１５】
ただし、第４階層の画像データを用いて求めた動きベクトルは、第３階層の画像データを用いて求めた動きベクトルに比較してその分解能が１／２でしかない。これは、第２階層の画像データを用いて求めた動きベクトルに比較してその分解能が１／４でしかなく、第１階層の画像データを用いて求めた動きベクトルに比較してその分解能が１／８でしかないことになる。
【００１６】
そこで、第３階層の検出範囲９０５の画像データ上に、第４階層の画像データで求めた動きベクトルによって求められる中心位置を設定し、この中心位置を基準として、６×６画素の新たな検出範囲を設定する。新たな検出範囲を６×６画素としたのは、第２階層のベースブロック９０３の画像データは４×４画素であり、６×６画素よりも外側の領域については、第４階層を用いて得られた動きベクトルの検出結果よりすでに除外されているためである。第３階層の画像データからは、ＳＡＤを９個求めれば第３階層の画像データにおける動きベクトルを検出することができる。こうすることにより、第１階層の画像データを用いて求めた動きベクトルに比較してその分解能が１／４となる動きベクトルを求めることができる。
【００１７】
さらに、第２階層の検出範囲９０５の画像データ上に、第３階層の画像データで求めた動きベクトルによって求められる中心位置を設定し、この中心位置を基準として、１０×１０画素の新たな検出範囲を設定する。新たな検出範囲を１０×１０画素としたのは、第２階層のベースブロック９０３の画像データは８×８画素であり、１０×１０画素よりも外側の領域については、第３階層を用いて得られた動きベクトルの検出結果よりすでに除外されているためである。第２階層の画像データからは、ＳＡＤを９個求めれば第２階層の画像データにおける動きベクトルを検出することができる。こうすることにより、第１階層の画像データを用いて求めた動きベクトルに比較してその分解能が１／２となる動きベクトルを求めることができる。
【００１８】
さらに、第１階層の検出範囲９０５の画像データ上に、第２階層の画像データで求めた動きベクトルによって求められる中心位置を設定し、この中心位置を基準として、１８×１８画素の新たな検出範囲を設定する。新たな検出範囲を１８×１８画素としたのは、第１階層のベースブロック９０３の画像データは１６×１６画素であり、１８×１８画素よりも外側の領域については、第２階層を用いて得られた動きベクトルの検出結果よりすでに除外されているためである。第１階層の画像データからは、ＳＡＤを９個求めればよく、その結果、ＳＡＤを２８９個求めた従来の方法と同じ精度の動きベクトルを求めることができる。
【００１９】
以上のような方法によれば、従来の方法では動きベクトルを求めるためにＳＡＤを２８９回演算していたが、その精度を落とすことなく、ＳＡＤの演算回数を３６回に減らすことが可能となる。しかも、第２乃至第４階層の画像データにおいては、ＳＡＤを求めるための（式１）における演算量も減らすことができる。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００９−５５４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、特許文献１の方法では、画像データ９０１および９０２に含まれる被写体が高域成分を主体としていると、これらの画像データをリサイズしたことによって高域成分が消失してしまった場合には、誤検出が生じやすくなるという問題があった。
【課題を解決するための手段】
【００２２】
上記課題を解決するため、本願発明に係る画像処理装置は、画像データを縮小して別の階層の画像データを生成する処理を繰り返し、複数の階層の画像データを生成する縮小手段と、前記複数の階層の画像データの鮮鋭度に関する評価値を算出する評価手段と、同じ階層の複数の画像データのいずれかの位置をずらしながら相関を求めることで、前記複数の画像データの間の動きベクトルを検出する動きベクトル検出手段を有し、前記評価値は前記鮮鋭度が高いほど大きな値となり、前記動きベクトル検出手段は、第１階層の画像データを縮小して生成した第２階層の画像データから算出された前記評価値が予め定めた閾値以上であれば、前記第２階層の画像データにおける第１の動きベクトルをもとに前記第１階層の画像データにおける相関の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を第１の量だけずらしながら、前記第１階層の画像データのうちの前記第１の検出範囲における画像データの相関を求めて前記第１階層の画像データにおける第２の動きベクトルを検出し、前記第２階層の画像データから算出された評価値が予め定めた閾値以上でなければ、前記第１階層の複数の画像データのいずれかの位置を第１の量より大きな第２の量だけずらしながら相関を求めて第３の動きベクトルを検出し、検出した前記第３の動きベクトルをもとに前記第１階層の画像データにおける第２の検出範囲を設定し、前記第１階層の複数の画像データのいずれかの位置を前記第２の量よりも小さい第３の量だけずらしながら、前記第１階層の画像データのうちの前記第２の検出範囲における画像データの相関を求めて、前記第１階層の画像データにおける第４の動きベクトルを検出し、前記評価値が予め閾値以上である複数の階層の画像データのうち、最も縮小された階層の画像データから順に、動きベクトルの検出と相関の検出範囲の設定を繰り返すものであって、前記予め定めた閾値は複数の階層の画像データごとに異なる値に設定されており、最も縮小された階層の画像データに対応する閾値から順に、小さな値に設定されることを特徴とするものである。
【発明の効果】
【００２３】
本発明によれば、動きベクトルの誤検出を抑えつつ、動きベクトルの検出における演算負荷を減少させることができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態における画像処理装置の構成の一例を示すブロック図である。
【図２】動きベクトルを求めるブロックを説明するための概念図である。
【図３】階層決定処理を示すフローチャートを示す図である。
【図４】評価回路１０８の構成を示すブロック図、および、フィルタ係数を説明するための図である。
【図５】第４階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。
【図６】第３階層の画像データにおける新たな検出範囲の設定の仕方を説明するための図である。
【図７】第３階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。
【図８】第３階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。
【図９】ブロックマッチングを概念的に説明するための図である。
【図１０】ベースブロックの画像とターゲットブロックの画像からＳＡＤを求める演算回路を説明するための図である。
【発明を実施するための形態】
【００２５】
以下に図を用いて、本発明の実施形態について説明を行う。
【００２６】
（第１の実施形態）
図１は、本実施形態における画像処理装置の構成の一例を示すブロック図である。本実施形態では、図２に示すように入力された画像データ９０１を幾つかのブロックに分割し、ブロック毎に、画像データ９０２との間における動きベクトルを求める。これら複数の動きベクトルからこれらの画像データ間の代表的な動きベクトルを算出し、電子防振処理やダイナミックレンジの拡大処理に用いることができる。
【００２７】
図１において、メモリ１０１はベースブロック９０３の画像データを記憶する。このメモリ１０１に記憶される画像データを第１階層の画像データと言うことにする。縮小回路１０２はメモリ１０１に記憶された第１階層の画像データを縦横ともに１／２倍に縮小した第２階層の画像データを生成する。メモリ１０３は第２階層の画像データを記憶する。縮小回路１０４はメモリ１０３に記憶された第２階層の画像データを縦横ともに１／２倍に縮小した第３階層の画像データを生成する。つまり、第３階層の画像データは第１階層の画像データを縦横ともに１／４倍に縮小したものとなる。メモリ１０５は第３階層の画像データを記憶する。縮小回路１０６はメモリ１０５に記憶された第３階層の画像データを縦横ともに１／２倍に縮小した第４階層の画像データを生成する。つまり、第４階層の画像データは第１階層の画像データを縦横ともに１／８倍に縮小したものとなる。メモリ１０７は第４階層の画像データを記憶する。評価回路１０８はメモリ１０１に記憶された第１階層の画像データ、メモリ１０３に記憶された第２階層の画像データ、メモリ１０５に記憶された第３階層の画像データ、および、メモリ１０７に記憶された第４階層の画像データの評価値を求める。制御回路１０９はこの画像処理装置全体を制御するものであり、評価回路１０８で求められた評価値を受けて、縮小回路１０２、１０４、１０６および動きベクトル検出回路１２１乃至１２４に指示を出す。
【００２８】
メモリ１１１は画像データ９０２を第１階層の画像データとして記憶する。縮小回路１１２はメモリ１１１に記憶された第１階層の画像データを縦横ともに１／２倍に縮小した第２階層の画像データを生成する。メモリ１１３は第２階層の画像データを記憶する。縮小回路１１４はメモリ１１３に記憶された第２階層の画像データを縦横ともに１／２倍に縮小した第３階層の画像データを生成する。つまり、第３階層の画像データは第１階層の画像データを縦横ともに１／４倍に縮小したものとなる。メモリ１１５は第３階層の画像データを記憶する。縮小回路１１６はメモリ１１５に記憶された第３階層の画像データを縦横ともに１／２倍に縮小した第４階層の画像データを生成する。つまり、第４階層の画像データは第１階層の画像データを縦横ともに１／８倍に縮小したものとなる。メモリ１１７は第４階層の画像データを記憶する。
【００２９】
動きベクトル検出回路１２１はメモリ１０７に記憶された第４階層の画像データと、メモリ１１７に記憶された第４階層の画像データを用いて動きベクトルを検出する。動きベクトル検出回路１２２はメモリ１０５に記憶された第３階層の画像データと、メモリ１１５に記憶された第３階層の画像データを用いて動きベクトルを検出する。動きベクトル検出回路１２３はメモリ１０３に記憶された第２階層の画像データと、メモリ１１３に記憶された第２階層の画像データを用いて動きベクトルを検出する。動きベクトル検出回路１２４はメモリ１０１に記憶された第１階層の画像データと、メモリ１１１に記憶された第１階層の画像データを用いて動きベクトルを検出する。これら動きベクトル検出回路１２１乃至１２４は、図１０に示す演算回路１００１を有しており、２つの画像データの信号レベルの差分の絶対値の総和であるＳＡＤを求めることができる。
【００３０】
なお、図１の実線の矢印は画像データの流れを示し、点線の矢印は制御データの流れを示す。また、メモリ１０１乃至１１７は、説明を容易にするために別の回路として記載したが、１つの回路でこれらを兼用する構成としてもよい。これは、メモリ１０１乃至１１７に限られるものではなく、縮小回路１０２乃至１１６や、動きベクトル検出回路１２１乃至１２４においても、それぞれを１つの回路で兼用する構成としてもよい。
【００３１】
本実施形態では、全体を大きく２つの部分に分けて説明する。一つ目は、動きベクトルの検出に用いる画像データの階層を決定する階層決定処理であり、もう一つは、階層決定処理によって決定された階層の画像データを用いて動きベクトル検出を行う動きベクトル検出処理である。
【００３２】
図３は階層決定処理を示すフローチャートを示す図である。制御回路１０９によって、画像データ９０１のいずれかのベースブロック９０３が選択され、そのベースブロック９０３の画像データがメモリ１０１に入力されると、この図３に示す階層決定処理が開始される。
【００３３】
ステップＳ３０１において、評価回路１０８が、メモリ１０１に記憶されたベースブロック９０３の第１階層の画像データから第１の評価値を算出する。
【００３４】
図４（ａ）は、評価回路１０８の構成を示すブロック図である。評価回路１０８は、ハイパスフィルタ回路４０１、絶対値回路４０２、および、積分回路４０３を有する。
【００３５】
ハイパスフィルタ回路４０１は、入力された画像データの高域成分を抽出する空間フィルタであり、たとえば図４（ｂ）のフィルタ係数を持つ二次元ＦＩＲフィルタにより構成する。もちろん、高域成分を抽出するフィルタの構成はこれに限られるものではなく、周知の方法を適用することができる。
【００３６】
一般にハイパスフィルタの出力は正負の値をとり得るが、ここでは、ある程度のレベルのコントラストが生じているか否かを評価するのが目的である。そのため、絶対値回路４０２が、ハイパスフィルタ回路４０１から出力された値の振幅だけを抽出するために、ハイパスフィルタ回路４０１から出力された値の絶対値を求める。この絶対値回路４０２は、負数であれば全ビット反転するような簡易な構成のものでもかまわない。これらの処理を評価回路１０８に入力された画像データの全体に対して行い、積分回路４０３は、絶対値回路４０２がそれぞれの画素で得た絶対値を積分し、評価値として出力する。この評価値は、入力された画像データが平坦であるほど小さな値となり、入力された画像データがコントラストの高い部分を多く含むほど大きな値となる。
【００３７】
なお、図４に示す図は評価回路１０８の構成の一例であって、評価回路１０８は別の構成を有するものであっても構わない。評価回路１０８は、入力された画像データの信号レベルの鮮鋭度を評価すればよいため、例えば、入力された画像データの分散を算出し、分散の値が大きいほど高い評価値を得るようにしても構わない。
【００３８】
図３に戻り、ステップＳ３０２において、制御回路１０９は第１階層の画像データから得られた第１の評価値を第１の閾値と比較する。第１の評価値が第１の閾値未満であると判定された場合にはステップＳ３０３に進み、第１の評価値が第１の閾値以上であると判定された場合にはステップＳ３０４に進む。評価値が低いということは、その画像データの鮮鋭度が低く、領域間あるいは画素間における信号レベルの差が出にくいということである。つまり、ターゲットブロック９０６の画像データを移動させて、それそれの位置でこのベースブロック９０３の画像データとのＳＡＤを求めたとしても、その値に差が出にくく、動きベクトルを誤検出してしまう可能性が高くなる。そこで、動きベクトルを誤検出する可能性が低いとみなせる評価値の閾値を予め定めておき、評価値とこの閾値の比較結果から、その評価値が得られた画像データが動きベクトルを検出するために適したものであるかを判定する。
【００３９】
ステップＳ３０３において、制御回路１０９はこのベースブロック９０３の画像データからは動きベクトルの検出が不可能であると判定する。動きベクトルの検出が不可能であると判定した場合には、この図３に示すフローチャートを一度終了する。そして、制御回路１０９によって、画像データ９０１の別のベースブロック９０３が選択され、この別のベースブロック９０３の画像データがメモリ１０１に入力されると、再び図３に示す階層決定処理が開始される。
【００４０】
ステップＳ３０４において、制御回路１０９は縮小回路１０２に画像データを縮小するよう指示を送る。縮小回路１０２はこの指示を受けると、メモリ１０１から第１階層の画像データを読み出して１／２倍に縮小した第２階層の画像データを生成し、メモリ１０３が第２階層の画像データを記憶する。
【００４１】
ステップＳ３０５において、評価回路１０８は、メモリ１０３に記憶されたベースブロック９０３の第２階層の画像データから第２の評価値を算出する。
【００４２】
ステップＳ３０６において、制御回路１０９は第２階層の画像データから得られた第２の評価値を第２の閾値と比較する。第２の評価値が第２の閾値以上であると判定された場合にはステップＳ３０７に進み、第２の評価値が第２の閾値未満であると判定された場合にはステップＳ３１６に進む。
【００４３】
ステップＳ３０７において、制御回路１０９は縮小回路１０４に画像データを縮小するよう指示を送る。縮小回路１０４はこの指示を受けると、メモリ１０３から第２階層の画像データを読み出して１／２倍に縮小した第３階層の画像データを生成し、メモリ１０５が第３階層の画像データを記憶する。
【００４４】
ステップＳ３０８において、評価回路１０８は、メモリ１０５に記憶されたベースブロック９０３の第３階層の画像データから第３の評価値を算出する。
【００４５】
ステップＳ３０９において、制御回路１０９は第３階層の画像データから得られた第３の評価値を第３の閾値と比較する。第３の評価値が第３の閾値以上であると判定された場合にはステップＳ３１０に進み、第３の評価値が第３の閾値未満であると判定された場合にはステップＳ３１５に進む。
【００４６】
ステップＳ３１０において、制御回路１０９は縮小回路１０６に画像データを縮小するよう指示を送る。縮小回路１０４はこの指示を受けると、メモリ１０５から第３階層の画像データを読み出して１／２倍に縮小した第４階層の画像データを生成し、メモリ１０７が第４階層の画像データを記憶する。
【００４７】
ステップＳ３１１において、評価回路１０８は、メモリ１０７に記憶されたベースブロック９０３の第４階層の画像データから第４の評価値を算出する。
【００４８】
ステップＳ３１２において、制御回路１０９は第４階層の画像データから得られた第４の評価値を第４の閾値と比較する。第４の評価値が第４の閾値以上であると判定された場合にはステップＳ３１３に進み、第３の評価値が第３の閾値未満であると判定された場合にはステップＳ３１４に進む。
【００４９】
ステップＳ３１３において、制御回路１０９は、第４階層の画像データから動きベクトルを求めても誤検出となる可能性は低いと判定し、第１乃至第４の階層の画像データを全て利用して動きベクトルの検出を行うことを決定する。すなわち、制御回路１０９は、動きベクトル検出回路１２１乃至１２４のすべてに対して動きベクトルを検出するよう指示を出す。また、制御回路１０９は、動きベクトル検出回路１２２は動きベクトル検出回路１２１の検出結果を、動きベクトル検出回路１２３は動きベクトル検出回路１２２の検出結果を、動きベクトル検出回路１２４は動きベクトル検出回路１２３の検出結果を用いるよう指示を出す。
【００５０】
ステップＳ３１４において、制御回路１０９は、第１乃至第３階層の画像データから動きベクトルを求めても誤検出となる可能性は低いが、第４階層の画像データから動きベクトルを求めると誤検出となる可能性が高いと判定する。よって、制御回路１０９は、第４の階層の画像データを用いずに、第１乃至第３階層の画像データを利用して動きベクトルの検出を行うことを決定する。すなわち、制御回路１０９は、動きベクトル検出回路１２１には動きベクトルを検出するよう指示は出さないが、動きベクトル検出回路１２２乃至１２４に対して動きベクトルを検出するよう指示を出す。また、制御回路１０９は、動きベクトル検出回路１２３は動きベクトル検出回路１２２の検出結果を、動きベクトル検出回路１２４は動きベクトル検出回路１２３の検出結果を用いて動きベクトルの検出を行うよう指示を出す。
【００５１】
ステップＳ３１５において、制御回路１０９は、第１および第２階層の画像データから動きベクトルを求めても誤検出となる可能性は低いが、第３階層の画像データから動きベクトルを求めると誤検出となる可能性が高いと判定する。よって、制御回路１０９は、第３の階層の画像データを用いずに、第１および第２階層の画像データを利用して動きベクトルの検出を行うことを決定する。すなわち、制御回路１０９は、動きベクトル検出回路１２１および１２２には動きベクトルを検出するよう指示は出さないが、動きベクトル検出回路１２３および１２４に対して動きベクトルを検出するよう指示を出す。また、制御回路１０９は、動きベクトル検出回路１２４は動きベクトル検出回路１２３の検出結果を用いて動きベクトルの検出を行うよう指示を出す。
【００５２】
ステップＳ３１６において、制御回路１０９は、第１階層の画像データから動きベクトルを求めても誤検出となる可能性は低いが、第２階層の画像データから動きベクトルを求めると誤検出となる可能性が高いと判定する。よって、制御回路１０９は、第２階層の画像データを用いずに、第１階層の画像データを利用して動きベクトルの検出を行うことを決定する。すなわち、制御回路１０９は、動きベクトル検出回路１２１乃至１２３には動きベクトルを検出するよう指示は出さないが、動きベクトル検出回路１２４に対して動きベクトルを検出するよう指示を出す。
【００５３】
本実施形他の画像処理装置は、このような階層決定処理によって、どの階層の画像データまで動きベクトル検出に利用可能か判断する。なお、ここでは、第４階層の画像データまで用いる例をあげて説明を行ったが、これに限定されるものではない。階層数を増やすほど、広範囲にわたって少ない演算量で動きベクトルを検出することができるため、動きベクトルが大きくなることが予め予想される場合には、階層を増やすようにしてもよい。
【００５４】
また、上述した第１乃至第４の閾値は全ての同一の値でも構わないが、一般的には画像データを縮小するほどこの評価値は低くなりやすいので、第１の閾値から第４の閾値にむかうほど小さな値としてもよい。そして、第１の閾値から第４の閾値は、それぞれに好適な値を実験的に求めることが望ましい。
【００５５】
さらに、ある階層のデータの評価値が閾値以上であるかを判定し、閾値以上であれば次の階層の画像データを生成する構成を例にあげて説明を行ったが、先に全ての階層の画像データを生成してから、各階層の画像データの評価値を求めるように構成してもよい。
【００５６】
次に、動きベクトル検出処理について説明を行う。本実施形態では、第１階層の画像データ９０１のベースブロック９０３が１６×１６画素で設定され、第１階層の画像データ９０２の検出範囲９０５が３２×３２画素で構成されているものとする。
【００５７】
まずは、図３に示す階層決定処理において、制御回路１０９が全階層の画像データを用いると決定した（Ｓ３１０）場合について説明する。動きベクトル検出回路１２１は、メモリ１０７に記憶されたベースブロック９０３の第４階層の画像データを読み出す。また、動きベクトル検出回路１２１は、メモリ１１７に記憶された第４階層の画像データのうち、検出範囲９０５に対応する領域の画像データを読み出す。
【００５８】
図５は、第４階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。図５に示すように、ベースブロック９０３の第４階層の画像データ５０１は２×２画素で構成され、第４階層の検出範囲９０５に対応する画像データ５０２は４×４画素で構成される。ターゲットブロック５１１〜５１９は、画像データ５０２内で１画素ずつずらした位置に設定される。なお、本実施形態では、検出範囲９０５の中央に射影ブロック９０４が位置するため、ターゲットブロック５１５の画像データの位置が、射影ブロック９０４の位置と一致する。
【００５９】
動きベクトル検出回路１２１は、ターゲットブロック５１１〜５１９のそれぞれの画像データにおいて、画像データ５０１との画像の信号レベルの差分の絶対値の総和であるＳＡＤを求める。この場合は、９個のＳＡＤが求まる。動きベクトル検出回路１２１は、ターゲットブロック５１１〜５１９の画像データから、画像データ５０１との相関が最も高い、すなわちＳＡＤが最も小さくなる画像データを選択する。この選択された画像データの位置と射影ブロック９０４との位置（図５のターゲットブロック５１５の位置）とのずれが動きベクトルとなる。例えば、ターゲットブロック５１１の画像データのＳＡＤが最も小さいのであれば、動きベクトル検出回路１２１は、動きベクトルの検出結果として中心にあるターゲットブロック５１５から左に１画素、上に１画素ずらしたことを示す（−１，−１）を出力する。
【００６０】
続いて、動きベクトル検出回路１２２は、動きベクトル検出回路１２１より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２２は、メモリ１０５に記憶されたベースブロック９０３の第３階層の画像データを読み出す。また、動きベクトル検出回路１２２は、メモリ１１５に記憶された第３階層の画像データのうち、動きベクトル検出回路１２１における検出結果に応じた領域の画像データを読み出す。
【００６１】
図６は、第３階層の画像データにおける新たな検出範囲の設定の仕方を説明するための図である。動きベクトル検出回路１２２は、図５のターゲットブロック５１７の位置を示す検出結果（−１，−１）に応じて、第３階層の画像データにおける新たな検出範囲を設定する。画像データ６０１はメモリ１１５に記憶された第３階層の画像データであり、その中央にあるブロック６０２の位置が射影ブロック９０４の位置と一致する。第３階層の画像データ９０２の画素数は、第４階層の画像データ９０２の画素数よりも縦横ともに２倍であるため、ブロック６０２から（−２，−２）だけ移動させたブロック６０３の位置が、図５のターゲットブロック５１１の位置と一致する。動きベクトル検出回路１２２は、このブロック６０３の位置を中心として、縦横ともに１画素ずつ拡大した領域を新たな検出範囲６０４として設定する。この検出範囲６０４よりも外側の領域は、第４階層における動きベクトルの検出結果より、動きベクトルを求める対象から排除することができる。
【００６２】
図７は、第３階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。ベースブロック９０３の第３階層の画像データ７０１は４×４画素で構成され、新たに設定した第３階層の検出範囲の画像データ７０２は６×６画素で構成される。この図７の画像データ７０２は、図６の検出範囲６０４における画像データと同じものである。
【００６３】
ターゲットブロック７１１乃至７１９は、画像データ７０２内で１画素ずつずらした位置に設定される。なお、ターゲットブロック７１５の位置が、図６のブロック６０３の位置と一致する。動きベクトル検出回路１２２は、ターゲットブロック７１１乃至７１９のそれぞれの画像データにおいて、画像データ７０１との画像の信号レベルの差分の絶対値の総和であるＳＡＤを求める。この場合は、９個のＳＡＤが求まる。動きベクトル検出回路１２２は、画像データ７０１との相関が最も高い、すなわちＳＡＤが最も小さくなるターゲットブロックを選択する。この選択されたターゲットブロックの位置と射影ブロック９０４との位置（図６のブロック６０２の位置）とのずれが動きベクトルとなる。例えば、ターゲットブロック７１６の画像データのＳＡＤが最も小さいのであれば、動きベクトル検出回路１２１は、動きベクトルの検出結果として、ブロック６０２の位置から左に１画素、上に２画素移動させたことを示す（−１，−２）を出力する。
【００６４】
動きベクトル検出回路１２３は、動きベクトル検出回路１２２より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２３は、メモリ１０３に記憶されたベースブロック９０３の第２階層の画像データを読み出す。また、動きベクトル検出回路１２３は、メモリ１１３に記憶された第２階層の画像データのうち、動きベクトル検出回路１２２における検出結果に応じた領域の画像データを読み出す。そして、動きベクトル検出回路１２３は、第２階層の画像データを用いて、第３階層の画像データに対する動きベクトル検出回路１２２と同様の処理を行って、第２階層の画像データにおける動きベクトルを検出する。
【００６５】
同様に、動きベクトル検出回路１２４は、動きベクトル検出回路１２３より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２４は、メモリ１０１に記憶されたベースブロック９０３の第１階層の画像データを読み出す。また、動きベクトル検出回路１２４は、メモリ１１１に記憶された第１階層の画像データのうち、動きベクトル検出回路１２３における検出結果に応じた領域の画像データを読み出す。そして、動きベクトル検出回路１２４は、第１階層の画像データを用いて、第２階層の画像データに対する動きベクトル検出回路１２２と同様の処理を行って、第１階層の画像データにおける動きベクトルを検出する。そして、この動きベクトル検出回路１２４から出力された検出結果が、このベースブロック９０３の最終的な動きベクトルとなる。
【００６６】
したがって、ＳＡＤの演算量は、動きベクトル検出回路１２１乃至１２４でそれぞれ９回となるため、合計３６回で済むことになる。このように、本実施形態の画像処理装置は、第ｎ階層の画像データで求めた動きベクトルを２倍することにより得られる位置を中心として第ｎ−１階層での相関の検出範囲を求め、この検出範囲内で第ｎ−１階層の動きベクトルを検出する。ここで、ｎは２以上の自然数である。画像データを生成する階層を増やした場合には、この処理を繰り返す回数を増やせばよい。また、第ｎ−１階層の画像データを縦横ともに１／ｍ倍にして第ｎ階層の画像データを生成するのであれば、第ｎ階層の画像データから求めた動きベクトルをｍ倍することで、第ｎ−１階層の画像データの射影ブロックの中心位置を求めることができる。
【００６７】
次に、図３に示す階層決定処理において、制御回路１０９が第１乃至第３階層の画像データを用いると決定した（Ｓ３１４）場合について説明する。動きベクトル検出回路１２２は、メモリ１０５に記憶されたベースブロック９０３の第３階層の画像データを読み出す。また、動きベクトル検出回路１２２は、メモリ１１５に記憶された第３階層の画像データのうち、検出範囲９０５に対応する領域の画像データを読み出す。この場合、第４階層の画像データを用いて動きベクトルを検出することは行われないので、動きベクトル検出回路１２２は、動きベクトル検出回路１２１より動きベクトルの検出結果を受け取ることはない。
【００６８】
そのため、動きベクトル検出回路１２２は、検出範囲９０５の第３階層の画像データは８×８画素であるため、動きベクトル検出回路１２２はこの８×８画素を検出範囲として動きベクトルを検出する。ベースブロック９０３の第３階層の画像データが４×４画素であるため、ここでは２５個のＳＡＤを求めることになる。動きベクトル検出回路１２２は、ＳＡＤが最も小さくなるターゲットブロックの位置を求め、射影ブロック９０４との位置のずれを動きベクトルとして出力する。
【００６９】
続いて、動きベクトル検出回路１２３は、動きベクトル検出回路１２２より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２３は、メモリ１０３に記憶されたベースブロック９０３の第２階層の画像データを読み出す。また、動きベクトル検出回路１２３は、メモリ１１３に記憶された第２階層の画像データのうち、動きベクトル検出回路１２２における検出結果に応じた領域の画像データを読み出す。以降は上述したものと同様の方法で、動きベクトル検出回路１２３が第２階層における動きベクトルを検出する。
【００７０】
続いて、動きベクトル検出回路１２４は、動きベクトル検出回路１２３より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２４は、メモリ１０１に記憶されたベースブロック９０３の第１階層の画像データを読み出す。また、動きベクトル検出回路１２４は、メモリ１１１に記憶された第１階層の画像データのうち、動きベクトル検出回路１２３における検出結果に応じた領域の画像データを読み出す。以降は上述したものと同様の方法で、動きベクトル検出回路１２４が第１階層における動きベクトルを検出する。
【００７１】
次に、図３に示す階層決定処理において、制御回路１０９が第１および第２階層の画像データを用いると決定した（Ｓ３１５）場合について説明する。動きベクトル検出回路１２３は、メモリ１０３に記憶されたベースブロック９０３の第２階層の画像データを読み出す。また、動きベクトル検出回路１２３は、メモリ１１３に記憶された第２階層の画像データのうち、検出範囲９０５に対応する領域の画像データを読み出す。この場合、第３階層の画像データを用いて動きベクトルを検出することは行われないので、動きベクトル検出回路１２３は、動きベクトル検出回路１２２より動きベクトルの検出結果を受け取ることはない。
【００７２】
そのため、動きベクトル検出回路１２３は、検出範囲９０５の第２階層の画像データは１６×１６画素であるため、動きベクトル検出回路１２２はこの１６×１６画素を検出範囲として動きベクトルを検出する。ベースブロック９０３の第２階層の画像データが８×８画素であるため、ここでは８１個のＳＡＤを求めることになる。動きベクトル検出回路１２３は、ＳＡＤが最も小さくなるターゲットブロックの位置を求め、射影ブロック９０４との位置のずれを動きベクトルとして出力する。
【００７３】
続いて、動きベクトル検出回路１２４は、動きベクトル検出回路１２３より動きベクトルの検出結果を受け取る。動きベクトル検出回路１２４は、メモリ１０１に記憶されたベースブロック９０３の第１階層の画像データを読み出す。また、動きベクトル検出回路１２４は、メモリ１１１に記憶された第１階層の画像データのうち、動きベクトル検出回路１２３における検出結果に応じ多領域の画像データを読み出す。以降の処理は上述した通りである。
【００７４】
図３に示す階層決定処理において、制御回路１０９が第１階層の画像データのみを用いると決定した（Ｓ３１６）場合には、制御回路１０９は縮小回路１１２乃至１１６に処理をさせず、動きベクトル検出回路１２４のみに動きベクトルを検出するよう指示を出す。動きベクトル検出回路１２４は、メモリ１０１に記憶されたベースブロック９０３の第１階層の画像データを読み出す。また、動きベクトル検出回路１２４は、メモリ１１１に記憶された第１階層の画像データのうち、検出範囲９０５に対応する領域の画像データを読み出す。この場合、第２階層の画像データを用いて動きベクトルを検出することは行われないので、動きベクトル検出回路１２４は、動きベクトル検出回路１２３より動きベクトルの検出結果を受け取ることはない。
【００７５】
そのため、動きベクトル検出回路１２４は、検出範囲９０５の第１階層の画像データが３２×３２画素であるため、動きベクトル検出回路１２３はこの３２×３２画素を検出範囲として動きベクトルを検出する。ベースブロック９０３の第１階層の画像データが１６×１６画素であるため、ここでは２８９個のＳＡＤを求めることになる。動きベクトル検出回路１２４は、ＳＡＤが最も小さくなるターゲットブロックの位置を求め、射影ブロック９０４との位置のずれを、ベースブロック９０３の最終的な動きベクトルとして出力する。
【００７６】
そして、制御回路１０９は、画像データ９０１のいずれかのベースブロック９０３における動きベクトルを検出できたのであれば、別のベースブロック９０３における動きベクトルの検出へと進む。あるいは、主被写体領域のように、画像データ９０１の一部の領域のみをベースブロック９０３として、この一部の領域における動きベクトルのみを検出するようにしてもよい。
【００７７】
このように、本実施形態の画像処理装置によれば、画像データ間の相関を演算する際に、演算量を減らすために段階的に縮小した複数の階層の画像データを用いている。しかしながら、画像データを縮小することによって相関を誤判定する可能性が増加するため、その可能性の大きさを評価する評価値を算出し、この評価値に応じて動きベクトルの検出に用いる画像データの階層を決定している。したがって、本実施形態の画像処理装置によれば、動きベクトルの誤検出を抑えつつ、動きベクトルの検出における演算負荷を減少させることが可能となる。
【００７８】
（第２の実施形態）
上記実施形態の構成では、第ｎ階層の画像データから動きベクトルの検出を行える場合と、第ｎ−１階層の画像データからしか動きベクトルの検出を行えない場合とで、ＳＡＤの演算量に大きな違いが生じていた。
【００７９】
そこで、第２の実施形態では、第ｎ階層の画像データから動きベクトルの検出を行えない場合であっても、第ｎ−１階層の画像データにおける動きベクトルの検出のための演算量を抑えることが可能な構成について説明する。
【００８０】
ここでは、図３に示す階層決定処理において、制御回路１０９が第１乃至第３階層の画像データを用いると決定した（Ｓ３１４）場合を例にあげて説明する。動きベクトル検出回路１２２は、メモリ１０５に記憶されたベースブロック９０３の第３階層の画像データを読み出す。また、動きベクトル検出回路１２２は、メモリ１１５に記憶された第３階層の画像データのうち、検出範囲９０５に対応する領域の画像データを読み出す。ベースブロック９０３の第３階層の画像データが４×４画素であり、検出範囲９０５の第３階層の画像データは８×８画素である。第１の実施形態では、動きベクトル検出回路１２２は検出範囲９０５の中で１つずつ位置をずらしてターゲットブロックを設定していたため、２５個のターゲットブロックが設定されていた。
【００８１】
これに対し、本実施形態では、動きベクトル検出回路１２２は検出範囲９０５の中で２つずつ位置をずらしてターゲットブロックを設定する。図８は、第３階層の画像データにおけるターゲットブロックの設定の仕方を説明するための図である。図８に示すように、ベースブロック９０３の第３階層の画像データ８０１は４×４画素で構成され、第３階層の検出範囲９０５に対応する画像データ８０２は８×８画素で構成される。ターゲットブロック８１１〜８１９は、画像データ８０２内で２画素ずつずらした位置に設定される。ターゲットブロック８１５の画像データの位置が、射影ブロック９０４の位置と一致する。
【００８２】
動きベクトル検出回路１２２は、これら９個のターゲットブロック８１１〜８１９の中から最もＳＡＤが小さくなるターゲットブロックを選択する。そして、動きベクトル検出回路１２２は、選択したターゲットブロックを中心として、図７と同様に上下左右に１画素ずつずらすための６×６画素の検索範囲を新たに設定し、９個のターゲットブロックを設定する。そして、動きベクトル検出回路１２２は、この中から最もＳＡＤが小さくなるターゲットブロックのターゲットブロック８１５に対するずれを、第３階層における動きベクトルの検出結果として出力する。
【００８３】
このように、ターゲットブロックのずらす量を変えて段階的にＳＡＤを求めることで、１８個のＳＡＤで動きベクトルを検出することができるようになる。ここでは第３階層の画像データを例にあげて説明を行ったが、第２階層や第１階層でも同様の処理を適用することが可能である。また、ここではターゲットブロックの設定を２段階にわけて動きベクトルを求める例をあげて説明を行ったが、これに限られるものではない。ターゲットブロックのずらす量を４画素、２画素、１画素と３段階に設定したり、８画素、４画素、２画素、１画素と４段階に設定したりしても構わない。必要とされるＳＡＤの演算量に応じて、適宜この段数を設定すればよい。
【００８４】
このように、本実施形態の画像処理装置によれば、より画素数の低い階層の画像データを生成しない場合であっても、動きベクトルの誤検出を抑えつつ、動きベクトルの検出における演算負荷を減少させることが可能となる。
【００８５】
なお、上記の各実施形態によれば、評価回路１０８はベースブロック９０３の画像データを用いて、ベースブロック９０３ごとに評価値を求めることができる構成となっていたが、これに限られるものではない。ベースブロック９０３を縮小するための縮小回路１０２乃至１０６とは別の縮小回路を設け、画像データ９０１全体を対象として各階層の画像データを生成するようにしてもよい。この場合、画像データ９０１全体を対象とした各階層の画像データから評価値を求め、この画像データ９０１全体を対象とした評価値から、全てのベースブロック９０３においてどの階層の画像データから動きベクトルを検出するかを決定すればよい。あるいは、例えばウェーブレット変換によって画像データ９０１を周波数帯域の異なる複数の階層の画像データに分離し、これらの階層の画像データから評価値を求めるようにしてもよい。
【００８６】
さらには、評価回路１０８は、画像データ９０１の代わりに、画像データ９０１との相関を求めるための画像データ９０２を用いて、評価値を求めるようにしてもよい。画像データ９０１と画像データ９０２が、動画像中で連続するフレームの画像データであるならば、どちらも用いて評価値を求めたとしても、さほど違いは生じない可能性が高いためである。
【００８７】
あるいは、画像データ９０１と画像データ９０２の両方から評価値を求め、ともに評価値が閾値以上である場合に、その階層の画像データを用いて動きベクトルを検出するように構成してもよい。
【００８８】
また、評価回路１０８による評価値に関わらず、画素数が所定値以下となる階層の画像データからは動きベクトルを検出しないように構成してもよい。つまり、ユーザーが設定した第１階層の画像データの画素数に応じて、自動的にどの階層の画像データまでを生成可能であるかを決定する構成としてもよい。
【００８９】
さらに、上述した画像処理装置は、動画像を撮影することができるカメラ内部に搭載してもよい。カメラ内部で上記処理を生成した動画像に対してリアルタイムで実行することで、防振処理を効果的に行うことができるようになる。あるいは、プロバイダサーバが上記の画像処理装置を有し、インターネット回線を通して、ユーザ端末から通信されてきた動画像や連射画像に対して、動きベクトルを検出するように構成してもよい。
【００９０】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するプログラムコードを含むソフトウェア（プログラム）を、ネットワーク又は各種の不揮発性の記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９１】
１０１、１０３、１０５、１０７、１１１、１１３、１１５、１１７  メモリ
１０２、１０４、１０６、１１２、１１４、１１６  縮小回路
１０８  評価回路
１０９  制御回路
１２１、１２２、１２３、１２４  動きベクトル検出回路
４０１  ハイパスフィルタ回路
４０２  絶対値回路
４０３  積分回路
１００１  演算回路
【図１】
0005683153.tif 000003
【図２】
0005683153.tif 000004
【図３】
0005683153.tif 000005
【図４】
0005683153.tif 000006
【図５】
0005683153.tif 000007
【図６】
0005683153.tif 000008
【図７】
0005683153.tif 000009
【図８】
0005683153.tif 000010
【図９】
0005683153.tif 000011
【図１０】
0005683153.tif 000012