以下、本発明の実施例について図面を参照しながら説明する。
図1は、本発明の実施例である撮像装置としてのデジタルカメラ本体(以下、カメラ本体という)200と交換レンズユニット100の構成を示す。交換レンズユニット100は、電気接点ユニット106を有する不図示のマウント部を介して着脱可能(交換可能)にカメラ本体200に取り付けられる。
交換レンズユニット100において、101はズーム機構を含む撮像レンズであり、102は光量を制御する絞りシャッタである。103は光軸方向に移動して焦点調節を行うフォーカスレンズである。撮像レンズ101、絞りシャッタ102およびフォーカスレンズ103により撮像光学系が構成される。104はフォーカスレンズを駆動するフォーカスモータであり、105はフォーカスモータ104の駆動等、交換レンズユニット100の動作を制御するレンズコントローラである。
カメラ本体200において、201は撮像光学系により形成された被写体像を光電変換する撮像素子であり、202は撮像素子201から出力されるアナログ電気信号をデジタル信号に変換するA/D変換部である。203は画像処理部であり、204はAF信号処理部である。205はフォーマット変換部であり、206はランダムアクセスメモリ等のメモリ(以下、DRAMと記す)であり、画像データの一時記憶用の高速バッファとして、また画像データの圧縮伸張処理における作業用メモリ等として使用される。207はメモリカード等の記録媒体とそのインターフェースからなる画像記録部である。208はタイミングジェネレータであり、209はAF処理(焦点調節制御)や撮像処理(撮像制御)等のカメラ本体200の動作を制御するシステム制御部である。
210はカメラ本体200(システム制御部209)と交換レンズユニット100(レンズコントローラ105)との通信を行う通信部である。211はAE処理部であり、212は画像表示用メモリ(以下、VRAMと記す)である。213は画像表示部であり、撮像前に取得されるライブビュー映像や撮像により取得された撮像静止画の他、撮像に関する各種情報を表示する画像表示部である。215は撮像モードをユーザが選択するために操作するモードスイッチである。撮像モードには、マクロモードやスポーツモード等がある。
216はカメラ本体200およびカメラ本体200から電源供給を受ける交換レンズユニット100に電源を投入するためにユーザにより操作されるメインスイッチである。217は第1スイッチ(以下、SW1と記す)である。SW1(217)は、ユーザによる不図示の操作部材であるレリーズボタンの第1の操作としての半押し操作に応じてONになり、AF(自動焦点調節)やAE(自動露光)等の撮像準備処理の実行をシステム制御部209に指示する信号を出力する。218は第2スイッチ(以下、SW2と記す)である。SW2(218)は、ユーザによるレリーズボタンの第2の操作としての全押し操作に応じてONになり、撮像処理の実行をシステム制御部209に指示する信号を出力する。214はモードスイッチ215、メインスイッチ216、SW1(217)およびSW2(218)以外のユーザにより操作される各種スイッチやダイヤル等を含む操作部である。操作部214は、撮像時および画像再生時における各種設定を行うためのメニュースイッチや、撮像モードと再生モードとを切り替える撮像/再生モードスイッチ等を含む。
上述した撮像素子201は、CCDセンサやCMOSセンサ等により構成され、その撮像面上に結像した光(被写体像)を複数の画素のそれぞれに含まれるフォトダイオードにより光電変換する。撮像素子201の各フォトダイオードは、光電変換した光の光量に応じた電荷を蓄積する。各フォトダイオードに蓄積された電荷は、システム制御部209の指令に応じてタイミングジェネレータ208から与えられる駆動パルスに基づいて順次読み出されてアナログ電気信号として出力される。
本実施例で用いられる撮像素子201の各画素は、2つ(一対)のフォトダイオードA,Bとこれら一対のフォトダイオードA,Bに対して設けられた1つのマイクロレンズから構成されている。一対のフォトダイオードA,Bは、1つのマイクロレンズを介して撮像光学系の射出瞳のうち互いに異なる領域(AF瞳)からの光束により形成される一対の光学像を光電変換する。該一対のフォトダイオードA,Bから一対のAF用信号であるA信号およびB信号を出力する。また、一対のフォトダイオードA,Bの出力を加算することで、撮像用画素信号(A+B信号)を得ることができ、この撮像用画素信号を全画素において加算することで撮像信号が得られる。
複数の画素から出力された複数のA信号と複数のB信号をそれぞれ瞳分割方向と直交する方向において加算することで、撮像面位相差検出方式によるAF(以下、撮像面位相差AFという)に用いられる一対の位相差像信号が得られる。AF信号処理部204は、該一対の位相差像信号に対して相関演算を行い、これら一対の位相差像信号の位相差である像ずれ量を算出し、さらに該像ずれ量から被写体に対する撮像光学系のデフォーカス量(およびデフォーカス方向)を算出する。
図2(a)には撮像面位相差AFに対応していない画素構成を、図2(b)は撮像面位相差AFに対応した画素構成を示している。いずれの図においても、ベイヤー配列が用いられており、Rは赤のカラーフィルタを、Bは青のカラーフィルタを、Gr,Gbは緑のカラーフィルタを示している。図2(b)に示す撮像面位相差AF対応の画素構成では、図2(a)に示す撮像面位相AF非対応の画素構成での1画素(実線で囲む)に相当する画素内に、図の水平方向に2分割された2つのフォトダイオード(小さいA,Bを付す)が設けられている。なお、図2(b)に示した画素の分割方法は例に過ぎず、図の垂直方向に分割したり、水平および垂直方向に2分割ずつ(計4分割)したりしてもよい。また、同じ撮像素子内において互いに異なる分割方法で分割された複数種類の画素が含まれてもよい。
撮像素子201から読み出されたそれぞれアナログ電気信号としての撮像信号および一対の位相差像信号は、A/D変換部202に入力される。A/D変換部202は、リセットノイズを除去するための相関二重サンプリング、ゲインの調節およびアナログ電気信号のデジタル化を行う。A/D変換部202は、撮像信号を画像処理部203に、一対の位相差像信号をAF信号処理部204にそれぞれ出力する。
AF信号処理部204は、A/D変換部202から出力された一対の位相差像信号に対する相関演算を行って像ずれ量および信頼度情報(2像一致度、2像急峻度、コントラスト情報、飽和情報、キズ情報等)を算出する。さらにAF信号処理部204は、算出した像ずれ量からデフォーカス量を算出し、該デフォーカス量と信頼度情報をシステム制御部209に出力する。相関演算の詳細については、図6から図9を用いて後述する。撮像素子201およびAF信号処理部204によりデフォーカス検出手段が構成される。
次に、本実施例のカメラ本体200における制御手段としてのシステム制御部209が行う処理について説明する。まず、図3のフローチャートを用いて、システム制御部209が実行する撮像に関する処理全体について説明する。CPU等を含むコンピュータにより構成されるシステム制御部209は、コンピュータプログラムである撮像プログラムに従って本処理を実行する。以下の説明において、「S」はステップを意味する。
まずS301では、システム制御部209は、AE処理部211に画像処理部203からの出力に対してAE処理を行わせてS302に進む。
S302では、システム制御部209は、SW1(217)の状態を調べ、ONであればS303に進み、そうでなければS301に進む。
S303では、システム制御部209は、AF信号処理部204とともに後述するAF処理を行い、撮像光学系のデフォーカス量が後述する合焦判定幅内(合焦判定範囲内)になるようにフォーカスレンズ103の駆動を制御する。その後S304に進む。
S304では、システム制御部209は、SW1(217)の状態を調べ、ONであればS305に進み、そうでなければS301に進む。
S305では、システム制御部209は、SW2(218)の状態を調べ、ONであればS306に進み、そうでなければS304に進む。
S306では、システム制御部209は、撮像処理を行い、その後S301に戻る。
図4のフローチャートを用いて、上述したS303でシステム制御部209がAF信号処理部204とともに実行するAF処理(焦点調節制御方法)について説明する。システム制御部209およびAF信号処理部204は、上述した撮像プログラムの一部である焦点調節制御プログラムに従って本処理を実行する。
まずS401において、システム制御部209は、AF処理に関する初期化を行う。
次にS402では、システム制御部209は、AF信号処理部204に焦点検出処理を行わせ、AF信号処理部204が算出したデフォーカス量と信頼度情報を取得する。そして、S403に進む。焦点検出処理は、撮像素子201から撮像用画素信号およびAF用信号が読み出されるフレーム(以下、撮像フレームという)ごとに行われる。焦点検出処理の詳細については後述する。
S403では、システム制御部209は、S402で取得した信頼度情報が示す信頼度が予め設定された「信頼度閾値2」より高いか否かを判定し、そうであればS404に進み、そうでなければS413に進む。「信頼度閾値2」は、信頼度がこの信頼度閾値2未満であるときは、デフォーカス量の精度は保証できないが、被写体のピント位置方向は保証できることを示す閾値である。
S404では、システム制御部209は、S402で取得したデフォーカス量(以下、検出デフォーカス量という)が予め設定された合焦判定幅である「Def量閾値2」より小さいか否かを判定する。検出デフォーカス量がDef量閾値2以下である場合は、ピント位置が第2の合焦判定範囲内にある。検出デフォーカス量がDef量閾値2より小さければS405に進み、そうでなければS412に進む。「Def量閾値2」は、検出デフォーカス量がこのDef量閾値2以下であれば、その検出デフォーカス量に従ってフォーカスレンズ103を所定回数(例えば3回)駆動することで、第2の合焦状態が得られることを示す閾値である。第2の合焦状態とは、被写体が撮像光学系の焦点深度内に入り、被写体に高精度にピントが合った状態である。Def量閾値2は、例えば焦点深度の5倍の値に設定する。
S405では、システム制御部209は、フォーカスレンズ103が停止状態であるか否かを判定し、そうであればS406に進み、そうでなければS410に進む。
S406では、システム制御部209は、S402で取得した信頼度情報に示される信頼度が予め設定された「信頼度閾値1」より高いか否かを判定し、そうであればS407に進み、そうでなければS410に進む。「信頼度閾値1」は、信頼度がこの信頼度閾値1以上であれば、検出デフォーカス量のばらつきが所定範囲内(例えば焦点深度内)となることを示す閾値である。
S407では、システム制御部209は、検出デフォーカス量が予め設定された合焦判定幅である「Def量閾値1」より小さいか否かを判定し、そうであればS408に進み、そうでなければS409に進む。検出デフォーカス量がDef量閾値1より小さい場合は、ピント位置が第1の合焦判定範囲にある。「Def量閾値1」は、検出デフォーカス量がこのDef量閾値1以下であれば、第1の合焦状態が得られることを示す閾値であり、Def量閾値2よりも小さい値をとる。第1の合焦状態とは、第2の合焦状態より検出デフォーカス量が小さく、実用上許容される合焦精度が得られている状態を意味する。
このように本実施例では、合焦判定幅の端の値であるDef量閾値として、「Def量閾値1」と「Def量閾値2」を用いる。さらに本実施例では、後に図14を用いて説明するように、第1の合焦判定幅である「Def量閾値1」を検出デフォーカス量のばらつきの大きさ(ばらつき度)に応じて複数の合焦判定幅(1〜4)間で変更する。
S408では、システム制御部209は、撮像光学系が合焦状態にあると判定して本処理を終了する。
一方、S409では、システム制御部209は、検出デフォーカス量からフォーカスレンズ103の駆動量(以下、フォーカス駆動量という)を算出し、該フォーカス駆動量を含むフォーカス指令をレンズコントローラ105に送信する。レンズコントローラ105は、フォーカス指令に含まれるフォーカス駆動量だけフォーカスレンズ103が駆動されるようにフォーカスモータ104の駆動を制御する。この後、システム制御部209はS402に戻る。
上述したS405〜S409の処理を行うことにより、S402で取得した信頼度が「信頼度閾値1」よりも高い場合に、フォーカスレンズ103を停止させた状態で再度、デフォーカス量を算出(検出)することができる。
S410では、システム制御部209は、検出デフォーカス量の所定割合分に対するフォーカス駆動量(以下、部分フォーカス駆動量という)を算出し、該部分フォーカス駆動量を含むフォーカス指令をレンズコントローラ105に送信する。所定割合については後述する。レンズコントローラ105は、フォーカス指令に含まれる部分フォーカス駆動量だけフォーカスレンズ103が駆動されるようにフォーカスモータ104の駆動を制御する。
次にS411では、システム制御部209は、レンズコントローラ105に対してフォーカスレンズ103の停止を指示し、S402に戻る。
また、S412では、システム制御部209は、S410と同様に、S402で取得したデフォーカス量の所定割合分に対する部分フォーカス駆動量を算出し、該部分フォーカス駆動量を含むフォーカス指令をレンズコントローラ105に送信する。レンズコントローラ105は、フォーカス指令に含まれる部分フォーカス駆動量だけフォーカスレンズ103が駆動されるようにフォーカスモータ104の駆動を制御する。そして、システム制御部209は、S402に戻る。
S410およびS421にいう「所定割合」は、例えば8割のように、検出デフォーカス量に対してフォーカスレンズ103の駆動量が少なくなる割合である。また、S410およびS421でのフォーカスレンズ103の駆動速度は、次の撮像フレームでの焦点検出処理が完了するまでに部分フォーカス駆動量分のフォーカスレンズ103の駆動が完了する駆動速度よりも遅く設定される。これにより、検出デフォーカス量が正しくない場合においてフォーカスレンズ103が被写体に対して合焦状態が得られる位置(合焦位置)を通過してしまうことを防ぐことができる。また、S412からS402に戻る場合は、フォーカスレンズ103を停止させずに駆動しながら次の焦点検出処理を行う(すなわちオーバーラップAF制御を行う)ことができる。
S413では、システム制御部209は、非合焦条件が満足されたか否かを判定し、そうであればS414に進み、そうでなければS415に進む。非合焦条件とは、ピントを合わせるべき被写体が存在しないと判定するための条件である。例えば、フォーカスレンズ103の全可動範囲での駆動が完了して、つまりはフォーカスレンズ103が遠側と近側の両方の可動端を検出して初期位置に戻ったという条件である。
そしてS414では、システム制御部209は、撮像光学系が非合焦状態であると判定して本処理を終了する。
S415では、システム制御部209は、フォーカスレンズ103が遠側または近側の可動端に到達したか否かを判定し、そうであればS416に進み、そうでなければS417に進む。
S416では、システム制御部209は、フォーカスレンズ103の駆動方向を反転させてS402に戻る。
S417では、システム制御部209は、フォーカスレンズ103を所定方向に駆動させてS402に戻る。ここでのフォーカスレンズ103の駆動速度は、例えばデフォーカス量が検出できるようになった時点で合焦位置を通り過ぎることのないような駆動速度の範囲で最も速い速度が設定される。
次に、上述したS402でシステム制御部209およびAF信号処理部204が実行する焦点検出処理について図5のフローチャートを用いて説明する。まず、S501では、システム制御部209は、撮像素子201の撮像面内においてユーザにより選択された又は所定のアルゴリズムに従って選択した範囲の焦点検出領域(以下、AF領域という)を設定し、S502に進む。
S502では、AF信号処理部204は、撮像素子201の撮像面のうちS501で設定されたAF領域に含まれる画素からAF用信号(A信号およびB信号)を取得してS503に進む。
S503では、AF信号処理部204は、S502で取得したAF用信号に対して垂直方向に行加算平均処理を行い、一対の位相差像信号を生成する。この垂直行加算平均処理によって一対の位相差像信号におけるノイズの影響を軽減することができる。
S504では、AF信号処理部204は、S503での垂直行加算平均処理により生成された一対の位相差像信号から所定の周波数帯域の信号成分を取り出す複数種類のフィルタ処理のうち1つを行い、S505に進む。
S505では、AF信号処理部204は、S504でのフィルタ処理を経た一対の位相差像信号の相関量を算出して、S506に進む。
S506では、AF信号処理部204は、S505において算出した相関量から相関変化量を算出して、S507に進む。
S507では、AF信号処理部204は、S505において算出した相関変化量から像ずれ量を算出して、S508に進む。
S508では、AF信号処理部204は、S507で算出した像ずれ量の信頼度を評価して、S509に進む。
S509では、AF信号処理部204は、像ずれ量をデフォーカス量に変換して検出デフォーカス量をシステム制御部209に出力する。そして、S510に進む。
S510では、AF信号処理部204は、S504での複数種類のフィルタ処理の全てが完了したか否かを判定し、そうであればS511に進み、そうでなければS504に進む。AF信号処理部204は、S504での複数種類のフィルタ処理として、例えば垂直行加算平均処理により生成された一対の位相差像信号に対してそれぞれ帯域が異なる複数の周波数帯域のバンドパスフィルタによる処理を水平方向に行う。
AF信号処理部204は、S510において、S504〜S509の一連の処理を複数の周波数帯域の全てに対して行ったか否かを判定し、そうであればS511に進み、そうでなければS504に戻る。
S511では、S504〜S509の一連の処理によって算出された複数の周波数帯域のそれぞれに対応した複数の検出デフォーカス量の中から少なくとも1つを選択して焦点検出処理を終了する。
次に、図5で説明した焦点検出処理について詳細に説明する。図6には、焦点検出処理において撮像素子201の画素アレイ601上でのAF領域602の例を示している。AF領域602の両側のシフト領域603は、相関演算に必要な領域である。このため、AF域602とシフト領域603とを合わせた領域604が相関演算に必要な画素領域である。図中のp,q,s,tはそれぞれ、水平方向(x軸方向)での座標を表し、pとqはそれぞれ画素領域704の始点と終点のx座標を、sとtはそれぞれAF領域602の始点と終点のx座標を示している。
図7(a)は、図6に示したAF領域602に含まれる複数の画素から取得した一対の位相差像信号の例を示す。実線が一方の位相差像信号701を示し、以下ではA像信号という。また、破線が他方の位相差像信号702を示し、以下ではB像信号という。図7(a)はシフト前のA像およびB像信号701,702を示し、図7(b),(c)はそれぞれA像およびB像信号701,702をそれぞれ、図7(a)の位置からプラス方向およびマイナス方向にシフトした状態を示している。これらA像およびB像信号701,702の相関量を算出する際には、A像およびB像信号701,702の両方を矢印の方向に1ビットずつシフトする。
次に、相関量の算出方法について説明する。まず、図7(b),(c)に示すように、A像およびB像信号701,702をそれぞれ1ビットずつシフトして、A像およびB像信号701,702の差の絶対値の和を算出する。シフト量をiとし、マイナス方向の最大シフト量をp−sとし、プラス方向の最大シフト量をq−tとし、xをAF領域602の開始座標とし、yをAF領域602の終了座標とする。このとき、相関量CORは以下の式(1)によって算出することができる。
図8(a)には、シフト量と相関量CORとの関係の例を示している。横軸はシフト量を示し、縦軸は相関量CORを示す。シフト量とともに変化する相関量801における極値付近802,803のうち、より小さい相関量に対応するシフト量においてA像およびB像信号701,702の一致度が最も高くなる。
次に、相関変化量の算出方法について説明する。図8(a)に示した相関量801の波形における1シフトおきの相関量の差を相関変化量として算出する。シフト量をiとし、マイナス方向の最大シフト量をp−sとし、プラス方向の最大シフト量をq−tとすると、相関変化量ΔCORは以下の式(2)によって算出することができる。
図9(a)には、シフト量と相関変化量ΔCORとの関係の例を示している。横軸はシフト量を示し、縦軸は相関変化量ΔCORを示す。シフト量とともに変化する相関変化量901は、902,903の部分でプラスからマイナスになる。相関変化量が0となる状態をゼロクロスと呼び、A像およびB像信号701,702の一致度が最も高くなる。したがって、ゼロクロスを与えるシフト量が像ずれ量となる。
図9(b)には、図9(a)中の902で示した部分を拡大して示す。904は相関変化量901の一部分である。この図9(b)を用いて像ずれ量PRDの算出方法について説明する。
ゼロクロスを与えるシフト量(k−1+α)は、整数部分β(=k−1)と小数部分αとに分けられる。小数部分αは、図中の三角形ABCと三角形ADEとの相似の関係から、以下の式(3)によって算出することができる。
整数部分βは、図9(b)から以下の式(4)によって算出することができる。
β=k−1 (4)
そして、αとβの和(α+β)から像ずれ量PRDを算出することができる。
図9(a)に示したように相関変化量ΔCORのゼロクロスが複数存在する場合は、その付近での相関変化量ΔCORの変化の急峻性がより大きい方を第1のゼロクロスとする。この急峻性はAFの行い易さを示す指標であり、値が大きいほど精度良いAFを行い易い点であることを示す。急峻性maxderは、以下の式(5)によって算出することができる。
このように、本実施例では、相関変化量のゼロクロスが複数存在する場合は、その急峻性によって第1のゼロクロスを決定し、この第1のゼロクロスを与えるシフト量を像ずれ量とする。
次に、S508でAF信号処理部204が行う信頼度評価処理について、図10のフローチャートを用いて説明する。S1001では、AF信号処理部204は、maxderを撮像条件(センサーゲインおよび読み出し行加算数等)や被写体条件(コントラスト等)で正規化する。maxderを正規化する理由は、信頼度の精度を高めるためである。
次にS1002では、AF信号処理部204は、検出デフォーカス量が所定のデフォーカス量閾値より大きいか否かを判定する。AF信号処理部204は、検出デフォーカス量がデフォーカス量閾値より大きいときはS1003に進んで信頼度を0とする。また、検出デフォーカス量がデフォーカス量閾値以下のときはS1004に進み、S1001で正規化したmaxderが正規化maxder閾値以下か否かを判定する。
AF信号処理部204は、正規化maxderが正規化maxder閾値以下のときは、S1003に進み信頼度を0として、本処理を終了する。信頼度0は、検出デフォーカス量の信頼度がきわめて低いことを示す。
本実施例では、デフォーカス量閾値とmaxder閾値をフィルタごとに設定している。デフォーカス量閾値は各フィルタのデフォーカス量検出能力(総シフト量の観点から焦点検出可能な限界距離)に応じて設定する。また、低輝度時や低コントラスト被写体に対する焦点検出処理のように信頼度を誤りやすい場面では、正規化maxderが小さくなる。このため、正規化maxder閾値を設定することで誤った信頼度を出力することを防止している。
S1004で正規化maxderが正規化maxder閾値より大きいと判定したAF信号処理部204はS1005に進み、正規化maxderに基づいて像ずれ量の標準偏差を推定する。図13に示すように、正規化maxderと像ずれ量の標準偏差との間には負の相関があるため、正規化maxderから像ずれ量の標準偏差を推定することができる。
次にS1006では、AF信号処理部204は、像ずれ量の標準偏差に所定の換算係数を乗算して、検出デフォーカス量の標準偏差を算出する。ここで使用する換算係数は、像ずれ量から検出デフォーカス量を算出する際に使用した換算係数と同様に、絞り102の絞り値、撮像光学系の射出瞳距離、撮像素子201の個体情報および撮像面上におけるAF領域の座標によって決定される値である。このように、検出デフォーカス量のばらつき度を示す情報としての標準偏差は、像ずれ量、すなわち被写体像を光電変換して得られた一対の位相差像信号のずれ量から得られる。
また、検出デフォーカス量の標準偏差に対しても、絞り値Fと許容錯乱円δで除算して正規化する。maxderに基づいて信頼度(つまりは検出デフォーカス量の標準偏差)を評価する場合は、上記換算係数の個数分の閾値を設定する必要がある。このため、本実施例では、大量の閾値データをROM137に保持しておかなくても、より所望の閾値を設定することができる。また、絞り値Fによって正規化しているため、絞り102の状態に関係なく閾値を設定することが可能である。
続くS1400では、AF信号処理部204は、合焦判定幅を設定する。このステップでの合焦判定幅の設定処理については後述する。
次にS1007以降において、AF信号処理部204は、検出デフォーカス量の標準偏差に応じて該検出デフォーカス量の信頼度を評価する。本実施例では、検出デフォーカス量の標準偏差の閾値を3段階(THRESHOLD1、THRESHOLD2、THRESHOLD3)設定している。THRESHOLD1、THRESHOLD2およびTHRESHOLD3は、
THRESHOLD3<THRESHOLD2<THRESHOLD1
という関係を有する。また、信頼度N(N=0〜3)は数字が小さいほど信頼度がより低いことを意味する。
まずS1007において検出デフォーカス量の標準偏差がTHRESHOLD1より大きい場合は、AF信号処理部204はS1003に進み、検出デフォーカス量の信頼度を信頼度0と判定する。また、S1008において検出デフォーカス量の標準偏差がTHRESHOLD1以下で、かつTHRESHOLD2より大きい場合は、AF信号処理部204はS1009に進み、信頼度を信頼度1と判定する。
さらに、S1010において検出デフォーカス量の標準偏差がTHRESHOLD2以下であり、かつTHRESHOLD3より大きい場合は、AF信号処理部204はS1011に進み、信頼度を信頼度2と判定する。検出デフォーカス量の標準偏差がTHRESHOLD3以下である場合は、AF信号処理部204はS1012に進み、信頼度を信頼度3と判定する。
以上が信頼度を評価する基本的な処理であるが、信頼度の評価方法は3種類のフィルタの役割ごとに変えてもよい。図15は、各フィルタから出力できる信頼度を示しており、○が記された条件は出力できる信頼度を意味し、×が記された条件は出力しない信頼度を意味する。低域フィルタは精度が低いため、合焦可能であることを意味する信頼度3は出力しない。また、高域フィルタでは、総シフト量が小さく大ボケ時の被写体に対して焦点検出を行えないため、信頼度1は出力しない。このように処理することで、誤った信頼度を出力する可能性を軽減することができる。
撮像面位相差AFでは、バンドパスフィルタの周波数帯域と被写体の周波数帯域との相違や、撮像光学系を構成するレンズを保持するレンズ枠によるAF瞳のケラレの影響がデフォーカス量に応じて変化する。このため、撮像面位相差AFでは、特にフォーカスレンズ103の実際のデフォーカス量に対して、検出されるデフォーカス量が比例関係(線形性)から外れる場合がある。この検出デフォーカス量のずれは、特に検出デフォーカス量が大きい場合に発生しやすく、被写体の空間周波数および検出デフォーカス量に応じて変化するため、被写体やフォーカスレンズ103の位置ごとにこのずれに対する補正を行うことは困難である。
一方、AF処理に要する時間やAF処理における動作品位を考えると、フォーカスレンズ103の駆動方向の反転を極力少なくする(無くする)ことが望ましい。このため、本実施例では、前述したように、デフォーカス量が大きい状態からのAFでは検出デフォーカス量にそのまま対応するフォーカス駆動量を設定するのではなく、検出デフォーカス量に対して1以下の係数を乗じて部分フォーカス駆動量を設定する。これにより、フォーカスレンズ103が合焦位置を通過することで駆動方向の反転が必要となることを防止し、スムーズなAFを実現することが可能となる。
ただし、前述したように、検出デフォーカス量のずれはデフォーカス量が大きい状態で発生しやすく、デフォーカス量が小さい状態では線形性は保たれる。このように検出デフォーカス量の線形性が保たれる条件では、検出デフォーカス量にそのまま対応するフォーカス駆動量を設定して、より高速なAFを実現することが望ましい。
本実施例では、1フレームでのフォーカス駆動量として、検出デフォーカス量にそのまま対応するフォーカス駆動量が設定可能な検出デフォーカス量の範囲を第1のデフォーカス範囲とし、それより大きい検出デフォーカス量の範囲を第2のデフォーカス範囲とする。検出デフォーカス量が第1のデフォーカス範囲にあれば、合焦状態が得られたか否かを判定するための第1の合焦判定幅を広げても、実用上許容される合焦状態(第1の合焦状態)は得られる。一方、検出デフォーカス量が第2のデフォーカス範囲にある場合は、合焦判定幅を狭くして精度の高い合焦状態(第2の合焦状態)が得られるまでフォーカスレンズ103を駆動することが望ましい。
また本実施例では、検出デフォーカス量が第1のデフォーカス範囲にある場合により高速なAFを実現するために、1フレームでのフォーカス駆動量のみならず、第1の合焦判定幅である「Def量閾値1」も被写体に応じて変更する。
次に、「Def量閾値1」について、図11(a),(b)および図12(a),(b)を用いて説明する。本実施例は、撮像する被写体(つまりは被写体像)に応じて「Def量閾値1」である合焦判定幅を適切に設定(変更)することで、AF処理により合焦状態が得られるまでに要する時間を短縮させる。図11(a),(b)および図12(a),(b)のいずれにおいても、実用上許容される合焦精度としては、デフォーカス量が合焦基準幅としての±1Fδ以内とする。
図11(a),(b)は、被写体によらず合焦判定幅(±0.25Fδ)を一定とする従来方式を示している。図11(a)は、被写体が高コントラストであり、検出デフォーカス量のばらつき度(以下、デフォーカス検出ばらつきという)が±0.25Fδとなる場合の該デフォーカス検出ばらつきと第1の合焦判定幅との関係を示している。また、図11(b)は、被写体が低コントラストであり、デフォーカス検出ばらつきが±0.75Fδとなる場合の該デフォーカス検出ばらつきと第1の合焦判定幅との関係を示している。
撮像面位相差AFにおけるデフォーカス量の検出誤差としては、前述したような帯域ずれ等の種々の要因から生じるオフセット誤差や、デフォーカス量を繰り返して検出したときの検出ごとのばらつき等がある。図11(a)に示す従来方式では、デフォーカス検出ばらつきが小さい高コントラスト被写体においても、デフォーカス検出ばらつきが大きい低コントラスト被写体と同じ合焦判定幅を使用している。このため、上述した実用上許容される合焦精度より厳しく合焦状態を判定している。
図4のS407にて説明したように、検出デフォーカス量が合焦判定幅(Def量閾値1)以内にない場合は、再度、フォーカスレンズの駆動が行われる。合焦状態の近傍でのフォーカスレンズの駆動は、デフォーカス量の検出精度を確保するために、フォーカスレンズが停止しているフレームで取得された検出デフォーカス量に基づいて行われることが望ましい。このため、デフォーカス量を検出するために、フォーカスレンズの停止を判定するためのフレーム、レンズ停止後の撮像フレームおよび撮像フレームで得られた一対の位相差像信号からデフォーカス量を演算するフレーム等が必要である。これらの複数のフレーム分の期間の間、フォーカスレンズは動けず、フォーカスレンズを合焦位置まで移動させるAF処理が遅延する。
図12(a),(b)は、本実施例における合焦判定幅を示す。本実施例では、被写体に応じたデフォーカス検出ばらつき、つまりは焦点検出処理内(図5のS1006)で取得される検出デフォーカス量の標準偏差に応じて、「Def量閾値1」としての合焦判定幅を設定する。
図12(a)は、被写体が高コントラストであり、デフォーカス検出ばらつきが±0.25Fδとなる場合の該デフォーカス検出ばらつきと合焦判定幅との関係を示している。また、図12(b)は、被写体が低コントラストであり、デフォーカス検出ばらつきが±0.75Fδとなる場合の該デフォーカス検出ばらつきと合焦判定幅との関係を示している。
図12(a)では、デフォーカス検出ばらつきを適切に考慮し、実用上許容される合焦精度を確保しつつ、合焦判定幅(Def量閾値1)を広げる。これにより、合焦状態の近傍において複数回のフォーカスレンズ103の駆動が行われる頻度を少なくする。
図14のフローチャートは、図10のS1400においてAF信号処理部204が実行する合焦判定幅の設定処理を示している。本実施例では、信頼度の判定と同様に、合焦判定幅を段階的に設定する。ステップS1401において、AF信号処理部204は、S1006で算出した検出デフォーカス量の標準偏差を読み込む。
続いてS1402では、AF信号処理部204は、検出デフォーカス量の標準偏差がDef1_Th1より小さいか否かを判定し、そうである場合はS1403に進み、合焦判定幅(Def量閾値1)を高コントラスト被写体用の合焦判定幅1に設定する。検出デフォーカス量の標準偏差がDef1_Th1以上でDef1_Th2より小さい場合は、AF信号処理部204はS1405に進み、合焦判定幅を中コントラスト被写体用の合焦判定幅2に設定する。
また、検出デフォーカス量の標準偏差がDef1_Th2以上であり、かつDef1_Th3より小さい場合は、AF信号処理部204はS1407に進み、合焦判定幅を低コントラスト被写体用の合焦判定幅3に設定する。検出デフォーカス量の標準偏差がDef1_Th3以上である場合は、AF信号処理部204は、S1408に進み、合焦判定幅を超低コントラスト被写体用の合焦判定幅4に設定する。ここで、合焦判定幅の大小関係を以下に示す。
合焦判定幅4<合焦判定幅3<合焦判定幅2<合焦判定幅1
このように、本実施例では、被写体のコントラストが高く、デフォーカス検出ばらつきが小さいほど、合焦判定幅を広く設定する。これにより、少なくとも実用上許容される合焦精度を確保しつつ、AF処理により合焦状態が得られるまでに要する時間を短縮することができる。
上記実施例では、合焦判定幅を段階的に変更する場合について説明したが、検出デフォーカス量の標準偏差と合焦基準幅との差分に応じて合焦判定幅が連続的に変更されるようにしてもよい。
また、上記実施例では検出デフォーカス量のばらつき度を示す情報として標準偏差を用いたが、分散等、他のばらつき度を示す情報を用いてもよい。また、上記実施例では、デフォーカス量のばらつき度を一対の位相差像信号を用いて算出する場合について説明したが、被写体像を光電変換して得られる他の信号を用いてばらつき度を取得してもよい。例えば、撮像素子201からの出力により生成される撮像信号から被写体像のコントラストを示す情報を生成し、該コントラストの高低を示す情報からデフォーカス量のばらつき度を推定してもよい。
また、上記実施例ではフォーカスレンズ光軸方向に駆動してAFを行う場合について説明したが、撮像素子を光軸方向に駆動してAFを行う場合にも、上記実施例を適用することができる。
さらに上記実施例では、レリーズボタンの半押し操作(SW1のON)から全押し操作(SW2のON)までの間のAF処理において合焦判定幅をデフォーカス検出ばらつきに応じて変更する場合について説明した。しかし、レリーズボタンの半押し操作から全押し操作までが一気に行われる等の特定条件を満足する場合に限って、合焦判定幅をデフォーカス検出ばらつきに応じて変更するようにしてもよい。これにより、ユーザが求める速写性を確保することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。