以下、図面を参照しながら本発明の例示的な実施形態を説明する。以下では本発明を画像処理装置の一例としての撮像装置(デジタルカメラ)に適用した実施形態について説明する。しかしながら、本発明において撮像機能は必須ではない。本発明は、並行して記録された動画と静止画とを取り扱い可能な任意の電子機器で実施可能である。このような電子機器には、撮像装置のみならず、スマートフォン、パーソナルコンピュータ、タブレット端末、ゲーム機などが含まれるが、これらに限定されない。
●(第1実施形態)
<撮像装置の全体概略構成>
図1は、本実施形態に係るデジタルカメラの模式図である。ここではデジタルカメラが本体100と、本体100に着脱可能な撮像レンズ500とから構成されるものとするが、撮像レンズと本体が一体であってもよい。
撮像レンズ500から本体100に入射した光束は、ビームスプリッタ103に入射する。ビームスプリッタ103は例えば本体100に固定されたハーフミラーであってよいが、それに限定されない。ビームスプリッタ103は、入射光束の一部を反射し、一部を透過させることにより、入射光束を2つの光束に分割する。
本実施形態のデジタルカメラは、2つの撮像素子101、102を有する。撮像素子101はビームスプリッタ103を透過した光束を、撮像素子102はビームスプリッタ103を反射した光束を、それぞれ受光する。撮像素子101、102の撮像面は撮像レンズ500から見て光学的に等価な位置にある。言い換えると、撮像素子101、102は、撮像レンズ500を介して、被写体に対して光学的に共役な結像面に位置する。
撮像素子101、102の撮像面に形成される被写体像の明るさは、ビームスプリッタ103の透過率および反射率に依存する。ビームスプリッタ103を構成するハーフミラーの平面性や屈折率は均一ではないため、反射像や透過像には画質低下が生じうる。そして、ハーフミラーが薄板ガラスで構成される場合、ハーフミラーの物理特性による画質低下は透過像よりも反射像により大きく現れる。
そのため、本実施形態では、高解像度の静止画のように画質が重要な画像の撮影には透過像を受光する撮像素子101を用い、反射像を受光する撮像素子102は動画や低解像度の静止画の撮影に用いる。ただし、ビームスプリッタ103の物理特性などに応じて撮像素子101、102で撮影する画像の種類を逆にしてもよい。
例えばCMOSエリアセンサである撮像素子101、102は、光電変換素子がマトリクス状に配置された画素によって、被写体像を電気信号(画像信号)に変換する。
カメラCPU104は、ROM114に記憶されたプログラムをRAM115に読み込んで実行し、本体100および撮像レンズ500の動作を制御することにより、デジタルカメラの機能を実現する。例えばカメラCPU104は、撮像素子101、102の動作を制御して画像信号を生成させる。また、カメラCPU104は、撮像素子101、102から画像信号を読み出し、A/D変換、ホワイトバランス調整、色補間などの画像処理を実行して記録用画像データや表示用画像データを生成する。カメラCPU104はさらに、画像データに基づいて自動露出制御(AE)や自動焦点検出(AF)を実行する。カメラCPU104は顔検出などの被写体検出処理を行い、検出された被写体領域に基づいてAEやAFを実行してもよい。なお、ここに例示した動作の少なくとも一部は、ASICやASSPなどの専用ハードウェア回路を用いて実行してもよい。
操作部105はボタン、スイッチ、タッチパネルなど、ユーザが本体100に指示を与えるための入力デバイスの総称である。操作部105には電源スイッチ、シャッタースイッチ、メニューボタン、方向キー、決定ボタンなどが含まれる。カメラCPU104は操作部105の操作を検知すると、検知した操作に応じた動作を実行する。
カメラCPU104は、生成した静止画データや動画データを、予め定められた型式のデータファイルに格納して記録媒体106に記録する。記録媒体106は例えば半導体メモリカードである。なお、記録先は外部装置であってもよい。
表示部110は、例えば有機ELディスプレイや液晶ディスプレイである。表示部110がタッチディスプレイの場合、表示部110へのタッチ操作によってユーザは本体100に指示を与えることができる。
表示部110は、本体100の設定、ライブビュー画像、撮影画像、メニュー画面などの表示に用いられる。本体100の設定値および、メニュー画面などのGUIデータはROM114に記憶されている。
ファインダ内表示部107は、表示部よりも小型の表示装置である。カメラCPU104は、ファインダ内表示部107を電子ビューファインダーとして機能させることができる。
接眼レンズ109はファインダ内表示部107の表示を外部から観察するために設けられている。
シャッタ111は撮像素子101の前面に配置されたメカニカルシャッタであり、シャッタ駆動部112(例えばモータ)によって駆動される。
通信端子113、508はそれぞれ本体100、撮像レンズ500のマウント部に設けられ、撮像レンズ500が本体100に装着されている状態で電気的に接続される。カメラCPU104と、撮像レンズ500内のレンズCPU507とは、通信端子113、508を通じて相互に通信可能である。
ROM114は書き換え可能な不揮発性メモリである。ROM114は、カメラCPU104が実行するためのプログラム、本体100の設定値、メニュー画面などのGUIデータなどを記憶する。
RAM115はカメラCPU104がプログラムを読み込んだり、画像データを一時的に格納したりするために用いるシステムメモリである。
<撮像素子の構成>
図2は撮像素子101の構成例を模式的に示した図である。本実施形態では、撮像素子101、102は、後述するマイクロレンズの偏心量を除き、同一構造および同一画素数である。そのため、ここでは代表的に撮像素子101の構造について説明する。
図2(a)は撮像素子101の画素のうち、撮像面の中央近傍(像高0付近)における一部を撮像レンズ500側から見た平面図である。画素を構成する複数の画素のそれぞれは、撮像面上で水平方向(x)、垂直方向(y)共に4μmの大きさを有する正方画素であり、実質的に同じ構成を有する。撮像素子101は水平方向に6000画素、垂直方向に4000画素が行列状に配置された有効画素数2400万画素の画素を有するものとする。画素、すなわち撮像領域の大きさは、画素の大きさ(画素ピッチ)=4μmに画素数を乗じて求めることができ、本例では水平方向に24mm、垂直方向に16mmとなる。各画素には赤(R)、緑(G)、または青(B)のカラーフィルタが1つに設けられ、色の配置は予め定められている。代表的な色の配置はベイヤー配列と呼ばれている。
図2(b)は一つの画素の垂直断面図である。CMOSイメージセンサの基体を成すシリコン基板101d内には第1の光電変換部101aおよび第2の光電変換部101bが形成されている。シリコン基板101d内には光電変換部101a,101bで発生した光電子は、スイッチングトランジスタ等を通じて電圧に変換され、配線層101eのそれぞれから読み出される。配線層101eは透明な層間膜101fによって絶縁されている。
画素には、オンチップマイクロレンズ101cが1つと、色分離用のカラーフィルタ101gが1つ設けられる。オンチップマイクロレンズ101cの焦点位置は、光電変換部101a、101bの上面に略一致する。そのため、光電変換部101a、101bはオンチップマイクロレンズ101cを介して、撮像レンズ500の射出瞳のうち、異なる部分領域の出射光を受光する。従って、撮像素子101において、光電変換部101aで得られる画素信号に基づく画像と、光電変換部101bで得られる画像信号に基づく画像とは視差画像を構成する。
ある画素領域に含まれる複数の画素について、光電変換部101aから得られる画像信号に基づく像信号(A像)と、光電変換部101bから得られる画像信号に基づく像信号(B像)との位相差は、その画素領域の合焦度合いを表す。従って、カメラCPU104は、A像とB像との相関演算によって像信号間の位相差を算出し、位相差をデフォーカス量に変換することにより、位相差検出方式の焦点検出を行うことができる。
後述するようにカメラCPU104は、各画素について、光電変換部101a、101bから画像信号を選択的に読み出すことと、光電変換部101a、101bの画像信号の加算信号を読み出すことができる。カメラCPU104は、光電変換部101a、101bから別個に読み出した画像信号から焦点検出用信号(A像およびB像)を生成することができる。また、カメラCPU104は、加算信号を読み出す(あるいは別個に読み出した信号を加算する)ことにより、記録または表示に用いる画像信号を得ることができる。
<撮像素子の読み出し回路の構成>
図2(c)は、撮像素子101の回路構成を模式的に示した図であり、図2と同じ構成については同じ参照数字を付してある。撮像素子101は、水平走査回路121および垂直走査回路123を有する。また、画素の境界部には、水平走査ライン122a、122bと、垂直走査ライン124a、124bが配線される。光電変換部101a、101bに蓄積された電荷量に応じた電圧を有する画像信号が、これらの走査ラインを介して外部に読み出される。撮像素子102も撮像素子101と同様の回路構成を有している。
撮像素子101、102は第1および第2の読み出しモードを有する。
第1の読み出しモードは、全ての画素から画像信号を読み出す、全画素読み出しモードである。記録用の静止画や動画を生成する際に用いられる。
第2の読み出しモードは、第1の読み出しモードよりも少ない画素から画像信号を読み出す、間引き読み出しモードである。ライブビュー画像のように、撮像素子の解像度よりも低い解像度の画像を生成する際に用いられる。ライブビュー画像とは、表示部110をビューファインダーとして機能させるための画像である。表示部110の解像度は撮像素子101、102の解像度よりも低いため、一部の画素を間引いて読み出すことにより、撮像から表示までの時間短縮、処理負荷および消費電力を低減することができる。第1および第2の読み出しモードにおいて、画像信号は光電変換部ごとに読み出す。そのため、読み出しモードにかかわらず、カメラCPU104は、焦点検出用信号を生成できる。
なお、本実施形態において撮像素子101は静止画撮影用としているが、動画撮影に用いてもよい。たとえば、撮像素子102が第1の読み出しモードで動画撮影している際、撮像素子101が第2の読み出しモードで動画撮影を行ってもよい。同様に、撮像素子102は動画撮影用としているが、静止画撮影に用いてもよい。例えば、動画撮影中に静止画撮影を実行したり、撮影した動画のフレームを静止画として記録したりすることも可能である。動画は、所定の時間間隔で取得された複数のフレームを含む。
<撮像レンズの射出瞳と、2つの撮像素子における焦点検出瞳の関係>
図3は、撮像レンズの射出瞳と、2つの撮像素子における焦点検出瞳の関係を説明する図である。図3(a)は第1の撮像素子101、図3(b)は第2の撮像素子102に関する図である。
高精度な位相差AFの実現には、位相差検出用の焦点検出瞳の基線長が長いこと、撮像レンズの絞り値(Fナンバ)や射出瞳距離の変化に対して射出瞳と焦点検出瞳の位置ずれが少ないことが好ましい。これらの性能を満足するための画素構造に関し、図3(a)を用いて説明する。
図3(a)には撮像レンズ500の光学要素と、撮像素子101が有する2個の画素1011、1012が示されている。画素1011は撮像面中央、すなわち像高x=0に配置された画素、画素1012は撮像面の端に近い場所、例えば像高x=10mmに配置された画素である。まず、撮像レンズの射出瞳について説明する。
撮像レンズ500は焦点距離が可変のズームレンズであり、ズーム操作に応じて焦点距離、開放Fナンバ、および射出瞳距離が変化する。図3においては、撮像レンズ500の焦点距離は広角端であるとする。撮像レンズ500を構成する第1レンズ群501は、その最前面が前枠501rでレンズ鏡筒に保持され、第3レンズ群503の最後面は後枠503rでレンズ鏡筒に保持される。第1レンズ群501と第3レンズ群503との間には絞り505が配置される。図3では絞り505が開放F値の状態を示しており、このとき、画素1011に到達する光束のうち、最も外側の光線L11aとL11bは絞り505の開口部で規制された光線となる。光線L11a、L11bがなす角度θ11は広角端における開放Fナンバに対応する光束の角度である。
一方、画素1012には、光線L12aとL12bに挟まれた領域内の光束が到達する。光線L12a(下線)は前枠501rで規制された光線である。また、光線L12b(上線)は後枠503rで規制された光線である。上線L12aと下線L12bとがなす角度θ12は、口径食のためにθ11よりも小さくなる。
上線L12bと下線L12aの中間の光線L12cが主光線であり、光軸L11cと主光線L12cとは角度β1をなしている。そして、光軸L11cと主光線L12cが交差する点CL1を通り、光軸L11cに垂直な面が射出瞳面EPL1である。射出瞳面EPL1において、画素1012へ到達する光束が通る領域が画素1012からみた射出瞳であり、撮像面と射出瞳の間隔PL1が射出瞳距離である。ここでは撮像レンズ500の射出瞳距離PL1をレンズ瞳距離と呼ぶ。
なお、絞りの開口の大きさ(Fナンバ)に応じて口径食が変化するため、撮像レンズ500の射出瞳距離も厳密にはFナンバに応じて変化する。ただし、Fナンバに依存した射出瞳距離変動が無視できる程度に小さいことが多い。そこで、本実施形態においても、射出瞳距離はズーム状態やフォーカス状態に応じて変化するが、Fナンバに対しては不変であるものとする。
次に、画素の構造と焦点検出瞳について説明する。画素1011の光電変換部1011aおよび1011bは隣接配置され、その境界部には極小幅の不感帯が存在する。境界部の中心が画素中心と一致しており、一対の光電変換部1011a,1011bは画素中心に対してx方向に対称な形状を有する。よって、光電変換部1011a,1011bの重心位置と画素中心とのx方向における距離は等しい。
画素が備えるマイクロレンズ1011cの主点1011pを通り、光軸に直交する面が撮像素子101の予定結像面(撮像面IP1)である。すなわち、撮像レンズ500によって形成される被写体像のピント位置が、各画素のマイクロレンズ1011cの主点1011p群を含んだ予定結像面IP1に一致する状態で得られる画像が、被写体に合焦した画像である。なお、マイクロレンズ1011cの厚さは1μm程度であり、マイクロレンズ1011cの頂点と主点1011pとの距離は更に小さな値であるため、主点1011pをマイクロレンズの頂点とみなしても差し支えない。
画素1011はマイクロレンズ1011cの光軸と画素の中心(一対の光電変換部の境界中心)が一致している。一方、撮像面IP1の端部に位置する画素1012ではマイクロレンズ1012cの光軸と画素の中心が一致しておらず、撮像レンズ500の光軸寄りに所定量dx1だけ偏心している。
ここで、画素の中心とマイクロレンズの主点とを結ぶ線を画素の主光線と定義すると、画素の主光線は光軸に対して所定の角度ω1傾斜し、撮像面IP1から所定距離を有する点CS1で光軸と交差する。この交点CS1を通り、光軸と直交する仮想面をセンサ瞳面SPL1と呼ぶ。また、センサ瞳面SPL1と撮像面IP1との距離PS1をセンサ瞳距離と呼ぶ。センサ瞳面SPL1上ではすべての画素の焦点検出瞳が実質的に一致するが、その理由は後述する。
画素1011において、マイクロレンズ1011cの主点1011pと一対の光電変換部上面間の高さh1が画素の光学的な高さである。厳密な光学的高さは、機械的寸法である高さh1に画素内の光路部分の屈折率を乗じた値であるが、ここでは説明を平易にするため、図示した高さh1を画素の高さとする。そして、マイクロレンズ1011cの焦点が光電変換部1011aおよび光電変換部1011bの上面と略一致するように、マイクロレンズ1011cの形状(光学パワー)が設定されている。
図3においては、便宜上、レンズ瞳距離PL1およびセンサ瞳距離PS1が画素高さh1の数倍程度に図示している。しかし、現実には画素高さh1がマイクロメートルオーダーであるのに対して、レンズ瞳距離PL1およびセンサ瞳距離PS1は数10mmオーダーであり、両者の大きさには4桁程度の開きがある。すなわち、マイクロレンズ1011cの集光作用を考える場合、画素1011から見た撮像レンズ500の射出瞳やセンサ瞳面SPL1は非常に遠方にあると見なせる。マイクロレンズ1011cの焦点位置が光電変換部1011a、1011bの上面に略一致していると、光電変換部1011a、1011bの上面は遠方にある平面上に投影されるが、その投影像の大きさは投影面までの距離に比例する。ここで、投影面をセンサ瞳面SPL1とすると、センサ瞳面SPL1上には一対の光電変換部1011aおよび1011bに対応する一対の逆投影像AP1aおよびAP1bが形成され、これが焦点検出時の光束を規定する焦点検出瞳となる。
次に、画素1012の構造とセンサ瞳距離について説明する。図3(a)において、画素1012のx座標をX1とすると、マイクロレンズ1012cの主点およびセンサ瞳面上の点CS1を頂点とする2つの三角形の相似関係より、
X1/(PS1+h1)=dx1/h1 (式1)
となる。ここで、PS1≫h1なので、左項の分母PS1+h1はPS1と近似でき、式4を変形すると、
PS1=X1×(h1/dx1) (式2)
dx1=h1×(X1/PS1) (式3)
が得られる。
また、画素1012の画素構造や各部の寸法は、マイクロレンズ1012cの偏心量を除いて画素1011と同一である。よって、センサ瞳面SPL1上には、一対の光電変換部1012aおよび1012bに対応する一対の逆投影像が形成され、この逆投影像は画素1011の光電変換部1011aおよび1011bの逆投影像AP1aおよびAP1bと実質的に同一である。すなわち、撮像素子101が有する全ての画素で式3が成り立つようにマイクロレンズの偏心量を設定すれば、全ての画素についてセンサ瞳距離がPS1となり、センサ瞳面上では全ての画素の焦点検出瞳がAP1aおよびAP1bに共通化される。すなわち、マイクロレンズアレイを介して各画素が備える光電変換部とセンサ瞳面とが共役な関係になり、すべての画素の焦点検出瞳がセンサ瞳面上で実質的に一致することになる。
次に焦点検出瞳の基線長について説明する。画素1011における一対の光電変換部1011aおよび1011bは、画素中心に対してx方向に対称形状を有し、光電変換部1011a、1011bの感度重心位置間のx方向の距離をGS1とする。そして、光電変換部の感度重心位置とマイクロレンズ1011cの主点1011pを結び、撮像レンズの射出瞳方向に延長した線を光電変換部の主光線と定義する。
この場合、マイクロレンズ1011cの主点1011pを頂点とし、一対の主光線S11aとS11bとが形成する2つの三角形の相似関係より、
GP1/PS1=GS1/h1 (式4)
が導かれ、これを変形すると、焦点検出瞳の基線長GP1は、
GP1=GS1×(PS1/h1) (式5)
となる。また、一対の焦点検出光束における一対の主光線S11aとS11bのなす角度が基線角度α11で、sinα≒tanα≒αの近似が成り立つ領域では、
α11=GS1/h1=GP1/PS1 (式6)
となる。
撮像面の端部に位置する画素1012においても、光電変換部1012a、1012bの感度重心位置間のx方向の距離はGS1である。そして、一対の光電変換部の主光線S12aとS12bが定義でき、前述の式1および式2が成り立つ。すなわち、画素1011と画素1012において、焦点検出瞳の基線長は互いに等しい値GP1となる。一方で、両者の基線角度は厳密には異なり、画素1011の基線角度はα11、画素1012の基線角度はα12となり、α11>α12の関係となる。
基線長という用語は、2眼式ステレオカメラや、外測式位相差検出モジュールにおける一対の光学系の入射瞳間の距離を指すが、本実施形態における撮像面位相差検出方式ではセンサ瞳面SPL1上の一対の光束の間の距離GP1を基線長と称している。この場合、センサ瞳面SPL1と撮像面IP1の間隔であるセンサ瞳距離PS1が変わると基線長GP1も変化してしまうので、基線長の大小は、同じセンサ瞳距離PS1における値で比較する必要がある。また、図3に示した基線長GP1およびGP2は画素単体の基線長だが、焦点検出時には焦点検出瞳が撮像レンズの射出瞳でけられるため、けられ状況に応じて基線長も短くなる。なお、基線角度α11はレンズ瞳距離やセンサ瞳距離には依存せず、画素の構造と寸法のみで決まるため、撮像素子単体の焦点検出能力を比較する場合は基線角度αで比較するのが妥当である。位相差検出時の一対2像の相対的な横ずれ量は基線長GP1もしくは基線角度α11に比例するので、これらの値が大きいほど、焦点検出分解能が高い。
第1の撮像素子101における焦点検出原理を説明すると、以下のようになる。撮像素子に配置された任意像高の画素内の一方の光電変換部(1011aないし1012a)は、マイクロレンズアレイを介して焦点検出瞳AP1aを通過した光束を受光し、光電変換信号Saを出力する。同様に画素内の他方の光電変換部(1011bないし1012b)は、マイクロレンズアレイを介して焦点検出瞳AP1bを通過した光束を受光し、光電変換信号Sbを出力する。そこで、x方向に連続して配置された複数の画素が出力する信号Sa同士と、信号Sb同士を連ねた信号を、A像信号およびB像信号と定義する。すると、A像信号とB像信号は、被写体像のピントズレ状態に応じてx方向に横ずれしている。この横ずれ量は、被写体像のピントズレ量すなわちデフォーカス量に比例するとともに、焦点検出瞳の基線長GP1あるいは基線角度α11にも比例する。
次に、図3(b)に示した第2の撮像素子102の画素構造と焦点検出瞳について説明する。本実施形態においては、2つの撮像素子101、102は1つの撮像レンズ500を共用しているが、撮像レンズ500から撮像素子102に向かう光束はビームスプリッタ103を介して90度屈曲する。そのため、撮像素子102上に形成される被写体像は鏡像であるが、ここでは光束を直線状に展開し、鏡像も元の正像に戻した状態で説明する。
図3(b)には図3(a)と同様に2個の画素1021および1022が図示され、画素1021は撮像面中央、すなわち像高x=0mmに配置され、画素1022は像高x=10mmに配置されている。
画素1021は図3(a)の画素1011と同一構成を有する。すなわち、画素1021の画素高さh2は画素1011の画素高さh1と同一であり、マイクロレンズ1021cの主点102pをとおり光軸S21cに直交する面が撮像面IP2である。また、マイクロレンズ1021cの光軸は一対の光電変換部の境界部の中心と一致し、かつマイクロレンズ1021cの焦点位置は一対の光電変換部の上面と略一致している。
一方で、撮像面IP2の端部近傍に位置する画素1022においては、撮像素子101の画素1012と同様に、マイクロレンズ1022cの光軸が画素の中心に対して偏心しているが、その偏心量は所定量dx1とは異なる所定量dx2に設定されている。そのため、画素1022の主光線S22c(一対の光電変換部境界とマイクロレンズの主点を結ぶ線)は光軸に対して所定の角度ω2だけ傾斜し、撮像面IP1から所定距離を有する点CS2で光軸と交差する。この交差点CS2を通り、光軸と直交する仮想面をセンサ瞳面SPL2とし、センサ瞳面SPL2と撮像面IP2の間の距離PS2をセンサ瞳距離と呼ぶ。
よって、撮像素子101で説明したセンサ瞳距離に関する式1ないしおよび式3は、撮像素子102においては、
X1/(PS2+h2)=dx2/h2 (式7)
PS2=X1×(h2/dx2) (式8)
dx2=h2×(X1/PS2) (式9)
となる。そして、画素1022の画素構造や各部の寸法は、マイクロレンズの偏心量を除いて画素1021と同一である。よって、センサ瞳面SPL2上には、一対の光電変換部1022aおよび1022bに対応する一対の逆投影像が形成され、この逆投影像は画素1021の光電変換部の逆投影像AP2aおよびAP2bと実質的に同一となる。
すなわち、撮像素子102の全ての画素で式9が成り立つようにマイクロレンズの偏心量を設定すれば、全ての画素のセンサ瞳距離がPS2となり、センサ瞳面上で全ての画素の焦点検出瞳がAP2aおよびAP2bに共通化される。
ここで、画素1012のマイクロレンズ1022cの偏心量dx2は、図3(a)に示した第1の撮像素子101のが画素1011のマイクロレンズ1012cの偏心量dx1より小さい。そのため、撮像面端部における主光線角度ωとセンサ瞳距離PSの大小関係は、
ω1>ω2 (式10)
PS1<PS2 (式11)
となる。なお、撮像素子はその製造工程において、画素高さには所定の製造ばらつきを生ずるため、主光線角度ωとセンサ瞳距離PSもばらつきを生ずる。そこで、画素高さの製造ばらつきが生じても式10および式11の大小関係が逆転しないように、マイクロレンズの偏心量dx1およびdx2を設定するのが好ましい。
次に、撮像素子102における焦点検出瞳の基線長について説明する。画素1021における一対の光電変換部1021aおよび1012bは、撮像素子101の画素1011と同様に画素中心に対してx方向に対称形状を有し、各々の光電変換部1012a、1012bの感度重心位置のx方向間隔をGS2とする。また、画素高さはh2である。すると、撮像素子101における前述の式4ないし式6は、撮像素子102においては、
GP2/PS2=GS2/h2 (式12)
GP2=GS2×(PS2/h2) (式13)
α21=GS2/h2=GP2/PS2 (式14)
となる。そしてh1=h2、GS1=GS2であるため、基線角度は等しく、α11=α21となる。一方で、焦点検出瞳の基線長はGP2>GP1となり、両者は異なる値となっているが、これは焦点検出瞳を投影する面と撮像面の間隔が異なることに起因する。そして、焦点検出精度は基線角度αに依存するため、撮像素子101と撮像素子102において、撮像面中央にある画素単体の焦点検出性能は同一となる。撮像面の端部における画素1022についても式12および式13が成り立つため、撮像素子単体では撮像素子101と撮像素子102の焦点検出性能は等しい。
以上のごとく、第1の撮像素子101と第2の撮像素子102は、各画素の基本的な特性は同一だが、センサ瞳距離が異なっている。よって、撮像面中央において両者は同等の焦点検出特性となるが、撮像面端部においては撮像レンズの射出瞳と撮像素子の焦点検出瞳の位置関係が異なり、焦点検出特性も異なる。その様子を図4で説明する。
<各画素の焦点検出瞳と撮像レンズの射出瞳の相対的な位置関係>
図4は、図3に示したセンサ瞳面SPL1およびSPL2における、各画素の焦点検出瞳と撮像レンズの射出瞳の相対的な位置関係を示した図である。図4(a)は撮像素子101の画素1011に関する図、図4(b)は撮像素子101の画素1012に関する図である。また、図4(c)は撮像素子102の画素1021に関する図、図4(d)は撮像素子102の画素1022に関する図である。
先に、焦点検出瞳の大きさは、焦点検出瞳の投影面距離に比例すると説明した。そして、図4(a)(b)と、図4(c)(d)は投影面であるセンサ瞳距離が異なるため、投影距離が揃うように図面の縮尺を調整している。また、いずれの図においても、センサ瞳面における光軸位置を原点としている。まず図4(a)について説明する。
図4(a)は、第1の撮像素子101の撮像面中央に位置する画素1011からセンサ瞳面SPL1を見た時の焦点検出瞳と撮像レンズの射出瞳を示す。原点はセンサ瞳面SPL1と光軸の交点であり、図3(a)における点CS1である。一対の焦点検出瞳AP1aおよびAP1bは、マイクロレンズ1011cを介して画素1011が有する一対の光電変換部1011aおよび1011bと光学的に共役関係にある。ただし、マイクロレンズ1011cの光学収差、および画素の大きさが微小であることによる光波の回折により、一対の焦点検出瞳AP1aおよびAP1bは輪郭がぼけている。そして各焦点検出瞳はクロスハッチングで示した中心部に行くほど効率が高い、換言すれば中心部に近づくほど受光強度が高い。また、網点で示した領域は周辺部に行くほど効率が低い、換言すれば受光強度は低くなる。そして周辺部は互いの領域の一部が重なっている。
EP11は撮像レンズ500の絞り503が開放(F2)の際の射出瞳を、円505は例えば絞り503がF5.6の際の射出瞳をそれぞれ示している。撮像面中央においては焦点検出瞳と射出瞳は原点である光軸に対して瞳分割方向(横軸u方向)に対称である。。よって、焦点検出時のFナンバに関わりなく、一対の焦点検出瞳のけられは瞳分割方向に対称となり、画素1011が有する一対の光電変換部1011aと1011bの受光信号強度は等しくなる。
図4(b)は、第1の撮像素子101の撮像面端部に位置する画素1012からセンサ瞳面SPL1を見た時の焦点検出瞳と撮像レンズの射出瞳を示す。原点は図4(a)と同様に、図3(a)における点CS1である。一対の焦点検出瞳AP1aおよびAP1bの形状と位置は図3(a)に示した画素1011のものと同様であり、原点CS1に対して瞳分割方向に対称となっている。
画素1012から見た、絞り503の開放時の射出瞳EP12は、口径食により2つの円弧で囲まれた形状となり、u軸方向の幅は狭くなっている。図3(a)で説明したように、レンズ瞳距離PL1と第1の撮像素子101のセンサ瞳距離PS1は若干異なっている。そのため、絞り503が開放およびF5.6の際の射出瞳EP12および505の中心CD1は、焦点検出瞳の境界中心CS1に対して左方向に若干偏心している。しかしその偏心量は僅かであるため、一対の焦点検出瞳のけられは瞳分割方向に略対称となり、画素1012が有する一対の光電変換部1012aと1012bの受光信号強度はほぼ等しい。
図4(c)は、第2の撮像素子102の撮像面中央に位置する画素1021からセンサ瞳面SPL2を見た時の焦点検出瞳と撮像レンズの射出瞳を示す。原点はセンサ瞳面SPL2と光軸の交点であり、図3(b)における点CS2である。一対の焦点検出瞳AP2aおよびAP2bは、実質的に図4(a)の画素1011のものと同一である。
また、絞り503の開放時およびF5.6における射出瞳EP21および505も、図4(a)に示した射出瞳EP11および505と同一である。よって、画素1021においても焦点検出時のFナンバに関わりなく、一対の焦点検出瞳のけられは瞳分割方向に対称となり、一対の光電変換部1021aと1021bの受光信号強度は等しくなる。
図4(d)は、第2の撮像素子102の撮像面端部に位置する画素1022からセンサ瞳面SPL2を見た時の焦点検出瞳と撮像レンズの射出瞳を示す。図4(d)の原点CS2は図4(c)と同様に、図3(b)における点CS2である。一対の焦点検出瞳AP2aおよびAP2bは、図4(c)と同様に原点CS2に対して瞳分割方向に対称である。
絞り503の開放時の射出瞳EP22は、図4(b)と同様、口径食により2つの円弧で囲まれた形状を有する。図3(b)で説明したように、レンズ瞳距離PL1と第2の撮像素子102のセンサ瞳距離PS2はかなり異なっている。そのため、絞り503が開放およびF5.6の際の射出瞳EP22および505の中心CD2は、焦点検出瞳の境界中心CS2に対して左方向に大きく偏倚する。その結果、一対の焦点検出瞳のけられは瞳分割方向に非対称となり、画素1022が有する一対の光電変換部1022aと1022bの受光信号強度は大きく異なる。この光量差(厳密には光量比)は、像高が大きく、また小絞りになる(Fナンバが大きくなる)ほど大きくなる。
<シェーディング特性>
図5(a),(b)は撮像レンズ500の絞り503が開放(F2)およびF5.6の際に、一様な輝度分布を有する被写体を撮像した際の撮像素子の像高と受光光量との関係、すなわちシェーディング特性を説明する図である。図5(a)は第1の撮像素子101の特性図、図5(b)は第2の撮像素子102の特性図である。まず図5(a)について説明する。
図5(a)の横軸は第1の撮像素子101の撮像面IP1におけるx方向の像高、縦軸は一対の焦点検出瞳に対応する光束を受光する光電変換部の出力信号で、各画素が備える光電変換部の受光光量に比例した値である。S1a(F2)は、絞り開放(F2)時における、一方の焦点検出瞳AP1aに対応する複数の光電変換部の出力信号であり、これをA像信号と呼ぶ。S1b(F2)は対となる他方の焦点検出瞳AP1bに対応する複数の光電変換部の出力信号で、これをB像信号と呼ぶ。
焦点検出の際は、輝度が一定でない被写体を撮影して得られるA像信号とB像信号の相関演算を行なってデフォーカス量を検出するが、図5(a)は無地の均一輝度面に対する信号、すなわち焦点検出系のシェーディング特性を表わしている。両信号の値は像高xの絶対値の増加とともに低下するが、これは撮像レンズの口径食に起因する。また、第1の撮像素子101はレンズ瞳距PL1とセンサ瞳距離PS1が略一致しているが、図3(a)で説明したように、厳密にはレンズ瞳距離PL1の方が若干小さい。そのため、図4(a)および(b)で説明したように、像高の増加と共に撮像レンズの射出瞳中心と焦点検出瞳の中立点が僅かにずれ、図5(a)のA像信号S1a(F2)とB像信号S1b(F2)は像高に応じてその値が若干異なっている。また、像高xが正の領域ではA像>B像、像高xが負の領域ではA像<B像となり、像高の正負に応じて両信号の大小関係は逆転する。
図5(a)のS1a(F5.6)およびS1b(F5.6)は、絞り503がF5.6の際のA像およびB像信号である。両信号の値は像高の絶対値が大きいほど小さくなるが低下の割合は絞りが開放の場合より低い。値の低下はコサイン4乗則によるものである。また、同じ像高における信号値の差も像高の増加とともに大きくなるが、その理由は絞り開放の場合と同様である。
図5(b)は第2の撮像素子102の特性図であり、図の意味は図5(a)と同じである。S2a(F2)とS2b(F2)は、絞り503の開放時(F2)におけるA像信号とB像信号、S2a(F5.6)とS2b(F5.6)は、絞り503がF5.6のときのA像信号とB像信号である。
図3(b)で説明したように、第2の撮像素子102はレンズ瞳距PL1とセンサ瞳距離PS2の乖離が大きい。そのため、図4(d)で示すように、像高の大きな領域では撮像レンズの射出瞳中心と焦点検出瞳の中立点のずれも大きく、一対の焦点検出瞳の光量比もアンバランスになる。よって、第2の撮像素子102のシェーディング特性も、口径食やコサイン4乗則を起因とする光量低下に加え、射出瞳と焦点検出瞳の位置ずれに起因するA像信号とB像信号の乖離が顕著になっている。
焦点検出時には本体100が記憶している情報を用いてA像信号とB像信号にシェーディング補正を行ってから相間演算を行なうのが一般的である。しかしながら、元の像信号のレベル差が大きいとシェーディング補正誤差も大きくなりがちである。また、元の信号レベルが本来想定したレベルより低いと、シェーディング補正による信号増幅比も大きくなり、その結果ノイズ等を増幅して焦点検出誤差が増加してしまう。
すなわち、図5(a)と(b)のシェーディング特性を比較すると、同図(a)の方がA像信号とB像信号のレベル差が少なく、焦点検出精度が良いと判断できる。よって、2つの撮像素子101、102のいずれからも位相差方式の焦点検出用信号を生成可能な場合、レンズ瞳距離とセンサ瞳距離の乖離が少なく、A像信号とB像信号のシェーディング特性が一致している方の撮像素子の焦点検出結果を優先的に使用する。
シェーディング特性の一致度は、以下のように定義して判断する。撮像面の端部に近い所定像高において、A像信号とB像信号のうちの大きな方をMax(A,B)、小さな方をMin(A,B)、両者の比をシェーディング比SHとし、次式
SH=Max(A,B)/Min(A,B) (式14)
で定義する。シェーディング比SHが1に近いほどシェーディング特性が一致している。
図5(c)は2つの撮像素子101、102におけるシェーディング比SHがレンズ瞳距離に対してどのように変化するのかを示した図である。横軸は撮像レンズのレンズ瞳距離PL、縦軸はシェーディング比SHである。本実施形態の撮像レンズ500はズームやフォーカスの状態変化により、レンズ瞳距離がPLminからPLmaxまで変化する。SH1(F2)およびSH1(F5.6)は、絞り503が開放(F2)およびF5.6である場合の第1の撮像素子101のシェーディング比である。レンズ瞳距離PLが撮像素子101のセンサ瞳距離PS1に一致すると、A像信号とB像信号のシェーディング波形は等しく、シェーディング比SH1は極小値の1となる。そして、レンズ瞳距離PLがセンサ瞳距離PS1からずれるに従って、シェーディング比SH1は増加し、小絞りに(Fナンバが大きく)なるほどシェーディング比の増加が著しい。
SH2(F2)およびSH2(F5.6)は、撮像レンズ500の絞り503が開放およびF5.6の際の第2の撮像素子102のシェーディング比である。レンズ瞳距離PLが撮像素子102のセンサ瞳距離PS2に一致すると、A像信号とB像信号のシェーディング波形は等しく、シェーディング比SH1は極小値の1となる。そして、レンズ瞳距離PLがセンサ瞳距離PS2からずれるに従って、シェーディング比SH2は増加し、小絞りに(Fナンバが大きく)なるほどシェーディング比の増加が著しい。
PSmidはシェーディング比SH1とSH2の大小関係が反転するレンズ瞳距離であり、これを境界瞳距離と呼ぶ。シェーディング比SHが小さいほど、A像信号とB像信号のレベル差が少ないため、焦点検出の際にはシェーディング比SHが小さい方の撮像素子を用いるのが好ましい。よって、焦点検出時のレンズ瞳距離PLが境界瞳距離PSmidより小さい時は、第1の撮像素子101の焦点検出結果を優先し、レンズ瞳距離PLが境界瞳距離PSmidより大きい時は、第2の撮像素子102の焦点検出結果を優先するのが好ましい。
<焦点検出用信号の波形例>
図6(a),(b)は、焦点検出領域内の被写体に合焦するフォーカスレンズ位置を検出する場合の焦点検出用信号(A像およびB像信号)の波形例で、図6(a)はシェーディング補正前、図6(b)はシェーディング補正後の波形である。両図共に、横軸は撮像面のx座標、縦軸は焦点検出用信号の出力強度で、Sa、Sbは第1の撮像素子101もしくは第2の撮像素子102から得られるA像信号およびB像信号である。
シェーディング補正前(図6(a))は、A像信号とB像信号とにはレベル差が存在する。すなわちB像信号Sbに対してA像信号Saは平均値が高く、かつ、像高xの増加に応じてレベル差が拡大している。一方、シェーディング補正後(図6(b))は、A像信号SaとB像信号Sbのレベルが揃っている。A像およびB像信号の位相差φを得るための相関演算は、シェーディング補正後のA像およびB像信号を対象として実行する。
相間演算式には種々のものが提案されているが、例えば以下の式15が用いられる。
C(φ)=Σ|A(i)−B(i)| (式15)
A(i)およびB(i)は所定の焦点検出領域から出力されたA像信号とB像信号で、iはx軸方向の画素番号を表わす。例えば焦点検出領域のx軸方向に存在する焦点検出用画素の数が100画素であれば、iは1から100の値を取る。従って、式15の右辺は、焦点検出領域内のA像信号とB像信号の差の絶対値を積算したものになる。C(φ)は相関値で、φは上記積算演算を行なう際のA像信号とB像信号の相対的なずらし量である。すなわち、相間演算はA像信号とB像信号を相対的にずらしながら式15を計算し、相関値C(φ)が極小値を取る時のφをA像信号とB像信号の位相差とみなす。
<一対2像の位相差と相関値の関係>
図6(c)は一対2像の位相差と相関値の関係を説明する図である。横軸はA像信号とB像信号の相対的なずらし量、縦軸は式15の相関値C(φ)である。C1は第1の撮像素子101の焦点検出用信号の相関値で、ずらし量φ1において、相関値は極小値C1minを示す。C2は第2の撮像素子102の焦点検出用信号の相関値で、ずらし量φ2において、相関値は極小値C2minを示す。本実施形態においては、レンズ瞳距離とセンサ瞳距離の一致度は第1の撮像素子101の方がよいため、第1の撮像素子101から得られる焦点検出用信号の方が、信頼性が高い場合が多い。よって、相関値C(φ)の極小値も第1の撮像素子101による値の方が小さく、得られた位相差も、φ2よりもφ1の方が、信頼性が高いと推定される。
次いで、式15で得られた位相差φをデフォーカス量DEFに変換する。ここで、位相差φとデフォーカス量DEFは次式の関係にある。
φ=DEF×α (式16)
DEF=φ/α=φ×K (式17)
αは一対の焦点検出光束の基線角度で、図3(a)のα11やα12、あるいは同図(b)のα21やα22である。ただし、図3に示した基線角度は撮像素子単体における値であるが、焦点検出光束は撮像レンズの射出瞳によってけられが生ずるため、式16や式17の基線角度αは撮像レンズの光学状態、すなわち撮像レンズのFナンバやレンズ瞳距離によっても変化する。従って、デフォーカス量DEFを算出するためには基線角度αに関する情報が必要となるが、この情報については後述する。
カメラCPU104は式17を用いて位相差φをデフォーカス量DEFに変換し、さらにデフォーカス量DEFをフォーカスレンズ503の駆動量および駆動方向に変換して撮像レンズのレンズCPU507に送信する。レンズCPU507は受信したレンズ駆動量および駆動方向に基づいてフォーカス駆動部504を駆動する。このようにして、撮像レンズ500を焦点検出領域内の被写体に合焦させることができる。
<シェーディング補正情報>
図7(a),(b)は本体100がROM115に予め記憶しているシェーディング補正情報の例を示す。シェーディング補正情報は例えばルックアップテーブルの型式で、撮像素子ごとに記憶されている。図7(a)は第1の撮像素子101用の情報、図7(b)は第2の撮像素子102用の情報である。
図7(a)において、ルックアップテーブルの列方向(横方向)には、撮像レンズ500のFナンバが、F1.4からF16まで1段絞りごとに8種の値として割り当てられる。行方向(縦方向)には撮像レンズ500のレンズ瞳距離が、離散的な複数の焦点距離について、最小値のレンズ瞳距離1(例えば50mm)から最大値のレンズ瞳距離8(例えば200mm)まで、等差数列もしくは等比数列として割り当てられる。そして各Fナンバとレンズ瞳距離に対応する箇所には、撮像素子101に対応するシェーディング補正情報Fs111からFs188が格納されている。ここで、Fs111ないしFs188は単一の定数ではなく、所定の関数を定義するための複数の係数で構成される。
焦点検出用信号に生ずるシェーディングは、図5(a),(b)で説明したように、撮像面上の像高に応じて連続的に変化する。そこで、シェーディング補正関数を、像高xおよび像高yを変数とする多項式関数で定義し、図5(a),(b)のシェーディング波形をシェーディング補正関数で近似した時の各次数における係数をシェーディング補正情報として記憶すればよい。図7(b)は第2の撮像素子102用のシェーディング補正情報であり、その構成と補正情報が示す内容は第1の撮像素子101用のシェーディング補正情報と同様であるため、説明は省略する。
<位相差φをデフォーカス量に変換するための変換情報>
図7(c)、(d)は、図6(b)に示した2像の位相差φをデフォーカス量DEFに変換するための変換情報で、式17のKに相当し、シェーディング補正情報と同様のルックアップテーブルとしてROM115に予め記憶されている。図7(c)は第1の撮像素子101用の変換情報、図7(d)は第2の撮像素子102用の変換情報である。
図7(c)において、ルックアップテーブルのFナンバとレンズ瞳距離に対応する箇所には、撮像素子101に対応する変換情報Fk111からFk188が格納されている。ここで、Fk111ないしFk188も単一の定数ではなく、所定の関数を定義するための複数の係数で構成される。位相差検出時に撮像面上の各画素が受光する焦点検出光束は、撮像面上のxおよびy座標に応じてけられ状態が変化するため、焦点検出瞳の基線長も像高に応じて連続的に変化する。そこで、光学計算もしくは実測で求めた変換係数分布を像高xおよび像高yを変数とする多項式関数で近似し、近似した関数の各次数における係数を、位相差φをデフォーカス量DEFに変換する係数として記憶すればよい。図7(d)は第2の撮像素子102用の変換情報であり、その構成と補正情報が示す内容は第1の撮像素子101用の変換情報と同様であるため、説明は省略する。
<撮影処理>
図8は本実施形態のデジタルカメラにおける撮影処理の手順を示すフローチャートである。このフローチャートに示す処理は、例えば、ユーザが操作部105に含まれる電源スイッチをオン操作されたことをカメラCPU104が検出すると開始される。電源スイッチのオン操作を検出するとカメラCPU104は、起動処理として、本体100の各構成要素の動作確認や、RAM114やプログラムの初期化処理などを実行する。
起動処理が完了すると、S102でカメラCPU104は、レンズCPU507と通信を行ない、撮像レンズ500の情報を取得する。取得する情報には、開放Fナンバ、焦点距離、射出瞳距離PL、フォーカスレンズ繰り出し量とピント変化量の比例定数であるフォーカス敏感度、などが含まれてよいが、これらに限定されない。
S103でカメラCPU104は、静止画モードと動画モードのいずれが設定されているかを判別し、静止画モードと判別されればS111へ、動画モードと判定されればS131へ、処理を進める。
S111でカメラCPU104は、表示部110を電子ビューファインダーとして機能させるためにリアルタイム表示するライブビュー画像を生成するため、撮像素子101で動画撮影を開始する。また、カメラCPU104は、第2の読み出しモードで撮像素子101から画像信号を読み出す。なお、焦点検出用信号を生成する場合には、焦点検出領域内の画素は間引きせずに読み出してもよい。
S112でカメラCPU104は、S111で読み出した画像信号(動画像の1フレーム)の明るさに応じて、ライブビュー表示用の動作撮影時の絞り制御を行う。カメラCPU104は、画像信号の明るさを例えばフレーム全体もしくは焦点検出領域の平均輝度値に基づいて判定することができる。
S111〜S115は、静止画モードにおけるライブビュー表示用の動画撮影および焦点検出に関する動作を行うステップである。静止画撮影において、ライブビュー表示用の動画撮影時の絞り値と、記録用の静止画撮影時の絞り値とが異なっても大きな支障は無い。一方、記録用に撮影される静止画は一般に解像度が高いため、合焦誤差の許容値は小さい。そのため、S112でカメラCPU104は、撮像レンズ500の絞り503のFナンバを小さく(開口径が大きく)することを優先して絞り制御を行なう。
絞り503のFナンバを小さくすると露出オーバーとなる場合、カメラCPU104は、撮像素子101の信号を増幅するアンプのゲインを低くしたり、動作撮影時の露光時間(電子シャッタスピード)を短くしたりして、撮像画像が適正露出となるようにする。
S113でカメラCPU104は、撮像素子101から読み出した画像信号から表示用画像を生成する。そして、カメラCPU104は、表示用画像を表示用信号に変換し、ファインダ内表示部107もしくは表示部110に表示させる。これにより、ファインダ内表示部107または表示部110へのライブビュー表示が開始する。
S114でカメラCPU104は、静止画撮影に適した焦点検出1のサブルーチンを実行する。サブルーチンの詳細は図9(a)で説明する。
S115でカメラCPU104は、S114の焦点検出処理で得られたフォーカスレンズ駆動量および駆動方向を、通信端子113、508を介してレンズCPU507に送信する。レンズCPU507は受信した駆動量および駆動方向に従ってフォーカス駆動部504を駆動する。
S116でカメラCPU104は、操作部105のシャッタースイッチの操作など、静止画撮影の開始指示が入力されたか否か判定し、入力されたと判定されればS121へ処理を進める。一方、静止画撮影の開始指示が入力されたと判定されなければ、カメラCPU104は、処理をS111に戻して、次フレームについての処理を実行する。
S121でカメラCPU104は、静止画撮影1のサブルーチンを実行する。サブルーチンの詳細は図9(b)で説明する。
S122でカメラCPU104は、S121で取得した画像信号から記録用の静止画像データを生成する。そして、カメラCPU104は、記録用の静止画像データを予め定められた型式のデータファイルに格納して、記録媒体106に記録する。
なお、上述したように、本実施形態では撮像素子101の各画素から光電変換部ごとには画像信号を読み出す。そのため、表示用画像や記録用画像を生成するには、まず、画素ごとに、2つの光電変換部から読み出した画像信号を加算する必要がある。加算はカメラCPU104が実行しても、他の回路が実行してもよい。
カメラCPU104は、加算処理によって画素ごとに1つの信号となった画像信号に対してA/D変換、ホワイトバランス調整、色補間、ガンマ補正、収差補正、信号型式の変換、符号化などの処理を適用して、表示用または記録用の画像信号データを生成する。
本実施形態においてカメラCPU104は、光電変換部101a、101bごとに読み出した画像信号についても、記録媒体106に記録する。
なお、画像信号から表示用または記録用の画像データを生成する処理は、専用の回路を設けて行っても良い。
そしてカメラCPU104は、静止画撮影処理を終了する。
次いで、動画撮影時の動作について説明する。
S131でカメラCPU104は、表示部110(またはファインダ内表示部107)を電子ビューファインダーとして機能させるためにリアルタイム表示するライブビュー画像を生成するため、撮像素子102で動画撮影を開始する。また、カメラCPU104は、第2の読み出しモードで撮像素子102から画像信号を読み出す。なお、焦点検出用信号を生成する場合には、焦点検出領域内の画素は間引きせずに読み出してもよい。
S132でカメラCPU104は、S131で読み出した画像信号(動画像の1フレーム)の明るさに応じて、ライブビュー表示用の動作撮影時の絞り制御を行う。カメラCPU104は、画像信号の明るさを例えばフレーム全体もしくは焦点検出領域の平均輝度値に基づいて判定することができる。
動画モードにおいては、ライブビュー表示用の動画撮影と、記録用の動画撮影とで同じ絞り値を用いるため、S132でカメラCPU104は動画撮影に適した絞り値を選択する。動画撮影時に電子シャッタースピード(露光時間)を短くし過ぎると、ストップモーションの静止画が高速でコマ送りされるような不自然な動画となる。よって、カメラCPU104は、このような現象を回避するように予め定められた電子シャッタースピードをまず選択する。その上でカメラCPU104は、適正露出の動画フレームが撮影できるように、絞り値(Fナンバ)や撮像信号の増幅ゲインを制御する。カメラCPU104は、決定したFナンバを通信端子113および508を介してレンズCPU507に送信する。レンズCPU507は絞り駆動部506を制御し、絞り503の開口径を指定されたFナンバに対応した大きさにする。
S133でカメラCPU104は、撮像素子102から読み出した画像信号表示用画像を生成する。そして、カメラCPU104は、表示用画像を表示用信号に変換し、ファインダ内表示部107もしくは表示部110に表示させる。これにより、ファインダ内表示部107または表示部110へのライブビュー表示が開始する。
S134でカメラCPU104は、動画撮影に適した焦点検出2のサブルーチンを実行する。サブルーチンの詳細は図10(a)で説明する。
S135でカメラCPU104は、S134の焦点検出処理で得られたフォーカスレンズ駆動量および駆動方向を、通信端子113、508を介してレンズCPU507に送信する。レンズCPU507は受信した駆動量および駆動方向に従ってフォーカス駆動部504を駆動する。
S141でカメラCPU104は、操作部105の動作撮影ボタンの操作など、記録用の動画撮影の開始指示が入力されたか否か判定し、入力されたと判定されればS142へ処理を進める。一方、記録用の動画撮影の開始指示が入力されたと判定されなければ、カメラCPU104は、処理をS143に進める。
S142ではカメラCPU104は、記録用の動画データ(1フレーム分)を生成し、記録媒体106に記録する。なお、S131で読み出した動画フレームの解像度が記録用動画像の解像度未満の場合、カメラCPU104はS142で記録用の動画撮影を改めて実行してもよい。S131で読み出した動画フレームの解像度が記録用動画像の解像度以上であれば、カメラCPU104は、S131で読み出され、RAM115に一時的に記憶されている画像信号から記録用の動画データを生成することができる。記録用の動画データは、記録時の符号化処理が異なる他は静止画に対する処理と同様であってよい。
S143でカメラCPU104は、操作部105のシャッタースイッチの操作など、静止画撮影の開始指示が入力されたか否か判定し、入力されたと判定されればS144へ処理を進める。一方、静止画撮影の開始指示が入力されたと判定されなければ、カメラCPU104は、処理をS146に進める。本実施形態では、動画モードでライブビュー表示中もしくは動画記録中に静止画撮影が指示されると、撮像素子101による静止画の記録を可能としている。
S144でカメラCPU104は、静止画撮影2のサブルーチンを実行する。サブルーチンは、S121の静止画撮影1のサブルーチンとは異なり、動画モードが選択された状態で、動画撮影と並行した静止画撮影用のサブルーチンである。詳細は図10(b)で説明する。
S145でカメラCPU104は、S144で取得した画像信号から記録用の静止画像データを生成する。そして、カメラCPU104は、記録用の静止画像データを予め定められた型式のデータファイルに格納して、記録媒体106に記録する。ここでもカメラCPU104は、光電変換部101a、101bごとに読み出した画像信号を記録媒体106に記録する。S145における具体的な処理内容は先に説明したS122と同様である。
S146でカメラCPU104は、操作部105の動作撮影ボタンの操作など、記録用動画撮影の終了指示が入力されたか否かを判断する。終了指示が入力されたと判定されなければカメラCPU104はS131からS145のステップを繰り返し実行する。一方、終了指示が入力されたと判定されればカメラCPU104は動画撮影を終了する。
なお、ここでは便宜上、静止画および動画とも記録が終了すると撮影処理を終了するものとして説明したが、S122およびS146(YES)からS103に戻って次の撮影開始指示を待機してもよい。
<焦点検出1>
図9(a)は図8のS114で実行する「焦点検出1」の詳細を示すフローチャートである。
S151でカメラCPU104は、レンズCPU507から取得した撮像レンズ500のレンズ瞳距離PLが、図5(c)で説明した境界瞳距離PSmidより小さいか否かを判定する。そして、カメラCPU104は、レンズ瞳距離PLが境界瞳距離PSmidよりも小さいと判定されればS152へ、判定されなければS153へ、処理を進める。
S152でカメラCPU104は、静止画撮影用の撮像素子101を用いた焦点検出を実行する。具体的には、カメラCPU104は、撮像素子101の焦点検出領域内の画素から読み出した画像信号から一対の焦点検出用信号(A像信号とB像信号)を生成する。そして、カメラCPU104は、ROM115内のルックアップデーブル(図7(a))から、現在の絞り503のFナンバとレンズ瞳距離PLの組み合わせに対応するシェーディング補正情報を読み出し、A像信号とB像信号にシェーディング補正を適用する。
次にカメラCPU104は、式15に示した相間演算により、シェーディング補正後のA像信号とB像信号の位相差φ1を計算する。そして、カメラCPU104は、Fナンバとレンズ瞳距離PLの組み合わせに対応する変換情報を図7(c)に示したルックアップテーブルから取得し、式17を用いてデフォーカス量DEF1を算出する。
S155でカメラCPU104は、デフォーカス量DEF1をフォーカスレンズ駆動量および駆動方向に変換して焦点検出1を終了する。
一方、S151において現在のレンズ瞳距離PLが境界瞳距離PSmidより小さくない(PL≧PSmid)と判定された場合、カメラCPU104は、S153に処理を進める。
S153でカメラCPU104は、撮像素子102の駆動を開始し、処理をS154に進める。
S154でカメラCPU104は、S152と同様にして、撮像素子102で取得した画像信号からデフォーカス量DEF2を算出する。すなわち、カメラCPU104は、撮像素子102で得られた画像信号から一対の焦点検出用信号(A像信号とB像信号)を生成する。そして、カメラCPU104は、現在のFナンバとレンズ瞳距離PLとの組み合わせに対応する、撮像素子102用のシェーディング補正情報(図7(b))を取得し、A像信号とB像信号にシェーディング補正を適用する。
次にカメラCPU104は、式15に示した相間演算により、シェーディング補正後のA像信号とB像信号の位相差φ2を計算する。そして、カメラCPU104は、Fナンバとレンズ瞳距離PLの組み合わせに対応する変換情報を図7(d)に示したルックアップテーブルから取得し、式17を用いてデフォーカス量DEF2を算出する。
そして、カメラCPU104は、処理をS155に進める。
<静止画撮影1>
図9(b)は、図8のS121で実行する「静止画撮影1」サブルーチンのフローチャートである。
S161でカメラCPU104は、例えば直前に撮影した画像の明るさと予めROM115に記憶されているプログラム線図とに従って決定した静止画撮影用のFナンバを通信端子113、508を介してレンズCPU507に送信する。レンズCPU507は、絞り503の開口が受信したFナンバに対応する大きさになるよう、絞り駆動部506を駆動する。
S162でカメラCPU104は、ライブビュー撮影のために開放していたシャッタ111を閉鎖させ、撮像素子101を遮光する。
S163でカメラCPU104は、撮像素子101で静止画撮影を行なうための電荷蓄積動作を開始する。
S164でカメラCPU104は、例えばFナンバと一緒に決定した静止画撮影用のシャッタースピードに基づき、シャッタ111の先幕および後幕を駆動し、撮像素子101を露光する。
シャッタ111の動作が完了すると、S165でカメラCPU104は撮像素子101の蓄積動作を終了し、各画素の光電変換部に蓄積された電荷を、画素内の電荷蓄積部(フローディングディフュージョン)に転送する。以上が、静止画撮影1の処理である。
このように、静止画モードで静止画撮影を行なう場合には、(メカニカル)シャッタ111で撮像素子101の露光量を制御し、蓄積電荷の転送時には撮像素子101を遮光する。これによりスミアやブルーミングの発生が回避でき、高画質の静止画を得ることができる。
<焦点検出2>
図10(a)は図8のS134で実行する「焦点検出2」の詳細を示すフローチャートである。
S171でカメラCPU104は、レンズCPU507から取得した撮像レンズ500のレンズ瞳距離PLが、図5(c)で説明した境界瞳距離PSmidより大きいか否かを判定する。そして、カメラCPU104は、レンズ瞳距離PLが境界瞳距離PSmidよりも大きいと判定されればS172へ、判定されなければS173へ、処理を進める。
S172でカメラCPU104は、動画撮影を行っている撮像素子102を用いた焦点検出を実行し、デフォーカス量DEF2を算出する。焦点検出時の動作は図9(a)のS154と実質的に同一であるため、説明は省略する。
S172でデフォーカス量DEF2を算出すると、S175でカメラCPU104はS155と同様にしてデフォーカス量DEF2をフォーカスレンズ駆動量および駆動方向に変換し、焦点検出2を終了する。
一方、S171において現在のレンズ瞳距離PLが境界瞳距離PSmidより大きくない(PL≦PSmid)と判定された場合、カメラCPU104は、S173に処理を進める。
S173でカメラCPU104は、撮像素子101の駆動を開始し、処理をS174に進める。
S174でカメラCPU104は、図9(a)のS152と同様にして、デフォーカス量DEF1を算出する。
そしてS175でカメラCPU104は、S155と同様にしてデフォーカス量DEF1をフォーカスレンズ駆動量および駆動方向に変換し、焦点検出2を終了する。
<静止画撮影2>
図10(b)は図8のS144で実行する「静止画撮影2」の詳細を示すフローチャートである。動画撮影中、シャッタ111は開放状態であり、かつ撮像レンズ500の絞り503の開口は動画撮影用のFナンバに対応する大きさに制御されている。
したがって、S181でカメラCPU104は、現在のFナンバ、撮像素子101の設定感度、およびプログラム線図に基づいて、撮像素子101で静止画撮影する際の露光時間を決定する。
S182でカメラCPU104は、シャッタ111は開放状態のまま、撮像素子101における電荷蓄積を開始する(電子シャッタによる露光開始)。
S183でカメラCPU104は、決定した露光時間が経過すると、電荷蓄積動作を終了させる(電子シャッタによる露光終了)。
S184でカメラCPU104は、蓄積した電荷を電荷蓄積部に転送し、静止画撮影2を終了する。
このように、動画モードにおいて、動画撮影と並行して静止画撮影を行なう場合、動画撮影用に制御されているFナンバを維持したまま静止画撮影を行なう。また、シャッタ111は開放状態のまま、電子シャッタによって露光時間を制御する。したがって、動画記録中の静止画撮影によって絞り503の開口径が変化することなく、かつシャッタ111の動作音が録音されることもない。そのため、記録中の動画に影響を与えることなく静止画を撮影することができる。
なお、上述の説明では、動画記録中、静止画撮影の開始指示が入力されていることを条件に静止画撮影を行うものとして説明した。しかし、動画記録中は無条件に静止画撮影を実行するように構成してもよい。この場合、S143の判定処理は不要となる。あるいは、S143を動画記録中に静止画撮影を常に実行する撮影モードが設定されているかどうかの判定処理としてもよい。
<静止画選定処理>
次に、記録媒体106に記録された動画から、ユーザが選択したシーンに対応する静止画を、記録媒体106に記録された静止画から自動選択する動作について説明する。選定処理は、例えば操作部105から選定処理の実行指示が入力されたことに応じて開始されるものとするが、記録媒体106に記録されている動画の再生が一次停止された際など、他の条件に応じて開始されてもよい。
S202でカメラCPU104は、選定処理の実行可否を判定し、可能と判定されればS203へ、可能と判定されなければS207へ、処理を進める。具体的にはカメラCPU104は、記録媒体106に対して動画記録や静止画記録を実行中でなければ選定処理を実行可能と判定する。
S203でカメラCPU104は、静止画選定1のサブルーチンを実行する。静止画選定1では、ユーザが選択したシーンに対応すると推測される静止画から被写体検出を行い、当該被写体検出結果に基づいて記録媒体106に記録された静止画を自動選択する。詳細は図12を用いて後述する。
S204でカメラCPU104は、選定不可フラグがONか否かを判定する。選定不可フラグとは、静止画選定1(S203)または静止画選定2(S205)の処理で設定されるフラグである。選定不可フラグのONは、静止画選定1または静止画選定2の処理において、静止画が選定できなかったことを表す。カメラCPU104は、選定不可フラグがONと判定されればS205に、選定不可フラグがONと判定されなければS208に処理を進める。
S205でカメラCPU104は、静止画選定2のサブルーチンを実行する。静止画選定2では、ユーザが選択したシーンに対応すると推測される動画から被写体検出を行い、当該被写体検出結果に基づいて記録媒体106に記録された静止画を自動選択する。詳細は図14を用いて後述する。
S206でカメラCPU104は、S204と同様に、選定不可フラグがONか否かを判定し、ONと判定されればS207に、判定されなければS208に処理を進める。
S207でカメラCPU104は、表示部110にエラー表示を行う。エラー表示は、静止画の自動選定ができなかった旨をユーザに伝えるための表示であり、例えばメッセージ表示であってよい。操作部105を通じてエラー表示の確認操作が検出されると、カメラCPU104は選定処理を終了する。
S208でカメラCPU104は、表示部110に、自動選定した静止画を表示する。図13(b)に、自動選定した静止画の表示例を示す。選定した静止画が複数ある場合、カメラCPU104は、所定の複数枚を一度に表示する。また、選定した静止画が複数ある場合、カメラCPU104は、選定した複数の静止画の中から1枚と、選定した画像が他にも存在する表示とを行ってもよい。また、表示部110に表示する代わりに、あるいはさらに、カメラCPU104は、記録媒体106にフォルダを作成し、選定した静止画のデータファイルをそのフォルダに保存してもよい。
また、カメラCPU104は、S208において、操作部105を通じたユーザ指示により、選定した静止画を記録媒体106に別ファイルとして保存したり、表示する画像を切り替えたりすることができる。また、選定した静止画が複数ある場合、カメラCPU104は、ユーザが1枚の静止画を選択してチェックマークを付けたり、外部装置に転送したり、別名で保存したり、印刷したりできるようにしてもよい。例えば動画の再生を再開する指示が検出されたり、選定処理の終了指示が検出された場合、カメラCPU104は、選定処理の実行を終了する。
<静止画選定1>
図12は図11のS203で実行する「静止画選定1」の詳細を示すフローチャートである。
S215でカメラCPU104は、表示部110に、記録媒体106に記録されている動画を再生可能に表示する。具体的には、カメラCPU104は、動画を所定のフレーム(例えば先頭フレーム)で再生が一時停止された状態で、再生制御用のユーザインタフェース(UI)とともに表示する。記録媒体106に複数の動画が記録されている場合、カメラCPU104は、表示対象とする動画をユーザに選択させてもよいし、最新の動画を選択してもよい。なお、並行して静止画が記録されていない動画は再生対象から除外する。
再生制御用のユーザインタフェースは、動画再生の開始や一次停止を指示したり、再生位置を変更するためのGUIである。このようなユーザインタフェースは例えばウェブブラウザで動画を表示する際に一般的に用いられている。表示部110はタッチディスプレイであるため、ユーザは表示部110に表示されているGUIをタッチ操作することにより、動画を再生したり、再生を一時停止させたり、動画の再生位置を移動させたりすることができる。
静止画選定1の処理では、最終的に静止画を選定することが目的であるが、まずは動画を表示する。この理由は2つある。1つ目の理由は、静止画より動画の1フレームの方が、記録画素数が少ないことから、動画1フレームの表示の方が、静止画1枚の表示よりも所要時間が短いためである。2つ目の理由は、動画であれば、再生、一時停止機能を用いることが可能であり、ユーザが静止画を1枚1枚見るよりも所望のシーンを容易に検索可能であるためである。
S216でカメラCPU104は、表示部110に対して動画再生を指示するタッチ操作が行われたか否かを判定し、行われたと判定されればS219へ、判定されなければS217へ処理を進める。
S217でカメラCPU104は、表示部110に対して再生開始位置を移動するタッチ操作が行われたか否かを判定し、行われたと判定されればS218へ処理を進め、判定されなければS216に処理を戻す。
S218でカメラCPU104は、操作に応じた位置に再生開始位置を移動させるとともに、再生開始位置に対応するフレームを表示部110に表示し、処理をS216に戻す。
S219でカメラCPU104は、表示開始位置から動画の再生を開始し、処理をS220に進める。カメラCPU104は、記録媒体106から動画データを所定量RAM115に読み込み、動画データを復号して表示部110に表示する。
S220でカメラCPU104は、表示部110に対して再生一時停止を指示するタッチ操作が行われたか否かを判定し、行われたと判定されればS222へ処理を進め、判定されなければS219に処理を戻して動画再生を継続する。
S221でカメラCPU104は、動画の再生を一時停止し、停止位置のフレームを表示して、処理をS222に進める。
S222でカメラCPU104は、表示部110に対して被写体を指示するタッチ操作が行われたか否かを判定する。被写体を指示するタッチ操作は、現在表示中の動画フレームに対する所定のタッチ操作であってよい。
図13(a)は、動画の表示および選択される被写体の例を示す図である。
表示部110の略中央には、一時停止した状態で、動画の1フレームD1が表示されている。表示部110の上部には、フレームD1を含めた前後数フレームが縮小表示されている。フレームD1mは、フレームD1の縮小表示である。再生ボタン255、一時停止ボタン256、表示位置変更スライダ257はタッチ操作可能なGUIである。
フレームD1には被写体H1が含まれている。被写体H1が、時間が経つにつれカメラに向かって近づいてきていることが、上部に縮小表示されているフレームの表示によって分かる。
ユーザは、例えば、表示部110に表示されているフレームD1内の被写体H1の顔部分をタッチすることで、被写体H1を指定することができる。あるいは、顔部分の左上から右下に向かうドラッグ操作によって対角頂点を指定する操作であってもよい。カメラCPU104は、これらの操作によって指定された位置または領域を検出する。そして、カメラCPU104は、表示中のフレームD1において指定された位置や領域に基づいて、被写体領域HSを決定する。例えば表示中のフレームD1で顔領域が検出されており、指定された位置や領域が顔領域内の座標を含んでいる場合、カメラCPU104は、顔領域を被写体領域HSとして決定することができる。
なお、必ずしも顔領域のような特徴領域を被写体領域HSとして決定する必要は無い。フレームD1内の一点が指定された場合には指定された点を含み、指定された点と類似した色を有する画素からなる領域や、指定された点を中心とした所定の矩形範囲を被写体領域HSとして決定してもよい。また、範囲が指定された場合には指定された範囲をそのまま被写体領域HSとして決定してもよい。
なお、図13(a)の表示例は単なる一例であり、例えば縮小表示するフレームの表示位置をフレームD1の左右や上下としてもよい。また、フレームD1と時間的に隣接する前後のフレームを、フレームD1の上下または左右にフレームD1より小さく、フレームD1mより大きく表示してもよい。
図12に戻って、S223でカメラCPU104は、表示中の動画と並行して撮影され、記録媒体106に記録されている静止画の中から、候補画像を複数抽出する。候補画像とは、S224で被写体検出を実行する静止画である。並行記録されている動画と静止画とは、例えば同じフォルダや、関連するフォルダ名を有する別フォルダに記録されているなど、予め定められた方法で関連づけられているものとする。あるいは、動画の記録開始および終了時刻の間に生成された静止画のデータファイルを記録媒体106から探索してもよい。
上述したように、本実施形態のカメラは、動画記録時に連続かつ並行して静止画を記録する撮影モードを有する。この撮影モードにおいては、動画記録中に静止画撮影の開始指示が継続して入力され続けることで、静止画が連続的に撮影され、記録され得る。そのため、動画と並行して記録媒体106に記録されている静止画の数は非常に多くなることが考えられる。そのため、被写体検出を実行する画像をある程度の数に限定するために候補画像を抽出する。
本実施形態においてカメラCPU104は、現在表示中のフレームと撮影時刻が最も近い1つの静止画(静止画Aとする)と、静止画Aの撮影時刻の前後所定時間以内に撮影された静止画とを、候補画像として抽出する。なお、静止画Aと、静止画Aの直近に撮影されたn枚および静止画Aの直後に撮影されたn枚の静止画を抽出するなど、他の条件を用いて抽出してもよい。
S224でカメラCPU104は、S223で抽出した候補画像のそれぞれで被写体領域HSを探索する被写体検出処理を実行する。被写体検出の手法は問わないが、例えば、被写体領域HSをテンプレート画像としたパターンマッチングによって、候補画像内で被写体領域HSと思われる領域を検出することができる。他にも、色情報やエッジの情報といった、被写体領域HSの情報の1つ以上を用いて被写体検出処理を行ってもよい。また、撮影時刻が近い複数の候補画像において、被写体検出に成功したものと失敗したものが混在する場合、被写体検出に成功した画像における被写体領域の位置情報に基づいて、被写体検出に失敗した画像中の被写体領域の位置を予測してもよい。なお、被写体検出に成功したか否かは、被写体検出方法に応じて予め定められた基準に従って判定することができる。例えば、パターンマッチングを用いる場合、最も類似度が高い領域と被写体領域HSとの相関度が閾値以上であれば被写体検出に成功したと判定することができる。
S225でカメラCPU104は、被写体検出に成功した候補画像に対して焦点検出領域を設定する。カメラCPU104は例えば、検出された被写体領域の少なくとも一部を含む、予め定められた大きさの矩形領域を焦点検出領域として設定することができる。
S226でカメラCPU104は、少なくとも1枚の候補画像に対して焦点検出領域を設定できたか否かを判定し、設定できたと判定されればS227へ、判定されなければS230へ処理を進める。なお、候補画像のうち、焦点検出領域を設定できなかったものの割合が予め定められた値(例えば80%)を超える場合、カメラCPU104は、全ての候補画像に焦点検出領域を設定できなかったと判定してもよい。
S227でカメラCPU104は、焦点検出3を実行する。詳細は図10(c)を用いて説明する。焦点検出3は、S225において焦点検出領域を設定した候補画像それぞれに対して行う。
S228でカメラCPU104は、焦点検出領域を設定した候補画像の全てに対して焦点検出3の処理を完了したか否かを判定し、完了したと判定されればS229へ処理を進め、判定されなければS227の焦点検出3の実行を継続する。焦点検出3の処理は、焦点検出領域を設定した候補画像のそれぞれに対して行うため、時間を要する場合がある。そのため、S228で、焦点検出3の処理を終えたか否かの判定を行っている。
S229でカメラCPU104は、焦点検出3の結果、すなわちユーザが指定した被写体に対する合焦度合いに基づいて、候補画像の中から1枚以上の静止画を選定して、焦点検出1の処理を終了する。
例えば、カメラCPU104は、焦点検出3において算出されたデフォーカス量の絶対値が最も小さい(焦点検出領域に最もピントが合っている)画像を含む1枚以上の静止画を選定する。複数の静止画を選定する場合、例えばデフォーカス量の絶対値が閾値以下(合焦度合いが閾値以上)である全ての候補画像を選定したり、デフォーカス量の絶対値が小さい(合焦度合いが高い)順に所定枚数の候補画像を選定したりすることができる。デフォーカス量以外の条件を併用して選定を行ってもよい。カメラCPU104は、例えば選定した静止画の識別情報(例えばファイル名)をRAM115に記憶する。
なお、焦点検出3によって算出されたデフォーカス量がいずれも予め定められた閾値を超える場合、カメラCPU104は、静止画を選定せず、処理をS230に進めてもよい。
S230でカメラCPU104は、例えばRAM115に記憶した変数である選定不可フラグをON(例えば値1)にして、焦点検出1の処理を終了する。
<静止画選定2>
図14は、図11のS205で実行する「静止画選定2」の詳細を示すフローチャートである。静止画選定2は、静止画選定1で静止画が選定できなかった場合に実行される。
S244でカメラCPU104は、現在表示中の動画から、候補フレームを複数抽出する。候補フレームとは、S245で被写体検出を実行するフレームである。具体的には、カメラCPU104は、静止画選定1で抽出した候補画像に対応してユーザの指示したタイミングに基づいて候補フレームを抽出する。タイミングが撮影時刻である場合、静止画選定1で抽出した候補画像の撮影時刻範囲を包含する時刻範囲に撮影された動画フレームを候補フレームとして抽出する。例えば、候補画像の最も早い撮影時刻に対応する動画フレームから、候補画像の最も遅い撮影時刻に対応する動画フレームまでを候補フレームとして抽出することができる。なお、前後数フレームずつ追加してもよい。あるいは、個々の候補画像の撮影時刻に対応するフレームと、前後の所定数フレームとを候補フレームとして抽出してもよい。
S245でカメラCPU104は、S244で抽出した候補フレームのそれぞれで、静止画選定1のS222で指定された被写体領域HSを探索する被写体検出処理を実行する。被写体検出処理の詳細はS224と同様であってよいため、説明を省略する。
S246でカメラCPU104は、S245における候補フレーム(動画フレーム)での被写体検出結果を用い、静止画選定1のS223で抽出した候補画像(静止画)に対して焦点検出領域を設定する。静止画選定2は、静止画選定1において候補画像に対して焦点検出領域が設定できなかった場合に実行される。静止画選定1で焦点検出領域が設定できない原因の1つとして、静止画の単位時間あたりの撮影枚数が少ないことが挙げられる。これに対して動画は静止画よりも記録画素数が少ないため、動画の単位時間あたり撮影枚数は、静止画の単位時間あたりの撮影枚数よりも多い。そのため、S245で被写体検出を動画フレームに対して行うことで、被写体検出可能である確率を上げることができる。
S246でカメラCPU104は、例えば候補画像と撮影時刻が同じ、もしくは近い候補フレームの被写体検出位置に基づいて、候補画像に焦点検出領域を設定する。カメラCPU104は、撮影時刻が同じ候補フレームで被写体検出が成功していれば、検出された被写体領域の位置をそのまま用いて候補画像に焦点検出領域を設定する。また、カメラCPU104は、撮影時刻が同じ候補フレームで被写体検出が失敗していれば、撮影時刻が最も近く、かつ撮影時刻の差が閾値未満の候補フレームで検出された被写体領域の位置を用いて候補画像に焦点検出領域を設定する。この際、候補フレームで検出された被写体領域の位置をそのまま用いて焦点検出領域を設定してもよいし、被写体領域の検出位置の経時変化に基づいて予測した位置を用いて焦点検出領域を設定してもよい。撮影時刻の差が所定時間未満の候補フレームのいずれも被写体検出に失敗している候補画像には焦点検出領域を設定しない。
以後のS247〜S252は、図12のS226〜S231と同一の処理であるため、説明は省略する。
<焦点検出3>
図14は図11のS227および図12のS248で実行する「焦点検出3」の詳細を示すフローチャートである。
S301でカメラCPU104は、焦点検出領域が設定された候補画像に対して焦点検出を実行する。
まず、カメラCPU104は、記録媒体106に記録されている、候補画像に対応する、光電変換部101a、101bごとの画像信号を特定する。そして、カメラCPU104は、光電変換部101a、101bごとの画像信号のうち、候補画像に設定された焦点検出領域内の画像信号から、一対の焦点検出用信号(A像信号とB像信号)を生成する。
そして、カメラCPU104は、ROM115内のルックアップデーブル(図7(a))から、現在の絞り503のFナンバとレンズ瞳距離PLの組み合わせに対応するシェーディング補正情報を読み出し、A像信号とB像信号にシェーディング補正を適用する。
次にカメラCPU104は、式15に示した相間演算により、シェーディング補正後のA像信号とB像信号の位相差φ3を計算する。そして、カメラCPU104は、Fナンバとレンズ瞳距離PLの組み合わせに対応する変換情報を図7(c)に示したルックアップテーブルから取得し、式17を用いてデフォーカス量DEF3を算出する。
S302でカメラCPU104は、デフォーカス量DEF3を、候補画像の識別情報と対応付けて例えばRAM115に保存し、焦点検出3を終了する。なお、上述したように、焦点検出3は候補画像ごとに実行される。
以上説明したように、本実施形態では、動画と静止画を並行して記録した場合に、記録された動画を用いて対応する静止画が自動的に選択される。より具体的には、動画中で指定されたフレームに対応してユーザの指示したタイミング(例えば撮影時刻)に基づいて抽出した静止画のうち、フレーム内で指定された領域における合焦度合いが予め定め得られた閾値以上である静止画を自動的に選択するようにした。そのため、動画と並行して記録されている静止画が膨大な数であっても、任意のシーンにおける任意の被写体に十分合焦した静止画を容易に見つけることができる。また、動画に基づいて所望のシーンを大まかに指定することで、当該シーンの主要な被写体の合焦状態がより良い静止画を容易に見つけることができる。
(その他の実施形態)
上述の実施形態では焦点検出に用いる撮像素子を選択するための判断基準として、センサ瞳距離を用いていたが、これに限定されるものではない。例えば、図7(a),(b)に示したシェーディング補正情報を判断基準に用いることも可能である。
図7(a),(b)において、焦点検出時のFナンバがF2、レンズ瞳距離がレンズ瞳距離2の場合、撮像素子101のシェーディング補正情報は図7(a)よりFs122、撮像素子102のシェーディング補正情報は図7(b)よりFs222である。そして、Fs122とFs222の値を比較することにより、A像信号とB像信号のレベル差を推定することが可能である。すなわち焦点検出用信号の補正のために記憶された情報を比較し、その結果に基づいて焦点検出に用いる撮像素子を選択するという実施形態も可能である。
また、上述した選定処理を実施可能な任意の電子機器において本発明を実施することができる。この場合、上述の実施形態で説明した撮影や記録に係る構成は必須でない。また、動画や静止画の記録先も特に制限はなく、選定処理を実施する機器からアクセス可能な任意の場所にある任意の種類の記録媒体であってよい。また、候補画像に対する焦点検出処理(焦点検出3)を位相差検出方式で行う場合について説明したが、コントラスト方式を用いてもよい。この場合、焦点検出領域内の画素について、高周波成分の大きさなど、公知のコントラスト評価値を求め、デフォーカス量の代わりにコントラスト評価値に基づいて焦点検出領域の合焦度合いを判定すればよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。