JP3865126B2 - Image processing apparatus and method, recording medium, and program - Google Patents
Image processing apparatus and method, recording medium, and program Download PDFInfo
- Publication number
- JP3865126B2 JP3865126B2 JP2002034876A JP2002034876A JP3865126B2 JP 3865126 B2 JP3865126 B2 JP 3865126B2 JP 2002034876 A JP2002034876 A JP 2002034876A JP 2002034876 A JP2002034876 A JP 2002034876A JP 3865126 B2 JP3865126 B2 JP 3865126B2
- Authority
- JP
- Japan
- Prior art keywords
- correction amount
- image
- correction
- vibration
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、ユーザの手振れなどに起因する画像のずれをより精度良く補正し、ブレのない画像をユーザに提供するために用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
動画像や静止画像を撮像し、記録するビデオカメラやスチルカメラが普及し、さまざまな場面で利用されている。家庭用のビデオカメラやスチルカメラは、小型化、軽量化、高性能化している。小型化や軽量化が進むと、使い勝手は良くなるが、ユーザの手振れなどが発生しやすくなるといった問題があった。また、高性能化が進み、ズームなどの機能が充実すると、ズームしたときには、ズームしないときに比べて手振れの影響が大きく出てしまうといった問題があった。
【0003】
そのような問題を解決する方法として、例えば、図1(A)に示すように、撮像する撮像領域1を、ディスクなどの記録媒体に実際に撮像された画像として記録する画像の記録領域2よりも大きい領域として処理する方法がある。この方法では、撮像領域1に撮像されている画像から、記録領域2内の画像を切り出し、その切り出された画像を記録する。撮像領域1からどの領域を記録領域2として切り出すかは、検出された手振れの大きさを考慮した補正量を算出し、その補正量を用いて行われる。
【0004】
時刻tにおいて切り出された記録領域2が図1(A)に示したような状態のとき、次の時刻t+1において、図1(B)に示すように、水平方向の補正量3−1と垂直方向の補正量3−2が算出されると、その補正量3−1,3−2だけ移動された領域が、時刻t+1での記録領域2として切り出される。補正量3−1,3−2は、露光期間の中心の時刻に得られたデータが用いられて算出される。
【0005】
補正値の算出について説明する。ビデオカメラなどには、手振れを検出するための、例えば、角速度センサが設けられている。その角速度センサからの手振れ信号は連続的に出力されている。連続的に出力されている信号は、例えば、VDパルスの1パルスのうちに、8回のタイミングでサンプリングされる。そのサンプリングされた信号を用いた演算が行なわれることにより、手振れによる影響を低減させるための補正量が算出される。
【0006】
算出された補正量のうち、露光期間の中心に近いタイミングで得られた補正量のみが画像の切り出しに用いられる補正量とされる。これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【0007】
このように、1フィールドあたりN回の定められたタイミング(A/Dタイミング)で、センサから得られる手振れ信号がサンプリングされ、このサンプリングの結果得られた信号が用いられた演算が行われたN個の演算結果から、シャッタスピードの露光期間の中心位置に最も近いタイミングに位置する演算結果が、そのフィールドの補正量として用いられる。
【0008】
しかしながら、手振れを補正するための補正量は、シャッタスピードに応じた露光期間の中心のタイミングに得られるものが用いられるが、必ずしも、露光期間の中心のタイミングで得られるものが用いられるとは限らなかった。露光期間の中心のタイミングで得られるものが用いられない場合、画像にぼけが生じるなど性能の悪化をまねいてしまう。
【0009】
このような問題は、主に、補正量が算出されるタイミングが、露光期間の中心からずれているために生じるため、できる限り、露光期間の中心のタイミングで得られる手振れ信号から補正量が算出されるような方法が提案されている。例えば、センサなどから得られる手振れ信号に対して露光期間の中心のタイミングを調整してサンプリングを行うようにする方法(露光期間に対応してサンプリングタイミングを変化させる方法)が提案されている。
【0010】
また他の方法としては、露光期間の中心位置と、複数のサンプリング信号との関係を予め記憶しておき、その記憶されている関係から、最もそのときの状況に適しているサンプリング信号を抽出し、そのサンプリング信号に基づくサンプリングを行うことにより補正量を算出する方法が提案されている。
【0011】
【発明が解決しようとする課題】
上述した方法は、露光期間の中心位置で取得された信号を基に算出される補正量で、補正処理を行うことが一番性能良く手振れを補正できるという前提に基づいている。ところで、補正量を算出するまでのシステムには、さまざまなフィルタなどが含まれており、そのシステムの伝達関数に関する周波数特性が存在する。しかしながら、補正量を算出する際、このシステムにおける周波数特性については考慮されておらず、周波数特性を考慮しないために、性能良く手振れの補正処理を実行できないといった問題があった。
【0012】
補正量を算出する処理に関わるシステムとしては、例えば、図2に示すように、手振れを検出する手振れセンサ301、手振れセンサ301により取得された手振れ信号に対してアナログ的な処理を施すアナログ回路302、アナログ的な処理が施された手振れ信号に対して、デジタル的な処理を施すマイクロコンピュータ303などである。マイクロコンピュータ303は、アナログ信号をデジタル信号に変換するA/D変換部304と、A/D変換部304からのデジタル信号に対して処理を施すデジタル回路305から構成されている。
【0013】
アナログ回路302は、例えば、ローパスフィルタ(LPF)、ハイパスフィルタ(HPF)、アンプなどが組み込まれている。また、デジタル回路305にも、必要に応じフィルタなどが組み込まれている。ここで、手振れセンサ301、アナログ回路302、およびマイクロコンピュータ303の、それぞれの伝達関数を、G1(f)、G2(f)、およびG3(f)とすると、補正量を算出するために関わるブロックの伝達関数G(f)は、
G(f)=G1(f)×G2(f)×G3(f)
で表される。
【0014】
図2に示したような補正量を算出するためのブロックを有するビデオカメラなどのシステムは、上記した伝達関数G(f)で表される周波数特性をもつ。例えば、伝達関数G(f)により、ゲインに対しては、図3(A)に示すような、位相(Phase)に対しては、図3(B)に示すような特性を持つ。
【0015】
このような周波数特性のために、検出された手振れ信号と、その手振れ信号を用いて算出された補正量との間には、周波数特性分だけズレを生じてしまう。即ち、どちらか一方が進む、または遅れてしまう。また、信号に係るゲインも周波数に応じて変動してしまうことになる。このようなことを抑制するためには、必要とされる周波数帯域における周波数特性が、フラットになるように設計すればよいが、そのような設計は困難であるという問題があった。
【0016】
補正量を求める為のブロックに、上述したような周波数特性が存在するため、算出された補正量にも、その周波数特性の影響は出てしまう。図4は、算出された補正量を用いたときに、どれだけ補正が効果的に行われたかを示す補正効果と、周波数との関係を示した図である。周波数により補正効果が異なることがわかる。帯域Aは、平均的に発生する手振れの周波数の帯域を示し、帯域Bは、ユーザや、そのユーザの持ち方に依存して発生する手振れの帯域を示し、帯域Cは、車載などの際に発生する手振れの帯域を示す。
【0017】
図4に示したように、手振れが発生する状況により、効果的に補正できる周波数の帯域と、できない帯域とがでてしまう。従って、最も発生しやすい手振れの状況のときに、最も効果的に補正が行えるようにシステムが設計されるため、補正が効果的に行えない帯域が存在してしまうといった問題があった。
【0018】
このことは、全ての帯域において効果的な補正を行うシステムを設計するのは困難であり、例えば、図4に示したような補正性能の周波数特性であったような場合、ユーザ自身の癖や撮影状態、例えば、持ち疲れ、撮影操作時の変則的振動、車や遊園地などの乗り物に乗っている時などの撮影環境によって発生する高周波成分(帯域Bや帯域Cの状態)に対しては、位相回りやゲイン変動の影響で、補正性能が悪化してしまうといった問題があった。
【0019】
本発明はこのような状況に鑑みてなされたものであり、どのような状況で発生した手振れでも、補正性能を悪化することなく補正できるようにすることを目的とする。
【0020】
【課題を解決するための手段】
本発明の画像処理装置は、振動を検出し、振動検出情報を出力する出力手段と、出力手段により出力された振動検出情報をサンプリングするサンプリング手段と、サンプリング手段によりサンプリングされた値に基づいて補正量候補を算出する算出手段と、算出手段により算出された補正量候補に基づいた演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成手段と、生成手段により生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と、算出手段により算出された補正量候補に基づいて、振動の周波数成分を推定する推定手段と、周波数成分と修正量が関連付けられたテーブルを記憶する記憶手段と、推定手段により推定された周波数成分に対応する修正量を、記憶手段により記憶されているテーブルから読み出す読み出し手段と、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値を修正する修正手段とを含むことを特徴とする。
【0021】
前記推定手段は、第1の期間内に算出手段により算出された補正量候補の平均値を算出し、第2の期間内に算出された平均値を用いたFFT演算を行い、その演算結果を用いて振動の周波数成分を推定するようにすることができる。
前記推定手段は、FFT演算の結果、最もレベルが高い値の周波数を振動の周波数成分と推定するようにすることができる。
前記修正手段は、さらに、読み出し手段により読み出された修正量に基づき、算出手段が補正量候補を算出するために用いる値を修正するようにすることができる。
【0022】
前記修正手段は、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値として補正量候補の位相を修正するようにすることができる。
前記修正手段は、読み出し手段により読み出された修正量に基づき、算出手段が補正量候補を算出するために用いる値として振動検出情報のゲインを修正するようにすることができる。
前記修正手段は、読み出し手段により読み出された修正量に基づき、生成手段が補正量情報を生成するために用いる値として補正量候補の位相を修正するようにすることができる。
【0023】
本発明の画像処理方法は、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを含むことを特徴とする。
【0024】
本発明の記録媒体のプログラムは、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを含むことを特徴とする。
【0025】
本発明のプログラムは、画像処理装置を制御するコンピュータに、振動に関する振動検出情報をサンプリングするサンプリングステップと、サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、算出ステップの処理で算出された補正量候補に基づく演算を行うか、または、補正量候補から所定の条件を満たす補正量候補を選択することにより、補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、算出ステップの処理で算出された補正量候補に基づく、振動の周波数成分を推定する推定ステップと、周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、推定ステップの処理で推定された周波数成分に対応する修正量を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された修正量に基づき、生成ステップの処理で補正量情報を生成するために用いる値を修正する修正ステップとを実行させることを特徴とする。
【0026】
本発明の画像処理装置および方法、並びにプログラムにおいては、振動に関する振動検出情報がサンプリングされ、その値に基づいて補正量候補が算出され、補正量候補に基づく演算が行なわれるか、または、補正量候補から所定の条件を満たす補正量候補が選択されることにより、補正量情報が生成され、その補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域が制御され、振動の周波数成分が推定され、その周波数成分に対応する修正量が、周波数成分と修正量が関連付けられたテーブルから読み出され、その修正量に基づき、補正量情報が生成されるために用いられる値が修正される。
【0027】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図5は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図5に示した画像処理装置10は、例えば、ビデオカメラやスチルカメラに備えられる。また、図5に示した画像処理装置10は、記録時(撮影時)において手振れ(振動)を検出し、これを補正することを前提としており、従って、図5には、主に記録に関わるブロックを示している。
【0028】
画像処理装置10の光学撮像部11は、撮像レンズ(不図示)を含む光学系の装置から構成されている。光学撮像部11に入射した光は、CCD(Charge Coupled Device)12により光電変換され、電気信号としてアナログ信号処理部13に出力される。
【0029】
アナログ信号処理部13は、入力された電気信号(アナログ信号)を、デジタル変換するためにサンプリングして保持したり(Sample and Hold)、入力信号の振幅の変動を検出して、出力信号の振幅を一定に保つために増幅の利得を制御するAGC(Automatic Gain Control)を行ったり、そのような処理が行われたアナログ信号をデジタル信号に変換したりといった処理を行う。
【0030】
アナログ信号処理部13により処理され、出力されたデジタル信号は、デジタル信号処理部14に入力される。デジタル信号処理部14にはメモリ15が備えられており、入力されたデジタル信号は、メモリ15に記憶される。デジタル信号処理部14は、メモリ15に記憶したデジタル信号に対して、画像の切り出しや圧縮などの処理を行う。デジタル信号処理部14による処理が終了したデジタル信号は、後段の処理に出力される。後段の処理とは、例えば、ディスク状の記録媒体にデジタル信号を記録するなどである。
【0031】
制御部16は、画像処理装置10内の各部を制御する。制御部16は、レンズ駆動部17にレンズ制御データ101を出力する。レンズ制御データ101は、光学撮像部11に含まれる撮像用レンズを駆動させたり、絞りなどを調節するためのデータである。制御部16は、タイミングジェネレータ18に対してタイミング制御データ102を出力する。タイミング制御データ102は、CCD12により光電変換された電気信号をサンプリングし、アナログ信号処理部13に出力するタイミングを指示するデータである。
【0032】
制御部16は、デジタル信号処理部14に対してカメラ画処理用データ103やメモリ切り出し用制御データ104を出力し、デジタル信号処理部14から検波データ105を入力する。カメラ画処理用データ103は、デジタル信号にされた撮像された画像の処理に用いられるデータであり、例えば、ホワイトバランス調整値などのデータである。メモリ切り出し用制御データ104は、撮像された画像から、どの領域の画像を記録させる画像として切り出すかを指示するデータである。検波データ105は、デジタル信号処理部14に入力された画像の状態に関するデータである。
【0033】
制御部16は、インタフェース制御部19にカメラ制御情報106を出力し、インタフェース制御部19からユーザ指示情報107を入力する。カメラ制御情報106は、被写体までの距離、F値、シャッタスピード、倍率などの情報である。ユーザ指示情報107は、ユーザが指示した撮影モードなどに関する情報である。
【0034】
ユーザインタフェース20は、ユーザが画像処理装置10に対して指示を出す、例えば、撮影モードを設定するなどの操作を行うためのボタンや、ユーザに対して情報を提供(表示)するLCD(Liquid Crystal Display)などから構成されており、ボタンが操作されて指示された情報は、ユーザ指示情報107として制御部16に供給され、制御部16からのカメラ制御情報106に基づいた情報は、LCDに表示される。
【0035】
手振れ補正部21は、手振れなどにより画像処理装置10に加えられた振動を検知し、検知した振動の大きさに対応して、記録される画像に振動の影響を抑制するための補正量情報108を制御部16に出力する。手振れ補正部21は、明るさ制御部22から供給される明るさ情報109も利用して補正量情報108を生成する。
【0036】
図6は、手振れ補正部21の内部構成例を示す図である。手振れセンサ51は、角速度センサなどにより構成され、画像処理装置10に加えられた振動を検出するセンサである。図6には1つの手振れセンサ51しか示さないが、垂直方向の振動を検出するセンサと、水平方向の振動を検出するセンサとは別々に設けられており、図6に示した手振れ補正部21も、それぞれのセンサ毎、すなわち、画像処理装置10には2つの手振れ補正部21が設けられている。ここでは、垂直方向または水平方向に加えられた振動を検出する1系統を例に挙げて説明する。
【0037】
勿論、垂直方向の振動を処理する手振れ補正部21と水平方向の振動を処理する手振れ補正部21で、共用できる部分は共用し、必ずしも各部分を2つ備える必要はない。また、本実施の形態において、手振れセンサ51により処理される振動は、ユーザの手振れによる振動は勿論、画像処理装置10が車載された際に加えられた振動なども含む。
【0038】
手振れセンサ51により検出された振動に関する信号は、A/D変換部52に出力される。A/D変換部52は、入力されたアナログ信号をデジタル信号に変換して高域通過フィルタ53に出力する。A/D変換部52には、必要に応じて、フィルタや増幅部を設けても良い。フィルタとしては、例えば、カットオフ周波数が、手振れセンサ51から出力される手振れ信号の帯域に設定してある帯域通過フィルタなどである。また増幅部は、手振れセンサ51からの信号が微弱であり、後段の処理で処理できる強度まで上げる必要がある場合に備えられる(A/D変換の分解能に合わせる為に必要な場合に備えられる)。
【0039】
高域通過フィルタ53は、入力されたデジタル信号に対して、入力信号に含まれる直流付近の成分(振動には関係のない原因により含まれる成分)を除去するために設けられている。高域通過フィルタ53のカットオフ周波数は、振動に関する信号の成分に対して影響を及ぼすことがない程度の値に設定される。高域通過フィルタ53から出力された信号は、センサゲイン調整部54に入力される。センサゲイン調整部54は、個々の手振れセンサ51やA/D変換部52の性能のバラツキを吸収(補正)するために設けられている。
【0040】
センサゲイン調整部54は、基本的な処理として、入力された信号に対してゲインをかける処理を行う。ゲインは、例えば、画像処理装置10が出荷時に生産ラインで行われる調整により決定(設定)される。これは、同一の手振れセンサ51を用いたとしても、個々の手振れセンサ51で、多少のずれはあるため、予めどの画像処理装置10に対しても同一の値を設定するよりも、生産ライン上で個々の画像処理装置10において調整を行い、センサの感度に応じた値に設定した方が好ましいからである。
【0041】
また、本実施の形態においは、補正量生成部58から出力されるゲイン調整情報121(詳細は後述)も、センサゲイン調整部54に供給される。センサゲイン調整部54は、供給されたゲイン調整情報121を用いて、入力された信号にかけるゲインの値を決定しゲインをかける処理を行う、または、ゲイン調整情報121により決定されたゲインをかける処理を行う。
【0042】
センサゲイン調整部54からの出力は、ズームゲイン調整部55に出力される。光学ズームのW端(低倍率側のズーム)に比べてT端(高倍率側のズーム)ほど大きな補正値が必要であるが、手振れセンサ51から出力される信号は、ズームに依存しない信号のため、ズームゲイン調整部55は、倍率に応じた補正値を乗算し、倍率に適した値を得られるような調整を行う。ズームゲイン調整部55を設けることにより、全ての倍率(全ズーム領域)において、常に適切な補正値を算出することが可能となる。
【0043】
ズームゲイン調整部55から出力された信号は、積分フィルタ56に出力される。例えば、手振れセンサ51が角速度センサで構成される場合、そのセンサから出力される信号は角速度であり、その角速度から、加えられた力(振動)の大きさを求める処理を実行する部分が、積分フィルタ56である。
【0044】
積分フィルタ56からの出力(ここでは、補正量候補Sout[n]とする)は、記憶部57に記憶される。記憶部57は、RAM(Random Access Memory)などの記憶装置から構成される。本実施の形態においては、手振れセンサ51から出力される手振れ信号に対し、1フィールドあたり、8回のサンプリングを実行するとして説明する。1フィールドあたり8回のサンプリングが行われる場合、記憶部57は、積分フィルタ56から出力された8つの補正量候補Sout[0]乃至[7]が少なくとも記憶できる容量を持つ。補正量候補Sout[0]乃至[6]は、Sout[7]より前の時刻で積分フィルタ56より出力された信号である。
【0045】
補正量生成部58は、記憶部57に記憶されている補正量候補Sout[0]乃至[7]の値と、明るさ制御部22から供給される明るさ情報109を用いて、画像処理装置10に加えられた振動の影響を除去するための最終的な補正量を生成する。補正量生成部58における補正量の生成の処理については後述する。また、補正量生成部58は、センサゲイン調整部54に供給するゲイン調整情報121も生成する。生成された補正量に関する補正量情報108は、制御部16に供給される。
【0046】
制御部16に供給される補正量情報108は、垂直方向に関する補正量情報108−1と水平方向に関する補正量情報108−2がある。垂直方向に関する補正量108−1は、タイミング制御データ102としてタイミングジェネレータ18に供給され、水平方向に関する補正量108−2は、メモリ切り出し用制御データ104としてデジタル信号処理部14に供給される。
【0047】
タイミングジェネレータ18は、供給されたタイミング制御データ102に基づき、CCD12からアナログ信号処理部13への信号の出力のタイミングを決定する。すなわち、タイミングジェネレータ18は、垂直方向に関する補正量情報108−1(タイミング制御データ102)に基づいて、フィールド毎に補正した垂直方向のリセット信号(Vリセット信号)をCCD12に供給する。Vリセット信号がCCD12に供給されることにより、CCD12からは、垂直方向の画像の読み出し開始位置が補正され、結果として垂直方向に関して、画像処理装置10に加えられた振動の影響が抑制された画像の信号が、デジタル信号処理部14に出力される。
【0048】
デジタル信号処理部14には、メモリ15が備えられているが、そのメモリ15に記憶されている信号に基づく画像は、垂直方向に関しては加えられた振動に関する補正は既になされている画像である。デジタル信号処理部14は、供給されたメモリ切り出し用制御データ104に基づき、メモリ15に記憶されている画像のデータの読み出しの開始のタイミングを決定する。すなわち、デジタル信号処理部14は、水平方向に関する補正量情報108−2(メモリ切り出し用制御データ104)に基づいて、フィールド毎に補正した水平方向の読み出し開始位置を決定、制御する。水平方向の読み出しの開始位置が制御されることにより、結果として水平方向に関しても、画像処理装置10に加えられた振動の影響が抑えられた画像の信号が後段の処理に出力されることになる。
【0049】
このように垂直方向の振動の影響は、CCD12からの信号の読み出し位置を変更することにより低減させ、水平方向の振動の影響は、メモリ15に記憶されている信号の読み出し位置を変更させることにより低減する。
【0050】
図7は、記憶部57と補正量生成部58の機能ブロック図である。記憶部57は、補正量候補Sout[0]乃至[7]を記憶する補正量候補記憶部71と、各フィールド毎の補正量候補Sout[0]乃至[7]の平均値を記憶する補正量記憶部72とから構成されている。ここでは、補正量平均値記憶部72には、64フィールド分の補正量候補Sout[n]の平均値が記憶されるとして説明する。所定のフィールドの平均値を補正量平均値Ave[m]と記述し、mはここでは、0乃至63の値をとる。
【0051】
補正量候補記憶部71に記憶された補正量候補Sout[0]乃至[7]は、補正量生成部58の平均値算出部81に出力される。平均値算出部81は、入力された補正量候補Sout[0]乃至[7]の平均値を算出し、その平均値を記憶部57の補正量平均値記憶部72に出力する。補正量平均値記憶部72に記憶された補正量平均値Ave[0]乃至[63]は、補正量生成部58のFFT(Fast
Fourier Transform)演算部82に供給される。
【0052】
FFT演算部82によるFFT演算の演算結果は、周波数決定部83に出力される。周波数決定部83は、FFT演算部82による演算結果から、画像処理装置10に加えられている振動の種類を判断するための周波数を決定し、その決定された周波数の情報(以下、周波数情報131と記述する)をゲイン補償テーブル84と位相補償テーブル85に出力する。ゲイン補償テーブル84には、センサゲイン調整部54に供給するゲイン調整情報121に関するテーブルが記憶されており、入力された周波数情報131に対応する値をゲイン調整情報121として、センサゲイン調整部54(図6)に供給する。
【0053】
位相補償テーブル85は、位相に関する調整を行うための情報(以下、位相情報132と記述する)に関するテーブルが記憶されており、入力された周波数情報131に対応する値を位相情報132として、補正量情報生成部86に出力する。ここでは、位相情報132は、補正量情報108を生成するために用いられる情報として説明する。
【0054】
補正量情報生成部86は、補正量候補記憶部71に記憶されている補正量候補[0]乃至[7]と位相情報132を用いて、補正量情報108を生成し、制御部16に供給する。
【0055】
次に、手振れ補正部21における補正量情報108の生成の処理について、図8のフローチャートを参照して説明する。図8のフローチャートの処理は、1フィールド毎に行われる。以下の説明においては、手振れセンサ51から出力される手振れ信号のサンプリングは、1VDパルス中に8回行われる場合を例に挙げて説明する。
【0056】
ステップS1において、手振れ補正部21の手振れセンサ51により、画像処理装置10に加えられた振動が検出され、手振れ信号が取得される。ステップS2において、取得された信号のうち、サンプリング周波数毎にサンプリングが実行され、その信号が、A/D変換部52によりデジタル信号に変換される。
【0057】
ステップS3において、デジタル化された信号は、高域通過フィルタ53、センサゲイン調整部54、およびズームゲイン調整部55の各部における処理が施され、積分フィルタ56に出力され、積分フィルタ56における処理が施されることにより、その時点での手振れを補正するための補正量である補正量候補Sout[n]が生成される。生成された補正量候補Sout[n]は、記憶部57の補正量候補記憶部71に記憶される。
【0058】
ステップS4において、8個の補正量候補Sout[0]乃至[7]が記憶部57に記憶されたか否かが判断され、記憶されていないと判断された場合、ステップS1に戻り、それ以降の処理が繰り返される。すなわち、1VDパルス内に、予め設定された回数だけサンプリングが行われ、記憶部57に最終的な補正量情報108を算出する際に用いられる補正量候補Sout[0]乃至[7]が記憶されるまで、ステップS1乃至S4の処理が繰り返される。
【0059】
補正量情報108を算出するのに必要な補正量候補Sout[0]乃至[7]が記憶部57に記憶されたと判断されると、ステップS5において、補正量生成部58において、補正量情報108の生成が行われる。ステップS5における補正量生成部58における補正量情報108の生成の処理を説明する前に、ステップS1乃至S4までの処理について、図9のタイミングチャートを参照して再度説明する。
【0060】
図9Aに示すVDパルスは、垂直同期信号であり、NTSC方式の場合、1/60secであり、PAL方式の場合、1/50secを周期とするパルスである。図4に示した画像処理装置10は、このVDパルスを基づいて駆動される。なお、ここでは、垂直同期信号を例に挙げ、垂直方向に関しての処理を例に挙げて説明するが、水平方向に関する処理も同様に行われ、画像処理装置10には、上述したように、水平及び垂直の処理をそれぞれ行う2系統の備えられている。
【0061】
図9Bに示したSGパルスは、CCD12の吐き出しパルスであり、このSGパルスのタイミングでCCD12に蓄えられた電荷が吐き出される。図9B中のαは、VDパルスからのずれ量αを示し、このずれ量αは、画像処理装置10の構成に依存する固定値である。ずれ量の単位は、マイクロ秒である。
【0062】
図9Cに示した露光期間は、明るさ制御部22(図5)により決定される値であり、シャッタスピードに依存する。1つの露光期間を露光期間Tshutと記述する。露光期間Tshutは、タイミング制御データ102の1つとしてタイミングジェネレータ18に供給される情報である。また、SGパルスを基準として露光期間Tshutだけ電子シャッタが開放されるため、結果的に、その間だけCCD12が露光される。
【0063】
図9Dは、A/Dタイミングを表し、A/D変換部52(図6)においてアナログ信号の手振れ信号が、デジタル信号に変換されるタイミングを示す。A/Dタイミングは、VDパルスを基準とし、1フィールドの長さをN分割したタイミングであり、1間隔が間隔Tsである。この場合、1フィールドが8分割された場合を例に示している。この間隔Ts毎に、手振れセンサ51において取得された手振れ信号が、A/D変換部52によりデジタル信号に変換される(サンプリングされる)。
【0064】
図9Eは、補正量候補Sout[n]が出力されるタイミングを示す。間隔Tsごとに取得されたデジタル信号の手振れ信号は、積分フィルタ56による演算が行われることにより、補正量候補Sout[n]として記憶部57に出力され、記憶される。
【0065】
このようなタイミングで取得され、記憶部57に記憶された補正量候補Sout[0]乃至[7]が用いられて、補正量生成部58が補正量情報108を生成する処理(図8のステップS5の処理)について、図10のフローチャートを参照して説明する。
【0066】
ステップS21において、記憶部57の補正量候補記憶部71に記憶されている補正量候補Sout[0]乃至[7]が読み出され、平均値算出部81に供給される。平均値算出部81は、ステップS22において、入力された補正量候補Sout[0]乃至[7]の補正量平均値Ave[m]を次式(1)に基づいて算出する。
Ave[m]=ΣSout[n]/N ・・・(1)
【0067】
式(1)において、この場合nは、0乃至7の値をとり、Nはサンプリング回数であり、この場合、8である。また、ステップS22で算出される補正量平均値Ave[m]は、補正量平均値Ave[0]である。ここでは、現在のフィールドにより算出された補正量平均値Ave[m]のインデックスは0とし、63フィールド前のフィールドで算出された補正量平均値Ave[m]のインデックスは63として説明する。
【0068】
さらに付言するに、本実施の形態においては、
補正量平均値Ave[0]・・・現在のフィールドの補正量平均値Ave[m]
補正量平均値Ave[1]・・・1フィールド前の補正量平均値Ave[m]
補正量平均値Ave[2]・・・2フィールド前の補正量平均値Ave[m]
・・・
補正量平均値Ave[63]・・・63フィールド前の補正量平均値Ave[m]
という関係になっている。
【0069】
平均値算出部81において補正量平均値Ave[0]が算出されると、ステップS23において、算出された補正量平均値Ave[0]が、記憶部57の補正量平均値記憶部72に格納される。補正量平均値記憶部72には、補正量平均値Ave[0]が格納される時点で、既に、補正量平均値Ave[1]乃至[63]が格納されている。
【0070】
この時点で補正量平均値Ave[0]として算出された値は、次のフィールドに対する処理が実行されると、補正量平均値Ave[1]とインデックスが1だけ加算され、次のフィールドからの補正量平均値Ave[m]が、新たな補正量平均値Ave[0]とされる。補正量平均値Ave[1]乃至[63]のインデックスも、順次、1だけ加算された値とされ、インデックスが変更される前の補正量平均値Ave[63]は、補正量平均値記憶部72から削除される。
【0071】
ステップS23において、上述したように、算出された補正量平均値Ave[0]が補正量平均値記憶部72に格納される一方で、その補正量平均値Ave[0]を含む補正量平均値Ave[0]乃至[63]が、補正量平均値記憶部72から読み出され、FFT演算部82に供給される。
【0072】
ステップS24において、FFT演算部82において、供給された補正量平均値Ave[0]乃至[63]が用いられたFFT演算が実行される。ここでは、64個の補正量平均値Ave[m]を用いてFFT演算を行うが、64個に限定されるものではない。このFFT演算に用いられる補正量平均値Ave[m]の個数は、システムが必要とする精度に適した個数であり、また、システムに負荷がかからない個数に設定されるのが望ましい。
【0073】
ここでは、64個に設定したわけだが、その理由は、FFT演算のアルゴリズムの入力が2のべき乗と規定されていること、1Hz程度、またはそれ以上の分解能を有した方が良いこと、システムに係る負荷が、64個程度なら問題にならない程度であることなどを考慮した結果である。より細かい分解能が必要な場合、64個以上の補正量平均値Ave[m]を用いてFFT演算を行えば良い。
【0074】
なお、本実施の形態においては、FFT演算に補正量候補[0]乃至[7]の平均値を64個用いるが、平均値以外の入力を用いてFFT演算を行うようにしても良い。平均値以外の入力とは、例えば、補正量候補[0]乃至[7]のうちのいずれか1つを、所定の条件(例えば、露光中心に最も近いタイミングで得られた候補)を基に選択し、その1つの補正量候補[n]を用いるようにしても良い。
【0075】
ステップS24においてFFT演算部82により行われるFFT演算は、FFTアルゴリズムの1つとして知られるCooly & Tookey型(データ数64)で行うことが可能である。一般にFFT演算は、正弦・余弦計算から成り立つ回転因子Wの計算が必要であるが、画像処理装置10を実現する組込型のマイクロコンピュータによりFFT演算を行う場合、この演算をそのまま行うことは非常に大きな負荷となり、他の処理に影響を与える可能性がある。
【0076】
ところでこの回転因子Wの計算は、FFT演算のアルゴリズムと、その演算に用いるデータ数さえ決まれば、あとは一意に決まるものなので、回転因子Wを予め全て計算しておき、テーブルとして用意し、FFT演算が進むにつれて必要な回転因子Wをその都度、そのテーブルから読み出すことで計算にかかる負荷を軽減させることができる。テーブルは、例えば、記憶部57に記憶させておくことが可能である。
【0077】
FFT演算部82により演算された演算結果(適宜、周波数スペクトル[i]と記述する)は、周波数決定部83に出力される。周波数決定部83は、ステップS25において、主周波数F0を決定する。主周波数F0とは、加えられた振動の種類(周波数)を示すものである。図4を参照して説明したように、振動の種類により周波数が異なるため、周波数を求めることにより、加えられている振動の種類を推定することが可能となる。
【0078】
ステップS25における主周波数F0の決定は、供給された周波数スペクトル[i]のうち、最もレベルが大きいスペクトルが主周波数F0と決定されることにより行われる。このようにして主周波数F0を決定するのは、一般的に想定される手ぶれ信号帯域の中で「周波数スペクトルレベルが最も大きいもの」が主周波数成分であるという仮定に基づいている。
【0079】
決定するまでの処理としては、まず供給された周波数スペクトル[i]のインデックス(周波数に相当)によって候補スペクトルを絞り、その中から最もレベルの大きいスペクトルを持つ周波数スペクトル[i]のインデックスを主周波数成分F0として決定する。なお、ここではこのようにして主周波数F0を決定するとして説明するが、他の決定の方法を用いて主周波数F0を決定するようにしても良い。
【0080】
ステップS21乃至S25の処理について、図11と図12を参照して再度説明する。図11と図12は、64フィールド分のデータが用いられてFFT演算される場合を例に挙げて示している。図11に示したように、補正量平均値Ave[m]は、時刻tが進む毎に順次生成される。その内、図11Bに示したように、FFT演算部82への入力データとして、現在フィールドから算出された補正量平均値Ave[0]から、63フィールド前に算出された補正量平均値Ave[63]までのデータが用いられる。
【0081】
そして、図11Cに示したように、FFT演算の出力データとしてFFT演算部82から周波数決定部83に、周波数スペクトル[0]乃至[63]が出力される。この周波数スペクトル[0]乃至[63]の一例を図12に示す。図12に示したように、周波数スペクトル[6]のスペクトルレベルが最も高いため、周波数スペクトル[6]が主周波数F0に設定される。図12におけるΔfは、フィールド周波数を64(=i+1)で除算した値であり、単位はHzである。
【0082】
上述したように、本実施の形態においては、64個のデータが用いられてFFT演算が行なわれているため、FFTの性質から、その分解能およびダイナミックレンジ(検出可能周波数帯域)は、NTSCの場合、それぞれ60/64(Hz)、60/64×31(Hz)、 PALの場合、50/64(HZ)、50/64×31[31]となる。ただしここでは、検出可能周波数帯域は、折りかえり成分が無いという仮定で算出している。
【0083】
このようにして主周波数F0が決定されると、ステップS26に進み、テーブルから値が読み出される。周波数決定部83で決定された主周波数F0は、周波数情報84として、ゲイン補償テーブル84と位相補償テーブル85に供給される。それぞれのテーブルから、供給された主周波数F0に対応する値が読み出される。
【0084】
図13は、ゲイン補償テーブル84の一例を示し、図14は、位相補償テーブルの一例を示す図である。ゲイン補償テーブル84は、センサゲイン調整部54に供給するゲイン調整情報121と主周波数F0が関連付けられたテーブルである。
【0085】
センサゲイン調整部54に供給される信号は、A/D変換部52によりデジタル信号にされた信号Sadが、デジタルフィルタで構成された高域通過フィルタ53により、含まれていた直流付近の成分(手ぶれ情報に関係のない一定の成分)が除去された信号Shpfである。
【0086】
この高域通過フィルタ53のカットオフ周波数は、手ぶれ信号に影響を及ぼさない程度に十分な小さな値に設定されている。手振れセンサ51からの信号Sin、あるいは信号Shpfは、手振れセンサ51やA/D変換部52に含まれるアナログフィルタや増幅器(いずれも不図示)のばらつきにより、同一の構成によるシステムでも、同じ手振れ量が入力されても、システム毎に出力の大きさは違っていることが考えられるので、このずれ量を吸収するためにセンサゲイン調整部54が設けられている。
【0087】
センサゲイン調整部54は、入力された信号Shpfに一定のゲインを乗算する。乗算する一定のゲインは、出荷時に行われるラインでの調整によって手振れセンサ51の感度に応じた値G0にセットされている。しかしながら、信号Shpfにかけるべき最適なゲインは、システムの系が持つ周波数特性によって変化してしまう。そこで、そのような周波数の変化を吸収するための情報として、ゲイン調整情報121が用いられる。
【0088】
ゲイン調整情報121が用いられたゲインの補償(修正)が、ステップS27において、センサゲイン調整部54により行われる。センサゲイン調整部54には、予めゲインとして入力された信号Shpfに乗算する値G0が設定されているが、その値G0に、ゲイン調整情報121が用いられた値G1が、実際に信号Shpfに乗算される。ゲイン調整情報121が用いられるとは、例えば、値G0にゲイン調整情報121が加算されるといった処理が行われることにより、値G1が算出されることとする。
【0089】
すなわち、ゲイン調整情報121は、主周波数F0に対応した、ゲインの値G0を補償する値(調整量)に関する情報である。
【0090】
図13に示したゲイン補償テーブル84では、例えば、主周波数F0が、周波数スペクトル[8]と決定された場合、ゲイン調整情報121として“0.03”が読み出され、センサゲイン調整部54に供給される。
【0091】
このようにして、システムに依存する伝達関数G(f)により発生するゲインの周波数補償が行われる。
【0092】
なお、上述した実施の形態においては、予めセンサゲイン調整部54には、値G0が設定されており、その値G0にゲイン調整情報121に基づく値が加算され、実際に乗算される値G1が決定されるとして説明したが、ゲイン調整情報121に基づく値自体が、実際に乗算される値G1としても良い。すなわち、センサゲイン調整部54には、値G0は設定されておらず、供給されたゲイン調整情報121に基づく値を入力された信号Shpfに乗算するようにしても良い。ゲイン補償テーブル84は、システムの設計においてどのようにゲインを補償するかにより、異なるテーブルとなり、図13に示したテーブルに限定されるものではない。
【0093】
センサゲイン調整部54において行われるゲイン調整は、現在のフィールドから算出された補正量平均値Ave[0]が用いられて主周波数F0が決定され、その主周波数F0に基づく調整が行なわれる。従って、実際にゲインが調整される信号Shpfは、次のフィールドから得られた信号Shpfに対してである。すなわち、センサゲイン調整部54において行われるゲイン調整は、1フィールド前までのデータが用いられた調整である。
【0094】
勿論、現在のフィールドから得られたデータまでを用いて、現在のフィールドから得られた信号Shpfに対して調整が行われるようにしても良いが、このようにした場合、センサゲイン調整部54に現在のフィールドから得られた信号Shpfを一旦記憶しておき、また、一旦、補正量生成部58までの処理を実行した後に、再度、センサゲイン調整部54の処理を、記憶している信号Shpfに対して行うようにする。
【0095】
次に、ステップS28(図10)において、位相の補償が行われる。そして、補償された位相を基に、補正量情報生成部86(図7)により、補正量情報108が、ステップS29において生成される。
【0096】
位相の補正は、決定された主周波数F0に対応する周波数スペクトル[i]に対応する情報を、図14に示したような位相補償テーブル85から読み出し、その読み出した情報(位相情報132)に基づいて、補正量情報生成部86が補正量情報108を生成する。
【0097】
ここで、補正量情報108の生成について説明する。1つの方法として、補正量情報108は、補正量候補Sout[0]乃至[7]のうち、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]と決定する方法がある。例えば、図9に示したような状態においては、補正量候補Sout[6]と決定される。ただし、露光期間の中央のタイミングに最も近く、かつ、そのタイミングより前の時刻に取得された補正量候補Sout[n]という条件のもとでは、補正量候補[5]と決定される。
【0098】
これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【0099】
しかしながら、システムの系が持つ周波数特性(位相進みや遅れ)があるため、そのことを考慮しなければ、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]を補正量情報108と決定したとしても、正確には、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]を補正量情報108と決定したとはならない場合がある。すなわち、システム系が持つ周波数特性のために、ベストな位置(タイミング)が露光期間の中央から外れてしまうことがある。
【0100】
そこで、周波数特性を考慮し、特に位相のズレを考慮して補正量情報108が生成されるようにする。ここでは、まず、主周波数F0として決定された周波数スペクトル[i]に対応する値が位相補償テーブル85から読み出される。位相補償テーブル85は、露光期間の中央のタイミングが、どれだけ周波数特性によりずれているかを示す値が、周波数スペクトル[i]と関連付けられているテーブルである。
【0101】
このような位相補償テーブル85から読み出された位相情報132が用いらてて、補正量情報生成部86により補正量情報108が生成されるわけだが、露光期間の中央のタイミング(時刻)に、位相情報132が示す位相のずれ量を補償(加算などの処理)し、その演算結果を新たな露光期間の中央のタイミングとする。そして、その新たな露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]が、補正量情報108と決定され、出力される。
【0102】
このようにして、システムに関わる周波数特性を考慮して、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]が、補正量情報108と決定され、出力されることにより精度良く手振れの補正を行うことが可能となる。
【0103】
しかしながら、図9を参照するに、システムに関わる周波数特性を考慮して、露光期間の中央のタイミングに最も近い時刻に取得された補正量候補Sout[n]を、補正量情報108と決定したとしても、必ずしも露光期間の中央のタイミングで取得された補正量候補Sout[n]ではない可能性があり、換言すれば、露光期間の中央のタイミングからずれた時刻に取得された補正量候補Sout[n]である可能性がある。最も精度良く手振れの補正を行うには、露光期間の中央のタイミングちょうどで取得された補正量候補Sout[n]を補正量情報108と決定するのが良い。
【0104】
そこで、露光期間の中央のタイミングで取得されるであろう補正量候補Sout[n]を、実際に取得される補正量候補Sout[0]乃至[7]を用いて推定して算出するようにしても良い。推定して算出するようにした場合、露光期間の中央のタイミングは、位相補償テーブル85から読み出された値を用いて算出された値(すなわち、補償されたタイミング)を用い、そして露光期間の中央のタイミングで取得されるであろう補正量候補Sout[n]を推定する。
【0105】
図14に示した位相補償テーブル85は、露光期間の中央のタイミングで取得されるであろう補正量候補Sout[n]を、実際に取得される補正量候補Sout[0]乃至[7]を用いて推定して算出するようにした場合に適した例を示している。
【0106】
補正量情報生成部86により生成された補正量情報108は、制御部16に出力される。このような処理が1フィールド毎に行われることにより、補正量情報108が生成される。
【0107】
ゲイン補償テーブル84や位相補償テーブル85として補正量生成部58に記憶されるテーブルの取得について説明する。テーブルは、システムの持つ伝達関数G(f)による周波数特性をうち消すための値が記憶されているので、伝達関数G(f)を求めれば、テーブルを作成することが可能である。すなわち、テーブルの取得の1つの方法としては、システムの伝達関数G(f)を、理論的、例えば、回路図などから求め、その求められた伝達関数G(f)に基づいてテーブルを作成するようにする。
【0108】
テーブルの取得の他の方法としては、実際にシステムを構築し、その構築されたシステム、この場合、画像処理装置10を用いてテーブルを作成するようにしても良い。すなわち、構築された画像処理装置10に対して実際に振動を加え、その振動を最も抑制できるゲインと位相を、その都度算出し(計測し)、テーブルを作成するようにする。
【0109】
どのような方法を用いてテーブルが作成されても良いが、最も効果的に手振れを抑制できるようにするためのテーブルが作成されるようにし、そのテーブルが用いられるようにする。
【0110】
上述した実施の形態においては、ゲインと位相を共に補償するようにしたが、どちらか一方のみを補償するようにしても良い。換言すれば、例えば、図7にゲイン補償テーブル84と位相補償テーブル85を共に備えた例を示したが、どちらか一方のテーブルのみを備えるようにし、その備えた方のテーブルに対応する処理のみが行われるようにしても良い。
【0111】
また、上述した実施の形態においては、ゲイン補償テーブル83や位相補償テーブル85を補正量生成部58に備えるようにしたが、記憶部57に記憶されるようにしても良い。記憶部57の補正量候補記憶部71には、8個の補正量候補Sout[n]が、補正量平均値記憶部72には、64個の補正量平均値Ave[i]が、それぞれ記憶されるとして説明したが、さらに多くの個数の値が記憶されるようにしても勿論良い。
【0112】
上述した実施の形態においては、本発明を電子補正式へ適用した場合について説明したが、光学補正式への適用も可能である。光学補正式へ適用した場合、必要に応じ、補償系を変更する。
【0113】
このように、加えられた振動による影響を抑制するための補正量情報108を、補正量情報108の算出に関わるシステムがもつ周波数特性を考慮して生成するようにすることにより、周波数特性を適切に補償することができ、良好な手振れ補正を行うことが可能となる。すなわち、低周波帯域から高周波帯域まで、良好な補正を行うことが可能となる。
【0114】
従って、撮影者のくせ、撮影状態(例えば、持ち疲れ、撮影操作時の変則的な振動)、撮影環境(例えば、車や遊園地の乗り物に乗っている状態での撮影)などにより発生する振動に対しても、良好な手振れ補正を実現することが可能となる。
【0115】
本発明を適用して手振れ補正を行うことにより、手振れの種類(周波数)を判断できるようになり、例えば、静止状態における手振れであるのか、パンニング状態における手振れであるのかなどの判断を行うことが可能となり、状態に合った適切な補正を行うことが可能となる。
【0116】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0117】
図15は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)211は、ROM(Read Only Memory)212に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)213には、CPU211が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース215は、キーボードやマウスから構成される入力部216が接続され、入力部216に入力された信号をCPU211に出力する。また、入出力インタフェース215には、ディスプレイやスピーカなどから構成される出力部217も接続されている。
【0118】
さらに、入出力インタフェース215には、ハードディスクなどから構成される記憶部218、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部219も接続されている。ドライブ220は、磁気ディスク231、光ディスク232、光磁気ディスク233、半導体メモリ234などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【0119】
記録媒体は、図15に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク231(フレキシブルディスクを含む)、光ディスク232(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク233(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリ234などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM212や記憶部218が含まれるハードディスクなどで構成される。
【0120】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0121】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0122】
【発明の効果】
以上のように本発明によれば、手振れなどの加えられた振動による影響を低減させることができる。
【0123】
また、本発明によれば、加えられた振動の周波数を推定することができ、振動の種類を判別することができるので、より精度良く、また、状況に応じた手振れの補正を行うことが可能となる。
【図面の簡単な説明】
【図1】加えられた振動の影響を低減する方法について説明する図である。
【図2】補正量を算出する装置の一例の構成を示す図である。
【図3】周波数特性による影響を説明するための図である。
【図4】手振れの種類による周波数特性について説明する図である。
【図5】本発明を適用した画像処理装置10の一実施の形態の構成を示す図である。
【図6】手振れ補正部21の内部構成例を示す図である。
【図7】補正量生成部58の内部構成例を示す図である。
【図8】補正量情報の生成処理について説明するフローチャートである。
【図9】補正量候補の生成について説明する図である。
【図10】図8のステップS5の処理の詳細を説明するフローチャートである。
【図11】FFT演算処理に用いられるデータについて説明する図である。
【図12】主周波数F0の決定について説明する図である。
【図13】ゲイン補償テーブル84の一例を示す図である。
【図14】位相補償テーブル85の一例を示す図である。
【図15】媒体を説明する図である。
【符号の説明】
10 画像処理装置, 11 光学撮像部, 12 CCD, 13 アナログ信号処理部, 14 デジタル信号処理部, 15 メモリ, 16 制御部, 17 レンズ駆動部, 18 タイミングジェネレータ, 19 インタフェース制御部, 20 ユーザインタフェース, 21 手振れ補正部, 22明るさ制御部, 51 手振れセンサ, 52 A/D変換部, 53 高域通過フィルタ, 54 センサゲイン調整部, 55 ズームゲイン調整部, 56 積分フィルタ, 57 記憶部, 58 補正量生成部, 71 補正量候補記憶部, 72 補正量平均値記憶部, 81 平均値算出部, 82 FFT演算部, 83 周波数決定部, 84 ゲイン補償テーブル, 85 位相補償テーブル, 86 補正量情報生成部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and method, a recording medium, and a program, and is particularly suitable for use in correcting an image shift caused by a user's camera shake or the like with higher accuracy and providing a user with a blur-free image. The present invention relates to an image processing apparatus and method, a recording medium, and a program.
[0002]
[Prior art]
Video cameras and still cameras that capture and record moving images and still images have become widespread and are used in various situations. Home video cameras and still cameras have become smaller, lighter, and higher performance. As the size and weight are reduced, the usability is improved, but there is a problem that the user's hand shake is likely to occur. In addition, when the performance has been improved and functions such as zooming have been enhanced, there has been a problem that the effect of camera shake is greater when zooming than when zooming is not performed.
[0003]
As a method for solving such a problem, for example, as shown in FIG. 1A, an
[0004]
When the
[0005]
The calculation of the correction value will be described. Video cameras and the like are provided with, for example, an angular velocity sensor for detecting camera shake. The camera shake signal from the angular velocity sensor is continuously output. The continuously output signal is sampled at eight timings in one pulse of the VD pulse, for example. By performing an operation using the sampled signal, a correction amount for reducing the influence of camera shake is calculated.
[0006]
Of the calculated correction amounts, only the correction amount obtained at a timing close to the center of the exposure period is set as a correction amount used for image clipping. This is because, since the camera shake signal changes every moment during the exposure period, the ideal sampling point is different every time during the exposure period. The minimum error is based on the fact that the correction amount is at the center position of the exposure period.
[0007]
In this manner, the camera shake signal obtained from the sensor is sampled at a predetermined timing (A / D timing) N times per field, and an operation using the signal obtained as a result of this sampling is performed. From the calculation results, the calculation result located at the timing closest to the center position of the exposure period of the shutter speed is used as the correction amount of the field.
[0008]
However, the correction amount for correcting camera shake is obtained at the center timing of the exposure period according to the shutter speed, but the correction amount obtained at the center timing of the exposure period is not always used. There wasn't. If what is obtained at the timing at the center of the exposure period is not used, the performance is deteriorated such as blurring of the image.
[0009]
Such a problem mainly occurs because the timing at which the correction amount is calculated is shifted from the center of the exposure period. Therefore, the correction amount is calculated from the camera shake signal obtained at the timing at the center of the exposure period as much as possible. Such a method has been proposed. For example, a method has been proposed in which sampling is performed by adjusting the timing of the center of the exposure period with respect to a camera shake signal obtained from a sensor or the like (a method of changing the sampling timing corresponding to the exposure period).
[0010]
As another method, the relationship between the center position of the exposure period and a plurality of sampling signals is stored in advance, and the sampling signal most suitable for the situation at that time is extracted from the stored relationship. A method for calculating the correction amount by performing sampling based on the sampling signal has been proposed.
[0011]
[Problems to be solved by the invention]
The above-described method is based on the premise that the camera shake can be corrected with the highest performance by performing the correction process with the correction amount calculated based on the signal acquired at the center position of the exposure period. By the way, the system up to the calculation of the correction amount includes various filters and the like, and has frequency characteristics related to the transfer function of the system. However, when calculating the correction amount, the frequency characteristic in this system is not taken into consideration, and the frequency characteristic is not taken into account, and thus there is a problem that the camera shake correction process cannot be executed with good performance.
[0012]
As a system related to the process of calculating the correction amount, for example, as shown in FIG. 2, a
[0013]
The
G (f) = G1 (f) × G2 (f) × G3 (f)
It is represented by
[0014]
A system such as a video camera having a block for calculating a correction amount as shown in FIG. 2 has a frequency characteristic represented by the transfer function G (f) described above. For example, due to the transfer function G (f), the gain has characteristics as shown in FIG. 3A and the phase has characteristics as shown in FIG. 3B.
[0015]
Due to such frequency characteristics, there is a difference between the detected camera shake signal and the correction amount calculated using the camera shake signal by the frequency characteristic. That is, either one is advanced or delayed. Further, the gain related to the signal also varies depending on the frequency. In order to suppress this, the frequency characteristics in the required frequency band may be designed to be flat, but there is a problem that such design is difficult.
[0016]
Since the frequency characteristics as described above exist in the block for obtaining the correction amount, the frequency characteristics are also affected by the calculated correction amount. FIG. 4 is a diagram showing the relationship between the correction effect indicating how much correction is effectively performed and the frequency when the calculated correction amount is used. It can be seen that the correction effect varies depending on the frequency. Band A indicates the frequency band of hand shake that occurs on average, Band B indicates the hand shake band that occurs depending on the user and how the user holds the hand, and Band C indicates the band when in-vehicle or the like. Indicates the band of camera shake that occurs.
[0017]
As shown in FIG. 4, a frequency band that can be effectively corrected and a band that cannot be corrected are generated depending on the situation in which camera shake occurs. Therefore, since the system is designed so that correction can be most effectively performed in the situation of hand shake that is most likely to occur, there is a problem in that there is a band where correction cannot be performed effectively.
[0018]
For this reason, it is difficult to design a system that performs effective correction in all bands. For example, when the frequency characteristics of the correction performance as shown in FIG. For high-frequency components (band B and band C states) generated by the shooting environment, such as tiredness, irregular vibrations during shooting operations, and riding on vehicles such as cars and amusement parks There is a problem that the correction performance deteriorates due to the influence of the phase rotation and gain fluctuation.
[0019]
The present invention has been made in view of such a situation, and an object thereof is to make it possible to correct a camera shake occurring in any situation without deteriorating the correction performance.
[0020]
[Means for Solving the Problems]
An image processing apparatus according to the present invention detects vibrations, outputs vibration detection information, sampling means for sampling vibration detection information output by the output means, and corrects based on the values sampled by the sampling means. The correction amount information is obtained by performing calculation based on the correction amount candidate calculated by the calculation means and the correction amount candidate calculated by the calculation means, or by selecting a correction amount candidate that satisfies a predetermined condition from the correction amount candidates. Based on the generation means to be generated, the control means for controlling the region of the image cut out from the image captured by the image sensor based on the correction amount information generated by the generation means, and the correction amount candidates calculated by the calculation means Estimating means for estimating the frequency component of vibration; storage means for storing a table in which the frequency component and the correction amount are associated; and estimating means A correction amount corresponding to more estimated frequency components, and reading means for reading from the table stored by the storing means, based on the correction amount read by the reading means,Value used by the generation means to generate correction amount informationTheAnd correcting means for correcting.
[0021]
The estimation unit calculates an average value of the correction amount candidates calculated by the calculation unit within the first period, performs an FFT calculation using the average value calculated within the second period, and calculates the calculation result. It can be used to estimate the frequency component of vibration.
The estimation means can estimate the frequency having the highest level as a frequency component of vibration as a result of the FFT calculation.
The correcting means may further correct a value used by the calculating means to calculate a correction amount candidate based on the correction amount read by the reading means.
[0022]
The correction unit may correct the phase of the correction amount candidate as a value used by the generation unit to generate correction amount information based on the correction amount read by the reading unit.
The correcting means can correct the gain of the vibration detection information as a value used by the calculating means to calculate a correction amount candidate based on the correction amount read by the reading means.
The correction unit may correct the phase of the correction amount candidate as a value used by the generation unit to generate correction amount information based on the correction amount read by the reading unit.
[0023]
The image processing method of the present invention includes a sampling step for sampling vibration detection information related to vibration, a calculation step for calculating a correction amount candidate based on a value sampled in the processing of the sampling step, and a calculation step. A generation step for generating correction amount information by performing a calculation based on the correction amount candidate or selecting a correction amount candidate satisfying a predetermined condition from the correction amount candidates, and the correction amount generated by the processing of the generation step A control step for controlling a region of an image to be cut out from an image captured by an image sensor based on information, an estimation step for estimating a frequency component of vibration based on a correction amount candidate calculated in the processing of the calculation step, and a frequency A storage control step for controlling storage of a table in which components and correction amounts are associated, and an estimation step A correction amount corresponding to the estimated frequency components in management, a reading step of reading from the table stored under control in the storage control step, on the basis of the correction amount read in the process of reading step,Value used to generate correction amount information in the processing of the generation stepTheAnd a correcting step for correcting.
[0024]
The recording medium program of the present invention is calculated by a sampling step for sampling vibration detection information related to vibration, a calculation step for calculating a correction amount candidate based on a value sampled in the processing of the sampling step, and a process of the calculation step. A correction step that generates correction amount information by performing a calculation based on the correction amount candidates or selecting a correction amount candidate that satisfies a predetermined condition from the correction amount candidates, and the correction generated by the processing of the generation step A control step for controlling a region of an image to be cut out from an image captured by the image sensor based on the amount information; an estimation step for estimating a frequency component of vibration based on a correction amount candidate calculated in the processing of the calculation step; A storage control step for controlling storage of a table in which frequency components and correction amounts are associated; and an estimation step. Tsu the correction amount corresponding to the estimated frequency components in the process of flops, a reading step of reading from the table stored under control in the storage control step, on the basis of the correction amount read in the process of reading step,Value used to generate correction amount information in the processing of the generation stepTheAnd a correcting step for correcting.
[0025]
The program of the present invention includes: a sampling step for sampling vibration detection information related to vibration in a computer that controls the image processing apparatus; a calculation step for calculating a correction amount candidate based on a value sampled in the processing of the sampling step; A generation step for generating correction amount information by performing an operation based on the correction amount candidate calculated in the processing of the step or by selecting a correction amount candidate satisfying a predetermined condition from the correction amount candidates; Based on the correction amount information generated by the processing, a control step for controlling an area of the image cut out from the image captured by the image sensor, and a vibration frequency component based on the correction amount candidate calculated by the processing of the calculation step Controls the estimation step to be estimated and the storage of the table that associates the frequency components with the correction amount. A read step for reading out the correction amount corresponding to the frequency component estimated in the storage control step and the processing in the estimation step from the table whose storage is controlled in the storage control step processing, and the correction read out in the read step processing Based on quantity,Value used to generate correction amount information in the processing of the generation stepTheA correction step for correcting is executed.
[0026]
In the image processing apparatus, method, and program of the present invention, vibration detection information related to vibration is sampled, a correction amount candidate is calculated based on the value, and an operation based on the correction amount candidate is performed, or the correction amount By selecting a correction amount candidate that satisfies a predetermined condition from the candidates, correction amount information is generated, and based on the correction amount information, an area of an image cut out from an image captured by the imaging device is controlled, and vibration The frequency component is estimated, and the correction amount corresponding to the frequency component is read from the table in which the frequency component and the correction amount are associated, and based on the correction amount,Value used to generate correction amount informationButWill be corrected.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. FIG. 5 is a diagram showing a configuration of an embodiment of an image processing apparatus to which the present invention is applied. The
[0028]
The
[0029]
The analog
[0030]
The digital signal processed and output by the analog
[0031]
The
[0032]
The
[0033]
The
[0034]
The
[0035]
The camera
[0036]
FIG. 6 is a diagram illustrating an internal configuration example of the camera
[0037]
Of course, the camera
[0038]
A signal related to the vibration detected by the
[0039]
The high-
[0040]
The sensor
[0041]
In the present embodiment, gain adjustment information 121 (details will be described later) output from the correction
[0042]
The output from the sensor
[0043]
The signal output from the zoom
[0044]
The output from the integration filter 56 (here, the correction amount candidate Sout [n]) is stored in the
[0045]
The correction
[0046]
The
[0047]
The
[0048]
The digital
[0049]
Thus, the influence of the vibration in the vertical direction is reduced by changing the reading position of the signal from the
[0050]
FIG. 7 is a functional block diagram of the
[0051]
The correction amount candidates Sout [0] to [7] stored in the correction amount
(Fourier Transform)
[0052]
The calculation result of the FFT calculation by the
[0053]
The phase compensation table 85 stores a table relating to information for performing adjustment relating to the phase (hereinafter referred to as phase information 132), and a correction amount using the value corresponding to the
[0054]
The correction amount information generation unit 86 generates the
[0055]
Next, the process of generating the
[0056]
In step S1, the
[0057]
In step S <b> 3, the digitized signal is subjected to processing in each of the high-
[0058]
In step S4, it is determined whether or not eight correction amount candidates Sout [0] to [7] are stored in the
[0059]
If it is determined that the correction amount candidates Sout [0] to [7] necessary for calculating the
[0060]
The VD pulse shown in FIG. 9A is a vertical synchronization signal, and is a pulse having a period of 1/60 sec in the NTSC system and 1/50 sec in the PAL system. The
[0061]
The SG pulse shown in FIG. 9B is a discharge pulse of the
[0062]
The exposure period shown in FIG. 9C is a value determined by the brightness control unit 22 (FIG. 5) and depends on the shutter speed. One exposure period is described as an exposure period Tshut. The exposure period Tshut is information supplied to the
[0063]
FIG. 9D shows A / D timing, and shows the timing at which an analog camera shake signal is converted into a digital signal in the A / D converter 52 (FIG. 6). The A / D timing is a timing obtained by dividing the length of one field into N with reference to the VD pulse, and one interval is the interval Ts. In this case, a case where one field is divided into eight is shown as an example. At each interval Ts, the camera shake signal acquired by the
[0064]
FIG. 9E shows the timing at which the correction amount candidate Sout [n] is output. The camera shake signal of the digital signal acquired at every interval Ts is output to the
[0065]
The correction
[0066]
In step S <b> 21, the correction amount candidates Sout [0] to [7] stored in the correction amount
Ave [m] = ΣSout [n] / N (1)
[0067]
In Equation (1), n takes a value from 0 to 7, and N is the number of samplings, and in this case is 8. The correction amount average value Ave [m] calculated in step S22 is the correction amount average value Ave [0]. Here, it is assumed that the index of the correction amount average value Ave [m] calculated in the current field is 0, and the index of the correction amount average value Ave [m] calculated in the
[0068]
In addition, in this embodiment,
Correction amount average value Ave [0]... Current field correction amount average value Ave [m]
Correction amount average value Ave [1] ... Correction amount average value Ave [m] one field before
Correction amount average value Ave [2] ... Correction amount average value Ave [m] two fields before
...
Correction amount average value Ave [63]... 63 field previous correction amount average value Ave [m]
It is a relationship.
[0069]
When the correction value average value Ave [0] is calculated by the average
[0070]
The value calculated as the correction amount average value Ave [0] at this time is added to the correction amount average value Ave [1] and the index by 1 when the process for the next field is executed, and the value from the next field is added. The correction amount average value Ave [m] is set as a new correction amount average value Ave [0]. The indexes of the correction amount average values Ave [1] to [63] are also sequentially added by 1, and the correction amount average value Ave [63] before the index is changed is the correction amount average value storage unit. 72 is deleted.
[0071]
In step S23, as described above, the calculated correction amount average value Ave [0] is stored in the correction amount average
[0072]
In step S24, the
[0073]
Here, 64 is set because the input of the algorithm of the FFT operation is specified as a power of 2, and it is better to have a resolution of about 1 Hz or more, This is a result of considering that there is no problem if the load is about 64. When a finer resolution is required, the FFT calculation may be performed using 64 or more correction amount average values Ave [m].
[0074]
In the present embodiment, 64 average values of the correction amount candidates [0] to [7] are used for the FFT calculation, but the FFT calculation may be performed using an input other than the average value. The input other than the average value is, for example, any one of the correction amount candidates [0] to [7] based on a predetermined condition (for example, a candidate obtained at the timing closest to the exposure center). It is also possible to select one correction amount candidate [n].
[0075]
The FFT operation performed by the
[0076]
By the way, since the calculation of the twiddle factor W is uniquely determined as long as the FFT calculation algorithm and the number of data used for the calculation are determined, all the twiddle factors W are calculated in advance and prepared as a table. As the calculation progresses, the necessary twiddle factor W is read from the table each time, and the load on the calculation can be reduced. The table can be stored in the
[0077]
The calculation result calculated by the FFT calculation unit 82 (denoted as frequency spectrum [i] as appropriate) is output to the
[0078]
The determination of the main frequency F0 in step S25 is performed by determining the spectrum having the highest level among the supplied frequency spectrum [i] as the main frequency F0. The determination of the main frequency F0 in this manner is based on the assumption that the “highest frequency spectrum level” is the main frequency component in the generally assumed shake signal band.
[0079]
As a process up to the determination, first, the candidate spectrum is narrowed down by the index (corresponding to the frequency) of the supplied frequency spectrum [i], and the index of the frequency spectrum [i] having the highest level spectrum is selected as the main frequency Determined as component F0. Although the description here assumes that the main frequency F0 is determined in this way, the main frequency F0 may be determined using another determination method.
[0080]
The processes in steps S21 to S25 will be described again with reference to FIGS. FIG. 11 and FIG. 12 show an example where 64 fields of data are used for FFT calculation. As shown in FIG. 11, the correction amount average value Ave [m] is sequentially generated every time the time t advances. Among them, as shown in FIG. 11B, as input data to the
[0081]
Then, as shown in FIG. 11C, the frequency spectra [0] to [63] are output from the
[0082]
As described above, in the present embodiment, since 64 data are used to perform the FFT operation, the resolution and dynamic range (detectable frequency band) are in the case of NTSC due to the nature of FFT. 60/64 (Hz), 60/64 × 31 (Hz), and 50/64 (HZ) and 50/64 × 31 [31] in the case of PAL, respectively. However, here, the detectable frequency band is calculated on the assumption that there is no aliasing component.
[0083]
When the main frequency F0 is determined in this way, the process proceeds to step S26, and a value is read from the table. The
[0084]
FIG. 13 shows an example of the gain compensation table 84, and FIG. 14 shows an example of the phase compensation table. The gain compensation table 84 is a table in which the
[0085]
The signal supplied to the sensor
[0086]
The cutoff frequency of the high-
[0087]
The sensor
[0088]
Compensation (correction) of the gain using the
[0089]
That is, the
[0090]
In the gain compensation table 84 shown in FIG. 13, for example, when the main frequency F0 is determined to be the frequency spectrum [8], “0.03” is read as the
[0091]
In this way, frequency compensation of the gain generated by the transfer function G (f) depending on the system is performed.
[0092]
In the above-described embodiment, the value G0 is set in advance in the sensor
[0093]
For the gain adjustment performed in the sensor
[0094]
Of course, the data obtained from the current field may be used to adjust the signal Shpf obtained from the current field, but in this case, the sensor
[0095]
Next, in step S28 (FIG. 10), phase compensation is performed. Then, based on the compensated phase,
[0096]
In the phase correction, information corresponding to the determined frequency spectrum [i] corresponding to the main frequency F0 is read from the phase compensation table 85 as shown in FIG. 14, and based on the read information (phase information 132). Thus, the correction amount information generation unit 86 generates the
[0097]
Here, generation of the
[0098]
This is because, since the camera shake signal changes every moment during the exposure period, the ideal sampling point is different every time during the exposure period. The minimum error is based on the fact that the correction amount is at the center position of the exposure period.
[0099]
However, since there are frequency characteristics (phase advance and delay) of the system, the correction amount candidate Sout [n] acquired at the time closest to the central timing of the exposure period is corrected without taking this into consideration. Even if the
[0100]
Therefore, the
[0101]
The
[0102]
In this way, considering the frequency characteristics related to the system, the correction amount candidate Sout [n] acquired at the time closest to the central timing of the exposure period is determined as the
[0103]
However, referring to FIG. 9, it is assumed that the correction amount candidate Sout [n] acquired at the time closest to the central timing of the exposure period is determined as the
[0104]
Therefore, the correction amount candidate Sout [n] that will be acquired at the center timing of the exposure period is estimated and calculated using the correction amount candidates Sout [0] to [7] that are actually acquired. May be. When estimated and calculated, the central timing of the exposure period uses a value calculated using a value read from the phase compensation table 85 (ie, compensated timing), and the exposure period A correction amount candidate Sout [n] that will be acquired at the central timing is estimated.
[0105]
The phase compensation table 85 shown in FIG. 14 shows the correction amount candidates Sout [n] that will be acquired at the center timing of the exposure period, and the correction amount candidates Sout [0] to [7] that are actually acquired. An example suitable for the case of using and estimating and calculating is shown.
[0106]
The
[0107]
Acquisition of a table stored in the correction
[0108]
As another method of acquiring the table, the system may be actually constructed, and the table may be created using the constructed system, in this case, the
[0109]
Any method may be used to create the table. However, a table is created so that camera shake can be most effectively suppressed, and the table is used.
[0110]
In the above-described embodiment, both the gain and the phase are compensated, but only one of them may be compensated. In other words, for example, FIG. 7 shows an example in which both the gain compensation table 84 and the phase compensation table 85 are provided, but only one of the tables is provided, and only processing corresponding to the provided table is provided. May be performed.
[0111]
In the above-described embodiment, the gain compensation table 83 and the phase compensation table 85 are provided in the correction
[0112]
In the above-described embodiment, the case where the present invention is applied to the electronic correction formula has been described. However, application to an optical correction formula is also possible. When applied to the optical correction equation, the compensation system is changed as necessary.
[0113]
In this way, by generating the
[0114]
Therefore, vibrations caused by the photographer's habit, shooting conditions (eg, tiredness, irregular vibrations during shooting operations), shooting environment (eg, shooting in a car or amusement park ride), etc. In contrast, it is possible to realize good camera shake correction.
[0115]
By applying camera shake correction by applying the present invention, it becomes possible to determine the type (frequency) of camera shake, for example, whether it is camera shake in a stationary state or camera shake in a panning state. It becomes possible, and it becomes possible to perform an appropriate correction suitable for the state.
[0116]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, various functions can be executed by installing a computer in which the programs that make up the software are installed in dedicated hardware, or by installing various programs. For example, it is installed from a recording medium in a general-purpose personal computer or the like.
[0117]
FIG. 15 is a diagram illustrating an internal configuration example of a general-purpose personal computer. A CPU (Central Processing Unit) 211 of the personal computer executes various processes according to a program stored in a ROM (Read Only Memory) 212. A RAM (Random Access Memory) 213 appropriately stores data and programs necessary for the
[0118]
Further, a
[0119]
As shown in FIG. 15, the recording medium is distributed to provide a program to the user separately from the personal computer, and a magnetic disk 231 (including a flexible disk) on which the program is recorded, an optical disk 232 (CD- Consists of package media including ROM (Compact Disc-Read Only Memory), DVD (including Digital Versatile Disc), magneto-optical disk 233 (including MD (Mini-Disc) (registered trademark)), or
[0120]
In this specification, the steps for describing the program provided by the medium are performed in parallel or individually in accordance with the described order, as well as the processing performed in time series, not necessarily in time series. The process to be executed is also included.
[0121]
Further, in this specification, the system represents the entire apparatus constituted by a plurality of apparatuses.
[0122]
【The invention's effect】
As described above, according to the present invention, it is possible to reduce the influence of vibrations such as camera shake.
[0123]
In addition, according to the present invention, the frequency of the applied vibration can be estimated and the type of vibration can be discriminated, so that it is possible to correct camera shake more accurately and according to the situation. It becomes.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a method for reducing the influence of applied vibration.
FIG. 2 is a diagram illustrating a configuration of an example of an apparatus for calculating a correction amount.
FIG. 3 is a diagram for explaining the influence of frequency characteristics.
FIG. 4 is a diagram illustrating frequency characteristics depending on the type of camera shake.
FIG. 5 is a diagram showing a configuration of an embodiment of an
6 is a diagram illustrating an internal configuration example of a camera
FIG. 7 is a diagram illustrating an internal configuration example of a correction
FIG. 8 is a flowchart for describing correction amount information generation processing;
FIG. 9 is a diagram illustrating generation of correction amount candidates.
FIG. 10 is a flowchart illustrating details of the process in step S5 of FIG.
FIG. 11 is a diagram for describing data used for FFT calculation processing;
FIG. 12 is a diagram for explaining determination of a main frequency F0.
13 is a diagram illustrating an example of a gain compensation table 84. FIG.
14 is a diagram illustrating an example of a phase compensation table 85. FIG.
FIG. 15 is a diagram illustrating a medium.
[Explanation of symbols]
DESCRIPTION OF
Claims (10)
前記振動を検出し、振動検出情報を出力する出力手段と、
前記出力手段により出力された前記振動検出情報をサンプリングするサンプリング手段と、
前記サンプリング手段によりサンプリングされた値に基づいて補正量候補を算出する算出手段と、
前記算出手段により算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成手段と、
前記生成手段により生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と、
前記算出手段により算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定手段と、
前記周波数成分と修正量が関連付けられたテーブルを記憶する記憶手段と、
前記推定手段により推定された前記周波数成分に対応する前記修正量を、前記記憶手段により記憶されている前記テーブルから読み出す読み出し手段と、
前記読み出し手段により読み出された前記修正量に基づき、前記生成手段が前記補正量情報を生成するために用いる値を修正する修正手段と
を含むことを特徴とする画像処理装置。In an image processing apparatus that performs correction to reduce the influence on the image due to applied vibration when an image is captured by an image sensor,
Output means for detecting the vibration and outputting vibration detection information;
Sampling means for sampling the vibration detection information output by the output means;
Calculating means for calculating a correction amount candidate based on the value sampled by the sampling means;
Generating means for generating correction amount information by performing an operation based on the correction amount candidates calculated by the calculating means, or by selecting the correction amount candidates satisfying a predetermined condition from the correction amount candidates; ,
Control means for controlling a region of an image cut out from an image picked up by the image pickup device based on the correction amount information generated by the generating means;
Estimating means for estimating a frequency component of the vibration based on the correction amount candidate calculated by the calculating means;
Storage means for storing a table in which the frequency component and the correction amount are associated;
Reading means for reading the correction amount corresponding to the frequency component estimated by the estimating means from the table stored by the storage means;
An image processing apparatus comprising: correction means for correcting a value used by the generation means to generate the correction amount information based on the correction amount read by the reading means.
ことを特徴とする請求項1に記載の画像処理装置。The estimating means calculates an average value of the correction amount candidates calculated by the calculating means within a first period, performs an FFT operation using the average value calculated within a second period, and The image processing apparatus according to claim 1, wherein a frequency component of the vibration is estimated using a calculation result.
ことを特徴とする請求項2に記載の画像処理装置。The image processing apparatus according to claim 2, wherein the estimation unit estimates a frequency having a highest level as a frequency component of the vibration as a result of the FFT operation.
ことを特徴とする請求項1に記載の画像処理装置。 The image processing apparatus according to claim 1.
ことを特徴とする請求項1に記載の画像処理装置。 The image processing apparatus according to claim 1.
ことを特徴とする請求項4に記載の画像処理装置。 The image processing apparatus according to claim 4.
ことを特徴とする請求項6に記載の画像処理装置。 The image processing apparatus according to claim 6.
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、 A sampling step of sampling vibration detection information relating to the vibration;
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、 A calculation step of calculating a correction amount candidate based on the value sampled in the sampling step;
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量 A correction amount is obtained by performing an operation based on the correction amount candidate calculated in the calculation step or selecting the correction amount candidate satisfying a predetermined condition from the correction amount candidates. 情報を生成する生成ステップと、A generation step for generating information;
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、 A control step for controlling a region of an image cut out from an image captured by the image sensor based on the correction amount information generated in the processing of the generation step;
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、 An estimation step of estimating a frequency component of the vibration based on the correction amount candidate calculated in the processing of the calculation step;
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、 A storage control step for controlling storage of a table in which the frequency component and the correction amount are associated;
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、 A step of reading out the correction amount corresponding to the frequency component estimated in the process of the estimation step from the table whose storage is controlled in the process of the storage control step;
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと A correction step of correcting a value used for generating the correction amount information in the generation step based on the correction amount read out in the reading step;
を含むことを特徴とする画像処理方法。 An image processing method comprising:
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、 A sampling step of sampling vibration detection information relating to the vibration;
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、 A calculation step of calculating a correction amount candidate based on the value sampled in the sampling step;
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成ステップと、 Generation for generating correction amount information by performing an operation based on the correction amount candidate calculated in the processing of the calculation step or by selecting the correction amount candidate satisfying a predetermined condition from the correction amount candidates Steps,
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、 A control step for controlling a region of an image cut out from an image captured by the image sensor based on the correction amount information generated in the processing of the generation step;
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、 An estimation step of estimating a frequency component of the vibration based on the correction amount candidate calculated in the processing of the calculation step;
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、 A storage control step for controlling storage of a table in which the frequency component and the correction amount are associated;
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、 A step of reading out the correction amount corresponding to the frequency component estimated in the process of the estimation step from the table whose storage is controlled in the process of the storage control step;
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと A correction step of correcting a value used for generating the correction amount information in the generation step based on the correction amount read out in the reading step;
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 A recording medium on which a computer-readable program is recorded.
前記振動に関する振動検出情報をサンプリングするサンプリングステップと、 A sampling step of sampling vibration detection information relating to the vibration;
前記サンプリングステップの処理でサンプリングされた値に基づいて補正量候補を算出する算出ステップと、 A calculation step of calculating a correction amount candidate based on the value sampled in the sampling step;
前記算出ステップの処理で算出された前記補正量候補に基づいた演算を行うか、または、前記補正量候補から所定の条件を満たす前記補正量候補を選択することにより、補正量情報を生成する生成ステップと、 Generation for generating correction amount information by performing an operation based on the correction amount candidate calculated in the processing of the calculation step or by selecting the correction amount candidate satisfying a predetermined condition from the correction amount candidates Steps,
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと、 A control step for controlling a region of an image cut out from an image captured by the image sensor based on the correction amount information generated in the processing of the generation step;
前記算出ステップの処理で算出された前記補正量候補に基づいて、前記振動の周波数成分を推定する推定ステップと、 An estimation step of estimating a frequency component of the vibration based on the correction amount candidate calculated in the processing of the calculation step;
前記周波数成分と修正量が関連付けられたテーブルの記憶を制御する記憶制御ステップと、 A storage control step for controlling storage of a table in which the frequency component and the correction amount are associated;
前記推定ステップの処理で推定された前記周波数成分に対応する前記修正量を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと A reading step of reading the correction amount corresponding to the frequency component estimated in the processing of the estimation step from the table whose storage is controlled in the processing of the storage control step; 、,
前記読み出しステップの処理で読み出された前記修正量に基づき、前記生成ステップの処理で前記補正量情報を生成するために用いる値を修正する修正ステップと A correction step of correcting a value used for generating the correction amount information in the generation step based on the correction amount read out in the reading step;
を実行させるプログラム。 A program that executes
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002034876A JP3865126B2 (en) | 2002-02-13 | 2002-02-13 | Image processing apparatus and method, recording medium, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002034876A JP3865126B2 (en) | 2002-02-13 | 2002-02-13 | Image processing apparatus and method, recording medium, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003234951A JP2003234951A (en) | 2003-08-22 |
JP3865126B2 true JP3865126B2 (en) | 2007-01-10 |
Family
ID=27777226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002034876A Expired - Fee Related JP3865126B2 (en) | 2002-02-13 | 2002-02-13 | Image processing apparatus and method, recording medium, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3865126B2 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005316294A (en) * | 2004-04-30 | 2005-11-10 | Olympus Corp | Photographing device and single lens reflex camera |
JP4739797B2 (en) * | 2005-04-04 | 2011-08-03 | 株式会社 ニコンビジョン | Optical observation device |
JP4769564B2 (en) * | 2005-12-09 | 2011-09-07 | キヤノン株式会社 | Image shake correction apparatus, imaging apparatus, and lens apparatus |
JP5083011B2 (en) * | 2007-04-19 | 2012-11-28 | パナソニック株式会社 | Method for evaluating camera shake correction function of image pickup apparatus and method for generating camera shake model waveform |
JP4835610B2 (en) * | 2007-04-19 | 2011-12-14 | パナソニック株式会社 | Evaluation method of captured images |
JP2009128400A (en) * | 2007-11-20 | 2009-06-11 | Sanyo Electric Co Ltd | Multi-chip package semiconductor device |
WO2013076965A1 (en) * | 2011-11-22 | 2013-05-30 | パナソニック株式会社 | Measuring method, measuring device, computer program and recording medium |
JP6097936B2 (en) * | 2013-03-22 | 2017-03-22 | パナソニックIpマネジメント株式会社 | Image stabilizer, interchangeable lens, camera system |
JP5954388B2 (en) * | 2014-10-02 | 2016-07-20 | 株式会社ニコン | Vibration correction apparatus and photographing apparatus |
-
2002
- 2002-02-13 JP JP2002034876A patent/JP3865126B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003234951A (en) | 2003-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5249377B2 (en) | Imaging apparatus, control method therefor, and program | |
US7424212B2 (en) | Camera shaking correcting method, camera shaking correcting device, and image pickup device | |
US8629910B2 (en) | Image capture apparatus and control method thereof | |
US20160255273A1 (en) | Control apparatus, image pickup apparatus, control method, and non-transitory computer-readable storage medium which are capable of performing tilt correction | |
US6982746B1 (en) | Apparatus and method for correcting shake by controlling sampling timing of shake signal | |
US20080012950A1 (en) | Image pickup systems | |
JP2010025961A (en) | Image stabilization control apparatus and image capturing apparatus | |
JP6821358B2 (en) | Control device, image pickup device, lens device, control method, program, and storage medium | |
JP3865126B2 (en) | Image processing apparatus and method, recording medium, and program | |
JP2018025703A (en) | Shake correction device, optical apparatus, and shake correction correct method | |
JP2008209577A (en) | Camera | |
US8860822B2 (en) | Imaging device | |
JP2012078495A (en) | Imaging device, shake correction device, and shake correction method | |
JP3740398B2 (en) | Shake correction device, control device applied to shake correction device, control method applied to shake correction device, control program applied to shake correction device, imaging device | |
JP3865125B2 (en) | Image processing apparatus and method, recording medium, and program | |
JP5249378B2 (en) | Imaging apparatus, control method therefor, and program | |
KR101399986B1 (en) | Audi0 signal processing apparatus | |
JP2019125890A (en) | Image shake correction device, camera body, image shake correction method, and program | |
CN104754205B (en) | Image stabilizing apparatus and method, the image pick-up device for having the device | |
JP4387028B2 (en) | IMAGING DEVICE, IMAGING METHOD, AND COMPUTER-READABLE RECORDING MEDIUM RECORDING PROGRAM FOR CAUSING COMPUTER TO EXECUTE THE METHOD | |
JP2005326776A (en) | Image blur correcting device | |
JP2005141207A (en) | Blurring correcting apparatus and camera system | |
JP4176935B2 (en) | Imaging device with camera shake prevention function | |
JP3937574B2 (en) | Imaging device | |
JP4016725B2 (en) | Imaging apparatus, signal processing method, recording medium, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040820 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060608 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060927 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |