以下、本発明の実施の形態を、図面を参照して説明する。図1は、本発明の第1実施形態であるセンサ出力処理装置が適用された手ブレ補正機能付きカメラの構成を示すブロック図である。なお、本図には、発明に係る構成のみが模式的に示される。
本実施形態のカメラ10は、例えばカメラ本体11に鏡筒12を着脱可能なデジタル一眼レフカメラである。また本実施形態では、鏡筒12内に手ブレ補正機構13が設けられる。すなわち、ブレ補正用の補正レンズ14を備えた手ブレ補正機構13は、撮像レンズ15A、15Bの間に配置される。撮像レンズ15Aから入射した光は、光軸Lに沿って補正レンズ14、撮像レンズ15Bを介してカメラ本体11の撮像素子16へと導かれる。
カメラ本体11および鏡筒12内にはそれぞれカメラCPU17、レンズCPU18が設けられる。カメラCPU17には、メインスイッチ19、測光スイッチ20、レリーズスイッチ21が接続されており、電源ラインおよびグランドとともに、レンズマウント(図示せず)の複数の電極を通して、レンズCPU18に接続される。なお、カメラCPU17は、カメラ全体の様々な制御を行うもので、この他にも図示しない様々なデバイスに接続される。
鏡筒12には、手ブレ補正制御のオン/オフを設定する手ブレ補正スイッチ22が設けられ、手ブレ補正スイッチ22はレンズCPU18に接続される。鏡筒12内には、光軸Lに垂直なカメラの横軸、縦軸に沿ったY、X軸周りの回転角速度を検出する角速度センサ23X、23Yが設けられる。各角速度センサ23X、23Yで検出された信号は、レンズCPU18へ入力され、手ブレ補正制御がオンのとき、レンズCPU18は角速度センサ23X、23Yで検出された各軸周りの角速度、および焦点距離などのレンズ情報に基づき、手ブレを相殺するために補正レンズ14が移動すべきX、Y軸方向の目標位置を算出する。
補正レンズ14は、例えば補正レンズ14を保持する可動部に設けられるコイル(図示せず)と鏡筒12の固定部に設けられるヨークとの間の電磁相互作用により駆動され、コイルへの電流供給はX方向駆動制御部24XおよびY方向駆動制御部24Yによって制御される。補正レンズ14を保持する可動部には、例えばホール素子などを用いた位置センサ25X、25Yが設けられ、補正レンズ14の位置が検出される。検出された補正レンズ14の位置は、レンズCPU18へとフィードバックされ、レンズCPU18は、角速度センサ23X、23Yの信号に基づき算出された補正レンズ14の目標位置と位置センサ25X、25Yから得られた現補正レンズ14の位置とからコイルへの電流供給量を算出し、X方向駆動制御部24XおよびY方向駆動制御部24Yへと出力する。
また、鏡筒12には温度センサ26が設けられ、検出信号はレンズCPU18に入力される。レンズCPU18の通信ポートと、カメラCPU17の通信ポートは、レンズマウントの電極を通して接続され、両者の間では後述するようにデータ通信が行われる。
次に図2〜図4を参照して、本実施形態における手ブレ補正について説明する。図2は、手ブレによるカメラの動きとX、Y軸の関係を模式的に示す斜視図であり、図3は、カメラ本体11、補正レンズ14、X、Y軸の関係を示す正面図である。
図2に示されるように、カメラでの撮影においては、垂直軸(Y軸)周りの回転(ヨー)により横方向(X軸方向)へ移動する像ブレが発生し、水平軸周りの回転(ピッチ)により縦方向(Y軸方向)へ移動する像ブレが発生する。したがって、Y軸周りの回転運動を検出することでX軸方向の像ブレを相殺するための補正レンズ14のX軸方向へのシフト量が決定し、X軸周りの回転運動を検出することでY軸方向の像ブレを相殺するための補正レンズ14のY軸方向へのシフト量が決定する。
図4は、レンズCPU18において実行される手ブレ補正制御のブロック図であり、手ブレ補正は例えば所定時間(例えば1mS)間隔の割り込み処理として実行される。
角速度センサ23X、23Yの各ジャイロで得られたY軸周り、X軸周りのアナログ角速度信号は、レンズCPU18のA/Dポート(A/D1、A/D2)に入力され、A/D演算部33X、33Yにおいてデジタル角速度信号VX、VYに変換される。角速度信号VX、VYは、それぞれ加え合わせ点34X、34Yにおいて、メモリに記録されている所与のオフセット値VVX、VVY(後述)が引かれ、ハイパスフィルタ(HPF)部35X、35Yに入力される。オフセット処理されたY軸、X軸周りの角速度信号(VX−VVX,VY−VVY)は、それぞれハイパスフィルタ(HPF)部35X、35Yにおいて、制御部39からの切替制御値(tt)に基づきフィルタ処理が施された後、角速度演算部36X、36Yへ入力される。
Y軸、X軸周りの角速度(VX−VVX,VY−VVY)は、角度演算部36X、36Yにおいて積分され、Y軸、X軸周りの回転角度(ヨー角θX、ピッチ角θY)が算出される。レンズ駆動位置計算部37X、37Yでは、ヨー角、ピッチ角、およびメモリに保存された焦点距離fなどのレンズ情報38に基づいて、像ブレを相殺するためのX方向、Y方向における補正レンズ14の駆動位置が算出される。
ポート4から入力される手ブレ補正スイッチ22がオン状態の時には、制御部39はレンズ駆動位置計算部37X、37Yにおいて算出されたX軸方向への駆動位置X、Y軸方向への駆動位置Yを補正レンズ14の目標位置とし、駆動位置X、駆動位置Yと補正レンズ14の現在位置X、現在位置Yの偏差を算出し、これらに対して例えばPID演算などの処理を自動制御演算部40X、40Yにおいて施す。自動制御演算部40X、40Yからの出力は、ポート1、ポート2を通してX方向駆動制御部24X、Y方向駆動制御部24Yへ出力され、手ブレ補正機構13に設けられたX方向コイル41X、Y方向コイル41Yへ供給される電流が制御される。
手ブレ補正機構13の可動部の位置、すなわち補正レンズ14の現在のX軸、Y軸方向の位置は、ホールセンサ(位置センサ)25X、25Yからの信号に基づきX方向駆動制御部24X、Y方向駆動制御部24Yにおいて算出され、現在のX位置信号、Y位置信号としてA/Dポート(A/D3、A/D4)を通してレンズCPU18に入力され、A/D演算部43X、43Yにおいてデジタル信号としての現在位置X、現在位置Yへ変換され、フィードバックされる。これにより、手ブレ補正スイッチ22がオンされているときには、角速度センサ23X、23Yの出力に基づいて補正レンズ14の目標とする駆動位置が算出され、この目標値に基づき補正レンズ14がX軸、Y軸方向に移動される。
なお、レンズCPU18は、手ブレ補正スイッチ22のオン/オフ状態に基づいて、図示しないロック機構を制御し、手ブレ補正機構(手ブレ補正レンズ)のロック状態のオン/オフを制御する。
次に図1、図4、図5、図6を参照して、カメラCPU17およびレンズCPU18で実行されるメインフローについて説明する。図5、図6のフローは、カメラ本体11に設けられたメインスイッチ19がオンされると開始される。なお、ここでは鏡筒12がカメラ本体11に装着されていることを前提としている。
図5は、カメラCPU17側のフローチャートである。ステップS100では、後述する温度センサ26からの信号に基づき、角速度センサ23X、23Y周辺の現在の雰囲気温度のチェック処理(温度チェック処理)が行われ、ステップS101ではレリーズスイッチ21がオンされているか否かが判定される。
レリーズスイッチ21がオンされていない場合には、ステップS102においてレンズCPU18との通信を開始し、レンズCPU18に対してロック初期化処理を要求する。一方、レリーズスイッチ21がオンされている場合(ダイレクトレリーズ時)には、ステップS132においてレンズCPU18との通信を開始し、第2レリーズ処理(レリーズ2)を実行することをレンズCPU18に通知し、後述するステップS122以下のレリーズ処理へとジャンプする。
ステップS104では、測光スイッチ20がオンされているか否か判定され、この処理は測光スイッチ20がオンされるまで繰り返される。測光スイッチ20がオンされていると判定されると、ステップS106において、レンズCPU18との通信を開始し、スルー画像の表示が行われることをレンズCPU18に通知する。
ステップS108〜S116では、スルー画像の撮影および表示が行われる。すなわち、ステップS108ではAE処理、ステップS110ではAF処理が行われ、ステップS112ではステップS110で設定されたフォーカス位置、ステップS108で決定された露出の下、撮像素子(CCD)16における電荷蓄積が開始される。そしてステップS114では撮像素子(CCD)16に蓄積された画素信号の例えばフィールド読出しが行われ、画像信号として出力される。ステップS116では、出力された画像信号がモニタ(図示せず)に出力されスルー画像が表示される。
次にステップS118では、レリーズスイッチ21がオンされているか否かが再び判定される。レリーズスイッチ21がオンされていない場合、処理はステップS130へジャンプする。一方、レリーズスイッチ21がオンされている場合には、ステップS120においてレンズCPU18との通信を開始し、第1レリーズ処理(レリーズ1)を実行することをレンズCPU18に通知する。そして、ステップS122〜S128において、静止画の撮影が実行される。すなわち、ステップS122ではステップS110で設定されたフォーカス位置、ステップS108で決定された露出の下、撮像素子(CCD)16における電荷蓄積が開始され、ステップS124において撮像素子(CCD)16に蓄積された電荷の例えば全画素読出しが行われる。ステップS126では、出力された画像信号がステップS126において不揮発性の映像メモリ(図示せず)に保存され、ステップS128においてその画像がモニタ(図示せず)に表示される。
次にステップS130では、測光スイッチ20がオンされているか否かが判定される。測光スイッチ20がオンされていると判定されれば処理はステップS106へ戻り、オンされていないと判定されるとステップS102に戻り同様の処理が繰り返される。なお以上の処理はカメラ本体11のメインスイッチ19がオフされるまで、あるいはカメラがスリープモードへ移行するまで繰り返される。
次に図6を参照して、図5のステップS100で実行される温度チェック処理について説明する。
温度チェック処理では、まずステップS200において温度センサ26からの入力が現在の温度(検出温度)Tとして設定される。ステップS202では、検出温度Tとメモリに記録された所定温度Tadjの温度差ΔT(=|T−Tadj|)が算出され、ステップS204において温度差ΔTが、所定値よりも大きいか否かが判定される。温度差ΔTが所定値よりも大きくないと判定されたときにはステップS206において切替制御値tt=0に設定され、大きいと判定されたときにはステップS208において切替制御値tt=1に設定される。また、本実施形態の温度チェック処理では、ステップS210において、後述するハイパスフィルタ処理において用いられる変数subおよび変数addの初期値が0に設定され、本処理は終了する。
次に図7のフローチャートを参照して、レンズCPU18のメインフローについて説明する。ステップS300、S302ではステータスレジスタの初期化が行われる。ここでは、ステップS300において手ブレ補正制御の状態(手ブレ補正ステータス)を示すフラグSRが初期化され、ステップS302においてレリーズの状態(レリーズステータス)を示すフラグRLSが初期化される。すなわち、SR=RLS=0に設定される。フラグSRは3つの状態を取り、SR=0は初期化動作が実行されたことを示し(図5ステップS102に対応するロック初期化処理終了時にSR=0とされる)、SR=1は手ブレ補正がオフ状態であること、SR=2は手ブレ補正がオン状態であることを示す。また、フラグRLSは2つの状態を取り、RLS=0はスルー画像が表示されている状態を示し、RLS=1はレリーズ動作中であることを示す。
フラグSR、RLSの初期化が完了すると、ステップS304で、カメラCPU17から通信要求があったか否かが判定され、この判定はカメラCPU17から通信要求があるまで繰り返される。レンズCPU18においてカメラCPU17から通信要求が検出されると、ステップS306、S308、S310、S312において、カメラCPU17からの通信がロック初期化要求(補正レンズ14のロック作動要求)か、カメラ本体11においてスルー画像の表示を行うことを通知するものなのか、カメラ本体11において第1レリーズ(レリーズ1)動作を行うことを通知するものなのか、あるいは第2レリーズ(レリーズ2)動作を行うことを通知するものかなのかがそれぞれ判定される。
ロック初期化要求の場合には、ステップS314においてロック初期化動作が実行される。ロック初期化動作では、補正レンズ14を光軸に一致させる中心駆動処理を実行した後、図示しないロック機構を用いて補正レンズ14の位置をロック状態とする。そして電磁アクチュエータを構成するコイル41X、41Yへの電力供給を停止するとともに補正レンズ14の駆動を停止し、手ブレ補正ステータスを示すフラグSRを、ロック初期動作が実行されたことを示す「0」に設定する(SR=0)。なお中心駆動処理の詳細については後述する。
一方ステップS308において、カメラCPU17からの通信がスルー画像の表示を通知するものであると判定された場合には、ステップS316において、レリーズステータスを示すフラグRLSが、スルー画像表示中であることを示す「0」に設定される(RLS=0)。またステップS310において、カメラCPU17からの通信が、第1レリーズ(レリーズ1)動作を行うことを通知するものであると判定された場合には、ステップS318においてレリーズステータスを示すフラグRLSが、レリーズ動作中であることを示す「1」に設定される(RLS=1)。そしてステップS312において、カメラCPU17からの通信が、第2レリーズ(レリーズ2)動作を行うことを通知するものであると判定された場合には、ステップS320において手ブレ補正ステータスを示すフラグSRが、手ブレ補正がオフ状態であることを示す「1」に設定されるとともに、レリーズステータスを示すフラグRLSが、レリーズ動作中であることを示す「1」に設定される(RLS=1)。なおレンズCPU18の電源がオンである間、ステップS304〜S312の処理が繰り返される。
またレンズCPU18では、1msの周期で図8のフローチャートに示されるタイマ割り込みが発生する。以下図2、図4、図8を参照して、本実施形態の1msタイマ割り込み処理について説明する。
1msタイマ割り込み処理では、まずステップS400において、フラグRLS=1であるか否か、すなわち現ステータスがレリーズ動作中であるか否かが判定される。RLS≠1、すなわちレリーズ動作中でなければ、ステップS402において、手ブレ補正スイッチ22のオン/オフ状態が検知され、同スイッチがオン状態であるか否かが判定される。
手ブレ補正スイッチ22がオフ状態であれば、ステップS404において、フラグSR=1、あるいはSR=0であるか否か、すなわち現ステータスが、手ブレ補正オフの状態、あるいはロック初期化動作済みの状態であるか否かが判定される。SR≠1かつSR≠0のとき、すなわち現ステータスが手ブレ補正オン状態のときには、ステップS406において、後述する後述する中心駆動処理(図9)を実行し、ステップS408において手ブレ補正レンズ14をロック状態にする。
ステップS410では、手ブレ補正ステータスを示すフラグSRを手ブレ補正がオフであることを示す「1」に設定する(SR=1)。そして、ステップS412において、手ブレ補正機構13(図4)のコイルへの電力供給を停止して手ブレ補正の駆動をオフし、現在のタイマ割り込み処理を終了する。一方、ステップS404においてSR=1またはSR=0であるとき、本タイマ割り込み処理は直ちに終了する。
一方、ステップS402において、手ブレ補正スイッチ22がオン状態であると判定されると、ステップS414において、手ブレ補正ステータスを示すフラグSR=2であるか否かが判定される。SR=2の場合、手ブレ補正が既に実行されていることを示すので、処理はステップS422へとジャンプし、後述する手ブレ補正駆動処理(図16)を継続して本タイマ割り込み処理を終了する。またSR≠2のときには、手ブレ補正駆動処理はオフ状態にあり、補正レンズ14はロック状態にあるので、ステップS416において補正レンズ14の中心駆動処理(図9参照)を行い、ステップS418で補正レンズ14をロック解除状態とする。そしてステップS420において手ブレ補正ステータスのフラグSRを「2」(手ブレ補正オン)に設定した後、ステップS422において手ブレ補正駆動処理(図16)を開始して本タイマ割り込み処理を終了する。
また、ステップS400においてレリーズステータスのフラグRLS=1のとき、すなわちレリーズ動作中と判定された場合には、ステップS423において手ブレ補正スイッチ22のオン/オフ状態が検知され、同スイッチがオン状態であるか否かが判定される。手ブレ補正スイッチ22がオフ状態の場合、ステップS424においてSR=1(手ブレ補正ステータスがオフ)であるか否かが判定され、SR=1、すなわち手ブレ補正ステータスがオフ状態のときには、ステップS427において、後述する現在位置保持駆動処理(図10)を実行し、本タイマ割り込み処理は終了する。また、SR≠1、すなわち手ブレ補正ステータスがオン状態のままであると判定されると、ステップS428において手ブレ補正ステータスのフラグSRが、オフを示す値「1」に変更され、ステップS430において手ブレ補正駆動をオフにし、本タイマ割り込み処理は終了する。
一方、ステップS423において手ブレ補正スイッチ22がオンされていると判定されると、ステップS425においてSR=2(手ブレ補正ステータスがオン)であるか否かが判定される。SR=2であれば、ステップS422において手ブレ補正駆動処理(図16)が継続され、本タイマ割り込み処理は終了する。一方、SR≠2、すなわち手ブレ補正ステータスがオフ状態であると判定されると、ステップS427において、後述する現在位置保持駆動処理(図10)が行われ、本タイマ割り込み処理は終了する。
次に図9のフローチャートを参照して図8のステップS406、S416における中心駆動処理について説明する。中心駆動処理では、ステップS500において、ホールセンサ25X、25Y(図4)の出力に基づき補正レンズ14の現在の位置情報を検出し、ステップS502において制御部39における補正レンズ14の目標位置である駆動位置(X,Y)を光軸および手ブレ補正レンズ14の可動範囲の中心に対応する(0,0)に設定する。その後ステップS504、S506において、自動制御のための演算を、現在位置および目標位置に基づき行い、その演算結果に基づき手ブレ補正機構13を駆動して、補正レンズ14を中心位置(0,0)へと移動する。
次に図10のフローチャートを参照して図8のステップS427で実行される現在位置保持駆動処理について説明する。現在位置保持駆動処理は、手ブレ補正スイッチ22がオフかつ手ブレ補正ステータスがオフ(SR=1)の状態、または、手ブレ補正スイッチ22がオンかつ手ブレ補正ステータスがオフ(SR≠2)の状態(手ブレ補正が実行されていない状態)において、レリーズ操作が行われた場合に実行される。
したがって本実施形態では、補正レンズ14のロック状態を手ブレ補正の実際の設定に合わせることなく、補正レンズ14の位置を、手ブレ補正機構13を用いて現在の位置に電磁的にロックして撮影を行う。すなわちステップS700では、ホールセンサ25X、25Yの信号に基づき補正レンズ14の現在位置X、Yを取得し、ステップS702において制御部39で設定される駆動位置X、Yを現在位置X、Yに設定する。ステップS704では、設定された駆動位置X、Yに基づき自動制御計算がなされ、ステップS706ではそれに基づき手ブレ補正機構13が駆動される。すなわち、補正レンズ14が現在の位置に電磁的にロックされる。なお、本実施形態ではレリーズスイッチ21がオンされたときに本処理が実行される構成とされるが、レリーズボタンが半押しされ測光スイッチがオンされたときに同処理を行うことも可能である。また、ロック状態の変更は、レリーズ動作終了後に実行される。
次に図1、図4、図11〜図16を参照して、図8のステップS422において実行される手ブレ補正駆動処理について説明する。
図11(a)は、角速度(ジャイロ)センサ(23X、23Y)に温度T0、T1、T2、T3において同一の搖動を与えたときの出力例を示すグラフである。横軸は時間、縦軸は角速度センサからの出力であり、ハイパスフィルタ(HPF)部35X、35Yへの入力Vinに対応する(以下、角速度センサ23X、23Yの出力VX、VYをVinで代表する)。
角速度センサからの出力Vinには、図11(a)に示されるように温度ドリフトが存在し、温度に依存するオフセット値Vs(T)が含まれる。そのため角速度センサからの出力をそのまま積分して振れ角度を求め手ブレ補正を行うと、補正レンズ14の位置がずれ、適正な補正が行えない。そこで、従来から出力Viのオフセット値Vs(T)をハイパスフィルタ(35X、35Y)部で除去し、その出力Voutを角度演算部36X、36Yにおいて積分することにより温度ドリフトの影響を排除している。すなわちハイパスフィルタを通すと、図11(b)に示されるように、出力VoutからはオフセットVs(T)が除去され、静止時出力は0となる。しかし、ハイパスフィルタは、図12に示されるように特定のカットオフ周波数f0以下の帯域の角速度変動も濾波してしまうため、例えば、カットオフ周波数f0よりも小さい周波数faの手ブレの検出精度は低下してしまう。
そのため本実施形態の手ブレ補正駆動処理では、以下に説明するように、出力Vinからオフセット値を直接引くことで、ハイパスフィルタによる低周波手ブレ成分の検出精度の低下を防止、または低減する。
図13は、角速度(ジャイロ)センサ23X、23Yが静止しているときの出力(静止出力)、すなわち出力Vinのオフセット値Vs(T)の温度変化を例示するグラフである。なお、横軸は温度T、縦軸は出力Vs(T)である。図13に例示されるように、オフセット値Vs(T)は温度Tに応じて異なる値をとるため、本実施形態では、出荷前の調整時に、例えばカメラの使用が予想される一般的な温度範囲における所定温度(例えば使用される頻度最も高いと予想される温度)Tadjにおいて、オフセット値(静止出力)Vs(T)を計測し、その時のオフセット値VV(VVX,VVY)をメモリに予め記録しておく。オフセット値VVは個々の角速度センサでばらつきがあるため、角速度センサ23X、23YそれぞれVVX、VVYを持つ。
手ブレ補正駆動時の温度が、調整時温度Tadjに等しいとき、あるいは略等しいときには、ハイパスフィルタを用いなくとも、出力Viからオフセット値VVを差し引くことでオフセットによるずれは防止できる。このため第1実施形態では、検出温度が調整時温度Tadjの近傍にあるときには、ハイパスフィルタの使用を停止し、温度Tadjとの温度差が大きいときには、温度ドリフトの影響が大きくなるので、ハイパスフィルタを使用してこれを除去する。すなわち、角速度センサが静止した状態におけるハイパスフィルタ(HPF)部35X、35Yからの出力は、図14に示されるように、温度Tadjを中心とする所定領域Bでは、ハイパスフィルタは使用されずVi−VVの値がそのまま出力され、その両側の領域A、Bではハイパスフィルタが使用され、低周波成分が除去された信号が出力される。
よって、第1実施形態では、温度Tadjの近傍の領域Bでは、ハイパスフィルタのカットオフ周波数よりも低い周波数の角速度信号が除去されることがないので、低周波の手ブレに対応する補正も行うことができ、センサの温度ドリフトによるズレもオフセット値VVの除去により除去、あるいは低減される。なお、図15に、ハイパスフィルタを使用する場合(領域A、C)と、使用しない場合(領域B)のハイパスフィルタ(HPF)部35X、35Yの周波数特性を例示する(横軸は周波数f、縦軸はゲインである)。
次に図16のフローチャートを参照して、図8のステップS422において実行される本実施形態の手ブレ補正駆動処理について詳述する。
レンズCPU18の手ブレ補正駆動処理では、まずステップS800において、角速度センサ(ジャイロ)23X、23YからのY軸、X軸周りのアナログの角速度信号をデジタル信号VX、VYに変換する。ステップS802では、角速度信号VX、VYから、メモリに記録されている所与のオフセット値VVが引かれ、角速度信号(VX−VVX,VY−VVY)とされる(加え合わせ点34X、34Y)。
ステップS804において、角速度信号(VX−VVX,VY−VVY)は、制御部39からの切替制御値(tt)に基づき(図4、図6ステップS206、S208参照)、後述するハイパスフィルタ処理(HPF計算)が施される(ハイパスフィルタ(HPF)部35X、35Y)。ハイパスフィルタ処理が施された角速度信号は、ステップS806において積分され、Y軸、X軸周りの回転角に対応する角度信号が算出される(角度演算部36X、36Y)。
ステップS808では、ステップS806において計算された回転角とレンズの焦点距離fなどから駆動位置X、Yが計算される(レンズ駆動位置計算部37X、37Y;制御部39)。ステップS810では、ホールセンサ25X、25Yの信号に基づき補正レンズ14の現在位置を取得し(X、Y方向駆動制御部24X、24Y)、ステップS812の自動制御計算において、駆動位置X、Yとフィードバックされる現在位置の偏差から操作量が計算される(自動制御演算部40X、40Y)。そしてステップS814において操作量に基づきX、Y方向コイル41X、41Yに電力が供給され、手ブレ補正機構13が駆動され(X、Y方向駆動制御部24X、24Y)、本手ブレ補正駆動処理は終了する。
次に図17のフローチャートおよび図18のブロック図を参照して、図16のステップS804のハイパスフィルタ処理(HPF計算)について説明する。
レンズCPU18のハイパスフィルタ処理(HPF計算)では、まずステップS900において図6の温度チェック処理で設定された切替制御値ttが0であるか否かが判定される。tt=0、すなわち検出温度Tと調整時温度Tadjの差の絶対値ΔTが所定値以下で、現在の温度が図14の領域Bにあるときには、本ハイパスフィルタ処理(HPF計算)は直ちに終了し、tt≠0、すなわち検出温度Tと調整時温度Tadjの差の絶対値ΔTが所定値よりも大きく、現在の温度が図14の領域AまたはCにあるときには、ステップS902において所定の時定数でのデジタルハイパスフィルタの計算が実行され、本処理は終了する。なお、ΔTの閾値に用いられる所定値は、領域BにおけるVin−VVを積分して得られる角度が、実用上手ブレ補正に問題を起こさない範囲の値に設定される。
図18は、上記デジタルフィルタの構成を示すブロック図であり、図18において変数addは、過去所定ステップ数分のVoutの積算値を表し、subは最新のaddを、所定ステップ数に対応する時定数で割った値(移動平均)を表す。スイッチSWは、tt=1でオン状態、tt=0でオフ状態をとり、オン状態では、subの値がVinから減算されてVoutとされる。なお、積算されるステップ数は時定数に対応して設定される。
以上のように第1実施形態によれば、所定温度(調整時温度)における角速度センサ出力のオフセット値とその所定温度(調整時温度)を予め記録し、角速度センサの出力から記録されたオフセット値を引くとともに、現在の温度が所定温度(調整時温度)に近いときにはハイパスフィルタの使用を停止し、温度差が大きいときにハイパスフィルタを使用するようにすることで、通常使用される常温下ではハイパスフィルタの影響を受けない高精度な手ブレ補正が可能となり、かつ通常使用される常温環境下からずれた環境では、ハイパスフィルタにより角速度センサの温度ドリフトの影響を防止できる。
次に図19〜図21を参照して、本発明の第2実施形態のセンサ出力処理装置について説明する。第2実施形態のセンサ出力処理装置も第1実施形態と同様に手ブレ補正駆動処理に関するもので、第1実施形態との違いは、ハイパスフィルタ(HPF)部35X、35Yの構成のみである。したがって、以下の説明では、第1実施形態とことなる構成についてのみ説明する。
第1実施形態では、調整時温度Tadj近くではハイパスフィルタの使用を停止し、それ以外では一定の時定数のハイパスフィルタを使用した。しかし、第2実施形態では、検出温度Tと調整時温度Tadjの温度差に応じて、異なる時定数のハイパスフィルタを使用する。
すなわち、図19のフィルタ周波数特性図に示されるように、時定数が相対的に小さい第1時定数のハイパスフィルタと、時定数が相対的に大きい第2時定数のハイパスフィルタが用いられる。図20は、第1実施形態の説明における図17に対応する第2実施形態のハイパスフィルタ処理のフローチャートである。
まずステップS1000において図6の温度チェック処理で設定された切替制御値ttが0であるか否かが判定される。tt=0、すなわち検出温度Tと調整時温度Tadjの差の絶対値ΔTが所定値以下のときには、ステップS1002において、第2時定数でデジタルハイパスフィルタの計算が実行され、本処理は終了する。tt≠0、すなわち検出温度Tと調整時温度Tadjの差の絶対値ΔTが所定値よりも大きいときには、ステップS1004において第1時定数でデジタルハイパスフィルタの計算が実行され、本処理は終了する。
図21は、図20のデジタルハイパスフィルタ処理の構成を示すブロック図である。第1実施形態の図18と同様に、図21において変数addは、過去所定ステップ数分のVoutの積算値を表し、subは最新のaddを、所定ステップ数に対応する時定数で割った値(移動平均)を表す。スイッチSW1は、tt=1でオン状態、tt=0でオフ状態をとる一方、スイッチSW2は、tt=1でオフ状態、tt=0でオン状態をとる。スイッチSW1の系列のsubの値は、第2の時定数よりも小さい第1時定数(時定数1)および第1時定数に対応する積算値addの値を用いて計算される。また、スイッチSW2の系列のsubの値は、第1時定数よりも大きい第2時定数(時定数2)および第2時定数に対応する積算値addの値を用いて計算される。tt=0(ΔT≦所定値)のときには、スイッチSW2の系列のsubの値(時定数が大きい)がVinから減算されてVoutとされ、tt=1(ΔT>所定値)のときにはスイッチSW1の系列のsubの値(時定数が小さい)がVinから減算されてVoutとされる。
以上のように第2実施形態では、検出温度と調整時温度の温度差が相対的に小さい場合には、予め記録された調整時温度のオフセット値を角速度信号から差し引くことで、角速度信号の温度ドリフトは十分に補正されたと考えられるので、第1時定数よりも大きい第2時定数を用いたハイパスフィルタを用い、カットオフ周波数を低く抑え、カットオフされる信号の帯域を下げている。一方、温度差が相対的に大きいときには、温度ドリフトによるオフセットをハイパスフィルタで除去する必要があり、フィルタを素早く立ち上げる必要があるため、第2時定数よりも小さい第1時定数を用いたハイパスフィルタを用いている。これにより第2実施形態でも、第1実施形態と同様に、温度ドリフトを含む角速度センサ出力に対し、通常使用される常温下において高い精度の出力を得るとともに、通常使用される常温環境下からずれた環境でも温度ドリフトの影響を十分に低減できる。
次に、図22〜図26を参照して、本発明の第3実施形態のセンサ出力処理装置について説明する。第3実施形態のセンサ出力処理装置も第1、2実施形態と同様に手ブレ補正駆動処理に関するもので、第1、2実施形態との違いは、温度チェック処理の内容とハイパスフィルタ(HPF)部35X、35Yの構成のみである。したがって、以下の説明では、第1、2実施形態とことなる構成についてのみ説明する。
図22は、センサ出力のオフセット値の大きさと、特定の時定数のハイパスフィルタでオフセット値を0に収束させるまでに掛かる時間の関係を説明するグラフである。また、図23は、一定のオフセット値を、異なる時定数のハイパスフィルタで0に収束させるのに掛かる時間の関係を説明するグラフである。
図22に示されるように、初期オフセット値が大きいほど、一定時間経過後に残存するオフセット値も大きく、手ブレ補正におけるオフセットによる手ブレ補正レンズの位置ズレも大きくなる。また、図23に示されるように、オフセット値が同じであれば、ハイパスフィルタの時定数が小さいほど収束は早い。したがって、時定数が小さいハイパスフィルタを採用すれば、フィルタによるオフセットの収束が迅速に行え、オフセットによる手ブレ補正レンズの位置ズレも小さくできる。しかし、時定数を小さくすると、カットオフ周波数が高くなり、低周波帯域での手ブレ情報がより多く失われるため補正精度が低下してしまう。
したがって、第3実施形態では、オフセット値が大きいほど、ハイパスフィルタの時定数を連続的に小さくする。ここで、静止時のVin−VVの値、すなわちステップS802(図16)におけるオフセット値VVによる補正後の信号に含まれるオフセットの値は、温度差ΔTが大きくなるほど大きくなる。したがって、第3実施形態では、図24に示されるように、温度差ΔTが大きいほど、時定数の小さいハイパスフィルタを使用する。
図25は、第3実施形態における温度チェック処理のフローチャートであり、第1実施形態と同様に図5のステップS100において実行される。第3実施形態の温度チェック処理においても、まずステップS1100において、温度センサ26からの入力が現在の温度(検出温度)Tとして設定される。ステップS1102では、検出温度Tとメモリに記録された所定温度Tadjの温度差ΔT(=|T−Tadj|)が算出される。そしてステップS1104において係数Gainを用いて時定数がGain/ΔTとして求められる。ここで、係数Gainは、温度差ΔTから時定数を求めるための係数であり所与の値である。ステップS1106では、後述するハイパスフィルタ処理において用いられる変数subおよび変数addの初期値が0に設定され、本処理は終了する。
また図26のブロック図を参照して、第3実施形態において図16のステップS804で実行されるハイパスフィルタ処理について説明する。第3実施形態では、図25のステップS1104の計算により、図24に示されるような温度差ΔTの大きさに逆相関する時定数が設定される。
図26のデジタルハイパスフィルタの計算では、第1実施形態と同様に、所定ステップ数分のVoutの積算値を計算し、これをステップS1104で算出された時定数(=Gain/ΔT)で割り、subを算出する(sub=add/時定数)。そしてVinからは、subの値を常時差し引くことで、温度差ΔTに対応したデジタルハイパスフィルタ処理が常時Vinに施される。
以上のように、本発明の第3実施形態においても、第1、第2実施形態と略同様の効果を得ることができる。
本実施形態では、デジタルカメラのレンズシフト方式の手ブレ補正機構への適用を例に説明を行ったが、本発明はイメージ・センサ・シフト方式を採用する手ブレ補正機構にも適用でき、銀塩カメラにも適用できる。また本発明は、ミラーレスカメラやレンズ交換式ではないカメラであってもよい。
また、本実施形態センサ出力処理装置は、出力に温度ドリフトが含まれるセンサであれば、他のセンサにも適用でき、同センサを利用するカメラ以外の機器にも適用できる。例えば、携帯電話やスマートフォン、ゲーム機などに設けられた姿勢センサなどのセンサ出力の補正にも用いられる。なお、デジタルフィルタの計算は、本実施形態に限定されるものではなく、他の計算方法であってもよい。また、第1、第2、第3実施形態のハイパスフィルタ処理の構成を適宜組み合わせることも可能である。