JP3865125B2 - 画像処理装置および方法、記録媒体、並びにプログラム - Google Patents
画像処理装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP3865125B2 JP3865125B2 JP2002031659A JP2002031659A JP3865125B2 JP 3865125 B2 JP3865125 B2 JP 3865125B2 JP 2002031659 A JP2002031659 A JP 2002031659A JP 2002031659 A JP2002031659 A JP 2002031659A JP 3865125 B2 JP3865125 B2 JP 3865125B2
- Authority
- JP
- Japan
- Prior art keywords
- correction amount
- candidate
- value
- amount candidate
- image
- 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
Landscapes
- Adjustment Of Camera Lenses (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
Description
【発明の属する技術分野】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、ユーザの手振れなどに起因する画像のずれをより精度良く補正し、ブレのない画像をユーザに提供するために用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
動画像や静止画像を撮像し、記録するビデオカメラやスチルカメラが普及し、さまざまな場面で利用されている。家庭用のビデオカメラやスチルカメラは、小型化、軽量化、高性能化している。小型化や軽量化が進むと、使い勝手は良くなるが、ユーザの手振れなどが発生しやすくなるといった問題があった。また、高性能化が進み、ズームなどの機能が充実すると、ズームしたときには、ズームしないときに比べて手振れの影響が大きく出てしまうといった問題があった。
【0003】
そのような問題を解決する方法として、例えば、図1Aに示すように、撮像する撮像領域1を、ディスクなどの記録媒体に実際に撮像された画像として記録する画像の記録領域2よりも大きい領域として処理する方法がある。この方法では、撮像領域1に撮像されている画像から、記録領域2内の画像を切り出し、その切り出された画像を記録する。撮像領域1からどの領域を記録領域2として切り出すかは、検出された手振れの大きさを考慮した補正量を算出し、その補正量を用いて行われる。
【0004】
時刻tにおいて切り出された記録領域2が図1Aに示したような状態のとき、次の時刻t+1において、図1Bに示すように、垂直方向の補正量3−1と水平方向の補正量3−2が算出されると、その補正量3−1,3−2だけ移動された領域が、時刻t+1での記録領域2として切り出される。補正量3−1,3−2は、露光期間の中心の時刻に得られたデータが用いられて算出される。
【0005】
補正値の算出について図2と図3を参照して説明する。ビデオカメラなどには、手振れを検出するための、例えば、角速度センサが設けられている。その角速度センサからの手振れ信号は連続的に出力されている。連続的に出力されている信号は、例えば、VDパルスの1パルスのうちに、8回のタイミングでサンプリングされる。図2Cに示したように、間隔Ts毎にセンサから得られる信号がサンプリング(A/D変換)されることになる。図2Dに示したように、サンプリングされた信号を用いた演算が行なわれることにより、間隔Ts毎に、手振れによる影響を低減させるための補正量が算出される。
【0006】
算出された補正量のうち、露光期間の中心に近いタイミングで得られた補正量のみが画像の切り出しに用いられる補正量とされる。これは、露光期間中も手振れ信号は、刻々と変化しているため理想的なサンプリングポイントは、露光期間の中でも刻々と異なってしまい、そのような状態の時、全露光期間にわたって、各ポイントからの誤差が最小となるのは、露光期間の中心位置での補正量であるということに基づく。
【0007】
露光期間は、図2Bに示すように、シャッタースピードにより異なるため、その中心位置も異なってくる。シャッタスピード1のときの露光中心1は、図2Dにおいてちょうど第5番目の補正量が得られる位置にあるため、その第5番目の補正量が用いられる。
【0008】
シャッタスピード2の露光中心2の時に得られる補正量は、図2Dに示したように、タイミング的に存在しない。そこで、露光中心2に最も近い時刻に得られた補正量、この場合、第5番目の補正量が用いられる。
【0009】
このような処理は、垂直方向の手振れを検出するセンサから得られる信号と、水平方向の手振れを検出するセンサから得られる信号とで、別々に処理が行われ、垂直方向用の補正量(図1の補正量3−2)と水平方向用の補正量(図1の補正量3−2)が、それぞれ算出される。しかしながら、垂直方向と水平方向の補正量をそれぞれ算出するのは、ビデオカメラ内の演算処理を行う部分にかかる付加が大きく、また、そのビデオカメラに備えるべき充分な処理能力を、補正量の算出のためだけに上げることはコスト面などの問題から実現できないといった限界から、手振れ信号から取得するサンプリング数を落とすことが考えられる。
【0010】
図3は、そのようにサンプリング数を落とした場合の補正量の算出について説明する図である。手振れ信号に対するサンプリングは、垂直方向の手振れを検出するセンサからの信号に対してと、水平方向の手振れを検出するセンサからの信号に対してとで、交互に行われる。1VDパルスの1パルスの期間に8回サンプリングが行われるが、垂直方向に関してはそのうちの4回、水平方向に関してはそのうちの4回が割り当てられているため、サンプリング数は、図2に示した場合に比べて実質半分の数にされている。
【0011】
図3に示した場合、シャッタスピード3の露光中心3に完全に合うタイミングで算出される補正量はない。そのため、露光中心3の前後のタイミングで得られた第5番目の補正量が水平方向の補正量として用いられ、第6番目の補正量が垂直方向の補正量として用いられる。
【0012】
このように、1フィールドあたりN回(図2または図3に示して例では8回)の定められたタイミング(A/Dタイミング)で、センサから得られる手振れ信号がサンプリングされ、このサンプリングの結果得られた信号が用いられた演算が行われたN個の演算結果から、シャッタスピードの露光期間の中央の時刻に最も近い時刻に取得された演算結果が、そのフィールドの補正量として用いられる。
【0013】
【発明が解決しようとする課題】
上述したように、手振れを補正するための補正量は、シャッタスピードに応じた露光期間の中心のタイミングに得られるものが用いられるが、必ずしも、露光期間の中心のタイミング(以下、適宜、露光期間の中心位置と記述する)で得られるものが用いられるとは限らなかった。
【0014】
図2に示した例において、シャッタスピード2の時に用いられる補正量は、露光中心2より時間Taだけ前の時刻に取得されたものである。このずれとしての時間Taは、最大、Ts/2だけの時間となってしまう。また、図3に示した例において、シャッタスピード3の時に用いられる水平方向の補正量は、露光中心3より時間Taだけ前の時刻に取得されたものであり、垂直方向の補正量は、露光中心3より時間Tbだけ後の時刻に取得されたものである。
【0015】
このように、センサから得られる信号を離散的に扱うために、シャッタスピードで露光期間の中心からずれている時に取得された補正量を用いなくてはならないといった問題があった。このずれは、サンプリング周波数、タイミング、およびシャッタスピードに依存し、ずれが大きくなることは、画像にぼけが生じるなど性能の悪化をまねいてしまう。
【0016】
ずれを生じさせないようにするには、サンプリング周波数を上げることが考えられるが、サンプリング周波数を上げると、処理量が多くなり、システムに係る負荷が大きくなってしまうという問題があった。また、システムに係る負荷が大きくなるという問題を解決し、サンプリング周波数を2倍または4倍程度にあげたとしても、上記した問題を解決するにいたらないといった問題があった。
【0017】
また、放送方式の違い、例えば、NTSC(National Television System Committee)方式とPAL(Phase Alternating Line)方式とでは、1フィールドあたりの走査時間(図2や図3ではVDパルスに関わる)が異なるため、同じシャッタスピードでも、露光期間の中心からのずれ量が異なり、補正量の信頼性が異なってくるといった問題があった。
【0018】
図3に示したように、水平方向と垂直方向を交互にサンプリングして補正量を算出するような場合、それぞれ露光期間の中心からのずれがあり、また、そのずれ量が異なるため、水平方向と垂直方向とで、手振れの補正の精度が異なってしまうといった問題があった。
【0019】
このような問題は、主に、補正量が算出されるタイミングが、露光期間の中心からずれているために生じるため、できる限り、露光期間の中心のタイミングで得られる手振れ信号から補正量が算出されるような方法が提案されている。例えば、センサなどから得られる手振れ信号に対して露光期間の中心のタイミングを調整してサンプリングを行うようにする方法(露光期間に対応してサンプリングタイミングを変化させる方法)が提案されているが、このような方法の場合、システムが複雑化するだけでなく、サンプリング周波数がVDパルスの周波数まで落ちることになるため、手振れ信号の帯域で既に位相が回ってしまい、何らかの補償をかけないと性能が悪化してしまうといった問題があった。
【0020】
また他の方法としては、露光期間の中心位置と、複数のサンプリング信号との関係を予め記憶しておき、その記憶されている関係から、最もそのときの状況に適しているサンプリング信号を抽出し、そのサンプリング信号に基づくサンプリングを行うことにより補正量を算出する方法が提案されているが、この方法でも、離散的にサンプリングしているために、上述したような問題を抑制しきれないといった問題があった。
【0021】
本発明はこのような状況に鑑みてなされたものであり、サンプリング周波数を上げることなく、システムの負荷を大きくすることなく、露光期間の中心位置で得られた補正量を算出することを課題とする。
【0022】
【課題を解決するための手段】
以上の課題を解決すべく、本発明を適用した画像処理装置は、振動を検出し、振動検出情報を出力する出力手段と、出力手段により出力された振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持手段と、保持手段により保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定手段と、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルを記憶する記憶手段と、設定手段により設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の補正量候補に対応する引数をさらに決定する決定手段と、決定手段により決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶手段により記憶されているテーブルから読み出す読み出し手段と、読み出し手段により読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成手段と、生成手段により生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段とを含むことを特徴とする。
【0024】
前記設定手段は、露光期間の中央の時刻が、予め設定された所定の期間外の時刻である場合、設定された期間内の両端のタイミングのサンプリングに基づく補正量候補の一方を中間補正量候補として設定するようにすることができる。
【0025】
前記所定の関数は、偶関数であり、前記記憶手段は、偶関数の正領域または負領域のどちらか一方に属する値のみが、引数と関連付けられたテーブルを保持するようにすることができる。
【0027】
本発明を適用した画像処理方法は、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを含むことを特徴とする。
【0028】
本発明を適用した記録媒体のプログラムは、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを含むことを特徴とする。
【0029】
本発明を適用したプログラムは、振動に関する振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、保持ステップの処理で保持された補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補を中間補正量候補として設定する設定ステップと、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、設定ステップの処理で設定された中間補正量候補に対応する引数を、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の補正量候補に対応する引数をさらに決定する決定ステップと、決定ステップの処理で決定された中間補正量候補と他の補正量候補のそれぞれの引数に対応する値を、記憶制御ステップの処理で記憶が制御されたテーブルから読み出す読み出しステップと、読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、生成ステップの処理で生成された補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップとを実行させることを特徴とする。
【0030】
本発明を適用した画像処理装置および方法、並びにプログラムにおいては、振動に関する振動検出情報サンプリングした値に基づいて算出される値が補正量候補とされ、その補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく振動検出情報に対応する補正量候補が中間補正量候補として設定され、引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルが記憶され、中間補正量候補に対応する引数が、中間補正量候補が対応するサンプリングの時刻と露光期間の中央の時刻との関係から決定すると共に、中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の補正量候補に対応する引数がさらに決定され、中間補正量候補と他の補正量候補のそれぞれの引数に対応する値が、テーブルから読み出され、その読み出された複数の値と、それぞれの値に対応する中間補正量候補または他の補正量候補を用いた補間演算が行なわれることにより、露光期間の中心位置の補正量情報が生成され、その補正量情報に基づいて、撮像素子により撮像された画像から切り出す画像の領域が制御される。
【0031】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図4は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図4に示した画像処理装置10は、例えば、ビデオカメラやスチルカメラに備えられる。また、図4に示した画像処理装置10は、記録時(撮影時)において手振れ(振動)を検出し、これを補正することを前提としており、従って、図4には、主に記録に関わるブロックを示している。
【0032】
画像処理装置10の光学撮像部11は、撮像レンズ(不図示)を含む光学系の装置から構成されている。光学撮像部11に入射した光は、CCD(Charge Coupled Device)12により光電変換され、電気信号としてアナログ信号処理部13に出力される。
【0033】
アナログ信号処理部13は、入力された電気信号(アナログ信号)を、デジタル変換するためにサンプリングして保持したり(Sample and Hold)、入力信号の振幅の変動を検出して、出力信号の振幅を一定に保つために増幅の利得を制御するAGC(Automatic Gain Control)を行ったり、そのような処理が行われたアナログ信号をデジタル信号に変換したりといった処理を行う。
【0034】
アナログ信号処理部13により処理され、出力されたデジタル信号は、デジタル信号処理部14に入力される。デジタル信号処理部14にはメモリ15が備えられており、入力されたデジタル信号は、メモリ15に記憶される。デジタル信号処理部14は、メモリ15に記憶したデジタル信号に対して、画像の切り出しや圧縮などの処理を行う。デジタル信号処理部14による処理が終了したデジタル信号は、後段の処理に出力される。後段の処理とは、例えば、ディスク状の記録媒体にデジタル信号を記録するなどである。
【0035】
制御部16は、画像処理装置10内の各部を制御する。制御部16は、レンズ駆動部17にレンズ制御データ101を出力する。レンズ制御データ101は、光学撮像部11に含まれる撮像用レンズを駆動させたり、絞りなどを調節するためのデータである。制御部16は、タイミングジェネレータ18に対してタイミング制御データ102を出力する。タイミング制御データ102は、CCD12により光電変換された電気信号をサンプリングし、アナログ信号処理部13に出力するタイミングを指示するデータである。
【0036】
制御部16は、デジタル信号処理部14に対してカメラ画処理用データ103やメモリ切り出し用制御データ104を出力し、デジタル信号処理部14から検波データ105を入力する。カメラ画処理用データ103は、デジタル信号にされた撮像された画像の処理に用いられるデータであり、例えば、ホワイトバランス調整値などのデータである。メモリ切り出し用制御データ104は、撮像された画像から、どの領域の画像を記録させる画像として切り出すかを指示するデータである。検波データ105は、デジタル信号処理部14に入力された画像の状態に関するデータである。
【0037】
制御部16は、インタフェース制御部19にカメラ制御情報106を出力し、インタフェース制御部19からユーザ指示情報107を入力する。カメラ制御情報106は、被写体までの距離、F値、シャッタスピード、倍率などの情報である。ユーザ指示情報107は、ユーザが指示した撮影モードなどに関する情報である。
【0038】
ユーザインタフェース20は、ユーザが画像処理装置10に対して指示を出す、例えば、撮影モードを設定するなどの操作を行うためのボタンや、ユーザに対して情報を提供(表示)するLCD(Liquid Crystal Display)などから構成されており、ボタンが操作されて指示された情報は、ユーザ指示情報107として制御部16に供給され、制御部16からのカメラ制御情報106に基づいた情報は、LCDに表示される。
【0039】
手振れ補正部21は、手振れなどにより画像処理装置10に加えられた振動を検知し、検知した振動の大きさに対応して、記録される画像に振動の影響を抑制するための補正量情報108を制御部16に出力する。手振れ補正部21は、明るさ制御部22から供給される明るさ情報109も利用して補正量情報108を生成する。
【0040】
図5は、手振れ補正部21の内部構成例を示す図である。手振れセンサ51は、角速度センサなどにより構成され、画像処理装置10に加えられた振動を検出するセンサである。図5には1つの手振れセンサ51しか示さないが、垂直方向の振動を検出するセンサと、水平方向の振動を検出するセンサとは別々に設けられており、図5に示した手振れ補正部21も、それぞれのセンサ毎、すなわち、画像処理装置10には2つの手振れ補正部21が設けられている。ここでは、垂直方向または水平方向に加えられた振動を検出する1系統を例に挙げて説明する。
【0041】
勿論、垂直方向の振動を処理する手振れ補正部21と水平方向の振動を処理する手振れ補正部21で、共用できる部分は共用し、必ずしも各部分を2つ備える必要はない。また、本実施の形態において、手振れセンサ51により処理される振動は、ユーザの手振れによる振動は勿論、画像処理装置10が車載された際に加えられた振動なども含む。
【0042】
手振れセンサ51により検出された振動に関する信号は、A/D変換部52に出力される。A/D変換部52は、入力されたアナログ信号をデジタル信号に変換して高域通過フィルタ53に出力する。A/D変換部52には、必要に応じて、フィルタや増幅部を設けても良い。フィルタとしては、例えば、カットオフ周波数が、手振れセンサ51から出力される手振れ信号の帯域に設定してある帯域通過フィルタなどである。また増幅部は、手振れセンサ51からの信号が微弱であり、後段の処理で処理できる強度まで上げる必要がある場合に備えられる(A/D変換の分解能に合わせる為に必要な場合に備えられる)。
【0043】
高域通過フィルタ53は、入力されたデジタル信号に対して、入力信号に含まれる直流付近の成分(振動には関係のない原因により含まれる成分)を除去するために設けられている。高域通過フィルタ53のカットオフ周波数は、振動に関する信号の成分に対して影響を及ぼすことがない程度の値に設定される。高域通過フィルタ53から出力された信号は、センサゲイン調整部54に入力される。センサゲイン調整部54は、個々の手振れセンサ51やA/D変換部52の性能のバラツキを吸収(補正)するために設けられている。
【0044】
センサゲイン調整部54は、基本的な処理として、入力された信号に対して一定のゲインをかける処理を行う。ゲインは、例えば、画像処理装置10が出荷時に生産ラインで行われる調整により決定(設定)される。これは、同一の手振れセンサ51を用いたとしても、個々の手振れセンサ51で、多少のずれはあるため、予めどの画像処理装置10に対しても同一の値を設定するよりも、生産ライン上で個々の画像処理装置10において調整を行い、センサの感度に応じた値に設定した方が好ましいからである。
【0045】
センサゲイン調整部54からの出力は、ズームゲイン調整部55に出力される。光学ズームのW端(低倍率側のズーム)に比べてT端(高倍率側のズーム)ほど大きな補正値が必要であるが、手振れセンサ51から出力される信号は、ズームに依存しない信号のため、ズームゲイン調整部55は、倍率に応じた補正値を乗算し、倍率に適した値を得られるような調整を行う。ズームゲイン調整部55を設けることにより、全ての倍率(全ズーム領域)において、常に適切な補正値を算出することが可能となる。
【0046】
ズームゲイン調整部55から出力された信号は、積分フィルタ56に出力される。例えば、手振れセンサ51が角速度センサで構成される場合、そのセンサから出力される信号は角速度であり、その角速度から、加えられた力(振動)の大きさを求める処理を実行する部分が、積分フィルタ56である。
【0047】
積分フィルタ56からの出力(ここでは、補正量候補Soutとする)は、記憶部57に記憶される。記憶部57は、RAM(Random Access Memory)などの記憶装置から構成される。本実施の形態においては、手振れセンサ51から出力される手振れ信号に対し、1フィールドあたり、8回のサンプリングを実行するとして説明する。1フィールドあたり8回のサンプリングが行われる場合、記憶部57は、積分フィルタ56から出力された8つの補正量候補Sout[0]乃至[7]が少なくとも記憶できる容量を持つ。補正量候補Sout[0]乃至[6]は、Sout[7]より前の時刻で積分フィルタ56より出力された信号である。
【0048】
補正量生成部58は、記憶部57に記憶されている補正量候補Sout[0]乃至[7]の値と、明るさ制御部19から供給される明るさ情報109を用いて、画像処理装置10に加えられた振動の影響を除去するための最終的な補正量を生成する。補正量生成部58における補正量の生成の処理については後述する。生成された補正量に関する補正量情報108は、制御部16に供給される。
【0049】
制御部16に供給される補正量情報108は、垂直方向に関する補正量情報108−1と水平方向に関する補正量情報108−2がある。垂直方向に関する補正量108−1は、タイミング制御データ102としてタイミングジェネレータ18に供給され、水平方向に関する補正量108−2は、メモリ切り出し用制御データ104としてデジタル信号処理部14に供給される。
【0050】
タイミングジェネレータ18は、供給されたタイミング制御データ102に基づき、CCD12からアナログ信号処理部13への信号の出力のタイミングを決定する。すなわち、タイミングジェネレータ18は、垂直方向に関する補正量情報108−1(タイミング制御データ102)に基づいて、フィールド毎に補正した垂直方向のリセット信号(Vリセット信号)をCCD12に供給する。Vリセット信号がCCD12に供給されることにより、CCD12からは、垂直方向の画像の読み出し開始位置が補正され、結果として垂直方向に関して、画像処理装置10に加えられた振動の影響が抑制された画像の信号が、デジタル信号処理部14に出力される。
【0051】
デジタル信号処理部14には、メモリ15が備えられているが、そのメモリ15に記憶されている信号に基づく画像は、垂直方向に関しては加えられた振動に関する補正は既になされている画像である。デジタル信号処理部14は、供給されたメモリ切り出し用制御データ104に基づき、メモリ15に記憶されている画像のデータの読み出しの開始のタイミングを決定する。すなわち、デジタル信号処理部14は、水平方向に関する補正量情報108−2(メモリ切り出し用制御データ104)に基づいて、フィールド毎に補正した水平方向の読み出し開始位置を決定、制御する。水平方向の読み出しの開始位置が制御されることにより、結果として水平方向に関しても、画像処理装置10に加えられた振動の影響が抑えられた画像の信号が後段の処理に出力されることになる。
【0052】
このように垂直方向の振動の影響は、CCD12からの信号の読み出し位置を変更することにより低減させ、水平方向の振動の影響は、メモリ15に記憶されている信号の読み出し位置を変更させることにより低減する。
【0053】
次に、手振れ補正部21における補正量情報108の生成の処理について、図6のフローチャートを参照して説明する。図6のフローチャートの処理は、1フィールド毎に行われる。以下の説明においては、手振れセンサ51から出力される手振れ信号のサンプリングは、1VDパルス中に8回行われる場合を例に挙げて説明する。
【0054】
ステップS1において、手振れ補正部21の手振れセンサ51により、画像処理装置10に加えられた振動が検出され、手振れ信号が取得される。ステップS2において、取得された信号のうち、サンプリング周波数毎にサンプリングが実行され、その信号が、A/D変換部52によりデジタル信号に変換される。
【0055】
ステップS3において、デジタル化された信号は、高域通過フィルタ53、センサゲイン調整部54、およびズームゲイン調整部55の各部における処理が施され、積分フィルタ56に出力され、積分フィルタ56における処理が施されることにより、その時点での手振れを補正するための補正量である補正量候補Sout[n]が生成される。生成された補正量候補Sout[n]は、記憶部57に記憶される。
【0056】
ステップS4において、8個の補正量候補Sout[0]乃至[7]が記憶部57に記憶されたか否かが判断され、記憶されていないと判断された場合、ステップS1に戻り、それ以降の処理が繰り返される。すなわち、1VDパルス内に、予め設定された回数だけサンプリングが行われ、記憶部57に最終的な補正量情報108を算出する際に用いられる補正量候補Sout[0]乃至[7]が記憶されるまで、ステップS1乃至S4の処理が繰り返される。
【0057】
補正量情報108を算出するのに必要な補正量候補Sout[0]乃至[7]が記憶部57に記憶されたと判断されると、ステップS5において、補正量生成部58において、補正量情報108の生成が行われる。ステップS5における補正量生成部58における補正量情報108の生成の処理を説明する前に、ステップS1乃至S4までの処理について、図7のタイミングチャートを参照して再度説明する。
【0058】
図7Aに示すVDパルスは、垂直同期信号であり、NTSC方式の場合、1/60secであり、PAL方式の場合、1/50secを周期とするパルスである。図4に示した画像処理装置10は、このVDパルスを基づいて駆動される。なお、ここでは、垂直同期信号を例に挙げ、垂直方向に関しての処理を例に挙げて説明するが、水平方向に関する処理も同様に行われ、画像処理装置10には、上述したように、水平及び垂直の処理をそれぞれ行う2系統の備えられている。
【0059】
図7Bに示したSGパルスは、CCD12の吐き出しパルスであり、このSGパルスのタイミングでCCD12に蓄えられた電荷が吐き出される。図7B中のαは、VDパルスからのずれ量αを示し、このずれ量αは、画像処理装置10の構成に依存する固定値である。ずれ量の単位は、マイクロ秒である。
【0060】
図7Cに示した露光期間は、明るさ制御部22(図4)により決定される値であり、シャッタスピードに依存する。1つの露光期間を露光期間Tshutと記述する。露光期間Tshutは、タイミング制御データ102の1つとしてタイミングジェネレータ18に供給される情報である。また、SGパルスを基準として露光期間Tshutだけ電子シャッタが開放されるため、結果的に、その間だけCCD12が露光される。
【0061】
図7Dは、A/Dタイミングを表し、A/D変換部52(図5)においてアナログ信号の手振れ信号が、デジタル信号に変換されるタイミングを示す。A/Dタイミングは、VDパルスを基準とし、1フィールドの長さをN分割したタイミングであり、1間隔が間隔Tsである。この場合、1フィールドが8分割された場合を例に示している。この間隔Ts毎に、手振れセンサ51において取得された手振れ信号が、A/D変換部52によりデジタル信号に変換される(サンプリングされる)。
【0062】
図7Eは、補正量候補Sout[n]が出力されるタイミングを示す。間隔Tsごとに取得されたデジタル信号の手振れ信号は、積分フィルタ56による演算が行われることにより、補正量候補Sout[n]として記憶部57に出力され、記憶される。
【0063】
このようなタイミングで取得され、記憶部57に記憶された補正量候補Sout[0]乃至[7]が用いられて、補正量生成部58が補正量情報108を生成する処理(図6のステップS5の処理)について、図8のフローチャートと、算出する際に用いる所定の関数と補正量候補Sout[n]との関係を示した図9を参照して説明する。
【0064】
ステップS21において、ずれ量α(図7、図9)が取得される。ずれ量αは、予め画像処理装置10の固有の値としてテーブルなどに記憶されており、その記憶されているずれ量αが取得される。なお、テーブルは、記憶部57(図5)に記憶させておくようにしても良い。
【0065】
ステップS22において、補間重心Pcが算出される。補間重心Pcとは、図7Aに示したVDパルスを基準とした値であり、VDパルスから、どれだけ離れた位置に露光期間の中心が位置しているかを示す値であり、単位はマイクロ秒である。このように、VDパルスを基準とするのは、A/D変換部52におけるサンプリングのタイミングは、VDパルスを基準としているため、補正量情報108の生成に用いる値も、VDパルスを基準とした値を用いるようにするためである。
【0066】
補間重心Pcは、次式(1)により算出される。
Pc=Tshut/2―α ・・・(1)
式(1)においてTshut/2は、露光期間の半分の期間を示し、αは、ステップS21において取得されたずれ量αである。図7または図9を参照するに、式(1)により補間重心Pcが算出できることがわかる。
【0067】
ステップS23において、中間補正量候補Ncentが算出される。中間補正量候補Ncentとは、露光期間の中心の時点に最も近く、それ時点よりも前の時刻に算出された補正量候補Sout[n]が、第何番目の候補であるかを示す値である。
【0068】
中間補正量候補Ncentは、次式(2)により算出される。
Ncent=N―INT[Pc/Ts]−1 ・・・(2)
式(2)においてNは、1VDパルスの間にA/D変換されるサンプリング回数であり、この場合、N=8である。Tsは、サンプリングの1間隔である。INT[]は、[]内の計算結果を整数に丸める(小数点以下は切り捨てる)ことにより値が算出されることを示す。INT[Pc/Ts]が演算されることにより、補間重心Pcの区間に、何個の補正量候補Soutが存在しているかが算出される。
【0069】
例えば、間隔Tsが1であり、補間重心Pcが2.5である場合、中間補正量候補Ncentは、
Ncent=8−INT[2.5/1]―1=5
と算出される。図9に示した例では、補正量候補Ncentは5と求められ、中間補正量候補Ncentの値は、補正量候補Sout[5]が相当する。
【0070】
中間補正量候補Ncentに対応する補正量候補Sout[n]を、以下の説明においては、適宜、補間候補値S0と記述し、補間候補値S0の直前の時刻の補正量候補Soutを補間候補値S-1とし、補間候補値S0の直後の時刻の補正量候補Sout[n]を補間候補値S1とし、さらにその後の時刻の補正量候補Sout[n]を補間候補値S2とする。
【0071】
従来、このように求められた中間補正量候補Ncentに対応する補正量候補Soutが、補正量情報108として用いられていたが、このような補正量情報108は、露光期間の中心位置からずれていることが多く、そのような場合、性能良く手振れの補正を行えないといった問題があった。すなわち、最も性能良く手振れの補正を行うには、露光期間の中心位置で得られた値を用いて算出された補正量情報108を用いる必要があった。
【0072】
そこで、本実施の形態においては、露光期間の中心位置で得られた値が用いられて補正量情報108が算出されないような場合にも、露光期間の中心位置で得られた値が用いられて補正量情報108が算出された場合と同等の値が得られるように、露光期間の中心位置で得られるであろう補正量情報108を推定(補間)することにより求める。この補間について、図8のステップS24以降の処理について説明する前に説明する。
【0073】
本実施の形態においては、8個の補正量候補Sout[0]乃至[7]のうちの1乃至4個の値を用いて、露光期間の中心位置に存在する補正量情報108を算出する。補正量情報108を算出する際に用いる関数として、補間関数であるSinc関数を効率的に近似できるCubic関数を用いる。ここでは、Cubic関数を用いたCubic補間について説明するが、他の関数を用いた他の補間方式を用いても、本発明を実現することは可能であり、Cubic関数を用いたCubic補間に本発明が限定されるわけではない。
【0074】
ここで補間とは、離散的な原信号x(n)に対して所定の関数を用いて、例えば、原信号x(n1)と原信号x(n2)との信号間の値xを生成する処理である。補間関数h(t)を用いて連続信号x(t)を生成する場合、次式(3)に基づく畳み込み演算で表すことが可能である。
x(t)=Σx(n)h(t−n) (nは−∞乃至∞) ・・・(3)
例えば、t=1/3を式(3)に代入した場合、
x(1/3)=Σx(n)h(1/3−n)
で表され、この式に基づく演算を行うことにより、t=1/3の時の補間値が求められる。
【0075】
すなわち、補間関数h(t)の重心を位置Tだけずらした状態で畳み込み演算を行えば、離散的な原信号x(n)から所望の位置Tの値を生成することが可能となる。本実施の形態において、離散的な原信号x(n)とは、補正量候補Sout[n]であり、所望の位置Tの値とは、露光期間の中心位置における補正量情報108のことである。
【0076】
Cubic補間は、補間関数h(t)に次式(4)に示す関数を適用したものである。
0≦|t|<1の場合
h(t)=(a+2)|t|^3―(a+3)|t|^2+1
1≦|t|<2の場合
h(t)=a|t|^3―5a|t|^2+8a|t|―4a
2≦|t|の場合
h(t)=0 ・・・(4)
式(4)においてaは定数であり、補間特性を決定するパラメータである。定数aは、例えば、手振れ信号の帯域に対する補間として適切であると判断される周波数特性になるような値に設定される。
【0077】
tの絶対値が0以上1未満である場合、(a+2)にtの絶対値を3乗した値を乗算し、その値から、(a+3)にtの絶対値を2乗した値を乗算した値を減算し、さらに、その値から、1を減算した値が補間関数h(t)の値とされる。tの絶対値が1以上2未満である場合、aにtの絶対値を3乗した値を乗算し、その値から、5、a、およびtの絶対値を2乗した値をそれぞれ乗算した値を減算し、さらに、その値に、8、a、およびtの絶対値を乗算した値を加算し、最後に、その値から、4とaを乗算した値を減算した値が補間関数h(t)の値とされる。tの絶対値が2以上である場合、補間関数h(t)の値は0とされる。
【0078】
このような補間関数h(t)(Cubic関数h(t))は、tの値を連続的にとることが可能であるため、h(t)の値も連続的にとることが可能であり、どのような状況においても、露光期間の中心位置における補正量情報108を生成することが可能である。しかしながら、処理に係るシステムの負荷を軽減させるために、ここでは、補間関数h(t)の値を整数値に正規化した状態で用いることにする。
【0079】
まず、サンプリングの1間隔である間隔Ts(図7)をMステップに分割する。Mは、どのような値でも良いが、ここでは、M=10とする。すなわち、間隔Tsを10に分割する。そして、式(4)で表されるCubic関数h(t)がゼロクロスするtをM(=10)とするようなCubic関数のテーブルCT[]を予め算出しておき、画像処理装置10に記憶させておく。これは、tのとり得る値を1digit単位にするためであり、Mは、補間処理の“拡大率”などと称される場合がある。以下、拡大率Mと記述する。
【0080】
本実施の形態においては、補間重心位置の設定が、Ts/M単位で可能となることに相当する。すなわち、Mは、時間軸方向の分解能であり、Mが大きい値に設定されるほど、細かく重心位置を設定することが可能となる。拡大率Mは、補正性能との兼ね合いで、適切な値が設定される。
【0081】
一方、テーブルとして用意されるCT[]の値も、Cubic関数h(t)を整数値Gで正規化したものとされる。量子化方向の分解能は細かいほど良いが、システムが必要とする補正性能との兼ね合いで適切な値に設定されればよい。テーブルとして用意され、例えば、記憶部57(図5)に記憶されるのは、例えば、図10に示したようなテーブルである。図10に示した例は、拡大率M=10の時を示している。テーブルとしては引数と、その引数に対応する係数が対応付けられたものが記憶される。引数としては、拡大率M=10に設定されている場合、0乃至20(=2M)である。
【0082】
ところで、式(4)で表されるCubic関数h(t)をグラフにすると、図9に示したようになる。図9に示したグラフ上で、プロットされている点は、図10に示したテーブルに、値が記憶されているCT[]を示す。図9を参照してわかるように、Cubic関数h(t)は、左右対称の偶関数である。従って、CT[]の値としては(引数としては)、左側又は右側の、どちらか一方に関する値だけ用意しておけばよい。
【0083】
仮に、図9に示したグラフに関してのCT[]の値を全て用意した場合、引数としては−20乃至20(0を含む)を用意し、それぞれに対応する係数を用意する必要がある。しかしながら、偶関数のため、CT[−N]とCT[N]は、同一の値であるため、これらに対応付けられている係数を用いた演算を行う段階で、何らかの処理を実行するようにすれば、全てのテーブルとして用意しておく必要はなく、テーブルに記憶させる量は半分の量で済み、この場合、引数として0乃至20と、それぞれに対応する係数をテーブルとして記憶させればよい。
【0084】
このようなCubic関数h(t)を用い、そのCubic関数h(t)の値を引数と関連付けたテーブルを用いた演算について、図8のフローチャートに戻り説明する。ステップS23までの処理により、中間補正量候補Ncentが求められ、この場合、補正量候補Sout[5]と求められた。ステップS24において、Offsetが求められる。Offsetとは、図9を参照するに、露光期間の中心位置から、中間補正量候補Ncent(この場合、補正量候補Sout[5])までの時間である。
【0085】
最終的には、テーブルに記憶されている係数を読み出すため、Offsetとしては、露光期間の中心位置から、中間補正量候補Ncentまでの時間ではなく、係数を読み出せる情報、すなわち、引数を算出できる情報として算出する必要がある。そのようなことを考慮し、Offsetは、次式(5)により算出される。
Offset=((N―Ncent)×Ts―Pc)/(Ts/M) ・・・(5)
【0086】
式(5)において、((N―Ncent)×Ts―Pc)により算出される値の単位はマイクロ秒であり、その値をマイクロ秒を単位とする間隔Tsで除算し、さらに、その値に拡大率Mを乗算することにより、式(5)により算出される値の単位は、拡大率Mの単位と一致することになる。拡大率Mは、上述したように、時間軸方向の分解能を示す値である。
【0087】
ステップS25においてOffsetリミッタ処理が実行される。ステップS25において行われるOffsetリミッタ処理は、ステップS24において算出されたOffsetの値が拡大率M(この場合10)以上になってしまった場合、換言すれば、時間で考えると、Offset、すなわち、露光期間の中心位置から中間補正量候補Ncentまでのずれが間隔Ts以上になってしまった場合に行われる。
【0088】
図11Aは、Offsetが拡大率Mと同値になった場合のCubic関数h(t)のグラフと、各補間候補値S-1乃至S2の関係を示した図であり、図11Bは、Offsetが拡大率M以上になった場合のCubic関数h(t)のグラフと、各補間候補値S-1乃至S2の関係を示した図である。
【0089】
図11Aに示したような状況の場合、露光期間の中心位置に最も近い補正量候補Sout[n]である中間補正量候補Ncentとして、補間候補値S0が算出されているが、本来、補間候補値S1が算出されなくてはならない。また、図11Bに示したような状況の場合も同様に、中間補正量候補Ncentとして、補間候補値S0が算出されているが、本来、補間候補値S1が算出されなくてはならない。
【0090】
このような状況が発生した場合の処理として、ステップS25においてOffsetリミッタ処理が実行される。Offsetリミッタの処理は、まず、中間補正量候補Ncentの値を1だけ加算する。この処理は、その時点での補間候補値S1を、新たな補間候補値S0に修正する処理である。従って、補間候補値S-1,S1,S2も、順次修正される。
【0091】
中間補正量候補Ncentが修正されたことにともない、ステップS24において算出されたOffsetの値も変更される。ステップS24において算出されたOffsetの値に拡大率M(この場合10)だけ減算された値が、新たなOffsetの値とされる。
【0092】
このようなOffsetリミッタの処理がステップS25において、必要に応じて実行されると、ステップS26に進み、中間補正量候補Ncentリミッタ処理が行われる。この中間補正量候補Ncentリミッタ処理は、シャッタスピードに依存し、露光期間が変更され、中間補正量候補NcentがN−1以上になってしまう場合や、中間補正量候補Ncentが0以下になってしまう場合に行われる処理である。
【0093】
図12は、VDパルス、露光期間、およびA/Dタイミングの関係を示し、図12Aは、中間補正量候補NcentがN−1以上になってしまう場合を示し、図12Bは、中間補正量候補Ncentが0以下になってしまう場合を示している。図12Aに示したように、シャッタスピードが速く、露光期間Tshutが短くなると、その中間位置までの期間Tshut/2も短くなり、結果として中間補正量候補Ncentが、次のVDパルス(次のフィールド)の時のA/Dタイミングのときに算出される補正量候補Sout[n]、すなわち、次のフィールドに係る補正量候補Sout[0]乃至[7]の内のいずれかになってしまう可能性がある。
【0094】
このような場合、次のフィールドに関わる補正量候補Sout[n]を用いて補正量情報108を算出することはできないので、該当するフィールドの最後に取得された補正量候補Sout[n]が、中間補正量候補Ncentに相当する補正量候補Sout[n]になるように、すなわちこの場合、中間補正量候補Ncentに相当する補正量候補Soutが補正量候補Sout[7]となるように、中間補正量候補Ncentを、ステップS23で算出された中間補正量候補Ncentにかかわらず変更する。
【0095】
図12Bに示したように、シャッタスピードが遅く、露光期間Tshutが長くなると、その中間位置までの期間Tshut/2も長くなり、その結果として、中間補正量候補Ncentが、前のVDパルス(前のフィールド)の時のA/Dタイミングのときに算出される補正量候補Sout[n]になってしまう可能性がある。
【0096】
このような場合、前のフィールドに関わる補正量候補Sout[n]を用いて補正量情報108を算出することはできないので、該当するフィールドの最初に取得された補正量候補Sout[n]が、中間補正量候補Ncentに相当する補正量候補Sout[n]になるように、すなわちこの場合、中間補正量候補Ncentに相当する補正量候補Sout[n]が補正量候補Sout[0]となるように、中間補正量候補Ncentを、ステップS23で算出された中間補正量候補Ncentにかかわらず変更する。
【0097】
このように、中間補正量候補Ncentが1VDパルス内で取得される補正量候補Sout[n]になるように、ステップS26の処理が行われる。なお、ステップS26において行われる中間補正量候補Ncentリミッタ処理は、中間補正量候補Ncentが1VDパルス内で取得される補正量候補Sout[n]になるような処理であれば良いので、上述したように、中間補正量候補Ncentが補正量候補Sout[0]または補正量候補Sout[7]に変更されることに限定されるのではなく、補正量候補Sout[0]乃至[7]のうちのいずれかに変更されるようにしても良い。
【0098】
また、ステップS26において中間補正量候補Ncentリミッタ処理が実行された場合、Offsetの値もゼロリセットされる。
【0099】
ステップS26における中間補正量候補Ncentリミッタ処理が終了すると、ステップS27に進み、CTテーブル70の引数の算出が行われる。CTテーブル70の引数を算出するとは、図9を参照して説明するに、補間候補値S-1乃至S2の各候補値が、Cubic関数h(t)上では、どの点に位置するか、すなわち、どの引数に対応する位置に位置するかを算出する処理である。図9では、補間候補値S-1乃至S2の各候補値が、Cubic関数h(t)上で位置する位置を、それぞれ、CT[P-1],CT[P0],CT[P1],CT[P2]として示している。
【0100】
CTテーブル70とは、図10に示したようなテーブルである。上述したように、予め設計しておいた、整数で正規化されたCubic関数の値は、CTテーブル70として画像処理装置10に記憶されている。このCTテーブル70は、Cubic関数が偶関数であることを利用し、全領域の値がテーブルとして用意されているのではなく、その半分の領域の値がテーブルとして用意されている。ここでは、図9に示したCubic関数h(t)のグラフの内、正領域に存在する係数が、CTテーブル70に記憶されている。
【0101】
しかしながら、図9を参照するに、Cubic関数h(t)の負領域に存在する係数、具体的にはCT[P-1]とCT[P0]に対応する係数は必要である。そこで、CTテーブル70から必要な係数を読み出す際の引数は、次式(6)のような演算を行い算出する。以下の説明において、補間候補値S-1乃至S2に、それぞれ乗算する係数を読み出す為に必要な引数を、引数P-1乃至P2と記述する。
【0102】
引数P-1=Offsetの値+M
引数P0=Offsetの値
引数P1=M−Offsetの値
引数P2=2M―Offsetの値 ・・・(6)
【0103】
ここで、図13を参照して式(6)についてさらに説明する。ここでは、例えば、引数POを算出する際を例に挙げて説明する。図13に示した例では、CT[P0]がCT[−5]である場合、すなわち、Offsetの値が5と算出された場合を示している。Offsetの値は、式(5)に基づいて算出されるが、算出される値は、正の整数値である。すなわち、この場合、CT[P0]=CT[−5]のときのOffsetの値は、5である。
【0104】
仮に全ての領域がCTテーブル70に用意されている場合には、引数P0としては、−5と算出されればよいことになるが、上述したように、CTテーブル70には、正の領域の係数しか用意されていない。従って、負の引数を対応する正の引数に変換する必要がある。図13を参照してわかるように、負の領域に存在するCT[−5]に対応する正の領域に存在するCT[Pn]は、CT[5]である。従って、式(6)に示したように、引数P0は、Offsetの値をそのまま用いられることにより算出される。
【0105】
同様な考えにより、負の領域に存在するCT[P-1]に対応する正の領域に存在するCT[Pn]の引数は、式(6)に示したように、Offsetの値にMを加算した値となる。
【0106】
図8のフローチャートの説明に戻り、ステップS27において、式(6)に基づき引数P-1,P0,P1,P2が、それぞれ算出されると、ステップS28に進み、その算出された引数に対応する係数が、CTテーブル70から読み出される。ステップS29において、CTテーブル70から読み出された係数を用いた補間演算が行われることにより補間値が算出される。補間演算は、次式(7)に基づき行われる。
【0107】
補間値=ΣCT[Pn]×Sn/ΣCT[Pn] ・・・(7)
式(7)における分子は、読み出された係数CT[Pn]と、それぞれの係数CT[Pn]に対応する補間候補値Snを乗算した総和であり、分母は、読み出された係数CT[Pn]の総和である。Cubic関数h(t)は性質上、各係数の総和は1になるが、すなわち、ΣCT[Pn]は1になるが、上述したように、本実施の形態においては、係数CT[Pn]は整数で正規化(最大値がG)されているため、畳み込み演算の結果(分子)をΣCT[Pn]で除算する必要がある。
【0108】
図9に示したような状態のときに、式(7)を演算した場合の演算式を次式(8)として示す。
補間値=(CT[P-1]×S-1+CT[P0]×S0+CT[P1]×S1+CT[P2]×S2)/(CT[P-1]+CT[P0]+CT[P1]+CT[P2])・・・(8)
式(8)において、CT[P-1]などは、読み出された係数CT[Pn]を表し、S-1などは、補間候補値Snを表す。
【0109】
図9に示すように、また、式(8)に示すように、4つの補間候補値Snが存在している場合はよいが、状況によっては、4つの補間候補値Snが存在しないような場合がある。図14を参照して状況を検証する。まず、中間補正量候補Ncentとしては、この場合、0乃至7の値をとりうる。
【0110】
中間補正量候補Ncentが0である場合、補正量候補Sout[0]が補間候補値S0となる。その結果、補正量候補Sout[1]が補間候補値S1、補正量候補Sout[2]が補間候補値S2となる。しかしながら、補間候補値S-1に相当する補正量候補Sout[n]は存在しない。従って、式(7)に基づく演算が行われる場合、補間候補値S0乃至S2のみが用いられる。
【0111】
ところで、補間候補値S0と補間候補値S1を対とし、補間候補値S-1と補間候補値S2が対として考えた場合、補間候補値S0乃至S2のみで演算を行うのは好ましくない演算結果が算出されることになる。そこで、補間候補値S2は演算に用いず、補間候補値S0と補間候補値S1のみで演算を行うようにする。
【0112】
このようなことは、中間補正量候補Ncentが6であるときにも同様なことが言える。
【0113】
また、中間補正量候補Ncentが7の場合、図14より、補正量候補Sout[6]が補間候補値S-1、補正量候補Sout[7]が補間候補値S0となるが、上述した理由から、補間候補値S0のみを用いて演算が行われる。
【0114】
これらのことをまとめると、式(7)を用いた演算は、サンプリング周波数がN回とすると、中間補正量候補Ncentが1乃至N−3である場合、nとしてとりうる値は、−1,0,1,2であり、中間補正量候補Ncentが0またはN−2である場合、nとしてとりうる値は、0と1であり、中間補正量候補NcentがN−1である場合、nとしてとりうる値は、0となる。
【0115】
なお、中間補正量候補NcentがN−1であり、nとしてとりうる値が、0の場合には、式(7)に基づく演算を実行せず、補間候補値S0(=補正量候補Sout[7])をそのまま演算結果としても良い。
【0116】
式(7)において、4つの係数(4つの補間候補値Sn)が取得できる状態のときは、分母は整数値Gとなるため、整数値Gを適切に設定することにより、式(7)に基づく演算を簡便に行うことが可能となり、実際に演算を実行するマイクロコンピュータの処理上では、簡単なビットシフト演算程度で行うことが可能となる。
【0117】
図8のフローチャートの説明に戻り、ステップS29において補間演算が終了すると、ステップS30に進み、ステップS29における演算結果が、補正量情報108として、制御部16に出力される。このような処理が1フィールド毎に行われることにより、補正量情報108が生成される。
【0118】
上述したように、露光期間の中心位置の手振れ量を補間して求めることにより、より精度良く加えられた振動の影響を低減させることが可能となる。本発明を適用することにより、シャッタスピードによらず常に露光期間の中心位置に合う補正量情報108を生成することができるので、シャッタスピードの違いにより発生していた性能悪化やバラつきを抑えることが可能となる。
【0119】
また、NTSCやPALといった放送方式の違いにより発生していた性能悪化やバラつきも抑えることが可能となる。さらに、垂直方向と水平方向の、異なる方向により発生する性能悪化やバラつきも抑えることが可能となる。
【0120】
上述した実施の形態においては、垂直方向の振動を処理する系と、水平方向の振動を処理する系が、それぞれ別に設けられている場合を例に挙げて説明したが、図3を参照して説明したように、8回のサンプリングのうち、4回を垂直方向、4回を水平方向に割り当てて処理するようにしても良い。そのような場合でも、本発明を適用することは可能である。本発明を適用することにより、垂直方向、水平方向、共に露光期間の中心位置で求められる補正量を推定することができ、性能良く、振動に対する処理を行うことが可能となる。
【0121】
A/Dタイミングのサンプリング周波数を上げることにより解決するようにしていた問題を、サンプリング周波数を上げることなく解決することが可能となる。本発明を適用すれば、サンプリング周波数を上げなくて良いので、振動の影響を低減させるためにシステムが行う処理を低減させることができ、システムに係る負荷を低減させることが可能となる。
【0122】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0123】
図15は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)211は、ROM(Read Only Memory)212に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)213には、CPU211が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース215は、キーボードやマウスから構成される入力部216が接続され、入力部216に入力された信号をCPU211に出力する。また、入出力インタフェース215には、ディスプレイやスピーカなどから構成される出力部217も接続されている。
【0124】
さらに、入出力インタフェース215には、ハードディスクなどから構成される記憶部218、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部219も接続されている。ドライブ220は、磁気ディスク231、光ディスク232、光磁気ディスク233、半導体メモリ234などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【0125】
記録媒体は、図15に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク231(フレキシブルディスクを含む)、光ディスク232(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク233(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリ234などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM212や記憶部218が含まれるハードディスクなどで構成される。
【0126】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0127】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0128】
【発明の効果】
以上のように本発明によれば、手振れなどの加えられた振動による影響を低減させることができる。
【0129】
また、本発明によれば、露光期間の中央のタイミングで得られる情報を基に、手振れなどの加えられた振動による影響を低減するための情報を常に生成することでき、最適な補正を行うことができるとともに、その情報の生成にかかるシステムの負荷を軽減させることができる。
【図面の簡単な説明】
【図1】加えられた振動の影響を低減する方法について説明する図である。
【図2】補正量を算出するタイミングについて説明する図である。
【図3】補正量を算出するタイミングについて説明する図である。
【図4】本発明を適用した画像処理装置10の一実施の形態の構成を示す図である。
【図5】手振れ補正部21の内部構成例を示す図である。
【図6】補正量情報の生成処理について説明するフローチャートである。
【図7】補正量を算出するタイミングについて説明する図である。
【図8】図6に示したフローチャートのステップS5の詳細な処理を説明するフローチャートである。
【図9】 Cubic関数h(t)と補正量との関係を説明する図である。
【図10】CTテーブル70の一例を示す図である。
【図11】 Offsetリミッタ処理について説明する図である。
【図12】中間補正量候補Ncentリミッタ処理について説明する図である。
【図13】CTテーブル70の引数の算出について説明する図である。
【図14】補間演算について説明する図である。
【図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 補正量生成部
Claims (6)
- 撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置において、
振動を検出し、振動検出情報を出力する出力手段と、
前記出力手段により出力された前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持手段と、
前記保持手段により保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定手段と、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルを記憶する記憶手段と、
前記設定手段により設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の前記補正量候補に対応する引数をさらに決定する決定手段と、
前記決定手段により決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶手段により記憶されている前記テーブルから読み出す読み出し手段と、
前記読み出し手段により読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成手段と、
前記生成手段により生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御手段と
を含むことを特徴とする画像処理装置。 - 前記設定手段は、前記露光期間の中央の時刻が、予め設定された所定の期間外の時刻である場合、前記設定された期間内の両端のタイミングのサンプリングに基づく前記補正量候補の一方を前記中間補正量候補として設定する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記所定の関数は、偶関数であり、前記記憶手段は、前記偶関数の正領域または負領域のどちらか一方に属する前記値のみが、前記引数と関連付けられたテーブルを保持する
ことを特徴とする請求項2に記載の画像処理装置。 - 撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置の画像処理方法において、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を含むことを特徴とする画像処理方法。 - 撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置のプログラムであって、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 撮像素子により画像を撮像するとき、加えられた振動による前記画像への影響を低減するための補正を行う画像処理装置を制御するコンピュータに、
振動に関する前記振動検出情報をサンプリングし、そのサンプリングされた値に基づいて算出される値を補正量候補として保持する保持ステップと、
前記保持ステップの処理で保持された前記補正量候補のうち、露光期間の中央の時刻に最も近いタイミングのサンプリングに基づく前記振動検出情報に対応する前記補正量候補を中間補正量候補として設定する設定ステップと、
引数とその引数を所定の関数に代入したときに得られる値が関連付けられたテーブルの記憶を制御する記憶制御ステップと、
前記設定ステップの処理で設定された前記中間補正量候補に対応する引数を、前記中間補正量候補が対応するサンプリングの時刻と前記露光期間の中央の時刻との関係から決定すると共に、前記中間補正量候補が対応するサンプリングより前または後のサンプリングの時刻に対応する少なくとも1以上の他の前記補正量候補に対応する引数をさらに決定する決定ステップと、
前記決定ステップの処理で決定された前記中間補正量候補と前記他の補正量候補のそれぞれの引数に対応する値を、前記記憶制御ステップの処理で記憶が制御された前記テーブルから読み出す読み出しステップと、
前記読み出しステップの処理で読み出された複数の値と、それぞれの値に対応する前記中間補正量候補または前記他の補正量候補を用いた補間演算を行うことにより、露光期間の中心位置の補正量情報を生成する生成ステップと、
前記生成ステップの処理で生成された前記補正量情報に基づいて、前記撮像素子により撮像された画像から切り出す画像の領域を制御する制御ステップと
を実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031659A JP3865125B2 (ja) | 2002-02-08 | 2002-02-08 | 画像処理装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031659A JP3865125B2 (ja) | 2002-02-08 | 2002-02-08 | 画像処理装置および方法、記録媒体、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003234946A JP2003234946A (ja) | 2003-08-22 |
JP3865125B2 true JP3865125B2 (ja) | 2007-01-10 |
Family
ID=27774995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002031659A Expired - Fee Related JP3865125B2 (ja) | 2002-02-08 | 2002-02-08 | 画像処理装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3865125B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006229393A (ja) * | 2005-02-16 | 2006-08-31 | Olympus Imaging Corp | 撮像装置 |
GB2492529B (en) * | 2011-05-31 | 2018-01-10 | Skype | Video stabilisation |
GB201116566D0 (en) | 2011-09-26 | 2011-11-09 | Skype Ltd | Video stabilisation |
GB2497507B (en) | 2011-10-14 | 2014-10-22 | Skype | Received video stabilisation |
JP7206797B2 (ja) * | 2018-10-22 | 2023-01-18 | 株式会社リコー | 撮像装置、情報処理装置、補正値計算方法およびプログラム |
WO2020170904A1 (ja) | 2019-02-18 | 2020-08-27 | 富士フイルム株式会社 | ぶれ補正装置、撮像装置、監視システム、及びプログラム |
-
2002
- 2002-02-08 JP JP2002031659A patent/JP3865125B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003234946A (ja) | 2003-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424212B2 (en) | Camera shaking correcting method, camera shaking correcting device, and image pickup device | |
JP5249377B2 (ja) | 撮像装置、及びその制御方法、プログラム | |
JP3925415B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
US7454131B2 (en) | Image sensing apparatus with camera shake correction function | |
US7509039B2 (en) | Image sensing apparatus with camera shake correction function | |
US6424372B1 (en) | Electronic image-movement correcting device with a variable correction step feature | |
US9635258B2 (en) | Image pickup apparatus, method of controlling image pickup apparatus, image processing apparatus, and image processing method | |
JP6045254B2 (ja) | 画像処理装置、その制御方法、および制御プログラム | |
US20050201741A1 (en) | Image blur correcting device | |
JP2012078495A (ja) | 撮像装置、ブレ補正装置及びブレ補正方法 | |
JP3865125B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP3564247B2 (ja) | 画像動き補正装置 | |
JP3865126B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP5249378B2 (ja) | 撮像装置、及びその制御方法、プログラム | |
JPH1127573A (ja) | 画像動き補正装置 | |
JP2005303933A (ja) | 撮像装置 | |
JP2000278592A (ja) | 撮像装置、その制御方法および記憶媒体 | |
JP2019125890A (ja) | 像ブレ補正装置、カメラ本体、像ブレ補正方法、及びプログラム | |
JPH06133211A (ja) | 画像揺れ補正機能付光学装置 | |
JP3642085B2 (ja) | 手振れ補正装置及びビデオカメラ | |
KR101587972B1 (ko) | 손떨림 보정 기능을 갖는 이미지 센서 모듈 | |
JP7214424B2 (ja) | 撮像装置およびその制御方法 | |
JP4011723B2 (ja) | 撮像方法及び装置並びに記憶媒体 | |
JP4759238B2 (ja) | 光学機器 | |
JP2018182564A (ja) | 映像再生装置とその制御方法及びプログラム |
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: 20060501 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060612 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |