(57)【要約】【課題】違和感のない自然な動画像を出力させることが可能な手振れ補正方法、手振れ補正装置、及び手振れ補正装置を備えた撮像装置を提供する。【解決手段】撮像素子１０から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正方法であって、手振れの大きさを示す移動ベクトルを検出するステップ（Ｓ１）と、移動ベクトルに基づいて手振れを補正する手振れ補正ステップ（Ｓ５）と、ステップＳ１で検出された移動ベクトルと、ステップＳ１で検出された移動ベクトルの検出履歴とに基づいて、手振れを補正する必要があるか否かを判定するステップ（Ｓ２，Ｓ３）と、ステップＳ３で手振れを補正する必要がないと判定された場合に、ステップＳ５の処理を省略するステップ（Ｓ４）とを含む。【選択図】図２
2008060799.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、前記（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正方法であって、
前記手振れの大きさ（以下、手振れ量という）を検出する手振れ量検出ステップと、
前記手振れ量に基づいて前記手振れを補正する手振れ補正ステップと、
前記手振れ量検出ステップで検出された手振れ量と、前記手振れ量検出ステップで検出された手振れ量の検出履歴とに基づいて、前記手振れを補正する必要があるか否かを判定する手振れ補正実施判定ステップと、
前記手振れ補正実施判定ステップで前記手振れを補正する必要がないと判定された場合に、前記手振れ補正ステップを省略するステップとを含む手振れ補正方法。
【請求項２】
請求項１記載の手振れ補正方法であって、
前記手振れ補正実施判定ステップは、
前記手振れ量を検出する際に生じる検出誤差範囲内に、前記手振れ量検出ステップで検出した手振れ量が入っているか否かを判定するステップと、
前記手振れ量が前記検出誤差範囲内に入っていた場合に、当該手振れ量が検出された時刻から所定期間前までの間の前記手振れ量検出ステップで検出された手振れ量が全て前記検出誤差範囲内に入っているか否かを前記検出履歴から判定するステップとを含み、
前記時刻から前記所定期間前までの間の前記手振れ量検出ステップで検出された手振れ量が全て前記検出誤差範囲内に入っていた場合に、前記手振れを補正する必要がないと判定する手振れ補正方法。
【請求項３】
撮像素子から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、前記（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正装置であって、
前記手振れの大きさ（以下、手振れ量という）を検出する手振れ量検出手段と、
前記手振れ量に基づいて前記手振れを補正する手振れ補正手段と、
前記手振れ量検出手段で検出された手振れ量と、前記手振れ量検出手段による前記手振れ量の検出履歴とに基づいて、前記手振れを補正する必要があるか否かを判定する手振れ補正実施判定手段とを備え、
前記手振れ補正手段は、前記手振れ補正実施判定手段が前記手振れを補正する必要がないと判定した場合に、前記手振れを補正する処理を省略する手振れ補正装置。
【請求項４】
請求項３記載の手振れ補正装置であって、
前記手振れ補正実施判定手段が、前記手振れ量を検出する際に生じる検出誤差範囲内に、前記手振れ量検出ステップで検出した手振れ量が入っているか否かを判定し、前記手振れ量が前記検出誤差範囲内に入っていた場合に、当該手振れ量が検出された時刻から所定期間前までの間に前記手振れ量検出手段で検出された手振れ量が全て前記検出誤差範囲内に入っているか否かを前記検出履歴から判定し、前記時刻から前記所定期間前までの間に検出された手振れ量が全て前記検出誤差範囲内に入っていた場合に、前記手振れを補正する必要がないと判定する手振れ補正装置。
【請求項５】
請求項３又は４記載の手振れ補正装置と、
前記撮像素子とを備える撮像装置。
【請求項６】
請求項１又は２記載の手振れ補正方法の各ステップをコンピュータに実行させるための手振れ補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像素子から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、前記（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正方法に関する。
【背景技術】
【０００２】
例えば、動画撮影機能を有するデジタルスチルカメラやビデオカメラ等を手に持ち動画を撮影する場合、カメラを持つ手が振れると、あるフレームの画像中に映っている静止物画像の位置が次フレームの画面では移動してしまい、見づらい動画になってしまう。そこで、あるフレームの画像に対して次フレームの画像の移動ベクトルを検出し、画像が揺れない様に手振れ補正を行うことが行われている。
【０００３】
図３は、手振れ補正を行うときの移動ベクトルを検出する原理を示す説明図である。
デジタルカメラでは、動画撮影時、撮像素子から得られた最大解像度の画像データ（以下、最大画像データという）が所定のフレームレートで順次手振れ補正装置に入力される。手振れ補正装置では、図３（ａ）に示すように、撮像素子から得られたＮフレーム目の最大画像データ６１において、実際に動画の１フレームとして記録すべき所定サイズの画像データ（以下、記録画像データという）の切り出し範囲を決定し、この切り出し範囲にある画像データ６６を切り出して、記録媒体等に記録する。この場合、図３（ａ）に示すＮフレーム目の全体画像データ６１中の所定アドレスで示されるブロック６２内の画像データを基準画像データとすると、図３（ｂ）に示す（Ｎ＋１）フレーム目の全体画像データ６３中のブロック６２と同一所定アドレスで示されるブロック６４によって切り出された比較画像データが基準画像データと同一であれば、全体画像データ６１に対して全体画像データ６３は振れていないことになる。
【０００４】
しかし、手振れが発生していれば、ブロック６２内の基準画像データとブロック６４で切り出された比較画像データは一致しない。そこで、手振れ補正装置では、全体画像データ６３中のブロック６４を、全体画像データ６３内においてブロック６４ａ，６４ｂ，６４ｃ，・・・のように、Ｘ方向（水平方向）、Ｙ方向（垂直方向）に１画素づつずらしながら、各ブロック６４ａ，６４ｂ，６４ｃ，・・・内の夫々の比較画像データを基準画像データと比較し、基準画像データと最も相関性が高い比較画像データを切り出したブロック位置を求める。
【０００５】
図３（ｂ）に示す例で、ブロック６２の基準画像データに対し最も相関性の高い比較画像データがブロック６４ｃで切り出されたとすると、全体画像データ６１に対する全体画像データ６３の差は「ｋ」となり、このｋが全体画像データ６１と全体画像データ６３との間の移動ベクトルとなる。従って、手振れ補正装置では、図３（ｃ）に示すように、全体画像データ６３に設定する記録画像データの切り出し範囲を、画像データ６６を切り出した位置から移動ベクトルｋだけ移動させた範囲とし、この切り出し範囲から画像データ６７を切り出して記録媒体等に記録すれば、手振れの補正された画像データを得ることができる。
【０００６】
又、このような方法以外に、圧電振動ジャイロや加速度センサ等の検出装置を用いて移動ベクトルを検出することもできる。
【０００７】
上述したように、移動ベクトルを検出する方法は様々なものがあるが、いずれの方法を採用した場合でも、検出誤差というものが発生する。例えば、Ｎフレーム目の画像データと（Ｎ＋１）フレーム目の画像データとを比較して移動ベクトルを検出する方法では、移動ベクトルの検出最小単位を１画素とする場合、理論的には±０．５画素分の検出誤差が発生する。これ以外に、ノイズ等の影響によってさらに大きな誤差となることが考えられる。上記検出装置にも同様に検出誤差というものが存在する。
【０００８】
例えば、動画撮影を行っている状態のデジタルカメラを机の上に置いて全く揺れない状態にした場合、本来ならば移動ベクトルは０となるべきであるが、上述した検出誤差が発生していることで、実際には、検出誤差の範囲内で移動ベクトルが検出されてしまい、この検出された移動ベクトルによって手振れ補正が行われてしまうといった問題がある。デジタルカメラを手で持って撮影する際にも検出誤差は発生しているため、デジタルカメラを固定しているときと、そうでないときのいずれにおいても、検出誤差に基づく手振れ補正は行われることになる。デジタルカメラを手に持っている状態で検出誤差による手振れ補正が行われたとしても、画像の揺れはそれほど目立たないが、デジタルカメラを固定した状態で、検出誤差による手振れ補正が行われてしまうと、静止しているはずの画面が検出誤差によって揺れるため、その揺れがユーザにとっては気になってしまう。
【０００９】
このような問題を引き起こす検出誤差は、高価な検出装置を用いれば非常に小さくすることができるが、高価な検出装置は、コンパクトデジタルカメラには不向きとなる。
【００１０】
上記問題を解決するために、従来では、検出した移動ベクトルが検出誤差範囲内に入っていた場合には、その移動ベクトルに基づく手振れ補正を行わず、検出した移動ベクトルが検出誤差範囲外になったときのみ、その移動ベクトルに基づく手振れ補正を行うといった制御を行うカメラが知られている。
【００１１】
尚、手振れ補正に関連する従来技術として、下記特許文献１，２等がある。
【００１２】
【特許文献１】特開２００３−３３１２９２号公報
【特許文献２】特開２００４−１４６９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、上記制御を行ってしまうと、例えば、図４に示すように移動ベクトルが正弦波状に変化していた場合、移動ベクトルは、検出誤差範囲内を入ったり出たりを繰り返すことになるため、出力される画像が不自然なものとなってしまう。
【００１４】
本発明は、上記事情に鑑みてなされたものであり、違和感のない自然な動画像を出力させることが可能な手振れ補正方法、手振れ補正装置、及び手振れ補正装置を備えた撮像装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の手振れ補正方法は、撮像素子から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、前記（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正方法であって、前記手振れの大きさ（以下、手振れ量という）を検出する手振れ量検出ステップと、前記手振れ量に基づいて前記手振れを補正する手振れ補正ステップと、前記手振れ量検出ステップで検出された手振れ量と、前記手振れ量検出ステップで検出された手振れ量の検出履歴とに基づいて、前記手振れを補正する必要があるか否かを判定する手振れ補正実施判定ステップと、前記手振れ補正実施判定ステップで前記手振れを補正する必要がないと判定された場合に、前記手振れ補正ステップを省略するステップとを含む。
【００１６】
本発明の手振れ補正方法は、前記手振れ補正実施判定ステップが、前記手振れ量を検出する際に生じる検出誤差範囲内に、前記手振れ量検出ステップで検出した手振れ量が入っているか否かを判定するステップと、前記手振れ量が前記検出誤差範囲内に入っていた場合に、当該手振れ量が検出された時刻から所定期間前までの間の前記手振れ量検出ステップで検出された手振れ量が全て前記検出誤差範囲内に入っているか否かを前記検出履歴から判定するステップとを含み、前記時刻から前記所定期間前までの間の前記手振れ量検出ステップで検出された手振れ量が全て前記検出誤差範囲内に入っていた場合に、前記手振れを補正する必要がないと判定する。
【００１７】
本発明の手振れ補正装置は、撮像素子から連続して出力されるＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、前記（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正装置であって、前記手振れの大きさ（以下、手振れ量という）を検出する手振れ量検出手段と、前記手振れ量に基づいて前記手振れを補正する手振れ補正手段と、前記手振れ量検出手段で検出された手振れ量と、前記手振れ量検出手段による前記手振れ量の検出履歴とに基づいて、前記手振れを補正する必要があるか否かを判定する手振れ補正実施判定手段とを備え、前記手振れ補正手段は、前記手振れ補正実施判定手段が前記手振れを補正する必要がないと判定した場合に、前記手振れを補正する処理を省略する。
【００１８】
本発明の手振れ補正装置は、前記手振れ補正実施判定手段が、前記手振れ量を検出する際に生じる検出誤差範囲内に、前記手振れ量検出ステップで検出した手振れ量が入っているか否かを判定し、前記手振れ量が前記検出誤差範囲内に入っていた場合に、当該手振れ量が検出された時刻から所定期間前までの間に前記手振れ量検出手段で検出された手振れ量が全て前記検出誤差範囲内に入っているか否かを前記検出履歴から判定し、前記時刻から前記所定期間前までの間に検出された手振れ量が全て前記検出誤差範囲内に入っていた場合に、前記手振れを補正する必要がないと判定する。
【００１９】
本発明の撮像装置は、前記手振れ補正装置と、前記撮像素子とを備える。
【００２０】
本発明の手振れ補正プログラムは、上記手振れ補正方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２１】
本発明によれば、違和感のない自然な動画像を出力させることが可能な手振れ補正方法、手振れ補正装置、及び手振れ補正装置を備えた撮像装置を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について図面を参照して説明する。
【００２３】
図１は、本発明の実施形態である撮像装置、例えば動画撮影機能付デジタルスチルカメラの要部構成図である。
図１に示す撮像装置１００は、被写体を撮像するＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の撮像素子１０と、動画撮影時に撮像素子１０から連続して出力されるＮフレーム目の画像データを格納するフレームメモリ２０及び（Ｎ＋１）フレーム目の画像データを格納するフレームメモリ３０と、フレームメモリ２０，３０に格納された画像データから記録画像データを切り出し、切り出した記録画像データに対してホワイトバランス補正処理やガンマ補正処理，ＲＧＢ／ＹＣ変換処理等の各種信号処理を施す画像処理部５０と、信号処理後の記録画像データたとえばＪＰＥＧ圧縮された画像データやＭＰＥＧ圧縮された画像データを記録メディアに格納したりモニタ表示したりする画像出力部６０と、フレームメモリ２０，３０に格納されたＮフレーム目の画像データと（Ｎ＋１）フレーム目の画像データから、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する手振れ補正装置４０とを備える。
【００２４】
手振れ補正装置４０は、図３に示したような公知の手法や、圧電振動ジャイロや加速度センサ等で、（Ｎ＋１）フレーム目の画像データのＮフレーム目の画像データに対する手振れの大きさを示す移動ベクトルを検出する移動ベクトル検出部４１と、移動ベクトル検出部４１で検出された移動ベクトルに基づいて、（Ｎ＋１）フレーム目の画像データからの記録画像データの切り出し範囲を決定し、これを画像処理部５０に通知することで、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する処理を行う手振れ補正部４３と、移動ベクトル検出部４１で検出された移動ベクトルと、移動ベクトル検出部４１による移動ベクトルの検出履歴とに基づいて、（Ｎ＋１）フレーム目の画像データに対して手振れを補正する処理を行う必要があるか否かを判定する手振れ補正実施判定部４２とを備える。
【００２５】
手振れ補正部４３は、手振れ補正実施判定部４２が手振れを補正する処理を行う必要がないと判定した場合には、（Ｎ＋１）フレーム目の画像データからの記録画像データの切り出し範囲を、Ｎフレーム目の画像データからの記録画像データの切り出し範囲と同じとして画像処理部５０に通知する。つまり、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する処理を省略する。一方、手振れ補正実施判定部４２が手振れを補正する処理を行う必要があると判定した場合には、移動ベクトル検出部４１で検出された移動ベクトルに基づいて、（Ｎ＋１）フレーム目の画像データからの記録画像データの切り出し範囲を決定し、これを画像処理部５０に通知することで、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する処理を行う。
【００２６】
手振れ補正実施判定部４２には、図示しないメモリが内蔵されており、このメモリには、移動ベクトル検出部４１で過去に検出された移動ベクトルと、その移動ベクトルを検出した時間の情報とを示す移動ベクトルの検出履歴が記憶されていく。尚、この検出履歴は、１回の動画撮影毎に記憶され、撮影終了後に消去されるものとする。
【００２７】
画像処理部５０は、撮像素子１０から１フレーム目の画像データが出力され、１フレーム目の画像データがフレームメモリ２０に格納されたときのみ、フレームメモリ２０に格納された画像データの予め決められた範囲から記録画像データを切り出し、切り出した記録画像データに所定の画像処理を施した後、画像出力部６０に出力する。そして、２フレーム目以降の画像データがフレームメモリ３０に格納されたときは、フレームメモリ３０に格納された画像データから、手振れ補正部４３から通知された切り出し範囲にしたがって記録画像データを切り出し、切り出した記録画像データに所定の画像処理を施した後、画像出力部６０に出力する。
【００２８】
次に、撮像装置１００で動画撮影を行う場合の動作について説明する。
図２は、図１に示す撮像装置で動画撮影を行った際の動作フローを示す図である。
フレームメモリ２０にＮフレーム目の画像データが格納され、フレームメモリ３０に（Ｎ＋１）フレーム目の画像データが格納されると、Ｎフレーム目の画像データに対する（Ｎ＋１）フレーム目の画像データの移動ベクトルが移動ベクトル検出部４１により検出される（ステップＳ１）。移動ベクトルが検出されると、この移動ベクトルが、それを検出した時間と共に、検出履歴として手振れ補正実施判定部４２内のメモリに記憶される。
【００２９】
次に、手振れ補正実施判定部４２が、ステップＳ１で検出された移動ベクトルが検出誤差範囲内に入っているか否かを判定する（ステップＳ２）。検出誤差範囲内に入っていた場合（ステップＳ２：ＹＥＳ）、手振れ補正実施判定部４２は、メモリに記憶された検出履歴を参照し、ステップＳ１で最新の移動ベクトルが検出された時刻から所定期間前までの間のステップＳ１で検出された移動ベクトルが全て検出誤差範囲内に入っているか否かを判定する（ステップＳ３）。
【００３０】
例えば、移動ベクトル検出部４１が、時刻ｔ１〜ｔ１０の合計１０回、移動ベクトルを検出したものとし、上述した最新の移動ベクトルが検出された時刻を時刻ｔ１０とすると、手振れ補正実施判定部４２は、時刻ｔ１０から所定期間前の時刻である時刻ｔ６までの間の各時刻で移動ベクトル検出部４１により検出された５つの移動ベクトル（時刻ｔ１０で検出された移動ベクトル、時刻ｔ９で検出された移動ベクトル、時刻ｔ８で検出された移動ベクトル、時刻ｔ７で検出された移動ベクトル、時刻ｔ６で検出された移動ベクトルの計５つ）の全てが、検出誤差範囲内に入っているか否かを判定する。
【００３１】
ステップＳ３の判定がＹＥＳ、つまり、所定期間に亘って移動ベクトルが検出誤差範囲内に入っていた場合、この場合は、手振れが発生していない状況と判断できるため、手振れ補正部４３は、（Ｎ＋１）フレーム目の画像データからの記録画像データの切り出し範囲を、Ｎフレーム目の画像データからの記録画像データの切り出し範囲と同じとして、画像処理部５０に通知する。つまり、手振れ補正部４３は、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する処理を省略する（ステップＳ４）。
【００３２】
一方、ステップＳ３の判定がＮＯ、つまり、所定期間に亘って移動ベクトルが検出誤差範囲内に入っていなかった場合（ステップＳ３：ＮＯ）、この場合は、静止状態ではなく、２つの画像データ間に非常に小さい手振れが発生している状況であると判断できるため、手振れ補正部４３は、Ｎフレーム目の画像データからの記録画像データの切り出し範囲をステップＳ１で検出した最新の移動ベクトルだけ移動させた範囲を、（Ｎ＋１）フレーム目の画像データからの記録画像データの切り出し範囲として、画像処理部５０に通知する。つまり、手振れ補正部４３は、（Ｎ＋１）フレーム目の画像データに発生している手振れを補正する処理を行う（ステップＳ５）。
【００３３】
ステップＳ２において、ステップＳ１で検出された移動ベクトルが、検出誤差範囲内に入っていなかった場合（ステップＳ２：ＮＯ）、この場合は、検出誤差以上の大きな手振れが発生していると判断できるため、ステップＳ５に処理を移行する。
【００３４】
ステップＳ４、ステップＳ５の後は、ステップＳ１に戻り、動画撮影が終了されるまで、以上の処理が繰り返し行われる。
【００３５】
以上のように、手振れ補正装置４０は、移動ベクトル検出部４１で検出した移動ベクトルが検出誤差範囲内に入っていた場合でも、移動ベクトル検出部４１で検出した移動ベクトルが検出誤差範囲内に入っている期間が短い場合には、小さい手振れが発生しているとして、手振れ補正を行い、移動ベクトルが検出誤差範囲内に入っている期間が長い場合には、手振れが発生していない静止状態であるとして、手振れ補正を行わないようにしている。このため、撮像装置１００を静止させた状態で動画撮影を行っているときに手振れ補正が行われ続けるのを防ぐことができ、正確な動画像データを記録することができる。又、図４に示すように移動ベクトルが変化するような手振れが発生している場合でも、手振れ補正が突然停止されるのを防ぐことができ、違和感のない自然な動画像データを記録することができる。
【００３６】
又、手振れ補正装置４０によれば、移動ベクトル検出部４１での検出誤差範囲の大小に関わらず、良好な動画像データを記録することができるため、手振れ補正装置４０の低コスト化を実現することができる。
【００３７】
尚、手振れ補正装置４０の機能は、プログラムによっても実現することができる。この場合、図２に示す各ステップをコンピュータに実行させるための手振れ補正プログラムを撮像装置１００内のＲＯＭに記憶させておき、撮像装置１００内のプロセッサが、このプログラムを実行するように構成すれば良い。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施形態である撮像装置、例えば動画撮影機能付デジタルスチルカメラの要部構成図
【図２】図１に示す撮像装置で動画撮影を行った際の動作フローを示す図
【図３】手振れ補正を行うときの移動ベクトルを検出する原理を示す説明図
【図４】移動ベクトルの軌跡の一例を示す図
【符号の説明】
【００３９】
１００  撮像装置
１０  撮像素子
２０，３０  フレームメモリ
４０  手振れ補正装置
４１  移動ベクトル検出部
４２  手振れ補正実施判定部
４３  手振れ補正部
５０  画像処理部
６０  画像出力部
【図１】
2008060799.tif 000003
【図２】
2008060799.tif 000004
【図３】
2008060799.tif 000005
【図４】
2008060799.tif 000006