(57)【要約】【課題】縮小画像データに対してグリッド分割を行いベクトル検出処理を行う画像処理装置において、メモリ・バスの転送効率の低下を防ぎ、かつベクトル検出の精度低下を防止する。【解決手段】動画像中の各フレーム画像をそれぞれ複数の領域に分割する領域分割部と、領域分割部によって分割された分割領域を分割領域ごとに読み出すための読み出し部と、読み出された分割領域ごとに、画像データを記憶する記憶部と、分割領域ごとの画像データを用いて、分割領域内の特徴点を算出する特徴点算出部とを備え、領域分割部は、分割領域の水平方向の画素数が所定の画素数以上となるように、各フレーム画像を複数の領域に分割する。【選択図】  図２
2018074250.tif 000002
【特許請求の範囲】
【請求項１】
動画像中の各フレーム画像をそれぞれ複数の領域に分割する領域分割手段と、
前記領域分割手段によって分割された分割領域を分割領域ごとに読み出すための読み出し手段と、
読み出された前記分割領域ごとに、画像データを記憶する記憶手段と、
前記分割領域ごとの画像データを用いて、前記分割領域内の特徴点を算出する特徴点算出手段と、を備え、
前記領域分割手段は、前記分割領域の水平方向の画素数が所定の画素数以上となるように、前記各フレーム画像を複数の領域に分割することを特徴とする画像処理装置。
【請求項２】
前記領域分割手段は、前記分割領域の水平方向の画素数が、前記記憶手段の水平方向の記憶可能な画素数以上となるように、前記各フレーム画像を複数の領域に分割することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記分割領域ごとの画像データを縮小する縮小手段をさらに備えることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記縮小手段は、前記分割領域ごとの画像データの水平方向の画素数が前記記憶手段の水平方向の記憶可能な画素数よりも少なくならない縮小率で前記分割領域ごとの画像データを縮小することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記特徴点算出手段は、前記分割領域ごとの画像データの水平方向の画素数が前記記憶手段の水平方向の記憶可能な画素数よりも少なくならない縮小率の内で最も高い縮小率で縮小された画像データを用いて、前記分割領域内の特徴点を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記特徴点算出手段は、前記記憶手段のメモリ・バスの使用率が高い場合は前記記憶手段のメモリ・バスの使用率が低い場合よりも、前記縮小率の低い画像データを用いて、前記分割領域内の特徴点を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記特徴点算出手段は、前記画像処理装置が特定の動作を実施している場合は、該特定の動作を実施していない場合よりも、前記縮小率の低い画像データを用いて、前記分割領域内の特徴点を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記動画像中の異なる２つのフレーム画像から算出された特徴点の座標に基づいて、相関値の演算を行う演算手段をさらに備えることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記演算手段の演算の結果に基づいて、動きベクトルを検出する検出手段をさらに備えることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
動画像中の各フレーム画像をそれぞれ複数の領域に分割する領域分割工程と、
前記領域分割工程において分割された分割領域を分割領域ごとに読み出すための読み出し工程と、
読み出された前記分割領域ごとに、画像データを記憶する記憶工程と、
前記分割領域ごとの画像データを用いて、前記分割領域内の特徴点を算出する特徴点算出工程と、を備え、
前記領域分割工程では、前記分割領域の水平方向の画素数が所定の画素数以上となるように、前記各フレーム画像を複数の領域に分割することを特徴とする画像処理方法。
【請求項１１】
請求項１０に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１０に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出においてグリッド分割処理を行う画像処理装置に関するものである。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して像ブレ補正を施すためには、フレーム画像間の動き量を検出して複数枚の画像の位置合わせを行う必要がある。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器の情報を用いたり、撮影されたフレーム画像から動き量を推定したりする方法等がある。
【０００３】
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングによる動きベクトル検出がある。テンプレートマッチングでは、まず映像中のある２枚のフレーム画像の一方を原画像、もう一方を参照画像とする。そして、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、参照画像の各位置においてテンプレートブロック内の画素値の分布との相関を求める。このとき、参照画像中で最も相関が高くなる位置がテンプレートブロックの移動先であり、原画像上でのテンプレートブロックの位置を基準とした時の移動先への向きと移動量が動きベクトルとなる。
【０００４】
動きベクトルの検出率を向上させるため、特徴点を抽出し、抽出した特徴点にテンプレートブロックを配置し、フレーム画像間でテンプレートマッチングを行う技術がある。ここで、画像全体に対して特徴点抽出を行うと、特徴点の分布は不均一になることが多い。不均一な特徴点に対して得られた動きベクトルを像ブレ補正の用途で使用する場合、特徴点の集中した領域が主となる像ブレ補正となってしまう。
【０００５】
この問題を解決するため、特許文献１では、特徴点を均一に分布させるために、画像をグリッド状に分割して、特徴の大きさを表す特徴値を画素ごとに計算し、各グリッド内で特徴値が最も大きい画素を特徴点として抽出している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９２０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のような、画像をグリッド状に分割してグリッド毎に特徴点を求め、特徴点を中心としたテンプレートマッチングを行う処理をハードウェア化した場合、特徴点抽出処理のためにＤＲＡＭなどのメモリから画像データをグリッド単位で読み出す必要がある。
【０００８】
特徴点抽出処理では、複数ライン間でフィルタ処理を行うため、ラインバッファが必要となるが、ラインバッファの容量を大きくすると回路規模が大きくなり、ハードウェアの製造コストアップという問題を引き起こす。そこで、想定される分割グリッドの水平方向サイズ分のラインバッファを用意し、上記のように分割グリッド単位で読み出しを行い、特徴点抽出処理を行う必要が生じる。
【０００９】
通常、画像データをＤＲＡＭからベクトル検出を行うモジュールに転送する際には、ＤＭＡＣ（Direct Memory Access Controller）を介して、分割グリッドの１ライン単位ずつ処理を行う。ＤＭＡＣが一回の処理で転送可能なバースト長のデータ量よりも、分割グリッドの１ラインのデータ量が大きい場合には、１ラインを複数回に分けて転送処理する。しかしながら、ＤＭＡＣで転送するバースト長のデータ量に比べて、分割グリッドの１ライン当たりの水平サイズが小さい場合には、バースト長のデータに対する余剰分だけ、無効データの転送が発生し、メモリ・バスの転送効率が悪化するという課題が発生する。
【００１０】
また、テンプレートマッチングの移動量を相対的に大きく取るために、縮小した画像データに対して、テンプレートマッチング処理を行う方法がある。しかし、縮小した画像データに対して、縮小前の画像データと同一数の分割グリッドを設定して特徴点抽出処理を行う場合には、分割グリッドの水平サイズが小さくなくなり、上記のような無効データの転送の発生回数もより多くなる。
【００１１】
一方、特徴点抽出処理としては、縮小後の画像データで実施した方が、縮小前の画像データで特徴点を抽出して、特徴点の座標をスケール変換するよりも座標のズレが小さい。また、縮小後の画像データで特徴点抽出処理を行う方が、実際にテンプレートマッチング処理を行う画像で特徴点を検出するため、縮小処理によるエッジ部の潰れ等の影響を受けにくく、テンプレートマッチング性能も高い。したがって、ベクトル検出の観点では、縮小後の画像データで特徴点抽出処理を行う方が精度的なメリットがある。
【００１２】
本発明は、上述した課題に鑑みてなされたものであり、その目的は、縮小画像データに対してグリッド分割を行いベクトル検出処理を行う画像処理装置において、メモリ・バスの転送効率の低下を防ぎ、かつベクトル検出の精度低下を防止することである。
【課題を解決するための手段】
【００１３】
本発明に係わる画像処理装置は、動画像中の各フレーム画像をそれぞれ複数の領域に分割する領域分割手段と、前記領域分割手段によって分割された分割領域を分割領域ごとに読み出すための読み出し手段と、読み出された前記分割領域ごとに、画像データを記憶する記憶手段と、前記分割領域ごとの画像データを用いて、前記分割領域内の特徴点を算出する特徴点算出手段と、を備え、前記領域分割手段は、前記分割領域の水平方向の画素数が所定の画素数以上となるように、前記各フレーム画像を複数の領域に分割することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、縮小画像データに対してグリッド分割を行いベクトル検出処理を行う画像処理装置において、メモリ・バスの転送効率の低下を防ぎ、かつベクトル検出の精度低下を防止することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の画像処理装置の第１の実施形態であるデジタルカメラの構成を示すブロック図。
【図２】ベクトル検出回路の構成とその周辺回路の構成を示すブロック図。
【図３】ベクトル検出回路が読み出す画像データの分割グリッド配置を示す図。
【図４】ベクトル検出回路の動作を示すフローチャート。
【図５】特徴点算出部の構成を示すブロック図。
【図６】ベクトル検出回路を３回動作させた場合の処理を示す図。
【図７】第１の実施形態における画像データのグリッド配置を示す図。
【図８】第１の実施形態における画像データのグリッド配置を示す図。
【図９】第１の実施形態における画像データのグリッド配置を示す図。
【図１０】第１の実施形態におけるベクトル検出回路の処理フローを示す図。
【図１１】第１の実施形態におけるベクトル検出回路の処理フローＩを示す図。
【図１２】第１の実施形態におけるベクトル検出回路の処理フローIIを示す図。
【図１３】第１の実施形態におけるベクトル検出回路の処理フローIIIを示す図。
【図１４】分割グリッドの水平画素数とＤＭＡＣで処理する１画素当たりの転送サイクル数を示した図。
【図１５】第２の実施形態におけるベクトル検出回路の処理フローを示す図。
【図１６】第３の実施形態におけるベクトル検出回路の処理フローを示す図。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、本発明の画像処理装置の第１の実施形態であるデジタルカメラ１００の構成を示すブロック図である。図１において、結像光学系１０１はレンズおよび絞りなどを備えており、撮影の際、フォーカス調節および露出調節を行い、撮像素子１０２に光学像を結像させる。撮像素子１０２は、光学像を電気信号（アナログ画像信号）に変換する光電変換機能を有し、ＣＣＤやＣＭＯＳセンサ等で構成される。Ａ／Ｄ変換部１０３は撮像素子１０２からのアナログ画像信号をデジタル画像信号に変換する。
【００１８】
ＣＰＵ１１２は、デジタルカメラ１００全体の制御を司るマイクロコンピュータ等で構成され、各機能ブロックに対して動作指示を行い、各種の制御処理を実行する。バス１１４はシステムバスであり、バス１１５は画像データバスである。ＤＲＡＭ（メモリ）１０７は、データを記憶するメモリで、所定枚数の静止画像や所定時間の動画像、音声等のデータ、ＣＰＵ１１２の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える。メモリ制御部１０６は、ＣＰＵ１１２或いはデータ転送部１０５からの指示に応じて、ＤＲＡＭ１０７へのデータ書き込み及びデータ読み出しを制御する。また、メモリ制御部１０６は、ＤＲＡＭ１０７にアクセスしている画像処理部１０４などのモジュールからのデータ転送要求数を計数し、バス・メモリ帯域の使用率を算出する手段を有している。
【００１９】
不揮発性メモリ制御部１０８は、ＣＰＵ１１２からの指示に応じて、ＲＯＭ（不揮発性メモリ）１０９へのデータの書き込み及び読み出しを制御する。ＲＯＭ１０９は、電気的に消去・記録可能なメモリであり、ＥＥＰＲＯＭ等が用いられる。ＲＯＭ１０９には、ＣＰＵ１１２の動作用の定数、プログラム等が記憶される。
【００２０】
ＣＰＵ１１２は、バス１１４を介して画像処理部１０４、データ転送部１０５、メモリ制御部１０６、不揮発性メモリ制御部１０８、表示制御部１１０、操作部１１３、撮像素子１０２を制御する。ＣＰＵ１１２は、ＲＯＭ１０９に記録されたプログラムを実行することにより、本実施形態の各処理を実現する。表示部１１１は、液晶モニタ等から成り、表示制御部１１０により制御され、各種画像データ等を表示する。操作部１１３は、ユーザーにより操作されるスイッチやボタン等を含み、電源のＯＮ／ＯＦＦ、シャッターのＯＮ／ＯＦＦ等の操作に使用される。
【００２１】
画像処理部１０４は、各種の画像処理を行う部分及びバッファメモリ等から構成されており、ベクトル検出回路１１４を有する。データ転送部１０５は、データ転送を行う複数のＤＭＡＣ（Direct Memory Access Controller）で構成されている。本実施形態では、ＤＭＡＣが一回の処理で転送可能なバースト長が６４画素分のデータサイズであるものとする。
【００２２】
図２は、デジタルカメラ１００の画像処理部１０４が有するベクトル検出回路１１４の構成とその周辺部の構成を示すブロック図である。
【００２３】
図３は、ベクトル検出回路１１４が読み出す画像データの分割グリッド配置（領域分割）を示す図である。図３において、網点で示されるグリッド領域が、各グリッド単位（分割領域内）で特徴点を抽出する特徴点抽出グリッドとなる。図３の分割グリッド配置では、水平１２×垂直１０＝１２０個の特徴点抽出グリッドが存在する。特徴点抽出グリッドの周囲には、白色で示されるグリッド領域が特徴点を抽出しない周辺グリッドとして配置されている。周辺グリッドは、特徴点抽出は行わないが、テンプレートマッチング処理の画像領域として必要となる。
【００２４】
なお、特徴点抽出グリッドや周辺グリッドの数、サイズ、配置は、ベクトル検出回路１１４が備える不図示のグリッド配置設定手段により、検出対象となる動体の大きさや移動量に応じて設定される。
【００２５】
図４は、ベクトル検出回路１１４及びその周辺回路の動作を示すフローチャートである。ただし、図４では、縮小しない画像データに対してテンプレートマッチング処理を行う場合の動作を示している。以下、図２のブロック図、及び図４のフローチャートを用いて、ベクトル検出回路１１４の各ブロックの処理について説明する。
【００２６】
（ステップＳ４０１の処理）
データ転送部１０５が備える第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの入力画像データ２４１を図３に示されるように設定されたグリッドサイズで読み出す処理を行う。なお、入力画像データ２４１は画像処理部１０４で、各種画像処理が実施されている。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された画像データ２４１は、後段ブロックのテンプレートマッチング用画像生成部２０１及び特徴点算出部２０２に出力される。図３のグリッド配置の読み出し順番としては、周辺グリッド３０１（０，０）が矢印のようにライン毎に順番に読み出される。周辺グリッド３０１（０，０）の読み出し完了後に、水平方向に並ぶ周辺グリッド３０２（１，０）が同様の方法で読み出される。特徴点抽出グリッド３０３（１，１）の読み出し時は、特徴点算出部２０２により特徴点抽出が実施される。
【００２７】
（ステップＳ４０２の処理）
テンプレートマッチング用画像生成部２０１は、ベクトル検出時のテンプレートマッチングに使用するテンプレートマッチング用画像を生成し、第１のＷＲＤＭＡＣ２３１に出力する。テンプレートマッチング用画像生成部２０１は、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分をカットする。
【００２８】
（ステップＳ４０３の処理）
データ転送部１０５が有する第１のＷＲＤＭＡＣ２３１は、バス１１５を介してＤＲＡＭ１０７に対して、第１のテンプレートマッチング用画像データ２４２を書き込む処理を行う。また、ＤＲＡＭ１０７には前フレームで生成された第２のテンプレートマッチング用画像データ２４３が格納されている。
【００２９】
（ステップＳ４０４の処理）
ステップＳ４０２、ステップＳ４０３の処理と並列に、特徴点算出部２０２は、特徴点を算出する。ここで、図５は、特徴点算出部２０２の構成を示すブロック図である。特徴点算出部２０２は、特徴フィルタ部５０１、特徴評価部５０２、特徴点決定部５０３を有する。特徴フィルタ部５０１は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。本実施形態においては、バンドパスフィルタで画像信号の不要な高周波成分と低周波成分をカットし、水平方向の微分フィルタ処理を施した信号と垂直方向の微分フィルタ処理を施した信号の各々に対して、平滑化フィルタ処理を施す。
【００３０】
特徴評価部５０２は、特徴フィルタ部５０１によりフィルタ処理されたグリッドに対し、画素ごとに２つのエッジの交点や曲率が極大である曲線状の点など画素の周辺の微分値が多方向に大きい点を特徴評価式により特徴値として算出する。特徴点決定部５０３は、グリッド毎に、特徴評価部５０２によって画素ごとに算出された特徴値の最も大きい値を持つ画素を特徴点として決定する。なお、算出された特徴点は、特徴点算出部２０２が有するメモリやレジスタにグリッド毎に格納される。メモリやレジスタは、前フレームの特徴点と現フレームの特徴点を格納するための容量を有している。
【００３１】
テンプレートマッチング処理部２０３において、対応するグリッドのテンプレートマッチング処理が開始される際に、前フレームで算出された特徴点が、特徴点座標情報２５１として第２のＲＤＤＭＡＣ２２２に入力される。
【００３２】
（ステップＳ４０５の処理）
第２のＲＤＤＭＡＣ２２２では、前フレームで算出された特徴点座標情報２５２及びグリッド座標情報から、特徴点抽出グリッド３０３内の特徴点を中心として、矩形領域を設定する。設定されたサイズの矩形領域を、現フレームで生成された第１のテンプレートマッチング用画像データ２４２及び前フレームで生成された第２のテンプレートマッチング用画像データ２４３から読み出す。なお、第１のテンプレートマッチング用画像データからサーチ領域を読み出し、前フレームで生成された第２のテンプレートマッチング用画像データから、テンプレート領域を読み出す。読み出した各画像データはサーチ領域画像データ２５３、テンプレート領域画像データ２５４として、テンプレートマッチング処理部２０３へ出力される。
【００３３】
（ステップＳ４０６の処理）
テンプレートマッチング処理部２０３では、入力されたサーチ領域画像データ２５３、テンプレート領域画像データ２５４を用いて相関値を算出し、その相関値（演算の結果）からベクトル値を算出する。
【００３４】
本実施形態では、相関値の算出方法として差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す）を使用する。
【００３５】
【数１】
2018074250.tif 000003
【００３６】
…（式１）
（式１）において、ｆ（ｉ，ｊ）はテンプレート領域画像データ２５４内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）はサーチ領域画像データ２５３において相関値算出の対象となる領域内の各画素値を表す。相関値算出対象領域は、テンプレート領域画像データ２５４と同じ大きさである。そしてＳＡＤでは、両ブロック内の各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることで相関値Ｓ＿ＳＡＤを得ることが出来る。従って、相関値Ｓ＿ＳＡＤの値が小さいほど両ブロック間の輝度値の差分が小さい、つまりテンプレート領域画像データ２５４と相関値算出領域内のテクスチャが類似していることを表している。
【００３７】
なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限るものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いても良い。相関値の最小値の位置からグリッドの動きベクトル値を算出する
（ステップＳ４１０の処理）
縮小処理部２００は、ローバスフィルタと水平方向の１／２間引き回路で構成されている。入力画像データに対して水平方向サイズを１／２に縮小した画像データ２４４を生成する。
【００３８】
（ステップＳ４１１の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、水平方向サイズを１／２に縮小した画像データ２４４を書き込む処理を行う。
【００３９】
以上が、第１の実施形態における動きベクトル検出の処理手順である。この処理手順では１フレーム分の処理を示しているが、各フレームに対して同様の処理を施し、動画像中の毎フレームにおいて動きベクトルのデータを算出する。
【００４０】
次に、第１の実施形態のデジタルカメラ１００における画像処理の処理内容について図６〜図１３を参照して説明する。
【００４１】
図６は、ベクトル検出回路１１４の前段ブロック（テンプレートマッチング用画像生成部２０１、縮小処理部２００、特徴点算出部２０２）を３回動作させた場合の処理を示すブロック図である。図６において、各々１回目の動作を期間Ｉ、２回目の動作を期間II、３回目の動作を期間IIIとする。なお、テンプレートマッチング用画像生成部２０１は、期間Ｉ、期間IIは動作しない。縮小処理部２００は期間IIIは動作しない。特徴点算出部２０２は後述するように、期間Ｉ、期間II、期間IIIのいずれかの期間で動作する。
【００４２】
図７〜図９は、第１の実施形態における画像データのグリッド配置を示す図である。図１０〜図１３は、第１の実施形態におけるベクトル検出回路１１４の動作を示すフローチャートである。以下、図１０〜図１３のフローチャートに基づいて、ベクトル検出回路１１４の各ブロックの処理について説明する。なお、図４のフローチャートでは、縮小しない画像データに対してテンプレートマッチング処理を実施する場合を示したが、図１０〜図１３のフローチャートでは、原画像データを水平方向に１／４縮小処理した画像データに対してテンプレートマッチング処理を実施する場合を示す。
【００４３】
図１４は、分割グリッドの水平画素数とＤＭＡＣで処理する１画素当たりの転送サイクル数を示した図である。本実施形態におけるＤＭＡＣが一回の処理で転送可能なバースト長（記憶可能な長さ）は６４画素分のデータサイズであるため、分割グリッドの水平画素数が６４画素未満の場合には、無効データの読み出しが発生する。そのため、１画素当たりの転送サイクル数が増加し、転送効率が劣化する。反対に６４画素以上（６４画素数以上）であれば、１画素当たりの転送サイクル数は１サイクルに近づき、転送効率の劣化は発生しない。
【００４４】
（ステップＳ１００１の処理）
ベクトル検出回路１１４が有する不図示のグリッド配置設定手段により、検出対象となる動体の大きさや移動量に応じてグリッド数や、グリッドのサイズが設定される。基本的にこの処理はフレームごとに再設定されることはなく、検出対象となる物体が切り替わる際や、ズームなど撮影条件が変わる際に実施される。
【００４５】
（ステップＳ１００２の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素未満であるか否かを判定する。１２８画素未満と判定された場合には、ステップＳ１００４の処理フローＩへ遷移する。１２８画素以上と判定された場合には、ステップＳ１００３の処理へ遷移する。図７（ａ）に示されるグリッド配置では、特徴点抽出グリッド７０３の水平画素数が６４画素であり、ＣＰＵ１１２の判断により処理フローＩへ遷移する。
【００４６】
（ステップＳ１００３の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素以上２５６画素未満であるか否かを判定する。１２８画素以上２５６画素未満と判定された場合には、ステップＳ１００５の処理フローIIへ遷移する。２５６画素以上と判定された場合には、ステップＳ１００６の処理フローIIIへ遷移する。
【００４７】
図８（ａ）に示されるグリッド配置では、特徴点抽出グリッド７０３の水平画素数が１２８画素であり、ＣＰＵ１１２の判断により処理フローIIへ遷移する。図９（ａ）に示されるグリッド配置では、特徴点抽出グリッド７０３の水平画素数が２５６画素であり、ＣＰＵ１１２の判断により処理フローIIIへ遷移する。
【００４８】
ここで、図１１は、上記の処理フローＩを示すフローチャートである。以下、図６と図１１を用いて、処理フローＩの処理内容について説明する。
【００４９】
（ステップＳ１１０１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの入力画像データ２４１を図７（ｂ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された画像データ２４１は、縮小処理部２００及び特徴点算出部２０２に入力される。
【００５０】
（ステップＳ１１０２の処理）
縮小処理部２００では、入力画像データに対して水平方向サイズを１／２に縮小した画像データ２４４を生成する。
【００５１】
（ステップＳ１１０３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、水平方向サイズを１／２に縮小した画像データ２４４を書き込む処理を行う。
【００５２】
（ステップＳ１１０５の処理）
ステップＳ１１０３の処理と並列に、特徴点算出部２０２は、特徴点を算出する。算出された特徴点は、特徴点算部２０２に配置されたメモリやレジスタにグリッド毎に格納される。メモリやレジスタは、前フレームの特徴点と現フレームの特徴点を格納している。以上が、図６の期間Ｉに該当する処理で、次に期間IIの処理に移行する。
【００５３】
（ステップＳ１１１１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの水平方向１／２縮小画像データ２４４を図７（ｃ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／２縮小画像データ２４４は、縮小処理部２００に入力される。
【００５４】
（ステップＳ１１１２の処理）
縮小処理部２００では、水平方向１／２縮小画像データ２４４に対して水平方向サイズを１／２に縮小した画像データ（入力画像データ２４１に対する水平方向１／４縮小画像データ２４５）を生成する。
【００５５】
（ステップＳ１１１３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、入力画像データ２４１に対する水平方向１／４縮小画像データ２４５を書き込む処理を行う。以上が、図６の期間IIに該当する処理で、次に期間IIIの処理に移行する。
【００５６】
（ステップＳ１１２１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの水平方向１／４縮小画像データ２４５を図７（ｄ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／４縮小画像データ２４５は、テンプレートマッチング用画像生成部２０１に入力される。
【００５７】
（ステップＳ１１２２の処理）
テンプレートマッチング用画像生成部２０１は、ベクトル検出時のテンプレートマッチングに使用する第１のテンプレートマッチング用画像データ２４２を生成し、第１のＷＲＤＭＡＣ２３１に出力する。
【００５８】
（ステップＳ１１２３の処理）
データ転送部１０５が有する第１のＷＲＤＭＡＣ２３１は、バス１１５を介してＤＲＡＭ１０７に対して、第１のテンプレートマッチング用画像データ１２４２を書き込む処理を行う。また、ＤＲＡＭ１０７には前フレームで生成された第２のテンプレートマッチング用画像データ２４３が格納されている。
【００５９】
（ステップＳ１１３１の処理）
第２のＲＤＤＭＡＣ２２２では、前フレームで算出された特徴点座標を水平方向に１／４にスケール変換した座標を中心として矩形領域を設定する。設定されたサイズの矩形領域を、現フレームで生成された第１のテンプレートマッチング用画像データ２４２及び前フレームで生成された第２のテンプレートマッチング用画像データ２４３から読み出す。なお、第１のテンプレートマッチング用画像データ２４２からサーチ領域を読み出し、前フレームで生成された第２のテンプレートマッチング用画像データ２４３から、テンプレート領域を読み出す。
【００６０】
読み出した各画像データはサーチ領域画像データ２５３、テンプレート領域画像データ２５４として、テンプレートマッチング処理部２０３へ入力される。
【００６１】
（ステップＳ１１３２の処理）
テンプレートマッチング処理部２０３では、サーチ領域画像データ２５３、テンプレート領域画像データ２５４を用いて、相関値を算出し、その相関値から動きベクトル値を算出する。以上が、処理フローＩの処理内容となる。
【００６２】
次に、図１２は、上記の処理フローIIを示すフローチャートである。以下、図６と図１２を用いて、処理フローIIの処理内容について説明する。
【００６３】
（ステップＳ１２０１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの入力画像データ２４１を図８（ａ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された画像データ２４１は、縮小処理部２００に入力される。
【００６４】
（ステップＳ１２０２の処理）
縮小処理部２００では、入力画像データに対して水平方向サイズを１／２に縮小した画像データ２４４を生成する。
【００６５】
（ステップＳ１２０３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、水平方向サイズを１／２に縮小した画像データ２４４を書き込む処理を行う。以上が、図６の期間Ｉに該当する処理で、次に期間IIの処理に移行する。
【００６６】
（ステップＳ１２１１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７から、ベクトル検出対象となる現フレームの水平方向１／２縮小画像データ２４４を図８（ｃ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／２縮小画像データ２４４は、縮小処理部２００及び特徴点算出部２０２に入力される。
【００６７】
（ステップＳ１２１２の処理）
縮小処理部２００では、水平方向１／２縮小画像データ２４４に対して水平方向サイズを１／２に縮小した画像データ（入力画像データ２４１に対する水平方向１／４縮小画像データ２４５）を生成する。
【００６８】
（ステップＳ１２１３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、入力画像データ２４１に対する水平方向１／４縮小画像データ２４５を書き込む処理を行う。
【００６９】
（ステップＳ１２１５の処理）
ステップＳ１２１２の処理と並列に、特徴点算出部２０２は、特徴点を算出する。算出された特徴点は、特徴点算出部２０２に配置されたメモリやレジスタにグリッド毎に格納される。メモリやレジスタは、前フレームの特徴点と現フレームの特徴点を格納している。以上が、図６の期間IIに該当する処理で、次に期間IIIの処理に移行する。
【００７０】
（ステップＳ１２２１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７から、ベクトル検出対象となる現フレームの水平方向１／４縮小画像データ２４５を図８（ｄ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／４縮小画像データ２４５は、テンプレートマッチング用画像生成部２０１に入力される。
【００７１】
（ステップＳ１２２２の処理）
テンプレートマッチング用画像生成部２０１は、ベクトル検出時のテンプレートマッチングに使用する第１のテンプレートマッチング用画像データ２４２を生成し、第１のＷＲＤＭＡＣ２３１に出力する。
【００７２】
（ステップＳ１２２３の処理）
データ転送部１０５が有する第１のＷＲＤＭＡＣ２３１は、バス１１５を介してＤＲＡＭ１０７に対して、第１のテンプレートマッチング用画像データ２４２を書き込む処理を行う。また、ＤＲＡＭ１０７には前フレームで生成された第２のテンプレートマッチング用画像データ２４３が格納されている。
【００７３】
（ステップＳ１２３１の処理）
第２のＲＤＤＭＡＣ２２２では、前フレームで算出された特徴点座標を水平方向に１／２にスケール変換した座標を中心として矩形領域を設定する。設定されたサイズの矩形領域を、現フレームで生成された第１のテンプレートマッチング用画像データ２４２及び前フレームで生成された第２のテンプレートマッチング用画像データ２４３から読み出す。なお、第１のテンプレートマッチング用画像データ２４２からサーチ領域を読み出し、前フレームで生成された第２のテンプレートマッチング用画像データ２４３から、テンプレート領域を読み出す。読み出した各画像データはサーチ領域画像データ２５３、テンプレート領域画像データ２５４として、テンプレートマッチング処理部２０３へ出力される。
【００７４】
（ステップＳ１２３２の処理）
テンプレートマッチング処理部２０３では、入力されたサーチ領域画像データ２５３、テンプレート領域画像データ２５４を用いて、相関値を算出し、その相関値からベクトル値を算出する。以上が、処理フローIIの処理内容となる。
【００７５】
次に、図１３は、上記の処理フローIIIを示すフローチャートである。以下、図６と図１３を用いて、処理フローIIIの処理内容について説明する。
【００７６】
（ステップＳ１３０１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７からベクトル検出対象となる現フレームの入力画像データ２４１を図９（ａ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された画像データ２４１は、縮小処理部２００に入力される。
【００７７】
（ステップＳ１３０２の処理）
縮小処理部２００では、入力画像データに対して水平方向サイズを１／２に縮小した画像データ２４４を生成する。
【００７８】
（ステップＳ１３０３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、水平方向サイズを１／２に縮小した画像データ２４４を書き込む処理を行う。以上が、図６の期間Ｉに該当する処理で、次に期間IIの処理に移行する。
【００７９】
（ステップＳ１３１１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７から、ベクトル検出対象となる現フレームの水平方向１／２縮小画像データ２４４を図９（ｃ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／２縮小画像データ２４４は、縮小処理部２００に入力される。
【００８０】
（ステップＳ１３１２の処理）
縮小処理部２００では、水平方向１／２縮小画像データ２４４に対して水平方向サイズを１／２に縮小した画像データ（入力画像データ２４１に対する水平方向１／４縮小画像データ２４５）を生成する。
【００８１】
（ステップＳ１３１３の処理）
データ転送部１０５が有する第２のＷＲＤＭＡＣ２３２は、バス１１５を介してＤＲＡＭ１０７に対して、入力画像データ２４１に対する水平方向１／４縮小画像データ２４５を書き込む処理を行う。以上が、図６の期間IIに該当する処理で、次に期間IIIの処理に移行する。
【００８２】
（ステップＳ１３２１の処理）
データ転送部１０５が有する第１のＲＤＤＭＡＣ２２１は、バス１１５を介してＤＲＡＭ１０７から、ベクトル検出対象となる現フレームの水平方向１／４縮小画像データ２４５を図９（ｄ）に示されるグリッドサイズで分割して読み出す処理を行う。第１のＲＤＤＭＡＣ２２１によりグリッド単位で読み出された水平方向１／４縮小画像データ２４５は、テンプレートマッチング用画像生成部２０１及び特徴点算出部２０２に入力される。
【００８３】
（ステップＳ１３２２の処理）
テンプレートマッチング用画像生成部２０１は、ベクトル検出時のテンプレートマッチングに使用する第１のテンプレートマッチング用画像データ２４２を生成し、第１のＷＲＤＭＡＣ２３１に出力する。
【００８４】
（ステップＳ１３２３の処理）
データ転送部１０５が有する第１のＷＲＤＭＡＣ２３１は、バス１１５を介してＤＲＡＭ１０７に対して、第１のテンプレートマッチング用画像データ２４２を書き込む処理を行う。また、ＤＲＡＭ１０７には前フレームで生成された第２のテンプレートマッチング用画像データ２４３が格納されている。
【００８５】
（ステップＳ１３２５の処理）
ステップＳ１３２２の処理と並列に、特徴点算出部２０２は、特徴点を算出する。算出された特徴点は、特徴点算出部２０２に配置されたメモリやレジスタにグリッド毎に格納される。メモリやレジスタは、前フレームの特徴点と現フレームの特徴点を格納している。
【００８６】
（ステップＳ１３３１の処理）
第２のＲＤＤＭＡＣ２２２では、前フレームで算出された特徴点座標を中心として、矩形領域を設定する。設定されたサイズの矩形領域を、現フレームで生成された第１のテンプレートマッチング用画像データ２４２及び前フレームで生成された第２のテンプレートマッチング用画像データ２４３から読み出す。なお、第１のテンプレートマッチング用画像データ２４２からサーチ領域を読み出し、前フレームで生成された第２のテンプレートマッチング用画像データ２４３から、テンプレート領域を読み出す。読み出した各画像データはサーチ領域画像データ２５３、テンプレート領域画像データ２５４として、テンプレートマッチング処理部２０３へ出力される。
【００８７】
（ステップＳ１３３２の処理）
テンプレートマッチング処理部２０３では、入力されたサーチ領域画像データ２５３、テンプレート領域画像データ２５４を用いて、相関値を算出し、その相関値からベクトル値を算出する。以上が、処理フローIIIの処理内容となる。
【００８８】
次に再度、図１０のフローチャートに戻る。
【００８９】
（ステップＳ１００７の処理）
マッチング処理対象となる全ての画像データの処理が完了した場合には、処理を終了する。処理が完了していない場合には、ステップＳ１００１に戻り、処理を繰り返す。
【００９０】
以上のように、図７〜図９のグリッド配置のいずれの場合にも、特徴点抽出グリッドの水平方向サイズが６４画素以上となり、第１のＲＤＤＭＡＣ２４５による転送効率の劣化が発生することを防止している。また、転送効率の劣化が発生しない条件で、可能な限り特徴点を算出する画像を縮小率の高い（画像サイズの小さい）画像データで実施することにより、ベクトル検出の精度低下を防止している。
【００９１】
従って、本実施形態によれば、縮小画像データに対してベクトル検出処理を行うことにより、メモリ・バスの転送効率の低下を防ぎ、かつベクトル検出の精度低下を防止することが可能となる。
【００９２】
＜第２の実施形態＞
本発明の第２の実施形態のデジタルカメラにおける処理内容について図１５を参照して説明する。図１５は、第２の実施形態におけるベクトル検出回路の動作を示すフローチャートである。以下、図１５に基づいて、ベクトル検出回路の各ブロックの処理について説明する。
【００９３】
（ステップＳ１５００の処理）
ベクトル検出回路１１４が有する不図示のグリッド配置設定手段により、検出対象となる動体の大きさや移動量に応じてグリッド数や、グリッドのサイズが設定される。基本的に本処理はフレームごとに再設定されることはなく、検出対象となる物体が切り替わる際や、ズームなど撮影条件が変わる際に実施される。
【００９４】
（ステップＳ１５０１の処理）
メモリ制御部１０６によりバス・メモリ帯域の使用率を算出し、使用率が規定値以上（本実施形態では６０％以上）であった場合には、ステップＳ１５０２の処理に遷移する。規定値未満の場合には、ステップＳ１５０６の処理に遷移する。
【００９５】
（ステップＳ１５０２の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素未満であるか否かを判定する。１２８画素未満と判定された場合には、ステップＳ１５０４の処理フローＩへ遷移する。１２８画素以上と判定された場合には、ステップＳ１５０３の処理へ遷移する。
【００９６】
（ステップＳ１５０３の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素以上２５６画素未満であるか否かを判定する。１２８画素以上２５６画素未満と判定された場合には、ステップＳ１５０５の処理フローIIへ遷移する。２５６画素以上と判定された場合には、ステップＳ１５０６の処理フローIIIへ遷移する。
【００９７】
（ステップＳ１５０４の処理）
ここでの処理は、図１１の処理フローＩと同様となるため説明は省略する。
【００９８】
（ステップＳ１５０５の処理）
ここでの処理は、図１２の処理フローIIと同様となるため説明は省略する。
【００９９】
（ステップＳ１５０６の処理）
ここでの処理は、図１３の処理フローIIIと同様となるため説明は省略する。
【０１００】
（ステップＳ１５０７の処理）
マッチング処理対象となる全ての画像データの処理が完了した場合には、処理を終了する。処理が完了していない場合には、ステップＳ１５００に戻り、処理を繰り返す。
【０１０１】
以上のように、第２の実施形態によれば、メモリ・バスの使用率が低い場合には、可能な限り特徴点を算出する画像を縮小率の高い（画像サイズの小さい）画像データで実施することにより、ベクトル検出の精度低下を防止することが可能となる。
【０１０２】
＜第３の実施形態＞
本発明の第３の実施形態のデジタルカメラにおける処理内容について図１６を参照して説明する。図１６は、第３の実施形態におけるベクトル検出回路の動作を示すフローチャートである。以下、図１６に基づいて、ベクトル検出回路の各ブロックの処理について説明する。
【０１０３】
（ステップＳ１６００の処理）
ベクトル検出回路１１４が有する不図示のグリッド配置設定手段により、検出対象となる動体の大きさや移動量に応じてグリッド数や、グリッドのサイズが設定される。基本的に本処理はフレームごとに再設定されることはなく、検出対象となる物体が切り替わる際や、ズームなど撮影条件が変わる際に実施される。
【０１０４】
（ステップＳ１６０１の処理）
ベクトル検出処理として並行して、表示制御部１１０により表示部１１１に対して撮像中の画像を表示する処理（特定の処理）を行う処理負荷に応じて、続く処理内容を変更する。本実施形態では、撮像した画像データを表示部１１１により毎フレーム表示する処理動作モードの場合には、ステップＳ１６０２の処理に遷移する。一方、撮像した画像データを表示部１１１により数フレーム置きに間引いて表示する処理動作モードの場合には、ステップＳ１６０６の処理に遷移する。
【０１０５】
（ステップＳ１６０２の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素未満であるか否かを判定する。１２８画素未満と判定された場合には、ステップＳ１６０４の処理フローＩへ遷移する。１２８画素以上と判定された場合には、ステップＳ１６０３の処理へ遷移する。
【０１０６】
（ステップＳ１６０３の処理）
ＣＰＵ１１２の処理により、特徴点抽出グリッドの水平画素数が１２８画素以上２５６画素未満であるか否かを判定する。１２８画素以上２５６画素未満と判定された場合には、ステップＳ１６０５の処理フローIIへ遷移する。２５６画素以上と判定された場合には、ステップＳ１６０６の処理フローIIIへ遷移する。
【０１０７】
（ステップＳ１６０４の処理）
ここでの処理は、図１１の処理フローＩと同様となるため説明は省略する。
【０１０８】
（ステップＳ１６０５の処理）
ここでの処理は、図１２の処理フローIIと同様となるため説明は省略する。
【０１０９】
（ステップＳ１６０６の処理）
ここでの処理は、図１３の処理フローIIIと同様となるため説明は省略する。
【０１１０】
（ステップＳ１６０７の処理）
マッチング処理対象となる全ての画像データの処理が完了した場合には、処理を終了する。処理が完了していない場合には、ステップＳ１６００に戻り、処理を繰り返す。
【０１１１】
以上のように、第３の実施形態によれば、表示部１１１に表示するフレームレートなどの動作モードに応じて、特徴点抽出を行う画像データを変えることにより、ベクトル検出の精度低下を防止することが可能となる。
【０１１２】
なお、上記の３つの実施形態では、入力画像データ２４１に対して水平方向に１／４縮小した画像データに対して、マッチング処理を実施しているが、縮小率は上記に限定されるものではない。また、上記の実施形態では、図１０のステップＳ１００２およびステップＳ１００３において、１２８画素、２５６画素を閾値として設定しているが、画像処理装置の有するＤＭＡＣの転送性能により、上記の画素数以外の値に設定してもよい。
【０１１３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１４】
１０１：結像光学系、１０２：撮像素子、１０３：Ａ／Ｄ変換部、１０４：画像処理部、１０５：データ転送部、１１２：ＣＰＵ、１１４：ベクトル検出回路
【図１】
2018074250.tif 000004
【図２】
2018074250.tif 000005
【図３】
2018074250.tif 000006
【図４】
2018074250.tif 000007
【図５】
2018074250.tif 000008
【図６】
2018074250.tif 000009
【図７】
2018074250.tif 000010
【図８】
2018074250.tif 000011
【図９】
2018074250.tif 000012
【図１０】
2018074250.tif 000013
【図１１】
2018074250.tif 000014
【図１２】
2018074250.tif 000015
【図１３】
2018074250.tif 000016
【図１４】
2018074250.tif 000017
【図１５】
2018074250.tif 000018
【図１６】
2018074250.tif 000019