以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<第1の実施形態>
以下、本発明の第1の実施形態について説明する。図1は、第1の実施形態における撮像装置の概略構成を示すブロック図である。
図1において、撮像レンズ101によって結像された像を撮像素子102が受光し、光電変換を行って、得られた信号をフロントエンジン103へ転送する。
ここで、撮像素子102の撮像画素と焦点検出画素の配列の概略について、図2を参照して説明する。図2(a)は、撮像素子102としての2次元CMOSセンサー(撮像素子)の画素(撮像画素)配列を、4列×4行の範囲で、焦点検出画素配列を8列×4行の範囲で示したものである。
画素群120は2行×2列の画素からなり、R(赤)の分光感度を有する画素120Rが左上に、G(緑)の分光感度を有する画素120Gが右上と左下に、B(青)の分光感度を有する画素120Bが右下に配置されている。さらに、各画素は2列×1行に配列された第1焦点検出画素121と第2焦点検出画素122により構成されている。
撮像素子102は、図2(a)に示す2列×2行の画素(4列×2行の光電変換部)からなる画素群120を撮像面上に多数配置することで、撮像信号及び焦点検出信号の取得を可能としている。
図2(a)に示した撮像素子102の1つの画素(例えば、画素120G)の断面を-y側から見た図を図2(b)に示す。図2(b)に示すように、本実施形態の画素120Gでは、各画素の受光側に入射光を集光するためのマイクロレンズ131が形成され、x方向にNH分割(2分割)、y方向にNV分割(1分割)された光電変換部132と光電変換部133が形成される。光電変換部132,133が、それぞれ、第1焦点検出画素121と第2焦点検出画素122に対応する。
各画素には、マイクロレンズ131と、光電変換部132,133との間に、カラーフィルタ134が形成される。本実施形態においては、上述したR(赤)の分光感度を有するカラーフィルタ、G(緑)の分光感度を有するカラーフィルタ、B(青)の分光感度を有するカラーフィルタのいずれかが配置される。ただし、カラーフィルタの分光感度特性はRGBに限定されるものではなく、また、カラーフィルタを省略しても良い。
このような構成を有する各画素では、異なる瞳領域を通過した光束をマイクロレンズ131で分離し、光電変換部132,133に結像する。そして、各光電変換部132,133からそれぞれ読み出した2つの信号(A信号、B信号)を出力する。
そして、複数の画素から出力された複数のA信号と複数のB信号をそれぞれ集めることで、撮像面位相差検出方式によるAF(以下、「撮像面位相差AF」という。)に用いられる一対の像信号(A像信号、B像信号)を得る。そして、該一対の像信号の相対位置をずらしながら重ね合わせ、各ずらし位置において、例えば、波形の差異部分の面積量(相関量)を求める相関演算を行う。この相関量がもっとも小さくなるずらし位置、即ち、焦点状態を表す、最も相関が取れているずれ量である位相差(以下、「像ずれ量」という。)を求め、さらに算出した像ずれ量から撮影光学系のデフォーカス量及びデフォーカス方向を算出する。
なお、本実施形態では各画素において、1つのマイクロレンズ131に対して2つの光電変換部132,133を有する構成としているが、光電変換部の数は2つに限定されず、それ以上であってもよい。また、瞳分割方向も水平方向に限られるものでは無く、垂直方向であっても良い。また、マイクロレンズ131に対して受光部の開口位置が異なる画素を複数有するようにしてもよい。つまり、結果としてA信号とB信号といった位相差検出用の2つの信号が得られる構成であればよい。また、本発明は図2に示すように全ての画素が複数の光電変換部を有する構成に限らず、撮像素子102を構成する通常画素内に、図2に示すような焦点検出用画素を離散的に設ける構成であってもよい。また、同じ撮像素子内において互いに異なる分割方法で分割された複数種類の画素が含まれてもよい。
撮像素子102から出力されたA信号及びB信号は、フロントエンジン103内部のA+B像生成部104及びA/B像フレーム加算部107へと入力される。A+B像生成部104は、各マイクロレンズに対応したA信号とB信号を加算してA+B信号に変換し、1フレーム分の画像信号(A+B像信号)を得る。画像フレーム加算部106は、画像メモリ105を用いて、所定期間の間、フレーム間で同じ画素に対応するA+B信号を加算するフレーム間加算(以下、「フレーム加算」と呼ぶ。)を行う。フレーム加算されたA+B像信号は、後段の映像エンジン113に転送される。映像エンジン113は、フレーム加算されたA+B像信号に対して各種の画像処理を行い、記録や表示のための画像データを生成する。
フロントエンジン103と映像エンジン113との間のインターフェースは、撮像素子102と映像エンジン113をつなぐインターフェースでもあり、フロントエンジン103は撮像素子102を模擬している構成となっている。また、撮像素子102とフロントエンジン103との間のインターフェースは、フロントエンジン103と映像エンジン113との間のインターフェースよりも高速な転送が可能なインターフェースを用いている。
一例として、映像エンジン113で1フレーム分の画像信号を転送可能な時間あたりに、撮像素子102からフロントエンジン103には数十倍程度のフレーム分の信号を転送可能とする。このようにすることで、撮像素子102をスリットローリングシャッタにより露光し、所定の期間の間に得られる複数フレーム分の信号をフレーム加算することで、任意の露光時間に相当する像を作成することが可能となる。そのため、本実施形態の撮像装置は、スリットローリングシャッタにより得られた複数フレーム分の信号をフレーム加算して映像エンジン113に転送する構成を前提としている。
なお、本実施形態では、撮像素子102からA信号とB信号が順次出力され、後段のフロントエンジン103で加算されてA+B信号を生成することで、焦点検出用の一対の信号と映像エンジン113に転送する画像信号を取得する例について説明した。しかしながら、本発明はこれに限定されるものでは無く、次の様にしてもよい。すなわち、例えば、撮像素子102が各画素からA信号(あるいはB信号)とA+B信号とを出力し、後段のフロントエンジンで103で、同じ画素のA+B信号からA信号(あるいはB信号)を減算する。これにより、撮像素子102から出力されない、視差を有するもう一方の焦点検出用の信号を得る。この場合はA+B像生成部104の代わりに、A+B信号からA信号(あるいはB信号)を減算するような処理部を構成すればよい。
一方、A/B像フレーム加算部107は、入力されたA信号及びB信号に対し、A/B像メモリ108を用いて、フレーム間で同じ画素の同じ光電変換部132,133から出力されたA信号及びB信号をそれぞれ加算するフレーム加算を行う。また、A/B像フレーム加算部107では、フレーム加算されたA信号及びB信号(以下、「フレーム加算信号」と呼ぶ。)の飽和判定を行い、判定結果を焦点検出部111に出力する。
ここで図3を参照して、A/B像フレーム加算部107の構成について説明する。図3はA/B像フレーム加算部107の回路図である。A/B像フレーム加算部107は、フレーム加算信号生成部148及び飽和判定部149により構成されている。
A/B像フレーム加算部107には、撮像素子102から出力されるA信号及びB信号と、A/B像メモリ108に格納されている前回までのフレーム加算信号が入力される。
入力された信号は、フレーム加算信号生成部148により、タイミング同期回路141で、同じ画素の座標位置に対応する信号同士が同期するようにタイミング調整され、加算器142によりフレーム加算信号の中間データを生成する。なお初回のフレーム加算時にはフレーム加算信号は存在しないため、予めA/B像メモリ108を0で初期化しておく。
フレーム加算信号の中間データを取り扱う回路のビット幅は、入力される2系統の信号を取り扱うビット幅よりも大きなビット幅となる。そのため、次のフレーム加算時に入力される前回のフレーム加算信号を取り扱うビット幅の値域内に収まるようにセレクタ143によりクリップ処理を行う。フレーム加算信号の中間データは、セレクタ143及び飽和判定部149の第一の比較器144に入力される。
第一の比較器144は、フレーム加算信号と、予め設定された飽和信号レベル閾値TH_LVLとを、1画素単位で比較する。フレーム加算信号の値が閾値TH_LVLより大きい場合、第一の比較器144は飽和画素であると判定し、1を出力する。フレーム加算信号の値が閾値TH_LVL以下であれば、第一の比較器144は飽和画素ではないと判定し、0を出力する。セレクタ143は、第一の比較器144による比較結果に応じて、フレーム加算信号か閾値TH_LVLの一方を選択して出力する。閾値TH_LVLは、次のフレーム加算時に入力される前回のフレーム加算信号を取り扱うビット幅の値域に収まる範囲で適宜設定すればよい。
セレクタ143は、第一の比較器144の比較結果が1、つまり飽和画素であると判定された場合は、閾値TH_LVLを出力し、比較結果が0、つまり飽和画素でないと判定された場合はフレーム加算信号を出力する。このように、第一の比較器144とセレクタ143により、飽和しているフレーム加算信号のクリップ処理を行うことができる。セレクタ143により出力される信号は、A/B像フレーム加算部107の外部に出力される。
一方、第一の比較器144による比較結果は、加算器145及びフリップフロップ146により構成されるカウンターにも入力され、飽和画素数がカウントされる。
第二の比較器147には、フリップフロップ146に保持された飽和画素数と、予め設定された飽和画素数の閾値TH_CNTとが入力されて比較される。飽和画素数が閾値TH_CNTより大きい場合、第二の比較器147は1を出力し、飽和画素数が閾値TH_CNT以下であれば0を出力する。第二の比較器147による比較結果は飽和判定結果として、焦点検出部111に出力される。
以上説明したようにA/B像フレーム加算部107は、閾値TH_LVLを上限としたフレーム加算信号と、閾値TH_LVL及び閾値TH_CNTに基づいて判定される飽和判定結果を外部に出力する。なお、加算器145、フリップフロップ146、および第二の比較器147を省略して、第一の比較器144の比較結果を飽和判定結果として、焦点検出部111に出力するようにしてもよい。
図1の説明に戻り、焦点検出部111は、飽和判定部149の飽和判定結果が1になると、A/B像信号のフレーム加算を打ち切り、A/B像フレーム加算部107から出力されるフレーム加算信号をA/B像メモリ108に記憶しないように制御する。この様に制御することにより、飽和判定結果が1になる直前のフレーム加算信号をA/B像メモリ108に残すことができる。相関演算部109に相関演算の開始命令を発行する。相関演算部109は、焦点検出部111からの制御命令に基づき、A/B像メモリ108に格納されているフレーム加算信号を用いて相関演算を行い、得られた相関波形を相関波形メモリ110に格納する。
焦点検出部111は、フロントエンジン103におけるこれらのブロック全体の制御を行うとともに、所定のタイミングで相関波形メモリ110に格納された相関波形からレンズ駆動に用いるデフォーカス量を算出する。そして、フォーカス制御部112に対して、デフォーカス量に基づく制御命令を発行する。
フォーカス制御部112は、撮像レンズ101を駆動する。このようにして、映像エンジン113にベイヤー配列の画像信号を転送すると共に、A像信号及びB像信号を用いた焦点検出を行う。
次に、本実施形態で行う相関演算について説明する。図4は相関演算に関する信号波形の例を示している。図4(a)において、縦軸は信号レベル、横軸は撮像素子102上のX座標位置を示している。151はA像信号の1ライン分の波形、152はB像信号の1ライン分の波形の一例を示す。また、153は飽和信号レベル閾値TH_LVLである。
図4(a)においては、A像信号151及びB像信号152は閾値TH_LVL以内に収まっている。焦点が合っていないA像信号151とB像信号152は、瞳分離方向にずれた像となっており、像のずれる方向とずれ量により、デフォーカス量とデフォーカス方向の情報が得られる。
図4(b)の154は、A像信号151をバンドパスフィルタに通して輪郭部分を抽出した信号、155は、B像信号152をバンドパスフィルタに通した信号であり、横軸は撮像素子102上のX座標位置を示している。
図4(c)は、横軸にA像信号とB像信号の位相、縦軸にSAD(SUM OF ABSOLUTE DIFFERENCE)というA像信号とB像信号の差の絶対値の総和を示す値を示している。図4(b)の信号154,155に対して相関演算を行うことで、図4(c)に示す様な波形の信号156が得られる。以降、このような相関演算結果を示す信号の波形を、相関波形と呼ぶ。
図4(c)の信号156の最も値の小さい部分157が、最も一致度の高い位相を示している。なお、このA像信号とB像信号の位相は、1ピクセル単位で対面する画素をずらした、ずれ量とも言うことができるが、デフォーカス量を得るためには1ピクセル単位では分解能が不十分である。そのため、本実施形態では、サブピクセル推定の技術であるパラボラフィッティングというサブピクセルマッチング演算を行って、1ピクセル以下の位相差を求める。
次に、図4(d)~図4(f)を参照して、飽和の影響について説明する。図4(d)は、図4(a)に対し、更にフレーム加算されたA像信号158及びB像信号159を示している。A像信号158は、A/B像フレーム加算部107におけるフレーム加算の結果、飽和が発生した信号となり、閾値TH_LVL153の値でクリップされた信号を含んでいる。クリップ処理により、A像信号は本来の像信号の形状が崩れている。
一方、B像信号159は、フレーム加算による飽和は発生しておらず、像信号の形状を保っている。
図4(e)の160は、A像信号158をバンドパスフィルタに通して輪郭部分を抽出した信号、161は、B像信号159をバンドパスフィルタに通した信号であり、横軸は撮像素子102上のX座標位置を示している。
図4(f)の信号162は、図4(e)の信号160及び161に対してSAD方式の相関演算を行った際の相関波形であり、163で最も低い値を示している。
図4(g)は、図4(c)に示す飽和が発生していない場合の相関波形156と、図4(f)に示す飽和が発生している場合の相関波形162とを並べたものである。図4(g)に示すように、それぞれの相関波形の最小値157と163の位置に差異が生じている。これはA像信号160の飽和により、像信号の形状が変化したことに起因しており、クリップ処理によって特徴点が消失したことで、本来の位相差を検出できなくなっている。
そこで本実施形態においては、飽和による像崩れを防ぎつつ、高振幅な信号を用いて相関演算を実施するために、飽和判定部149による飽和判定結果が1になったタイミングでフレーム加算を打ち切り、飽和した画素数が所定数以下である1フレーム前のフレーム加算信号を相関演算で参照するように制御を行う。
次に、図5を参照して相関演算部109について説明する。相関演算部109は、A/B像メモリ108からフレーム加算されたA像信号とB像信号を読み出し、不図示のバンドパスフィルタを通した信号を、図5(a)のA像入力、B像入力として入力する。B像信号に対してA像信号は遅延回路177により遅延され、SAD回路178に送られる。このような構造により、複数のSAD回路には同じB像画素に対して、1画素ずつずれたA像画素が入力されることになる。1サイクルごとにB像画素が入れ替わるのに対して、A像画素は遅延回路内で1画素ずつずれていく。
図5(b)は、SAD回路178の内部を示した回路図である。減算器173によってB像信号172からA像信号171の値が減算される。減算によって不の値になっている可能性があるため、絶対値回路174によって絶対値化される。その値を加算器175によって積算することで、位相差毎の差の絶対値を算出する。
図6は、上記構成を有する撮像装置における第1の実施形態の焦点検出処理のフローチャートである。S101で動作を開始すると、S102で撮像素子102の露光及び読み出しを行い、S103でA像信号、B像信号のフレーム加算及び飽和判定を行う。なお、S103を初めて実行するときは、フレーム加算信号が存在しないので、値を0で初期化されたA/B像メモリ108からの信号(即ち0)を前フレームまでのフレーム加算信号として用いる。2回目以降は、前フレームまでフレーム加算されたフレーム加算信号がA/B像メモリ108に保持されている。
S104で飽和判定部149による飽和判定結果が1である場合、S105へと進み、相関演算部109は、飽和判定結果が1となる1フレーム前までフレーム加算したフレーム加算信号をA/B像メモリ108から読み出して相関演算を行う。例えば図4(d)に示すフレーム加算信号を出力したフレームにおいて、飽和判定部149による飽和判定結果が1となった場合は、図4(a)に示すA像信号151及びB像信号152をA/B像メモリ108から読み出す。
S106では、S105の相関演算により出力される相関波形データを相関波形メモリ110内の所定領域に書き込む。2回目以降の処理では、前回の相関波形データは、上書されて更新される。
S107では、次の像信号のフレーム加算のために、A/B像メモリ108のフレーム加算用領域を値0で初期化し、S108に進む。
一方、S104で飽和判定部149による飽和判定結果が0である場合は、S111に進んで、S103で求めた現フレームまでのフレーム加算信号でA/B像メモリ108を上書きして、S108へと進む。
S108では、デフォーカス算出タイミングになっているかどうかを判定する。デフォーカス算出タイミングは、後述する図7のタイミング189,191に示す様に、レンズ駆動の目標値を変えるのに適切な周期が設定されている。
デフォーカス算出タイミングになっていなければS102に戻って次のフレームの露光を開始し、デフォーカス算出タイミングになっている場合はS109へと進み、最新の相関波形データに基づいてデフォーカス量を算出する。
S110では算出されたデフォーカス量に基づき、フォーカス制御部112を介してフォーカスレンズを、合焦状態とするための目標位置に駆動させる。S110が終わると再びS102に戻り、一連の動作が繰り返される。
図7は、上述した様に制御した場合の撮像装置の動作を説明するタイミングチャートである。図7において、横軸は時間を表している。
図7において、「センサ出力」は、撮像素子102からの信号の出力期間を表しており、フレーム毎に短いブランキングがある。
「画像露光期間」は、撮影モード等の設定に応じて決定される画像の露光期間を示している。画像の露光期間に対応する画像信号は、上述した様に、A+B像生成部104及び画像フレーム加算部106によるA+B像信号のフレーム加算により生成される。例えば、画像露光期間183に対応する画像信号は、センサ出力の第nフレームから第(n+7)フレームまでの8フレーム分のA+B像信号をフレーム加算することで生成される。
「AB像露光期間」は、焦点検出処理に用いるフレーム加算信号を得るための露光期間を示す。
「飽和検出」は、フレーム加算信号において、飽和判定結果が1となるタイミングを示す。例えば、第n~第(n+2)フレームのセンサ出力に対応するA像信号及びB像信号のフレーム加算を順次実行している途中、飽和判定が1になると、飽和検出信号185が出力される。この飽和検出信号185によりA像信号及びB像信号のフレーム加算が打ち切られ、相関演算が実行される。
「相関演算」は、相関演算を実行するタイミングを表している。例えば、飽和検出信号185が出力されると、それに応じたタイミング188で、飽和が検出される一つ前のフレームまでのフレーム加算信号(この例では、第n~第(n+1)フレームのフレーム加算信号)を用いて相関演算が実行される。
「デフォーカス算出」は、デフォーカス量の算出タイミングを示しており、レンズ駆動周期に応じた所定の間隔でデフォーカス量の算出が実行される。デフォーカス算出タイミング189では、直近の相関演算で得られた相関波形データを参照してデフォーカス量を算出する。この例では、デフォーカス算出タイミング189に対応する相関演算処理はタイミング188で行われた処理であり、この時に得られた相関演算の相関波形データを参照してデフォーカス量を算出する。また、デフォーカス算出タイミング189から193までの間に、タイミング191及び192で2回、相関演算処理がされているが、デフォーカス算出タイミング189に対応する相関演算処理は、直近のタイミング192で行われたものになる。この場合、タイミング191で得られた相関波形データは、タイミング192で得られた相関波形データにより上書きされているため、デフォーカス量の算出には用いられない。
「レンズ駆動」は、フォーカスレンズを駆動するタイミングを表しており、期間190は、算出されたデフォーカス量に応じて目標のレンズ位置に移動するまでのレンズの駆動期間を示している。
上記の通り第1の実施形態によれば、撮像素子から高速に転送される信号を個別にフレーム加算する構成にすることで、画像とは異なる露光時間の焦点検出信号を得ることができる。更に、焦点検出信号のフレーム加算部に飽和判定部を設けることによって、焦点検出に好適な振幅を有する信号を得ることが可能となる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。上述した第1の実施形態では、飽和判定部149による飽和判定結果に基づいてフレーム加算を打ち切って相関演算を実行する例について説明した。しかしながら、シーンによっては振幅が十分に確保できるまでにレンズの駆動レート以上に時間かかる場合もあり、そのようなシーンにおいては相関演算の実行頻度が低下して追従性が悪くなることがある。
そこで、第2の実施形態では飽和判定に加え、デフォーカス算出タイミングにおいてもフレーム加算を打ち切って相関演算を行うようにすることで、追従性を向上させる例について説明する。
図8は、第2の実施形態における撮像装置の概略構成を示すブロック図である。図8に示す撮像装置は、図1に示す構成と比較して、フロントエンジン203に相関波形加算部201が追加されていると共に、焦点検出部202による処理が第1の実施形態の焦点検出部111による処理と異なる。それ以外の構成は図1と同様であるため、同じ参照番号を付して説明を省略する。
相関波形加算部201は、レンズ駆動の間に相関演算が実行される毎に、各相関演算の相関波形データを相関波形メモリ110から読み出し、各相関波形データを位相差毎に対応づけて加算するとともに、加算した相関波形データをその内部に保持する。
焦点検出部202は、飽和判定部149による飽和判定結果が1になるか、デフォーカス量の算出タイミングになると像信号のフレーム加算を打ち切り、相関演算を実行するように制御する。更に、デフォーカス量の算出タイミングを検出している場合は、デフォーカス量の算出も行う。
図9は、第2の実施形態における焦点検出処理のフローチャートである。第2の実施形態では、追従性を向上させるために、焦点検出部202はデフォーカス算出周期に同期させて必ず一度は相関演算を行うように制御を行う。なお、図9のフローチャートにおいて、図6に示す処理と同様の処理には同じステップ番号を付して、適宜説明を省略する。
S106において、相関波形データを相関波形メモリ110内の所定領域に書き込むと、S201において、相関波形加算部201は、S106で更新された相関波形データを読み込み、内部に保持されている前回までの相関波形データに加算する。S201を初めて実行するときは、相関波形加算部201の内部に相関波形データは存在しないので、値0で初期化した相関波形データを前回までの相関波形データとして用いる。
S107では、次の像信号のフレーム加算のために、A/B像メモリ108のフレーム加算用領域を値0で初期化する。
次に、S108では、デフォーカス算出タイミングになっているかどうかを判定する。デフォーカス算出タイミングになっていなければステップS102に戻り、デフォーカス算出タイミングになっている場合はS202に進む。
S202において、相関演算部109は、A/B像メモリ108からフレーム加算信号を読み出し、相関演算を実行する。なお、S105における相関演算と、S202における相関演算との違いは、参照するフレーム加算信号が異なる点である。S105では飽和による打ち切りとなるため、像信号の形状を保持している1フレーム前までのフレーム加算信号を用いて行うが、S202では現在のフレームまでのフレーム加算信号を用いる。
S203では、S202の相関演算により得られた相関波形データを相関波形メモリ110内の所定領域に書き込む。そして、S204では、相関波形加算部201によりS203で更新された相関波形データを読み込み、内部に保持されている前回までの相関波形データに加算する。この際、S108でデフォーカス算出タイミングとなるまでに一度も飽和判定結果が1とならなかった場合には、相関波形加算部201には相関波形データは存在しないため、値0で初期化した相関波形データを前回までの相関波形データとして用いる。
次にS205において、焦点検出部202は、相関波形加算部201に保持されている相関波形データから極を算出し、サブピクセルマッチングによってデフォーカス量を算出する。S206では、デフォーカス量をゼロにするために必要なフォーカスレンズ駆動量を計算し、フォーカス制御部112に駆動制御命令を転送する。
そして、S207において次の像信号のフレーム加算のためにA/B像メモリ108のフレーム加算用領域を値0で初期化し、続いて、S208で相関波形加算部201の相関波形加算用領域を値0で初期化を行い、S102へと戻って一連の動作を繰り返す。
図10は、第2の実施形態における撮像装置の動作を説明するタイミングチャートである。図10に示すタイミングチャートと、第1の実施形態で説明した図7に示すタイミングチャートとの違いは、「相関演算」のタイミング211となる前に、飽和判定結果が1にならなかった点である。
デフォーカス算出タイミング210になると、飽和判定部149による飽和判定結果に関わらず像信号のフレーム加算が打ち切られ、タイミング211で相関演算処理が実行される。デフォーカス算出タイミング210以前には飽和判定結果が1となっていないため、焦点検出部202は、タイミング211の相関演算処理の結果、得られた相関波形データに基づいてデフォーカス量を算出する。そして、期間212に、デフォーカス量に基づいてレンズを、合焦状態とするための目標位置に駆動させる。
一方、デフォーカス算出タイミング210から、次のデフォーカス算出タイミング213までの間には、飽和判定結果が1になっているタイミング214がある。そのため、タイミング215では、タイミング214で打ち切られた際のフレーム加算信号を用いて相関演算が実行され、相関波形データが記憶される。
そして、デフォーカス算出タイミング213になると、フレーム加算が打ち切られ、タイミング216で相関演算が実行され、タイミング215で得られた相関波形データと、タイミング216で得られた相関波形データが加算される。
タイミング215で相関演算に参照されるフレーム加算信号は、露光期間217に対応する像信号と等価であり、また、飽和判定による打ち切りであるため信号の振幅は大きい。
一方、タイミング216の相関演算処理で参照されるフレーム加算信号は、露光期間218に対応する像信号と等価であり、撮像素子102の出力の1フレーム分の信号レベルしか有していないため、信号の振幅は小さい場合がある。
仮に、露光期間218に対応する像信号の振幅が小さい場合、第1の実施形態のように最新の相関波形データを参照してデフォーカス量を算出すると精度の低下が発生し得る。これに対し、第2の実施形態では、十分に振幅のある信号を参照したタイミング215における相関演算の相関波形データと、レンズ駆動直近の信号を参照したタイミング216における相関波形データとを加算する。このため、好適な相関波形を得ながら、追従性の高い焦点調節処理を実現することができる。
なお、本実施形態においてはデフォーカス算出タイミングまでの全ての相関演算により出られた相関波形データを加算することで相関波形の振幅を高くする例について示したが、本発明はこれに限られるものでは無い。例えば、図9のS201における相関波形の加算を実行せずに、飽和判定によって打ち切られた際の最新の相関波形データと、デフォーカス算出タイミングによって打ち切られた際の相関波形データを加算するようにしてもよい。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。上述した第2の実施形態では、飽和している信号が所定数を超える場合及びデフォーカスの算出タイミングにおいて、像信号のフレーム加算を打ち切って相関演算を実行し、相関波形データの加算を行った。
第3の実施形態は、飽和判定あるいはデフォーカスの算出タイミングによって像信号のフレーム加算を打ち切って相関演算を実行する点は第2の実施形態と同じであるが、以下の点で第2の実施形態と異なる。即ち、各相関演算結果に対応するデフォーカス量を毎回算出し、最終的なデフォーカス量を複数のデフォーカス量の平均値によって決定する。
図11は、第3の実施形態における撮像装置の概略構成を示すブロック図である。図11に示す撮像装置は、図1に示す構成と比較して、フロントエンジン303にデフォーカスメモリ301が追加されていると共に、焦点検出部302における処理が第1の実施形態における処理と異なる。それ以外の構成は図1と同様であるため、同じ参照番号を付して説明を省略する。
デフォーカスメモリ301は、各相関演算処理のデフォーカス量の記憶に用いられる。焦点検出部302は、相関演算実行後に相関波形データを読み出し、デフォーカス量を算出するとともに、デフォーカスメモリ301に算出したデフォーカス量を書き込む。
また、焦点検出部302は、デフォーカス算出タイミングにおいて、デフォーカスメモリ301に記憶されているデフォーカス量を読み出し、その平均値を算出することで最終的なデフォーカス量を取得する。
図12は、第3の実施形態における焦点検出処理のフローチャートである。なお、図12のフローチャートにおいて、図6または図9に示す処理と同様の処理には同じステップ番号を付して、適宜説明を省略する。
S106において、相関波形データを相関波形メモリ110内の所定領域に書き込むと、S301において、焦点検出部302は、相関波形メモリ110に書き込まれた相関波形データを参照して、デフォーカス量の算出を行う。そして、S302でデフォーカスメモリ301の所定領域にS301で算出したデフォーカス量を書き込み、焦点検出部302は不図示の内部カウンタの値を1増やす。
S107では、次の像信号のフレーム加算のために、A/B像メモリ108のフレーム加算用領域を値0で初期化する。
次に、S108では、デフォーカス算出タイミングになっているかどうかを判定する。デフォーカス算出タイミングになっていなければS102に戻り、デフォーカス算出タイミングになっている場合はS202に進む。
S202において、相関演算部109は、A/B像メモリ108からフレーム加算信号を読み出して相関演算を実行し、S203において、得られた相関波形データを相関波形メモリ110内の所定領域に書き込む。そして、S303において、焦点検出部302は、相関波形メモリ110に保持されている相関波形データから極を算出し、サブピクセルマッチングによってデフォーカス量を算出する。
そして、第3の実施形態では、S304において、焦点検出部302は、算出したデフォーカス量をデフォーカスメモリ301に書き込み、不図示の内部カウンタを1増やす。次にS305において、焦点検出部302は不図示の内部カウンタの値に基づいてデフォーカスメモリ301に記憶されている複数のデフォーカス量を読み出して加算平均を行い、レンズ駆動用の最終的なデフォーカス量を算出する。
S306では、S305で算出したデフォーカス量に基づいて、レンズを、合焦状態とするための目標位置に駆動させる。
そして、S307において次の像信号のフレーム加算のためにA/B像メモリ108のフレーム加算用領域を値0で初期化する。続けてS308において、デフォーカスメモリ301に記憶された複数のデフォーカス量と焦点検出部302の不図示の内部カウンタの値を値0で初期化し、S102へと戻る。
上記の通り第3の実施形態によれば、十分に振幅のある信号を参照して取得したデフォーカス量と、レンズ駆動直近の信号を参照したデフォーカス量との加算平均を取るため、好適且つ追従性の高い焦点調節処理を実現することができる。
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。上述した第1乃至第3の実施形態では、A像信号またはB像信号をフレーム加算した信号の飽和状態に応じてフレーム加算を打ち切るかどうかを判断した。これに対し、第4の実施形態では、A像信号またはB像信号のコントラストに基づいて判断する。
図13は、第4の実施形態における撮像装置の概略構成を示すブロック図である。図11に示す撮像装置は、図1に示す構成と比較して、フロントエンジン403にコントラスト評価部401及び相関波形加算部201が追加されていると共に、焦点検出部402における処理が第1の実施形態における処理と異なる。また、第4の実施形態におけるA/B像フレーム加算部407は、入力したA像信号及びB像信号を一旦A/B像メモリ108に記憶し、コントラスト評価部401におけるコントラスト評価値の算出と並行して、フレーム加算処理を行う。上記以外の構成は、図1と同様であるため、同じ参照番号を付して説明を省略する。なお、相関波形加算部201は、第2の実施形態において図8に示した相関波形加算部201と同様である。
コントラスト評価部401は、A/B像メモリ108に格納されたA像信号及びB像信号のコントラストを評価する。焦点検出部402は、フロントエンジン103におけるこれらのブロック全体の制御を行うとともに、フォーカス制御部112に対して制御命令を発行する。また、第4の実施形態では、焦点検出部402がA/B像のフレーム加算を打ち切る判定を行う場合に、コントラスト評価部401の評価結果を用いる。
図14はコントラスト評価部401の回路図である。入力したA像信号及びB像信号は、それぞれバンドパスフィルタ412を通った後に、絶対値回路413により絶対値化され、加算器414と保持素子415によって積算される。同時に、加算器416と保持素子417によって、バンドパスフィルタを通っていないA像信号及びB像信号の積分値が得られる。焦点検出部402は、保持素子415から得られる値を保持素子417から得られる値で正規化したものをコントラスト評価値として用いる。
焦点検出部402は、コントラスト評価値が予め決められた閾値よりも低下した場合に、A/B像信号のフレーム加算を打ち切り、A/B像フレーム加算部407から出力されるフレーム加算信号をA/B像メモリ108に記憶しないように制御する。この様に制御することにより、コントラストが低下する直前のフレーム加算信号をA/B像メモリ108に残すことができる。
図15は、第4の実施形態の相関演算におけるコントラスト低下の影響を説明する図である。図15(a)において、縦軸は信号レベル、横軸は撮像素子102上のX座標位置を示している。421はA像信号の1ライン分の波形、422はB像信号の1ライン分の波形の一例を示す。また、423は、映像エンジン113へ転送される、A+B像信号の1ライン分の波形を示している。
このように焦点の合っていないA像信号421とB像信号422は、瞳分離方向にずれた像となっており、像のずれる方向とずれ量により、デフォーカス量とデフォーカス方向の情報が得られる。
図15(b)の424は、A像信号421をバンドパスフィルタに通して輪郭部分を抽出した信号、425は、B像信号422をバンドパスフィルタに通した信号であり、横軸は撮像素子102上のX座標位置を示している。
図15(c)は、横軸にA像信号とB像信号の位相、縦軸にSAD方式により得られた相関値を示している。図15(b)の信号に対して相関演算を行うことで、図15(c)の波形の信号426が得られる。
図15(c)の信号426の最も値の小さい部分が最も一致度の高い位相を示している。なお、第4の実施形態においても、第1の実施形態と同様に、サブピクセルマッチング演算を行って、1ピクセル以下の位相差を求める。以降、図4(c)の波形を相関波形と呼ぶ。
ここで、A像信号421及びB像信号422が被写体ブレによるコントラスト低下を起こしてしまうと、図15(d)の427に示すような波形となってしまい、サブピクセルマッチング演算の精度が下がってしまう。そこで、第4の実施形態は、SAD方式の相関演算による演算結果が、427のような波形になるのを防止する。
図16は、第4の実施形態における焦点検出処理のフローチャートである。S401で動作を開始すると、S402で撮像素子102の露光及び読み出しを行い、S403でA像信号、B像信号のフレーム加算を行うと共に、得られたA像信号、B像信号のコントラスト評価値を算出する。なお、S403を初めて実行するときは、フレーム加算信号が存在しないので、値を0で初期化されたA/B像メモリ108からの信号(即ち0)を前フレームまでのフレーム加算信号として用いる。2回目以降は、前フレームまでフレーム加算されたフレーム加算信号がA/B像メモリ108に保持されている。コントラスト評価値には、図14を参照して説明した様に、保持素子415に保持された値を保持素子417に保持された値で正規化したものを用いる。
S404では、コントラスト評価値が前回取得した値に対して低下したかどうかを判断する。なお、初めての場合は前回の値を0として判断するため、必ず低下していないことになり、S407へ進む。2度目以降の場合は、前回のコントラスト評価値と今回のコントラスト評価値との差分を算出し、差分が閾値よりも大きくなった場合にS405へ進む。
S405では、相関演算部109は、コントラストの低下が閾値を超える1フレーム前までフレーム加算したフレーム加算信号をA/B像メモリ108から読み出して相関演算を行う。そして、S406において、相関波形データを相関波形メモリ110内の所定領域に書き込む。
S407では、相関波形加算部201は、S406で更新された相関波形データを読み込み、内部に保持されている前回までの相関波形データに加算する。S407を初めて実行するときは、相関波形加算部201の内部に相関波形データは存在しないので、値0で初期化した相関波形データを前回までの相関波形データとして用いる。
S408では、次の像信号のフレーム加算のために、A/B像メモリ108のフレーム加算用領域を値0で初期化する。
一方、S404でコントラストの低下が閾値を超えない場合は、S420に進んで、S403で求めた現フレームまでのフレーム加算信号でA/B像メモリ108を上書きして、S409へと進む。
S409では、デフォーカス算出タイミングになっているかどうかを判定する。デフォーカス算出タイミングはレンズ駆動の目標値を変えるのに適切な周期を設定し、そのタイミングになっているかどうかを判断する。デフォーカス算出タイミングになっていなければS402に戻って次のフレームの露光を開始する。このように、レンズの駆動周期よりも前にコントラストが低下しそうであれば、そのフレームの像信号のフレーム加算をせずに相関演算まで行うと共に、新たにフレーム加算を開始する。
デフォーカス算出タイミングになっている場合はS410へと進み、最新の相関波形データに基づいてデフォーカス量を算出する。
S411では、S410の相関演算により得られた相関波形データを相関波形メモリ110内の所定領域に書き込む。そして、S412では、相関波形加算部201によりS411で更新された相関波形データを読み込み、内部に保持されている前回までの相関波形データに加算する。この際、S409でデフォーカス算出タイミングとなるまでに一度もコントラストが低下しなかった場合には、相関波形加算部201には相関波形データは存在しないため、値0で初期化した相関波形データを前回までの相関波形データとして用いる。
次にS413において、焦点検出部402は、相関波形加算部201に保持されている相関波形データから極を算出し、サブピクセルマッチングによってデフォーカス量を算出する。S414では、デフォーカス量をゼロにするために必要なフォーカスレンズ駆動量を計算し、フォーカス制御部112に駆動制御命令を転送する。
そして、S415において次の像信号のフレーム加算のためにA/B像メモリ108のフレーム加算用領域を値0で初期化し、続いて、S416で相関波形加算部201の相関波形加算用領域を値0で初期化を行い、S402へと戻って一連の動作を繰り返す。
図17は、第4の実施形態における撮像装置の動作を説明するタイミングチャートであり、横軸が時間となっている。なお、図17に示す信号のタイミングの内、図10と同じ信号については、説明を省略する。
デフォーカス算出タイミング430になると、コントラスト評価部401からの出力に基づくコントラスト低下の判定結果に関わらず像信号のフレーム加算が打ち切られ、タイミング431で相関演算処理が実行される。デフォーカス算出タイミング430以前にはコントラスト低下が判定されていないため、焦点検出部402は、タイミング431の相関演算処理の結果、得られた相関波形データに基づいてデフォーカス量を算出する。そして、期間432に、デフォーカス量に基づいてレンズを合焦状態とするための目標位置に駆動する。
一方、デフォーカス算出タイミング430から、次のデフォーカス算出タイミング433までの間には、コントラスト低下が判定されているタイミング434がある。そのため、タイミング435では、タイミング434で打ち切られた際のフレーム加算信号を用いて相関演算が実行され、相関波形データが記憶される。
そして、デフォーカス算出タイミング433になると、フレーム加算が打ち切られ、タイミング436で相関演算が実行され、タイミング435で得られた相関波形データと、タイミング436で得られた相関波形データが加算される。
タイミング435で相関演算に参照されるフレーム加算信号は、露光期間437に対応する像信号と等価である。一方、タイミング436の相関演算処理で参照されるフレーム加算信号は、露光期間438に対応する像信号と等価であり、撮像素子102の出力の1フレーム分の信号レベルしか有していないため、信号の振幅は小さい場合がある。
このような場合であっても、第4の実施形態では、複数の相関波形データを加算するため、好適な相関波形を得ながら、追従性の高い焦点調節処理を実現することができる。
また、上記のような構成とすることでA像信号及びB像信号をフレーム加算して相関演算を行うタイミングと、デフォーカス量を算出してレンズを駆動するタイミングと、フロントエンジン103から映像エンジン113に信号を転送するタイミングとをそれぞれ適切に設計可能となる。特にA像信号及びB像信号が手ブレによりコントラストの低下が起き、焦点検出の精度が下がることを未然に防ぐことが可能となる。
<第5の実施形態>
次に、本発明の第5の実施形態について説明する。上述した実施形態と比較して、第5の実施形態ではフレーム加算の打ち切りの判断に動き検出結果を利用するところが異なる。
図18は、第5の実施形態における撮像装置の概略構成を示すブロック図である。図18に示す撮像装置は、図13に示す構成と比較して、フロントエンジン503に、コントラスト評価部401の代わりに動き検出部501が追加されていると共に、焦点検出部502による処理が、第4の実施形態における焦点検出部402による処理と異なる。これら以外の構成は、図13と同様であるため、同様の構成要素に関しては同じ参照番号を付して説明を省略する。
動き検出部501は、相関演算部109とほぼ同じ構成の回路となっている。相関演算部109は、A像信号とB像信号を入力としているが、動き検出部501の入力は現フレームのA像信号またはB像信号と、前フレームのA像信号またはB像信号である。動きがない場合は現フレームのA像信号と前フレームのA像信号の位相差をとると、位相差0の場所が最も相関が高くなる。すなわち、図15(c)に示す信号506の最も値の小さい部分が位相差0となる。それに対して、被写体やカメラアングルが動いてしまった場合、現フレームのA像信号と前フレームのA像信号の輪郭がずれるため、位相差が0でない部分で相関が高くなる。第5の実施形態における撮像装置では、動き検出部501の相関演算の結果、位相差が0よりも閾値以上離れたことを検出すると、フレーム加算の打ち切りを判断する。
図19は、第5の実施形態における焦点検出処理のフローチャートである。なお、図16に示す第4の実施形態におけるフローチャートとの違いは、S501で動き検出部501を用いて動きを検出することと、S502で動き量が閾値を超えたかどうかに応じて、S405またはS407に分岐する点である。それ以外の処理は図16に示す処理と同様であるため、同じステップ番号を付し、説明を省略する。
上記の通り第5の実施形態によれば、動き検出を利用して、第4の実施形態と同様の効果を得ることができる。
<第6の実施形態>
次に、本発明の第6の実施形態について説明する。上述した第5の実施形態では、動き量が閾値を超える場合及びデフォーカスの算出タイミングにおいて、像信号のフレーム加算を打ち切って相関演算を実行し、相関波形の加算を行った。
第6の実施形態は、動き判定あるいはデフォーカスの算出タイミングによって像信号のフレーム加算を打ち切って相関演算を実行する点は第5の実施形態と同じであるが、以下の点で第5の実施形態と異なる。即ち、各相関演算結果に対応するデフォーカス量を毎回算出し、最終的なデフォーカス量を複数のデフォーカス量の平均値によって決定する。
図20は、第6の実施形態における撮像装置の概略構成を示すブロック図である。図20に示す撮像装置は、図13に示す構成と比較して、フロントエンジン603に、コントラスト評価部401の代わりにデフォーカスメモリ301が追加されていると共に、焦点検出部602における処理が第4の実施形態における処理と異なる。それ以外の構成は、図13と同様であるため、同様の構成要素に関しては同じ参照番号を付して説明を省略する。なお、デフォーカスメモリ301は、第3の実施形態において図11に示したデフォーカスメモリ301と同様である。
以下、図21のフローチャートを参照して、第6の実施形態における焦点検出処理について説明する。なお、図21のフローチャートにおいて、図16または図19に示す処理と同様の処理には同じステップ番号を付して、適宜説明を省略する。
S406において、相関波形データを相関波形メモリ110内の所定領域に書き込むと、S601において、焦点検出部602は、相関波形メモリ110に書き込まれた相関波形データを参照して、デフォーカス量の算出を行う。そして、S602でデフォーカスメモリ301の所定領域にS601で算出したデフォーカス量を書き込み、焦点検出部602は不図示の内部カウンタの値を1増やす。
S408では、次の像信号のフレーム加算のために、A/B像メモリ108のフレーム加算用領域を値0で初期化する。
次に、S409では、デフォーカス算出タイミングになっているかどうかを判定する。デフォーカス算出タイミングになっていなければS402に戻り、デフォーカス算出タイミングになっている場合はS410に進む。
S410において、相関演算部109は、A/B像メモリ108からフレーム加算信号を読み出して相関演算を実行し、S411において、得られた相関波形データを相関波形メモリ110内の所定領域に書き込む。そして、S603において、焦点検出部302は、相関波形メモリ110に保持されている相関波形データから極を算出し、サブピクセルマッチングによってデフォーカス量を算出する。
そして、第6の実施形態では、S604において、焦点検出部602は、算出したデフォーカス量をデフォーカスメモリ301に書き込み、不図示の内部カウンタを1増やす。次にS605において、焦点検出部602は不図示の内部カウンタの値に基づいてデフォーカスメモリ301に記憶されている複数のデフォーカス量を読み出して加算平均を行い、レンズ駆動用の最終的なデフォーカス量を算出する。
S606では、S605で算出したデフォーカス量に基づいて、レンズを、合焦状態とするための目標位置に駆動させる。
そして、S607において次の像信号のフレーム加算のためにA/B像メモリ108のフレーム加算用領域を値0で初期化する。続けてS608において、デフォーカスメモリ301に記憶された複数のデフォーカス量と焦点検出部302の不図示の内部カウンタの値を値0で初期化し、S402へと戻る。
上記の通り本第6の実施形態によれば、複数のデフォーカス量の平均を取ることにより、第4の実施形態と同様の効果を得ることができる。
なお、第6の実施形態では、フレーム加算を打ち切るかどうかを動き量により判断する場合について説明したが、第4の実施形態のように、フレーム加算信号のコントラストにより判断しても良い。
<第7の実施形態>
次に、本発明の第7の実施形態について説明する。上述した第1乃至第6の実施形態では、A像信号またはB像信号を順次フレーム加算し、予め決められた条件に応じて、フレーム加算を打ち切るかどうかを判断した。これに対し、第7の実施形態では、A像信号またはB像信号を一旦、全て記憶し、複数のフレームの組み合わせでフレーム加算を行って、焦点検出に適した組み合わせのフレーム加算信号を選択する。
図22は、第7の実施形態における撮像装置の概略構成を示すブロック図である。図22に示す撮像装置は、第4の実施形態の図13に示す構成と比較して、フロントエンジン703のA/B像フレーム加算部407とA/B像メモリ108との接続順を逆にすると共に、相関波形加算部201を有しない構成となっている。また、焦点検出部702における処理が第4の実施形態における処理と異なる。なお、図22において、図13に示す構成と基本的に同様の処理を行う構成には、同じ参照番号を付して、適宜説明を省略する。
撮像レンズ101によって結像された像を撮像素子102が受光し、光電変換を行って、得られた信号をフロントエンジン103へ転送する。フロントエンジン103に入力された撮像素子102からのA信号及びB信号は、A+B像生成部104に入力されて、上述した画像信号に変換する処理が行われると共に、A/B像メモリ108にも転送される。ここで、第7の実施形態では、フレーム加算されること無く、すべてのフレームのA信号及びB信号が記憶される。
なお、A/B像メモリ108と画像メモリ105は、1つのメモリの異なるアドレスを時分割で共有しても良い。
図23は、上記構成を有する撮像装置における第7の実施形態の焦点検出処理のフローチャートである。S701で動作を開始すると、S702で撮像素子102の露光及び読み出しを行い、S703で、読み出したA信号及びB信号をA/B像メモリ108に格納する。
S704で、予め決められた露光時間が経過したかどうかを判断し、経過していなければS702へ戻り、経過していればS705へ進む。S702からS704を繰り返すことにより、複数フレーム分のA信号及びB信号がA/B像メモリ108に記憶されることになる。
そして、予め決められた露光時間が経過すると、S705では、焦点検出部702の制御により、A/B像フレーム加算部407は異なる複数の組み合わせで複数フレームのA信号及びB信号を加算し、複数対の異なるフレーム加算信号を生成する。
例えば、予め決められた露光時間の間に3フレーム分のA像信号及びB像信号が記憶されている場合、それら3フレームの加算の組み合わせとしてはフレーム1、フレーム2、フレーム3、フレーム1+2、フレーム2+3、フレーム1+2+3が考えられる。S705ではこれらの組み合わせそれぞれについて、フレーム加算信号を生成する。なお、ブレていない像を得る事が目的であるため、フレーム1+3など、時間的に連続していない組み合わせでのフレーム加算は行わない。
そして、S706において、コントラスト評価部401によりS705で生成された複数対のフレーム加算信号それぞれのについてコントラスト評価値を求める。そして、焦点検出部702は、得られたコントラスト評価値の内、最もコントラストの高い結果が得られた組み合わせを選択し、A/B像フレーム加算部407に通知する。なお、加算数に応じて像信号の振幅は大きくなるため、その影響を無くすためにコントラスト評価値の正規化を行い、正規化したコントラスト評価値を用いて選択する。また、正規化したコントラスト評価値が同程度の場合は、フレームの加算数が多い方を選択する。これは、加算数が多いほうが、S/N比が良いことが期待できるからである。
S707では、A/B像フレーム加算部407は、通知された組み合わせにより再度フレーム加算信号を求め、求めたフレーム加算信号を用いて相関演算部109により相関演算を行い、得られた相関波形データを相関波形メモリ110へ格納する。この相関波形データに基づいて焦点検出部702がデフォーカス量を算出する。
そして、S708において、焦点検出部702はフォーカス制御部112を制御し、レンズを駆動する。
S709において、A/B像メモリ108を0にクリアして、S702に戻る。
上記処理により、撮像画像の露光時間で得られる像よりもブレの少ないフレーム加算信号を用いて焦点検出を行うことが可能となる。
図24は、第7の実施形態における撮像装置の動作を説明するタイミングチャートである。図24において、横軸は時間を表している。
また、「センサ出力」は、撮像素子102からの信号の出力期間を表しており、フレーム毎に短いブランキングがある。
「画像露光期間」は、撮影モード等の設定に応じて決定される画像の露光期間を示している。画像の露光期間に対応する画像信号は、上述した様に、A+B像生成部104及び画像フレーム加算部106によるA+B像信号のフレーム加算により生成される。
「画像フレーム加算部出力」は、画像フレーム加算部106から出力される画像信号を表している。例えば、画像露光期間723に対応する画像信号は、センサ出力の第nフレームから第(n+2)フレームまでの3フレーム分のA+B像信号をフレーム加算することで生成され、期間724の間に映像エンジン113に出力される。また、画像露光期間728に対応する画像信号は、センサ出力の第(n+6)フレームから第(n+8)フレームまでの3フレーム分のA+B像信号をフレーム加算することで生成され、期間729の間に映像エンジン113に出力される。
「コントラスト評価」は、「画像露光期間」にA/B像メモリ108に格納されたA像信号及びB像信号を用いて、コントラスト評価値を算出する期間を表している。例えば、画像露光期間723に対応する3フレーム分のA像信号及びB像信号から、上述した様に6種類のフレーム加算信号を生成し、コントラスト評価部401により各フレーム加算信号のコントラスト評価値を求め、使用するフレームの組み合わせを決定する。
「相関演算」は、相関演算を実行するタイミングを表しており、上述したコントラスト評価により決定されたフレームの組み合わせのフレーム加算信号を用いて、相関演算部109で相関演算を行う。例えば、コントラスト評価期間725で決定された組み合わせのフレーム加算信号を用いて、期間726で相関演算を行う。
「レンズ駆動」は、フォーカスレンズを駆動するタイミングを表しており、期間727において、期間726で得られた相関演算の結果に基づいてデフォーカス量を演算し、目標のレンズ位置にレンズを駆動して、次の第(n+6)フレームからの露光に備える。
上記の通り第7の実施形態によれば、撮像素子から高速に転送されるフレーム信号を用いて、画像とは独立に、任意の露光時間の焦点検出信号を得ることができる。
<第8の実施形態>
次に、本発明の第8の実施形態について説明する。上述した第7の実施形態と比較して、第8の実施形態ではフレーム加算の打ち切りの判断に動き検出結果を利用するところが異なる。
図25は、第8の実施形態における撮像装置の概略構成を示すブロック図である。図25に示す撮像装置は、図22に示す構成と比較して、フロントエンジン803に、コントラスト評価部401の代わりに動き検出部501が追加されていると共に、焦点検出部802による処理が、第7の実施形態における焦点検出部702による処理と異なる。なお、動き検出部501は、第5の実施形態の図18における動き検出部501と同様の構成を有する。これら以外の構成は、図23と同様であるため、同様の構成要素に関しては同じ参照番号を付して説明を省略する。
図26は、第8の実施形態における焦点検出処理のフローチャートである。なお、図23に示す第7の実施形態におけるフローチャートとの違いは、S801で動き検出部501を用いて動きを検出し、動き量に基づいて、フレーム加算に用いるフレームの組み合わせを決定する点である。なお、上述した様に、3フレーム分のA像信号及びB像信号がA/B像メモリ108に記憶されている場合、6種類のフレームの組み合わせが考えられる。ここで、フレーム数が1の組み合わせの場合、動き検出は不可能なので、動き量0として評価し、フレーム1+2+3の場合は、フレーム1と2との間の動き量と、フレーム2と3との間の動き量の合計とする。また、動き量の幅が一定範囲(実施例2では位相差0.5ピクセル)以内であれば加算量の多いほうを選択する。
上記以外の処理は図23に示す処理と同様であるため、同じステップ番号を付し、説明を省略する。
上記の通り第8の実施形態によれば、動き検出を利用して、第7の実施形態と同様の効果を得ることができる。
<第9の実施形態>
次に、本発明の第9の実施形態について説明する。第7及び第8の実施形態では、A像信号及びB像信号がブレによるコントラスト低下を起こしていないフレームの組み合わせを選択して、フレーム加算を行うように制御していた。これに対して第9の実施形態では、A像信号及びB像信号のブレを相殺しながら、フレーム加算を行う。
図27は、第9の実施形態における撮像装置の概略構成を示すブロック図である。図27に示す撮像装置は、図25に示す構成と比較して、フロントエンジン903における動き検出部501の接続位置と、焦点検出部902における処理が第8の実施形態における処理と異なる。それ以外の構成は、図25と同様であるため、同様の構成要素に関しては同じ参照番号を付して説明を省略する。
以下、図28のフローチャートを参照して、第9の実施形態における焦点検出処理について説明する。なお、図28に示す処理の内、図23または図26に示す処理と同様の処理には同じステップ番号を付して、適宜説明を省略する。
S704で、予め決められた露光時間が経過すると、S901に進み、A/B像メモリ108から順次連続する2フレームのA像信号及びB像信号を読み出して、フレーム間の動きを検出し、検出した動き量をA/B像フレーム加算部407に出力する。
次のS902において、A/B像フレーム加算部407は検出された動き量に従って、動きを相殺するように像をずらしながら、すべてのフレームを順次加算する。
S903では、相関演算部109が、動きが相殺されたフレーム加算信号を用いて相関演算を行い、得られた相関波形データを相関波形メモリ110へ格納する。この相関波形データに基づいて焦点検出部702がデフォーカス量を算出する。
上記の通り本第9の実施形態によれば、第7の実施形態における効果と同様の効果が得られると共に、ブレを補正しながらフレーム加算を行うため、ブレの少ないフレーム加算信号を用いて、より精度の高い焦点検出を行うことが可能になる。
<他の実施形態>
なお、本発明は、複数の機器(例えばカメラヘッド、ホストコンピュータ、インターフェイス機器など)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、撮像装置など)に適用してもよい。
また、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。