以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
撮像装置の一形態である本実施形態に係るデジタルカメラは、1つのシーンについて複数の視点数の画像を一度の撮影により生成できるように構成されている。互いに視点の異なるそれぞれの画像を視差画像と呼ぶ。
図1は、本発明の実施形態に係るデジタルカメラ10の構成を説明する図である。デジタルカメラ10は、撮影光学系としての撮影レンズ20を備え、光軸21に沿って入射する被写体光束を撮像素子100へ導く。撮影レンズ20は、デジタルカメラ10に対して着脱できる交換式レンズであっても構わない。デジタルカメラ10は、撮像素子100、制御部201、A/D変換回路202、メモリ203、駆動部204、画像処理部205、メモリカードIF207、操作部208、表示部209、LCD駆動回路210およびAFセンサ211を備える。
なお、図示するように、撮像素子100へ向かう光軸21に平行な方向をz軸プラス方向と定め、z軸と直交する平面において紙面手前へ向かう方向をx軸プラス方向、紙面上方向をy軸プラス方向と定める。以降のいくつかの図においては、図1の座標軸を基準として、それぞれの図の向きがわかるように座標軸を表示する。
撮影レンズ20は、複数の光学レンズ群から構成され、シーンからの被写体光束をその焦点面近傍に結像させる。なお、図1では撮影レンズ20を説明の都合上、瞳近傍に配置された仮想的な1枚のレンズで代表して表している。撮像素子100は、撮影レンズ20の焦点面近傍に配置されている。撮像素子100は、二次元的に複数の光電変換素子が配列された、例えばCCD、CMOSセンサ等のイメージセンサである。撮像素子100は、駆動部204によりタイミング制御されて、受光面上に結像された被写体像を画像信号に変換してA/D変換回路202へ出力する。
また、撮像素子100は、視差を生じさせる第1視差画像および第2視差画像をそれぞれ出力する第1視差画素群および第2視差画素群を有する。第1視差画素群および第2視差画素群は互いに異なる位置に配列されている。詳細については後述する。
A/D変換回路202は、撮像素子100が出力する画像信号をデジタル画像信号に変換してメモリ203へ出力する。画像処理部205は、メモリ203をワークスペースとして種々の画像処理を施し、画像データを生成する。画像処理部205は、他にも、撮像素子100の画素配列に即して、入力される画像信号から非視差画像データとしての2D画像データおよび視差画像データを生成したり、選択された画像フォーマットに従って画像データを調整したりする機能も担う。生成された画像データは、LCD駆動回路210により表示信号に変換され、表示部209に表示される。また、メモリカードIF207に装着されているメモリカード220に記録される。
また、画像処理部205は、撮像素子100が出力する第1視差画像の1つの第1視差出力画素である注目画素を基準として、撮像素子100が出力する第2視差画像の複数の第2視差出力画素であって注目画素の周辺に位置する複数の第2視差出力画素の各々に対する差分画素値を演算する差分演算部231、注目画素を基準とした複数の第2視差出力画素の各方向と差分画素値とを関連付けた差分データを含む差分データセットを生成するデータ生成部232、差分データセットをファイル形式でメモリカード220に記憶させる記憶制御部233を有する。それぞれの処理の詳細については後述する。
AFセンサ211は、被写体空間に対して複数の測距点が設定された位相差センサであり、それぞれの測距点において被写体像のデフォーカス量を検出する。一連の撮影シーケンスは、操作部208がユーザの操作を受け付けて、制御部201へ操作信号を出力することにより開始される。撮影シーケンスに付随するAF,AE等の各種動作は、制御部201に制御されて実行される。例えば、制御部201は、AFセンサ211の検出信号を解析して、撮影レンズ20の一部を構成するフォーカスレンズを移動させる合焦制御を実行する。
次に、撮像素子100の構成について詳細に説明する。図2は、本発明の実施形態に係る撮像素子の断面を表す概略図である。図2(a)は、カラーフィルタ102と開口マスク103が別体で構成される撮像素子100の断面概略図である。また、図2(b)は、撮像素子100の変形例として、カラーフィルタ部122と開口マスク部123が一体的に構成されたスクリーンフィルタ121を備える撮像素子120の断面外略図である。
図2(a)に示すように、撮像素子100は、被写体側から順に、マイクロレンズ101、カラーフィルタ102、開口マスク103、配線層105および光電変換素子108が配列されて構成されている。光電変換素子108は、入射する光を電気信号に変換するフォトダイオードにより構成される。光電変換素子108は、基板109の表面に二次元的に複数配列されている。
光電変換素子108により変換された画像信号、光電変換素子108を制御する制御信号等は、配線層105に設けられた配線106を介して送受信される。また、各光電変換素子108に一対一に対応して設けられた開口部104を有する開口マスク103が、配線層に接して設けられている。開口部104は、後述するように、対応する光電変換素子108ごとにシフトさせて、相対的な位置が厳密に定められている。詳しくは後述するが、この開口部104を備える開口マスク103の作用により、光電変換素子108が受光する被写体光束に視差が生じる。
一方、視差を生じさせない光電変換素子108上には、開口マスク103が存在しない。別言すれば、対応する光電変換素子108に対して入射する被写体光束を制限しない、つまり有効光束の全体を通過させる開口部104を有する開口マスク103が設けられているとも言える。視差を生じさせることはないが、実質的には配線106によって形成される開口107が入射する被写体光束を規定するので、配線106を、視差を生じさせない有効光束の全体を通過させる開口マスクと捉えることもできる。開口マスク103は、各光電変換素子108に対応して別個独立に配列しても良いし、カラーフィルタ102の製造プロセスと同様に複数の光電変換素子108に対して一括して形成しても良い。
カラーフィルタ102は、開口マスク103上に設けられている。カラーフィルタ102は、各光電変換素子108に対して特定の波長帯域を透過させるように着色された、光電変換素子108のそれぞれに一対一に対応して設けられるフィルタである。カラー画像を出力するには、互いに異なる少なくとも2種類のカラーフィルタが配列されれば良いが、より高画質のカラー画像を取得するには3種類以上のカラーフィルタを配列すると良い。例えば赤色波長帯を透過させる赤フィルタ、緑色波長帯を透過させる緑フィルタ、および青色波長帯を透過させる青フィルタを格子状に配列すると良い。具体的な配列については後述する。
マイクロレンズ101は、カラーフィルタ102上に設けられている。マイクロレンズ101は、入射する被写体光束のより多くを光電変換素子108へ導くための集光レンズである。マイクロレンズ101は、光電変換素子108のそれぞれに一対一に対応して設けられている。マイクロレンズ101は、撮影レンズ20の瞳中心と光電変換素子108の相対的な位置関係を考慮して、より多くの被写体光束が光電変換素子108に導かれるようにその光軸がシフトされていることが好ましい。さらには、開口マスク103の開口部104の位置と共に、後述の特定の被写体光束がより多く入射するように配置位置が調整されても良い。
このように、各々の光電変換素子108に対応して一対一に設けられる開口マスク103、カラーフィルタ102およびマイクロレンズ101の一単位を画素と呼ぶ。特に、視差を生じさせる開口マスク103が設けられた画素を視差画素、視差を生じさせる開口マスク103が設けられていない画素を視差なし画素と呼ぶ。例えば、撮像素子100の有効画素領域が24mm×16mm程度の場合、画素数は1200万程度に及ぶ。
なお、集光効率、光電変換効率が良いイメージセンサの場合は、マイクロレンズ101を設けなくても良い。また、裏面照射型イメージセンサの場合は、配線層105が光電変換素子108とは反対側に設けられる。
カラーフィルタ102と開口マスク103の組み合わせには、さまざまなバリエーションが存在する。図2(a)において、開口マスク103の開口部104に色成分を持たせれば、カラーフィルタ102と開口マスク103を一体的に形成することができる。また、特定の画素を被写体の輝度情報を取得する画素として特化させる場合、その画素には、対応するカラーフィルタ102を設けなくても良い。あるいは、可視光のおよそ全ての波長帯域を透過させるように、着色を施さない透明フィルタを配列しても良い。
輝度情報を取得する画素を視差画素とする場合、つまり、視差画像をモノクロ画像として出力するのであれば、図2(b)として示す撮像素子120の構成を採用し得る。すなわち、カラーフィルタとして機能するカラーフィルタ部122と、開口部104を有する開口マスク部123とが一体的に構成されたスクリーンフィルタ121を、マイクロレンズ101と配線層105の間に配設することができる。
スクリーンフィルタ121は、カラーフィルタ部122において例えば青緑赤の着色が施され、開口マスク部123において開口部104以外のマスク部分が黒の着色が施されて形成される。スクリーンフィルタ121を採用する撮像素子120は、撮像素子100に比較して、マイクロレンズ101から光電変換素子108までの距離が短いので、被写体光束の集光効率が高い。
次に、開口マスク103の開口部104と、生じる視差の関係について説明する。図3は、撮像素子100の一部を拡大した様子を表す概略図である。ここでは、説明を簡単にすべく、カラーフィルタ102の配色については後に言及を再開するまで考慮しない。カラーフィルタ102の配色に言及しない以下の説明においては、同色のカラーフィルタ102を有する視差画素のみを寄せ集めたイメージセンサであると捉えることができる。したがって、以下に説明する繰り返しパターンは、同色のカラーフィルタ102における隣接画素として考えても良い。
図3に示すように、開口マスク103の開口部104は、それぞれの画素に対して相対的にシフトして設けられている。そして、隣接する画素同士においても、それぞれの開口部104は互いに変位した位置に設けられている。
図の例においては、それぞれの画素に対する開口部104の位置として、互いに左右方向にシフトした6種類の開口マスク103が用意されている。そして、撮像素子100の全体は、紙面左側から右側へ徐々にシフトする開口マスク103をそれぞれ有する6つの視差画素を一組とする光電変換素子群が、二次元的かつ周期的に配列されている。つまり、撮像素子100は、一組の光電変換素子群を含む繰り返しパターン110が、周期的に敷き詰められて構成されていると言える。
図4は、視差画素と被写体の関係を説明する概念図である。特に図4(a)は撮像素子100のうち撮影光軸21と直交する中心に配列されている繰り返しパターン110tの光電変換素子群を示し、図4(b)は周辺部分に配列されている繰り返しパターン110uの光電変換素子群を模式的に示している。図4(a)、(b)における被写体30は、撮影レンズ20に対して合焦位置に存在する。図4(c)は、図4(a)に対応して、撮影レンズ20に対して非合焦位置に存在する被写体31を捉えた場合の関係を模式的に示している。
まず、撮影レンズ20が合焦状態に存在する被写体30を捉えている場合の、視差画素と被写体の関係を説明する。被写体光束は、撮影レンズ20の瞳を通過して撮像素子100へ導かれるが、被写体光束が通過する全体の断面領域に対して、6つの部分領域Pa〜Pfが規定されている。そして、例えば繰り返しパターン110t、110uを構成する光電変換素子群の紙面左端の画素は、拡大図からもわかるように、部分領域Pfから射出された被写体光束のみが光電変換素子108へ到達するように、開口マスク103の開口部104fの位置が定められている。同様に、右端の画素に向かって、部分領域Peに対応して開口部104eの位置が、部分領域Pdに対応して開口部104dの位置が、部分領域Pcに対応して開口部104cの位置が、部分領域Pbに対応して開口部104bの位置が、部分領域Paに対応して開口部104aの位置がそれぞれ定められている。
別言すれば、例えば部分領域Pfと左端画素の相対的な位置関係によって定義される、部分領域Pfから射出される被写体光束の主光線Rfの傾きにより、開口部104fの位置が定められていると言っても良い。そして、合焦位置に存在する被写体30からの被写体光束を、開口部104fを介して光電変換素子108が受光する場合、その被写体光束は、点線で図示するように、光電変換素子108上で結像する。同様に、右端の画素に向かって、主光線Reの傾きにより開口部104eの位置が、主光線Rdの傾きにより開口部104dの位置が、主光線Rcの傾きにより開口部104cの位置が、主光線Rbの傾きにより開口部104bの位置が、主光線Raの傾きにより開口部104aの位置がそれぞれ定められていると言える。
図4(a)で示すように、合焦位置に存在する被写体30のうち、光軸21と交差する被写体30上の微小領域Otから放射される光束は、撮影レンズ20の瞳を通過して、繰り返しパターン110tを構成する光電変換素子群の各画素に到達する。すなわち、繰り返しパターン110tを構成する光電変換素子群の各画素は、それぞれ6つの部分領域Pa〜Pfを介して、一つの微小領域Otから放射される光束を受光している。微小領域Otは、繰り返しパターン110tを構成する光電変換素子群の各画素の位置ずれに対応する分だけの広がりを有するが、実質的には、ほぼ同一の物点と近似することができる。同様に、図4(b)で示すように、合焦位置に存在する被写体30のうち、光軸21から離間した被写体30上の微小領域Ouから放射される光束は、撮影レンズ20の瞳を通過して、繰り返しパターン110uを構成する光電変換素子群の各画素に到達する。すなわち、繰り返しパターン110uを構成する光電変換素子群の各画素は、それぞれ6つの部分領域Pa〜Pfを介して、一つの微小領域Ouから放射される光束を受光している。微小領域Ouも、微小領域Otと同様に、繰り返しパターン110uを構成する光電変換素子群の各画素の位置ずれに対応する分だけの広がりを有するが、実質的には、ほぼ同一の物点と近似することができる。
つまり、被写体30が合焦位置に存在する限りは、撮像素子100上における繰り返しパターン110の位置に応じて、光電変換素子群が捉える微小領域が異なり、かつ、光電変換素子群を構成する各画素は互いに異なる部分領域を介して同一の微小領域を捉えている。そして、それぞれの繰り返しパターン110において、対応する画素同士は同じ部分領域からの被写体光束を受光している。つまり、図においては、例えば繰り返しパターン110t、110uのそれぞれの左端の画素は、同じ部分領域Pfからの被写体光束を受光している。
撮影光軸21と直交する中心に配列されている繰り返しパターン110tにおいて左端画素が部分領域Pfからの被写体光束を受光する開口部104fの位置と、周辺部分に配列されている繰り返しパターン110uにおいて左端画素が部分領域Pfからの被写体光束を受光する開口部104fの位置は厳密には異なる。しかしながら、機能的な観点からは、部分領域Pfからの被写体光束を受光するための開口マスクという点で、これらを同一種類の開口マスクとして扱うことができる。したがって、図4の例では、撮像素子100上に配列される視差画素のそれぞれは、6種類の開口マスクの一つを備えると言える。
次に、撮影レンズ20が非合焦状態に存在する被写体31を捉えている場合の、視差画素と被写体の関係を説明する。この場合も、非合焦位置に存在する被写体31からの被写体光束は、撮影レンズ20の瞳の6つの部分領域Pa〜Pfを通過して、撮像素子100へ到達する。ただし、非合焦位置に存在する被写体31からの被写体光束は、光電変換素子108上ではなく他の位置で結像する。例えば、図4(c)に示すように、被写体31が被写体30よりも撮像素子100に対して遠い位置に存在すると、被写体光束は、光電変換素子108よりも被写体31側で結像する。逆に、被写体31が被写体30よりも撮像素子100に対して近い位置に存在すると、被写体光束は、光電変換素子108よりも被写体31とは反対側で結像する。
したがって、非合焦位置に存在する被写体31のうち、微小領域Ot'から放射される被写体光束は、6つの部分領域Pa〜Pfのいずれを通過するかにより、異なる組の繰り返しパターン110における対応画素に到達する。例えば、部分領域Pdを通過した被写体光束は、図4(c)の拡大図に示すように、主光線Rd'として、繰り返しパターン110t'に含まれる、開口部104dを有する光電変換素子108へ入射する。そして、微小領域Ot'から放射された被写体光束であっても、他の部分領域を通過した被写体光束は、繰り返しパターン110t'に含まれる光電変換素子108へは入射せず、他の繰り返しパターンにおける対応する開口部を有する光電変換素子108へ入射する。換言すると、繰り返しパターン110t'を構成する各光電変換素子108へ到達する被写体光束は、被写体31の互いに異なる微小領域から放射された被写体光束である。すなわち、開口部104dに対応する108へは主光線をRd'とする被写体光束が入射し、他の開口部に対応する光電変換素子108へは主光線をRa+、Rb+、Rc+、Re+、Rf+とする被写体光束が入射するが、これらの被写体光束は、被写体31の互いに異なる微小領域から放射された被写体光束である。このような関係は、図4(b)における周辺部分に配列されている繰り返しパターン110uにおいても同様である。
すると、撮像素子100の全体で見た場合、例えば、開口部104aに対応する光電変換素子108で捉えた被写体像Aと、開口部104dに対応する光電変換素子108で捉えた被写体像Dは、合焦位置に存在する被写体に対する像であれば互いにずれが無く、非合焦位置に存在する被写体に対する像であればずれが生じることになる。そして、そのずれは、非合焦位置に存在する被写体が合焦位置に対してどちら側にどれだけずれているかにより、また、部分領域Paと部分領域Pdの距離により、方向と量が定まる。つまり、被写体像Aと被写体像Dは、互いに視差像となる。この関係は、他の開口部に対しても同様であるので、開口部104aから104fに対応して、6つの視差像が形成されることになる。
したがって、このように構成されたそれぞれの繰り返しパターン110において、互いに対応する画素の出力を寄せ集めると、視差画像が得られる。つまり、6つの部分領域Pa〜Pfうちの特定の部分領域から射出された被写体光束を受光した画素の出力は、視差画像を形成する。
図5は、視差画像を生成する処理を説明する概念図である。図は、左列から順に、開口部104fに対応する視差画素の出力を集めて生成される視差画像データIm_fの生成の様子、開口部104eの出力による視差画像データIm_eの生成の様子、開口部104dの出力による視差画像データIm_dの生成の様子、開口部104cの出力による視差画像データIm_cの生成の様子、開口部104bの出力による視差画像データIm_bの生成の様子、開口部104aの出力による視差画像データIm_aの生成の様子を表す。まず開口部104fの出力による視差画像データIm_fの生成の様子について説明する。
6つの視差画素を一組とする光電変換素子群から成る繰り返しパターン110は、横一列に配列されている。したがって、開口部104fを有する視差画素は、撮像素子100上において、左右方向に6画素おき、かつ、上下方向に連続して存在する。これら各画素は、上述のようにそれぞれ異なる微小領域からの被写体光束を受光している。したがって、これらの視差画素の出力を寄せ集めて配列すると、視差画像が得られる。
しかし、本実施形態における撮像素子100の各画素は正方画素であるので、単に寄せ集めただけでは、横方向の画素数が1/6に間引かれた結果となり、縦長の画像データが生成されてしまう。そこで、補間処理を施して横方向に6倍の画素数とすることにより、本来のアスペクト比の画像として視差画像データIm_fを生成する。ただし、そもそも補間処理前の視差画像データが横方向に1/6に間引かれた画像であるので、横方向の解像度は、縦方向の解像度よりも低下している。つまり、生成される視差画像データの数と、解像度の向上は相反関係にあると言える。
同様にして、視差画像データIm_e〜視差画像データIm_aが得られる。すなわち、デジタルカメラ10は、横方向に視差を有する6視点の視差画像を生成することができる。
上記の例では、横一列を繰り返しパターン110として周期的に配列される例を説明したが、繰り返しパターン110はこれに限らない。図6は、繰り返しパターン110の他の例を示す図である。
図6(a)は、縦6画素を繰り返しパターン110とした例である。ただし、それぞれの開口部104は、紙面上端の視差画素から下に向かって、紙面左側から右側へ徐々にシフトするように位置が定められている。このように配列された繰り返しパターン110によっても、横方向に視差を与える6視点の視差画像を生成することができる。この場合は、図3の繰り返しパターン110に比較すると、縦方向の解像度を犠牲にする代わりに横方向の解像度を維持する繰り返しパターンであると言える。
図6(b)は、斜め方向に隣接する6画素を繰り返しパターン110とした例である。それぞれの開口部104は、紙面左上端の視差画素から右下に向かって、紙面左側から右側へ徐々にシフトするように位置が定められている。このように配列された繰り返しパターン110によっても、横方向に視差を与える6視点の視差画像を生成することができる。この場合は、図3の繰り返しパターン110に比較すると、縦方向の解像度および横方向の解像度をある程度維持しつつ、視差画像の数を増やす繰り返しパターンであると言える。
図3の繰り返しパターン110、および図6(a)(b)の繰り返しパターン110をそれぞれ比較すると、いずれも6視点の視差画像を生成する場合において、視差画像でない全体から一枚の画像を出力する場合の解像度に対し、縦方向、横方向のいずれの方向の解像度を犠牲にするかの違いであると言える。図3の繰り返しパターン110の場合は、横方向の解像度を1/6とする構成である。図6(a)の繰り返しパターン110の場合は、縦方向の解像度を1/6とする構成である。また、図6(b)の繰り返しパターン110の場合は、縦方向を1/3、横方向を1/2とする構成である。いずれの場合も、一つのパターン内には、各画素に対応して開口部104a〜104fが一つずつ設けられており、それぞれが対応する部分領域Pa〜Pfのいずれかから被写体光束を受光するように構成されている。したがって、いずれの繰り返しパターン110であっても視差量は同等である。
上述の例では、左右方向に視差を与える視差画像を生成する場合について説明したが、もちろん上下方向に視差を与える視差画像を生成することもできるし、上下左右の二次元方向に視差を与える視差画像を生成することもできる。図7は、二次元的な繰り返しパターン110の例を示す図である。
図7の例によれば、縦6画素横6画素の36画素を一組の光電変換素子群として繰り返しパターン110を形成する。それぞれの画素に対する開口部104の位置として、互いに上下左右方向にシフトした36種類の開口マスク103が用意されている。具体的には、各開口部104は、繰り返しパターン110の上端画素から下端画素に向かって、上側から下側へ徐々にシフトすると同時に、左端画素から右端画素に向かって、左側から右側へ徐々にシフトするように位置決めされている。
このような繰り返しパターン110を有する撮像素子100は、上下方向および左右方向に視差を与える、36視点の視差画像を出力することができる。もちろん図7の例に限らず、さまざまな視点数の視差画像を出力するように繰り返しパターン110を定めることができる。
以上の説明においては、開口部104の形状として矩形を採用した。特に、横方向に視差を与える配列においては、シフトさせる方向である左右方向の幅よりも、シフトさせない上下方向の幅を広くすることにより、光電変換素子108へ導く光量を確保している。しかし、開口部104の形状は矩形に限定されない。
図8は、開口部104の他の形状を説明する図である。図においては、開口部104の形状を円形とした。円形とした場合、半球形状であるマイクロレンズ101との相対的な関係から、予定外の被写体光束が迷光となって光電変換素子108へ入射することを防ぐことができる。
次に、カラーフィルタ102と視差画像について説明する。図9は、ベイヤー配列を説明する図である。図示するように、ベイヤー配列は、緑フィルタが左上と右下の2画素に、赤フィルタが左下の1画素に、青フィルタが右上の1画素に割り当てられる配列である。ここでは、緑フィルタが割り当てられた左上の画素をGb画素と、同じく緑色フィルタが割り当てられた右下の画素をGr画素とする。また、赤色フィルタが割り当てられた画素をR画素と、青色が割り当てられた画素をB画素とする。そして、Gb画素およびB画素が並ぶ横方向をGb行とし、R画素およびGr画素が並ぶ横方向をGr行とする。また、Gb画素およびR画素が並ぶ縦方向をGb列とし、B画素およびGr画素が並ぶ縦方向をGr列とする。
このようなカラーフィルタ102の配列に対して、視差画素と視差なし画素を、何色の画素にどのような周期で割り振っていくかにより、膨大な数の繰り返しパターン110が設定され得る。視差なし画素の出力を集めれば、通常の撮影画像と同じく視差のない撮影画像データを生成することができる。したがって、相対的に視差なし画素の割合を増やせば、解像度の高い2D画像を出力させることができる。この場合、視差画素は相対的に少ない割合となるので、複数の視差画像からなる3D画像としては画質が低下する。逆に、視差画素の割合を増やせば、3D画像としては画質が向上するが、視差なし画素は相対的に減少するので、解像度の低い2D画像が出力される。
このようなトレードオフの関係において、何れの画素を視差画素とするか、あるいは視差なし画素とするかにより、様々な特徴を有する繰り返しパターン110が設定される。図10は、ベイヤー配列に対する視差画素の割り振りについて、視差画素の種類が2つである場合のバリエーションを説明する図である。この場合の視差画素は、開口部104が中心よりも左側に偏心した視差L画素と、同じく右側に偏心した視差R画素を想定している。つまり、このような視差画素から出力される2視点の視差画像は、いわゆる立体視を実現する。
それぞれの繰り返しパターンに対する特徴の説明は図に示す通りである。例えば、視差なし画素が多く割り振られていれば高解像度の2D画像データとなり、RGBのいずれの画素に対しても均等に割り振られていれば、色ずれの少ない高画質の2D画像データとなる。視差画素の出力も利用して2D画像データを生成する場合、ずれた被写体像を周辺画素の出力を参照して補正する。したがって、例えば全部のR画素が視差画素であったとしても2D画像を生成することはできるものの、その画質は自ずと低下する。
一方、視差画素が多く割り振られていれば高解像度の3D画像データとなり、RGBのいずれの画素に対しても均等に割り振られていれば、3D画像でありながら、色再現性の良い高品質のカラー画像データとなる。視差なし画素の出力も利用して3D画像データを生成する場合、視差のない被写体像から周辺の視差画素の出力を参照してずれた被写体像を生成する。したがって、例えば全部のR画素が視差なし画素であったとしてもカラーの3D画像を生成することはできるものの、やはりその品質は低下する。
以下にいくつかのバリエーションについて説明する。図11は、バリエーションの一例を示す図である。図11のバリエーションは、図10における繰り返しパターン分類A−1に相当する。
図の例においては、ベイヤー配列と同じ4画素を繰り返しパターン110とする。R画素とG画素は視差なし画素であり、Gb画素を視差L画素に、Gr画素を視差R画素に割り当てる。この場合、同一の繰り返しパターン110に含まれる視差L画素と視差R画素が、被写体が合焦位置に存在するときに、同じ微小領域から放射される光束を受光するように開口部104が定められる。
図の例においては、視感度の高い緑画素であるGb画素およびGr画素を視差画素として用いるので、コントラストの高い視差画像を得ることが期待できる。また、同じ緑色画素であるGb画素およびGr画素を視差画素として用いるので、これら2つの出力から視差のない出力に変換演算がし易く、視差なし画素であるR画素およびB画素の出力と共に、高画質の2D画像データを生成できる。
図12は、他のバリエーションの一例を示す図である。図12のバリエーションは、図10における繰り返しパターン分類B−1に相当する。
図の例においては、ベイヤー配列の4画素が左右に2組続く8画素を繰り返しパターン110とする。8画素のうち、左側のGb画素に視差L画素を、右側のGb画素に視差R画素を割り当てる。このような配列においては、Gr画素を視差なし画素としたことにより、図10の例よりも、更に2D画像の高画質化が望める。
図13は、更に他のバリエーションの一例を示す図である。図13のバリエーションは、図10における繰り返しパターン分類D−1に相当する。
図の例においては、ベイヤー配列の4画素が左右に2組続く8画素を繰り返しパターン110とする。8画素のうち、左側のGb画素に視差L画素を、右側のGb画素に視差R画素を割り当てる。さらに、左側のR画素に視差L画素を、右側のR画素に視差R画素を割り当てる。さらに、左側のB画素に視差L画素を、右側のB画素に視差R画素を割り当てる。2つのGr画素には視差なし画素を割り当てる。
2つのGb画素に割り当てられた視差L画素と視差R画素は、被写体が合焦位置に存在するときに、一つの微小領域から放射される光束を受光する。また、2つのR画素に割り当てられた視差L画素と視差R画素は、Gb画素のそれとは異なる一つの微小領域から放射される光束を受光し、2つのB画素に割り当てられた視差L画素と視差R画素は、Gb画素およびR画素のそれとは異なる一つの微小領域から放射される光束を受光する。したがって、図12の例に比較して、3D画像としての解像度が縦方向に3倍となる。しかも、RGBの3色の出力が得られるので、カラー画像としての3D画像として高品質である。
なお、上述のように視差画素の種類を2つにすれば2視点の視差画像が得られるが、もちろん視差画素の種類は、出力したい視差画像数に合わせて、図3、図7、図8などで説明したような様々な数を採用し得る。視点数が増えていっても、さまざまな繰り返しパターン110を形成することができる。したがって、仕様、目的等に応じた繰り返しパターン110を選択することができる。
上述の例では、カラーフィルタ配列としてベイヤー配列を採用した場合について説明したが、もちろん他のカラーフィルタ配列であっても差し支えない。図3等を用いて説明したように、カラーフィルタ配列を構成するある1色に着目して寄せ集めた場合に、隣接する複数の画素を一組の光電変換素子群とする繰り返しパターンを形成し、視差画像を出力するように視差画素が割り当てられていれば良い。このとき、一組の光電変換素子群を構成する視差画素のそれぞれは、互いに異なる部分領域を向く開口部104を有する開口マスク103を備えると良い。
したがって、撮像素子100は、入射光を電気信号に光電変換する、二次元的に配列された光電変換素子108と、光電変換素子108の少なくとも一部のそれぞれに一対一に対応して設けられた開口マスク103と、光電変換素子108の少なくとも一部のそれぞれに一対一に対応して設けられたカラーフィルタ102とを備え、隣接するn個(nは3以上の整数)の光電変換素子108のうち、少なくとも3つに対応して設けられたそれぞれの開口マスク103の開口部104は、互いに異なる波長帯域を透過させる少なくとも2種類のカラーフィルタ102から構成されるカラーフィルターパターンの一パターン内に含まれると共に、入射光の断面領域内の互いに異なる部分領域からの光束をそれぞれ通過させるように位置づけられ、n個の光電変換素子108を一組とする光電変換素子群が周期的に配列されていれば良い。
図14は、他のカラーフィルタ配列を説明する図である。図示するように、他のカラーフィルタ配列は、図9で示したベイヤー配列のGr画素を緑フィルタが割り当てられるG画素として維持する一方、Gb画素をカラーフィルタが割り当てられないW画素に変更した配列である。なお、W画素は、上述のように、可視光のおよそ全ての波長帯域を透過させるように、着色を施さない透明フィルタが配列されていても良い。
このようなW画素を含むカラーフィルタ配列を採用すれば、撮像素子が出力するカラー情報の精度は若干低下するものの、W画素が受光する光量はカラーフィルタが設けられている場合に比較して多いので、精度の高い輝度情報を取得できる。W画素の出力を寄せ集めれば、モノクロ画像を形成することもできる。
W画素を含むカラーフィルタ配列の場合、視差画素と視差なし画素の繰り返しパターン110は、さらなるバリエーションが存在する。例えば、比較的暗い環境下で撮影された画像であっても、カラー画素から出力された画像に比較してW画素から出力された画像であれば、被写体像のコントラストが高い。そこで、W画素に視差画素を割り振れば、複数の視差画像間で行うマッチング処理において、精度の高い演算結果が期待できる。マッチング処理は、画像データに写り込む被写体像の距離情報を取得する処理の一環として実行される。したがって、2D画像の解像度および視差画像の画質への影響に加え、抽出される他の情報への利害得失も考慮して、視差画素と視差なし画素の繰り返しパターン110が設定される。
図15は、図14の他のカラーフィルタ配列を採用する場合の、W画素と視差画素の配列の一例を示す図である。図15のバリエーションは、ベイヤー配列における図12の繰り返しパターン分類B−1に類似するので、ここではB'−1とする。図の例においては、他のカラーフィルタ配列の4画素が左右に2組続く8画素を繰り返しパターン110とする。8画素のうち、左側のW画素に視差L画素を、右側のW画素に視差R画素を割り当てる。このような配列において撮像素子100は、視差画像をモノクロ画像として出力し、2D画像をカラー画像として出力する。
この場合、撮像素子100は、入射光を電気信号に光電変換する、二次元的に配列された光電変換素子108と、光電変換素子108の少なくとも一部のそれぞれに一対一に対応して設けられた開口マスク103と、光電変換素子108の少なくとも一部のそれぞれに一対一に対応して設けられたカラーフィルタ102とを有し、隣接するn個(nは4以上の整数)の光電変換素子108のうち、少なくとも2つに対応して設けられたそれぞれの開口マスク103の開口部104は、互いに異なる波長帯域を透過させる少なくとも2種類のカラーフィルタ102から構成されるカラーフィルターパターンの一パターン内には含まれず、かつ、入射光の断面領域内の互いに異なる部分領域からの光束をそれぞれ通過させるように位置づけられ、n個の光電変換素子108を一組とする光電変換素子群が周期的に配列されていれば良い。
図16は、本実施形態における差分データセット生成処理の処理フローを示す図である。ここで、差分データセットは、撮像画像に含まれる第1視差出力画素の画素値と周辺の第2視差出力画素の画素値との差分である差分画素値と第1視差出力画素を基準とした第2視差出力画素の方向とを関連付けた差分データを含む。また、差分データセットは、複数の第1視差出力画素に対する複数の差分データを含むように形成される。
例えば、上述の図11−13,15の撮像素子100における視差L画素の出力値が、撮像画像において対応する位置の第1視差出力画素の画素値となり、視差R画素の出力値が、撮像画像において対応する位置の第2視差出力画素の画素値となる。そして、差分データセットは、視差L画素の出力値と視差R画素の出力値との差分である差分画素値と、視差L画素に対応する位置の第1視差出力画素を基準とした視差R画素に対応する位置の第2視差出力画素の方向とを関連付けた差分データを含むように形成される。そして、差分データセットは、複数の視差L画素に対応する位置の複数の第1視差出力画素に対する複数の差分データを含むように形成される。
このような差分データセットを生成することにより、画像処理部205は、撮像画像における第1視差出力画素の画素値と第2視差出力画素の画素値の差が大きい箇所および方向を容易に確認することができる。したがって、画像処理部205は、パターンマッチング処理などの複雑な演算をすることなく、撮像画像における被写体像の奥行きの有無を容易に判断することができる。
処理フローは、例えば露光動作を終え撮像素子100が画像信号を出力する時点から開始する。ステップS101において、画像処理部205は、撮像素子100から出力される画像信号を受け取って撮像画像データを取得する。
撮像画像は、互いに異なる位置に配置された複数の第1視差出力画素および複数の第2視差出力画素を有する。複数の第1視差出力画素および複数の第2視差出力画素の配置は、撮像素子100の第1視差画素群および第2視差画素群の配置と対応している。撮像素子100の第1視差画素群の各画素の出力値は、対応する位置の第1視差出力画素の画素値となる。撮像素子100の第2視差画素群の各画素の出力値は、対応する位置の第2視差出力画素の画素値となる。複数の第1視差出力画素の配置および画素値から形成される第1視差画像と、複数の第2視差出力画素の配置および出力値から形成される第2視差画像とは、視差を生じさせる。
ステップS102へ進み、画像処理部205は、第1視差画像の1つの第1視差出力画素を注目画素として設定する。注目画素は、後述するステップS106の差分演算処理において演算の基準となる画素である。
処理開始時において、画像処理部205は、予め設定された基準画素のアドレス情報を取得し、基準画素を注目画素として設定する。基準画素は、後述ステップS106において最初に差分演算の基準となる画素であり、撮像画像の中央部の第1視差出力画素、撮像画像の左上端の第1視差出力画素などの予め定められた位置の画素である。この注目画素設定処理の詳細は後述する。
ステップS103へ進み、画像処理部205は、注目画素を中心部とし、第2視差画像の複数の第2視差出力画素を含むm×n画素領域(m、nは3以上の整数)を対象領域として設定する。この領域設定処理の詳細は後述する。そして、ステップS104において、画像処理部205は、撮像画像データから、注目画素および対象領域に含まれる複数の第2視差出力画素の画素値を取得する。
ステップS105へ進み、画像処理部205の差分演算部231は、注目画素の画素値と、対象領域に含まれる複数の第2視差出力画素の各々の画素値との差分である差分画素値を演算する。そして、ステップS106において、画像処理部205のデータ生成部232は、注目画素を基準とした複数の第2視差出力画素の各方向と差分画素値とを関連付けた差分データを生成し、生成した差分データをメモリ203に一時保存する。これら差分演算処理および差分データ生成処理については後述する。
ステップS107へ進み、画像処理部205は、注目画素として設定されていない第1視差出力画素があるか否かを判断する。例えば、画像処理部205は、第1視差画像データの第1視差出力画素のうち注目画素として設定されていない第1視差出力画素がある場合に、注目画素として設定されていない第1視差出力画素があると判断する。画像処理部205は、注目画素として設定されていない第1視差出力画素があると判断した場合には、ステップS102へ戻る。
画像処理部205は、注目画素として設定されていない第1視差出力画素がないと判断した場合にステップS108へ進む。ステップS108において、画像処理部205のデータ生成部232は、ステップS106で生成した差分データを用いて差分データセットを生成する。この差分データセット生成処理の詳細については後述する。そして、ステップS109において、画像処理部205の記憶制御部233は、ステップS108で生成された差分データセットをファイル形式でメモリカード220に記憶させて、処理フローを終了する。
ここで、図11で示した画素配列を有する撮像素子100を用いた実施例1について説明する。図17は、実施例1における撮像画像データを説明する図である。開口部が中心よりも左側に偏心した視差L画素の出力値は、対応する位置の緑色の左視差出力画素の画素値となる。開口部が中心よりも右側に偏心した視差R画素の出力値は、対応する位置の緑色の右視差出力画素の画素値となる。視差なし画素であるR画素およびB画素の出力値は、それぞれ対応する位置の赤色の視差なし出力画素および青色の視差なし出力画素の画素値となる。
複数の左視差出力画素の配置および画素値で形成される左視差画像と、複数の右視差出力画素の配置および画素値で形成される右視差画像とは、2視点の視差画像である。本実施例において、左視差出力画素を第1視差出力画素、右視差出力画素を第2視差出力画素とする。なお、撮像画像データにおいて、撮像素子のx軸、y軸に対応するx軸、y軸を設定する。x軸プラス方向は右方向であり、y軸プラス方向は上方向である。
図18および図19は、実施例1における注目画素設定処理を説明する図である。図18は、基準画素が撮像画像データの中央部の左視差出力画素である場合における注目画素設定処理を説明する図である。まず、処理開始時において、画像処理部205は、基準画素300を注目画素として設定し、差分データを生成する。
次に、画像処理部205は、基準画素300に最も近くに位置する左視差出力画素(基準画素300から2画素分離れた左視差出力画素)を含み且つ基準画素を除いた領域310を設定する。そして、画像処理部205は、領域310内の左視差出力画素を順次注目画素として設定し、差分データを順次生成する。例えば、画像処理部205は、基準画素300に対して右方向(x軸プラス方向)に2画素分離れた左視差出力画素を起点に、反時計回りで領域310内の左視差出力画素を順次注目画素として設定する。
領域310内のすべての左視差出力画素を注目画素に設定した後に、画像処理部205は、領域310外で基準画素300に最も近くに位置する左視差出力画素(基準画素300から4画素分離れた左視差出力画素)を含み且つ基準画素および領域310を除いた領域320を設定する。そして、画像処理部205は、領域320内の左視差出力画素を順次注目画素として設定し、差分データを順次生成する。例えば、画像処理部205は、基準画素300に対して右方向(x軸プラス方向)に4画素分離れた左視差出力画素を起点に、反時計回りで領域310内の左視差出力画素を順次注目画素として設定する。画像処理部205は、この処理を繰り返して、撮像画像データの中心から外に向かって左視差出力画素を注目画素として設定する。
このように撮像画像の中心から外に向かって左視差出力画素を注目画素として設定することにより、画像処理部205は、上述の差分データ生成処理と並行して収差補正の演算も実行することができる。具体的には、撮像画像データの中心は光軸中心に対応するため、画像処理部205は、基準画素を中心とした特定範囲内の画素を注目画素に設定して差分データを生成している場合には収差補正の演算を実行しない。特定範囲として、収差補正が不要であると想定される範囲を予め設定しておく。その後、画像処理部205は、特定範囲外の画素を注目画素に設定して差分データを生成している場合に、収差補正の演算を実行する。
図19は、基準画素が撮像画像データの左上端の左視差出力画素である場合における注目画素設定処理の説明図である。まず、処理開始時において、画像処理部205は、基準画素300を注目画素として設定し、差分データを生成する。次に、画像処理部205は、基準画素300を含む1画素の横領域330を設定する。そして、画像処理部205は、横領域330内の左視差出力画素を右方向(x軸プラス方向)に順次注目画素として設定し、差分データを順次生成する。
横領域330内のすべての左視差出力画素を注目画素に設定した後に、画像処理部205は、横領域330に対して下方向(y軸マイナス方向)で最も近くに位置する左視差画像を含む1画素の横領域340を設定する。そして、画像処理部205は、横領域340内の一番左に位置する左視差出力画素を起点に、右方向(x軸プラス方向)に横領域340内の左視差出力画素を順次注目画素として設定し、差分データを順次生成する。画像処理部205は、この処理を繰り返して、撮像画像データの上から下に向かって左視差出力画素を注目画素として設定する。
このように撮像画像の上から下に向かって左視差出力画素を注目画素として設定することにより、撮像画像の上から下に向かってデータ読み出す表示処理等と並行して差分データ生成処理を実行することができる。
図20は、実施例1における領域設定処理を説明する図である。画像処理部205は、注目画素400を中心部とし、注目画素400の周辺の複数の右視差出力画素を含むm×n画素の対象領域410を設定する。ここで、mおよびnは3以上の整数である。mおよびnの双方が奇数の場合には、画像処理部205は注目画素400を中心の画素とした対象領域410を設定する。一方、mおよびnの少なくとも一方が偶数の場合に、画像処理部205は注目画素400を中心に最も近い画素とした対象領域410を設定する。
画像処理部205は、例えば、注目画素400を基準として、縦2方向、横2方向若しくは斜め2方向に位置する2つの右視差出力画素を少なくとも含むように対象領域410を設定する。また、画像処理部205は、注目画素400を基準として、縦横4方向若しくは斜め4方向に位置する4つの右視差出力画素を少なくとも含むように対象領域410を設定してもよい。本実施例において、画像処理部205は、注目画素400を中心とし、斜め4方向に位置する4つの右視差出力画素を含む3×3画素の対象領域410を設定する。
図21(a)は、実施例1における差分演算処理を説明する図である。画像処理部205の差分演算部231は、注目画素400の画素値と、対象領域410に含まれる4つの右視差出力画素420、430、440、450の各々の画素値との差分画素値ΔLRを演算する。差分演算部231は、(注目画素の画素値)−(右視差出力画素の画素値)の値を差分画素値ΔLRとする。具体的には、差分演算部231は、(注目画素400の画素値「50」)−(右視差出力画素420の画素値「46」)=4を注目画素400と右視差出力画素420との差分画素値ΔLR(1,1)とする。同様に、差分演算部231は、注目画素400と右視差出力画素430との差分画素値ΔLR(−1,1)、注目画素400と右視差出力画素440との差分画素値ΔLR(−1,−1)、注目画素400と右視差出力画素450との差分画素値ΔLR(1,−1)を演算する。なお、本実施例において、右視差出力画素420、430、440、450に対する差分画素値ΔLRを区別可能にするために、注目画素400を基準とした右視差出力画素420、430、440、450の座標値(1,1)、(−1,1)、(−1,−1)、(1,−1)をΔLRの右側に表記する。
上述した図16のステップS106において、画像処理部205のデータ生成部232は、注目画素400を基準とした右視差出力画素420、430、440、450の方向と、差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)とを関連付けた差分データを生成する。一つの手法として、データ生成部232は、注目画素400を基準とした右視差出力画素420、430、440、450の座標値(1,1)、(−1,1)、(−1,−1)、(1,−1)のデータを、注目画素400を基準とした右視差出力画素420、430、440、450の方向を示す値として用いる。そして、データ生成部232は、座標値(1,1)と差分画素値ΔLR(1,1)、座標値(−1,1)と差分画素値ΔLR(−1,1)、座標値(−1,−1)と差分画素値ΔLR(−1,−1)、座標値(1,−1)と差分画素値ΔLR(1,−1)を対応付けた差分データを生成する。
上述の手法による差分データは座標値のデータを含んでいるので、差分データのデータサイズが大きくなってしまう。そこで、図21(b)に示すように、データ生成部232は、右視差出力画素420、430、440、450に対する差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)を予め定められた順序で並べたデータ列「4、30、10、−4」を差分データ460として生成する。この予め定められた順序は、注目画素400を基準とした右視差出力画素420、430、440、450の方向のx軸プラス方向に対する角度が小さい順である。なお、角度範囲は、x軸プラス方向に対し反時計回りに0度から360度である。
具体的には、まず、データ生成部232は、x軸プラス方向に対する角度が一番小さい(1,1)方向(45度の方向)の差分画素値ΔLR(1,1)をデータ列の先頭に配置する。次に、データ生成部232は、x軸プラス方向に対する角度が二番目に小さい(−1,1)方向(135度の方向)の差分画素値ΔLR(−1,1)をデータ列の二番目に配置する。そして、データ生成部232は、x軸プラス方向に対する角度が三番目に小さい(−1,−1)方向(225度の方向)の差分画素値ΔLR(−1,−1)をデータ列の3番目に配置する。最後に、データ生成部232は、x軸プラス方向に対する角度が一番大きい(1,−1)方向(315度の方向)の差分画素値ΔLR(1,−1)をデータ列の最後尾に配置する。
このように注目画素400を基準とした右視差出力画素420、430、440、450の方向を用いた順序で差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)を並べることにより、差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)は注目画素400を基準とした右視差出力画素420、430、440、450の方向と関連付けられる。なお、本実施例では、データ生成部232は、x軸プラス方向に対する角度を用いて順序を設定したが、これに限らず、y軸プラス方向に対する角度を用いて順序を設定してもよい。
図22は、実施例1における差分データセットの一例である。画像処理部205のデータ生成部232は、複数のセクション510(510−1、510−2、510−3、・・・510−N)で区切られた差分データセット500を生成する。データ生成部232は、複数のセクション510(510−1、510−2、510−3、・・・510−N)に、ステップS106で生成した複数の差分データ460(460−1、460−2、460−3、・・・460−N)をそれぞれ格納する。
データ生成部232は、複数のセクション510(510−1、510−2、510−3、・・・510−N)に、差分データ460(460−1、460−2、460−3、・・・460−N)に対応する注目画素の位置情報520(520−1、520−2、520−3、・・・520−N)をそれぞれ格納する。具体的には、データ生成部232は、上述した図16のステップS102の注目画素設定処理またはステップS104の画素値取得処理のときに、注目画素のアドレス情報を取得し、アドレス情報を位置情報520として格納する。また、データ生成部232は、基準画素以外の注目画素に対する位置情報520−2、520−3、・・・520−Nとして、基準画素からのオフセット情報を格納するようにしてもよい。これにより、注目画素の位置情報520(520−1、520−2、520−3、・・・520−N)が、差分データ460(460−1、460−2、460−3、・・・460−N)に対応付けられる。
さらに、データ生成部232は、基準画素に対応する差分データ460−1を格納するセクション510−1に基準画素の画素値530を格納する。これにより、基準画素の画素値530が基準画素に対応する差分データ460−1に対応付けられる。
画像処理部205は、基準画素の画素値および差分画素値を用いて、他の視差出力画素の画素値を算出することができる。例えば、図23に示すとおり、画像処理部205は、基準画素300における差分データのうち、基準画素300と右視差出力画素540との差分画素値ΔLR(1,1)を参照し、(基準画素300の画素値「50」)−(基準画素300の差分画素値ΔLR(1,1)「4」)を演算して、右視差出力画素540の画素値「46」を算出する。また、画像処理部205は、上述した基準画素300の差分画素値ΔLR(1,1)、および左視差出力画素550における差分データのうち、左視差出力画素550と右視差出力画素540との差分画素値ΔLR(−1,1)を参照し、(基準画素300の画素値「50」)−(基準画素300の差分画素値ΔLR(1,1)「4」)+(左視差出力画素550の差分画素値ΔLR(−1,1)「8」)を演算して、左視差出力画素550の画素値「54」を算出する。このように基準画素の画素値を差分データセットに格納することにより、画像処理部205は、各左視差出力画素の画素値データおよび各右視差出力画素の画素値データを有していなくても、各左視差出力画素の画素値および各右視差出力画素の画素値を算出することができる。
画像処理部205は、差分データセットを用いて撮像画像における奥行きの有無を判断することができる。具体的には、画像処理部205は、差分データセットにおいて差分画素値が閾値を超えている箇所を分析して、奥行きの有無を判断する。なお、閾値は、ノイズレベルを超えた輝度の変化を示す値として予め設定される。
画像処理部205の記憶制御部233は、差分データセット500をファイル形式でメモリカード220に記憶させる。これにより、画像処理部205は、画像表示処理等の必要なタイミングで差分データセットを読み出し、撮像画像における奥行きの有無を判断することができる。
次に、同一視差差分データセット生成処理について説明する。同一視差差分データセットは、撮像画像における被写体像の奥行きの有無などを容易に判断する場合に上述の差分データセットとともに用いられるデータである。画像処理部205は、上述のフロー処理と同様の処理で、注目画素の画素値と、注目画素の周辺に位置する1つまたは複数の第1視差出力画素の各々に対する画素値との差分である同一視差差分値を演算する。そして、画像処理部205は、注目画素を基準とした1つまたは複数の第1視差出力画素の各方向と同一視差差分値とを関連付けた同一視差差分データを含む同一視差差分データセットを生成する。なお、同一視差差分データセット生成処理と上述の差分データセット生成処理とを並行して実行することもできる。
図24は、実施例1の同一視差差分データセット生成処理における領域設定処理を説明する図である。画像処理部205は、注目画素を中心部とし、注目画素400の周辺の1つまたは複数の左視差出力画素を含むi×j画素の同一視差対象領域600を設定する。ここで、iおよびjは3以上の整数である。iおよびjの双方が奇数の場合には、画像処理部205は注目画素400を中心の画素とした同一視差対象領域600を設定する。一方、iおよびjの少なくとも一方が偶数の場合に、画像処理部205は注目画素400を中心に最も近い画素とした同一視差対象領域600を設定する。
画像処理部205は、例えば、注目画素400を基準として、右方向に位置する1つの左視差出力画素を少なくとも含むように同一視差対象領域600を設定する。また、画像処理部205は、注目画素400を基準として、縦2方向、横2方向若しくは斜め2方向に位置する2つの左視差出力画素を少なくとも含むように同一視差対象領域600を設定してもよい。さらに、画像処理部205は、注目画素400を基準として、縦横4方向若しくは斜め4方向に位置する4つの左視差出力画素を少なくとも含むように同一視差対象領域600を設定してもよい。本実施例において、画像処理部205は、注目画素400を中心とし、縦横4方向および斜め4方向に位置する8つの左視差出力画素を含む5×5画素の同一視差対象領域600を設定する。
図25(a)は、実施例1の同一視差差分データセット生成処理における差分演算処理を説明する図である。画像処理部205の差分演算部231は、注目画素400を基準として、対象領域410に含まれる複数の左視差出力画素610、620、630、640、650、660、670、680に対する複数の差分画素値ΔLL(2,0)、ΔLL(2,2)、ΔLL(0,2)、ΔLL(−2,2)、ΔLL(−2,0)、ΔLL(−2,−2)、ΔLL(0,−2)、ΔLL(2,−2)を演算する。差分演算部231は、上述した差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)の演算と同様の手法で、差分画素値ΔLL(2,0)、ΔLL(2,2)、ΔLL(0,2)、ΔLL(−2,2)、ΔLL(−2,0)、ΔLL(−2,−2)、ΔLL(0,−2)、ΔLL(2,−2)を演算する。
図25(b)で示すように、画像処理部205のデータ生成部232は、上述の差分データ生成処理と同様の手法で、差分画素値ΔLL(2,0)、ΔLL(2,2)、ΔLL(0,2)、ΔLL(−2,2)、ΔLL(−2,0)、ΔLL(−2,−2)、ΔLL(0,−2)、ΔLL(2,−2)を予め定められた順序で並べたデータ列「−4、−2、2、4、2、6、0、−6」を同一視差差分データ690として生成する。
データ生成部232は、縦横4方向の差分画素値ΔLL(2,0)、ΔLL(0,2)、ΔLL(−2,0)、ΔLL(0,−2)を含めず、斜め4方向の差分画素値ΔLL(2,2)、ΔLL(−2,2)、ΔLL(−2,−2)、ΔLL(2,−2)を予め定められた順序で並べたデータ列「−2、4、6、−6」を同一視差差分データ690として生成してもよい。これにより、同一視差差分データ690のデータ量を少なくすることができる。
また、データ生成部232は、斜め4方向の差分画素値ΔLL(2,2)、ΔLL(−2,2)、ΔLL(−2,−2)、ΔLL(2,−2)を含めず、縦横4方向の差分画素値ΔLL(2,0)、ΔLL(0,2)、ΔLL(−2,0)、ΔLL(0,−2)を予め定められた順序で並べたデータ列「−4、2、2、0」を同一視差差分データ690として生成してもよい。これにより、同一視差差分データ690のデータ量を少なくすることができる。
画像処理部205のデータ生成部232は、図22で示される差分データセット500と同様のフォーマットの同一視差差分データセットを生成する。これにより、画像処理部205は、差分データセット同一視差差分データセットを用いて撮像画像における奥行きの有無を判断することができる。具体的には、画像処理部205は、差分データセットにおいて差分画素値が閾値を超えている箇所および同一視差差分データセットにおいて同一視差差分値が閾値を超えている箇所を分析して、奥行きの有無を判断する。なお、閾値は、ノイズレベルを超えた輝度の変化を示す値として予め設定される。
画像処理部205の記憶制御部233は、差分データセット500および同一視差差分データセットにおいて同一視差差分値が閾値を超えている箇所をファイル形式でメモリカード220に記憶させる。これにより、画像処理部205は、画像表示処理等の必要なタイミングで差分データセットおよび同一視差差分データセットにおいて同一視差差分値が閾値を超えている箇所を読み出し、撮像画像における奥行きの有無を判断することができる。
図12で示した画素配列を有する撮像素子100を用いた実施例2について説明する。図26は、実施例2における撮像画像データを説明する図である。開口部が中心よりも左側に偏心した視差L画素は、緑色の左視差出力画素を出力する。開口部が中心よりも右側に偏心した視差R画素は、緑色の右視差出力画素を出力する。視差なし画素であるR画素、G画素およびB画素は、赤色の視差なし出力画素、緑色の視差なし出力画素および青色の視差なし出力画素をそれぞれ出力する。
左視差出力画素群および右視差出力画素群は2視点の視差画像を形成する。本実施例において、左視差出力画素を第1視差出力画素、右視差出力画素を第2視差出力画素とする。なお、撮像画像データにおいて、撮像素子のx軸、y軸に対応するx軸、y軸を設定する。x軸プラス方向は右方向であり、y軸プラス方向は上方向である。撮像画像データ取得処理、注目画素設定処理、画素値取得処理および注目画素設定の判断処理は実施例1と同様である。
図27は、実施例2における領域設定処理を説明する図である。本実施例において、画像処理部205は、注目画素400を中心とし、注目画素を基準として横2方向および斜め4方向に位置する6つの右視差出力画素を含む5×5画素の対象領域700を設定する。このように、画像処理部205は、撮像素子100における視差L画素群および視差R画素群の配列パターンに応じて、実施例2における対象領域700を実施例1における対象領域410と異なる領域に設定する。
図28(a)は、実施例2における差分演算処理を説明する図である。画像処理部205の差分演算部231は、注目画素400を基準として、対象領域700に含まれる6つの右視差出力画素710、720、730、740、750、760に対する6つの差分画素値ΔLR(2,0)、ΔLR(2,2)、ΔLR(−2,2)、ΔLR(−2,0)、ΔLR(−2,−2)、ΔLR(2,−2)を演算する。差分演算部231は、上述した差分画素値ΔLR(1,1)、ΔLR(−1,1)、ΔLR(−1,−1)、ΔLR(1,−1)の演算と同様の手法で、差分画素値ΔLR(2,0)、ΔLR(2,2)、ΔLR(−2,2)、ΔLR(−2,0)、ΔLR(−2,−2)、ΔLR(2,−2)を演算する。
図28(b)で示すように、画像処理部205のデータ生成部232は、上述の差分データ生成処理と同様の手法で、差分画素値ΔLR(2,0)、ΔLR(2,2)、ΔLR(−2,2)、ΔLR(−2,0)、ΔLR(−2,−2)、ΔLR(2,−2)を予め定められた順序で並べたデータ列「−4、2、34、18、8、−8」を差分データ770として生成する。なお、データ生成部232は、横2方向の差分画素値ΔLR(2,0)、ΔLR(−2,0)を含めず、斜め4方向の差分画素値ΔLR(2,2)、ΔLR(−2,2)、ΔLR(−2,−2)、ΔLR(2,−2)を予め定められた順序で並べたデータ列「2、34、8、−8」を差分データ770として生成してもよい。これにより、差分データ770のデータ量を少なくすることができる。
画像処理部205のデータ生成部232は、上述の差分データセット生成処理と同様の手法で、差分データセット500を生成する。これにより、画像処理部205は、差分データセットを用いて撮像画像における奥行きの有無を判断することができる。具体的には、画像処理部205は、差分データセットにおいて差分画素値が閾値を超えている箇所を分析して、奥行きの有無を判断する。なお、閾値は、ノイズレベルを超えた輝度の変化を示す値として予め設定される。
画像処理部205の記憶制御部233は、差分データセット500をファイル形式でメモリカード220に記憶させる。これにより、画像処理部205は、画像表示処理等の必要なタイミングで差分データセットを読み出し、撮像画像における奥行きの有無を判断することができる。
図15で示した画素配列を有する撮像素子100を用いた場合、着色なしの左視差出力画素および右視差出力画素が出力される点のみ実施例2と異なる。そのため、図15で示した画素配列を有する撮像素子100を用いた場合も実施例2と同様の処理を実行することができる。
図13で示した画素配列を有する撮像素子100を用いた実施例3について説明する。図29は、実施例3における撮像画像データを説明する図である。開口部が中心よりも左側に偏心した視差L画素は、赤色の左視差出力画素、緑色の左視差出力画素、青色の左視差出力画素を出力する。開口部が中心よりも右側に偏心した視差R画素は、赤色の右視差出力画素、緑色の右視差出力画素、青色の右視差出力画素を出力する。視差なし画素であるG画素は、緑の視差なし出力画素を出力する。
左視差出力画素群および右視差出力画素群は2視点の視差画像を形成する。本実施例において、左視差出力画素を第1視差出力画素、右視差出力画素を第2視差出力画素とする。なお、撮像画像データにおいて、撮像素子のx軸、y軸に対応するx軸、y軸を設定する。x軸プラス方向は右方向であり、y軸プラス方向は上方向である。撮像画像データ取得処理、注目画素設定処理、画素値取得処理および注目画素設定の判断処理は実施例1と同様である。
図30から図32は、実施例3における領域設定処理を説明する図である。図30の場面では、緑色の左視差出力画素が注目画素400として設定されている。図31の場面では、青色の左視差出力画素が注目画素400として設定されている。図32の場面では、赤色の左視差出力画素が注目画素400として設定されている。色の違いによる画素値の差分が差分画素値に含まれなくするために、画像処理部205の差分演算部231は、同色の視差出力画素間の差分画素値を演算する必要がある。
そのため、画像処理部205は、図30の場面において、注目画素400を基準として、横2方向および斜め4方向に位置する6つの緑色の右視差出力画素を含む5×5画素の対象領域800を設定する。また、画像処理部205は、図31の場面において、注目画素400を基準として、横2方向および斜め4方向に位置する6つの青色の右視差出力画素を含む5×5画素の対象領域800を設定する。さらに、画像処理部205は、図32の場面において、注目画素400を基準として、横2方向および斜め4方向に位置する6つの赤色の右視差出力画素を含む5×5画素の対象領域800を設定する。
このように、画像処理部205は、注目画素400の色と同色の複数の右視差出力画素が含まれるように対象領域800を設定する。そして、画像処理部205は、色ごとに差分画素値を演算して色ごとの差分データセットを生成する。
画像処理部205のデータ生成部232は、上述の差分データセット生成処理と同様の手法で、差分データセット500を生成する。これにより、画像処理部205は、差分データセットを用いて撮像画像における奥行きの有無を判断することができる。具体的には、画像処理部205は、差分データセットにおいて差分画素値が閾値を超えている箇所を分析して、奥行きの有無を判断する。なお、閾値は、ノイズレベルを超えた輝度の変化を示す値として予め設定される。
画像処理部205の記憶制御部233は、差分データセット500をファイル形式でメモリカード220に記憶させる。これにより、画像処理部205は、画像表示処理等の必要なタイミングで差分データセットを読み出し、撮像画像における奥行きの有無を判断することができる。
以上の実施例において、左視差出力画素を第1視差出力画素、右視差出力画素を第2視差出力画素として説明した。しかし、第1視差出力画素および第2視差出力画素はこれに限られない。例えば、右視差出力画素を第1視差出力画素、左視差出力画素を第2視差出力画素とすることもできる。また、上下方向に視差を生じさせる上視差画像および下視差画像をそれぞれ出力する上視差画素群および下視差画素群が互いに異なる位置に配列された撮像素子100を用いて、上視差画素が出力する上視差出力画素を第1視差出力画素、下視差画素が出力する下視差出力画素を第2視差出力画素としてもよい。
また、以上の実施例において、データ生成部232は、予め定められた差分データ460の配置順序に従って、差分データ460(460−1、460−2、460−3、・・・460−N)を配置してもよい。具体的には、データ生成部232は、図18または図19の注目画素の設定順に従って、差分データ460(460−1、460−2、460−3、・・・460−N)を配置する。この場合に、差分データ460の配置順序が注目画素の位置に対応することから、データ生成部232は、基準画素以外の注目画素に対する位置情報520−2、520−3、・・・520−Nを省略してもよい。このように位置情報520−2、520−3、・・・520−Nを省略することにより、差分データセットのデータサイズを小さくすることができる。
上述した図16の処理フローのステップS102において、撮像画像データ内の複数の画素が基準画素として予め設定されていてもよい。具体的には、画像処理部205は、撮像画像データを複数の領域に区分し、各領域の中心部の第1視差出力画素を基準画素として予め設定する。また、画像処理部205は、撮像画像データの左端に配置されている複数の第1視差出力画素をすべて基準画素として予め設定してもよい。
複数の基準画素が予め設定されている場合に、画像処理部205は、予め定められた順序に従い、複数の基準画素から一つ選択して注目画素とする。選択した基準画素に対する差分データを生成した後に、画像処理部205は、選択した基準画素に対応する左視差出力画素を順次注目画素として設定し、差分データを順次生成する。そして、画像処理部205は、選択した基準画素に対応する左視差出力画素を注目画素として設定した場合に、予め定められた順序に従い、次の基準画素を選択する。なお、予め定められた順序は、例えば、左上から右方向に進み、右端に到着したら次は一つ下の左端に進む、の繰り返しである。
また、上述した図16の処理フローのステップS107において、画像処理部205は、基準画素を含む特定の領域内の第1視差出力画素が注目画素として設定されていない場合に、注目画素として設定されていない第1視差出力画素があると判断してもよい。さらに、画像処理部205は、バッファに他の差分データを保存できる容量が残っている場合に、注目画素として設定されていない第1視差出力画素があると判断してもよい。
画像処理部205は、差分データが生成されていない第1視差出力画素がある状態でステップS108の処理を実行した場合に、ステップS108の処理の後に他の第1視差出力画素を注目画素に設定するか否かを判断するようにしてもよい。この場合において、画像処理部205は、他の第1視差出力画素を注目画素に設定すると判断した場合にステップS102へ戻り、他の第1視差出力画素を注目画素に設定しないと判断した場合にステップS109へ進む。
さらに、画像処理部205は、上述した図16の処理フローにおいて、ステップS108の差分データセット処理をステップS107の判断処理の後に実行するようにしているがこれに限らない。例えば、画像処理部205は、ステップS106の差分データを生成した後に、ステップS108の差分データセット処理を実行し、ステップS107の判断処理を実行することもできる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。