図1には、本発明の実施例である焦点検出装置を有するデジタルカメラ(撮像装置)の構成を示している。同図において、101は結像光学系としての撮影光学系のうち最も物体側に配置され、光軸方向に移動可能な第1レンズ群である。102は絞りシャッタであり、その開口径を変化させて(絞り値を可変として)光量調節を行う絞り機能と、静止画撮影時に開閉動作することで露光秒時を制御するシャッタ機能とを備える。
103は第2レンズ群である。絞りシャッタ102は、第2レンズ群103と一体となって光軸方向に移動する。第1レンズ群101と第2レンズ群102とが光軸方向に移動することで、変倍(ズーム)が行われる。
105は第3レンズ群であり、光軸方向に移動して焦点調節を行う。106は光学的ローパスフィルタであり、撮影画像の偽色やモアレを軽減するための光学素子である。107はCMOSセンサとその周辺回路で構成された撮像素子(撮像手段)である。該撮像素子107は、水平方向にm個、垂直方向にn個の画素(受光素子)を有し、これらの画素に対してベイヤー配列の原色カラーモザイクフィルタが配置されて2次元単板カラーセンサが構成される。
111はズームアクチュエータであり、不図示のカム筒を光軸周りで回転させることで、第1レンズ群101および第2レンズ群102を光軸方向に移動させ、変倍を行わせる。
112は絞りシャッタアクチュエータであり、光量調節のために絞りシャッタ102の開口径を変化させるよう駆動するとともに、静止画撮影時のシャッタ駆動を行う。114はフォーカスアクチュエータで、あり第3レンズ群105を光軸方向に移動させて焦点調節を行う。
115は電子フラッシュであり、キセノン管やLEDを光源として有する。116はAF補助光発光部であり、所定の開口パターンを有したマスクの像を、投光レンズを介して被写体に投影する。これにより、暗い被写体あるいは低コントラストの被写体に対するAF性能を向上させることができる。
121はコントローラとしてのカメラCPUであり、カメラの種々の動作の制御を司る。カメラCPU121は、演算部、ROM、RAM、A/Dコンバータ、D/Aコンバータおよび通信インターフェイス回路等を有する。カメラCPU121は、ROMに記憶されたコンピュータプログラムに従ってカメラ内の各部の動作を制御し、撮影光学系の焦点状態の検出(焦点検出)を含むAF、撮像、画像処理および記録等の一連の撮影動作を実行させる。カメラCPU121は、演算手段に相当する。
122は電子フラッシュ制御回路であり、電子フラッシュ115の点灯制御を行う。123は補助光駆動回路であり、AF補助光発光部116の点灯制御を行う。124は撮像素子駆動回路であり、撮像素子107の動作を制御するとともに、該撮像素子107から出力された画素信号(撮像信号)をA/D変換してカメラCPU121に送信する。125は画像処理回路であり、A/D変換された撮像信号に対してγ変換やカラー補間等の画像処理を行って画像信号を生成し、さらに画像信号に対してJPEG圧縮等の処理を行う。
126はフォーカス駆動回路であり、焦点検出結果に基づいてフォーカスアクチュエータ114を駆動し、第3レンズ群105を光軸方向に移動させて焦点調節を行う。128はシャッタ駆動回路であり、絞りシャッタアクチュエータ112を駆動して絞りシャッタ102を動作させる。129はズーム駆動回路で、撮影者のズーム操作に応じてズームアクチュエータ111を駆動する。
131はLCD等の表示器であり、カメラの撮影モードに関する情報、撮影前のプレビュー画像、撮影後の確認用画像および焦点検出時の合焦状態等を表示する。132は操作スイッチ群であり、電源スイッチ、レリーズ(撮影トリガ)スイッチ、ズーム操作スイッチ、撮影モード選択スイッチ等で構成される。133は着脱可能なフラッシュメモリで、撮影済み画像を記録する。
図2には、本実施例における撮像素子107の回路構成を示している。なお、同図は2次元CMOSセンサのうち2列×4行画素の範囲を示したものである。CMOSセンサの画素ピッチは5μm、有効画素数は1200万画素(=水平4000画素×垂直3000画素)であり、これらの画素が配列された有効撮像エリアのサイズは、水平20mm×垂直15mmである。
図2において、1はMOSトランジスタゲートとゲート下の空乏層からなる光電変換素子の光電変換部、2はフォトゲート、3は転送スイッチMOSトランジスタ、4はリセット用MOSトランジスタ、5はソースフォロワアンプMOSトランジスタである。6は水平選択スイッチMOSトランジスタ、7はソースフォロワの負荷MOSトランジスタ、8は暗出力転送MOSトランジスタ、9は明出力転送MOSトランジスタ、10は暗出力蓄積容量CTN、11は明出力蓄積容量CTSである。12は水平転送MOSトランジスタ、13は水平出力線リセットMOSトランジスタ、14は差動出力アンプ、15は水平走査回路、16は垂直走査回路である。
図3には、撮像素子107の画素部の断面構造を示す。同図において、17はP型ウェル、18はゲート酸化膜、19は一層目ポリSi、20は二層目ポリSi、21はn+ フローティングディフュージョン部(FD)である。21のFDは別の転送MOSトランジスタを介して別の光電変換部と接続される。2つの転送MOSトランジスタ3のドレインとFD部21を共通化して微細化とFD部21の容量低減による感度向上を図っているが、Al配線でFD部21を接続してもよい。
次に、図4のタイミングチャートを用いて撮像素子107の動作について説明する。このタイミングチャートは、撮像素子107を全画素独立読み出し方式で動作させる場合を示す。
垂直走査回路16からのタイミング出力によって、制御パルスφLをHighとして垂直出力線をリセットする。また、制御パルスφR0,φPG00,φPGe0をHighとし、リセット用MOSトランジスタ4をオンとし、フォトゲート2の一層目ポリSi19をHighとしておく。
時刻T0において、制御パルスφS0をHighとし、選択スイッチMOSトランジスタ6をオンさせ、第1,第2ラインの画素部を選択する。
次に、制御パルスφR0をLowとし、FD部21のリセットを止め、FD部21をフローティング状態とし、ソースフォロワアンプMOSトランジスタ5のゲート・ソース間をスルーとする。その後、時刻T1において制御パルスφTNをHighとし、FD部21の暗電圧をソースフォロワ動作で蓄積容量CTN10に出力させる。
次に、第1ラインの画素の光電変換出力を行うため、第1ラインの制御パルスφTX00をHighとして、転送スイッチMOSトランジスタ3を導通した後、時刻T2において制御パルスφPG00をローとする。このとき、フォトゲート2の下に拡がっていたポテンシャル井戸を上げて、光発生キャリアをFD部21に完全転送させるような電圧関係が好ましい。したがって、完全転送が可能であれば、制御パルスφTXはパルスではなく、ある固定電位でもかまわない。
時刻T2でフォトダイオードの光電変換部1からの電荷がFD部21に転送されることにより、FD部21の電位が光に応じて変化することになる。このとき、ソースフォロワアンプMOSトランジスタ5がフローティング状態であるので、時刻T3において制御パルスφTsをHighとしてFD部21の電位を蓄積容量CTS11に出力する。この時点で第1ラインの画素の暗出力と明出力はそれぞれ蓄積容量CTN10とCTS11に蓄積されている。
時刻T4で、制御パルスφHCを一時Highとして、水平出力線リセットMOSトランジスタ13を導通させ、水平出力線をリセットする。これにより、水平転送期間において、水平走査回路15の走査タイミング信号により水平出力線に画素の暗出力と明出力とが出力される。このとき、蓄積容量CTN10とCTS11の差動増幅器14によって、差動出力VOUTをとれば、画素のランダムノイズ、固定パターンノイズを除去したS/Nの良い信号が得られる。また、画素30−12,30−22の光電荷は、画素30−11,30−21と同時にそれぞれの蓄積容量CTN10とCTS11に蓄積される。その読み出しは、水平走査回路15からのタイミングパルスを1画素分遅らせて水平出力線に読み出し、差動増幅器14から出力される。
本実施例では、差動出力VOUTをチップ内で行う構成を示しているが、チップ内に含めず、外部で従来のCDS(Correlated Double Sampling:相関二重サンプリング)回路を用いても同様の効果が得られる。
蓄積容量CTS11に明出力を出力した後、制御パルスφR0をHighとして、リセット用MOSトランジスタ4を導通させ、FD部21を電源VDDにリセットする。第1ラインの水平転送が終了した後、第2ラインの読み出しを行う。第2ラインの読み出しは、制御パルスφTXe0,制御パルスφPGe0を同様に駆動し、制御パルスφTN,φTSにそれぞれHighパルスを供給して、蓄積容量CTN10とCTS11にそれぞれ電荷を蓄積して、暗出力と明出力を取り出す。
以上の駆動により、第1および第2ラインの読み出しをそれぞれ独立に行える。この後、垂直走査回路を走査させ、同様に第2n+1,第2n+2(n=1,2,…)の読み出しを行えば、全画素独立読み出しが行える。すなわち、n=1の場合は、まず制御パルスφS1をHighとし、次にφR1をLowとする。続いて、制御パルスφTN,φTX01をHighとし、制御パルスφPG01をLowとし、制御パルスφTSをHighとし、制御パルスφHCを一時Highとして、画素30−31,30−32の画素信号を読み出す。
続いて、制御パルスφTXe1,φPGe1を上記と同様に印加して、画素30−41,30−42の画素信号を読み出す。
次に、図5、図6および図7を用いて、撮像素子107上に配置された撮像用画素と焦点検出用画素の構造について説明する。本実施例の撮像素子107は、2行×2列の4画素における対角2箇所にG(緑色)の分光感度を有する画素を配置し、他の2箇所にR(赤色)とB(青色)の分光感度を有する画素をそれぞれ1個ずつ配置したベイヤー配列を採用する。そして、このようなベイヤー配列により配置された撮像用画素の中に、焦点検出用画素が分散配置されている。
図5には、撮像用画素の平面図と断面図を示す。同図(a)は撮像素子107の中央に位置する2行×2列の撮像用画素の平面図である。前述したように、対角2箇所に2つのG画素が配置され、他の2箇所にR画素とB画素が配置されている。
図5(a)の断面A−Aを同図(b)に示す。MLは各画素の最前面に配置されたオンチップマイクロレンズであり、CFRはR(Red)のカラーフィルタである。CFGはG(Green)のカラーフィルタである。PDは図3で説明したCMOSセンサの光電変換部を模式的に示したものである。CLはCMOSセンサ内の各種信号を伝達する信号線を形成するための配線層である。TLは撮影光学系を模式的に示したものである。
ここで、撮像用画素のオンチップマイクロレンズMLと光電変換部PDは、撮影光学系TLを通過した光束を可能な限り有効に取り込むように構成されている。換言すると、撮影光学系TLの射出瞳EPと光電変換部PDとがマイクロレンズMLによって共役関係に配置され、さらに光電変換部PDの有効面積が大きく設定されている。なお、図5(b)では、R画素の構造を示しているが、G画素およびB(Blue)画素も同一の構造を有する。したがって、撮像用のRGB画素に対応した射出瞳EPは大きな径を有し、被写体からの光束を効率良く取り込んで、画像信号のS/Nを向上させる。
図6には、撮影光学系の瞳をx方向に分割するための焦点検出用画素の平面図と断面図を示す。同図(a)は、撮像素子107の中央に位置する焦点検出用画素を含む2行×2列の4画素の平面図である。
撮像信号を得る場合に、G画素からの出力は輝度情報の主成分をなす。人間の画像認識特性は輝度情報に敏感であるため、G画素が欠損すると、画質劣化が認められやすい。一方、R画素もしくはB画素は、色情報を取得する画素であるが、人間は色情報には鈍感であるため、色情報を取得する画素は多少の欠損が生じても画質劣化に気づきにくい。そこで、本実施例では、2行×2列の4画素のうち、2つのG画素は撮像用画素として残し、R画素とB画素の位置に、ある割合で焦点検出用画素を配置している。同図(a)において、焦点検出用画素をSHA,SHBで示す。
このように撮像素子107に分散配置された複数の焦点検出用画素SHAが第1の画素群に相当し、複数の焦点検出用画素SHBが第2の画素群に相当する。
図6(a)の断面B−Bを同図(b)に示す。マイクロレンズMLと光電変換部PDは、図5(b)に示した撮像用画素と同一の構造を有する。
本実施例においては、焦点検出用画素の信号は画像生成には用いられないため、色分離用カラーフィルタの代わりに透明膜(白色膜)CFWが配置される。
また、x方向の瞳分割を行うため、配線層CLの開口部はマイクロレンズMLの中心線に対してx方向に偏っている。具体的には、焦点検出用画素SHAの開口部OPHAは−x方向に偏っているため、焦点検出用画素SHAの光電変換部PDは、撮影光学系TLの左側(+x側)の射出瞳領域(第1の瞳領域)EPHAを通過した光束を受光する。また、焦点検出用画素SHBの開口部OPHBは+x方向に偏っているため、焦点検出用画素SHBの光電変換部PDは、撮影光学系TLの右側(−x側)の射出瞳領域(第2の瞳領域)EPHBを通過した光束を受光する。
x方向に規則的に配列された複数の焦点検出用画素SHA(第1の画素群)で取得した被写体像をA像(第1の像)とする。また、x方向に規則的に配列された複数の焦点検出用画素SHB(第2の画素群)で取得した被写体像をB像(第2の像)とする。そして、A像とB像の相対位置関係(位相差)を検出することで、該位相差に基づいて被写体に対する撮影光学系TLのデフォーカス量を演算することができる。
なお、焦点検出用画素SHA,SHBによって撮影画面のx方向に輝度分布を有した被写体、例えばy方向の伸びる線に対しては焦点検出が可能であるが、y方向に輝度分布を有する被写体、例えばx方向に伸びる線に対しては焦点検出不能である。本実施例では、後者についても焦点検出できるように、撮影光学系TLのy方向にも瞳分割を行う焦点検出用画素も備えている。
図7は、撮影光学系の瞳をy方向に分割するための焦点検出用画素の平面図と断面図を示す。同図(a)は、撮像素子107の中央に位置する焦点検出用画素を含む2行×2列の4画素の平面図であり、図6(a)と同様に、G画素は撮像用画素として残し、R画素とB画素の位置に、ある割合で焦点検出用画素を配置している。同図(a)において、焦点検出用画素をSVC,SVDで示す。このように撮像素子107に分散配置された複数の焦点検出用画素SVCが第1の画素群に相当し、複数の焦点検出用画素SVDが第2の画素群に相当する。
図6(a)の断面C−Cを同図(b)に示す。同図(b)に示した画素はy方向に瞳分割を行うが、画素の構造としては図6(b)に示したx方向に瞳分割する画素と同じである。
y方向の瞳分割を行うため、配線層CLの開口部はマイクロレンズMLの中心線に対してy方向に偏っている。具体的には、焦点検出用画素SVCの開口部OPVCは−y方向に偏っているため、焦点検出用画素SVCの光電変換部PDは、撮影光学系TLの上側(+y側)の射出瞳領域(第1の瞳領域)EPVCを通過した光束を受光する。また、焦点検出用画素SVDの開口部OPVDは+y方向に偏っているため、焦点検出用画素SVDの光電変換部PDは、撮影光学系TLの下側(−y側)の射出瞳領域(第2の瞳領域)EPVDを通過した光束を受光する。
y方向に規則的に配列された複数の焦点検出用画素SVC(第1の画素群)で取得した被写体像をC像(第1の像)とする。また、y方向に規則的に配列された複数の焦点検出用画素SVD(第2の画素群)で取得した被写体像をD像(第2の像)とする。そして、C像とD像の相対位置関係(位相差)を検出することで、該位相差に基づいて被写体に対する撮影光学系TLのデフォーカス量を演算することができる。
図8は、本実施例における撮像素子107の瞳分割の様子を示す。TLは撮影光学系、107は撮像素子、OBJは被写体、IMGは被写体像である。
撮像用画素は、撮影光学系TLの射出瞳EPの全域を通過した光束を受光する。一方、焦点検出用画素のうち図6に示した焦点検出用画素SHAは、射出瞳EPのうち+x側の瞳領域EPHAを通過した光束を受光する。同様に、焦点検出用画素SHB,SVC,SVDはそれぞれ射出瞳領域EPHB,EPVC,EPVDを通過した光束を受光する。そして、焦点検出用画素を、撮像素子107の全領域にわたって分布させることで、有効撮像エリアの全域で焦点検出が可能となる。
図9は、焦点検出時に取得した画像と焦点検出領域との関係を示している。図9において、撮像素子107の有効撮像エリア(撮影画面)上に形成された被写体像には、中央の人物の像と、左側の近距離の樹木の像と、右側の遠距離の山の像とが含まれる。
そして、本実施例においては、焦点検出用画素は、x方向にて瞳分割を行う焦点検出用画素SHA,SHBと、y方向にて瞳分割を行う焦点検出用画素SVC,SVDが有効撮像エリアの全域にわたって均等な密度で配置されている。そして、x方向でのA像とB像の位相差を検出する際には、焦点検出用画素SHAから得られる画素信号と焦点検出用画素SHBから得られる画素信号とを使用する。また、y方向でのC像とD像の位相差を検出する際には、焦点検出用画素SVCから得られる画素信号と焦点検出用画素SVDから得られる画素信号とを使用する。このため、有効撮像エリアにおける任意の位置において、x方向での位相差検出とy方向での位相差検出のための焦点検出領域を設定することができる。
図9においては、画面中央に人物の顔が存在している。そこで、公知の顔認識技術によって顔の存在が検出されると、顔領域を中心にx方向での位相差検出のための焦点検出領域AFARh(x1,y1)と、y方向での位相差検出のための焦点検出領域AFARv(x3,y3)とが設定される。添え字のhはx方向に対応し、(x1,y1)と(x3,y3)は焦点検出領域の左上隅の座標を表す。
焦点検出領域AFARh(x1,y1)は30個のセクションを有し、各セクションに含まれる焦点検出画素SHAからの画素信号を30セクションにわたって連結することで、位相差検出用のA像信号(第1の像信号)AFSIGh(A1)が得られる。同様に、各セクションに含まれる焦点検出画素SHBからの画素信号を30セクションにわたって連結することで、位相差検出用のB像信号(第2の像信号)AFSIGh(B1)が得られる。
そして、A像信号AFSIGh(A1)とB像信号AFSIGh(B1)のx方向での相対的なずれ量である位相差を相関演算によって求めることにより、該位相差に基づいて撮影光学系のデフォーカス量を求めることができる。
また、焦点検出領域AFARv(x3,y3)においても、同様にして、位相差検出用のC像信号(第1の像信号)AFSIGv(C3)とD像信号(第2の像信号)AFSIGv(D3)が得られる。そして、C像信号AFSIGv(C3)とB像信号AFSIGv(D3)のy方向での相対的なずれ量である位相差を相関演算によって求めることにより、該位相差に基づいて撮影光学系のデフォーカス量を求めることができる。
こうして得られたx方向での位相差に基づくデフォーカス量とy方向での位相差に基づくデフォーカス量とを比較して、信頼性の高い方のデフォーカス量を用いてAFを行う。
一方、画面左側に存在する樹木の幹部は、y方向に伸びており、x方向に輝度分布を有しているため、x方向での位相差検出に適した被写体と判断される。この場合、x方向での位相差検出のための焦点検出領域AFARh(x2,y2)が設定される。
また、画面右側の山の稜線部は、x方向に伸びており、y方向に輝度分布を有しているため、y方向での位相差検出に適した被写体と判断される。この場合、y方向での位相差検出のための焦点検出領域AFARv(x4,y4)が設定される。
以上のように、本実施例では、x方向とy方向での位相差検出のための焦点検出領域が撮影画面の任意の位置に設定可能であるため、被写体像の位置や輝度分布の方向性が様々であっても焦点検出を行うことができる。
焦点検出の原理は、x方向とy方向とで方向が異なること以外は同じであるため、以下では、x方向での焦点検出について説明し、y方向での焦点検出についての説明は省略する。
図10には、撮像素子107の中央の焦点検出用画素の入射角度特性を示している。図10(a)は焦点検出用画素SHAの特性を、図10(b)は焦点検出用画素SHBの特性を示している。図10中のx軸とy軸はそれぞれ、各画素のx方向とy方向の入射角度を表している。図10では、色が濃いほど受光強度が高いことを示す。図6では、焦点検出用画素SHAが受光する光束が通過する射出瞳領域EPHAと、焦点検出用画素SHBが受光する光束が通過する射出瞳領域EPHBとを分離して示した。しかし、実際には、図10に示すように、開口部OPHAと開口部OPHBによる回折の影響やS/N比の向上のために、焦点検出用画素SHA,SHBが受光する光束がそれぞれ通過する射出瞳領域は一部が重なっている。
図11では、焦点検出用画素の入射角度特性を1次元で示している。横軸は入射角度を、縦軸は図10におけるθy方向での受光感度を加算した特性を示している。原点は光軸位置である。図11に示すように、撮像素子107の中央では、焦点検出用画素では、焦点検出用画素SHA,SHBの入射角度特性は光軸に対してほぼ対称となる。
図12を用いて光束のケラレについて説明する。図12(a)は、撮像素子107の中央の画素に入射する光束を示し、図12(b)は撮像素子107の中央に対してある像高を持った位置の画素に入射する光束を示している。撮像素子107には撮影光学系を構成するレンズ群を保持する保持枠や絞り102等の部材によって制限された光束が入射する。ここでは、全ての像高において光束を制限する部材が2つ存在するものとして説明する。
Iw1,Iw2は光束を制限する部材の開口(窓)であり、光束はこれらの窓Iw1,Iw2の内側を通過する。MeはマイクロレンズMLの構成によって設定された瞳面を表している。
図12(a)において、L1rc,L1lcは窓Iw1から射出した光束の外周を表しており、L1rcは該光束の図中の右端を、L1lcは該光束の図中の左端を示している。L2rc,L2lcは窓Iw2から射出した光束であって、マイクロレンズMLの瞳面Meに投影された光束の外周を表しており、L2rcは該光束の図中の右端を、L2lcは該光束の図中の左端を示している。
図12(a)に示すように、撮像素子107の中央の焦点検出用画素に入射する光束の瞳面Meでの瞳領域は、L2lcとL2rcを外周とする光束、つまり矢印Area1で示される。
次に、図12(b)を用いて、撮像素子107の中央に対してある像高を持った位置の画素に入射する光束のケラレを説明する。L1rh,L1lhは窓Iw1から射出した光束の外周を表しており、L1rhは該光束の図中の右端を、L1lhは該光束の図中の左端を示している。L2rh,L2lhは窓Iw2から射出した光束であって、マイクロレンズMLの瞳位置Meに投影された光束の外周を表しており、L2rhは該光束の図中の右端を、L2lhは該光束の図中の左端を示している。
図12(b)に示すように、撮像素子107の中央に対してある像高を持った位置の画素に入射する光束の瞳面Me上での瞳領域は、L1lhとL2rhを外周とする光束、つまり矢印Area2で示される。
図13には、瞳面Me上での瞳領域を示している。図13(a)は撮像素子107の中央の画素の瞳領域を示し、図13(b)は撮像素子107の中央に対してある像高を持った位置の画素の瞳領域を示している。図12で説明したように、撮像素子107の中央の画素には同一の窓Iw2のみによって制限された光束が入射するため、図13(a)に示すように、瞳領域Area1は窓Iw2の形状がそのまま投影される。光束を制限する窓は、円形状であるため、瞳領域Area1の形状も円形状となる。一方、撮像素子の中央に対してある像高を持った位置の画素には窓Iw1,Iw2によって制限された光束が入射するため、瞳領域Area2は、図13(b)に示したような形状となる。
図14には、焦点検出用画素の瞳強度分布を示す。これは、図10に示した撮像素子107の中央の焦点検出用画素の入射角度特性をマイクロレンズMLの瞳面Me上に投影したものに等しく、図14の縦軸および横軸は、瞳面上の座標に展開したものである。この瞳強度分布は、撮像素子107の中央に対してある像高を持った位置の画素についても同じである。これは、撮像素子107の中央に対してある像高を持った位置の画素のマイクロレンズMLは、光軸中心がマイクロレンズMLの瞳面Meの中心を通過するように偏心して作製されているためである。
図15には、撮像素子107の中央の焦点検出用画素に対するマイクロレンズMLの瞳面Me上でのケラレを示している。図15(a)は焦点検出用画素SHAに対するケラレを、図15(b)は焦点検出用画素SHBに対するケラレを示している。図15は、図13(a)と図14とを重ね合わせたものに相当し、焦点検出用画素SHA,SHBには、Area1で示した形状の内側を透過した光束が図示した瞳強度分布で入射する。
図16には、撮像素子107の中央の焦点検出用画素に対するマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布であって、x軸に射影した後の1次元瞳強度分布を示している。横軸は瞳面Me上のx方向の座標を表し、縦軸は各座標の強度を表している。各座標の強度は、図15のy方向の瞳強度を積分したものである。焦点検出用画素SHA,SHBに対するマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布をそれぞれ、EsdAc,EsdBcで示している。
図15に示すように、焦点検出用画素SHA,SHBに対するマイクロレンズMLの瞳面Me上でのケラレの形状およびその内側の瞳強度分布は左右対称である。このため、焦点検出用画素SHA,SHBに対するマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布も左右対称である。
図17には、撮像素子107の中央に対してある像高を持った位置の画素のマイクロレンズMLの瞳面Me上でのケラレを示している。図17(a)は焦点検出用画素SHAに対するケラレを、図17(b)は焦点検出用画素SHBに対するケラレを示している。図17は図13(b)と図14とを重ね合わせたものに相当し、焦点検出用画素SHA,SHBには、Area2で示した形状の内側を透過した光束が図示した瞳強度分布で入射する。
図18には、撮像素子107の中央に対してある像高を持った位置の画素のマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布であって、瞳分離方向の座標軸に射影した後の1次元瞳強度分布を示している。横軸は瞳面Me上での瞳分離方向の座標を示し、縦軸は各座標の強度を示している。各座標の強度は、図17の瞳強度を瞳分離方向と直交する方向に積分したものである。図18中、焦点検出用画素SHA,SHBの瞳面Me上での入射光束の瞳強度分布は、EsdAh,EsdBhで示している。焦点検出用画素SHA,SHBのマイクロレンズMLの瞳面Me上での瞳強度分布は左右対称である。しかし、ケラレの形状が左右非対称形状であることから、焦点検出用画素SHA,SHBのマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布EsdAh,EsdBhは左右非対称となる。
次に、前述したA像とB像(A像信号とB像信号)の位相差および撮影光学系のデフォーカス量を検出する方法について説明する。
被写体の光量分布をf2(x,y)とし、その光学像である被写体像の光量分布をg2(x,y)とするとき、
で示される畳み込み積分(convolution)を用いた関係が成立する。ここで、h2(x,y;d)は、デフォーカス量dに応じて、被写体の像が撮像系(撮影光学系および画像生成系)において劣化する状態を表す伝達関数であり、点像分布関数(point spread function)と呼ばれる。焦点検出に用いる一対の被写体像(像信号)の状態を知るには、点像分布関数を知る必要がある。
ここで、本実施例の焦点検出は、位相差検出方式と呼ばれる方式で行われる。位相差検出方式においては、一対の像信号の1次元方向に注目し、その位相差を検出するため、点像分布関数の代わりに1次元関数である線像分布関数(line spread function)を用いて焦点検出に関する撮像系を評価することができる。
そこで、被写体の光量分布をf(x)とし、被写体像であるA像の光量分布をgA(x)とし、もう1つの被写体像であるB像の光量分布をgB(x)とする。この場合、焦点検出用画素SHAの線像分布関数hA(x;d)と、焦点検出用画素SHBの線像分布関数hB(x;d)とを用いると、以下の関係が成り立つ。
このとき、光量分布gA(x)とgB(x)のずれ量(位相差)pが、相関演算の式(3)を最小とする値として算出される。
また、線像分布関数hAとhBの重心間隔である基線長cは、以下の式(4)で定義される。
ずれ量pは、線像分布関数hAとhBが平行移動により一致し、ノイズなどの影響が無い場合には、線像分布関数hAとhBの基線長cと一致する。すなわち、
となる。
ある点光源からの光束が結像光学系の射出瞳を通過して結像面上に形成する点像の強度分布、いわゆる点像分布関数は、射出瞳形状を有する瞳強度分布が結像面上に縮小投影されたものと考えられる。同様に、線像分布関数は1次元方向における射出瞳形状、つまりは該射出瞳形状を有する瞳強度分布を瞳分離方向と直交する方向に積分した1次元の瞳強度分布がマイクロレンズMLにより結像面上に縮小したものと考えることができる。したがって、線像分布関数は、図16または図18に示した1次元瞳強度分布をスケール変換したものに相当し、デフォーカス量に応じて、それぞれ1次元瞳強度分布を横軸方向に縮小し、縦軸方向に拡大したものと考えることができる。
マイクロレンズMLの瞳面Meの座標をXとして、焦点検出用画素SHAの1次元瞳強度分布関数をpA(X)とする。また、焦点検出用画素SHBの1次元瞳強度分布関数をpB(X)とする。さらに、図19に示すように、撮像素子107から瞳面Meまでの距離(瞳距離)をDとする。任意のデフォーカス量dに対して、焦点検出用画素SHAの線像分布関数hA(x;d)と焦点検出用画素SHBの線像分布関数hB(x;d)は、以下のスケール変換から求めることができる。
デフォーカス量dは、撮像素子107の位置を0として、前ピン(図19(a))で負の値を、後ピン(図19(b))で正の値をとる。
ここで、1次元瞳強度分布関数pA,pBの基線長Cを、以下の式(8)で定義する。
式(6)のスケール変換の関係式は、線像分布関数hA,hBの基線長cと1次元瞳強度分布関数pA,pBの基線長Cとの間でも成り立つ。すなわち、
となる。
さらに、線像分布関数hA,hBの一致度が良い場合には、式(5)が成り立つことから、ずれ量pとデフォーカス量dとの関係が以下の式(10)のように求まる。
したがって、異なる瞳領域を通過した光束により生成される一対の像の光量分布gA(x),gB(x)を知ることができれば、ずれ量pと式(10)とから、結像光学系のデフォーカス量を算出することができる。
このとき、図16や図18に示したように、焦点検出用画素SHA,SHBのマイクロレンズMLの瞳面Me上での入射光束の瞳強度分布が、レンズ保持枠等の部材でケラレると、線像分布関数hA,hBの一致度が低下する。その結果、式(5)および式(10)が成立しなくなり、デフォーカス量の検出精度が低下する。このため、デフォーカス量の検出精度を向上させるために、A像とB像(A像信号とB像信号)を修正して、これらの像の一致度(線像分布関数hA,hBの一致度)を高めることが有効である。
次に、A像とB像の修正方法について説明する。焦点検出用画素の配置間隔(ピッチ)に対して被写体像の線幅が広いほど、被写体像データの離散化に伴う像形状の劣化は少ない。このため、被写体像のコントラストが十分に高い場合には、修正後の像を修正前の像よりもぼかして滑らかにすることで被写体像の線幅を広げる処理(以下、第1の処理という)を行うことで、デフォーカス量の検出精度をより向上させる。また、第1の処理では、像を滑らかにするため、像の修正と同時に被写体像に含まれる高周波ノイズ成分を除去することができる。
一方、被写体像の線幅が広くコントラストが低い場合には、修正後の像を修正前の像より鮮鋭化して被写体像の線幅を狭める処理(以下、第2の処理という)を行うとよい。これにより、修正後の被写体像のコントラストを高めて、デフォーカス量の検出精度をより向上させる。
本実施例では、撮像素子の出力信号から得られた被写体像のコントラスト評価値(コントラスト値)を算出する。ここにいう「撮像素子の出力信号」は、焦点検出用画素からの画素信号、A像信号およびB像信号のうち少なくとも一方、および撮像用画素からの画素信号のいずれでもよい。そして、コントラスト評価値が所定値より高い場合は、A像およびB像信号を修正前よりも滑らかにする第1の処理を行う。一方、コントラスト評価値が所定値より低い場合(以下である場合)は、A像およびB像信号を修正前よりも鮮鋭化する第2の処理を行う。これにより、被写体像のコントラストに応じた適切な像修正を行い、撮影光学系の焦点状態の検出精度を向上させることができる。第1の処理および第2の処理は、第1の信号処理手段および第2の信号処理手段として機能するカメラCPU121により行われる。
以下、カメラCPU121により行われる焦点検出処理(焦点検出方法)について、図20のフローチャートを用いて説明する。この処理は、カメラCPU121内のROMに格納されたコンピュータプログラムに従って実行される。このことは、後述する他の実施例でも同じである。
ステップS001では、カメラCPU121は、ケラレ状態を知るためのレンズ情報を読み出し、ステップS002へと進む。
ステップS002では、カメラCPU121は、ユーザによって選択された又はカメラCPU121が自動的に設定した焦点検出領域を読み出す。この後、ステップS003へと進む。
ステップS003では、カメラCPU121は、ステップS002で読み出した焦点検出領域に含まれる各焦点検出用画素においてカメラCPU121内のROMに格納されている瞳強度分布の情報を読み出す。そして、瞳強度分布情報とステップS001で得られたケラレ情報とを合わせ用いて瞳強度を瞳分離方向と直交する方向に積分し、A像とB像に対応する1次元瞳強度分布関数を算出する。さらに、カメラCPU121は、式(8)を用いて、これら1次元瞳強度分布関数の基線長Cを求める。この後、ステップS004へと進む。
ステップS004では、カメラCPU121は、ステップS002で読み出した焦点検出領域に含まれる焦点検出用画素から画素信号を読み出し、A像信号およびB像信号を生成する。なお、以下の説明では、A像信号およびB像信号をそれぞれ、A像およびB像という。この後、ステップS005へと進む。
ステップS005では、カメラCPU121は、ステップS003で得た1次元瞳強度分布関数から、ステップS004で生成したA像とB像のシェーディングを予測し、シェーディング補正を行う。シェーディング補正後、ステップS006へと進む。
ステップS006では、カメラCPU121は、ステップS005で得たシェーディング補正後のA像とB像(第1および第2の処理を受けていないA像とB像)を用いて、公知の相関演算によりこれら像のずれ量(位相差)を求める。そして、式(10)の関係を用いて、デフォーカス量の暫定値(以下、暫定デフォーカス量という)を求める。暫定デフォーカス量の算出後、ステップS007へと進む。
ステップS007では、カメラCPU121は、ステップS005で得たシェーディング補正後のA像とB像のうち少なくとも一方を用いて、公知のコントラスト評価方法によってコントラスト評価値を求め、ステップS010へと進む。A像とB像のうちコントラスト評価対象像が高コントラストであればコントラスト評価値は高くなり、コントラスト評価対象像が低コントラストであればコントラスト評価値は低くなる。コントラスト評価値としては、例えば、(像強度の最大値)−(像強度の最小値)から求めたり、隣接画素間の強度差の絶対値で最大のものを用いたりすることができる。もちろん、他の方法でコントラスト評価値を求めてもよい。
ステップS010では、カメラCPU121は、ステップS007で算出したコントラスト評価値が所定値より高いか否かを判定する。コントラスト評価値が所定値より高い場合にはステップS100へと進み、第1の処理を行う。一方、コントラスト評価値が所定値より低い(以下)である場合にはステップS200へと進み、第2の処理を行う。第1および第2の処理の詳細については、後述する。
前述したように、A像とB像の非対称性は、焦点検出用画素SHA,SHBに非対称な線像分布が畳み込み積分されることによって生じる。図21は、被写体像の非対称性を示す概念的に示している。
図21において、横軸は焦点検出領域内でのx方向の座標を、縦軸は被写体像の輝度を示す。図21(a)は、被写体像の光量分布Obj(f)を表しており、図21(b)の実線と破線はそれぞれ、あるデフォーカス量dにおける焦点検出用画素SHAの線像LSFA(hA)と焦点検出用画素SHBの線像LSFB(hB)を表している。また、図21(c)の実線と破線はそれぞれ、あるデフォーカス量dにおける被写体像に対応したA像ImgA(gA)とB像ImgB(gB)を表しており、これらは非対称であり、像の一致度は良くない。
ステップS100では、カメラCPU121は、A像とB像の非対称性を修正し、修正後のA像とB像を修正前よりも滑らかにする第1の処理を行う。
ここで、第1の処理について説明する。A像gAは、前述した式(2A)により得られる。
焦点検出用画素SHAからの画素信号により生成されたA像gAに、焦点検出用画素SHBの線像hBを畳み込み積分して得られる修正像gA,Bは以下のように表される。
同様に、焦点検出用画素SHBからの画素信号により生成されたB像gBに、焦点検出用画素SHAの線像hAを畳み込み積分して得られる修正像gB,Aは以下のように表される。
式(11A),(11B)より、修正像gA,Bと修正像gB,Aは互いに等しくなる(互いに同じ形状を有する)ことがわかる。
また、A像とB像の重心間隔を保ってこれらの非対称性を解消するには、線像hBの重心を原点に移動した線像h0BをA像gAに畳み込み積分し、線像hAの重心を原点に移動した線像h0AをB像gBに畳み込み積分すればよい。
図22には、A像とB像の非対称性を解消するためのフィルタ処理を示す。図22(a)の実線と破線はそれぞれ、あるデフォーカス量におけるA像用像修正フィルタFilterA(線像h0B)およびB像用像修正フィルタFilterB(線像h0A)を示す。図22(b)の実線と破線はそれぞれ、A像ImgAにA像用像修正フィルタFilterAを畳み込み積分して得られた修正像ReImgAおよびB像ImgBにB像用像修正フィルタFilterBを畳み込み積分して得られた修正像ReImgBを示す。図22(b)に示すように、修正像ReImgAおよび修正像ReImgBは互いに同じ形状を有する。
第1の処理では、図22(b)に実線で示す修正像ReImgAは、A像用像修正フィルタFilterA(線像h0B)を畳み込み積分して得られたものであるため、図21(c)に実線で示す修正前のA像ImgAよりもぼけて滑らかになり、像の線幅が広がる。同様に、図22(b)に破線で示す修正像ReImgBは、B像用像修正フィルタFilterB(線像h0A)を畳み込み積分して得られたものであるため、図21(c)に破線で示す修正前のB像ImgBよりもぼけて滑らかになり、像の線幅が広がる。本実施例では、修正像ReImgAと修正像ReImgBの一致度をより高めるために、A像ImgAとB像ImgBに対して、互いに異なる線像を畳み込み積分する像修正フィルタ(つまりは互いに異なる像修正フィルタ)を適用している。
図23のフローチャートには、ステップS100で行われる第1の処理を示している。
ステップS101では、カメラCPU121は、ステップS006で算出された暫定デフォーカス量を入力値として設定し、ステップS102へと進む。
ステップS102では、カメラCPU121は、像修正フィルタを作成する。具体的には、ステップS101で設定した暫定デフォーカス量に基づいて、式(6)、(7A)および(7B)に従い、ステップS003で得られた1次元瞳強度分布関数をスケール変換し、A像に対応する線像AとB像に対応する線像Bを求める。次に、線像Aの重心が原点となるように平行移動させたものを線像A0とし、線像Bの重心が原点となるように平行移動させたものを線像B0とする。
その後、「線像B0」をA像に対応したA像用像修正フィルタとし、「線像A0」を被写体像B像に対応したB像用像修正フィルタとする。つまり、式(11A)と式(11B)で説明したように、線像A0と線像B0を入れ替えたものを、像修正フィルタとして用いる。この後、ステップS103へと進む。
ステップS103では、カメラCPU121は、ステップS102で得たA像用像修正フィルタ(線像B0)を用いてA像の畳み込み積分を行い、修正像A(ReImgA)を得る。同様に、カメラCPU121は、ステップS102で得られたB像用像修正フィルタ(線像A0)を用いてB像の畳み込み積分を行い、修正像B(ReImgB)を得る。この後、ステップS104へと進む。
ステップS104では、カメラCPU121は、公知の相関演算方法により、ステップS103で得た修正像ReImgAと修正像ReImgBの位相差を求め、ステップS105へと進む。
ステップS105では、カメラCPU121は、ステップS104で得られた位相差から、式(10)を用いてデフォーカス量を演算し、ステップS106へと進む。
ステップS106では、カメラCPU121は、ステップS101で設定した暫定デフォーカス量とステップS105で演算したデフォーカス量との差の絶対値を求める。そして、差が所定の許容値より小さければ(以下であれば)、図20のステップS008へと進み、ステップS105で演算したデフォーカス量を、第1の処理によるデフォーカス量として確定する。差が許容値より大きければ、ステップS101に戻る。
次に、第2の処理について説明する。第2の処理では、式(2A)および式(2B)における焦点検出用画素SHAの線像分布関数hA(x;d)と、焦点検出用画素SHBの線像分布関数hB(x;d)とを、同一の線像分布関数hC(x;d)で置き換えて、A像とB像を同じ形状に修正する。
まず、各分布関数をフーリエ変換する。波数をkとし、被写体の光量分布f(x)のフーリエ成分をF(k)とし、A像の光量分布gA(x)のフーリエ成分をGA(k)とする。また、B像の光量分布gB(x)のフーリエ成分をGB(k)とする。さらに、A像の線像分布関数hA(x;d)のフーリエ成分をHA(k;d)とし、B像の線像分布関数hB(x;d)のフーリエ成分をHB(k;d)とし、置換後の線像分布関数hC(x;d)のフーリエ成分をHC(k;d)とする。
式(2A)をフーリエ変換すると、
が得られる。ここで、式(12A)の両辺に、HC/HAを乗じると、
が得られる。したがって、HC/HAを逆フーリエ変換したものをA像の置換フィルタrA(x;d)として、式(13A)を逆フーリエ変換すると、修正像gA,Aは以下のように求められる。
同様に、HC/HBを逆フーリエ変換したものをB像の置換フィルタrB(x;d)とすると、修正像gB,Bは以下のように求められる。
式(14A),(14B)より、修正像gA,Aと修正像gB,Bはそれぞれ、線像hA,hBが線像hCに置換され、互いに等しくなることがわかる。
ここで、置換後の線像分布関数hCの線幅を、A像の線像分布関数hAの線幅およびB像の線像分布関数hBの線幅より狭くすれば、修正後の像を鮮鋭化することができる。ただし、線像分布関数hCの線幅を狭くし過ぎると高周波ノイズ成分が増幅され、修正像の一致度が低下する。したがって、線像分布関数hCの線幅は、A像の線像分布関数hAの線幅およびB像の線像分布関数hBの線幅の0.25倍から1.0倍程度が望ましい。
A像とB像の重心間隔を保って非対称性を修正するには、フーリエ成分HAの代わりに線像hAの重心を原点に移動した線像h0Aのフーリエ成分H0Aを用い、フーリエ成分HBの代わりに線像hBの重心を原点に移動した線像h0Bのフーリエ成分H0Bを用いればよい。
さらに、デフォーカス量dの変化に合わせて効率良くA像の置換フィルタrA(x;d)を生成するために、焦点検出用画素SHAの1次元瞳強度分布関数pA(X)に基づいて、A像の親フィルタmA(X)を生成しておくことが望ましい。波数をKとして、焦点検出用画素SHAの1次元瞳強度分布関数pA(X)の重心を原点に移動したp0A(X)のフーリエ成分をP0A(K)とし、置換後の1次元瞳強度分布関数pC(X)のフーリエ成分をPC(K)とする。また、PC/P0Aを逆フーリエ変換したものをA像の親フィルタmA(X)とする。
このとき、式(6)および式(7A)のスケール変換の関係に対応して、デフォーカス量dのA像の線像分布関数hA(x;d)はA像の親フィルタmA(X)から、以下のスケール変換から求めることができる。
同様に、デフォーカス量dのB像の線像分布関数hB(x;d)は、B像の親フィルタmB(X)から、以下のスケール変換から求めることができる。
ここで、B像の親フィルタmB(X)は、焦点検出用画素SHAの1次元瞳強度分布関数pB(X)の重心を原点に移動したp0B(X)のフーリエ成分をP0B(K)として、PC/P0Bを逆フーリエ変換したものである。
図24には、A像とB像の非対称性を解消するための置換フィルタ処理を示している。図24(a)の実線と破線はそれぞれ、あるデフォーカス量における線像LSFA(hA)の重心を原点に移動した線像LSFA0(h0A)と、線像LSFB(hB)の重心を原点に移動した線像LSFB0(h0B)を表す。図24(b)は、置換後の線像LSFC(hC)を表す。置換後の線像LSFCの線幅は、線像LSFA0と線像LSFBの線幅よりも狭い。図24(c)の実線と破線はそれぞれ、あるデフォーカス量におけるA像用置換フィルタFilterA(rA)とB像用置換フィルタFilterB(rB)を示す。
さらに、図24(d)の実線は、A像ImgAにA像用置換フィルタFilterA(rA)を畳み込み積分することで得られた修正像ReImgAを示す。また、破線は、B像ImgBにB像用置換フィルタFilterB(rB)を畳み込み積分することで得られた修正像ReImgBを示す。図24(d)に示すように、修正像ReImgAと修正像ReImgBは、互いに同じ形状を有する。
第2の処理では、図24(d)に実線で示す修正像ReImgAは、A像用置換フィルタFilterA(rA)によって線幅の狭い線像LSFCに置換されるため、図21(c)に実線で示す修正前のA像ImgAよりも鮮鋭化され、像の線幅が狭まる。同様に、図24(d)に破線で示す修正像ReImgBは、B像用置換フィルタFilterB(rB)によって線幅の狭い線像LSFCに置換されるため、図21(c)に破線で示す修正前のB像ImgBよりも鮮鋭化され、像の線幅が狭まる。本実施例では、修正像ReImgAと修正像ReImgBの一致度をより高めるために、A像ImgAとB像ImgBに対して、互いに異なる線像を畳み込み積分する置換フィルタ(つまりは互いに異なる置換フィルタ)を適用している。
図25のフローチャートには、ステップS200で行われる第2の処理を示している。
ステップS201では、カメラCPU121は、図20のステップS003で得た焦点検出用画素SHA,SHBの1次元瞳強度分布関数pA,pBの線幅に基づいて、線幅をより狭く設定したガウシアン型の置換後の1次元瞳強度分布関数pCを算出する。次に、カメラCPU121は、上述した方法でA像の親フィルタmAとB像の親フィルタmBを算出し、ステップS202へと進む。
ステップS202では、カメラCPU121は、図20のステップS006で算出した暫定デフォーカス量を入力値として設定し、ステップS203へと進む。
ステップS203では、カメラCPU121は、置換フィルタを作成する。具体的には、ステップS101で設定された暫定デフォーカス量に基づいて、式(6)、(15A),(15B)に従い、A像とB像の親フィルタmA,mBをスケール変換してA像用およびB像用置換フィルタFilterA(rA),FilterB(rB)を算出する。この後、ステップS204へと進む。
ステップS204では、カメラCPU121は、ステップSS203で得たA像用置換フィルタFilterA(rA)を用いてA像の畳み込み積分を行い、修正像ReImgAを得る。同様に、カメラCPU121は、B像用置換フィルタFilterB(rB)を用いてB像の畳み込み積分を行い、修正像ReImgBを得る。この後、ステップS205へと進む。
ステップS205では、カメラCPU121は、公知の相関演算方法により、ステップS204で得た修正像ReImgA,ReImgBの位相差を求め、ステップS206へと進む。
ステップS206では、カメラCPU121は、ステップS205で得た位相差から、式(10)を用いてデフォーカス量を演算し、ステップS207へと進む。
ステップS207では、カメラCPU121は、ステップS202で設定した暫定デフォーカス量とステップS206で演算したデフォーカス量との差の絶対値を求める。そして、差が所定の許容値より小さければ(以下であれば)、図20のステップS008へと進み、ステップS206で演算したデフォーカス量を、第2の処理によるデフォーカス量として確定する。差が許容値より大きければ、ステップS202に戻る。
図20において、ステップS008では、カメラCPU121は、ステップS100もしくはステップS200で算出したデフォーカス量を、AF用のデフォーカス量として設定し、ステップS009へと進む。
ステップS009では、カメラCPU121は、AF用のデフォーカス量に基づいて、合焦状態を得るための第3レンズ群105の移動方向と移動量を算出し、該算出結果に応じて第3レンズ群105を移動させる。すなわち、AFを行う。こうして、一連の焦点検出処理を終了する。
本実施例によれば、光束のケラレ状態と被写体像とに応じて適切な像の修復が可能となり、撮影光学系の焦点検出精度を向上させることができる。なお、第1の処理と第2の処理としては、上述した処理以外の処理を用いてもよい。
次に、本発明の実施例2について説明する。実施例1でも説明したように、焦点検出用画素の配置間隔(ピッチ)に対して被写体像の線幅が広いほど、被写体像データの離散化に伴う像形状の劣化が少ない。このため、デフォーカス量が小さく、被写体像の高周波成分が多い場合には、修正後の像を修正前の像よりぼかして滑らかにして被写体像の線幅を広げる処理(以下、第1の処理という)を行うことで、デフォーカス量の検出精度をより向上させる。また、第1の処理では、像を滑らかにするため、像の修正と同時に被写体像に含まれる高周波ノイズ成分を除去することができる。
一方、デフォーカス量が大きく被写体像が大きくぼけている場合には、修正後の像を修正前の像より鮮鋭化し、被写体像の線幅を狭める処理(以下、第2の処理という)を行うことで、デフォーカス量の検出精度と検出限界をより向上させる。
本実施例では、撮影光学系の暫定デフォーカス量を算出し、該暫定デフォーカス量が所定値より小さい場合は、修正後の像を修正前の像より滑らかにする第1の処理を行う。一方、暫定デフォーカス量が所定値より大きい(以上である)場合は、修正後の像を修正前の像よりも鮮鋭化する第2の処理を行う。これにより、デフォーカス量に応じた適切な像修正を行い、撮影光学系の焦点検出精度を向上させることができる。
図26のフローチャートには、本実施例における焦点検出処理(焦点検出方法)を示している。なお、図26において、実施例1の図20にて説明したステップと同じステップについては同符号を付して説明に代える。
ステップS006で式(10)を用いて暫定デフォーカス量を求めたカメラCPU121は、ステップS020において、該暫定デフォーカス量が所定値より小さいか否かを判定する。暫定デフォーカス量が所定値より小さい場合にはステップS300へと進み、第1の処理を行う。一方、暫定デフォーカス量が所定値より大きい(以上である)場合はステップS400に進み、第2の処理を行う。
ここで、第1の処理について説明する。焦点検出用画素SHAからの画素信号により形成されたA像信号(以下、A像という)gAに、焦点検出用画素SHBからの画素信号により形成されたB像信号(以下、B像という)gBを畳み込み積分すると、修正像gA,Bが得られる。また、B像gBにA像gAを畳み込み積分すると、修正像gB,Aが得られる。これら、修正像gA,Bと修正像gB,Aは、式(20)に示すように、互い等しい(互いに同じ形状を有する)。
線像hAの重心をxAとし、線像hBの重心をxBとする。A像とB像の重心間隔を保ってこれらの非対称性を解消するには、まず、B像gBを−xBだけ平行移動した像g0BをA像用像修正フィルタFilterAとして用いて、A像gAに畳み込み積分を行う。同様に、A像gAを−xAだけ平行移動した像g0AをB像用像修正フィルタFilterBとして用いて、B像gBに畳み込み積分を行う。
第1の処理では、修正像ReImgAは、A像用像修正フィルタFilterA(g0B)を畳み込み積分することで得られるため、修正前のA像ImgAよりもぼけて滑らかになり、像の線幅が広がる。同様に、修正像ReImgBは、B像用像修正フィルタFilterB(g0A)を畳み込み積分することで得られるため、修正前のB像ImgBよりもぼけて滑らかになり、像の線幅が広がる。本実施例では、修正像ReImgAと修正像ReImgBの一致度を向上させるために、A像とB像に対して互いに異なる線像を畳み込む像修正フィルタを適用している。
図27のフローチャートには、ステップS300で行われる第1の処理を示している。
ステップS301では、カメラCPU121は、ステップS006で算出された暫定デフォーカス量を入力値として設定し、ステップS302へと進む。
ステップS302では、カメラCPU121は、像修正フィルタを作成する。具体的には、ステップS301で設定した暫定デフォーカス量に基づいて、式(6)、(7A)および(7B)に従い、ステップS003で得られた1次元瞳強度分布関数をスケール変換し、A像に対応する線像AとB像に対応する線像Bを求める。次に、線像Aの重心xAと線像Bの重心xBを算出する。続いて、B像を−xBだけ平行移動させた像g0Bを、A像用像修正フィルタFilterA(g0B)とする。同様に、A像を−xAだけ平行移動させた像g0AをB像用像修正フィルタFilterB(g0A)とする。この後、ステップS303へと進む。
ステップS303では、カメラCPU121は、ステップS302で得られたA像用像修正フィルタFilterA(g0B)を用いてA像の畳み込み積分を行い、修正像ReImgAを得る。同様に、B像用像修正フィルタFilterB(g0A)を用いてB像の畳み込み積分を行い、修正像ReImgBを得る。この後、ステップS304へと進む。
ステップS304では、カメラCPU121は、公知の相関演算方法により、ステップS303で得た修正像ReImgAと修正像ReImgBの位相差を求め、ステップS305へと進む。
ステップS305では、カメラCPU121は、ステップS304で得られた位相差から、式(10)を用いてデフォーカス量を演算し、ステップS306へと進む。
ステップS306では、カメラCPU121は、ステップS301で設定した暫定デフォーカス量とステップS305で演算したデフォーカス量との差の絶対値を求める。そして、差が所定の許容値より小さければ(以下であれば)、図20のステップS008へと進み、ステップS305で演算したデフォーカス量を、第1の処理によるデフォーカス量として確定する。差が許容値より大きければ、ステップS301に戻る。
次に、第2の処理について説明する。A像gAおよびB像gBは、前述した式(2A)および式(2B)により得られる。
式(2A)および(2B)の関係が成り立つときに、以下のような繰り返し計算により漸化的にデコンボリューション処理して、被写体f(x)を推定する。
自然数をiとして、被写体f(x)に収束させる関数列fA,i(x)と関数列fB,i(x)を考える。まず、i=0として、A像gAおよびB像gBを初期関数として以下のように設定する。
次に、i番目の関数fA,iと関数fB,iから、以下の漸化式に基づいてi+1番目の関数fA,i+1と関数fB,i+1を求める。αは、0以上で1以下の実数である。
ここで、f’A,i+1とf’B,i+1は、繰り返し計算で使用する補助的な関数列である。式(18A)は、A像gAと線像hAから被写体fを推定するための漸化式であり、式(18B)は、B像gBと線像hBから被写体fを推定するための漸化式である。
式(19A)と式(19B)は、式(18A)と式(18B)の収束関数を同一にするための漸化式である。
式(17A)、式(17B)、式(18A)、(18B)、(19A)および式(19B)により、関数列fA,i(x)と関数列fB,i(x)が収束するまで繰り返し計算を行う。収束した関数は、f(x)に一致する。
関数列fA,i(x)が収束した関数fAと関数列fB,i(x)が収束した関数fBの重心間隔が、A像gAとB像gBの重心間隔と一致するためには、線像hAの重心をxAとし、線像hBの重心をxBとして、以下のような漸化式に従って繰り返し計算を行えばよい。
線像h0Aは、線像hAの重心を原点に移動したものであり、線像h0Bは線像hBの重心を原点に移動したものである。
図28には、A像とB像の非対称性を解消するための繰り返し計算によるデコンボリューション処理の結果を概念的に示している。図28中の実線と破線はそれぞれ、図21(c)のA像ImgAおよびB像ImgBに、式(20A)、(20B)、(21A)および(21B)によってデコンボリューション処理を行うことで得られた修正像ReImgAと修正像ReImgBを示す。
第2の処理では、図28に実線で示す修正像ReImgAは、デコンボリューション処理により、図21(c)に実線で示す修正前のA像ImgAよりも鮮鋭化され、像の線幅が狭まる。同様に、図28に破線で示す修正像ReImgBは、デコンボリューション処理により、図21(c)に破線で示す修正前のB像ImgBよりも鮮鋭化され、像の線幅が狭まる。本実施例では、修正像ReImgAと修正像ReImgBの一致度を向上させるために、互いに異なる線像h0Aと線像h0Bをフィルタとして、繰り返し計算によるデコンボリューション処理を行う。
図29のフローチャートには、ステップS400で行われる第2の処理を示している。
ステップS401では、カメラCPU121は、ステップS006で算出された暫定デフォーカス量を入力値として設定し、ステップS402へと進む。
ステップS402では、カメラCPU121は、線像フィルタを作成する。具体的には、ステップS401で設定した暫定デフォーカス量に基づいて、式(6)、(7A)および(7B)に従い、ステップS003で得られた1次元瞳強度分布関数をスケール変換し、A像に対応する線像AとB像に対応する線像Bを求める。次に、線像Aの重心が原点となるように平行移動させたものを線像A0とし、A像用線像フィルタとする。同様に、線像Bの重心が原点となるように平行移動させたものを線像B0とし、B像用線像フィルタとする。この後、ステップS403へと進む。
ステップS403では、カメラCPU121は、A像用線像フィルタとB像用線像フィルタを用いて、A像とB像に対して、式(17A)、(17B)、(20A)、(20B)、(21A)および(21B)に従ってデコンボリューション処理を行う。これにより、修正像ReImgA,ReImgBを得る。この後、ステップS404へと進む。
ステップS404では、カメラCPU121は、公知の相関演算方法により、ステップS403で得た修正像ReImgA,ReImgBの位相差を求め、ステップS405へと進む。
ステップS405では、カメラCPU121は、ステップS404で得た位相差から、式(10)を用いてデフォーカス量を演算し、ステップS406へと進む。
ステップS406では、カメラCPU121は、ステップS401で設定した暫定デフォーカス量とステップS405で演算したデフォーカス量との差の絶対値を求める。そして、差が所定の許容値より小さければ(以下であれば)、図20のステップS008へと進み、ステップS405で演算したデフォーカス量を、第2の処理によるデフォーカス量として確定する。差が許容値より大きければ、ステップS401に戻る。
本実施例によれば、光束のケラレ状態と被写体像とに応じて適切な像の修復が可能となり、撮影光学系の焦点検出精度を向上させることができる。なお、第1の処理と第2の処理としては、上述した処理以外の処理を用いてもよい。