(57)【特許請求の範囲】
【請求項１】
被写体を撮像する撮像手段を備えた撮像装置において、
前記撮像手段の出力信号としての時間的に連続する画像データ間の動きベクトルデータを算出する算出手段と、
前記撮像手段の出力信号に対して直交変換を行う直交変換手段と、
前記直交変換手段の直交変換により得られた直交変換係数に基づいて、前記撮像手段の出力信号が水平方向に相関が高いと判定した場合は、前記動きベクトルデータの水平成分を無効と判別し、前記撮像手段の出力信号が垂直方向に相関が高いと判定した場合は、前記動きベクトルデータの垂直成分を無効と判別する判別手段と、
前記判別手段の判別結果に基づき、前記動きベクトルデータを垂直方向及び水平方向それぞれについて動きベクトルとして出力する評価手段と、
を備えることを特徴とする撮像装置。
【請求項２】
前記算出手段により前記動きベクトルデータを算出するブロックと、前記直交変換手段により直交変換を行うブロックとは同一であることを特徴とする請求項１記載の撮像装置。
【請求項３】
前記判別手段は、前記直交変換手段により前記ブロックについて直交変換を行った時の直交変換係数の分布の状況に基づき、前記撮像手段の出力信号が垂直方向或いは水平方向に相関を有するか否かを判別することを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記判別手段により前記動きベクトルデータの水平成分或いは垂直成分を無効と判別した場合の処理は、無効な動きベクトルに無効を示すフラグを付加する処理、無効な動きベクトルをマスクする処理を含む群から選択されることを特徴とする請求項１に記載の撮像装置。
【請求項５】
前記直交変換手段による直交変換は、離散コサイン変換を含む群から選択されることを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項６】
被写体を撮像する撮像手段を備えた撮像装置の制御方法において、
前記撮像手段の出力信号としての時間的に連続する画像データ間の動きベクトルデータを算出する算出ステップと、
前記撮像手段の出力信号に対して直交変換を行う直交変換ステップと、
前記直交変換ステップの直交変換により得られた直交変換係数に基づいて、前記撮像手段の出力信号が水平方向に相関が高いと判定した場合は、前記動きベクトルデータの水平成分を無効と判別し、前記撮像手段の出力信号が垂直方向に相関が高いと判定した場合は、前記動きベクトルデータの垂直成分を無効と判別する判別ステップと、
前記判別ステップの判別結果に基づき、前記動きベクトルデータを垂直方向及び水平方向それぞれについて動きベクトルとして出力する評価ステップと、
を備えることを特徴とする制御方法。
【請求項７】
請求項６に記載の撮像装置の制御方法をコンピュータに実行させるためのコンピュータで読み取り可能なプログラムコードを有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手持ち撮影時のブレを抑える場合に適用される撮像装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、撮像装置では、手持ち撮影時のブレを抑える防振機能が求められている。このために、撮像装置で撮影した時間的に連続する画像と画像の間の動きベクトルを算出する。算出した動きベクトルを基に、レンズ、撮像素子、もしくは画像信号を格納するメモリ等を制御することで、防振を実現している。
【０００３】
正確な防振を実現するためには、精度の高い動きベクトルを求める必要がある。ここで、被写体が特定方向に相関を持たない場合は、信頼性の高い動きベクトルが検出される。しかし、被写体が垂直方向または水平方向に相関を持つ場合には、動きベクトルの信頼性が低い。なお、被写体が垂直方向または水平方向に相関を持つ場合とは、撮像装置により例えばオフィスの窓に設置されているブラインドなどを被写体の背景の一部として撮影した場合などが該当する。
【０００４】
ところで、従来においては、高精度な動きベクトルの算出に関する技術が提案されている（例えば、特許文献１参照）。該提案では、相関演算手段により現在の画像と１フレーム前の画像との相関値を求め、相関値から動きベクトル検出と最小の相関値の検出とを行う。そして、動きベクトル評価手段により各々の動きベクトルの最小値の中から大きいもののみを有効とし、動きベクトル決定手段により全体の動きベクトルを決定する。
【０００５】
また、動きベクトルの算出に関しては別の技術が提案されている（例えば、特許文献２参照）。該提案では、求めた相関値に基づいて、画面（処理回路に入力されている信号処理上の画面）全体の動きベクトルを算出する際、以下の処理を行う。前記相関値の最小値が代表点の周囲に３個以上存在するか或いは隣り合わない同一の最小値が一対存在する場合に、これを検知する。そして、分割した画面の動きベクトル検出のための相関値を無効にするものである。
【特許文献１】特開平０６−２０３１６４号公報
【特許文献２】特開平０６−１２１２１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、撮像装置で撮影した画像がマッチングブロック（例えば図１１に示す複数に分割した各ブロック）において垂直方向または水平方向に画面内相関を持つ場合、動きベクトル自体を無効と判別する。そのため、例えば垂直方向にのみ相関がある被写体において、実際は動きベクトルの水平成分は有効であるにも拘らず無効と判断されてしまう。従って、最終的な唯一の動きベクトルを算出する際に用いられる動きベクトルのデータ数が著しく減ってしまい、動きベクトルの算出精度が低下する、といった課題があった。
【０００７】
本発明の目的は、動きベクトルの算出精度を向上させることを可能とした撮像装置、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上述の目的を達成するために、本発明の撮像装置は、被写体を撮像する撮像手段を備えた撮像装置において、前記撮像手段の出力信号としての時間的に連続する画像データ間の動きベクトルデータを算出する算出手段と、前記撮像手段の出力信号に対して直交変換を行う直交変換手段と、前記直交変換手段の直交変換により得られた直交変換係数に基づいて、前記撮像手段の出力信号が水平方向に相関が高いと判定した場合は、前記動きベクトルデータの水平成分を無効と判別し、前記撮像手段の出力信号が垂直方向に相関が高いと判定した場合は、前記動きベクトルデータの垂直成分を無効と判別する判別手段と、前記判別手段の判別結果に基づき、前記動きベクトルデータを垂直方向及び水平方向それぞれについて動きベクトルとして出力する評価手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、直交変換係数に基づいて、撮像手段の出力信号が水平方向に相関が高いと判定した場合は、動きベクトルデータの水平成分を無効と判別し、撮像手段の出力信号が垂直方向に相関が高いと判定した場合は、動きベクトルデータの垂直成分を無効と判別する判別手段の判別結果に基づき、前記動きベクトルデータを垂直方向及び水平方向それぞれについて動きベクトルとして出力するため、動きベクトルの算出精度を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面を参照して説明する。
【００１１】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る撮像装置の構成を示すブロック図である。
【００１２】
図１において、撮像装置は、レンズ１、入力キー２、主マイクロコンピュータ（以下主マイコンと略記）３、同期信号発生器（ＳＳＧ）４、タイミング発生器（ＴＧ）５、撮像素子（ＣＣＤ）６を備えている。撮像装置は、更に、アナログフロントエンド（ＡＦＥ）回路７、カメラ信号処理回路８、動きベクトル検出回路９、データバス１０、デジタル−アナログ （Ｄ／Ａ）変換器１１、モニタ１２を備えている。
【００１３】
レンズ１は、被写体の光学像を透過させ、撮像素子６に結像させる。入力キー２は、撮影の開始／一時停止等に用いる。主マイコン３は、データバス１０を介して各部の制御を司るものであり、プログラムに基づき後述の図９、図１０、図１３、図１４の各フローチャートに示す処理を実行する。同期信号発生器４は、同期信号を発生し、タイミング発生器５を駆動する。タイミング発生器５は、撮像素子６の信号読み出しタイミングの制御、シャッタスピードの制御を行う。撮像素子６は、撮像動作に伴いレンズ１により結像された被写体の光学像をアナログ撮像信号に光電変換する。
【００１４】
ＡＦＥ回路７は、撮像素子６から出力されるアナログ撮像信号に対し、リセットノイズ除去、利得調整、アナログ−デジタル（Ａ／Ｄ）変換等の処理を施す。カメラ信号処理回路８は、ＡＦＥ回路７から出力されるデジタル撮像信号に対し、アパーチャ補正、ガンマ補正、ホワイトバランス等の撮像系のカメラ信号処理を施す。Ｄ／Ａ変換器１１は、カメラ信号処理回路８から出力されるデジタル信号をアナログ信号に変換した後、モニタ１２に表示する。動きベクトル検出回路９は、カメラ信号処理回路８から出力される輝度信号に基づき、動きベクトルを検出（算出）する。
【００１５】
次に、撮像装置の動きベクトル検出回路９の構成及び動きベクトルの検出（算出）動作について図２乃至図８を参照しながら説明する。
【００１６】
図２は、動きベクトル検出回路９の構成を示すブロック図である。図３（ａ）は、動きベクトル検出におけるサーチ領域を示す図、図３（ｂ）は、テンプレート領域を示す図である。図４は、単一のマッチングブロックにおけるシフト演算を説明する図である。図５は、動きベクトル検出回路９の帯域通過フィルタ９０１の出力波形を示す図である。
【００１７】
図６（ａ）〜図６（ｄ）は、２値化信号のパターンの例を示す図である。図７（ａ）は、動きベクトル検出回路の直交変換回路に入力される直交変換ブロックを示す図、図７（ｂ）は、直交変換回路から出力される直交係数を示す図である。図８（ａ）は、画像解析に用いる係数領域ＲＨを示す図、図８（ｂ）は、係数領域ＲＶを示す図、図８（ｃ）は、係数領域ＲＤを示す図である。
【００１８】
図２において、動きベクトル検出回路９は、帯域通過フィルタ９０１、零クロス検出回路９０２、サーチメモリ９０３、テンプレートメモリ９０４、シフトレジスタ９０５、９０６を備えている。動きベクトル検出回路９は、更に、エクスクルーシブノア（ＥＸＮＯＲ）積算回路９０７、最大値検出回路９０８、ベクトル値評価回路９０９、直交変換回路９１０、係数解析回路９１１を備えている。
【００１９】
動きベクトル検出回路９の構成を、動きベクトルの算出動作と共に説明する。動きベクトルは、時間的に連続する２つのフィールド（或いはフレーム）の画像から算出する。図３（ａ）に示す前フィールドの画像をサーチ領域と呼び、図３（ｂ）に示す現フィールドの画像をテンプレート領域と呼ぶ。テンプレート領域はサーチ領域よりも狭い領域となっている。テンプレート領域は複数のマッチングブロックに分割される。図３（ｂ）では、テンプレート領域を横方向に５分割すると共に縦方向に４分割している例を示しているが、分割数はこれに限定されるものではない。
【００２０】
図４に示すように、マッチングブロックとして分割した各テンプレート領域を、分割した各サーチ領域内で後述の通りシフトさせる。テンプレート領域とサーチ領域の相関値が最大となるときのシフト量を、動きベクトルとする。図４では、単一のテンプレート領域を縦３２ライン及び横３２画素の大きさとした例を示しているが、これに限定されるものではない。
【００２１】
帯域通過フィルタ９０１は、カメラ信号処理回路８から出力される輝度信号から所定周波数成分を抽出し、所定周波数成分を２値化する。ここで、図５に示す横軸は画面（動きベクトル検出回路９に入力されている信号処理上の画面）上の座標位置、縦軸は信号レベルであり、２次元空間の一断面を示している。更に、図５の符号５０１、５０２、５０３で示す曲線は、それぞれ異なる照明条件の下で撮像装置により同じ被写体を撮影した場合の帯域通過フィルタ９０１の出力波形を示す。
【００２２】
動きベクトル検出回路９では、帯域通過フィルタ９０１により輝度信号から直流成分を除去し特定の周波数成分を抽出するので、照明条件の変化に依存しない２値化パターンを得ることができる。つまり、帯域通過フィルタ９０１の出力波形５０１、５０２、５０３では、図５に示すように零クロス点は照明条件に拘らず一定である。この零クロス点は、被写体が動けばそれに応じて移動するので、零クロス点により動きベクトルを検出することができる。
【００２３】
零クロス検出回路９０２は、帯域通過フィルタ９０１の出力信号の零クロス点を検出し、零レベルを閾値として帯域通過フィルタ９０１の出力信号を２値化する。帯域通過フィルタ９０１では、二次元フィルタにより、又は垂直方向フィルタと水平方向フィルタの組み合わせにより、垂直方向と水平方向の双方に対して２値化信号のパターンを抽出する。抽出した２値化信号のパターンの例を図６（ａ）〜図６（ｄ）に示す。
【００２４】
サーチメモリ９０３は、零クロス検出回路９０２から出力される２値化信号のうち前フィールドの画像信号（サーチ領域）を１フィールド分遅延させる。テンプレートメモリ９０４は、零クロス検出回路９０２から出力される２値化信号のうち現フィールドの画像信号をテープレート領域分だけ格納する、シフトレジスタ９０５、９０６、ＥＸＮＯＲ積算回路９０７、及び最大値検出回路９０８は、マッチング回路を構成している。
【００２５】
シフトレジスタ９０５、９０６は、互いに１フィールド（或いは１フレーム）の時間差を有するサーチメモリ９０３、テンプレートメモリ９０４の各出力をそれぞれ一時記憶し、画面内で図４に示すように上下左右にシフトした信号を出力する。
【００２６】
ＥＸＮＯＲ積算回路９０７は、シフトレジスタ９０５、９０６の各出力の排他的論理和を反転したものを出力し、図４に示すような画面内の所定ブロック単位でその絶対値和を算出する。つまり、ＥＸＮＯＲ積算回路９０７は、シフトレジスタ９０５、９０６の各出力が一致したときに“１” を積算し、一致しないときに“０”を積算する。ＥＸＮＯＲ積算回路９０７の出力値は、垂直方向及び水平方向の各シフト量に対応する所定のマッチングブロック内の相関値に相当する。
【００２７】
最大値検出回路９０８は、画面を区分するマッチングブロック毎に、シフトレジスタ９０５、９０６の各シフト量に対するＥＸＮＯＲ積算回路９０７の出力、即ち相関値を相互に比較する。最大値検出回路９０８は、ＥＸＮＯＲ積算回路９０７の出力が最大になるとき、即ちフィールド（またはフレーム）間の相関が最大になるときの垂直方向及び水平方向の各シフト量を動きベクトル（ｖｖｅｃ、ｈｖｅｃ）として出力する。このようにして、画面を分割するマッチングブロック毎に動きベクトルが検出（算出）される。
【００２８】
以上の処理により、図３（ｂ）に示すように１フィールド内の各マッチングブロックについて、動きベクトルを検出することができる。主マイコン３は、各マッチングブロックの動きベクトルの平均を算出する等の演算を行い、最終的なフィールド（フレーム）間の動きベクトルを求める。
【００２９】
一方、零クロス検出回路９０２の出力信号は、直交変換回路９１０へも送られる。直交変換回路９１０は、零クロス検出回路９０２の出力信号に対し直交変換を行う。本実施の形態では、直交変換として、コサイン関数を使う離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を例に挙げるものとする。
【００３０】
図４に示す３２ライン×３２画素のテンプレート領域を１つのマッチングブロックとすると、直交変換回路９１０に入力される直交変換を行うマッチングブロックは、テンプレート領域と同一のものであり、形状は図７（ａ）に示すような３２画素×３２画素単位である。即ち、最大値検出回路９０８で動きベクトルを算出するマッチングブロックと、直交変換回路９１０で直交変換を行うマッチングブロックとは同一である。このとき、直交変換回路９１０により、３２画素×３２画素のテンプレート領域に含まれる全ての周波数帯域に関して直交変換係数（以下直交係数と略記）を算出することができる。
【００３１】
直交変換回路９１０は、図７（ｂ）に示すような水平成分及び垂直成分それぞれに３２通りの直交係数を出力する。係数解析回路９１１は、直交変換回路９１０から出力される直交係数を解析することで、撮像素子６の出力信号に対して上記処理が行われた信号、即ち、零クロス検出回路９０２の出力信号が水平方向或いは垂直方向に相関を持っているか否かを判別する。
【００３２】
あるテンプレート領域の被写体が水平方向及び垂直方向の何れにも相関を持たない場合、零クロス検出回路９０２の出力である２値化信号のパターンは例えば図６（ａ）に示すようになる。これに対し、あるテンプレート領域の上半分の被写体が水平方向に相関が高い場合、２値化信号のパターンは例えば図６（ｂ）に示すようになる。また、あるテンプレート領域の右半分の被写体が垂直方向に相関が高い場合、２値化信号のパターンは例えば図６（ｃ）に示すようになる。更に、あるテンプレート領域の対角方向に相関が高い場合、２値化信号のパターンは例えば図６（ｄ）に示すようになる。
【００３３】
図６（ｂ）に示す水平方向に相関が高い画像に直交変換を施すと、図７（ｂ）に示す直交係数分布は図８（ａ）の係数領域ＲＨ８０１の部分に直交係数が集中する。係数領域ＲＨ８０１は水平方向には１乃至３程度の直交係数を持ち、垂直方向にはＤＣ成分以外の３１の直交係数を有するが、これに限定されるものではない。
【００３４】
また、図６（ｃ）に示す垂直方向に相関が高い画像に直交変換を施すと、図７（ｂ）に示す直交係数分布は図８（ｂ）の係数領域ＲＶ８０２の部分に直交係数が集中する。係数領域ＲＶ８０２は水平方向にはＤＣ成分以外の３１の直交係数を持ち、垂直方向には１乃至３程度の幅の直交係数を有するが、これに限定されるものではない。
【００３５】
また、図６（ｄ）に示す対角方向に相関が高い画像に直交変換を施すと、図７（ｂ）に示す直交係数分布は図８（ｃ）の係数領域ＲＤ８０３の部分に直交係数が集中する。係数領域ＲＤ８０３は対角線上のＤＣ成分以外の直交係数を持ち、その領域は一定の幅と長さを有するが、特定の値に限定されるものではない。
【００３６】
係数解析回路９１１は、上述した直交係数を解析した結果に基づき以下の処理を行う。係数解析回路９１１は、係数領域ＲＨ８０１の部分に直交係数が集中していることが判明した場合、撮像装置の入力画像は水平方向に相関が高いと判別する。これに伴い、係数解析回路９１１は、水平方向の動きベクトル（動きベクトルデータの水平成分）を無効にする旨のフラグを立てる。
【００３７】
また、係数解析回路９１１は、係数領域ＲＶ８０２の部分に直交係数が集中していることが判明した場合、撮像装置の入力画像は垂直方向に相関が高いと判別する。これに伴い、係数解析回路９１１は、垂直方向の動きベクトル（動きベクトルデータの垂直成分）を無効にする旨のフラグを立てる。
【００３８】
また、係数解析回路９１１は、係数領域ＲＤ８０３の部分に直交係数が集中していることが判明した場合、撮像装置の入力画像は対角方向に相関が高いと判別する。これに伴い、係数解析回路９１１は、垂直方向と水平方向の動きベクトル（動きベクトルデータの垂直方向及び水平成分）を無効にする旨のフラグを立てる。
【００３９】
ベクトル値評価回路９０９は、係数解析回路９１１の出力信号に基づき、時間的に連続する２つのフィールド（或いはフレーム）間から算出した動きベクトルデータを垂直方向及び水平方向それぞれについて評価し、動きベクトルとして出力する。即ち、ベクトル値評価回路９０９は、係数解析回路９１１からの有効／無効フラグを付加した動きベクトル（ｖ_ｖｅｃ、ｈ_ｖｅｃ）を出力し、データバス１０を介して主マイコン３に送る。これにより、主マイコン３は、上述したように最終的なフィールド（フレーム）間の動きベクトルを算出する。
【００４０】
次に、本実施の形態の撮像装置における動作を図９及び図１０のフローチャートを参照しながら説明する。
【００４１】
図９及び図１０は、撮像装置における動きベクトル検出及び直交変換処理を示すフローチャートである。
【００４２】
図９及び図１０において、ステップＳ９０１で、主マイコン３により本処理が開始されると、ステップＳ９０２で、動きベクトル検出回路９は、最大値検出回路９０８により動きベクトル（ｖｖｅｃ、ｈｖｅｃ）を求める。ステップＳ９０２と並行してステップＳ９０３では、零クロス検出回路９０２は、２値化信号を直交変換回路９１０へ送る。直交変換回路９１０は、２値化信号に対し直交変換（本実施の形態では離散コサイン変換）を行い、直交係数を係数解析回路９１１に送る。ステップＳ９０４で、係数解析回路９１１は、図７（ｂ）に示す３２×３２＝１０２４個の直交係数の絶対値和Ｓを算出する。
【００４３】
ステップＳ９０５では、係数解析回路９１１は、図８（ｃ）に示す係数領域ＲＤ８０３の直交係数の絶対値和Ｓｄを算出し、更にステップＳ９０６で、図８（ｂ）に示す係数領域ＲＶ８０２の直交係数の絶対値和Ｓｖを算出する。ステップＳ９０８で、係数解析回路９１１は、ＳｖをＳで除した値「Ｓｖ／Ｓ」が規定の閾値以上であるか否かを判断する。「Ｓｖ／Ｓ」が閾値以上の場合、撮像装置の入力画像が垂直方向に強い相関を持つので、ステップＳ９１３で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが無効であると判別する。
【００４４】
「Ｓｖ／Ｓ」が閾値以下の場合、ステップＳ９１０で、係数解析回路９１１は、ＳｄをＳで除した値「Ｓｄ／Ｓ」が規定の閾値以上であるか否かを判断する。「Ｓｄ／Ｓ」が閾値以上の場合、被写体は対角方向に相関を有するので、垂直方向の動きベクトルｖｖｅｃ、水平方向の動きベクトルｈｖｅｃ共に無効となる。従って、ステップＳ９１３で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが無効であると判別する。ＳｖをＳで除した値「Ｓｖ／Ｓ」が閾値以下で、ＳｄをＳで除した値「Ｓｄ／Ｓ」も閾値以下の場合、ステップＳ９１２で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが有効であると判別する。
【００４５】
ステップＳ９０６と並行してステップＳ９０７で、係数解析回路９１１は、図８（ａ）に示す係数領域ＲＨ８０１の直交係数の絶対値和Ｓｈを算出する。ステップＳ９０９で、係数解析回路９１１は、ＳｈをＳで除した値「Ｓｈ／Ｓ」が規定の閾値以上であるか否かを判断する。「Ｓｈ／Ｓ」が閾値以上の場合、入力画像が水平方向に強い相関を持つので、ステップＳ９１５で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが無効であると判別する。
【００４６】
「Ｓｈ／Ｓ」が閾値以下の場合、ステップＳ９１１で、係数解析回路９１１は、ＳｄをＳで除した値「Ｓｄ／Ｓ」が規定の閾値以上であるか否かを判断する。「Ｓｄ／Ｓ」が閾値以上の場合、ステップＳ９１５で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが無効であると判別する。ＳｈをＳで除した値「Ｓｈ／Ｓ」が閾値以下で、ＳｄをＳで除した値「Ｓｄ／Ｓ」も閾値以下の場合、ステップＳ９１４で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが有効であると判別する。
【００４７】
ステップＳ９１６では、係数解析回路９１１は、ステップＳ９１２〜ステップＳ９１５の判別結果に従い、動きベクトルに有効／無効を示すフラグを付加してベクトル値評価回路９０９に出力する。ベクトル値評価回路９０９は、係数解析回路９１１の出力信号に基づき、動きベクトルデータを垂直方向及び水平方向それぞれについて評価し、動きベクトル（ｖ_ｖｅｃ、ｈ_ｖｅｃ）をデータバス１０経由で主マイコン３に出力する。ステップＳ９１７で、動きベクトル検出回路９は、動作終了かどうか判断し、動作終了ならステップＳ９１８で本処理を終了する。次フィールドも動作継続ならばステップＳ９０２、ステップＳ９０３に戻り、動作を継続する。
【００４８】
上述したように、直交変換を用いて撮像装置の入力画像の水平方向、垂直方向の相関を検出することにより、求めた動きベクトルの有効性を水平成分、垂直成分で独立  して判別することができる。従って、水平方向に相関が高い被写体の動きベクトルのデータの水平成分のみを無効と評価し、垂直成分を最終的な動きベクトルの算出に用いることができる。
【００４９】
例えば図１１に示す複数に分割したマッチングブロックにおいて、白色で示した真中の縦一列のマッチングブロックが水平方向に相関をもつ被写体である場合、従来は、これらのマッチングブロックの動きベクトル自体が無効と判別されていた。これに対し、本実施の形態では、図１２に示す動きベクトルの水平成分は無効であるものの、垂直成分を有効と判別することができる。これにより、最終的な動きベクトルの算出に用いる動きベクトルのデータ数を増やすことができ、動きベクトルの算出精度が向上する。
【００５０】
以上説明したように、本実施の形態によれば、撮像装置は動きベクトル検出回路９において直交変換回路９１０により撮像素子６の出力信号に対して直交変換を行う。更に、係数解析回路９１１により直交変換回路９１０の出力である直交係数を解析し、撮像素子６の出力信号の垂直方向／水平方向の相関を検出する。更に、ベクトル値評価回路９０９により係数解析回路９１１の解析結果に基づき動きベクトルを垂直方向／水平方向それぞれについて評価する。これにより、動きベクトルの算出精度を向上させることが可能となる。
【００５１】
また、係数解析回路９１１は、撮像素子６の出力信号、即ち、被写体が水平方向に相関が高いと判定した場合は、動きベクトルの水平成分のみを無効と判別する。また、係数解析回路９１１は、被写体が垂直方向に相関が高いと判定した場合は、動きベクトルの垂直成分のみを無効と判別する。これにより、無効となる動きベクトルデータを減らすことができ、動きベクトルの算出精度を向上させることが可能となる。
【００５２】
また、最大値検出回路９０８で動きベクトルを算出するマッチングブロックと、直交変換回路９１０で直交変換を行うマッチングブロックとを同一にしている。これにより、動きベクトルを算出するマッチングブロックに含まれ得る全ての周波数帯域の直交係数を求めることができ、十分な周波数解析が可能となる。
【００５３】
［第２の実施の形態］
本発明の第２の実施の形態は、上記第１の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上記第１の実施の形態（図１、図２）の対応するものと同一なので、説明を省略する。
【００５４】
上記第１の実施の形態では、図９及び図１０により説明したように以下の処理を行った。直交変換回路９１０の出力である直交係数の絶対値和Ｓ、係数領域ＲＶ８０２の直交係数の絶対値和Ｓｖ、係数領域ＲＨ８０１の直交係数の絶対値和Ｓｈ、及び係数領域ＲＤ８０３の直交係数の絶対値和Ｓｄを算出した。これに基づき、被写体が特定方向に強い相関を持つかどうかを判別した。これに対し、本実施の形態は、直交係数の絶対値和ではなく二乗和を用いる点で上記第１の実施の形態と相違する。
【００５５】
次に、本実施の形態の撮像装置における動作を図１３及び図１４のフローチャートを参照しながら説明する。
【００５６】
図１３及び図１４は、撮像装置における動きベクトル検出及び直交変換処理を示すフローチャートである。
【００５７】
図１３及び図１４において、上記第１の実施の形態と相違する点についてのみ説明する。ステップＳ１３０４では、動きベクトル検出回路９の係数解析回路９１１は、図７（ｂ）に示す３２×３２＝１０２４個の直交係数の二乗和Ｅを算出する。次に、ステップＳ１３０５で、係数解析回路９１１は、図８（ｃ）に示す係数領域ＲＤ８０３の直交係数の二乗和Ｅｄを算出する。更に、ステップＳ１３０６で、係数解析回路９１１は、図８（ｂ）に示す係数領域ＲＶ８０２の直交係数の二乗和Ｅｖを算出する。
【００５８】
ステップＳ１３０８で、係数解析回路９１１は、ＥｖをＥで除した値「Ｅｖ／Ｅ」が規定の閾値以上であるか否かを判断する。「Ｅｖ／Ｅ」が閾値以上の場合、入力画像が垂直方向に強い相関を持つので、ステップＳ１３１３で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが無効であると判別する。「Ｅｖ／Ｅ」が閾値以下の場合、ステップＳ１３１０で、係数解析回路９１１は、ＥｄをＥで除した値「Ｅｄ／Ｅ」が規定の閾値以上であるか否かを判断する。
【００５９】
「Ｅｄ／Ｅ」が閾値以上の場合、被写体は対角方向に相関を有するので、垂直方向の動きベクトルｖｖｅｃ、水平方向の動きベクトルｈｖｅｃ共に無効となる。従って、ステップＳ１３１３で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが無効であると判別する。ＥｖをＥで除した値「Ｅｖ／Ｅ」が閾値以下で、ＥｄをＥで除した値「Ｅｄ／Ｅ」も閾値以下の場合、ステップＳ１３１２で、係数解析回路９１１は、垂直方向の動きベクトルｖｖｅｃが有効であると判別する。
【００６０】
ステップＳ１３０６と並行してステップＳ１３０７で、係数解析回路９１１は、図８（ａ）に示す係数領域ＲＨ８０１の直交係数の二乗和Ｅｈを算出する。次に、ステップＳ１３０９で、係数解析回路９１１は、ＥｈをＥで除した値「Ｅｈ／Ｅ」が規定の閾値以上であるか否かを判断する。「Ｅｈ／Ｅ」が閾値以上の場合、入力画像が水平方向に強い相関を持つので、ステップＳ１３１５で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが無効であると判別する。
【００６１】
「Ｅｈ／Ｅ」が閾値以下の場合、ステップＳ１３１１で、係数解析回路９１１は、ＥｄをＥで除した値「Ｅｄ／Ｅ」が規定の閾値以上であるか否かを判断する。「Ｅｄ／Ｅ」が閾値以上の場合、被写体は対角方向に相関を有するので、垂直方向の動きベクトルｖｖｅｃ、水平方向の動きベクトルｈｖｅｃ共に無効となる。従って、ステップＳ１３１５で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが無効であると判別する。ＥｈをＥで除した値「Ｅｈ／Ｅ」が閾値以下で、ＥｄをＥで除した値「Ｅｄ／Ｅ」も閾値以下の場合、ステップＳ１３１４で、係数解析回路９１１は、水平方向の動きベクトルｈｖｅｃが有効であると判別する。
【００６２】
ステップＳ１３１６で、係数解析回路９１１は、ステップＳ１３１２〜ステップＳ１３１５の判別結果に従い、動きベクトルに有効／無効を示すフラグを付加してベクトル値評価回路９０９に出力する。ベクトル値評価回路９０９は、動きベクトル（ｖ_ｖｅｃ、ｈ_ｖｅｃ）をデータバス１０を介して主マイコン３に出力する。
【００６３】
以上説明したように、本実施の形態によれば、上記第１の実施の形態と同様に、直交係数を解析し、撮像素子６の出力信号の垂直方向／水平方向の相関を検出し、動きベクトルを垂直方向／水平方向それぞれについて評価する。これにより、動きベクトルの算出精度を向上させることが可能となる。また、無効となる動きベクトルデータを減らすことができ、動きベクトルの算出精度を向上させることが可能となる。また、動きベクトルを算出するマッチングブロックに含まれ得る全ての周波数帯域の直交係数を求めることができ、十分な周波数解析が可能となる。
【００６４】
［他の実施の形態］
上記第１の実施の形態では、図４に示した各マッチングブロックの大きさを３２ライン×３２画素とし、図７（ａ）に示した直交変換ブロックの大きさを３２画素×３２画素としたが、これに限定されるものではない。
【００６５】
また、上記第１及び第２の実施の形態では、動きベクトル検出回路９では動きベクトルを無効と判別したとき、無効な動きベクトルに無効を示すフラグを付加する構成を例を挙げたが、これに限定されるものではない。無効な動きベクトルをマスクすることで、動きベクトル検出回路９から主マイコン３に送らないようにしてもよい。
【００６６】
また、上記第１の実施の形態では、直交係数の解析に直交係数の絶対値和を用い、上記第２の実施の形態では、直交係数の解析に直交係数の二乗和を用いる構成を例に挙げたが、これに限定されるものではない。
【００６７】
また、上記第１及び第２の実施の形態では、係数解析回路９１１で直交係数の解析を行う構成を例に挙げたが、これに限定されるものではない。直交変換回路９１０の出力をデータバス１０を介して主マイコン３へ送り、主マイコン３で直交係数の解析を行っても差し支えない。
【００６８】
また、上記第１及び第２の実施の形態では、直交変換として離散コサイン変換（ＤＣＴ）を例に挙げたが、これに限定されるものではない。
【００６９】
また、上記第１及び第２の実施の形態では、係数解析回路９１１が動きベクトルの有効／無効を判別して有効／無効フラグを付加し、ベクトル値評価回路９０９が有効／無効フラグが付加された動きベクトルを出力する構成を例に挙げた。即ち、係数解析回路９１１とベクトル値評価回路９０９とを別個に設ける構成を例に挙げたが、これに限定されるものではない。係数解析回路９１１及びベクトル値評価回路９０９の両方の機能を有する単一の回路を設ける構成としてもよい。
【００７０】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、以下の処理を行うことによりも達成される。即ち、そのシステム或いは装置のコンピュータ（マイクロコンピュータを含む）（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによりも達成される。
【００７１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７２】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスクを用いることができる。また、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００７３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、以下の場合も含まれる。即ち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理により前述した各実施の形態の機能が実現される場合も含まれる。
【００７４】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、以下の処理を行う場合も含まれる。即ち、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理により前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施の形態に係る撮像装置の構成を示すブロック図である。
【図２】撮像装置の動きベクトル検出回路の構成を示すブロック図である。
【図３】（ａ）は、動きベクトル検出におけるサーチ領域を示す図、（ｂ）は、テンプレート領域を示す図である。
【図４】単一のマッチングブロックにおけるシフト演算を説明する図である。
【図５】動きベクトル検出回路の帯域通過フィルタの出力波形を示す図である。
【図６】（ａ）は、水平方向及び垂直方向の何れにも相関を持たない場合の２値化信号のパターンの例を示す図、（ｂ）は、水平方向に相関が高い場合の２値化信号のパターンの例を示す図、（ｃ）は、垂直方向に相関が高い場合の２値化信号のパターンの例を示す図、（ｄ）は、対角方向に相関が高い場合の２値化信号のパターンの例を示す図である。
【図７】（ａ）は、動きベクトル検出回路の直交変換回路に入力される直交変換ブロックを示す図、（ｂ）は、直交変換回路から出力される直交係数を示す図である。
【図８】（ａ）は、画像解析に用いる係数領域ＲＨを示す図、（ｂ）は、係数領域ＲＶを示す図、（ｃ）は、係数領域ＲＤを示す図である。
【図９】撮像装置における動きベクトル検出及び直交変換処理を示すフローチャートである。
【図１０】図９の続きを示すフローチャートである。
【図１１】マッチングブロックと動きベクトルを示す図である。
【図１２】マッチングブロックと成分に分割した動きベクトルを示す図である。
【図１３】本発明の第２の実施の形態に係る撮像装置における動きベクトル検出及び直交変換処理を示すフローチャートである。
【図１４】図１３の続きを示すフローチャートである。
【符号の説明】
【００７６】
６  撮像素子（撮像手段）
８  カメラ信号処理回路
９  動きベクトル検出回路
９０１  帯域通過フィルタ
９０２  零クロス検出回路
９０８  最大値検出回路（算出手段）
９０９  ベクトル値評価回路（評価手段）
９１０  直交変換回路（直交変換手段）
９１１  係数解析回路（判別手段）
【図１】
0004653014.tif 000002
【図２】
0004653014.tif 000003
【図３】
0004653014.tif 000004
【図４】
0004653014.tif 000005
【図５】
0004653014.tif 000006
【図６】
0004653014.tif 000007
【図７】
0004653014.tif 000008
【図８】
0004653014.tif 000009
【図９】
0004653014.tif 000010
【図１０】
0004653014.tif 000011
【図１１】
0004653014.tif 000012
【図１２】
0004653014.tif 000013
【図１３】
0004653014.tif 000014
【図１４】
0004653014.tif 000015