(57)【特許請求の範囲】
【請求項１】
２つのフレーム画像を、それぞれ複数の分割領域に分割する分割手段と、
前記２つのフレーム画像のうちの一方のフレーム画像の各分割領域の代表点を決定する決定手段と、
前記代表点に基づいて、前記２つのフレーム画像間の動きを検出するための画像領域を、前記２つのフレーム画像それぞれに対して設定する設定手段と、
前記設定された画像領域における前記２つのフレーム画像の画像信号の相関値に基づいて、前記２つのフレーム画像間の動きを検出する検出手段と、を有し、
前記決定手段は、前記各分割領域の前記一方のフレーム画像における位置に応じて、各分割領域の特徴点、または、予め決められた固定点を、前記各分割領域の代表点として決定することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記分割領域が前記フレーム画像の下端にある場合に、前記固定点を前記代表点として決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記分割領域が前記フレーム画像の上端にある場合に、前記固定点を前記代表点として決定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記決定手段は、前記分割領域が前記フレーム画像の端にある場合に、前記固定点を前記代表点として決定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記固定点は、前記分割領域が前記フレーム画像の上端にある場合に、前記画像領域が前記分割領域を上方向にはみ出さない位置であることを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記固定点は、前記分割領域が前記フレーム画像の下端にある場合に、前記画像領域が前記分割領域を下方向にはみ出さない位置であることを特徴とする請求項２または４に記載の画像処理装置。
【請求項７】
前記固定点は、前記分割領域が前記フレーム画像の左端にある場合に、前記画像領域が前記分割領域を左方向にはみ出さない位置であることを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記固定点は、前記分割領域が前記フレーム画像の右端にある場合に、前記画像領域が前記分割領域を右方向にはみ出さない位置であることを特徴とする請求項４に記載の画像処理装置。
【請求項９】
前記固定点は、前記画像領域が各分割領域内に収まる位置であることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項１０】
前記固定点は、前記分割領域の中心点であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
２つのフレーム画像を、それぞれ複数の分割領域に分割する分割手段と、
前記２つのフレーム画像のうちの一方のフレーム画像の各分割領域の代表点を決定する決定手段と、
前記代表点に基づいて、前記２つのフレーム画像間の動きを検出するための画像領域を、前記２つのフレーム画像それぞれに対して設定する設定手段と、
前記設定された画像領域における前記２つのフレーム画像の画像信号の相関値に基づいて、前記２つのフレーム画像間の動きを検出する検出手段と、を有し、
前記決定手段は、前記検出手段の検出処理性能に応じて、各分割領域の特徴点、または、予め決められた固定点を、前記各分割領域の代表点として決定することを特徴とする画像処理装置。
【請求項１２】
前記検出手段の検出処理性能とは、相関値の検出処理速度であることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記特徴点に基づいて設定された前記画像領域が前記分割領域を下方向にはみ出した分割領域の行の数をカウントするカウント手段を更に有し、
前記決定手段は、前記カウントされた行の数が前記検出処理性能に基づいて予め決められた数を超えた場合に、次の行以降の前記分割領域について、前記固定点を前記代表点として決定することを特徴とする請求項１１または１２に記載の画像処理装置。
【請求項１４】
前記設定手段は、前記２つのフレーム画像の他方のフレーム画像の各分割領域に設定された前記画像領域である第１の画像領域を、前記一方のフレーム画像の各分割領域に設定された前記画像領域である第２の画像領域より広く設定し、
前記検出手段は、前記第１の画像領域において、前記第２の画像領域と同じ大きさの画像領域をシフトしながら、当該画像領域の画像信号と、前記第２の画像領域の画像信号との相関値を求めることを特徴とする請求項１乃至１３のいずれか１項に記載の画像処理装置。
【請求項１５】
分割手段が、２つのフレーム画像を、それぞれ複数の分割領域に分割する分割工程と、
決定手段が、前記２つのフレーム画像のうちの一方のフレーム画像の各分割領域の代表点を決定する決定工程と、
設定手段が、前記代表点に基づいて、前記２つのフレーム画像間の動きを検出するための画像領域を、前記２つのフレーム画像それぞれに対して設定する設定工程と、
検出手段が、前記設定された画像領域における前記２つのフレーム画像の画像信号の相関値に基づいて、前記２つのフレーム画像間の動きを検出する検出工程と、を有し、
前記決定工程では、前記各分割領域の前記一方のフレーム画像における位置に応じて、各分割領域の特徴点、または、予め決められた固定点を、前記各分割領域の代表点として決定することを特徴とする画像処理方法。
【請求項１６】
分割手段が、２つのフレーム画像を、それぞれ複数の分割領域に分割する分割工程と、
決定手段が、前記２つのフレーム画像のうちの一方のフレーム画像の各分割領域の代表点を決定する決定工程と、
設定手段が、前記代表点に基づいて、前記２つのフレーム画像間の動きを検出するための画像領域を、前記２つのフレーム画像それぞれに対して設定する設定工程と、
検出手段が、前記設定された画像領域における前記２つのフレーム画像の画像信号の相関値に基づいて、前記２つのフレーム画像間の動きを検出する検出工程と、を有し、
前記決定工程では、前記検出手段の検出処理性能に応じて、各分割領域の特徴点、または、予め決められた固定点を、前記各分割領域の代表点として決定することを特徴とする画像処理方法。
【請求項１７】
コンピュータを、請求項１乃至１４のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法に関し、更に詳しくは、動きベクトルを検出する画像処理装置および方法に関する。
【背景技術】
【０００２】
従来より、デジタルスチルカメラやデジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して手ぶれ補正を施す方法として、フレーム画像間の動き量を検出し、検出した動き量に応じて、画像をシフトして位置合わせすることが行われている。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器の情報を用いる方法や、撮影された複数のフレーム画像から動き量を推定する方法等がある。
【０００３】
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングによる動きベクトル検出がある。テンプレートマッチングでは、まず、映像中のある２枚のフレーム画像の一方を原画像、もう一方を参照画像とし、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとする。そして、参照画像においてテンプレートブロックをシフトしながら、各位置において、テンプレートブロック内の原画像の画素値と、テンプレートブロック内の参照画像の画素値との相関を求める。このとき、参照画像中で最も相関が高くなる位置がテンプレートブロックの移動先であり、原画像上でのテンプレートブロックの位置を基準とした時の移動先への向きと移動量が動きベクトルとなる。
【０００４】
動きベクトルの検出率を向上させるため、特徴点を抽出し、抽出した特徴点にテンプレートブロックを配置し、フレーム画像間でテンプレートマッチングを行う技術がある。しかしながら、画像全体で特徴点抽出を行うと、特徴点の分布は不均一になることが多く、不均一な特徴点に対して得られた動きベクトルを手ぶれ補正の用途で使用する場合、特徴の集中した領域が主となる手ぶれ補正となってしまう。手ぶれ補正は、手振れにより画像全体が同じ方向に同じ量だけ移動した移動量を補正することを目的とするが、特徴の集中した領域の被写体自体が動いている場合には、その動きも含めて補正してしまい、適切な手振れ補正を行うことができない。
【０００５】
そこで、特徴点を画像内で均一に分布させるため、画像をグリッド状に分割して、特徴の大きさを表す特徴値を画素ごとに計算し、各グリッド内で特徴値が最も大きい画素を特徴点として抽出する技術が特許文献１に開示されている。図１３は、特許文献１に基づいて、各グリッド内で特徴点を求め、その特徴点にテンプレートブロックを配置して、テンプレートマッチングを行う場合を説明するための図である。
【０００６】
図１３において、１３０１は画像、１３０２はグリッド、１３０３はグリッド内の特徴点、１３０４はテンプレート、１３０５はテンプレートに対するサーチ範囲を示す。ここでは、２つの特徴点を例として示しているため、図１３において、一方の特徴点に関連する要素には参照番号に「−１」を、もう一方の特徴点に関連する要素には「−２」を付加している。例えば、グリッド１３０２−１においては、特徴点１３０３−１を重心としたテンプレート１３０４−１に基づいて、テンプレートマッチングが行われる。
【０００７】
ビデオカメラなどの動画の防振処理で使用される動きベクトル検出回路においては、リアルタイム性が要求される。そのため、例えば、グリッド１３０２−１における、テンプレートマッチング用画像生成、ならびに特徴点の算出処理が完了した直後に、グリッド１３０２−１のテンプレートマッチング処理を開始できるように回路を制御する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１９２０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、画像１３０１の下端にあるグリッド１３０２−２で示すように、特徴点１３０３−２がグリッド１３０２−２の下部にある場合、テンプレート１３０４−２と、サーチ範囲１３０５−２が、グリッド１３０２−２の下にはみ出す場合がある。その場合、テンプレートマッチングを行うには、下端グリッド１３０２−２より下の領域１３０６の画素値が更に必要となる。従って、グリッド１３０２−２のテンプレートマッチング用画像生成、ならびに特徴点１３０３−２の算出処理が完了した直後にテンプレートマッチング処理を開始することができない。少なくとも、グリッド１３０２−２外の領域１３０６に対するテンプレートマッチング用画像生成が完了するまで、マッチング処理の開始が遅れてしまう。
【００１０】
また、テンプレート画像やサーチ範囲がグリッド外にはみ出る場合を考慮して、予め、グリッド外領域の画素値を準備しておく必要があるため、メモリに書き込むデータ量が増えてしまう。
【００１１】
本発明は上記問題点を鑑みてなされたものであり、グリッド分割による動きベクトル検出処理の高速化、並びにデータ読み出し量の削減を図ることを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、２つのフレーム画像を、それぞれ複数の分割領域に分割する分割手段と、前記２つのフレーム画像のうちの一方のフレーム画像の各分割領域の代表点を決定する決定手段と、前記代表点に基づいて、前記２つのフレーム画像間の動きを検出するための画像領域を、前記２つのフレーム画像それぞれに対して設定する設定手段と、前記設定された画像領域における前記２つのフレーム画像の画像信号の相関値に基づいて、前記２つのフレーム画像間の動きを検出する検出手段と、を有し、前記決定手段は、前記各分割領域の前記一方のフレーム画像における位置に応じて、各分割領域の特徴点、または、予め決められた固定点を、前記各分割領域の代表点として決定する。
【発明の効果】
【００１３】
グリッド分割による動きベクトル検出処理の高速化、並びにデータ読み出し量の削減を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態における動きベクトル検出回路の構成を示すブロック図。
【図２】第１の実施形態における画像の分割例を示す図。
【図３】第１の実施形態における分割された画像の処理順序を示す図。
【図４】第１の実施形態における特徴点算出部の構成を示すブロック図。
【図５】第１の実施形態における下端以外のグリッドにおける、ベクトル検出用画像の読み出し位置を説明するための図。
【図６】第１の実施形態における下端以外のグリッドにおける、ベクトル検出処理タイミングを説明するための図。
【図７】第１の実施形態における下端グリッドにおける、ベクトル検出用画像の読み出し位置を説明するための図。
【図８】第１の実施形態における下端グリッドにおける、ベクトル検出処理タイミングを説明するための図。
【図９】第２の実施形態における画像の分割例を示す図。
【図１０】第３の実施形態におけるメモリアドレス生成部の構成を示すブロック図。
【図１１】第３の実施形態における動きベクトル検出処理の概念図。
【図１２】第３の実施形態における動きベクトル検出処理のフローチャート。
【図１３】従来のグリッド分割による、特徴点を利用したテンプレートマッチング処理を説明するための図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して本発明を実施するための形態を詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態における画像処理装置で用いられる動きベクトル検出回路の構成を示すブロック図である。グリッド分割部１０１は、画像を複数領域に分割する。ベクトル検出画像生成部１０２は、ベクトル検出用の画像を生成し、メモリ１０４に格納する。特徴点算出部１０３は、画像信号より特徴点を算出する。メモリアドレス生成部１０６は、特徴点の検出結果に応じて、メモリ１０４に格納されたベクトル検出用の画像からのテンプレート画像とサーチ画像（画像領域）の読み出し位置を変更する。マッチング処理部１０５は、メモリ１０４から読み出した、テンプレート画像とサーチ画像に対して、テンプレートマッチングを行う。
【００１７】
次に、上記構成を有する動きベクトル検出回路による、第１の実施形態における動きベクトル検出処理の流れを示す。
【００１８】
まず、ベクトル検出の対象となる連続する２つのフレーム画像の画像信号は、グリッド分割部１０１に順次入力される。本実施形態におけるベクトル検出処理は、画像を複数の領域（以下、「グリッド」と呼ぶ。）に分割し、各グリッド（分割領域）でベクトル値を算出する。
【００１９】
図２は、画像をグリッドに分割した一例を示す図であり、画像２０１を、水平方向に６分割、垂直方向に４分割した、計２４のグリッド２０２に分割している。以降の処理では、まず、各グリッド２０２おいて特徴点２０３を求める。そして、求めた特徴点２０３に応じて、連続する２つのフレーム画像の一方のフレーム画像に対してテンプレート画像２０４を設定し、他方のフレーム画像に対してサーチ画像２０５を設定して、テンプレートマッチングを行うこととなる。なお、以下の説明においてグリッド２０２および各グリッド２０２に関連する要素を特定する場合には、左上のグリッド２０２から右下のグリッド２０２まで、左から右、上から下に向かって昇順となるように、「−１」から「−２４」を参照番号に付加する。
【００２０】
図２に示すように分割されたグリッドにおいて、特徴点２０３−２はグリッド２０２−２の端近くで検出されており、その結果、テンプレート画像２０４−２と、サーチ画像２０５−２が、グリッド２０２−２をはみ出してしまっている。このように、画像の上下左右の端部にあるグリッド２０２でベクトル値を算出するためには、グリッド２０２の外の領域（以下、「グリッド外領域」と呼ぶ。）を準備する必要がある。
【００２１】
また、グリッド分割部１０１は、図３で示すように、後段のベクトル検出画像生成部１０２と、特徴点算出部１０３に対し、画像２０１の画像信号を、前述したグリッド外領域２０６を含めた分割領域単位で出力する。
【００２２】
まず、左上端のグリッド外領域２０６−１の画像信号を読み出したら、次に、その右隣のグリッド外領域２０６−２を読み出し、そのまま水平方向のグリッド外領域２０６−３を読み出す。上端のグリッド外領域２０６−１〜８の画像信号を全て読み出し終えると、グリッド２０２−１に対する左端のグリッド外領域２０６−９を読み出し、その後に、グリッド２０２−１を読み出す。グリッド２０２−１を読み出し終えると、グリッド２０２−２、グリッド２０２−３という順で、水平方向のグリッド２０２−１〜６を読み出していく。
【００２３】
なお、後段のベクトル検出画像生成部１０２は、グリッド外領域２０６を入力する必要があるが、特徴点算出部１０３は、グリッド２０２のみが処理対象となるため、グリッド外領域２０６の入力は不要である。例えば、グリッド外領域２０６がベクトル検出画像生成部１０２に入力されている間は、特徴点算出部１０３は、供給するクロックを停止するなどして、消費電力を抑える構成としても良い。
【００２４】
また、画像２０１の画像信号がラスタスキャンでグリッド分割部１０１に入力される場合は、グリッド分割部１０１において、既知の手法による、ラスタブロック変換処理を行う必要がある。
【００２５】
次に、各グリッドの画像信号は、ベクトル検出画像生成部１０２にて、ベクトル検出画像に変換され、メモリ１０４に書き込まれる。ベクトル検出画像生成部１０２は、例えば、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分をカットすることを目的とする。
【００２６】
また、ベクトル検出画像が生成されるのと並行して、特徴点算出部１０３において、各グリッドの特徴点を算出する。図４は、特徴点算出部１０３の構成を示したブロック図であり、特徴点算出部１０３は、特徴フィルタ部４０１、特徴評価部４０２、特徴点決定部４０３からなる。
【００２７】
特徴フィルタ部４０１は、例えば、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。例えば、バンドパスフィルタで不要な画像信号の高周波成分と低周波成分をカットし、水平方向の微分フィルタ処理を施した信号と、垂直方向の微分フィルタ処理を施した信号の其々に対して、平滑化フィルタ処理を施したものを出力する。
【００２８】
特徴評価部４０２は、特徴フィルタ部４０１によりフィルタ処理されたグリッドに対し、画素ごとに２つのエッジの交点や曲率が極大である曲線上の点など、画素の周辺の微分値が多方向に大きい点を特徴評価式により特徴値として算出する。第１の実施形態では、例えば、Ｓｈｉ ａｎｄ Ｔｏｍａｓｉの手法により特徴値を算出する場合について説明をする。
【００２９】
まず、水平微分フィルタと垂直微分フィルタを施した結果から、自己相関行列Ｈを作成する。自己相関行列Ｈの式を式（１）に示す。
【００３０】
0006602141.tif 000002
【００３１】
式（１）は、Ixを水平微分フィルタを施した結果、Iyを垂直微分フィルタを施した結果を表しており、ガウシアンフィルタＧを畳み込む。Ｓｈｉ ａｎｄ Ｔｏｍａｓｉの特徴評価式を式（２）に示す。
Shi and Tomasi = min(λ1, λ2)      …（２）
式（２）は、式（１）の自己相関行列Ｈの固有値λ1, λ2のうち、小さい方の固有値を特徴値とすることを示す。
特徴点決定部４０３は、グリッド毎に、特徴評価部４０２によって画素ごとに算出された特徴値のうち、最も大きい値を持つ画素を特徴点と決定する。本実施形態においては、特徴点の座標は、グリッドの左上端を（０，０）とした、相対座標（ＰＸ，ＰＹ）で表現するが、画像信号における絶対座標で表現してもよい。
【００３２】
なお、算出された特徴点は、特徴点決定部４０３内で、グリッド毎にメモリやレジスタに記憶される。そして、マッチング処理部１０５にて、対応するグリッドのテンプレートマッチング処理が開始されるときに、メモリアドレス生成部１０６に特徴点情報がセットされる。
【００３３】
メモリ１０４には、現時点のベクトル検出画像と、１フレーム前のベクトル検出画像の、２フレーム分のベクトル検出画像を記憶する。本実施形態においては、現時点のベクトル検出画像をテンプレート画像とし、１フレーム前のベクトル検出画像をサーチ画像として、テンプレートマッチングを行う。
【００３４】
メモリアドレス生成部１０６は、メモリ１０４に記憶された２枚のベクトル検出画像より、所定のグリッドに対して、テンプレートマッチングに必要となるテンプレート画像とサーチ画像の読み出し位置の決定と、メモリアクセスを実施する。
【００３５】
ここで、テンプレート画像とサーチ画像の読み出し位置の決定について説明する。本実施形態においては、（ア）ベクトル検出対象グリッドが下端以外の場合と、（イ）ベクトル検出対象グリッドが下端の場合とで、各々制御が異なる。なお、ベクトル検出対象グリッドが下端か否かの情報は、グリッド分割部１０１より、メモリアドレス生成部１０６へ入力されるグリッド座標情報にて判定する。例えば、グリッド配置が図２に示す配置の場合、上端の垂直グリッド座標を０とすると、下端の垂直グリッド座標は３となる。
【００３６】
（ア）ベクトル検出対象グリッドが下端以外の場合
図５は、グリッド２０２−１におけるテンプレート画像２０４−１の読み出し開始位置と、サーチ画像２０５−１の読み出し開始位置を示したものである。なお、図５において、図２と同じ要素には同じ参照番号を付し、ベクトル検出グリッドの周辺の、テンプレートマッチング処理で用いられる領域を網掛けにより表している。また、（ＧＳＸ，ＧＳＹ）は画像内のグリッド開始座標、（ＰＸ，ＰＹ）はグリッド内における特徴点座標である。また、（ＧＴＸ，ＧＴＹ）はテンプレート画像２０４−１の画像内の読み出し開始座標、（ＧＭＸ，ＧＭＹ）はサーチ画像２０５−１の画像内の読み出し開始座標である。
【００３７】
まず、グリッド内の特徴点座標（ＰＸ，ＰＹ）は、グリッド開始座標を（ＧＳＸ，ＧＳＹ）とした場合に、画像内の絶対座標（ＧＰＸ，ＧＰＹ）としては以下の式（３）で表現できる。
(GPX, GPY) = (GSX + PX, GSY + PY)            …（３）
【００３８】
テンプレート画像２０４−１は、特徴点２０３−１が中心となるように配置される。従って、テンプレート画像２０４−１の読み出し開始位置（ＧＴＸ，ＧＴＹ）は、テンプレート画像２０４−１の水平サイズをＴＸ、垂直サイズをＴＹとした場合、以下の式（４）で表現できる。
(GTX, GTY) = (GPX - (TX/2), GPY - (TY/2))      …（４）
【００３９】
サーチ画像２０５−１は、その中心をテンプレート画像２０４−１の中心に揃えて配置する。従って、読み出し開始位置（ＧＭＸ，ＧＭＹ）は、水平サイズをＳＸ、垂直サイズをＳＹとした場合、以下の式（５）で表現できる。
(GMX, GMY) = (GPX - (SX/2), GPY - (SY/2))      …（５）
【００４０】
メモリアドレス生成部１０６は、メモリ１０４に記憶された、現フレームのベクトル検出画像に対して、座標（ＧＴＸ，ＧＴＹ）から、水平サイズＴＸ、垂直サイズＴＹの矩形領域（テンプレート画像）を読みだすよう、メモリアドレスを発行する。また、同様に、メモリ１０４に記憶された、１フレーム前のベクトル検出画像に対して、座標（ＧＭＸ，ＧＭＹ）から、水平サイズＳＸ、垂直サイズＳＹの矩形領域（サーチ画像）を読み出すよう、メモリアドレスを発行する。
【００４１】
その際に、グリッド２０２−１をテンプレートマッチング処理する場合、特徴点２０３−１の位置（ＰＸ，ＰＹ）によっては、テンプレート画像２０４−１とサーチ画像２０５−１が、グリッド２０２−１をはみ出してしまう。その場合、グリッド外領域２０６−１〜３、９、１１と、グリッド２０２−２、２０２−７、２０２−８との画像信号が必要となる。
【００４２】
図６は、ベクトル検出画像生成処理と、特徴点算出処理と、テンプレートマッチング処理の処理タイミングを説明した図であり、グリッド外領域２０６及びグリッド２０２がどのタイミングで処理されるかを示したものである。本実施形態において、グリッド２０２−１をテンプレートマッチング処理する場合は、グリッド２０２−１と、その周辺のグリッド外領域およびグリッド、即ち、グリッド２０２−８までの画像に対してベクトル検出画像生成処理が完了している必要がある。従って、グリッド２０２−８までのベクトル検出画像生成処理が完了したタイミングで、グリッド２０２−１の処理を開始する。同様に、グリッド２０２−９までのベクトル検出画像生成処理が完了したタイミングで、グリッド２０２−２の処理を開始し、以下同様のタイミングでテンプレートマッチング処理を行う。
【００４３】
（イ）ベクトル検出対象グリッドが下端の場合
図７は、グリッド２０２−１９におけるテンプレート画像２０４−１９の読み出し開始位置と、サーチ画像２０５−１９の読み出し開始位置を示したものである。なお、図７において、（ＤＸ，ＤＹ）はグリッド内におけるテンプレート画像２０４−１９の中心座標である。それ以外の要素は、図５に示したものと同様であるため、ここでは説明を省略する。
【００４４】
下端グリッド２０２においては、グリッド内の特徴点２０３は使用せず、グリッド内の中心座標（ＤＸ，ＤＹ）にテンプレート画像２０４−１９を配置するように制御する。この中心座標（ＤＸ，ＤＹ）を、特徴点座標（ＰＸ，ＰＹ）の代わりに用いる。従って、グリッド開始座標を（ＧＳＸ，ＧＳＹ）、グリッド２０２−１９の水平サイズをＧＸ、垂直サイズをＧＹとした場合に、中心座標（ＤＸ，ＤＹ）の画像内の絶対座標（ＧＰＸ，ＧＰＹ）としては以下の式（６）および（７）で表現することができる。
(DX, DY) = (GX/2, GY/2)      …（６）
(GPX, GPY) = (GSX + DX, GSY + DY)      …（７）
【００４５】
テンプレート画像２０４−１９は、中心座標（ＤＸ，ＤＹ）が中心となるように配置される。従って、テンプレート画像２０４−１９の読み出し開始位置（ＧＴＸ，ＧＴＹ）は、テンプレート画像２０４−１９の水平サイズをＴＸ、垂直サイズをＴＹとした場合、上述した式（４）で表現できる。
【００４６】
サーチ画像２０５−１９は、その中心をテンプレート画像の中心に揃えて配置する。従って、読み出し開始位置（ＧＭＸ，ＧＭＹ）は、水平サイズをＳＸ、垂直サイズをＳＹとした場合、上述した式（５）で表現できる。
【００４７】
メモリアドレス生成部１０６は、（ア）ベクトル検出対象グリッドが下端以外の場合と同様に、メモリ１０４に配置された、現フレームのベクトル検出画像に対して、座標（ＧＴＸ，ＧＴＹ）から、水平サイズＴＸ、垂直サイズＴＹの矩形領域を読みだすよう、メモリアドレスを発行する。また、同様に、メモリ１０４に配置された、１フレーム前のベクトル検出画像に対して、座標（ＧＭＸ，ＧＭＹ）から、水平サイズＳＸ、垂直サイズＳＹの矩形領域を読み出すよう、メモリアドレスを発行する。
【００４８】
図８は、ベクトル検出画像生成処理と、特徴点算出処理と、テンプレートマッチング処理の処理タイミングを説明した図であり、グリッド外領域２０６及びグリッド２０２がどのタイミングで処理されるかを示したものである。
【００４９】
グリッド２０２−１９をテンプレートマッチング処理する場合、テンプレート画像２０４−１９とサーチ画像２０５−１９は、グリッド２０２−１９をはみ出すことがないため、グリッド外領域２０６を必要としない。従って、本実施形態において、グリッド２０２−１９をテンプレートマッチング処理する場合は、図７に示すように、グリッド２０２−１９のベクトル検出画像生成処理が完了していれば、処理を開始することができる。そのため、下端グリッド２０２−１９の処理は、一つ前の行のグリッド２０２−１３〜１８の処理が終わり次第、開始することができる。また、下端グリッド２０２−１９〜２４はグリッド外領域２０６が不要のため、下端グリッド２０２−１９〜２４よりも下の領域の画像信号に対して、ベクトル画像生成処理を施して、メモリ１０４に書き出す必要がない。
【００５０】
なお、第１の実施形態において、下端グリッド２０２−１９〜２４では、グリッド２０２の中心位置にテンプレート画像２０４を配置するものとして説明した。しかしながら、本発明はこれに限られるものではなく、テンプレート画像２０４ならびにサーチ画像２０５が、下端グリッド２０２をはみ出さない（分割領域内に収まる）固定点にテンプレート画像２０４の中心を配置するように制御してもよい。
【００５１】
マッチング処理部１０５は、上述したようにしてメモリ１０４より読み出されたテンプレート画像２０４とサーチ画像２０５とを用いて相関値を算出し、その相関値よりベクトル値を算出する。例えば、相関値の算出方法の一例として差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下「ＳＡＤ」と略す。）を使用する。
【００５２】
0006602141.tif 000003
【００５３】
式（８）において、ｆ（ｉ，ｊ）はテンプレート画像２０４内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）はサーチ画像２０５において相関値算出の対象となる領域内の各画素値を表す。相関値算出対象領域は、テンプレート画像２０４と同じ大きさである。そして、両ブロック内の各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることで、相関値Ｓ＿ＳＡＤを得ることができる。従って、相関値Ｓ＿ＳＡＤの値が小さいほど両ブロック間の輝度値の差分が小さい、つまりテンプレート画像２０４と相関値算出領域内のテクスチャが類似していることを表している。
なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限るものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いても良い。
【００５４】
そして、相関値の最小値の位置（ＭＶＸ，ＭＶＹ）を、各グリッド２０２の動きベクトル値として出力し、得られた各グリッド２０２の動きベクトル値に基づいて、連続する２つのフレーム画像間の動き量を求める。この際に、例えば、各グリッド２０２の動きベクトル値の平均値を動き量として用いても良いし、中央値等の統計的に得られた値を用いても良く、本発明は動き量の求め方により制限されるものではない。
【００５５】
上記の通り第１の実施形態によれば、メモリ１０４に書き込むベクトル検出画像のデータ量を削減することができると共に、ベクトル検出処理の完了を早期に図ることができる。
【００５６】
なお、上述した第１の実施形態では、グリッドが下端グリッドであるかどうかに基づいて、特徴点を用いるか中心点を用いるかを決定した。しかしながら本発明はこれに限るものではなく、グリッドが上端グリッドであるかどうかに基づいて、特徴点を用いるか中心点を用いるかを決定してもよい。その場合、画像２０１よりも上のグリッド外領域２０６の画像信号ベクトル検出画像生成処理を行う必要が無くなり、同様の効果を得ることができる。
【００５７】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。第２の実施形態では、メモリアドレス生成部１０６の制御が第１の実施形態と異なる。その他の構成は第１の実施形態と同様であるので、以下、相違点について説明する。
【００５８】
図９は、第２の実施形態において画像をグリッドに分割した一例を示す図であり、画像９０１を、水平方向に６分割、垂直方向に４分割した、計２４のグリッド９０２に分割している。以降の処理では、各グリッド９０２において代表点９０３（第１の実施形態における特徴点または中心点）を求め、求めた代表点９０３に応じて、テンプレート画像９０４の位置と、サーチ画像２０５を決定して、テンプレートマッチングを行うこととなる。ただし、第１の実施形態とは異なり、グリッド外領域９０８に対してベクトル検出画像生成処理を施し、メモリ１０４に書き込むことは実施しない。
【００５９】
第２の実施形態におけるメモリアドレス生成部１０６による、テンプレート画像２０４およびサーチ画像２０５の読み出し位置の決定について説明する。第２の実施形態においては、（ア）ベクトル検出対象グリッドが端以外の場合、（イ）ベクトル検出対象グリッドが端の場合で、各々制御が異なる。なお、ベクトル検出対象グリッドが端か否かの情報は、グリッド分割部１０１より、メモリアドレス生成部１０６へ入力される、グリッド座標情報にて判定する。
【００６０】
なお、（ア）ベクトル検出対象グリッドが端以外の場合、グリッド外領域２０６の画像信号の処理を行わないことを除いて、上述した第１の実施形態における、「（ア）ベクトル検出対象グリッドが下端以外の場合」と、同様の制御となるため、説明を割愛する。
【００６１】
（イ）ベクトル検出対象グリッドが端の場合
端グリッド９０２−１（および図９で網掛けをしたグリッド）においては、第１の実施形態における「（イ）ベクトル検出対象グリッドが下端」と同様に、グリッド内の特徴点（ＰＸ，ＰＹ）は使用しない。そして、グリッド内の中心点（ＤＸ，ＤＹ）にテンプレート画像９０４の中心を配置するように制御する。
【００６２】
従って、第２の実施形態において、端グリッドをテンプレートマッチング処理する場合は、グリッド外領域が不要となるため、端グリッドよりも外側の画像信号に対して、ベクトル検出画像生成処理を施して、メモリ１０４に書き出す必要がない。
【００６３】
なお、第２の実施形態において、端グリッドでは、グリッド９０２の中心位置にテンプレート画像９０４を配置するように制御している。しかしながら、本発明はこれに限られるものではなく、テンプレート画像９０４ならびにサーチ画像９０５が、グリッド９０２をはみ出さない（分割領域内に収まる）固定点にテンプレート画像９０４の中心を配置するよう制御してもよい。この場合、グリッドが上端にある場合には上方向、下端にある場合には下方向、左端に有る場合には左方向、右端にある場合には右方向にはみ出さないような固定点としても良い。
【００６４】
上記の通り本第２の実施形態によれば、第１の実施形態と同様の効果に加えて、メモリ１０４に書き込むベクトル検出画像のデータ量を更に削減することができる。
【００６５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。第３の実施形態は、メモリアドレス生成部１０６の構成と制御が第１の実施形態と異なる。その他の構成は第１の実施形態と同様であるので、以下、相違点について説明する。
【００６６】
図１０は、第３の実施形態におけるメモリアドレス生成部１０６の構成を示すブロック図である。図１０において、特徴点使用可否判定部１００１は、特徴点情報とグリッド座標情報より、特徴点座標を使用するか否かを判定する。セレクタ１００２は、特徴点使用可否判定部１００１からの判定結果に基づいて、メモリアドレス変換部１００３に入力する座標（以下、「代表点」と呼ぶ。）を、特徴点座標（ＰＸ，ＰＹ）とするか、グリッドの中心座標（ＤＸ，ＤＹ）とするかを切り替える。メモリアドレス変換部１００３は、セレクタ１００２からの座標情報に基づいて、テンプレート画像の読み出しアドレスとサーチ画像の読み出しアドレスを生成する。なお、メモリアドレス変換部１００３で行われる処理は、第１の実施形態における処理と同様であるため、説明を割愛する。
【００６７】
図１１は第３の実施形態における代表点を用いたベクトル検出処理の概念を示したものであり、図１２はベクトル検出処理のフローチャートである。以下、図１１および図１２を参照して、第３の実施形態におけるベクトル検出処理について説明する。なお、図１１において、図２と同様の要素には同じ参照番号を付し、説明を省略する。
【００６８】
まず、Ｓ１２０１において、変数countを初期化する。変数countは、各グリッド２０２に対するサーチ画像が、特徴点２０３−２を代表点とした場合のように、グリッドを下方向にはみ出した回数を示すものである。
【００６９】
次に、Ｓ１２０２において、変数flagを初期化する。変数flagは、変数countがグリッド水平１ラインで、最大１回しかカウントしないように制御するためのフラグである。グリッド水平ライン内で１回でも、サーチ画像が、着目グリッド２０２を下方向にはみ出した場合、その時点で、下方向のグリッド２０２におけるベクトル検出画像生成処理が完了するまでベクトル検出処理が開始できない。そのため、変数countは水平グリッドラインで１回カウントできれば良い。
【００７０】
Ｓ１２０３において、特徴点算出部１０３で、着目グリッド２０２の特徴点を算出する。そして、次のＳ１２０４において、特徴点使用可否判定部１００１は、特徴点算出部１０３で算出した着目グリッドの特徴点を使用したサーチ画像が、着目グリッド２０２を下方向にはみ出したかどうかを判定する。グリッドの左上端座標を（ＧＳＸ，ＧＳＹ）、右下端座標を（ＧＥＸ，ＧＥＹ）、特徴点座標を（ＧＰＸ，ＧＰＹ）、テンプレート画像２０４の垂直サイズをＴＹ、サーチ画像２０５の垂直サイズをＳＹとする。そして、以下の判定式（９）の条件を満たした場合に、サーチ画像が、着目グリッド２０２を下方向にはみ出したこととなる。
GEY ＜ GPY + SY/2      …（９）
【００７１】
Ｓ１２０５において、特徴点使用可否判定部１００１は、変数flagが０の場合は、Ｓ１２０６に移行し、変数flagが１の場合は、既に着目グリッドラインでＳ１２０４で示した判定式を満たしていることとなるため、Ｓ１２０６をスキップしてＳ１２０７に進む。Ｓ１２０６では、特徴点使用可否判定部１００１は、変数flagを１に設定し、変数countに１加算し、Ｓ１２０７に進む。
【００７２】
次にＳ１２０７において、特徴点使用可否判定部１００１は、変数countが予め決められた閾値cmaxを超えているかどうかを判定する。閾値cmaxは、例えば、１フレーム分のベクトル検出処理の検出処理性能（特に、検出処理速度）によって決定するものである。
【００７３】
上述したように、特徴点を使用するベクトル検出処理においては、サーチ画像２０５が下方向にはみ出してしまった場合、着目グリッドの下のグリッド２０２に対して、ベクトル検出画像生成処理を施さないとテンプレートマッチング処理を開始できない。そのため、処理速度が低下してしまう。
【００７４】
そこで、Ｓ１２０８では、変数countが閾値cmaxを超えている場合、特徴点使用可否判定部１００１は出力を１として、セレクタ１００２が中心点情報を選択できるように制御する。これにより、所定数を超えた行の次の行以降のグリッド（図１１ではグリッド２０２−１３以降のグリッド）について、中心点を使用したテンプレートマッチング処理に切り替える。このように中心点を代表点とすることで、下方向のグリッドのベクトル検出画像生成処理を待たなくとも、テンプレートマッチング処理が開始できるようになるため、処理の高速化を図ることができる。なお、Ｓ１２０７の条件を満たさない場合は、Ｓ１２０８をスキップする。
【００７５】
Ｓ１２０９において、ベクトル検出処理を行う。具体的には、入力された座標情報に基づいてメモリアドレス生成部１０６が、テンプレート画像２０４の読み出しアドレスとサーチ画像２０５の読み出しアドレスを生成し、マッチング処理部１０５でテンプレートマッチング処理が施される。これにより、着目グリッドのベクトルデータが算出される。
【００７６】
Ｓ１２１０において、水平１グリッドライン分の処理が完了していない場合は、Ｓ１２０３に移行する。水平１グリッドライン分の処理が完了した場合は、Ｓ１２１１に移行する。
【００７７】
Ｓ１２１１において、全グリッドのベクトル検出処理が完了していない場合は、Ｓ１２０２に移行し、変数flagを一旦リセットする。全グリッドのベクトル検出処理が完了している場合は、ベクトル検出処理を終了する。
【００７８】
上記の通り第３の実施形態によれば、入力画像に対する、ベクトル検出処理の検出処理性能を考慮して、特徴点を使用したベクトル検出処理を実現することができる。
【００７９】
また、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８０】
１０１：グリッド分割部、１０２：ベクトル検出画像生成部、１０３：特徴点算出部、１０４：メモリ、１０５：マッチング処理部、１０６：メモリアドレス生成部
【図１】
0006602141.tif 000004
【図２】
0006602141.tif 000005
【図３】
0006602141.tif 000006
【図４】
0006602141.tif 000007
【図５】
0006602141.tif 000008
【図６】
0006602141.tif 000009
【図７】
0006602141.tif 000010
【図８】
0006602141.tif 000011
【図９】
0006602141.tif 000012
【図１０】
0006602141.tif 000013
【図１１】
0006602141.tif 000014
【図１２】
0006602141.tif 000015
【図１３】
0006602141.tif 000016