以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
<実施例1>
図2は、本実施形態に係る焦点検出装置を備えた撮像装置の一例としてのカメラ本体の概略構成を示すブロック図である。なお、図2においては、カメラの構成のうち、自動焦点検出に係る構成以外の構成については省略している。
カメラ用マイクロコンピュータ(CPU)100内には、タイマー及びカメラ動作を制御するためのプログラムを格納したROM、変数を記憶するためのRAM、種々のパラメータを記憶するためのEEPROMなどの記憶回路209が内蔵されている。CPU100には、カメラの各種操作用のスイッチ群214を検知するための信号入力回路204、CMOSセンサやCCD等を用いて構成される撮像センサ(撮像素子)206、AEセンサ207が接続されている。また、シャッタマグネット218a、218bを制御するためのシャッタ制御回路208、焦点検出センサ(AFセンサ)101もCPU100に接続されている。CPU100は、後述する図3に示す撮影レンズ300とレンズ通信回路205を介して信号215の伝送を行い、撮影レンズ300のフォーカスレンズの位置や絞りの制御を行う。カメラの動作は、撮影者がスイッチ群214を操作することで決定される。なお、スイッチ群214には、レリーズボタンや、焦点検出領域を選択するためのダイヤルなどが含まれる。
AFセンサ101(センサユニット)はラインセンサを備えており、CPU100によりAFセンサ101を制御することで、ラインセンサから互いに視差を有する対の像信号を得ることができる。そして、CPU100は、AFセンサ101から得られた対の像信号の位相差に基づいて焦点状態を検出し、フォーカスレンズの位置を制御することで、焦点位置を制御する。
また、CPU100は、AEセンサ207を制御することで被写体の輝度を検出し、撮影レンズ300の絞り値やシャッタスピードを決定する。そして、CPU100は、レンズ通信回路205を介して撮影レンズ300の絞り値を制御し、シャッタ制御回路208を介してシャッタマグネット218a、218bの通電時間を調節することでシャッタスピードを制御する。さらに、CPU100は、決定した撮像条件で撮像センサ206を露光し、撮像センサ206で蓄積された電荷を読み出して公知の画像処理を適用することで、撮像画像データを生成する。そして、生成した撮像画像データを不図示の記録媒体に記録する。このようにして、CPU100は一連の撮影動作を実行する。
図3は、本実施形態に係るカメラが有する光学部品とその配置例を示す図である。図3は、カメラの側方から見た光学部品の配置例を示している。なお、図3では撮影レンズ300が図示されているが、撮影レンズ300はカメラに着脱可能な構成であってよい。
撮影レンズ300を介して入射した被写体からの光束の大部分はクイックリターンミラー305で上方に反射され、ファインダスクリーン303上に被写体像として結像する。撮影者はこの被写体像をペンタプリズム301及び接眼レンズ302を介して観察することができる。
ペンタプリズム301に入射した光束の一部は、光学フィルタ312と結像レンズ313を介してAEセンサ207上に結像する。AEセンサ207は、この像を光電変換して得られる像信号に基づいて、被写体輝度を測定することができる。
被写体からの光束の一部はクイックリターンミラー305を透過し、後方のサブミラー306により、下方にある焦点検出光学系に導かれる。焦点検出光学系に入射した光束は、視野マスク307、フィールドレンズ311、絞り308、二次結像レンズ309を経てAFセンサ101上に結像される。この像を光電変換して得られる像信号に基づいて、撮影レンズ300の焦点状態を検出することができる。ここでは、周知の位相差検出方式により、像信号の位相差に基づいて焦点状態が検出される。また、本実施形態では、複数の異なる焦点検出領域における焦点状態を検出することが可能である。なお、撮影時には、クイックリターンミラー305及びサブミラー306が跳ね上がって光路から退避することで、入射した光束が撮像センサ206上に結像され、被写体像の露光が行われる。
図4は、本実施形態に係るカメラが有する焦点検出光学系の構成を模式的に示した図である。撮影レンズ300(便宜上、1枚のレンズにより表す)を通過した光束は、図3を参照して説明したようにサブミラー306で反射され、撮像面と共役な面上にある視野マスク307の近傍に一旦結像する。図4では、サブミラー306で反射され、折り返された光路を展開して示している。視野マスク307は画面内の焦点検出領域以外への余分な光を遮光するための部材である。
フィールドレンズ311は、絞り308の各開口部を撮影レンズ300の射出瞳付近に結像する作用を有している。絞り308の後方に配置されている二次結像レンズ309は一対のレンズから構成され、それぞれのレンズは絞り308の各開口部に対応している。視野マスク307、フィールドレンズ311、絞り308、二次結像レンズ309を通過した各光束は、AFセンサ101上のラインセンサに結像する。図4では、AFセンサ101上にラインセンサが一対のみ示されているが、複数のラインセンサを配置してもよい。
次に、AFセンサ101の回路構成について説明する。図1は、本発明の実施形態に係るAFセンサの電気的な構成例を示すブロック図である。制御部103はCPU100と接続され、CPU100からの制御命令に基づいてAFセンサ101の各ブロックを制御する。制御部103は、蓄積時間情報などを記憶するための記憶回路109、各種制御のためのフラグ用レジスタ、設定用レジスタ、タイマーを複数有している(不図示)。また、制御部103は、AFセンサ101の蓄積停止情報、蓄積時間情報などをCPU100へと送信する。
二次結像レンズ309により結像された被写体像は、ラインセンサ102−1〜102−8から成るラインセンサ群102で光電変換され、電荷として蓄積される。ここでのラインセンサ102−1〜102−8は、それぞれ一対のラインセンサから構成される。各ラインセンサは、転送トランジスタ制御部210、感度制御部211、フォトダイオード群、転送トランジスタ群、積分容量群、メモリ回路群を備えている。ラインセンサ群102で蓄積された電荷は、後述する積分容量で積分され、電圧として出力される。感度制御部211は、ラインセンサの感度(ゲイン)を制御する。ラインセンサ選択回路104は、ラインセンサ群102の複数のラインセンサのうち一対のラインセンサを選択する。そして、ラインセンサ選択回路104は、選択されたラインセンサの画素信号を、ラインセンサの信号の特徴量蓄積状態をモニタするPeak検出回路105及び出力回路108へと出力する。
ラインセンサ群102で蓄積された画素信号は、ラインセンサ選択回路104を介して出力回路108へ出力される。CPU100から画素読み出しのための制御命令が送信され、シフトレジスタ107を駆動し、出力回路108から1画素ずつの画素信号としてCPU100のA/D変換器(不図示)へ出力する。
図5は、ラインセンサを構成するセンサ画素回路部の回路図を示している。ラインセンサは、センサ画素回路部、転送トランジスタ制御部210、ノイズ記憶回路部、ノイズ除去回路部を用いて構成される。センサ画素回路部、ノイズ記憶回路部、ノイズ除去回路部はラインセンサを構成する複数のフォトダイオードにそれぞれ一つずつ配置される。転送トランジスタ制御部210は、各ラインセンサに対し、それぞれ一つずつ配置される。
センサ画素回路部は、フォトダイオードPD(光電変換部)、積分容量CFD、メモリ容量CS、電流源1、電流源2、MOSトランジスタM1、M2、M3、M4、M5、スイッチSWRES、SWCHを用いて構成される。積分容量CFDは、MOSトランジスタ、スイッチ、配線等で生ずる寄生容量である。ただし、容量素子CLを付加してもよい。
φSENSによって制御されるスイッチSWSENSがオフの時、トランジスタM1には積分容量CFDのみが接続され、ラインセンサは高感度に設定される。一方、スイッチSWSENSがオンの時、トランジスタM1には積分容量CFD、及び容量素子CLが接続されラインセンサは低感度に設定される。
電圧VRESはリセット電圧である。出力VOUTはラインセンサ選択回路104に接続されている。スイッチSWRES、SWCH、SWPHnはそれぞれ信号PRES、PCH、PPHnでそれぞれオン/オフ制御される。また、フォトダイオードPDとMOSトランジスタM1の間に、転送トランジスタであるトランジスタMTXが配置されている。
AFセンサ101は、電荷を蓄積するモードとして、第1の蓄積モードと第2の蓄積モードを有している。第1の蓄積モードでは、電荷蓄積期間にトランジスタMTXをオンし続け、生成された電荷を積分容量(保持部)に転送し電荷蓄積しながら積分する。第2の蓄積モードでは、電荷蓄積期間はトランジスタMTXをオフし、電荷蓄積期間が終わると生成された電荷を積分容量に転送して積分する。第2の蓄積モードでの電荷蓄積期間中は、Peak検出回路105による後述のモニタ動作はできない。CPU100がAFセンサ101に制御命令を送信して制御することで第1の蓄積モードと第2の蓄積モードが切り替えられる。
上述したAFセンサ101を備えたカメラの動作例について、図6のフローチャートを用いて説明する。図6は本実施例の焦点検出動作を示すフローチャートである。スイッチ群214の操作により焦点検出の開始信号を受信したら、CPU100がAFセンサ101を制御することで焦点検出動作を開始する。
ステップS600では、CPU100は、AFセンサ駆動モード設定を決定する。ここでのAFセンサのモード設定は、前述したφSENSによって切り替えられるセンサ感度、トランジスタMTXの制御方法によって決定する蓄積モードの設定を含む。モード設定を決定する処理の詳細については後述する。
ステップS601では、CPU100は、ステップS600で決定したモード設定に基づいて、AFセンサ101に制御命令を送信し、AFセンサ101を駆動させる。AFセンサ101は制御命令に従い、一対のラインセンサによって信号を蓄積し、蓄積した一対の像信号の読み出しを行う。モード毎の駆動制御に関する詳細な説明は後述する。
ステップS602では、CPU100は、ステップS601でAFセンサ101から読み出した一対の像信号を用いて、撮影レンズ300の焦点状態(デフォーカス量)を検出するためのデフォーカス演算を行い、デフォーカス量を算出する。
ステップS603では、CPU100は、ステップS602で算出したデフォーカス量に基づき、撮影レンズ300の焦点状態が合焦か否かの判定を行う。合焦と判定された場合は焦点検出動作を終了し、合焦でないと判定された場合はステップS604へ移行する。合焦か否かの判定は、デフォーカス量が所望の範囲内、例えば1/4Fδ以内(F:レンズの絞り値、δ:定数(20μm))であれば合焦と判断するものとする。例えば、レンズの絞り値F=2.0の場合、デフォーカス量が10μm以下であればCPU100は合焦と判定し、焦点検出動作を終了する。一方、デフォーカス量が10μmより大きく、非合焦と判定した場合は、撮影レンズ300の焦点状態を合焦位置に合わせるためのフォーカスレンズ駆動を行う。
ステップS604では、CPU100は、レンズ通信回路205を介して、前記デフォーカス量に基づき、撮影レンズ300にフォーカスレンズの駆動を指示する。そして、CPU100は、処理をステップS600に戻し、合焦状態と判断されるまで前述の動作を繰り返す。以上が焦点検出動作における一連のフローである。
次に、図6のステップS600におけるモード設定の決定処理について、図7および図8を用いて説明する。図7は、各モード設定の適用範囲を示す図である。図7では、横軸は像信号のコントラストの大きさ、縦軸は輝度を示している。
ステップS600で決定するモード設定は、図7に示されるMODE=0、1、2のいずれかである。以下で、それぞれのモードについて説明する。
MODE=0は、AFセンサ101が低感度で、第1の蓄積モードが設定され、輝度がBV≧K1である場合に適用される。AFセンサ101が低感度の場合は、前述した積分容量が大きいため、多くの信号電荷を蓄積することが可能である。光ショットノイズは蓄積した信号電荷数Sに対し、√Sで表されるため、光ショットノイズが支配的な領域では、SN比はS/√S≒√Sで表される。このため、高輝度被写体のような光ショットノイズが支配的な輝度範囲では、積分容量を大きくし、信号電荷をより多く蓄積できる低感度に設定することが有効である。
MODE=1は、AFセンサが高感度で、第1の蓄積モードが設定される。MODE=1は、輝度がBV<K1であり、後述するMODE=2の適用範囲外の場合に適用される。AFセンサ101が高感度の場合は、低感度の場合と比べて、前述した積分容量が小さいため、同じ蓄積時間におけるFD領域の電位が高い。すなわち画素部ゲインが高いため、画素部以降の回路で発生するランダムノイズの影響を小さくすることができる。被写体が低輝度の場合のように信号電荷Sが小さい場合、画素部以降の回路ノイズの影響が大きい。この場合は高感度に設定することが有効である。
MODE=2は、AFセンサ101が高感度で、第2の蓄積モードが設定される。MODE=2は、輝度がBV<K2かつ、コントラストがCNT≧CNT_thである場合に適用される。第2の蓄積モードの場合は、電荷蓄積期間はトランジスタMTXをオフして、電荷転送が行われないため、CFD、CLより画素部に対してノイズが混入しない。このため、低ノイズの信号を出力することが可能である。ただし、電荷蓄積期間中は、Peak検出回路105によるモニタ動作が出来ないため、画素信号が飽和電圧を超えないような低輝度の場合のみ適用する。
なお、コントラストが閾値CNT_thよりも小さい場合は、光ショットノイズが支配的な領域となり、第1の蓄積モードと比べてもSN比は同等であるため、第2の蓄積モードを適用しない。そのため、低輝度であっても、コントラストが閾値CNT_thよりも小さい場合は、MODE=1が適用される。AFセンサ101が低感度で第2の蓄積モードが設定されるMODEの設定がない理由も、コントラストが閾値Cthよりも小さい場合に第2の蓄積モードを適用しない理由と同様である。
次に、図7で説明したように適用範囲に対してMODE=0、1、2を設定するための判定の流れについて説明する。図8は、ステップS600におけるモード設定の決定処理を示したフローチャートである。
ステップS800では、CPU100は、焦点検出動作が一回目であるか否かの判定を行う。焦点検出動作が一回目の場合は、被写体輝度とコントラストが不明である。そこで、画素信号が飽和しづらいMODE=0に設定するため、ステップS806へ移行する。一方、焦点検出動作が二回目以降の場合は、一つ前のAFセンサ駆動で取得した像信号の情報に基づいてMODEを判定するため、ステップS801へ移行する。
ステップS801では、CPU100は、被写体輝度についての判定を行う。ここで詳細については後述するが、本実施例では、ライン選択は任意一点モードとし、ユーザーが選択した焦点検出領域に対応する一対のラインセンサのみAFセンサ駆動するものとする。そのため、ここで判定する被写体輝度は、ユーザーによって選択された焦点検出領域に対応する一対のラインセンサから得られる像信号の情報を用いるものとする。なお、後述するステップS802〜S805の判定においても、同様に選択された一対のラインセンサから得られる像信号の情報を用いるものとする。
被写体輝度が輝度閾値K1よりも大きければ、MODE=0に設定するため、ステップS806へ移行する。一方、被写体輝度が輝度閾値K1以下である場合は、MODE=1もしくはMODE=2の判定を行うため、ステップS802へ移行する。
ここでは、一つ前のAFセンサ駆動で取得した像信号の情報から求められる被写体輝度BVを判定に用いてもよい。この場合、被写体輝度BVは、AFセンサ駆動で取得した像信号のPEAK信号から、蓄積時間、センサの感度を加味して算出される。なお、被写体輝度BVは、AEセンサ207で検出された測光値を用いてもよい。また、感度を決定する被写体輝度の輝度閾値K1は、S/Nの観点から最適な値が設定される。
後述するステップS802〜S805の各ステップでは像信号の信頼性が判定され、判定結果に基づいてMODE=1と2の判定が行われる。
ステップS802では、CPU100は、図6のステップS602で算出したデフォーカス量がデフォーカス閾値DEF_th(所定値)よりも小さいか否かの判定を行う。デフォーカス量がデフォーカス閾値DEF_th以上(所定値以上)の場合、MODE=1に設定するため、ステップS807へ移行する。一方、デフォーカス量がデフォーカス閾値DEF_thよりも小さい場合、一つ前のAFセンサ駆動のモードを判定するため、ステップS803へ移行する。デフォーカス閾値DEF_thについては後述する。
ステップS803では、CPU100は、一つ前の(前回の)AFセンサ駆動のモード設定についての判定を行う。一つ前のAFセンサ駆動がMODE=0である場合は、MODE=1に設定するため、ステップS807へ移行する。一方、MODE=1、もしくは2である場合は、被写体輝度の判定を行うためにステップS804へ移行する。
前述したように、MODE=2の第2の蓄積モードは、Peak検出回路105によるモニタ動作が出来ないため、像信号が飽和してしまう可能性がある。そのため、MODE=2である第2の蓄積モードへ切り替える場合、同等の感度であるMODE=1でAFセンサ駆動を行った像信号から信頼性の判定を行うことが望ましい。MODE=2で取得できる像信号は、MODE=1で取得する像信号に対して、それぞれの画素で、信号電荷数Sは同等で、ノイズ成分のみが少ない信号を得ることができる。そのため、MODE=1で取得した像信号から信頼性の判定を行うことで、像信号の飽和を防ぐことができる。なお、低感度時と高感度時の感度比から、MODE=0からMODE2へ移行するための閾値を別途設定することでMODE=0からMODE=2への切り替えを行うようにしてもよい。
ステップS804では、CPU100は、被写体輝度についての判定を行う。ここで判定に用いられる輝度閾値K2は、K1>K2の関係にある。被写体輝度が輝度閾値K2以上であれば、MODE=1に設定するため、ステップS807へ移行する。一方、被写体輝度が輝度閾値K2よりも小さい場合は、コントラストについての判定を行うため、ステップS805へ移行する。
輝度閾値K2について、図9を用いて説明する。図9は、各蓄積モードにおける輝度とS/Nの関係を示す図で、横軸は被写体輝度、縦軸はS/Nを示している。
図9において、実線で示したMODE=1と破線で示したMODE=2のS/Nを比較すると、K3よりも輝度が高い領域では、光ショットノイズが支配的であるため、S/Nは同等である。なお、K3よりも輝度が高い領域でS/Nが一定になっているのは、ラインセンサの画素信号が蓄積停止レベルに至り蓄積停止が行われているため、一定の信号電荷数Sが得られているためである。
一方、K3よりも輝度が低い領域でS/Nが悪化しているのは、ラインセンサの画素信号が蓄積停止レベルに至らず、蓄積がCPU100によって強制的に停止されるためである。この場合、信号電荷数Sが減るため、S/Nは悪化する。
ここで、前述したように、MODE=1とMODE2は同等の感度であるため、同等の輝度においては、信号電荷数Sは同等で、ノイズのみが異なる。したがって、輝度が低くなるにしたがってノイズ成分のうち回路ノイズ等が支配的になるため、S/Nの差が大きくなる。ここでは、例として、MODE=1とMODE=2のS/Nが0.5段分の差となる輝度をK2として設定する。また、MODE=2では、像信号が飽和しない輝度でなければならないため、K3>K2となる必要がある。
図8の説明に戻り、ステップS805では、CPU100は、像信号のコントラストについての判定を行う。コントラストがコントラスト閾値CNT_th以上(閾値以上)であれば、MODE=2に設定するため、ステップS808へ移行する。一方、コントラストがコントラスト閾値CNT_thよりも小さい場合は、MODE=1に設定するため、ステップS807へ移行する。
ステップS806では、CPU100は、MODE=0と判定し、図6のステップS601のAFセンサ駆動をMODE=0で行うように設定する。ステップS807では、CPU100は、MODE=1と判定し、図6のステップS601のAFセンサ駆動をMODE=1で行うように設定する。ステップS808では、CPU100は、MODE=2と判定し、図6のステップS601のAFセンサ駆動をMODE=2で行うように設定する。
ここで、ステップS805で判定されるコントラストと、ステップS802の判定に用いられるデフォーカス閾値について、図10を用いて説明する。図10(a)と(b)はデフォーカス量の異なる像信号を示す図であり、横軸は画素位置、縦軸は画素信号の信号レベルを示している。図10(a)は一対の像信号の位相が離れ、デフォーカス量が大きい場合を示しており、図10(b)は一対の像信号の位相が近く、デフォーカス量が小さい場合を示している。
デフォーカス量を算出するための演算範囲内において、一対の像信号の最大値をPEAK、最小値をBOTTOMとすると、コントラストCNTは次の式(1)で表される。
CNT=PEAK−BOTTOM (1)
ステップS805において、式(1)で求めたコントラストがCNT≧CNT_thである場合、MODE=2へ切り替えられる。なお、コントラストの求め方は式(1)に限らず、像信号の隣接差分の総和など他の式を用いて求めてもよい。
次に、ステップS802の判定に用いられるデフォーカス量の閾値DEF_thについて説明する。図10(a)で示すようにデフォーカス量が大きい場合、モード設定の判定に用いた像信号から算出されたデフォーカス量に基づいてフォーカスレンズが駆動される。そのため、モード設定の判定を行ったときの像信号と、次のAFセンサ駆動を行ったときの像信号は、異なる被写体領域についての信号を蓄積している。
例えば、図10(b)において、左側の画素位置にある像信号のピークを第1の被写体領域1001、右側の画素位置にある像信号のピークを第2の被写体領域1002とする。また、一対の像信号のうち、実線をA像、点線をB像とする。デフォーカス量が小さい図10(b)においては、演算範囲において、第1の被写体領域1001に対応する像信号の範囲のみが含まれ、第2の被写体領域1002に対応する像信号の範囲が含まれない。そのため、第2の被写体領域1002の影響を受けずに、蓄積モードの判定を行うことができる。
一方、デフォーカス量が大きい図10(a)においては、演算範囲において、A像は第1の被写体領域1001に対応する像信号の範囲のみが含まれるが、B像は第2の被写体領域1002に対応する像信号の範囲が含まれる。そのため、図10(a)の状態で蓄積モードの判定を行うと、第2の被写体領域1002の影響を受けてしまい、図10(b)と比較して、被写体輝度やコントラストが高い状態でステップS804やS805の判定が行われてしまう。このように、デフォーカス量が大きい場合は、モード設定の判定において誤判定が生じる可能性がある。
そこで、本実施形態では、MODE=2の第2の蓄積モードのように、電荷蓄積期間中のモニタ動作ができず、画素飽和が生じてしまう可能性があるモード設定へ移行するための条件として、デフォーカス量が所定の範囲内であることを含むこととする。図10(b)で示しているように、デフォーカス量が小さく、焦点検出を行いたい被写体が演算範囲に入っている場合のみMODE=2へ切り替えられる仕組みにするために、デフォーカス閾値DEF_thが設けられる。
ここで、デフォーカス閾値DEF_thの設定値について説明する。デフォーカス閾値DEF_thは、図6のステップS603の合焦判定で設定した範囲よりも大きい値とする必要がある。例えば、デフォーカス閾値DEF_thを3Fδ(F:レンズの絞り値、δ:定数(20μm))として、デフォーカス量が3Fδ以内であれば、焦点検出したい被写体が演算範囲に入っていると判断する。以上説明したように、デフォーカス量がDEF_th以内の場合に限り、被写体輝度、コントラストが所望の閾値を満たしていれば、AFセンサ駆動をMODE=2に切り替えることができる。
次に、図6のステップS601におけるAFセンサ駆動について、図11を用いて説明する。図11は、AFセンサ駆動処理を示すフローチャートである。前述した通り、本実施例では任意一点モードの場合を例に説明するため、ここでは選択された一対のラインセンサの駆動について説明する。
ステップS1100では、CPU100は、図6のステップS600で決定したモード設定がMODE=0であるか否かの判定を行う。MODE=0であれば、MODE=0として初期設定を行うため、ステップS1102へ移行する。一方、MODE=0でなければ、MODE=1か否かの判定を行うため、ステップS1101へ移行する。
ステップS1101では、CPU100は、図6のステップS600で決定したモード設定がMODE=1であるか否かの判定を行う。MODE=1であれば、MODE=1として初期設定を行うため、ステップS1102へ移行する。一方、MODE=1でなければ、MODE=2として初期設定を行うため、ステップS1109へ移行する。
ステップS1102では、CPU100は、焦点検出動作にかかわる各種設定を行う。ここでは、AFセンサ101は第1の蓄積モードで駆動されるものとし、感度に関しては図6のステップS600で決定したモード設定に従って設定する。
ステップS1103では、CPU100は、蓄積開始命令をAFセンサ101へ送信する。AFセンサ101内の制御部103は、蓄積開始命令を受信すると各回路部を制御し、回路リセット動作、ノイズ記憶動作を行い、内蔵されたタイマーをリセットしてからカウントを開始し、電荷蓄積開始からの経過時間(蓄積時間)の計測を開始する。
ステップS1104では、CPU100は、AFセンサ101の蓄積時間が最大蓄積時間Tmaxに達しているか否かを判定する。蓄積時間がTmaxに達していればステップS1106へ処理を進め、Tmaxに達していなければステップS1105へ処理を進める。
ステップS1105では、AFセンサ101は、蓄積制御動作を行う。Peak検出回路105は、第1の蓄積モードで動作している場合、ラインセンサ選択回路104により選択されたモニタ中のラインセンサの画素信号の中から最も大きな信号である最大値信号(Peak信号)を蓄積停止判定回路106へ出力する。このとき、制御部103がSWPHnをオンすることにより、ラインセンサは信号をPeak検出回路105に出力している。
図12は、Peak検出回路105からの出力信号であるPeak信号の信号量、蓄積時間と、蓄積停止判定の関係を示した図である。蓄積時間0が蓄積開始タイミングであり、時間が経過するほどPeak信号は増加していく。蓄積停止判定回路106は、Peak信号と蓄積停止レベルVcompとを比較判定する。
Peak信号が蓄積停止レベルVcompよりも大きくなった時点で、蓄積停止判定回路106は制御部103へ蓄積停止判定信号を出力する。そして、制御部103は、ラインセンサ選択回路104により選択されたモニタ中のラインセンサの蓄積を停止するために、ラインセンサ群102のうち該当するラインセンサのスイッチSWCHをオフすることにより信号蓄積を停止する。
なお、本実施例では、Peak信号と蓄積停止レベルVcompとを比較することで蓄積停止判定を行う場合について説明したが、コントラストCNTと所定の蓄積停止レベルとを比較することで蓄積停止判定を行うようにしてもよい。
ステップS1107では、CPU100は、ラインセンサの蓄積が停止しているか否かを判定する。AFセンサ101は蓄積終了したラインセンサの情報をCPU100へ送信するため、CPU100は受信した情報に基づいて蓄積が停止しているか否かの判定を行う。ラインセンサの蓄積が停止している場合はステップS1108の画素信号読み出し動作に移行し、ラインセンサが蓄積中の場合はステップS1104へ戻る。
一方、ステップS1106では、CPU100は、AFセンサ101に対して蓄積停止通信を行う。この通信は、予め許容できる最大蓄積時間Tmaxを設定しておき、暗時の撮影などで時間TmaxまでにAFセンサ101の蓄積動作が終わらない場合に、CPU100から強制的に蓄積動作を終了させるものである。
ステップS1108では、CPU100は、AFセンサ101で蓄積された電荷から得られる像信号(画素信号)を読み出す。以上、ステップS1102〜S1108までが第1の蓄積モードで行うAFセンサ駆動の処理である。
次に、第2の蓄積モードにおけるAFセンサ駆動の処理について、ステップS1109〜S1114で説明する。ステップS1109では、CPU100は、焦点検出動作にかかわる各種設定を行う。ここでは、AFセンサ101は第2の蓄積モードで駆動されるものとし、感度に関しては図6のステップS600で決定している高感度に設定する。
ステップS1110では、CPU100は、S1103と同様に、蓄積開始命令をAFセンサ101へ送信する。AFセンサ101内の制御部103は、蓄積開始命令を受信すると各回路部を制御し、回路リセット動作、ノイズ記憶動作を行い、内蔵されたタイマーをリセットしてからカウントを開始し、電荷蓄積開始からの経過時間(蓄積時間)の計測を開始する。
ステップS1111では、CPU100は、AFセンサ101の蓄積時間が最大蓄積時間Tmaxに達しているか否かを判定する。蓄積時間がTmaxに達していればステップS1112へ処理を進め、Tmaxに達していなければステップS1111の処理を繰り返す。
ステップS1112では、CPU100は、ステップS1106と同様にAFセンサ101に対して蓄積停止通信を行う。第2の蓄積モードでは、ステップS1105の蓄積制御動作を行うことができないため、予め許容できる最大蓄積時間Tmaxを設定しておきCPU100から強制的に蓄積動作を終了させる。なお、ステップS1112の判定に用いる最大蓄積時間Tmaxは、ステップS1104の判定に用いる最大蓄積時間Tmaxと異なってよい。
ステップS1113では、CPU100は、AFセンサ101に対して図5の転送トランジスタMTXをONする命令を送信し、フォトダイオードPDで積分された蓄積電荷を積分容量CFDへ転送する。電荷蓄積期間中、フォトダイオードPDから積分容量CFDへの電荷転送は行われないため、電荷蓄積期間中に積分容量CFDで発生するノイズはフォトダイオードPDに蓄積されない。
ステップS1114では、CPU100は、ステップS1108と同様にAFセンサ101で蓄積された電荷から得られる画素信号を読み出す。以上、ステップS1109〜S1114までのフローが第2の蓄積モードで行うAFセンサ駆動の処理である。
このように、本実施例では、デフォーカス量に応じて、第1の蓄積モードと第2の蓄積モードの切り替えを行う。これにより、被写体周辺の信号の影響を低減して、被写体に応じて適した蓄積モードで焦点検出を行うことができる。
<実施例2>
実施例1では、任意一点モードを前提として、ユーザーが選択した任意の焦点検出領域に対応する一対のラインセンサのみのAF駆動について説明した。これに対し、第2の実施例では、複数対のラインセンサを駆動してモード設定を行い、焦点検出を行う場合について説明する。本実施形態に係るカメラの構成や、AFセンサの構造は実施例1の構成を適用することができるため、説明を省略する。
図13は複数の(複数対の)ラインセンサを駆動する場合の焦点検出動作を示すフローチャートである。ステップS1300では、CPU100は、AFセンサ駆動モード設定を決定する。駆動モード設定を決定する処理の詳細については後述する。
ステップS1301では、CPU100は、ステップS1300で決定したモード設定に基づいて、複数のラインセンサについてAFセンサ101を駆動させる。駆動制御の詳細については後述する。
ステップS1302では、CPU100は、ステップS1301でAFセンサ101から読み出した複数のラインセンサの像信号を用いて、デフォーカス演算を行い、全ラインセンサについてのデフォーカス量を算出する。
ステップS1303では、CPU100は、ステップS1302で算出したデフォーカス量の情報を図2の記憶回路209に記憶する。
ステップS1304では、CPU100は、ステップS1303で記憶したデフォーカス量のうち、主被写体の領域で信号を蓄積しているラインセンサについて、合焦か否かの判定を行う。ここで、主被写体の領域で信号を蓄積しているラインセンサを判定する方法の例として、全ラインセンサについて算出したデフォーカス量の中から、最も至近を示しているラインセンサを主被写体の領域で信号を蓄積しているラインセンサとする方法がある。なお、主被写体の判定方法はこれに限るものではない。
ステップS1305は、図6のステップS604と同様であるため、説明を省略する。
次に、ステップS1300のモード設定を決定する処理について、図14のフローチャートを用いて説明する。図8は、本実施例におけるモード設定の決定処理を示したフローチャートである。
ステップS1400は、図11のステップS1100と同様であるため、説明を省略する。
ステップS1401では、CPU100は、モード設定を判定するためのラインセンサを決定する。ここで、モード設定を判定するためのラインセンサをモード設定判定ラインとする。
モード設定判定ラインの決め方としては、例えば、図13のステップS1303で記憶しているデフォーカス量を用いて、最も至近側を示すラインセンサをモード設定判定ラインとする。ここで、モード設定判定ラインは、いずれか一つ(一対)のラインセンサに決定しても、至近側で近い距離情報を示すラインセンサが二本以上あれば複数のラインセンサに決定してもよい。モード設定判定ラインが一つのラインセンサである場合は、決定した一対のラインセンサの像信号の情報を用いて、ステップS1402〜ステップS1409の処理を行う。この場合、ステップS1402〜ステップS1409の処理は、図8のステップS801〜ステップS808の処理と同様であるため、説明を省略する。
また、モード設定判定ラインが複数のラインセンサである場合は、それぞれのラインセンサについてステップS1402〜ステップS1409の処理を行う。ここで、複数のラインセンサが同様のMODEに判定された場合は、全ラインセンサのMODEを判定されたMODEに設定する。
一方で、複数のラインセンサの中で異なるMODEが判定された場合は、MODE=0、MODE=1、MODE=2の順で最も番号が小さいMODEに設定することとする。これは、番号が大きいMODEにしてしまうと、番号が小さいMODEに判定されたラインセンサが、次のAFセンサ駆動の際に飽和してしまう可能性があるためである。以上のようにしてMODEを判定し、全てのラインセンサに対して、モード判定ラインを用いて判定されたMODEに設定する。
次に、図13のステップS1301におけるAFセンサ駆動について、図11を用いて説明する。ステップS1100〜S1106の処理は実施例1と同様であるため、説明を省略する。
ステップS1107では、CPU100は、全てのラインセンサ(102−1〜102−8)の蓄積が停止しているか否かを判定する。AFセンサ101は蓄積終了したラインセンサの情報をCPU100へ送信するため、CPU100は受信した情報に基づいて蓄積が停止しているか否かの判定を行う。全てのラインセンサの蓄積が停止している場合はステップS1108の画素信号読み出し動作に移行し、蓄積中のラインセンサが残っている場合はステップS1104へ戻る。以降のステップS1109〜S1114の処理も実施例1と同様であるため、説明を省略する。
以上説明したように、実施例2では、複数対のラインセンサを駆動し、MODE設定を行って焦点検出を行う場合について説明した。実施例2においても、デフォーカス量に応じて、第1の蓄積モードと第2の蓄積モードの切り替えを行う。これにより、被写体周辺の信号の影響を低減して、被写体に応じて適した蓄積モードで焦点検出を行うことができる。なお、本実施例では、モード判定ラインに基づいて、決定したMODE設定に従い、全てのラインセンサで同様のMODEに設定したが、ラインセンサごとにMODEを設定してもよい。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。