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