(57)【特許請求の範囲】
【請求項１】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置において、
前記振動を検出し、振動検出情報を出力する出力手段と、
前記出力手段により出力された前記振動検出情報をサンプリングするサンプリング手段と、
前記サンプリング手段によりサンプリングされた値に基づいて補正量候補を算出する算出手段と、
前記算出手段により算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成手段と、
前記生成手段により生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と、
前記算出手段により算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定手段と、
前記周波数成分と修正量が関連付けられたテーブルを記憶する記憶手段と、
前記推定手段により推定された前記周波数成分に対応する前記修正量を、前記記憶手段により記憶されている前記テーブルから読み出す読み出し手段と、
前記読み出し手段により読み出された前記修正量に基づき、前記生成手段が前記補正量情報を生成するために用いる値を修正する修正手段と
を含むことを特徴とする画像処理装置。
【請求項２】
前記推定手段は、第１の期間内に前記算出手段により算出された前記補正量候補の平均値を算出し、第２の期間内に算出された前記平均値を用いたＦＦＴ演算を行い、その演算結果を用いて前記振動の周波数成分を推定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記推定手段は、前記ＦＦＴ演算の結果、最もレベルが高い値の周波数を前記振動の周波数成分と推定する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記修正手段は、さらに、前記読み出し手段により読み出された前記修正量に基づき、前記算出手段が前記補正量候補を算出するために用いる値を修正する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記修正手段は、前記読み出し手段により読み出された前記修正量に基づき、前記生成手段が前記補正量情報を生成するために用いる値として前記補正量候補の位相を修正する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記修正手段は、前記読み出し手段により読み出された前記修正量に基づき、前記算出手段が前記補正量候補を算出するために用いる値として前記振動検出情報のゲインを修正する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記修正手段は、前記読み出し手段により読み出された前記修正量に基づき、前記生成手段が前記補正量情報を生成するために用いる値として前記補正量候補の位相を修正する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置の画像処理方法において、
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと
を含むことを特徴とする画像処理方法。
【請求項９】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置のプログラムであって、
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１０】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置を制御するコンピュータに、
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと
を実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、ユーザの手振れなどに起因する画像のずれをより精度良く補正し、ブレのない画像をユーザに提供するために用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
動画像や静止画像を撮像し、記録するビデオカメラやスチルカメラが普及し、さまざまな場面で利用されている。家庭用のビデオカメラやスチルカメラは、小型化、軽量化、高性能化している。小型化や軽量化が進むと、使い勝手は良くなるが、ユーザの手振れなどが発生しやすくなるといった問題があった。また、高性能化が進み、ズームなどの機能が充実すると、ズームしたときには、ズームしないときに比べて手振れの影響が大きく出てしまうといった問題があった。
【０００３】
そのような問題を解決する方法として、例えば、図１（Ａ）に示すように、撮像する撮像領域１を、ディスクなどの記録媒体に実際に撮像された画像として記録する画像の記録領域２よりも大きい領域として処理する方法がある。この方法では、撮像領域１に撮像されている画像から、記録領域２内の画像を切り出し、その切り出された画像を記録する。撮像領域１からどの領域を記録領域２として切り出すかは、検出された手振れの大きさを考慮した補正量を算出し、その補正量を用いて行われる。
【０００４】
時刻ｔにおいて切り出された記録領域２が図１（Ａ）に示したような状態のとき、次の時刻ｔ＋１において、図１（Ｂ）に示すように、水平方向の補正量３−１と垂直方向の補正量３−２が算出されると、その補正量３−１，３−２だけ移動された領域が、時刻ｔ＋１での記録領域２として切り出される。補正量３−１，３−２は、露光期間の中心の時刻に得られたデータが用いられて算出される。
【０００５】
補正値の算出について説明する。ビデオカメラなどには、手振れを検出するための、例えば、角速度センサが設けられている。その角速度センサからの手振れ信号は連続的に出力されている。連続的に出力されている信号は、例えば、ＶＤパルスの１パルスのうちに、８回のタイミングでサンプリングされる。そのサンプリングされた信号を用いた演算が行なわれることにより、手振れによる影響を低減させるための補正量が算出される。
【０００６】
算出された補正量のうち、露光期間の中心に近いタイミングで得られた補正量のみが画像の切り出しに用いられる補正量とされる。これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【０００７】
このように、１フィールドあたりＮ回の定められたタイミング（Ａ／Ｄタイミング）で、センサから得られる手振れ信号がサンプリングされ、このサンプリングの結果得られた信号が用いられた演算が行われたＮ個の演算結果から、シャッタスピードの露光期間の中心位置に最も近いタイミングに位置する演算結果が、そのフィールドの補正量として用いられる。
【０００８】
しかしながら、手振れを補正するための補正量は、シャッタスピードに応じた露光期間の中心のタイミングに得られるものが用いられるが、必ずしも、露光期間の中心のタイミングで得られるものが用いられるとは限らなかった。露光期間の中心のタイミングで得られるものが用いられない場合、画像にぼけが生じるなど性能の悪化をまねいてしまう。
【０００９】
このような問題は、主に、補正量が算出されるタイミングが、露光期間の中心からずれているために生じるため、できる限り、露光期間の中心のタイミングで得られる手振れ信号から補正量が算出されるような方法が提案されている。例えば、センサなどから得られる手振れ信号に対して露光期間の中心のタイミングを調整してサンプリングを行うようにする方法（露光期間に対応してサンプリングタイミングを変化させる方法）が提案されている。
【００１０】
また他の方法としては、露光期間の中心位置と、複数のサンプリング信号との関係を予め記憶しておき、その記憶されている関係から、最もそのときの状況に適しているサンプリング信号を抽出し、そのサンプリング信号に基づくサンプリングを行うことにより補正量を算出する方法が提案されている。
【００１１】
【発明が解決しようとする課題】
上述した方法は、露光期間の中心位置で取得された信号を基に算出される補正量で、補正処理を行うことが一番性能良く手振れを補正できるという前提に基づいている。ところで、補正量を算出するまでのシステムには、さまざまなフィルタなどが含まれており、そのシステムの伝達関数に関する周波数特性が存在する。しかしながら、補正量を算出する際、このシステムにおける周波数特性については考慮されておらず、周波数特性を考慮しないために、性能良く手振れの補正処理を実行できないといった問題があった。
【００１２】
補正量を算出する処理に関わるシステムとしては、例えば、図２に示すように、手振れを検出する手振れセンサ３０１、手振れセンサ３０１により取得された手振れ信号に対してアナログ的な処理を施すアナログ回路３０２、アナログ的な処理が施された手振れ信号に対して、デジタル的な処理を施すマイクロコンピュータ３０３などである。マイクロコンピュータ３０３は、アナログ信号をデジタル信号に変換するＡ／Ｄ変換部３０４と、Ａ／Ｄ変換部３０４からのデジタル信号に対して処理を施すデジタル回路３０５から構成されている。
【００１３】
アナログ回路３０２は、例えば、ローパスフィルタ（LPF）、ハイパスフィルタ（HPF）、アンプなどが組み込まれている。また、デジタル回路３０５にも、必要に応じフィルタなどが組み込まれている。ここで、手振れセンサ３０１、アナログ回路３０２、およびマイクロコンピュータ３０３の、それぞれの伝達関数を、Ｇ１（ｆ）、Ｇ２（ｆ）、およびＧ３（ｆ）とすると、補正量を算出するために関わるブロックの伝達関数Ｇ（ｆ）は、
Ｇ（ｆ）＝Ｇ１（ｆ）×Ｇ２（ｆ）×Ｇ３（ｆ）
で表される。
【００１４】
図２に示したような補正量を算出するためのブロックを有するビデオカメラなどのシステムは、上記した伝達関数Ｇ（ｆ）で表される周波数特性をもつ。例えば、伝達関数Ｇ（ｆ）により、ゲインに対しては、図３（Ａ）に示すような、位相（Phase）に対しては、図３（Ｂ）に示すような特性を持つ。
【００１５】
このような周波数特性のために、検出された手振れ信号と、その手振れ信号を用いて算出された補正量との間には、周波数特性分だけズレを生じてしまう。即ち、どちらか一方が進む、または遅れてしまう。また、信号に係るゲインも周波数に応じて変動してしまうことになる。このようなことを抑制するためには、必要とされる周波数帯域における周波数特性が、フラットになるように設計すればよいが、そのような設計は困難であるという問題があった。
【００１６】
補正量を求める為のブロックに、上述したような周波数特性が存在するため、算出された補正量にも、その周波数特性の影響は出てしまう。図４は、算出された補正量を用いたときに、どれだけ補正が効果的に行われたかを示す補正効果と、周波数との関係を示した図である。周波数により補正効果が異なることがわかる。帯域Ａは、平均的に発生する手振れの周波数の帯域を示し、帯域Ｂは、ユーザや、そのユーザの持ち方に依存して発生する手振れの帯域を示し、帯域Ｃは、車載などの際に発生する手振れの帯域を示す。
【００１７】
図４に示したように、手振れが発生する状況により、効果的に補正できる周波数の帯域と、できない帯域とがでてしまう。従って、最も発生しやすい手振れの状況のときに、最も効果的に補正が行えるようにシステムが設計されるため、補正が効果的に行えない帯域が存在してしまうといった問題があった。
【００１８】
このことは、全ての帯域において効果的な補正を行うシステムを設計するのは困難であり、例えば、図４に示したような補正性能の周波数特性であったような場合、ユーザ自身の癖や撮影状態、例えば、持ち疲れ、撮影操作時の変則的振動、車や遊園地などの乗り物に乗っている時などの撮影環境によって発生する高周波成分（帯域Ｂや帯域Ｃの状態）に対しては、位相回りやゲイン変動の影響で、補正性能が悪化してしまうといった問題があった。
【００１９】
本発明はこのような状況に鑑みてなされたものであり、どのような状況で発生した手振れでも、補正性能を悪化することなく補正できるようにすることを目的とする。
【００２０】
【課題を解決するための手段】
本発明の画像処理装置は、振動を検出し、振動検出情報を出力する出力手段と、出力手段により出力された振動検出情報をサンプリングするサンプリング手段と、サンプリング手段によりサンプリングされた値に基づいて補正量候補を算出する算出手段と、算出手段により算出された補正量候補に基づいた演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成手段と、生成手段により生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と、算出手段により算出された補正量候補に基づいて、振動の周波数成分を推定する推定手段と、周波数成分と修正量が関連付けられたテーブルを記憶する記憶手段と、推定手段により推定された周波数成分に対応する修正量を、記憶手段により記憶されているテーブルから読み出す読み出し手段と、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値を修正する修正手段とを含むことを特徴とする。
【００２１】
前記推定手段は、第１の期間内に算出手段により算出された補正量候補の平均値を算出し、第２の期間内に算出された平均値を用いたＦＦＴ演算を行い、その演算結果を用いて振動の周波数成分を推定するようにすることができる。
前記推定手段は、ＦＦＴ演算の結果、最もレベルが高い値の周波数を振動の周波数成分と推定するようにすることができる。
前記修正手段は、さらに、読み出し手段により読み出された修正量に基づき、算出手段が補正量候補を算出するために用いる値を修正するようにすることができる。
【００２２】
前記修正手段は、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値として補正量候補の位相を修正するようにすることができる。
前記修正手段は、読み出し手段により読み出された修正量に基づき、算出手段が補正量候補を算出するために用いる値として振動検出情報のゲインを修正するようにすることができる。
前記修正手段は、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値として補正量候補の位相を修正するようにすることができる。
【００２３】
本発明の画像処理方法は、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを含むことを特徴とする。
【００２４】
本発明の記録媒体のプログラムは、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを含むことを特徴とする。
【００２５】
本発明のプログラムは、画像処理装置を制御するコンピュータに、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを実行させることを特徴とする。
【００２６】
本発明の画像処理装置および方法、並びにプログラムにおいては、振動に関する振動検出情報がサンプリングされ、その値に基づいて補正量候補が算出され、補正量候補に基づく演算が行なわれるか、または、補正量候補から所定の条件を満たす補正量候補が選択されることにより、補正量情報が生成され、その補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域が制御され、振動の周波数成分が推定され、その周波数成分に対応する修正量が、周波数成分と修正量が関連付けられたテーブルから読み出され、その修正量に基づき、補正量情報が生成されるために用いられる値が修正される。
【００２７】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図５は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図５に示した画像処理装置１０は、例えば、ビデオカメラやスチルカメラに備えられる。また、図５に示した画像処理装置１０は、記録時（撮影時）において手振れ（振動）を検出し、これを補正することを前提としており、従って、図５には、主に記録に関わるブロックを示している。
【００２８】
画像処理装置１０の光学撮像部１１は、撮像レンズ（不図示）を含む光学系の装置から構成されている。光学撮像部１１に入射した光は、ＣＣＤ（Charge Coupled Device）１２により光電変換され、電気信号としてアナログ信号処理部１３に出力される。
【００２９】
アナログ信号処理部１３は、入力された電気信号（アナログ信号）を、デジタル変換するためにサンプリングして保持したり（Sample and Hold）、入力信号の振幅の変動を検出して、出力信号の振幅を一定に保つために増幅の利得を制御するＡＧＣ（Automatic Gain Control）を行ったり、そのような処理が行われたアナログ信号をデジタル信号に変換したりといった処理を行う。
【００３０】
アナログ信号処理部１３により処理され、出力されたデジタル信号は、デジタル信号処理部１４に入力される。デジタル信号処理部１４にはメモリ１５が備えられており、入力されたデジタル信号は、メモリ１５に記憶される。デジタル信号処理部１４は、メモリ１５に記憶したデジタル信号に対して、画像の切り出しや圧縮などの処理を行う。デジタル信号処理部１４による処理が終了したデジタル信号は、後段の処理に出力される。後段の処理とは、例えば、ディスク状の記録媒体にデジタル信号を記録するなどである。
【００３１】
制御部１６は、画像処理装置１０内の各部を制御する。制御部１６は、レンズ駆動部１７にレンズ制御データ１０１を出力する。レンズ制御データ１０１は、光学撮像部１１に含まれる撮像用レンズを駆動させたり、絞りなどを調節するためのデータである。制御部１６は、タイミングジェネレータ１８に対してタイミング制御データ１０２を出力する。タイミング制御データ１０２は、ＣＣＤ１２により光電変換された電気信号をサンプリングし、アナログ信号処理部１３に出力するタイミングを指示するデータである。
【００３２】
制御部１６は、デジタル信号処理部１４に対してカメラ画処理用データ１０３やメモリ切り出し用制御データ１０４を出力し、デジタル信号処理部１４から検波データ１０５を入力する。カメラ画処理用データ１０３は、デジタル信号にされた撮像された画像の処理に用いられるデータであり、例えば、ホワイトバランス調整値などのデータである。メモリ切り出し用制御データ１０４は、撮像された画像から、どの領域の画像を記録させる画像として切り出すかを指示するデータである。検波データ１０５は、デジタル信号処理部１４に入力された画像の状態に関するデータである。
【００３３】
制御部１６は、インタフェース制御部１９にカメラ制御情報１０６を出力し、インタフェース制御部１９からユーザ指示情報１０７を入力する。カメラ制御情報１０６は、被写体までの距離、Ｆ値、シャッタスピード、倍率などの情報である。ユーザ指示情報１０７は、ユーザが指示した撮影モードなどに関する情報である。
【００３４】
ユーザインタフェース２０は、ユーザが画像処理装置１０に対して指示を出す、例えば、撮影モードを設定するなどの操作を行うためのボタンや、ユーザに対して情報を提供（表示）するＬＣＤ（Liquid Crystal Display）などから構成されており、ボタンが操作されて指示された情報は、ユーザ指示情報１０７として制御部１６に供給され、制御部１６からのカメラ制御情報１０６に基づいた情報は、ＬＣＤに表示される。
【００３５】
手振れ補正部２１は、手振れなどにより画像処理装置１０に加えられた振動を検知し、検知した振動の大きさに対応して、記録される画像に振動の影響を抑制するための補正量情報１０８を制御部１６に出力する。手振れ補正部２１は、明るさ制御部２２から供給される明るさ情報１０９も利用して補正量情報１０８を生成する。
【００３６】
図６は、手振れ補正部２１の内部構成例を示す図である。手振れセンサ５１は、角速度センサなどにより構成され、画像処理装置１０に加えられた振動を検出するセンサである。図６には１つの手振れセンサ５１しか示さないが、垂直方向の振動を検出するセンサと、水平方向の振動を検出するセンサとは別々に設けられており、図６に示した手振れ補正部２１も、それぞれのセンサ毎、すなわち、画像処理装置１０には２つの手振れ補正部２１が設けられている。ここでは、垂直方向または水平方向に加えられた振動を検出する１系統を例に挙げて説明する。
【００３７】
勿論、垂直方向の振動を処理する手振れ補正部２１と水平方向の振動を処理する手振れ補正部２１で、共用できる部分は共用し、必ずしも各部分を２つ備える必要はない。また、本実施の形態において、手振れセンサ５１により処理される振動は、ユーザの手振れによる振動は勿論、画像処理装置１０が車載された際に加えられた振動なども含む。
【００３８】
手振れセンサ５１により検出された振動に関する信号は、Ａ／Ｄ変換部５２に出力される。Ａ／Ｄ変換部５２は、入力されたアナログ信号をデジタル信号に変換して高域通過フィルタ５３に出力する。Ａ／Ｄ変換部５２には、必要に応じて、フィルタや増幅部を設けても良い。フィルタとしては、例えば、カットオフ周波数が、手振れセンサ５１から出力される手振れ信号の帯域に設定してある帯域通過フィルタなどである。また増幅部は、手振れセンサ５１からの信号が微弱であり、後段の処理で処理できる強度まで上げる必要がある場合に備えられる（Ａ／Ｄ変換の分解能に合わせる為に必要な場合に備えられる）。
【００３９】
高域通過フィルタ５３は、入力されたデジタル信号に対して、入力信号に含まれる直流付近の成分（振動には関係のない原因により含まれる成分）を除去するために設けられている。高域通過フィルタ５３のカットオフ周波数は、振動に関する信号の成分に対して影響を及ぼすことがない程度の値に設定される。高域通過フィルタ５３から出力された信号は、センサゲイン調整部５４に入力される。センサゲイン調整部５４は、個々の手振れセンサ５１やＡ／Ｄ変換部５２の性能のバラツキを吸収（補正）するために設けられている。
【００４０】
センサゲイン調整部５４は、基本的な処理として、入力された信号に対してゲインをかける処理を行う。ゲインは、例えば、画像処理装置１０が出荷時に生産ラインで行われる調整により決定（設定）される。これは、同一の手振れセンサ５１を用いたとしても、個々の手振れセンサ５１で、多少のずれはあるため、予めどの画像処理装置１０に対しても同一の値を設定するよりも、生産ライン上で個々の画像処理装置１０において調整を行い、センサの感度に応じた値に設定した方が好ましいからである。
【００４１】
また、本実施の形態においは、補正量生成部５８から出力されるゲイン調整情報１２１（詳細は後述）も、センサゲイン調整部５４に供給される。センサゲイン調整部５４は、供給されたゲイン調整情報１２１を用いて、入力された信号にかけるゲインの値を決定しゲインをかける処理を行う、または、ゲイン調整情報１２１により決定されたゲインをかける処理を行う。
【００４２】
センサゲイン調整部５４からの出力は、ズームゲイン調整部５５に出力される。光学ズームのＷ端（低倍率側のズーム）に比べてＴ端（高倍率側のズーム）ほど大きな補正値が必要であるが、手振れセンサ５１から出力される信号は、ズームに依存しない信号のため、ズームゲイン調整部５５は、倍率に応じた補正値を乗算し、倍率に適した値を得られるような調整を行う。ズームゲイン調整部５５を設けることにより、全ての倍率（全ズーム領域）において、常に適切な補正値を算出することが可能となる。
【００４３】
ズームゲイン調整部５５から出力された信号は、積分フィルタ５６に出力される。例えば、手振れセンサ５１が角速度センサで構成される場合、そのセンサから出力される信号は角速度であり、その角速度から、加えられた力（振動）の大きさを求める処理を実行する部分が、積分フィルタ５６である。
【００４４】
積分フィルタ５６からの出力（ここでは、補正量候補Ｓout［ｎ］とする）は、記憶部５７に記憶される。記憶部５７は、ＲＡＭ（Random Access Memory）などの記憶装置から構成される。本実施の形態においては、手振れセンサ５１から出力される手振れ信号に対し、１フィールドあたり、８回のサンプリングを実行するとして説明する。１フィールドあたり８回のサンプリングが行われる場合、記憶部５７は、積分フィルタ５６から出力された８つの補正量候補Ｓout［０］乃至［７］が少なくとも記憶できる容量を持つ。補正量候補Ｓout［０］乃至［６］は、Ｓout［７］より前の時刻で積分フィルタ５６より出力された信号である。
【００４５】
補正量生成部５８は、記憶部５７に記憶されている補正量候補Ｓout［０］乃至［７］の値と、明るさ制御部２２から供給される明るさ情報１０９を用いて、画像処理装置１０に加えられた振動の影響を除去するための最終的な補正量を生成する。補正量生成部５８における補正量の生成の処理については後述する。また、補正量生成部５８は、センサゲイン調整部５４に供給するゲイン調整情報１２１も生成する。生成された補正量に関する補正量情報１０８は、制御部１６に供給される。
【００４６】
制御部１６に供給される補正量情報１０８は、垂直方向に関する補正量情報１０８−１と水平方向に関する補正量情報１０８−２がある。垂直方向に関する補正量１０８−１は、タイミング制御データ１０２としてタイミングジェネレータ１８に供給され、水平方向に関する補正量１０８−２は、メモリ切り出し用制御データ１０４としてデジタル信号処理部１４に供給される。
【００４７】
タイミングジェネレータ１８は、供給されたタイミング制御データ１０２に基づき、ＣＣＤ１２からアナログ信号処理部１３への信号の出力のタイミングを決定する。すなわち、タイミングジェネレータ１８は、垂直方向に関する補正量情報１０８−１（タイミング制御データ１０２）に基づいて、フィールド毎に補正した垂直方向のリセット信号（Ｖリセット信号）をＣＣＤ１２に供給する。Ｖリセット信号がＣＣＤ１２に供給されることにより、ＣＣＤ１２からは、垂直方向の画像の読み出し開始位置が補正され、結果として垂直方向に関して、画像処理装置１０に加えられた振動の影響が抑制された画像の信号が、デジタル信号処理部１４に出力される。
【００４８】
デジタル信号処理部１４には、メモリ１５が備えられているが、そのメモリ１５に記憶されている信号に基づく画像は、垂直方向に関しては加えられた振動に関する補正は既になされている画像である。デジタル信号処理部１４は、供給されたメモリ切り出し用制御データ１０４に基づき、メモリ１５に記憶されている画像のデータの読み出しの開始のタイミングを決定する。すなわち、デジタル信号処理部１４は、水平方向に関する補正量情報１０８−２（メモリ切り出し用制御データ１０４）に基づいて、フィールド毎に補正した水平方向の読み出し開始位置を決定、制御する。水平方向の読み出しの開始位置が制御されることにより、結果として水平方向に関しても、画像処理装置１０に加えられた振動の影響が抑えられた画像の信号が後段の処理に出力されることになる。
【００４９】
このように垂直方向の振動の影響は、ＣＣＤ１２からの信号の読み出し位置を変更することにより低減させ、水平方向の振動の影響は、メモリ１５に記憶されている信号の読み出し位置を変更させることにより低減する。
【００５０】
図７は、記憶部５７と補正量生成部５８の機能ブロック図である。記憶部５７は、補正量候補Ｓout［０］乃至［７］を記憶する補正量候補記憶部７１と、各フィールド毎の補正量候補Ｓout［０］乃至［７］の平均値を記憶する補正量記憶部７２とから構成されている。ここでは、補正量平均値記憶部７２には、６４フィールド分の補正量候補Ｓout［ｎ］の平均値が記憶されるとして説明する。所定のフィールドの平均値を補正量平均値Ａｖｅ［ｍ］と記述し、ｍはここでは、０乃至６３の値をとる。
【００５１】
補正量候補記憶部７１に記憶された補正量候補Ｓout［０］乃至［７］は、補正量生成部５８の平均値算出部８１に出力される。平均値算出部８１は、入力された補正量候補Ｓout［０］乃至［７］の平均値を算出し、その平均値を記憶部５７の補正量平均値記憶部７２に出力する。補正量平均値記憶部７２に記憶された補正量平均値Ａｖｅ［０］乃至［６３］は、補正量生成部５８のＦＦＴ（Fast
Fourier Transform）演算部８２に供給される。
【００５２】
ＦＦＴ演算部８２によるＦＦＴ演算の演算結果は、周波数決定部８３に出力される。周波数決定部８３は、ＦＦＴ演算部８２による演算結果から、画像処理装置１０に加えられている振動の種類を判断するための周波数を決定し、その決定された周波数の情報（以下、周波数情報１３１と記述する）をゲイン補償テーブル８４と位相補償テーブル８５に出力する。ゲイン補償テーブル８４には、センサゲイン調整部５４に供給するゲイン調整情報１２１に関するテーブルが記憶されており、入力された周波数情報１３１に対応する値をゲイン調整情報１２１として、センサゲイン調整部５４（図６）に供給する。
【００５３】
位相補償テーブル８５は、位相に関する調整を行うための情報（以下、位相情報１３２と記述する）に関するテーブルが記憶されており、入力された周波数情報１３１に対応する値を位相情報１３２として、補正量情報生成部８６に出力する。ここでは、位相情報１３２は、補正量情報１０８を生成するために用いられる情報として説明する。
【００５４】
補正量情報生成部８６は、補正量候補記憶部７１に記憶されている補正量候補［０］乃至［７］と位相情報１３２を用いて、補正量情報１０８を生成し、制御部１６に供給する。
【００５５】
次に、手振れ補正部２１における補正量情報１０８の生成の処理について、図８のフローチャートを参照して説明する。図８のフローチャートの処理は、１フィールド毎に行われる。以下の説明においては、手振れセンサ５１から出力される手振れ信号のサンプリングは、１ＶＤパルス中に８回行われる場合を例に挙げて説明する。
【００５６】
ステップＳ１において、手振れ補正部２１の手振れセンサ５１により、画像処理装置１０に加えられた振動が検出され、手振れ信号が取得される。ステップＳ２において、取得された信号のうち、サンプリング周波数毎にサンプリングが実行され、その信号が、Ａ／Ｄ変換部５２によりデジタル信号に変換される。
【００５７】
ステップＳ３において、デジタル化された信号は、高域通過フィルタ５３、センサゲイン調整部５４、およびズームゲイン調整部５５の各部における処理が施され、積分フィルタ５６に出力され、積分フィルタ５６における処理が施されることにより、その時点での手振れを補正するための補正量である補正量候補Ｓout［ｎ］が生成される。生成された補正量候補Ｓout［ｎ］は、記憶部５７の補正量候補記憶部７１に記憶される。
【００５８】
ステップＳ４において、８個の補正量候補Ｓout［０］乃至［７］が記憶部５７に記憶されたか否かが判断され、記憶されていないと判断された場合、ステップＳ１に戻り、それ以降の処理が繰り返される。すなわち、１ＶＤパルス内に、予め設定された回数だけサンプリングが行われ、記憶部５７に最終的な補正量情報１０８を算出する際に用いられる補正量候補Ｓout［０］乃至［７］が記憶されるまで、ステップＳ１乃至Ｓ４の処理が繰り返される。
【００５９】
補正量情報１０８を算出するのに必要な補正量候補Ｓout［０］乃至［７］が記憶部５７に記憶されたと判断されると、ステップＳ５において、補正量生成部５８において、補正量情報１０８の生成が行われる。ステップＳ５における補正量生成部５８における補正量情報１０８の生成の処理を説明する前に、ステップＳ１乃至Ｓ４までの処理について、図９のタイミングチャートを参照して再度説明する。
【００６０】
図９Ａに示すＶＤパルスは、垂直同期信号であり、ＮＴＳＣ方式の場合、１／６０secであり、ＰＡＬ方式の場合、１／５０secを周期とするパルスである。図４に示した画像処理装置１０は、このＶＤパルスを基づいて駆動される。なお、ここでは、垂直同期信号を例に挙げ、垂直方向に関しての処理を例に挙げて説明するが、水平方向に関する処理も同様に行われ、画像処理装置１０には、上述したように、水平及び垂直の処理をそれぞれ行う２系統の備えられている。
【００６１】
図９Ｂに示したＳＧパルスは、ＣＣＤ１２の吐き出しパルスであり、このＳＧパルスのタイミングでＣＣＤ１２に蓄えられた電荷が吐き出される。図９Ｂ中のαは、ＶＤパルスからのずれ量αを示し、このずれ量αは、画像処理装置１０の構成に依存する固定値である。ずれ量の単位は、マイクロ秒である。
【００６２】
図９Ｃに示した露光期間は、明るさ制御部２２（図５）により決定される値であり、シャッタスピードに依存する。１つの露光期間を露光期間Ｔshutと記述する。露光期間Ｔshutは、タイミング制御データ１０２の１つとしてタイミングジェネレータ１８に供給される情報である。また、ＳＧパルスを基準として露光期間Ｔshutだけ電子シャッタが開放されるため、結果的に、その間だけＣＣＤ１２が露光される。
【００６３】
図９Ｄは、Ａ／Ｄタイミングを表し、Ａ／Ｄ変換部５２（図６）においてアナログ信号の手振れ信号が、デジタル信号に変換されるタイミングを示す。Ａ／Ｄタイミングは、ＶＤパルスを基準とし、１フィールドの長さをＮ分割したタイミングであり、１間隔が間隔Ｔｓである。この場合、１フィールドが８分割された場合を例に示している。この間隔Ｔｓ毎に、手振れセンサ５１において取得された手振れ信号が、Ａ／Ｄ変換部５２によりデジタル信号に変換される（サンプリングされる）。
【００６４】
図９Ｅは、補正量候補Ｓout［ｎ］が出力されるタイミングを示す。間隔Ｔｓごとに取得されたデジタル信号の手振れ信号は、積分フィルタ５６による演算が行われることにより、補正量候補Ｓout［ｎ］として記憶部５７に出力され、記憶される。
【００６５】
このようなタイミングで取得され、記憶部５７に記憶された補正量候補Ｓout［０］乃至［７］が用いられて、補正量生成部５８が補正量情報１０８を生成する処理（図８のステップＳ５の処理）について、図１０のフローチャートを参照して説明する。
【００６６】
ステップＳ２１において、記憶部５７の補正量候補記憶部７１に記憶されている補正量候補Ｓout［０］乃至［７］が読み出され、平均値算出部８１に供給される。平均値算出部８１は、ステップＳ２２において、入力された補正量候補Ｓout［０］乃至［７］の補正量平均値Ａｖｅ［ｍ］を次式（１）に基づいて算出する。
Ａｖｅ［ｍ］＝ΣＳout［ｎ］／Ｎ  ・・・（１）
【００６７】
式（１）において、この場合ｎは、０乃至７の値をとり、Ｎはサンプリング回数であり、この場合、８である。また、ステップＳ２２で算出される補正量平均値Ａｖｅ［ｍ］は、補正量平均値Ａｖｅ［０］である。ここでは、現在のフィールドにより算出された補正量平均値Ａｖｅ［ｍ］のインデックスは０とし、６３フィールド前のフィールドで算出された補正量平均値Ａｖｅ［ｍ］のインデックスは６３として説明する。
【００６８】
さらに付言するに、本実施の形態においては、
補正量平均値Ａｖｅ［０］・・・現在のフィールドの補正量平均値Ａｖｅ［ｍ］
補正量平均値Ａｖｅ［１］・・・１フィールド前の補正量平均値Ａｖｅ［ｍ］
補正量平均値Ａｖｅ［２］・・・２フィールド前の補正量平均値Ａｖｅ［ｍ］
・・・
補正量平均値Ａｖｅ［６３］・・・６３フィールド前の補正量平均値Ａｖｅ[ｍ]
という関係になっている。
【００６９】
平均値算出部８１において補正量平均値Ａｖｅ［０］が算出されると、ステップＳ２３において、算出された補正量平均値Ａｖｅ［０］が、記憶部５７の補正量平均値記憶部７２に格納される。補正量平均値記憶部７２には、補正量平均値Ａｖｅ［０］が格納される時点で、既に、補正量平均値Ａｖｅ［１］乃至［６３］が格納されている。
【００７０】
この時点で補正量平均値Ａｖｅ［０］として算出された値は、次のフィールドに対する処理が実行されると、補正量平均値Ａｖｅ［１］とインデックスが１だけ加算され、次のフィールドからの補正量平均値Ａｖｅ［ｍ］が、新たな補正量平均値Ａｖｅ［０］とされる。補正量平均値Ａｖｅ［１］乃至［６３］のインデックスも、順次、１だけ加算された値とされ、インデックスが変更される前の補正量平均値Ａｖｅ［６３］は、補正量平均値記憶部７２から削除される。
【００７１】
ステップＳ２３において、上述したように、算出された補正量平均値Ａｖｅ［０］が補正量平均値記憶部７２に格納される一方で、その補正量平均値Ａｖｅ［０］を含む補正量平均値Ａｖｅ［０］乃至［６３］が、補正量平均値記憶部７２から読み出され、ＦＦＴ演算部８２に供給される。
【００７２】
ステップＳ２４において、ＦＦＴ演算部８２において、供給された補正量平均値Ａｖｅ［０］乃至［６３］が用いられたＦＦＴ演算が実行される。ここでは、６４個の補正量平均値Ａｖｅ［ｍ］を用いてＦＦＴ演算を行うが、６４個に限定されるものではない。このＦＦＴ演算に用いられる補正量平均値Ａｖｅ［ｍ］の個数は、システムが必要とする精度に適した個数であり、また、システムに負荷がかからない個数に設定されるのが望ましい。
【００７３】
ここでは、６４個に設定したわけだが、その理由は、ＦＦＴ演算のアルゴリズムの入力が２のべき乗と規定されていること、１Ｈｚ程度、またはそれ以上の分解能を有した方が良いこと、システムに係る負荷が、６４個程度なら問題にならない程度であることなどを考慮した結果である。より細かい分解能が必要な場合、６４個以上の補正量平均値Ａｖｅ［ｍ］を用いてＦＦＴ演算を行えば良い。
【００７４】
なお、本実施の形態においては、ＦＦＴ演算に補正量候補［０］乃至［７］の平均値を６４個用いるが、平均値以外の入力を用いてＦＦＴ演算を行うようにしても良い。平均値以外の入力とは、例えば、補正量候補［０］乃至［７］のうちのいずれか１つを、所定の条件（例えば、露光中心に最も近いタイミングで得られた候補）を基に選択し、その１つの補正量候補［ｎ］を用いるようにしても良い。
【００７５】
ステップＳ２４においてＦＦＴ演算部８２により行われるＦＦＴ演算は、ＦＦＴアルゴリズムの１つとして知られるCooly & Tookey型（データ数64）で行うことが可能である。一般にＦＦＴ演算は、正弦・余弦計算から成り立つ回転因子Ｗの計算が必要であるが、画像処理装置１０を実現する組込型のマイクロコンピュータによりＦＦＴ演算を行う場合、この演算をそのまま行うことは非常に大きな負荷となり、他の処理に影響を与える可能性がある。
【００７６】
ところでこの回転因子Ｗの計算は、ＦＦＴ演算のアルゴリズムと、その演算に用いるデータ数さえ決まれば、あとは一意に決まるものなので、回転因子Ｗを予め全て計算しておき、テーブルとして用意し、ＦＦＴ演算が進むにつれて必要な回転因子Ｗをその都度、そのテーブルから読み出すことで計算にかかる負荷を軽減させることができる。テーブルは、例えば、記憶部５７に記憶させておくことが可能である。
【００７７】
ＦＦＴ演算部８２により演算された演算結果（適宜、周波数スペクトル［ｉ］と記述する）は、周波数決定部８３に出力される。周波数決定部８３は、ステップＳ２５において、主周波数Ｆ0を決定する。主周波数Ｆ0とは、加えられた振動の種類（周波数）を示すものである。図４を参照して説明したように、振動の種類により周波数が異なるため、周波数を求めることにより、加えられている振動の種類を推定することが可能となる。
【００７８】
ステップＳ２５における主周波数Ｆ0の決定は、供給された周波数スペクトル［ｉ］のうち、最もレベルが大きいスペクトルが主周波数Ｆ0と決定されることにより行われる。このようにして主周波数Ｆ0を決定するのは、一般的に想定される手ぶれ信号帯域の中で「周波数スペクトルレベルが最も大きいもの」が主周波数成分であるという仮定に基づいている。
【００７９】
決定するまでの処理としては、まず供給された周波数スペクトル［ｉ］のインデックス（周波数に相当）によって候補スペクトルを絞り、その中から最もレベルの大きいスペクトルを持つ周波数スペクトル［ｉ］のインデックスを主周波数成分Ｆ0として決定する。なお、ここではこのようにして主周波数Ｆ0を決定するとして説明するが、他の決定の方法を用いて主周波数Ｆ0を決定するようにしても良い。
【００８０】
ステップＳ２１乃至Ｓ２５の処理について、図１１と図１２を参照して再度説明する。図１１と図１２は、６４フィールド分のデータが用いられてＦＦＴ演算される場合を例に挙げて示している。図１１に示したように、補正量平均値Ａｖｅ［ｍ］は、時刻ｔが進む毎に順次生成される。その内、図１１Ｂに示したように、ＦＦＴ演算部８２への入力データとして、現在フィールドから算出された補正量平均値Ａｖｅ［０］から、６３フィールド前に算出された補正量平均値Ａｖｅ［６３］までのデータが用いられる。
【００８１】
そして、図１１Ｃに示したように、ＦＦＴ演算の出力データとしてＦＦＴ演算部８２から周波数決定部８３に、周波数スペクトル［０］乃至［６３］が出力される。この周波数スペクトル［０］乃至［６３］の一例を図１２に示す。図１２に示したように、周波数スペクトル［６］のスペクトルレベルが最も高いため、周波数スペクトル［６］が主周波数Ｆ0に設定される。図１２におけるΔｆは、フィールド周波数を６４（＝ｉ＋１）で除算した値であり、単位はＨｚである。
【００８２】
上述したように、本実施の形態においては、６４個のデータが用いられてＦＦＴ演算が行なわれているため、ＦＦＴの性質から、その分解能およびダイナミックレンジ（検出可能周波数帯域）は、NTSCの場合、それぞれ６０／６４（Ｈｚ）、６０／６４×３１（Ｈｚ）、 PALの場合、５０／６４（ＨＺ）、５０／６４×３１［３１］となる。ただしここでは、検出可能周波数帯域は、折りかえり成分が無いという仮定で算出している。
【００８３】
このようにして主周波数Ｆ0が決定されると、ステップＳ２６に進み、テーブルから値が読み出される。周波数決定部８３で決定された主周波数Ｆ0は、周波数情報８４として、ゲイン補償テーブル８４と位相補償テーブル８５に供給される。それぞれのテーブルから、供給された主周波数Ｆ0に対応する値が読み出される。
【００８４】
図１３は、ゲイン補償テーブル８４の一例を示し、図１４は、位相補償テーブルの一例を示す図である。ゲイン補償テーブル８４は、センサゲイン調整部５４に供給するゲイン調整情報１２１と主周波数Ｆ0が関連付けられたテーブルである。
【００８５】
センサゲイン調整部５４に供給される信号は、Ａ／Ｄ変換部５２によりデジタル信号にされた信号Ｓadが、デジタルフィルタで構成された高域通過フィルタ５３により、含まれていた直流付近の成分（手ぶれ情報に関係のない一定の成分）が除去された信号Ｓhpfである。
【００８６】
この高域通過フィルタ５３のカットオフ周波数は、手ぶれ信号に影響を及ぼさない程度に十分な小さな値に設定されている。手振れセンサ５１からの信号Ｓin、あるいは信号Ｓhpfは、手振れセンサ５１やＡ／Ｄ変換部５２に含まれるアナログフィルタや増幅器（いずれも不図示）のばらつきにより、同一の構成によるシステムでも、同じ手振れ量が入力されても、システム毎に出力の大きさは違っていることが考えられるので、このずれ量を吸収するためにセンサゲイン調整部５４が設けられている。
【００８７】
センサゲイン調整部５４は、入力された信号Ｓhpfに一定のゲインを乗算する。乗算する一定のゲインは、出荷時に行われるラインでの調整によって手振れセンサ５１の感度に応じた値Ｇ0にセットされている。しかしながら、信号Ｓhpfにかけるべき最適なゲインは、システムの系が持つ周波数特性によって変化してしまう。そこで、そのような周波数の変化を吸収するための情報として、ゲイン調整情報１２１が用いられる。
【００８８】
ゲイン調整情報１２１が用いられたゲインの補償（修正）が、ステップＳ２７において、センサゲイン調整部５４により行われる。センサゲイン調整部５４には、予めゲインとして入力された信号Ｓhpfに乗算する値Ｇ0が設定されているが、その値Ｇ0に、ゲイン調整情報１２１が用いられた値Ｇ1が、実際に信号Ｓhpfに乗算される。ゲイン調整情報１２１が用いられるとは、例えば、値Ｇ0にゲイン調整情報１２１が加算されるといった処理が行われることにより、値Ｇ1が算出されることとする。
【００８９】
すなわち、ゲイン調整情報１２１は、主周波数Ｆ0に対応した、ゲインの値Ｇ0を補償する値（調整量）に関する情報である。
【００９０】
図１３に示したゲイン補償テーブル８４では、例えば、主周波数Ｆ0が、周波数スペクトル［８］と決定された場合、ゲイン調整情報１２１として“０．０３”が読み出され、センサゲイン調整部５４に供給される。
【００９１】
このようにして、システムに依存する伝達関数Ｇ（ｆ）により発生するゲインの周波数補償が行われる。
【００９２】
なお、上述した実施の形態においては、予めセンサゲイン調整部５４には、値Ｇ0が設定されており、その値Ｇ0にゲイン調整情報１２１に基づく値が加算され、実際に乗算される値Ｇ1が決定されるとして説明したが、ゲイン調整情報１２１に基づく値自体が、実際に乗算される値Ｇ1としても良い。すなわち、センサゲイン調整部５４には、値Ｇ0は設定されておらず、供給されたゲイン調整情報１２１に基づく値を入力された信号Ｓhpfに乗算するようにしても良い。ゲイン補償テーブル８４は、システムの設計においてどのようにゲインを補償するかにより、異なるテーブルとなり、図１３に示したテーブルに限定されるものではない。
【００９３】
センサゲイン調整部５４において行われるゲイン調整は、現在のフィールドから算出された補正量平均値Ａｖｅ［０］が用いられて主周波数Ｆ0が決定され、その主周波数Ｆ0に基づく調整が行なわれる。従って、実際にゲインが調整される信号Ｓhpfは、次のフィールドから得られた信号Ｓhpfに対してである。すなわち、センサゲイン調整部５４において行われるゲイン調整は、１フィールド前までのデータが用いられた調整である。
【００９４】
勿論、現在のフィールドから得られたデータまでを用いて、現在のフィールドから得られた信号Ｓhpfに対して調整が行われるようにしても良いが、このようにした場合、センサゲイン調整部５４に現在のフィールドから得られた信号Ｓhpfを一旦記憶しておき、また、一旦、補正量生成部５８までの処理を実行した後に、再度、センサゲイン調整部５４の処理を、記憶している信号Ｓhpfに対して行うようにする。
【００９５】
次に、ステップＳ２８（図１０）において、位相の補償が行われる。そして、補償された位相を基に、補正量情報生成部８６（図７）により、補正量情報１０８が、ステップＳ２９において生成される。
【００９６】
位相の補正は、決定された主周波数Ｆ0に対応する周波数スペクトル［ｉ］に対応する情報を、図１４に示したような位相補償テーブル８５から読み出し、その読み出した情報（位相情報１３２）に基づいて、補正量情報生成部８６が補正量情報１０８を生成する。
【００９７】
ここで、補正量情報１０８の生成について説明する。１つの方法として、補正量情報１０８は、補正量候補Ｓout［０］乃至［７］のうち、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］と決定する方法がある。例えば、図９に示したような状態においては、補正量候補Ｓout［６］と決定される。ただし、露光期間の中央のタイミングに最も近く、かつ、そのタイミングより前の時刻に取得された補正量候補Ｓout［ｎ］という条件のもとでは、補正量候補［５］と決定される。
【００９８】
これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【００９９】
しかしながら、システムの系が持つ周波数特性（位相進みや遅れ）があるため、そのことを考慮しなければ、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］を補正量情報１０８と決定したとしても、正確には、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］を補正量情報１０８と決定したとはならない場合がある。すなわち、システム系が持つ周波数特性のために、ベストな位置（タイミング）が露光期間の中央から外れてしまうことがある。
【０１００】
そこで、周波数特性を考慮し、特に位相のズレを考慮して補正量情報１０８が生成されるようにする。ここでは、まず、主周波数Ｆ0として決定された周波数スペクトル［ｉ］に対応する値が位相補償テーブル８５から読み出される。位相補償テーブル８５は、露光期間の中央のタイミングが、どれだけ周波数特性によりずれているかを示す値が、周波数スペクトル［ｉ］と関連付けられているテーブルである。
【０１０１】
このような位相補償テーブル８５から読み出された位相情報１３２が用いらてて、補正量情報生成部８６により補正量情報１０８が生成されるわけだが、露光期間の中央のタイミング（時刻）に、位相情報１３２が示す位相のずれ量を補償（加算などの処理）し、その演算結果を新たな露光期間の中央のタイミングとする。そして、その新たな露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］が、補正量情報１０８と決定され、出力される。
【０１０２】
このようにして、システムに関わる周波数特性を考慮して、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］が、補正量情報１０８と決定され、出力されることにより精度良く手振れの補正を行うことが可能となる。
【０１０３】
しかしながら、図９を参照するに、システムに関わる周波数特性を考慮して、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Ｓout［ｎ］を、補正量情報１０８と決定したとしても、必ずしも露光期間の中央のタイミングで取得された補正量候補Ｓout［ｎ］ではない可能性があり、換言すれば、露光期間の中央のタイミングからずれた時刻に取得された補正量候補Ｓout［ｎ］である可能性がある。最も精度良く手振れの補正を行うには、露光期間の中央のタイミングちょうどで取得された補正量候補Ｓout［ｎ］を補正量情報１０８と決定するのが良い。
【０１０４】
そこで、露光期間の中央のタイミングで取得されるであろう補正量候補Ｓout［ｎ］を、実際に取得される補正量候補Ｓout［０］乃至［７］を用いて推定して算出するようにしても良い。推定して算出するようにした場合、露光期間の中央のタイミングは、位相補償テーブル８５から読み出された値を用いて算出された値（すなわち、補償されたタイミング）を用い、そして露光期間の中央のタイミングで取得されるであろう補正量候補Ｓout［ｎ］を推定する。
【０１０５】
図１４に示した位相補償テーブル８５は、露光期間の中央のタイミングで取得されるであろう補正量候補Ｓout［ｎ］を、実際に取得される補正量候補Ｓout［０］乃至［７］を用いて推定して算出するようにした場合に適した例を示している。
【０１０６】
補正量情報生成部８６により生成された補正量情報１０８は、制御部１６に出力される。このような処理が１フィールド毎に行われることにより、補正量情報１０８が生成される。
【０１０７】
ゲイン補償テーブル８４や位相補償テーブル８５として補正量生成部５８に記憶されるテーブルの取得について説明する。テーブルは、システムの持つ伝達関数Ｇ（ｆ）による周波数特性をうち消すための値が記憶されているので、伝達関数Ｇ（ｆ）を求めれば、テーブルを作成することが可能である。すなわち、テーブルの取得の１つの方法としては、システムの伝達関数Ｇ（ｆ）を、理論的、例えば、回路図などから求め、その求められた伝達関数Ｇ（ｆ）に基づいてテーブルを作成するようにする。
【０１０８】
テーブルの取得の他の方法としては、実際にシステムを構築し、その構築されたシステム、この場合、画像処理装置１０を用いてテーブルを作成するようにしても良い。すなわち、構築された画像処理装置１０に対して実際に振動を加え、その振動を最も抑制できるゲインと位相を、その都度算出し（計測し）、テーブルを作成するようにする。
【０１０９】
どのような方法を用いてテーブルが作成されても良いが、最も効果的に手振れを抑制できるようにするためのテーブルが作成されるようにし、そのテーブルが用いられるようにする。
【０１１０】
上述した実施の形態においては、ゲインと位相を共に補償するようにしたが、どちらか一方のみを補償するようにしても良い。換言すれば、例えば、図７にゲイン補償テーブル８４と位相補償テーブル８５を共に備えた例を示したが、どちらか一方のテーブルのみを備えるようにし、その備えた方のテーブルに対応する処理のみが行われるようにしても良い。
【０１１１】
また、上述した実施の形態においては、ゲイン補償テーブル８３や位相補償テーブル８５を補正量生成部５８に備えるようにしたが、記憶部５７に記憶されるようにしても良い。記憶部５７の補正量候補記憶部７１には、８個の補正量候補Ｓout［ｎ］が、補正量平均値記憶部７２には、６４個の補正量平均値Ａｖｅ［ｉ］が、それぞれ記憶されるとして説明したが、さらに多くの個数の値が記憶されるようにしても勿論良い。
【０１１２】
上述した実施の形態においては、本発明を電子補正式へ適用した場合について説明したが、光学補正式への適用も可能である。光学補正式へ適用した場合、必要に応じ、補償系を変更する。
【０１１３】
このように、加えられた振動による影響を抑制するための補正量情報１０８を、補正量情報１０８の算出に関わるシステムがもつ周波数特性を考慮して生成するようにすることにより、周波数特性を適切に補償することができ、良好な手振れ補正を行うことが可能となる。すなわち、低周波帯域から高周波帯域まで、良好な補正を行うことが可能となる。
【０１１４】
従って、撮影者のくせ、撮影状態（例えば、持ち疲れ、撮影操作時の変則的な振動）、撮影環境（例えば、車や遊園地の乗り物に乗っている状態での撮影）などにより発生する振動に対しても、良好な手振れ補正を実現することが可能となる。
【０１１５】
本発明を適用して手振れ補正を行うことにより、手振れの種類（周波数）を判断できるようになり、例えば、静止状態における手振れであるのか、パンニング状態における手振れであるのかなどの判断を行うことが可能となり、状態に合った適切な補正を行うことが可能となる。
【０１１６】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１１７】
図１５は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのＣＰＵ（Central Processing Unit）２１１は、ＲＯＭ（Read Only Memory）２１２に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）２１３には、ＣＰＵ２１１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース２１５は、キーボードやマウスから構成される入力部２１６が接続され、入力部２１６に入力された信号をＣＰＵ２１１に出力する。また、入出力インタフェース２１５には、ディスプレイやスピーカなどから構成される出力部２１７も接続されている。
【０１１８】
さらに、入出力インタフェース２１５には、ハードディスクなどから構成される記憶部２１８、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部２１９も接続されている。ドライブ２２０は、磁気ディスク２３１、光ディスク２３２、光磁気ディスク２３３、半導体メモリ２３４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０１１９】
記録媒体は、図１５に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２３１（フレキシブルディスクを含む）、光ディスク２３２（CD-ROM（Compact Disc-Read Only Memory），DVD（Digital Versatile Disc）を含む）、光磁気ディスク２３３（MD（Mini-Disc）（登録商標）を含む）、若しくは半導体メモリ２３４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているＲＯＭ２１２や記憶部２１８が含まれるハードディスクなどで構成される。
【０１２０】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２１】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１２２】
【発明の効果】
以上のように本発明によれば、手振れなどの加えられた振動による影響を低減させることができる。
【０１２３】
また、本発明によれば、加えられた振動の周波数を推定することができ、振動の種類を判別することができるので、より精度良く、また、状況に応じた手振れの補正を行うことが可能となる。
【図面の簡単な説明】
【図１】加えられた振動の影響を低減する方法について説明する図である。
【図２】補正量を算出する装置の一例の構成を示す図である。
【図３】周波数特性による影響を説明するための図である。
【図４】手振れの種類による周波数特性について説明する図である。
【図５】本発明を適用した画像処理装置１０の一実施の形態の構成を示す図である。
【図６】手振れ補正部２１の内部構成例を示す図である。
【図７】補正量生成部５８の内部構成例を示す図である。
【図８】補正量情報の生成処理について説明するフローチャートである。
【図９】補正量候補の生成について説明する図である。
【図１０】図８のステップＳ５の処理の詳細を説明するフローチャートである。
【図１１】ＦＦＴ演算処理に用いられるデータについて説明する図である。
【図１２】主周波数Ｆ0の決定について説明する図である。
【図１３】ゲイン補償テーブル８４の一例を示す図である。
【図１４】位相補償テーブル８５の一例を示す図である。
【図１５】媒体を説明する図である。
【符号の説明】
１０  画像処理装置，  １１  光学撮像部，  １２  ＣＣＤ，  １３  アナログ信号処理部，  １４  デジタル信号処理部，  １５  メモリ，  １６  制御部，  １７  レンズ駆動部，  １８  タイミングジェネレータ，  １９  インタフェース制御部，  ２０  ユーザインタフェース，  ２１  手振れ補正部，  ２２明るさ制御部，  ５１  手振れセンサ，  ５２  Ａ／Ｄ変換部，  ５３  高域通過フィルタ，  ５４  センサゲイン調整部，  ５５  ズームゲイン調整部，  ５６  積分フィルタ，  ５７  記憶部，  ５８  補正量生成部，  ７１  補正量候補記憶部，  ７２  補正量平均値記憶部，  ８１  平均値算出部，  ８２  ＦＦＴ演算部，  ８３  周波数決定部，  ８４  ゲイン補償テーブル，  ８５  位相補償テーブル，  ８６  補正量情報生成部
【図１】
0003865126.tif 000002
【図２】
0003865126.tif 000003
【図３】
0003865126.tif 000004
【図４】
0003865126.tif 000005
【図５】
0003865126.tif 000006
【図６】
0003865126.tif 000007
【図７】
0003865126.tif 000008
【図８】
0003865126.tif 000009
【図９】
0003865126.tif 000010
【図１０】
0003865126.tif 000011
【図１１】
0003865126.tif 000012
【図１２】
0003865126.tif 000013
【図１３】
0003865126.tif 000014
【図１４】
0003865126.tif 000015
【図１５】
0003865126.tif 000016