以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、デジタルカメラ10の構成を説明する図である。デジタルカメラ10は、1つのシーンについて複数の視点数の画像を一度の撮影により生成する。互いに視点の異なるそれぞれの画像を視差画像と呼ぶ。
デジタルカメラ10は、撮影光学系としての撮影レンズ20を備え、光軸21に沿って入射する被写体光束を撮像素子100へ導く。デジタルカメラ10は、被写体光束の周辺を遮光する絞り22をさらに備える。撮影レンズ20および絞り22は、デジタルカメラ10に対して一体的に着脱できる交換式レンズであっても構わない。デジタルカメラ10は、撮像素子100、制御部201、A/D変換回路202、メモリ203、駆動部204、メモリカードIF207、操作部208、表示部209、LCD駆動回路210、AFセンサ211および画像処理部205を備える。
なお、図示するように、撮像素子100へ向かう光軸21に平行な方向をZ軸プラス方向と定め、Z軸と直交する平面において紙面手前へ向かう方向をX軸プラス方向、紙面上方向をY軸プラス方向と定める。当該座標軸はデジタルカメラ10に固定された座標軸であって、図1における撮影における構図との関係はX軸が水平方向、Y軸が垂直方向となる。以降のいくつかの図においては、図1の座標軸を基準として、それぞれの図の向きがわかるように座標軸を表示する。
撮影レンズ20は、複数の光学レンズ群から構成され、シーンからの被写体光束をその焦点面近傍に結像させる。撮影レンズ20は、撮像素子100に対して一つまたは複数のレンズを、X軸周りおよびY軸周りに傾けることができる。これにより、撮像素子100の撮像面に共役な合焦面を、撮像素子100に対してX軸周りおよびY軸周りに傾けた、アオリによる撮影をすることができる。そのようなレンズは、チルトレンズと呼ばれることがある。図1では撮影レンズ20を説明の都合上、瞳近傍に配置された仮想的な1枚のレンズで代表して表している。
絞り22は、撮影光学系の瞳近傍に配され、撮像素子100へ入射する被写体光束の周辺領域を遮光する。絞り22の絞り量は可変であって、制御部201からの制御により設定される。当該絞り22の一例は虹彩絞りであるが、これに限られない。
撮像素子100は、撮影光学系の焦点面近傍に配置されている。撮像素子100は、二次元的に複数の光電変換素子が配列された、例えばCCD、CMOSセンサ等のイメージセンサである。撮像素子100は、駆動部204によりタイミング制御されて、受光面上に結像された被写体像を画像信号に変換してA/D変換回路202へ出力する。
A/D変換回路202は、撮像素子100が出力する画像信号をデジタル画像信号に変換してメモリ203へ出力する。画像処理部205は、メモリ203をワークスペースとして種々の画像処理を施し、画像データを生成する。
AFセンサ211は、例えば、被写体空間に対して複数の測距点が設定された位相差センサである。AFセンサ211は、それぞれの測距点において被写体像のデフォーカス量を検出する。なお、撮像素子100がAFセンサを兼ねてもよく、その場合には別個のAFセンサ211を設けなくてよい。
制御部201は、デジタルカメラ10を統合的に制御する。例えば、設定された絞り値に応じて絞り22の開口を調整し、AFセンサ211のデフォーカス量に応じて撮影レンズ20を光軸方向に進退させる。また、撮影レンズ20の位置を検出して、撮影レンズ20の焦点距離、フォーカスレンズ位置を把握する。駆動部204に対してタイミング制御信号を送信し、撮像素子100から出力される画像信号が画像処理部205で画像データに処理されるまでの一連のシーケンスを管理する。
画像処理部205は、選択された画像フォーマットに従って画像データを調整するなどの画像処理一般の機能も担う。生成された画像データは、LCD駆動回路210により表示信号に変換され、表示部209に表示される。また、メモリカードIF207に装着されているメモリカード220に記録される。
一連の撮影シーケンスは、操作部208が撮影者の操作を受け付けて、制御部201へ操作信号を出力することにより開始される。撮影シーケンスに付随するAF,AE等の各種動作は、制御部201に制御されて実行される。例えば、制御部201は、AFセンサ211の検出信号を解析して、撮影レンズ20の一部を構成するフォーカスレンズを移動させる合焦制御を実行する。
図2は、撮像素子100の一部を拡大した様子を概念的に表す概念図である。画素領域には2000万個以上もの画素がマトリックス状に配列されている。本実施形態においては、隣接する8画素×8画素の64画素が一つの基本格子110を形成する。基本格子110は、2×2の4画素を基本単位とするベイヤー配列を、Y軸方向に4つ、X軸方向に4つ含む。なお、図示するように、ベイヤー配列においては、左上画素と右下画素に緑フィルタ(Gフィルタ)、左下画素に青フィルタ(Bフィルタ)、右上画素に赤フィルタ(Rフィルタ)が配される。
基本格子110は、視差画素と視差なし画素を含む。視差画素は、撮影レンズ20を透過する入射光束のうち、光軸から偏位した部分光束を受光する画素である。視差画素には、当該部分光束のみを透過させるように、画素中心から偏位した偏位開口を有する開口マスクが設けられている。開口マスクは、例えば、カラーフィルタに重ねて設けられる。本実施形態においては、開口マスクにより、部分光束が画素中心に対して−X側に到達するように規定された視差Lt画素と、部分光束が画素中心に対して+X側に到達するように規定された視差Rt画素の2種類が存在する。一方、視差なし画素は、開口マスクが設けられていない画素であり、撮影レンズ20を透過する入射光束の全体を受光する画素である。
なお、視差画素は、光軸から偏位した部分光束を受光するにあたり、開口マスクに限らず、受光領域と反射領域が区分された選択的反射膜、偏位したフォトダイオード領域など、様々な構成を採用し得る。すなわち、視差画素は、撮影レンズ20を透過する入射光束のうち、光軸から偏位した部分光束を受光できるように構成されていれば良い。
基本格子110内の画素をPIJで表す。例えば、−Xおよび+Yの端の画素はP11であり、+Xおよび−Yの端の画素はP81である。図に示すように、視差画素は以下のように配列されている。
P11…視差Lt画素+Gフィルタ(=G(Lt))
P51…視差Rt画素+Gフィルタ(=G(Rt))
P32…視差Lt画素+Bフィルタ(=B(Lt))
P63…視差Rt画素+Rフィルタ(=R(Rt))
P15…視差Rt画素+Gフィルタ(=G(Rt))
P55…視差Lt画素+Gフィルタ(=G(Lt))
P76…視差Rt画素+Bフィルタ(=B(Rt))
P27…視差Lt画素+Rフィルタ(=R(Lt))
他の画素は視差なし画素であり、視差無し画素+Rフィルタ、視差なし画素+Gフィルタ、視差無し画素+Bフィルタのいずれかである。
撮像素子100の全体でみた場合に、視差画素は、Gフィルタを有する第1群と、Rフィルタを有する第2群と、Bフィルタを有する第3群のいずれかに区分され、基本格子110には、それぞれの群に属する視差Lt画素および視差Rt画素が少なくとも1つは含まれる。図の例のように、これらの視差画素および視差なし画素が、基本格子110内においてランダム性を有して配置されると良い。ランダム性を有して配置されることにより、色成分ごとの空間分解能に偏りを生じさせることなく、視差画素の出力としてRGBのカラー情報を取得することができるので、高品質な視差画像データが得られる。
図3は、2D画像データと視差画像データの生成処理の例を説明する図である。図3を用いて、撮像素子100から出力されるRAW元画像データから、2D画像データと視差画像データを含むRAW画像データセットを生成する処理の概念を説明する。
基本格子110における視差画素および視差なし画素の配列からもわかるように、撮像素子100のデジタル画像信号をその画素配列に一致させてそのまま羅列しても、特定の像を表す画像データにはならない。撮像素子100のデジタル画像信号を、同一に特徴付けられた画素グループごとに分離して寄せ集めてはじめて、その特徴に即した一つの像を表す画像データが形成される。例えば、視差Rt画素と視差Lt画素をそれぞれ寄せ集めると、互いに視差を有する左右の視差画像を示す視差画像データが得られる。このように、同一に特徴付けられた画素グループごとに分離して寄せ集められたそれぞれの画像データを、プレーンデータと呼ぶ。
画像処理部205は、撮像素子100の画素配列順にそのデジタル画像信号が羅列されたRAW元画像データを受け取り、デジタル画像信号を画素値として複数のプレーンデータに分離するプレーン分離処理を実行する。図の左列は、2D画像を示す2D−RGBプレーンデータの生成処理の例を示す。
2D−RGBプレーンデータを生成するにあたり、画像処理部205は、まず視差画素の画素値を除去して、空格子とする。そして、空格子となった画素値を、周辺画素の画素値を用いて補間処理により算出する。例えば、空格子P11の画素値は、斜め方向に隣接するGフィルタ画素の画素値である、P−1−1、P2−1、P−12、P22の画素値を平均化演算して算出する。また、例えば空格子P63の画素値は、X方向およびY方向に1画素飛ばして隣接するRフィルタの画素値である、P43、P61、P83、P65の画素値を平均化演算して算出する。同様に、例えば空格子P76の画素値は、X方向およびY方向に1画素飛ばして隣接するBフィルタの画素値である、P56、P74、P96、P78の画素値を平均化演算して算出する。
このように補間された2D−RGBプレーンデータは、ベイヤー配列を有する通常の撮像素子の出力と同様であるので、その後は2D画像データとして各種処理を行うことができる。すなわち、公知のベイヤー補間を行って、各画素にRGBデータの揃ったカラー画像データを生成する。画像処理部205は、静止画データを生成する場合にはJPEG等の、動画データを生成する場合にはMPEG等の、予め定められたフォーマットに従って一般的な2D画像としての画像処理を行う。
本実施形態においては、画像処理部205は、2D−RGBプレーンデータをさらに色ごとに分離し、上述のような補間処理を施して、基準画像データとしての各プレーンデータを生成する。すなわち、緑色の基準画像プレーンデータとしてのGnプレーンデータ、赤色の基準画像プレーンデータとしてのRnプレーンデータ、および青色の基準画像プレーンデータとしてのBnプレーンデータの3つを生成する。
図の右列は、視差画素データとしての2つのGプレーンデータ、2つのRプレーンデータおよび2つのBプレーンデータの生成処理の例を示す。2つのGプレーンデータは、左視差画像データとしてのGLtプレーンデータと右視差画像データとしてのGRtプレーンデータであり、2つのRプレーンデータは、左視差画像データとしてのRLtプレーンデータと右視差画像データとしてのRRtプレーンデータであり、2つのBプレーンデータは、左視差画像データとしてのBLtプレーンデータと右視差画像データとしてのBRtプレーンデータである。
GLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からG(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P11とP55の2つの画素値が残る。そこで、基本格子110をXY面内で4等分し、−Xおよび+Y側の16画素分をP11の出力値で代表させ、+Xおよび−Y側の16画素分をP55の出力値で代表させる。そして、+Xおよび+Y側の16画素分並びに−Xおよび−Y側の16画素分は、X方向およびY方向に隣接する周辺の代表値を平均化演算して補間する。すなわち、GLtプレーンデータは、16画素単位で一つの値を有する。
同様に、GRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からG(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P51とP15の2つの画素値が残る。そこで、基本格子110をXY面内で4等分し、+Xおよび+Y側の16画素分をP51の出力値で代表させ、−Xおよび−Y側の16画素分をP15の出力値で代表させる。そして、−Xおよび+Y側の16画素分並びに+Xおよび−Y側の16画素分は、X方向およびY方向に隣接する周辺の代表値を平均化演算して補間する。すなわち、GRtプレーンデータは、16画素単位で一つの値を有する。このようにして、2D−RGBプレーンデータよりは解像度の低いGLtプレーンデータとGRtプレーンデータを生成することができる。
RLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からR(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P27の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。同様に、RRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からR(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P63の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。このようにして、2D−RGBプレーンデータよりは解像度の低いRLtプレーンデータとRRtプレーンデータが生成される。この場合、RLtプレーンデータとRRtプレーンデータの解像度は、GLtプレーンデータとGRtプレーンデータの解像度よりも低い。
BLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からB(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P32の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。同様に、BRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からB(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P76の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。このようにして、2D−RGBプレーンデータよりは解像度の低いBLtプレーンデータとBRtプレーンデータが生成される。この場合、BLtプレーンデータとBRtプレーンデータの解像度は、GLtプレーンデータとGRtプレーンデータの解像度よりも低く、RLtプレーンデータとRRtプレーンデータの解像度と同等である。
本実施形態においては、画像処理部205は、これらのプレーンデータを用いて、左側視点のカラー画像データおよび右側視点のカラー画像データを生成する。さらに、上記プレーンデータを時系列的に並べて動画を生成してもよい。
図4は、デフォーカスの概念を説明する図である。視差Lt画素および視差Rt画素は、レンズ瞳の部分領域としてそれぞれ光軸対象に設定された2つの視差仮想瞳のいずれかから到達する被写体光束を受光する。本実施形態の光学系においては、実際の被写体光束はレンズ瞳の全体を通過するので、視差画素に到達するまでは、視差仮想瞳に対応する光強度分布が互いに区別されるのではない。しかし、視差画素は、それぞれが有する開口マスクの作用により、視差仮想瞳を通過した部分光束のみを光電変換した画像信号を出力する。したがって、視差画素の出力が示す画素値分布は、それぞれ対応する視差仮想瞳を通過した部分光束の光強度分布と比例関係にあると考えても良い。
図4(a)で示すように、被写体である物点が焦点位置に存在する場合、いずれの視差仮想瞳を通った被写体光束であっても、それぞれの視差画素の出力は、対応する像点の画素を中心として急峻な画素値分布を示す。像点付近に視差Lt画素が配列されていれば、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する。また、像点付近に視差Rt画素が配列されていても、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する。すなわち、被写体光束がいずれの視差仮想瞳を通過しても、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する分布を示し、それぞれの分布は互いに一致する。
一方、図4(b)に示すように、物点が焦点位置からずれると、物点が焦点位置に存在した場合に比べて、視差Lt画素が示す画素値分布のピークは、像点に対応する画素から一方向に離れた位置に現れ、かつその出力値は低下する。また、出力値を有する画素の幅も広がる。視差Rt画素が示す画素値分布のピークは、像点に対応する画素から、視差Lt画素における一方向とは逆向きかつ等距離に離れた位置に現れ、同様にその出力値は低下する。また、同様に出力値を有する画素の幅も広がる。すなわち、物点が焦点位置に存在した場合に比べてなだらかとなった同一の画素値分布が、互いに等距離に離間して現れる。また、図4(c)に示すように、さらに物点が焦点位置からずれると、図4(b)の状態に比べて、さらになだらかとなった同一の画素値分布が、より離間して現れる。つまり、物点が焦点位置から大きくずれる程、ぼけ量と視差量が増すと言える。別言すれば、デフォーカスに応じて、ぼけ量と視差量は連動して変化する。すなわち、ぼけ量と視差量は、一対一に対応する関係を有する。なお、視差量の符号は、焦点位置よりも物点が撮像素子100側にある場合に正とし、焦点位置よりも物点が撮像素子100から遠くなる側にある場合を負とする。
また、図4(b)(c)は、物点が焦点位置から遠ざかる方向へずれる場合を示すが、物点が焦点位置から近づく方向へずれる場合は、図4(d)に示すように、図4(b)(c)と比べて、視差Lt画素が示す画素値分布と視差Rt画素が示す画素値分布の相対的な位置関係が逆転する。このようなデフォーカス関係により、視差画像を鑑賞するときに鑑賞者は、焦点位置より奥に存在する被写体を遠くに視認し、手前に存在する被写体を近くに視認する。
図4(b)(c)で説明した画素値分布の変化をそれぞれグラフ化すると、図5のように表される。図において、横軸は画素位置を表し、中心位置が像点に対応する画素位置である。縦軸は各画素の出力値(画素値)を表す。この出力値は上述の通り実質的に光強度に比例する。
分布曲線804と分布曲線805は、それぞれ図4(b)の視差Lt画素の画素値分布と視差Rt画素の画素値分布を表す。図からわかるように、これらの分布は中心位置に対して線対称の形状を成す。また、これらを足し合わせた合成分布曲線806は、図4(b)の状況に対する視差なし画素の画素値分布、すなわち被写体光束の全体を受光した場合の画素値分布と略相似形状を示す。
分布曲線807と分布曲線808は、それぞれ図4(c)の視差Lt画素の画素値分布と視差Rt画素の画素値分布を表す。図からわかるように、これらの分布も中心位置に対して線対称の形状を成す。また、これらを足し合わせた合成分布曲線809は、図4(c)の状況に対する視差なし画素の画素値分布と略相似形状を示す。
図6から図8は、撮影レンズ20のアオリと視差との関係を示す。なお、説明の都合上、図6(a)、図7(a)および図8(a)には撮影レンズ20に対する視差仮想瞳と当該視差仮想瞳を通過する光束の外包線を示しているが、図6(b)、図7(b)および図8(b)には視差仮想瞳を通過する光束の主光線を示している。
図6(a)は、撮影レンズ20にアオリを用いていない場合のフォーカスの状態をX方向からみた概念図である。図6(b)はそれを−Y方向からみた概念図である。図6(a)の状態において、物点M0、M1が同じXY面内にあり、当該XY面が合焦面であるとする。すなわち、物点M0、M1が撮像素子100と光学的に共役な面にあるとする。
この場合には、図6(b)に示すように、物点M0からの被写体光束が撮像素子100上の位置X0で互いに近接する視差Rt画素および視差Lt画素に入射する。よって、撮像素子100を用いた視差画像において物点M0の画像はX方向の視差量を持たない。同様に、物点M1からの被写体光束が撮像素子100上の位置X1で互いに近接する視差Rt画素および視差Lt画素に入射するので、物点M1の画像はX方向の視差量を持たない。
図7(a)は、撮影レンズ20にアオリを用いた場合のフォーカスの状態をX方向からみた概念図であり、図7(b)はそれを−Y方向からみた概念図である。アオリとして、光軸をX軸周りに−Y側に傾ける(すなわち、図中の矢印方向)、いわゆる下チルトを例示した。
撮影レンズ20の下チルトにより、図7(a)に示すように合焦面はX軸周りに傾く。下チルト後に合焦面を物点M0に合せると、物点M1の方は合焦点面からずれる。特に、物点M1が物点M0よりも−Y方向に位置することに対応して、物点M1よりも合焦面が撮像素子100の側に来る。従って、物点M1からの被写体光束は撮像素子100よりも手前で結像し、撮像素子100へは、ぼけた範囲X2に入射する。
これは図7(b)で示すように、物点M1の被写体光束が撮像素子100の位置X2Lの視差Lt画素に入射するとともに、当該位置X2Lとは離れた位置X2Rの視差Rt画素に入射することに対応する。すなわち、下チルトにより、物点M1の画像の視差量の絶対値を0から増やしたことになる(合焦点よりも後なので視差量の値は負)。
図8(a)は、図7(a)と同じアオリを用いた場合の、他の物点M3のフォーカスの状態をX方向からみた概念図である。図8(b)は図8(a)を−Y方向からみた概念図である。
物点M3は物点M1よりもZ方向すなわち撮像素子100側にある。よって、アオリを用いない場合に、合焦面を物点M0に合せたときの、撮像素子100を用いた視差画像において物点M3の画像はX方向の視差量を有する。
撮影レンズ20が下チルトした状態において物点M0上に合焦面が位置しているときに、物点M3も当該合焦面にあるとする。図8(a)(b)に示すように、物点M3の被写体光束は、撮像素子100上の位置X3で互いに近接する視差Rt画素および視差Lt画素に入射する。よって、物点M3が物点M1よりも撮像素子100側にあるにも関わらず、物点M3の画像はX方向の視差量を持たない。すなわち、下チルトにより、物点M3の画像の視差量の絶対値を0へ減らしたことになる。
図9は、撮像素子100からの距離(−Z)と視差量との関係を示す。撮影レンズ20のアオリがない状態において、合焦面を物点M0に合せると、距離と視差量との関係は実線D0のようになる。この場合、視差量は距離によって略決まり、Y方向の位置、より具体的には撮像素子100からの向きにほとんど依存しない。
これに対し、撮影レンズ20を下チルトすると、Y方向の位置、より具体的には撮像素子100からの向きにより、距離と視差量との関係が異なる。例えば、物点M3の方向について、距離と視差量との関係は実線D1のようになる。図9に示す例で、物点M3に対する視差量が正の値から0へ変化した。
以上、図6から図9の説明のように、撮影レンズ20の下チルトにより視差画像上の上下方向に沿って視差量を変化させることができる。撮影レンズ20の上チルトにより、視差画像上の上下方向に沿って視差量を下チルトとは逆に変化させることができる。同様に、撮影レンズ20の左右スイングにより、視差画像上の左右方向に沿って視差量を変化させることができる。
このように、撮影レンズ20にアオリを用いることにより、撮像素子100による撮像画像における視差量を変化させることができる。よって、本実施形態においては、視差量が予め定められた範囲にない場合に、アオリを用いて当該視差量を調整すべき旨を警告する。
図10は、画像処理部205の機能ブロックを示す。画像処理部205は、図1から図5で説明した機能に加えて、画像取得部240、視差量判断部242、警告部244、光学系判断部248、テーブル格納部246を有する。なお、図10に示す各ブロックは、CD−ROM等の媒体またはネットワークを介してデジタルカメラ10にインストールされたコンピュータプログラムにより実行されてもよい。
画像取得部240は、メモリ203またはメモリカード220から視差量を含む視差画像を取得する。視差量判断部242は、画像取得部240から取得された視差画像に含まれる視差量が予め定められた範囲にあるか否かを判断する。光学系判断部248は、撮影レンズ20でアオリが可能であるか否かを判断する。テーブル格納部246は、画像上の位置とアオリの方向とが対応付けられた対応テーブルを格納する。
警告部244は、視差量判断部242により視差量が予め定められた範囲にないと判断された場合に、テーブル格納部246の上記対応テーブルを参照し、アオリを用いて撮像すべき旨を表示部209上に警告する。この場合に警告部244は、光学系判断部248により撮影レンズ20でアオリが可能であると判断された場合に警告し、可能であると判断されなかった場合に警告しない。
図11は、テーブル格納部246に格納される対応テーブルを視覚的に示したアオリマップ330を示す。アオリマップ330では視差画像に対応する領域が9分割されており、分割された領域のそれぞれに、撮像レンズ20のアオリの方向が対応付けられている。
これにより、視差量が最大値となる視差画像上の位置と、当該位置における視差量を低減するアオリの方向とが対応付けられる。視差画像上の位置と当該位置における視差量を低減するアオリの方向とは、実験的または解析的に特定される。
なお、対応テーブルにおける、視差画像に対応する領域の分割数は9個に限られず、それより多くても少なくてもよい。また、アオリの方向に加えてアオリの量も対応付けられていてもよい。アオリの量も実験的または解析的に特定される。
図12は画像処理部205の動作の一例を示すフローチャートであり、図13は当該フローチャートで用いられる視差量の算出の一例を概念的に示す概念図である。当該動作は、操作部208が撮影者の操作を受け付けたことにより、撮像素子100の画像信号に基づいて図3の視差画像データが生成されたときに開始する。
画像取得部240は、メモリ203またはメモリカード220から、撮像素子100の画像信号に基づいて生成された視差画像データを取得する(S100)。視差量判断部242は、画像取得部240から取得された視差画像データに含まれる視差量を算出する(S102)。
視差量を算出する方法の一例は、図13に示す視差マップ306を用いる方法である。図13に示す例において、視差量判断部242は、視差画像データのうちの、GLtプレーンデータおよびGRtプレーンデータに基づいて、視差マップ306を生成する。
視差量判断部242は、対象ブロックに含まれる画素のうち画素値を有する対象画素311を決定し、この対象画素311に対して局所ウィンドウ312を定める。そして、局所ウィンドウ312を基準として2画像間でマッチング処理を行い、対象画素311を含む対象ブロックにおける視差画素量を決定する。具体的には、視差量判断部242は、Ltプレーン画像上の局所ウィンドウ312に対応してGRtプレーンデータが示すGRtプレーン画像上に局所ウィンドウ314を設定して、局所ウィンドウ314を局所ウィンドウ312に対して相対的にずらしながら互いにマッチングの良い画像領域を探索する。そして、マッチングが良いと判断される局所ウィンドウ314の位置を定め、その中心座標である探索画素313の座標値を算出する。視差画素量は、対象画素311の座標値と探索画素313の座標値との差を視差ブロック単位に換算して決定される。そして、視差量判断部242は、GLtプレーン画像上において対象画素311を左上から右下まで順次走査しながら上記のマッチング処理を逐次実行して、GLtプレーン画像とGRtプレーン画像の視差画素量を算出する。
視差量判断部242は、当該視差画素量を対象画素311の座標に対応付けることにより、視差マップ306を生成する。視差マップ306は、上述の算出結果として、例えば図の例において、各被写体である少年301、少女302、女性303および背景304の各被写体領域に対応した視差画素量として表現される。図13の例においては、少年301に合焦していることに対応して、少年301の領域では視差画素量が0となり、少年301より撮像素子100側に存在する少女302の領域では+1、撮像素子100から遠い側に存在する女性303の領域では−1、さらに遠方の背景は−4の値を示している。なお、視差画素量は視差量の一例であり、符号は上記図9等と同じとした。
上記ステップS102において、視差量判断部242は、上記視差マップ306における視差画素量の最大値を特定する。さらに、視差量判断部242は、当該最大値が予め定められた閾値より大きいか否かを判断する(S104)。
ステップS104において当該最大値が予め定められた閾値より大きいと判断された場合に(S104:Yes)、光学系判断部248は、撮影レンズ20でアオリが可能であるか否かを判断する(S106)。この場合に、光学系判断部248は制御部201を介して撮影レンズ20のメモリから、アオリが可能であるか否かの情報を読み出す。なお、制御部201自体が撮影レンズ20のアオリが可能であるか否かの情報をすでに有している場合には、制御部201からの情報に基づいて判断してもよい。
ステップS106においてアオリが可能であると判断された場合に(S106:Yes)、視差量判断部242は、閾値よりも大きい視差画素量を有する部分の、視差画像上における位置を特定する(S107)。この場合に、視差画像における位置と視差マップ306における位置とが対応しているので、視差量判断部242は、上記ステップS102で特定した最大値を有する、視差マップ306の位置を、視差画像上における位置として警告部244に出力する。
警告部244は、視差量判断部242により特定された上記位置に基づいて、撮影レンズ20のアオリの方向を特定する(S108)。この場合に、警告部244は、テーブル格納部246の上記対応テーブルを参照してアオリの方向を特定する。例えば、アオリを用いない場合において図8(a)に示した物点M3の視差量が最大値である場合に、図11に示すように、アオリの方向を「下チルト」に特定する。なお、視差量判断部242により特定された位置が複数個ある場合、または、広がりを持つ領域である場合には、例えば、それらの図形的な重心位置に基づいてアオリの方向を特定してもよい。
警告部244は、ステップS108で特定したアオリの方向と共に、アオリを用いて撮像すべき旨を、LCD駆動回路210を介して表示部209に表示する(S110)。当該ステップS110の後、上記ステップS104またはS106の判断がNoの場合に、スローチャートによる動作を終了する。
以上、本実施形態によれば、視差画像における視差量が予め定められた範囲でない場合に、アオリを用いる旨を警告するので、撮影者にアオリを用いて視差量を調整すべき旨を促進することができる。アオリを用いて視差量を調整するので、絞り等で視差量を調整する場合に比べて、撮影者が希望している露出等の撮像条件を大きく変更せずに、視差量を調整した撮像画像を得ることができる。また、視差画素における開口の偏りの方向、すなわちY軸周りのアオリにより、視差画素の感度の非対称性を補償することもできる。
さらに、図10から図13に記載の形態によれば、アオリの方向も表示されるので、被写体に依存した視差量の調整ができる。さらに、撮影者が容易にアオリを用いることができる。
また、図10から図13に記載の形態によれば、視差量の最大値が閾値よりも大きい場合にアオリを用いる旨を警告する。よって、再生時に画面からの飛び出しが大きくて観察者に不快感を与える視差画像に代えて、アオリを用いて視差量を抑えた視差画像を生成することを促すことができる。
「視差画素量の最大値が予め定められた閾値より大きいか否か」は、「視差量が予め定められた範囲にあるか否か」の一例である。「視差量が予め定められた範囲にあるか否か」の判断の例はこれに限られない。他の例として、「視差画素量の絶対値の最大値が予め定められた閾値より大きいか否か」を判断してもよい。さらに他の例として、「視差画素量の最大値と最小値との差が予め定められた閾値より大きいか否か」を判断してもよい。さらに、図13の視差画素量に代えて、他の方法で算出された視差量を用いてもよい。
図10から図13に記載の形態によれば、アオリの方向は、視差画素量の最大値の、視差画像上の位置に基づいて特定される。アオリの方向の決定の方法はこれに限られない。他の例として、アオリの方向は、視差画像上における視差画素量の最小値から最大値に向かうベクトルに基づいて特定されてもよい。この場合に、上記対応テーブルにおいて当該ベクトルの方向に視差仮想瞳が傾くようにアオリの方向が対応づけられてもよい。
なお、上記実施形態において、視差量の調整は絞り22の開口と組み合わせて用いられてもよい。撮像素子100においては、絞り22の開口が小さくなるほど視差量の絶対値が小さくなる。そこで例えば、上記ステップS107において視差量の最大値の位置が図11における中央付近である場合または閾値を越える視差量の位置が視差画像の複数の位置に散らばっている場合等には絞り22の開口を絞る旨を警告し、それ以外の場合にアオリを用いる旨を警告してもよい。
また、撮影者による本撮影に先立って、撮像素子100の画像信号に基づいて画像を逐次生成して表示部209に表示する、いわゆるスルー画表示またはライブビュー表示を用いる場合には、当該画像生成時に図12の動作を逐次実行して、警告を要する場合に表示部209に表示をしてもよい。また、上記実施形態は動画撮影に適用されてもよい。
上記実施形態において、アオリの例として軸周りの回転、すなわち、チルトまたはスイングについて説明した。アオリの他の例として、撮影レンズ20をXY面内に平行移動する、シフトが用いられてもよい。この場合も、シフトとそれによる視差量の変化を実験的または解析的に特定し、対応テーブルを作成してもよい。なお、いずれの場合もテーブル形式でない別の方法を用いてもよい。
また、上記実施形態においては、撮影レンズ20にアオリが用いられた。これに代えてまたはこれに加えて、撮像素子100側が変位することによりアオリが用いられてもよい。
撮影レンズ20のアオリまたは撮像素子100のアオリを駆動部による駆動で制御できるようにしてもよい。この場合に、警告部244は、当該駆動部にアオリを制御する駆動信号を出力してもよい。これにより、撮影者がアオリを制御することなく、視差量が調整された視差画像を得ることができる。なおこの場合に、警告部244は表示部209への警告の表示を省略してもよい。また、アオリの段階を複数に分けて、複数回の撮像を自動的に実行してもよい。
上記駆動部に加えて、デジタルカメラ10または撮影レンズ20は、視差を強調するか抑制するかを設定する視差量設定部を有してもよい。当該設定は例えば撮影者からの入力によりなされる。視差量設定部は、視差を強調する設定がなされている場合に、視差が強調される方向にアオリを駆動する駆動信号を駆動部に与える。例えば、主要な被写体が図7の物点M1であった場合に、視差を強調すべく図7のようにアオリを用いるべく撮影レンズ20を駆動する。一方、視差量設定部は、視差を抑制する設定がなされている場合に、視差が抑制される方向にアオリを駆動する駆動信号を駆動部に与える。例えば、主要な被写体が図8の物点M3であった場合に、視差を強調すべく図8のようにアオリを用いるべく撮影レンズ20を駆動する。なお、視差量設定部の駆動信号と警告部244の駆動信号とが競合する場合には、いずれか一方を優先することが好ましい。いずれの駆動信号を優先するかは、初期設定されており、後から撮影者が変更できるようになっていてもよい。
撮影レンズ20のアオリまたは撮像素子100のアオリを駆動部による駆動で制御できるか否かは、光学系判断部248が撮影レンズ20のメモリまたは制御部201からの情報を取得することにより判断してもよい。なお、駆動部による駆動で制御できると判断されなかった場合に、警告部244は当該制御信号を出力しなくてもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。