以下、図面を参照して、本発明の実施形態の一例を説明する。
図1は、本発明の撮像装置の実施形態の一例であるデジタルスチルカメラのシステム構成を示すブロック図である。
本実施形態のデジタルスチルカメラは、図1に示すように、撮影レンズ101、絞り/シャッタ102及びフォーカスレンズ104を通過した被写体光束が撮像素子106の撮像面に結像して光電変換される。撮像素子106は、CCDセンサやCMOSセンサ等で構成され、光電変換したアナログ画像信号をA/D変換部107に出力する。A/D変換部107は、撮像素子106から出力されたアナログ画像信号をデジタル画像信号に変換する他、撮像素子106の出力ノイズを除去するCDS回路や非線形増幅回路を含む。
A/D変換部107から出力されたデジタル画像信号は、画像処理部108に出力されて所定の画像処理が施される。画像処理後の画像データは、フォーマット変換部109及びDRAM110を介して画像記録部111に記録されるとともに、フォーマット変換部109、DRAM110及びVRAM113を介して画像表示部114に表示される。
画像記録部111は、メモリカードなどの記録媒体とそのインタフェースから構成される。DRAM110は、一時的な画像記憶手段としての高速バッファとして、あるいは画像の圧縮伸張における作業用メモリなどに使用される。画像表示部114は、画像表示の他、操作補助のための表示やカメラ状態の表示の他、撮影時には撮影画面と測距領域を表示する。
システム制御部112は、撮影シーケンス等のカメラ全体の制御を司る。AE処理部103は、画像処理部108と絞り/シャッタ102に接続され、絞り/シャッタ102の駆動を制御する。AF処理部105は、不図示のモータを介してフォーカスレンズ104を光軸方向に駆動して合焦制御を行う。
操作部115は、ユーザにより操作されるレリーズボタン、電源ボタン、ズームレバー、モード切換えダイアル等により構成される。撮影モードスイッチ116は、マクロモード、遠景モード、スポーツモードなどの撮影モードを選択するためのスイッチであり、ユーザが選択した撮影モードに応じて測距距離範囲やAF動作などを変更する。
電源スイッチ117は、電源ボタンが操作されると、オンしてシステムに電源を投入するためのスイッチである。レリーズスイッチ(SW1)118は、レリーズボタンの半押し操作等によりオンしてAFやAE等の撮影準備指示を行うためのスイッチである。レリーズスイッチ(SW2)119は、レリーズボタンの全押し操作等によりオンして、撮影指示を行うためのスイッチである。
被写体検出モジュール120は、画像処理部108で処理された画像信号を用いて被写体を検出し、検出した一つ又は複数の被写体情報(被写体が顔の場合は、位置・大きさ/顔以外の被写体の場合は、位置)をシステム制御部112に送る。
次に、図2乃至図30を参照して、図1に示すデジタルスチルカメラの撮影動作について説明する。図2での各処理は、不図示の記憶部に記憶されたプログラムに従ってシステム制御部112のCPU等により実行される。
図2において、ステップS201では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118がオンかオフかを判定し、オンの場合は、ステップS214に進み、オフの場合は、ステップS202に進む。
ステップS202では、システム制御部112は、シーン安定判断を行い、ステップS203に進む。なお、ここでのシーン安定判断の処理の詳細は、図3を用いて後述する。
ステップS203では、システム制御部112は、ステップS202において撮影シーンが安定したと判断したか否かを判定し、安定したと判断した場合は、ステップS204へ進み、そうでなければ、ステップS205に進む。ここで、撮影シーンが安定した状態とは、撮影する被写体、カメラの状態が安定して維持され、撮影に適した状態になっていることをいう。
ステップS205では、システム制御部112は、PeakPos更新フラグをクリアし、ステップS201に戻る。
ステップS204では、システム制御部112は、後述する図23におけるPeakPos更新フラグがTRUEになっているか、又は後述する図8における主被写体領域特定AFスキャンにて選択された領域で撮影が行われたか否かを判定する。
そして、システム制御部112は、PeakPos更新フラグがTRUE、又は主被写体領域特定AFスキャンにて選択された領域で撮影が行われた場合は、ステップS211に進む。また、システム制御部112は、PeakPos更新フラグがFALSE、又は主被写体領域特定AFスキャンにて選択された領域で撮影が行われていない場合は、ステップS206に進む。
ステップS206では、システム制御部112は、被写体輝度が所定値以下か否かを判定し、被写体輝度が所定値以下であれば、ステップS210に進み、そうでなければ、ステップS207に進む。
ステップS210では、システム制御部112は、低照度時用のAF枠を設定し、ステップS211に進む。ここでのAF枠とは、画面内の焦点評価値を取得する領域のことである。焦点評価値とは、撮像素子106から読み出されたアナログ映像信号をA/D変換部107がデジタル信号に変換し、その出力から画像処理部108が輝度信号の高周波成分を抽出した値である。焦点評価値は、フォーカスレンズ104の位置とAF枠位置とを対応づけてDRAM110に記憶しておく。
また、焦点評価値を取得するとは、AF処理部105がAF制御における判断のために、DRAM110に記憶している焦点評価値を読み出すことである。低照度時は、露光時間が延びるため、スキャンでのAF精度を確保することができない。このため、本実施形態では、低照度時は、被写体領域特定や被写体検出時のスキャン動作は行わず、画面中央付近に所定の大きさのAF枠を1枠設定することとする。
ステップS207では、システム制御部112は、被写体検出モジュール120にて被写体が検出されたか否かを判定し、被写体検出がされていれば,ステップS208へ進み、被写体検出されていなければS209へ進む。
ステップS208では、システム制御部112は、後述する図4で説明する被写体検出時AFスキャンを行い、ステップS211に進む。ステップS209では、システム制御部112は、後述する図8で説明する被写体領域を特定するためのAFスキャンを行い、ステップS211に進む。ステップS211では、システム制御部112は、後述する図21で説明するコンティニュアスAFを行い、ステップS212に進む。ステップS212では、システム制御部112は、後述する図22で説明するシーン不安定判断を行い、ステップS213に進む。
ステップS213では、システム制御部112は、ステップS212において撮影シーンが不安定と判断されたか否かを判定し、不安定と判断された場合は、ステップS201に戻り、不安定と判断されない場合は、ステップS211に戻る。ここで、撮影シーンが不安定とは、撮影する被写体の状態やカメラの状態が不安定となり、撮影に適した状態ではなくなることである。
ステップS214では、システム制御部112は、合焦度判定フラグをFALSEにし、ステップS215に進む。ステップS215では、システム制御部112は、後述する図23で説明する撮影処理を行い、ステップS201に戻る。なお、上述した動作と並行して、常にシステム制御部112からの制御信号に基づき、AE処理部103により絞り及びシャッタ102を制御して画像表示部114に表示される画像の明るさが適正になるようにAE動作を行っている。
次に、図3を参照して、図2のステップS202におけるシーン安定判断の処理を説明する。
図3において、ステップS301では、システム制御部112は、不図示の角速度センサで検出したカメラ動作量が所定量以下か否かを判定し、所定量以下であれば、ステップS302に進み、所定値を超える場合は、ステップS304に進む。ここでは、カメラ動作量が所定量以下になっているか否かにより、カメラの状態が安定しているか否かを判断する。
ステップS302では、システム制御部112は、前回からの輝度変化量が所定量以下か否かを判定し、所定量以下であれば、ステップS303に進み、所定値を超える場合は、ステップS304に進む。ここでは、輝度変化量が所定値以下になっていることで、撮影する被写体が変化していないことを判断する。
そして、ステップS303では、システム制御部112は、撮影シーンが安定状態となったと判断して処理を終了し、ステップS304では、システム制御部112は、撮影シーンが安定状態ではないと判断して処理を終了する。
次に、図4を参照して、図2のステップS208における被写体検出時AFスキャンについて説明する。
図4において、ステップS401では、システム制御部112は、被写体検出モジュール120で検出した顔情報(位置・大きさ)に基づいてAF枠設定を行い、ステップS402に進む。
ステップS402では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン開始位置へと移動させ、ステップS403に進む。ここで、スキャン開始位置は、例えば、検出した顔の大きさより推定した人物の距離に基づいて決定する。
ステップS403では、システム制御部112は、現在のフォーカスレンズ位置における焦点評価値をDRAM110に記憶し、ステップS404に進む。ステップS404では、システム制御部112は、フォーカスレンズ104の現在位置を取得し、取得した位置データをDRAM110に記憶して、ステップS405に進む。
ステップS405では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118がオンかオフかを判定し、オンの場合は、図2のステップS214に進み、オフの場合は、ステップS406に進む。ステップS406では、システム制御部112は、図5で後述するシーン変化判定を行い、ステップS407に進む。ここで、シーン変化判定とは、撮影するシーンが変わったか否かをカメラの状態や被写体の状態から判定する処理である。
ステップS407では、システム制御部112は、フォーカスレンズ104の現在位置がスキャン終了位置と同一か否かを判定し、両者の位置が同一の場合は、ステップS409に進み、異なる場合は、ステップS408に進む。ここで、スキャン終了位置は、例えば、検出した顔の大きさより推定した人物の距離に基づいて決定する。
ステップS408では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン終了方向へ向けて所定量移動させ、ステップS403に戻る。ステップS409では、システム制御部112は、後述する図6及び図7で説明する合焦判定を行い、ステップS410に進む。
ステップS410では、システム制御部112は、ステップS409での合焦判定で○判定となったか否かを判定し、○判定となっていれば、ステップS411に進み、そうでなければ、ステップS414に進む。ここでの○判定とは、被写体のコントラストが十分にあり、かつスキャンした距離範囲内に被写体が存在する場合のことである。
ステップS411では、システム制御部112は、ステップS403で取得した焦点評価値がピークとなる合焦位置を算出し、ステップS412に進む。ステップS412では、システム制御部112は、AF処理部105によりフォーカスレンズ104をステップS411で算出した合焦位置に移動させ、ステップS413に進む。ステップS413では、システム制御部112は、ピーク検出フラグをTRUEにし、本AFスキャン処理を終了する。
ステップS414では、ステップS409での合焦判定が○判定でない場合、つまり、被写体のコントラストが不十分、又はスキャンした距離範囲外に被写体が存在する場合である。このため、システム制御部112は、AF処理部105によりフォーカスレンズ104をあらかじめDRAM110に記憶している位置(定点)に移動させ、本AFスキャン処理を終了する。ここで、定点は、被写体の存在確率の高い距離に設定する。例えば、顔が検出されていれば、検出した顔の大きさより推定した人物の距離とする。
次に、図5を参照して、図4のステップS406におけるシーン変化判定の処理について説明する。なお、後述する図11のステップS1106、図14のステップS1405、及び図21のステップS2107におけるシーン変化判定ついても図5と同様の処理である。
図5において、ステップS501では、システム制御部112は、被写体検出モジュール120で検出した被写体検出状態(例えば顔検出状態)が変化したか否かを判定する。そして、システム制御部112は、被写体検出状態が変化していれば、本判定処理を終了して図2のステップS201に戻り、変化してなければ、ステップS502に進む。ここで、被写体検出状態とは、被写体検出されているかどうかである。つまり、前回のシーン変化判定時に被写体が検出されていて今回のシーン変化判定時に被写体が検出されていなければ、被写体検出状態が変化したことになる。
ステップS502では、システム制御部112は、不図示の角速度センサで検出したカメラ動作量が所定量以上か否かを判定し、所定量以上であれば、本判定処理を終了して図2のステップS201へ戻り、所定量を超える場合は、ステップS503に進む。
ステップS503では、システム制御部112は、後述する図21で説明するコンティニュアスAF中であるか否かを判定し、コンティニュアスAF中であれば、ステップS504に進み、コンティニュアスAF中でなければ、ステップS505に進む。
ステップSS504では、システム制御部112は、被写体輝度差が所定値以下か否かを判定し、被写体輝度差が、所定値以下であれば、本判定処理を終了し、所定値を超える場合は、本判定処理を終了して図2のステップS201に戻る。ここで、被写体輝度差とは、前回のシーン変化判定時に取得した被写体輝度値と今回のシーン変化判定時に検出した被写体輝度値との差である。被写体輝度値の差が大きい場合は、シーンが変化したと判断する。
ステップS505では、システム制御部112は、露光時間が所定時間以上であるか否かを判定し、露光時間が所定時間以上であれば、本判定処理を終了して図2のステップS201に戻り、露光時間が所定時間未満の場合は、ステップS506に進む。露光時間が所定時間以上の場合に本判定処理を終了するのは、露光時間が所定時間以上の場合は、焦点評価値取得する間隔が延びてしまうため、AFの精度を確保できなくなるからである。
ステップS506では、システム制御部112は、絞り及びシャッタ102の絞りの状態が変化したか否かを判定し、絞りの状態が変化していれば、ステップS507に進み、絞りの状態が変化していなければ、本判定処理を終了する。なお、本実施形態では、絞り制御を用いた場合を例示したが、絞り制御の代わりにNDフィルタによって露出制御を行った場合は、NDフィルタ状態の変化の有無を判定してもよい。これは、絞り又はNDフィルタの状態が変化した場合は、焦点評価値のピーク位置が変化するためである。
ステップS507では、システム制御部112は、被写体検出モジュール120で被写体を検出しているか否かを判定する。そして、システム制御部112は、被写体を検出していれば、本判定処理を終了して図4のステップS402に戻り、被写体を検出していなければ、本判定処理を終了して後述する図8のステップS809に進む。
次に、図6及び図7を参照して、図4のステップS409における合焦判定処理について説明する。まず、図6を参照して、フォーカスレンズ104の光軸方向の位置と焦点評価値との関係について説明する。
図6に示すように、焦点評価値は、遠近競合などの場合を除けば、横軸にフォーカスレンズ位置、縦軸に焦点評価値をとると、山形状になる。そこで、焦点評価値の最大値と最小値の差、一定値(SlopeThr)以上の傾きで傾斜している部分の長さ、傾斜している部分の勾配から山形状を判断することにより、合焦判定を行うことができる。合焦判定における判定結果は、次に示す○判定、×判定又は△判定で出力される。
○判定:被写体のコントラストが十分、かつスキャンした距離範囲内の距離に被写体が存在する。
×判定:被写体のコントラストが不十分、もしくはスキャンした距離範囲外の距離に被写体が位置する。
△判定:×判定のうち、至近側方向のスキャンした距離範囲外に被写体が位置する。
図6を参照して、焦点評価値の山形状を判断するための一定値以上の傾きで傾斜している部分の長さLと傾斜している部分の勾配SL/Lを説明する。
山の頂上(A点)から傾斜が続いていると認められる点をD点,E点とし、D点とE点の幅を山の幅Lとする。傾斜が続いていると認める範囲は、A点から、所定量(SlopeThr)以上、焦点評価値が下がったスキャンポイントが続く範囲とする。スキャンポイントとは、連続的にフォーカスレンズ104を光軸方向に駆動してスキャン開始点からスキャン終了点まで移動する間に、焦点評価値を取得するポイントのことである。
A点とD点の焦点評価値の差SL1とA点とE点の焦点評価値の差SL2の和SL1+SL2をSLとする。
次に、図7を参照して、図4のステップS409における合焦判定処理について説明する。なお、図4のステップS409における合焦判定処理は、後述する図12のステップS1201、及び図15のステップS1501における合焦判定処理と同様である。
図7において、ステップS701では、システム制御部112は、焦点評価値の最大値と最小値を求め、ステップS702に進む。ステップS702では、システム制御部112は、焦点評価値が最大となるスキャンポイントを求め、ステップS703に進む。ステップS703では、システム制御部112は、スキャンポイントと焦点評価値から山形状を判断するためのLとSLを求め、ステップS704に進む。
ステップS704では、システム制御部112は、山形状が至近側登り止まりか否かを判定する。ここでは、次の場合に、山形状が至近側登り止まりと判定する。即ち、焦点評価値が最大値となるスキャンポイントがスキャンを行った所定範囲における近端であり、かつ近端のスキャンポイントの焦点評価値と近端のスキャンポイントより1ポイント分無限遠よりのスキャンポイントの焦点評価値の差が所定値以上の場合である。そして、システム制御部112は、至近側の登り止まりだと判定した場合は、ステップS709に進み、そうでなければ、ステップS705に進む。
ステップS705では、システム制御部112は、山形状が無限遠側への登り止まりか否かを判定する。無限遠側への登り止まりと判定するのは、次に場合である。即ち、焦点評価値の最大値となるスキャンポイントがスキャンを行った所定範囲の無限遠端で、かつ無限遠端スキャンポイントの焦点評価値と無限遠端スキャンポイントより1ポイント分至近端よりのスキャンポイントの焦点評価値との差が所定値以上の場合である。そして、システム制御部112は、無限遠側への登り止まりと判定した場合は、ステップS708に進み、そうでなければ、ステップS706に進む。
ステップS706では、システム制御部112は、一定値以上の傾きで傾斜している部分の長さLが所定値以上、かつ傾斜している部分の傾斜の平均値SL/Lが所定値以上、かつ焦点評価値の最大値と最小値との差が所定値以上か否かを判定する。そして、システム制御部112は、 長さLが所定値以上、かつ傾斜している部分の傾斜の平均値SL/Lが所定値以上、かつ焦点評価値の最大値と最小値との差が所定値以上であれば、ステップS707に進み、そうでなければ、ステップS708に進む。
ステップS707では、システム制御部112は、得られた焦点評価値が山形状で被写体にコントラストがあり、焦点調節が可能であるため、合焦判定結果を○判定とし、本判定処理を終了する。
ステップS708では、システム制御部112は、得られた焦点評価値が山形状ではなく、被写体にコントラストがなく、焦点調節が不可能であるため、合焦判定結果を×判定とし、本判定処理を終了する。
ステップS709では、システム制御部112は、得られた焦点評価値が山形状となってはいないが近端方向に登り続けている状態となっており、さらに至近側に被写体ピークが存在している可能性があるため、合焦判定結果を△判定とし、本判定処理を終了する。
次に、図8を参照して、図2のステップS209における被写体領域特定AFスキャンの処理について説明する。ここでは、画面内の主被写体の領域を特定するためのAFスキャンを行う。
図8において、ステップS801では、システム制御部112は、電子ズームをしているか否かを判定し、電子ズームをしていれば、ステップS802へ進み、そうでなければ、ステップS803に進む。
ステップS802では、システム制御部112は、電子ズーム時用のAF枠設定を行い、ステップS804に進む。ここで、電子ズームとは、画面中央領域を拡大して画像表示部114に表示することである。画面中央領域を拡大するため、画像表示部114に表示される画像の画素数は、電子ズームをしない場合に比べて少なくなる。
従って、電子ズーム時に画像表示部114に表示される画像に対して電子ズームをしない場合と同じ割合になるようにAF枠を設定すると、電子ズームしない場合に比べてAF枠内の画素数が少なくなり、焦点評価値のS/Nが低下する。そのため、電子ズーム時と電子ズームをしない場合とでAF枠設定の仕方を変える必要がある。本実施形態では、電子ズーム時は、画面中央付近に所定の大きさのAF枠を1枠設定する。
ステップS803では、システム制御部112は、画面内にN×N個のAF枠を設定し、ステップS804に進む。例えば、N=5とし、AF枠の大きさを縦横の長さ共に画面の10%とした場合、図9に示すAF枠設定となる。N又はAF枠の大きさは、画面内の主被写体の存在確率を考慮して設定してもよいし、横方向と縦方向でAF枠数を異ならせてもよい。
ステップS804では、システム制御部112は、後述する図10で説明する前回参照判定処理を行い、ステップS805に進む。ステップS805では、システム制御部112は、ステップS804において前回参照判定した結果、前回と撮影シーンがあまり変わらないと判定された場合は、ステップS806へ進み、そうでなければ、ステップS809に進む。ステップS806では、システム制御部112は、後述する図11で説明する前回参照AFスキャン処理を行い、ステップS807に進む。
ステップS807では、システム制御部112は、ステップS806の前回参照AFスキャンにおいて主被写体領域が特定できたか否かを判定し、主被写体領域が特定できていれば、ステップS808に進み、そうでなければ、ステップS809に進む。ステップS808では、システム制御部112は、ピーク検出フラグをTRUEにし、ステップS809に進む。ステップS809では、システム制御部112は、後述する図14で説明するゾーンAFスキャンを行い、ステップS810に進む。
ステップS810では、システム制御部112は、ステップS809のゾーンAFスキャンにおいて主被写体領域が特定できたか否かを判定し、主被写体領域が特定できていれば、ステップS808へ進み、そうでなければ、ステップS811に進む。ステップS811では、システム制御部112は、後述する図17及び図18等で説明する一様面判断を行い、ステップS812に進む。
ステップS812では、ステップS809のゾーンAFスキャンにおいて主被写体領域が特定できなかったので、システム制御部112は、画面内に予め設定してある所定領域にAF枠を設定し、ステップS813に進む。ここで、所定領域は、例えば画面の中央領域に1枠設定するなど、主被写体が存在しそうな領域に設定する。ステップS813では、システム制御部112は、後述する図20で説明するフォーカス駆動を行い、被写体領域特定AFスキャンの処理を終了する。
次に、図10を参照して、図8のステップS804における前回参照判定処理を説明する。ここでは、前回AFスキャンを行った撮影シーンに対して、今回、撮影シーンがあまり変化していないかどうかを判定する。
図10において、ステップS1001では、システム制御部112は、前回のAFスキャンにおいて主被写体領域を特定できていたか否かを判定し、主被写体領域を特定できていれば、ステップS1002へ進み、そうでなければ、ステップS1006に進む。
ステップS1002では、システム制御部112は、現在のフォーカスレンズ104の位置が所定位置より至近側にあるか否かを判定し、至近側にあれば、ステップS1003に進み、そうでなければ、ステップS1006に進む。ここでは、所定位置よりも至近側か否かの判定を行ったが、所定位置より無限遠側か否かを判定するようにしてもよい。
ステップS1003では、システム制御部112は、前回のAFスキャンからの時間差が所定時間以内か否かを判定し、所定時間以内であれば、ステップS1004に進み、そうでなければ、ステップS1006に進む。ステップS1004では、システム制御部112は、前回のAFスキャン時のカメラの向きと同じか否かを判定し、同じであれば、ステップS1005に進み、異なっていれば、ステップS1006に進む。ここで、カメラの向きとは、例えばカメラの縦横位置のことであり、角速度センサにより検出する。
ステップS1005では、システム制御部112は、前回AFスキャンでの撮影シーンとあまり変わらないと判定して本判定処理を終了する。ステップS1006では、システム制御部112は、前回のAFスキャンと撮影シーンが大きく変わったと判定して本判定処理を終了する。
次に、図11を参照して、図8のステップS806における前回参照AFスキャン処理を説明する。
図11において、ステップS1101では、システム制御部112は、現在のフォーカスレンズ104の位置を中心にスキャン範囲を範囲1に設定し、ステップS1102に進む。ここでは前回の撮影シーンとあまり変わらないと判断されているので、第1の範囲は、狭い範囲とする。
ステップS1102では、システム制御部112は、フォーカスレンズ104をスキャン開始位置へと移動させ、ステップS1103に進む。ステップS1103では、システム制御部112は、撮像素子106から読み出したアナログ映像信号をA/D変換部107によりデジタル信号に変換する。そして、システム制御部112は、A/D変換部107の出力に基づいて画像処理部108により抽出された輝度信号の高周波成分を焦点評価値としてDRAM110に記憶し、ステップS1104に進む。
ステップS1104では、システム制御部112は、フォーカスレンズ104の現在位置を取得して取得した位置データをDRAM110に記憶し、ステップS1105に進む。システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118がオンかオフかを判定し、オンの場合は、本処理を終了して図2のステップS214に進み、オフの場合は、ステップS1106に進む。
ステップS1106では、システム制御部112は、前述したシーン変化判定処理を行い、ステップS1107に進む。ステップS1107では、システム制御部112は、フォーカスレンズ104の現在位置がスキャン終了位置と等しいか否かを判定し、両者の位置が等しい場合は、ステップS1108に進み、そうでなければ、ステップS1109に進む。ステップS1108では、システム制御部112は、後述する図12及び図13で説明する主被写体領域判定を行い、本処理を終了する。ステップS1109では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン終了方向へ向けて所定量移動させた後、ステップS1103に戻る。
次に、図12及び図13を参照して、図11のステップS1108における主被写体領域判定について説明する。なお、ここで説明する主被写体領域判定の処理は、後述する図14のステップS1411における主被写体領域判定の処理と同様である。
ここでは、画面内の主被写体領域が特定できたか否かを判定する。図13は、図12における主被写体領域判定の例を説明する図である。この例では、AF枠サイズの大きさを画面の10%、N=5、スキャン範囲を0〜500、所定深度範囲を±10とする。なおスキャン範囲及び所定深度範囲の数値は、フォーカスレンズ104の位置を表す数値である。これは、フォーカスレンズ104の不図示の駆動用モータにステッピングモータを使用する場合のパルス数に相当し、値が大きい方が至近側とする。
図12において、ステップS1201では、システム制御部112は、設定した各AF枠のすべてにおいて、前述した合焦判定(図7参照)を行い、ステップS1202に進む。ここでは、例えば、各AF枠において図13(a)に示すような合焦判定結果となるとする。
ステップS1202では、システム制御部112は、各AF枠における焦点評価値のピーク位置(以下、PeakPosと記す)を算出してDRAM110に記憶し、ステップS1203に進む。ここでは、例えば、各AF枠において、図13(b)に示すようなピーク位置算出結果になるものとする。
ステップS1203では、システム制御部112は、設定しているAF枠が1枠か否かを判定し、設定しているAF枠が1枠であれば、ステップS1214に進み、そうでなければ、ステップS1204に進む。ステップS1204では、システム制御部112は、中央M×M枠の各AF枠のPeakPosを至近順にソートしてソートされた数をSとすし、ステップS1205に進む。
以下の説明では、M=3とし、中央M×M枠は、図13の太線で囲んだ縦3枠と横3枠の合計9枠が相当する。例えば、図13(b)の場合は、至近順に410、400、400、400、100、100、100、90とソートされ、ソート数S=8となる。なお、ステップS1201の合焦判定において×判定のAF枠ではピーク位置が算出できないので、ソートの対象としない。
ステップS1205では、システム制御部112は、ステップS1202で算出したM×M枠内のピーク位置の至近順を示すカウンタPを1に設定し、ステップS1206に進む。ステップS1206では、システム制御部112は、ソート順でP番目のPeakPosをPeakPosPとし、ステップS1207に進む。ここでは、例えば、図13(b)では、P=1の場合、PeakPosP=410となる。
ステップS1207では、システム制御部112は、中央のM×M個のAF枠中において○判定、かつPeakPosPに対して所定深度範囲内のAF枠の「かたまり」を検出する。そして、システム制御部112は、「かたまり」を構成するAF枠の数と各AF枠の位置をDRAM110に記憶し、ステップS1208に進む。
ここで、「かたまり」とは、例えば、条件を満たすAF枠が上下左右に隣接している状態のものである。なお、「かたまり」が複数存在する場合には、「かたまり」を構成するAF枠の数や「かたまり」の位置に基づいて、複数の「かたまり」のうちの1つを選択してもよい。
ステップS1208では、システム制御部112は、中央のN×N個のAF枠中において、中央のM×M個のAF枠中を1枠以上含むように○判定、かつPeakPosPに対して所定深度範囲内の「かたまり」を検出する。そして、システム制御部112は、「かたまり」を構成するAF枠の数と各AF枠の位置をDRAM110に記憶し、ステップS1209に進む。ここでは、例えば、図13(a)及び図13(b)に示すような判定結果に対して、図13(c)のハッチングで示すような「かたまり」が検出される。
ステップS1209では、システム制御部112は、ステップS1207又はステップS1208で検出した「かたまり」が中央枠を含む「かたまり」であるか否かを判定する。そして、システム制御部112は、中央枠を含む「かたまり」であれば、ステップS1215に進み、そうでなければ、ステップS1210に進む。
ステップS1210では、システム制御部112は、ステップS1207又はステップS1208で検出した「かたまり」がM×M枠内に所定枠数以上含む「かたまり」であるか否かを判定する。そして、システム制御部112は、検出した「かたまり」がM×M枠内に所定枠数以上含む「かたまり」であれば、ステップS1215に進み、そうでなければ、ステップS1211に進む。
ステップS1211では、システム制御部112は、ステップS1207又はステップS1208で検出した「かたまり」が中央M×M枠のうち1枠を含み、N×N枠内のAF枠を所定数以上含む「かたまり」であるか否かを判定する。そして、システム制御部112は、検出した「かたまり」が中央M×M枠のうち1枠を含み、N×N枠内のAF枠を所定数以上含む「かたまり」であれば、ステップS1215に進み、そうでなければ、ステップS1212に進む。
ステップS1212では、システム制御部112は、カウンタPに1を加え、ステップS1213に進む。ステップS1213では、システム制御部112は、カウンタPがソート数Sよりも大きいか否かを判定し、カウンタPがソート数Sより大きければ、ステップS1217に進み、そうでなければ、ステップS1206に戻る。ステップS1214では、システム制御部112は、ステップS1201での合焦判定結果が○判定か否かを判定し、○判定であれば、ステップS1215に進み、そうでなければ、ステップS1217に進む。
ステップS1215では、システム制御部112は、主被写体領域が特定できたと判定し、ステップS1216に進む。ステップS1216では、システム制御部112は、かたまりを構成する各AF枠を主被写体領域と判断して選択し、本判定処理を終了する。なお、ここで設定しているAF枠が1枠の場合は、その1枠を選択する。ステップS1217では、システム制御部112は、主被写体領域の特定ができなかったと判定して本判定処理を終了する。
次に、図14を参照して、図8のステップS809におけるゾーンAFスキャンの処理を説明する。ここで、ゾーンとは、合焦可能距離範囲を複数の範囲に分割した場合の1つ1つの範囲のことを指す。
図14において、ステップS1401では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン開始位置へと移動させ、ステップS1402に進む。ここで、スキャン開始位置は、例えば、無限遠端位置とする。ステップS1402では、システム制御部112は、撮像素子106から読み出したアナログ映像信号をA/D変換部107によりデジタル信号に変換する。そして、システム制御部112は、A/D変換部107の出力から画像処理部108により抽出した輝度信号の高周波成分を焦点評価値としてDRAM110に記憶し、ステップS1403に進む。
ステップS1403では、システム制御部112は、フォーカスレンズ104の現在位置を取得して、取得した位置のデータをDRAM110に記憶し、ステップS1404に進む。ステップS1404では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118の状態がオンかオフかを判定し、オンであれば、本処理を終了して図2のステップS214に進み、オフであれば、ステップS1405に進む。
ステップS1405では、システム制御部112は、前述したシーン変化判定(図5参照)を行い、ステップS1406に進む。ステップS1406では、システム制御部112は、フォーカスレンズ104があらかじめ設定したゾーンの境界位置にあるか否かを判定し、ゾーンの境界位置にある場合は、ステップS1407に進み、そうでなければ、ステップS1409に進む。ステップS1407では、システム制御部112は、後述する図15で説明するゾーン更新判定を行い、ステップS1408に進む。ここで、ゾーン更新とは、あるゾーンをスキャンした後、引き続き隣接するゾーンをスキャンすることを指す。
ステップS1408では、システム制御部112は、ステップS1407においてゾーンを更新すると判定されたか否かを判定し、ゾーンを更新すると判定されていれば、ステップS1409に進み、そうでなければ、ステップS1411に進む。ステップS1409では、システム制御部112は、フォーカスレンズ104の現在位置がスキャン終了位置と等しいか否かを判定し、両者の位置が等しい場合は、ステップS1411に進み、そうでなければ、ステップS1411に進む。ステップS1410では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン終了位置に向けて所定量移動させた後、ステップS1402に戻る。ステップS1411では、システム制御部112は、前述した主被写体領域判定(図12及び図13参照)を行い、本処理を終了する。
次に、図15を参照して、図14のステップS1407におけるゾーン更新判定の処理を説明する。ここでは、スキャン方向の先に主被写体が存在していそうか否か、つまりAFスキャンを続けるか否かを判定する。図16は、図15に示すゾーン更新判定処理の例を説明する図である。図16に示す例では、AF枠の大きさを画面の10%、N=5、M=3とする。
図15において、ステップS1501では、システム制御部112は、設定した各AF枠のすべてにおいて前述した合焦判定(図7参照)を行い、ステップS1502に進む。ここでは、例えば、各AF枠において図16(a)に示すような合焦判定結果となるものとする。
ステップS1502では、システム制御部112は、最終ゾーンまでスキャンをしたか否かを判定し、最終ゾーンまでスキャンしていれば、ステップS1512に進み、そうでなければ、ステップS1503に進む。ステップS1503では、システム制御部112は、○判定枠があるか否かを判定し、○判定枠があれば、ステップS1504に進み、そうでなければ、ステップS1511に進む。
ステップS1504では、システム制御部112は、中央枠が△判定か否かを判定し、中央枠が△判定であれば、ステップS1511に進み、そうでなければ、ステップS1505に進む。ステップS1505では、システム制御部112は、中央M×M枠の中に△判定枠が所定数以上の「かたまり」があるか否かを判定し、△判定枠が所定数以上の「かたまり」がある場合は、ステップ1511に進み、そうでなければ、ステップS1506に進む。なお、図16では、ここでの所定数を例えば2とする。
ステップS1506では、システム制御部112は、中央M×M枠のうち1枠以上を含むようにN×N枠のAF枠中に△判定枠が所定数以上の「かたまり」があるか否かを判定する。そして、システム制御部112は、N×N枠のAF枠中に△判定枠が所定数以上の「かたまり」がある場合は、ステップS1511に進み、そうでなければ、ステップS1507に進む。なお、図16では、ここでの所定数を例えば4とする。
ステップS1507では、システム制御部112は、中央M×M枠中に○判定枠が所定数以上の「かたまり」があるか否かを判定し、○判定枠が所定数以上の「かたまり」がある場合は、ステップS1512に進み、そうでなければ、ステップS1508に進む。なお、図16では、ここでの所定数を例えば5とする。ステップS1508では、システム制御部112は、中央枠が×判定か否かを判定し、中央枠が×判定であれば、ステップS1511に進み、そうでなければ、ステップS1509に進む。
ステップS1509では、システム制御部112は、中央M×M枠の中で△判定枠又は×判定枠が所定数以上の「かたまり」があるか否かを判定する。そして、システム制御部112は、△判定枠又は×判定枠が所定数以上の「かたまり」があれば、ステップS1511に進み、そうでなければ、ステップS1510に進む。なお、図16では、ここでの所定数を例えば2とする。
ステップS1510では、システム制御部112は、中央M×M枠の1枠以上を含むようにN×N枠の全ての枠中に△判定枠又は×判定枠が所定数以上「かたまり」があるか否かを判定する。そして、システム制御部112は、△判定枠又は×判定枠が所定数以上「かたまり」があれば、ステップS1511に進み、そうでなければ、ステップS1512に進む。図16では、例として所定数を4とする。
ステップS1511では、システム制御部112は、「ゾーン更新する」と判定して本判定処理を終了する。ステップS1512では、システム制御部112は、「ゾーン更新しない」と判定して本判定処理を終了する。
例えば、N=5、M=3としたとき、図16(b)のハッチングで示す領域の「かたまり」となり、「ゾーン更新する」と判定される。
次に、図17を参照して、図8のステップS811における一様面判断の処理を説明する。ここで、「一様面である状態」とは、画面内に輝度差がなく、コントラストがないため、AFを行っても焦点評価値ピークが充分に得られない状態のことである。「一様面である状態」において、撮影シーンが安定するごとに、図2のステップS209の被写体領域特定AFスキャンが繰り返されると、画面のピント変動が無駄に繰り返されるため、煩わしい。そのため、この一様面判断処理では、「一様面である状態」を判定した場合には、「一様面である状態」を判定しなくなるまでフォーカスレンズ104を停止する動作を行う。
図17において、ステップS1701では、システム制御部112は、後述する図18で説明する一様面判定を行い、ステップS1702に進む。ステップS1702では、ステップS1701での一様面判定において、撮影シーンが一様面と判定されたか否かを判断し、一様面と判定されていれば、ステップS1703に進み、そうでなければ、本判断処理を終了する。ステップS1703では、システム制御部112は、AF処理部105によりフォーカスレンズ104を所定位置へ移動させ、ステップS1704に進む。ここで、所定位置とは、例えば無限遠を被写体深度の無限遠側に含む過焦点距離とする。
ステップS1704では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118の状態がオンかオフかを判定し、オンであれば、本判断処理を終了して図2のステップS214に進み、オフであれば、ステップS1705に進む。ステップS1705では、後述する図18で説明する一様面判定を行い、ステップS1706に進む。ステップS1706では、ステップS1705での一様面判定において、撮影シーンが一様面と判定されたか否かを判断し、一様面と判定されていれば、ステップS1704に戻り、そうでなければ、本判断処理を終了し、図2のステップS201に戻る。
以上の処理により、「一様面である状態」でなくなるまでフォーカスレンズ104を停止することができる。
次に、図18及び図19を参照して、図17のステップS1701及びS1705における一様面判定の処理を説明する。ここでは、画面内の輝度情報及び焦点評価値に基づいて「一様面である状態」か否かを判定する。図19は、図18の一様面判定について説明する図である。図19(a)において、X部分は、「一様面である状態」を示しており、Y部分は、「一様面でない状態」を示している。
図18において、ステップS1801では、システム制御部112は、設定しているAF枠が1枠か否かを判定し、1枠であれば、ステップS1805に進み、1枠でなければ、ステップS1802に進む。
ステップS1802では、システム制御部112は、「画面中央M×M枠の輝度積分値と、画面全体N×N枠中の4隅M×M枠それぞれの輝度積分値との差分」を算出し、ステップS1802に進む。
具体的に説明すると、例えば、枠サイズ10%、N=5、M=3とすると、図19(a)の風景のX部分の領域を撮影シーンとした場合、画面中央M×M枠の輝度積分値は、図19(b)のAに示すハッチング領域の輝度値を積分したものとなる。また、画面全体N×N枠中の4隅M×M枠それぞれの輝度積分値は、図19(b)のB、C、D、Eに示すそれぞれのハッチング領域の輝度値を積分したものとなる。画面中央M×M枠の輝度積分値Aとし、4隅M×M枠それぞれの輝度積分値をB、C、D、Eとすると、A−B、A−C、A−D、A−Eの絶対値が、「画面中央M×M枠の輝度積分値と、画面全体N×N枠中の4隅M×M枠それぞれの輝度積分値との差分」となる。
ステップS1803では、システム制御部112は、ステップS1802で算出した「画面中央M×M枠の輝度積分値と、画面全体N×N枠中の4隅M×M枠それぞれの輝度積分値との差分」のうち所定値以上の輝度差分となるものがあるか否かを判定する。そして、システム制御部112は、所定値以上の輝度差分となるものがあれば、ステップS1807に進み、そうでなければ、ステップS1804に進む。ステップS1804では、システム制御部112は、中央M×M枠の各AF枠の焦点評価値を演算(例えば加算)したものを新たな焦点評価値とし、ステップ1805に進む。
ステップS1805では、システム制御部112は、焦点評価値が所定値以上か否かを判定し、焦点評価値が所定値以上であれば、ステップS1807に進み、そうでなければ、ステップS1806に進む。ステップS1806では、システム制御部112は、撮影シーンが「一様面である」と判定して本判定処理を終了する。ステップS1807では、システム制御部112は、撮影シーンが「一様面ではない」と判定して本判定処理を終了する。
これにより、図19(a)X部分のような「一様面である状態」では、「一様面である」と判定することができ、図19(a)のY部分のような「一様面ではない状態」では、「一様面ではない」と判定することができる。
次に、図20を参照して、図8のステップS813におけるフォーカス駆動の処理を説明する。
図20において、ステップS2001では、システム制御部112は、主被写体領域が特定できたか否かを判定し、特定できていれば、ステップS2002に進み、そうでなければ、ステップS2003に進む。ステップS2002では、システム制御部112は、AF処理部105により、選択したAF枠中の最至近位置にフォーカスレンズ104を駆動して本処理を終了する。ステップS2003では、システム制御部112は、中央M×M枠中に○判定があるか否かを判定し、○判定があれば、ステップS2004に進み、そうでなければ、ステップS2005へ進む。
ステップS2004では、システム制御部112は、AF処理部105により、中央M×M枠中の○判定のうち最至近位置にフォーカスレンズ104を駆動して本処理を終了する。ステップS2005では、システム制御部112は、AF処理部105により、あらかじめDRAM110に記憶している位置(定点)へフォーカスレンズ104を移動させて本処理を終了する。ここで定点は、例えば、被写体の存在確率の高い距離に設定する。
次に、図21を参照して、図2のステップS211におけるコンティニュアスAFの処理を説明する。
図21において、ステップS2101では、システム制御部112は、合焦度判定フラグをTRUEにし、ステップS2102に進む。ステップS2102では、システム制御部112は、設定した各AF枠で焦点評価値を取得し、ステップS2103に進む。
ステップS2103では、システム制御部112は、設定しているAF枠が1枠か否かを判定し、設定しているAF枠が1枠の場合は、ステップS2105へ進み、そうでない場合は、ステップS2104へ進む。ステップS2104では、システム制御部112は、主被写体領域として選択したAF枠の焦点評価値を用いて演算した評価値をステップS2105以降に用いる焦点評価値として再設定し、ステップ1205に進む。これにより、撮影シーンが変化して画面内の主被写体領域が変化しても、常に画面内の主被写体領域の焦点評価値を算出することができる。
ステップS2105では、システム制御部112は、焦点評価値に基づいて合焦度を算出し、ステップS2106に進む。本実施形態では、焦点評価値に基づいて、合焦度を高、中、低の3段階で決定することにする。ステップS2106では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118の状態がオンかオフかを判定し、オンであれば、本判断処理を終了して図2のステップS215に進み、オフであれば、ステップS2107に進む。
ステップS2107では、システム制御部112は、前述したシーン変化判定(図5参照)を行い、ステップS2108に進む。ステップS2108では、システム制御部112は、ピーク検出フラグがTRUEであるか否かを判定し、TRUEであれば、ステップS2125へ進み、FALSEであれば、ステップS2109へ進む。
ステップS2109では、システム制御部112は、フォーカスレンズ104の現在位置を取得し、ステップS2110に進む。ステップS2110では、システム制御部112は、焦点評価値の取得及びフォーカスレンズ104の現在位置の取得をカウントするための取得カウンタに1を加え、ステップS2111に進む。この取得カウンタは、初期化動作(図示略)においてあらかじめ0に設定されているものとする。ステップS2111では、システム制御部112は、取得カウンタの値が1か否かを判定し、取得カウンタの値が1であれば、ステップS2114へ進み、取得カウンタの値が1でなければ、ステップS2112へ進む。
ステップS2112では、システム制御部112は、「今回の焦点評価値」が「前回の焦点評価値」よりも大きいか否かを判定し、大きい場合は、ステップS2113へ進み、そうでなければ、ステップS2120へ進む。ステップS2113では、システム制御部112は、増加カウンタに1を加え、ステップS2114に進む。ステップS2114では、システム制御部112は、今回の焦点評価値を焦点評価値の最大値としてシステム制御部112に内蔵される演算メモリ(以下、内蔵メモリという)に記憶し、ステップS2115に進む。
ステップS2115では、システム制御部112は、フォーカスレンズ104の現在の位置を焦点評価値のピーク位置として内蔵メモリに記憶し、ステップS2116に進む。ステップS2116では、システム制御部112は、今回の焦点評価値を前回の焦点評価値として内蔵メモリに記憶し、ステップS2117に進む。ステップS2117では、システム制御部112は、フォーカスレンズ104の現在位置が測距範囲の端にあるか否かを判定し、測距範囲の端にあれば、ステップS2118へ進み、そうでなければ、ステップS2119へ進む。
ステップS2118では、システム制御部112は、AF処理部105により、フォーカスレンズ104の移動方向を反転し、ステップS2119に進む。ステップS2119では、AF処理部105によりフォーカスレンズ104を所定量移動させ、本処理を終了する。
ステップS2120では、システム制御部112は、「焦点評価値の最大値−今回の焦点評価値」が所定量より大きいか否かを判定し、所定量より大きければ、ステップS2121へ進み、そうでなければ、ステップS2116へ進む。ここで「焦点評価値の最大値−今回の焦点評価値」が所定量より大きい場合、即ち最大値から所定量減少している場合は、その最大値をピントのピーク位置での値とみなす。
ステップS2121では、システム制御部112は、増加カウンタが0より大きいか否かを判定し、0より大きければ、ステップS2122へ進み、そうでなければ、ステップS2116へ進む。ステップS2122では、システム制御部112は、AF処理部105により、フォーカスレンズ104をステップS2115で記憶した焦点評価値が最大値となったピーク位置へ移動させ、ステップS2123に進む。ステップS2123では、システム制御部112は、ピーク検出フラグをTRUEとし、ステップS2124に進む。ステップS2124では、システム制御部112は、取得カウンタを0とし、ステップS2119に進む。
ステップS2125では、システム制御部112は、今回の焦点評価値が焦点評価値の最大値に対して所定割合以上変動したか否かを判定し、所定割合以上の大きな変動をしていれば、ステップS2127へ進み、そうでなければ、ステップS2126へ進む。ステップS2126ではAF処理部105によりフォーカスレンズ104を停止させて停止位置に保持し、ステップS2119に進む。
ステップS2127では、システム制御部112は、焦点評価値が最大となるフォーカスレンズ位置を再び算出し直すため、ピーク検出フラグをFALSEとして焦点評価値の最大値及びピーク位置をリセットし、ステップS2128に進む。ステップS2128では、システム制御部112は、増加カウンタをリセットし、ステップS2119に進む。
以上のように、コンティニュアスAFでは、常に主被写体が合焦状態となるようにフォーカスレンズ104を駆動する。
次に、図22を参照して、図2のステップ212におけるシーン不安定判断の処理を説明する。
図22において、ステップS2201では、システム制御部112は、角速度センサで検出したカメラ動作量が所定量以上となっているか否かを判定し、所定量以上であれば、ステップS2205へ進み、そうでなければ、ステップS2202へ進む。ステップS2202では、システム制御部112は、前回からの輝度変化量が所定量以上か否かを判定し、所定量以上であれば、ステップS2205へ進み、そうでなければ、ステップS2203へ進む。
ステップS2203では、システム制御部112は、被写体検出モジュール120で検出した被写体検出状態(例えば顔検出状態)が変化したか否かを判定し、変化していれば、ステップS2205へ進み、変化していなければ、ステップS2204へ進む。ここで、被写体検出状態とは、例えば顔検出されているかどうかである。つまり、前回のシーン不安定判断で顔検出されていて今回のシーン不安定判断で顔検出されていなければ、顔検出状態が変化したことになる。
ステップS2204では、システム制御部112は、撮影シーンが変化していないと判断して本処理を終了する。ステップS2205では、システム制御部112は、撮影シーンが変化したと判断して本処理を終了する。
次に、図23を参照して、図2のステップS215における撮影処理を説明する。
図23において、ステップS2301では、システム制御部112は、AE処理部103により本露光用のAE処理を行い、ステップS2302に進む。ステップS2302では、システム制御部112は、後述する図25で説明する本露光用のAFを行い、ステップ2303に進む。
ステップS2303では、システム制御部112は、撮影動作を指示するレリーズスイッチ(SW2)119の状態がオンかオフかを判定し、オンの場合は、ステップS2305へ進み、オフの場合は、ステップS2304へ進む。ステップS2304では、システム制御部112は、撮影準備を指示するレリーズスイッチ(SW1)118の状態がオンかオフかを判定し、オンの場合は、ステップS2303へ戻り、オフの場合は、ステップS2307へ進む。
ステップS2305では、システム制御部112は、PeakPos更新フラグをFALSEとし、ステップS2306に進む。ステップS2306では、システム制御部112は、後述する図30で説明する本露光処理を行い、ステップS2313に進む。ステップS2313では、システム制御部112は、レリーズスイッチ(SW1)118をオンになったこと、即ちレリーズボタンが半押し操作されたことを表す変数Sw1Conterを0にクリアし、本処理を終了する。
ステップS2307では、システム制御部112は、Sw1Counterをインクリメントし、ステップS2308に進む。なお、Sw1Counterは、カメラ起動時に0で初期化されているものとする。ステップS2308では、システム制御部112は、Sw1Counterと所定閾値と比較することで、レリーズスイッチ(SW1)118が所定閾値を超える回数オンになったか否かを判定する。即ち、レリーズボタンが所定閾値を超える回数半押し操作されたか否かを判定する。そして、システム制御部112は、レリーズスイッチ(SW1)118が所定閾値を超える回数オンになっていれば、ステップS2309に進み、そうでなければ、本処理を終了する。
ステップS2309では、システム制御部112は、レリーズスイッチ(SW1)118がオンする前に求めた主被写体領域のピーク位置と後述するレリーズスイッチ(SW1)118のオン時の本露光AFのピーク位置とを比較して両ピーク位置の差を算出する。そして、システム制御部112は、両ピーク位置の差が所定値未満であれば、ステップS2310へ進み、所定値以上であれば、本処理を終了する。ここでの処理は、レリーズスイッチ(SW1)118がオン時に被写体が動いたことを考慮したものである。
ステップS2310では、システム制御部112は、PeakPos更新フラグをTRUEとし、ステップ2311に進む。ステップS2311では、システム制御部112は、後述する図24で説明する主被写体領域更新を行い、ステップS2312に進む。ステップS2312では、システム制御部112は、前述したフォーカス駆動(図20参照)を行い、本処理を終了する。
次に、図24を参照して、図23のステップS2311における主被写体領域更新の処理を説明する。
図24において、ステップS2701では、システム制御部112は、設定しているAF枠が1枠か否かを判定し、設定しているAF枠が1枠であれば、ステップS2712へ進み、そうでなければ、ステップS2702へ進む。ステップS2702では、システム制御部112は、図12のステップS1202で算出したM×M枠内のピーク位置の至近順を示すカウンタPをインクリメントし、ステップ2703に進む。ステップS2703では、システム制御部112は、カウンタPがソート数Sよりも大きい否かを判定し、カウンタPがソート数Sよりも大きければ、ステップS2711へ進み、そうでなければ、ステップS2704へ進む。
ステップS2704では、システム制御部112は、ソート順でP番目のPeakPosをPeakPosPとし、ステップS2705に進む。ステップS2705では、システム制御部112は、中央のM×M個のAF枠中において○判定、かつPeakPosPに対して所定深度範囲内のAF枠の「かたまり」を検出する。そして、システム制御部112は、「かたまり」を構成するAF枠の数と各AF枠の位置をDRAM110に記憶し、ステップS2706に進む。なお、前述したように、「かたまり」が複数存在する場合には、「かたまり」を構成するAF枠の数や「かたまり」の位置に基づいて、複数の「かたまり」のうちの1つを選択してもよい。
ステップS2706では、システム制御部112は、中央のN×N個のAF枠中において、中央のM×M個のAF枠中を1枠以上含むように○判定、かつPeakPosPに対して所定深度内の「かたまり」を検出する。そして、システム制御部112は、「かたまり」を構成するAF枠の数と各AF枠の位置をDRAM110に記憶し、ステップS2707に進む。ステップS2707では、システム制御部112は、ステップS2705又はステップS2706で検出した「かたまり」が中央枠を含む「かたまり」であるか否かを判定する。そして、システム制御部112は、中央枠を含む「かたまり」であれば、ステップS2712へ進み、そうでなければ、ステップS2708へ進む。
ステップS2708では、システム制御部112は、ステップS2705又はステップS2706で検出した「かたまり」がM×M枠内に所定数以上含む「かたまり」であるか否かを判定する。そして、システム制御部112は、M×M枠内に所定数以上含む「かたまり」であれば、ステップS2713へ進み、そうでなければ、ステップS2709へ進む。
ステップS2709では、システム制御部112は、ステップS2705又はステップS2706で検出した「かたまり」が中央M×M枠のうち1枠を含みN×N枠内のAF枠を所定数以上含む「かたまり」であるか否かを判定する。そして、システム制御部112は、中央M×M枠のうち1枠を含みN×N枠内のAF枠を所定数以上含む「かたまり」であれば、ステップS2713へ進み、そうでなければ、ステップS2710へ進む。
ステップS2710では、システム制御部112は、カウンタPに1を加え(インクリメント)、ステップS2711に進む。ステップS2712では、システム制御部112は、図12のステップS1201での合焦判定結果が○判定か否かを判定し、○判定であれば、ステップS2713へ進み、そうでなければ、ステップS2711へ進む。ステップS2713では、システム制御部112は、主被写体領域が特定できたと判定し、ステップS2714に進む。
ステップS2714では、システム制御部112は、かたまりを構成する各AF枠を主被写体領域と判断して選択し、ステップS2715に進む。ここで、設定しているAF枠が1枠の場合は、その1枠を選択する。ステップS2715では、システム制御部112は、ピーク検出フラグをTRUEにし、本更新処理を終了する。ステップS2711では、システム制御部112は、主被写体領域の特定ができなかったと判定して本更新処理を終了する。
次に、図25を参照して、図23のステップS2302における本露光用AFの処理を説明する。
図25において、ステップS2401では、システム制御部112は、主被写体検出フラグがTRUEであるか否かを判定し、TRUEであれば、ステップS2402へ進み、TRUEでなければ、ステップS2403へ進む。ステップS2402では、システム制御部112は、本露光用のAF枠設定を例えば後述するAF枠設定1とし、ステップS2404に進む。一方、ステップS2403では、システム制御部112は、本露光用のAF枠設定を例えば後述するAF枠設定2とし、ステップS2410に進む。
ここでの枠数設定は、図8のステップS803で設定したN×Nと異ならせる。本実施形態では、AF評価値の演算量を低減させる為、N>Lとなるような枠設定L×Lで設定する。また、枠サイズとしては、S/N比を向上させるため、SizeN<SizeLとなるような枠サイズを設定する。
また、枠の設定は、主被写体の検出結果に基づいて決定してもよい。主被写体が検出できていた場合は、ステップS2402にて、AF評価値の演算量の低減、S/N比を向上させる為、N>L、SizeN<SizeLとなるAF枠設定1を設定する。主被写体が検出できていない場合は、主被写体検出用に設定した枠に対して細かな被写体を撮影しており、背景抜けなどの現象が起こっている可能性がある。そこで、主被写体検出の分解能をあげる為、ステップS2403にて、N<L′、SizeN>SizeL′となるようなAF枠設定2を設定してもよい。図26、図27及び図28に、AF枠設定1,2で枠数を増減する例を示す。
ステップS2404では、システム制御部112は、図21のステップS2105で算出した合焦度が「高」であるか否かを判定し、合焦度が「高」であれば、ステップS2405へ進み、合焦度が「高」でなければ、ステップS2406へ進む。
ステップS2405では、システム制御部112は、現在のフォーカスレンズ104の位置を中心にスキャン範囲1の設定を行い、ステップS2411に進む。ここでは、コンティニュアスAF動作により主被写体にほぼピントが合っている状態、つまり焦点評価値がピークを示す合焦位置付近にフォーカスレンズ104が位置すると判断して、狭いスキャン範囲を設定する。
ステップS2406では、システム制御部112は、図21のステップS2105で算出した合焦度が「中」であるか否かを判定し、合焦度が「中」であれば、ステップS2407へ進み、合焦度が「中」でなければ、ステップS2408へ進む。
ステップS2407では、システム制御部112は、現在のフォーカスレンズ104の位置を中心にスキャン範囲2の設定を行い、ステップS2411に進む。ここでは、コンティニュアスAF動作により合焦位置付近にフォーカスレンズが位置しているが、合焦度が「高」状態ほどではないと判断してスキャン範囲1より範囲を広げた範囲をスキャン範囲2として設定する。
ステップS2408では、システム制御部112は、フォーカスレンズ104の現在位置がマクロ領域か否かを判定し、マクロ領域であれば、ステップS2409へ進み、マクロ領域でなければ、ステップS2410へ進む。ステップS2409では、システム制御部112は、あらかじめ記憶してあるマクロ領域であるスキャン範囲3を設定し、ステップS2411に進む。ステップS2410では、システム制御部112は、あらかじめ記憶してある測距可能範囲全域であるスキャン範囲4に設定し、ステップS2411に進む。
ステップS2411では、システム制御部112は、後述する図29で説明する本露光用AFスキャンを行い、ステップS2412に進む。ステップS2412では、システム制御部112は、後述する図29のステップS2506で算出したピーク位置にフォーカスレンズ104を移動させ、本処理を終了する。
次に、図29を参照して、図25のステップS2411における本露光用AFスキャンの処理を説明する。
図29において、ステップS2501では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン開始位置へ移動させ、ステップS2502に進む。ここで、スキャン開始位置とは、図25のステップS2405,S2407,S2409,S2410で設定したスキャン範囲1〜4の端位置とする。ステップS2502では、システム制御部112は、撮像素子106から読み出したアナログ映像信号をA/D変換部107でデジタル信号に変換する。そして、システム制御部112は、A/D変換部107の出力から画像処理部108により抽出されたが輝度信号の高周波成分を焦点評価値としてDRAM110に記憶し、ステップS2503に進む。
ステップS2503では、システム制御部112は、フォーカスレンズ104の現在位置を取得して、取得した位置データをDRAM110に記憶し、ステップS2504に進む。ステップS2504では、システム制御部112は、フォーカスレンズ104の現在位置がスキャン終了位置と等しいか否かを判定し、両者の位置が等しい場合は、ステップS2506へ進み、そうでなければ、ステップS2505へ進む。
ステップS2505では、システム制御部112は、AF処理部105によりフォーカスレンズ104をスキャン終了位置に向けて所定量移動させた後、ステップS2502に戻る。ステップS2506では、システム制御部112は、ステップS2502で記憶した焦点評価値とそのレンズ位置に基づき焦点評価値のピーク位置を算出し、本処理を終了する。ここで、焦点評価値のピーク位置を算出するにあたって、AF枠を複数枠設定した場合は、図12で説明した主被写体領域判定により決定した主被写体領域の最至近ピーク位置に基づいて算出してもよいし、別の方法でピーク位置を算出してもよい。
次に、図30を参照して、図23のステップS2306における本露光処理について説明する。
図30において、ステップS2601では、システム制御部112は、撮像素子106の露光を行い、ステップS2602に進む。ステップS2602では、システム制御部112は、撮像素子106に蓄積されたデータを読み出し、ステップS2603に進む。ステップS2603では、システム制御部112は、A/D変換部107で撮像素子106から読み出したアナログ信号をデジタル信号に変換し、ステップS2604に進む。
ステップS2604では、システム制御部112は、画像処理部108により、A/D変換部107から出力されるデジタル信号に対して各種画像処理を施し、ステップS2605に進む。ステップS2605では、システム制御部112は、ステップS2604で画像処理した画像に対してJPEGなどのフォーマットにしたがって圧縮し、ステップS2606進む。ステップS2606では、システム制御部112は、圧縮したデータを画像記録部111に記録し、本露光処理を終了する。
以上説明したように、本実施形態では、合焦すべき被写体に対して高速にピントを合わせることが可能となる。
なお、本発明は、上記実施形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。