以下、本発明を図示の実施例に基づいて詳細に説明する。
図1は本発明の実施例に係る自動焦点検出装置付き一眼レフカメラの電気的構成を示すブロック図である。
図1において、1はMPU(マイクロプロセッシングユニット)、2はメモリ、3はAF(オートフォーカス)を行うための焦点検出ユニットである。なお、MPU1,メモリ2および焦点検出ユニット3により、焦点検出装置が構成される。
4は焦点検出ユニット3の検出結果に基づき撮影光学系を駆動するレンズ駆動ユニット、5は絞り駆動ユニット、6はシャッタ駆動ユニット、7はフィルム給送ユニットである。8はカメラの諸設定(絞り値、シャッタ速度等)を不図示の液晶ディスプレーに表示したり、 ONE SHOT - AFモードの際、焦点検出制御によって画面内の特定の焦点検出領域が選択されたときに、その焦点検出領域をLEDによって赤いハイライト表示にするための表示ユニットである。
9は ONE SHOT - AFおよび AI SERVO - AFの何れかのAFモードを切り換えるためのAF切換えスイッチ、10は後述するCF(カスタムファンクション)を設定のためのCFスイッチ、11はシャッタ速度,絞り値などを設定するためのメインダイヤル、SW1はレリーズボタンの第1ストローク操作(半押し)によりオンするスイッチ、SW2はレリーズボタンの第2ストローク操作(全押し)によりオンするスイッチである。
次に、本発明の実施例のカメラのメイン動作について、図4のフローチャートを用いて説明する。
通常カメラは、電源がオンされ、操作者が何らかの操作( スイッチSW1のオンやシャッタ速度、絞り値等の設定) を一定時間以上行わないと省電力待機モードへ移行し(#001→#002→#003→#004)、MPU1は停止状態になる。そして、操作者が何らかの操作を行うことによって(ステップ#005のYES)、MPU1に割り込みが入り、その操作に対応する種々の動作・設定を行うようになっている。この種々の動作・設定のうち、本発明に関係のあるAFの動作について詳しく説明する。
ステップ#002において、スイッチSW1がオンしたことを判定するとステップ#006へ進み、MPU1は焦点検出領域の選択が自動選択(MPU1が自動的に焦点検出点を選択)か任意選択(撮影者が所望の焦点検出領域を45点の中から1点選択)かを判定する。この結果、自動選択であればステップ#007へ進み、「焦点検出領域自動選択撮影」のルーチンを実行する。また、任意選択であった場合にはステップ#008へ進み、「焦点検出領域任意選択撮影」のルーチンを実行する。この「焦点検出領域任意選択撮影」については、本発明には関係ないので説明は省略する。
上記「焦点検出領域自動選択」ルーチンは撮影のための一連の動作を行うルーチンであり、図5のフローチャートを用いて説明する。
まず、ステップ#102において、測光を行い、続くステップ#103において、「焦点検出制御」を行うルーチンを実行する。このルーチンについての詳細は図6及び7のフローチャートを用いて後述する。焦点検出制御のルーチンが終了し焦点検出が行われるとステップ#104に進み、 ONE SHOT - AFモードか AI SERVO - AFモードかを判定する。
ここで、 ONE SHOT - AFとは、焦点検出を行い、一度レンズ駆動が完了してしまうとスイッチSW1がオフされるまでそのレンズ位置を保持するモードであり、風景やポートレートなど、静止している被写体の撮影に適している。また、 AI SERVO - AFとは、スイッチSW1がオンされている間、スイッチSW2がオンされレリーズ動作に入る直前まで、焦点検出制御とレンズ駆動を繰り返すモードであり、さらには被写体の移動を検知した場合、AFタイムラグとレリーズタイムラグを考慮したレンズ駆動(予測AF)も行う。モータスポーツやサッカーゲームなどの移動する被写体の撮影に適している。
上記判定の結果、 ONE SHOT - AFモードであればステップ#105へ進み、ここでは合焦しているかどうかを判定する。合焦していなければステップ#107へ進み、レンズ駆動を行い、以下合焦するまで測光,焦点検出制御およびレンズ駆動を繰り返す(#107→#102→#103→#104→#105→#107……)。
また、合焦していればステップ#106に進み、焦点検出を行った焦点検出領域のピント板上への表示を行い、次のステップ#110において、スイッチSW2の状態を調べる。そして、オンしている場合にだけステップ#111へ進み、撮影動作を実行する。その後、ステップ#112において、スイッチSW1の状態を調べ、オンしていればステップ#113へ進み、現在は ONE SHOT - AFモードであるのでこのステップ#113からステップ#110へ戻り、以下、スイッチSW1がオフされるまで、スイッチSW2とスイッチSW1の状態を調べる。その後スイッチSW1がオフされらステップ#114へ進み、このルーチンを終了して図4のメインルーチンへ戻る。
一方、 AI SERVO - AFモードであればステップ#104からステップ#108へ進み、合焦しているかどうかを判定する。そして、合焦していない場合にだけステップ#109へ進み、レンズ駆動を行う。
続いて、 ONE SHOT - AFモードと同様に、ステップ#110において、スイッチSW2の状態を調べる。そして、オンしている場合にだけステップ#111へ進み、撮影動作を実行する。その後、ステップ#112において、スイッチSW1の状態を調べ、オンしていればステップ#113へ進み、現在は AI SERVO - AFモードであるのでこのステップ#113からステップ#102へ戻り、以下、スイッチSW1がオフされるまで、測光,焦点検出制御およびレンズ駆動を繰り返す。その後スイッチSW1がオフされたらステップ#114へ進み、このルーチンを終了して図4のメインルーチンへ戻る。
次に、図5のステップ#103にて実行される「焦点検出制御」について、図6及び図7のフローチャートを用いて説明する。
ステップ#202においては、CFスイッチ(操作者が撮影する被写体に応じて焦点検出制御を変更するカスタムファンクションスイッチ)10がオンされているかを調べ、オンされている場合はステップ#207へ進み、「CFスイッチオンにおける焦点検出制御」のルーチンを呼び出して図5のルーチンに戻る。このルーチンについての詳細は、図18及び図19のフローチャートを用いて後述する。次のステップ#203においては、 ONE SHOT - AFモードか AI SERVO - AFモードかを調べ、 AI SERVO - AFモードの場合はステップ#206へ進み、「 AI SERVO - AFにおける焦点検出制御」のルーチンを呼び出して図5のルーチンに戻る。このルーチンについての詳細は、図8及び図9のフローチャートを用いて後述する。一方、CFスイッチオフかつ ONE SHOT - AFモードの場合はステップ#204へ進み、「第一優先領域の設定」ルーチンを呼ぶ。このルーチンは、図8及び図9の「 AI SERVO - AFにおける焦点検出制御」のルーチンからも、又図18及び図19の「CFスイッチオンにおける焦点検出制御」のルーチンからも共通して呼ばれるので、まずこのルーチンについて、図10のフローチャートを用いて説明する。
まず、ステップ#402において、 ONE SHOT - AFモードか AI SERVO - AFモードかを判定し、 ONE SHOT - AFモードならステップ#403へ、 AI SERVO - AFモードならステップ#404へ進み、それぞれCFスイッチがオンされているかどうかを判定する。この結果、 ONE SHOT - AFモードかつCFスイッチがオフされているのなら、ステップ#403からステップ#405へ進み、ここでは ONE SHOT - AFにおける第一優先領域の設定を行い、CFスイッチがオンなら、ステップ#403からステップ#406へ進み、ここでは ONE SHOT - AF,CFスイッチオンにおける第一優先領域の設定を行う。一方、 AI SERVO - AFモードかつCFスイッチがオフされているのなら、ステップ#404からステップ#407へ進み、ここでは AI SERVO - AFにおける第一優先領域の設定を行い、CFスイッチがオンなら、ステップ#404からステップ#408へ進み、ここでは AI SERVO - AF,CFスイッチオンにおける第一優先領域の設定を行う。
図6のステップ#204からこの図10の「第一優先領域の設定」ルーチンが呼ばれた場合、前述した図10のステップ#405の ONE SHOT - AFにおける第一優先領域の設定が行われることになる。この設定は具体的には、図12(a)の様に、45点の焦点検出領域のうち、黒色の枠で示される1,4,7,18,20,23,26,28,39,42および45の計11の焦点検出領域を第一優先領域として設定している。
図6に戻り、第一優先領域の設定後はステップ#205へ進み、変数FLAG1に0を代入して焦点検出センサの蓄積を開始し、次のステップ#208において、最大蓄積時間のチェックを行う。センサの蓄積が予め設定した時間(最大蓄積時間)を経過しても終了しない場合にはステップ#210へ進み、センサの蓄積を強制的に終了させ、全ての像信号を読み出す。そして、次のステップ#211において、焦点検出領域の評価、つまり45点の焦点検出領域の中から主被写***置に対応していると判定するのに最もふさわしい焦点検出領域(以下、この有効な焦点検出領域とも記す)として最終的な焦点検出領域(焦点調節に用いるデフォーカス量が得られる領域)を探し出す。この最終的な焦点検出領域の具体的な決定方法は、後述する第一優先領域の評価において説明する。そして、ステップ#221へ進み、探し出された焦点検出領域をレンズ駆動に供するデフォーカス量が得られる最終的な焦点検出領域として設定する。
一方、上記ステップ#208にて最大蓄積時間を経過していないと判定した場合はステップ#209へ進み、センサの読み出しチェックおよび読み出しを行う。この動作としては、まず、各センサの蓄積が終了しているかどうかを判定し、各センサのうち蓄積終了したセンサがある場合、未だそのセンサの像信号を読み出しを完了していなければ、そのセンサに対して像信号の読み出しを行う。そして、次のステップ#212において、新たな像信号の読み出しを行ったかを判定し、読み出しを行っていない場合には、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出しを繰り返す(#212→#208……)。
また、新たな像信号の読み出しが行われたことを判定した場合はステップ#213へ進み、その相関演算を行い、相関演算終了後は図7のステップ#214へ進み、FLAG1が0であるかどうかを判定する。なお、FLAG1は第一優先領域の全ての焦点検出領域において相関演算が終了した場合には1、そうでない場合には0となるフラグ変数である。ここで、FLAG1が0と判定した場合はステップ#215へ進み、上記ステップ#209で新たな像信号の読み出したことによって、第一優先領域の全ての焦点検出領域において相関演算が終了したかどうかを判定する。ここで、終了していないと判定した場合には、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す(#215→#208→#209……)。
一方、終了したと判定した場合にはステップ#216へ進み、FLAG1を1に設定し、ステップ#217において、第一優先領域の評価を行い、第一優先領域の中から有効な焦点検出領域を最終的な焦点検出領域候補として決定する。
具体的には、図16のフローチャートで示す様に、まずステップ#602において、焦点検出領域候補として第一優先領域の焦点検出領域を全て設定する。そして、次のステップ#604において、第一優先領域の焦点検出領域一つ一つに対して焦点検出信頼度の判定を行う。焦点検出信頼度は、図17のステップ#702〜#707に示す様に、コントラストと相対位置変位量を求める際に対にする2つの像信号の一致度、この2つの要素を加味して求めている。この動作は一般的であるので、これ以上の説明は省略する。
上記の様にして全ての領域の信頼度を判定し終えるとステップ#606へ進み、信頼度がある基準値を満たす焦点検出領域の中から最も有効な焦点検出領域候補を決定する。焦点検出領域候補は、画面内の各焦点検出領域に予め設定されている重み付けや相関演算によって算出されたデフォーカス量などを基に総合的に求めている。この焦点検出領域候補の決定方法は、様々な手法が提案され公知の技術であり、本発明とは関係ないので説明を省略する。
図7に戻って、ステップ218においては、選択された焦点検出領域候補の信頼度が予め定められた基準値を超えるかどうかを判定し、基準値を超えると判定した場合にはステップ#221へ進み、この領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
また、基準値を超えない場合には、第一優先領域以外の図12(b)に示す焦点検出領域に、より有効な焦点検出領域が存在する可能性があるので図6のステップ#208へ戻り、残りの焦点検出領域の調査をする。
具体的には、ステップ#216でFLAG1は1に設定されたので、ステップ#214ではステップ#219へ進むことになり、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す。ステップ#219において残りの焦点検出の相関演算が全て終了したと判定されるとステップ#220へ進み、残りの焦点検出領域の評価を行う。ここで、第一優先領域の評価とそれ以外の焦点検出領域の評価から最も評価の高い焦点検出領域を選択する。選択終了後、ステップ#221へ進み、選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
上記の ONE SHOT - AFにおいては、画面内の45点の焦点検出領域を図12(a)および(b)に示すように2つのグループに分割し、分割した一方のグループ(図12(a)の11点)を第一優先領域として設定し、このグループでの演算とその信頼性評価を実施し、前記評価結果が所定の判定値を満足すればその時点のグループにて演算を終了している。つまり、他のグループ(図12(b)のグループ)についは演算やその評価は行わないようしている。
上記の構成においては、被写体の移動を考慮しない ONE SHOT - AFにおいては、必ずしも全ての焦点検出領域で焦点検出を行う訳ではないので、特に風景などの被写体などで、高速かつ正確な焦点検出を行うことが可能になる。
次に、図6のステップ#206において実行される「 AI SERVO - AFにおける焦点検出制御」のルーチンについて、図8及び図9のフローチャートを用いて説明する。処理の基本的な流れは、上記図6及び図7の焦点検出制御や後述する図18及び図19の「CFスイッチオンにおける焦点検出制御」のルーチンとほぼ同じである。
まず、ステップ#302において、図10の「第一優先領域の設定」のルーチンを呼ぶ。このルーチンは、前述した通り、図6の「焦点検出制御」や後述する図18及び図19の「CFスイッチオンにおける焦点検出制御」のルーチンからも共通して呼ばれるが、このルーチンがステップ#302から呼ばれると、図10のステップ#407において、 AI SERVO - AFにおける第一優先領域の設定が行われる。
この設定は具体的には、図14(a)の様に、45点の焦点検出領域の中央の黒色の枠で示される23の焦点検出領域のみを第一優先領域としている。但しこれは初期状態であり、前述した通り、 AI SERVO - AFは被写体の移動にレンズ駆動を追従させる撮影モードであり、焦点検出を繰り返す間に被写体が移動し、焦点検出領域が移動した場合、その焦点検出領域が第一優先領域に設定される。
図8に戻り、第一優先領域の設定後はステップ#303へ進み、変数FLAG1およびFLAG2に0を代入し、焦点検出センサの蓄積を開始する。
蓄積開始によりステップ#304へ進むと、ここで最大蓄積時間のチェックを行う。センサの蓄積が予め設定した時間(最大蓄積時間)を経過しても終了しない場合はステップ#308へ進み、センサの蓄積を強制的に終了させ、全ての像信号を読み出す。そして、次のステップ#309において、焦点検出領域の評価、つまり読み出された焦点検出領域の中から最も有効な焦点検出領域を選択する。そしてステップ#324へ進み、ここで選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
一方、上記ステップ#304にて最大蓄積時間を経過していないと判定した場合にはステップ#305へ進み、センサの読み出しチェックおよび読み出しを行う。この動作としては、まず、各センサの蓄積が終了しているかどうかを判定し、各センサのうち蓄積終了したセンサがある場合、未だそのセンサの像信号の読み出しを完了していなければ、そのセンサに対して像信号の読み出しを行う。そして、ステップ#306において、新たな像信号の読み出しを行ったかを判定し、読み出しを行っていない場合には、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出しを繰り返す(#306→#304→#305→#306……)。
また、新たな像信号の読み出しが行われたことが判定した場合はステップ#307へ進み、その相関演算を行い、相関演算終了後にステップ#310へ進み、ここではFLAG2が0であるかどうか判定する。なお、FLAG2は後述する第二優先領域の全ての焦点検出領域において相関演算が終了した場合には1、そうでない場合には0となるフラグ変数である。上記FLAG2が0と判定した場合は図9のステップ#311へ進み、1と判定した場合はステップ#317へ進む。
図9のステップ#311へ進んだ場合、今度はFLAG1が0であるかどうか判定する。前述した様に、FLAG1は第一優先領域の全ての焦点検出領域において相関演算が終了した場合には1、そうでない場合には0となるフラグ変数である。上記FLAG1が0と判定した場合はステップ#312へ進み、上記ステップ#305で新たな像信号の読み出したことによって、第一優先領域の全ての焦点検出領域において相関演算が終了したかどうかを判定する。ここで、終了していないと判定した場合は、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す(#312→#304→#305……)。
一方、終了したと判定した場合はステップ#313へ進み、FLAG1を1に設定し、次のステップ#314において、先述した第一優先領域の評価を行い、第一優先領域の中から最も有望な焦点検出領域を最終的な焦点検出領域候補として決定する。
そして、ステップ#319において、前記決定した焦点検出領域候補の信頼度が予め定められた基準値を超えるかどうかを判定し、基準値を超えると判定した場合は図8のステップ#324へ進み、この領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
また、基準値を超えない場合には、第一優先領域以外の図14(b)に示す第二優先領域に、より有効な焦点検出領域が存在する可能性があるのでステップ#320へ進み、FLAG2を1に設定し、次のステップ#321において、「第二優先領域の設定」ルーチンを実行する。このルーチンについては、図18及び図19の「CFスイッチオンにおける焦点検出制御」のルーチンからも共通して呼ばれるので、まずこのルーチンについて、図11のフローチャートを用いて説明する。
まず、ステップ#502において、 ONE SHOT - AFモードか AI SERVO - AFモードかを判定し、 ONE SHOT - AFモードならステップ#503へ進み、 ONE SHOT - AF,CFスイッチオンにおける第二優先領域の設定を行う。また、 AI SERVO - AFモードならステップ#504へ進み、CFスイッチがオンされているかどうかを判定する。この結果、 AI SERVO - AFモードでCFスイッチがオフされているのならステップ#505へ進み、 AI SERVO - AFにおける第二優先領域の設定を行い、 AI SERVO - AFでCFスイッチがオンならステップ#506へ進み、 AI SERVO - AF,CFスイッチオンにおける第二優先領域の設定を行う。
図9に戻って、ステップ#321からこの「第二優先領域の設定」のルーチンが呼ばれると、前述した図11のステップ#505の AI SERVO - AFモードにおける第二優先領域の設定が行われることになる。この設定は、具体的には図14(a)の23の焦点検出領域が第一優先領域として設定された場合、図14(b)の様に、23の焦点検出領域の周辺の12,13,22,24,33および34の計6つの焦点検出領域を第二優先領域として設定している。
上記の様にステップ#320でFLAG2が1に設定され、ステップ#321で第二優先領域が設定されると、図8のステップ#310ではステップ#317へ進むことになり、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す(#321→#304→#305→#306→#307→#310→#317……)。そして、ステップ#317において、第二優先領域の全ての焦点検出領域において相関演算が終了したと判定するとステップ#318へ進み、第二優先領域の評価を行い、第二優先領域の中から最も有効な焦点検出領域候補を選択する。そして、次のステップ#322において、前記決定した焦点検出領域候補の信頼度が予め定められた基準値を超えるかどうかを判定し、基準値を超えると判定した場合にはステップ324へ進み、選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
また、基準値を超えない場合にはステップ#323へ進み、FLAG2を0に戻して(このときFLAG1は1)、第一優先領域と第二優先領域以外の焦点検出領域(図14(c))に、より有効な焦点検出領域が存在する可能性があるので図8のステップ#304へ戻り、残りの焦点検出領域の調査をする。
具体的には、FLAG2が0、FLAG1が1に設定された場合、ステップ#310ではステップ#311へ、ステップ#311ではステップ#315へ進むことになり、最大蓄積時間が経過しない限り、像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す(#323→#304→#305→#306→#307→#310→#311→#315……)。ステップ#315において、残りの焦点検出の相関演算が全て終了したと判定するとステップ#316へ進み、残りの焦点検出領域の評価を行う。ここで、第一優先領域、第二優先領域、そしてそれ以外の焦点検出領域の中から最も評価の高い焦点検出領域を選択する。選択終了後、図8のステップ#324へ進み、選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
以上の AI SERVO - AFにおいては、画面内の45点の焦点検出領域を、過去に選択された最終的な焦点検出領域(通常は前回のレンズ駆動に供したデフォーカス量を得た最終的な焦点検出領域)に応じて、図14(a)に示すグループの第一優先領域と図14(b)に示すグループの第二優先領域に分割(但し、 AI SERVO - AF時であるので、これらグループは過去に選択された最終的な焦点検出領域に応じて動的に変化することになる)し、これらグループに演算処理の優先順位を設け、この優先順位に従って各グループの演算と評価を実施し、それぞれのグループの評価結果が所定の判定値を満足すればその時点で演算を終了している。
上記構成においては、被写体の移動を考慮した AI SERVO - AFにおいて、撮影者が移動する被写体を画面内で追従する場合、一度選択された焦点検出領域が再び選択され易いことに注目し、画面内の焦点検出領域において、一度選択された焦点検出領域を中心に複数のグループに分割して評価を行い、必ずしも全ての焦点検出領域で焦点検出を行わずに、途中の評価結果によってその時点で演算を終了し、撮影者の満足のいく焦点検出結果が得られるようにしているので、モータスポーツなどの移動している被写体で、特に撮影条件によってより高速な焦点検出が必要な場合においても、正確な焦点検出を行うことができる。
次に、図6のステップ#207において実行される「CFスイッチオンにおける焦点検出制御」のルーチンについて、図18及び図19のフローチャートを用いて説明する。
まず、ステップ#802において、図10の「第一優先領域の設定」のルーチンを呼ぶ。このルーチンは、前述した通り、図6の焦点検出制御のルーチンからも共通して呼ばれるが、このルーチンがステップ#802から呼ばれると、図10において、CFスイッチがオンで ONE SHOT - AFモードの場合にはステップ#406において、 ONE SHOT - AF,CFスイッチオンにおける第一優先領域の設定が行われ、CFスイッチがオンで AI SERVO - AFモードの場合にはステップ#408において、 AI SERVO - AF,CFスイッチオンにおける第一優先領域の設定が行われることになる。
この設定は具体的には、ステップ#406の ONE SHOT - AF,CFスイッチオンにおける第一優先領域の設定では、図13(a)の様に、45点の焦点検出領域のうち、黒色の枠で示される4,18,20,23,26,28および42の計7つの焦点検出領域を第一優先領域として設定している。
また、ステップ#408の AI SERVO - AF,CFスイッチオンにおける第一優先領域の設定では、上記の第一優先領域の設定に加え、過去に選択された最終的な焦点検出領域を組み合わせた設定を行う。前述した通り、 AI SERVO - AFは被写体の移動にレンズ駆動を追従させる撮影モードであり、例えば、焦点検出を繰り返す間に被写体の移動し、主焦点検出領域が図15(a)の6に焦点検出点が移動したとすると、この焦点検出領域に加えて、4,18,20,23,26,28および42の焦点検出領域も第一優先領域として設定する。
図18に戻り、各々の撮影モードに合わせて第一優先領域の設定後はステップ#803へ進み、変数FLAG1およびFLAG2に0を代入し、焦点検出センサの蓄積を開始する。
蓄積開始によりステップ#804へ進むと、ここで最大蓄積時間のチェックを行う。センサの蓄積が予め設定した時間(最大蓄積時間)を経過しても終了しない場合はステップ#808へ進み、センサの蓄積を強制的に終了させ、全ての像信号を読み出す。そして、次のステップ#809において、焦点検出領域の評価、つまり読み出された焦点検出領域の中から最も有効な焦点検出領域を選択する。そしてステップ#824へ進み、ここで選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
一方、上記ステップ#804にて最大蓄積時間を経過していないと判定した場合にはステップ#805へ進み、センサの読み出しチェックおよび読み出しを行う。この動作としては、まず、各センサの蓄積が終了しているかどうかを判定し、各センサのうち蓄積終了したセンサがある場合、未だそのセンサの像信号の読み出しを完了していなければ、そのセンサに対して像信号の読み出しを行う。そして、ステップ#806において、新たな像信号の読み出しを行ったかを判定し、読み出しを行っていない場合には、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出しを繰り返す(#806→#804→#805→#806……)。
また、新たな像信号の読み出しが行われたことが判定した場合はステップ#807へ進み、その相関演算を行い、相関演算終了後にステップ#810へ進み、ここではFLAG2が0であるかどうか判定する。なお、FLAG2は後述する第二優先領域の全ての焦点検出領域において相関演算が終了した場合には1、そうでない場合には0となるフラグ変数である。上記FLAG2が0と判定した場合は図19のステップ#811へ進み、1と判定した場合はステップ#817へ進む。
図19のステップ#811へ進んだ場合、今度はFLAG1が0であるかどうか判定する。前述した様に、FLAG1は第一優先領域の全ての焦点検出領域において相関演算が終了した場合には1、そうでない場合には0となるフラグ変数である。上記FLAG1が0と判定した場合はステップ#812へ進み、上記ステップ#805で新たな像信号の読み出したことによって、第一優先領域の全ての焦点検出領域において相関演算が終了したかどうかを判定する。ここで、終了していないと判定した場合は、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す(#821→#804→#805……)。
一方、終了したと判定した場合はステップ#813へ進み、FLAG1を1に設定し、次のステップ#814において、先述した第一優先領域の評価を行う。そして、第一優先領域の中から最も有望な焦点検出領域候補を決定する。次のステップ#819において、前記決定した焦点検出領域候補の信頼度が予め定められた基準値を超えるかどうかを判定し、基準値を超えると判定した場合はステップ#820へ進み、FLAG2を1に設定し、次のステップ#821において、「第二優先領域の設定」ルーチンを実行する。このルーチンは前述した通り、図8の「 AI SERVO - AFにおける焦点検出制御」のルーチンからも共通して呼ばれるが、このルーチンがステップ#821から呼ばれると、図11において、CFスイッチオンかつ ONE SHOT - AFモードの場合は、ステップ#503において、 ONE SHOT - AF,CFスイッチオンにおける第二優先領域の設定を行い、CFスイッチオンかつ AI SERVO - AFモードの場合は、ステップ#506において、 AI SERVO - AF,CFスイッチオンにおける第二優先領域の設定を行う。
この設定は具体的には、ステップ#503の ONE SHOT - AF,CFスイッチオンにおける第二優先領域の設定では、例えば、図13(a)の7点の焦点検出領域のうち、26の焦点検出領域が有望と判定した場合、図13(b)の様に、26の焦点検出領域の周辺の7,15,16,25,27,36,37および45の計8つの焦点検出領域を第二優先領域として設定している。
また、ステップ#506の AI SERVO - AF,CFスイッチオンにおける第二優先領域の設定においては、図15(a)の8点の焦点検出領域のうち、6の焦点検出領域が有望と判定した場合、図15(b)の様に、6の焦点検出領域の周辺の5,7,14および15の計4つの焦点検出領域を第二優先領域として設定している。
図19に戻って、ステップ#819において、上記ステップ#814にて決定した焦点検出領域候補の信頼度が予め定められた基準値を超えない場合には、第一優先領域には有望な焦点検出領域は存在しないことになるが、それ以外の焦点検出領域により有効な焦点検出領域が存在する可能性もあるので、図18のステップ#804へ戻り、残りの焦点検出領域の調査をする。
具体的には、図19のステップ#813でFLAG1は1に設定されたので、ステップ#811ではステップ#815へ進むことになり、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す。そして、ステップ#815において、残りの焦点検出の相関演算が全て終了したと判定するとステップ#816へ進み、残りの焦点検出領域の評価を行う。ここで、全ての焦点検出領域の中から最も評価の高い焦点検出領域を選択する。選択終了後は図18のステップ#824へ進み、選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
一方、図19のステップ#820でFLAG2が1に設定され、ステップ#821で第二優先領域が設定されると、図18のステップ#810ではステップ#817へ進むことになり、最大蓄積時間を経過しない限り像信号の読み出しチェックおよび読み出し、そして相関演算を繰り返す。そして、ステップ#817において、第二優先領域の全ての焦点検出領域において相関演算が終了したと判定するとステップ#818へ進み、第二優先領域の評価を行い、第二優先領域の中から最も有効な焦点検出領域を焦点検出領域候補として決定する。そして、次のステップ#822において、前記決定した焦点検出領域候補の信頼度が予め定められた基準値を超えるかどうかを判定し、基準値を超えると判定した場合にはステップ#824へ進み、選択された領域をレンズ駆動に供するデフォーカス量を得る最終的な焦点検出領域として設定する。
また、基準値を超えない場合にはステップ#823へ進み、FLAG2を0に戻して(このときFLAG1は1)、第一優先領域と第二優先領域以外の焦点検出領域(図13(c),図15(c))に、より有効な焦点検出領域が存在する可能性があるので図8のステップ#804へ戻り、残りの焦点検出領域の調査をする。
以上の ONE SHOT - AF,CFスイッチオンにおいては、画面内の45点の焦点検出領域を、まず、図13(a)に示すグループを第一優先領域として設定し、このグループでの演算とその信頼性の評価を実施し、第一優先領域の評価結果によって、更に前記第一優先領域のグループに属する焦点検出領域を含む複数の焦点検出領域にグループ化(図13(b)参照)して演算とその信頼性評価を実施し、前記評価結果が所定の判定値を満足すればその時点のグループにて演算を終了している。
上記構成においては、被写体の移動を考慮しない ONE SHOT - AFにおいて、ある特定の焦点検出領域が最終的な焦点検出領域として有望と判定した場合、その近傍の焦点検出領域も評価することによって、必ずしも全ての焦点検出領域で焦点検出を行わずとも途中の評価結果によって、撮影者の満足のいく焦点検出結果が得られることに注目しているので、特にポートレート撮影などの静止している被写体で、より繊細な焦点検出が必要な場合において、高速かつより正確な焦点検出を行うことができる。
また、 AI SERVO - AF,CFスイッチオンにおいて、画面内の45の焦点検出領域を、過去に選択された最終的な焦点検出領域(通常は前回のレンズ駆動に供したデフォーカス量を得た最終的な焦点検出領域)に応じて、図15(a)に示すグループを第一優先領域に動的に( AI SERVO - AF時であるので)分割し、このグループを最先の演算の処理順位とし、この順位に従って演算と評価を実施するが、第一優先領域の評価結果によっては、図15(b)に示すグループの第二優先領域を動的に設定し、このグループにて所定の判定値を満足すればその時点で演算を終了している。
上記構成においては、被写体の移動を考慮した AI SERVO - AFにおいて、一度選択された焦点検出領域のみならず、画面内の焦点検出領域を複数の領域に分割しての評価も同時に行い、ある特定の焦点検出領域が最終的な焦点検出領域として有望と判定した場合、その近傍の焦点検出領域を評価することによって、必ずしも全ての焦点検出領域で焦点検出を行わずに、途中の評価結果によってその時点で演算を終了し、撮影者の満足のいく焦点検出結果が得られるようにしているので、移動している被写体で、特に動きの激しくかつ撮影者の主被写体が頻繁に変化するサッカーゲームのような撮影でも、高速かつ正確な焦点検出を行うことができる。
(変形例)
上記実施例において、例えば図13では、第一優先領域の中に満足する領域があった場合、その領域を中心とした第二の優先領域を新たにグループ化し、このグループの中に適切な領域があった場合は、その時点で演算を終了するようにしているが、これに限定されるものではなく、更にこのグループの中の最適な領域を中心とした第三の優先領域、さらには第四の優先領域を新たにグループ化し、これらグループの中に適切な領域があった時点で演算を終了するようにしても良い。
また、図14の例では、第1の優先領域が満足すれば、その時点で演算を終了するようにしているが、これを満足した場合に、更にその周辺の領域も演算して評価して(図14(b)の状態)、この中に満足する領域が存在すればこの時点で演算を終了する様な実施例にする事を可能であり、これにより、図14(b)に示す各6つの領域の方が最適な焦点検出の対象領域となる被写体に対して、有効なカメラとなる。
本実施例では、一眼レフカメラについて説明したが、本発明はビデオカメラや電子スチルカメラ等の他の光学機器にも適用可能である。
また、焦点検出装置を例にしているが、被写体までの距離を測定するのに用いられる複数の測距領域を有した測距装置にも適用できる事は言うまでもない。