(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
図1は、本実施形態の像振れ補正装置を有する撮像装置の構成を示す図である。
本実施形態においては、撮像装置としてデジタルカメラを例にとって説明する。なお、撮像装置が動画撮影機能を備えていてもよい。
図1に示す撮像装置は、ズームレンズ101乃至制御部119を備える。
【0010】
ズームレンズ101は、撮像光学系を構成する。ズーム駆動部102が、制御部119の制御に従ってズームレンズ101を駆動し、ズームレンズ101が撮像光学系の光軸方向に移動することで、焦点距離が変更される。像振れ補正レンズ103は、撮像画像に生じる像振れを補正するために用いられる振れ補正手段である。像振れ補正レンズ103は、撮像光学系の光軸に対して直交する方向に移動可能であり、像振れ補正レンズ駆動部104により駆動制御される。
【0011】
絞り・シャッタユニット105は、絞り機能を有するメカニカルシャッタである。絞り・シャッタ駆動部106が制御部119の制御に従って、絞り・シャッタユニット105を駆動する。フォーカスレンズ107は、撮像光学系を構成し、撮像光学系の光軸方向に進退可能である。フォーカス駆動部108は、制御部119の制御に従ってフォーカスレンズ107を駆動する。撮像部109は、撮像光学系を介して入射する被写体光を、CCDイメージセンサや、CMOSイメージセンサなどの撮像素子を用いて、撮像画像に係る電気信号に光電変換する。CCDは、Charge Coupled Deviceの略称である。CMOSは、Complementary Metal Oxide Semiconductorの略称である。撮像信号処理部110は、撮像部109から出力された電気信号に対して、A/D変換、相関二重サンプリング、ガンマ補正、ホワイトバランス補正、色補間処理等の所定の処理を行い、映像信号に変換する。
【0012】
映像信号処理部111は、撮像信号処理部110から出力された映像信号に対して、用途に応じた処理を施す。具体的には、映像信号処理部111は、表示用の映像信号の生成や、記録用の符号化処理、データファイル化等を行う。表示部112は、映像信号処理部111が出力する表示用の映像信号に基づき、必要に応じて画像表示を行う。電源部115は、撮像装置全体に電源を供給する。外部入出力端子部116は、外部装置との間で通信信号及び映像信号を入出力する。操作部117は、撮像装置にユーザが指示を与えるためのボタンやスイッチなどを有し、押し込み量に応じて第1スイッチ(SW1)及び第2スイッチ(SW2)が順にオンするように構成されたレリーズボタンを含む。レリーズボタンが半押しされた場合に、SW1がオンとなり、レリーズボタンが最後まで押し込まれた場合に、SW2がオンとなる。記憶部118は、映像信号を含む様々なデータを記憶する。
【0013】
制御部119は、撮像装置全体を制御する。制御部119は、例えば、CPU、ROM、RAMを有し、ROMに記憶された制御プログラムをRAMに展開して実行することによって撮像装置の各部を制御する。CPUは、Central Processing
Unitの略称である。ROMは、Read Only Memoryの略称である。また、RAMは、Random Access Memoryの略称である。制御部119の制御によって、撮像装置が備える像振れ補正装置の機能が実現される。像振れ補正装置の構成については、
図2を参照して後述する。
【0014】
また、制御部119は、映像信号の輝度情報と、予め定められたプログラム線図とに基づいて、適切な露光量を得るための絞り値及びシャッタスピードを決定するAE処理を行う。SW1がオンとなると、制御部119は、映像信号処理部111が表示部112に出力する表示用の映像信号に基づいて、AF評価値を算出する。そして、制御部119は、AF評価値に基づいてフォーカス駆動部108を制御することにより、自動焦点調節を行う。また、操作部117に含まれるレリーズスイッチSW2がオンされると、制御部119は、決定した絞り及びシャッタ速度で撮影を行い、撮像部109から読み出された電気信号を処理して得られた映像信号を記憶部118に記憶するように、各処理部を制御する。
【0015】
また、操作部117は、振れ補正モードのオン/オフを選択可能にする像振れ補正スイッチを有する。像振れ補正スイッチにより振れ補正モードがオンされると、制御部119が、像振れ補正制御を行う。具体的には、制御部119が、像振れ補正レンズ駆動部104に像振れ補正動作を指示し、これを受けた像振れ補正レンズ駆動部104は、像振れ補正動作オフの指示がなされるまで像振れ補正動作を行う。また、操作部117は、静止画撮影モードと動画撮影モードとのうちの一方を選択可能な撮影モード選択スイッチを有する。撮影モード選択スイッチの操作による撮影モードの選択を通じて、制御部119は、像振れ補正レンズ駆動部104の動作条件を変更することができる。
【0016】
また、操作部117は、再生モードを選択するための再生モード選択スイッチを有する。再生モード選択スイッチの操作によって再生モードが選択されると、制御部119は像振れ補正動作を停止させる。また、操作部117には、ズーム倍率変更の指示を行う倍率変更スイッチが含まれる。倍率変更スイッチの操作によって、ズーム倍率変更の指示がされると、制御部119を介して指示を受けたズーム駆動部102が、ズームレンズ101を駆動して、指示されたズーム位置にズームレンズ101を移動させる。
【0017】
図2は、本実施形態の像振れ補正装置の構成を示す図である。
角速度センサ201は、撮像装置に加わる振れを検出する。A/D変換器202は、角速度センサ201の出力をデジタル信号に変換する。目標位置算出部203は、像振れ補正レンズ103の目標位置を算出する。位置検出センサ211は、像振れ補正レンズ103の位置を検出する。加減算器204は、目標位置算出部203の出力から位置検出センサ211の出力を減算する。制御フィルタ205は、加減算器204の出力に基づいて、像振れ補正レンズ103の位置が目標位置に追従するようにするフィードバック制御量(レンズ位置制御量)を演算する。加減算器206は、制御フィルタ205の出力に、第1フィードバックゲイン207の出力および第2フィードバックゲイン212の出力(動きベクトル制御量)を加算する。これにより、像振れ補正レンズ103の駆動に用いる制御量が得られる。加減算器206は、得られた制御量を像振れ補正レンズ駆動部104に出力する。
【0018】
撮像部109が出力する撮像画像は、撮像信号処理部110により処理され、第1動きベクトル検出部210と第2動きベクトル検出部215とに出力される。第1動きベクトル検出部210は、制御部119の制御により、撮像画像から第1の周期で第1の動きベクトルを検出(算出)する。第1動きベクトル処理部209は、第1動きベクトル検出部210の出力に所定の処理を行う。第2動きベクトル検出部215は、制御部119の制御により、撮像画像から第1の周期より長い第2の周期で第2の動きベクトルを検出(算出)する。第2動きベクトル処理部214は、第2動きベクトル検出部215の出力に所定の処理を行う。第1フィードバックゲイン部207は、第1の動きベクトルに所定のゲインを乗算して、フィードバック制御量を算出する。積分器208は、第1の動きベクトルを所定時間で積分(積算)する。これにより、所定時間(所定フレーム間)での移動量の予測値が算出される。加減算器213は、誤差算出手段として機能し、第2動きベクトル処理部214の出力と積分器208の出力との差分をとる。これにより、所定フレーム間での移動量の予測値の誤差量(移動量誤差量)が算出される。第2フィードバックゲイン212は、算出された移動量誤差量に所定のゲインを乗算することで、フィードバック制御量を算出する。なお、積分器208による積分時間(積算時間)と、第2動きベクトル検出部215による第2動きベクトルの算出周期は、撮影設定情報に応じて変更される。
【0019】
図3は、本実施形態における像振れ補正制御を説明するフローチャートである。また、
図4は、動きベクトルの算出処理を説明するフローチャ−トである。
図3のフローチャートで示す像振れ補正制御は、所定のサンプリング周期で繰り返し実行される。また、
図4のフローチャートで示す動きベクトル情報の算出処理は、画像のフレームレート周期で繰り返し実行される。
【0020】
図3のS101において、振れセンサとして機能する角速度センサ201が、手振れ等により撮像装置に加わる振れを検出する。検出された振れ情報は、電気信号に変換され、A/D変換器202にてアナログ信号からデジタル信号に変換される。続いて、S102において、目標位置算出部203が、振れ情報に基づいて、振れにより生じる像振れを補正するための像振れ補正レンズ103の目標位置を演算する。
【0021】
次に、S103において、位置検出センサ211が像振れ補正レンズ103の位置を検出する。検出された位置情報は、A/D変換器216によって、アナログ信号からデジタル信号に変換される。加減算器204が、像振れ補正レンズ103の目標位置情報からA/D変換器217から出力される像振れ補正レンズ103の位置情報を減算する。そして、S104において、制御フィルタ205が、加減算器204の出力に基づいて、レンズ位置制御量を演算する。
【0022】
また、振れセンサによる振れ情報の取得処理と並行して、
図4のS201乃至S209において、動きベクトル情報の算出処理が実行される。動きベクトル情報の算出処理は、公知の方法により複数の画像の画素位置の差に基づいて行われるので、複数の画像を取得できるサンプリング時間に依存して実行される。動きベクトル情報の算出処理が、振れセンサによる振れの取得サンプリングとは異なるサンプリングで実行されてもよい。
【0023】
S201において、制御部119が、積分器208による第1の動きベクトルの積分時間の変更が指示されているか否かを判定する。第1の動きベクトルの積分時間の変更が指示されている場合は、処理がS202に進む。第1の動きベクトルの積分時間の変更が指示されていない場合は、処理がS203に進む。S202において、制御部119が、第1の動きベクトルの積分時間を変更して、処理がS203に進む。
【0024】
S203において、制御部119が、第2の動きベクトルの算出に用いるフレーム間隔の変更が指示されているかを判定する。第2の動きベクトルの算出に用いるフレーム間隔の変更が指示されている場合は、処理がS204に進む。第2の動きベクトルの算出に用いるフレーム間隔の変更が指示されていない場合は、処理がS205に進む。
【0025】
S204において、制御部119が、第2の動きベクトルの算出に用いるフレーム間隔を変更して、処理がS205に進む。S205において、制御部119が、画像を取得するタイミングとなったかを判定する。画像を取得するタイミングとなった場合は、処理がS206に進む。画像を取得するタイミングでない場合は、処理を終了する。
【0026】
S206において、撮像部109が、制御部119の指示にしたがって、被写体光を電気信号に変換し、撮像画像に係る信号を取得する。また、撮像信号処理部110が、撮像画像に係る信号をアナログログ信号からデジタル信号に変換して、所定の画像処理を行う。これにより、動きベクトル算出のための評価画像が生成される。
【0027】
S207において、第1動きベクトル検出部210および第1動きベクトル処理部209が、予め記憶されている1フレーム前の画像と現在フレームの画像とを比較し、画像のずれから第1の動きベクトルを算出する。動きベクトルの検出方法としては、公知の相関法やブロックマッチング法などが適用される。本発明において、動きベクトルの算出方法は公知のどのような手法を用いても構わない。
【0028】
次に、S504において、制御部119が、第2の動きベクトルの算出タイミングとなったかを判定する。第2の動きベクトルの算出タイミングでない場合は、処理を終了する。第2の動きベクトルの算出タイミングとなった場合は、処理がS209に進む。S209において、第2動きベクトル検出部215および第2動きベクトル処理部214が、第2の動きベクトルを算出する。
【0029】
図5は、第1の動きベクトルと第2の動きベクトルの算出タイミングを説明する例である。
図5において、平行四辺形で示している部分が、撮像部109によるデータ読み出しのタイミングを表している。また、
図5では、Img00〜Img04に示すフレーム画像の読み出しに対して、第1の動きベクトルの算出タイミングと、第2の動きベクトルの算出タイミングと、動きベクトルを算出する際の2フレームの画像の時間関係が示される。それぞれの動きベクトルの検出は、2つのフレーム画像のマッチング処理により行われる。本実施形態では、制御部119は、撮像画像から第1の周期で第1の動きベクトルを算出する第1の算出手段として機能する。また、制御部119は、撮像画像から第1の周期より長い第2の周期で第2の動きベクトルを算出する第2の算出手段として機能する。具体的には、制御部119は、第1の動きベクトルと第2の動きベクトルとで、異なる時間間隔のフレーム画像から動きベクトルの算出を行う。
【0030】
制御部119は、例えば、Img00とImg01のように、時間的に連続したフレーム画像から第1の動きベクトルを算出する。一方、制御部119は、第2の動きベクトルを、Img00とImg02のように、時間的に1フレーム分離れたフレーム画像から算出する。すなわち、制御部119は、第1の動きベクトルを算出する際のフレーム間隔より長いフレーム間隔で第2の動きベクトルを算出する。
図5に示す動きベクトルの算出タイミングは一例である。第1の動きベクトルの積分(積算)が完了するタイミングが、第2の動きベクトルの算出タイミングに対応するように、動きベクトルを算出するフレームの時間間隔を設定すればよい。第2の動きベクトルが、例えば、Img01とImg04のように、2フレーム分離れたフレーム画像から算出されるようにしてもよい。
【0031】
図3の説明に戻る。S107において、制御部119が、第1の動きベクトルの算出が完了したか否かを判定する。第1の動きベクトルの算出が完了していない場合は、処理がS113に進み、前回の動きベクトル制御量が保持される。第1の動きベクトルの算出が完了した場合は、処理がS108及びS114に進む。すなわち、S108の処理とS114の処理が並列で実行される。
【0032】
S108において、制御部119が、第1の動きベクトルを所定時間で積分(積算)する。これにより、所定フレーム間の移動量の予測値が算出される。S108の処理と並行して、S114において、制御部119が、第1の動きベクトルに基づいて、所定の第1フィードバックゲインを積算する。これにより、第1の動きベクトルに基づくフィードバック制御量が算出される。S114の処理の後、処理がS112に進む。
【0033】
S109において、制御部119が、第2の動きベクトルの算出が完了したかを判定する。第2の動きベクトルの算出が完了していない場合は、処理がS114に進む。第2の動きベクトルの算出が完了した場合は、処理がS110に進む。S110において、制御部119が、S108において算出された所定フレーム間の移動量の予測値と、第2の動きベクトルから求まる所定フレーム間の移動量とを比較することで、所定フレーム間の移動量の予測値の誤差量(移動量誤差量)を算出する。S111において、制御部119が、S108において求めた積分値を0クリアする。続いて、S112において、S114において算出されたフィードバック制御量と、S110において算出された移動量誤差量に基づくフィードバック制御量とを加算して、動きベクトル制御量を算出する。S105において、制御部119が、S104において算出されたレンズ位置制御量に、S112において算出された動きベクトル制御量を加算する。これにより、像振れ補正レンズ103の駆動に用いる制御量が算出される。そして、制御部119が、S112において算出された制御量に基づいて、像振れ補正レンズ103を駆動することによって、像振れ補正を行う。
【0034】
図6は、移動量誤差量を算出する処理を説明する図である。
第1フィードバックゲイン207によるフィードバック制御量の算出には、画像の蓄積時間および読み出し時間、複数フレーム画像間のマッチング時間などの影響によって、実際の振れに対して、少なくとも1フィールドの時間遅れが発生する。像振れ補正装置は、光学的に像振れを補正する像振れ補正手段103を介してフィードバックループを形成しているので、時間遅れと制御周波数によっては、帰還制御系の不安定を生じ、発振に至ってしまう可能性がある。
【0035】
上記の時間遅れを改善するためには、第1の動きベクトルの算出に用いる画像の解像度(画像サイズ)を小さくすることが考えられる。しかし、画像サイズを小さくすると、画像情報の分解能が低下することで、第1の動きベクトルに検出誤差が生じる。したがって、誤差のある検出情報で像振れ補正レンズ103を駆動することで、低周波のドリフト誤差を生じてしまう。本実施形態では、
図6を参照して説明する方法により、精度の良い像振れ補正を実現する。
【0036】
図6において、実線は、各画像フレーム間で算出した誤差のある第1の動きベクトルを示す。この実線を時間でつないだ(積分した)移動量が、実際の像振れ補正レンズ103の移動量となる。したがって、検出誤差の蓄積によって、ドリフト誤差が生じる。帰還制御系の安定性のため、動きベクトルのフィードバックは時間遅れなく行いたいが、ドリフト誤差が生じる問題が従来あった。そこで、本実施形態では、制御部119は、離散フレーム間での動きベクトルを第2の動きベクトルとして算出する。離散フレーム間は、時間的に連続したフレーム間ではなく、離散フレーム時間(nフレーム分の時間:nは1以上の整数)離れたフレーム間である。
【0037】
制御部119は、積分器208により、第1の動きベクトルを、上記離散フレーム時間で積分(積算)する。制御部119は、加減算器213により、第1の動きベクトルを積分して得られる所定フレーム間の移動量の予測値から第2の動きベクトルを減算して、ドリフト誤差に応じた移動量誤差量を算出する。そして、制御部119は、算出した移動量誤差量をレンズ位置制御量にフィードバックする。これにより、第1の動きベクトルのドリフト誤差による像振れ補正レンズ103の誤動作を防止することができる。
【0038】
図6の実線で示すフレーム0−1間移動量は、例えば、
図5のImg00とImg01との間で検出される動きベクトルに対応する移動量である。フレーム1−2間移動量は、例えば、
図5のImg01とImg02との間で検出される動きベクトルに対応する移動量である。フレーム2−3間移動量は、例えば、
図5のImg02とImg03との間で検出される動きベクトルに対応する移動量である。フレーム3−4間移動量は、例えば、
図5のImg03とImg04との間で検出される動きベクトルに対応する移動量である。
【0039】
図6の実線で示す移動量は、所定フレーム間の移動量の予測値であり、本来の移動量+ベクトル検出誤差による移動量が含まれる。一方、第2の動きベクトルは、第1の動きベクトルの積分時間(離散フレーム時間)と同じ時間間隔を持つフレーム間で直接算出される。
図6の点線で示す移動量(フレーム0−2間移動量、フレーム2−4間移動量)は、第2の動きベクトルに対応する移動量である。フレーム0−2間移動量は、例えば、
図5のImg00とImg02との間での移動量である。フレーム2−4間移動量は、例えば、
図5のImg02とImg04との間での移動量である。
【0040】
制御部119は、例えば、フレーム0−1間移動量とフレーム1−2間移動量を積算して得られる、移動量の予測値から、フレーム0−2間移動量を減算して、
図6中のフレーム0−2間移動量誤差として示すドリフト誤差移動量を算出する。また、制御部119は、例えば、フレーム2−3間移動量とフレーム3−4間移動量とを積算して得られる、移動量の予測値から、フレーム2−4間移動量を減算して、
図6中のフレーム2−4間移動量誤差として示す移動量誤差量を算出する。制御部119が、算出した移動量誤差量をレンズ位置制御量にフィードバックすることによって、像振れ補正レンズ103の駆動に用いる制御量を算出する。これにより、像振れ補正レンズ103のドリフトを低減させ振れ補正性能を向上させることができる。
【0041】
図7は、第1の動きベクトルの積分時間と、第2の動きベクトルを算出する際の離散フレーム時間の変更を説明する図である。
図7(A)、(B)において、「積分時間」は、第1の動きベクトルの積分時間を示す。「第2の動きベクトル算出フレーム間隔」は、第2の動きベクトルを算出する際の離散フレーム時間を示す。
【0042】
図7(A)は、フレームレートに応じた積分時間と離散フレーム時間の変更例を示す。制御部119は、撮像画像のフレームレートに応じて、第1の動きベクトルの積分時間と、第2の動きベクトルの算出に用いる離散フレーム時間を変更する。具体的には、
図7(A)に示すように、制御部119は、フレームレートの値が大きくなる(周期が速くなる)ほど、積分時間および離散フレーム時間を大きくする。フレームレートの値が大きくなることで、積分時間を長くしないと、移動量誤差量の評価時間が短くなり、精度良く移動量誤差量を算出できなくなるからである。
【0043】
図7(B)は、画像解像度に応じた積分時間と離散フレーム時間の変更例を示す。制御部119は、第1の動きベクトルの算出に使用する画像解像度に応じて、積分時間および離散フレーム時間を変更する。具体的には、制御部119は、第1の動きベクトルの算出に使用する画像解像度が高いほど、積分時間および離散フレーム時間を大きくする。画像解像度が高くなることで、第1の動きベクトルの検出誤差が小さくなって、移動量誤差量が小さくなる。したがって、制御部119は、積分時間と離散フレーム時間を大きくして、ドリフト補正の頻度を減らし、移動量誤差量の算出のための処理負荷を低減させる。以上説明したように、本実施例の像振れ補正装置によれば、撮影設定に伴って、積分時間および離散フレーム時間を変更することで、移動量誤差量の算出の際の処理負荷を低減させることができる。
【0044】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。