(57)【要約】【課題】  画面を複数に分割しつも、動きベクトルの検出のダイナミックレンジを広くとる。【解決手段】  センサー画像を水平方向に複数個に分割した短冊状の領域において水平方向の射影信号を、垂直方向に分割した短冊状の領域において垂直方向の射影信号を求める。そして、射影信号の一部を画面の分割に合わせて、分割した各画面の水平垂直方向の射影信号とする。【選択図】  図１
2006217311.tif 000002
【特許請求の範囲】
【請求項１】
像振れを検出し、それを補正する像振れ防止装置において、像振れの検出、補正、センサーの本蓄積の制御を一つの装置で行い、像振れの検出、補正の演算処理中に、次の像振れを検出に用いるデーターを取得するためのセンサーの蓄積を制御することを特徴とする像振れ防止装置。
【請求項２】
像振れを検出し、それを補正する像振れ防止装置において、像振れの検出、補正、センサーの本蓄積の制御、センサーにおける画像処理機能の制御を一つの装置で行い、像振れ検出、補正の演算処理中に、センサーから得られる信号の射影信号を算出することを特徴とする像振れ防止装置。
【請求項３】
センサーから得られる信号の射影信号を算出はセンサーにおける画像処理機能を用いて行うことを特徴とする２項記載の像振れ防止装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は比較的低い振動を受ける機器の振動抑制の為に用いられる装置に関し、更には例えばカメラ等の機器に生ずる１０Ｈｚ程度以下の周波数の振動（手ブレ等）を検出してこれを像ぶれ防止の情報として像ブレ抑制を図るシステムに関するものである。
【背景技術】
【０００２】
イメージセンサーを用いて像振れを検出する像振れ防止装置に関する従来の発明としては特開平６−３８０９１などがある。
【０００３】
特開平６−３８０９１には以下のような発明が開示されている。
【０００４】
この従来例の発明の目的は、カメラ一体型ＶＴＲにおいて、手振れ等によって生じる画像振れを検出し、補正することである。またその構成は以下のようなものである。入力画像をＸ方向及びＹ方向それぞれに加算平均し、その加算平均結果から得られる輝度傾斜部に基づいて画像ぶれを検出するようにしたことにより、少ない情報量で画像ぶれを検出でき、また加算平均された画像又は各傾斜部の重心を時間軸方向につなぎ合わせて画像全体して同一の波形パターンを確認すれば、視覚的に画像ぶれを検出することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら上述従来例では、画像ぶれを検出するためのイメージセンサーの他に、加算平均回路、フィルター回路、微分回路、動きベクトル検出回路などの手段によって画像ぶれを検出し、さらに移動値演算部、アドレス発生回路、遅延回路、画像メモリによって画像ぶれを補正している。このように多くの回路によって構成された装置により画像ぶれの検出、補正を行っているため、回路規模が大きくコストが高いという欠点がある。
【課題を解決するための手段】
【０００６】
これに対して本発明においては、イメージセンサーを用いた低コストの像振れ防止システムを構築するために、この射影信号は画面を複数に分割し、その各々の領域での射影信号を求める。水平方向の射影信号は、センサーの画面を水平方向に複数個に分割した短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。同様に垂直方向の射影信号は、センサーの画面を垂直方向に複数個に分割した短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。すなわち、水平方向の射影信号を求める領域と垂直方向の射影信号を求める領域はその一部が重なる異なる領域となる。この様にして水平垂直方向の射影信号を求め、射影信号の一部を画面の分割に合わせて、分割された各画面の水平垂直方向の射影信号とし求めることとした。
【発明の効果】
【０００７】
以上説明してきたように本発明においては、画面を複数に分割し、その各々の領域での射影信号を求める。水平方向の射影信号は、センサーの画面を水平方向に複数個に分割した短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。同様に垂直方向の射影信号は、センサーの画面を垂直方向に複数個に分割した短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。すなわち、水平方向の射影信号を求める領域と垂直方向の射影信号を求める領域はその一部が重なる異なる領域となる。この様にして水平垂直方向の射影信号を求め、射影信号の一部を画面の分割に合わせて、分割された各画面の水平垂直方向の射影信号とし用いることとした。
【０００８】
これにより、画面を複数に分割しても動きベクトルの検出のダイナミックレンジを広くとることを可能にした。
【０００９】
更にイメージセンサーを用いた低コスト像振れ防止システムを構築することを可能にした。
【発明を実施するための最良の形態】
【００１０】
（第一の実施例）
図１に本発明の実施例のブロック図を示す。１はＭＰＵ（マイクロプロセッシングユニット）、２はメモリー、３はＥＥＰＲＯＭ、４はイメージセンサーに画像を形成するための受光レンズ、５は像振れを検出するためのイメージセンサー、６はイメージセンサーの出力を増幅する増幅回路、７はピッチ方向に補正レンズを駆動するための補正レンズ駆動装置、８はヨー方向に補正レンズを駆動するための補正レンズ駆動装置、９は像振れを補正するための補正レンズである。図１においてイメージセンサー５の出力は増幅回路６を介してＭＰＵ１のＡ／Ｄ変換入力端子に接続されている。またイメージセンサー５は自身の駆動回路機能を内蔵している。
【００１１】
本実施例においては、イメージセンサー５上に形成された画像の水平方向・垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、この射影信号をＭＰＵ１のＤＭＡ機能を用いてＡ／Ｄ変換端子からメモリー２に転送し、メモリー２に転送されたデータから動きベクトルを求めることによって像ぶれを検出し、これをもとに像振れを補正する方向に補正レンズを駆動する事で、像振れを補正している。
【００１２】
その補正のシーケンスを図２に示すフローチャートを用いて説明する。またタイミングチャートを図３に、センサーの構成の概略を図４に示す。図４において、５０１はイメージゾーン、５０２は画像処理回路、５０３はメモリーゾーン、５０４はメモリーゾーンに記憶された画像処理をしていない信号を読み出す際に用いる読み出し用のシフトレジスタ、５０５は画像処理回路で求められた射影信号を記憶するメモリー、５０６は画像処理回路で求められた水平方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、５０７は画像処理回路で求められた垂直方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、５０８は読み出す信号を選択するための切換スイッチ、５１０は増幅器、５２０はセンサーのドライバーである。
【００１３】
カメラの動作シーケンスの説明に先だち、センサーの射影信号算出機能について説明する。
【００１４】
図４に示すようにセンサーの画面を水平垂直方向に各々４分割した場合を例に説明する。
【００１５】
水平方向の射影信号は、センサーの画面を４分割した水平方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。同様に垂直方向の射影信号は、センサーの画面を４分割した垂直方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。すなわち、水平方向の射影信号を求める領域と垂直方向の射影信号を求める領域はその一部が重なる領域となる。それぞれ四角い枠で囲った部分が一番目の射影信号を求める際の領域となる。水平方向の射影信号は、領域内の水平方向位置の等しい各画素の輝度を垂直方向に足し合わせたものである。また垂直方向の射影信号は、領域内の垂直方向位置の等しい各画素の輝度を水平方向に足し合わせたものである。センサー５の画像処理回路５０２ではこの足し合わせの演算を行う。この足し合わせの演算はＭＰＵ１から送られる転送パルスに同期して行われる。そしてその結果はメモリー５０５の所定の領域に、ＭＰＵ１から送られる転送パルスに同期して記憶される。
【００１６】
例えば、１００×１００画素のセンサーを水平垂直に各々４分割した場合を考える。水平方向の１列目にある２５画素（１行目から２５行目）の信号を足し合わせ、第一の領域の水平方向の射影信号の１番目の値を求める。同様に２列目以降の２５画素（１行目から２５行目）の信号を足し合わせ、第一の領域の水平方向の射影信号の２番目以降の値を求める。この様にして第一の領域の水平方向の射影信号を求める。
【００１７】
ついでに水平方向の１列目にある２６行目から５０行目の２５画素の信号を足し合わせ、第二の領域の水平方向の射影信号の１番目の値を求める。同様に２列目以降にある２６行目から５０行目の２５画素の信号を足し合わせ、第二の領域の水平方向の射影信号の２番目以降の値を求める。この様にして第二の領域の水平方向の射影信号を求める。同様にして、５１行目から７５行目の２５画素の信号を足し合わせ第三の領域の水平方向の射影信号を、７６行目から１００行目の２５画素の信号を足し合わせ第四の領域の水平方向の射影信号を求める。
【００１８】
また垂直方向１行目にある２５画素（１列目から２５列目）の信号を足し合わせ、第一の領域の垂直方向の射影信号の１番目の値を求める。同様に２行目以降の２５画素（１列目から２５列目）の信号を足し合わせ、第一の領域の垂直方向の射影信号の２番目以降の値を求める。この様にして第一の領域の垂直方向の射影信号を求める。
【００１９】
同様にして、２６列目から５０列目の２５画素の信号を足し合わせ第二の領域の垂直方向の射影信号を、５１列目から７５列目の２５画素の信号を足し合わせ第三の領域の垂直方向の射影信号を、７６列目から１００列目の２５画素の信号を足し合わせ第四の領域の垂直方向の射影信号を求める。
【００２０】
以上のようにして水平方向・垂直方向に分割された各々の領域の射影信号を求める。
【００２１】
カメラのメインスイッチがオンするなどして、カメラのメインシーケンスが開始されると、ＭＰＵ１は初期処理の一連の動作の中でＥＥＰＲＯＭ３から、各種のパラメータを読み込み、メモリー２の所定のアドレスに格納する。
【００２２】
そしてＳ１（ＳＷ１）がオンされるなどして防振システムの一連の動作を撮影者が開始させる状態にしたなら（ＩＳスタート、ただしブレ補正は未だ行っていない）、処理で用いる変数の初期化、ＡＧＣなどの処理を行う。
【００２３】
ＡＧＣは像振れを検出するイメージセンサー５の蓄積時間、増幅回路６の増幅率を決定するための処理である。比較的短い一定時間イメージセンサー５の蓄積を行い、それにより形成された画像の射影信号をイメージセンサー５における画像処理機能を用いて算出し、この射影信号をＭＰＵ１のＡ／Ｄ変換端子から読み込み、その平均値を求める。この際に用いる射影信号は水平もしくは垂直方向の射影信号のうちどちらか一方を用いれば良い。４つの領域の射影信号をＭＰＵ１のＡ／Ｄ変換端子から読み込み、全ての信号値の平均値を求める。そしてその値からイメージセンサー５の蓄積時間、増幅回路６の増幅率を決定する。その決定はあらかじめ求められたテーブルを参照することにより行われる。なおこのテーブルはＥＥＰＲＯＭに記憶されており、初期化の際にメモリー２に転送されている。またここで決定される本蓄積（像振れを検出するための信号を得るための蓄積）の最長時間は１０ｍｓｅｃ程度が望ましい。
【００２４】
そののちＭＰＵ１は本蓄積（像振れを検出するための信号を得るための蓄積）を開始するとともに、本蓄積終了のタイミングを得るための第一のタイマーを起動する。本蓄積は、イメージセンサー５のイメージゾーンの電荷をメモリーゾーンへ転送することによってクリアすることにより開始される。このタイマーは一定時間経過時に割り込みを発生するものである。この一定時間が蓄積時間である。また次回以降の本蓄積開始タイミングを得るための第二のタイマーも同時に起動する。このタイマーは起動後は一定時間毎に割り込みを生じるものである。ＭＰＵ１はこの一定時間毎の割り込みが生じるたびに本蓄積を開始することになる。この一定時間は像振れ補正の能力を左右するものであるが、蓄積時間などとの関係から通常は数１０ｍｓｅｃ程度となる。
【００２５】
ＭＰＵ１はこの第一のタイマーからの割り込みが発生したならば蓄積終了の処理を行う。これはイメージセンサー５のイメージゾーンからメモリーゾーンへ電荷を転送することによって行われる。またこの転送の際にイメージセンサー５上に形成された画像の各々の領域における水平方向・垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、イメージセンサー５の射影信号用のメモリー５０５に記憶する。
【００２６】
ＭＰＵ１はイメージセンサー５に対して与える指示信号により、メモリーゾーン５０３に転送された画像そのものを読み出すか、メモリー５０５に記憶された射影信号を読み出すかを選択できるが、ここでは射影信号を読み出すようにイメージセンサー５に指示を与える。それと同時にＤＭＡを行うための設定を行う。設定が終了したならば、ＭＰＵ１はイメージセンサー５に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー５は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたびに、まず水平方向の四つの領域の射影信号を出力する。ついで、垂直方向の四つの領域の射影信号を出力する。ＭＰＵ１は読み出しパルスに同期してＡ／Ｄ変換を行い、その結果をＤＭＡ転送によりメモリー２に格納する。
【００２７】
ついで第二のタイマーによる割り込みが発生したならば、ＭＰＵ１は第一のタイマーを起動し、本蓄積（像振れを検出するための信号を得るための蓄積）を開始するとともに、動きベクトルを求める演算処理を行う。ただし、今回は一度目の第二のタイマーによる割り込みであるため、動きベクトルを求める際の相関演算の対象となる１フレーム前の射影信号のデータが無いので、ここでは現在メモリー２に格納されているデータを相関演算の対象データを格納するエリアに転送するなどの処理のみを行い、相関演算は行わない。この相関演算の対象データを格納するエリアへの転送は次の様に行われる。相関演算は水平垂直に各々４分割された１６の領域について行うので、相関演算の対象となるのは、１６分割された領域の現在のデータの中央部の一部であるので、その中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。例えば、１００×１００画素のセンサーを用いていた場合は、各々の領域の射影信号として２５画素分のデータがあるので、その中央部分の１３画素、それぞれの領域の７画素目から１９画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。この転送動作を１６個の領域について行う。
【００２８】
そして再び第一のタイマーからの割り込みが発生したならば前回と同一の処理を行う。まずは蓄積終了の処理を行う。イメージセンサー５のイメージゾーン５０１からメモリーゾーン５０３へ電荷を転送し、この転送の際にイメージセンサー５上に形成された画像の各々の領域の水平垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、イメージセンサー５の射影信号用のメモリー５０５に各々記憶する。ＭＰＵ１はイメージセンサー５に対して射影信号を読み出すように指示を与える。それと同時にＤＭＡを行うための設定を行う。設定が終了したならば、ＭＰＵ１はイメージセンサー５に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー５は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたびに、各々の領域の水平垂直方向の射影信号を出力する。ＭＰＵ１は読み出しパルスに同期してＡ／Ｄ変換を行い、その結果をＤＭＡ転送によりメモリー２に格納する。
【００２９】
さらに第二のタイマーによる割り込みが発生したならば、ＭＰＵ１は第一のタイマーを起動し、本蓄積（像振れを検出するための信号を得るための蓄積）を開始するとともに、動きベクトルを求める演算処理を行う。
【００３０】
この動きベクトルの算出は、相関演算の対象となる１フレーム前の射影信号データと現在の射影信号データの相関値を演算し、その値が最小となる点を見つけることで行われる。相関値は、
【００３１】
【数１】
2006217311.tif 000003
と求められる。すなわち１画素づつずらしながら、上記の式を用い相関値を計算し、それが最小となるｉを求める。
【００３２】
さらに補間演算を行い、１画素以下の分解能で相関値が最小となる点を求める。この方法は直線補間などが知られている。
【００３３】
例えば１００×１００画素のセンサーを水平垂直に各々４分割している場合は、射影信号として１００画素分のデータがあり、相関演算の対象データとして１３画素のデータがある。よってｊの範囲はそれぞれ、ｊ＝−６から、ｊ＝６となる。またｉの範囲は各領域で異なり、左側の領域からそれぞれ、ｉ＝−６から、ｉ＝８１まで、ｉ＝−３１から、ｉ＝５６まで、ｉ＝−５６から、ｉ＝３１まで、ｉ＝−８１から、ｉ＝−６までとなる。ただしこれでは相関演算の計算量が多いので、ｉの範囲は狭くしても構わない。
【００３４】
よって一番左側の領域は、まずｉ＝−６としてｊを−６からまで＋１しながら相関値を計算しメモリに記憶する。ついでｉ＝−５とし相関値を計算し、その値をメモリに記憶する。同様にしてｉ＝８１まで相関値を計算しメモリに記憶する。全ての値が計算されたら、その値を比較し、最小になる座標を求める。さらに補間演算を行い、１画素以下の分解能で相関値が最小となる点を求める。
【００３５】
そしてこの処理の最後に現在メモリーに格納されているデータを相関演算の対象データを格納するエリアに転送する。この相関演算の対象データを格納するエリアへの転送は上述の様に行われる。相関演算の対象となるのは、各々の領域のデータの中央部の一部である。例えば、各々の領域の射影信号として２５画素分のデータがあれば、その中央部分の１３画素、７画素目から１９画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。
【００３６】
上記の処理を水平方向、垂直方向に関して行い、各々の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【００３７】
この処理を全ての領域について行い、１６個の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【００３８】
全ての領域の水平方向、垂直方向の動きベクトルが求まったならば、その平均を求め、全体の水平方向、垂直方向の動きベクトルとする。
【００３９】
ついでＭＰＵは動きベクトルから補正レンズの駆動位置を求める。
【００４０】
本実施例ではムービングマグネット（ＭＭ）を用いたコイルに流す電流に比例した位置に補正レンズが移動する駆動装置を用いている。
【００４１】
ＭＰＵは水平方向の動きベクトルからコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、ＰＷＭ（パルス幅変調）したものとディジタル量として与えるようにしている。これはＭＰＵを用いて電流を制御する際はコスト的に有利であるなどの理由による。よって水平方向の動きベクトルの値からＰＷＭのデュティーを求めるテーブルを用意しておき、ＭＰＵは水平方向の動きベクトルの値から該当するＰＷＭのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでＰＷＭのデュティーを設定する。なおこのテーブルはＥＥＰＲＯＭに設定しておくことがのぞましい。
【００４２】
このようにしてＰＷＭの周期、デュティーが求まったならばＭＰＵは所定のレジスタにこの値を設定する。これによりＰＷＭされた駆動信号が補正レンズ駆動装置７に与えられる。駆動信号を与えられた補正レンズ駆動装置７は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【００４３】
ついでＭＰＵは垂直方向の動きベクトルから補正レンズの駆動位置を求める。
【００４４】
ＭＰＵは垂直方向の動きベクトルの値からコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、ＰＷＭ（パルス幅変調）したものとディジタル量として与えるようにしている。よって垂直方向の動きベクトルの値からＰＷＭのデュティーを求めるテーブルを用意しておき、ＭＰＵは垂直方向の動きベクトルの値から該当するＰＷＭのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでＰＷＭのデュティーを設定する。なおこのテーブルはＥＥＰＲＯＭに設定しておくことがのぞましい。
【００４５】
このようにしてＰＷＭの周期、デュティーが求まったならばＭＰＵは所定のレジスタにこの値を設定する。これによりＰＷＭされた駆動信号が補正レンズ駆動装置８に与えられる。駆動信号を与えられた補正レンズ駆動装置８は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【００４６】
このように、センサーの画面を水平方向に複数個に分割した短冊状の領域において水平方向の射影信号を、センサーの画面を垂直方向に複数個に分割した短冊状の領域において垂直方向の射影信号を求め、射影信号の一部を画面の分割に合わせて、分割された各画面の水平垂直方向の射影信号とし用いることにより、画面を複数に分割しても動きベクトルの検出のダイナミックレンジを広くとることを可能にした。
【００４７】
［他の実施例］
（第二の実施例）
図１に本発明の第二実施例のブロック図を示す。
【００４８】
本実施例においては、イメージセンサー５上に形成された画像の水平方向・垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、この射影信号をＭＰＵ１のＤＭＡ機能を用いてＡ／Ｄ変換端子からメモリー２に転送し、メモリー２に転送されたデータから動きベクトルを求めることによって像ぶれを検出し、これをもとに像振れを補正する方向に補正レンズを駆動する事で、像振れを補正している。
【００４９】
その補正のシーケンスを図５に示すフローチャートを用いて説明する。またタイミングチャートを図６に、センサーの構成の概略を図４に示す。
【００５０】
カメラのメインスイッチがオンするなどして、カメラのメインシーケンスが開始されると、ＭＰＵ１は初期処理の一連の動作の中でＥＥＰＲＯＭ３から、各種のパラメータを読み込み、メモリー２の所定のアドレスに格納する。
【００５１】
そしてＳ１（ＳＷ１）がオンされるなどして防振システムの一連の動作を撮影者が開始させる状態にしたなら（ＩＳスタート、ただしブレ補正は未だ行っていない）、処理で用いる変数の初期化、ＡＧＣなどの処理を行う。
【００５２】
ＡＧＣは像振れを検出するイメージセンサー５の蓄積時間、増幅回路６の増幅率を決定するための処理である。比較的短い一定時間イメージセンサー５の蓄積を行い、それにより形成された画像の射影信号をイメージセンサー５における画像処理機能を用いて算出し、この射影信号をＭＰＵ１のＡ／Ｄ変換端子から読み込み、その平均値を求める。そしてその値からイメージセンサー５の蓄積時間、増幅回路６の増幅率を決定する。その決定はあらかじめ求められたテーブルを参照することにより行われる。なおこのテーブルはＥＥＰＲＯＭに記憶されており、初期化の際にメモリー２に転送されている。またここで決定される本蓄積（像振れを検出するための信号を得るための蓄積）の最長時間は１０ｍｓｅｃ程度が望ましい。
【００５３】
そののちＭＰＵ１は本蓄積（像振れを検出するための信号を得るための蓄積）を開始するとともに、本蓄積終了のタイミングを得るための第一のタイマーを起動する。本蓄積は、イメージセンサー５のイメージゾーンの電荷をメモリーゾーンへ転送することによってクリアすることにより開始される。このタイマーは一定時間経過時に割り込みを発生するものである。この一定時間が蓄積時間である。また次回以降の本蓄積開始タイミングを得るための第二のタイマーも同時に起動する。このタイマーは起動後は一定時間毎に割り込みを生じるものである。ＭＰＵ１はこの一定時間毎の割り込みが生じるたびに本蓄積を開始することになる。この一定時間は像振れ補正の能力を左右するものであるが、蓄積時間などとの関係から通常は数１０ｍｓｅｃ程度となる。
【００５４】
ＭＰＵ１はこの第一のタイマーからの割り込みが発生したならば蓄積終了の処理を行う。これはイメージセンサー５のイメージゾーンからメモリーゾーンへ電荷を転送することによって行われる。またこの転送の際にイメージセンサー５上に形成された画像の各々の領域における水平方向・垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、イメージセンサー５の射影信号用のメモリー５０５に記憶する。ＭＰＵ１はイメージセンサー５に対して与える指示信号により、メモリーゾーンに転送された画像そのものを読み出すか、メモリーに記憶された射影信号を読み出すかを選択できるが、ここでは射影信号を読み出すようにイメージセンサー５に指示を与える。それと同時にＤＭＡを行うための設定を行う。設定が終了したならば、ＭＰＵ１はイメージセンサー５に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー５は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたびに、まず水平方向の四つの領域の射影信号を出力する。ついで、垂直方向の四つの領域の射影信号を出力する。ＭＰＵ１は読み出しパルスに同期してＡ／Ｄ変換を行い、その結果をＤＭＡ転送によりメモリー２に格納する。
【００５５】
このＤＭＡ転送が終了したならば、動きベクトルを求める演算処理を行う。ただし今回は一度目の処理であるため、動きベクトルを求める際の相関演算の対象となる１フレーム前の射影信号のデータが無いので、ここでは現在メモリー２に格納されているデータを相関演算の対象データを格納するエリアに転送するなどの処理のみを行い、相関演算は行わない。この相関演算の対象データを格納するエリアへの転送は次の様に行われる。相関演算は水平垂直に各々４分割された１６の領域について行うので、相関演算の対象となるのは、１６分割された領域の現在のデータの中央部の一部であるので、その中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。例えば、１００×１００画素のセンサーを用いていた場合は、各々の領域の射影信号として２５画素分のデータがあるので、その中央部分の１３画素、それぞれの領域の７画素目から１９画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。この転送動作を１６個の領域について行う。
【００５６】
ついで第二のタイマーによる割り込みが発生したならば、ＭＰＵ１は第一のタイマーを起動し、本蓄積（像振れを検出するための信号を得るための蓄積）を開始する。
【００５７】
そして再び第一のタイマーからの割り込みが発生したならば前回と同一の処理を行う。まずは蓄積終了の処理を行う。イメージセンサー５のイメージゾーン５０１からメモリーゾーン５０３へ電荷を転送し、この転送の際にイメージセンサー５上に形成された画像の各々の領域の水平垂直方向の射影信号をイメージセンサー５における画像処理機能を用いて算出し、イメージセンサー５の射影信号用のメモリー５０５に各々記憶する。ＭＰＵ１はイメージセンサー５に対して射影信号を読み出すように指示を与える。それと同時にＤＭＡを行うための設定を行う。設定が終了したならば、ＭＰＵ１はイメージセンサー５に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー５は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたびに、各々の領域の水平垂直方向の射影信号を出力する。ＭＰＵ１は読み出しパルスに同期してＡ／Ｄ変換を行い、その結果をＤＭＡ転送によりメモリー２に格納する。ＤＭＡ転送が終了したならば、動きベクトルを求める演算処理を行う。
【００５８】
この動きベクトルの算出は、相関演算の対象となる１フレーム前の射影信号データと現在の射影信号データの相関値を演算し、その値が最小となる点を見つけることで行われる。相関値は、
【００５９】
【数２】
2006217311.tif 000004
と求められる。すなわち１画素づつずらしながら、上記の式を用い相関値を計算し、それが最小となるｉを求める。
【００６０】
さらに補間演算を行い、１画素以下の分解能で相関値が最小となる点を求める。この方法は直線補間などが知られている。
【００６１】
例えば１００×１００画素のセンサーを水平垂直に各々４分割している場合は、射影信号として１００画素分のデータがあり、相関演算の対象データとして１３画素のデータがある。よってｊの範囲はそれぞれ、ｊ＝−６から、ｊ＝６となる。またｉの範囲は各領域で異なり、左側の領域からそれぞれ、ｉ＝−６から、ｉ＝８１まで、ｉ＝−３１から、ｉ＝５６まで、ｉ＝−５６から、ｉ＝３１まで、ｉ＝−８１から、ｉ＝−６までとなる。ただしこれでは相関演算の計算量が多いので、ｉの範囲は狭くしても構わない。
【００６２】
よって一番左側の領域は、まずｉ＝−６としてｊを−６からまで＋１しながら相関値を計算しメモリに記憶する。ついでｉ＝−５とし相関値を計算し、その値をメモリに記憶する。同様にしてｉ＝８１まで相関値を計算しメモリに記憶する。全ての値が計算されたら、その値を比較し、最小になる座標を求める。さらに補間演算を行い、１画素以下の分解能で相関値が最小となる点を求める。
【００６３】
そしてこの処理の最後に現在メモリーに格納されているデータを相関演算の対象データを格納するエリアに転送する。この相関演算の対象データを格納するエリアへの転送は上述の様に行われる。相関演算の対象となるのは、各々の領域のデータの中央部の一部である。例えば、各々の領域の射影信号として２５画素分のデータがあれば、その中央部分の１３画素、７画素目から１９画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアへ転送する。
【００６４】
上記の処理を水平方向、垂直方向に関して行い、水平方向の動くベクトル、垂直方向の動くベクトルを求める。
【００６５】
全ての領域の水平方向、垂直方向の動きベクトルが求まったならば、その平均を求め、全体の水平方向、垂直方向の動きベクトルとする。
【００６６】
ついでＭＰＵは動きベクトルから補正レンズの駆動位置を求める。
【００６７】
本実施例ではムービングマグネット（ＭＭ）を用いたコイルに流す電流に比例した位置に補正レンズが移動する駆動装置を用いている。
【００６８】
ＭＰＵは水平方向の動きベクトルからコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、ＰＷＭ（パルス幅変調）したものとディジタル量として与えるようにしている。これはＭＰＵを用いて電流を制御する際はコスト的に有利であるなどの理由による。よって水平方向の動きベクトルの値からＰＷＭのデュティーを求めるテーブルを用意しておき、ＭＰＵは水平方向の動きベクトルの値から該当するＰＷＭのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでＰＷＭのデュティーを設定する。なおこのテーブルはＥＥＰＲＯＭに設定しておくことがのぞましい。
【００６９】
このようにしてＰＷＭの周期、デュティーが求まったならばＭＰＵは所定のレジスタにこの値を設定する。これによりＰＷＭされた駆動信号が補正レンズ駆動装置７に与えられる。駆動信号を与えられた補正レンズ駆動装置７は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【００７０】
ついでＭＰＵは垂直方向の動きベクトルから補正レンズの駆動位置を求める。
【００７１】
ＭＰＵは垂直方向の動きベクトルの値からコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、ＰＷＭ（パルス幅変調）したものとディジタル量として与えるようにしている。よって垂直方向の動きベクトルの値からＰＷＭのデュティーを求めるテーブルを用意しておき、ＭＰＵは垂直方向の動きベクトルの値から該当するＰＷＭのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでＰＷＭのデュティーを設定する。なおこのテーブルはＥＥＰＲＯＭに設定しておくことがのぞましい。
【００７２】
このようにしてＰＷＭの周期、デュティーが求まったならばＭＰＵは所定のレジスタにこの値を設定する。これによりＰＷＭされた駆動信号が補正レンズ駆動装置８に与えられる。駆動信号を与えられた補正レンズ駆動装置８は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【００７３】
そして再び第二のタイマーによる割り込みが発生したならばＭＰＵ１は第一のタイマーを起動し、本蓄積（像振れを検出するための信号を得るための蓄積）を開始する。
【００７４】
以下同様の処理を繰り返す。
【００７５】
このように、センサーの画面を水平方向に複数個に分割した短冊状の領域において水平方向の射影信号を、センサーの画面を垂直方向に複数個に分割した短冊状の領域において垂直方向の射影信号を求め、射影信号の一部を画面の分割に合わせて、分割された各画面の水平垂直方向の射影信号とし用いることにより、画面を複数に分割しても動きベクトルの検出のダイナミックレンジを広くとることを可能にした。
【図面の簡単な説明】
【００７６】
【図１】本発明の第一第二実施例のブロック図。
【図２】第一実施例の動作の説明図。
【図３】第一実施例の動作のタイミングの説明図。
【図４】本発明第一第二実施例のセンサーの構成の概略を示す図。
【図５】第一実施例の動作の説明図。
【図６】第一実施例の動作のタイミングの説明図。
【符号の説明】
【００７７】
１  ＭＰＵ（マイクロプロセッシングユニット）
２  メモリー
３  ＥＥＰＲＯＭ
４  イメージセンサーに画像を形成するための受光レンズ
５  像振れを検出するためのイメージセンサー
６  イメージセンサーの出力を増幅する増幅回路
７  ピッチ方向に補正レンズを駆動するための補正レンズ駆動装置
８  ヨー方向に補正レンズを駆動するための補正レンズ駆動装置
９  像振れを補正するための補正レンズ
【図１】
2006217311.tif 000005
【図２】
2006217311.tif 000006
【図３】
2006217311.tif 000007
【図４】
2006217311.tif 000008
【図５】
2006217311.tif 000009
【図６】
2006217311.tif 000010