以下、本発明の好ましい実施例について図面を参照しながら説明する。
図1には、本発明の実施例1であるデジタルスチルカメラ(撮像装置)の構成を示している。
該カメラの光学系は、不図示のレンズ鏡筒部内に収容されている。該光学系において、101は変倍レンズであり、光軸方向に移動することで変倍を行う。105は光量を制御する絞りであり、127は撮像素子116の露光量を制御するシャッタである。106はフォーカスレンズであり、光軸方向に移動することで焦点調節を行う。
102は変倍レンズ101を移動させるズームモータである。104は絞り105を駆動する絞りモータである。128はシャッタ127を開閉動作させるシャッタモータである。103はズームモータ102、絞りモータ104及びシャッタモータ128の動作を制御するモータドライバ回路であり、ズームモータ102、絞りモータ104及びシャッタモータ125に対して供給する電圧又は電流を制御する。モータドライバ回路103は、後述するシステム制御部115からの制御対象モータの駆動指示を受けて、該制御対象モータの動作を制御する。
107はフォーカスレンズ106を移動させるフォーカスモータである。フォーカスモータ107は、後述するようにリニアアクチュエータにより構成されている。
116は上述した光学系により形成された被写体像を電気信号に変換する光電変換素子としての撮像素子である。撮像素子116は、CCDセンサ又はCMOSセンサにより構成される。
117は撮像素子116からの出力に含まれるノイズを除去するCDS回路や撮像素子116からのアナログ出力のA/D変換前に非線形増幅を行う非線形増幅回路を含むA/D変換部である。118はA/D変換部117からのデジタル信号から映像信号を生成する画像処理部である。129は画像処理部118で生成された映像信号に対してWB(ホワイトバランス)処理を行うWB処理部である。
131はAE処理部であり、画像処理部118で生成された映像信号から得られた輝度情報又は不図示の測光ユニットにより得られた測光情報に基づいて、絞り値やシャッタ速度等のAE制御値を生成する。
130は焦点評価手段としてのAF処理部であり、画像処理部118で生成された映像信号から高周波成分を抽出することで焦点評価値を生成し、システム制御部115に送る。焦点評価値は、映像のコントラスト状態(鮮鋭度)を示す値であり、コントラスト評価値又はAF評価値とも称される。
119は映像信号を所定のフォーマットに変換するフォーマット変換部である。120はメモリ(DRAM)である。DRAM120は、高速バッファ又は画像の圧縮伸張処理における作業用メモリとして使用される。
121は半導体メモリや光ディスク等の記録媒体に記録用画像(静止画)を記録する画像記録部である。
115はシステム制御部であり、撮像シーケンスやAFシーケンス等の処理を行う。システム制御部115は、フォーカス制御手段として機能する。本実施例では、システム制御部115は、AFシーケンスとして、以下の処理を含むスキャンAFを行う。スキャンAFは、フォーカスレンズ106を移動させながら複数の焦点評価値を取得する評価値取得処理と、該複数の焦点評価値に基づいて合焦位置を決定し、該合焦位置にフォーカスレンズ106を移動させる合焦処理とを含む。また、評価値取得処理の前に、フォーカスレンズ106を該評価値取得処理の開始位置に移動させる開始処理も含む。
108はフォーカスレンズ106の位置(現在位置)を検出するための位置エンコーダである。113及び112はそれぞれ、位置エンコーダ108からの出力を増幅及び微分する増幅回路及び微分回路である。位置エンコーダ108の出力は、システム制御部115にも供給される。
114は増幅回路113からの出力(フォーカスレンズ106の現在位置に対応する検出位置信号)とシステム制御部115からの出力(フォーカスレンズ106の目標位置に対応する目標信号)とを比較する比較回路である。111は比較回路114からの出力(現在位置と目標位置との偏差)を積分する積分回路である。比較回路114からの出力である偏差が零になるように位置フィードバック制御が行われる。
110は微分回路112及び積分回路111からの出力を加算する加算回路110である。微分回路112が設けられている理由については後述する。
増幅回路113、微分回路112、比較回路114、積分回路111及び加算回路110は、システム制御部115とともに位置制御手段としての位置制御回路を構成する。
109は加算回路110からの出力に応じてフォーカスモータ107の駆動を制御するモータドライバ109である。
122は画像表示用メモリ(以下、VRAMという)であり、123は画像や各種情報を表示する表示部であり、LCDや有機EL等により構成されている。
124は各種スイッチが配置された操作部である。133は電源を投入するために操作されるメインスイッチである。125はAFやAE等の撮像準備動作を開始させる撮像準備スイッチ(以下、SW1)であり、126は撮像動作(本露光)を開始させる撮像スイッチ(以下、SW2という)である。SW1及びSW2はそれぞれ、不図示のレリーズボタンの第1ストローク操作(半押し)及び第2ストローク操作(全押し)によってONされる。
次に、フォーカスモータ107及び位置制御回路について詳しく説明する。フォーカスモータ107としてリニアモータを用いると、ステッピングモータやDCモータ等の回転タイプのアクチュエータを用いる場合のような駆動力伝達機構が不要となる。このため、フォーカスモータ107を駆動するための構成が簡略化され、カメラの小型化及び軽量化を図ることができる。
本実施例では、フォーカスモータ107として、リニアモータの1つであるムービングコイルタイプのボイスコイルモータを使用する。ボイスコイルモータを使用したフォーカスレンズ駆動機構を図2に示す。
図2に示すフォーカス駆動機構200は、図1中のフォーカスレンズ106に相当するフォーカスレンズ201を保持するレンズ保持枠202と、該レンズ保持枠202の外周に固定されたヨーク203及びコイル206とを有する。レンズ保持枠202は、ガイドバー204によって光軸方向にガイドされる。ヨーク203の一端は、カメラのレンズ鏡筒部を構成する固定筒209の内周面に接着されており、他端側の長尺部は、光軸方向に延びている。コイル206は、レンズ保持枠202に設けられたホビン205に巻き付けられている。
固定筒209の内周におけるヨーク203に対向した位置には、光軸方向に延びるヨーク207が接着により固定されている。ヨーク207には、マグネット208が接着されている。ヨーク203とヨーク207(及びマグネット208)の間には、コイル206が配置されている。ヨーク203,207、マグネット208及びコイル206(ボビン205)によって、ボイスコイルモータが構成される。
ヨーク203とヨーク207の間は、レンズ鏡筒部の半径方向に磁場が形成された状態となっている。コイル206に電流を流すと、コイル206を光軸方向に移動させる駆動力が発生する。このため、ホビン205を一体に構成しているレンズ保持枠202が、これにより保持されているフォーカスレンズ201とともに光軸方向に移動する。
コイル206の片側には、基準電圧が印加されている。モータドライバ109は、コイル206の反対側(基準電圧が印加されていない側)に、基準電圧に対して正又は負となる電圧を印加することにより、コイル206に流れる電流の極性を切り替える。これにより、フォーカスモータ107(つまりはフォーカスレンズ106)の駆動方向を変更することができる。また、コイル206に印加する電圧のレベルを変化させることで、フォーカスレンズ106の駆動量を変更することができる。
フォーカスモータ107は、前述した位置制御回路による位置フィードバック制御が行われる。微分回路112によってフォーカスレンズ106の移動速度(微分回路112の微分結果)をフィードバックしているのは、フィードバックループ制御系を安定させるためである。また、フォーカスレンズ106の急激な移動を抑制することで、表示部123に表示される自然な映像の取得を可能とするとともに、フォーカスレンズ106がその移動可能な範囲を超えてレンズ鏡筒部内の他の部材に衝突することを防ぐためである。
システム制御部115からは、比較回路114に対して、前述した目標信号が供給される。フォーカスレンズ106の現在位置と目標位置との相関関係がDRAM120にデータテーブルとして予め記憶されている。システム制御部115は、位置エンコーダ108により得られるフォーカスレンズ106の検出位置信号(現在位置情報)と目標位置とに応じて該データテーブルを参照することにより、目標信号を生成する。
次に、本実施例における主としてシステム制御部115での処理(撮像シーケンスやAFシーケンス等)について、図3〜図17を用いて説明する。これらの処理は、システム制御部115に内蔵されたメモリに格納されたコンピュータプログラムに従って実行される。
図6は本発明の実施例1に係わる電子撮像装置の撮影準備動作及び撮影動作を示したフローチャートである。まず、ステップS301において、システム制御部115は、SW1(125)の状態を調べ、ONであればステップS302へ進み、OFFであればステップS301に戻る。
ステップS302では、システム制御部115は、AE処理部131にAF用のAE処理を行わせ、絞り値やシャッタ速度等のAE制御値をAF動作に適した値に設定する。そして、ステップS303では、システム制御部115は、通常のAF動作(スキャンAF)を行う。このAF動作については後述する。
次に、ステップS304では、システム制御部115は、ステップS303でのAF動作が終了した状態で、AE処理部131に本露光用AE処理を行わせる。前述したステップS302では、AF動作に適した絞り値やシャッタ速度が設定されたが、ここでは実際に記録される記録用画像の取得(本露光)に適した絞り値やシャッタ速度が設定される。
次に、ステップS305では、システム制御部115は、再びSW1(125)の状態を調べ、ONであればステップS306へ進み、OFFであればステップS301に戻る。
ステップS306では、システム制御部115は、SW2(126)の状態を調べる。SW2(126)がONであれば次のステップS307に進み、OFFであればステップS305に戻る。
ステップS307では、システム制御部115は、合焦が得られた状態で、撮像(本露光)処理を行う。この撮像処理については後述する。
図6のステップS307で示した撮像処理について、図11のフローチャートを用いて詳しく説明する。まず、ステップS801では、システム制御部115は、モータドライバ103を通じて絞り105及びシャッタ127を制御し、静止画記録のための撮像素子116の露光を行う。ステップS802では、システム制御部115は、A/D変換部117に撮像素子116に蓄積された電荷(アナログ信号)を読み出させる。
次にステップS803では、システム制御部115は、A/D変換部117にアナログ信号をデジタル信号に変換させる。さらに、ステップS804では、システム制御部115は、画像処理回路118にA/D変換部117から出力されたデジタル信号に対する各種画像処理を行わせ、画像信号を生成させる。また、システム制御部115は、WB処理部129に画像信号に対するWB調整を行わせる。
そして、ステップS805では、システム制御部115は、フォーマット変換部119に、WB調整後の出力画像信号(静止画)を静止画記録に適したJPEG等の所定のフォーマットに圧縮させる。
最後に、ステップS806では、システム制御部115は、圧縮された画像信号を画像記録部121を通じて記録媒体に書き込み、保存する。
次に、図6のステップS303でのAF動作(スキャンAF)について、図7のフローチャートを用いて説明する。
まず、ステップS401では、システム制御部115は、評価値取得処理によりフォーカスレンズ106の位置と対応付けながら複数の焦点評価値をサンプリングする際のサーチ範囲を設定する。本実施例では、図4に丸囲み2の矢印で示すように、サーチ範囲での1度のフォーカスレンズ106の移動(以下、スキャン動作という)で複数の焦点評価値をサンプリングする。また、サーチ範囲は、無限遠端から特定の至近距離(至近端でもよいし、至近端よりも無限遠側の位置でもよい)とする。
次に、ステップS402では、システム制御部115は、図4に丸囲み1の矢印で示すように、ステップS401で設定したサーチ範囲におけるスキャン動作の開始位置にフォーカスレンズ106を移動させる開始処理を行う。本実施例では、開始位置は無限遠端とする。
ここで、本実施例では、フォーカスレンズ106の駆動方法、すなわちフォーカスモータ107の制御方法について、2つの制御モードを使い分ける。1つは位置制御モードであり、もう1つは擬似速度制御モードである。位置制御モードはスキャンAFのうち開始処理と合焦処理において、擬似速度制御モードは評価値取得処理においてそれぞれ設定(選択)される。合焦処理でのフォーカスレンズ106の移動は、図4に丸囲み3の矢印で示している。
なお、位置制御モードでのフォーカスモータ107の制御も擬似速度制御モードでのフォーカスモータ107の制御も、フォーカスレンズ106を目標位置に移動させるように該フォーカスレンズ106を駆動する位置フィードバック制御である。
位置制御モードでは、フォーカスモータ107の位置フィードバック制御のために構成されたフィードバックループの応答特性により決定される移動速度で、固定された目標位置にフォーカスレンズ106を移動させるようにフォーカスモータ107を制御する。ここにいう「固定された目標位置」とは、フォーカスモータ107の駆動終了まで更新されない目標位置を意味し、本実施例では、スキャン動作の開始位置と、サンプリングされた複数の焦点評価値に基づいて決定された合焦位置である。駆動終了まで目標位置が更新されないことにより、フォーカスレンズ106は、その移動開始位置から一気に目標位置)に移動することになる。
なお、以下の説明において「合焦位置」には、実際にピントが合うフォーカスレンズ位置だけでなく、それが得られないために複数の焦点評価値に基づいて暫定的に決定されたフォーカスレンズ位置も含む。
位置制御モードでのシステム制御部115の処理について図12のフローチャートを用いて説明する。なお、図12は、位置制御モードでの処理と擬似速度制御モードでの処理を併せて示している。
ステップS901では、システム制御部115は、フォーカスモータ107に対する擬似速度制御モードでの駆動要求がされているか否かを判断する。擬似速度制御モードでの駆動要求ではない場合、すなわち位置制御モードでの駆動要求である場合には、ステップS906に進む。
ステップS906では、システム制御部115は、目標位置をスキャン動作の開始位置又は合焦位置に固定し、該目標位置にフォーカスレンズ106を移動させるように、比較回路114に目標位置に対応する駆動電圧信号を出力する。これにより、フォーカスレンズ106は、後述する擬似速度制御モードでの平均移動速度よりも速い速度で目標位置に一気に移動する。
擬似速度制御モードでは、評価値取得処理においてフォーカスレンズ106をスキャン動作の開始位置から最終目標位置であるスキャン動作の終了位置に移動させる際に、フォーカスレンズ106が所定時間後に終了位置に到達するように目標位置を順次更新する。本実施例では、垂直同期期間よりも速い周期で、n回(複数回)、目標位置が更新される。なお、ここにいうn回には、最初の目標位置の設定も1回の更新として含む。これにより、n回の位置フィードバック制御によってフォーカスレンズ106が最終目標位置に到達することになる。
擬似速度制御モードでのシステム制御部115の処理について図12のフローチャートを用いて説明する。
ステップS901にて擬似速度制御モードでの駆動要求であると判断されると、ステップS902に進む。ステップS902では、システム制御部115は、フォーカスレンズ106の現在位置が最終目標位置であるか否かを判断する。現在位置が最終目標位置である場合には、そのまま処理を終了する。一方、フォーカスレンズ106の現在位置が最終目標位置に到達していない場合には、ステップ903に進む。
ステップS903では、システム制御部115は、1回の位置フィードバック制御当たりのフォーカスレンズ106の移動量ΔFを算出する。この移動量ΔFは、フォーカスレンズの106の移動開始位置と最終目標位置(移動終了位置)との差と、スキャン動作におけるフォーカスレンズの106の所定平均速度Vfとから、以下の式(1)により算出される。
ΔF=Vf/n …(1)
次に、ステップS904では、システム制御部115は、フォーカスレンズ106の現在位置をF0として、今回の位置フィードバック制御によってフォーカスレンズ106を移動させる目標位置Fxを、以下の式(2)により算出する。
Fx=F0±ΔF …(2)
式(2)における符号「±」は、スキャン動作においてフォーカスレンズ106を至近方向に移動させる場合は「+」となり、無限遠方向に移動させる場合は「−」となる。
そして、ステップS905では、システム制御部115は、ステップS904で得られた目標位置Fxに相当する駆動電圧信号を比較回路114に供給する。これにより、フォーカスレンズ106が目標位置Fxまで移動する。この後、ステップS902に戻る。
システム制御部115は、ステップS902でフォーカスレンズ106の現在位置が最終目標位置に到達するまでステップS903〜ステップS905の処理をn回繰り返す。
n回のうち1回の位置フィードバック制御ごとのフォーカスレンズ106の移動速度は、フィードバックループの応答特性によって決定される移動速度となるが、1垂直同期期間単位での平均移動速度はVfになる。つまり、図3の左側の図に示すように、位置制御モードでは、フィードバックループの応答特性によって決定される速い速度でフォーカスレンズ106を移動させる。これに対し、擬似速度制御モードでは、周期的な目標位置の更新によって位置制御モードでの移動速度より低速の所定平均速度にてフォーカスレンズ106を移動させる。
図3の右側の図は、左側の図における擬似速度制御モードでのフォーカスレンズ106の移動軌跡を示している。図中の細線は、位置フィードバック制御の繰り返しによる実際のフォーカスレンズ106の移動軌跡を示し、太線は、実際の移動軌跡を均した見かけ上のフォーカスレンズ106の移動軌跡を示す。
次に、図8を用いて、フォーカスレンズ106を評価値取得処理(スキャン動作)の開始位置に移動させるための開始処理について説明する。
まず、ステップS501では、システム制御部115は、フォーカスモータ107の制御モードを「位置制御モード」に設定する。
次に、ステップS502では、システム制御部115は、図6のステップS401で決定したサーチ範囲におけるスキャン動作の開始位置にフォーカスレンズ106を移動させるように、フォーカスモータ107を位置制御モードで制御する。
次に、ステップS503では、システム制御部115は、フォーカスレンズ106がスキャン動作の開始位置に到達してか否かを確認し、到達していれば処理を終了する。到達してないければ、再びステップS503に戻り、フォーカスレンズ106がスキャン動作の開始位置に到達するのを待つ。
図7において、ステップS402で開始処理が終了すると、ステップS403に進み、評価値取得処理(スキャン動作)を行う。図10を用いて、評価値取得処理について説明する。
まず、ステップS701では、システム制御部115は、フォーカスモータ107の制御モードを「擬似速度制御モード」に設定する。
次に、ステップS702では、システム制御部115は、現在がフォーカスレンズ106の駆動タイミングであるか否かを判断する。具体的には、焦点評価値は所定周期でAF処理部130で算出されるため、その周期に同期したタイミングであるか否かを判断する。フォーカスレンズ106の駆動タイミングでなければ、再びステップS702に戻り、駆動タイミングになるのを待つ。フォーカスレンズ106の駆動タイミングである場合は、ステップS703に進む。
ステップS703では、システム制御部115は、図12に示した擬似速度制御モードでフォーカスモータ107の制御を行い、フォーカスレンズ106の移動(スキャン動作)を開始する。スキャン動作での平均移動速度は、フォーカスレンズ106を移動させながら周期的に焦点評価値を必要な精度(正確さ)で取得できるように予め設定されている。
次に、ステップS704では、システム制御部115は、現時点がフォーカスレンズ106の位置情報の取得タイミングであるか否かを判断する。取得タイミングでなければステップS704に戻り、取得タイミングを待つ。取得タイミングであるならば、次のステップS705に進む。
ステップS705では、システム制御部115は、この時点で位置エンコーダ108を通じて検出されたフォーカスレンズ106の位置情報を取得し、これをDRAM120に記憶させる。
次に、ステップS706では、システム制御部115は、現時点が焦点評価値の取得タイミングであるかを否かを判断し、取得タイミングでなければステップS706に戻り、取得タイミングを待つ。取得タイミングであるならば、次のステップS707に進む。
ステップS707では、システム制御部115は、AF処理部130からこの時点での焦点評価値を取得する。そして、取得した焦点評価値をステップS705で取得したフォーカスレンズ106の位置と対応付けてDRAM120に記憶させる。
次に、ステップS708では、システム制御部115は、フォーカスレンズ106がスキャン動作の終了位置に到達したか否かを判断する。到達していなければステップS704に戻り、フォーカスレンズ106の位置と焦点評価値を取得して、これら対応付けてDRAM120に記憶させる処理を繰り返す(ステップS704〜S707)。終了位置に到達した場合は、そこで評価値取得処理を終了する。
以上の評価値取得処理によって、サーチ範囲内で所定間隔の複数のフォーカスレンズ位置に対応した複数の焦点評価値が取得される。システム制御部115は、次に、図7のステップS404に進み、該複数の焦点評価値に基づいて合焦位置を算出する処理を行う。
この合焦位置算出処理について、図13〜図16を用いて説明する。サーチ範囲で取得された焦点評価値は、遠近競合等の特殊な場合を除けば、横軸にフォーカスレンズ位置をとり、縦軸に焦点評価値をとると、その変化の軌跡を示す形状が、図16に示すような山状になる。このため、焦点評価値の変化の軌跡が山状になっているか否かを、焦点評価値の最大値と最小値の差、上記軌跡のうち所定値(SlopeThr)以上の勾配で傾斜している部分の長さ、及び傾斜している部分の勾配から判定する。そして、焦点評価値の変化軌跡が山状である場合には、合焦位置を算出できるか否かを示す合焦可否判定を行うことができる。
合焦可否判定の判定結果は、以下のように○,×,△で表される。
○:焦点評価値の変化軌跡が山状になっており、焦点評価値が最大となるフォーカスレンズ位置(ピーク位置)を合焦位置とすることができる。
×:被写体のコントラストが低くて焦点評価値の変化の軌跡が山状になっておらず、合焦位置を算出できない。
△:サーチ範囲に対応する被写体距離の範囲外に被写体が存在する(合焦位置が存在する方向がサーチ範囲よりも近距離方向である場合は△NEARとし、遠距離方向である場合は△FARとする)。
ここで、図16には、山状の軌跡で変化する焦点評価値をA〜Eとして示している。変化軌跡の頂上(A)から傾斜が続いていると認められる焦点評価値をD,Eとし、DとE間の幅を焦点評価値の山の幅Lとする。また、AとD間の差SL1とAとE間の差SL2との和であるSL1+SL2を、焦点評価値の山の勾配SLとする。
図13のフローチャートは、ステップS404における合焦位置算出処理を示している。
まず、ステップS1000において、システム制御部115は、評価値取得処理によって取得した複数の焦点評価値のうち最大値maxと最小値minを求めるとともに、最大値maxを与えるフォーカスレンズ位置(スキャンポイントともいう)ioを求める。
次に、ステップS1001では、システム制御部115は、焦点評価値の山の幅(変数)Lと山の勾配(変数)SLをともに零に初期化する。
次に、ステップS1002では、システム制御部115は、焦点評価値の最大値maxを与えるスキャンポイントioが、スキャン動作を行ったサーチ範囲における遠距離側の端(本実施例では、無限遠端)か否かを確認する。遠距離側端でないならばステップS1003に進み、遠距離側端である場合は、ステップS1003をスキップとしてステップS1004に進む。
ステップS1003では、システム制御部115は、焦点評価値の無限遠方向への単調減少を調べる。
ここで、ステップS1003における無限遠方向への単調減少を調べる処理について、図14のフローチャートを用いて説明する。
まずステップS1100では、システム制御部115は、カウンタ変数iをioに初期化する。次のステップS1101では、システム制御部115は、スキャンポイントiにおける焦点評価値の値d[i]と、iより1スキャンポイント分無限遠側のスキャンポイントi−1における焦点評価値の値d[i−1]との差を求める。そして、この差を所定値SlopeThrと比較する。
d[i]−d[i−1]≧SlopeThrであれば、無限遠方向への単調減少が生じていると判定し、ステップS1102に進む。ステップS1102では、システム制御部115は、焦点評価値がSlopeThr以上の傾きで傾斜している部分の長さ(山の幅)Lと、単調減少区間における減少量(勾配)SLを、以下の式(3)を用いて更新する。そして、ステップS1103に進む。
L=L+1
SL=SL+(d[i]−d[i−1]) …(3)
一方、d[i]−d[i−1]≧SlopeThrでなければ、システム制御部115は、無限遠方向への単調減少は生じていないと判定し、本処理を終了して、図13のステップS1004へ進む。
ステップS1103では、システム制御部115は、i=i−1として、無限遠方向への単調減少を調べる点を1スキャンポイント分無限遠側に移動させる。そして、次のステップS1104では、システム制御部115は、カウンタ変数iがサーチ範囲における遠距離側端を示す値(=0)になったか否かをチェックする。カウンタ変数iの値が0、すなわち単調減少を調べる点がサーチ範囲におけるスキャン動作の開始位置に達すると、無限遠方向への単調減少を調べる処理を終了する。そして、図13のステップS1104に進む。以上のようにして、i=ioから無限遠方向への単調減少を調べる。
図13において、ステップS1004では、焦点評価値の最大値maxを与えるスキャンポイントioがサーチ範囲における近距離側の端位置(ここでは、至近端とする)か否かを調べる。至近端でないならばステップS1005へ進み、焦点評価値の至近方向への単調減少を調べる。また、至近端である場合はこの処理をスキップして、ステップS1006に進む。
ここで、ステップS1005における焦点評価値の至近方向への単調減少を調べる処理について、図15のフローチャートを用いて説明する。
まずステップS1200では、システム制御部115は、カウンタ変数iをioに初期化する。次のステップS1201では、システム制御部115は、スキャンポイントiにおける焦点評価値の値d[i]と、iより1スキャンポイント分至近側のスキャンポイントi+1における焦点評価値の値d[i+1]との差を求める。そして、この差を所定値SlopeThrと比較する。
d[i]−d[i+1]≧SlopeThrであれば、システム制御部115は、至近方向への単調減少が生じていると判定して、ステップS1202に進む。ステップS1202では、システム制御部115は、焦点評価値がSlopeThr以上の傾きで傾斜している部分の長さ(山の幅)Lと、単調減少区間における減少量(勾配)SLを、以下の式(4)を用いて更新する。そして、ステップS1203に進む。
L=L+1
SL=SL+(d[i]−d[i+1]) …(4)
一方、d[i]−d[i+1]≧SlopeThrでなければ、システム制御部115は、焦点評価値の至近方向への単調減少は生じていないと判定し、至近方向への単調減少を調べる処理を終了して、図13のステップS1006へ進む。
ステップS1203では、システム制御部115は、i=i+1として、至近方向への単調減少を調べる点を1スキャンポイント分至近側に移動させる。そして、次のステップS1204では、システム制御部115は、カウンタ変数iがサーチ範囲における近距離側端(至近端)を示す値(=N)になったか否かをチェックする。カウンタ変数iの値がN、すなわち単調減少を調べる点がサーチ範囲におけるスキャン動作の終了位置に達すると、至近方向への単調減少を調べる処理を終了する。そして、図13のステップS1006に進む。以上のようにして、i=ioから至近方向への単調減少を調べる。
図13のステップS1006において、システム制御部115は、焦点評価値の最大値maxを与えるスキャンポイントioがスキャン動作を行ったサーチ範囲における至近端であり、かつd[n]−d[n−1]≧SlopeThrであるか否かを判別する。ここで、d[n]は至近端のスキャンポイントnにおける焦点評価値の値であり、d[n−1]はnより1スキャンポイント分無限遠側のスキャンポイントn−1における焦点評価値である。d[n]−d[n−1]≧SlopeThrであればステップS1012に進み、そうでなければステップS1007に進む。
ステップS1007では、システム制御部115は、焦点評価値の最大値maxを与えるスキャンポイントioがスキャン動作を行ったサーチ範囲における無限遠側端であり、かつd[0]−d[1]≧SlopeThrであるか否かを判別する。ここで、d[0]は無限遠側端のスキャンポイント0における焦点評価値の値であり、d[1]は0より1スキャンポイント分至近側のスキャンポイント1における焦点評価値の値である。d[0]−d[1]≧SlopeThrであればステップS1011に進み、そうでなければステップS1008に進む。
ステップS1008では、SlopeThr以上の勾配の部分の長さ(山の幅)Lが所定値Lo以上で、かつ該勾配の平均値SL/Lが所定値SLo/Lo以上で、さらに焦点評価値の最大値maxと最小値minの差が所定値以上か否かを判別する。L≧Lo、SL/L≧SLo/Lo、かつmax−min≧所定値であれば、ステップS1009に進み、そうでなければステップS1010へ進む。
ステップS1009では、システム制御部115は、合焦可否判定結果を○とする。そして、焦点評価値の最大値maxとこれを与えるスキャンポイントに隣接する1又は複数のスキャンポイントの焦点評価値とを用いて補間演算を行い、真の最大の焦点評価値を求め、これを与えるスキャンポイント(ピーク位置)である合焦位置を算出する。この合焦位置が、実際にピントが合うフォーカスレンズ位置として、後述する図9における「合焦位置」に決定される。
ステップS1010では、システム制御部115は、合焦可否判定結果を×とする。この場合は、焦点距離や撮像モードに応じた特定の距離に対応するフォーカスレンズ位置が暫定的な合焦位置として、図9における「合焦位置」に決定される。
ステップS1011では、サーチ範囲よりも無限遠側に合焦位置があることを示す△FARを合焦可否判定結果とし、ステップS1012では、サーチ範囲よりも至近側に合焦位置があることを示す△NEARを合焦可否判定結果とする。この場合、サーチ範囲における焦点評価値が大きい側の端位置が、暫定的な合焦位置として、図9における「合焦位置」に決定される。以上のようにして、合焦位置算出処理を終了する。
次に、フォーカスレンズ106を合焦位置に移動させる処理(合焦処理)について、図9を用いて説明する。この処理は、基本的には図12で説明したスキャン動作の開始位置への移動処理と同様であるが、目標位置が図7のステップS404で決定した合焦位置である点が異なる。
図9のステップS601では、システム制御部115は、フォーカスモータ107の制御モードを「位置制御モード」に設定する。
次に、ステップS602では、システム制御部115は、図13のステップS1009〜S1012で決定された合焦位置にフォーカスレンズ106を移動させるようにフォーカスモータ107を位置制御モードで制御する。これにより、フォーカスレンズ106は、擬似速度制御モードでの平均移動速度よりも速い速度で目標位置である合焦位置に一気に移動する。
次に、ステップS603では、システム制御部115は、フォーカスレンズ106が合焦位置に到達したか否かを確認し、到達していれば処理を終了する。到達してないければ、ステップS603に戻り、フォーカスレンズ106の移動完了を待つ。こうして図6のステップS303でのAF動作が終了し、撮像処理(本露光)が可能な状態となる。
これまで説明した処理によるフォーカスレンズ位置の時間的な変化を図示すると、図5のようになる。すなわち、まずフォーカスモータ107が位置制御モードで制御されてフォーカスレンズ106がスキャン動作の開始位置に高速で移動する(開始処理)。次に、フォーカスモータ107が疑似速度制御モードで制御されて、開始処理よりも低速である所定平均速度でフォーカスレンズ106がスキャン動作を行う(評価値取得処理)。そして、フォーカスモータ107が位置制御モードで制御されて、フォーカスレンズ106が合焦位置に高速で移動する(合焦処理)。
このように、AF動作において単にフォーカスレンズ106を目標位置に移動させればよい開始処理と合焦処理では、通常の位置フィードバック制御により、フォーカスレンズ106をフィードバックループの応答特性に従って高速移動させる。これにより、AF動作に要する時間を短縮することができる。一方、フォーカスレンズ106を移動させながら焦点評価値を取得する評価値取得処理においては、複数回の位置フィードバック制御による疑似的な速度制御によって、開始処理と合焦処理に比べてフォーカスレンズ106の移動速度を下げる。これにより、正確な焦点評価値を取得することができ、最終的な合焦精度を向上させることができる。