(57)【特許請求の範囲】
【請求項１】
複数の第１の光電変換部と、
該複数の第１の光電変換部のそれぞれに対して対をなし、かつ視差を有するように配置された複数の第２の光電変換部と、
被写体からの光を前記第１および第２の光電変換部に受光させて行う撮像において、前記第１の光電変換部からその出力信号である第１の信号を読み出し、互いに前記対をなす前記第１および第２の光電変換部から前記第１の信号と該第２の光電変換部の出力信号が合成された第２の信号を読み出す信号読み出し手段とを有する撮像装置に用いられる画像処理装置であって、
前記第１および第２の信号を用いて、互いに対をなし、かつ視差を有する第１の画像および第２の画像を生成する画像生成手段と、
前記第１および第２の画像に対して相関演算を行って相関値を算出し、該相関値を用いてデフォーカス量を算出するデフォーカス量算出手段とを有し、
前記画像生成手段は、前記複数の第１の光電変換部のうち一部の特定光電変換部から読み出された前記第１の信号を用いて前記第１の画像を生成するとともに、前記対をなす前記特定および第２の光電変換部から読み出された前記第２の信号と前記特定光電変換部からの前記第１の信号とから前記第２の画像を生成する処理を、複数回の前記撮像のそれぞれにおいて前記撮像ごとに前記特定光電変換部を変更しながら行うことにより、複数の前記第１の画像と複数の前記第２の画像とを生成し、
前記デフォーカス量算出手段は、前記複数の第１の画像と前記複数の第２の画像とを用いて前記デフォーカス量を算出することを特徴とする画像処理装置。
【請求項２】
前記デフォーカス量算出手段は、
前記複数の第１の画像を互いに異なる領域に含む単一画像に相当する第３の画像を生成するとともに、前記複数の第２の画像を互いに異なる領域に含む単一画像に相当する第４の画像を生成し、
前記第３および第４の画像を用いて前記デフォーカス量を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第３の画像および前記第４の画像はそれぞれ、前記複数の第１の光電変換部および前記複数の第２の光電変換部の出力信号により得られる単一画像に相当することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記デフォーカス量算出手段は、
前記撮像ごとに得られた前記第１および第２の画像間で前記相関値を算出し、
前記複数回の前記撮像においてそれぞれ得られた複数の前記相関値を加算して得られた加算相関値を用いて前記デフォーカス量を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記デフォーカス量算出手段は、
前記相関演算において、前記複数回の撮像のそれぞれが行われた時点から前記相関演算の時点までの時間長さに応じた重みを用いて前記相関値を算出し、
前記時間長が短いほど前記重みを大きくすることを特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記複数回の撮像により生成された複数の移動体検出画像から前記被写体としての移動体を検出する移動体検出手段を有し、
前記デフォーカス量算出手段は、
前記相関演算において、前記第１および第２の画像のうち相関演算領域における相関演算の対象画素が前記移動体を示す否かに応じて前記対象画素以外の周囲画素に重みを付けて前記相関値を算出し、
前記対象画素が前記移動体を示す場合は、前記移動体を示す前記周囲画素に対する前記重みを前記移動体を示さない前記周囲画素に対する前記重みより大きくし、
前記対象画素が前記移動体を示さない場合は、前記移動体を示す前記周辺画素に対する前記重みを前記移動体を示さない前記周囲画素に対する前記重みより小さくすることを特徴とする請求項１から５のいずれか一項に記載の画像処理装置。  
【請求項７】
前記デフォーカス量算出手段は、
前記対象画素が移動体を示す場合は、前記移動体の移動量が大きいほど前記移動体を示す前記周囲画素に対する重みを大きくし、
前記対象画素が前記移動体を示さない場合は、前記移動量が大きいほど前記移動体を示す前記周囲画素の前記重みを小さくすることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記デフォーカス量算出手段は、
前記撮像装置の振れの情報を取得し、
前記デフォーカス量算出手段は、
前記相関演算において、前記振れの大きさに応じた重みを用いて前記相関値を算出し、
前記振れの大きさが大きいほど前記重みを小さくすることを特徴とする請求項１から７のいずれか一項に記載の画像処理装置。
【請求項９】
請求項１から８のいずれか一項に記載の画像処理装置と、
前記複数の第１の光電変換部と、
前記複数の第２の光電変換部と、
前記信号読み出し手段とを有することを特徴とする撮像装置。
【請求項１０】
複数の撮像画素を有し、各撮像画素が１つのマイクロレンズと前記第１および第２の光電変換部とを含む撮像素子を有することを特徴とする請求項９に記載の撮像装置。
【請求項１１】
複数の第１の光電変換部と、該複数の第１の光電変換部のそれぞれに対して対をなし、かつ視差を有するように配置された複数の第２の光電変換部とを有し、被写体からの光を前記第１および第２の光電変換部に受光させて行う撮像において、前記第１の光電変換部からその出力信号である第１の信号を読み出し、互いに前記対をなす前記第１および第２の光電変換部から前記第１の信号と該第２の光電変換部の出力信号が合成された第２の信号を読み出す撮像装置に用いられるコンピュータに画像処理を実行させるコンピュータプログラムであって、
前記画像処理は、
前記第１および第２の信号を用いて、互いに対をなし、かつ視差を有する第１の画像および第２の画像を生成する画像生成処理と、
前記第１および第２の画像に対して相関演算を行って相関値を算出し、該相関値を用いてデフォーカス量を算出するデフォーカス量算出処理とを含み、
前記画像生成処理は、前記複数の第１の光電変換部のうち一部の特定光電変換部から読み出された前記第１の信号を用いて前記第１の画像を生成するとともに、前記対をなす前記特定および第２の光電変換部から読み出された前記第２の信号と前記特定光電変換部からの前記第１の信号とから前記第２の画像を生成する処理を、複数回の前記撮像のそれぞれにおいて前記撮像ごとに前記特定光電変換部を変更しながら行うことにより、複数の前記第１の画像と複数の前記第２の画像とを生成する処理であり、
前記デフォーカス量算出処理は、前記複数の第１の画像と前記複数の第２の画像とを用いて前記デフォーカス量を算出する処理であることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置において撮像光学系の結像面と撮像面との差であるデフォーカス量を算出する画像処理技術に関する。
【背景技術】
【０００２】
デジタルスチルカメラ等の撮像装置では、互いに異なる視点から被写体を撮像することで、互いに視差を有する複数の視差画像を取得し、該複数の視差画像間の視差を利用してデフォーカス量を算出する処理が行われている。
【０００３】
特許文献１には、複数の画素がそれぞれ１つのマイクロレンズと複数（２つ）の光電変換部を有し、各画素における複数の光電変換部が撮像光学系の瞳のうち互いに異なる領域を通過した光を受光するように構成された撮像素子を有する撮像装置が開示されている。この撮像装置では、複数の画素のそれぞれにおける２つの光電変換部のそれぞれから得られる一対の信号間の像ずれ量（位相差）を求め、該像ずれ量からデフォーカス量を算出する。ただし、特許文献１にて開示された撮像装置では、画素ごとに２つの光電変換部から別々に信号を読み出すため、１画素当りの信号読み出しに要する時間が１つの光電変換部から信号を読み出す時間に対して倍になる。
【０００４】
特許文献２には、各画素の２つの光電変換部から信号の加算読み出しと独立読み出しとが可能な撮像装置が開示されている。この撮像装置では、一対の信号間の像ずれ量を算出する際には、複数の画素のうち所定の配置周期で配置された画素に対してのみ２つの光電変換部のそれぞれから信号を独立に読み出して一対の信号を得る。これにより、信号の読み出し時間の増加を抑えつつ、像ずれ量を算出することができる。また、特許文献２の撮像装置では、動画撮像においては、独立読み出しを行う画素列をフレームごとに変更することで、各フレームでの独立読み出しの解像度よりも解像度が高い一対の信号を得る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０８３４０７号公報
【特許文献２】特開２０１３−０６８７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２には、動画撮像において独立読み出しを行う画素列をフレームごとに変更して得た一対の像信号からどのようにして像ずれ量やデフォーカス量を算出するかについては説明がされていない。また、特許文献２の撮像装置では、移動する被写体を撮像する場合や手持ち撮像において手振れが生じた場合のように、算出されるデフォーカス量の精度が低下する場合がある。
【０００７】
本発明は、複数の光電変換部からの独立読み出しと加算読み出しが可能な撮像装置において、デフォーカス量を算出するために必要な信号読み出しに要する時間を短縮しつつ、良好な精度のデフォーカス量を算出することができるようにした画像処理装置を提供する。さらに、本発明は、上記画像処理装置を備えた撮像装置を提供する。
【課題を解決するための手段】
【０００８】
本発明の一側面としての画像処理装置は、複数の第１の光電変換部と、該複数の第１の光電変換部のそれぞれに対して対をなし、かつ視差を有するように配置された複数の第２の光電変換部と、被写体からの光を第１および第２の光電変換部に同時に受光させて行う撮像において、第１の光電変換部からその出力信号である第１の信号を読み出し、互いに上記対をなす第１および第２の光電変換部から第１の信号と該第２の光電変換部の出力信号が合成された第２の信号を読み出す信号読み出し手段とを有する撮像装置に用いられる。該画像処理装置は、第１および第２の信号を用いて、互いに対をなし、かつ視差を有する第１の画像および第２の画像を生成する画像生成手段と、第１および第２の画像に対して相関演算を行って相関値を算出し、該相関値を用いてデフォーカス量を算出するデフォーカス量算出手段とを有する。そして、画像生成手段は、複数の第１の光電変換部のうち一部の特定光電変換部から読み出された第１の信号を用いて第１の画像を生成するとともに、上記対をなす特定および第２の光電変換部から読み出された第２の信号と特定光電変換部からの第１の信号とから第２の画像を生成する処理を、複数回の撮像のそれぞれにおいて撮像ごとに特定光電変換部を変更しながら行うことにより、複数の第１の画像と複数の第２の画像とを生成する。デフォーカス量算出手段は、複数の第１の画像と複数の第２の画像とを用いてデフォーカス量を算出することを特徴とする。
【０００９】
なお、上記画像処理装置、複数の第１の光電変換部、複数の第２の光電変換部および信号読み出し手段を有する撮像装置も、本発明の他の一側面を構成する。
【００１０】
また、本発明の他の一側面としての画像処理プログラムは、上記撮像装置のコンピュータに画像処理を実行させるコンピュータプログラムである。画像処理は、第１および第２の信号を用いて、互いに対をなし、かつ視差を有する第１の画像および第２の画像を生成する画像生成処理と、第１および第２の画像に対して相関演算を行って相関値を算出し、該相関値を用いてデフォーカス量を算出するデフォーカス量算出処理とを含む。画像生成処理は、複数の第１の光電変換部のうち一部の特定光電変換部から読み出された第１の信号を用いて第１の画像を生成するとともに、対をなす特定および第２の光電変換部から読み出された第２の信号と特定光電変換部からの第１の信号とから第２の画像を生成する処理を、複数回の撮像のそれぞれにおいて撮像ごとに特定光電変換部を変更しながら行うことにより、複数の第１の画像と複数の第２の画像とを生成する処理である。そして、デフォーカス量算出処理は、複数の第１の画像と複数の第２の画像とを用いてデフォーカス量を算出する処理であることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、第１および第２の光電変換部からの独立読み出しと加算読み出しが可能な撮像装置において、デフォーカス量を算出するために必要な信号読み出しに要する時間を短縮しつつ、良好な精度のデフォーカス量を算出することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１におけるデジタルカメラの構成を示す図。
【図２】実施例１における瞳分割型撮像素子の構成を示す図。
【図３】実施例１におけるデフォーカス量算出処理を示すフローチャート。
【図４】実施例１における加算読み出しと独立読み出しの例を示す図。
【図５】実施例１における複数フレームにわたって部分読み出し行を周期的に変更して独立読み出しを行う動作の例を示す図。
【図６】実施例１における複数の部分読み出し行から読み出された信号に対するフレーム補間処理を示すフローチャート。
【図７】実施例１におけるフレーム補間処理の例を示す図。
【図８】実施例１における部分読み出し行を周期的に変更して独立読み出しを行う動作の別の例を示す図。
【図９】本発明の実施例２におけるデフォーカス量算出処理を示すフローチャート。
【図１０】実施例２における複数フレームにわたって部分読み出しされる画像領域を示す図。
【図１１】実施例２におけるフレームごとの相関値を加算した相関値の例を示す図。
【図１２】本発明の実施例３における複数フレームにわたって部分読み出しされた画像領域と相関演算の重みの例を示す図。
【図１３】本発明の実施例４における複数フレームにわたって部分読み出しされた画像領域と相関演算の重みの例を示す図。
【図１４】各実施例における位相差演算を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１４】
本発明の実施例１について説明する。図１には、本実施例の画像処理装置を備えた撮像装置としてのデジタルカメラ１の構成を示す。撮像光学系としての撮像レンズ３は、変倍レンズ、絞りおよびフォーカスレンズを含み、被写体像（光学像）を形成する。撮像部１０は、被写体像を電気信号に変換する撮像素子１０ａと、該撮像素子１０ａから信号を読み出す回路である読み出し部（信号読み出し手段）１０ｂとを含む。撮像素子１０ａは、ＣＣＤセンサやＣＭＯＳセンサ等の２次元イメージセンサである。
【００１５】
図２（Ａ），（Ｂ）には、撮像素子１０ａの構成を示している。撮像素子１０ａには、図２（Ａ）に示すように複数の撮像画素が２次元配列されている。図２（Ａ）には、撮像素子１０ａにおける７行（上から行１〜７）×７列の撮像画素領域を撮像レンズ３側から見て示している。
【００１６】
これらの撮像画素にはベイヤー配列に従ってカラーフィルタが設けられている。具体的には、奇数行の撮像画素には図中の左から順に緑（Ｇ）と赤（Ｒ）のカラーフィルタが交互に設けられ、偶数行の撮像画素には図中の左から順に青（Ｂ）と緑（Ｇ）のカラーフィルタが交互に設けられている。
【００１７】
図２（Ｂ）には、ある１つの撮像画素２０２の断面構造を拡大して示している。撮像画素２０２は、１つのマイクロレンズ２０１と、マイクロレンズ２０１を通過した入射光を受光して電気信号（アナログ信号）に変換する一対の光電変換部（第１の光電変換部および第２の光電変換部）２０３，２０４とにより構成される。一対の光電変換部２０３，２０４は、水平方向（行方向）に並ぶように、すなわち水平方向に視差を有するように配置されている。
【００１８】
一対の光電変換部２０３，２０４は、共通のマイクロレンズ２０１を介して撮像レンズ３の射出瞳と共役な関係を有する。光電変換部２０３は射出瞳のうち一部の領域（以下、瞳領域という）を通過した光束を受光し、光電変換部２０４は射出瞳のうち他の一部の瞳領域を通過した光束を受光する。このように互いに異なる瞳領域を通過した光束を異なる光電変換部２０３，２０４で受光することにより、光電変換部２０３，２０４のそれぞれから読み出される信号を用いて生成される２つの画像は互いに視差を有する一対の視差画像となる。被写体からの光を光電変換部２０３，２０４に同時に受光させて撮像を行うことで、同時刻において被写体を互いに異なる視点から撮像することができる。
【００１９】
本実施例では、読み出し部１０ｂによって光電変換部２０３から読み出される出力信号をＡ像信号（第１の信号）といい、Ａ像信号を用いて生成される画像をＡ像という。また、読み出し部１０ｂによって光電変換部２０４から読み出される出力信号をＢ像信号といい、Ｂ像信号を用いて生成される画像をＢ像という。Ａ像信号とＢ像信号とを合成（例えば加算）して読み出すことで通常の撮像画像を生成するための画像信号が生成される。
以下の説明において、Ａ像信号とＢ像信号とが加算されて読み出される信号をＡ＋Ｂ像信号（第２の信号）といい、複数の撮像画素からのＡ＋Ｂ像信号を用いて生成される画像をＡ＋Ｂ像という。
【００２０】
なお、本実施例では、１つの撮像画素が水平方向に配置された２つの光電変換部を含む場合について説明するが、１つの撮像画素における光電変換部の配置方向は垂直方向（列方向）であってもよいし、光電変換部の数は４つ等、２つ以外の数であってもよい。
【００２１】
読み出し部１０ｂは、Ａ像信号とＢ像信号をそれぞれ独立に読み出す独立読み出しと、Ａ＋Ｂ像信号を読み出す加算読み出しとを切り替えて行うことができる。
【００２２】
Ａ／Ｄ変換器１１は、撮像部１０（読み出し部１０ｂ）から出力されたアナログ信号（Ａ＋Ｂ像信号およびＡ像信号）をデジタル信号に変換し、該デジタル信号を画像処理部３０に出力する。
【００２３】
画像処理装置としての画像処理部３０は、Ａ／Ｄ変換器１１からのデジタル信号を用いて画像データ（Ａ像、Ａ＋Ｂ像およびＢ像）を生成する画像生成処理を行う。そして、生成した画像データや後述するメモリ制御部１２からの画像データに対して、画素補間、リサイズ処理および色変換処理等を行う。また、画像処理部３０は、Ａ＋Ｂ像およびＡ像を用いて、後述するフレーム補間処理やデフォーカス量算出処理等を行う。画像処理部３０は、画像処理用コンピュータにより構成され、コンピュータプログラムに従って上記処理を行う。また、画像処理部３０は、画像データを用いて所定の演算処理を行い、得られた演算結果をシステム制御部２０に出力する。画像処理部３０は、画像生成手段およびデフォーカス量算出手段として機能する。
【００２４】
システム制御部２０は、画像処理部３０での演算結果を用いて、ＡＥ（自動露出）制御、ＡＦ（オートフォーカス）制御、ＡＷＢ（オートホワイトバランス）処理等の処理を行う。
【００２５】
Ａ／Ｄ変換器１１からの画像データは、画像処理部３０およびメモリ制御部１２を介してメモリ５０に書き込まれる。メモリ５０は、Ａ／Ｄ変換器１１からの画像データを格納するのに加えて、表示部１４に表示するための表示用画像データも格納する。メモリ５０は、所定数の静止画像データや所定時間長の動画像データおよび音声データを格納することが可能である。
【００２６】
Ｄ／Ａ変換器１３は、メモリ５０に格納されている表示用画像データをアナログ信号に変換して、これを表示部１４に供給する。こうして、メモリ５０に書き込まれた表示用画像データに対応する画像が表示部１４に表示される。
【００２７】
不揮発性メモリ４０は、電気的に消去・記録可能なメモリであり、ＥＥＰＲＯＭ等により構成される。不揮発性メモリ４０には、システム制御部２０の動作用の定数、コンピュータプログラム等が記憶される。
【００２８】
システム制御部２０は、マイクロコンピュータにより構成され、前述した不揮発性メモリ４０に格納されたコンピュータプログラムとしてのシステム制御プログラムに従ってデジタルカメラ１全体の動作を制御する。システムメモリ２１は、ＲＡＭにより構成され、システム制御部２０の動作用の定数や変数が保持される他、不揮発性メモリ４０から読み出されたコンピュータプログラムが展開されて保持される。
【００２９】
記録媒体４は、半導体メモリや磁気ディスク等から構成され、撮像画像（静止画像および動画像）を記録する。記録媒体Ｉ/Ｆ６０は、記録媒体４との画像データのやり取りを行うためのインターフェースである。
【００３０】
手振れ検出部８０は、ジャイロセンサ（角速度センサ）や加速度センサ等により構成され、デジタルカメラ１に加わる手振れ等の振れを検出する。システム制御部２０は、手振れ検出部８０からの検出信号（振れ情報）を用いてデジタルカメラ１の振れ量を算出する。システム制御部２０は、算出された振れ量に基づいて撮像レンズ３内のシフトレンズや撮像素子１０ａを撮像光軸に直交する方向にシフトさせたり動画像を構成するフレーム画像からの切り出し領域をシフトさせたりして像振れを低減する像振れ補正処理を行う。
【００３１】
次に、画像処理部３０が行う各処理について詳しく説明する。画像処理部３０は、撮像素子１０ａから読み出し部１０ｂにより所定周期で順次読み出される信号から生成した、連続する複数のフレーム画像（移動体検出画像）を互いに比較することで、各フレーム画像内において移動する被写体を含む領域を検出する。すなわち、画像処理部３０は、移動体検出手段として機能する。移動体検出処理は、フレーム画像ごとに特定の移動体をパターンマッチングにより探索してその位置の変化を検出する方法を用いて行うことができる。また、他の方法として、複数のフレーム画像のそれぞれに複数設けられた画素ブロックまたは画素のうち対応する画素ブロック間または対応する画素間での画像差分値の変化から移動体の存在を検出する方法等を用いて行うこともできる。
【００３２】
また、画像処理部３０は、撮像素子１０ａから読み出し部１０ｂによる加算読み出しによって取得したＡ＋Ｂ像信号から、独立読み出しによって取得したＡ像信号を減算することで差分信号としてのＢ像信号を生成する像信号生成処理を行う。こうして得られたＡ像信号およびＢ像信号からそれぞれ生成されるＡ像とＢ像とが一対の視差画像に相当する。撮像素子１０ａの全画素から独立読み出しによってＡ像信号とＢ像信号をそれぞれ読み出すと、全画素からの信号読み出しに要する時間が長くなる。これに対して、Ａ像信号とＢ像信号のそれぞれから視差画像（後述する部分視差画像）を生成する領域についてのみＡ像信号を読み出し、これをＡ＋Ｂ像信号から減算してＢ像信号を得ることで、信号読み出しに要する時間を短縮することができる。
なお、本実施例では、Ａ＋Ｂ像信号からＡ像信号を減算することでＢ像信号を生成する場合について説明するが、Ａ＋Ｂ像信号（第２の信号）からＢ像信号（第１の信号）を減算することでＡ像信号を生成する処理を行ってもよい。
【００３３】
また、画像処理部３０は、Ａ像とＢ像間の相対的な像ずれ量（位相差）を相関演算により算出し、該像ずれ量を用いて撮像レンズ３のデフォーカス量を算出するデフォーカス量算出処理を行う。具体的には、まず画像処理部３０は、Ａ像の画素Ａｎ（Ａ１〜ＡＮ）とＢ像の画素Ｂｎ（Ｂ１〜ＢＮ）に対して、式（１）のような相関演算（ＳＡＤ：Sum of Absolute Difference）を行って一対の視差画像間の一致度を表す相関値Ｃ(ｋ)を演算する。
Ｃ(ｋ)＝Σ｜Ａｎ−Ｂｎ＋ｋ｜  （１）
式（１）において、Σは変数ｎについて累積演算（総和演算）を示す。変数ｎの範囲は、像ずらし量ｋに応じてデータＡｎ，Ｂｎ＋ｋが存在する範囲に限定される。像ずらし量ｋは整数であり、一対の視差画像の信号列に対応する一対のデータ列におけるデータ間隔を単位とした相対的シフト量である。
【００３４】
式（１）により演算される相関値Ｃ（ｋ）は、図１４に示すように、一対のデータ列の相関度、つまりは一致度が高いほど小さな値となる。図１４では、像ずらし量ｋ（整数）＝ｋｊ＝２のときに相関値Ｃ（ｋ）が最も小さい値となり、一対の視差画像の一致度が最も高くなる例を示している。像ずらし量ｋは整数であるために算出される相関値Ｃ（ｋ）は離散値となるが、以下の式（２）〜（５）に示す３点内挿の手法を用いて連続的な相関値における極小値Ｃ（ｘ）を与える像ずれ量ｘを求めることができる。
ｘ＝ｋｊ＋Ｄ／ＳＬＯＰ  （２）
Ｃ（ｘ）＝Ｃ（ｋｊ）−｜Ｄ｜  （３）
Ｄ＝｛Ｃ（ｋｊ−１）−Ｃ（ｋｊ＋１）｝／２  （４）
ＳＬＯＰ＝ＭＡＸ｛Ｃ（ｋｊ＋１）−Ｃ（ｋｊ），Ｃ（ｋｊ−１）−Ｃ（ｋｊ）｝（５）
次に画像処理部３０は、相関演算で算出した像ずれ量ｘを用いて、以下の式（６）により、撮像レンズ３のデフォーカス量ＤＥＦを算出する。
【００３５】
ＤＥＦ＝ ＫＸ ・ＰＹ ・ｘ （式６）
式（６）において、ＰＹ は撮像素子１０ａの画素ピッチ（撮像素子１０ａを構成する撮像画素間の距離） であり、ＫＸ は前述した一対の瞳領域を通過する光束の重心の開き角の大きさによって決まる変換係数であり、単位はｍｍ／ｐｉｘｅｌである。なお、一対の瞳距瞳を通過する光束の重心の開き角の大きさは、撮像レンズ３の絞り開口の大きさ（Ｆ値）に応じて決まる。
【００３６】
そして、一対の視差画像においてデフォーカス量を算出する対象画素を１画素ずつずらしながら各対象画素におけるデフォーカス量を算出することで、両視差画像内の被写体に対するデフォーカス量分布を示すデフォーカスマップを生成することができる。なお、本実施例では、デフォーカスマップを生成して使用する場合について説明するが、Ａ像とＢ像間の相対的な像ずれ量を示す像ずれ量マップや、像ずれ量から算出可能な被写体距離を示す距離マップを生成して使用してもよい。
【００３７】
また、画像処理部３０は、上述したデフォーカス量算出処理の前に、以下に説明するフレーム補間処理を行う。本実施例では、１フレームにおいて、読み出し部１０ｂが、撮像素子１０ａの全撮像画素から加算読み出しによってＡ＋Ｂ像信号を読み出し、かつ全撮像画素のうち一部の複数の撮像画素（以下、部分撮像画素という）から独立読み出しによってＡ像信号を読み出す。この部分撮像画素の光電変換部２０３が特定光電変換部に相当する。
【００３８】
さらに、画像処理部３０は、全撮像画素のＡ＋Ｂ像信号のうち上記部分撮像画素に対応するＡ＋Ｂ像信号から、該部分撮像画素のＡ像信号を減算する。これにより、Ａ像信号を取得した部分撮像画素と同じ部分撮像画素からＢ像信号を取得する。そして、同じ部分撮像画素からのＡ像信号およびＢ像信号によりそれぞれＡ像（第１の画像：以下、部分Ａ像という）およびＢ像（第２の画像：以下、部分Ｂ像という）を生成する。これら部分Ａ像および部分Ｂ像は、互いに異なる視点から被写体の同一部分を撮像して得られた互いに視差を有する一対の部分視差画像となる。
【００３９】
本実施例では、画像処理部３０は、１フレームにおいて、部分Ａ像および部分Ｂ像を互いに列方向に間隔を空けて配置される複数の撮像画素行において取得する。そして、部分Ａ像および部分Ｂ像を取得する撮像画素行（つまりは特定光電変換部を含む部分撮像画素の行：以下、部分読み出し行という）を、複数のフレーム間において周期的（循環的）に変更する。
【００４０】
図４（Ａ）〜（Ｄ）には、撮像素子１０ａの７行×７列の撮像画素領域において加算読み出しが行われる撮像画素と独立読み出しが行われる撮像画素の例を示している。図４（Ａ）は、Ａ＋Ｂ像信号の加算読み出しが行われる撮像画素を横線ハッチングを付して示している。なお、以下の説明において、Ａ＋Ｂ像信号からＡ像信号を減算してＢ像信号を生成することを、Ａ＋Ｂ像からＡ像を減算してＢ像を生成するという。
【００４１】
図４（Ｂ）では、Ａ像信号の独立読み出しが行われる部分読み出し行に含まれる各撮像画素の一方の光電変換部（２０３）に横線ハッチングを付している。部分読み出し行から得られる部分Ａ＋Ｂ像から部分Ａ像を減算することで、図４（Ｃ）に示すように部分読み出し行の撮像画素のうち点ハッチングを付した他方の光電変換部（２０４）から本来得られる部分Ｂ像と同等の部分Ｂ像を得ることができる。つまり、各撮像画素を正方形で簡略化して示した図４（Ｄ）中に斜線ハッチングを付した部分読み出し行において、上述した一対の部分視差画像（部分Ａ像および部分Ｂ像）を得ることができる。
【００４２】
図３のフローチャートを用いて、システム制御部２０が行う処理から画像処理部３０が行うフレーム補間処理から焦点検出処理までの流れについて説明する。システム制御部２０および画像処理部３０はそれぞれ、前述したシステム制御プログラムおよび画像処理プログラムに含まれる焦点検出プログラムに従って本処理を実行する。
【００４３】
ステップＳ１００において、システム制御部２０は、ユーザ操作により不図示の動画記録開始ボタンが押されたか否かを判定する。動画記録開始ボタンが押された場合はステップＳ１０１に進み、動画記録開始ボタンが押されない場合には本ステップの判定を繰り返す。
【００４４】
ステップＳ１０１では、システム制御部２０は、ＡＦ処理、ＡＥ処理、ＡＷＢ処理等を開始する。
【００４５】
続いてステップＳ１０２では、画像処理部３０は、読み出し部１０ｂにより撮像素子１０ａにおける全撮像画素から加算読み出しされたＡ＋Ｂ像信号からＡ＋Ｂ像（以下、全Ａ＋Ｂ像という）を生成する。さらに、撮像素子１０ａにおける部分読み出し行から独立読み出しされたＡ像信号から部分Ａ像を生成する。そして、画像処理部３０は、全Ａ＋Ｂ像を１フレーム画像としてメモリ５０に一時的に記憶させるとともに、部分Ａ像をメモリ５０に一時的に記憶させる。
【００４６】
本実施例では、図５（Ａ）〜（Ｄ）に７行×７列の撮像画素領域で示すように、部分読み出し行を変更しながら部分Ａ像を全撮像画素の範囲から取得可能な１周期を構成する複数フレームを４フレームとする。つまり、１周期内で部分読み出し行を変更しながら４回（複数回）の撮像を異なる時刻で行って互いに異なる部分読み出し行から４つの部分Ａ像を取得する。そして、フレーム補間処理により、全撮像画素の光電変換部２０３から本来取得できる単一画像としての全Ａ像に相当するＡ像（第３の画像：以下、補間全Ａ像という）を取得する。同様に、１周期内で４つの部分Ｂ像を取得してフレーム補間処理を行うことで、全撮像画素の光電変換部２０４から本来取得できる単一画像としての全Ｂ像に相当するＢ像（第４の画像：以下、補間全Ｂ像という）を取得する。
【００４７】
また、このステップＳ１０２において、画像処理部３０は、ステップＳ１０２で取得した全Ａ＋Ｂ像のうち部分読み出し行の部分Ａ＋Ｂ像から部分Ａ像を減算することで、部分Ａ像と対をなす部分Ｂ像を取得する。画像処理部３０は、このようにして得られた部分Ｂ像をメモリ５０に一時的に記憶させる。
【００４８】
次にステップＳ１０３では、画像処理部３０は、Ａ像をフレーム補間処理の対象に設定してステップＳ１０４に進む。
【００４９】
ステップＳ１０４では、画像処理部３０は、部分Ａ像のフレーム補間処理を行い、その後ステップＳ１０５に進む。部分Ａ像のフレーム補間処理の詳細については後述する。
【００５０】
ステップＳ１０５では、システム制御部２０は、Ｂ像をフレーム補間処理の対象に設定してステップＳ１０６に進む。
【００５１】
ステップＳ１０６では、画像処理部３０は、部分Ｂ像のフレーム補間処理を行い、その後ステップＳ１０７に進む。部分Ｂ像のフレーム補間処理の詳細についても部分Ａ像のフレーム補間処理とともに後述する。
【００５２】
ステップＳ１０７では、画像処理部３０は、１周期を構成する４フレーム分の部分Ａ像および部分Ｂ像の取得を完了したか否かを判定する。完了した場合はステップＳ１０８に進み、まだ完了していない場合はステップＳ１０１に戻って次のフレームでの全Ａ＋Ｂ像、部分Ａ像および部分Ｂ像を取得する。
【００５３】
ステップＳ１０８では、画像処理部３０は、ステップＳ１０４でのフレーム補間処理により生成された補間全Ａ像と、ステップＳ１０６でのフレーム補間処理により生成された補間全Ｂ像との間の像ずれ量ｘを、式（１）〜（５）により算出する。像ずれ量を求める対象画素については、次のステップＳ１０９で生成するデフォーカスマップの画素数や解像度に応じて決定される。
【００５４】
次にステップＳ１０９では、画像処理部３０は、補間全Ａ像と補間全Ｂ像との像ずれ量ｘを用いて、式（６）によりデフォーカス量ＤＥＦを算出する。全ての対象画素についてデフォーカス量を算出することで、デフォーカスマップを生成する。デフォーカス量やデフォーカスマップは、システム制御部２０が行うＡＦ制御その他の処理に利用される。
なお、ステップＳ１０７において一旦４フレーム分（全画面分）の部分Ａ像および部分Ｂ像の取得が完了すれば、その後は新しく取得された部分Ａ像および部分Ｂ像のみを更新しながらフレームごとにデフォーカスマップを生成することも可能である。このことは、後述する実施例２でも同じである。
【００５５】
ステップＳ１１０では、システム制御部２０は、動画記録終了ボタンが押されたか否かを判定する。動画記録終了ボタンが押されていない場合はステップＳ１０１に戻る。動画記録終了ボタンが押された場合は本処理を終了する。
【００５６】
図６のフローチャートを用いて、上述したステップＳ１０４とステップＳ１０６で行われるフレーム補間処理について詳しく説明する。
【００５７】
ステップＳ２００において、画像処理部３０は、フレーム補間処理の対象となる画像データ（部分Ａ像または部分Ｂ像であり、以下、補間対象画像という）をメモリ５０から読み込む。
【００５８】
次にステップＳ２０１では、画像処理部３０は、ステップＳ２００で読み込んだ補間対象画像のフレーム補間画像内での対応領域である画素行（以下、書き込み領域という）を算出する。フレーム補間画像は、その全ての書き込み領域に部分Ａ像または部分Ｂ像が書き込まれることで、単一画像に相当する補間全Ａ像または補間全Ｂ像となる。
【００５９】
そしてステップＳ２０２では、画像処理部３０は、ステップＳ２００で読み込んだ補間対象画像をステップＳ２０１で算出されたフレーム補間画像内での書き込み領域に書き込む。これにより、１回のフレーム補間処理が終了する。
【００６０】
このフレーム補間処理がステップＳ１０４とステップＳ１０６でそれぞれ４回ずつ（４フレーム分）行われることで、一対のフレーム補間画像としての補間全Ａ像および補間全Ｂ像が得られる。
【００６１】
図７（Ａ）〜（Ｈ）には、フレーム補間処理の例を示す。図７（Ａ）〜（Ｈ）では、５行×５列の画素領域を示している。図７（Ａ）〜（Ｈ）は、一定の時間間隔でフレーム画像を取得する８つのフレーム１〜８のそれぞれにおいて部分Ａ像を生成するためにＡ像信号が読み出された部分読み出し行を、斜線、点および網掛けのハッチングを付して示している。フレームごとにハッチングの種類を異ならせている。この部分読み出し行に対応する部分Ｂ像も、部分読み出し行の部分Ａ＋Ｂ像から部分Ａ像を減算することで生成される。
【００６２】
図７（Ｉ）〜（Ｐ）には、Ａ像に対するフレーム補間画像を示している。Ｂ像に対するフレーム補間画像も同様である。本実施例では、１周期を４フレームで構成してフレームごとに部分読み出し行を変更するので、図７（Ｌ）に示すフレーム４でフレーム補間画像の全ての書き込み領域への部分Ａ像の書き込みが完了する。
【００６３】
図７（Ｍ）に示すフレーム５では、図７（Ｌ）に示したフレーム補間画像のうちフレーム１で部分Ａ像が書き込まれた書き込み領域に対して新たにフレーム５で取得された部分Ａ像が上書きされる。このようにして、フレーム補間画像における４つの書き込み領域が１つずつフレームごとに新たな部分Ａ像によって上書きされながらＡ像に対するフレーム補間画像が更新されていく。Ｂ像に対するフレーム補間画像も同様にして更新されていく。
【００６４】
このように４フレーム（１周期分）のデータが蓄積された後は、それぞれ順次更新されていく一対のフレーム補間画像、すなわち一対の視差画像は、1フレームごとに図３のステップＳ１０８にてデフォーカス量の算出に用いられる。
【００６５】
本実施例によれば、撮像素子１０ａの全撮像画素からＡ＋Ｂ像信号とＡ像信号を読み出す場合に比べて信号読み出しに要する時間を抑えつつ、各フレームでの読み出し解像度より高い解像度を有する一対の視差画像（補間全Ａ像およびＢ像）が得られる。そして、これら一対の視差画像を用いることで、良好な精度のデフォーカス量を算出することができる。
【００６６】
なお、図５（Ａ）〜（Ｄ）にはフレームごとに１部分読み出し行単位で部分Ａ像を独立読み出しする場合を示したが、これは説明を簡単にするためであり、フレームごとの部分読み出し行の単位行数を複数行にしてもよい。例えば、図８（Ａ）〜（Ｄ）にはフレームごとの部分読み出し行の単位行数を２行とした場合を示している。２行のデータから輝度画像を生成して、輝度画像のフレーム補間画像を生成して相関演算を行ってもよい。すなわち、部分読み出し行の単位行数を１行単位とした場合、奇数行と偶数行で撮像画素のカラーフィルタが異なるため、被写体の色によってデフォーカス量の算出精度が悪くなる場合がある。２行単位で部分読み出しを行った場合は、隣接した行の同一時刻の緑（Ｇ）と赤（Ｒ）と青（Ｂ）の画素値を取得できるので、輝度を生成できる。このため、単位行数を１行単位とした場合と比較して、単位行数を２行とすることで被写体の色によるデフォーカス量の算出精度のロバスト性を向上させることができる。
【実施例２】
【００６７】
本発明の実施例２について説明する。実施例１では、複数フレームにおいて部分読み出し行を変更しながら取得した部分Ａ像と部分Ｂ像を書き込んだ一対のフレーム補間画像（視差画像）を生成してから、この一対のフレーム補間画像間で相関演算を行い、これらの相関値を算出した。これに対して、本実施例では、フレームごとに取得した部分Ａ像と部分Ｂ像とで相関演算を行い、複数フレームで取得された互いに異なる部分読み出し行における部分Ａ像と部分Ｂ像間の相関値を加算することで像ずれ量を算出する。すなわち、実施例２では、フレーム補間画像を生成することなく複数の部分Ａ像（第１の画像）と複数の部分Ｂ像（第２の画像）を生成する。なお、デジタルカメラの構成は実施例１と同じであるので、共通の構成要素または同様の機能を有する構成要素には実施例１と同符号を付して説明に代える。
【００６８】
図９には、本実施例においてシステム制御部２０が行う処理から画像処理部３０が行う焦点検出処理までの流れについて説明する。システム制御部２０および画像処理部３０はそれぞれ、システム制御プログラムおよび画像処理プログラムに含まれる焦点検出プログラムに従って本処理を実行する。
【００６９】
図９におけるステップＳ３００〜Ｓ３０２の処理は、実施例１で図３に示したステップＳ１００〜Ｓ１０２と同様であるので説明を省略する。また、図９におけるステップＳ３０７とステップＳ３０８の処理は、実施例１で図３に示したステップＳ１０９とステップＳＳ１１０と同様であるので説明を省略する。
【００７０】
本実施例でも、１フレームにおいて、撮像素子１０ａの全撮像画素からの加算読み出しによって取得した全Ａ＋Ｂ像のうち部分読み出し行の部分Ａ＋Ｂ像から、部分読み出し行からの独立読み出しによって取得した部分Ａ像を減算する。これにより、部分Ａ像と対をなす部分Ｂ像を取得する（ステップＳ３０２）。
【００７１】
また、本実施例では、図１０（Ａ）に示すように、相関値を求める対象画素を中央に含む５行（上から行２〜行６）×５列の相関演算領域を設定し、この相関演算領域に含まれる対象画素以外の周囲画素を対象画像の相関値の演算に使用する。これにより、ノイズ等の影響を低減させ、相関演算のロバスト性を向上させることができる。
【００７２】
図９のステップＳ３０３において、画像処理部３０は、ステップＳ３０２で独立読み出しにより取得した部分Ａ像とこれと対をなす部分Ｂ像とで相関演算を行う。ここでは、図１０（Ｂ）〜（Ｅ）に示すように、独立読み出しが行われる部分読み出し行についてのみ相関演算を行う。図１０（Ｂ）に示すフレーム１では、部分読み出し行である行４で取得された部分Ａ像と部分Ｂ像間の相関演算を行う。また、図１０（Ｃ），（Ｄ）および（Ｅ）のフレーム２，３および４ではそれぞれ、行２と行６、行５および行３で取得された部分Ａ像と部分Ｂ像間の相関演算を行う。
【００７３】
次にステップＳ３０４では、画像処理部３０は、ステップＳ３０３で算出した相関値をメモリ５０に記憶する。
【００７４】
次にステップＳ３０５では、画像処理部３０は、全ての部分読み出し行における部分Ａ像と部分Ｂ像間の相関演算が行われる１周期を構成する複数フレーム（本実施例でも４フレーム）分の相関値の取得を完了したか否かを判定する。完了した場合はステップＳ３０６に進み、まだ完了していない場合はステップＳ３０１に戻って次のフレームでの部分Ａ像および部分Ｂ像を取得する。
【００７５】
ステップＳ３０６では、画像処理部３０は、メモリ５０から１周期を構成する複数フレーム分の相関値を読み出し、読み出した複数フレーム分の相関値を加算して加算相関値を算出する。そして、加算相関値から像ずれ量を算出する。そして、ステップＳ３０７に進む。
【００７６】
図１１には、１周期を構成する複数フレームにおける各フレームで得られた相関値と複数フレームの相関値を加算して得られた加算相関値と比較した例を示す。図１１中のフレーム番号は、図１０中のフレーム番号に対応している。図１１から分かるように、本実施例の処理を行っても、実施例１にて一対のフレーム補間画像間の相関演算により得られた相関値と同等の加算相関値を得ることができる。
【実施例３】
【００７７】
次に、本発明の実施例３について説明する。本実施例でも、実施例１と同様に複数フレームにおいて部分読み出し行を変更しながら取得した部分Ａ像と部分Ｂ像を書き込んだ一対のフレーム補間画像（視差画像）間で相関演算を行うことでこれらの相関値を算出する。ただし、本実施例では、フレーム画像を取得した時点（以下、フレーム取得時点という）から相関演算を行う時点（以下、相関演算時点いう）までの時間長さと移動する被写体（以下、移動体という）の有無に応じた重みを付けて相関演算を行う。なお、デジタルカメラの構成は実施例１と同じであるので、共通の構成要素または同様の機能を有する構成要素には実施例１と同符号を付して説明に代える。
【００７８】
図１２には、フレーム１からフレーム５までのフレーム画像を示すとともに、各フレーム画像において部分Ａ像を生成するために独立読み出しを行う（かつ部分Ｂ像を取得する）５つの部分読み出し行を含む画素領域を拡大して示している。さらに、図１２には、フレーム１〜５にて生成されるフレーム補間画像のうち上記５つの部分読み出し行を含む画素領域に対応する相関演算領域を拡大して示している。斜線、点および網掛けのハッチングを付した領域が部分読み出し行またはこれに対応するフレーム補間画像中の書き込み領域を示し、フレームごとにハッチングの種類を異ならせている。
【００７９】
本実施例では、実施例１で説明した式（１）に代えて、以下の式（７）に示す重みを付けた相関演算式を用いて一対のフレーム補間画像間での相関値を求める。
Ｃγ(ｋ)＝Σγｎ｜Ａｎ−Ｂｎ＋ｋ｜  （７）
式（７）において、γｎは式（１）中のＡｎとＢｎに対応した重みである。この重みγｎは、以下の式（８）に示すようにフレーム取得時点から相関演算時点までの時間長さに応じた重み（以下、時間重みという）αp と移動体の有無に応じた重み（以下、移動体重みという）βqとの乗算により算出される。
γｎ＝αp×βq  （８）
時間重みαpは、p＝ｔ０，ｔ１，ｔ２，ｔ３であり、４フレームでフレーム補間画像を生成する際の最新取得フレームをt０、その１フレーム前のフレームをｔ１、２フレーム前のフレームをｔ２、３フレーム前のフレームをｔ３とするとき、
αt0≧αt1≧αt2≧αt3
となる重みである。つまり、より前の（古い）フレームであるほど、つまりはフレーム取得時点から相関演算時点までの時間長さが長いほど、適用される時間重みαpは小さくなる。逆に言えば、より後の（新しい）フレームであるほど、つまりはフレーム取得時点から相関演算時点までの時間長さが短いほど、適用される時間重みαpは大きくなる。
【００８０】
例えば、図１２に示すフレーム４では行２の時間重みはαt0で、行４の時間重みはαt1で、行１と行５の時間重みはαt2で、行３の時間重みはαt3となる。また、フレーム５では、行３の時間重みはαt0で、行２の時間重みはαt1で、行４の時間重みはαt2で、行１と行５の時間重みはαt3となる。
【００８１】
また、移動体重みβqは、ｑ＝ｎｏ，ｅｘであり、βnoは移動体が存在しない場合の重み、βexは移動体が存在する場合の重みである。対象画素が移動体を示す画素（以下、移動体画素という）ではない場合は、相関演算領域の周囲画素に対して、
βno＞βex
となるように重みを付ける。つまり、対象画素が移動体画素でない場合は、移動体を示す周辺画素に対する移動体重みβexを移動体を示さない周囲画素に対する移動体重みβnoより小さくする。
【００８２】
また、対象画素が移動体画素である場合は、周囲画像に対して、
βex＞βno
となるように重みを付ける。つまり、対象画素が移動体画素である場合は、移動体を示す周囲画素に対する移動体重みβexを移動体を示さない周囲画素に対する移動体重みβnoより大きくする。
【００８３】
ここで、βqは画素単位で決めてもよいし画素行単位で決めてもよい。βqを画素行単位で決める場合には、その画素行に含まれる移動体画素の数が該画素行の全画素数の半数等の閾値を超える場合に、その画素行に適用する移動体重みをβexとすればよい。図１２には、βqを画素行単位で決めた例を示している。
【００８４】
このように移動体重みを付けると、図１２中のフレーム４では対象画素は移動体画素ではないので、移動体が存在する行４の重みを小さくして相関演算が行われる。このため、相関演算における誤差要因となる移動体の影響を小さくすることができる。また、図１２のフレーム５では対象画素が移動体画素であるので、移動体が存在する行３と行４の重みを大きくして相関演算が行われる。これにより、相関演算に対する移動体の影響が大きくなり、移動体のデフォーカス量に近いデフォーカス量を算出することができる。
【００８５】
なお、対象画素が移動体画素である場合は、移動体の移動量が大きいほど移動体を示す周囲画素の移動体重みβexを大きくしてもよい。また、対象画素が移動体画素でない場合は、移動体の移動量が大きいほど移動体を示す周囲画素の移動体重みβexを小さくしてもよい。
【００８６】
また、時間重みを付けることで、対象画素の周囲の画素も適切に用いた相関演算が行われることになり、相関演算に対するノイズ等の影響を低減させ、相関演算のロバスト性を向上させつつ、最新の被写体の状態をより反映したデフォーカス量を算出することができる。
【００８７】
なお、本実施例ではフレーム補間画像間で相関演算を行うときに重みを付ける場合について説明した。これに対して、実施例２で示した複数フレームのそれぞれで算出した相関値を加算して加算相関値を求める場合にも同様の重みを付けることもできる。すなわち、複数フレームのそれぞれの相関値に重みを付けた後に加算することで、本実施例と同様の効果を得ることができる。
【実施例４】
【００８８】
次に、本発明の実施例４について説明する。本実施例でも、実施例１と同様に複数フレームにおいて部分読み出し行を変更しながら取得した部分Ａ像と部分Ｂ像を書き込んだ一対のフレーム補間画像（視差画像）間で相関演算を行うことでこれらの相関値を算出する。ただし、本実施例では、手振れ等によりデジタルカメラの振れを手振れ検出部８０により検出した場合に、その振れの大きさ（以下、カメラ振れ量という）に応じた重みを付けて相関演算を行う。なお、デジタルカメラの構成は実施例１と同じであるので、共通の構成要素または同様の機能を有する構成要素には実施例１と同符号を付して説明に代える。
【００８９】
図１３には、フレーム１からフレーム５までのフレーム画像を示すとともに、各フレーム画像において部分Ａ像を生成するために独立読み出しを行う（かつ部分Ｂ像を取得する）５つの部分読み出し行を含む画素領域を拡大して示している。さらに、図１３には、フレーム１〜５にて生成されるフレーム補間画像のうち上記５つの部分読み出し行を含む画素領域に対応する相関演算領域を拡大して示している。斜線、点および網掛けのハッチングを付した領域が部分読み出し行またはこれに対応する画素行を示し、フレームごとにハッチングの種類を異ならせている。
【００９０】
本実施例では、実施例３で説明した式（７）に示す重みを付けた相関演算式を用いて一対のフレーム補間画像間での相関値を求める。ただし、式（７）中の重みγｎ（ＡｎとＢｎに対応した重み）は、本実施例では、以下の式（９）に示すように、時間重みαp とカメラ振れ量に応じた重み（以下、振れ重みという）δｓとの乗算により算出される。
γｎ＝αp×δs  （式９）
時間重みαpは、実施例３で説明した通りである。一方、振れ重みδsは、複数フレームでフレーム補間画像を生成する際の最新取得フレームを基準フレームとしたときの該基準フレームと他の各フレームにおけるカメラ振れ量の差から算出したフレーム画像間のずれ量（以下、画像振れ量という）に応じた重みである。δs のsは、例えばｆ４ｔ１やｆ５ｔ２と示す。ｆ４やｆ５はフレーム補間画像を生成する際のフレーム番号を示す。また、ｔ１やｔ２は上記基準フレームに対して何フレーム前かを示し、ｔ１は１フレーム前を、ｔ２は２フレーム前を示す。
【００９１】
本実施例では、カメラ振れ量が大きいほど振れ重みδsを小さくする。図１３を用いて振れ重みの例を説明する。図１３には、説明を簡単にするために、水平方向のみにカメラ振れが発生しているものとする。カメラ振れと画像振れ量の比率は同じとする。図１３中のフレーム４では、δf4t0≧δf4t1≧δf4t2≧δf4t3となるように振れ重みを付け、フレーム５では、δf5t0≧δf5t2≧δf5t1≧δf5t3となるように振れ重みを付ける。
【００９２】
このように振れ重みを付けることで、手振れ等に起因するカメラ振れの相関演算に対する影響を小さくすることができる。また、時間重みを付けることで、実施例３と同様に、対象画素の周囲の画素も適切に用いた相関演算が行われることになる。このため、相関演算に対するノイズ等の影響を低減させ、相関演算のロバスト性を向上させつつ、最新の被写体の状態をより反映したデフォーカス量を算出することができる。
【００９３】
なお、本実施例ではフレーム補間画像間で相関演算を行うときに重みを付ける場合について説明した。これに対して、実施例２で示した複数フレームのそれぞれで算出した相関値を加算して加算相関値を求める場合にも同様の重みを付けることもできる。すなわち、複数フレームのそれぞれの相関値に重みを付けた後に加算することで、本実施例と同様の効果を得ることができる。
【００９４】
また、式（７）中の重みγｎを、フレーム取得時間と移動体の有無とカメラ振れ量とを考慮して、式（１０）により算出してもよい。
γｎ＝αp×βq×δs  （１０）
すなわち、γｎを時間重みαp と移動体重みβqと振れ重みδｓとの乗算により算出してもよい。
【００９５】
上記各実施例では、各撮像画素に１つのマイクロレンズと複数の光電変換部とが設けられた撮像素子を用いてＡ像とＢ像を取得する場合について説明した。しかし、上記各実施例で説明した焦点検出処理を、複数の撮像光学系とこれらに対応する複数の撮像素子（または複数の撮像領域を有する１つの撮像素子）を有する、いわゆる多眼撮像装置に適用してもよい。多眼撮像装置に適用する場合には、読み出すデータ量が多いため、全データを用いると処理速後が遅くなるおそれがある。このため、適宜必要な部分的なデータを使用して一対のフレーム補間画像を生成し、これらの像ずれ量を算出することで、処理速度の低下を抑えつつ、各実施例と同等の効果を得ることができる。
【００９６】
また、撮像により生成された画像データのうち切り出す領域を狭めることで拡大画像を得る電子ズームを用いた撮像を行っている場合には、その切り出す領域に対応する撮像素子上での撮像画素領域のみから部分Ａ像および部分Ｂ像を取得するようにすると良い。狭い撮像画素領域内の全撮像画素から部分Ａ像および部分Ｂ像を取得するために必要な１周期分のフレーム数を減らすことができる。これにより、実施例１，３，４で説明したフレーム補間画像または実施例２で説明した加算相関値の取得、つまりは像ずれ量およびデフォーカス量の算出に要する時間をより短くすることができる。
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９７】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【符号の説明】
【００９８】
１  デジタルカメラ
３  撮像レンズ
１０ａ  撮像素子
１０ｂ  読み出し部
３０  画像処理部
【図１】
0006532411.tif 000002
【図２】
0006532411.tif 000003
【図３】
0006532411.tif 000004
【図４】
0006532411.tif 000005
【図５】
0006532411.tif 000006
【図６】
0006532411.tif 000007
【図７】
0006532411.tif 000008
【図８】
0006532411.tif 000009
【図９】
0006532411.tif 000010
【図１０】
0006532411.tif 000011
【図１１】
0006532411.tif 000012
【図１２】
0006532411.tif 000013
【図１３】
0006532411.tif 000014
【図１４】
0006532411.tif 000015