以下、図面に従って本発明を適用したカメラを用いて好ましい実施形態について説明する。本発明の好ましい一実施形態に係るカメラは、デジタルカメラであり、レンズ駆動部によって光軸方向に移動可能なフォーカスレンズを含み被写体からの光を結像させ撮影光学系の焦点調節を行う。
すなわち、本実施形態に係るカメラは、撮像部を有し、この撮像部によって被写体像を画像データに変換し、この変換された画像データに基づいて、被写体像を本体の背面に配置した表示部にライブビュー表示する。撮影者はライブビュー表示を観察することにより、構図やシャッタチャンスを決定する。
また、コンティニュアスAFが設定されると、撮像部からの画像データに基づいてコントラスト値を取得し、このコントラスト値がピークとなり、合焦位置に達した時の時刻とフォーカスレンズの合焦位置の履歴を記憶する。レリーズ操作時やこれに続く連写時には、合焦履歴に基づいて、タイムラグを考慮して本露光時の合焦位置を予測する。このとき予測された合焦位置が現在位置から大きくずれている場合や、また最新の合焦時の時刻と、現在の時刻の差が大きい場合には、予測合焦位置の信頼性が低いことから、現在のレンズ位置を合焦位置とする。本露光によって画像データを取得すると、これに画像処理を施し、記録媒体に記録する。記録媒体に記録された画像データは、再生モードを選択すると、表示部に再生表示することができる。
図1は、本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。本実施形態に係るカメラは、交換レンズ100とカメラ本体200から構成され、図示しないマウント部を介して両者は着脱自在である。なお、本実施形態においては、交換レンズ式としたが、レンズ鏡胴をカメラ本体に固定するようにしても勿論かまわない。
交換レンズ100内には、撮影レンズ101、モータ駆動部102、レンズ制御部103、記憶部104を有する。撮影レンズ101は、フォーカスレンズやズームレンズ等の光学レンズを含み、これらの光学レンズによって構成される撮影光学系によって被写体像を結像する。モータ駆動部102は、モータ等の駆動源を有し、フォーカスレンズを撮影光学系の光軸方向に沿って移動させる。
レンズ制御部103は、レンズCPUやその周辺回路から構成される。レンズCPUは、記憶部104に記憶されているプログラム、およびカメラ本体200側の本体制御部204内の本体CPUからの制御命令に従って、交換レンズ100の制御を行う。制御としては、例えば、本体制御部204からの命令に従いモータ駆動部102を介して撮影レンズ101のスキャン動作や、合焦位置への駆動等を行う。また、フォーカスレンズやズームレンズの現在位置等、スキャン動作中等のレンズ状態等を検知し、レンズデータとしてカメラ本体200側に送信する。記憶部104は、前述のプログラムの他に、交換レンズ100の光学情報等の固有情報や、工場出荷段階での調整値等も記憶している。
カメラ本体200内には、撮像素子201、液晶表示部202、記憶部203、本体制御部204、操作部205を有する。撮像素子201は、撮影レンズ101の光軸上であって、被写体像の結像位置付近に配置され、二次元配列された複数の画素によって被写体像を光電変換し画像データ(撮像データともいう)を本体制御部204に出力する。
本体制御部204は、本体CPUやその周辺回路から構成される。本体CPUは、記憶部203に記憶されているプログラムに従って、カメラ全体の制御を行う。本体制御部204内の周辺回路として、画像処理回路、コントラストAF回路、伸張圧縮回路、通信回路等、種々の回路が設けられている。コントラストAF回路は、撮像素子201からの画像データを入力し、隣接画素間の差分信号を得ることにより、被写体像のコントラスト値を取得する。
また、本体制御部204は、前述のレンズ制御部103に対して、通信回路を介して、スキャン動作命令、合焦位置移動命令、レンズデータ要求命令等の制御命令をレンズ制御部103に出力する。また、本体制御部204は、光学情報、交換レンズ100の状態等のレンズデータをレンズ制御部103から入力する。
また、本体制御部204は、撮影レンズ101内のフォーカスレンズを移動させて撮像素子201による撮像動作を実行し、撮像素子201の出力する複数の撮像データに基づいて画像のコントラストのピークとなるフォーカスレンズの位置を検出するスキャン動作を行う制御部として機能する。この制御部は、スキャン動作を繰り返し実行して画像のコントラストがピークとなるフォーカスレンズの位置情報を検出して記憶し、記憶した複数の過去の位置情報に基づいて所定時刻の合焦位置を予測する予測制御部(後述する図5のS63参照)と、最後に実行したスキャン動作の検出結果に応じて、記憶した複数の過去の位置情報に基づいて所定の時刻の合焦位置を予測するか否かを判定する判定部(後述する図5のS57参照)としての機能も有する。
また、本体制御部204は、上述の判定部として、記憶した複数の過去の位置情報のうちの最新の位置情報と、最後に実行したスキャン動作により検出したフォーカスレンズの位置との差が第1の所定値よりも大きい場合に、過去の位置情報に基づいて所定時刻の合焦位置を予測しないと判定する(後述する図6のS71参照)。
また、本体制御部204は、上述の判定部として、複数の過去の位置情報のうちの最新の位置情報を検出した時刻と、最後に実行したスキャン動作によりフォーカスレンズ位置を検出した時刻との差が第2の所定値よりも大きい場合に、過去の位置情報に基づいて所定時刻の合焦位置を予測しないと判定する(後述する図6のS73参照)。
また、本体制御部204は、撮像素子201による本撮影動作を制御する。上述の判定部として、最後に実行したスキャン動作の検出結果に応じて、記憶した複数の過去の位置情報に基づいて所定時刻の合焦位置を予測する場合に(後述する図5のS53参照)、上記予測制御部として、記憶した複数の過去の位置情報に基づいて上記撮像素子による本撮影時刻の合焦位置を予測し(後述する図5のS63参照)、フォーカスレンズを移動させる(後述する図3のS21)。
また、本体制御部204は、上述の判定部として、最後に実行したスキャン動作の検出結果に応じて、記憶した複数の過去の位置情報に基づいて所定時刻の合焦位置を予測しないと判定する場合に(後述する図5のS53No)、上述の制御部として、本撮影時のフォーカスレンズの位置を最後に実行したスキャン動作の終了時のフォーカスレンズの位置とする(図5のS59参照)。
また、本体制御部204は、最後に実行したスキャン動作により画像のコントラストがピークとなるフォーカスレンズの位置を検出できない場合であっても、ピークとなるフォーカスレンズの位置を推定するピーク推定部(後述する図5のS55、図7のS83参照)としての機能も果たす。また、上述の予測制御部として、ピーク推定部が推定するピークとなるフォーカスレンズ位置、または記憶した過去の位置情報、またはピーク推定部が推定するピークとなるフォーカスレンズ位置と記憶した過去の位置情報の両方に基づいて所定時刻合焦位置を算出する(図5のS57Yes→S61→S63参照)。
カメラ本体200内の記憶部203は、RAM等の書き換え可能な揮発性メモリ、フラッシュメモリ等の書き換え可能な不揮発性メモリ、装填自在な記憶媒体等の種々のメモリを有する。不揮発性メモリには、前述の本体CPU用のプログラムの他、調整用の種々のデータが記憶されている。また、記憶媒体には、本体制御部204によって画像処理された撮影画像の画像データが記録される。また、記憶部203は、スキャン動作を実行して画像のコントラストがピークとなるフォーカスレンズ位置を検出する時刻を検出し記憶する時刻記憶部としての機能を果たす。なお、なお時刻記憶部としての機能は、本体制御部204に一時記憶部を内蔵させ、この一時記憶部が果たすようにしても勿論かまわない。
液晶表示部202は、カメラ本体200の背面等に配置された液晶モニタを有する。液晶表示部202には、撮像素子201からの画像データに基づいてライブビュー表示を行い、また記憶部203から読み出された撮影画像データに基づいて再生表示を行い、また種々の撮影モードを設定するためのメニュー画像等を表示する。なお、液晶モニタに限らず、有機EL等の他のモニタでもよく、また、カメラ本体200の背面以外に配置するようにしても勿論かまわない。
操作部205は、レリーズ釦、電源釦、メニュー釦、OK釦、十字釦等の種々の操作部材を含み、これらの操作部材の操作状態は、本体制御部204に出力される。本体制御部204は、操作部205からの操作信号に応じて、カメラ制御を実行する。
次に、本実施形態における動作について、図2ないし図7に示すフローチャートを用いて説明する。これらのフローチャートは、記憶部203に記憶されたプログラムに従って本体制御部204によって実行される。なお、本実施形態における焦点調節動作は、コンティニュアスAF(C−AFともいう)がメニュー画面において設定された際の動作を示す。
本実施形態におけるコンティニュアスAFは、単写と連写に適用されている。単写は、操作部205の内のレリーズ釦が押下げられると、1回、本露光を行い、画像データを記憶部203に記録する。また連写は、レリーズ釦が押下げられている間、所定の時間間隔で、本露光を繰り返し行い、本露光において取得した画像データを順次記憶部203に記録する。単写および連写はメニュー画面等において設定される。
単写モードが設定され、レリーズ釦の半押しがなされると、図2に示す単写AFのフローが開始する。単写フローに入ると、まず、スキャン制御を実行する(S1)。ここでは、交換レンズ100内のレンズ制御部103に対し、モータ駆動部102によってフォーカスレンズを至近側または無限遠側に駆動を開始させ、フォーカスレンズの移動中に撮像素子201からの画像データ(撮像データ)に基づいて、本体制御部204内のコントラストAF回路がコントラスト値を算出する。このコントラスト値がピークとなるときのフォーカスレンズの合焦位置を演算し、合焦位置と合焦時刻のセットからなる合焦履歴を記憶部203に記録する。このスキャン制御の詳しい動作については、図4を用いて後述する。
スキャン制御を行うと、2ndレリーズを検出したか否かを判定する(S3)。操作部205の内のレリーズ釦が半押しから全押しに移行すると2ndレリーズスイッチがオンとなるので、このステップでは、2ndレリーズスイッチの状態に基づいて判定する。この判定の結果、2ndレリーズが検出されない場合、すなわち、レリーズ釦の全押しがなされていない場合には、ステップS1に戻り、スキャン制御を続行する。
ステップS3における判定の結果、2ndレリーズを検出した場合には、合焦駆動を実施する(S5)。ここでは、ステップS1におけるスキャン制御の中で記憶した合焦履歴を用いて、本露光までのタイムラグを考慮し、本露光中(露光開始から露光終了までの時間の1/2が経過した時点)の合焦位置を予測し、レンズ制御部103およびモータ駆動部102によって予測された合焦位置にフォーカスレンズを移動させる。なお、予測位置の信頼性が低い場合には、最終の合焦位置にフォーカスレンズを移動させる。
ステップS5において合焦駆動を実施すると、次に、本露光を実施する(S7)。ここでは、適正露光となる絞り値やシャッタ速度値等で露光制御を行い、このとき撮像素子201によって得られた画像データに対して画像処理を行い、この画像処理が施された画像データを記憶部203に記録する。本露光が終わると、この単写AFのフローを終了する。
次に、連写AFについて、図3に示すフローチャートを用いて説明する。連写モードが設定されている際に、レリーズ釦の全押しがなされると、図3に示す連写AFのフローが開始する。連写フローに入ると、まず、本露光を実施する(S11)。ここでは、図2のステップS7と同様にして取得した画像データに画像処理を施し、この画像データを記憶部203に記録する。
ステップS11において本露光を実施すると、次に、初期位置駆動を実施する(S13)。後述するステップS17においてスキャン制御を行うが、このスキャン制御を開始する際にフォーカスレンズ位置が最適となる位置に駆動する。すなわち、コントラストAFにおいては、コントラスト値のピークを検出するが、ステップS11における本露光の際にはコントラスト値のピークにフォーカスレンズが移動している。コントラストAFにおけるスキャンは、ピーク位置よりも少しずれた位置から始めることが望ましい。そこで、このステップでは、それまでのフォーカスレンズの駆動方向を考慮し、コントラスト値のピーク位置より少しずれた位置が初期位置となるように駆動する。
ステップS13において初期位置駆動を実施すると、次に、スキャン用の露出条件を決定する(S15)。ここでは、ステップS17において行うスキャン制御の際の露出条件を決定する。露出条件の決定にあたっては、前回の本露光を行った際の画像データ、またはライブビュー画像の画像データを取り込み、この画像データから輝度情報を算出し、スキャン中の露出条件(例えば、電子シャッタ速度等)を決定する。
ステップS15において、露出条件の決定を行うと、次に、スキャン制御を行う(S17)。ここでは、図2のステップS1と同様に、フォーカスレンズを移動させながら、コントラスト値の取得を行う。このスキャン制御の詳しい動作については、図4を用いて後述する。なお、連写AFでは、レリーズ釦が全押しされている間、本露光やスキャン制御が繰り返される。所定のフレーム数分、スキャン駆動を行う(すなわち上限を超えない範囲内のフレーム数で行う)。
ステップS17において、スキャン制御を行うと、次に、合焦位置の算出を行う(S19)。ここでは、図2のステップS5と同様に、ステップS17におけるスキャン制御の中で記憶した合焦履歴を用いて、ステップS11における本露光までの連写間隔を考慮して本露光中の合焦位置を予測する。
ステップS19において合焦位置の算出を行うと、次に、合焦駆動を実施する(S21)。ここでは、レンズ制御部103およびモータ駆動部102によって、ステップS19において予測された合焦位置にフォーカスレンズを移動させる。なお、最終のスキャンの結果、予測位置の信頼性が低い場合には、最終の合焦位置にフォーカスレンズを移動させる(図5のS51、S57、S59参照)。
ステップS21において、合焦駆動を実施すると、次に、2R保持継続か否かを判定する(S23)。前述したように連写モードにおいては、レリーズ釦が全押し中は連写を継続している。このステップでは、レリーズ釦の全押しに連動する2ndレリーズ(2R)スイッチがオンのままか否かを判定する。
ステップS23における判定の結果、2Rが保持されている場合には、ステップS11に戻り、合焦位置を予測し、本露光を行って、連写を続行する。一方、2R保持が継続されていなかった場合、すなわち、ユーザの指がレリーズ釦から離れた場合には、連写AFのフローを終了する。
次に、ステップS1(図2参照)およびステップS17(図3参照)におけるスキャン制御の詳しい動作について、図4に示すフローチャートを用いて説明する。スキャン制御のフローに入ると、まず、スキャン駆動を開始する(S31)。ここでは、本体制御部204は、レンズ制御部103に対し、モータ駆動部102によってフォーカスレンズの走査(スキャン)を開始するように指示する。また、スキャンを開始すると、本体制御部204内のコントラストAF回路は、撮像素子201からの画像信号に基づいてコントラスト値を算出する。
スキャン駆動を開始すると、次に、方向判断の確定を待つ(S33)。スキャン駆動を開始すると、1フレーム分の画像データが出力されるたびに、前述したようにコントラスト値が算出されるので、このコントラスト値が1フレームごとに増加しているのか減少しているのかを判定する。コントラスト値が所定フレーム数、増加すると、もしくは減少すると、方向判断が確定する。
ステップS33において方向判断が確定すると、次に、方向判断の確定結果が順方向か逆方向かを判定する(S35)。コントラスト値が増加していた場合には、フォーカスレンズの移動している方向にピークがあることから順方向と判断される。一方、コントラスト値が減少していた場合には、フォーカスレンズの移動している方向と逆方向にピークがあることから逆方向と判断される。
ステップS35における判定の結果、逆方向と判定された場合には、次に、スキャン方向を逆転する(S37)。ここでは、本体制御部204は、レンズ制御部103に対し、モータ駆動部102によるフォーカスレンズのスキャン方向を逆転するように指示する。
ステップS37においてスキャン方向を逆転すると、またはステップS35における判定の結果、順方向であった場合には、次に、ピーク検出を待つ(S39)。前述したように、スキャン駆動中にコントラストAF回路は、1フレーム分の画像データが出力されるたびにコントラスト値を算出する。このステップでは、コントラスト値がピークを越えたときに生ずるコントラスト値の増加から減少への変化を待つ。
ステップS39において、コントラスト値のピークを検出すると、次に、合焦位置を算出し、合焦履歴を保存する(S41)。ここでは、ピーク付近の3点のAF評価値(コントラスト値)と、そのときのフォーカスレンズの位置から、二次曲線の近似式を用いて、AF評価値のピークの合焦位置(フォーカスレンズ位置)を算出する。この合焦位置と合焦時刻を、セットで合焦履歴として記憶部203に保存する。この記憶部203は、スキャン動作を実行して画像のコントラストがピークとなるフォーカスレンズ位置を検出する時刻を検出し記憶する時刻記憶部として機能する。
ステップS41において、合焦位置を算出し、合焦履歴を保存すると、次に、2ndレリーズを検出したか否かを判定する(S43)。ここでは、ステップS3(図2参照)と同様に、2ndレリーズスイッチの状態に基づいて判定する。
ステップS43における判定の結果、2ndレリーズを検出しなかった場合には、合焦方向を判定する(S45)。ステップS39において、コントラスト値のピークを越えたことから、再度、ピークを検出するために、フォーカスレンズの駆動方向を逆転させる。このため、本体制御部204は、レンズ制御部103に対し、モータ駆動部102によるフォーカスレンズのスキャン方向を逆転するように指示する。
ステップS45において駆動方向を逆転すると、ステップS33に戻り、ステップS33〜S41においてコントラスト値のピークを求め、合焦位置の算出を行う。一方、ステップS43における判定の結果、2ndレリーズを検出した場合には、スキャン制御のフローを終了し、元のフローに戻る。なお、図4に示すフローにおいては、ステップS43において、2ndレリーズの検出を行っているが、ステップS33〜S41を実行中に、2ndレリーズを検出した場合には、スキャン制御を終了する。
次に、ステップS19(図3参照)における合焦位置算出の詳しい動作について、図5に示すフローチャートを用いて説明する。合焦位置算出のフローに入ると、まず、最終合焦位置使用可能判断を行う(S51)。前述したように、コントラストAFでは、撮像素子201から1フレーム分の画像データが出力される度にコントラスト値が算出される。例えば、60フレーム/秒の場合には、1/60秒毎にコントラスト値が算出される。このため、2ndレリーズスイッチがオンとなり、連写が開始されたタイミングによっては、合焦位置(図4のステップS41参照)が算出されてから相当、時間が経ってしまった場合や、また、合焦位置算出後、被写体が急激に移動した場合には、合焦位置の予測演算の信頼性が低い場合がある。そこで、このステップでは、最終合焦位置情報(合焦位置と合焦時刻、図4のステップS41の合焦履歴参照)と現在の情報(現在位置と現在時刻)を用いて最終合焦位置情報が信頼に足るものであるか否かを判定する。この最終合焦位置使用可能判断の詳しい動作については、図6を用いて後述する。
ステップS51において、最終合焦位置使用可能判断を行うと、次に、最終合焦位置が使用可能であるか否かを判定する(S53)。ここでは、ステップS51における判断結果に応じて判定する。
ステップS51における判定の結果、最終合焦位置使用可能でなかった場合には、次に、最終スキャンでの合焦位置推定を行う(S55)。ステップS53における判定の結果がNoであったのは、最終スキャンの結果、得られた画像データに基づいて合焦位置を決定することができなかった場合である。そこで、このステップでは、最終スキャンの結果を用いて合焦位置の推定を行う。この最終スキャンでの合焦位置推定の詳しい動作については、図7および図10を用いて後述する。
ステップS55において最終スキャンでの合焦位置推定を行うと、次に、合焦位置推定可能か否かを判定する(S57)。ステップS55における合焦位置の推定では、合焦位置推定可能か否かを判断する(図7のS89、S91参照)。ステップ57では、この判断結果に基づいて判定する。
ステップS57における判定の結果、合焦位置推定が不可であった場合には、合焦位置pos=現LDPとする(S59)。ここでは、ステップ55において推定した合焦位置の信頼性が低くかったことから、最終スキャンで確定した合焦位置posを撮影レンズ101のフォーカスレンズの駆動位置(LDP)とする。合焦位置予測不可の場合の合焦駆動については、図9を用いて後述する。
一方、ステップS53における判定の結果、最終合焦位置が使用可能であった場合、または、ステップS57における判定の結果、合焦位置推定可能であった場合には、動体予測時間算出を行う(S61)。ここでは、合焦履歴を用いて合焦位置を予測するにあたって、本露光までの時間を算出する。レリーズ釦が全押しされた場合には、2ndレリーズスイッチオンから本露光までの時間となり、また連写中の場合には、次の本露光までの時間となる。なお、本露光までの時間としては、本露光中の中間点(露光開始から露光終了までの時間の1/2が経過した時点)とする。
動体予測時間を算出すると、次に、予測パルス位置演算を行い、この演算値をposに設定する(S63)。ここでは、合焦履歴を用いて、ステップS61において算出した動体予測時間後に、被写体の位置の予測演算を行い、この予測演算結果の合焦位置に撮影レンズ101のフォーカスレンズを位置させるための駆動パルス位置LDPの設定を行う。本実施形態においては、合焦履歴で記憶されている合焦位置の情報を用いて、最小二乗法により直線近似で予測演算を行うが、これとは異なる予測演算式を採用しても勿論かまわない。なお、本実施形態においては、フォーカスレンズの駆動位置はLDPで表わされる。すなわち、基準位置からのフォトインタラプタ等のパルス数で表わされるものとする。
ステップS59において合焦位置pos=現LDPとすると、またはステップS63において予測パルス位置演算⇒posに値を設定すると、元のフローに戻る。
このように、最後に実行したスキャン動作(図3のS17参照)の検出結果に応じて、記憶した複数の過去の合焦位置情報(図4のS41参照)に基づいて所定時刻の合焦位置を予測する場合に(図5のS53Yes)、記憶した複数の過去の位置情報に基づいて撮像素子による本撮影時刻の合焦位置を予測している(図5のS63)。この予測演算の結果を用いてフォーカスレンズの移動を行う(図3のS21参照)。
また、最後に実行したスキャン動作(図3のS17参照)の検出結果に応じて、記憶した複数の過去の合焦位置情報(図4のS41参照)に基づいて所定時刻の合焦位置を予測しないと判定する場合に(図5のS53No)、本撮影時のフォーカスレンズの位置を最後に実行したスキャン動作の終了時のフォーカスレンズの位置としている(図5のS59)。
次に、ステップS51(図5参照)における最終合焦位置使用可能判断の詳しい動作について、図6に示すフローチャートを用いて説明する。最終合焦位置使用可能判断のフローに入ると、まず、|現LDP−最終合焦位置|≧TH1か否かの判定を行う(S71)。ここでは、本露光直前にスキャン動作を終了した時点でのフォーカスレンズの位置(現LDP)から、ステップS41(図4参照)において記憶した複数の過去の合焦位置情報のうちの最新の合焦位置情報(最終合焦位置)を減算した値の絶対値が、第1の所定値(TH1)よりも大きいか否かを判定する。なお、この|現LDP−最終合焦位置|は、後述する図9において距離LAに相当する。
ステップS71における判定の結果がNoであった場合には、次に、現在時刻−最終合焦時刻≧TH2か否かを判定する(S73)。ここでは、最後に実行したスキャン動作によりフォーカスレンズ位置を検出した時刻から、ステップS41において記憶した複数の過去の合焦位置情報のうちの最新の合焦位置情報を検出した時刻を減算した値が、第2の所定値(TH2)よりも大きいか否かを判定する。なお、この「現在時刻−最終合焦時刻」は、後述する図9において時間TAに相当する。
ステップS73における判定の結果がNoであった場合には、最終合焦位置使用可能と判断する(S75)。一方、ステップS71における判定の結果がYesであった場合、またはステップS73における判定の結果がYesであった場合には、最終合焦位置使用不可と判断する(S77)。ステップS75またはS77において判断を行うと元のフローに戻る。
このように、最終合焦位置使用可能判断のフローでは、記憶した複数の過去の位置情報のうちの最新の位置情報と、最後に実行したスキャン動作により検出したフォーカスレンズの位置との差が第1の所定値(TH1)よりも大きい場合に(S71Yes)、過去の位置情報に基づいて所定時刻の合焦位置を予測しないと判定するようにしている(S77)。また、時刻記憶部(記憶部203)に記憶した複数の過去の位置情報のうちの最新の位置情報を検出した時刻と、最後に実行したスキャン動作によりフォーカスレンズ位置を検出した時刻との差が第2の所定値よりも大きい場合に(S73Yes)、上記過去の位置情報に基づいて所定時刻の合焦位置を予測しないと判定するようにしている(S77)。
次に、図8および図9を用いて、コンティニュアスAF時における合焦位置の予測の例を説明する。図8は、予測実施可能な場合のレンズ位置制御を、また図9は予測実施が不可能な場合のレンズ位置の制御を示す。図8および図9において、横軸は時間の変化をまた、縦軸にレンズ位置を示す。
図8において、時刻T1〜T3の間は、1回目のスキャンSC1が行われており、この間、撮像素子201からの画像データが出力される度にコントラスト値(AF評価値)が繰り返し算出される(図4のS33〜S39参照)。このときコントラスト値のピークが検出されると、合焦位置が算出される。図8に示す例では、時刻T2において合焦位置z11が算出される。
1回目のスキャンSC1が終わると、フォーカスレンズの駆動方向を逆転し(図4のS45参照)、時刻T3〜T5において2回目のスキャンSC2を実行し、時刻T4において合焦位置z12を算出する。以後、同様にして、時刻T5〜T7の間で3回目のスキャンSC3を実行し、時刻T6において合焦位置z13を算出し、時刻T7〜T9の間で4回目のスキャンSC4を実行し、時刻T8において合焦位置z14を算出し、時刻T9〜T11の間で4回目のスキャンSC5を実行し、時刻T10において合焦位置z15を算出し、時刻T11〜T21の間で6回目のスキャンSC6を実行し、時刻T12において合焦位置z16を算出する。
合焦位置m1〜m6におけるレンズ位置を結んだ線は、被写体位置の変化の様子を示す被写体移動ラインPとなる。合焦位置m6は最新の合焦位置を示し、合焦位置m5は1つ前の合焦位置を示し、合焦位置4は2つ前の合焦位置を示し、これらの合焦位置に対応するレンズ位置(z11〜z16)とその時の時刻(T2、T4、T6、T8、T10、T12)がセットで、合焦履歴として、記憶部203に記憶される。
時刻T21において、2ndレリーズ押下げによりスキャンが終了すると、または連写時の次の本露光のタイミングになると、図5に示される合焦位置算出中のステップS53における最終合焦位置使用可能判定がなされ、図8に示す例では、最終合焦位置(この例では、合焦位置m6)が使用可能と判断される。
最終合焦位置が使用可能と判定されると、本露光が時刻T31に開始し、露光時間の1/2が経過する時刻T32における被写体の位置を、時刻T21から時刻T32までの動体予測時間を算出し(図5のS61参照)、この動体予測時間と被写体移動ラインPを表す式に基づいて、本露光時における合焦位置を予測演算し(図5のS63参照)、フォーカスレンズの駆動を駆動ラインAFDに沿って行う(図3のS21)。
図9には、前述したように、予測実施が不可能な場合のレンズ位置の制御の例を示す。時刻T1〜T11までは、図8の場合と同様に、スキャンSC1〜SC5を行う。6回目のスキャンSC6aを開始時後、時刻T13において、スキャン方向の逆転がなされる。これは、ステップS45(図4参照)において方向を反転してフォーカスレンズの移動を開始したものの、ステップS33、S35における判断と判定の結果、コントラスト値が減少したために、スキャン方向を逆転した場合である(図4のS37参照)。
スキャン方向が逆転され、スキャンSC6bの実行中の時刻T21において、2ndレリーズが押下げられ、または連写の次の本露光のタイミングになる。この場合にも、図5に示される合焦位置算出中のステップS53における最終合焦位置使用可能判定がなされる。図9に示す例では、最終合焦位置(この例では、合焦位置m5)が使用不可能と判断される。すなわち、ステップS71における判定、|現LDP−最終合焦位置|≧TH1となっている。図9に示す例では、最終合焦位置m5と現LDP(z21)の差分LAが、所定値TH1よりも大きい。なお、ステップS73における判定を行ったとすると、最終合焦位置m5における時刻T10と、現在時刻T21との差分時間TAが、所定値TH2よりも大きい。
このように図9に示す例では、最終合焦位置(m5)が使用不可能と判断される。このため、最終のスキャン(6回目のスキャンSC6a,SC6b)におけるコントラスト値(AF評価値)を用いて、合焦位置が推定可能であれば(図5のS57Yes)、この推定された合焦位置を用いて、合焦位置の予測を行い(図5のS63)、フォーカスレンズの駆動を駆動ラインAFDに沿って行う(図4のS21)。一方、合焦位置の推定が不可能であれば、現在時刻T21の現在位置に対応したレンズ位置z21で(図5のS59)、合焦駆動を行う。
次に、ステップS55(図5参照)における最終スキャンでの合焦位置推定の詳しい動作について、図7に示すフローチャートを用いて説明する。
最終スキャンでの合焦位置推定のフローに入ると、まず、データ数が5点以上あるか否かを判定する(S81)。コントラストAFにおける合焦位置の算出は、コントラスト値のピーク付近の3点のデータを用いてピーク位置(合焦位置)を算出する(図4のS41)。しかし、この最終スキャンでの合焦位置推定では、コントラスト値のピークを検出しない状態であることから、ピーク推定の信頼性を確保するために、コントラスト値として5点以上の情報があるか否かの判定を行っている。
ステップS81における判定の結果、データ数が5点以上あった場合には、次に、ガウス関数近似式算出を行う(S83)。ここでは、5点以上のデータを用いてガウス関数近似式でコントラス情報のピーク位置を算出し、このピーク位置をフォーカスレンズ位置(zc)とする。このガウス関数近似式によるフォーカスレンズ位置(zc)の算出の詳細については、後述する。
ステップS83においてガウス関数近似式算出を行うと、次に、評価値の差≧TH3か否かの判定を行う(S85)。コントラスト値のピーク位置を近似式で算出するにあたって、ガウス関数の裾野部分等、AF評価値(コントラスト値)の差が小さい部分では信頼性が低くなってしまう。そこで、このステップでは、AF評価値の差に基づいて信頼性の判定を行っている。なお、後述する図10に示す例では、AF評価値の差は、5点のAF評価値の最大と最小の差分Zに相当する。
ステップS85における判定の結果、AF評価値の差が所定値TH3以上であった場合には、つぎに、信頼性があるか否かを判定する(S87)。この信頼性の判定のための演算については、ガウス関数近似式の算出について詳細に説明する際に併せて説明するが、概略、ガウス曲線に近似する際に、このガウス曲線と実際のデータの残差の二乗和(後述する式(3)参照)を信頼性の判定の基礎とする。
ステップS87における判定の結果、信頼性がOKであった場合には、合焦位置推定可能と判断する(S89)。一方、ステップS87における判定の結果、信頼性がNGであった場合、またはステップS81における判定の結果、データ数が5点未満であった場合、またはステップS85における判定の結果、AF評価値の差がTH3よりも小さかった場合には、合焦位置推定不可と判断する(S91)。
ステップS89、S91において合焦位置推定の可否を判断すると、元のフローに戻り、前述のステップS57(図5参照)に進む。
この最終スキャンでの合焦位置推定の一例について、図10を用いて説明する。図10は、スキャン制御中におけるコントラスト値(AF評価値)の変化を示し、横軸にフォーカスレンズの位置を、また縦軸にAF評価値を示す。この例では、5フレーム分の画像データに対して、コントラスト値(AF評価値)を5点算出できたところで、2ndレリーズ等が入ったことから、スキャン動作を停止し、取得した5点からコントラスト値のピーク位置を推定する。
1点目は、フォーカスレンズ位置z1においてAF評価値がAFval_1である(この結果を、(AFval_1,z1)と略記する)。以後、2点目は(AFval_2,z2)であり、3点目は(AFval_3,z3)であり、4点目は(AFval_4,z4)であり、5点目は(AFval_5,z5)である。図中、実線は、1点目から5点目までのコントラスト値(AF評価値)の実測値を繋いで得られるコントラスト情報の曲線を示す。
図10において、2点鎖線は、1点目から5点目までのコントラスト値を用いて、ステップ83におけるガウス関数近似式によって推定したコントラスト値の曲線である。この推定コントラスト情報曲線Gからピーク位置zcを推定することができる。なお、破線は、5点目以降もスキャンを続行した場合に得られるコントラスト情報曲線Rを示す。理想としては、推定コントラスト情報曲線Gとコントラスト情報曲線Rが一致することが望ましい。
このように、最後に実行したスキャン動作により画像のコントラストがピークとなるフォーカスレンズの位置を検出できない場合であっても(図5のS53No)、ピークとなるフォーカスレンズの位置を推定するようにしている(図5のS55、図7のS83)。また、フォーカスレンズの合焦位置が推定できた場合には(図5のS57Yes)、この推定したピークとなるフォーカスレンズ位置と記憶した過去の位置情報の両方に基づいて所定時刻合焦位置を算出し(図5のS61)、所定時刻における合焦位置を予測するようにしている(図5のS63)。
次に、ステップS83(図7参照)におけるガウス関数近似式を用いての算出方法について説明する。フォーカスレンズのピーク検出動作中に得られたAF評価値をAFval_i、対応するフォーカスレンズ位置をziとすると、複数の点(AFval_i ,zi)(i=1,2,3,…,n)に対して、最も近くを通るガウス曲線を求める処理を行う。
このガウス曲線は以下の式(1)のように表わすことができる。
AFval_i=Nexp{−(zi−zc)2/2σ2} ・・・(1)
ただし、Nは定数、zcは平均、σは分散を示す。
式(1)のガウス関数の両辺の対数を取ると以下の式が導かれる。
Ln(AFval_i)= lnN+{−(zi−zc)2/2σ2} ・・・(2)
式(2)において、ln(AFval_i)=Fi、a=−1/2σ2、b=2zc/2σ2、c=lnN−zc2/2σ2とおくと、ガウス曲線を単なる2次式「F=az2+bz+c」で表すことが可能となる。
上記zc=−b/2aに係数a、bを代入して合焦位置を算出することができる。本実施形態では、ガウス曲線を表わす二次曲線に対する残差二乗和を各係数で偏微分した各式の値を0として求めた連立方程式を解いて各係数a、b、cを求める。
残差二乗和Sは、以下の式(3)のように表わすことができる。
S=Σ(Fi −azi2−bzi−c)2・・・(3)
なお、前述したように、この残差二乗和は、ステップS87において、信頼性の判断に使用される。
上記式(3)を各係数a、b、cで偏微分した結果は以下の式(4)、(5)、(6)のように示される。
∂S/∂a=Σ(−2(Fi −azi2 −bzi −c))zi2・・・(4)
∂S/∂b=Σ(−2(Fi −azi2 −bzi −c))zi・・・(5)
∂S/∂c=Σ(−2(Fi −azi2 −bzi −c))・・・(6)
ここで、i=1〜nである。
各式(4)、(5)、(6)において偏微分値を0
とすると、以下の式(7)、(8)、(9)が導かれる。
Σ(zi2 Fi )=aΣ(zi4)+bΣ(zi3)+cΣ(zi2)・・・(7)
Σ(zi Fi )=aΣ(zi3)+bΣ(zi2)+cΣ(zi)・・・(8)
Σ(Fi )=aΣ(zi2)+bΣ(zi )+cn ・・・(9)
上式(7)、(8)、(9)において、Σ(zi)=A、Σ(Fi)=B、Σ(ziFi)=C、Σ(zi2)=D、Σ(zi3)=E、Σ(zi4)=F、Σ(zi2Fi)=Gとすると、以下の式(10)、(11)、(12)のように表わすことができる。
G=aF+bE+cD ・・・(10)
C=aE+bD+cA ・・・(11)
B=aD+bA+cn ・・・(12)
上述の連立方程式(10)、(11)、(12)をa、b、cについて解くと、以下の式(13)、(14)、(15)のようになる。
a=((AB−Cn)(D2 −AE)−(DC−AG)(A2−Dn))/((AD−En)(D2 −AE)−(DE−AF)(A2 −Dn))・・・・・・(13)
b=((DC−AG)−a(DE−AF))/(D2−AE))・・・・(14)
c=(B−bA−aD)/n ・・・・・・・(15)
AF評価値が最大となるフォーカスレンズ位置(合焦位置)は、ガウス分布の中央値である平均zcで表わされるので、a、b、cを算出してzc=−b/2aを求めることができる。
以上説明したように、本発明の一実施形態においては、スキャン動作を繰り返し実行して画像のコントラストがピークとなるフォーカスレンズの位置情報を検出して記憶し、記憶した複数の過去の位置情報に基づいて所定時刻の合焦位置を予測し(図5のS61参照)、また、最後に実行したスキャン動作の検出結果に応じて、記憶した複数の過去の位置情報に基づいて所定の時刻の合焦位置を予測するか否かを判定する(図5のS53参照)ようにしている。このため、被写体の状態に応じて適切な合焦位置の予測を行うことが可能となる。すなわち、本露光に前に、被写体の動きが大きくなった場合等であっても、適切に合焦位置の予測を行うことが可能となる。
なお、本発明の一実施形態においては、ステップS83(図7参照)における合焦位置の推定にあたってはガウス関数近似式を用いたがこれに限らず、コントラスト値のピーク位置を求められる近似式であれば、これとは異なる関数を採用しても勿論かまわない。
また、本発明の一実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォーンや携帯情報端末(PDA:Personal Digital Assist)、ゲーム機器等に内蔵されるカメラでも構わない。いずれにしても、コントラストAFによって焦点調節を行う機器であれば本発明を適用することができる。
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。