(57)【特許請求の範囲】
【請求項１】
被写体像を撮像した画像データを出力する撮像手段と、
前記画像データを記憶する第１のメモリ手段と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成手段と、
前記画像合成手段によって合成された前記合成画像データを記憶する第２のメモリ手段と、
前記第１のメモリ手段に記憶されている画像データと、前記第２のメモリ手段に記憶されている合成画像データとの間の信号レベルの差分により２つの画像データ間のズレ量を検出する検出手段と、を備え、
前記画像合成手段は、前記第１のメモリ手段に記憶されている画像データと前記第２のメモリ手段に記憶されている合成画像データを合成して、第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする撮像装置。
【請求項２】
前記第１のメモリ手段と前記第２のメモリ手段は、同一の記憶部の記憶領域を分割してそれぞれの記憶領域が設定される、ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記第２のメモリ手段の記憶領域は、前記第１のメモリ手段の記憶領域より大とされる、ことを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記第２のメモリ手段に記憶されている合成画像データの信号レベルは、前記第１のメモリ手段に記憶されている画像データと同じ信号レベルとなるようにレベル調整される、ことを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記レベル調整は、前記第１のメモリ手段に記憶されている画像データが、前記合成画像データを生成するためのＮ番目（ただし、Ｎは２以上の整数）の画像データであるときに、前記第２のメモリ手段に記憶されている合成画像データの信号レベルを、１／（Ｎ−１）倍とするレベル調整である、ことを特徴とする請求項４に記載の撮像装置。
【請求項６】
前記第２のメモリ手段に記憶されている合成画像データに合成されて記憶される、前記第１のメモリ手段に記憶されている画像データを記憶する前記第２のメモリ手段の領域を示す記憶領域情報を、前記検出手段の検出結果に基づいて補正する補正手段と、を更に備える、ことを特徴とする請求項１乃至５の何れか１項に記載の撮像装置。
【請求項７】
前記検出手段は、前記第１のメモリ手段に記憶されている画像データに含まれる輝度信号と、前記第２のメモリ手段に記憶されている合成画像データに含まれる輝度信号との間で、２つの画像データ間のズレ量を検出する、ことを特徴とする請求項１乃至６の何れか１項に記載の撮像装置。
【請求項８】
前記検出手段は、動きベクトルの検出により前記第１のメモリ手段に記憶されている画像データと前記第２のメモリ手段に記憶されている合成画像データ間のズレ量の検出を行う、ことを特徴とする請求項１乃至７の何れか１項に記載の撮像装置。
【請求項９】
被写体像を撮像した画像データを出力する撮像手段と、
前記画像データを記憶する第１のメモリ手段と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成手段と、
前記画像合成手段によって合成された前記合成画像データを記憶する第２のメモリ手段と、
前記第１のメモリ手段に記憶されている画像データに含まれる輝度信号と、前記第２のメモリ手段に記憶されている合成画像データに含まれる輝度信号との間で、２つの画像データ間のズレ量を検出する検出手段と、を備え、
前記画像合成手段は、前記第１のメモリ手段に記憶されている画像データと前記第２のメモリ手段に記憶されている合成画像データを合成して、第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする撮像装置。
【請求項１０】
前記第１のメモリ手段と前記第２のメモリ手段は、同一の記憶部の記憶領域を分割してそれぞれの記憶領域が設定される、ことを特徴とする請求項９に記載の撮像装置。
【請求項１１】
前記第２のメモリ手段の記憶領域は、前記第１のメモリ手段の記憶領域より大とされる、ことを特徴とする請求項９又は１０に記載の撮像装置。
【請求項１２】
前記第２のメモリ手段に記憶されている合成画像データの信号レベルは、前記第１のメモリ手段に記憶されている画像データと同じ信号レベルとなるようにレベル調整される、ことを特徴とする請求項９乃至１１の何れか１項に記載の撮像装置。
【請求項１３】
前記レベル調整は、前記第１のメモリ手段に記憶されている画像データが、前記合成画像データを生成するためのＮ番目（ただし、Ｎは２以上の整数）の画像データであるときに、前記第２のメモリ手段に記憶されている合成画像データの信号レベルを、１／（Ｎ−１）倍とするレベル調整である、ことを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
前記第２のメモリ手段に記憶されている合成画像データに合成されて記憶される、前記第１のメモリ手段に記憶されている画像データを記憶する前記第２のメモリ手段の領域を示す記憶領域情報を、前記検出手段の検出結果に基づいて補正する補正手段と、を更に備える、ことを特徴とする請求項９乃至１３の何れか１項に記載の撮像装置。
【請求項１５】
前記検出手段は、動きベクトルの検出により前記第１のメモリ手段に記憶されている画像データと前記第２のメモリ手段に記憶されている合成画像データ間のズレ量の検出を行う、ことを特徴とする請求項９乃至１４の何れか１項に記載の撮像装置。
【請求項１６】
被写体像を撮像した画像データを出力する撮像手段と、第１のメモリ手段と、第２のメモリ手段とを有する撮像装置の制御方法であって、
前記画像データを前記第１のメモリ手段に記憶する第１の記憶工程と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成工程と、
前記画像合成工程によって合成された前記合成画像データを前記第２のメモリ手段に記憶する第２の記憶工程と、
前記第１のメモリ手段に記憶されている画像データと、前記第２のメモリ手段に記憶されている合成画像データとの間の信号レベルの差分により２つの画像データ間のズレ量を検出する検出工程と、を備え、
前記画像合成工程では、前記第１の記憶工程で記憶された画像データと前記第２の記憶工程で記憶された合成画像データを合成して、前記第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする撮像装置の制御方法。
【請求項１７】
被写体像を撮像した画像データを出力する撮像手段と、第１のメモリ手段と、第２のメモリ手段とを有する撮像装置の制御方法であって、
前記画像データを前記第１のメモリ手段に記憶する第１の記憶工程と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成工程と、
前記画像合成工程によって合成された前記合成画像データを前記第２のメモリ手段に記憶する第２の記憶工程と、
前記第１のメモリ手段に記憶されている画像データに含まれる輝度信号と、前記第２のメモリ手段に記憶されている合成画像データに含まれる輝度信号との間で、２つの画像データ間のズレ量を検出する検出工程と、を備え、
前記画像合成工程では、前記第１の記憶工程で記憶された画像データと前記第２の記憶工程で記憶された合成画像データを合成して、前記第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする撮像装置の制御方法。
【請求項１８】
コンピュータに、請求項１６又は１７に記載の撮像装置の制御方法の各工程を実現させるためのプログラム。
【請求項１９】
請求項１８に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手ぶれ検出を行い、手ぶれ補正を可能とする撮像装置、撮像装置の制御方法、プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来から、デジタルカメラ等の撮像装置において、複数のフレーム画像を撮影し、フレーム画像間の相関を取ることで、手ぶれによる移動量を検出することが知られている。この場合、この検出結果を基に複数のフレーム画像をずらしながら合成し、手ぶれによる画像のぶれを補正する電子手ぶれ補正処理を行う。この種の電子手ぶれ補正処理は、特に光学手ぶれ補正方式とは異なり、光学駆動部を必要としないため、撮像装置の小型化が可能である。
【０００３】
例えば図１０に示すように、撮像装置が第１メモリ２００と第２メモリ２０２を備える。そして、演算部２０１により、連続して撮影してそれぞれ第１メモリ２００、第２メモリ２０２に蓄積されたフレーム画像（２０３）間の特徴的な領域における動きベクトルを検出する。かくして検出された動きベクトルは、動きベクトル出力部２０４より出力される。そして図１１に示すように、検出結果である動きベクトルに基づき、順次取り込まれるフレーム画像を、手ぶれ方向とは逆方向にズラしながら加算処理をしていく。それにより、手ぶれ補正処理されたフレーム画像を合成用メモリ２０５に得ることができる発明が特許文献１に開示されている。
【０００４】
また、図１０で説明した電子手ぶれ補正処理では、複数のフレームメモリを必要とする。また、図１２に示すように、１フレームよりも広いフレームメモリ領域を持つメモリ３００を備えることも考えられる。この場合、移動量検出装置による手ぶれ移動情報をもとに順次取り込まれるフレーム画像データをずらしながら重ね合わせることにより、手ぶれ補正処理を可能とする。このような、合成用のメモリ１つで手ぶれ補正処理可能な発明も特許文献２に開示されている。
【特許文献１】特開２００５−０３３７８５号公報
【特許文献２】特開２００５−３２８３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１では、手ぶれ検出するためには、時間的に前後するフレーム画像を記憶する必要があるため、手ぶれ検出のために、少なくとも２つのフレームメモリと、加算処理回路及び補正結果を格納する合成用のフレームメモリが必要となる。
【０００６】
また特許文献２では移動量検出装置を用いることで合成用のフレームメモリを１つで手ぶれ補正を実現しているが、移動量検出に機械装置を用いているため装置の小型化に限界がある。また特許文献２で移動量検出装置を用いずに、手ぶれ検出に時間的に前後するフレーム画像を使用する場合は、従来の発明同様、手ぶれを検出するための２つのフレームメモリと合成画像を格納するフレームメモリを持つ必要がある。
【０００７】
従って、本発明は、撮像装置において、少ない数のフレームメモリで実現可能な手ぶれ検出機能を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の実施形態における撮像装置は、被写体像を撮像した画像データを出力する撮像手段と、
前記画像データを記憶する第１のメモリ手段と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成手段と、
前記画像合成手段によって合成された前記合成画像データを記憶する第２のメモリ手段と、
前記第１のメモリ手段に記憶されている画像データと、前記第２のメモリ手段に記憶されている合成画像データとの間の信号レベルの差分により２つの画像データ間のズレ量を検出する検出手段と、を備え、
前記画像合成手段は、前記第１のメモリ手段に記憶されている画像データと前記第２のメモリ手段に記憶されている合成画像データを合成して、第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする。
【０００９】
上記の目的を達成するために、本発明の他の実施形態における撮像装置の制御方法は、被写体像を撮像した画像データを出力する撮像手段と、第１のメモリ手段と、第２のメモリ手段とを有し、
前記画像データを前記第１のメモリ手段に記憶する第１の記憶工程と、
前記撮像手段から出力された複数の画像データを合成して１枚の合成画像データを作成する画像合成工程と、
前記画像合成工程によって合成された前記合成画像データを前記第２のメモリ手段に記憶する第２の記憶工程と、
前記第１のメモリ手段に記憶されている画像データと、前記第２のメモリ手段に記憶されている合成画像データとの間の信号レベルの差分により２つの画像データ間のズレ量を検出する検出工程と、を備え、
前記画像合成工程では、前記第１の記憶工程で記憶された画像データと前記第２の記憶工程で記憶された合成画像データを合成して、前記第２のメモリ手段に記憶するための合成画像データを生成する、ことを特徴とする。
【００１０】
上記の目的を達成するために、本発明の、さらに他の実施形態においては、前記実施形態の撮像装置の制御方法の手順が記述されたコンピュータで実行可能なプログラムを提供する。
【００１１】
上記の目的を達成するために、本発明の、さらに他の実施形態においては、前記実施形態の撮像装置の制御方法の手順が記述されたプログラムが記憶されたコンピュータ可読記憶媒体を提供する。
【発明の効果】
【００１２】
本発明によれば、撮像装置において、少ない数のフレームメモリで手ぶれ検出機能を実現することが可能となる。
【発明を実施するための最良の形態】
【００１３】
＜実施形態１＞
図１は、本発明の実施形態１における撮像装置のブロック図を示す。また図５は、実施形態１の撮像装置における手ぶれ検出部９とウィンドウ制御部７の処理手順を示したフローチャートである。また図８は合成演算部８の処理手順を示したフローチャートである。
【００１４】
図１において、結像光学部１を通って入射した被写体像を、撮像部２の有する撮像素子で電気信号に光電変換する。Ａ／Ｄ変換部３は、撮像部１から出力される映像信号をデジタル画像データに変換するものである。信号処理部４は、Ａ／Ｄ変換部３から出力される画像データを後述の手ブレ検出部９において使用するＹＵＶデータ形式の画像データに変換するため、ホワイトバランス回路、ガンマ補正回路、マトリクス変換回路等を含む。信号処理部４から出力される画像データは、メモリＩ／Ｆ５を介して一時的にメモリ部６に保存される。ここで、図２に示すように、メモリ部６は、フレームメモリ領域６−１と、合成処理用フレームメモリ領域６−２の少なくとも２つの記憶領域を有する。本実施形態１においては、合成処理用フレームメモリ領域６−２はフレームメモリ領域６−１より広い記憶領域が設定される。
【００１５】
またフレームメモリ領域６−１には撮像枚数をＮとしたとき、Ｎ枚目の画像データが記憶されており、合成処理用フレームメモリ領域６−２にはＮ−１枚目までの複数の画像データが合成された合成画像データが記憶されている。手ぶれ検出部９は、メモリ部６のフレームメモリ領域６−１に記憶されているＮ枚目の画像データと合成処理用フレームメモリ領域６−２に記憶されている合成画像データからＮ−１枚目の画像データの領域部分を抽出する。このように抽出した画像データから、手ぶれによる画像データの画像の移動量が求められる。
【００１６】
画像データの手ぶれ量の検出方法は、基本的に動きベクトルを検出するもので、まず画面を複数の領域に分割し、それぞれの領域ごとの局所的な移動量の平均化等の統計的処理により、画面全体の移動量を求め、撮像装置の手ぶれ量を決定する。このとき手ぶれ検出部９に入力されるＮ−１枚目の画像データは合成画像データから抜き出すため、Ｎ枚目の画像データと輝度レベルが異なる。
【００１７】
したがって、このように、合成画像データが、信号レベルを考慮せずに、単に信号を合成する合成画像データの場合には、抜き出されるＮ−１枚目の画像データは１/（Ｎ-１）倍に信号レベルが下げられてから手ぶれ検出部９に入力される。以上の動作について、図２で説明すると、Ｎ枚目の画像データがフレームメモリ領域６−１から、メモリＩ／Ｆ５を介し、手ぶれ検出部９に入力される。一方、合成処理用フレームメモリ領域６−２領域からのＮ−１枚目の画像データは、メモリＩ／Ｆ５を介し、さらに信号レベル調整部１８を介して手ぶれ検出部９に入力される。信号レベル調整部１８は、Ｎ−１枚目の画像データの信号レベルを１/（Ｎ-１）倍に下げてから、手ぶれ検出部９に入力される。信号レベル調整部１８は、ＣＰＵ１３からのレベル制御信号にしたがって、信号レベルを調整する機能を有する。
【００１８】
このように信号レベルが合された２つの画像データとの間で手ぶれ検出が実行される。手ぶれ検出部９で求めた手ぶれによる画像データの移動情報はＣＰＵ１３へ送られる。この移動情報に基づき、ウィンドウ制御部７は、メモリＩ／Ｆ５を介してメモリ部６の合成処理用フレームメモリ領域６−２領域にＮ枚目の画像データが重ねられるメモリ記憶領域を示すウィンドウを設定する（ウィンドウWin-A）。また合成画像データの全領域を示すウィンドウもウィンドウ制御部７が設定する（ウィンドウWin-B）。以上の動作について、図３で説明すると、合成演算部８は、機能的に信号レベル調整部１９と加算部２０を有し、Ｎ枚目の画像データがフレームメモリ領域６−１から、メモリＩ／Ｆ５を介して合成演算部８に入力される。一方、合成処理用フレームメモリ領域６−２領域からのＮ−１枚目の画像データもメモリＩ／Ｆ５を介して合成演算部８に入力される。この２つの画像データを加算するにあたり、合成処理用フレームメモリ領域６−２領域からのＮ−１枚目の画像データは信号レベル変換部１９で信号レベルが１/（Ｎ-１）倍に変換されて、加算部２０に入力される。このことで、合成される２つの画像データの信号レベルが合され、合成された画像データは、加算部２０からメモリＩ／Ｆ５を介してメモリ部６の合成処理用フレームメモリ領域６−２領域に再び書込まれる。
【００１９】
図１の説明にもどるが、図１の実施形態の撮像装置は、さらに、表示制御部１０、表示Ｉ／Ｆ１１及び表示部１２を備える。したがって、表示部１２により、撮影前の画像及び撮影されてメモリ部６に蓄積された画像データを見ることが可能である。また、ＣＰＵ１３を動作させるために、各種プログラムが格納されたＲＯＭ１４、さらに、ＣＰＵ１３の動作のワークメモリとしてのＲＡＭ１５を備える。また、ユーザが行う、各種の調整、切り換え、シャッタ操作等をおこなう操作部１７が、操作入力Ｉ／Ｆ１６を介してＣＰＵ１３に結合され、ＲＯＭ１４に格納されたプログラムに従って撮像装置は動作する。操作関係に限られることなく、各種の信号処理、また本発明の実施形態に係る動作もＣＰＵ１３により制御することが可能である。さらに、フラッシュメモリ等で構成される着脱可能なメモリカード３０を備え、メモリ部６に蓄積された画像データを順次蓄積することが可能に構成されている。
【００２０】
図４に、メモリ部６のフレームメモリ領域６−１と、合成処理用フレームメモリ領域６−２に設定される２つのウィンドウの動作を説明するためのイメージ図を示す。まず、図４のフレームメモリ領域６−１において、（ａ）と（ｂ）に示すように、撮像され、記憶された１枚目（Ｎ＝１）の画像データは、フレームメモリ領域６−１から合成処理用フレームメモリ領域６−２に格納される。格納記憶領域は先に設定されたウィンドウWin-Aで決定される。
【００２１】
次に、（ｂ）に示すように、２回目の撮像で得られた２枚目（Ｎ＝２）の画像データがフレームメモリ領域６−１に記憶される。次に、（ｂ）のフレームメモリ領域６−１に記憶された２枚目の画像データと、合成処理用フレームメモリ領域６−２の（ｄ）に示すウィンドウWin-A内の画像データとで手ぶれ検出処理が行われる。この検出処理結果に基づいて、合成処理用フレームメモリ領域６−２の（ｅ）に示すように、ウィンドウWin-Aの位置が手ぶれ補正処理される方向にずらされる。また、ウィンドウWin-Aのズレに追従してウィンドウWin-Bも図で実線で示すように領域が広げられる。
【００２２】
つぎに、合成処理用フレームメモリ領域６−２の（ｅ）のウィンドウWin-Aに、フレームメモリ領域６−１の（ｂ）に格納されている２枚目の画像データが重ね合わされる。このときの重ね合わせについては後述の合成処理方法で詳細を説明する。
【００２３】
次に、フレームメモリ領域６−１の（ｃ）に示すように、３回目の撮像で得られた３枚目（Ｎ＝３）の画像データがフレームメモリ領域６−１に記憶される。そして、フレームメモリ領域６−１の（ｃ）の３枚目の画像データと、合成処理用フレームメモリ領域６−２の（ｅ）のウィンドウWin-A内の画像データとで手ぶれ検出処理が行われる。この検出処理結果に基づき、合成処理用フレームメモリ領域６−２の（ｆ）に示すように、ウィンドウWin-Aの位置がずらされる。また、このウィンドウWin-Aのズレに追従してウィンドウWin-Bも領域が広げられる。そして、合成処理用フレームメモリ領域６−２の（ｆ）のウィンドウWin-Aに、フレームメモリ領域６−１の（ｃ）に格納されている３枚目の画像データが重ね合わされる。以降、ユーザが設定した露光の回数のＮ回が終わるまで同様の処理が行われる。図４において、フレームメモリ領域６−１及び合成処理用フレームメモリ領域６−２には、あたかも、それぞれ３フレーム分の記憶領域が設定される図となっている。しかしながら、これは、動作の説明のためであって、基本的に、フレームメモリ領域６−１及び合成処理用フレームメモリ領域６−２には、図２、３で示すように１フレーム分の記憶領域が設定されている。
【００２４】
次に、図５および図６を用いて本発明の実施形態１における撮像装置のウィンドウ制御部７の処理手順を説明する。
【００２５】
まず図６について説明するが、図６はメモリ部６の合成処理用フレームメモリ領域６−２のメモリ記憶領域をイメージ化した図である。
【００２６】
メモリ部６の合成処理用フレームメモリ領域６−２の記憶領域にはウィンドウ制御部７によって２つのウィンドウが設定される。１つのウィンドウは、手ぶれ検出処理結果をもとにＮ−１枚目の画像データとズラして重ねられるＮ枚目の画像データの領域を示すウィンドウで、本実施形態１ではウィンドウWin-Aとして明示している。また、もう１つのウィンドウは、合成画像データの領域を示すウィンドウで、本実施形態ではウィンドウWin-Bとして明示している。このWin-Bは、Ｎ枚目の画像データが重ねられることで合成画像データの領域が広がると、実線で示すように、それに合わせて領域のサイズが変更されるウィンドウである。
【００２７】
各々のウィンドウに関して相互的な関係を詳細に説明する。まず合成処理用フレームメモリ領域６−２のメモリ領域を図６の（ａ）に示すように左上の座標を（０、０）、右下の座標を（ｎ、ｎ）として設定する。（ｎ≧０）
またウィンドウWin-Aは、初め、１枚目の画像データを記憶する領域を示すウィンドウとして座標が初期化されている。例えば図６の（ａ）に示すように、ウィンドウWin-Aの左上の座標は（ｘｓ（１）、ｙｓ（１））、また右下の座標は（ｘｅ（１）、ｙｅ（１））とする。
【００２８】
また図６の（ｂ）に示すように、ウィンドウWin-Bの左上の座標は（Ｘｓ、Ｙｓ）、右下の座標は（Ｘｅ、Ｙｅ）と設定する。ここでウィンドウWin-Bは合成画像データの領域を示すウィンドウであるが、１枚目の画像データに関してはウィンドウWin-Aの初期座標と同じ座標が設定される。
【００２９】
つまり
Ｘｓ＝ｘｓ（１）・・・（ａ）、
Ｙｓ＝ｙｓ（１）・・・（ｂ）、
Ｘｅ＝ｘｅ（１）・・・（ｃ）及び
Ｙｅ＝ｙｅ（１）・・・（ｄ）となる。
【００３０】
またウィンドウWin-Bは、画像データが重ねられていくにつれ合成画像データ領域が広がると座標を更新していく。本実施形態では、下記条件を満たすとき座標が更新される。
【００３１】
つまり、
ｘｓ（Ｎ）＜Ｘｓであれば、Ｘｓにｘｓ（Ｎ）を代入・・・（ｅ）、
ｙｓ（Ｎ）＜Ｙｓであれば、Ｙｓにｙｓ（Ｎ）を代入・・・（ｆ）、
ｘｅ（Ｎ）＞Ｘｅであれば、Ｘｅにｘｅ（Ｎ）を代入・・・（ｇ）及び
ｙｅ（Ｎ）＞Ｙｅであれば、Ｙｅにｙｅ（Ｎ）を代入・・・（ｈ）となる。
【００３２】
次に２枚目の画像データが取り込まれた時のウィンドウの変更について説明する。２枚目の画像データが取り込まれると、手ぶれ検出部９は、ウィンドウWin-Aの領域の画像データと２枚目の画像データにより手ぶれ量を検出する。ここでウィンドウWin-Aは１枚目の画像データが置かれている領域を示している。
【００３３】
手ぶれ検出部９における手ぶれの検出処理方法は、まず輝度信号成分のみの画像データを複数の領域に分割し、それぞれの領域ごとの局所的な移動量の平均化等の統計的処理により画面全体の移動量を求め、撮像装置の手ぶれ量を決定する。
【００３４】
この決定された手ぶれ量に基づき、ウィンドウWin-Aは１枚目の画像データよりもズレた領域として設定される。例えば図６の（ｃ）に示すように、１枚目の画像データよりも右下の方向にズレた位置に２枚目の画像データが重なるように補正されるとする。このときのウィンドウWin-Aの左上の座標は（ｘｓ（２）、ｙｓ（２））、右下の座標は（ｘｅ（２）、ｙｅ（２））として設定される。
【００３５】
ここでウィンドウWin-Bは、
ｘｅ（２）＞Ｘｅ・・・（ｉ）及び
ｙｅ（２）＞Ｙｅ・・・（ｊ）
の条件を満たすため、Ｘｅにはｘｅ（２）が、Ｙｅにはｙｅ（２）が設定される。これにより図６の（ｄ）に示すように、ウィンドウWin-Bは１枚目と２枚目の画像データが置かれる全ての領域を示すウィンドウとして座標が更新される。
【００３６】
次に３枚目の画像データが取り込まれた時のウィンドウの変更について説明する。３枚目の画像データが取り込まれると、手ぶれ検出部９は、ウィンドウWin-Aの領域の画像データと３枚目の画像データとにより手ぶれ量を検出する。ここで、ウィンドウWin-Aは２枚目の画像データが置かれている領域を示している。
【００３７】
検出された手ぶれ量に基づき、ウィンドウWin-Aは２枚目の画像データよりもズレた位置の領域として設定される。例えば図６の（ｅ）に示すように、２枚目の画像データよりも左上の方向にズレて３枚目の画像データが重なるように補正されるとする。このときのウィンドウWin-Aの左上の座標は（ｘｓ（３）、ｙｓ（３））、右下の座標は（ｘｅ（３）、ｙｅ（３））として設定される。
【００３８】
ここでウィンドウWin-Bは
ｘｓ（３）＜Ｘｓ・・・（ｋ）及び
ｙｓ（３）＜Ｙｓ・・・（ｌ）
の条件を満たすため、Ｘｓにはｘｓ（３）が、またＹｓにはｙｓ（３）が設定される。これにより図６の（ｆ）に示すように、ウィンドウWin-Bは合成画像データと３枚目の画像データが置かれる全ての領域を示すウィンドウとして座標が更新される。以上の処理が撮影枚数のＮ回分行われる。
【００３９】
次に、図５を用いてウィンドウ制御の処理手順をフローチャートで説明する。図５において、まず処理手順Ｓ１００で、初期化処理が実行される。この初期化処理においては、ウィンドウWin-Aの位置を表す座標の初期化と、合成処理用フレームメモリ領域６−２の全記憶領域の値を０とする初期化が実行される。さらに、ユーザが何枚のフレーム画像で手ぶれ補正を行うかをＮｍａｘとして設定する。また初め撮像枚数Ｎは０である。次に処理手順Ｓ１０１で撮像枚数ＮがＮ＋１とされて処理手順Ｓ１０２でＮ（＝１）枚目の撮像が行われる。処理手順Ｓ１０３では撮像枚数が１枚目か２枚目以降かが判断され、１枚目のときは処理手順１１０に進み、ウィンドウWin-Bの位置を示す座標にウィンドウWin-Aの座標が入力される。
【００４０】
次に処理手順Ｓ１１１で、１枚目の画像データがウィンドウWin-Aの領域に格納される。また処理手順Ｓ１０３で撮像枚数が２枚目以降と判断されると処理手順Ｓ１０４に進む。処理手順Ｓ１０４では、合成画像においてＮ−１枚目の画像データの領域を示すウィンドウWin-Aの画像データと撮像されたＮ枚目の画像データとで手ぶれ検出処理が行われる。このとき手ぶれ検出には輝度信号成分のみを使用し、ウィンドウWin-Aから読み出される画像データは１/（Ｎ−１）倍に信号レベルが調整されて手ぶれ検出部９に入力される。この動作は、図２を用いて機能的に説明されたものである。
【００４１】
次に処理手順Ｓ１０５では、手ぶれ検出結果をもとにウィンドウWin-Aの座標が手ぶれ補正処理されるように、手ぶれ方向とは逆の方向に座標が補正される。この座標変更により処理手順Ｓ１０６でウィンドウWin-AがウィンドウWin-Bよりも外の領域にずれた時、ウィンドウWin-Bの座標が処理手順Ｓ１０７において更新される。またウィンドウWin-AがウィンドウWin-Bよりも外の領域にずれていない時は、ウィンドウWin-Bの座標は更新されない。ここで本実施形態１では、図６に示した座標を用いて下記条件を満す時、ウィンドウWin-AがウィンドウWin-Bの領域よりも外にずれたと判断し、ウィンドウWin-Bの座標を更新する。
【００４２】
すなわち、
ｘｓ（Ｎ）＜Ｘｓ、またはｙｓ（Ｎ）＜Ｙｓ、またはｘｅ（Ｎ）＞Ｘｅ、またはｙｅ（Ｎ）＞Ｙｅ・・・（ｍ）
の時、ウィンドウWin-Bの座標を更新する。
【００４３】
次に処理手順Ｓ１０８では、Ｎ枚目に撮像された画像データがウィンドウWin-Aの領域の画像データに合成される。この処理手順Ｓ１０８における合成処理方法については図８のフローチャートを用いて後述する。処理手順Ｓ１０９では、ユーザが設定したＮｍａｘに撮像枚数Ｎが達していれば処理フローを抜け処理を終了し、達していなければ、処理手順Ｓ１０１へもどり、それ以降の処理フローを繰り返す。以上のフローに従い合成処理用フレームメモリ領域６−２の記憶領域に２つのウィンドウが設定される。さらに、前記のウィンドウによって合成画像データからＮ−１枚目の画像データを抜き出し、Ｎ枚目の画像データとの間でで手ぶれ検出処理を行うことが可能となる。
【００４４】
次に、図７を用いて本実施形態の画像合成処理を説明する。図７は、画像合成時にメモリ部６におけるフレームメモリ領域６−１と合成処理用フレームメモリ領域６−２における画像データの配置をイメージ表現した図である。合成処理用フレームメモリ領域６−２は、図５のフローチャートで説明したようにはじめ全記憶領域が０で初期化されている。
【００４５】
まず１枚目の撮像で図７の（ａ）に示すように、フレームメモリ領域６−１に１枚目の画像データが置かれる。つぎに、前述のウィンドウWin-Aの領域にこの１枚目の画像データが図７の（ｅ）に示すように合成処理用フレームメモリ領域６−２に置かれる。
【００４６】
つぎに２枚目の撮像で、図７の（ｂ）に示すように、フレームメモリ領域６−１に２枚目の画像データが記憶される。そして図７の（ｆ）に示す様に、この２枚目の画像データは１枚目の画像よりも手ぶれ移動量分補正された位置にウィンドウWin-Aが設定されて画像データが合成される。
【００４７】
この合成処理は、図７の（ｆ）において、ウィンドウWin-Bよりも内側で、且つウィンドウWin-Aよりも外側の領域はＮ/（Ｎ-1）倍、つまり２倍に信号レベルが調整されて格納される。そしてウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０の時は２枚目の画像データをＮ倍、つまり２倍に信号レベルが調整されて、合成処理用フレームメモリ領域６−２に格納される。この部分は、図中ハッチングで示す。またウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０以外の時は、２枚目の画像データと合成処理用フレームメモリ領域６−２に格納されている画像データを積算し書き戻す。以上により１枚目と２枚目の画像データが重ならない領域においても信号レベル調整が行われ、合成画像データの全領域において同じ信号レベルで画像合成処理が行われる。
【００４８】
次に３枚目の撮像で図７の（ｃ）に示すように、フレームメモリ領域６−１に３枚目の画像データが記憶される。そして図７の（ｇ）に示す様に、３枚目の画像データは２枚目の画像データよりも手ぶれ移動量分補正された位置にウィンドウWin-Aが設定され画像データが合成される。
【００４９】
この合成処理は、図７の（ｇ）において、ウィンドウWin-Bよりも内側で、且つウィンドウWin-Aよりも外側の領域はＮ/（Ｎ-1）倍、つまり３/２倍に信号レベルが調整されて格納される。また、ウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０の時は、３枚目の画像データをＮ倍、つまり３倍にして合成処理用フレームメモリ領域６−２に格納する。さらにウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０以外の時は、３枚目の画像データと合成処理用フレームメモリ領域６−２に格納されているデータを積算し書き戻す。以上により２枚目までの合成画像データと、３枚目の画像データが重ならない領域においても信号レベル調整が行われ、合成画像データの全領域において同じ信号レベルで画像合成処理が行われる。
【００５０】
次に、４枚目の撮像で図７の（ｄ）に示すように、フレームメモリ領域６−１に４枚目の画像データが記憶される。そして図７の（ｈ）に示す様に、４枚目の画像データは２枚目の画像データよりも手ぶれ移動量分補正された位置にウィンドウWin-Aが設定され画像データが合成される。
【００５１】
この合成処理は、図７の（ｈ）において、ウィンドウWin-Bよりも内側で、且つウィンドウWin-Aよりも外側の領域はＮ/（Ｎ-1）倍、つまり４/３倍に信号レベルが調整されて格納される。また、ウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０の時は、３枚目の画像データをＮ倍、つまり４倍にして合成処理用フレームメモリ領域６−２に格納する。さらにウィンドウWin-Aよりも内側の領域で、且つ合成処理用フレームメモリ領域６−２のデータが０以外の時は、４枚目の画像データと合成処理用フレームメモリ領域６−２に格納されているデータを積算し書き戻す。以上により３枚目までの合成画像データと、４枚目の画像データが重ならない領域においても信号レベル調整が行われ、合成画像データの全領域において同じ信号レベルで画像合成処理が行われる。以上の処理が撮影枚数のＮ回分行われる。
【００５２】
上記の説明において、信号レベルの調整は、図３で説明した信号レベル調整部１９に対して各種の調整レベルに対応するレベル制御信号を与えることで実行される。
【００５３】
図８と図９を用いて、画像合成処理方法の処理手順を説明する。本実施形態１において画像合成処理は、図５の処理手順Ｓ１０８において行われる。まず図８の処理手順Ｓ２００において、ウィンドウWin-Bの領域から１画素ずつ画像データを読み出す。本実施形態では、図９に示すようにウィンドウWin-Bの領域の、左上のstartアドレスから順にラスタ形式で読み出す。処理手順Ｓ２０１では、ウィンドウWin-Bの領域より読み出した画素データがウィンドウWin-Aの領域内にあるかどうかを判別する。このとき読み出した画素データがウィンドウWin-Aの領域よりも外の領域に位置する場合は処理手順Ｓ２０７に進む。
【００５４】
処理手順Ｓ２０７では、ウィンドウWin-Bの領域より読み出した画素データをＮ/（Ｎ−１）倍にレベル調整し処理手順Ｓ２０５へ進む。また処理手順Ｓ２０１において、ウィンドウWin-Bの領域より読み出した画素データがウィンドウWin-Aの領域よりも中にあると判断されると、処理手順Ｓ２０２へ進む。また処理手順Ｓ２０２では、読み出した画素データとＮ枚目の画像データとが加算される。
【００５５】
次に処理手順Ｓ２０３において処理手順Ｓ２００において、ウィンドウWin-Bの領域より読み出した画素データの値が０かどうかが判断され、値が０のときは処理手順Ｓ２０４へ移る。ステップＳ２０４では画素データがＮ倍にレベル調整されて処理手順Ｓ２０５へ移る。また処理手順Ｓ２０３において読み出した画素データの値が０でないと判断された時は処理手順Ｓ２０５へ飛ぶ。
【００５６】
処理手順Ｓ２０５では読み出してきたアドレスと同じアドレスに加算またはレベル調整した画素データを合成処理用フレームメモリ領域６−２に書き戻す。次に処理手順Ｓ２０６においてウィンドウWin-Bの領域内の画素データが全て読み出されたか判断され、全て読み出されていないと処理手順Ｓ２００に戻り、それ以降の処理手順を繰り返す。また処理手順Ｓ２０６においてウィンドウWin-Bの領域内の画素データが全て読み出されたと判断されると図８の処理フローを抜け処理を終了する。上記の説明において、画素信号レベルの調整は、図３で説明した信号レベル調整部１９に対して各種の調整レベルに対応するレベル制御信号を与えることで実行される。
【００５７】
以上により、画像合成処理時、フレーム毎に加算領域以外のゲイン調整を行いながら画像合成処理を行うため、合成画像データの全領域において同じゲインで記憶されるため、１フレームよりも広い範囲から画像データを抽出することが可能となる。このようにして電子手ぶれ補正がされた画像信号が合成処理用フレームメモリ領域６−２に合成映像信号として蓄積されることとなる。この合成映像信号が表示部１２に表示され、また、メモリカード３０に記憶される。
【００５８】
以上、この明細書で説明した実施形態は、本発明の一例を説明するために引用したものであって、本発明の請求項で表現された発明を満すものであれば、その構成は、本明細書に開示した実施形態に限られない。
【００５９】
例えば、本実施形態において加算時のゲイン調整は、Ｎ枚目の画像データとウィンドウWin-Bの領域より読み出した画像データを加算した後に行ったが、加算前にそれぞれのデータにレベル調整を行ったうえで加算する構成をとっても構わない。
【００６０】
また、本実施形態においては、ウィンドウ制御としてメモリ領域をイメージ化し、座標でウィンドウ領域を表現したが、メモリのアドレスを直接用いてウィンドウ内の領域を表現しても構わない。
【００６１】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置に供給しても達成可能である。すなわち、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性の半導体メモリカード、ＲＯＭなどを用いることができる。
【００６３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合もある。しかし、さらにそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる場合もあり得る。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施形態１における撮像装置のブロック構成図である。
【図２】本発明の実施形態１における撮像装置の手ぶれ検出の際に実行される信号レベル調整の機能を説明するブロック構成図である。
【図３】本発明の実施形態１における撮像装置の合成処理の際に実行される信号レベル調整の機能を説明するブロック構成図である。
【図４】本発明の実施形態１の撮像装置における手ぶれ検出方法の動作を説明するためのイメージ図である。
【図５】本発明の実施形態１の撮像装置における手ぶれ検出処理の処理手順を示したフローチャート図である。
【図６】本発明の実施形態１の撮像装置における画像合成処理の動作を説明するためのイメージ図である。
【図７】本発明の実施形態１の撮像装置におけるウィンドウ制御方法の動作を説明するためのイメージ図である。
【図８】本発明の実施形態１の撮像装置における画像合成処理の処理手順を示したフローチャート図である。
【図９】本発明の実施形態１の撮像装置における画像合成時の画像データの読み出しの動作を説明するためのイメージ図である。
【図１０】従来技術における電子手ぶれ検出装置の構成図である。
【図１１】従来技術における電子手ぶれ検出方法の動作を説明するためのイメージ図である。
【図１２】従来技術における電子手ぶれ補正方法の動作を説明するためのイメージ図である。
【図１】
0004671429.tif 000002
【図２】
0004671429.tif 000003
【図３】
0004671429.tif 000004
【図４】
0004671429.tif 000005
【図５】
0004671429.tif 000006
【図６】
0004671429.tif 000007
【図７】
0004671429.tif 000008
【図８】
0004671429.tif 000009
【図９】
0004671429.tif 000010
【図１０】
0004671429.tif 000011
【図１１】
0004671429.tif 000012
【図１２】
0004671429.tif 000013