図1は、本発明の実施形態による撮像装置100の構成例を示す図である。101は撮影レンズ、102はマイクロレンズ、103は撮像素子である。撮影レンズ101を通過した光は、撮影レンズ101の焦点位置近傍に結像する。撮像素子103は、CMOSイメージセンサなどの固体撮像素子である。撮影レンズ101は、後述する焦点検出(距離測定)結果に応じて、焦点を合わせる為の動作を行う焦点駆動機構を備えている。
アナログ信号処理回路(AFE)104は、撮像素子103から出力される画像信号に対して、相関二重サンプリング処理、信号増幅、基準レベル調整、A/D変換処理等を行う。デジタル信号処理回路(DFE)105は、アナログ信号処理回路104から出力される画像信号に対して、基準レベル調整等のデジタル画像処理を行う。
画像処理回路106は、デジタル信号処理回路105から出力された画像信号に対して、後述するA像及びB像の相関演算、焦点検出、所定の画像処理、及び欠陥補正等を施す。メモリ回路107及び記録回路108は、画像処理回路106から出力された画像信号等を記録保持する不揮発性メモリ又はメモリカード等の記録媒体である。
制御回路109は、撮影レンズ101、撮像素子103、画像処理回路106、操作回路110、表示回路111及び発光装置112等の撮像装置全体を統括的に駆動・制御する。操作回路110は、撮像装置100に備え付けられた操作部からの信号を入力し、制御回路109に対してユーザの命令を出力する。表示回路111は、撮影後の画像やライブビュー画像、各種設定画面等を表示する。
発光装置112は、被写体に向けてパルス光を投射する投光部である。発光装置112は、制御回路109からの命令に同期し、信号PLIGHT(図4及び図6)に応じて発光を行う。
図3は、図1の撮像素子103の構成例を示す図である。撮像素子103は、行列状に配置された複数の画素200を有する。なお、図3においては、4行4列の計16個の画素200を図示するが、実際は数百万〜数千万の画素200が設けられる。垂直シフトレジスタ401は、各行に接続される信号線402を介して、各行の画素200を選択・駆動する。なお、信号線402は、簡略化のため、転送パルス信号PTXA及びPTXBの信号線のみを図示しているが、実際には各行毎に転送パルス以外の複数の駆動信号線が接続される。画素200は、垂直出力線307A及び307Bを介して読み出し回路403に、光電変換に基づく信号を出力する。複数の電流源負荷420は、それぞれ、垂直出力線307A及び307Bに接続される。
図2は、図3の画素200の構成例を示す回路図である。画素200は、1つのフォトダイオード301を有する。フォトダイオード301には、2つの転送スイッチ302A及び302Bが接続される。転送スイッチ302A及び302Bには、それぞれ、フローティングディフュージョン303A及び303Bが接続される。フローティングディフュージョン303Aには、リセットスイッチ305A及び増幅部304Aが接続される。フローティングディフュージョン303Bには、リセットスイッチ305B及び増幅部304Bが接続される。増幅部304A及び304Bには、それぞれ、選択スイッチ306A及び306Bが接続される。リセットスイッチ305A,305B及び増幅部304A,304Bのドレインは、基準電位308を共有している。
フォトダイオード301は、光を受光し、その受光量に応じた電荷を生成する光電変換部である。転送スイッチ302Aは、フォトダイオード301で発生した電荷をフローティングディフュージョン303Aに転送する。転送スイッチ302Bは、フォトダイオード301で発生した電荷をフローティングディフュージョン303Bに転送する。転送スイッチ302A及び302Bは、それぞれ、転送パルス信号PTXA及びPTXBによって制御される。フローティングディフュージョン303A及び303Bは、それぞれ、フォトダイオード301から転送された電荷を一時的に保持するとともに、保持した電荷を電圧に変換する電荷電圧変換部である。
増幅部304A及び304Bは、MOSトランジスタを有するソースフォロア回路である。増幅部304Aは、フローティングディフュージョン303Aに保持した電荷に基づく電圧を増幅して、画素信号として出力する。増幅部304Bは、フローティングディフュージョン303Bに保持した電荷に基づく電圧を増幅して、画素信号として出力する。リセットスイッチ305A及び305Bは、それぞれ、フローティングディフュージョン303A及び303Bの電位を基準電位(電源電位)308にリセットする。リセットスイッチ305A及び305Bは、リセットパルス信号PRESによって制御される。
選択スイッチ306Aは、増幅部304Aで増幅された画素信号を垂直出力線307Aに出力する。選択スイッチ306Bは、増幅部304Bで増幅された画素信号を垂直出力線307Bに出力する。垂直出力線307A及び307Bは、同じ列の複数の画素200で共有される。選択スイッチ306A及び306Bは、セレクトパルス信号PSELによって制御される。
次に、図3の読み出し回路403の構成を説明する。408はクランプ容量、409はフィードバック容量、410はオペアンプである。基準電源411は、基準電圧を供給する。スイッチ412は、フィードバック容量409の両端をショートさせるためのスイッチである。スイッチ412は、リセット信号PC0Rで制御される。容量413及び414は、信号電圧を保持する。413及び414は容量である。スイッチ415及び416は、それぞれ、容量413及び414への書き込みを制御する。
スイッチ415は、信号PTSで制御され、スイッチ416は信号PTNで制御される。各列のスイッチ417は、それぞれ、水平シフトレジスタ404からの信号H0〜H7に応じて、容量413の信号を、水平出力線405を介して、出力アンプ407に出力する。各列のスイッチ418は、それぞれ、水平シフトレジスタ404からの信号H0〜H7に応じて、容量414の信号を、水平出力線406を介して、出力アンプ407に出力する。出力アンプ407は、水平出力線405及び406の信号の差分信号を出力する。
図4は、撮像装置100の第1の駆動方法を示すタイミングチャートである。第1の駆動方法は、飛行時間法(以下、TOF法という)による距離検出を行うための駆動方法であり、広範囲の被写体の位置を検出することができる。
時刻t21の前では、信号PRESをハイレベルにし、リセットスイッチ305A及び305Bをオンにし、フローティングディフュージョン303A及び303Bをリセットする。時刻t21では、信号PTXA及びPTXBをハイレベルにし、転送スイッチ302A及び302Bをオンにし、フォトダイオード301もリセットする。時刻t22では、信号PTXA及びPTXBをローレベルにし、転送スイッチ302A及び302Bをオフにし、フォトダイオード301の電荷蓄積を開始する。
電荷蓄積期間経過後、時刻t23では、信号PSELをハイレベルにし、選択スイッチ306A及び306Bをオンにし、増幅部304A及び304Bを動作状態にする。時刻t24では、信号PRESをローレベルにし、リセットスイッチ305A及び305Bをオフにし、フローティングディフュージョン303A及び303Bのリセットを解除する。このときの増幅部304A及び305Bの出力信号は、それぞれ、垂直出力線307A及び307Bにリセット信号レベルとして読み出され、読み出し回路403に入力される。時刻t25では、信号PC0Rをローレベルにし、スイッチ412をオフにし、オペアンプ410のリセットを解除する。時刻t26では、信号PTNをハイレベルにし、スイッチ416をオンにし、オペアンプ410の出力信号の容量414への書き込みを開始する。時刻t27では、信号PTNをローレベルにし、スイッチ416をオフにし、オペアンプ410の出力信号の容量414への書き込みを終了する。容量414には、リセット信号レベルが書き込まれる。
次に、時刻t28では、信号PTXAをハイレベルにし、転送スイッチ302Aをオンにし、フォトダイオード301の電荷をフローティングディフュージョン303Aへ転送開始する。時刻t29では、信号PLIGHTをハイレベルにし、発光装置112から赤外線のパルス光を投射させる。時刻t30では、信号PTXAをローレベルにし、信号PTXBをハイレベルにする。すると、転送スイッチ302Aがオフし、フォトダイオード301の電荷のフローティングディフュージョン303Aへの転送が終了するとともに、転送スイッチ302Bがオンする。これにより、フォトダイオード301の電荷のフローティングディフュージョン303Bへの転送が開始する。その後、時刻t31では、信号PLIGHTをローレベルにし、発光装置112からのパルス光の投射を終了する。時刻t32では、信号PTXBをローレベルにし、転送スイッチ302Bをオフにし、フォトダイオード301の電荷のフローティングディフュージョン303Bへの転送を終了する。
ここで、フローティングディフュージョン303Aへの電荷転送開始の時刻t28から信号PLIGHTをハイレベルにして光投射を開始する時刻t29までの間の期間をΔts1とする。また、信号PLIGHTをハイレベルにして光投射を開始する時刻t29から信号PLIGHTをローレベルにして光投射を停止する時刻t31までの期間をΔtp1とする。
時刻t33では、信号PTSをハイレベルにし、スイッチ415をオンにする。奇数列の読み出し回路403では、垂直出力線307Aの信号に基づく信号の容量413への書き込みが開始する。偶数列の読み出し回路403では、垂直出力線307Bの信号に基づく信号の容量413への書き込みが開始する。時刻t34では、信号PTSをローレベルにし、スイッチ415をオフにする。奇数列の読み出し回路403では、垂直出力線307Aの信号に基づく信号の容量413への書き込みが終了する。偶数列の読み出し回路403では、垂直出力線307Bの信号に基づく信号の容量413への書き込みが終了する。
次に、時刻t35では、信号PRESをハイレベルにし、リセットスイッチ305A及び305Bをオンにし、フローティングディフュージョン303A及び303Bをリセットする。時刻t36〜t37の期間では、水平シフトレジスタ404の駆動パルスH0〜H7が順次、ハイレベルパルスになり、各列の読み出し回路403のスイッチ417及び418が順次オンになる。これにより、各列の読み出し回路403の容量413及び414の信号は、順次、共通出力線405及び406に出力される。出力アンプ407は、共通出力線405及び406の差電圧を、各列の画素信号として順次、出力する。
図5は、被写体距離及び画素出力の特性の一例を示すグラフである。ここで、画素出力は、撮像素子103が出力する画素信号のピーク値及びボトム値間を100%として規格化した出力比率を示す。画素出力OUTaは、フローティングディフュージョン303A及び垂直出力線307Aに対応する画素出力である。画素出力OUTbは、フローティングディフュージョン303B及び垂直出力線307Bに対応する画素出力である。撮像装置100から被写体までの距離が所定距離(例えば5m)より近い場合には、OUTa>OUTbとなる。撮像装置100から被写体までの距離が所定距離(例えば5m)より遠い場合には、OUTa<OUTbとなる。撮像装置100から被写体までの距離が所定距離(例えば5m)である場合は、OUTa≒OUTbとなる。例えば、所定距離を5mに設定した場合、被写体距離が1mの被写体の時は、画素出力OUTaが画素出力OUTbより大きくなる。また、被写体距離が20mの被写体の時は、画素出力OUTbが画素出力OUTbより大きくなる。また、被写体距離が5mの被写体の時は、画素出力OUTa及びOUTbはほぼ等しくなる。画像処理回路106は、第1の駆動方法により得られた画素出力OUTa及び画素出力OUTbを基に、被写体距離を測定することができる。
ここで、距離測定範囲を広くするため、図4における信号PLIGHTのハイレベル期間Δtp1は、被写体への投射が十分にできる時間を設定してあるが、その分、被写体距離の変化に対して画素出力の変化が小さく、距離の分解能を上げることが難しい。
図6(a)〜(c)は、撮像装置100の第2の駆動方法を示すタイミングチャートである。第1の駆動方法(図4)により被写体距離を測定した後、第2の駆動方法(図6(a)〜(c))で駆動する。第2の駆動方法(図6(a)〜(c))は、第1の駆動方法(図4)に対して、分解能を上げ、特定範囲の被写体の高精度の位置を検出することができる。以下、図6(a)〜(c)が図4と異なる点を説明する。図6は、図4に対して、信号PTXA、PTXB及びPLIGHTの制御が異なる。図6(a)は近距離の被写体、図6(b)は中距離の被写体、図6(c)は遠距離の被写体の場合のタイミングチャートである。図6(a)〜(c)には、信号PLIGHTの制御により、発光装置112で投光した光が被写体に反射し、撮像素子103に入射光として戻るタイミングを示す。
まず、図6(a)の信号を説明する。時刻t28では、信号PTXAをハイレベルとし、転送スイッチ302Aをオンにし、フォトダイオード301からフローティングディフュージョン303Aへの電荷転送を開始する。時刻t28から期間Δts2経過後の時刻t40では、信号PLIGHTをハイレベルにする。次に、時刻t40から期間Δtp2経過後の時刻t41では、信号PLIGHTをローレベルにする。時刻t40〜t41の期間の間の時刻t30では、信号PTXAをローレベルとし、信号PTXBをハイレベルにする。すると、フォトダイオード301からフローティングディフュージョン303Aへの電荷転送は終了し、フォトダイオード301からフローティングディフュージョン303Bへの電荷転送が開始する。なお、期間Δtp2は、図4の期間Δtp1より短い期間である。期間Δtp2で投射したパルス光は、近距離にある被写体に反射して、フォトダイオード301に入射する入射光のタイミングを入射光aとして示す。入射光aは、近距離の被写体に反射しで戻るまでの時間が短い為、入射光aの入射期間と期間Δtp2との時間差は小さい。
次に、図6(b)の信号を説明する。時刻t28では、信号PTXAをハイレベルにし、転送スイッチ302Aをオンにし、フォトダイオード301からフローティングディフュージョン303Aへの電荷転送を開始する。時刻t28から期間Δts3経過後の時刻t42では、信号PLIGHTをハイレベルにする。時刻t42から期間Δtp2経過後の時刻t43では、信号PLIGHTをローレベルにする。その後、時刻t30では、信号PTXAをローレベルにし、信号PTXBをハイレベルにする。
次に、図6(c)の信号を説明する。時刻t28では、信号PTXAをハイレベルにし、転送スイッチ302Aをオンにし、フォトダイオード301からフローティングディフュージョン303Aへの電荷転送を開始する。時刻t28から期間Δts4経過後の時刻t44では、信号PLIGHTをハイレベルにする。時刻t44から期間Δtp2経過後の時刻t45では、信号PLIGHTをローレベルにする。その後、時刻t30では、信号PTXAをローレベルにし、信号PTXBをハイレベルにする。
上記の期間Δts2、Δts3及びΔts4の長さは相互に異なり、Δts2>Δts3>Δts4の関係を有する。つまり、被写体距離に応じて、信号PLIGHTによる投射光のタイミングを変更することにより、入射光の入射期間が時刻t30を含むようになり、被写体検出が可能になる。また、投射期間Δtp2を、図4の広範囲距離測定対応の期間Δtp1より短く設定することにより、距離検出分解能を向上させることができる。
なお、上記の説明では、信号PLIGHTによる投射光のタイミングのみを記載している。例えば、被写体距離が近い近距離動作(図6(a))の時には、入射光が飽和しにくいように発光装置112の発光量を抑えることができる。これに対し、被写体が遠い中距離及び遠距離動作(図6(b)及び図6(c))の時には、投射光が被写体まで届きやすいように、発光装置112の発光量を増加させ、より高精度化することができる。その方法としては、発光装置112の電流を変える方法、又は集光レンズの焦点距離を変える方法がある。
また、第2の駆動方法の投光期間Δtp2は、第1の駆動方法での距離測定結果によらず一定である場合を例に説明したが、第1の駆動方法での距離測定結果によって、投光期間Δtp2の長さを可変にしてもよい。例えば、被写体距離が近距離の場合は、投光期間Δtp2を短くし、被写体距離が遠距離での場合は、投光期間Δtp2を長くする。
なお、Δts4+Δtp2=Δts3、Δts3+Δtp2=Δts2にすることができる。また、Δts4+Δtp2>Δts3、Δts3+Δtp2>Δts2のようにオーバーラップ期間を設けることにより、距離測定領域の境界での精度低下を防ぐことができる。
図7は、撮像装置100のTOF法の動作例を示すフローチャートである。ステップS101では、撮像装置100は、図4の第1の駆動方法で駆動し、撮像素子103は、画素出力OUTa及びOUTbを出力する。第1の駆動方法では、上記のように、広範囲の距離測定に対応しており、期間Δts1及びΔtp1の信号PLIGHTを生成し、画素出力OUTa及びOUTbを得る。
次に、ステップS102では、画像処理回路106は、画素出力OUTa及びOUTbを基に、被写体距離を検出し、距離マップ(図8(b))を生成する。
次に、ステップS103では、画像処理回路106は、距離マップ(図8(b))を基に、詳細に測定したい被写体(主被写体)の概略距離Lを検出し、概略距離Lと閾値とを比較する。概略距離Lが第1の閾値(例えば、3m)より小さい場合は、概略距離Lが近距離であるとして、ステップS104へ進む。概略距離Lが第1の閾値(例えば、3m)以上かつ第2の閾値(例えば、10m)未満である場合は、概略距離Lが中距離であるとして、ステップS106へ進む。概略距離Lが第2の閾値(例えば10m)以上である場合は、概略距離Lが遠距離であるとして、ステップS108へ進む。
ステップS104では、撮像装置100は、図6(a)の第2の駆動方法で駆動し、撮像素子103は、画素出力を出力する。図6(a)の第2の駆動方法は、上記のように、期間Δts2及びΔtp2の信号PLIGHTを生成し、画素出力を得る。次に、ステップS105では、画像処理回路106は、ステップS104の画素出力に基づき、期間Δts2及びΔtp2に応じて被写体距離を検出する。その後、本動作を終了する。
ステップS106では、撮像装置100は、図6(b)の第2の駆動方法で駆動し、撮像素子103は、画素出力を出力する。図6(b)の第2の駆動方法は、上記のように、期間Δts3及びΔtp2の信号PLIGHTを生成し、画素出力を得る。次に、ステップS107では、画像処理回路106は、ステップS106の画素出力に基づき、期間Δts3及びΔtp2に応じて被写体距離を検出する。その後、本動作を終了する。
ステップS108では、撮像装置100は、図6(c)の第2の駆動方法で駆動し、撮像素子103は、画素出力を出力する。図6(c)の第2の駆動方法は、上記のように、期間Δts4及びΔtp2の信号PLIGHTを生成し、画素出力を得る。次に、ステップS109では、画像処理回路106は、ステップS108の画素出力に基づき、期間Δts4及びΔtp2に応じて被写体距離を検出する。その後、本動作を終了する。
以上説明した図7のフローチャートの処理の具体例を、図8(a)〜(c)及び図9(a),(b)を参照しながら、説明する。図8(a)〜(c)は、撮像素子103による撮像する被写体例を示し、各破線による四角が画素200を示している。画素数は、説明しやすい数として水平20画素×垂直15画素の計300画素を例に示すが、これに限定されない。図8(a)は、被写体の画像を示す。図8(b)は、ステップS102で、画像処理回路106が第1の駆動方法により被写体距離を検出して生成する距離マップを示す。図8(b)の距離マップは、広範囲の被写体距離を測定可能であり、近距離(人物やテーブル、グラスなど)の被写体の画素は白で示し、中距離(木など)の被写体の画素は斜線で示し、遠距離(空など)の被写体の画素は黒で示す。
画像処理回路106は、図8(b)の距離マップを基に、図9(a)の被写体距離に対応する画素数分布を生成する。図9(a)の画素数分布は、近距離(例えば5m未満)の被写体の画素数が、中距離(例えば5m以上かつ20m未満)及び長距離(例えば20m以上)の被写体の画素数よりも多くなっている。この場合、画像処理回路106は、ステップS103において、被写体距離が近距離であると判定し、ステップS104に進む。このように、画像処理回路106は、図9(a)の画素数分布の画素数が多い被写体距離を基に、ステップ103で被写体距離を判定する。例えば、図8(a)の被写体の場合、近距離の被写体が広い面積を占めている為、主被写体が近距離であると判定して、第2の駆動方法では、近距離にポイントを絞り、図6(a)の第2の駆動方法で駆動する。なお、中距離又は遠距離の被写体が広い面積を占める場合は、中距離又は遠距離の被写体を主被写体と判断し、それに応じて図6(b)又は図6(c)の第2の駆動方法で駆動する。
図8(c)は、ステップS104で、画像処理回路106が第2の駆動方法により被写体距離を検出して生成する距離マップを示す。図8(c)の距離マップは、狭範囲で高分解能の被写体距離測定が可能であり、遠距離の被写体は測定範囲外で測定できていないが、所望の距離(例えば近距離)の被写体を高分解能で測定できる。
画像処理回路106は、図8(c)の距離マップを基に、図9(b)の被写体距離に対応する画素数分布を生成する。図9(b)の画素数分布は、近距離(例えば5m未満)の範囲の中でより細分化された距離測定ができている。画像処理回路106は、図9(b)の画素数分布の画素数が多い被写体距離を基に、ステップ105で被写体距離を検出する。その後、制御回路109は、被写体距離に応じて、撮影レンズ101を駆動する。
以上のように、第1の駆動方法による広範囲の距離測定結果を分析(例えば、面積比による判定など)することで、図6(a)〜(c)の第2の駆動方法を選択し、その選択した第2の駆動方法で駆動する。これにより、多数の測定動作を行わなくても、わずか2回の測定で、高精度の距離測定を行うことができる。
ステップ101では、制御回路109は、発光装置112に第1の投光期間Δtp1にパルス光を投射させ、複数の画素200の信号を読み出す。その後、ステップS102では、画像処理回路106は、第1の投光期間Δtp1に基づく複数の画素200の信号を基に被写体までの第1の距離を演算する。その後、ステップS104、S106又はS108では、制御回路109は、演算された被写体までの第1の距離に応じて、異なるタイミング(期間Δts2〜Δts4)で発光装置112に第2の投光期間Δtp2にパルス光を投射させる。そして、複数の画素200の信号を読み出す。その後、ステップS105、S107又はS109では、画像処理回路106は、第2の投光期間Δtp2に基づく複数の画素200の信号を基に被写体までの第2の距離を演算する。その後、制御回路109は、画像処理回路106により演算された被写体までの第2の距離に応じて、撮影レンズ101を駆動する。第2の投光期間Δtp2は、第1の投光期間Δtp1より短い。
まず、図6(a)について説明する。制御回路109は、画像処理回路106により演算された被写体までの第1の距離が第1の値である場合には、第1のタイミング(期間Δts2)で発光装置112に第2の投光期間Δtp2にパルス光を投射させる。
次に、図6(b)について説明する。制御回路109は、画像処理回路106により演算された被写体までの第1の距離が第1の値より遠い第2の値である場合には、第2のタイミング(期間Δts3)で発光装置112に第2の投光期間Δtp2にパルス光を投射させる。第2のタイミング(期間Δts3)は、第1のタイミング(期間Δts2)より早いタイミングである。
次に、図6(c)について説明する。制御回路109は、画像処理回路106により演算された被写体までの第1の距離が第2の値より遠い第3の値である場合には、第3のタイミング(期間Δts4)で発光装置112に第2の投光期間Δtp2にパルス光を投射させる。第3のタイミング(期間Δts4)は、第2のタイミング(期間Δts3)より早いタイミングである。
なお、図6(a)〜(c)の第2の駆動方法の選択を、第1の駆動方法での測定結果の「全画像の占める割合」を基に行う例を説明したが、それに限定されない。例えば、撮像素子103の領域に応じた判定係数を備え、画面中央(例えば全領域の中の中央4割)で占める割合が多いものをより選択しやすいように重み付けを行うことができる。また、第1の駆動方法の駆動時に測定対象とする領域を主被写体が存在する近傍の狭い領域に特定し、第2の駆動方法の際には全領域を測定対象にすることもできる。また、測定領域をユーザが任意に設定できる構成として、測定領域における第1の駆動方法の駆動時の測定結果の平均距離などを主被写体と判定するようにしてもよい。
以上のように、第1の駆動方法で被写体の概略の距離を検出し、第1の駆動方法の結果に応じて、図6(a)〜(c)の第2の駆動方法を選択する。具体的には、信号PLIGHTによる発光装置112の投光タイミングを変更し、投光期間Δtp2を狭くすることで、分解能を上げ、高精度の距離測定を行うことができる。
なお、第2の駆動方法は、第1の駆動方法の距離測定結果に基づき、図6(a)〜(c)の3つのパターンに分けたが、それに限定されず、例えば、5パターン、8パターンなどに分けてもよい。また、画素200は、1フォトダイオード+2フローティングディフュージョンの構成であるが、それに限定されない。例えば、1フォトダイオード+1フローティングディフュージョンの画素を設け、隣接する2画素を使用することでTOF法を行ってもよい。
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。