(57)【要約】【課題】星空撮影時であっても動きベクトルを正確に求められるようにする。【解決手段】複数の画素を有する撮像素子２より出力された第１の画像データと、その出力前に撮像素子より出力された第２の画像データの各々を複数の領域に分割し各分割領域に対して動きベクトルを算出する動きベクトル検出回路６、及び各分割領域毎に分割領域内に存在する孤立領域を判別する孤立領域判別回路５を設け、孤立領域判別回路により既定数以上の孤立領域が検出された分割領域でのみ、動きベクトル検出回路で動きベクトルを算出する。【選択図】図１
2008010958.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素を有する撮像素子と、
上記撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出手段と、
上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別手段とを備え、
上記動きベクトル検出手段は、上記孤立領域判別手段での判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする撮像装置。
【請求項２】
さらに、上記動きベクトル検出手段により算出した動きベクトルに基づいて、上記撮像素子より出力された画像データの読み出し範囲を制御して防振処理を行う防振処理手段を有することを特徴とする請求項１に記載の撮像装置。
【請求項３】
上記動きベクトル検出手段は、上記孤立領域判別手段により既定数以上の孤立領域が存在すると判別された分割領域に係る動きベクトルを算出することを特徴とする請求項１又は２記載の撮像装置。
【請求項４】
上記第１の画像データと上記第２の画像データは、時間的に連続する２フレームの各フレームの画像データであることを特徴とする請求項１〜３の何れか１項に記載の撮像装置。
【請求項５】
上記孤立領域判別手段は、
上記分割領域において、指定される孤立領域サイズに応じた検定領域を生成する検定領域生成手段と、
上記検定領域生成手段により生成された検定領域の画素値と予め準備された孤立領域パターンとのパターンマッチングを行って孤立領域を検出する孤立領域検出手段と、
上記孤立領域検出手段により検出された孤立領域の数を計数する計数手段とを有することを特徴とする請求項１〜４の何れか１項に記載の撮像装置。
【請求項６】
上記孤立領域サイズが順次変更され、指定可能な上記孤立領域サイズのすべてのサイズに対して、上記分割領域内に存在する孤立領域の検出を行うことを特徴とする請求項５記載の撮像装置。
【請求項７】
上記第１の画像データと上記第２の画像データとを比較し、上記第１の画像データ及び上記第２の画像データの何れか一方のみに存在する孤立領域を補正して消去する補正手段をさらに備えることを特徴とする請求項１〜６の何れか１項に記載の撮像装置。
【請求項８】
上記動きベクトル検出手段は、上記撮像素子からの画像データの特定の周波数成分を抽出するフィルタ手段を有し、
上記既定数以上の孤立領域を有する分割領域の数が既定数より少ない場合には、上記フィルタ手段により抽出する周波数成分を変更することを特徴とする請求項１〜７の何れか１項に記載の撮像装置。
【請求項９】
複数の画素を有する撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出工程と、
上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別工程とを有し、
上記孤立領域判別工程での判別結果に応じて、上記動きベクトル検出工程にて上記分割領域に係る動きベクトルの算出を行うことを特徴とする撮像方法。
【請求項１０】
複数の画素を有する撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出ステップと、
上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別ステップとをコンピュータに実行させ、
かつ上記動きベクトル検出ステップでは、上記孤立領域判別ステップにおける判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とするプログラム。
【請求項１１】
請求項１０記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＣＤイメージセンサ等の撮像素子を備えた撮像装置及び撮像方法に関する。
【背景技術】
【０００２】
近年の撮像装置では、天体観測を用途として「星空」を撮影可能であることが求められている。また、星空撮影を手軽に行うために、三脚を用いずに手持ちで撮影したいという要求も強くなっている。そのため、撮像装置は星空撮影時における防振機能が必要となっており、この防振機能は画像の動きベクトルを算出することで実現可能である。
【０００３】
動きベクトルの算出方法は、例えば下記特許文献１に記載されている。特許文献１に記載の手法では、時間的に連続する２フレームの画像を垂直及び水平方向に複数分割する。続いて、分割して得られた複数の分割ブロック毎に、時間的に連続する２フレームの画像の互いに対応する分割画像相互間で両者の偏移量に対する相関値を求める。そして、求められた相関値に基づいて画像全体の平行移動量を示す動きベクトルを算出する。
【０００４】
【特許文献１】特開昭６１−２６９４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法を星空撮影に用いると、下記のような課題がある。
まず、分割ブロック内に星が存在せず一面黒（夜空部分のみ）になった場合には、時間的に連続する２フレーム間の偏移量に対する相関値が常に最大値となり、動きベクトルを正確に求めることができない。
また、撮像装置が備えるイメージセンサ上に、いわゆる「白キズ」と呼ばれる欠陥画素があった場合には、時間的に連続する２フレームの画像のうち、片方の画像のみに星のように見える白点が存在し、動きベクトルを正確に求めることができない。
また、例えば唯１個存在する星が点滅しているように見える場合には、時間的に連続する２フレームの画像のうち、片方の画像には星が映っていないことがあり、その際には画像間の相関を正確に求めることができない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、撮像装置による星空撮影時であっても動きベクトルを正確に求められるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る撮像装置は、複数の画素を有する撮像素子と、上記撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出手段と、上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別手段とを備え、上記動きベクトル検出手段は、上記孤立領域判別手段での判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
本発明に係る撮像方法は、複数の画素を有する撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出工程と、上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別工程とを有し、上記孤立領域判別工程での判別結果に応じて、上記動きベクトル検出工程にて上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
本発明に係るプログラムは、複数の画素を有する撮像素子より出力された第１の画像データを複数の領域に分割し、上記第１の画像データよりも先に出力された第２の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出ステップと、上記第１の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別ステップとをコンピュータに実行させ、かつ上記動きベクトル検出ステップでは、上記孤立領域判別ステップにおける判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮像素子からの画像データを複数の領域に分割して分割領域毎に孤立領域の数を求め、既定数以上の孤立領域が存在する分割領域においてのみ動きベクトルを算出することにより、星空撮影時であっても動きベクトルを正確に求めることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
以下に説明する本発明の実施形態は、上述した従来の問題に鑑み、時間的に連続する２フレームの画像間で両者の偏移量に係る相関値を求める際、星に相当する孤立領域の数を求めて、孤立領域が既定数以上存在する分割領域でのみ動きベクトルを算出する。このようにすることで星空撮影時にも動きベクトルを正確に求め、それにより正確な防振動作を実現するようにしたものである。
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態による撮像装置の構成例を示すブロック図である。
図１において、レンズ１を透過し、撮像素子２で光電変換された入力信号は、アナログフロントエンド（ＡＦＥ）回路３でリセットノイズ除去、利得調整、及びアナログ−ディジタル（ＡＤ）変換等の処理が施されて、ディジタル画像データに変換される。なお、撮像素子２は、複数の画素を有し、例えばＣＣＤ（電荷結合素子）イメージセンサやＣＭＯＳイメージセンサが用いられる。
【００１１】
ＡＦＥ回路３の出力であるディジタル画像データは、カメラ信号処理回路４に供給され、アパーチャ補正、ガンマ補正、及びホワイトバランス等の撮像系のカメラ信号処理が施される。カメラ信号処理回路４の出力は、撮像素子２の駆動モードに応じて１フレーム又は１フィールド分だけメモリ７に蓄積される。ここで、メモリ制御回路８は、データバス１４を介して供給される指示等に応じてメモリ７を制御する。
【００１２】
また、カメラ信号処理回路４の出力、及びメモリ７からの出力は、欠陥画素補正回路９に供給され、欠陥画素補正回路９にて欠陥画素の補正が行われる。欠陥画素補正回路９の出力は、ディジタル−アナログ（ＤＡ）変換器１０でディジタル−アナログ変換処理が施されてアナログ信号に変換され、そのアナログ信号に係る画像がモニタ１１に表示される。
【００１３】
また、ＡＦＥ回路３の出力であるディジタル画像データは、動きベクトル検出回路６に供給されるとともに、さらに動きベクトル検出回路６を介して孤立領域判別回路５にも供給される。孤立領域判別回路５は、ディジタル画像データに係る画像に存在する孤立領域を検出して、その数をカウントする。詳細には、孤立領域判別回路５は、ＡＦＥ回路３の出力であるディジタル画像データを複数の領域に分割した分割領域毎に、その内部に存在する孤立領域を検出する。また、動きベクトル検出回路６は、ディジタル画像データに基づいて画像の動きベクトルを求める。ここで、孤立領域とは、例えば星空撮影時における夜空内の星に相当する領域であり、周辺画素と画素値が異なる島状領域である。
【００１４】
マイコン１２は、データバス１４を介して指示等を供給し、撮像装置内の機能（孤立領域判別回路５やメモリ制御回路８等）を制御する。入力キー１３は、撮像装置を使用するユーザが各種設定や指示に係る入力等の操作を行うためのものであり、入力操作に応じて信号をマイコン１２に出力する。
【００１５】
ここで本実施形態において、動きベクトルは、時間的に連続する２つのフレーム（あるいはフィールド）の画像から算出する。図４（ａ）、（ｂ）に示すように、前フィールドの画像をサーチ領域４１と称し、現フィールドの画像をテンプレート領域４２と称す。テンプレート領域４２は、サーチ領域４１よりも狭い領域を持つ。なお、図４（ｂ）においては、比較参照のためにサーチ領域４１に相当する領域４３を点線により示している。
【００１６】
また、テンプレート領域４２は、その領域を所定の数だけ分割する。図４（ｂ）には、テンプレート領域４２を横方向に５個、縦方向に４個分割、すなわち水平方向に５分割し垂直方向に４分割している場合を一例として図示している。この分割された各領域をマッチングブロックとも称す。図４（ｃ）に示すように、マッチングブロックとして分割した各テンプレート領域４４を分割した各サーチ領域４５内で後述の通りシフトさせて相関を求め、両者の相関値が最大となるシフト量を動きベクトルとする。
【００１７】
図２は、動きベクトル検出回路６の内部構成を示すブロック図である。
図２において、帯域通過フィルタ２１は、ＡＦＥ回路３の出力であるディジタル画像データから所定周波数成分を抽出する。零クロス検出回路２２は、帯域通過フィルタ２１の出力信号の零クロス点を検出して当該出力信号を２値化する。
【００１８】
サーチメモリ２３は、零クロス検出回路２２の出力である２値化信号のうちサーチ領域に対応する信号を１フレーム（１フィールド）分遅延させるメモリである。テンプレートメモリ２４は、零クロス検出回路２２の出力である２値化信号の現フレームの信号をテープレート領域分だけ格納するメモリである。シフトレジスタ２５、２６は、サーチメモリ２３、テンプレートメモリ２４の出力信号をそれぞれ一時記憶し、画面内の上下左右にシフトさせる。
【００１９】
エクスクルーシブノア（ＥＸＮＯＲ）積算回路２７は、シフトレジスタ２５及び２６の出力を用いて排他的論理和演算を行い、その演算結果の反転値を所定ブロック単位で積算する。最大値検出回路２８は、シフトレジスタ２５、２６による各シフトに対するＥＸＮＯＲ積算回路２７の出力を記憶して相互に比較し、その最大値を検出する。最大値検出回路２８は、ＥＸＮＯＲ積算回路２７の出力の総和が最大になるシフト量及び方向を動きベクトルとして出力する。
【００２０】
上述したサーチメモリ２３、テンプレートメモリ２４、シフトレジスタ２５、２６、ＥＸＮＯＲ積算回路２７、及び最大値検出回路２８によりマッチング回路が構成される。
【００２１】
次に、動きベクトル検出回路６の動作について説明する。
帯域通過フィルタ２１は、ＡＦＥ回路３から供給されるディジタル画像データの所定周波数成分を抽出し、零クロス検出回路２２は、当該抽出された所定周波数成分の信号（画像データ）を２値化する。この２値化動作を、図５を参照して説明する。
【００２２】
図５（ａ）、（ｂ）は、帯域通過フィルタ２１の出力を表している。図５（ａ）、（ｂ）において、横軸は画面横（ｘ）方向の座標、縦軸は濃度（又は輝度）であり、二次元空間の一断面を示している。また、図５（ａ）において、５１、５２、５３は、それぞれ異なる照明条件下で同じ被写体を撮影した場合の帯域通過フィルタ２１の出力波形を示している。
【００２３】
本実施形態における動きベクトル検出回路は、供給されるディジタル画像データから帯域通過フィルタ２１により特定の周波数成分を抽出し、その特定周波数成分の位相情報から動きベクトルを検出する。そのため、本実施形態における動きベクトル検出回路では、照明条件の変化に依存しない２値化パターンを得ることが可能である。
【００２４】
すなわち、図５に示すように、帯域通過フィルタ２１の出力波形５１、５２、５３において、零クロス点は照明条件に関わらず一定である。この零クロス点は、被写体が動けばそれに応じて移動するので、零クロス点の変化により動きベクトルを検出することができる。そこで、零クロス検出回路２２は、帯域通過フィルタ２１の出力信号の零クロス点を検出し、検出により得られた零レベルを閾値として帯域通過フィルタ２１の出力を２値化する。
【００２５】
零クロス検出回路２２により２値化された信号は、適宜サーチメモリ２３及びテンプレートメモリ２４に記憶される。シフトレジスタ２５、２６は、お互いに１フレーム（あるいは１フィールド）の時間差を有するサーチメモリ２３及びテンプレートメモリ２４の出力を一時記憶し、それを画面内で上下左右にシフトした信号を出力する。ＥＸＮＯＲ積算回路２７は、シフトレジスタ２５、２６の出力について、それらの排他的論理和の反転を出力し、画面内の所定ブロック単位でその総和を算出する。ＥＸＮＯＲ積算回路２７の出力値は、各シフト量に対応する所定ブロック内の相関値に相当する。
【００２６】
上述のようにしてシフトレジスタ２５、２６は、所定の探索範囲内で前フィールド、現フィールドの画像をシフトし、ＥＸＮＯＲ積算回路２７は、各シフト量に対する排他的論理和の反転及びその総和を算出して最大値検出回路２８に出力する。最大値検出回路２８は、マッチングブロック毎に、シフトレジスタ２５、２６の各シフト量に対するＥＸＮＯＲ積算回路２７の出力を相互比較し、ＥＸＮＯＲ積算回路２７の出力が最大になるときのシフト量を動きベクトルとして出力する。このようにして、画像を分割したマッチングブロック毎に動きベクトルが検出される。
【００２７】
以上の動作により、図４（ｂ）に示すように１フレーム（１フィールド）内の各マッチングブロックについて、動きベクトルを検出することができる。これらのマッチングブロック毎の動きベクトルから、図１に示したマイコン１２で平均をとる等の演算を行い、最終的なフレーム（フィールド）間の動きベクトルを求める。
【００２８】
次に、図１に示した孤立領域判別回路５について詳細に説明する。
図３は、孤立領域判別回路５の構成を示すブロック図である。
図３に示すように、孤立領域判別回路５は、検定領域生成部３１、孤立領域検出部３２、カウンタ３３、及び孤立領域サイズ指定部３４を有する。
【００２９】
検定領域生成部３１は、テンプレートメモリから２値化されたデータを読み出したマッチングブロックにおいて、孤立領域サイズ指定部３４により指定された検出する孤立領域サイズに応じた検定領域を生成する。孤立領域検出部３２は、検定領域生成部３１で生成された検定領域毎に、検定領域内の画素値と孤立領域パターンとのパターンマッチングを行い、孤立領域を検出する。カウンタ３３は、孤立領域検出部３２で検出された孤立領域の数をカウントする。孤立領域サイズ指定部３４は、検出する孤立領域サイズに応じて検定領域生成部３１及び孤立領域検出部３２を制御するものである。
【００３０】
次に、孤立領域判別回路５の動作について、図６〜図１０を参照して説明する。
図６は、孤立領域判別回路５の動作を示すフローチャートである。また、図７は、各孤立領域サイズに対する検定領域を示す図であり、図８、図９、及び図１０は、それぞれ孤立領域サイズが「１」、「２」、及び「３」の孤立領域を示す図である。
【００３１】
孤立領域判別回路５は、動作を開始すると、動きベクトル検出回路６内のテンプレートメモリ２４からマッチングブロック（分割されたテンプレート領域）のデータを読み出す（Ｓ１０１）。次に、孤立領域サイズが「１」と設定された後（Ｓ１０２）、孤立領域サイズ指定部３４の制御を受けた検定領域生成部３１は、動きベクトル検出回路６内の零クロス検出回路２２で２値化されたデータを基に検定領域を生成する（Ｓ１０３）。具体的には、検定領域生成部３１は、指定される孤立領域サイズに応じて必要な領域のデータを同時化する。
【００３２】
例えば、マイコン１２の指示によりデータバス１４を介して伝達された孤立領域サイズが「１」である場合には、検定領域生成部３１は、図７（ａ）に示すような３×３画素から四隅の画素（図中、“×”印の画素）を除いたデータを同時化する。図７（ａ）において、図中の黒丸（“●”）が、２値化されて黒となった画素（例えば、星空撮影における夜空部分の画素）を表す（以下、図７（ｂ）、（ｃ）においても同様）。
【００３３】
検定領域生成部３１により同時化された５つのデータは、孤立領域検出部３２でパターンマッチングが行われる（Ｓ１０４）。その結果、２値化されて黒となった画素（黒丸）が４つとも存在し、かつ真中に位置する画素Ａ１が２値化されて白となった画素（例えば、星に対応）である場合には、その領域は、孤立領域検出部３２によりサイズ「１」の孤立領域として検出される。
【００３４】
孤立領域サイズが「１」の場合には、図８（ａ）に示す孤立領域を検出することができる。また、隣接する検定領域でサイズ「１」の孤立領域を検出した場合、図８（ｂ）（ｃ）のような斜め方向に隣接するサイズ「１」の孤立領域を検出することができる。
【００３５】
同様に、孤立領域サイズが「２」と指定された場合には、検定領域生成部３１は、図７（ｂ）に示すような４×４画素から四隅を除いたデータを同時化する。そして、孤立領域検出部３２は、図７（ｂ）に示した２値化されて黒となった画素（黒丸）が８つとも存在し、かつ４つの画素Ｂ１、Ｂ２、Ｂ３、Ｂ４にてサイズ「２」の孤立領域パターンを検出した場合には、その領域をサイズ「２」の孤立領域として検出する。図９（ａ）〜（ｅ）には、サイズ「２」の孤立領域パターンを示しており、これらの孤立領域パターンの何れかを検出した場合に、孤立領域検出部３２は、その領域をサイズ「２」の孤立領域として検出する。
【００３６】
また、同様に、孤立領域サイズが「３」と指定された場合には、検定領域生成部３１は、図７（ｃ）に示すような５×５画素から四隅を除いたデータを同時化する。孤立領域検出部３２は、図７（ｃ）に示した黒画素（黒丸）が１２個とも存在し、かつ、９つの画素Ｃ１〜Ｃ９にてサイズ「３」の孤立領域パターンを検出した場合には、その領域をサイズ「３」の孤立領域として検出する。図１０（ａ）〜（ｇ）には、サイズ「３」の孤立領域パターンの一例を示しており、これらの孤立領域パターンを検出した場合に、孤立領域検出部３２は、その領域をサイズ「３」の孤立領域として検出する。なお、図１０にはサイズ「３」の孤立領域パターンをすべて示しているわけではない。
同様の手法でサイズ「４」以上の孤立領域パターンを検出することが可能であることは言うまでもない。
【００３７】
図６に戻り、孤立領域検出部３２でのパターンマッチングの結果、検定領域内の画素値が孤立領域パターンに一致していれば（Ｓ１０５のＹ）、カウンタ３３はカウント値をインクリメントする（Ｓ１０６）。一方、検定領域内の画素値と孤立領域パターンとが不一致であれば（Ｓ１０５のＮ）、ステップＳ１０６をスキップする。
【００３８】
さらに、指定される孤立領域サイズが最大値に達していなければ（Ｓ１０７のＮ）、マイコン１２からの指示に応じて孤立領域サイズがインクリメントされる（Ｓ１０８）。孤立領域サイズ指定部３４の制御を受けた検定領域生成部３１は、その孤立領域サイズに対応した検定領域を生成する（Ｓ１０３）。
【００３９】
例えば、孤立領域サイズ「１」の検出動作が終了して孤立領域サイズ「２」の検出動作に移行する場合、検定領域生成部３１は、検定領域を図７（ａ）に示す３×３画素の領域から、縦横に１画素ずつ拡張して図７（ｂ）に示す４×４画素の検定領域を生成する。
【００４０】
指定される孤立領域サイズが最大値に達していれば（Ｓ１０７のＹ）、マッチングブロック内のすべての領域で孤立領域の検出動作を行ったか否かが判断される（Ｓ１０９）。その結果、全領域での検出動作が終了していなければ（Ｓ１０９のＮ）、孤立領域判別回路５は、再び孤立領域サイズを「１」と設定し（Ｓ１０２）、検出動作が終了していない領域（例えば、既に検出を終えた領域に隣接する領域）の検出動作を同様に行う。
【００４１】
ステップＳ１０９での判断の結果、マッチングブロック内の全領域での孤立領域の検出動作が終了していれば（Ｓ１０９のＹ）、動きベクトル検出回路５は、カウンタ３３のカウント値をみる。そのカウント値が既定値以上であれば、即ち、マッチングブロック内に一定数以上の孤立領域が存在すれば（Ｓ１１０のＹ）、動きベクトル検出回路５は、上述の動作によりマッチングブロックの画像の動きベクトルを算出する（Ｓ１１１）。一方、マッチングブロック内に規定数以上の孤立領域が存在しない場合には（Ｓ１１０のＮ）、ステップＳ１１１をスキップする。
【００４２】
そして、テンプレート領域内のすべてのマッチングブロックで孤立領域の検出動作が完了したか否かを判断し、完了していれば（Ｓ１１２のＹ）、動作を終了する。一方、すべてのマッチングブロックでの検出動作が完了していなければ（Ｓ１１２のＮ）、カウンタ３３のカウント値をリセットし（Ｓ１１３）、次のマッチングブロックのデータを読み出し（Ｓ１１４）、上述した孤立領域の検出動作を行う。
【００４３】
上述した動作により検出される孤立領域とテンプレート領域の一例を図１１に示す。
図１１に示した例では、横方向に５個、縦方向に４個のマッチングブロックが配列されている。図１１において、白い孤立領域は、例えば星空撮影時の星に対応する。動きベクトルの算出を行う上述した既定値が「２」であるとき、孤立領域が２個以上存在する領域（太線で囲んだ領域）０−Ａ，０−Ｄ，１−Ａ，１−Ｅ，２−Ｂ，２−Ｄ，３−Ｅで動きベクトルが算出される。なお、動きベクトルを算出しないマッチングブロックでは、図３に示したカウンタ３３のカウント値に基づいて制御を行い、図２に示したシフトレジスタ２５、２６、ＥＸＮＯＲ積算回路２７、及び最大値検出回路２８の動作を停止させるようにすれば良い。このようにすることで、不要な動きベクトル算出処理が行われることを防止し、処理負荷の軽減や消費電力を削減することができる。
【００４４】
上述のようにして求められた動きベクトルに基づいて、マイコン１２の指示によりメモリ制御回路８で切り出し位置（読み出し範囲）を制御し、メモリ７に格納した１フレーム（あるいは１フィールド）前の映像信号を読み出すことにより電子防振を行う。
【００４５】
以上のように、存在する孤立領域の数が既定数未満（本実施形態では、０又は１）のマッチングブロックでは動きベクトルを算出しないことにより、星空撮影時に生じる従来の不都合を回避し、星空撮影時であっても動きベクトルを正確に算出することができる。これにより、星空撮影時にも正確な電子防振をすることが可能になり、良好な撮像画像を得ることができる。
【００４６】
なお、上述した孤立領域の検出動作では、指定される孤立領域サイズをインクリメントして、１〜最大値の孤立領域サイズで順次、孤立領域の検出を行うようにしているが、これに限定されるものではない。例えば、最初に孤立領域サイズを最大値とし、孤立領域サイズをデクリメントして、１〜最大値の孤立領域サイズでの孤立領域の検出を行うようにしても良い。１〜最大値の孤立領域サイズの全サイズで孤立領域の検出を行えれば良く、孤立領域サイズの指定順序はランダムであっても良く、任意である。
【００４７】
次に、本実施形態における欠陥画素補正回路９での欠陥画素補正について説明する。
電子防振を実現する場合と同様に、欠陥画素の補正を行うには、上述のようにして得られた動きベクトルに基づいて、メモリ制御回路８で切り出し位置を制御し、メモリ７に格納した１フレーム（あるいは１フィールド）前の映像信号を読み出すことにより行う。
【００４８】
例えば、得られた動きベクトルが、水平方向及び垂直方向について、それぞれ（vec_h，vec_v）であるとき、１フレーム（あるいは１フィールド）前の映像信号がメモリ７の出力で、現在のフィールドの映像信号がカメラ信号処理回路４の出力である。したがって、図１２に示すように、メモリ７の出力に基づく画像１２１から、ＴＶ信号において（vec_h，vec_v）分ずれた箇所の画像１２２の信号を比較すれば両者は一致するはずである。
【００４９】
ところが、図１２に示すように画像１２１にのみ孤立領域１２３が存在し、画像１２２にはそれに対応する孤立領域１２４は存在しない場合、画像１２１中の領域１２３は、撮像素子２の欠陥画素（白キズ）であると判断することができる。そこで、欠陥画素補正回路９は、検出した欠陥画素である領域１２３を除去するべく補正を行う。
【００５０】
なお、欠陥画素補正回路９による欠陥画素領域の除去は、星空撮影時であれば、例えば欠陥画素領域を単に黒画素としても良いし、領域１２３の周辺画素により補間するようにしても良いし、画像１２２内の対応する領域１２４の画素値を用いるようにしても良い。また、これらの例に限定されるものではなく、従来から用いられている補正方法を適用するようにしても良い。
【００５１】
上述のように前のフレームの領域と、その領域に対応する当該領域から動きベクトル分移動した現在のフレームの領域を比較し、何れか一方のみに存在する孤立領域を消去すべく欠陥画素補正回路９で補正を行う。これにより、星空撮影時に、防振動作を行いつつ、撮像画像において星に対応する部分（画素）と撮像素子２における欠陥画素（白キズ）を区別して欠陥画素（白キズ）のみを補正することができる。
【００５２】
なお、上述した実施形態では、孤立領域が２個以上存在するマッチングブロックについてのみ動きベクトルを算出する場合を一例として説明した。しかしながら、動きベクトルの算出を行う所定の孤立領域数（既定値）は、「２」に限ったものでなく、「３」以上であっても同様の効果を得ることができる。
【００５３】
また、本実施形態で説明した孤立領域の検出方法はこれに限ったものではなく、他の手法を用いても差し支えない。
【００５４】
また、本実施形態では、動きベクトルを算出しないマッチングブロックでは、カウンタ３３のカウント値に基づいて制御し、シフトレジスタ２５、２６、ＥＸＮＯＲ積算回路２７、及び最大値検出回路２８の動作を停止させる例を示した。しかし、これに限定されるものではなく、例えば、すべてのマッチングブロックで動きベクトルを求めておき、マイコン１２で最終的な動きベクトルを求める際に、孤立領域の数が不十分なマッチングブロックの動きベクトルを用いないようにしても良い。
【００５５】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
第２の実施形態による撮像装置は、既定数以上の孤立領域が存在するマッチングブロックの数が著しく少なく、動きベクトルを算出できない、又は算出した動きベクトルの正確さが乏しくなるような場合に、動きベクトルを正確に算出できるようにするものである。具体的には、第２の実施形態では、一定数以上の孤立領域が存在するマッチングブロックの数が著しく少ない場合には、帯域通過フィルタ２１の通過帯域を制御して２値化パターンを変えることで、動きベクトルを算出できるようにする。
【００５６】
第２の実施形態による撮像装置の構成は、図１〜図３に示した第１の実施形態による撮像装置と同様であるので、その説明は省略する。
【００５７】
第２の実施形態による撮像装置の動作について、図１３を参照して説明する。
図１３は、第２の実施形態における動作を示すフローチャートである。
動作が開始されると、マイコン１２は、データバス１４を介して、デフォルトとなる帯域通過フィルタ２１の通過帯域を設定する（Ｓ２０１）。次に、動きベクトル検出回路６内のテンプレートメモリ２４から最初のマッチングブロックのデータを読み出す（Ｓ２０２）。続いて、上述した第１の実施形態と同様にしてマッチングブロック内に存在する孤立領域の数をカウントする（Ｓ２０３）。
【００５８】
そして、マッチングブロックに孤立領域が既定数以上あると判断されたら（Ｓ２０４のＹ）、このマッチングブロックを有効であると判断して、不図示の有効テンプレート領域カウンタをインクリメントする（Ｓ２０５）。一方、マッチングブロックにある孤立領域が既定数未満であると判断した場合には（Ｓ２０４のＮ）、ステップＳ２０５をスキップする。
【００５９】
次に、すべてのマッチングブロックで孤立領域の検出動作が終了したか否かを判断し、終了していなければ（Ｓ２０６のＮ）、次のマッチングブロックのデータを読み出し（Ｓ２０７）、ステップＳ２０３に戻る。
【００６０】
一方、すべてのマッチングブロックで孤立領域の検出が終了していれば（Ｓ２０６のＹ）、有効テンプレート領域カウンタの値を読み出し、孤立領域を所定数以上有する有効なマッチングブロックが１フレーム内で既定数以上あるか否かを判断する（Ｓ２０８）。その結果、有効なマッチングブロックが既定数以上あれば（Ｓ２０８のＹ）、有効テンプレート領域カウンタのカウント値をリセットし（Ｓ２１０）、動作を終了して引き続き第１の実施形態で説明した動きベクトルの検出や欠陥画素補正の動作を行う。
【００６１】
一方、ステップＳ２０８での判断の結果、有効なマッチングブロックが既定数以上無い場合には（Ｓ２０８のＮ）、マイコン１２は、帯域通過フィルタ２１の通過帯域を変更する（Ｓ２０９）。ここで、例えば、初めに図５（ａ）に示したような出力波形が得られる通過帯域を有する帯域通過フィルタ２１を用いて孤立領域の検出を行っていたとする。このときは、図５（ａ）に示したように零クロス点の間隔が広いので、星空撮影時には、小さい星に対応する画像データは２値化処理した場合に孤立点とならない可能性が高い。
【００６２】
そこで、帯域通過フィルタ２１の通過帯域を高くすると、２値化信号は図５（ｂ）に示したようになり、零クロス点の間隔が狭まって、より小さい星を孤立領域として生成することができる。また、星空撮影時には、ほとんどの被写体が夜空と星のみで、第１の実施形態で述べたような照明条件の変化による零クロス点の変化が起こり得ない。そこで、極めて小さい星を孤立領域としたい場合には、帯域通過フィルタ２１の制御して動作を止め、ある閾値を用いて２値化信号を生成するようにしても良い。
【００６３】
以上のように、既定数以上の孤立領域を有するマッチングブロック数が所定の数よりも少ない場合には、動きベクトル検出回路５が有する帯域通過フィルタ２１の通過帯域を変更することにより、星の大きさが小さいときにも防振動作を実現することが可能となる。また、第１の実施形態と同様の動きベクトルの検出や欠陥画素補正の動作を行うことで、第１の実施形態と同様の効果が得られる。
【００６４】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置又はシステム内のコンピュータ（ＣＰＵ又はＭＰＵ）に対し、上記実施形態の機能を実現するためのソフトウェアのプログラムを供給する。そして、そのシステム又は装置のコンピュータに格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラム自体が上述した実施形態の機能を実現することになり、そのプログラム自体は本発明を構成する。また、そのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、供給されたプログラムがコンピュータにて稼働しているオペレーティングシステム又は他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムがコンピュータに係る機能拡張ボードや機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボード等に備わるＣＰＵ等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００６５】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の第１の実施形態による撮像装置の構成例を示す図である。
【図２】第１の実施形態における動きベクトル検出回路の構成例を示す図である。
【図３】第１の実施形態における孤立領域判別回路の構成例を示す図である。
【図４】動きベクトル検出に係るサーチ領域及びテンプレート領域を示す図である。
【図５】動きベクトル検出回路の帯域通過フィルタの出力波形を示す図である。
【図６】第１の実施形態における孤立領域判別回路の動作を示すフローチャートである。
【図７】各孤立領域サイズに対する検定領域を示す図である。
【図８】孤立領域サイズが「１」の孤立領域の形状を示す図である。
【図９】孤立領域サイズが「２」の孤立領域の形状を示す図である。
【図１０】孤立領域サイズが「３」の孤立領域の形状を示す図である。
【図１１】テンプレート領域と検出された孤立領域を示す図である。
【図１２】第１の実施形態における欠陥画素補正を説明するための図である。
【図１３】第２の実施形態による撮像装置の動作を示すフローチャートである。
【符号の説明】
【００６７】
１  レンズ
２  撮像素子
４  カメラ信号処理回路
５  孤立領域判別回路
６  動きベクトル検出回路
７  メモリ
８  メモリ制御回路
９  欠陥画素補正回路
１２  マイコン
１４  データバス
２１  帯域通過フィルタ
２２  零クロス検出回路
２３  サーチメモリ
２４  テンプレートメモリ
２５，２６  シフトレジスタ
２７  ＥＸＮＯＲ回路
２８  最大値検出回路
３１  検定領域生成部
３２  孤立領域検出部
３３  カウンタ
３４  孤立領域サイズ指定部
【図１】
2008010958.tif 000003
【図２】
2008010958.tif 000004
【図３】
2008010958.tif 000005
【図４】
2008010958.tif 000006
【図５】
2008010958.tif 000007
【図６】
2008010958.tif 000008
【図７】
2008010958.tif 000009
【図８】
2008010958.tif 000010
【図９】
2008010958.tif 000011
【図１０】
2008010958.tif 000012
【図１１】
2008010958.tif 000013
【図１２】
2008010958.tif 000014
【図１３】
2008010958.tif 000015