図1は、本実施例のカメラシステム1のブロック図である。カメラシステム1は、レンズユニット10およびカメラ本体(撮像装置)20を有する。レンズユニット10は、カメラ本体20に着脱可能に取り付けられている。レンズユニット10は、レンズ全体の動作を統括制御するレンズ制御部106を有する。カメラ本体20は、カメラシステム1全体の動作を統括するカメラ制御部(焦点調節手段)214を有する。レンズ制御部106とカメラ制御部214は、レンズマウントに設けられた端子を通じて相互に通信可能である。なお、本実施例では、レンズユニット10はカメラ本体20に着脱可能に取り付けられているが、本発明はこれに限定されない。レンズユニット10は、カメラ本体20に設けられていてもよい。
以下、レンズユニット10の構成について説明する。レンズユニット10は、固定レンズ101、絞り102、フォーカスレンズ103、絞り駆動部104、フォーカスレンズ駆動部105、レンズ制御部106およびレンズ操作部107を有する。固定レンズ101、絞り102およびフォーカスレンズ103は、撮影光学系を構成する。絞り102は、絞り駆動部104によって駆動され、撮像素子201への入射光量を制御する。フォーカスレンズ103は、フォーカスレンズ駆動部105によって駆動される。フォーカスレンズ103の位置に応じて、撮像光学系の合焦距離が変化する。レンズ制御部106は、カメラ制御部214から受信した制御命令や制御情報に応じて絞り駆動部104やフォーカスレンズ駆動部105を制御するとともに、レンズ制御情報をカメラ制御部214に送信する。絞り駆動部104は、レンズ制御部106によって制御され、絞り102の開口量を決定する。フォーカスレンズ駆動部105は、レンズ制御部106によって制御され、フォーカスレンズ103の位置を決定する。レンズ操作部107は、MFによるフォーカスレンズ103の位置調整など、ユーザがレンズユニット10の動作に関する設定を行うための入力デバイス群である。レンズ操作部107が操作された場合、レンズ制御部106が操作に応じた制御を行う。
以下、カメラ本体20の構成について説明する。撮像素子201は、CCDやCMOSセンサにより構成される。レンズユニット10の撮影光学系を通過した光束は、撮像素子201の受光面上に結像し、撮像素子201に配列された画素に設けられたフォトダイオードにより、入射光量に応じた信号電荷に変換される。各フォトダイオードに蓄積された信号電荷は、カメラ制御部214の指令に従ってタイミングジェネレータ216が出力する駆動パルスより、信号電荷に応じた電圧信号として撮像素子201から順次読み出される。
撮像素子201の各画素は、2つ(一対)のフォトダイオードA、Bと、一対のフォトダイオードA、Bに対して設けられた1つのマイクロレンズと、により構成されている。撮影光学系の異なる射出瞳領域を通過した一対の光束はそれぞれ、マイクロレンズにより一対のフォトダイオードA、B上に入射する。一対のフォトダイオードA、B上には一対の光学像が形成され、一対のフォトダイオードA、Bは後述するAF用信号に用いられる一対の画素信号(A信号およびB信号)を生成する。また、一対のフォトダイオードA、Bの出力を加算することで、撮像用信号(A+B信号)を得ることができる。複数の画素から出力された複数のA信号と複数のB信号をそれぞれ合成することで、撮像面位相差検出方式によるAF(以下、撮像面位相差AFという)に用いられるAF用信号(言い換えれば、焦点検出用信号)としての一対の像信号が得られる。
AF信号処理部(算出手段)204は、一対の像信号に対する相関演算を行って、一対の像信号のずれ量である位相差(以下、像ずれ量という)を算出し、さらに像ずれ量から撮影光学系のデフォーカス量(およびデフォーカス方向)を算出する。
図2(a)は撮像面位相差AFに対応していない(非対応の)画素構成を、図2(b)は撮像面位相差AFに対応の画素構成を示している。いずれの図においても、ベイヤー配列が用いられており、Rは赤のカラーフィルタを、Bは青のカラーフィルタを、Gr,Gbは緑のカラーフィルタを示している。図2(b)の画素構成では、図2(a)の画素構成における1画素に相当する画素内に、図の水平方向へ2分割された2つのフォトダイオードA,Bが設けられている。なお、図2(b)に示した画素の分割方法は一例に過ぎず、図の垂直方向へ分割されていてもよい。また、同じ撮像素子内に異なる分割方法で分割された複数種類の画素が含まれていてもよい。
CDS/AGC/ADコンバータ202は、撮像素子201から読み出されたAF用信号および撮像用信号に対して、リセットノイズを除去するための相関二重サンプリング、ゲイン調節およびAD変換を行う。上記処理が実行された撮像用信号およびAF用信号はそれぞれ、画像入力コントローラ203およびAF信号処理部204に出力される。
画像入力コントローラ203は、CDS/AGC/ADコンバータ202から出力された撮像用信号を、バス21を介してSDRAM211に画像信号として格納する。SDRAM211に格納された画像信号は、バス21を介して表示制御部206によって読み出され、表示部207に表示される。また、画像信号の記録を行うモードでは、SDRAM211に格納された画像信号は、記録媒体制御部209によって半導体メモリ等の記録媒体210に記録される。
ROM212は、カメラ制御部214が実行する制御プログラムや処理プログラムおよびこれらの実行に必要な各種データ等を格納している。フラッシュROM213は、ユーザにより設定されたカメラ本体20の動作に関する各種設定情報等を格納している。
カメラ制御部214は、マイクロコンピュータにより構成され、ROM212に記憶されたコンピュータプログラムを実行することで、カメラ本体20内の各部やレンズ制御部106と情報をやり取りしながらこれらを制御する。カメラ制御部214は、AF信号処理部204により算出された像ずれ量や信頼性、およびレンズユニット10とカメラ本体20の状態を示す情報に基づいて、必要に応じてAF信号処理部204の設定を変更する。例えば、像ずれ量が所定量以上である場合に相関演算を行う領域を広く設定したり、一対の像信号のコントラストに応じてバンドパスフィルタの種類を変更したりする。また、ユーザが設定したAFに関するモードに応じて、相関演算を行うパラメータや相関演算を行う回数を変更したりする。さらに、カメラ制御部214は、レンズユニット10(レンズ制御部106)に対する制御命令やカメラ本体20の情報をレンズ制御部106に送信したり、レンズユニット10の情報をレンズ制御部106から取得したりする。
また、カメラ制御部214は、使用デフォーカス量選択部215を有する。使用デフォーカス量選択部215は、後述するように、AF信号処理部204により算出された複数のデフォーカス量から実際にレンズ制御部106を通じてフォーカスレンズ103の駆動を制御するためのデフォーカス量を選択する。例えば、A信号およびB信号に掛けられるバントパスフィルタの帯域を変更することで、AF信号処理部204により複数の像ずれ量が算出される場合について説明する。バンドパスフィルタの帯域が高周波であるほど被写体への合焦近傍においてのAF精度は高まるが、ピントがボケた状態での像ずれ量の算出能力は低下する。一方、バンドパスフィルタの帯域が低周波であるほどAF精度は低下するが、ピントがボケた状態での像ずれ量の算出能力は高くなる。AF信号処理部204により算出された異なる複数の像ずれ量に基づく複数のデフォーカス量から、状況に適したデフォーカス量を使用デフォーカス量選択部215が選択することでより好適なAF制御が可能になる。
AF信号処理部204は、飽和度判定部205を有する。飽和度判定部205は、AF信号処理部204により算出される複数の像ずれ量ごとの複数の飽和度を検出する。使用デフォーカス量選択部215は、飽和度判定部205により検出された飽和度に基づいて、焦点調節用のデフォーカス量を選択する。
高輝度な被写体を撮影した場合などにA信号およびB信号が飽和してしまうと、AF信号処理部204は適切に像ずれ量を算出できなくなることがあり、さらには像ずれ量そのものを算出できなくなることもある。図3は、飽和していない被写体(主被写体)と飽和被写体のAF領域(焦点調節領域)内の係り方に依るA信号およびB信号の例を示す図である。図3(a)では、飽和していない被写体の信号のみがA信号およびB信号として検出でき、飽和していない被写体の像ずれ量を適切に検出できる。図3(b)では、飽和していない被写体の多くを飽和被写体が覆い隠しており、飽和していない被写体のA信号およびB信号の一部しか検出できない。そのため、飽和していない被写体のコントラストの度合いにもよるが、図3(a)の場合に比べて像ずれ量の算出精度が低下してしまう懸念がある。図3(c)では、飽和していない被写体を飽和被写体が完全に覆い隠されており、A信号およびB信号がともに飽和している。そのため、飽和していない被写体の像ずれ量を算出することができず、AFを行うことができない。飽和の影響が大きいために十分なAF精度が得られないと判定される場合、カメラ制御部214はAFの実行が不可能である場合の制御を行う必要がある。
像ずれ量の種類として、相関演算を行う視野範囲が異なるものを演算する場合、帯域変更のための相関演算前に行うA信号およびB信号の水平方向の画素加算数(水平画素加算数)が異なる場合、およびバンドパスフィルタのタップ数が異なる場合などがある。これらのパラメータが異なる場合、A信号およびB信号の飽和画素の係り方によっては、飽和の影響が大きい像ずれ量と、小さい像ずれ量が存在することがある。
図4は、視野範囲、視野範囲内の画素で使用する水平加算画素またはフィルタ画素の領域、および飽和被写体の係り方のパターンを示す図である。図4(a)は、視野範囲が異なる場合を比較したもので、視野範囲が狭い場合には視野内に飽和被写体が完全に含まれているので相関演算による像ずれ量の算出は困難であるが、視野範囲が広い場合には飽和被写体以外で像ずれ量を算出できる可能性がある。図4(b)は、視野範囲が異なる場合を比較したもので、図4(a)と飽和被写体の係り方が異なる。視野範囲が広い場合も狭い場合もともに飽和被写体が係っているが、比率で比較した場合には視野範囲が狭い場合のほうが飽和被写体の割合が少ない。図4(c)は、視野範囲は同じだが、水平画素加算数、またはバンドパスフィルタのタップ数が異なる場合である。図4(c)では、上部のほうが、水平画素加算数が多い、またはバンドパスフィルタのタップ数が多い。水平画素加算数が多い、またはバンドパスフィルタのタップ数が多いほうが、飽和被写体の係る割合が比較的少ない。このように、飽和被写体を捉えている場合でも、AF信号処理部204で算出された複数の像ずれ量のうち、飽和度判定部205により検出された飽和度によって飽和度合いの影響が小さいと判定できる像ずれ量がある。このような場合には、使用デフォーカス量選択部215によって、飽和度が小さい、すなわち、AF精度が比較的良い像ずれ量から算出されたデフォーカス量を選択してAF制御することで、飽和被写体撮影時にもAFを行う機会を増やすことができる。
以下、図5を参照して、カメラ制御部214により実行されるカメラ本体20の撮影処理について説明する。図5は、撮影処理を示すフローチャートである。カメラ制御部214は、コンピュータプログラムである撮像処理プログラムにしたがって処理を行う。
ステップS501では、カメラ制御部214は、カメラ設定等の初期化処理を行う。
ステップS502では、カメラ制御部214は、カメラ本体20の撮影モードが動画撮影モードであるかどうかを判定する。動画撮影モードである場合、ステップS503に進み、動画撮影モードでない、すなわち静止画撮影モードである場合、ステップS504に進む。
ステップS503では、カメラ制御部214は、動画撮影処理を行う。
ステップS504では、カメラ制御部214は、静止画撮影処理を行う。
ステップS505では、カメラ制御部214は、撮影処理が停止されていないかどうかを判定する。本実施例では、カメラ操作部208を通じてカメラ本体20の電源切断処理、ユーザによるカメラ本体20の設定処理、および撮影画像・動画の確認のための再生処理等の撮影以外の動作が行われることで、撮影処理は停止される。停止されていない場合、ステップS506に進み、停止されている場合、撮影処理を終了する。
ステップS506では、カメラ制御部214は、撮影モードが変更されたかどうかを判定する。変更された場合、ステップS501に戻り、カメラ制御部214は初期化処理を行った上で変更された撮影モードでの撮影処理を行う。一方、変更されていない場合、ステップS502に戻り、カメラ制御部214は現在の撮影モードでの撮影処理を継続して行う。
以下、図6を参照して、図5のステップS504で行われる静止画撮影処理について説明する。図6は、静止画撮影処理を示すフローチャートである。
ステップS601では、カメラ制御部214は、AF信号処理部204に焦点状態検出処理を行わせる。焦点状態検出処理は、撮像面位相差AFを行うためのデフォーカス量と信頼性情報を取得する処理である。また、カメラ制御部214は、飽和度判定部205に飽和度を検出させる。
ステップS602では、使用デフォーカス量選択部215は、飽和度判定部205により検出された飽和度およびAF信号処理部204により算出された信頼性情報に基づいて、AF制御に使用するデフォーカス量を選択する。
ステップS603では、カメラ制御部214は、カメラ操作部208からAF処理の開始指示(以下、AF指示という)が入力(オン)されたかどうかを判定する。AF指示は、カメラ本体20に設けられたシャッターボタンが半押し操作された場合や、AFを実行させるAFONボタンが押された場合等にカメラ操作部208から出力される。AF指示が入力された場合、ステップS604に進み、AF指示が入力されていない場合、ステップS605に進む。
ステップS604では、カメラ制御部214は、AF処理を行う。
ステップS605では、カメラ制御部214は、カメラ操作部208から撮像処理の開始指示(以下、撮像指示という)が入力(オン)されたかどうかを判定する。撮像指示は、シャッターボタンが全押し操作された場合等にカメラ操作部208から出力される。撮像指示が入力された場合、ステップS606に進み、撮像指示が入力されていない場合、ステップS608に進む。
ステップS606では、カメラ制御部214は、ステップS604のAF処理によって撮影光学系が合焦状態となり、フォーカスレンズ103が停止した状態(合焦停止状態)でないかどうかを判定する。合焦停止状態でない場合、ステップS604に進み、合焦停止状態である場合、ステップ607に進む。
ステップS607では、カメラ制御部214は、撮影処理を行い、記録媒体制御部209を介して記録媒体210に撮影画像(記録画像)を保存する。
ステップS608では、カメラ制御部214は、合焦停止状態を解除する。
以下、図7を参照して、図6のステップS601においてAF信号処理部204および飽和度判定部205が行う焦点状態検出処理について説明する。図7は、焦点状態検出処理を示すフローチャートである。なお、AF信号処理部204は、マイクロコンピュータにより構成され、コンピュータプログラムとしての焦点検出プログラム(撮像処理プログラムの一部であってもよい)にしたがって焦点状態検出処理を行う。
ステップS701では、AF信号処理部204は、撮像素子201が撮像した画像内のAF領域に含まれる複数の画素からAF用信号としての一対の像信号を取得する。
ステップS702では、AF信号処理部204は、焦点状態検出のためのパラメータ設定を行う。パラメータ(設定条件)とは、具体的には、相関演算を行う視野範囲、シフト量、水平画素加算数、フィルタ設定、および像ずれ量をデフォーカス量に換算するための換算係数などである。また、飽和度判定部205で飽和度の判定に使用する、飽和行数閾値、飽和行判定範囲、および飽和画素判定閾値なども含まれる。
ステップS703では、AF信号処理部204は、ステップS701で取得された一対の像信号に対して、ステップS702で設定された水平画素加算数に基づいて、水平画素加算処理を行う。例えば、水平画素加算数が2であれば、隣接する2画素を加算(または加算平均)し、以降の処理では1画素として扱う。また、水平画素加算数が1であれば、画素の加算を行わず、ステップS701で取得された一対の像信号をそのまま扱う。水平画素加算数が多いほど、一対の像信号の周波数を落とすことができる。これにより、像ずれ量の算出精度は低下するものの、ボケた被写体に対する像ずれ量検出性能を高めることができる。また、AF信号処理部204は、水平画素加算処理が行われた一対の像信号に対して、ローパスフィルタやバンドパスフィルタなどのデジタルフィルタを掛ける。具体的には、ローパスフィルタによって像信号の周波数を落としたり、バンドパスフィルタによって像信号に対して特定の周波数を強調させたり、DC成分をカットしたりする。水平画素加算数やバンドパスフィルタのフィルタ係数は、合焦時の精度を高めたより高周波な設定から、ボケ時の像ずれ量検出用のより低周波な設定まで複数の設定を行い、被写体のボケ度合いに応じて使い分けるのが望ましい。本実施例では、複数の設定に基づいてデフォーカス量も複数算出して、複数のデフォーカス量を使い分ける。本実施例では、低帯域/長視野、高帯域/長視野、低帯域/短視野、高帯域/短視野の4種類のデフォーカス量を算出するものとして後述の説明を行う。なお、低帯域とは、水平画素加算数が多い、または低帯域をより通過させるバンドパスフィルタを適用させたものであり、高帯域とはその逆のものである。
ステップS704では、AF信号処理部204は、取得された一対の像信号に対して水平画素加算処理およびフィルタ処理を行った信号を1画素(1ビット)ずつ相対的にシフトさせながらこれら信号の相関量を算出する。相関量の算出は、AF領域内に設けた複数の画素ライン(以下、走査ラインという)のそれぞれに対して行う。なお、各走査ラインの相関量を算出した後、それぞれの相関量を加算平均することで1つの相関量として算出する。また、本実施例では相関量算出に当たって一対の像信号を1画素ずつ相対的にシフトさせる構成としたが、より多くの画素単位でシフトさせる構成でもよい。例えば、2画素ずつ相対的にシフトさせる構成でもよい。また、本実施例では、各走査ラインの相関量を加算平均することで1つの相関量を算出したが、例えば各走査ラインの一対の像信号に対して加算平均を行い、その後、加算平均した一対の像信号に対して相関量の算出を行ってもよい。
ステップS705では、AF信号処理部204は、ステップS704で算出された相関量から相関変化量を算出する。
ステップS706では、AF信号処理部204は、ステップS705で算出された相関変化量を用いて像ずれ量を算出する。
ステップS707では、AF信号処理部204は、ステップS706で算出された像ずれ量の信頼性を算出する。
ステップS708では、AF信号処理部204は、ステップS706で算出されたAF領域の像ずれ量を用いてAF領域のデフォーカス量を算出する。本実施例では、上述したように、4種類のデフォーカス量が算出される。
ステップS709では、飽和度判定部205は、4種類のデフォーカス量のそれぞれに対してデフォーカス飽和影響判定処理を行う。
ステップS710では、飽和度判定部205は、ステップS709のデフォーカス飽和影響判定処理の結果に基づいて、ステップS707で算出された各信頼性に対して変換処理を行う。
ステップS711では、AF信号処理部204は、ステップS701で取得された一対の像信号に対して、同一フレームで演算する全ての種類のデフォーカス量の演算が完了したかどうかを判定する。完了した場合、焦点検出処理を終了し、完了していない場合、ステップS702に戻る。
以下、AF信号処理部204による焦点調節評価値の算出方法について説明する。焦点調節評価値とは、相関値、相関変化値、像ずれ量およびデフォーカス量のいずれかである。図8は、撮像素子201の画素アレイ801上でのAF領域802の一例を示している。AF領域802の両側のシフト領域803は、相関演算に必要な領域である。このため、AF領域802とシフト領域803とを合わせた領域804が相関演算に必要な画素領域である。図中のp,q,s,tはそれぞれ、水平方向での座標を表している。座標p,qはそれぞれ領域804の始点と終点の座標であり、座標s,tはそれぞれAF領域802の始点と終点の座標である。
図9は、図8のAF領域802に含まれる複数の画素から取得したAF用の一対の像信号の一例を示している。実線701が一方の像信号A、破線802が他方の像信号Bを示している。図9(a)はシフト前の像信号A,Bを示し、図9(b),(c)はそれぞれ、像信号A,Bを図9(a)の状態からシフトした状態を示している。
一対の像信号の相関量を算出する際には、まず、図9(b),(c)に示されるように、像信号A,Bをそれぞれ矢印の方向へ1ビットずつシフトさせ、像信号A,Bの差の絶対値の和を算出する。シフト量をi、マイナス方向の最大シフト量をp−s、プラス方向の最大シフト量をq−t、xをAF領域802の開始座標、yをAF領域802の終了座標としたとき、相関量CORは以下の式(1)によって算出される。
図10(a)は、シフト量と相関量CORとの関係の一例を示している。横軸はシフト量、縦軸は相関量CORを示している。相関量の極値付近1001,1002のうち、より小さい相関量に対応するシフト量において一対の像信号A,Bの一致度が最も高くなる。本実施例では、1シフトおきの相関量の差を相関変化量ΔCORとして算出する。シフト量をi、マイナス方向の最大シフト量をp−s、プラス方向の最大シフト量をq−tとしたとき、相関変化量ΔCORは以下の式(2)によって算出される。
図11(a)は、シフト量と相関変化量ΔCORとの関係の一例を示している。横軸はシフト量、縦軸は相関変化量ΔCORを示している。相関変化量は、1101,1102で示される部分でプラスからマイナスになる。相関変化量が0となる状態をゼロクロスと呼び、像信号A,Bの一致度が最も高くなる。したがって、ゼロクロスを与えるシフト量が像ずれ量となる。
図11(b)は、図11(a)の部分1101の拡大図である。ゼロクロスを与えるシフト量、すなわち像ずれ量PRDは、整数部分βと小数部分αとに分けられる。小数部分αは、三角形ABCと三角形ADEとの相似の関係から、以下の式(3)によって算出される。
整数部分βは、以下の式(4)によって算出される。
β=k−1 (4)
図11(a)に示されるように、相関変化量ΔCORのゼロクロスが複数存在する場合、その付近での相関変化量ΔCORの変化の急峻性が最も大きいゼロクロスを第1のゼロクロスとする。この急峻性はAFの行い易さを示す指標であり、値が大きいほど精度良いAFを行い易いことを示す。急峻性maxderは、以下の式(5)によって算出される。
このように、本実施例では、相関変化量のゼロクロスが複数存在する場合、急峻性によって第1のゼロクロスを決定し、第1のゼロクロスを与えるシフト量を像ずれ量とする。
像ずれ量の信頼性は、像信号A,Bの一致度(以下、2像一致度という)fnclvlと相関変化量の急峻性によって定義することができる。2像一致度は、像ずれ量の精度を表す指標であり、本実施例の相関演算方法ではその値が小さいほど精度が良いことを示す。
図10(b)は、図10(a)の極値付近1001の拡大図である。2像一致度fnclvlは、以下の式(6)によって算出される。
以下、図12を参照して、図7のステップS709において飽和度判定部205が行うデフォーカス飽和影響判定処理について説明する。本実施例では、低帯域/長視野、高帯域/長視野、低帯域/短視野、高帯域/短視野のデフォーカス量のそれぞれに対してデフォーカス飽和影響判定処理が行われる。
ステップS1201では、飽和度判定部205は、飽和行確認対象行をAF領域の上端の行に設定する。
ステップS1202では、飽和度判定部205は、飽和行数カウンタの0クリアを行う。
ステップS1203では、飽和度判定部205は、飽和行判定処理を行う。
ステップS1204では、飽和度判定部205は、飽和行確認対象行が飽和行であるかどうかを判定する。飽和行である場合、ステップS1205に進み、飽和行でない場合、ステップS1206に進む。
ステップS1205では、飽和度判定部205は、飽和行数カウンタをインクリメントする。
ステップS1206では、飽和度判定部205は、AF領域内の全ての行について飽和行かどうかの確認をしていないかどうかを判定する。確認していない場合、ステップS1207に進み、確認している場合、ステップS1208に進む。
ステップS1207では、飽和度判定部205は、飽和行確認対象行を1行下にずらす。
ステップS1208では、飽和度判定部205は、飽和行数カウンタがあらかじめ設定された飽和行数閾値以上であるかどうかを判定する。飽和行数カウンタが飽和行閾値以上である場合、ステップS1209に進み、飽和行閾値より小さい場合、ステップS1210に進む。なお、本実施例では、飽和行数カウンタが飽和行数閾値と等しい場合、ステップS1209に進むが、ステップS1210に進むように設定されてもよい。
ステップS1209では、飽和度判定部205は、デフォーカス量への飽和影響が高いと判定する。
ステップS1210では、飽和度判定部205は、デフォーカス量への飽和影響が低いと判定する。
以下、図13を参照して、図12のステップS1203において飽和度判定部205が行う飽和行判定処理について説明する。
ステップS1301では、飽和度判定部205は、飽和画素確認対象画素を対象行の左端の画素に設定する。
ステップS1302では、飽和度判定部205は、飽和画素数カウンタの0クリアを行う。
ステップS1303では、飽和度判定部205は、対象画素が飽和判定範囲内かどうかを判定する。飽和判定範囲内である場合、ステップS1304に進み、飽和判定範囲外である場合、ステップS1306に進む。本実施例では、視野として捉えた領域が飽和しているかどうかを判定するため、視野範囲領域、視野範囲内の画素で使用する水平加算画素の領域およびフィルタ画素の領域が飽和判定範囲内と判定され、シフト領域が飽和判定範囲内でないと判定される。
ステップS1304では、飽和度判定部205は、対象画素が飽和画素かどうかを判定する。飽和画素である場合、ステップS1305に進み、飽和画素でない場合、ステップS1306に進む。
ステップS1305では、飽和度判定部205は、飽和画素数カウンタをインクリメントする。
ステップS1306では、飽和度判定部205は、行内の全ての画素に対して飽和画素かどうかの確認をしていないかを判定する。確認していない場合、ステップS1307に進み、確認している場合、ステップS1308に進む。
ステップS1307では、飽和度判定部205は、飽和画素確認対象画素を1画素右にずらす。
ステップS1308では、飽和度判定部205は、飽和画素数カウンタがあらかじめ設定した飽和画素数閾値以上であるかどうかを判定する。飽和画素数カウンタが飽和画素数閾値以上である場合、ステップS1309に進み、飽和画素数閾値より小さい場合、ステップS1310に進む。なお、本実施例では、飽和画素数カウンタが飽和画素数閾値と等しい場合、ステップS1309に進むが、ステップS1310に進むように設定されてもよい。
ステップS1309では、飽和度判定部205は、対象行を飽和行と判定する。
ステップS1310では、飽和度判定部205は、対象行を飽和行でないと判定する。
図14を参照して、図12を用いて説明したデフォーカス飽和影響判定処理および図13を用いて説明した飽和行判定処理について具体的に説明する。図14は、飽和していない被写体と飽和被写体を捉えた際のAF領域およびAF領域の各行の飽和画素数を表している。なお、AF領域は視野範囲領域、視野範囲内の画素で使用する水平加算画素の領域およびフィルタ画素の領域であり、シフト領域は除かれている。すなわち、図13のステップS1303における飽和判定範囲内の画素のみを表している。AF領域内の各AF行(図14では全6行)に対して、図13の飽和行判定処理を行い。図13のS1308における飽和画素数閾値は、AF行内の画素のほとんどが飽和しているかどうかで設定されることが望ましい。例えば、AF行あたりの6割の画素以上が飽和している場合に飽和行と判定するように閾値を設定した場合、図14では飽和画素判定閾値は60となる。図14では、AF行1から2までが飽和行でないと判定され、AF行3から6までが飽和行であると判定される。すなわち、AF領域の6つのAF行のうち4行がAF行と判定され、図12における飽和行数カウンタはステップS1208の時点で4となる。図12のステップS1208において、飽和行数カウンタが飽和行数閾値より大きいかどうかで、デフォーカス量への飽和影響が高いかどうかの判定が行われる。例えば、AF領域のAF行の6割以上の行が飽和行である場合にデフォーカス量への飽和影響が高いと判定するように閾値を設定した場合、図14では飽和行数閾値は4となる。図14では、飽和行数カウンタが4、飽和行数閾値が4であり、デフォーカス量への飽和影響が高いと判定される。図4で説明したように、視野範囲、水平加算画素の加算数およびバンドパスフィルタのタップ数によって、同じ被写体を狙っても飽和画素判定を行う範囲が変わる。そのため、飽和行と判定されるかどうかが変わり、デフォーカス量への飽和影響が高いかどうかも変わる。なお、飽和画素数閾値および飽和行数閾値は、図14の説明の際の上記設定値に限定されない。例えば、1行でも飽和行と判定される行があればデフォーカス量への飽和影響が高いと判定されるように、飽和行数閾値を1に設定してもよい。少なくとも、飽和画素数閾値、飽和行数閾値、また飽和行判定時の飽和判定範囲は、視野範囲の長さ、水平加算画素の加算数、バンドパスフィルタのタップ数に基づいて設定される。
以下、図15を参照して、図7のS710において飽和度判定部205が行う飽和影響による信頼性変換処理について説明する。前述したように、本実施例では、図7の焦点状態検出処理において、低帯域/長視野、高帯域/長視野、低帯域/短視野、高帯域/短視野の4種類のデフォーカス量が算出される。そのため、図15の飽和影響による信頼性変換処理は、4種類のデフォーカス量に対して行われる。デフォーカス量の種類が増減する場合、デフォーカス量の種類の数に合わせて、処理数も変更する必要がある。
ステップS1501では、飽和度判定部205は、低帯域/長視野のデフォーカス量の飽和影響は低いかどうかを判定する。飽和影響が低い場合、ステップS1503に進み、飽和影響が高い場合、ステップS1502に進む。
ステップS1502では、飽和度判定部205は、低帯域/長視野のデフォーカス量の信頼性を信頼性なしに再設定する。
ステップS1503では、飽和度判定部205は、高帯域/長視野のデフォーカス量の飽和影響は低いかどうかを判定する。飽和影響が低い場合、ステップS1505に進み、飽和影響が高い場合、ステップS1504に進む。
ステップS1504では、飽和度判定部205は、高帯域/長視野のデフォーカス量の信頼性を信頼性なしに再設定する。
ステップS1505では、飽和度判定部205は、低帯域/短視野のデフォーカス量の飽和影響は低いかどうかを判定する。飽和影響が低い場合、ステップS1507に進み、飽和影響が高い場合、ステップS1506に進む。
ステップS1506では、飽和度判定部205は、低帯域/短視野のデフォーカス量の信頼性を信頼性なしに再設定する。
ステップS1507では、飽和度判定部205は、高帯域/短視野のデフォーカス量の飽和影響は低いかどうかを判定する。飽和影響が低い場合、本処理を終了し、飽和影響が高い場合、ステップS1508に進む。
ステップS1508では、飽和度判定部205は、高帯域/短視野のデフォーカス量の信頼性を信頼性なしに再設定する。
このように、デフォーカス量の飽和影響が高い場合、デフォーカス量を使用しないため、デフォーカス量の信頼性が低く設定される。
以下、図16を参照して、図6のステップS602において使用デフォーカス量選択部215が行う使用デフォーカス量選択処理について説明する。
ステップS1601では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準には、2像一致度、急峻性および説明された飽和影響が低いかどうかを含んでいる。所定基準より低い場合、ステップS1603に進み、所定基準より高い場合、ステップS1602に進む。
ステップS1602では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS1607に進み、所定値より小さい場合、ステップS1603に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS1603では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS1604に進み、所定基準より高い場合、ステップS1610に進む。
ステップS1604では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS1606に進み、所定基準より高い場合、ステップS1606に進む。
ステップS1605では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS1609に進み、所定値より小さい場合、ステップS1606に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS1606では、使用デフォーカス量選択部215は、高帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS1607に進み、所定基準より高い場合、ステップS1608に進む。
ステップS1607では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量を選択する。
ステップS1608では、使用デフォーカス量選択部215は、高帯域/短視野のデフォーカス量を選択する。
ステップS1609では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量を選択する。
ステップS1610では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量を選択する。
図16の使用デフォーカス量選択処理では、まず、長視野のデフォーカス量の信頼性が判定される。ステップS1601では低帯域のデフォーカス量の信頼性、ステップS1603では高帯域のデフォーカス量の信頼性が判定される。
低帯域/長視野のデフォーカス量の、信頼性が高く、絶対値が大きい場合、合焦位置よりボケた位置にフォーカスレンズ103が位置することが想定される。この場合、ボケた位置での像ずれ量の算出能力が高くなるように、低帯域/長視野のデフォーカス量が選択される。
低帯域/長視野のデフォーカス量の絶対値が小さく、高帯域/長視野のデフォーカス量の信頼性が高い場合、合焦位置に近い位置にフォーカスレンズ103が位置することが想定される。この場合、AF精度が高くなるように、高帯域/長視野のデフォーカス量が選択される。
長視野のデフォーカス量の信頼性が低いと判定された場合、短視野のデフォーカス量の信頼性が判定される。ステップS1604では低帯域のデフォーカス量の信頼性、S1606では高帯域のデフォーカス量の信頼性が判定される。
低帯域/短視野のデフォーカス量の、信頼性が高く、絶対値が大きい場合、合焦位置よりボケた位置にフォーカスレンズ103が位置することが想定される。この場合、ボケた位置での像ずれ量の算出能力が高くなるように、低帯域/短視野のデフォーカス量が選択される。
低帯域/短視野のデフォーカス量の絶対値が小さく、高帯域/短視野のデフォーカス量の信頼性が高い場合、合焦位置に近い位置にフォーカスレンズ103が位置することが想定される。この場合、AF精度が高くなるように、高帯域/短視野のデフォーカス量が選択される。
高帯域/短視野のデフォーカス量の信頼性が高い場合、大きくピントがボケた状態である可能性がある。この場合、ボケた位置での像ずれ量の算出能力が高くなるように、低帯域/長視野のデフォーカス量が選択される。
以上説明したように、本実施例では、飽和影響が高いと判定されたデフォーカス量は選択候補から除外され、すべてのデフォーカス量の信頼性が低い場合を除き飽和影響が低いデフォーカス量の中から使用されるデフォーカス量が選択される。また、本実施例では、長視野のデフォーカス量が優先的に選択されるように設定されている。
以下、図17を参照して、図6のステップS604においてカメラ制御部214が行うAF処理について説明する。図17のデフォーカス量は、使用デフォーカス量選択処理で選択されたデフォーカス量である。
ステップS1701では、カメラ制御部214は、現在AFが完了して合焦停止状態でないかどうかを判定する。合焦停止状態でない場合、ステップS1702に進み、合焦停止状態である場合、ステップS1709に進む。
ステップS1702では、カメラ制御部214は、使用デフォーカス量選択処理で選択されたデフォーカス量の信頼性が所定基準より高いかどうかを判定する。信頼性は、2像一致度、急峻性および飽和影響に基づいて算出される。また、信頼性は、2像の信号レベル等の他の指標を用いて算出されてもよい。また、所定基準として、デフォーカス量だけでなくデフォーカス方向も信頼できない信頼性範囲の最高値を設定することが望ましい。デフォーカス量の信頼性が所定基準より高い場合、ステップS1703に進み、所定基準より低い場合、ステップS1707に進む。
ステップS1703では、カメラ制御部214は、信頼性が高いデフォーカス量を用いてAFを行うために、デフォーカス量が焦点深度内かどうかを判定する。デフォーカス量が焦点深度内である場合、ステップS1704に進み、焦点深度内でない場合、ステップS1705に進む。
ステップS1704では、カメラ制御部214は、デフォーカス量が焦点深度内にある合焦状態とであるとみなして合焦停止状態に移行する。
ステップS1705では、カメラ制御部214は、合焦状態が得られていないとみなして、デフォーカス量に基づいてフォーカスレンズ103を駆動するためのレンズ駆動設定を行う。レンズ駆動設定とは、フォーカスレンズ103の駆動速度や、デフォーカス量の誤差を考慮したデフォーカス量に適用するゲイン等の設定である。
ステップS1706では、カメラ制御部214は、デフォーカス量およびステップS1705で設定されたレンズ駆動設定の情報に基づいて、レンズ制御部106に対してフォーカスレンズ103の制御命令を送信する。すなわち、カメラ制御部214は、フォーカス制御を行う。
ステップS1707では、カメラ制御部214は、信頼性が高いデフォーカス量が得られるフォーカスレンズ103の位置を検出するために、フォーカスレンズ103を可動端へ移動させながらデフォーカス量を算出するサーチ駆動用のレンズ駆動設定を行う。サーチ駆動用のレンズ駆動設定とは、フォーカスレンズ103の駆動速度や駆動を開始する方向等の設定である。
ステップS1708では、カメラ制御部214は、ステップS1707で設定されたサーチ駆動用のレンズ駆動設定に基づいて、レンズ制御部106に対してフォーカスレンズ103の制御命令を送信する。サーチ駆動を実行する場合、使用デフォーカス量選択処理において、すべてのデフォーカス量の信頼性が低い場合なので、低帯域/長視野のデフォーカス量が選択されている。低帯域/長視野のデフォーカス量が選択されていることで、より早くデフォーカス量を検出できる可能性が高まる。また、本実施例では、撮像素子201の出力信号として一対の像信号を用いる撮像面位相差AFのみを行えるカメラ本体20について説明した。しかしながら、撮像素子201の出力信号を用いてコントラスト検出方式のAFを行える場合、ステップS1702でデフォーカス量の信頼性が低いと判定した場合に一時的にコントラスト検出方式のAFを行うようにしてもよい。
ステップS1409では、カメラ制御部214は、合焦停止状態を保持する。
以上説明したように、本実施例では、視野範囲、水平加算画素の加算数およびフィルタタップ数の異なる複数のデフォーカス量を算出し、それぞれのデフォーカス量について飽和影響を判定する。飽和影響の判定に用いる閾値や範囲は、デフォーカス量ごとに、視野範囲、水平加算画素の加算数およびバンドパスフィルタのタップ数に基づいて設定されている。そして、飽和影響の大小に応じてデフォーカス量の信頼性を変換し、飽和影響の低いデフォーカス量のみから使用するデフォーカス量が選択される。これにより、AF領域内の飽和被写体が存在する場合でも、デフォーカス量を使用せずAFを行うのではなく、飽和の影響が低いデフォーカス量を使用してAFを行うことで、AF可能な機会を増加させたり、AF精度の低下を軽減したりすることができる。
なお、本実施例では、撮像素子201は、水平方向において相関演算を行うことができる構成を有するが、垂直方向において相関演算を行うことができる構成を有してもいいし、水平/垂直のいずれの方向でも相関演算を行うことができる構成を有してもいい。
実施例3では、設定したAF領域サイズに応じて、使用デフォーカス量選択時に視野範囲の優先度を変更する。本実施例では、設定したAF領域サイズに応じて、使用デフォーカス量の選択時に、デフォーカス量の視野範囲を優先して選択するか、帯域の高さを優先して選択するかを切り替える。本実施例の撮像装置の構成は、実施例1のカメラシステム1の構成と同様である。
以下、本実施例のカメラ本体20で行われる処理について説明する。本実施例における撮影処理、静止画撮影処理、焦点状態検出処理、デフォーカス飽和影響判定処理、飽和行判定処理、飽和影響による信頼性変換処理およびAF処理は、実施例1で説明した処理と同様であるため、説明を省略する。
以下、図21を参照して、図6のステップS602において使用デフォーカス量選択部215が行う使用デフォーカス量選択処理について説明する。
ステップS2101では、使用デフォーカス量選択部215は、AF領域のサイズ設定が狭い設定かどうかを判定する。狭い設定である場合、ステップS2102に進み、広い設定である場合、ステップS2103に進む。
ステップS2102では、使用デフォーカス量選択部215は、サイズ優先使用デフォーカス量選択処理を行う。
ステップS2103では、使用デフォーカス量選択部215は、帯域優先使用デフォーカス量選択処理を行う。
以下、図22を参照して、図21のステップS2102において使用デフォーカス量選択部215が行うサイズ優先使用デフォーカス量選択処理について説明する。
ステップS2201では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2203に進み、所定基準より高い場合、ステップS2202に進む。
ステップS2202では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS2207に進み、所定値より小さい場合、ステップS2203に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS2203では、使用デフォーカス量選択部215は、高帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2204に進み、所定基準より高い場合、ステップS2210に進む。
ステップS2204では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2206に進み、所定基準より高い場合、ステップS2205に進む。
ステップS2205では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS2208に進み、所定値より小さい場合、ステップS2206に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS2206では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2208に進み、所定基準より高い場合、ステップS2209に進む。
ステップS2207では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2208では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2209では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2210では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量を使用デフォーカス量として選択する。
本実施例では、AF領域サイズ設定が狭い設定である場合にサイズ優先使用デフォーカス量選択処理を実行する。サイズ優先使用デフォーカス量選択処理では、設定されたAF領域のサイズに近い視野範囲のデフォーカス量を優先的に選択する。サイズ優先使用デフォーカス量選択処理では、先に狭いAF領域サイズに対応した短視野のデフォーカス量を使用できるかどうかを判定し、短視野のデフォーカス量が使用できない場合に長視野のデフォーカス量を使用できるかどうかを判定する。
以下、図23を参照して、図21のステップS2103において使用デフォーカス量選択部215が行う帯域優先使用デフォーカス量選択処理について説明する。
ステップS2301では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2303に進み、所定基準より高い場合、ステップS2302に進む。
ステップS2302では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS2307に進み、所定値より小さい場合、ステップS2303に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS2303では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2305に進み、所定基準より高い場合、ステップS2304に進む。
ステップS2304では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量の絶対値が所定値より大きいかどうかを判定する。所定値より大きい場合、ステップS2310に進み、所定値より小さい場合、ステップS2305に進む。なお、絶対値が所定値と等しい場合、いずれのステップに進むかは任意である。
ステップS2305では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2306に進み、所定基準より高い場合、ステップS2309に進む。
ステップS2305では、使用デフォーカス量選択部215は、高帯域/短視野のデフォーカス量の信頼性が所定基準より低いかどうかを判定する。所定基準より低い場合、ステップS2307に進み、所定基準より高い場合、ステップS2308に進む。
ステップS2307では、使用デフォーカス量選択部215は、低帯域/長視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2308では、使用デフォーカス量選択部215は、高帯域/短視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2309では、使用デフォーカス量選択部215は、高帯域/長視野のデフォーカス量を使用デフォーカス量として選択する。
ステップS2310では、使用デフォーカス量選択部215は、低帯域/短視野のデフォーカス量を使用デフォーカス量として選択する。
本実施例では、AF領域サイズ設定が広い設定である場合に帯域優先使用デフォーカス量選択処理を実行する。帯域優先使用デフォーカス量選択処理では、設定されたAF領域のサイズよりも、特定の帯域のデフォーカス量を優先的に選択する。帯域優先使用デフォーカス量選択処理では、先に低帯域のデフォーカス量を使用できるかどうかを判定し、低帯域のデフォーカス量が使用できない場合に高帯域のデフォーカス量を使用できるかどうかを判定する。
AF領域のサイズ設定が狭い設定である場合、使用するデフォーカス量の視野として長視野を優先的に選択してしまうと、AF領域のサイズよりも外側の被写体にピントが合ってしまう可能性があり、ユーザの狙った被写体にピントが合わせられない懸念がある。そこで、サイズ優先使用デフォーカス量選択処理では、短視野のデフォーカス量を優先して選択することでユーザの狙った被写体にピントを合わせやすくしている。また、視野内にコントラストがなかったり飽和していたりするなど、AFが困難な場合を考慮して、短視野のデフォーカスが使用できない場合に長視野のデフォーカス量が選択される。
一方、AF領域のサイズ設定が広い設定である場合、AF領域の内部に短視野も包含されているため、長視野のデフォーカス量でなく短視野のデフォーカス量を使用してもAF領域のサイズよりも外側の被写体にピントが合ってしまう懸念はない。そこで、帯域優先使用デフォーカス量選択処理では、ピントがボケている場合にいち早くデフォーカス量を検出しやすいように、まず低帯域のデフォーカス量を優先的に選択し、被写体の合焦近傍に近づいてきた際に高帯域のデフォーカス量が選択される。
以上説明したように、本実施例では、AF領域のサイズ設定が可能な構成において、AF領域のサイズ設定に応じて使用するデフォーカス量の選択時に、視野範囲を優先して選択するか、帯域を優先して選択するかを切り替える。AF領域のサイズ設定が狭い設定である場合、視野範囲を優先したデフォーカス量選択アルゴリズムを適用し、広い設定である場合、帯域を優先したデフォーカス量選択アルゴリズムを適用する。これにより、AF領域をはみ出してしまう懸念がある場合、AF領域をはみ出さない視野でAFを行い、AF領域をはみ出してしまう懸念がない場合、被写体がぼけている際にデフォーカス検出ができる機会を高めることができる。なお、本実施例では、AF領域のサイズ設定は2種類であるが、AF領域のサイズ設定は3種類以上であってもよい。この場合も、AF領域を視野がはみ出さないかどうかで、視野範囲を優先するか、帯域を優先するかを切り替えればよい。
なお、本実施形態では、本発明を静止画撮影処理に適用した場合について説明したが、本発明は動画撮影処理にも適用可能である。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
[その他の実施例]
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。