以下、本発明の好ましい実施形態を、添付の図面に基づいて詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態による焦点検出装置を適用した撮像装置の構成を示すブロック図である。図1では、撮像装置本体(カメラ本体)と撮像レンズ(撮像光学系)とが一体となった撮像装置を示している。しかしながら、本発明が適用される実施形態は、これに限定されるものではなく、撮像レンズが撮像装置本体に対して交換可能に装着される撮像システムにも適用可能である。また、以下に示す実施形態では、撮像装置は焦点検出装置としての機能を含んでいるため、撮像装置は焦点検出装置でもある。
撮像装置は、撮像素子100、タイミングジェネレータ(TG)101、アナログフロントエンド(AFE)102、CPU103、操作部104、ROM105、表示部106、RAM107、画像処理部108、記録部109及びAF演算部110を有する。撮像装置はさらに、フォーカルプレーンシャッタ111、フォーカス駆動回路112、絞り駆動回路113、フォーカスアクチュエータ114、絞りアクチュエータ115、第3レンズ群116、第2レンズ群117、絞り118及び第1レンズ群119を有する。
撮像素子100は、動画像又は静止画像を撮影する機能を有している。この撮像素子100は、撮像光学系により形成される被写体の光学像を電気信号に変換して、アナログ信号である画像信号として出力する。撮像素子100から出力されたアナログ信号は、AFE102において、ゲインが調整されるとともに、所定の量子化ビットに応じてデジタル信号(画像データ)に変換される。撮像素子100は、タイミングジェネレータ(TG)101によってその駆動タイミングが制御される。
なお、図1に示す例では撮像素子100から出力されるアナログ信号をAFE102にてデジタル信号に変換する構成が示されているが、この限りではない。例えば、撮像素子100内でアナログデジタル変換が行われ、撮像素子100からデジタル信号が出力される構成であってもよい。また、図1に示す例では撮像素子100外部にあるTG101が撮像素子100の駆動タイミングを制御する構成だが、撮像素子100内部に駆動タイミングを制御するTG101の機能が設けられていてもよい。
CPU103は、撮像装置を統括的に制御する制御手段としての機能を有する。画像処理部108は撮影の結果得られた画像データの補正や圧縮等の処理を行う。
RAM107は、AFE102から出力される画像データ及び画像処理部108で処理された画像データを記憶するためのメモリ(画像メモリ)であり、さらに、RAM107は後述するCPU103によってワークメモリとしても用いられる。なお、RAM107は、アクセス速度が問題ないレベルのメモリであれば、他のメモリを用いてもよい。
ROM105には、CPU103上で動作するプログラムが格納される。一例としては、ROM105としてフラッシュROMが用いられるが、アクセス速度が問題ないレベルのメモリであれば、他のメモリを用いてもよい。
記録部109は、例えば、不揮発性メモリ又はハードディスクである。記録部109には、例えば、静止画像データ及び動画像データが記録される。図1では、記録部109が撮像装置に含まれているように記載されているが、記録部109は、コネクタを介して着脱可能な不揮発性メモリ又はハードディスク等の記録媒体であってもよい。
操作部104は、撮影命令、撮像条件の設定等のユーザからの操作をCPU103に対して行う際に用いられるインターフェースである。表示部106は、CPU103の制御により撮影の結果得られた静止画像及び動画像の表示、メニューの表示等を行う。
AF演算部110は、AFE102から出力される画像データに基づいて、焦点検出を行う。焦点検出処理の詳細については後述する。
撮像装置に入射された光は、第1レンズ群119、絞り118、第2レンズ群117、第3レンズ群116、フォーカルプレーンシャッタ111をこの順に通過して撮像素子100に入射される。第1レンズ群119は、光軸方向に進退可能に保持される。絞り118は、その開口径を調節するように動作可能であり、撮影時の光量調節を行う機構である。絞り118及び第2レンズ群117は、一体となって光軸方向に進退し、第1レンズ群119の進退動作との連動により、変倍機能(ズーム機能)を実現する。第3レンズ群(フォーカスレンズ)116は、光軸方向の進退により、焦点調節を行う。
フォーカルプレーンシャッタ111は、静止画撮影時に露光秒時を調節するシャッタである。本実施形態ではフォーカルプレーンシャッタ111、すなわちメカニカルシャッタにより撮像素子100の露光秒時を調節する構成であるが、この限りではない。例えば、撮像素子100が電子シャッタ機能を有し、制御信号により電子的に電荷蓄積時間を制御することで露光秒時を調節する構成であってもよい。
フォーカス駆動回路112は、AF演算部110の焦点検出結果に基づいてフォーカスアクチュエータ114を駆動制御し、第3レンズ群116を光軸方向に進退駆動して焦点調節を行う。絞り駆動回路113は、絞りアクチュエータ115を駆動制御して絞り118の開口径を制御する。
次に、図1に示す撮像素子100の構成を図2A、図2B、図2C及び図2Dを用いてより詳細に説明する。
図2Aは、撮像素子100内の画素200の構成を示す回路図である。画素200は、フォトダイオード201a、201b、転送スイッチ202a、202b、フローティングディフュージョン領域203、増幅部204、リセットスイッチ205及び選択スイッチ206を有する。なお、各スイッチはMOSトランジスタ等により構成され得る。以下の説明では各スイッチは一例としてN型のMOSトランジスタであるものとするが、各スイッチはP型のMOSトランジスタであってもよく、その他のスイッチング素子であってもよい。
このように、本実施形態における撮像素子100は、1つの画素200内に、2つのフォトダイオードを有する。ただし、各画素200に設けられるフォトダイオードの個数は図2Aに示される2つに限定されず、3つ以上(例えば、4つ)設けられてもよい。本実施形態においてフォトダイオード201a、201bは、後述するように、焦点検出画素として機能するとともに、撮像画素としても機能する。
フォトダイオード201a、201bは、同一のマイクロレンズを通過した光を受光し、光電変換によりその受光量に応じた信号電荷を生成する光電変換部として機能する。フォトダイオード201aにより得られる信号をA信号、フォトダイオード201bにより得られる信号をB信号と呼ぶ。
転送スイッチ202aはフォトダイオード201aとフローティングディフュージョン領域203との間に接続され、転送スイッチ202bはフォトダイオード201bとフローティングディフュージョン領域203との間に接続される。転送スイッチ202a、202bは、それぞれフォトダイオード201a、201bで発生した電荷を共通のフローティングディフュージョン領域203に転送する素子である。転送スイッチ202a、202bは、それぞれ制御信号TX_A、TX_Bによって制御される。
フローティングディフュージョン領域203は、フォトダイオード201a、201bから転送された電荷を一時的に保持するとともに、保持した電荷を電圧信号に変換する電荷電圧変換部として機能する。
増幅部204は、ソースフォロワMOSトランジスタである。増幅部204のゲートは、フローティングディフュージョン領域203に接続され、増幅部204のドレインは電源電位VDDを供給する共通電源208に接続される。増幅部204は、フローティングディフュージョン領域203に保持された電荷に基づく電圧信号を増幅して、画像信号として出力する。
リセットスイッチ205は、フローティングディフュージョン領域203と共通電源208との間に接続される。リセットスイッチ205は、制御信号RESによって制御され、フローティングディフュージョン領域203の電位を電源電位VDDにリセットする機能を有する。
選択スイッチ206は、増幅部204のソースと垂直出力線207の間に接続される。選択スイッチ206は、制御信号SELによって制御され、増幅部204で増幅された画像信号を垂直出力線207に出力する。
図2Bは、撮像素子100の構成を示す図である。撮像素子100は、画素アレイ234、垂直選択回路209、電流源負荷211、読み出し回路212、共通出力線230、231、水平選択回路232及び出力アンプ233を有する。
画素アレイ234は、行列状に配置された複数の画素200を有する。図2Bには説明を簡略化するために、水平方向にn+1画素、垂直方向に4画素を示しているが、画素200の行数及び列数は任意である。また、各画素200には複数色のカラーフィルタのうちいずれか1つが設けられている。図2Bに示す例では、カラーフィルタの色は赤色(R)、緑色(G)及び青色(B)とする。これらの各画素200はベイヤー配列に従って配置される。
垂直選択回路209は、行ごとに設けられた駆動信号線210を介して、各行の画素200に制御信号を出力する。なお、図2Bでは駆動信号線210は、簡略化のため、行ごとに1本ずつ図示されているが、実際には行ごとに複数の駆動信号線が接続される。
同じ列の画素200は列ごとに設けられた垂直出力線207に共通接続される。各画素200から出力される信号は、この垂直出力線207を介して読み出し回路212に入力され、読み出し回路212で処理される。電流源負荷211は各列の垂直出力線207に接続される。
水平選択回路232は、制御信号HAB(0)〜HAB(n)、HA(0)〜HA(n)信号を出力することで、複数の読み出し回路212の中から信号を出力させる列を順次選択する。選択された行の読み出し回路212は、共通出力線230、231を介して出力アンプ233に処理した信号を出力する。
次に、読み出し回路212の具体的な回路構成を説明する。読み出し回路212は、クランプ容量213、フィードバック容量214、オペアンプ215、基準電圧源216、保持容量素子217〜220及びスイッチ221〜229を有する。
垂直出力線207により読み出し回路212に入力される信号はクランプ容量213を介してオペアンプ215の反転入力端子に入力される。オペアンプ215の非反転入力端子には、基準電圧源216から基準電圧Vrefが供給される。フィードバック容量214はオペアンプ215の反転入力端子と出力端子の間に接続される。スイッチ229もオペアンプ215の反転入力端子と出力端子の間に接続され、フィードバック容量214の両端をショートさせる機能を有する。スイッチ229は制御信号RES_Cにより制御される。
オペアンプ215の出力端子は、スイッチ221、222、223、224の一端と接続される。スイッチ221は制御信号TS_ABで制御され、スイッチ223は、制御信号TS_A信号で制御され、スイッチ222、224は制御信号TNで制御される。
スイッチ221、222、223、224の他端は、それぞれ保持容量素子217、218、219、220の一端及びスイッチ225、226、227、228の一端と接続される。保持容量素子217、218、219、220の他端は接地される。保持容量素子217、219は信号電圧(S信号)を保持するための容量素子であり、保持容量素子218、220はノイズ電圧(N信号)を保持するための容量素子である。後述する動作により、S信号のうち、保持容量素子217にはA信号とB信号が加算されたAB信号が、保持容量素子219にはA信号がそれぞれ保持される。
スイッチ225、227の他端は共通出力線230と接続され、スイッチ226、228の他端は共通出力線231と接続される。スイッチ225、226は水平選択回路232からの制御信号HAB(m)信号で制御され、スイッチ227、228は制御信号HA(m)信号で制御される。ここで、mは制御信号線が接続されている読み出し回路212の列番号を示す。保持容量素子217、保持容量素子219に保持された信号は共通出力線230を介して出力され、保持容量素子218、220に保持された信号は共通出力線231を介して、出力アンプ233に出力される。この動作を水平転送と呼ぶ。
図2Cは、水平選択回路232の構成を示す図である。水平選択回路232は、アドレスオフセット保持部241〜243、アドレスオフセット制御回路240、セレクタ238、239、加算器236、カウンタ237、デコーダ235、複数のHA生成回路244及び複数のHAB生成回路245を有する。
垂直選択回路209は、アドレスオフセット制御回路240に、読み出し行を示す垂直選択カウンタ値Vを出力する。アドレスオフセット制御回路240は、垂直選択カウンタ値Vに基づいて、読み出し行に応じてアドレスオフセットを切り替えるための制御信号SEL_AOをセレクタ239に出力する。本実施形態では、制御信号SEL_AOは、垂直選択カウンタ値Vを3で除算した結果の余りである0、1又は2のいずれかの値である。
アドレスオフセット保持部241〜243には、A像信号の水平転送が開始される列番号が格納される。この列番号はCPU103により設定される。セレクタ239は、入力される制御信号SEL_AOが0の場合には、アドレスオフセット保持部241に保持されたアドレスオフセットをセレクタ238に出力する。同様に、セレクタ239は、制御信号SEL_AOが1、2の場合には、それぞれアドレスオフセット保持部242、243に保持されたアドレスオフセットをセレクタ238に出力する。
セレクタ238は、TG101から出力される制御信号SEL_HAにより制御される。制御信号SEL_HAは、A像信号の水平転送時にHigh(H)となり、そうでないときにLow(L)となる信号である。セレクタ238は、SEL_HAがH(‘1’)のときにセレクタ239から入力されるアドレスオフセットを出力し、制御信号SEL_HAがL(‘0’)のときに0の値を出力する。
加算器236は、セレクタ238から出力されるアドレスオフセット又は0の値と、カウンタ237で生成されるインクリメント値とを加算して、水平転送を行う列番号を生成し、デコーダ235に出力する。デコーダ235は入力された列番号をデコードし、各列の転送を制御する信号である制御信号H(0)〜H(n)を出力する。HA生成回路244及びHAB生成回路245は、画素200の各列に対応して、n+1個ずつ設けられている。制御信号H(0)〜H(n)は、対応するHA生成回路244及びHAB生成回路245に入力される。
HA生成回路244は、制御信号H(0)〜H(n)と制御信号SEL_HAの論理積を出力する。すなわち、HA生成回路244は、A像の水平転送時にHA(0)〜HA(n)を出力する。HAB生成回路245は、制御信号H(0)〜H(n)と論理反転された制御信号SEL_HAとが入力され、その論理積を出力する。すなわち、HAB生成回路245は、AB像信号の水平転送時に制御信号HAB(0)〜HAB(n)を出力する。
以上のようにして、水平選択回路232は、スイッチ225、226を制御する制御信号HAB(0)〜HAB(n)と、スイッチ227、228を制御する制御信号HA(0)〜HA(n)とを出力する。なお、アドレスオフセットの指定方法や、アドレスオフセット制御回路240の動作は上述の限りではない。転送開始列を行ごとに変更することができればよく、適宜変形することが可能である。
図2Dは、撮像装置の読み出し動作を示すタイミングチャートである。以下、図2Dを参照しつつ画像信号の1行分の読み出し動作について説明する。なお、各制御信号がHのときに各スイッチはオンになり、Lのときに各スイッチはオフになるものとする。
時刻t1において、制御信号TX_A、TX_BがHになり、転送スイッチ202a、202bがオンになる。これにより、フォトダイオード201a、201bに蓄積された電荷は、転送スイッチ202a、202bを介して増幅部204のゲートに転送され、フォトダイオード201a、201bはリセットされる。時刻t2において、制御信号TX_A、TX_BをLとし、フォトダイオード201a、201bへの光電荷の蓄積が開始される。
所定の時間だけ光電荷の蓄積を行った後の時刻t3において、選択スイッチ206の制御信号SELがHになり、増幅部204のソースが垂直出力線に接続される。時刻t4において、リセットスイッチ205の制御信号RESをLとすることでフローティングディフュージョン領域203のリセットを解除する。このとき、フローティングディフュージョン領域203の電位に応じたリセット信号レベルの電位が増幅部204を介して垂直出力線207に読み出され、読み出し回路212に入力される。
その後、時刻t5において、制御信号RES_CがLになると、垂直出力線207に読み出されたリセット信号レベルと基準電圧Vrefとの差分に基づく電圧がオペアンプ215から出力される。時刻t6において、制御信号TNがHになり、スイッチ222、224がオンになる。時刻t7において、制御信号TNがLになり、スイッチ222、224がオフになる。これらの動作により、オペアンプ215の出力電圧が保持容量素子218、220に保持される。
次に、時刻t8において、制御信号TX_AがHになり、フォトダイオード201aの光電荷がフローティングディフュージョン領域203へ転送される。その後、時刻t9において、制御信号TX_AがLになる。この動作により、フォトダイオード201aに蓄積された電荷がフローティングディフュージョン領域203へ転送される。そして、その変化に応じた電圧が増幅部204及び垂直出力線207を介して読み出し回路212へ出力される。オペアンプ215は、入力された電圧をクランプ容量213とフィードバック容量214の比率で定まる反転ゲインで増幅して出力する。
時刻t10において、制御信号TS_AがHになり、スイッチ223がオンになる。時刻t11において、制御信号TS_AがLになり、スイッチ223がオフになる。これらの動作により、オペアンプ215の出力電圧が保持容量素子219に保持される。
時刻t12において、再び制御信号TX_AがHになるとともに制御信号TX_BもHとなる。この動作により、フォトダイオード201a、201bの双方の光電荷がともにフローティングディフュージョン領域203へ転送される。転送された電荷に基づく電圧はフォトダイオード201aの光電荷に基づく電圧を読み出した際と同様に読み出し回路212へ出力され、オペアンプ215を介して出力される。
時刻t14において、制御信号TS_ABがHとなり、スイッチ221がオンになる。その後、時刻t15において、制御信号TS_ABがLとなり、スイッチ221がオフになる。これらの動作により、オペアンプ215の出力電圧が保持容量素子217に保持される。
以上の動作により、N信号、A信号、AB信号が各保持容量素子に保持される。保持容量素子217と保持容量素子218の差電圧を取得することにより、ノイズが除去されたAB信号が得られる。このAB信号は撮影された画像を構成するデータとして用いられる。また、保持容量素子219と保持容量素子220の差電圧を取得することにより、フォトダイオード201aからの出力信号であるノイズが除去されたA信号が得られる。このA信号は焦点検出信号として用いられる。
次に、時刻t16において、制御信号RESがHになり、フローティングディフュージョン領域203が再びリセット状態になる。その後、時刻t17において、制御信号SEL_HAがHになる。本動作により、セレクタ238にはアドレスオフセット保持部241〜243に設定されたアドレスオフセットのうちのいずれかが出力される。
その後、時刻t18〜t19の間に、カウンタ237を動作させることにより水平選択回路232から出力される制御信号HA(m)が順次LからHになり、Lに戻る。これに伴い、スイッチ227、228がオフからオンになり、再びオフに戻る。各列の保持容量素子219、220に保持された電圧は共通出力線230、231へそれぞれ読み出され、出力アンプ233に入力される。出力アンプ233は差動増幅器であるため、これらの電圧の差電圧がA信号として出力される。
ここで、制御信号HA(m)が一時的にHになる画素列は図2Dの駆動タイミングに示されるように第h〜i列目であり、それ以外の列に対応する制御信号HA(m)は常にLレベルのままである。したがって、A信号が読み出される画素列は第h〜i列目のみとなる。本実施形態では、第h〜i列は水平画素数(n+1)を3分割した(n+1)/3列とする。すなわち、第h〜i列の列数は(n+1)列より少ない列数である。各行の読み出し開始列である第h列は、アドレスオフセット保持部241〜243に設定されるアドレスオフセットに基づき決定される。
その後、時刻t20において、制御信号SEL_HAがLになる。本動作によりセレクタ238の出力値は0になる。
次に、時刻t21〜t22の期間において、水平選択回路232から出力される制御信号HAB(m)が順次LからHになり、Lに戻る。これに伴い、スイッチ225、226がオフからオンになり、再びオフに戻る。各列の保持容量素子217、保持容量素子218に保持された電圧は共通出力線230、231へそれぞれ読み出され、出力アンプ233に入力される。これらの電圧の差電圧がAB信号となる。ここで、制御信号HAB(m)は図2(d)の駆動タイミングに示すように第0〜n列のすべての列で一時的にHになる。したがって、AB信号はすべての列から読み出される。
以上の動作が行ごとに順次行われ、A信号、AB信号の読み出しが完了する。出力された信号はAFE102においてデジタル信号に変換される。
次に撮像素子100が出力する画像データの処理について説明する。
図3(a)〜(d)は、位相差方式の焦点検出の概念を示す図である。まず、図3(a)と図3(b)により、撮像素子100におけるピントと位相差との関係を説明する。
図3(a)は、ピント(焦点位置)が合っている場合における撮影レンズ401、被写体402、光軸403及び画素アレイ404の位置関係と光束を示している。また、図3(b)はピントが合っていない場合における位置関係と光束を示している。画素アレイ404は、図2で示した画素アレイ234を断面方向から見たものである。
画素アレイ404の各画素にはマイクロレンズ400が1つ設けられている。上述したように、フォトダイオード201a、201bは、同一のマイクロレンズを通過した光を受光する構成となっている。フォトダイオード201aには後述する構成により位相差を持った別の像が入射される。ここではフォトダイオード201aをA像用画素、フォトダイオード201bをB像用画素とする。図3(a)、図3(b)においては、A像用画素をA、B像用画素をBと表記している。なお、本実施形態ではマイクロレンズ1つに対してフォトダイオードが2つ配置される構成であるがこの限りではない。マイクロレンズ1つに対してフォトダイオードが上下又は左右に複数配置される構成であれば同様である。
撮影レンズ401は、図1に示す第1レンズ群119、第2レンズ群117、第3レンズ群116を合わせて1つのレンズと考えた場合の等価的な撮影レンズを示している。被写体402から発せられた光は、光軸403を中心として、撮影レンズ401の各領域を通過し、撮像素子100の画素アレイ404に結像される。なお、ここでは射出瞳と撮影レンズの中心は同一としている。
このような構成によれば、撮像光学系をA像用画素から見た場合とB像用画素から見た場合とで、撮像光学系の瞳が対称に分割されたことと等価となる。言い換えれば、撮像光学系からの光束が2つの光束に分割された、いわゆる瞳分割の構成となっている。それぞれの分割光束(第1の光束及び第2の光束)がA像用画素及びB像用画素に入射する。このように、A像用画素とB像用画素のそれぞれは、撮像光学系の射出瞳のうち互いに異なる瞳領域を通過した光を受光して光電変換することから、焦点検出画素として機能することができる。また、A像用画素及びB像用画素は、互いの信号を加算することで撮像画素としても機能することができる。
被写体402上の特定点からの光束は、A像用画素に対応する分割瞳を通ってA像用画素に入射する光束ΦLaと、B像用画素に対応する分割瞳を通ってB像用画素に入射する光束ΦLbとに分割される。これら2つの光束は、被写体402上の同一点から入射しているため、撮像光学系のピントが合った状態では、図3(a)に示すように、同一のマイクロレンズを通過して撮像素子上の1点に到達する。したがって、A像用画素とB像用画素からそれぞれ得られる像信号は互いに一致する。
しかしながら、図3(b)に示すように、光軸方向にYだけピントがずれている状態では、光束ΦLa,ΦLbのマイクロレンズへの入射角の変化分だけ光束ΦLa、ΦLbの到達位置が光軸と垂直方向に互いにずれる。したがって、A像用画素とB像用画素からそれぞれ得られる像信号には位相差が生じる。
A像用画素とB像用画素のそれぞれ(すなわち、焦点検出画素)は、位相差を持った2つの被写体像(A像及びB像)を光電変換して焦点検出用の信号を生成する。この信号は、撮像素子100の外部へ出力され、AF動作に使用される。
撮像素子100は、上述したようにA像用画素Aの信号(以下、焦点検出信号ともいう)のみを読み出す第1の読み出しと、A像用画素AとB像用画素Bの信号を加算した信号(以下、画像信号ともいう)を読み出す第2の読み出しとを行う。以降、A像用画素Aの信号をAFE102にてデジタル信号に変換したものをA像、A像用画素AとB像用画素Bの信号を加算した信号をAFE102にてデジタル信号に変換したものをAB像とする。A像とAB像がAF演算部110へ入力され、後述する処理にてB像が生成され、AF動作に使用される。
なお、本実施形態では、1つのマイクロレンズに対して複数の光電変換部が配置され、瞳分割された光束が各光電変換部に入射される構成を示したが、この限りではない。例えば焦点検出用画素の構成は、マイクロレンズ下に1つのPDを有し、遮光層により左右又は上下を遮光することで瞳分割を行う構成でもよい。また、離散的に配置された焦点検出用画素からA像信号及びB像信号を取得する構成でもよい。
AF演算部110では入力されたAB像からA像を使用して焦点検出動作を行う。図3(c)はピントが合っている図3(a)の状況におけるA像とB像の強度分布を示すグラフである。横軸は、画素位置を表し、縦軸は出力信号の強度を表す。ピントがあっている場合はA像とB像は一致する。図3(d)はピントが合っていない図3(b)の状況におけるA像とB像の強度分布を示すグラフである。この場合は、A像とB像は前述した理由により位相差を持ち、強度のピーク位置がずれ量Xだけずれている。AF演算部110では、フレームごとにずれ量Xを算出し、これを用いて所定の演算処理を行うことによりピントのずれ量、すなわち図3(b)におけるY値を算出する。AF演算部110は算出したY値をフォーカス駆動回路112に転送する。
フォーカス駆動回路112はAF演算部110から取得したY値に基づき第3レンズ群116を動かす量を算出し、フォーカスアクチュエータ114に駆動命令を出力する。第3レンズ群116は、フォーカスアクチュエータ114の駆動命令に従ってピントが合う位置まで移動し、ピントが合った状態が実現される。
次に、図4を用いて、本実施形態のAF演算部110の構成と動作について説明する。図4はAF演算部110の構成を示す図である。AF演算部110は、相関演算回路430、ラインメモリ431、演算制御回路432、メモリ433、メモリ制御部434、ピントずれ量算出部435、減算器436、加算器437、FIFOメモリ438及び補正回路439を有する。
AF演算部110に入力されたA像は、FIFOメモリ438に入力され、AF演算部110に入力されたAB像は減算器436に入力される。FIFOメモリ438は、A像とAB像のデータの入力タイミングを合わせる機能を有する。FIFOメモリ438から出力されるA像は補正回路439と減算器436に入力される。減算器436は、入力されたAB像からA像を減算してB像を算出し、補正回路439に出力する。このとき、A像とAB像は入力タイミングが合わせられているため、この減算は同じ画素位置のデータに対して行われる。
補正回路439は、入力される垂直同期信号及び水平同期信号に基づきA像とB像の画面に対する画素の位置を認識し、補正を行う。この際、行ごとに入力されるA像とB像の水平方向の位置が異なるので、水平方向の位置に応じた補正が行われる。補正後のA像とB像はラインメモリ431に出力される。
演算制御回路432は、入力される水平同期信号に基づいてラインメモリ431に対してラインメモリ制御信号を出力する。ラインメモリ制御信号に応じて、ラインメモリ431に入力される1行分のA像とB像がラインメモリ431に書き込まれる。その後、演算制御回路432は、入力される垂直同期信号を参照し、A像とB像の画像データの1フレームにおける垂直位置を算出する。本実施形態では、焦点検出領域(AF領域)があらかじめCPU103によって設定されている。そのため、演算制御回路432は、算出された垂直位置が設定された領域内である場合に、相関演算回路430に対して演算有効信号を出力する。演算制御回路432は、設定された1つ又は複数のAF領域に基づき、設定に対応する位置のA像とB像をラインメモリ431から相関演算回路430へ出力させる。相関演算回路430は、演算有効信号が、算出された垂直位置が設定された領域内であることを示している場合にA像とB像に対して相関演算を行い、加算器437に出力する。このように、相関演算回路430及び演算制御回路432は相関演算手段として機能する。
図5(a)及び図5(b)を参照して、相関演算回路430で行われる相関演算の処理を説明する。図5(a)に示す複数のグラフは画素の水平方向の位置に対するA像とB像のレベル(強度)を示す。各グラフでは、A像の位置が−SからSの範囲でシフト移動されている。このように、相関演算回路430には、A像が水平方向にシフト移動されながら入力される。ここでは、A像データを左にシフトする場合のシフト量をマイナス、A像データを右にシフトする場合のシフト量をプラスとする。
相関演算回路430は、各位置ごとに対応するA像とB像とを比較して値が小さい方のデータを取得し、各画素位置の当該データを加算したものを1行分の相関値として算出する。図5(b)は、図5(a)の例において各シフト量に対し算出される相関値を示すグラフである。図5(a)に示される例ではA像とB像はシフト量=Xで重なるような焦点位置となっている。この場合、図5(b)に示すようにシフト量=Xのときに相関値が最大となる。なお、本実施形態に適用可能な相関値の算出方法はこの限りではない。A像とB像の相関を示す算出方法であれば、いずれの方法でも適用することが可能である。
演算制御回路432は、入力される垂直同期信号と水平同期信号に基づき、入力されるA像とAB像が設定された領域内であるか否かを判断する。A像とAB像が設定された領域内である場合には、どのAF領域であるかを示す領域番号をメモリ制御部434に対して出力する。メモリ制御部434は領域番号を参照し、メモリ433に対し、演算対象行より前の行の相関演算結果を出力する制御信号を加算器437に出力する。加算器437は、相関演算回路430から出力される相関データと、メモリ433から出力される前の行の相関演算結果とをシフト量ごとに加算する(加算手段)。このようにして算出された1つのAF領域のシフト量ごとの相関値(相関データ)はメモリ433に出力され、メモリ433に保持される。
設定された1つ又は複数のAF領域内の相関演算が終了すると、ピントずれ量算出部435はメモリ433にメモリ制御信号を出力する。メモリ433はメモリ制御信号に応じて各AF領域の相関データをピントずれ量算出部435に出力する。ピントずれ量算出部435は、各AF領域の相関データに基づいてピントずれ量(Y値)を算出し、出力する(ピントずれ量算出手段)。
次に、本実施形態における撮像装置の動作を図6のフローチャートを用いて説明する。本実施形態の撮像装置は、サーチモード(第1のモード)及び通常モード(第2のモード)による焦点検出が可能である。サーチモードを適用するか否かは、ユーザの操作などにより選択可能である。
まず、操作部104に含まれる動画撮影スイッチがユーザにより押下されると、撮像装置は動画撮影を開始する。動画撮影が開始されると撮像素子100、TG101、AFE102が動作可能となり、CPU103は動画撮影設定をする。動画撮影の設定後、CPU103から出力される同期信号に基づいてTG102は撮像素子100に読み出しのための各制御信号を出力し、撮像素子100は所定のフレームレートでの読み出し動作を開始する。なお、本実施形態では動画像の電荷蓄積・読み出し動作はスリットローリング動作による電子シャッタ機能を使用して行われるが、これに限られるものではない。
撮像素子100から出力された信号は、AFE102においてアナログデジタル変換され、A像とAB像としてRAM107へ転送される。その後、A像とAB像は画像処理部108に転送され、所定の補正処理、圧縮等を行い、表示部106に動画データを表示する(ライブビュー)。撮影前に、表示部106に表示されたメニューと操作部104を使用して動画記録が選択されている場合には、動画は記録部109に順次記録される。
ステップS100において、CPU103は、操作部104に含まれるAFスイッチがユーザにより押下されたかどうか判断する。AFスイッチが押下されたと判断した場合は、ステップS101に進む。AFスイッチが押下されていないと判断した場合は、ステップS108に進む。
ステップS101において、CPU103は、設定情報を取得して(モード情報取得)、設定されているAFモードがサーチモードであるか否かを判断する。撮影前に表示部106に表示されたメニューと操作部104を使用して、AFモードがサーチモードに選択されている場合には、ステップS102へ進む。AFモードがサーチモードに選択されていない場合は、ステップS105に進む。
ステップS102において、サーチモードでAFを行うためのAF領域設定を行う。この動作において、CPU103は、撮像素子100に対しアドレスオフセット設定を行う。本実施形態ではアドレスオフセット保持部241、242、243にそれぞれ値0、e、fを設定する(設定手段)。この値は画素アレイ234の読み出し開始列を示しており、アドレスオフセットの値により、画素アレイ234の各列とA像を読み出す領域とが対応付けられる。
図7(a)は、上述のアドレスオフセット設定において、A像が読み出される領域を示す図である。この設定では、図7(a)の斜線部に示す領域からA像が読み出される(読み出し手段)。例えば、第0行では第0〜(e−1)列からA像が読み出され、第1行では第e〜(f−1)列からA像が読み出され、第2行では第f〜n列からA像が読み出される。第3行では第0行と同じ読み出しが行われ、以降の行では同様の動作が繰り返される。すなわち、行ごとにA像を読み出す領域として異なる領域が選択される(選択手段)。本実施形態では3行周期で水平方向に異なる列からA像が出力される。一方、AB像は全画素から読み出される。なお、この例では1行ごとに異なる列からA像が読み出されているが、2行ごと、あるいは3行ごとのように複数行ごとに異なる列からA像が読み出されるように構成してもよい。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域(焦点検出領域)の設定を行う。図7(b)は、相関演算の対象とする領域を示す図である。本実施形態では図7(b)の斜線部に示すように、第0〜(e−1)列に領域00、10、20が、第e〜(f−1列)に領域01、11、21が、第f〜n列に領域02、12、22が位置するように設定が行われる。各領域の列数及び行数はいずれもp列×q行とする。
その後ステップS103において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出する。その位置が領域00〜22のいずれかに該当する垂直位置である場合、演算制御回路432は、相関演算回路430及びメモリ制御部434に対して演算有効信号を出力する。これとともに演算制御回路432は、ラインメモリ431に制御信号を出力する。
さらに、演算制御回路432は、図7(b)に示すように行ごとに異なる領域番号をメモリ制御部434に出力する。図7(c)は、A像信号が読み出される領域と、領域00、01、02の位置関係を示す図である。図示されているように、各領域において3行ごとに相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
すべての領域について演算が終了すると、ピントずれ量算出部435はメモリ433から相関データを読み出し、各領域におけるピントずれ量(駆動距離情報)を算出してRAM107へ出力する。
その後、ステップS104において、CPU103は、RAM107に格納される各領域の駆動距離情報の中から、フォーカス駆動回路112に転送する駆動距離情報を選択する。本実施形態ではピント位置が最も近い領域の駆動距離情報として、領域12の駆動距離情報を選択する。その後CPU103は選択した駆動距離情報をフォーカス駆動回路112に転送する。フォーカス駆動回路112は駆動距離情報に基づいてフォーカスアクチュエータ114の駆動信号を生成し(駆動信号生成手段)、第3レンズ群116を光軸方向に進退駆動して焦点調節を行う。
ステップS105において、通常モードでAFを行うためのAF領域設定を行う。この動作において、CPU103は、撮像素子100に対しアドレスオフセット設定を行う。このアドレスオフセット設定では、アドレスオフセット保持部241〜243にはすべて値fが設定される。
図8(a)は、上述のアドレスオフセット設定において、A像信号が読み出される領域を示す図である。図7(a)と同様に斜線部が、A像信号が読み出される領域を示している。このアドレスオフセット設定では、撮像素子100から出力されるA像信号はすべての行において同じ第f〜n列からA像が読み出される。一方、AB像は全画素から読み出される。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域の設定を行う。図8(b)は、相関演算の対象とする領域を示す図である。本実施形態では図8(b)の斜線部に示すように、ステップS102のサーチモード時に設定された領域12と同じ領域として、第f〜n列に領域00が位置するように設定が行われる。各領域の列数及び行数はいずれもp列×q行とする。
その後ステップS106において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出する。その位置が領域00に該当する垂直位置である場合、演算制御回路432は、相関演算回路430及びメモリ制御部434に対して演算有効信号を出力する。これとともに演算制御回路432は、ラインメモリ431に制御信号を出力する。
さらに、演算制御回路432は、図8(b)に示すように固定の領域番号(00)を出力する。図8(c)は、A像信号が読み出される領域と、領域00の位置関係を示す図である。図示されているように、領域00において、各行の相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
すべての領域について演算が終了すると、ピントずれ量算出部435はメモリ433から相関データを読み出し、各領域におけるピントずれ量(駆動距離情報)を算出してRAM107へ出力する。
次にステップS107において、CPU103はRAM107に格納される駆動距離情報と所定の値を比較し、所定の値より駆動距離が小さい場合には合焦していると判断し、ステップS108へと進む。合焦していないと判断した場合には、ステップS104に戻り、駆動距離情報に基づき焦点調節がなされ、その後は前述したステップS105からS107までの通常モードでの焦点検出動作を繰り返す。
ステップS108において、CPU103は、操作部104に含まれる静止画撮影スイッチがユーザにより押下されたか否かを判断する。静止画撮影スイッチが押下されたと判断した場合にはステップS109に進む。静止画撮影スイッチが押下されていないと判断した場合にはステップS110に進む。
静止画撮影スイッチが押下された場合、ステップS109において、動画撮影を中断し、静止画撮影を行う。その後、動画撮影を再開し、ステップS110に進む。
ステップS110において、CPU103は、動画撮影スイッチがユーザにより押下されたか否かを判断する。動画撮影スイッチが押下されたと判断した場合には、動画撮影を終了する。動画撮影スイッチが押下されていないと判断した場合にはステップS100へと戻り、再びAFスイッチの押下を判断する。
なお、上述の通り、ステップS101にて通常モードが設定されていた場合には、ステップS105に進む。この場合のステップS105では、サーチモードで設定されたAF領域ではなく、CPU103等にあらかじめ設定されたAF領域の位置で前述した通常モードの設定がなされる。その後の処理は前述した動作と同様のため、説明を省略する。
上記動作により、水平方向に限られた画素数のA像しか出力できない場合においても、AF動作においてサーチモードの時にAF領域を垂直方向に加えて水平方向にも複数設定することができる。これにより、1フレーム分の画像でより広範囲に及ぶ複数のAF検出領域について同時に焦点検出を行うことが可能となる。そのため、画面全体の中でAFを行う領域を探索する場合に、より少ないフレーム数で探索を完了することができ、最終的な合焦までの時間を短縮することができる。また、AF領域が水平方向に1つである場合には、領域内のすべての行を対象に相関演算をすることができるので、合焦精度を向上させることができる。
本実施形態では、図7(a)、図7(b)に示すように3行ごとにA像を読み出すようにA像出力、AF領域の設定を行ったがこの限りではない。変形例を図9(a)、図9(b)に示す。この例では、アドレスオフセットの設定数を5つに増加させている。この構成では、図9(a)の斜線部に示すように各行のA像出力を水平方向に重複するように出力することにより、図9(b)のようにAF領域を隙間なく配置でき、全体としてAF領域を拡大することができる。
(第2の実施形態)
次に本発明の第2の実施形態に係る撮像装置の動作について説明する。本実施形態に係る撮像装置の構成は第1の実施形態に述べた構成と同じであるため説明を省略し、撮像装置の動作について主として第1の実施形態と異なる点を説明する。
本実施形態における撮像装置の動作を図10のフローチャートを用いて説明する。まず、操作部104に含まれる動画撮影スイッチがユーザにより押下されると、動画撮影が開始される。動画撮影が開始されると撮像素子100、TG101、AFE102に電源が投入され、CPU103は動画撮影設定をする。設定後、CPU103から出力される同期信号に基づいてTG102は撮像素子100に読み出しパルスを出力し、撮像素子100は所定のフレームレートでの読み出し動作を開始する。なお、本実施形態では動画像の電荷蓄積・読出し動作はスリットローリング動作による電子シャッタ機能を使用して行われるが、これに限られるものではない。
撮像素子100から出力された信号は、AFE102においてアナログデジタル変換され、A像とAB像としてRAM107へ転送される。その後、A像とAB像は画像処理部108に転送され、所定の補正処理、圧縮等を行い、表示部106に動画データを表示する(ライブビュー)。撮影前に、表示部106に表示されたメニューと操作部104を使用して動画記録が選択されている場合には、動画は記録部109に順次記録される。
ステップS200において、CPU103は、操作部104に含まれるAFスイッチがユーザにより押下されたかどうか判断する。AFスイッチが押下されたと判断した場合は、ステップS201に進む。AFスイッチが押下されていないと判断した場合は、ステップS209に進む。
ステップS201において、動画撮影のモードが高フレームレートモードであるか、低フレームレートモードであるかを判断する。動画撮影のモードが高フレームレートモードであると判断した場合は、ステップS202に進み、動画撮影のモードが低フレームレートモードであると判断した場合は、ステップS212に進む。
ここで、高フレームレートモード及び低フレームレートモードについて説明する。本実施形態における撮像装置は動画を撮影するモードとして高フレームレートモードと低フレームレートモードを有する。モードは表示部106に表示されたメニューと操作部104を使用して選択される。高フレームレートモードは、低フレームレートモードよりもフレームレートが高く、1行のA像とAB像の読み出しに費やすことが可能な時間が短くなる。すなわち、高フレームレートモードの場合の方が低フレームレートモードの場合よりも図2Dに示す時刻t3から時刻t22までの処理に要する時間を短縮する必要が生じる。そのため、フレームレートを所定値以上に大きくした場合(すなわち、1行の読み出し時間が所定値よりも短くする必要が生じた場合)、すべての画素からA像とAB像を読み出すことができなくなることもある。本実施形態の構成はこのような場合に特に有効である。
なお、本実施形態ではフレームレートのモードは高フレームレートモードと低フレームレートモードの2つのみを考えるが、フレームレートが異なる3以上のモードを有してもよく、フレームレートを連続的に変化させることができる構成であってもよい。
AB像は動画像を構成するデータであるため、高フレームレートモードと低フレームレートモードのいずれの場合であっても読み出すべき画素数は同じである。一方A像は焦点検出に用いるデータであるため、読み出すべき画素数を少なくすることができる場合もある。そこで、読み出し時間の短縮のために本実施形態では、高フレームレートモード時には、撮像素子100から読み出すA像の画素数を低フレームレートモード時よりも少なくする。これにより、図2Dに示す時刻t18から時刻t19の期間を短縮することができる。ここでは高フレームレートモード時には(n+1)/3列、低フレームレートモード時にはn列の画素からA像を読み出すものとする。
まず、ステップS201で高フレームレートモードが選択されていた場合を説明する。この場合、ステップS202へ進む。ステップS202からS208の動作は、第1の実施形態で述べたステップS101からステップS107と同様であるため、説明を省略する。
ステップS209において、CPU103は、操作部104に含まれる静止画撮影スイッチがユーザにより押下されたか否かを判断する。静止画撮影スイッチが押下されたと判断した場合にはステップS210に進む。静止画撮影スイッチが押下されていないと判断した場合にはステップS211に進む。
静止画撮影スイッチが押下された場合、ステップS210において、動画撮影を中断し、静止画撮影を行う。その後、動画撮影を再開し、ステップS211に進む。
ステップS211において、CPU103は、動画撮影スイッチがユーザにより押下されたか否かを判断する。動画撮影スイッチが押下されたと判断した場合には、動画撮影を終了する。動画撮影スイッチが押下されていないと判断した場合にはステップS200へと戻り、再びAFスイッチの押下を判断する。
次にステップS201で低フレームレートモードが選択されていた場合を説明する。この場合、ステップS212に進む。
ステップS212において、CPU103は、設定情報を取得して(モード情報取得)、設定されているAFモードがサーチモードであるか否かを判断する。撮影前に表示部106に表示されたメニューと操作部104を使用してAFモードがサーチモードに選択されている場合には、ステップS213へ進む。AFモードがサーチモードに選択されていない場合は、ステップS216に進む。
ステップS213において、サーチモードでAFを行うためのAF領域設定を行う。この動作において、CPU103は、撮像素子100に対しアドレスオフセット設定を行う。本実施形態ではアドレスオフセット保持部241〜243にはすべて値0を設定する。
図11(a)は、上述のアドレスオフセット設定において、A像が読み出される領域を示す図である。この設定では、図11(a)の斜線部に示す領域からA像が読み出される。上述する設定とアドレスオフセット制御回路240の動作で、撮像素子100から出力されるA像は図11(a)の斜線部に示すように、全画素から読み出されることとなる。また、AB像も同様に全画素から読み出される。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域の設定を行う。図11(b)は、相関演算の対象とする領域を示す図である。本実施形態では図11(b)の斜線部に示すように、第0〜(e−1)列に領域00、10、20が、第e〜(f−1)列に領域01、11、21が、第f〜n列に領域02、12、22が位置するように設定が行われる。各領域の列数及び行数はいずれもp列×q行とする。
その後ステップS214において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出し、領域00〜22のいずれかに該当する垂直位置だった場合に相関演算回路430、メモリ制御部434に対して演算有効信号を出力する。同時にラインメモリ431に制御信号を出力する。
この時、水平方向に並ぶ領域(例えば、領域00、01、02)すべてにA像、B像が存在することになる。よって行ごとのラインメモリ431の制御として、領域00、領域01、領域02のそれぞれの相関演算をするように、3回相関演算回路にシフトさせながらデータを転送する制御が行われるように制御信号を出力する。
演算制御回路432はメモリ制御部434に対して図11(b)に示すように、領域数に対応した回数の領域番号を毎行で出力する。その結果、図11(c)に示すように、各領域において、毎行の相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
すべての領域について演算が終了すると、ピントずれ量算出部435はメモリ433から相関データを読み出し、各領域におけるピントずれ量(駆動距離情報)を算出してRAM107へ出力する。
その後ステップS215において、CPU103は、RAM107に格納される各領域の駆動距離情報の中から、フォーカス駆動回路112に転送する駆動距離情報を選択する。本実施形態ではピント位置が最も近い領域の駆動距離情報として、領域12の駆動距離情報を選択する。その後CPU103は選択した駆動距離情報をフォーカス駆動回路112に転送する。フォーカス駆動回路112は駆動距離情報に基づいてフォーカスアクチュエータ114の駆動信号を生成し(駆動信号生成手段)、第3レンズ群116を光軸方向に進退駆動して焦点調節を行う。
その後、ステップS216において、通常モードでAFを行うためのAF領域設定を行う。この動作において、CPU103は、撮像素子100に対しアドレスオフセット設定を行う。アドレスオフセット保持部241〜243にはすべて値0が設定される。
このアドレスオフセット設定では、撮像素子100から出力されるA像信号はすべての行において全列からA像が読み出される。また、AB像も同様にはすべての行において全列から読み出される。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域の設定を行う。図12(a)は、相関演算の対象とする領域を示す図である。本実施形態では図12(a)の斜線部に示すように、ステップS213のサーチモード時に設定された領域12と同じ領域として、第f〜n列に領域00が位置するように設定が行われる。各領域の列数及び行数はいずれもp列×q行とする。
その後ステップS217において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出する。その位置が領域00に該当する垂直位置である場合、演算制御回路432は、相関演算回路430及びメモリ制御部434に対して演算有効信号を出力する。これとともに演算制御回路432は、ラインメモリ431に制御信号を出力する。
さらに、演算制御回路432は、メモリ制御部434に対して図12(a)に示すように固定の領域番号(00)を出力する。図12(b)は、A像信号が読み出される領域と、領域00の位置関係を示す図である。図示されているように、領域00において、毎行の相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
すべての領域について演算が終了すると、ピントずれ量算出部435はメモリ433から相関データを読み出し、各領域におけるピントずれ量(駆動距離情報)を算出してRAM107へ出力する。
次にステップS218において、CPU103はRAM107に格納される駆動距離情報と所定の値を比較し、所定の値より駆動距離が小さい場合には合焦していると判断し、ステップS209へと進む。合焦していないと判断した場合には、ステップS215に戻り、駆動距離情報に基づき焦点調節がなされ、その後は前述したステップS215からS218までの通常モードでの焦点検出動作を繰り返す。
上記動作により、動画を高フレームレートモードで撮影する際に出力される水平方向のA像を少なくした場合にもサーチモードの時にAF領域を水平方向に複数設定することができ、焦点検出を同時に行う領域数を保つことができる。これにより、画面全体の中でAFを行う領域を探索する場合に、より少ないフレーム数で探索を完了することができ、最終的な合焦までの時間を短縮することができる。また、低フレームレートモードで撮影する際には各AF領域内のすべての行を対象に相関演算を行うことができ、焦点検出の精度を向上させることができる。これにより輝度が低い被写体の撮影であっても良好な焦点検出が可能となる。このように、本実施形態では、フレームレートを切り替えることが可能な撮像装置に対し、フレームレートに応じた適切な焦点検出が可能となる。
なお、本実施形態では撮影モードの1つであるフレームレートの違いに応じて動作を切り替えているが、この限りではない。焦点検出において読み出しを行う画素数が全体の読み出し時間に与える影響が問題となり得る場合に本実施形態の構成を適用可能である。
(第3の実施形態)
次に本発明の第3の実施形態に係る撮像装置の動作について説明する。本実施形態に係る撮像装置の構成は第1の実施形態に述べた構成と同じであるため説明を省略し、撮像装置の動作について主として第1の実施形態と異なる点を説明する。
本実施形態における撮像装置の動作を図13のフローチャートを用いて説明する。まず、操作部104に含まれる動画撮影スイッチがユーザにより押下されると、動画撮影が開始される。動画撮影が開始されると撮像素子100、TG101、AFE102に電源が投入され、CPU103は動画撮影設定をする。設定後、CPU103から出力される同期信号に基づいてTG102は撮像素子100に読み出しパルスを出力し、撮像素子100は所定のフレームレートでの読み出し動作を開始する。なお、本実施形態では動画像の電荷蓄積・読出し動作はスリットローリング動作による電子シャッタ機能を使用して行われるが、これに限られるものではない。
撮像素子100から出力された信号は、AFE102においてアナログデジタル変換され、A像とAB像としてRAM107へ転送される。その後、A像とAB像は画像処理部108に転送され、所定の補正処理、圧縮等を行い、表示部106に動画データを表示する(ライブビュー)。撮影前に、表示部106に表示されたメニューと操作部104を使用して動画記録が選択されている場合には、動画は記録部109に順次記録される。
ステップS300において、CPU103は、操作部104に含まれるAFスイッチがユーザにより押下されたかどうか判断する。AFスイッチが押下されたと判断した場合は、ステップS301に進む。AFスイッチが押下されていないと判断した場合は、ステップS310に進む。
ステップS301において、CPU103は、設定情報を取得して(モード情報取得)、設定されているAFモードがサーチモードであるか否かを判断する。撮影前に表示部106に表示されたメニューと操作部104を使用してAFモードがサーチモードに選択されている場合には、ステップS302へ進む。AFモードがサーチモードに選択されていない場合は、ステップS313に進む。
ステップS302からS304の動作は、第1の実施形態で述べたステップS102からS104と同様であるため、説明を省略する。
ステップS305では、動画撮影のモードが顔優先モードであるか否かを判断する。本実施形態の撮像装置は、AFのモードとして顔優先モードを有する。顔優先モードでは、画像処理部108は、画像として入力されたAB像から、画像に顔が含まれているかを検出する。AB像に顔が検出された場合には焦点検出領域は顔がある領域に設定される。顔優先モードは表示部106に表示されたメニューと操作部104を使用して選択される。
なお、顔優先モードは人間の顔などの画像内の特徴点に対して焦点検出を高精度に行うモードであるが、特徴点を人間の顔とすることは一例である。焦点検出を高精度に行う必要があれば、顔以外の点を特徴点とするモードに変形してもよい。
動画撮影のモードとして顔優先モードが選択されていた場合にはステップS306へ進む。顔優先モードが選択されていない場合には、ステップS313に進む。ステップS306では、画像処理部108は画像に顔が検出されるか否かを判断する。顔が検出された場合にはステップS307へ進み、そうでない場合にはステップS313に進む。
ステップS307において、CPU103は、顔優先モードでAFを行うためのAF領域設定を行う。ここで、図14に示すように顔1、2、3が画像処理部108により検出されたものとする。この情報に基づいて、CPU103は、撮像素子100に対し、アドレスオフセット設定を行う。本実施形態ではアドレスオフセット保持部241、242、243にそれぞれ、値0、e、fを設定する。
本実施形態のアドレスオフセット制御回路240は第1の実施形態の動作に加え、以下の動作を行う。CPU103は、制御信号SEL_AOの値が切り替わる行を設定する。本実施形態では0、v、w行でSEL_AOが切り替わる設定を行う。さらに、CPU103は、制御信号SEL_AOの値がどの順番で切り替わるかを設定する。本実施形態では1、0、2の順番で切り替わる設定を行う。これにより、アドレスオフセット制御回路240は、図14に示すように0〜(v−1)行で1を、v〜(w−1)行で0を、w行以降で2をそれぞれ出力する。
図15(a)は、上述のアドレスオフセット設定において、A像が読み出される領域を示す図である。この設定では、図15(a)の斜線部に示す領域からA像が読み出される。すなわち、垂直方向に区切られた領域ごとに水平方向が異なる列からA像が出力される。また、AB像は全から読み出される。なお、ここではA像が出力される列数はn列より少ない列数である。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域の設定を行う。図15(b)は、相関演算の対象とする領域を示す図である。本実施形態では図15(b)の斜線部に示すように、検出された顔1、2、3を含むように領域00、01、02が設定される。
その後ステップS308において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出する。その位置が領域00〜02のいずれかに該当する垂直位置である場合、演算制御回路432は、相関演算回路430及びメモリ制御部434に対して演算有効信号を出力する。これとともに演算制御回路432は、ラインメモリ431に制御信号を出力する。
さらに、演算制御回路432は、図15(b)に示すようにv行、w行において領域番号の値が切り替わるように、領域番号00、01、02をメモリ制御部434に出力する。その結果、各領域において各行の相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
すべての領域について演算が終了すると、ピントずれ量算出部435はメモリ433から相関データを読み出し、各領域におけるピントずれ量(駆動距離情報)を算出してRAM107へ出力する。
次にステップS309において、CPU103はRAM107に格納される駆動距離情報と所定の値を比較し、所定の値より駆動距離が小さい場合には合焦していると判断し、ステップS310へと進む。合焦していないと判断した場合には、ステップS304に戻り、駆動距離情報に基づき焦点調節がなされ、その後は前述したステップS305からS309までの通常モードでの焦点検出動作を繰り返す。
ステップS310において、CPU103は、操作部104に含まれる静止画撮影スイッチがユーザにより押下されたか否かを判断する。静止画撮影スイッチが押下されたと判断した場合にはステップS311に進む。静止画撮影スイッチが押下されていないと判断した場合にはステップS312に進む。
静止画撮影スイッチが押下された場合、ステップS311において、動画撮影を中断し、静止画撮影を行う。その後、動画撮影を再開し、ステップS312に進む。
ステップS312において、CPU103は、動画撮影スイッチがユーザにより押下されたか否かを判断する。動画撮影スイッチが押下されたと判断した場合には、動画撮影を終了する。動画撮影スイッチが押下されていないと判断した場合にはステップS300へと戻り、再びAFスイッチの押下を判断する。
なお、上述の通り、ステップS301において通常モードが設定されていた場合には、ステップS313に進む。この場合のステップS313では、サーチモードで設定されたAF領域ではなく、CPU103等にあらかじめ設定されたAF領域の位置で前述した通常モードの設定がなされる。その後の処理は前述した動作と同様のため、説明を省略する。また、上述の通り、ステップS305において顔優先モードが選択されていない場合及びステップS306において顔が検出されない場合にもステップS313へ進む。その後の処理は前述した動作と同様のため、説明を省略する。
次に、顔の検出位置が図14の場合と異なる場合の動作例を図16及び図17を参照して説明する。図14との相違点は、顔1と顔2が重複する行を含む位置にある点である。
ステップS306において、画面に対して図16のように顔1と顔2が重複する行を含む位置に検出されたものとする。この場合、ステップS307に進む。ステップS307において、この情報に基づいて、CPU103は、撮像素子100に対し、アドレスオフセット設定を行う。アドレスオフセット保持部241〜243には、それぞれ、値0、e、fが設定される。
この場合、本実施形態のアドレスオフセット制御回路240は以下の動作を行う。CPU103は、制御信号SEL_AOの値が切り替わる行を設定する。この場合、0〜(v−1)行においては、制御信号SEL_AOの値が1と0に交互に切り替わる動作となるように設定される。また、v行以降においては、制御信号SEL_AOの値が2となるように設定される。これにより、アドレスオフセット制御回路240は、図17(a)に示すように、0〜(v−1)行では1、0を繰り返し、v行以降では2をそれぞれ出力する。
次にCPU103は、AF演算部110内の演算制御回路432に対して、相関演算の対象とするAF領域の設定を行う。図15(b)は、相関演算の対象とする領域を示す図である。本実施形態では図17(b)の斜線部に示すように、検出された顔1、2、3を含むように領域00、01、02が設定される。このとき、領域00と領域01の一部が重複した列を含む。
その後ステップS308において、撮影によってA像とAB像がAF演算部110に入力されると(画像データ取得)、駆動距離情報の生成が行われる。演算制御回路432は垂直同期信号と水平同期信号に基づき、入力されるA像とAB像の全体画像に対する位置を算出する。その位置が領域00〜02のいずれかに該当する垂直位置である場合、演算制御回路432は、相関演算回路430及びメモリ制御部434に対して演算有効信号を出力する。これとともに演算制御回路432は、ラインメモリ431に制御信号を出力する。
さらに、演算制御回路432は、図17(b)に示すように0〜(v−1)行の間では01、00を交互にメモリ制御部434に出力し、v行以降では02をメモリ制御部434に出力する。その結果各領域において各行の相関データが算出され、領域別にメモリ433に格納される相関データに加算されることとなる。
このようにして、顔1と顔2が重複する行を含む位置にある場合でも同様の動作が可能である。
上記動作により、水平方向に限られた画素数のA像しか出力できない場合においても、AF動作においてサーチモードの時にAF領域を垂直方向に加えて水平方向にも複数設定することができる。これにより、1フレーム分の画像でより広範囲に及ぶ複数のAF領域について同時に焦点検出を行うことが可能となる。さらに、本実施形態では、顔検出の結果に基づいて、A像を出力する水平方向の領域が垂直方向の領域ごとに個別に変更されている。そのため、各AF領域内のすべての行を対象に相関演算をすることができるので焦点検出の精度を向上させることができる。また、A像を出力する水平方向の領域の繰り返しパターンを垂直方向の領域ごとに変えることができる。これにより、例えば領域が垂直方向に重複する場合にも同様にAFを行うことができる。
本実施形態では、顔が検出された領域に基づいてA像を出力する水平方向の領域を変更している、この限りではない。周期的に区切られた所定領域で、A像を出力する水平方向の領域を変更してもよい。
また、上述した各実施形態においてすべての行でA像を出力する構成としている、この限りではない。AF領域が設定される行のみ、又は周期的に決められた所定行のみA像を出力する構成でもよい。
上述した実施形態において図6、図10、及び図13に示した各処理は、各処理の機能を実現するためのプログラムをメモリから読み出してCPU103が実行することによりその機能を実現させることができる。
なお、各処理の機能を実現する構成は、上述した構成に限定されるものではなく、図6、図10、及び図13に示した各処理の全部又は一部の機能を、専用のハードウェアにより実現してもよい。上述の専用のハードウェアは、例えば、特定用途向け集積回路(ASIC)を含んで構成することができる。また、上述したメモリは、光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CD−ROM等の読み出しのみが可能な記憶媒体、RAM以外の揮発性のメモリであってもよい。また、それらの組合せによるコンピュータ読み取り、書き込み可能な記憶媒体より構成されてもよい。
また、図6、図10、及び図13に示した各処理の機能を実現するための1以上のプログラムをコンピュータ読み取り可能な記憶媒体に記録して、記憶媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。具体的には、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わる1以上のCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含む。
また、「コンピュータ読み取り可能な記憶媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記憶媒体」とは、一定時間プログラムを保持しているものも含むものとする。例えば、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ(RAM)も含む。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の実施形態の範疇に含まれる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、上述の実施形態の構成のうちの2以上を相互に組み合わせる変形を行うことができる。