(57)【特許請求の範囲】
【請求項１】
メモリに格納された第１の画像と第２の画像をそれぞれ複数のグリッド領域毎に分割して読み出すための読み出し手段と、
前記第１の画像の前記グリッド領域毎に画像の特徴点を算出する算出手段と、
前記第１の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第１，第２の画像の前記グリッド領域毎に矩形領域を設定する設定手段と、
前記第２の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させる選択手段と、
前記第２の画像で前記選択されたグリッド領域の前記矩形領域と、前記第２の画像で前記選択されたグリッド領域に対応した、前記第１の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行う処理手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記第１の画像のグリッド領域の画素毎に特徴値を算出する処理を行い、前記第１の画像の複数のグリッド領域の中で前記画素毎の特徴値を算出できたグリッド領域についてのみ、前記画素毎の特徴値の中で最も大きい特徴値を前記特徴点として取得し、
前記設定手段は、前記第１，第２の画像の前記複数のグリッド領域のうち、前記第１の画像で前記特徴点が算出されたグリッド領域に対応したグリッド領域のみに対して、前記特徴点を中心とした前記矩形領域の設定を行い、
前記選択手段は、前記第２の画像の前記複数のグリッド領域のうち、前記第１の画像で前記特徴点が算出されたことで前記矩形領域が設定されたグリッド領域の中から、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを前記選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段にて求められた前記相関に基づいて、前記第１の画像の前記グリッド領域の前記矩形領域の画像が、前記所定の処理に適する画像であるか否かを判定する判定手段を有し、
前記選択手段は、前記第２の画像で前記グリッド領域の内に前記矩形領域が収まっているグリッド領域の中で、更に前記判定手段の判定により前記第１の画像で前記矩形領域の画像が前記所定の処理に適する画像であると判定されているグリッド領域に対応したグリッド領域のみを選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記選択手段は、前記選択したグリッド領域の個数を判定し、前記個数が所定の最小個数より少ないときには、前記第２の画像の各グリッド領域の中で前記選択されていないグリッド領域から、新たなグリッド領域を選択することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記選択手段は、前記選択したグリッド領域の個数を判定し、前記個数が所定の最大個数に達したときには、前記グリッド領域の選択を止めることを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記選択手段は、前記第２の画像で前記選択されたグリッド領域の内で、前記矩形領域の端部とグリッド領域の端部との間の距離が所定の距離内であるときには、前記第２の画像の各グリッド領域の中で前記選択されていないグリッド領域から、前記所定の距離内となっている前記端部の側に隣接するグリッド領域を、新たに選択したグリッド領域として追加することを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１の画像と第２の画像は時間軸で隣接した画像で、前記第１の画像に対して前記第２の画像が時間軸で後であり、
前記処理手段は、前記相関に基づく所定の処理として、前記第１，第２の画像の前記矩形領域の間の動きベクトルを検出することを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記選択手段は、前記処理手段にて検出された動きベクトルの方向と大きさに基づいて、前記第２の画像の各グリッド領域の中で前記選択されていないグリッド領域から、前記動きベクトルが検出されたグリッド領域に隣接するグリッド領域を、新たに選択するグリッド領域として追加することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
読み出し手段が、メモリに格納された第１の画像と第２の画像をそれぞれ複数のグリッド領域毎に分割して読み出すためのステップと、
算出手段が、前記第１の画像の前記グリッド領域毎に画像の特徴点を算出するステップと、
設定手段が、前記第１の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第１，第２の画像の前記グリッド領域毎に矩形領域を設定するステップと、
選択手段が、前記第２の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させるステップと、
処理手段が、前記第２の画像で前記選択されたグリッド領域の前記矩形領域と、前記第２の画像で前記選択されたグリッド領域に対応した、前記第１の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行うステップと
を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータを、請求項１〜８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を複数に分割して処理する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して手ぶれ補正を施す場合、フレーム画像間の動き量を検出して複数枚の各フレーム画像に対する位置合わせが行われる。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器からの出力情報を用いて検出する方法や、撮影されたフレーム画像から動き量を推定する方法等が知られている。
【０００３】
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングにより動きベクトルを検出する方法が知られている。テンプレートマッチングでは、先ず、時間軸上で例えば隣接した２枚のフレーム画像のうち一方が原画像となされ、他方が参照画像となされる。参照画像が時間軸上で現在のフレーム（現フレーム）であるとした場合、原画像は例えば時間軸上で一つ前のフレーム（前フレーム）となされる。次に、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、そのテンプレートブロックを用いて参照画像に対するサーチを行う。参照画像に対するサーチの際には、テンプレートブロックの画素値の分布と、参照画像内においてテンプレートブロックと同じ大きさの矩形領域内の画素値の分布との相関が演算される。そして、参照画像に対するサーチでは、その参照画像の中で、原画像のテンプレートブロックと最も相関値が高い矩形領域の位置が、そのテンプレートブロックの移動先として検出される。動きベクトル検出では、原画像上におけるテンプレートブロックの位置を基準位置とし、その基準位置に対して、参照画像のサーチによるテンプレートブロックの移動先の向きと移動量を求め、それら向きと移動量を動きベクトルとして検出する。
【０００４】
また、動きベクトルの検出率を向上させる技術として、フレーム画像から画像の特徴の大きさを表す特徴点を抽出し、抽出した特徴点に基づいてテンプレートブロックを設定して、参照画像と原画像との間のテンプレートマッチングを行う技術がある。ただし、フレーム画像全体で特徴点抽出を行った場合、特徴点の分布は画像内で不均一になることが多い。このような特徴点の不均一な分布から得られた動きベクトルを例えば手ぶれ補正のために使用した場合、特徴点の分布が集中した領域に基づく、誤った手ぶれ補正処理が行われてしまう虞がある。
【０００５】
このため、特許文献１には、フレーム画像を複数のグリッドに分割し、それら各グリッドについて画素毎に特徴値を求め、各グリッド内で特徴値が最も大きい画素を特徴点として抽出する技術が開示されている。特許文献１によれば、フレーム画像を分割したグリッド毎に特徴点が得られるため、それらグリッド毎に得られた特徴点は、フレーム画像内では略々均一に分布した特徴点となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９２０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１の技術を適用したハードウェアによりテンプレートマッチング処理を行うようにした場合、複数のグリッドの画像データをそれぞれメモリに読み書きする必要があるため、メモリ・バスの使用帯域の占有率が上昇するという問題が発生する。一方、デジタルスチルカメラやデジタルビデオカメラ等では、ベクトル検出処理と略々同時に、高フレームレートの動画像処理やノイズ低減処理等も行われ、それら各処理に伴って画像データ等の読み書きが行われるため、頻繁にメモリアクセスが発生する。したがって、ベクトル検出の際のグリッド毎のテンプレートマッチング処理のためのメモリアクセスにより、メモリ・バスの使用帯域が多く占有されてしまうことは、他の各種処理の処理速度に影響を与えることになり好ましくない。
【０００８】
なお、複数グリッドの処理によるメモリアクセスを減らすために、例えば、メモリから読み出すグリッドの個数を間引くことも考えられる。しかしながら、読み出すグリッドの個数を単純に一定間隔で間引いたとすると、特徴点が存在するグリッドまで除外してしまう虞がある。この場合、テンプレートマッチングの際の相関演算に使用されるデータが存在しなくなってしまうため、テンプレートマッチング処理が行えなくなり、その結果、ベクトル検出精度が低下してしまうことになる。このようなベクトル検出精度の低下を防ぐためには、テンプレートマッチング処理の際の相関演算に使用されるデータが存在しなくってしまうことを防ぐ必要がある。
【０００９】
本発明はこのような問題点に鑑みてなされたものである。本発明は、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減しつつ、相関演算に使用するデータが存在しなくなることをも防止可能な画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置は、メモリに格納された第１の画像と第２の画像をそれぞれ複数のグリッド領域毎に分割して読み出すための読み出す手段と、前記第１の画像の前記グリッド領域毎に画像の特徴点を算出する算出手段と、前記第１の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第１，第２の画像の前記グリッド領域毎に矩形領域を設定する設定手段と、前記第２の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させる選択手段と、前記第２の画像で前記選択されたグリッド領域の前記矩形領域と、前記第２の画像で前記選択されたグリッド領域に対応した、前記第１の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行う処理手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減可能とし、また、相関演算に使用するデータが存在しなくなることをも防止可能となる。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置であるデジタルカメラの概略構成を示す図である。
【図２】ベクトル検出部とデータ転送部の概略的な動作説明に用いる図である。
【図３】グリッド、特徴点、矩形領域の関係を示す図である。
【図４】グリッドに対するベクトル検出処理の概略的なフローチャートである。
【図５】特徴点算出部の概略構成を示す図である。
【図６】精度判定部の説明に用いるグラフである。
【図７】全グリッドに対する処理が行われる場合の説明に用いる図である。
【図８】第１の実施形態のベクトル検出部の動作説明に用いる図である。
【図９】第１の実施形態のグリッド選択処理のフローチャートである。
【図１０】第１の実施形態のグリッド選択処理の説明に用いる図である。
【図１１】選択されるグリッドと除外されるグリッドの説明に用いる図である。
【図１２】第２の実施形態のベクトル検出部の動作説明に用いる図である。
【図１３】第２の実施形態のグリッド選択処理の説明に用いる図である。
【図１４】第２の実施形態のグリッド選択処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
図１は、本発明の実施形態の画像処理装置の一例であるデジタルカメラの概略構成を示す図である。
図１において、結像光学部１０１は、レンズ及び絞りなどを備えている。撮影の際、結像光学部１０１は、フォーカス調節及び露出調節を行い、撮像素子１０２に光学像を結像させる。撮像素子１０２は、光学像を電気信号（アナログ画像信号）に変換する光電変換機能を有し、ＣＣＤやＣＭＯＳセンサ等で構成される。Ａ／Ｄ変換部１０３は、撮像素子１０２からのアナログ画像信号をデジタル画像信号に変換する。
【００１４】
ＤＲＡＭ（メモリ）１０７は、格納手段としてデータを記憶するメモリであり、所定枚数の静止画像や所定時間分の動画像、音声等のデータや、ＣＰＵ１１２の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える。本実施形態の場合、ＤＲＡＭ１０７は、少なくとも第１の画像と第２の画像のフレーム画像データを記憶している。第１の画像は後述するテンプレートマッチング処理における原画像として用いられ、第２の画像は参照画像として用いられる。後述する動きベクトル検出が行われる場合、原画像と参照画像は時間軸で隣接するフレーム画像であり、例えば参照画像が現在のフレーム画像（現フレーム）である場合、原画像は参照画像に対して時間的に前のフレーム画像（前フレーム）である。メモリ制御部１０６は、ＣＰＵ１１２或いはデータ転送部１０５からの指示に応じて、ＤＲＡＭ１０７へのデータ書き込みやデータ読み出しを行う。ＲＯＭ１０９は、電気的に消去・記録可能なメモリであり、ＥＥＰＲＯＭ等が用いられる。ＲＯＭ１０９には、ＣＰＵ１１２の動作用の定数、プログラム等が記憶される。不揮発性メモリ制御部１０８は、ＣＰＵ１１２からの指示に応じて、ＲＯＭ（不揮発性メモリ）１０９にデータの書き込み及び読み出しを行う。
【００１５】
ＣＰＵ１１２は、画像処理装置全体の制御を司るマイクロコンピュータ等で構成され、各部に対して動作指示を行い、各種の制御処理を実行する。ＣＰＵ１１２は、バス１１４を介して、画像処理部１０４、データ転送部１０５、メモリ制御部１０６、不揮発性メモリ制御部１０８、表示制御部１１０、操作部１１３、撮像素子１０２を制御する。
【００１６】
バス１１４は、システムバスであり、バス１１５は画像データバスである。表示部１１１は、液晶モニタ等から成り、表示制御部１１０により制御され、各種画像データ等を表示する。操作部１１３は、ユーザーにより操作されるスイッチやボタン等を含み、電源のオン／オフ、シャッターのオン／オフ等の操作等に使用される。
【００１７】
画像処理部１０４は、各種画像処理部及びバッファメモリ等から構成されており、ベクトル検出部１２０を有している。データ転送部１０５は、データ転送を行う複数のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）で構成されている。画像処理部１０４やデータ転送部１０５は、ハードウェアにより構成されていてもよいし、マイクロコンピュータ等により構成されていてもよい。マイクロコンピュータ等により構成されている場合、マイクロコンピュータは、例えばＲＯＭ１０９に格納されているプログラムを実行することにより、後述する本実施形態に係る各処理を実現する。
【００１８】
以下、画像処理部１０４のベクトル検出部１２０の構成と、データ転送部１０５の動作について、先ず、図２〜図７を参照して概要を説明し、その後、図８以降の各図を参照して本実施形態に係る詳細な構成と動作について説明する。
図２は、ベクトル検出部１２０の概略構成と、データ転送部１０５の複数のＤＭＡＣと、データ転送部１０５のＤＭＡＣによるＤＲＡＭ１０７とベクトル検出部１２０との間のデータ転送の説明に用いる図である。なお、図２には、データ転送部１０５のＤＭＡＣの動作説明のために、ＤＲＡＭ１０７と、そのＤＲＡＭ１０７に書き込みと読み出しがなされるデータ例も示している。
【００１９】
図２において、ベクトル検出部１２０は、テンプレートマッチング用画像生成部２０１（以下、マッチング用画像生成部２０１と表記する。）と、特徴点算出部２０２と、テンプレートマッチング処理部２０３と、精度判定部２０４とを有して構成されている。データ転送部１０５は、複数のＤＭＡＣとして、ＲＤＤＭＡＣａ２２１、ＲＤＤＭＡＣｂ２２２、ＷＲＤＭＡＣａ２３１、ＷＲＤＭＡＣｂ２３２の機能を有している。ＲＤＤＭＡＣａ２２１、ＲＤＤＭＡＣｂ２２２は、ＤＲＡＭ１０７に対してデータの読み出しを行う際のＤＭＡＣ機能を表し、ＷＲＤＭＡＣａ２３１、ＷＲＤＭＡＣｂ２３２は、ＤＲＡＭ１０７に対してデータの書き込みを行う際のＤＭＡＣ機能を表している。
【００２０】
図３は、ベクトル検出部１２０がデータ転送部１０５を介してＤＲＡＭ１０７からグリッド領域毎に画像データを読み出す際の各グリッド領域の配置と画像の特徴点、テンプレートマッチング領域及びサーチ領域の関係を示す図である。なお、以下の説明では、グリッド領域を単に「グリッド」と表記する。
図３に示すように、テンプレートマッチングによる動きベクトル検出の際、データ転送部１０５は、ＤＲＡＭ１０７から、フレーム画像を複数分割したグリッド３０２毎に画像データを読み出して、ベクトル検出部１２０に転送する。各グリッド３０２のサイズは予め設定されており、また、フレーム画像から分割される各グリッドの個数は水平，垂直方向について予め設定された個数となされている。
【００２１】
ベクトル検出部１２０は、グリッド３０２内の画像の特徴の大きさを表す特徴値を画素毎に計算し、各グリッド３０２内で特徴値が最も大きい画素を特徴点３０３として取得する。これにより、各グリッド３０２につき一つの特徴点３０３が取得される。そして、ベクトル検出部１２０は、特徴点３０３を中心として、予め設定されたサイズの矩形領域をテンプレート領域３０４として決定する。ベクトル検出部１２０は、これらグリッド３０２毎に得られた特徴点３０３とテンプレート領域３０４のデータをＤＲＡＭ１０７に格納する。ＤＲＡＭ１０７に格納されたテンプレート領域３０４は、テンプレートマッチングにおける原画像（前フレーム）のテンプレート領域３０４として用いられる。そして、ベクトル検出部１２０は、テンプレートマッチングにおける参照画像（現フレーム）のグリッド３０２に対して、前フレーム内で対応した位置のグリッド３０２から得られたテンプレート領域３０４を用いたサーチを行う。
【００２２】
このサーチの際、ベクトル検出部１２０は、現フレーム（参照画像）のグリッド３０２内において、特徴点３０３を中心として、テンプレート領域３０４より大きく予め設定されたサイズの矩形領域をサーチ領域３０５として設定する。ベクトル検出部１２０は、テンプレート領域３０４の画像を用い、サーチ領域３０５内を順に走査することでテンプレートマッチングを行う。テンプレートマッチングの際の走査手法は公知の技術であるためその詳細な説明は省略する。テンプレートマッチングでは、ベクトル検出部１２０は、テンプレート領域３０４内の画素値と、サーチ領域３０５内でテンプレート領域３０４と同じ大きさの矩形領域内の画素値との相関を演算する。そして、ベクトル検出部１２０は、現フレームのグリッド３０２のサーチ領域３０５の中で、前フレームのグリッド３０２のテンプレート領域３０４と最も相関が高い矩形領域の位置を、そのテンプレート領域３０４の移動先として検出する。さらに、ベクトル検出部１２０は、前フレームのグリッド３０２内のテンプレート領域３０４の位置を基準位置とし、その基準位置に対し、現フレームのグリッド３０２のサーチ領域３０５内におけるテンプレート領域３０４の移動先の向きと移動量を求める。ベクトル検出部１２０は、このようにして求めた向きと移動量を、グリッド３０２におけるベクトル値２５５として検出する。
【００２３】
図４には、図２に示したデータ転送部１０５の各ＤＭＡＣ（２２１，２２２，２３１，２３２）機能によるグリッド分割から、ベクトル検出部１２０による動きベクトルの検出までの処理のフローチャートを示す。以下、図４のフローチャートを参照しながら、図２に示したベクトル検出部１２０の構成とデータ転送部１０５のデータ転送動作についてより詳細な説明を行う。
【００２４】
図４において、データ転送部１０５のＲＤＤＭＡＣａ２２１は、ステップＳ４０１の処理として、バス１１５を介し、ＤＲＡＭ１０７から、ベクトル検出に用いる入力画像データ２４１を読み出す。このデータ読み出しの際、データ転送部１０５のＲＤＤＭＡＣａ２２１は、読み出し手段として、図３に示したグリッド３０２の単位毎に画像データを読み出す。なお、本実施形態において、入力画像データ２４１は、画像処理部１０４で既に各種画像処理が施された後のフレームデータである。そして、ＲＤＤＭＡＣａ２２１は、画像データ２４１からグリッド３０２の単位毎に読み出したデータを、ベクトル検出部１２０のマッチング用画像生成部２０１と特徴点算出部２０２に出力する。また、ＲＤＤＭＡＣａ２２１は、それぞれ読み出したグリッド３０２の左上座標位置を示すグリッド座標情報２５２を、ＲＤＤＭＡＣｂ２２２に送る。ステップＳ４０１の後は、ベクトル検出部１２０のマッチング用画像生成部２０１にて行われるステップＳ４０２の処理と、ベクトル検出部１２０の特徴点算出部２０２にて行われるステップＳ４０４の処理に移行する。
【００２５】
ステップＳ４０２では、マッチング用画像生成部２０１は、ベクトル検出のためのテンプレートマッチングに使用するテンプレートマッチング処理用画像データ２４２を生成し、データ転送部１０５のＷＲＤＭＡＣａ２３１に出力する。具体的には、マッチング用画像生成部２０１は、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分を除去して、テンプレートマッチング処理用画像データ２４２を生成する。ステップＳ４０２の後は、データ転送部１０５のＷＲＤＭＡＣａ２３１にて行われるステップＳ４０３の処理に移行する。
【００２６】
ステップＳ４０３では、ＷＲＤＭＡＣａ２３１は、バス１１５を介し、ＤＲＡＭ１０７に対して、マッチング用画像生成部２０１から送られてきたテンプレートマッチング処理用画像データ２４２を書き込む。このテンプレートマッチング処理用画像データ２４２は、現フレームのグリッド３０２から生成されたデータであり、グリッド単位でのテンプレートマッチングにおける参照画像である。また、ＤＲＡＭ１０７には、現フレームに対して時間軸上で一つ前のフレーム画像から生成されたテンプレートマッチング処理用画像データ２４３も格納されている。このテンプレートマッチング処理用画像データ２４３は、前フレームのグリッド３０２で生成されたデータであり、グリッド単位でのテンプレートマッチングにおける原画像である。ステップＳ４０３の後は、データ転送部１０５のＲＤＤＭＡＣｂ２２２にて行われるステップＳ４０５の処理に移行する。
【００２７】
特徴点算出部２０２にて行われるステップＳ４０４の処理は、前述したステップＳ４０２及びその後のステップＳ４０３の処理と並列に行われる。ステップＳ４０４において、特徴点算出部２０２は、算出手段として、各グリッド３０２からそれぞれ一つの特徴点３０３を算出する。
図５には、特徴点算出部２０２の構成例を示す。
図５に示すように、特徴点算出部２０２は、特徴フィルタ部５０１、特徴評価部５０２、特徴点決定部５０３を有する。特徴フィルタ部５０１は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。
【００２８】
特徴フィルタ部５０１は、バンドパスフィルタにより各グリッド３０２の画像データから不要な高周波成分と低周波成分を除去した後、水平方向の微分フィルタ処理と垂直方向の微分フィルタ処理を施す。さらに、特徴フィルタ部５０１は、それら水平方向と垂直方向の微分フィルタ処理がそれぞれ施された後のデータに対して、平滑化フィルタ処理を施す。これら水平，垂直方向について各々微分フィルタ処理と平滑化フィルタ処理が施されたデータは、特徴評価部５０２に送られる。
【００２９】
特徴評価部５０２は、特徴フィルタ部５０１で処理されたグリッド３０２の画像から、２つのエッジの交点の画素や、曲率が極大となっている曲線部分の点の画素のように、周辺の各画素の微分値が多方向に大きくなっている画素の値を、特徴値として算出する。なお、グリッド３０２内の画像に、２つのエッジの交点や曲率が極大となっている曲線部分の点等が存在していない場合には、特徴値は算出されないことになる。以下、２つのエッジの交点や曲率が極大となっている曲線部分の点などを検出する方法の一例として、Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉの手法を例に挙げて説明する。Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉについては公知の手法であるため、ここでは概要のみ説明する。
特徴評価部５０２は、特徴フィルタ部５０１により水平，垂直方向に各々微分フィルタ処理が施された後の画素の値から、自己相関行列Ｈを作成する。自己相関行列Ｈの式は、式（１）にて表される。
【００３０】
【数１】
0006576179.tif 000002
【００３１】
式（１）において、Ｉｘは水平微分フィルタが施された後の画素の値、Ｉｙは垂直微分フィルタが施された後の画素の値であり、自己相関行列Ｈは、ガウシアンフィルタＧを畳み込むことで求められる。そして、特徴評価部５０２は、式（２）に示すＳｈｉ  ａｎｄ  Ｔｏｍａｓｉの特徴評価式により、特徴値を求める。なお、式（２）に示したＳｈｉ  ａｎｄ  Ｔｏｍａｓｉの特徴評価式は、式（１）の自己相関行列Ｈの固有値λ１、λ２のうち小さい方の固有値を特徴値とすることを表している。
【００３２】
Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉ＝ｍｉｎ（λ１，λ２）      ・・・式（２）
【００３３】
特徴評価部５０２によりグリッド３０２毎に求められた特徴値のデータは、特徴点決定部５０３に送られる。
特徴点決定部５０３は、グリッド３０２から特徴評価部５０２により画素毎に算出された特徴値の中で最も大きい値を持つ画素を、特徴点として決定する。なお、特徴評価部５０２にて特徴値が算出されなかった場合には、特徴点決定部５０３では、そのグリッド３０２の特徴点は取得されないことになる。そして、グリッド３０２において取得された特徴点の座標情報は、特徴点決定部５０３が備えているメモリ或いはレジスタに格納される。本実施形態において、特徴点の座標は、グリッド３０２の左上端の座標（ｘ，ｙ）を原点（０，０）とした場合の相対座標（ＰＸ，ＰＹ）により表される。なお、特徴点の座標は、相対座標（ＰＸ，ＰＹ）の他に、フレーム画像内における画素位置を表す座標で表現されてもよい。また、特徴点決定部５０３が備えているメモリやレジスタは、前フレームの各グリッド３０２で決定された特徴点の座標情報と、現フレームの各グリッド３０２で決定された特徴点の座標情報とを格納可能な容量を有している。特徴点決定部５０３に格納された特徴点の座標情報のうち、前フレームのグリッド３０２における特徴点の座標情報２５１は、後述するマッチング処理部２０３でテンプレートマッチング処理が開始される際にＲＤＤＭＡＣｂ２２２に出力される。
【００３４】
図４に説明を戻す。ステップＳ４０４の後は、データ転送部１０５のＲＤＤＭＡＣｂ２２２にて行われるステップＳ４０５の処理に移行する。
ステップＳ４０５において、ＲＤＤＭＡＣｂ２２２は、設定手段として、ＤＲＡＭ１０７から、テンプレート領域３０４とサーチ領域３０５の画像データを読み出す。具体的には、ＲＤＤＭＡＣｂ２２２は、前フレームで算出された特徴点座標情報２５１とグリッド座標情報２５２を基に、テンプレートマッチング処理用画像データ２４３から、特徴点３０３を中心としたテンプレート領域３０４の画像データ２５４を読み出す。また、ＲＤＤＭＡＣｂ２２２は、前フレームで算出された特徴点座標情報２５１とグリッド座標情報２５２を基に、テンプレートマッチング処理用画像データ２４２から、特徴点３０３を中心としたサーチ領域３０５の画像データ２５３を読み出す。そして、ＲＤＤＭＡＣｂ２２２は、サーチ領域３０５の画像データ２５３とテンプレート領域３０４の画像データ２５４を、マッチング処理部２０３へ出力する。ステップＳ４０５の後は、ベクトル検出部１２０のマッチング処理部２０３にて行われるステップＳ４０６の処理に移行する。
【００３５】
ステップＳ４０６では、マッチング処理部２０３は、処理手段として、サーチ領域３０５の画像データ２５３とテンプレート領域３０４の画像データ２５４とを用い、それら画像の画素毎に相関値を算出し、その相関値からベクトル値を算出する。具体的には、マッチング処理部２０３は、相関値として、各画素の差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す。）を求める。マッチング処理部２０３がＳＡＤの演算により相関値Ｓ＿ＳＡＤを求める際の演算式を式（３）に示す。
【００３６】
【数２】
0006576179.tif 000003
【００３７】
なお、式（３）において、ｆ（ｉ，ｊ）はテンプレート領域３０４内の座標（ｉ，ｊ）における画素値を表し、ｇ（ｉ，ｊ）はサーチ領域３０５内において相関値算出の対象となる矩形領域内の各画素値を表している。サーチ領域３０５内で相関値算出の対象となる矩形領域とは、テンプレート領域３０４と同じサイズの領域であり、テンプレートマッチングの際にサーチ領域３０５内で左上端部から順に走査される領域である。以下、サーチ領域３０５内で相関値算出の対象となる矩形領域を「相関値算出領域」と表記する。マッチング処理部２０３は、それらテンプレート領域３０４の画素値ｆ（ｉ，ｊ）と相関値算出領域の画素値ｇ（ｉ，ｊ）の差の絶対値を計算して、その総和を求めることにより、相関値Ｓ＿ＳＡＤを求める。なお、このとき用いられる画素値は例えば輝度値である。この相関値Ｓ＿ＳＡＤは、その値が小さいほど、両領域の画像間の輝度値の差分が小さいこと、つまり、テンプレート領域３０４の画像とサーチ領域３０５内の相関値算出領域の画像のテクスチャが類似していることを表す。ここでは、ＳＡＤにより相関値を求める例を挙げたが、これに限るものではなく、例えば差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いてもよい。
【００３８】
そして、マッチング処理部２０３は、相関値が最小値となる座標位置を求める。相関値が最小値となる座標位置は、現フレームのグリッド３０２のサーチ領域３０５の中で、前フレームのグリッド３０２のテンプレート領域３０４と最も相関が高い矩形領域の位置であると考えられる。さらに、サーチ領域３０５の中でテンプレート領域３０４と最も相関が高い矩形領域の位置は、前フレームのテンプレート領域３０４が、現フレーム内では何れの位置になっているのかを示す移動先を表している。マッチング処理部２０３は、前フレームのグリッド３０２内のテンプレート領域３０４の位置を基準位置とし、その基準位置に対し、前述の移動先の向きと移動量を、グリッド３０２におけるベクトル値２５５とする。マッチング処理部２０３は、ベクトル値２５５をデータ転送部１０５のＷＲＤＭＡＣｂ２３２に出力する。また、マッチング処理部２０３は、ステップＳ４０６で算出された画素毎の相関値の情報２５６を、精度判定部２０４に出力する。
【００３９】
ステップＳ４０６の後は、データ転送部１０５のＷＲＤＭＡＣｂ２３２にて行われるステップＳ４０８の処理に移行する。また、ステップＳ４０６の後は、ベクトル検出部１２０の精度判定部２０４にて行われるステップＳ４０７の処理にも移行する。
精度判定部２０４は、判定手段として、前フレームのグリッド３０２のテンプレート領域３０４や現フレームのグリッドのサーチ領域３０５の画像が、後述する動きベクトル検出に適した画像であるか否かを判定する。具体的には、ステップＳ４０７において、精度判定部２０４は、ステップＳ４０６で算出された画素毎の相関値の情報２５６を用いて、それら画素毎の相関値の最大値、最小値、平均値、極小値を求める。そして、精度判定部２０４は、それら相関値の最大値、最小値、平均値、極小値に基づいて、グリッド３０２について低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定を行う。
【００４０】
図６（ａ）〜図６（ｄ）には、相関値の最大値、最小値、平均値、極小値による、グリッド３０２の低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定と、画素値との関係をグラフとして示している。ただし、相関値が小さいほど画像間の類似度は高いことになるため、図６（ａ）〜図６（ｄ）における画素値の最大値は相関値では最小値を表し、画素値の最小値は相関値では最大値を表し、画素値の極大値は相関値では極小値を表すことになる。
【００４１】
精度判定部２０４は、低コントラスト判定において、相関値算出領域内の相関値の最大値と最小値の差分が、予め設定されている閾値よりも小さい場合、その相関値算出領域内は低コントラストであると判定する。また、精度判定部２０４は、画素値の最大値突出判定では、相関値算出領域内の相関値の最小値がどれだけ際立っているかを判定する。例えば、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、予め設定されている閾値よりも小さい場合、精度判定部２０４は、相関値算出領域内は低ピークであると判定する。一方、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、閾値よりも大きい場合、精度判定部２０４は、相関値算出領域内は高ピークであると判定する。また、精度判定部２０４は、繰り返しパターン判定において、相関値算出領域内の画素値の最小値と極小値の差分が、予め設定されている閾値よりも小さい場合には、繰り返しパターンであると判定する。
【００４２】
図６（ａ）は、精度判定部２０４における低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定が、それぞれ良好な場合の例を挙げている。これに対し、図６（ｂ）は、低コントラスト判定において低コントラストであると判定される例を示しており、図６（ａ）の例に比べて図６（ｂ）では、画素値の最大値と最小値の差が少ない。図６（ｃ）は、画素値の最大値突出判定において低ピークであると判定される例を示しており、図６（ａ）の例に比べて図６（ｃ）では、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分との除算値が小さい。図６（ｄ）は、繰り返しパターン判定において繰り返しパターンであると判定される例を示しており、図６（ａ）の例に比べて図６（ｄ）では、画素値の最大値と極大値の差分が小さい。
【００４３】
精度判定部２０４は、前述のような低コントラスト判定、最大値突出判定、繰り返しパターン判定を各グリッド３０２について行う。そして、精度判定部２０４は、低コントラスト、最大値突出、繰り返しパターンの何れかにも該当しないと判定した場合、テンプレート領域３０４とサーチ領域３０５の画像は、動きベクトル検出に適した画像であると判定する。一方、精度判定部２０４は、低コントラスト、最大値突出、繰り返しパターンの何れかであると判定した場合には、テンプレート領域３０４とサーチ領域３０５の画像は、動きベクトル検出に適さない画像であると判定する。精度判定部２０４は、グリッド３０２毎に行った前述の判定の結果を示す判定情報２５７を、データ転送部１０５のＷＲＤＭＡＣｂ２３２に送る。
【００４４】
ステップＳ４０７の後は、データ転送部１０５のＷＲＤＭＡＣｂ２３２にて行われるステップＳ４０８の処理に移行する。
ステップＳ４０８では、ＷＲＤＭＡＣｂ２３２は、バス１１５を介し、ＤＲＡＭ１０７に対して、ステップＳ４０６でマッチング処理部２０３が算出したベクトル値２５５を、グリッド３０２のベクトルデータ２４４として書き込む。ただし、ＷＲＤＭＡＣｂ２３２は、ステップＳ４０７において低コントラスト、低ピーク、繰り返しパターンの何れかであると判定がされている場合は、そのベクトルデータ２４４は無効なデータであること示すフラグ情報も併せて書き込む。
【００４５】
以上が、図４のフローチャートにおけるグリッド分割から動きベクトルの検出までの大まかな流れである。なお、図４のフローチャートでは、１フレーム分の処理を示しているが、動きベクトル検出部１２０とデータ転送部１０５は、毎フレームに対して同様の処理を行い、毎フレームで動きベクトルを検出する。
【００４６】
ここで、図４に示したフローチャートの処理が、例えば図３に示した全てのグリッドについて行われることを想定した場合、例えば図７で説明するような問題が生ずることになる。
図７は、前述の図３と同様に、フレーム画像１４０１を複数のグリッドに分割し、各グリッドで特徴点を取得してテンプレート領域とサーチ領域が設定された例を示している。図７の例えばグリッド１４０２−１では、特徴点１４０３−１を中心としたテンプレート領域１４０４−１とサーチ領域１４０５−１が設定されている。ここで、図７の全てのグリッドについて前述したような動きベクトル検出のための処理を行なった場合、前述したＤＲＡＭ１０７に格納されたフレーム画像１４０１のデータを、各グリッドの単位に分割して読み出すためのメモリアクセスが発生することになる。さらに、各グリッドの画像データに対して、ベクトル検出のためのテンプレートマッチングに使用する画像データを出力するためのメモリアクセスが発生する。また、テンプレートマッチングの際には、特徴点を中心としたテンプレート領域とサーチ領域を読み出すためにメモリアクセスが発生する。このように、全てのグリッドの処理を行うようにした場合には、メモリアクセスが頻繁に発生し、したがって、ベクトル検出処理のためのメモリアクセスにより、メモリ・バスの使用帯域が多く占有されてしまう虞がある。
【００４７】
一方、ベクトル検出処理の際のメモリアクセスを減らすために、例えば画像データをメモリからグリッド単位で読み出す個数を間引くことも考えられるが、グリッド単位で読み出す個数を単純に間引いた場合、特徴点が存在するグリッドまで間引かれる虞がある。例えば、図７のグリッド１４０２−２を例に挙げて説明する。図７のグリッド１４０２−２では、特徴点１４０３−２を中心としたテンプレート領域１４０４−２とサーチ領域１４０５−２が設定されることになる。ここで、例えば、グリッド１４０２−２の下側に隣接したグリッド１４０２−３が間引き対象のグリッドであった場合、そのグリッド１４０２−３の画像データはメモリから読み出されないことになる。そして、グリッド１４０２−２の特徴点１４０３−２が、例えばグリッド１４０２−２の下端部近傍に存在していたとすると、テンプレート領域１４０４−２及びサーチ領域１４０５−２は、グリッド１４０２−２の範囲外の領域１４０６も含むことになる。しかしながら、この領域１４０６は、間引きされたグリッド１４０２−３の領域であり、画像データは存在しないため、テンプレートマッチングの際の相関演算が行えなくなってしまう。このように相関演算が出来ずにテンプレートマッチングが行えない場合、ベクトル検出の精度は低下してしまうことになる。
【００４８】
＜第１の実施形態＞
以下、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減しつつ、相関演算に使用するデータが存在しなくなることを防止してベクトル検出の精度の低下を防ぐことを可能とする第１の実施形態の画像処理装置について説明する。第１の実施形態の画像処理装置は、動きベクトルの検出のためのテンプレートマッチングの際に、ＤＲＡＭ１０７から読み出すグリッドを選択（選定）するようにしている。
図８〜図１１を参照して、第１の実施形態の画像処理装置におけるベクトル検出部１２０の詳細な構成とデータ転送部１０５の詳細な動作について説明する。
図８は、第１の実施形態のベクトル検出部１２０の概略構成と、データ転送部１０５の複数のＤＭＡＣと、データ転送部１０５のＤＭＡＣによるＤＲＡＭ１０７とベクトル検出部１２０との間のデータ転送の説明に用いる図である。前述の図２の例と同様に、図８には、データ転送部１０５のＤＭＡＣの動作説明のために、ＤＲＡＭ１０７と、そのＤＲＡＭ１０７に書き込みと読み出しがなされるデータ例も示している。また、図８において、前述の図２と同じ構成要素には図２と同一の指示符号を付し、それらの詳細な説明については省略する。
【００４９】
図８において、第１の実施形態のベクトル検出部１２０は、前述の図２に示したマッチング用画像生成部２０１、特徴点算出部２０２、マッチング処理部２０３、精度判定部２０４に加え、読出しグリッド選択部７０５を有している。以下、読出しグリッド選択部７０５を「グリッド選択部７０５」と表記する。グリッド選択部７０５には、特徴点算出部２０２が前フレームにおいてグリッド毎に求めて保持している特徴点情報７５１と、精度判定部２０４が前フレームにおいてグリッド毎に求めて保持している判定情報２５７とが入力される。
【００５０】
図９には、グリッド選択部７０５におけるグリッド選択処理から、データ転送部１０５によるグリッド読み出し処理、読み出されたグリッドを用いた動きベクトル検出までの処理のフローチャートを示す。以下、図９のフローチャートを参照しながら、図８に示したベクトル検出部１２０の構成とデータ転送部１０５におけるデータ転送動作について説明する。
図９のステップＳ８０１において、グリッド選択部７０５は、特徴点算出部２０２が保持する前フレームのグリッド毎の特徴点情報７５１と、精度判定部２０４が保持する前フレームのグリッド毎の判定情報２５７とを取得する。そして、グリッド選択部７０５は、それら前フレームのグリッド毎の特徴点情報７５１と判定情報２５７とに基づいて、ＲＤＤＭＡＣａ２２１が現フレームの画像データ２４１から読み出すグリッドを選択する。
【００５１】
以下、グリッド選択部７０５が、前フレームのグリッド毎の特徴点情報７５１と判定情報２５７とに基づいて、現フレームの画像データ２４１から読み出すグリッドを選択する処理について説明する。
図１０は、フレーム画像を分割した複数のグリッドのうち一部のグリッドを拡大して示した図であり、グリッドの特徴点とテンプレート領域及びサーチ領域の関係を説明するための図である。図１０に示すように、グリッド９００では、特徴点９０３が取得され、また、その特徴点９０３に基づいてテンプレート領域９０４とサーチ領域９０５が決定されている。また、図１０において、グリッド９００の水平方向のサイズはＧＬＩＤ＿Ｘで垂直方向のサイズはＧＬＩＤ＿Ｙで表され、サーチ領域９０５の水平方向のサイズはＳＬＸで垂直方向のサイズはＳＬＹで表されている。
【００５２】
グリッド選択部７０５は、グリッド開始座標９０２を原点（０,０）とし、グリッド９００内の特徴点９０３の座標を特徴点座標（ＰＸ，ＰＹ）とする。なお、ここでは特徴点座標（ＰＸ，ＰＹ）等の各座標は、グリッド開始座標９０２である原点（０，０）からの相対座標であるとして説明する。また、グリッド選択部７０５は、テンプレート領域読み出し開始座標９０６として座標（ＳＸ０，ＳＹ０）を設定し、テンプレート領域読み出し終了座標９０７として座標（ＳＸ１，ＳＹ１）を設定する。テンプレート領域読み出し開始座標９０６は、テンプレート領域９０４によりサーチ領域９０５内のサーチが開始される際に、そのテンプレート領域９０４の左上端座標が配置されることになる座標であり、サーチ領域９０５の左上端座標と一致している。また、テンプレート領域読み出し終了座標９０７は、サーチ領域９０５内をテンプレート領域９０４でサーチし終わる際に、そのテンプレート領域９０４の右下端座標が配置されることになる座標であり、サーチ領域９０５の右下端座標と一致している。このため、テンプレート領域読み出し開始座標９０６からテンプレート領域読み出し終了座標９０７までで表される矩形領域は、実際にはサーチ領域９０５の矩形領域と一致している。グリッド選択部７０５は、それらテンプレート領域読み出し開始座標（ＳＸ０，ＳＹ０）を式（４）の演算により求め、テンプレート領域読み出し終了座標（ＳＸ１，ＳＹ１）を式（５）の演算により求める。
【００５３】
（ＳＸ０，ＳＹ０）＝（ＰＸ−ＳＬＸ／２，ＰＹ−ＳＬＸ／２）    ・・・式（４）
（ＳＸ１，ＳＹ１）＝（ＰＸ＋ＳＬＸ／２，ＰＹ＋ＳＬＸ／２）    ・・・式（５）
【００５４】
そして、グリッド選択部７０５は、グリッド９００において式（６）の条件が満たされている場合、そのグリッド９００を、テンプレートマッチング処理の際に現フレームから読み出しの対象となるグリッドとして選択する。以下、テンプレートマッチング処理の際に現フレームから読み出しの対象となるグリッドを「読み出し対象グリッド」と表記する。
【００５５】
０≦ＳＸ０，ＳＸ１≦ＧＬＩＤ＿Ｘ
０≦ＳＹ０，ＳＹ１≦ＧＬＩＤ＿Ｙ          ・・・式（６）
【００５６】
図１１は、前フレーム及び現フレームの各グリッドと、前フレームで取得された特徴点と、その特徴点に基づいて決定されるテンプレート領域及びサーチ領域の関係を示す図である。図１１中の斜線で示されるグリッドが、前フレームで特徴点が取得されたグリッドであり、現フレームで読み出し対象グリッドとなる可能性があるグリッドである。なお、図１１中の斜線で示されていないグリッドは、前フレームにおいて特徴点が存在せずに取得できなかったグリッドであり、これらのグリッドは現フレームで読み出し対象グリッドから除外される。グリッド選択部７０５は、現フレームの読み出し対象グリッドとなる可能性があるグリッドについて、式（６）の条件を満たすか否かの判定を行う。
【００５７】
図１１の現フレームの読み出し対象グリッドとなる可能性があるグリッドのうち、例えばグリッド１００２−１は、サーチ領域１００５−１が式（６）の条件を満たしており、そのグリッド１００２−１内に包含されている。このため、グリッド選択部７０５は、現フレームにおけるグリッド１００２−１を、読み出し対象グリッドとして選択する。一方、図１１の現フレームの読み出し対象グリッドとなる可能性があるグリッドのうち、例えばグリッド１００２−２は、サーチ領域１００５−２が式（６）の条件を満たさず、そのグリッド１００２−２内からはみ出している。このため、グリッド選択部７０５は、現フレームにおけるグリッド１００２−２については読み出し対象グリッドから除外する。
【００５８】
また、グリッド選択部７０５は、前フレームで求められた精度判定情報７５７に基づいて、読み出し対象グリッドとして選択されたグリッドの中で、更に読み出し対象グリッドから除外するグリッドを決定する。具体的には、グリッド選択部７０５は、低コントラスト、低ピーク、繰り返しパターンの何れかに該当するグリッドについては、読み出し対象グリッドから外す。すなわち、グリッド選択部７０５は、式（６）の条件を満たして読み出し対象グリッドとして選択された各グリッドに対して、更に、低コントラスト、低ピーク、繰り返しパターンの何れかにも該当しないグリッドのみを選ぶような絞りこみを行う。ここでは、式（６）の条件を満たして読み出し対象グリッドとして選択された各グリッドに対して更に絞り込みを行う例を挙げたが、図１１の読み出し対象グリッドとなる可能性があるグリッドの中から、先ず精度判定情報７５７に基づく選択を行ってもよい。この場合、図１１の読み出し対象グリッドとなる可能性があるグリッドの中から精度判定情報７５７に基づいて選択された各グリッドに対し、更に式（６）の条件を満たすグリッドのみに絞り込むような選択が行われる。またここでは、精度判定情報７５７を読み出し対象グリッドの選択に用いる例を挙げたが、精度判定情報７５７を用いずに特徴点情報７５１のみに基づいて選択を行ってもよい。
【００５９】
このように、グリッド選択部７０５は、ステップＳ８０１において、前フレームの特徴点情報７５１及び精度判定情報７５７、又は、前フレームの特徴点情報７５１に基づいて、現フレームで読み出し対象となるグリッドを選択する。グリッド選択部７０５は、グリッド選択情報７６１を、ＲＤＤＭＡＣａ２２１に送る。ステップＳ８０１の後、グリッド選択部７０５は、ステップＳ８０２に処理を進める。
【００６０】
ステップＳ８０２では、グリッド選択部７０５は、ステップＳ８０１で選択された読み出し対象グリッドの個数を判定する。ここで、グリッド選択部７０５には、グリッド個数の閾値として、ベクトル検出の精度を一定以上維持するため必要な最小個数が設定されている。グリッド選択部７０５は、ステップＳ８０２において、ステップＳ８０１で選択された読み出し対象グリッドの個数が、閾値として設定されている最小個数よりも多いか否かを判定する。ステップＳ８０２において、読み出し対象グリッドの個数が閾値の最小個数より多いと判定された場合には、データ転送部１０５のＲＤＤＭＡＣａ２２１が行うステップＳ８０４の処理に移行する。一方、グリッド選択部７０５は、読み出し対象グリッドの個数が閾値の最小個数以下であると判定した場合には、ステップＳ８０３に処理を進める。
【００６１】
ステップＳ８０３では、グリッド選択部７０５は、読み出し対象グリッドの個数が閾値の最小個数よりも多くなるように、更に読み出し対象グリッドを追加設定する。具体的には、グリッド選択部７０５は、読み出し対象グリッド以外のグリッドからランダムに選んだグリッドを、読み出し対象グリッドとして追加する。また、グリッドの追加方法の他の例として、グリッド選択部７０５は、ステップＳ８０１の選択処理の際に、読み出し対象グリッドから外されたグリッドの周囲のグリッドを、追加するようにしてもよい。グリッド選択部７０５は、ステップＳ８０３において、読み出し対象グリッド数がステップＳ８０２で用いた閾値の最小個数に達するまで、グリッドの追加処理を行う。ステップＳ８０３の後は、データ転送部１０５のＲＤＤＭＡＣａ２２１にて行われるステップＳ８０４の処理に移行する。
【００６２】
ステップＳ８０４では、ＲＤＤＭＡＣａ２２１は、バス１１５を介し、ＤＲＡＭ１０７に格納されている画像データ２４１から、読み出し対象グリッドの画像データを読み出す。ＲＤＤＭＡＣａ２２１により読み出されたグリッドの画像データ２４１は、マッチング用画像生成部２０１と特徴点算出部２０２に送られる。ステップＳ８０４の後は、特徴点算出部２０２とマッチング用画像生成部２０１とマッチング処理部２０３と精度判定部２０４にて行われるステップＳ８０５の処理に移行する。
【００６３】
ステップＳ８０５では、前述の図４のステップＳ４０２〜Ｓ４０８で説明したのと同様の処理が行われる。ただし、第１の実施形態の場合、特徴点算出部２０２とマッチング用画像生成部２０１では、ステップＳ８０１で選択されてステップＳ８０４で読み出されたグリッドのみに対して、前述したような特徴点算出処理とマッチング用画像生成処理が行われる。マッチング処理部２０３では、ステップＳ８０１で選択されてステップＳ８０４で読み出されたグリッドのみに対して、現フレームのサーチ領域と前フレームのテンプレート領域を用いたテンプレートマッチング処理が行われる。そして、マッチング処理部２０３からは、ステップＳ８０１で選択されてステップＳ８０４で読み出されたグリッドのみから検出されたベクトル値２５５が出力される。また、精度判定部８０２では、マッチング処理部２０３で求められた相関値に基づいて、前述した精度判定処理が行われる。このように、ステップＳ８０５では、前フレームと現フレームの各グリッドのうち、グリッド選択部７０５により選択されたグリッドについてのみ、テンプレートマッチングによる動きベクトル検出処理が行われることになる。ステップＳ８０５の後は、グリッド選択部７０５にて行われるステップＳ８０６の処理に移行する。
【００６４】
ステップＳ８０６では、グリッド選択部７０５は、ベクトル検出の処理が完了したグリッドの個数を判定する。このステップＳ８０６の場合、グリッド選択部７０５は、このグリッドの個数の閾値として、ベクトル検出の精度を維持するために十分な最大個数が設定されている。グリッド選択部７０５は、ステップＳ８０６において、ベクトル検出の完了したグリッドの個数が、閾値として設定されている最大個数よりも多いか否かを判定する。ステップＳ８０６において、グリッド選択部７０５は、ベクトル検出の完了した個数が、閾値の最大個数より多いと判定した場合には、ステップＳ８０７に処理を進める。一方、ステップＳ８０６において、ベクトル検出の完了した個数が、閾値の最大個数以下であると判定された場合には、データ転送部１０５のＲＤＤＭＡＣａ２２１にて行われるステップＳ８０４に処理が戻る。ステップＳ８０４の処理に戻ると、次の読み出し対象グリッドの画像データの読み出しが行われる。
【００６５】
ステップＳ８０７の処理に進むと、グリッド選択部７０５は、ベクトル検出を行うべき全てのフレームについての処理が完了したか否か判定する。そして、グリッド選択部７０５は、全てのフレームについての処理が完了したと判定した場合には、図９のフローチャートの処理を終了し、一方、完了していないと判定した場合にはステップＳ８０１に処理を戻す。ステップＳ８０１の処理に戻ると、次のフレームに対する処理が行われることになる。
【００６６】
以上説明したように、第１の実施形態によれば、グリッド選択部７０５が、前フレームの特徴点情報７５１及び精度判定情報７５７、又は、前フレームの特徴点情報７５１に基づいて、現フレームで読み出し対象となるグリッドを選択している。そして、ベクトル検出部１２０では、その選択されたグリッドのみに対して、現フレームと前フレームの画像データを用いたテンプレートマッチング処理による動きベクトル検出が行われる。したがって、第１の実施形態においては、動きベクトル検出の際に、全グリッドの処理を行う場合のような頻繁なメモリアクセスは発生せず、メモリ・バスの使用帯域の占有率を削減可能である。また、第１の実施形態においては、単純にグリッドを間引いた場合のようにテンプレートマッチング用の画像データが存在しなくなってベクトル検出の精度が低下してしまうようなことはなく、ベクトル検出精度を維持できる。
【００６７】
＜第２の実施形態＞
以下、第２の実施形態の画像処理装置について説明する。
第２の実施形態の画像処理装置は、現フレームの読み出し対象となるグリッドを選択する際に、第１の実施形態で説明した前フレームの特徴点情報７５１及び精度判定情報７５７に加えて、前フレームのグリッドで求められベクトル値情報１１５５をも使用する。前フレームのグリッドのベクトル値情報１１５５は、マッチング処理部２０３が前フレームの処理で求めて内部メモリやレジスタに格納されており、このベクトル値情報１１５５がグリッド選択部７０５に送られる。
以下、第２の実施形態の画像処理装置におけるベクトル検出部１２０の詳細な構成とデータ転送部１０５の詳細な動作について、図１２〜図１４を参照しながら説明する。
【００６８】
図１２は、第２の実施形態のベクトル検出部１２０の概略構成と、データ転送部１０５の複数のＤＭＡＣと、データ転送部１０５のＤＭＡＣによるＤＲＡＭ１０７とベクトル検出部１２０との間のデータ転送の説明に用いる図である。前述の図２の例と同様に、図１２には、データ転送部１０５のＤＭＡＣの動作説明のために、ＤＲＡＭ１０７と、そのＤＲＡＭ１０７に書き込みと読み出しがなされるデータ例も示している。また、図１２において、前述の図８と同じ構成要素には図８と同一の指示符号を付し、それらの詳細な説明については省略する。
【００６９】
図１２において、第２の実施形態のベクトル検出部１２０は、前述の図２に示したマッチング用画像生成部２０１、特徴点算出部２０２、マッチング処理部２０３、精度判定部２０４と、前述の図８に示したグリッド選択部７０５を有している。ただし、第２の実施形態の場合のグリッド選択部７０５には、前述した前フレームの特徴点情報７５１及び判定情報２５７と、マッチング処理部２０３が前フレームで求めて保持しているベクトル値情報１１５５とが入力される。
【００７０】
図１３は、現フレームと前フレームの複数のグリッドのうち一部のグリッドを拡大して示した図であり、グリッドの特徴点とテンプレート領域及びサーチ領域の関係説明に用いる図である。なお、図１３では、読み出し対象グリッドとしてグリッド１２２０を例に挙げ、そのグリッド１２２０内に特徴点９０３が有り、その特徴点９０３に基づいてテンプレート領域９０４とサーチ領域９０５が設定されているとする。図１３においても前述の図１０で説明したのと同様に、読み出し対象グリッド１２２０の水平方向のサイズはＧＬＩＤ＿Ｘ、垂直方向のサイズはＧＬＩＤ＿Ｙ、サーチ領域９０５の水平方向のサイズはＳＬＸ、垂直方向のサイズはＳＬＹとする。また、前述の図１０と同様に、グリッド選択部７０５は、グリッド開始座標９０２を原点（０,０）とし、グリッド１２２０内の特徴点９０３の座標を特徴点座標（ＰＸ，ＰＹ）とする。同様に、グリッド選択部７０５は、テンプレート領域読み出し開始座標９０６を座標（ＳＸ０，ＳＹ０）とし、テンプレート領域読み出し終了座標９０７を座標（ＳＸ１，ＳＹ１）とする。
【００７１】
さらに、第２の実施形態の場合は、グリッド選択部７０５は、テンプレート領域右上端座標１２０８として座標（ＳＸ２，ＳＹ２）を設定し、テンプレート領域左下端座標１２０９として座標（ＳＸ３，ＳＹ３）を設定する。テンプレート領域右上端座標１２０８は、テンプレート領域９０４がサーチ領域９０５内の右上端に位置したときにテンプレート領域９０４の右上端座標が配置されることになる座標であり、サーチ領域９０５の右上端座標と一致している。テンプレート領域左下端座標１２０９は、テンプレート領域９０４がサーチ領域９０５内の左下端に位置したときにテンプレート領域９０４の左下端座標が配置されることになる座標であり、サーチ領域９０５の左下端座標と一致している。このため、これら各座標９０６、１２０８、１２０９、９０７で表される矩形領域は、実際にはサーチ領域９０５の矩形領域と一致している。
【００７２】
また、第２の実施形態では、図１３に示すように、読み出し対象グリッド１２２０の各辺に隣接した周囲のグリッドのうち、図中上側に隣接するグリッドを「グリッド１２２１」とし、図中下側に隣接するグリッドを「グリッド１２２３」とする。さらに、グリッド開始座標９０２のグリッド１２２０の各辺に隣接した周囲のグリッドのうち、図中で左側に隣接するグリッドを「グリッド１２２２」とし、右側に隣接するグリッドを「グリッド１２２３」とする。
【００７３】
詳細については後述するが、第２の実施形態の場合のグリッド選択部７０５は、読み出し対象グリッド１２２０に隣接した四つのグリッド１２２１〜１２２３が、読み出し対象グリッドの候補になるか否かを判定する。グリッド選択部７０５は、候補になると判定したグリッドを、読み出し対象グリッドとして追加するようなグリッド選択処理を行う。第２の実施形態のグリッド選択部７０５は、このような読み出し対象グリッドを追加するグリッド選択処理を行うために、以下に説明する各処理を行う。
【００７４】
第２の実施形態のグリッド選択部７０５は、前述した第１の実施形態と同様に、テンプレート領域読み出し開始座標（ＳＸ０，ＳＹ０）を式（４）により求め、テンプレート領域読み出し終了座標（ＳＸ１，ＳＹ１）を式（５）により求める。また、第２の実施形態の場合、グリッド選択部７０５は、テンプレート領域右上端座標（ＳＸ２，ＳＹ２）を式（７）により求め、テンプレート領域左下端座標（ＳＸ３，ＳＹ３）を式（８）により求める。
【００７５】
（ＳＸ２，ＳＹ２）＝（ＰＸ＋ＳＬＸ／２，ＰＹ−ＳＬＸ／２）    ・・・式（７）
（ＳＸ３，ＳＹ３）＝（ＰＸ−ＳＬＸ／２，ＰＹ＋ＳＬＸ／２）    ・・・式（８）
【００７６】
ここで、第２の実施形態において、マッチング処理部２０３が前フレームのグリッド１２２０で求めたベクトル値情報１１５５で表されるベクトルの水平方向の大きさをＶＬＸ、垂直方向の大きさをＶＬＹとする。グリッド選択部７０５は、前述した四つの各座標（ＳＸ０，ＳＹ０）、（ＳＸ１，ＳＹ１）、（ＳＸ２，ＳＹ２）、（ＳＸ３，ＳＹ３）に対し、ベクトルの大きさＶＬＸ、ＶＬＹをそれぞれ加算する。そして、グリッド選択部７０５は、それら四つの座標（ＳＸ０，ＳＹ０）〜（ＳＸ３，ＳＹ３）にＶＬＸ、ＶＬＹを各々加算した座標を、（ＳＶＸ０，ＳＶＹ０）、（ＳＶＸ１，ＳＶＹ１）、（ＳＶＸ２，ＳＶＹ２）、（ＳＶＸ３，ＳＶＹ３）とする。なお、図１３には、前述した四つの各座標のうち、テンプレート領域読み出し開始座標（ＳＸ０，ＳＹ０）のみを例に挙げ、その座標（ＳＸ０，ＳＹ０）にＶＬＸ、ＶＬＹを加算した座標１３０６（ＳＶＸ０，ＳＶＹ０）を示している。各座標（ＳＶＸ０，ＳＶＹ０）、（ＳＶＸ１，ＳＶＹ１）、（ＳＶＸ２，ＳＶＹ２）、（ＳＶＸ３，ＳＶＹ３）は、式（９）〜式（１２）で表すことができる。
【００７７】
（ＳＶＸ０，ＳＶＹ０）＝（ＳＸ０＋ＶＬＸ，ＳＹ０＋ＶＬＹ）  ・・・式（９）
（ＳＶＸ１，ＳＶＹ１）＝（ＳＸ１＋ＶＬＸ，ＳＹ１＋ＶＬＹ）  ・・・式（１０）
（ＳＶＸ２，ＳＶＹ２）＝（ＳＸ２＋ＶＬＸ，ＳＹ２＋ＶＬＹ）  ・・・式（１１）
（ＳＶＸ３，ＳＶＹ３）＝（ＳＸ３＋ＶＬＸ，ＳＹ３＋ＶＬＹ）  ・・・式（１２）
【００７８】
図１４には、第２の実施形態のグリッド選択部７０５におけるグリッド選択処理のフローチャートを示す。以下、図１４のフローチャートを参照しながら、第２の実施形態の場合のグリッド選択部７０５が読み出し対象グリッドを追加するグリッド選択処理を行う際の処理の流れを説明する。
グリッド選択部７０５は、先ず図１４のステップＳ１３０１として、マッチング処理部２０３から、前フレームのグリッド１２２０で求めたベクトル値情報１１５５を取得する。このとき取得されるベクトル値情報１１５５は、ベクトルの水平方向の大きさＶＬＸと垂直方向の大きさＶＬＹを示す情報である。ステップＳ１３０１の後、グリッド選択部７０５は、ステップＳ１３０２に処理を進める。
【００７９】
ステップＳ１３０２では、グリッド選択部７０５は、ステップＳ１３０１で取得したベクトルの水平方向の大きさＶＬＸと垂直方向の大きさＶＬＹとを比較する。具体的には、グリッド選択部７０５は、ＶＬＸの絶対値がＶＬＹの絶対値以上であるか否かを判定する。そして、グリッド選択部７０５は、ＶＬＸの絶対値がＶＬＹの絶対値以上である場合、読み出し対象グリッド１２２０に対して水平方向に隣接するグリッド１２２２，１２２４を、読み出し対象グリッドの候補として残し、ステップＳ１３０３に処理を進める。一方、グリッド選択部７０５は、ＶＬＸの絶対値がＶＬＹの絶対値より小さい場合、読み出し対象グリッド１２２０に対して垂直方向に隣接するグリッド１２２１，１２２３を、読み出し対象グリッドの候補として残し、ステップＳ１３０４に処理を進める。
【００８０】
ステップＳ１３０３の処理に進むと、グリッド選択部７０５は、ＶＬＸがゼロ（０）より小さいか否かを判定する。そして、グリッド選択部７０５は、ＶＬＸがゼロより小さい場合、読み出し対象グリッド１２２０の水平方向左側に隣接するグリッド１２２２を読み出し対象グリッドの候補として残し、ステップＳ１３０５に処理を進める。一方、グリッド選択部７０５は、ＶＬＸがゼロ以上である場合、読み出し対象グリッド１２２０の水平方向右側に隣接するグリッド１２２４を読み出し対象グリッドの候補として残し、ステップＳ１３０６に処理を進める。
【００８１】
ステップＳ１３０５の処理に進むと、グリッド選択部７０５は、テンプレート領域読み出し開始座標９０６のＳＹ０に対してベクトルの大きさＶＬＹを加算したＳＶＹ０が、ゼロ（０）以上であるか否かを判定する。さらに、グリッド選択部７０５は、テンプレート領域左下端座標１２０９のＳＹ３に対してベクトルの大きさＶＬＹを加算したＳＶＹ３が、グリッド１２２０の垂直方向のサイズＧＬＩＤ＿Ｙ以下であるか否かを判定する。そして、グリッド選択部７０５は、ＳＶＹ０がゼロ以上で且つＳＶＹ３がＧＬＩＤ＿Ｙ以下であると判定した場合には、ステップＳ１３１０に処理を進める。ステップＳ１３１０では、グリッド選択部７０５は、読み出し対象グリッド１２２０の水平方向左側に隣接するグリッド１２２２を読み出し対象グリッドとして追加する。一方、グリッド選択部７０５は、ステップＳ１３０５において、ＳＶＹ０がゼロ以上で且つＳＶＹ３がＧＬＩＤ＿Ｙ以下でないと判定した場合には、グリッド選択処理を終了する。
【００８２】
ステップＳ１３０６の処理に進んだ場合、グリッド選択部７０５は、テンプレート領域右上端座標１２０８のＳＹ２に対してベクトルの大きさＶＬＹを加算したＳＶＹ２が、ゼロ（０）以上であるか否かを判定する。さらに、グリッド選択部７０５は、テンプレート領域右上端座標１２０８のＳＹ２に対してベクトルの大きさＶＬＹを加算したＳＶＹ２が、グリッド１２２０の垂直方向のサイズＧＬＩＤ＿Ｙ以下であるか否かを判定する。そして、グリッド選択部７０５は、ＳＶＹ２がゼロ以上で且つＳＶＹ２がＧＬＩＤ＿Ｙ以下であると判定した場合には、ステップＳ１３１１に処理を進める。ステップＳ１３１１では、グリッド選択部７０５は、読み出し対象グリッド１２２０の水平方向右側に隣接するグリッド１２２４を読み出し対象グリッドとして追加する。一方、グリッド選択部７０５は、ステップＳ１３０６において、ＳＶＹ２がゼロ以上で且つＳＶＹ２がＧＬＩＤ＿Ｙ以下でないと判定した場合には、グリッド選択処理を終了する。
【００８３】
ステップＳ１３０４の処理に進んだ場合、グリッド選択部７０５は、ベクトルの垂直方向の大きさＶＬＹがゼロ（０）より小さいか否かを判定する。そして、グリッド選択部７０５は、ＶＬＹがゼロより小さい場合、読み出し対象グリッド１２２０の垂直方向上側に隣接するグリッド１２２１を読み出し対象グリッドの候補として残し、ステップＳ１３０７に処理を進める。一方、グリッド選択部７０５は、ＶＬＹがゼロ以上である場合、読み出し対象グリッド１２２０の垂直方向下側に隣接するグリッド１２２３を読み出し対象グリッドの候補として残し、ステップＳ１３０８に処理を進める。
【００８４】
ステップＳ１３０７の処理に進むと、グリッド選択部７０５は、テンプレート領域読み出し開始座標９０６のＳＸ０に対してベクトルの大きさＶＬＸを加算したＳＶＸ０が、ゼロ（０）以上であるか否かを判定する。さらに、グリッド選択部７０５は、テンプレート領域左下端座標１２０９のＳＸ３に対してベクトルの大きさＶＬＸを加算したＳＶＸ３が、グリッド１２２０の水平方向のサイズＧＬＩＤ＿Ｘ以下であるか否かを判定する。そして、グリッド選択部７０５は、ＳＶＸ０がゼロ以上で且つＳＶＸ３がＧＬＩＤ＿Ｘ以下であると判定した場合には、ステップＳ１３１２に処理を進める。ステップＳ１３１２では、グリッド選択部７０５は、読み出し対象グリッド１２２０の垂直方向上側に隣接するグリッド１２２１を読み出し対象グリッドとして追加する。一方、グリッド選択部７０５は、ステップＳ１３０７において、ＳＶＸ０がゼロ以上で且つＳＶＸ３がＧＬＩＤ＿Ｘ以下でないと判定した場合には、グリッド選択処理を終了する。
【００８５】
ステップＳ１３０８の処理に進んだ場合、グリッド選択部７０５は、テンプレート領域左下端座標１２０９のＳＸ３に対してベクトルの大きさＶＬＸを加算したＳＶＸ３が、ゼロ（０）以上であるか否かを判定する。さらに、グリッド選択部７０５は、テンプレート領域読み出し終了座標９０７のＳＸ１に対してベクトルの大きさＶＬＸを加算したＳＶＸ１が、グリッド１２２０の水平方向のサイズＧＬＩＤ＿Ｘ以下であるか否かを判定する。そして、グリッド選択部７０５は、ＳＶＸ３がゼロ以上で且つＳＶＸ１がＧＬＩＤ＿Ｘ以下であると判定した場合には、ステップＳ１３１３に処理を進める。ステップＳ１３１３では、グリッド選択部７０５は、読み出し対象グリッド１２２０の垂直方向下側に隣接するグリッド１２２３を読み出し対象グリッドとして追加する。一方、グリッド選択部７０５は、ステップＳ１３０８において、ＳＶＸ３がゼロ以上で且つＳＶＸ１がＧＬＩＤ＿Ｘ以下でないと判定した場合には、グリッド選択処理を終了する。
【００８６】
以上説明したように、第２の実施形態によれば、読み出し対象グリッド１２２０の周囲のグリッド１２２１〜１２２４のうち、グリッド１２２０で求められたベクトルの方向と大きさに対応したグリッドが、読み出し対象グリッドとして追加されることになる。これにより、グリッド選択部７０５は、例えばサーチの際にテンプレート領域９０４が読み出し対象グリッド１２２０からはみ出してしまう場合でも、テンプレートマッチング用画像データが存在していることになる。したがって、第２の実施形態によれば、取得できるベクトル数が増加することになるため、ベクトル検出精度を向上させることができる。また、第２の実施形態においても、第１の実施形態と同様に、全グリッドの処理を行う場合のような頻繁なメモリアクセスは発生せず、メモリ・バスの使用帯域の占有率を削減可能である。
【００８７】
なお、第２の実施形態では、前述した四つの座標９０６，９０７，１２０９，１２０８とベクトルの大きさに基づいて、グリッド１２２０の周囲のグリッド１２２１〜１２２４の追加判定を行う例を挙げたが、それとは異なる方法による判定も可能である。例えば、前述したテンプレート領域読み出し開始座標９０６が読み出し対象グリッド１２２０の上端から予め定められた規定の距離内になっている場合には、垂直方向上側に隣接するグリッド１２２１を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し開始座標９０６が読み出し対象グリッド１２２０の左端から規定の距離内にある場合には、水平方向左側に隣接するグリッド１２２２を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し終了座標９０７が読み出し対象グリッド１２２０の下端から規定の距離内にある場合には、垂直方向下側に隣接するグリッド１２２３を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し終了座標９０７が読み出し対象グリッド１２２０の右端から規定の距離内にある場合には、水平方向右側に隣接するグリッド１２２４を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し開始座標９０６が読み出し対象グリッド１２２０の上端左端から規定の距離内にある場合、グリッド１２２１と１２２２、更に斜め左上に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域読み出し終了座標９０７が読み出し対象グリッド１２２０の下端右端から規定の距離内にある場合、グリッド１２２３と１２２４、更に斜め右下に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域右上端座標１２０８が読み出し対象グリッド１２２０の上端右端から規定の距離内にある場合、グリッド１２２１と１２２４、更に斜め右上に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域左下端座標１２０９が読み出し対象グリッド１２２０の下端左端から規定の距離内にある場合、グリッド１２２２と１２２３、更に斜め左下に隣接するグリッドを読み出し対象グリッドとして追加してもよい。
【００８８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本実施形態では、画像処理装置の一例としてデジタルカメラを挙げたが、タブレット端末、スマートフォン、電子ゲーム機、ドライブレコーダ、ナビゲーション装置、パーソナルコンピュータなど様々な情報処理装置であってもよい。この場合の情報処理装置は、その装置自身に搭載されているカメラ機能により撮影された画像、又は、デジタルカメラ等により撮影された画像を取得し、その画像データに対して前述した実施形態に係る各処理を実行する。また、情報処理装置における実施形態に係る処理は、内部のマイクロコンピュータ等においてコンピュータプログラムを実行することにより実現されてもよい。実施形態に係る処理を実現するためのコンピュータプログラムは、記録媒体や各種ネットワークや通信回線を介して情報処理装置に提供される。
【００８９】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００９０】
１０１  結像光学系、１０２  撮像素子、１０３  Ａ／Ｄ変換部、１０４  画像処理部、１０５  データ転送部、１０６  メモリ制御部、１０７  ＤＲＡＭ（メモリ）、１０８  不揮発性メモリ制御部、１０９  ＲＯＭ（不揮発性メモリ）、１１０  表示制御部、１１１  表示部、１１２  ＣＰＵ、１１３  操作部、２０１  テンプレートマッチング用画像生成部、２０２  特徴点算出部、２０３  テンプレートマッチング処理部、２０４  精度判定部、２２１  ＲＤＤＭＡＣａ、２２２  ＲＤＤＭＡＣｂ、２３１  ＷＲＤＭＡＣａ、２３２  ＷＲＤＭＡＣｂ、５０１  特徴フィルタ部、５０２  特徴評価部、５０３  特徴点決定部、７０５  読出しグリッド選択部
【図１】
0006576179.tif 000004
【図２】
0006576179.tif 000005
【図３】
0006576179.tif 000006
【図４】
0006576179.tif 000007
【図５】
0006576179.tif 000008
【図６】
0006576179.tif 000009
【図７】
0006576179.tif 000010
【図８】
0006576179.tif 000011
【図９】
0006576179.tif 000012
【図１０】
0006576179.tif 000013
【図１１】
0006576179.tif 000014
【図１２】
0006576179.tif 000015
【図１３】
0006576179.tif 000016
【図１４】
0006576179.tif 000017