(57)【特許請求の範囲】
【請求項１】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置において、
振動を検出し、振動検出情報を出力する出力手段と、
前記出力手段により出力された前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持手段と、
前記保持手段により保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定手段と、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルを記憶する記憶手段と、
前記設定手段により設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の前記補正量候補に対応する引数をさらに決定する決定手段と、
前記決定手段により決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶手段により記憶されている前記テーブルから読み出す読み出し手段と、
前記読み出し手段により読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成手段と、
前記生成手段により生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と
を含むことを特徴とする画像処理装置。
【請求項２】
前記設定手段は、前記露光期間の中央の時刻が、予め設定された所定の期間外の時刻である場合、前記設定された期間内の両端のタイミングのサンプリングに基づく前記補正量候補の一方を前記中間補正量候補として設定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定の関数は、偶関数であり、前記記憶手段は、前記偶関数の正領域または負領域のどちらか一方に属する前記値のみが、前記引数と関連付けられたテーブルを保持する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置の画像処理方法において、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を含むことを特徴とする画像処理方法。
【請求項５】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置のプログラムであって、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項６】
撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置を制御するコンピュータに、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、ユーザの手振れなどに起因する画像のずれをより精度良く補正し、ブレのない画像をユーザに提供するために用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
動画像や静止画像を撮像し、記録するビデオカメラやスチルカメラが普及し、さまざまな場面で利用されている。家庭用のビデオカメラやスチルカメラは、小型化、軽量化、高性能化している。小型化や軽量化が進むと、使い勝手は良くなるが、ユーザの手振れなどが発生しやすくなるといった問題があった。また、高性能化が進み、ズームなどの機能が充実すると、ズームしたときには、ズームしないときに比べて手振れの影響が大きく出てしまうといった問題があった。
【０００３】
そのような問題を解決する方法として、例えば、図１Ａに示すように、撮像する撮像領域１を、ディスクなどの記録媒体に実際に撮像された画像として記録する画像の記録領域２よりも大きい領域として処理する方法がある。この方法では、撮像領域１に撮像されている画像から、記録領域２内の画像を切り出し、その切り出された画像を記録する。撮像領域１からどの領域を記録領域２として切り出すかは、検出された手振れの大きさを考慮した補正量を算出し、その補正量を用いて行われる。
【０００４】
時刻ｔにおいて切り出された記録領域２が図１Ａに示したような状態のとき、次の時刻ｔ＋１において、図１Ｂに示すように、垂直方向の補正量３−１と水平方向の補正量３−２が算出されると、その補正量３−１，３−２だけ移動された領域が、時刻ｔ＋１での記録領域２として切り出される。補正量３−１，３−２は、露光期間の中心の時刻に得られたデータが用いられて算出される。
【０００５】
補正値の算出について図２と図３を参照して説明する。ビデオカメラなどには、手振れを検出するための、例えば、角速度センサが設けられている。その角速度センサからの手振れ信号は連続的に出力されている。連続的に出力されている信号は、例えば、ＶＤパルスの１パルスのうちに、８回のタイミングでサンプリングされる。図２Ｃに示したように、間隔Ｔｓ毎にセンサから得られる信号がサンプリング（Ａ／Ｄ変換）されることになる。図２Ｄに示したように、サンプリングされた信号を用いた演算が行なわれることにより、間隔Ｔｓ毎に、手振れによる影響を低減させるための補正量が算出される。
【０００６】
算出された補正量のうち、露光期間の中心に近いタイミングで得られた補正量のみが画像の切り出しに用いられる補正量とされる。これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【０００７】
露光期間は、図２Ｂに示すように、シャッタースピードにより異なるため、その中心位置も異なってくる。シャッタスピード１のときの露光中心１は、図２Ｄにおいてちょうど第５番目の補正量が得られる位置にあるため、その第５番目の補正量が用いられる。
【０００８】
シャッタスピード２の露光中心２の時に得られる補正量は、図２Ｄに示したように、タイミング的に存在しない。そこで、露光中心２に最も近い時刻に得られた補正量、この場合、第５番目の補正量が用いられる。
【０００９】
このような処理は、垂直方向の手振れを検出するセンサから得られる信号と、水平方向の手振れを検出するセンサから得られる信号とで、別々に処理が行われ、垂直方向用の補正量（図１の補正量３−２）と水平方向用の補正量（図１の補正量３−２）が、それぞれ算出される。しかしながら、垂直方向と水平方向の補正量をそれぞれ算出するのは、ビデオカメラ内の演算処理を行う部分にかかる付加が大きく、また、そのビデオカメラに備えるべき充分な処理能力を、補正量の算出のためだけに上げることはコスト面などの問題から実現できないといった限界から、手振れ信号から取得するサンプリング数を落とすことが考えられる。
【００１０】
図３は、そのようにサンプリング数を落とした場合の補正量の算出について説明する図である。手振れ信号に対するサンプリングは、垂直方向の手振れを検出するセンサからの信号に対してと、水平方向の手振れを検出するセンサからの信号に対してとで、交互に行われる。１ＶＤパルスの１パルスの期間に８回サンプリングが行われるが、垂直方向に関してはそのうちの４回、水平方向に関してはそのうちの４回が割り当てられているため、サンプリング数は、図２に示した場合に比べて実質半分の数にされている。
【００１１】
図３に示した場合、シャッタスピード３の露光中心３に完全に合うタイミングで算出される補正量はない。そのため、露光中心３の前後のタイミングで得られた第５番目の補正量が水平方向の補正量として用いられ、第６番目の補正量が垂直方向の補正量として用いられる。
【００１２】
このように、１フィールドあたりＮ回（図２または図３に示して例では８回）の定められたタイミング（Ａ／Ｄタイミング）で、センサから得られる手振れ信号がサンプリングされ、このサンプリングの結果得られた信号が用いられた演算が行われたＮ個の演算結果から、シャッタスピードの露光期間の中央の時刻に最も近い時刻に取得された演算結果が、そのフィールドの補正量として用いられる。
【００１３】
【発明が解決しようとする課題】
上述したように、手振れを補正するための補正量は、シャッタスピードに応じた露光期間の中心のタイミングに得られるものが用いられるが、必ずしも、露光期間の中心のタイミング（以下、適宜、露光期間の中心位置と記述する）で得られるものが用いられるとは限らなかった。
【００１４】
図２に示した例において、シャッタスピード２の時に用いられる補正量は、露光中心２より時間Ｔａだけ前の時刻に取得されたものである。このずれとしての時間Ｔａは、最大、Ｔｓ／２だけの時間となってしまう。また、図３に示した例において、シャッタスピード３の時に用いられる水平方向の補正量は、露光中心３より時間Ｔａだけ前の時刻に取得されたものであり、垂直方向の補正量は、露光中心３より時間Ｔｂだけ後の時刻に取得されたものである。
【００１５】
このように、センサから得られる信号を離散的に扱うために、シャッタスピードで露光期間の中心からずれている時に取得された補正量を用いなくてはならないといった問題があった。このずれは、サンプリング周波数、タイミング、およびシャッタスピードに依存し、ずれが大きくなることは、画像にぼけが生じるなど性能の悪化をまねいてしまう。
【００１６】
ずれを生じさせないようにするには、サンプリング周波数を上げることが考えられるが、サンプリング周波数を上げると、処理量が多くなり、システムに係る負荷が大きくなってしまうという問題があった。また、システムに係る負荷が大きくなるという問題を解決し、サンプリング周波数を２倍または４倍程度にあげたとしても、上記した問題を解決するにいたらないといった問題があった。
【００１７】
また、放送方式の違い、例えば、ＮＴＳＣ（National Television System Committee）方式とＰＡＬ（Phase Alternating Line）方式とでは、１フィールドあたりの走査時間（図２や図３ではＶＤパルスに関わる）が異なるため、同じシャッタスピードでも、露光期間の中心からのずれ量が異なり、補正量の信頼性が異なってくるといった問題があった。
【００１８】
図３に示したように、水平方向と垂直方向を交互にサンプリングして補正量を算出するような場合、それぞれ露光期間の中心からのずれがあり、また、そのずれ量が異なるため、水平方向と垂直方向とで、手振れの補正の精度が異なってしまうといった問題があった。
【００１９】
このような問題は、主に、補正量が算出されるタイミングが、露光期間の中心からずれているために生じるため、できる限り、露光期間の中心のタイミングで得られる手振れ信号から補正量が算出されるような方法が提案されている。例えば、センサなどから得られる手振れ信号に対して露光期間の中心のタイミングを調整してサンプリングを行うようにする方法（露光期間に対応してサンプリングタイミングを変化させる方法）が提案されているが、このような方法の場合、システムが複雑化するだけでなく、サンプリング周波数がＶＤパルスの周波数まで落ちることになるため、手振れ信号の帯域で既に位相が回ってしまい、何らかの補償をかけないと性能が悪化してしまうといった問題があった。
【００２０】
また他の方法としては、露光期間の中心位置と、複数のサンプリング信号との関係を予め記憶しておき、その記憶されている関係から、最もそのときの状況に適しているサンプリング信号を抽出し、そのサンプリング信号に基づくサンプリングを行うことにより補正量を算出する方法が提案されているが、この方法でも、離散的にサンプリングしているために、上述したような問題を抑制しきれないといった問題があった。
【００２１】
本発明はこのような状況に鑑みてなされたものであり、サンプリング周波数を上げることなく、システムの負荷を大きくすることなく、露光期間の中心位置で得られた補正量を算出することを課題とする。
【００２２】
【課題を解決するための手段】
以上の課題を解決すべく、本発明を適用した画像処理装置は、振動を検出し、振動検出情報を出力する出力手段と、出力手段により出力された振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持手段と、保持手段により保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定手段と、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルを記憶する記憶手段と、設定手段により設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の補正量候補に対応する引数をさらに決定する決定手段と、決定手段により決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶手段により記憶されているテーブルから読み出す読み出し手段と、読み出し手段により読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成手段と、生成手段により生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段とを含むことを特徴とする。
【００２４】
前記設定手段は、露光期間の中央の時刻が、予め設定された所定の期間外の時刻である場合、設定された期間内の両端のタイミングのサンプリングに基づく補正量候補の一方を中間補正量候補として設定するようにすることができる。
【００２５】
前記所定の関数は、偶関数であり、前記記憶手段は、偶関数の正領域または負領域のどちらか一方に属する値のみが、引数と関連付けられたテーブルを保持するようにすることができる。
【００２７】
本発明を適用した画像処理方法は、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを含むことを特徴とする。
【００２８】
本発明を適用した記録媒体のプログラムは、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを含むことを特徴とする。
【００２９】
本発明を適用したプログラムは、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを実行させることを特徴とする。
【００３０】
本発明を適用した画像処理装置および方法、並びにプログラムにおいては、振動に関する振動検出情報サンプリングした値に基づいて算出される値が補正量候補とされ、その補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補が中間補正量候補として設定され、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルが記憶され、中間補正量候補に対応する引数が、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも１以上の他の補正量候補に対応する引数がさらに決定され、中間補正量候補と他の補正量候補のそれぞれの引数に対応する値が、テーブルから読み出され、その読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算が行なわれることにより、露光期間の中心位置の補正量情報が生成され、その補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域が制御される。
【００３１】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図４は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図４に示した画像処理装置１０は、例えば、ビデオカメラやスチルカメラに備えられる。また、図４に示した画像処理装置１０は、記録時（撮影時）において手振れ（振動）を検出し、これを補正することを前提としており、従って、図４には、主に記録に関わるブロックを示している。
【００３２】
画像処理装置１０の光学撮像部１１は、撮像レンズ（不図示）を含む光学系の装置から構成されている。光学撮像部１１に入射した光は、ＣＣＤ（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［０］乃至［７］が記憶部５７に記憶されたと判断されると、ステップＳ５において、補正量生成部５８において、補正量情報１０８の生成が行われる。ステップＳ５における補正量生成部５８における補正量情報１０８の生成の処理を説明する前に、ステップＳ１乃至Ｓ４までの処理について、図７のタイミングチャートを参照して再度説明する。
【００５８】
図７Ａに示すＶＤパルスは、垂直同期信号であり、ＮＴＳＣ方式の場合、１／６０secであり、ＰＡＬ方式の場合、１／５０secを周期とするパルスである。図４に示した画像処理装置１０は、このＶＤパルスを基づいて駆動される。なお、ここでは、垂直同期信号を例に挙げ、垂直方向に関しての処理を例に挙げて説明するが、水平方向に関する処理も同様に行われ、画像処理装置１０には、上述したように、水平及び垂直の処理をそれぞれ行う２系統の備えられている。
【００５９】
図７Ｂに示したＳＧパルスは、ＣＣＤ１２の吐き出しパルスであり、このＳＧパルスのタイミングでＣＣＤ１２に蓄えられた電荷が吐き出される。図７Ｂ中のαは、ＶＤパルスからのずれ量αを示し、このずれ量αは、画像処理装置１０の構成に依存する固定値である。ずれ量の単位は、マイクロ秒である。
【００６０】
図７Ｃに示した露光期間は、明るさ制御部２２（図４）により決定される値であり、シャッタスピードに依存する。１つの露光期間を露光期間Ｔshutと記述する。露光期間Ｔshutは、タイミング制御データ１０２の１つとしてタイミングジェネレータ１８に供給される情報である。また、ＳＧパルスを基準として露光期間Ｔshutだけ電子シャッタが開放されるため、結果的に、その間だけＣＣＤ１２が露光される。
【００６１】
図７Ｄは、Ａ／Ｄタイミングを表し、Ａ／Ｄ変換部５２（図５）においてアナログ信号の手振れ信号が、デジタル信号に変換されるタイミングを示す。Ａ／Ｄタイミングは、ＶＤパルスを基準とし、１フィールドの長さをＮ分割したタイミングであり、１間隔が間隔Ｔｓである。この場合、１フィールドが８分割された場合を例に示している。この間隔Ｔｓ毎に、手振れセンサ５１において取得された手振れ信号が、Ａ／Ｄ変換部５２によりデジタル信号に変換される（サンプリングされる）。
【００６２】
図７Ｅは、補正量候補Ｓout［ｎ］が出力されるタイミングを示す。間隔Ｔｓごとに取得されたデジタル信号の手振れ信号は、積分フィルタ５６による演算が行われることにより、補正量候補Ｓout［ｎ］として記憶部５７に出力され、記憶される。
【００６３】
このようなタイミングで取得され、記憶部５７に記憶された補正量候補Ｓout［０］乃至［７］が用いられて、補正量生成部５８が補正量情報１０８を生成する処理（図６のステップＳ５の処理）について、図８のフローチャートと、算出する際に用いる所定の関数と補正量候補Ｓout［ｎ］との関係を示した図９を参照して説明する。
【００６４】
ステップＳ２１において、ずれ量α（図７、図９）が取得される。ずれ量αは、予め画像処理装置１０の固有の値としてテーブルなどに記憶されており、その記憶されているずれ量αが取得される。なお、テーブルは、記憶部５７（図５）に記憶させておくようにしても良い。
【００６５】
ステップＳ２２において、補間重心Ｐｃが算出される。補間重心Ｐｃとは、図７Ａに示したＶＤパルスを基準とした値であり、ＶＤパルスから、どれだけ離れた位置に露光期間の中心が位置しているかを示す値であり、単位はマイクロ秒である。このように、ＶＤパルスを基準とするのは、Ａ／Ｄ変換部５２におけるサンプリングのタイミングは、ＶＤパルスを基準としているため、補正量情報１０８の生成に用いる値も、ＶＤパルスを基準とした値を用いるようにするためである。
【００６６】
補間重心Ｐｃは、次式（１）により算出される。
Ｐｃ＝Ｔshut／２―α  ・・・（１）
式（１）においてＴshut／２は、露光期間の半分の期間を示し、αは、ステップＳ２１において取得されたずれ量αである。図７または図９を参照するに、式（１）により補間重心Ｐｃが算出できることがわかる。
【００６７】
ステップＳ２３において、中間補正量候補Ｎcentが算出される。中間補正量候補Ｎcentとは、露光期間の中心の時点に最も近く、それ時点よりも前の時刻に算出された補正量候補Ｓout［ｎ］が、第何番目の候補であるかを示す値である。
【００６８】
中間補正量候補Ｎcentは、次式（２）により算出される。
Ｎcent＝Ｎ―ＩＮＴ［Ｐｃ／Ｔｓ］−１  ・・・（２）
式（２）においてＮは、１ＶＤパルスの間にＡ／Ｄ変換されるサンプリング回数であり、この場合、Ｎ＝８である。Ｔｓは、サンプリングの１間隔である。ＩＮＴ［］は、［］内の計算結果を整数に丸める（小数点以下は切り捨てる）ことにより値が算出されることを示す。ＩＮＴ［Ｐｃ／Ｔｓ］が演算されることにより、補間重心Ｐｃの区間に、何個の補正量候補Ｓoutが存在しているかが算出される。
【００６９】
例えば、間隔Ｔｓが１であり、補間重心Ｐｃが２．５である場合、中間補正量候補Ｎcentは、
Ｎcent＝８−ＩＮＴ［２．５／１］―１＝５
と算出される。図９に示した例では、補正量候補Ｎcentは５と求められ、中間補正量候補Ｎcentの値は、補正量候補Ｓout［５］が相当する。
【００７０】
中間補正量候補Ｎcentに対応する補正量候補Ｓout［ｎ］を、以下の説明においては、適宜、補間候補値Ｓ0と記述し、補間候補値Ｓ0の直前の時刻の補正量候補Ｓoutを補間候補値Ｓ-1とし、補間候補値Ｓ0の直後の時刻の補正量候補Ｓout［ｎ］を補間候補値Ｓ1とし、さらにその後の時刻の補正量候補Ｓout［ｎ］を補間候補値Ｓ2とする。
【００７１】
従来、このように求められた中間補正量候補Ｎcentに対応する補正量候補Ｓoutが、補正量情報１０８として用いられていたが、このような補正量情報１０８は、露光期間の中心位置からずれていることが多く、そのような場合、性能良く手振れの補正を行えないといった問題があった。すなわち、最も性能良く手振れの補正を行うには、露光期間の中心位置で得られた値を用いて算出された補正量情報１０８を用いる必要があった。
【００７２】
そこで、本実施の形態においては、露光期間の中心位置で得られた値が用いられて補正量情報１０８が算出されないような場合にも、露光期間の中心位置で得られた値が用いられて補正量情報１０８が算出された場合と同等の値が得られるように、露光期間の中心位置で得られるであろう補正量情報１０８を推定（補間）することにより求める。この補間について、図８のステップＳ２４以降の処理について説明する前に説明する。
【００７３】
本実施の形態においては、８個の補正量候補Ｓout［０］乃至［７］のうちの１乃至４個の値を用いて、露光期間の中心位置に存在する補正量情報１０８を算出する。補正量情報１０８を算出する際に用いる関数として、補間関数であるＳinc関数を効率的に近似できるCubic関数を用いる。ここでは、Cubic関数を用いたCubic補間について説明するが、他の関数を用いた他の補間方式を用いても、本発明を実現することは可能であり、Cubic関数を用いたCubic補間に本発明が限定されるわけではない。
【００７４】
ここで補間とは、離散的な原信号ｘ（ｎ）に対して所定の関数を用いて、例えば、原信号ｘ（ｎ1）と原信号ｘ（ｎ2）との信号間の値ｘを生成する処理である。補間関数ｈ（ｔ）を用いて連続信号ｘ（ｔ）を生成する場合、次式（３）に基づく畳み込み演算で表すことが可能である。
ｘ（ｔ）＝Σｘ（ｎ）ｈ（ｔ−ｎ）    （ｎは−∞乃至∞）  ・・・（３）
例えば、ｔ＝１／３を式（３）に代入した場合、
ｘ（１／３）＝Σｘ（ｎ）ｈ（１／３−ｎ）
で表され、この式に基づく演算を行うことにより、ｔ＝１／３の時の補間値が求められる。
【００７５】
すなわち、補間関数ｈ（ｔ）の重心を位置Ｔだけずらした状態で畳み込み演算を行えば、離散的な原信号ｘ（ｎ）から所望の位置Ｔの値を生成することが可能となる。本実施の形態において、離散的な原信号ｘ（ｎ）とは、補正量候補Ｓout［ｎ］であり、所望の位置Ｔの値とは、露光期間の中心位置における補正量情報１０８のことである。
【００７６】
Cubic補間は、補間関数ｈ（ｔ）に次式（４）に示す関数を適用したものである。
０≦｜ｔ｜＜１の場合
ｈ（ｔ）＝（a＋２）｜ｔ｜＾３―（ａ＋３）｜ｔ｜＾２＋１
１≦｜ｔ｜＜２の場合
ｈ（ｔ）＝a｜ｔ｜＾３―５ａ｜ｔ｜＾２＋８ａ｜ｔ｜―４ａ
２≦｜ｔ｜の場合
ｈ（ｔ）＝０      ・・・（４）
式（４）においてａは定数であり、補間特性を決定するパラメータである。定数ａは、例えば、手振れ信号の帯域に対する補間として適切であると判断される周波数特性になるような値に設定される。
【００７７】
ｔの絶対値が０以上１未満である場合、（ａ＋２）にｔの絶対値を３乗した値を乗算し、その値から、（ａ＋３）にｔの絶対値を２乗した値を乗算した値を減算し、さらに、その値から、１を減算した値が補間関数ｈ（ｔ）の値とされる。ｔの絶対値が１以上２未満である場合、ａにｔの絶対値を３乗した値を乗算し、その値から、５、ａ、およびｔの絶対値を２乗した値をそれぞれ乗算した値を減算し、さらに、その値に、８、ａ、およびｔの絶対値を乗算した値を加算し、最後に、その値から、４とａを乗算した値を減算した値が補間関数ｈ（ｔ）の値とされる。ｔの絶対値が２以上である場合、補間関数ｈ（ｔ）の値は０とされる。
【００７８】
このような補間関数ｈ（ｔ）（Cubic関数ｈ（ｔ））は、ｔの値を連続的にとることが可能であるため、ｈ（ｔ）の値も連続的にとることが可能であり、どのような状況においても、露光期間の中心位置における補正量情報１０８を生成することが可能である。しかしながら、処理に係るシステムの負荷を軽減させるために、ここでは、補間関数ｈ（ｔ）の値を整数値に正規化した状態で用いることにする。
【００７９】
まず、サンプリングの１間隔である間隔Ｔｓ（図７）をＭステップに分割する。Ｍは、どのような値でも良いが、ここでは、Ｍ＝１０とする。すなわち、間隔Ｔｓを１０に分割する。そして、式（４）で表されるCubic関数ｈ（ｔ）がゼロクロスするｔをＭ（＝１０）とするようなCubic関数のテーブルＣＴ［］を予め算出しておき、画像処理装置１０に記憶させておく。これは、ｔのとり得る値を１digit単位にするためであり、Ｍは、補間処理の“拡大率”などと称される場合がある。以下、拡大率Ｍと記述する。
【００８０】
本実施の形態においては、補間重心位置の設定が、Ｔｓ／Ｍ単位で可能となることに相当する。すなわち、Ｍは、時間軸方向の分解能であり、Ｍが大きい値に設定されるほど、細かく重心位置を設定することが可能となる。拡大率Ｍは、補正性能との兼ね合いで、適切な値が設定される。
【００８１】
一方、テーブルとして用意されるＣＴ［］の値も、Cubic関数ｈ（ｔ）を整数値Ｇで正規化したものとされる。量子化方向の分解能は細かいほど良いが、システムが必要とする補正性能との兼ね合いで適切な値に設定されればよい。テーブルとして用意され、例えば、記憶部５７（図５）に記憶されるのは、例えば、図１０に示したようなテーブルである。図１０に示した例は、拡大率Ｍ＝１０の時を示している。テーブルとしては引数と、その引数に対応する係数が対応付けられたものが記憶される。引数としては、拡大率Ｍ＝１０に設定されている場合、０乃至２０（＝２Ｍ）である。
【００８２】
ところで、式（４）で表されるCubic関数ｈ（ｔ）をグラフにすると、図９に示したようになる。図９に示したグラフ上で、プロットされている点は、図１０に示したテーブルに、値が記憶されているＣＴ［］を示す。図９を参照してわかるように、Cubic関数ｈ（ｔ）は、左右対称の偶関数である。従って、ＣＴ［］の値としては（引数としては）、左側又は右側の、どちらか一方に関する値だけ用意しておけばよい。
【００８３】
仮に、図９に示したグラフに関してのＣＴ［］の値を全て用意した場合、引数としては−２０乃至２０（０を含む）を用意し、それぞれに対応する係数を用意する必要がある。しかしながら、偶関数のため、ＣＴ［−Ｎ］とＣＴ［Ｎ］は、同一の値であるため、これらに対応付けられている係数を用いた演算を行う段階で、何らかの処理を実行するようにすれば、全てのテーブルとして用意しておく必要はなく、テーブルに記憶させる量は半分の量で済み、この場合、引数として０乃至２０と、それぞれに対応する係数をテーブルとして記憶させればよい。
【００８４】
このようなCubic関数ｈ（ｔ）を用い、そのCubic関数ｈ（ｔ）の値を引数と関連付けたテーブルを用いた演算について、図８のフローチャートに戻り説明する。ステップＳ２３までの処理により、中間補正量候補Ｎcentが求められ、この場合、補正量候補Ｓout［５］と求められた。ステップＳ２４において、Offsetが求められる。Offsetとは、図９を参照するに、露光期間の中心位置から、中間補正量候補Ｎcent（この場合、補正量候補Ｓout［５］）までの時間である。
【００８５】
最終的には、テーブルに記憶されている係数を読み出すため、Offsetとしては、露光期間の中心位置から、中間補正量候補Ｎcentまでの時間ではなく、係数を読み出せる情報、すなわち、引数を算出できる情報として算出する必要がある。そのようなことを考慮し、Offsetは、次式（５）により算出される。
Offset＝（（Ｎ―Ｎcent）×Ｔｓ―Ｐｃ）／（Ｔｓ／Ｍ）  ・・・（５）
【００８６】
式（５）において、（（Ｎ―Ｎcent）×Ｔｓ―Ｐｃ）により算出される値の単位はマイクロ秒であり、その値をマイクロ秒を単位とする間隔Ｔｓで除算し、さらに、その値に拡大率Ｍを乗算することにより、式（５）により算出される値の単位は、拡大率Ｍの単位と一致することになる。拡大率Ｍは、上述したように、時間軸方向の分解能を示す値である。
【００８７】
ステップＳ２５においてOffsetリミッタ処理が実行される。ステップＳ２５において行われるOffsetリミッタ処理は、ステップＳ２４において算出されたOffsetの値が拡大率Ｍ（この場合１０）以上になってしまった場合、換言すれば、時間で考えると、Offset、すなわち、露光期間の中心位置から中間補正量候補Ｎcentまでのずれが間隔Ｔｓ以上になってしまった場合に行われる。
【００８８】
図１１Ａは、Offsetが拡大率Ｍと同値になった場合のCubic関数ｈ（ｔ）のグラフと、各補間候補値Ｓ-1乃至Ｓ2の関係を示した図であり、図１１Ｂは、Offsetが拡大率Ｍ以上になった場合のCubic関数ｈ（ｔ）のグラフと、各補間候補値Ｓ-1乃至Ｓ2の関係を示した図である。
【００８９】
図１１Ａに示したような状況の場合、露光期間の中心位置に最も近い補正量候補Ｓout［ｎ］である中間補正量候補Ｎcentとして、補間候補値Ｓ0が算出されているが、本来、補間候補値Ｓ1が算出されなくてはならない。また、図１１Ｂに示したような状況の場合も同様に、中間補正量候補Ｎcentとして、補間候補値Ｓ0が算出されているが、本来、補間候補値Ｓ1が算出されなくてはならない。
【００９０】
このような状況が発生した場合の処理として、ステップＳ２５においてOffsetリミッタ処理が実行される。Offsetリミッタの処理は、まず、中間補正量候補Ｎcentの値を１だけ加算する。この処理は、その時点での補間候補値Ｓ1を、新たな補間候補値Ｓ0に修正する処理である。従って、補間候補値Ｓ-1，Ｓ1，Ｓ2も、順次修正される。
【００９１】
中間補正量候補Ｎcentが修正されたことにともない、ステップＳ２４において算出されたOffsetの値も変更される。ステップＳ２４において算出されたOffsetの値に拡大率Ｍ（この場合１０）だけ減算された値が、新たなOffsetの値とされる。
【００９２】
このようなOffsetリミッタの処理がステップＳ２５において、必要に応じて実行されると、ステップＳ２６に進み、中間補正量候補Ｎcentリミッタ処理が行われる。この中間補正量候補Ｎcentリミッタ処理は、シャッタスピードに依存し、露光期間が変更され、中間補正量候補ＮcentがＮ−１以上になってしまう場合や、中間補正量候補Ｎcentが０以下になってしまう場合に行われる処理である。
【００９３】
図１２は、ＶＤパルス、露光期間、およびＡ／Ｄタイミングの関係を示し、図１２Ａは、中間補正量候補ＮcentがＮ−１以上になってしまう場合を示し、図１２Ｂは、中間補正量候補Ｎcentが０以下になってしまう場合を示している。図１２Ａに示したように、シャッタスピードが速く、露光期間Ｔshutが短くなると、その中間位置までの期間Ｔshut／２も短くなり、結果として中間補正量候補Ｎcentが、次のＶＤパルス（次のフィールド）の時のＡ／Ｄタイミングのときに算出される補正量候補Ｓout［ｎ］、すなわち、次のフィールドに係る補正量候補Ｓout［０］乃至［７］の内のいずれかになってしまう可能性がある。
【００９４】
このような場合、次のフィールドに関わる補正量候補Ｓout［ｎ］を用いて補正量情報１０８を算出することはできないので、該当するフィールドの最後に取得された補正量候補Ｓout［ｎ］が、中間補正量候補Ｎcentに相当する補正量候補Ｓout［ｎ］になるように、すなわちこの場合、中間補正量候補Ｎcentに相当する補正量候補Ｓoutが補正量候補Ｓout［７］となるように、中間補正量候補Ｎcentを、ステップＳ２３で算出された中間補正量候補Ｎcentにかかわらず変更する。
【００９５】
図１２Ｂに示したように、シャッタスピードが遅く、露光期間Ｔshutが長くなると、その中間位置までの期間Ｔshut／２も長くなり、その結果として、中間補正量候補Ｎcentが、前のＶＤパルス（前のフィールド）の時のＡ／Ｄタイミングのときに算出される補正量候補Ｓout［ｎ］になってしまう可能性がある。
【００９６】
このような場合、前のフィールドに関わる補正量候補Ｓout［ｎ］を用いて補正量情報１０８を算出することはできないので、該当するフィールドの最初に取得された補正量候補Ｓout［ｎ］が、中間補正量候補Ｎcentに相当する補正量候補Ｓout［ｎ］になるように、すなわちこの場合、中間補正量候補Ｎcentに相当する補正量候補Ｓout［ｎ］が補正量候補Ｓout［０］となるように、中間補正量候補Ｎcentを、ステップＳ２３で算出された中間補正量候補Ｎcentにかかわらず変更する。
【００９７】
このように、中間補正量候補Ｎcentが１ＶＤパルス内で取得される補正量候補Ｓout［ｎ］になるように、ステップＳ２６の処理が行われる。なお、ステップＳ２６において行われる中間補正量候補Ｎcentリミッタ処理は、中間補正量候補Ｎcentが１ＶＤパルス内で取得される補正量候補Ｓout［ｎ］になるような処理であれば良いので、上述したように、中間補正量候補Ｎcentが補正量候補Ｓout［０］または補正量候補Ｓout［７］に変更されることに限定されるのではなく、補正量候補Ｓout［０］乃至［７］のうちのいずれかに変更されるようにしても良い。
【００９８】
また、ステップＳ２６において中間補正量候補Ｎcentリミッタ処理が実行された場合、Offsetの値もゼロリセットされる。
【００９９】
ステップＳ２６における中間補正量候補Ｎcentリミッタ処理が終了すると、ステップＳ２７に進み、ＣＴテーブル７０の引数の算出が行われる。ＣＴテーブル７０の引数を算出するとは、図９を参照して説明するに、補間候補値Ｓ-1乃至Ｓ2の各候補値が、Cubic関数ｈ（ｔ）上では、どの点に位置するか、すなわち、どの引数に対応する位置に位置するかを算出する処理である。図９では、補間候補値Ｓ-1乃至Ｓ2の各候補値が、Cubic関数ｈ（ｔ）上で位置する位置を、それぞれ、ＣＴ［Ｐ-1］，ＣＴ［Ｐ0］，ＣＴ［Ｐ1］，ＣＴ［Ｐ２］として示している。
【０１００】
ＣＴテーブル７０とは、図１０に示したようなテーブルである。上述したように、予め設計しておいた、整数で正規化されたCubic関数の値は、ＣＴテーブル７０として画像処理装置１０に記憶されている。このＣＴテーブル７０は、Cubic関数が偶関数であることを利用し、全領域の値がテーブルとして用意されているのではなく、その半分の領域の値がテーブルとして用意されている。ここでは、図９に示したCubic関数ｈ（ｔ）のグラフの内、正領域に存在する係数が、ＣＴテーブル７０に記憶されている。
【０１０１】
しかしながら、図９を参照するに、Cubic関数ｈ（ｔ）の負領域に存在する係数、具体的にはＣＴ［Ｐ-1］とＣＴ［Ｐ0］に対応する係数は必要である。そこで、ＣＴテーブル７０から必要な係数を読み出す際の引数は、次式（６）のような演算を行い算出する。以下の説明において、補間候補値Ｓ-1乃至Ｓ2に、それぞれ乗算する係数を読み出す為に必要な引数を、引数Ｐ-1乃至Ｐ2と記述する。
【０１０２】
引数Ｐ-1＝Offsetの値＋Ｍ
引数Ｐ0＝Offsetの値
引数Ｐ1＝Ｍ−Offsetの値
引数Ｐ2＝２Ｍ―Offsetの値    ・・・（６）
【０１０３】
ここで、図１３を参照して式（６）についてさらに説明する。ここでは、例えば、引数ＰOを算出する際を例に挙げて説明する。図１３に示した例では、ＣＴ［Ｐ0］がＣＴ［−５］である場合、すなわち、Offsetの値が５と算出された場合を示している。Offsetの値は、式（５）に基づいて算出されるが、算出される値は、正の整数値である。すなわち、この場合、ＣＴ［Ｐ0］＝ＣＴ［−５］のときのOffsetの値は、５である。
【０１０４】
仮に全ての領域がＣＴテーブル７０に用意されている場合には、引数Ｐ0としては、−５と算出されればよいことになるが、上述したように、ＣＴテーブル７０には、正の領域の係数しか用意されていない。従って、負の引数を対応する正の引数に変換する必要がある。図１３を参照してわかるように、負の領域に存在するＣＴ［−５］に対応する正の領域に存在するＣＴ［Ｐn］は、ＣＴ［５］である。従って、式（６）に示したように、引数Ｐ0は、Offsetの値をそのまま用いられることにより算出される。
【０１０５】
同様な考えにより、負の領域に存在するＣＴ［Ｐ-1］に対応する正の領域に存在するＣＴ［Ｐｎ］の引数は、式（６）に示したように、Offsetの値にＭを加算した値となる。
【０１０６】
図８のフローチャートの説明に戻り、ステップＳ２７において、式（６）に基づき引数Ｐ-1，Ｐ0，Ｐ1，Ｐ2が、それぞれ算出されると、ステップＳ２８に進み、その算出された引数に対応する係数が、ＣＴテーブル７０から読み出される。ステップＳ２９において、ＣＴテーブル７０から読み出された係数を用いた補間演算が行われることにより補間値が算出される。補間演算は、次式（７）に基づき行われる。
【０１０７】
補間値＝ΣＣＴ［Ｐｎ］×Ｓｎ／ΣＣＴ［Ｐｎ］  ・・・（７）
式（７）における分子は、読み出された係数ＣＴ［Ｐｎ］と、それぞれの係数ＣＴ［Ｐｎ］に対応する補間候補値Ｓｎを乗算した総和であり、分母は、読み出された係数ＣＴ［Ｐｎ］の総和である。Cubic関数ｈ（ｔ）は性質上、各係数の総和は１になるが、すなわち、ΣＣＴ［Ｐｎ］は１になるが、上述したように、本実施の形態においては、係数ＣＴ［Ｐｎ］は整数で正規化（最大値がＧ）されているため、畳み込み演算の結果（分子）をΣＣＴ［Ｐｎ］で除算する必要がある。
【０１０８】
図９に示したような状態のときに、式（７）を演算した場合の演算式を次式（８）として示す。
補間値＝（ＣＴ［Ｐ-1］×Ｓ-1＋ＣＴ［Ｐ0］×Ｓ0＋ＣＴ［Ｐ1］×Ｓ1＋ＣＴ［Ｐ2］×Ｓ2）／（ＣＴ［Ｐ-1］＋ＣＴ［Ｐ0］＋ＣＴ［Ｐ1］＋ＣＴ［Ｐ2］）・・・（８）
式（８）において、ＣＴ［Ｐ-1］などは、読み出された係数ＣＴ［Ｐn］を表し、Ｓ-1などは、補間候補値Ｓｎを表す。
【０１０９】
図９に示すように、また、式（８）に示すように、４つの補間候補値Ｓｎが存在している場合はよいが、状況によっては、４つの補間候補値Ｓｎが存在しないような場合がある。図１４を参照して状況を検証する。まず、中間補正量候補Ｎcentとしては、この場合、０乃至７の値をとりうる。
【０１１０】
中間補正量候補Ｎcentが０である場合、補正量候補Ｓout［０］が補間候補値Ｓ0となる。その結果、補正量候補Ｓout［１］が補間候補値Ｓ1、補正量候補Ｓout［２］が補間候補値Ｓ2となる。しかしながら、補間候補値Ｓ-1に相当する補正量候補Ｓout［ｎ］は存在しない。従って、式（７）に基づく演算が行われる場合、補間候補値Ｓ0乃至Ｓ2のみが用いられる。
【０１１１】
ところで、補間候補値Ｓ0と補間候補値Ｓ1を対とし、補間候補値Ｓ-1と補間候補値Ｓ２が対として考えた場合、補間候補値Ｓ0乃至Ｓ2のみで演算を行うのは好ましくない演算結果が算出されることになる。そこで、補間候補値Ｓ2は演算に用いず、補間候補値Ｓ0と補間候補値Ｓ1のみで演算を行うようにする。
【０１１２】
このようなことは、中間補正量候補Ｎcentが６であるときにも同様なことが言える。
【０１１３】
また、中間補正量候補Ｎcentが７の場合、図１４より、補正量候補Ｓout［６］が補間候補値Ｓ-1、補正量候補Ｓout［７］が補間候補値Ｓ0となるが、上述した理由から、補間候補値Ｓ0のみを用いて演算が行われる。
【０１１４】
これらのことをまとめると、式（７）を用いた演算は、サンプリング周波数がＮ回とすると、中間補正量候補Ｎcentが１乃至Ｎ−３である場合、ｎとしてとりうる値は、−１，０，１，２であり、中間補正量候補Ｎcentが０またはＮ−２である場合、ｎとしてとりうる値は、０と１であり、中間補正量候補ＮcentがＮ−１である場合、ｎとしてとりうる値は、０となる。
【０１１５】
なお、中間補正量候補ＮcentがＮ−１であり、ｎとしてとりうる値が、０の場合には、式（７）に基づく演算を実行せず、補間候補値Ｓ0（＝補正量候補Ｓout［７］）をそのまま演算結果としても良い。
【０１１６】
式（７）において、４つの係数（４つの補間候補値Ｓｎ）が取得できる状態のときは、分母は整数値Ｇとなるため、整数値Ｇを適切に設定することにより、式（７）に基づく演算を簡便に行うことが可能となり、実際に演算を実行するマイクロコンピュータの処理上では、簡単なビットシフト演算程度で行うことが可能となる。
【０１１７】
図８のフローチャートの説明に戻り、ステップＳ２９において補間演算が終了すると、ステップＳ３０に進み、ステップＳ２９における演算結果が、補正量情報１０８として、制御部１６に出力される。このような処理が１フィールド毎に行われることにより、補正量情報１０８が生成される。
【０１１８】
上述したように、露光期間の中心位置の手振れ量を補間して求めることにより、より精度良く加えられた振動の影響を低減させることが可能となる。本発明を適用することにより、シャッタスピードによらず常に露光期間の中心位置に合う補正量情報１０８を生成することができるので、シャッタスピードの違いにより発生していた性能悪化やバラつきを抑えることが可能となる。
【０１１９】
また、ＮＴＳＣやＰＡＬといった放送方式の違いにより発生していた性能悪化やバラつきも抑えることが可能となる。さらに、垂直方向と水平方向の、異なる方向により発生する性能悪化やバラつきも抑えることが可能となる。
【０１２０】
上述した実施の形態においては、垂直方向の振動を処理する系と、水平方向の振動を処理する系が、それぞれ別に設けられている場合を例に挙げて説明したが、図３を参照して説明したように、８回のサンプリングのうち、４回を垂直方向、４回を水平方向に割り当てて処理するようにしても良い。そのような場合でも、本発明を適用することは可能である。本発明を適用することにより、垂直方向、水平方向、共に露光期間の中心位置で求められる補正量を推定することができ、性能良く、振動に対する処理を行うことが可能となる。
【０１２１】
Ａ／Ｄタイミングのサンプリング周波数を上げることにより解決するようにしていた問題を、サンプリング周波数を上げることなく解決することが可能となる。本発明を適用すれば、サンプリング周波数を上げなくて良いので、振動の影響を低減させるためにシステムが行う処理を低減させることができ、システムに係る負荷を低減させることが可能となる。
【０１２２】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１２３】
図１５は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのＣＰＵ（Central Processing Unit）２１１は、ＲＯＭ（Read Only Memory）２１２に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）２１３には、ＣＰＵ２１１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース２１５は、キーボードやマウスから構成される入力部２１６が接続され、入力部２１６に入力された信号をＣＰＵ２１１に出力する。また、入出力インタフェース２１５には、ディスプレイやスピーカなどから構成される出力部２１７も接続されている。
【０１２４】
さらに、入出力インタフェース２１５には、ハードディスクなどから構成される記憶部２１８、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部２１９も接続されている。ドライブ２２０は、磁気ディスク２３１、光ディスク２３２、光磁気ディスク２３３、半導体メモリ２３４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０１２５】
記録媒体は、図１５に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２３１（フレキシブルディスクを含む）、光ディスク２３２（CD-ROM（Compact Disc-Read Only Memory），DVD（Digital Versatile Disc）を含む）、光磁気ディスク２３３（MD（Mini-Disc）（登録商標）を含む）、若しくは半導体メモリ２３４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているＲＯＭ２１２や記憶部２１８が含まれるハードディスクなどで構成される。
【０１２６】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２７】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１２８】
【発明の効果】
以上のように本発明によれば、手振れなどの加えられた振動による影響を低減させることができる。
【０１２９】
また、本発明によれば、露光期間の中央のタイミングで得られる情報を基に、手振れなどの加えられた振動による影響を低減するための情報を常に生成することでき、最適な補正を行うことができるとともに、その情報の生成にかかるシステムの負荷を軽減させることができる。
【図面の簡単な説明】
【図１】加えられた振動の影響を低減する方法について説明する図である。
【図２】補正量を算出するタイミングについて説明する図である。
【図３】補正量を算出するタイミングについて説明する図である。
【図４】本発明を適用した画像処理装置１０の一実施の形態の構成を示す図である。
【図５】手振れ補正部２１の内部構成例を示す図である。
【図６】補正量情報の生成処理について説明するフローチャートである。
【図７】補正量を算出するタイミングについて説明する図である。
【図８】図６に示したフローチャートのステップＳ５の詳細な処理を説明するフローチャートである。
【図９】  Cubic関数ｈ（ｔ）と補正量との関係を説明する図である。
【図１０】ＣＴテーブル７０の一例を示す図である。
【図１１】  Offsetリミッタ処理について説明する図である。
【図１２】中間補正量候補Ｎcentリミッタ処理について説明する図である。
【図１３】ＣＴテーブル７０の引数の算出について説明する図である。
【図１４】補間演算について説明する図である。
【図１５】媒体を説明する図である。
【符号の説明】
１０  画像処理装置，  １１  光学撮像部，  １２  ＣＣＤ，  １３  アナログ信号処理部，  １４  デジタル信号処理部，  １５  メモリ，  １６  制御部，  １７  レンズ駆動部，  １８  タイミングジェネレータ，  １９  インタフェース制御部，  ２０  ユーザインタフェース，  ２１  手振れ補正部，  ２２明るさ制御部，  ５１  手振れセンサ，  ５２  Ａ／Ｄ変換部，  ５３  高域通過フィルタ，  ５４  センサゲイン調整部，  ５５  ズームゲイン調整部，  ５６  積分フィルタ，  ５７  記憶部，  ５８  補正量生成部
【図１】
0003865125.tif 000002
【図２】
0003865125.tif 000003
【図３】
0003865125.tif 000004
【図４】
0003865125.tif 000005
【図５】
0003865125.tif 000006
【図６】
0003865125.tif 000007
【図７】
0003865125.tif 000008
【図８】
0003865125.tif 000009
【図９】
0003865125.tif 000010
【図１０】
0003865125.tif 000011
【図１１】
0003865125.tif 000012
【図１２】
0003865125.tif 000013
【図１３】
0003865125.tif 000014
【図１４】
0003865125.tif 000015
【図１５】
0003865125.tif 000016