<本技術を適用した画像処理システムの一実施の形態>
図1は、本技術を適用した画像処理システムの一実施の形態の構成例を示すブロック図である。
図1において、画像処理システムは、撮影装置11、画像処理装置12、及び、表示装置13を有する。
撮影装置11は、被写体を、複数の視点から撮影し、その結果得られる複数の視点の撮影画像を、画像処理装置12に供給する。
画像処理装置12は、撮影装置11からの複数の視点の撮影画像を用いた画像処理を行うことで、エミュレーション対象の光学レンズであるエミュレーションレンズを用いて被写体を撮影した場合と同様のエミュレーション画像を生成し、表示装置13に供給する。
表示装置13は、画像処理装置12からのエミュレーション画像を表示する。
エミュレーション画像は、例えば、一眼レフカメラやミラーレスカメラに着脱可能な光学レンズを用いて被写体を撮影した画像に生じるぼけ味を忠実に再現した画像になっている。したがって、ユーザは、高価な光学レンズを購入しなくても、そのような高価な光学レンズのぼけ味を享受することができる。
なお、図1において、画像処理システムを構成する撮影装置11、画像処理装置12、及び、表示装置13は、それらのすべてを、例えば、ディジタル(スチル/ビデオ)カメラや、スマートフォン等の携帯端末等のような、独立した装置に内蔵させることができる。
また、撮影装置11、画像処理装置12、及び、表示装置13は、それぞれを別個に、独立した装置に内蔵させることができる。
さらに、撮影装置11、画像処理装置12、及び、表示装置13は、それらのうちの任意の2つと、残りの1つとを、それぞれ別個に、独立した装置に内蔵させることができる。
例えば、撮影装置11及び表示装置13を、ユーザが所持する携帯端末に内蔵させ、画像処理装置12を、クラウド上のサーバに内蔵させることができる。
また、画像処理装置12の一部のブロックを、クラウド上のサーバに内蔵させ、画像処理装置12の残りのブロックと、撮影装置11及び表示装置13とを、携帯端末に内蔵させることができる。
<撮影装置11の構成例>
図2は、撮影装置11の構成例を示す平面図である。
撮影装置11は、複数のカメラユニット21iを有し、その複数のカメラユニット21iによって、複数の視点の撮影画像を撮影する。
図2では、撮影装置11は、複数としての、例えば、7個のカメラユニット211,212,213,214,215,216、及び、217を有し、それらの7個のカメラユニット211ないし217は、2次元平面上に配置されている。
さらに、図2では、7個のカメラユニット211ないし217は、それらのうちの1つである、例えば、カメラユニット211を中心として、他の6個のカメラユニット212ないし217が、カメラユニット211の周辺に、正6角形を構成するように配置されている。
したがって、図2では、7個のカメラユニット211ないし217のうちの、任意の1つのカメラユニット21i(i=1,2,...,7)と、そのカメラユニット21iに最も近い他の1つのカメラユニット21j(i=1,2,...,7)との(光軸どうしの)距離は、同一の距離Lになっている。
カメラユニット21iと21jとの距離Lとしては、例えば、20mm程度を採用することができる。この場合、撮影装置11は、ICカード等のカードサイズ程度の大きさに構成することができる。
なお、撮影装置11を構成するカメラユニット21iの数は、7個に限定されるものではなく、2個以上6個以下の数や、8個以上の数を採用することができる。
また、撮影装置11において、複数のカメラユニット21iは、上述のような正6角形等の正多角形を構成するように配置する他、任意の位置に配置することができる。
ここで、以下、カメラユニット211ないし217のうちの、中心に配置されたカメラユニット211を、基準カメラユニット211ともいい、その基準カメラユニット211の周辺に配置されたカメラユニット212ないし217を、周辺カメラユニット212ないし217ともいう。
<画像処理装置12の構成例>
図3は、図1の画像処理装置12の構成例を示すブロック図である。
図3において、画像処理装置12は、視差情報生成部31、キャリブレーションデータ取得部32、飽和画素復元部33、レンズ設計データ取得部34、及び、レンズエミュレーション部35を有する。
画像処理装置12には、撮影装置11から、カメラユニット211ないし217で撮影された7視点の撮影画像が供給される。
ここで、撮影装置11が画像処理装置12に供給する7視点の撮影画像としては、標準輝度撮影画像PL1ないしPL7と、低輝度撮影画像PH1ないしPH7とがある。
標準輝度撮影画像PL#iは、カメラユニット21iにおいて、例えば、撮影時に適切と推定される所定の露光時間(シャッタスピード)(以下、標準露光時間ともいう)で撮影された画像である。標準露光時間としては、例えば、自動露出機能によって設定された露光時間等を採用することができる。
低輝度撮影画像PH#iは、カメラユニット21iにおいて、標準露光時間よりも短い露光時間(標準露光時間に対応するシャッタスピードよりも速いシャッタスピード)で撮影された画像である。
したがって、低輝度撮影画像PH#iでは、大まかには、標準輝度撮影画像PL#iに映る被写体が、暗く映っている。
画像処理装置12において、標準輝度撮影画像PL#iは、視差情報生成部31、及び、飽和画素復元部33に供給され、低輝度撮影画像PH#iは、飽和画素復元部33に供給される。
視差情報生成部31は、撮影装置11から供給される標準輝度撮影画像PL#iを用いて、視差情報を求め、レンズエミュレーション部35を構成する、後述する入射光線再現部36、エミュレーションレンズ情報生成部37、及び、集光処理部38に供給する。
すなわち、視差情報生成部31は、撮影装置11から供給される標準輝度撮影画像PL#iそれぞれの、他の標準輝度撮影画像PL#jとの視差情報を求める処理を、複数の視点の標準輝度撮影画像PL#iの画像処理として行う。そして、視差情報生成部31は、その視差情報が登録された視差マップを生成し、レンズエミュレーション部35に供給する。
さらに、視差情報生成部31は、標準輝度撮影画像PL#iのうちの、基準カメラユニット211で撮影された標準輝度撮影画像PL1に対しては、後述する多層視差マップを生成し、レンズエミュレーション部35に供給する。
ここで、視差情報としては、視差(disparity)そのものの他、視差に対応する距離(奥行き)を採用することができる。本実施の形態では、視差情報として、視差及び距離のうちの、例えば、視差を採用することとする。
キャリブレーションデータ取得部32は、カメラユニット211ないし217の光学レンズの歪み値とシェーディング係数とを、キャリブレーションデータとして取得する。
ここで、キャリブレーションデータは、例えば、図示せぬメモリに記憶されており、あるいは、インターネット上のサーバ等から提供されている。キャリブレーションデータ取得部32は、メモリやインターネット上のサーバから、キャリブレーションデータを取得し、視差情報生成部31、及び、入射光線再現部36に供給する。
視差情報生成部31、及び、入射光線再現部36は、キャリブレーションデータ取得部32から供給されるキャリブレーションデータを用いて、周辺カメラユニット212ないし217で撮影された撮影画像(標準輝度撮影画像PL2ないしPL7、又は、後述するHDR撮影画像HD2ないしHD7)を、基準カメラユニット211で撮影された撮影画像(標準輝度撮影画像PL1、又は、後述するHDR撮影画像HD1)に合致させるキャリブレーション処理を行う。
すなわち、視差情報生成部31、及び、入射光線再現部36は、周辺カメラユニット212ないし217それぞれに代えて、基準カメラユニット211を用いて撮影を行ったならば得られるであろう撮影画像に、周辺カメラユニット212ないし217で撮影された撮影画像を補正するキャリブレーション処理を、キャリブレーションデータを用いて行う。
そして、視差情報生成部31、及び、入射光線再現部36は、周辺カメラユニット212ないし217で撮影された撮影画像については、キャリブレーション処理後の撮影画像を用いて、処理を行う。
なお、以下では、説明を簡単にするため、キャリブレーション処理については、言及しない。
飽和画素復元部33は、カメラユニット21iから供給される標準輝度撮影画像PL#iの画素のうちの、画素値が飽和している飽和画素の画素値を、カメラユニット21iから供給される低輝度撮影画像PH#iを用いて復元する。
飽和画素復元部33は、飽和画素の画素値の復元によって、標準輝度撮影画像PL#iを、その標準輝度撮影画像PL#iよりも高ダイナミックレンジの(画素値に割り当てられるビット数が多い)撮影画像HD#iに変換し、入射光線再現部36に供給する。
なお、飽和画素復元部33において、標準輝度撮影画像PL#iよりも高ダイナミックレンジの撮影画像HD#iは、入射光線再現部36の他、視差情報生成部31にも供給することができる。
この場合、視差情報生成部31では、標準輝度撮影画像PL#iに代えて、高ダイナミックレンジの撮影画像HD#iを用いて、視差情報を求める画像処理を行うことができる。高ダイナミックレンジの撮影画像HD#iを用いて、視差情報を求める場合には、視差情報を、より高精度に求めることができる。
ここで、以下、飽和画素の画素値の復元によって得られる高ダイナミックレンジの撮影画像HD#iを、HDR(High Dynamic Range)撮影画像HD#iともいう。
また、基準カメラユニット211で撮影された標準輝度撮影画像PL1及び低輝度撮影画像PH1、並びに、(それらの標準輝度撮影画像PL1及び低輝度撮影画像PH1から得られる)HDR撮影画像HD1を、以下、基準画像ともいう。
さらに、周辺カメラユニット21iで撮影された標準輝度撮影画像PL#i及び低輝度撮影画像PH#i、並びに、(それらの標準輝度撮影画像PL#i及び低輝度撮影画像PH#iから得られる)HDR撮影画像HD#iを、以下、周辺画像ともいう。
レンズ設計データ取得部34は、エミュレーション対象の光学レンズであるエミュレーションレンズのレンズ設計データを取得し、エミュレーションレンズ情報生成部37に供給する。
ここで、レンズ設計データは、例えば、図示せぬメモリに記憶されており、あるいは、インターネット上のサーバ等から提供されている。レンズ設計データ取得部34は、メモリやインターネット上のサーバから、レンズ設計データを取得し、エミュレーションレンズ情報生成部37に供給する。
なお、エミュレーションレンズは、実在する光学レンズである必要はなく、実在しない光学レンズであっても良い。実在しない光学レンズは、理論的にあり得る光学レンズであっても良いし、理論的にあり得ない光学レンズであっても良い。
エミュレーションレンズとして、実在しない光学レンズを採用する場合には、そのエミュレーションレンズのレンズ設計データは、例えば、ユーザが図示せぬ操作部を操作することにより入力する。レンズ設計データ取得部34は、ユーザが入力するレンズ設計データを取得する。
レンズエミュレーション部35は、レンズエミュレーション処理を行い、そのレンズエミュレーション処理によって得られるエミュレーション画像を、表示装置13(図1)に供給する。
レンズエミュレーション処理では、レンズエミュレーション部35は、視差情報生成部31から供給される視差マップ(必要に応じて、後述する多層視差マップを含む)、飽和画素復元部33から供給される7視点の撮影画像HD1ないしHD7、及び、レンズ設計データ取得部34から供給されるレンズ設計データを用い、被写体をエミュレーションレンズを用いて撮影したならば得られるであろう画像であるエミュレーション画像を生成する。
したがって、レンズエミュレーション部35は、エミュレーションレンズを有する撮影装置(図示せず)のエミュレーションを行うエミュレータとして機能する。
レンズエミュレーション部35は、入射光線再現部36、エミュレーションレンズ情報生成部37、及び、集光処理部38を有する。
入射光線再現部36は、飽和画素復元部33から供給される7視点の撮影画像HD1ないしHD7と、視差情報生成部31から供給される視差マップとを用いて、実空間内の実空間点から、仮想的な光学レンズである仮想レンズに入射する光線(の情報)を再現する入射光線再現処理を、7視点の撮影画像HD1ないしHD7の画像処理として行う。
ここで、入射光線再現部36で再現される光線が入射する仮想レンズは、入射光線再現部36に供給される7視点の撮影画像HD1ないしHD7(PL1なしいPL7)を撮影する複数の撮影部としてのカメラユニット211ないし217を合成開口とする仮想なレンズである。
カメラユニット211ないし217が、例えば、図2に示したように、正6角形状に配置され、1のカメラユニット21iと、そのカメラユニット21iに最も近い他の1つのカメラユニット21jとの距離がLになっている場合、仮想レンズの開口である合成開口は、周辺カメラユニット212ないし217の光軸を結ぶ、直径が2Lの略円形状になる。
入射光線再現部36は、仮想レンズに入射する光線を再現し、集光処理部38に供給する。
エミュレーションレンズ情報生成部37は、視差情報生成部31から供給される視差マップと、レンズ設計データ取得部34から供給されるレンズ設計データとを用いて、エミュレーションレンズの特性、すなわち、エミュレーションレンズを通過する光線を規定するエミュレーションレンズ情報を生成し、集光処理部38に供給する。
ここで、以下、エミュレーションレンズ情報を、単に、レンズ情報ともいう。
レンズ情報は、エミュレーションレンズと等価な価値を有するので、売買の対象とすることができる。レンズ情報は電子的なデータであり、複製が容易であるから、違法な複製を防止するため、レンズ情報の使用には、認証を義務づけることができる。
集光処理部38は、視差情報生成部31から供給される視差マップ、入射光線再現部36から供給される光線、及び、エミュレーションレンズ情報生成部37から供給されるレンズ情報を用いて、光線をエミュレーションレンズを介して、仮想的なイメージセンサである仮想センサ上に集光する(ディジタル)集光処理を行う。
そして、集光処理部38は、集光処理の結果得られるエミュレーション画像を、表示装置13(図1)に供給する。
なお、画像処理装置12は、サーバとして構成することもできるし、クライアントとして構成することもできる。さらに、画像処理装置12は、サーバクライアントシステムとして構成することもできる。画像処理装置12を、サーバクライアントシステムとして構成する場合には、画像処理装置12の任意の一部のブロックをサーバで構成し、残りのブロックをクライアントで構成することができる。
<画像処理システムの処理>
図4は、図1の画像処理システムの処理の例を説明するフローチャートである。
ステップS1において、撮影装置11は、複数の視点としての7視点の撮影画像PL1ないしPL7及びPH1ないしPH7を撮影する。撮影画像PL#iは、画像処理装置12(図3)の視差情報生成部31、及び、飽和画素復元部33に供給され、撮影画像PH#iは、飽和画素復元部33に供給される。
そして、処理は、ステップS1からステップS2に進み、視差情報生成部31は、撮影装置11から供給される撮影画像PL#iを用いて、視差情報を求め、その視差情報が登録された視差マップ(多層視差マップを含む)を生成する視差情報生成処理を行う。
視差情報生成部31は、視差情報生成処理により得られる視差マップを、レンズエミュレーション部35を構成する入射光線再現部36、エミュレーションレンズ情報生成部37、及び、集光処理部38に供給し、処理は、ステップS2からステップS3に進む。
ステップS3では、飽和画素復元部33は、カメラユニット21iから供給される撮影画像PL#iの画素のうちの飽和画素の画素値を、カメラユニット21iから供給される撮影画像PH#iを用いて復元する飽和画素復元処理を行う。
飽和画素復元部33は、飽和画素復元処理によって得られる高ダイナミックレンジの撮影画像HD#iを、入射光線再現部36に供給し、処理は、ステップS3からステップS4に進む。
ステップS4では、レンズ設計データ取得部34が、エミュレーションレンズのレンズ設計データを取得し、エミュレーションレンズ情報生成部37に供給する。
さらに、ステップS4では、エミュレーションレンズ情報生成部37が、視差情報生成部31から供給される視差マップと、レンズ設計データ取得部34から供給されるレンズ設計データとを用いて、エミュレーションレンズのレンズ情報を生成するエミュレーションレンズ情報生成処理を行う。
エミュレーションレンズ情報生成部37は、エミュレーションレンズ情報生成処理によって得られるレンズ情報を、集光処理部38に供給し、処理は、ステップS4からステップS5に進む。
ステップS5では、入射光線再現部36は、飽和画素復元部33から供給される7視点の撮影画像HD1ないしHD7と、視差情報生成部31から供給される視差マップとを用いて、実空間内の実空間点から、仮想レンズに入射する光線を再現する入射光線再現処理を行う。
入射光線再現部36は、入射光線再現処理によって得られる光線(の情報)を、集光処理部38に供給し、処理は、ステップS5からステップS6に進む。
ステップS6では、集光処理部38は、視差情報生成部31から供給される視差マップ、入射光線再現部36から供給される光線、及び、エミュレーションレンズ情報生成部37から供給されるレンズ情報を用いて、光線をエミュレーションレンズを介して、仮想センサ上に集光する集光処理を行う。
集光処理部38は、集光処理の結果得られるエミュレーション画像を、表示装置13に供給し、処理は、ステップS6からステップS7に進む。
ステップS7では、表示装置13が、集光処理部38からのエミュレーション画像を表示する。
<視差マップの生成>
図5は、図3の視差情報生成部31の構成例を示すブロック図である。
図5において、視差情報生成部31は、基準視差マップ生成部41、及び、多層視差マップ生成部42を有する。
基準視差マップ生成部41には、撮影装置11から撮影画像PL1ないしPL7が供給される。
基準視差マップ生成部41は、撮影装置11からの撮影画像PL1ないしPL7のうちの、1の画像である基準画像PL1の、他の撮影画像(周辺画像)PL2ないしPL7との視差を登録した視差マップである基準視差マップを生成し、多層視差マップ生成部42に供給する。
多層視差マップ生成部42は、例えば、基準視差マップ生成部41からの基準視差マップを用いて、周辺画像PL2ないしPL7の視差マップを生成する。
そして、多層視差マップ生成部42は、基準画像PL1の基準視差マップ、及び、周辺画像PL2ないしPL7の視差マップを用いて、基準カメラユニット211の視点(位置)を基準とする視差が登録された多層視差マップを生成する。
基準画像PL1の基準視差マップ、周辺画像PL2ないしPL7の視差マップ、及び、多層視差マップのうちの、必要な視差マップは、入射光線再現部36、エミュレーションレンズ情報生成部37、及び、集光処理部38(図3)に供給される。
図6は、図5の基準視差マップ生成部41での基準視差マップの生成の例を説明する図である。
すなわち、図6は、撮影画像PL1ないしPL7の例を示している。
図6では、撮影画像PL1ないしPL7には、所定の背景の手前側に、前景としての所定の物体objが映っている。撮影画像PL1ないしPL7それぞれについては、視点が異なるため、例えば、周辺画像PL2ないしPL7それぞれに映る物体objの位置は、基準画像PL1に映る物体objの位置から、視点が異なる分だけずれている。
基準視差マップ生成部41は、基準画像PL1の画素を、順次、注目画素に選択し、その注目画素に対応する対応画素(対応点)を、他の撮影画像PL2ないしPL7、すなわち、周辺画像PL2ないしPL7のそれぞれから検出する。
基準画像PL1の注目画素に対応する、周辺画像PL2ないしPL7それぞれの対応画素を検出する方法としては、例えば、ブロックマッチング等の任意の方法を採用することができる。
ここで、基準画像PL1の注目画素から、周辺画像PL#iの対応画素に向かうベクトル、すなわち、注目画素と対応画素との位置ずれを表すベクトルを、視差ベクトルv#i,1ということとする。
基準視差マップ生成部41は、周辺画像PL2ないしPL7のそれぞれについて視差ベクトルv2,1ないしv7,1を求める。そして、基準視差マップ生成部41は、視差ベクトルv2,1ないしv7,1の大きさを対象とした多数決を行い、その多数決に勝利した視差ベクトルv#i,1の大きさを、注目画素(の位置)の視差として求める。
ここで、撮影装置11において、図2で説明したように、基準画像PL1を撮影する基準カメラユニット211と、周辺画像PL#2ないしPL#7を撮影する周辺カメラユニット212ないし217それぞれとの距離が、同一の距離Lになっている場合に、基準画像PL1の注目画素に映る部分が、周辺画像PL#2ないしPL#7にも映っているときには、視差ベクトルv2,1ないしv7,1として、向きが異なるが、大きさが等しいベクトルが求められる。
すなわち、この場合、視差ベクトルv2,1ないしv7,1は、基準カメラユニット211に対する周辺画像PL#2ないしPL#7の位置(視点)に応じた向きの、大きさが等しいベクトルになる。
但し、撮影画像PL1ないしPL7それぞれの視点は異なるため、周辺画像PL#2ないしPL#7の中には、オクルージョンが生じている画像、すなわち、基準画像PL1の注目画素に映る部分が、前景に隠れて映っていない画像があり得る。
基準画像PL1の注目画素に映る部分が映っていない周辺画像(以下、オクルージョン画像ともいう)PL#iについては、注目画素に対応する対応画素として、正しい画素を検出することが困難である。
そのため、オクルージョン画像PL#iについては、基準画像PL1の注目画素に映る部分が映っている周辺画像PL#jの視差ベクトルv#j,1とは、大きさが異なる視差ベクトルv#i,1が求められる。
周辺画像PL#2ないしPL#7の中で、注目画素について、オクルージョンが生じている画像は、オクルージョンが生じてる画像よりも少ないと推定される。そこで、基準視差マップ生成部41は、上述のように、視差ベクトルv2,1ないしv7,1の大きさを対象とした多数決を行い、その多数決に勝利した視差ベクトルv#i,1の大きさを、注目画素の視差として求める。
図6では、視差ベクトルv2,1ないしv7,1の中で、3つの視差ベクトルv2,1,v3,1,v7,1が大きさが等しいベクトルになっている。また、視差ベクトルv4,1,v5,1,v6,1それぞれについては、大きさが等しい視差ベクトルが存在しない。
そのため、3つの視差ベクトルv2,1,v3,1,v7,1が大きさが、注目画素の視差として求められる。
なお、基準画像PL1の注目画素の、任意の周辺画像PL#iとの視差の方向は、基準カメラユニット211と、周辺カメラユニット21iとの位置関係から認識することができる。
基準視差マップ生成部41は、基準画像PL1の画素を、順次、注目画素に選択し、視差を求める。そして、基準視差マップ生成部41は、基準画像PL1の各画素の位置(xy座標)に対して、その画素の視差を登録した視差マップを、基準視差マップとして生成する。したがって、視差マップは、画素の位置と、その画素の視差とを対応付けたマップ(テーブル)である。
ここで、基準画像PL1の視差マップ(基準視差マップ)の他、周辺画像PL#iの視差マップも、同様に生成することができる。
但し、周辺画像PL#iの視差マップの生成にあたって、視差ベクトルの多数決は、周辺画像PL#iと、他の撮影画像PL#jとの視点の関係(カメラユニット21iと21jとの位置関係)に基づき、視差ベクトルの大きさを調整して行われる。
すなわち、例えば、周辺画像PL5の視差マップを生成する場合、例えば、周辺画像PL5と基準画像PL1との間で得られる視差ベクトルは、周辺画像PL5と周辺画像PL2との間で得られる視差ベクトルの2倍の大きさになる。
これは、周辺画像PL5を撮影する周辺カメラユニット215と、基準画像PL1を撮影する基準カメラユニット211との光軸どうしの距離である基線長が、距離Lであるのに対して、周辺画像PL5を撮影する周辺カメラユニット215と、周辺画像PL2を撮影する周辺カメラユニット212との基線長は、距離2Lになっているためである。
そこで、いま、例えば、周辺カメラユニット215と基準カメラユニット211との基線長である距離Lを、基準基線長ということとすると、視差ベクトルの多数決は、基線長が基準基線長Lに換算されるように、視差ベクトルの大きさを調整して行われる。
すなわち、例えば、周辺画像PL5を撮影する周辺カメラユニット215と、基準画像PL1を撮影する基準カメラユニット211の基線長Lは、基準基線長Lに等しいので、周辺画像PL5と基準画像PL1との間で得られる視差ベクトルは、その大きさが1倍に調整される。
また、例えば、周辺画像PL5を撮影する周辺カメラユニット215と、周辺画像PL2を撮影する周辺カメラユニット212の基線長2Lは、基準基線長Lの2倍に等しいので、周辺画像PL5と基準画像PL1との間で得られる視差ベクトルは、その大きさが1/2倍(基準基線長と、周辺カメラユニット215と周辺カメラユニット212との基線長との比の値倍)に調整される。
周辺画像PL5と他の撮影画像PL#iとの間で得られる視差ベクトルについても、同様に、その大きさが、基準基線長Lとの比の値倍に調整される。
そして、大きさの調整後の視差ベクトルを用いて、視差ベクトルの多数決が行われる。
なお、基準視差マップ生成部41において、基準画像PL1(の各画素)の視差は、例えば、撮影装置11で撮影される撮影画像の画素の精度で求めることができる。また、基準画像PL1の視差は、例えば、撮影装置11で撮影される撮影画像の画素より細かい精度(以下、画素以下精度ともいう)、すなわち、例えば、1/4画素等の精度で求めることができる。
視差を画素以下精度で求める場合、視差を用いる処理では、その画素以下精度の視差を、そのまま用いることもできるし、画素以下精度の視差の小数点以下を、切り捨て、切り上げ、又は、四捨五入等して整数化して用いることもできる。
本実施の形態では、視差を画素以下精度で求め、特に断らない限り、計算の容易化のために、画素以下精度の視差を整数化して用いることとする。
図7は、周辺画像PL#iの視差マップの生成の例を説明する図である。
周辺画像PL#iの視差マップは、基準画像PL1の視差マップ(基準視差マップ)と同様に生成することができる他、基準視差マップを利用して、いわば簡易的に生成することができる。
多層視差マップ生成部42(図5)は、周辺画像PL#iの視差マップを、基準視差マップを利用して生成することができる。
図7では、基準視差マップを利用して、周辺画像PL2及びPL5それぞれの視差マップが生成されている。
ここで、図7には、基準画像PL1、周辺画像PL2及びPL5と、その基準画像PL1、周辺画像PL2及びPL5それぞれの視差マップとが示されている。
基準画像PL1の視差マップ(基準視差マップ)としては、各画素の視差を、濃淡で表現した視差マップの平面図と、横軸を画素の水平位置とするとともに、縦軸を視差とする視差マップとが示されている。
周辺画像PL2及びPL5の視差マップについても、同様である。
多層視差マップ生成部42は、基準視差マップを利用して、周辺画像PL#iの視差マップを生成する場合、基準視差マップにおいて、基準画像を撮影するカメラユニット211と、周辺画像PL#iを撮影するカメラユニット21iとの位置関係に応じた方向(以下、カメラ位置関係方向ともいう)に、各画素の位置に登録されている視差を、その視差だけ移動することで、周辺画像PL#iの視差マップを生成する。
例えば、周辺画像PL2の視差マップを生成する場合には、周辺画像PL2を撮影するカメラユニット212から、基準画像を撮影するカメラユニット211を見た方向である左方向を、カメラ位置関係方向として、基準視差マップの各画素の位置に登録されている視差が、その視差だけ、カメラ位置関係方向である左方向に移動されることで、周辺画像PL2の視差マップが生成される。
また、例えば、周辺画像PL5の視差マップを生成する場合には、周辺画像PL5を撮影するカメラユニット215から、基準画像を撮影するカメラユニット211を見た方向である右方向を、カメラ位置関係方向として、基準視差マップの各画素の位置に登録されている視差が、その視差だけ、カメラ位置関係方向である右方向に移動されることで、周辺画像PL5の視差マップが生成される。
以上のように、基準視差マップを利用して、周辺画像PL#iの視差マップが生成された場合、その周辺画像PL#iの視差マップでは、周辺画像PL#iには映っているが、基準画像P1には映っていない部分の画素に対するエリアが、視差が登録されていない未登録エリア(図7において、斜線を付してある部分)になる。
そこで、多層視差マップ生成部42は、基準視差マップを利用して生成された周辺画像PL#iの視差マップの未登録エリアに、視差を補間することで、周辺画像PL#iの視差マップを完成させる。
図8は、周辺画像PL#iの視差マップの未登録エリアへの、視差の補間を説明する図である。
ここで、図8でも、図7と同様に、基準画像PL1、周辺画像PL2及びPL5と、その基準画像PL1、周辺画像PL2及びPL5それぞれの視差マップとが示されている。
多層視差マップ生成部42は、周辺画像PL#iの視差マップにおいて、未登録エリアの画素から、カメラ位置関係方向に延びる直線であるカメラ位置関係方向直線を、1方向と反対方向とのそれぞれに辿っていって、最初に到達する、視差が登録されている画素である視差登録画素を検出する。
さらに、多層視差マップ生成部42は、カメラ位置関係方向直線の1方向の視差登録画素の視差と、反対方向の視差登録画素の視差とのうちの、小さい方の視差(より遠い距離に対応する視差)を、未登録エリアの画素の補間に用いる補間視差に選択する。
そして、多層視差マップ生成部42は、未登録エリアの画素の視差を、補間視差で補間し(未登録エリアの画素の視差として、補間視差を登録し)、周辺画像PL#iの視差マップを完成させる。
図8では、周辺画像PL2の視差マップについては、未登録エリア(図7)の右側の境界に隣接する画素(視差登録画素)に登録されている視差が、補間視差に選択され、未登録エリアの画素の視差が、補間視差に補間されている(補間視差が、未登録エリアの画素の視差として伝搬されている)。
また、図8では、周辺画像PL5の視差マップについては、未登録エリア(図7)の左側の境界に隣接する画素(視差登録画素)に登録されている視差が、補間視差に選択され、未登録エリアの画素の視差が、補間視差に補間されている。
図9は、多層視差マップの生成の例を説明する図である。
ここで、図9でも、図7及び図8と同様に、基準画像PL1、周辺画像PL2及びPL5と、その基準画像PL1、周辺画像PL2及びPL5それぞれの視差マップとが示されている。
多層視差マップ生成部42は、基準画像PL1の基準視差マップ、及び、周辺画像PL2ないしPL7の視差マップ(の1以上)を用いて、多層視差マップを生成する。
すなわち、多層視差マップ生成部42は、周辺画像PL#iの各画素を、順次、注目画素に選択し、その注目画素に対応する、基準画像の対応画素を検出する。
例えば、周辺画像PL#iの注目画素の位置から、周辺画像PL#iの視差マップの注目画素に登録されている視差だけ、カメラ位置関係方向(ここでは、カメラユニット211からカメラユニット22iを見た方向)に移動した位置の基準画像PL1の画素が、周辺画像PL#iの注目画素に対応する、基準画像PL1の対応画素として検出される。
そして、基準視差マップにおいて、基準画像PL1の対応画素に対して、周辺画像PL#iの注目画素の視差が登録される。
多層視差マップの生成では、基準視差マップにおいて、基準画像PL1の対応画素に対して、視差が、既に登録されているが、周辺画像PL#iの注目画素の視差が、対応画素に対して既に登録されている視差と異なる場合には、その既に登録されている視差に追加する形で登録される。
以上のように、基準視差マップに、周辺画像PL#iの視差マップに登録されている視差が、追加する形で、いわば反映され、その反映後の基準視差マップが、多層視差マップとなる。
その結果、多層視差マップは、基準カメラユニット211の視点(以下、基準視点ともいう)から見える部分の視差の他、基準視点からでは、前景に隠れて見えない部分(オクルージョンが生じている部分)の少なくとも一部の視差が登録された視差マップとなる。
多層視差マップでは、例えば、前景の領域の画素に、その前景までの距離に対応する視差と、基準視点からでは、その前景の影に隠れて見えない背景までの距離に対応する視差とのような、いわば多層の視差(複数の視差)が登録される。
図10は、図5の視差情報生成部31での基準視差マップ及び多層視差マップそれぞれの生成の処理の例を説明するフローチャートである。
基準視差マップを生成する基準視差マップ生成処理では、ステップS11において、基準視差マップ生成部41は、撮影装置11からの周辺画像PL2ないしPL7のうちの、まだ、注目画像に選択していない画像の1つを、注目画像に選択し、処理は、ステップS12に進む。
ステップS12では、基準視差マップ生成部41は、撮影装置11からの基準画像PL1の各画素について、注目画像との視差ベクトルv(図6)を検出し、処理は、ステップS13に進む。
ステップS13では、基準視差マップ生成部41は、周辺画像PL2ないしPL7のすべてを、注目画像に選択したかどうかを判定する。
ステップS13において、まだ、周辺画像PL2ないしPL7のすべてを、注目画像に選択していないと判定された場合、処理は、ステップS11に戻り、以下、同様の処理が繰り返される。
また、ステップS13において、周辺画像PL2ないしPL7のすべてを、注目画像に選択したと判定された場合、処理は、ステップS14に進む。
ステップS14では、基準視差マップ生成部41は、図6で説明したように、基準画像の各画素について、周辺画像PL2ないしPL7のそれぞれに対して視差ベクトルv2,1ないしv7,1の大きさを対象とした多数決を行い、その多数決に勝利した視差ベクトルv#i,1の大きさを、視差に決定する。
そして、基準視差マップ生成部41は、基準画像の各画素に対して、視差を登録した基準視差マップを生成し、多層視差マップ生成部42に供給して、基準視差マップ生成処理は、終了する。
多層視差マップを生成する多層視差マップ生成処理では、ステップS21において、多層視差マップ生成部42は、図7で説明したように、基準視差マップ生成部41からの基準視差マップを用いて、周辺画像PL2ないしPL7の視差マップを生成し、処理は、ステップS22に進む。
ステップS22では、多層視差マップ生成部42は、図8で説明したように、周辺画像PL#iの視差マップの未登録エリアに、視差を補間することで、周辺画像PL#iの視差マップを完成させ、処理は、ステップS23に進む。
ステップS23では、多層視差マップ生成部42は、図9で説明したように、基準視差マップに、周辺画像PL2ないしPL7の視差マップを反映することで、多層視差マップを生成し、多層視差マップ生成処理は、終了する。
<飽和画素の復元>
図11は、実際の光学レンズを用いて、所定の被写体を撮影した実写画像の例を模式的に示す図である。
図11のAは、フォーカスをパンフォーカスに設定した実写画像の例を示している。
図11のAの実写画像では、奥側に位置する電球が、比較的、ぼけずに鮮明に映っている。
図11のBは、フォーカスを(光学レンズの主点から)、比較的手前の位置である、例えば、1mの距離に設定した実写画像の例を示している。
図11のBの実写画像では、1mの距離にある被写体(図11では、缶)は、ぼけずに鮮明に映っているが、その他の距離にある被写体は、ぼけて映っている。また、図11のBの実写画像では、奥側に位置する電球が、ぼけてはいるが、輝度が高いために、比較的鮮やかに映っている。
図12は、図3の画像処理装置12で得られるエミュレーション画像の例を示す図である。
図12のAは、画像処理装置12において、飽和画素復元処理を行わない場合に得られるエミュレーション画像の例を示している。
図12のAのエミュレーション画像では、図11のBの場合と同様に、フォーカスが手前の位置に設定されており、そのため、奥側に位置する電球が、ぼけている。
但し、図12のAのエミュレーション画像では、奥側に位置する電球が、ぼけてはいるが、図11のBの場合とは異なり、あまり、鮮やかではない。
図12のBは、画像処理装置12において、飽和画素復元処理を行う場合に得られるエミュレーション画像の例を示している。
図12のBのエミュレーション画像では、図11のBの場合と同様に、フォーカスが手前の位置に設定されており、そのため、奥側に位置する電球が、ぼけている。
さらに、図12のBのエミュレーション画像では、奥側に位置する電球が、図11のBの場合と同様に、鮮やかにぼけている。
したがって、飽和画素復元処理によれば、後で行われるレンズエミュレーション処理において、実際の光学レンズのぼけ味を、正確に再現することができる。
すなわち、飽和画素復元処理によれば、実際の光学レンズを用いて撮影された実写画像と同様の鮮やかなぼけを再現することができる。
図13は、飽和画素復元処理を行わない場合に、鮮やかなぼけが再現されない原理を説明する図である。
図13のAは、被写体の光強度の例を示している。
図13のAにおいて、横軸は、カメラユニット21iを構成する図示せぬイメージセンサの水平方向の位置(水平座標)を表し、縦軸は、そのイメージセンサに照射される被写体からの光の光強度を表す。
図13のAでは、非常に大きな光強度S0の光が、カメラユニット21i(のイメージセンサ)に照射されている。
図13のBは、カメラユニット21iにおいて、光強度S0の光を受光したときに出力される撮影画像の輝度の例を示している。
図13のBにおいて、横軸は、光強度S0の光を受光したカメラユニット21iが出力する撮影画像の水平方向の画素の位置を表し、縦軸は、その撮影画像の画素の輝度を表す。
光強度S0の光に対応する輝度は、カメラユニット21iが画素値として出力することができる最大値である撮影限界輝度THLを超えており、そのため、撮影画像では、光強度S0の光を発する被写体の輝度が、撮影限界輝度THLにカット(クランプ)されている。
ここで、撮影限界輝度THLに対応する光強度をS1(<S0)と表すこととする。
図13のCは、光強度S0の光に対応する輝度が、光強度S1に対応する撮影限界輝度THLにカットされた撮影画像を用いた、レンズエミュレーション処理で生成されるエミュレーション画像の例を示している。
図13のCにおいて、横軸は、エミュレーション画像の水平方向の画素の位置を表し、縦軸は、そのエミュレーション画像の画素の輝度を表す。
エミュレーション画像の生成において、光強度S1に対応する撮影限界輝度THLを画素値として有する画素に映る被写体がぼかされる場合、その被写体が映る画素の周辺に、光強度S1が分散する形になって、被写体の輝度は、撮影限界輝度THLから、さらに低下する。
以上のように、撮影限界輝度THLに対応する光強度S1よりも大きな光強度S0の光を発する被写体(例えば、電球等)は、撮影画像において、撮影限界輝度THLに対応する光強度S1の光を発する被写体として映る。
そして、そのような撮影限界輝度THLに対応する光強度S1の光を発する被写体が映る撮影画像を用いたエミュレーション画像の生成において、被写体がぼかされると、元の光強度S0よりも小さい光強度S1が分散し、被写体に、鮮やかさが現れない。
図14は、飽和画素復元処理を行うことで、鮮やかなぼけが再現される原理を説明する図である。
図14のAは、カメラユニット21iにおいて、光強度S0の光を受光したときに出力される撮影画像の輝度の例を示している。
図14のAの撮影画像の輝度は、図13のBと同様であり、光強度S0の光を発する被写体の輝度が、その光強度S0よりも小さい光強度S1に対応する撮影限界輝度THLにカットされている。
図14のBは、飽和画素復元処理後の撮影画像の輝度の例を示している。
飽和画素復元処理では、撮影画像において、画素値が撮影限界輝度THLにカットされた被写体の画素値として、撮影限界輝度THLに、式S1+S2≒S0を満たす光強度S2に対応する輝度が加えられた輝度が復元される。
その結果、飽和画素復元処理後の撮影画像では、画素値が撮影限界輝度THLにカットされた画素は、ほぼ、元の光強度S0≒S1+S2に対応する輝度を画素値として有する。
図14のCは、飽和画素復元処理後の撮影画像を用いて生成されるエミュレーション画像の例を示している。
図14のCにおいて、横軸は、エミュレーション画像の水平方向の画素の位置を表し、縦軸は、そのエミュレーション画像の画素の輝度を表す。
エミュレーション画像の生成において、光強度S1+S2に対応する輝度を画素値として有する画素に映る被写体がぼかされる場合、その被写体が映る画素の周辺に、光強度S1+S2は分散するが、光強度S1+S2は、非常に大きいため、分散しても、被写体の輝度は、飽和画素復元処理を行わない場合よりも高い輝度になる。
以上のように、飽和画素復元処理によれば、画素値が撮影限界輝度THLにカットされた、大きな光強度S0の光を発する被写体(例えば、電球等)の輝度が、(ほぼ)元の大きな光強度S0に対応する輝度に復元される。
そして、そのような大きな光強度S0に対応する輝度の被写体が映る撮影画像を用いたエミュレーション画像の生成(レンズエミュレーション処理)において、被写体がぼかされた場合には、被写体に、鮮やかなぼけが現れる。
したがって、実際の光学レンズを用いて撮影された実写画像と同様の鮮やかなぼけを再現することができる。
ここで、飽和画素復元部33は、図3で説明したように、カメラユニット21iから供給される標準輝度撮影画像PL#iの画素のうちの、画素値が飽和している飽和画素の画素値を、カメラユニット21iから供給される低輝度撮影画像PH#iを用いて復元する飽和画素復元処理を行う。
標準輝度撮影画像PL#iの画素の画素値が飽和しているとは、図13及び図14で説明したように、標準輝度撮影画像PL#iの画素の画素値が撮影限界輝度THLにカットされているか、又は、標準輝度撮影画像PL#iの画素の画素値が、撮影限界輝度THLに近いことを意味する。
また、飽和画素復元処理にあたっては、同一の被写体が映った標準輝度撮影画像PL#iと、低輝度撮影画像PH#iとが必要となる。同一の被写体が映った標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iを取得する方法としては、任意の方法を採用することができる。
以下では、同一の被写体が映った標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iを取得する方法として、第1の取得方法、第2の取得方法、及び、第3の取得方法について説明する。
なお、飽和画素復元処理の対象とする撮影画像は、Rawデータの画像、又は、輝度の線形性を保つために、ガンマ補正前のデモザイク画像であることが望ましい。
図15は、標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iを取得する第1の取得方法を説明する図である。
第1の取得方法では、撮影装置11を構成するすべてのカメラユニット211ないし217において、露光時間(シャッタスピード)を変更して、例えば、2回等の複数回の撮影を短時間で行う。
すなわち、第1の取得方法では、撮影装置11を構成するすべてのカメラユニット211ないし217において、標準露光時間(撮影時に適切と推定される、例えば、自動露出機能によって設定される露光時間等)での撮影と、その標準露光時間よりも短い露光時間での撮影とが、連続して行われる。
標準露光時間で撮影された撮影画像が、標準輝度撮影画像PL#iとなり、標準露光時間よりも短い露光時間で撮影された撮影画像が、低輝度撮影画像PH#iとなる。
したがって、第1の取得方法で得られる標準輝度撮影画像PL#iと低輝度撮影画像PH#iとは、異なるタイミングで撮影された画像である。
いま、標準露光時間をX[秒]と表すこととすると、その標準露光時間Xよりも短い、低輝度撮影画像PH#iの露光時間としては、例えば、X/16[秒]等を採用することができる。
図15は、カメラユニット211,212、及び、215それぞれで撮影される標準輝度撮影画像PL1,PL2、及び、PL5と、低輝度撮影画像PH1,PH2、及び、PH5との例を示している。
低輝度撮影画像PH#iの露光時間は、標準輝度撮影画像PL#iの標準露光時間よりも短いので、低輝度撮影画像PH#iでは、被写体が、標準輝度撮影画像PL#iよりも暗く映る。
図16は、図3の飽和画素復元部33の第1の構成例を示すブロック図である。
すなわち、図16は、標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iが、第1の取得方法により取得される場合の、飽和画素復元部33の構成例を示している。
図16において、飽和画素復元部33は、飽和判定部51、及び、復元部52を有する。
飽和判定部51には、撮影装置11(図1)から標準輝度撮影画像PL#iが供給される。
飽和判定部51は、撮影装置11からの標準輝度撮影画像PL#iの各画素が、飽和画素であるかどうかを判定する飽和判定を行い、その飽和判定の判定結果を、復元部52に供給する。
復元部52には、飽和判定部51から飽和判定の判定結果が供給される他、撮影装置11から標準輝度撮影画像PL#iと低輝度撮影画像PH#iとが供給される。
復元部52は、撮影装置11からの標準輝度撮影画像PL#iの画素のうちの飽和画素を、飽和判定部51からの飽和判定の判定結果(飽和判定結果)に応じて特定する。
さらに、復元部52は、飽和画素の画素値を、撮影装置11からの低輝度撮影画像PL#iを必要に応じて用いて復元し、その復元によって得られる、標準輝度撮影画像PL#iよりも高ダイナミックレンジのHDR撮影画像HD#iを、入射光線再現部36(図3)に供給する。
図17は、図16の飽和画素復元部33で行われる飽和画素復元処理の例を説明するフローチャートである。
ステップS31において、飽和判定部51は、7個のカメラユニット211ないし217の視点(位置)の中から、まだ、注目視点に選択していない視点の1つを、注目視点を選択し、処理は、ステップS32に進む。
ステップS32では、飽和判定部51は、撮影装置11から供給される7視点の標準輝度撮影画像PL1ないしPL7のうちの、注目視点の標準輝度撮影画像PL#iの画素の中から、まだ、注目画素に選択していない画素の1つを、注目画素に選択し、処理は、ステップS33に進む。
ステップS33では、飽和判定部51は、注目視点の標準輝度撮影画像PL#iの注目画素の画素値である標準画素値が、所定の閾値TH1以上であるかどうかの飽和判定を行う。
ステップS33において、注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値が、閾値TH1以上でないと判定された場合、すなわち、注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値が飽和していない場合、飽和判定部51は、標準画素値が飽和していない旨の飽和判定結果を、復元部52に供給し、処理は、ステップS34に進む。
ステップS34では、復元部52は、飽和判定部51からの、標準画素値が飽和していない旨の飽和判定結果に応じて、撮影装置11からの注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値を、注目視点のHDR撮影画像HD#iの、注目画素の位置の画素(この画素も、以下、注目画素ともいう)の画素値に選択し、処理は、ステップS37に進む。
一方、ステップS33において、注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値が、閾値TH1以上であると判定された場合、すなわち、注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値が飽和しているか、又は、飽和している可能性が高い場合、飽和判定部51は、標準画素値が飽和している旨の飽和判定結果を、復元部52に供給し、処理は、ステップS35に進む。
ステップS35では、復元部52は、飽和判定部51からの、標準画素値が飽和している旨の飽和判定結果に応じて、撮影装置11からの注目視点の低輝度撮影画像PH#iの、注目画素の位置の画素(この画素も、以下、注目画素ともいう)の画素値である低輝度画素値が、閾値TH1よりも小さい所定の閾値TH2以上であるかどうかを判定する。
ステップS35において、注目視点の低輝度撮影画像PH#iの注目画素の低輝度画素値が、閾値TH2以上でないと判定された場合、すなわち、注目視点の低輝度撮影画像PH#iの注目画素の低輝度画素値が小さく、ノイズである可能性が高い場合、処理は、ステップS34に進む。
ステップS34では、上述したように、復元部52が、注目視点の標準輝度撮影画像PL#iの注目画素の標準画素値を、注目視点のHDR撮影画像HD#iの注目画素の画素値に選択し、処理は、ステップS37に進む。
一方、ステップS35において、注目視点の低輝度撮影画像PH#iの注目画素の低輝度画素値が、閾値TH2以上であると判定された場合、すなわち、注目視点の低輝度撮影画像PH#iの注目画素の低輝度画素値がノイズではないとみなすことができる、ある程度の値になっている場合、処理は、ステップS36に進む。
ステップS36では、復元部52は、注目視点の低輝度撮影画像PH#iの注目画素の低輝度画素値を所定数倍にした画素値を、飽和画素を復元した復元画素値として求める。さらに、復元部52は、復元画素値を、注目視点のHDR撮影画像HD#iの注目画素の画素値に選択し、処理は、ステップS36からステップS37に進む。
ここで、復元画素値を求めるときに用いる所定数倍(以下、復元ゲインともいう)としては、標準輝度撮影画像PL#iの露光時間(標準露光時間)と、低輝度撮影画像PH#iの露光時間との比の値が採用される。
したがって、例えば、図15で説明したように、標準露光時間がX[秒]であり、低輝度撮影画像PH#iの露光時間がX/16[秒]である場合には、復元ゲインは、16=X/(X/16)倍になる。
ステップS37では、飽和判定部51は、注目視点の標準輝度撮影画像PL#iの画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS37において、まだ、注目視点の標準輝度撮影画像PL#iの画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS32に戻り、以下、同様の処理が繰り返される。
また、ステップS37において、注目視点の標準輝度撮影画像PL#iの画素のすべてを、注目画素に選択したと判定された場合、処理は、ステップS38に進む。
ステップS38では、飽和判定部51は、7視点のすべてを、注目視点に選択したかどうかを判定する。
ステップS38において、まだ、7視点のすべてを、注目視点に選択していないと判定された場合、処理は、ステップS31に戻り、以下、同様の処理が繰り返される。
また、ステップS38において、7視点のすべてを、注目視点に選択したと判定された場合、復元部52は、以上の処理により得られる7視点のHDR撮影画像HD1ないしHD7を、入射光線再現部36(図3)に供給し、飽和画素復元処理は、終了する。
なお、低輝度撮影画像PH#iとしては、露光時間が標準露光時間より短い第1の低輝度撮影画像と、露光時間が第1の低輝度撮影画像よりも短い第2の低輝度撮影画像とを採用することができる。
第1の取得方法では、撮影装置11において、露光時間を変更して、3回の撮影を連続して行うことにより、標準輝度撮影画像PL#i、第1の低輝度撮影画像、及び、第2の低輝度撮影画像を取得することができる。
第2の低輝度撮影画像は、標準輝度撮影画像の画素値が飽和し、さらに、第1の低輝度撮影画像の画素値も飽和している場合に、その画素値が飽和している飽和画素の復元に用いることができる。
図18は、飽和画素復元部33の第2の構成例を示すブロック図である。
すなわち、図18は、同一の被写体が映った標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iを、第2の取得方法により取得する場合の、飽和画素復元部33の構成例を示している。
なお、図中、図16の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
第2の取得方法では、撮影装置11を構成するすべてのカメラユニット211ないし217において、標準露光時間よりも小さい一定の露光時間で、複数回の撮影を短時間で行う高速撮影を行う。
そして、第2の取得方法では、カメラユニット21iの高速撮影により得られる複数の高速撮影画像を、異なる枚数だけ加算することにより、標準輝度撮影画像PL#iと低輝度撮影画像PH#iとが生成(取得)される。
例えば、高速撮影の露光時間が、1/4000秒である場合に、標準輝度撮影画像PL#iの露光時間(標準露光時間)を、1/60秒とするとともに、低輝度撮影画像PH#iの露光時間を、1/1000秒とするときには、標準輝度撮影画像PL#iと低輝度撮影画像PH#iとは、以下のように生成することができる。
すなわち、標準輝度撮影画像PL#iは、高速撮影画像を66枚又は67枚だけ加算することにより生成することができる。また、低輝度撮影画像PH#iは、高速撮影画像を4枚だけ加算することにより生成することができる。
図18では、飽和画素復元部33は、撮影装置11から、高速撮影画像が供給されることを前提として、その高速撮影画像から、第2の取得方法により、標準輝度撮影画像PL#iと低輝度撮影画像PH#iとを取得(生成)する。そして、飽和画素復元部33は、その標準輝度撮影画像PL#iと低輝度撮影画像PH#iとを用いて、飽和画素復元処理を行う。
すなわち、図18において、飽和画素復元部33は、飽和判定部51、復元部52、標準輝度撮影画像生成部61、及び、低輝度撮影画像生成部62を有する。
したがって、図18の飽和画素復元部33は、飽和判定部51、及び、復元部52を有する点で、図16の場合と共通する。
但し、図18の飽和画素復元部33は、標準輝度撮影画像生成部61、及び、低輝度撮影画像生成部62を有する点で、図16の場合と相違する。
標準輝度撮影画像生成部61、及び、低輝度撮影画像生成部62には、撮影装置11から、高速撮影によって得られた7視点の高速撮影画像が供給される。
標準輝度撮影画像生成部61は、7視点のそれぞれについて、撮影装置11からの高速撮影画像を、所定の枚数だけ加算することにより、標準輝度撮影画像PL#iを生成し、飽和判定部51、及び、復元部52に供給する。
低輝度撮影画像生成部62は、7視点のそれぞれについて、撮影装置11からの高速撮影画像を、標準輝度撮影画像生成部61より少ない枚数だけ加算することにより、低輝度撮影画像PH#iを生成し、飽和判定部51、及び、復元部52に供給する。
図19は、図18の飽和画素復元部33で行われる飽和画素復元処理の例を説明するフローチャートである。
ステップS41において、標準輝度撮影画像生成部61は、7視点のそれぞれについて、撮影装置11からの高速撮影画像を加算することにより、標準輝度撮影画像PL#iを生成し、飽和判定部51、及び、復元部52に供給する。
さらに、ステップS41では、低輝度撮影画像生成部62は、7視点のそれぞれについて、撮影装置11からの高速撮影画像を加算することにより、低輝度撮影画像PH#iを生成し、飽和判定部51、及び、復元部52に供給する。
そして、処理は、ステップS41からステップS42に進み、以下、ステップS42ないしS49において、図17のステップS31ないしS38とそれぞれ同様の処理が行われる。
図20は、撮影装置11の他の構成例を示す平面図である。
すなわち、図20は、同一の被写体が映った標準輝度撮影画像PL#i、及び、低輝度撮影画像PH#iを、第3の取得方法により取得する場合の、撮影装置11の構成例を示している。
図20では、撮影装置11は、19個のカメラユニットで構成される。
すなわち、図20では、1個のカメラユニットを、基準カメラユニットとし、基準カメラユニットを中心として、水平方向に5個のカメラユニットが配置されている。
さらに、基準カメラユニットを中心とする5個のカメラユニットの上下のそれぞれに、水平方向に並ぶ4個のカメラユニットが配置されている。
また、基準カメラユニットを中心とする5個のカメラユニットの上側の4個のカメラユニットの上には、水平方向に並ぶ3個のカメラユニットが配置されている。
さらに、基準カメラユニットを中心とする5個のカメラユニットの下側の4個のカメラユニットの下には、水平方向に並ぶ3個のカメラユニットが配置されている。
また、図20では、撮影装置11を構成する19個のカメラユニットのうちの、基準カメラユニットの左上、左下、右上、及び、右下にそれぞれ隣接する4個のカメラユニットは、ND(Neutral Density)フィルタが装着されたNDフィルタ付きカメラユニットになっている。
ここで、以下、NDフィルタが装着されていないカメラユニットを、通常カメラユニットともいう。
図20において、U1は、通常カメラユニットを表し、U2は、NDフィルタ付きカメラユニットを表す。
第1及び第2の取得方法では、複数回の撮影を行うことで、同一の被写体が映った、露光時間の異なる標準輝度撮影画像PL#iと低輝度撮影画像PH#iと取得したが、第3の取得方法では、1回の撮影(1shot撮影)だけで、標準輝度撮影画像PL#iと低輝度撮影画像PH#iと取得する。
すなわち、第3の取得方法では、撮影装置11の15=19-4個の通常カメラユニットU1と、4個のNDフィルタ付きカメラユニットU2とにおいて、例えば、標準露光時間の撮影が行われる。
通常カメラユニットU1において、標準露光時間の撮影が行われることにより、標準露光時間の標準輝度撮影画像を取得することができる。
一方、いま、4個のNDフィルタ付きカメラユニットU2それぞれにおいて、NDフィルタを介して観測される光の輝度が、NDフィルタを介さない場合の、例えば、1/16,1/256,1/4096 ,1/65536であるとする。すなわち、4個のNDフィルタ付きカメラユニットU2それぞれの光に対する感度が、通常カメラユニットU1の1/16,1/256,1/4096 ,1/65536であるとする。
この場合、4個のNDフィルタ付きカメラユニットU2それぞれにおいて、標準露光時間の撮影が行われることにより、等価的に、標準露光時間の1/16,1/256,1/4096 ,1/65536の露光時間の第1の低輝度撮影画像、第2の低輝度撮影画像、第3の低輝度撮影画像、及び、第4の低輝度撮影画像を取得することができる。
したがって、第3の取得方法で得られる標準輝度撮影画像、及び、第1ないし第4の低輝度撮影画像は、同一のタイミングで、異なる感度で撮影された、異なる視点の画像である。
図21は、飽和画素復元部33の第3の構成例を示すブロック図である。
すなわち、図21は、同一の被写体が映った標準輝度撮影画像、及び、低輝度撮影画像を、第3の取得方法により取得する場合の、飽和画素復元部33の構成例を示している。
図21において、飽和画素復元部33は、視差情報取得部71、標準輝度撮影画像生成部72、低輝度撮影画像生成部73、飽和判定部74、及び、復元部75を有する。
視差情報取得部71は、撮影装置11(図20)を構成する19視点(19個)のカメラユニットで撮影される撮影画像(標準輝度撮影画像、第1ないし第4の低輝度撮影画像)それぞれの視差マップを取得し、標準輝度撮影画像生成部72、及び、低輝度撮影画像生成部73に供給する。
視差情報取得部71において、19視点のカメラユニットで撮影される撮影画像それぞれの視差マップは、19視点のカメラユニットで撮影される撮影画像を用いて、視差情報生成部31(図3)の場合と同様に生成することができる。また、視差情報取得部71において、19視点のカメラユニットで撮影される撮影画像それぞれの視差マップは、視差情報生成部31から取得することができる。
標準輝度撮影画像生成部72には、視差情報取得部71から視差マップが供給される他、撮影装置11から、15視点の通常カメラユニットU1で撮影された標準輝度撮影画像が供給される。
標準輝度撮影画像生成部72は、4個のNDフィルタ付きカメラユニットU2の4視点(以下、NDカメラ視点ともいう)の標準輝度撮影画像を、撮影装置11からの15個の通常カメラユニットU1の15視点(以下、通常カメラ視点ともいう)の標準輝度撮影画像と、視差情報取得部71からの視差マップとを用いて生成し、撮影装置11からの15個の通常カメラ視点の標準輝度撮影画像とともに、飽和判定部74、及び、復元部75に供給する。
すなわち、標準輝度撮影画像生成部72は、NDカメラ視点の(第1ないし第4の)低輝度撮影画像の画素を、順次、注目画素に選択し、視差情報取得部71からの視差マップを参照することで、注目画素に対応する、通常カメラ視点の標準輝度撮影画像の対応画素を検出する。そして、標準輝度撮影画像生成部72は、通常カメラ視点の標準輝度撮影画像の対応画素の画素値を、NDカメラ視点の標準輝度撮影画像の注目画素の画素値として採用することで、NDカメラ視点の標準輝度撮影画像を生成する。
なお、NDカメラ視点の低輝度撮影画像の注目画素に対応する対応画素は、15個の通常カメラ視点の標準輝度撮影画像のそれぞれから検出することができる。
NDカメラ視点の通常輝度撮影画像の注目画素の画素値には、15個の通常カメラ視点の標準輝度撮影画像のそれぞれから検出される15個の対応画素のうちの、例えば、基準カメラユニット(19個のカメラユニットの中心のカメラユニット)の標準輝度撮影画像の対応画素の画素値を採用することができる。
また、NDカメラ視点の通常輝度撮影画像の注目画素の画素値には、15個の通常カメラ視点の標準輝度撮影画像のそれぞれから検出される15個の対応画素のうちの、例えば、画素値が近い対応画素の集合の中で、対応画素の数が最も多い集合の対応画素の画素値の平均値を採用することができる。
低輝度撮影画像生成部73には、視差情報取得部71から視差マップが供給される他、撮影装置11から、4個のNDカメラ視点のNDフィルタ付きカメラユニットU2で撮影された第1ないし第4の低輝度撮影画像が供給される。
低輝度撮影画像生成部73は、15個の通常カメラ視点の第1ないし第4の低輝度撮影画像を、撮影装置11からの4個のNDカメラ視点の第1ないし第4の低輝度撮影画像と、視差情報取得部71からの視差マップとを用いて生成し、撮影装置11からの4個のNDカメラ視点の第1ないし第4の低輝度撮影画像とともに、復元部75に供給する。
すなわち、低輝度撮影画像生成部73は、通常カメラ視点の標準輝度撮影画像の画素を、順次、注目画素に選択し、視差情報取得部71からの視差マップを参照することで、注目画素に対応する、NDカメラ視点の第1ないし第4の低輝度撮影画像それぞれの対応画素を検出する。そして、低輝度撮影画像生成部73は、NDカメラ視点の第1ないし第4の低輝度撮影画像それぞれの対応画素の画素値を、通常カメラ視点の第1ないし第4の低輝度撮影画像それぞれの注目画素の画素値として採用することで、通常カメラ視点の第1ないし第4の低輝度撮影画像を生成する。
以上のように、標準輝度撮影画像生成部72において、4個のNDカメラ視点の標準輝度撮影画像を生成するとともに、低輝度撮影画像生成部73において、15個の通常カメラ視点の第1ないし第4の低輝度撮影画像を生成することで、撮影装置11(図20)を構成する19個のカメラユニットの19の視点のすべてについて、標準輝度撮影画像と、第1ないし第4の低輝度撮影画像とを得ることができる。
なお、本実施の形態では、説明を簡単にするため、4個のNDカメラ視点の標準輝度撮影画像と、15個の通常カメラ視点の第1ないし第4の低輝度撮影画像とを、あらかじめ生成することとしたが、4個のNDカメラ視点の標準輝度撮影画像の画素値、及び、15個の通常カメラ視点の第1ないし第4の低輝度撮影画像の画素値は、必要な画素について、必要なときに生成することができる。
飽和判定部74は、標準輝度撮影画像生成部72からの19視点の標準輝度撮影画像それぞれの各画素が、飽和画素であるかどうかを判定する飽和判定を行い、その飽和判定の判定結果(飽和判定結果)を、復元部75に供給する。
復元部75には、上述したように、飽和判定部74から飽和判定の判定結果が供給される。さらに、復元部75には、上述したように、標準輝度撮影画像生成部72から、19視点の標準輝度撮影画像が供給されるとともに、低輝度撮影画像生成部73から、19視点の第1ないし第4の低輝度撮影画像が供給される。
また、復元部75には、例えば、図20の撮影装置11から、第1ないし第4の低輝度撮影画像用の復元ゲインが供給される。
ここで、第1の低輝度撮影画像用の復元ゲインとは、第1の低輝度撮影画像を用いて飽和画素の復元が行われるときに用いられる、図17で説明した復元ゲインである。
したがって、第1の低輝度撮影画像用の復元ゲインは、標準輝度撮影画像の露光時間(標準露光時間)と、第1の低輝度撮影画像の露光時間との比の値である。
例えば、図20で説明したように、第1の低輝度撮影画像の露光時間が、(等価的に)標準露光時間の1/16倍である場合には、第1の低輝度撮影画像用の復元ゲインは、16=1/(1/16)倍になる。
第2ないし第4の低輝度撮影画像用の復元ゲインも、第1の低輝度撮影画像用の復元ゲインと同様に求めることができる。
復元部75は、標準輝度撮影画像生成部72からの19視点の標準輝度撮影画像それぞれについて、飽和画素を、飽和判定部74からの飽和判定結果に応じて特定する。
さらに、復元部75は、飽和画素の画素値を、低輝度撮影画像生成部73からの第1ないし第4の低輝度撮影画像、及び、撮影装置11(図20)からの第1ないし第4の低輝度撮影画像用の復元ゲインを、必要に応じて用いて復元し、その復元によって得られる、標準輝度撮影画像よりも高ダイナミックレンジのHDR撮影画像を、入射光線再現部36(図3)に供給する。
図22は、視差マップの視差の補正の例を説明する図である。
図21の飽和画素復元部33では、上述したように、標準輝度撮影画像生成部72において、視差情報取得部71で取得された視差マップを参照することで、NDカメラ視点の低輝度撮影画像の注目画素に対応する、通常カメラ視点の標準輝度撮影画像の対応画素が検出される。また、低輝度撮影画像生成部73において、視差情報取得部71で取得された視差マップを参照することで、通常カメラ視点の標準輝度撮影画像の注目画素に対応する、NDカメラ視点の(第1ないし第4の)低輝度撮影画像の対応画素が検出される。
標準輝度撮影画像生成部72、及び、低輝度撮影画像生成部73において、以上のように、ある1視点の画像の注目画素に対応する、他の1視点の画像の対応画素を検出する際に参照される視差マップに登録される視差は、必要に応じて補正される。
ここで、説明を簡単にするため、撮影装置11が、図22に示すように、水平方向に並んだ3個のカメラユニットUa,Ub、及び、Ucで構成されることとする。
また、3個のカメラユニットUa,Ub、及び、Ucのうちの、例えば、一番左側のカメラユニットUaを、多層視差マップが生成される対象の基準画像を撮影する基準カメラユニットとする。
さらに、基準カメラユニットUaと、一番右側のカメラユニットUcとは、通常カメラユニットであり、中央のカメラユニットUbは、NDフィルタ付きカメラユニットであるとする。基準カメラユニットUaと、通常カメラユニットUcとでは、標準輝度撮影画像が撮影され、NDフィルタ付きカメラユニットUbでは、低輝度撮影画像が撮影される。
ここで、基準カメラユニットUaで撮影される標準輝度撮影画像を、基準画像Ua、又は、標準輝度撮影画像Uaともいう。また、NDフィルタ付きカメラユニットUbで撮影される低輝度撮影画像を、低輝度撮影画像Ubともいう。さらに、通常カメラユニットUcで撮影される標準輝度撮影画像を、標準輝度撮影画像Ucともいう。
いま、視差情報取得部71において、基準カメラユニットUaと通常カメラユニットUcとの基線長(光軸どうしの距離)を、基準基線長として、基準カメラユニットUaで撮影された標準輝度撮影画像(基準画像)Uaの視差マップ(基準視差マップ)が生成されたとする。
基準カメラユニットUaの視点(基準視点)以外の視点の視差マップ、すなわち、例えば、通常カメラユニットUcで撮影された標準輝度撮影画像Ucの視差マップは、図7及び図8で説明したように、基準視差マップを利用して、簡易的に生成することができる。
具体的には、通常カメラユニットUcで撮影された標準輝度撮影画像Ucの視差マップは、基準視差マップにおいて、図7で説明したように、基準カメラユニットUaと、通常カメラユニットUcとの位置関係に応じたカメラ位置関係方向に、各画素の位置に登録されている視差を、その視差だけ移動し、さらに、図8で説明したように、未登録エリアに、補間視差を補間することで生成することができる。
このように、基準視差マップを利用して生成された、標準輝度撮影画像Ucの視差マップに登録された視差は、基準カメラユニットUaと通常カメラユニットUcとの基線長である基準基線長だけ離れた2点に対する視差である。
そのため、標準輝度撮影画像Ucの注目画素に対応する、低輝度撮影画像Ubの対応画素を検出するときには、標準輝度撮影画像Ucの視差マップに登録された視差が、標準輝度撮影画像Ucを撮影する通常カメラユニットUcと、低輝度撮影画像Ubを撮影するNDフィルタ付きカメラユニットUbとの基線長だけ離れた2点に対する視差となるように補正される。
すなわち、いま、基準カメラユニットUaと通常カメラユニットUcとの基線長である基準基線長を、acと表すとともに、NDフィルタ付きカメラユニットUbと通常カメラユニットUcとの基線長をbcと表すこととすると、標準輝度撮影画像Ucの視差マップに登録された視差は、基線長bcと基準基線長との比の値bc/ac倍されるように補正される。
例えば、基準カメラユニットUaとNDフィルタ付きカメラユニットUbとの基線長ab、及び、NDフィルタ付きカメラユニットUbと通常カメラユニットUcとの基線長bcが、いずれも、5mmであるとする。
この場合、基準カメラユニットUaと通常カメラユニットUcとの基線長acである基準基線長は、10mmになる。
いま、基準視差マップを利用して生成された、標準輝度撮影画像Ucの視差マップに登録された注目画素の視差が、例えば、10(画素)であるとすると、その視差10は、基線長bc=5mmと基準基線長ac=10mmとの比の値5/10倍され、視差5に補正される。
そして、標準輝度撮影画像Ucの注目画素に対応する、低輝度撮影画像Ubの対応画素としては、注目画素の位置から、視差5だけずれた位置の低輝度撮影画像Ubの画素が検出される。
図23は、図21の飽和画素復元部33で行われる飽和画素復元処理の例を説明するフローチャートである。
ステップS61において、視差情報取得部71は、撮影装置11(図20)を構成する19視点のカメラユニットで撮影される撮影画像(標準輝度撮影画像、第1ないし第4の低輝度撮影画像)それぞれの視差マップを取得し、標準輝度撮影画像生成部72、及び、低輝度撮影画像生成部73に供給する。
さらに、ステップS61では、標準輝度撮影画像生成部72が、撮影装置11(図20)を構成する19視点のカメラユニットのうちの、15個の通常カメラ視点の標準輝度撮影画像と、視差情報取得部71からの視差マップとを用いて、4個のNDカメラ視点の標準輝度撮影画像を生成し、15個の通常カメラ視点の標準輝度撮影画像とともに、飽和判定部74、及び、復元部75に供給する。
また、ステップS61では、低輝度撮影画像生成部73が、撮影装置11からの4個のNDカメラ視点の第1ないし第4の低輝度撮影画像と、視差情報取得部71からの視差マップとを用いて、15個の通常カメラ視点の第1ないし第4の低輝度撮影画像を生成し、4個のNDカメラ視点の第1ないし第4の低輝度撮影画像とともに、復元部75に供給する。
そして、処理は、ステップS61からステップS62に進み、飽和判定部74は、撮影装置11(図20)を構成する19個のカメラユニットの19視点の中から、まだ、注目視点に選択していない視点の1つを、注目視点を選択し、処理は、ステップS63に進む。
ステップS63では、飽和判定部74は、標準輝度画像生成部72から供給される19視点の標準輝度撮影画像のうちの、注目視点の標準輝度撮影画像の画素の中から、まだ、注目画素に選択していない画素の1つを、注目画素に選択し、処理は、ステップS64に進む。
ステップS64では、注目視点のHDR撮影画像の注目画素(注目視点の標準輝度撮影画像の注目画素と同一位置の画素)の画素値を取得する処理が行われ、処理は、ステップS65に進む。
ステップS65では、飽和判定部74は、注目視点の標準輝度撮影画像の画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS65において、まだ、注目視点の標準輝度撮影画像の画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS63に戻り、以下、同様の処理が繰り返される。
また、ステップS65において、注目視点の標準輝度撮影画像の画素のすべてを、注目画素に選択したと判定された場合、処理は、ステップS66に進む。
ステップS66では、飽和判定部74は、撮影装置11(図20)を構成する19個のカメラユニットの19視点のすべてを、注目視点に選択したかどうかを判定する。
ステップS66において、まだ、19視点のすべてを、注目視点に選択していないと判定された場合、処理は、ステップS62に戻り、以下、同様の処理が繰り返される。
また、ステップS66において、19視点のすべてを、注目視点に選択したと判定された場合、復元部52は、以上の処理により得られる19視点のHDR撮影画像を、入射光線再現部36(図3)に供給し、飽和画素復元処理は、終了する。
なお、図23では、撮影装置11を構成する19個のカメラユニットの19視点のすべてを対象に、飽和画素復元処理を行うこととしたが、飽和画素復元処理は、19視点のうちの、15個の通常カメラ視点だけを対象に行うことができる。
この場合、飽和画素復元処理において得られるHDR撮影画像は、19視点のHDR撮影画像ではなく、15個の通常カメラ視点のHDR撮影画像となるが、図21の飽和画素復元部33は、標準輝度撮影画像生成部72を設けずに構成することができる。
図24は、図23のステップS64で行われる、注目視点のHDR撮影画像の注目画素の画素値を取得する処理の例を説明するフローチャートである。
ステップS71において、飽和画素判定部74は、標準輝度撮影画像生成部72からの注目視点の標準輝度撮影画像の注目画素の画素値を、注目画素の標準画素値として取得し、処理は、ステップS72に進む。
ステップS72では、飽和判定部74は、注目視点の標準輝度撮影画像の注目画素の標準画素値が、閾値TH1以上であるかどうかの飽和判定を行う。
ステップS72において、注目視点の標準輝度撮影画像の注目画素の標準画素値が、閾値TH1以上でないと判定された場合、すなわち、注目視点の標準輝度撮影画像の注目画素の標準画素値が飽和していない場合、飽和判定部74は、標準画素値が飽和していない旨の飽和判定結果を、復元部75(図21)に供給し、処理は、ステップS73に進む。
ステップS73では、復元部75は、飽和判定部74からの、標準画素値が飽和していない旨の飽和判定結果に応じて、標準輝度撮影画像生成部72からの注目視点の標準輝度撮影画像の注目画素の標準画素値を、注目視点のHDR撮影画像の注目画素(注目視点の標準輝度撮影画像の注目画素と同一位置の画素)の画素値に選択し、処理はリターンする。
一方、ステップS72において、注目視点の標準輝度撮影画像の注目画素の標準画素値が、閾値TH1以上であると判定された場合、すなわち、注目視点の標準輝度撮影画像の注目画素の標準画素値が飽和しているか、又は、飽和している可能性が高い場合、飽和判定部74は、標準画素値が飽和している旨の飽和判定結果を、復元部75に供給し、処理は、ステップS74に進む。
ステップS74では、復元部75は、飽和判定部74からの、標準画素値が飽和している旨の飽和判定結果に応じて、低輝度撮影画像生成部73からの注目視点の第1ないし第4の低輝度撮影画像の注目画素(注目視点の標準輝度撮影画像の注目画素と同一位置の画素)の画素値を、それぞれ、注目画素の第1ないし第4の低輝度画素値v1ないしv4として取得する。
さらに、復元部75は、撮影装置11から第1ないし第4の低輝度撮影画像用の復元ゲインg1ないしg4を取得し、処理は、ステップS74からステップS75に進む。
ステップS75では、復元部75は、注目視点の第1の低輝度撮影画像の注目画素の画素値である第1の低輝度画素値v1が、閾値TH1と、閾値TH1より小さい閾値TH2とを用いた式TH2<v1<TH1を満たすかどうかを判定する。
ステップS75において、第1の低輝度画素値v1が、式TH2<v1<TH1を満たすと判定された場合、すなわち、第1の低輝度画素値v1が、ノイズのように小さい値ではなく、かつ、飽和もしていない場合、処理は、ステップS76に進む。
ステップS76では、復元部75は、注目視点の第1の低輝度撮影画像の注目画素の画素値である第1の低輝度画素値v1を、第1の低輝度撮影画像用の復元ゲインg1倍した画素値を、飽和画素を復元した復元画素値として求める。さらに、復元部75は、復元画素値を、注目視点のHDR撮影画像の注目画素の画素値に選択し、処理はリターンする。
また、ステップS75において、第1の低輝度画素値v1が、式TH2<v1<TH1を満たさないと判定された場合、処理は、ステップS77に進む。
ステップS77では、復元部75は、注目視点の第2の低輝度撮影画像の注目画素の画素値である第2の低輝度画素値v2が、式TH2<v2<TH1を満たすかどうかを判定する。
ステップS77において、第2の低輝度画素値v2が、式TH2<v2<TH1を満たすと判定された場合、すなわち、第2の低輝度画素値v2が、ノイズのように小さい値ではなく、かつ、飽和もしていない場合、処理は、ステップS78に進む。
ステップS78では、復元部75は、注目視点の第2の低輝度撮影画像の注目画素の画素値である第2の低輝度画素値v2を、第2の低輝度撮影画像用の復元ゲインg2倍した画素値を、飽和画素を復元した復元画素値として求める。さらに、復元部75は、復元画素値を、注目視点のHDR撮影画像の注目画素の画素値に選択し、処理はリターンする。
また、ステップS77において、第2の低輝度画素値v2が、式TH2<v2<TH1を満たさないと判定された場合、処理は、ステップS79に進む。
ステップS79では、復元部75は、注目視点の第3の低輝度撮影画像の注目画素の画素値である第3の低輝度画素値v3が、式TH2<v3<TH1を満たすかどうかを判定する。
ステップS79において、第3の低輝度画素値v3が、式TH2<v3<TH1を満たすと判定された場合、すなわち、第3の低輝度画素値v3が、ノイズのように小さい値ではなく、かつ、飽和もしていない場合、処理は、ステップS80に進む。
ステップS80では、復元部75は、注目視点の第3の低輝度撮影画像の注目画素の画素値である第3の低輝度画素値v3を、第3の低輝度撮影画像用の復元ゲインg3倍した画素値を、飽和画素を復元した復元画素値として求める。さらに、復元部75は、復元画素値を、注目視点のHDR撮影画像の注目画素の画素値に選択し、処理はリターンする。
また、ステップS79において、第3の低輝度画素値v3が、式TH2<v3<TH1を満たさないと判定された場合、処理は、ステップS81に進む。
ステップS81では、復元部75は、注目視点の第4の低輝度撮影画像の注目画素の画素値である第4の低輝度画素値v4を、第4の低輝度撮影画像用の復元ゲインg4倍した画素値を、飽和画素を復元した復元画素値として求める。さらに、復元部75は、復元画素値を、注目視点のHDR撮影画像の注目画素の画素値に選択し、処理はリターンする。
なお、飽和画素復元処理の結果得られる、高ダイナミックレンジの複数の視点の(HDR)撮影画像は、視差情報生成部31での視差情報の生成や、レンズエミュレーション部35でのエミュレーション画像の生成の他、複数の視点の撮影画像が必要な任意の画像処理の対象とすることができる。
また、飽和画素復元処理は、複数のカメラユニット21iを有する撮影装置11等で撮影された、複数の視点の撮影画像の他、ライトフィールド技術を適用することができる任意の画像を対象として行うことにより、鮮やかなぼけを再現することができる。
ライトフィールド技術を適用することができる画像を撮影する方法としては、複数のカメラユニット21iを有する撮影装置11を用いて複数の視点の撮影画像を撮影する方法の他、例えば、Ren.Ng、他7名,"Light Field Photography with a Hand-Held Plenoptic Camera", Stanford Tech Report CTSR 2005-02に記載されている、MLA(Micro Lens Array)を用いて撮影を行う方法がある。
<レンズエミュレーション部35のレンズエミュレーション処理の概要>
図25は、図3のレンズエミュレーション部35のレンズエミュレーション処理の概要を説明する図である。
レンズエミュレーション処理では、入射光線再現部36(図3)において、撮影装置11の撮影の被写体となった実空間内に存在する物体上の点等の実空間点から発せられる光線(実空間点自体が発光する場合の、その実空間点が発する光の他、実空間点で反射された反射光を含む)のうちの、仮想レンズに入射する光線が再現される。
仮想レンズは、撮影装置11(図2)を構成するカメラユニット211ないし217を合成開口とする仮想なレンズであり、その実体は、カメラユニット211ないし217である。
また、レンズエミュレーション処理では、エミュレーションレンズ情報生成部37(図3)において、エミュレーションレンズを通過する光線を規定するレンズ情報(エミュレーションレンズ情報)が生成される。
図3で説明したように、エミュレーションレンズは、実在する光学レンズであっても良いし、実在しない光学レンズであっても良い。
また、レンズ情報としては、エミュレーションレンズの、点光源に対する応答を表すPSF(Point Spread Function)強度分布等がある。
レンズエミュレーション処理では、集光処理部38(図3)において、エミュレーションレンズ情報生成部37で得られるレンズ情報を用い、入射光線再現部36で再現される光線を、エミュレーションレンズを介して、仮想センサ上に集光する集光処理としてのディジタル信号処理が行われる。
仮想センサの実体は、例えば、図示せぬメモリであり、集光処理では、レンズ情報を用いて、光線の輝度に対応する値が、メモリ(の記憶値)に加算されることで、エミュレーション画像が生成される。
図26は、実際の光学レンズによる集光処理と、レンズエミュレーション処理の集光処理とを説明する図である。
図26のAは、実際の光学レンズによる集光処理を示している。
実際の光学レンズは、実空間内の物体から発せられる無数の光線をサンプリングし、実際の光学レンズのレンズ特性に従って、結像面に結像する。
実際の光学レンズでは、例えば、絞りによって、光学レンズでサンプリングされる光線の角度が変化する。
すなわち、絞りを絞った場合には、物体から、光軸に対して、大きな角度wで広がる光線は、光学レンズでサンプリングされない。一方、絞りを開いた場合には、物体から、光軸に対して、大きな角度wで広がる光線が、光学レンズでサンプリングされる。
図26のAの画像picAは、絞りを絞って撮影された画像であり、被写界深度が深く、全体的にフォーカスが合っているような画像になっている。また、画像picAでは、右上の子供のキャラクタの後ろに電球が存在するが、その電球から、光軸に対して、大きな角度で広がる光線が、光学レンズでサンプリングされておらず、そのため、子供のキャラクタの後ろには、電球が映っていない。
図26のAの画像picBは、絞りを開いて撮影された画像であり、被写界深度が浅く、一部分にのみフォーカスが合い、他の大部分がぼけた画像になっている。また、画像picBでは、右上の子供のキャラクタの後ろに電球が存在し、その電球から、光軸に対して、大きな角度で広がる光線が、光学レンズでサンプリングされており、そのため、子供のキャラクタの後ろに、電球の一部が映っている。
図26のBは、レンズエミュレーション処理の集光処理を示している。
レンズエミュレーション処理の集光処理では、撮影装置11の複数のカメラユニット21iにおいて撮影(記録)された、実空間内の物体から発せられる光線を用いて、その複数のカメラユニット21iを合成開口とする仮想レンズに入射する光線が再現(生成)される。
ここで、図26のBでは、複数としての3個のカメラユニット211,212、及び、215で、3本の光線が撮影されている。そして、その3本の光線の間を補間するように、仮想レンズに入射する光線が再現されている。
レンズエミュレーション処理の集光処理では、以上のように、仮想レンズに入射する光線が再現された後、その光線が、エミュレーションレンズのレンズ情報に従って、仮想センサ上に集光される。これにより、その集光の結果得られるエミュレーション画像において、実際にエミュレーションレンズを用いて撮影した場合と同様のぼけ味が再現される。
<仮想レンズに入射する光線の再現>
図27は、図3の入射光線再現部36の構成例を示すブロック図である。
図27において、入射光線再現部36は、実空間点選択部101、光線生成部102、衝突判定部103、及び、輝度割り当て部104を有する。
実空間点選択部101には、視差情報生成部31から視差マップが供給される。
実空間点選択部101は、視差情報生成部31からの視差マップのうちの多層視差マップを用いて、撮影装置11で撮影された実空間内の空間点を、注目実空間点に選択し、光線生成部102に供給する。
光線生成部102は、実空間点選択部101からの注目実空間点から、仮想レンズに入射する光線(としての直線)を生成し、衝突判定部103に供給する。
衝突判定部103には、光線生成部103から光線が供給される他、視差情報生成部31から視差マップが供給される。
衝突判定部103は、視差情報生成部31からの視差マップのうちの多層視差マップを用いて、光線生成部103からの光線が、仮想レンズに入射するまでに、実空間内の物体に衝突するかどうかを判定する衝突判定を行う。
そして、衝突判定部103は、衝突判定の結果残った光線を、輝度割り当て部104に供給する。
輝度割り当て部104には、衝突判定部103から光線が供給される他、視差情報生成部31から視差マップが供給されるとともに、飽和画素復元部33から複数としての7視点の(HDR)撮影画像HD#iが供給される。
輝度割り当て部104は、視差情報生成部31からの視差マップと、飽和画素復元部33からの撮影画像HD#iとを用いて、衝突判定部103から光線、すなわち、衝突判定の結果残った光線に、輝度を割り当て、その輝度の割り当て後の光線を、集光処理部38(図3)に供給する。
図28は、実空間点を説明する図である。
すなわち、図28は、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、上から見た場合の概略の平面図である。
ここで、実空間内の位置(実空間点)を規定する3次元座標系として、仮想レンズ又はエミュレーションレンズの主点を原点とするとともに、撮影装置11(図2)を正面から見たときの水平方向及び垂直方向をx軸及びy軸と、原点から奥行き方向(被写体の方向)をz軸と、それぞれする3次元座標系を用いることとする。
基準画像のある画素pに映る物体(被写体)の実空間内の位置である実空間点(x,y,z)は、画素pの基準画像上の位置(カメラユニット211の図示せぬイメージセンサ上の位置)と、その画素pの視差dとから求めることができる。
そこで、実空間点選択部101は、多層視差マップに登録されている画素pの位置と視差dとから、その視差dがある画素pに対応する実空間点(画素pに映り得る物体の実空間内の位置)を求める。
いま、多層視差マップに登録されている視差dがある実空間点(の集合)を、視差登録位置ということとすると、実空間点選択部101は、視差登録位置を構成する実空間点を、順次、注目実空間点に選択する。
なお、図28において、THETAは、基準画像(基準カメラユニット211)の水平方向の画角を表す。視差登録位置は、仮想レンズの光軸を中心として、画角THETAで広がる範囲に存在する。
仮想レンズの光軸は、基準画像の中心を通る、基準画像に垂直な直線(基準カメラユニット211の光軸)である。
図29は、多層視差マップを用いて、実空間点を求める求め方を説明する図である。
いま、多層視差マップを表現する多層視差マップ空間として、基準画像の水平方向及び垂直方向の位置を、x軸及びy軸とするとともに、視差情報生成部31(図3)で得られる視差の取り得る値を、z軸をとする3次元空間を用いることとする。
かかる多層視差マップ空間においては、位置(x,y)の画素の視差dは、位置(x,y,d)に、視差を登録する旨の視差フラグをたてることで登録することができる。
ここで、本実施の形態では、多層視差マップに登録し得る視差の最大値を、Dmaxと表すとともに、最小値を、Dminと表すこととする。この場合、多層視差マップ空間のz軸方向のサイズは、Dmax-Dmin+1となる。なお、Dminとしては、例えば、0(無限遠)を採用することができる。
また、多層視差マップに登録されている視差dは、例えば、式z=37.4/dに従って、仮想レンズの主点(基準カメラユニット211)からの奥行き方向の実空間内の距離zに変換することができる。
なお、視差dを、距離zに変換する式は、式z=37.4/dに限定されるものではなく、基準カメラユニット211の解像度や、画角、焦点距離によって異なる。
いま、基準画像の、x座標がXpicのある画素pを、注目画素pとして注目すると、図29の多層視差マップでは、注目画素pに対して、視差D1とD2とが登録されている。
実空間点選択部101は、注目画素pに対する視差D1及びD2を、順次、注目する注目視差に選択し、その注目視差がある注目画素pに対応する実空間点を、注目実空間点に選択する。
いま、視差D1及びD2のうちの、視差D1が、注目視差に選択されたこととする。
また、基準画像(視差マップ)の水平方向(x軸方向)の画素数を、widthと表すとともに、基準画像の水平方向の画角を、THEATAと表すこととする。さらに、注目視差D1がある注目画素pに対応する実空間点P1の、光軸からのx軸方向の位置(距離)を、x1と表すこととする。
実空間点選択部101は、まず、注目視差D1を、実空間の距離z=z1に変換する。
そして、実空間点選択部101は、注目視差D1に対応する距離z=z1を用いて、注目視差D1がある注目画素pに対応する実空間点P1の、光軸からのx軸方向の位置(距離)x1を求める。
すなわち、実空間における距離x1と、多層視差マップ空間における画素数Xpic-width/2とは、対応する。さらに、実空間における、水平方向の画角の1/2を表す距離z1×tan(THEATA/2)と、多層視差マップ空間における、水平方向の画角の1/2を表す画素数width/2とは、対応する。
x1とXpic-width/2との比と、z1×tan(THEATA/2)とwidth/2との比とは、一致するので、式x1:Xpic-width/2=z1×tan(THEATA/2):width/2が成り立つ。
したがって、注目視差D1がある注目画素pに対応する実空間点P1の、光軸からのx軸方向の位置x1は、式x1=((Xpix-width/2)(z1×tan(THEATA/2))/(width/2)に従って求めることができる。
実空間点選択部101は、以上のようにして、注目視差D1がある注目画素pに対応する実空間点P1の、光軸からのx軸方向の位置x1を求める。
実空間点選択部101は、同様にして、注目視差D1がある注目画素pに対応する実空間点P1の、光軸からのy軸方向の位置を求め、これにより、注目視差D1がある注目画素pに対応する実空間点P1(のxyz座標)を求める。
視差D2がある画素pに対応する実空間点も、同様にして求めることができる。
図30は、図27の光線生成部102で行われる光線の生成の例を説明する図である。
すなわち、図30は、仮想レンズを正面(被写体側)から見た正面図である。
光線生成部102は、仮想レンズ(の合成開口)を含むエリアをレンズエリアとして設定する。
図30では、仮想レンズを囲む、例えば、最小の矩形のエリアが、レンズエリアに設定されている。
光線生成部102は、レンズエリア(に囲まれた仮想レンズ)を、小領域であるレンズエリアユニットに分割し、実空間点を点光源とみなして、その点光源としての実空間点から、各レンズエリアユニット(の、例えば、中心)に入射する光線の生成、すなわち、実空間点から、各レンズエリアユニットに入射する光線としての直線の算出を行う。
図30では、レンズエリアは、水平方向がLx個で、垂直方向がLy個の、合計で、Lx×Ly個のレンズエリアユニットに分割されている。
この場合、光線生成部102では、1つの実空間点について、その実空間点と、Lx×Ly個のレンズエリアユニットのそれぞれとを結ぶLx×Ly本の直線が、仮想レンズに入射する光線として、密に生成される。
ここで、水平方向又は垂直方向に隣接するレンズエリアユニット(の中心)どうしの距離を、実空間点から発せられる2つの光線の角度を区別することができる角度分解能ということとする。
例えば、合成開口(仮想レンズの直径)が40mmであり、レンズエリアの水平方向及び垂直方向のレンズエリアユニットの数Lx及びLyが21個であるとすると、角度分解能は、40/21mmである。
また、レンズエリアを、レンズエリアユニットに分割する水平方向の直線と垂直方向の直線との交点である格子点を、格子点LP#i(i=1,2,...,(Lx+1)(Ly+1))とも記載することとする。
水平方向又は垂直方向に隣接する格子点LP#iとLP#jとの距離は、角度分解能を表す。
図31は、図27の衝突判定部103で行われる衝突判定と、輝度割り当て部104で行われる光線への輝度の割り当てとを説明する図である。
すなわち、図31は、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、上から見た場合の概略の平面図である。
衝突判定部103は、光線生成部103からの、実空間点から発せられ、仮想レンズのLx×Ly個のレンズエリアユニットに向かうLx×Ly本の光線が、仮想レンズに入射するまでに、実空間内の物体に衝突するかどうかを判定する衝突判定を、多層視差マップを用いて行う。
すなわち、衝突判定部103は、実空間点から発せられ、仮想レンズのレンズエリアユニットに向かう光線が、そのレンズエリアユニットに入射するまでに視差登録位置と衝突(交わる)場合、光線が衝突すると判定する。
一方、衝突判定部103は、実空間点から発せられ、仮想レンズのレンズエリアユニットに向かう光線が、そのレンズエリアユニットに入射するまでに視差登録位置と衝突しない場合、光線が衝突しないと判定する。
そして、衝突判定部103は、衝突判定の結果残った光線、すなわち、衝突しないと判定された光線を、輝度割り当て部104に供給する。
なお、衝突判定部103は、衝突判定の結果残った光線には、その光線を発した実空間点(x,y,z)に対応する視差d=Dを割り当て、衝突すると判定された光線には、その光線が衝突した視差登録位置に対応する視差d=D'を割り当てる。
衝突判定の後、ある実空間点(x,y,z)から発せられた光線が、物体に衝突せずに、仮想レンズに入射するかどうかは、その光線に割り当てられた視差が、その光線を発した実空間点(x,y,z)の視差に一致するかどうかで認識することができる。
すなわち、光線に割り当てられた視差が、その光線を発した実空間点(x,y,z)の視差に一致する場合、その光線は、物体に衝突せずに、仮想レンズに入射する。一方、光線に割り当てられた視差が、その光線を発した実空間点(x,y,z)の視差に一致しない場合、その光線は、光線に割り当てられた視差に対応する奥行きの位置で、物体に衝突し、仮想レンズには届かない。
輝度割り当て部104は、多層視差マップと、撮影画像HD#iとを用いて、衝突判定部103からの、衝突判定の結果残った光線に、輝度を割り当てる。
すなわち、輝度割り当て部104は、7視点の撮影画像HD1ないしHD7のそれぞれについて、衝突判定の結果残った光線を発する実空間点(x,y,z)に対応する対応画素を求める。
さらに、輝度割り当て部104は、視差マップを参照することにより、撮影画像HD1ないしHD7の対応画素の中で、実空間点(x,y,z)の奥行きzに対応する視差d=Dと一致する視差が登録されている画素を、輝度の割り当てに用いる光線輝度割り当て用画素として検出する。
そして、輝度割り当て部104は、光線輝度割り当て用画素の画素値としてのR(Red),G(Green),B(Blue)の値を用いて、光線に輝度を割り当てる。
すなわち、輝度割り当て部104は、例えば、光線輝度割り当て用画素の画素値(R,G,Bの値)の平均値を、光線の輝度として、光線に割り当てる。
以上のように、実空間点(x,y,z)から発せられた光線が、物体に衝突し、仮想レンズに入射しない場合、衝突判定部103において、その光線に対し、その光線が衝突した視差登録位置に対応する視差が割り当てられる。
一方、実空間点(x,y,z)から発せられた光線が、物体に衝突せずに、仮想レンズに入射する場合、衝突判定部103において、その光線に対し、その光線を発した実空間点(x,y,z)に対応する視差が割り当てられる。
さらに、物体に衝突せずに、仮想レンズに入射する光線に対しては、輝度割り当て部104において、輝度としての画素値(R,G,Bの値)が割り当てられる。
図32は、図27の入射光線再現部36が行う入射光線再現処理で得られる最大数のデータを模式的に示す図である。
いま、基準画像HD1が、N個の画素pix1,pix2,...,pix#Nで構成され、視差マップ(多層視差マップ)に登録し得る視差dが、最小値Dminから最大値Dmaxまでの、1画素刻みの、DPN=Dmax-Dmin+1個の整数値であるとする。
この場合、入射光線再現処理では、最大で、図32に示すように、N個の画素pix1,pix2,...,pix#Nのうちの任意の画素pix#nと、DPN個の視差Dmin,Dmin+1,...,Dmaxのうちの任意の視差dとの組み合わせ(pix#n,d)に対応する実空間点に対して、画素値テーブルが登録される。
組み合わせ(pix#n,d)に対応する実空間点に対する画素値テーブルには、図32に示すように、組み合わせ(pix#n,d)に対応する実空間点から、レンズエリア(図30)のLx×Ly個のレンズエリアユニットのうちの、左からi番目で、上からj番目のレンズエリアユニット(i,j)に向かう光線に割り当てられた視差Dが登録される。
さらに、組み合わせ(pix#n,d)に対応する実空間点から、レンズエリアユニット(i,j)に向かう光線に、輝度としてのR,G,Bの値が割り当てられている場合には、組み合わせ(pix#n,d)に対応する実空間点に対する画素値テーブルには、その輝度としてのR,G,Bの値が登録される。
図33は、図27の入射光線再現部36が行う入射光線再現処理の例を説明するフローチャートである。
ステップS101において、入射光線再現部36(図27)の実空間点選択部101、衝突判定部103、及び、輝度割り当て部104は、視差情報生成部31から、視差マップを取得し、処理は、ステップS102に進む。
ステップS102では、実空間点選択部101は、基準画像HD1の画素のうちの、まだ、注目画素に選択していない画素の1つを、注目画素に選択し、処理は、ステップS103に進む。
ステップS103では、実空間点選択部101は、視差情報生成部31からの視差マップ(多層視差マップ)を参照し、注目画素に登録されている視差のうちの、まだ、注目視差に選択していない視差の1つを、注目視差に選択し、処理は、ステップS104に進む。
ステップS104では、実空間点選択部101は、注目視差の注目画素(注目視差がある注目画素)に対応する実空間点(x,y,z)=(x0,y0,z0)を、注目実空間点に選択し、光線生成部102に供給して、処理は、ステップS105に進む。
ステップS105では、光線生成部102は、仮想レンズのレンズエリアユニット(図30)のうちの、まだ、注目レンズエリアユニットに選択していないレンズエリアユニットの1つを、注目レンズエリアユニットに選択し、処理は、ステップS106に進む。
ステップS106では、光線生成部102は、注目実空間点(x0,y0,z0)から、注目レンズエリアユニットの中心点(lx,ly,0)に向かう光線(を表す直線式)を、注目光線として生成し、衝突判定部103に供給して、処理は、ステップS107に進む。
ここで、注目実空間点(x0,y0,z0)から、注目レンズエリアユニットの中心点(lx,ly,0)に向かう光線としての直線は、式(x-lx)/(x0-lx)=(y-ly)/(y0-ly)=z/z0で表される。
ステップS107では、衝突判定部103は、光線生成部102からの注目光線を対象とした衝突判定を行い、処理は、ステップS108に進む。
ステップS108では、輝度割り当て部104は、衝突判定部103での衝突判定の判定結果(衝突判定結果)に基づき、注目光線が衝突するかどうかを判定する。
ステップS108において、注目光線が衝突しないと判定された場合、すなわち、衝突判定部103によるステップS107での衝突判定において、注目光線に、注目実空間点に対応する視差(注目視差)に等しい視差が割り当てられた場合、処理は、ステップS109に進む。
ステップS109では、輝度割り当て部104は、注目光線に輝度を割り当てる光線輝度割り当てを行い、集光処理部38に供給して、処理は、ステップS110に進む。
一方、ステップS108において、注目光線が衝突すると判定された場合、すなわち、衝突判定部103によるステップS107での衝突判定において、注目光線に、注目実空間点に対応する視差(注目視差)に等しくない視差が割り当てられた場合、処理は、ステップS109をスキップして、ステップS110に進む。
したがって、注目光線が衝突する場合、その注目光線については、ステップS109の光線輝度割り当ては行われない。
ステップS110では、光線生成部102は、仮想レンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したかどうかを判定する。
ステップS110において、まだ、仮想レンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択していないと判定された場合、処理は、ステップS105に戻り、以下、同様の処理が繰り返される。
また、ステップS110において、仮想レンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したと判定された場合、処理は、ステップS111に進む。
ステップS111では、実空間点選択部101は、多層視差マップにおいて注目画素に登録されている視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS111において、まだ、多層視差マップにおいて注目画素に登録されている視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS103に戻り、以下、同様の処理が繰り返される。
また、ステップS111において、多層視差マップにおいて注目画素に登録されている視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS112に進む。
ステップS112では、実空間点選択部101は、基準画像HD1の画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS112において、まだ、基準画像HD1の画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS102に戻り、以下、同様の処理が繰り返される。
また、ステップS112において、基準画像HD1の画素のすべてを、注目画素に選択したと判定された場合、入射光線再現処理は終了する。
図34は、図33のステップS107の衝突判定の処理の例を説明するフローチャートである。
ステップS121において、衝突判定部103は、衝突判定用の判定用視差dを、初期値としての最大値Dmaxに設定し、処理は、ステップS122に進む。
ステップS122では、衝突判定部103は、判定用視差dに対応する奥行き(距離)Zを求め、処理は、ステップS123に進む。
ステップS123では、衝突判定部103は、判定用視差dに対応する奥行きZが、注目実空間点(x0,y0,z0)の奥行きz0に等しいかどうかを判定する。
ステップS123において、判定用視差dに対応する奥行きZが、注目実空間点(x0,y0,z0)の奥行きz0に等しくないと判定された場合、処理は、ステップS124に進む。
ステップS124以降では、注目実空間点(x0,y0,z0)から注目レンズエリアユニットの中心点(lx,ly,0)に向かう注目光線が、判定用視差dに対応する奥行きZで、物体に衝突するかどうかが確認される。
すなわち、ステップS124では、衝突判定部103は、式z=Zで表される平面、すなわち、奥行きZの位置にある光軸に垂直な平面を、衝突判定用の平面としての判定層に設定し、処理は、ステップS125に進む。
ここで、視差dに対応する奥行き(距離)Zにある光軸に垂直な、式z=Zで表される平面を、以下、z=Zの視差平面ともいう。ステップS124では、z=Zの視差平面が、判定層に設定される。
ステップS125では、衝突判定部103は、注目光線と判定層との交点(Px,Py,Z)を求め、処理は、ステップS126に進む。
ここで、図33で説明したように、注目光線としての直線は、(x-lx)/(x0-lx)=(y-ly)/(y0-ly)=z/z0で表される。
したがって、注目光線のx座標とy座標とは、それぞれ、式x=z/z0(x0-lx)+lxと、式y=z/z0(y0-ly)+lyとで表される。
式x=z/z0(x0-lx)+lx、及び、式y=z/z0(y0-ly)+lyのzに、Zを代入することで、式z=Zで表される判定層上の注目光線のx座標及びy座標、すなわち、注目光線と判定層との交点(Px,Py,Z)のx座標Px及びy座標Pyを求めることができる。
したがって、x座標Px及びy座標Pyは、それぞれ、式x=Z/z0(x0-lx)+lx、及び、式y=Z/z0(y0-ly)+lyに従って求めることができる。
ステップS126では、衝突判定部103は、注目光線と判定層との交点(Px,Py,Z)に対応する基準画像の画素(以下、交点画素ともいう)を求め、処理は、ステップS127に進む。
ステップS127では、衝突判定部103は、多層視差マップにおいて、交点画素(の位置)に、判定用視差dが登録されているかどうか(交点画素に登録されている視差が判定用視差dに等しいかどうか)を判定する。
ステップS127において、交点画素に、判定用視差dが登録されていないと判定された場合、すなわち、注目光線と判定層との交点(Px,Py,Z)に、物体がなく、注目光線が、交点(Px,Py,Z)で衝突しない場合、処理は、ステップS128に進む。
ステップS128では、衝突判定部103は、判定用視差dを1だけデクリメントして(減少させて)、処理は、ステップS122に戻り、以下、同様の処理が繰り返される。
ここで、ステップS128において、判定用視差dがデクリメントされることで、判定層は、視差の最大値Dmaxに対応する、仮想レンズに最も近い位置から、注目実空間点(x0,y0,z0)に向かって移動していく。
また、ステップS127において、交点画素に、判定用視差dが登録されていると判定された場合、すなわち、注目光線と判定層との交点(Px,Py,Z)に、物体があり、注目光線が、交点(Px,Py,Z)で衝突する場合、処理は、ステップS129に進む。
ステップS129では、衝突判定部103は、注目光線が、仮想レンズに到達する前に、物体に衝突する旨の衝突判定結果を表すために、注目光線に、判定用視差dを割り当て、処理はリターンする。
一方、ステップS123において、判定用視差dに対応する奥行きZが、注目実空間点(x0,y0,z0)の奥行きz0に等しいと判定された場合、すなわち、視差の最大値Dmaxに対応する、仮想レンズに最も近い位置から、注目実空間点(x0,y0,z0)までの間、注目光線が、物体に衝突しなかった場合、処理は、ステップS130に進む。
ステップS130では、衝突判定部103は、注目光線が、仮想レンズに到達するまでに、物体に衝突しない旨の衝突判定結果を表すために、注目光線に、注目視差(この時点での判定用視差dでもある)、すなわち、注目実空間点(x0,y0,z0)に対応する視差dを割り当て、処理はリターンする。
なお、図34では、視差の最大値Dmaxを初期値とするとともに、注目実空間点(x0,y0,z0)に対応する視差をゴールとして、判定用視差を、初期値からゴールとなる視差までデクリメントすることとしたが、判定用視差は、視差の最大値Dmaxから、注目実空間点(x0,y0,z0)に対応する視差までの範囲に亘り、どのように値を変えても良い。
図35は、図33のステップS109の光線輝度割り当ての処理の例を説明するフローチャートである。
ステップS131において、輝度割り当て部104は、7視点の撮影画像HD1ないしHD7のそれぞれから、注目実空間点(x0,y0,z0)に対応する対応画素を検出し、処理は、ステップS132に進む。
ステップS132では、輝度割り当て部104は、例えば、撮影画像HD1ないしHD7それぞれの視差マップを参照することにより、撮影画像HD1ないしHD7の対応画素の中で、注目実空間点(x0,y0,z0)の奥行きz0に対応する視差d、すなわち、注目視差と一致する視差が登録されている画素を、輝度の割り当てに用いる光線輝度割り当て用画素として検出し、処理は、ステップS133に進む。
ステップS133では、輝度割り当て部104は、例えば、光線輝度割り当て用画素の画素値(R,G,Bの値)の平均値を、光線の輝度として、注目光線に割り当て、処理はリターンする。
以上のように、入射光線再現部36(図27)では、光線生成部102において、多層マップに視差が登録されている実空間点、つまり、撮影装置11が撮影を行う実空間に存在する物体上の点から、その撮影装置11を構成する7視点のカメラユニット211ないし217を合成開口とする仮想レンズに入射する光線としての直線が生成される。すなわち、入射光線再現部36では、実空間点から仮想レンズに入射する光線として、その光線を幾何学的に記述する直線が求められる。
さらに、入射光線再現部36では、衝突判定部103において、光線が、仮想レンズに入射するまでに物体に衝突するかを判定する衝突判定が行われる。
そして、入射光線再現部36では、輝度割り当て部104において、カメラユニット211ないし217で撮影された7視点の撮影画像HD1ないしHD7を用いて、衝突判定の結果残った光線に輝度が割り当てられる。
したがって、7視点の撮影画像HD1ないしHD7を用いて、仮想レンズ、ひいては、エミュレーションレンズに入射する光線群を再現することができる。
すなわち、エミュレーションレンズを構成する、例えば、いわゆる前玉のレンズを、仮想レンズに対応させることで、仮想レンズに入射する光線群は、エミュレーションレンズに入射する光線群ともなる。したがって、仮想レンズに入射する光線群を再現することにより、エミュレーションレンズに入射する光線群を再現することができる。
その結果、エミュレーションレンズに入射する光線群が、そのエミュレーションレンズで集光されることで生じるぼけ味を、後述する集光処理で再現することが可能となる。
<レンズ情報の生成>
図36は、図3のエミュレーションレンズ情報生成部37で生成されるレンズ情報を説明する図である。
レンズ情報(エミュレーションレンズ情報)としては、PSF強度分布、像面ピッチ、PSF角度成分情報、及び、像面シフト情報がある。
PSF強度分布は、エミュレーションレンズの、点光源から発せられる光線に対する応答を表す。
像面ピッチは、PSF強度分布のスケールを表す。
PSF角度成分情報は、点光源から発せられる光線が、エミュレーションレンズを介して到達するPSF強度分布の位置を表す。
像面シフト情報は、実空間点から発せられる光線のうちの、主光線がエミュレーションレンズを介して到達する仮想センサ上の位置である像面シフト位置を表す。
図37は、レンズ情報を生成する対象となる実空間点とフォーカス位置とを説明する図である。
すなわち、図37は、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略の側面図である。
レンズ情報は、エミュレーションレンズを通過する光線を規定する情報であり、その光線は、実空間点から発せられる。
また、エミュレーションレンズを通過する光線は、仮想センサ上に集光されるが、光線の集光の仕方は、エミュレーションレンズのフォーカス位置(焦点距離)fによって異なる。
したがって、レンズ情報は、エミュレーションレンズのフォーカス位置fごとに、最大で、画像処理装置12(図3)で扱うべき実空間点の最大数(以下、最大実空間点数ともいう)に等しい数だけ生成することができる。
いま、図32で説明したように、基準画像HD1が、N個の画素pix1,pix2,...,pix#Nで構成され、視差マップ(多層視差マップ)に登録し得る視差dが、最小値Dminから最大値Dmaxまでの、1画素刻みの、DPN=Dmax-Dmin+1個の整数値であるとする。
この場合、最大実空間点数は、N×DPN個になる。
また、いま、エミュレーションレンズのフォーカス位置fとして、f1,f2,...,f#FmaxのFmax個の位置を取り得ることとする。
この場合、レンズ情報は、最大で、Fmax×N×DPN個だけ生成することができる。
ここで、本実施の形態では、仮想センサのサイズ(スケール)は、エミュレーションレンズに基づいて規定する。
例えば、エミュレーションレンズが、35mmフルサイズのイメージセンサ用の光学レンズである場合、そのようなエミュレーションレンズに基づいて、仮想センサのサイズは、35mmフルサイズに設定される。すなわち、仮想センサの横及び縦のサイズは、例えば、それぞれ、36mm及び24mmに設定される。
さらに、本実施の形態では、仮想センサのピクセルピッチは、基準画像の画素数(解像度)に基づいて、仮想センサが、基準画像の画素数と同一の画素数(又は、基準画像の画素数未満の画素数)を有するように規定する。
例えば、エミュレーションレンズが、35mmフルサイズのイメージセンサ用の光学レンズであり、基準画像の水平方向の画素数が、Nx画素である場合、上述のように仮想センサの横のサイズは36mmであるので、仮想センサのピクセルピッチは、36mm/Nxとなる。
なお、ある実空間点(X,Y,Z)は、奥行きz=Zに対応する視差d=Dがある、基準画像のある画素に対応する。
また、仮想センサのピクセルピッチは、基準画像の画素数(解像度)に基づいて規定するので、仮想センサの画素は、基準画像の画素に対応させることができる。仮想センサが、基準画像の画素数と同一の画素数を有する場合には、基準画像の画素と、その画素と同一の位置にある仮想センサの画素とが対応する。
さらに、基準画像のある画素の視差を、そのまま、その画素に対応する仮想センサの画素の視差として採用すると、実空間点(X,Y,Z)は、奥行きz=Zに対応する視差d=Dがある、仮想センサのある画素に対応する。
この場合、ある実空間点に対するレンズ情報は、その実空間点に対応する仮想センサの画素(位置)と視差との組み合わせに対するレンズ情報であるとみなすことができる。
図38は、ある光学レンズのPSF強度分布の例を示す図である。
図38において、水平方向は、光学レンズのフォーカス位置fを表し、垂直方向は、光学レンズからの光が結像する結像面上の結像位置の、光学中心からの距離である像高を表す。
ここで、結像面は、仮想センサの面に相当する。また、図38の水平方向については、左方向は、光学レンズに対して近いフォーカス位置fを表し、右方向は、光学レンズに対して遠いフォーカス位置fを表す。さらに、図38の垂直方向については、上方向は、小さい像高を表し、下方向は、大きい像高を表す。
図38に示すように、PSF強度分布は、光学レンズのフォーカス位置fによって異なる。
また、PSF強度分布は、結像位置の像高、すなわち、仮想センサの平面上の位置によって、異なる。
さらに、PSF強度分布は、光学レンズの主点から被写体(ここでは、点光源)までの距離、すなわち、被写体の視差によっても、異なる。
したがって、PSF強度分布は、例えば、フォーカス位置fと、仮想センサの画素(の位置)と、被写体の視差との組によって異なる。
図39は、PSF強度分布を生成する方法の例を説明する図である。
図39は、図37と同様に、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略を示している。
エミュレーションレンズ情報生成部37は、最大で、Fmax個のフォーカス位置fそれぞれについて、最大実空間点数N×DPNの実空間点、すなわち、仮想センサを構成する画素の最大数Nと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応する実空間点に対して、PSF強度分布を生成する。
ここで、仮想センサを構成する画素の最大数Nは、基準画像HD1を構成する画素pix1ないしpix#Nの数Nに等しい。図37で説明したように、本実施の形態では、説明を簡単にするため、仮想センサは、基準画像HD1と同様に、画素pix1ないしpix#NのN個で構成されることとする。
エミュレーションレンズ情報生成部37は、実空間点に対して、点光源を設定し、その実空間点に設定した点光源から発せられる光線を追跡する光線追跡を、エミュレーションレンズのレンズ設計データを用いて行うことにより、PSF強度分布を生成する。
光線追跡では、点光源から発せられる光線を、入射ベクトルとして、その入射ベクトルと、エミュレーションレンズの最も被写体側の屈折面との交点が算出され、その交点から入射する光線としての入射ベクトルが屈折面で屈折されて射出されるベクトルが、射出ベクトルとして算出される。
さらに、光線追跡では、射出ベクトルを、次の屈折面への入射ベクトルとして、その入射ベクトルと、次の屈折面との交点が算出される。
光線追跡では、以上の処理が、エミュレーションレンズの最後の屈折面まで繰り返される。
そして、エミュレーションレンズ情報生成部37では、エミュレーションレンズの最後の屈折面から射出された射出ベクトルを、仮想センサ上で観測し、その観測の結果得られる射出ベクトルとしての光線の光強度を記録することで、PSF強度分布が生成される。
いま、エミュレーションレンズ情報生成部37は、実空間点(の点光源)から発せられる主光線、すなわち、実空間点から発せられる光線のうちの、エミュレーションレンズの主点Oを通る光線である主光線が仮想センサに到達する位置を中心(重心)とする矩形のエリアを、分布エリアということとする。
分布エリアとしては、例えば、実空間点から発せられる主光線を中心とする矩形のエリアであって、実空間点から発せられる光線がエミュレーションレンズを介して到達する仮想センサ上の点を囲む最小の(又は最小に近い)矩形のエリアを採用することができる。さらに、分布エリアは、横×縦がPX×PYの解像度で、情報の記録が可能なエリアになっていることとする。PX及びPYとしては、例えば、255を採用することができる。
エミュレーションレンズ情報生成部37は、PSF強度分布となる光強度を、分布エリアに、横×縦がPX×PYの解像度で記録することで、PSF強度分布を生成する。
図40は、エミュレーションレンズ情報生成部37で生成されるPSF強度分布を模式的に示す図である。
図39で説明したように、PSF強度分布は、最大で、Fmax個のフォーカス位置fそれぞれについて、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、視差マップに登録し得るDPN個の視差dそれぞれとの、N×DPN個の組み合わせに対応する実空間点に対して生成される。
いま、例えば、図40に示すように、横方向を、DPN個の視差dとするとともに、縦方向を、仮想センサを構成するN個の画素pix1ないしpix#Nとして、ある視差dと、ある画素pix#nとの組み合わせに対応する実空間点に対するPSF強度分布を登録したテーブルを、フォーカス位置fの強度分布テーブルということとする。
エミュレーションレンズ情報生成部37では、Fmax個のフォーカス位置fそれぞれの強度分布テーブルが生成される。
強度分布テーブルに登録されるPSF強度分布は、図39で説明したように、分布エリアに、横×縦がPX×PYの解像度で記録されている。
したがって、PSF強度分布を配列に記録する場合、そのPSF強度分布の配列の数は、最大で、Fmax×N×DPN×PX×PYになる。
ここで、分布エリアにおいて、PSF強度分布の1の光強度が記録される単位(PSF強度分布のサンプリングの単位)を、分布エリアユニットということとする。分布エリアユニットは、例えば、正方形のエリアとして観念することができる。
分布エリアは、図39で説明したように、実空間点から発せられる光線が到達する仮想センサ上の点を囲む最小の矩形のエリアであるため、可変のサイズになっている。
また、図38で説明したように、PSF強度分布は、フォーカス位置fや、結像位置の像高(実空間点(点光源)と光軸との距離)、被写体(実空間点(点光源))までの距離(視差)によって異なる。
そして、そのようなPSF強度分布を囲む最小の分布エリアのサイズ(スケール)も、PSF強度分布ごとに異なる。
集光処理では、後述するように、サイズの異なる分布エリアに記録されたPSF強度分布に応じた、仮想センサ上に結像する光線の結像値を加算することで、エミュレーション画像が生成される。
PSF強度分布に応じた結像値を加算するにあたっては、サイズの異なる分布エリアに記録されたPSF強度分布に応じた結像値の分布のスケールを、仮想センサのスケールに一致させる必要がある。そして、そのためには、PSF強度分布のスケールを表す情報が必要となる。
そこで、エミュレーションレンズ情報生成部37は、PSF強度分布が記録された分布エリアを構成する分布エリアユニットのサイズ(ピッチ)である像面ピッチを、PSF強度分布のスケールを表す情報として求める。
いま、像面ピッチがIPであり、仮想センサの画素ピッチがPPであるとすると、集光処理では、PSF強度分布から求められる光線の結像値の分布が、IP/PP倍に縮小(又は拡大)され、仮想センサ上で加算される。
なお、PSF強度分布は、可変のサイズではなく、固定のサイズの分布エリアに、PX×PYの解像度で記録することができる。
PSF強度分布を、可変のサイズではなく、固定のサイズの分布エリアとする場合には、像面ピッチは、その固定のサイズの1つだけで済む。
但し、分布エリアの固定のサイズは、少なくとも、分布が、仮想センサ上の主光線の到達位置から最も広がるPSF強度分布に合わせる必要が生じるので、分布が狭いPSF強度分布の解像度が劣化する。
図41は、エミュレーションレンズ情報生成部37で生成される像面ピッチを模式的に示す図である。
像面ピッチは、1のPSF強度分布ごとに生成される。
いま、例えば、図41に示すように、横方向を、DPN個の視差dとするとともに、縦方向を、仮想センサを構成するN個の画素pix1ないしpix#Nとして、ある視差dと、ある画素pix#nとの組み合わせに対応する実空間点に対するPSF強度分布の像面ピッチを登録したテーブルを、フォーカス位置fの像面ピッチテーブルということとする。
エミュレーションレンズ情報生成部37では、Fmax個のフォーカス位置fそれぞれの像面ピッチテーブルが生成される。
したがって、像面ピッチを配列に記録する場合、その像面ピッチの配列の数は、最大で、Fmax×N×DPNになる。
図42は、PSF角度成分情報を生成する方法の例を説明する図である。
すなわち、図42は、エミュレーションレンズを正面(被写体側)から見た正面図である。
エミュレーションレンズ情報生成部37は、例えば、図30で説明した光線生成部102が光線の生成の際に、仮想レンズに対して行うのと同様の処理を、エミュレーションレンズに対して行う。
すなわち、エミュレーションレンズ情報生成部37は、エミュレーションレンズの、例えば、前玉を含むエリアをレンズエリアとして設定する。
図42では、エミュレーションレンズの前玉を囲む、例えば、最小の矩形のエリアが、レンズエリアに設定されている。
エミュレーションレンズ情報生成部37は、レンズエリア(で囲まれるエミュレーションレンズ)を、小領域であるレンズエリアユニットに分割する。そして、エミュレーションレンズ情報生成部37は、実空間点を点光源とみなして、その点光源としての実空間点から、各レンズエリアユニットに入射する光線が、エミュレーションレンズを介して到達するPSF強度分布の位置を表すPSF角度成分情報を求める。
図42では、図30の仮想レンズの場合と同様に、レンズエリアは、水平方向がLx個で、垂直方向がLy個の、合計で、Lx×Ly個のレンズエリアユニットに分割されている。
図42でも、図30の場合と同様に、エミュレーションレンズを囲むレンズエリアを、レンズエリアユニットに分割する水平方向の直線と垂直方向の直線との交点である格子点を、格子点LP#i(i=1,2,...,(Lx+1)(Ly+1))とも記載する。
ここで、本実施の形態では、説明を簡単にするため、径が、仮想レンズ(の合成開口)とエミュレーションレンズの前玉(の開口)とで一致しており、レンズエリアのサイズ、及び、レンズエリアの分割数Lx×Lyも、仮想レンズとエミュレーションレンズとで一致していることとする。
なお、集光処理は、エミュレーションレンズに入射する光線を用いて行われるため、仮想レンズの径が、エミュレーションレンズの径以上の径であれば良い。
また、仮想レンズに入射する光線と、エミュレーションレンズに入射する光線とを対応させるため、仮想レンズのレンズエリアユニットと、エミュレーションレンズのレンズエリアユニットと(のサイズ)は、一致させることとする。
図43は、PSF角度成分情報を生成する方法の例を説明する図である。
図43は、図37と同様に、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略を示している。
エミュレーションレンズ情報生成部37は、最大で、Fmax個のフォーカス位置fそれぞれについて、最大実空間点数N×DPNの実空間点、すなわち、仮想センサを構成する画素の最大数Nと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応する実空間点に対して、PSF角度成分情報を生成する。
エミュレーションレンズ情報生成部37は、実空間点(の点光源)から発せられ、エミュレーションレンズの格子点LP#iに入射する光線が、仮想センサに到達する到達点AP#iを求める。
そして、エミュレーションレンズ情報生成部37は、仮想センサの到達点AP#iを、PSF強度分布(の分布エリア)上の点に換算した分布エリア到達点AP#i(光線が到達する分布エリアユニット)と、格子点LP#iとの(位置の)セットを、PSF角度成分情報として求める。
なお、実空間点から発せられ、エミュレーションレンズに入射する光線は、必ずしも、仮想センサに到達するとは限らない。すなわち、エミュレーションレンズに入射する光線の中には、図43において点線の矢印で示すように、仮想センサに到達しない(仮想センサで受光されない)光線が存在する。
図44は、PSF角度成分情報の詳細を説明する図である。
エミュレーションレンズ情報生成部37は、エミュレーションレンズのレンズエリアユニットの4個の頂点である4個の格子点LP#i1,LP#i2,LP#i3,LP#i4それぞれについて、実空間点から発せられ、格子点LP#i1,LP#i2,LP#i3,LP#i4をそれぞれ通って到達するPSF強度分布上の到達点である分布エリア到達点AP#i1,AP#i2,AP#i3,AP#i4を求める。
そして、エミュレーションレンズ情報生成部37は、エミュレーションレンズのレンズエリアユニットの4個の頂点である4個の格子点LP#i1,LP#i2,LP#i3,LP#i4と、分布エリア到達点AP#i1,AP#i2,AP#i3,AP#i4とのセットを、4個の格子点LP#i1,LP#i2,LP#i3,LP#i4を頂点とするレンズエリアユニットを通る光線が到達するPSF強度分布のエリア(位置)を表すPSF角度成分情報として生成する。
結局、PSF角度成分情報は、エミュレーションレンズの格子点LP#iに入射する光線が、エミュレーションレンズを介して、分布エリア到達点AP#iに到達する場合の、その分布エリア到達点AP#iと、格子点LP#iとのセットになる。
ここで、レンズエリアユニットを通る光線が到達するPSF強度分布のエリアを、対応エリアともいう。
図44では、対応エリアは、分布エリア到達点AP#i1,AP#i2,AP#i3,AP#i4を頂点とする四角形の領域である。
分布エリア到達点AP#iの粒度(解像度)は、PSF強度分布が記録された分布エリアの分布エリアユニット(図40)の大きさとなる。すなわち、分布エリア到達点AP#iは、分布エリアの、ある分布エリアユニットの位置を表す。
図45は、エミュレーションレンズ情報生成部37で生成されるPSF角度成分情報を模式的に示す図である。
PSF角度成分情報は、最大で、Fmax個のフォーカス位置fそれぞれについて、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、視差マップに登録し得るDPN個の視差dそれぞれとの、N×DPN個の組み合わせに対応する実空間点に対して生成される。
いま、例えば、図45に示すように、横方向を、DPN個の視差dとするとともに、縦方向を、仮想センサを構成するN個の画素pix1ないしpix#Nとして、ある視差dと、ある画素pix#nとの組み合わせに対応する実空間点に対するPSF角度成分情報を登録したテーブルを、フォーカス位置fのPSF角度成分情報テーブルということとする。
エミュレーションレンズ情報生成部37では、Fmax個のフォーカス位置fそれぞれのPSF角度成分情報テーブルが生成される。
PSF角度成分情報テーブルに登録されるPSF角度成分情報は、エミュレーションレンズの格子点LP#iと、その格子点LP#iに入射する光線がエミュレーションレンズを介して到達するPSF強度分布の分布エリア上の分布エリア到達点AP#iとのセットである。
本実施の形態では、図42で説明したように、エミュレーションレンズのレンズエリアは、PX×PY個のレンズエリアユニットに分割されるので、格子点LP#iの数は、(Lx+1)(Ly+1)個になる。
したがって、PSF角度成分情報を配列に記録する場合、そのPSF角度成分情報の配列の数は、最大で、Fmax×N×DPN×(PX+1)×(PY+1)になる。
図46は、像面シフト情報を説明する図である。
図46は、図37と同様に、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略を示している。
本実施の形態では、仮想レンズと、エミュレーションレンズの前玉とを対応させ、入射光線再現部36において、仮想レンズに入射する光線を、エミュレーションレンズに入射する光線として再現する。
しかしながら、エミュレーションレンズは、一般に、複数のレンズを有するため、仮想レンズと、エミュレーションレンズとでは、入射瞳の(z方向の)位置にずれが生じる。
そのため、仮想センサにおいて、仮想レンズを介して観察される画像と、エミュレーションレンズを介して観察される画像とが異なることがある。
図46のAは、仮想センサにおいて、仮想レンズを介して観察される画像の例を説明する図である。
図46のAでは、仮想レンズに対して、実空間内の物体obj1から発せられる主光線としての直線と、その物体obj2よりも手前側にある物体obj2から発せられる主光線としての直線とが、重なっている。
そのため、物体obj1の、仮想レンズに対する像面シフト位置、すなわち、物体obj1から発せられる主光線が仮想レンズを介して到達する仮想センサ上の位置である像面シフト位置と、物体obj2の、仮想レンズに対する像面シフト位置とは一致する。
その結果、仮想センサにおいて、物体obj2は観察されるが、その物体obj2よりも奥側にある物体obj1は、物体obj2に隠れて観察されない。
図46のBは、仮想センサにおいて、エミュレーションレンズを介して観察される画像の例を説明する図である。
図46のBにおいて、物体obj1及びobj2は、図46のAの場合と同一の位置にある。
エミュレーションレンズについては、入射瞳の位置、ひいては、主点が、仮想レンズとの間でずれている。そのため、エミュレーションレンズに対しては、実空間内の物体obj1から発せられる主光線としての直線と、その物体obj2よりも手前側にある物体obj2から発せられる主光線としての直線とが、重ならずにずれる。
したがって、物体obj1の、エミュレーションレンズに対する像面シフト位置と、物体obj2の、エミュレーションレンズに対する像面シフト位置とが一致しないので、仮想センサにおいて、物体obj2と、その物体obj2よりも奥側にある物体obj1との両方が観察される。
以上のように、仮想レンズとエミュレーションレンズとの入射瞳の位置のずれに起因して、実空間点の像面シフト位置が、仮想レンズとエミュレーションレンズとで異なる。
そこで、エミュレーションレンズ情報生成部37は、エミュレーションレンズの集光を正確に再現すべく、エミュレーションレンズに対する像面シフト位置を表す像面シフト情報を、レンズ情報の1つとして生成する。
ここで、像面シフト情報は、仮想レンズとエミュレーションレンズとの入射瞳の位置のずれを補正する情報であるということができ、かかる観点からは、像面シフト情報は、入射瞳補正情報であるということができる。
図47は、像面シフト情報を生成する方法の例を説明する図である。
図47は、図37と同様に、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略を示している。
エミュレーションレンズ情報生成部37は、最大で、Fmax個のフォーカス位置fそれぞれについて、最大実空間点数N×DPNの実空間点、すなわち、仮想センサを構成する画素の最大数Nと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応する実空間点に対して、像面シフト情報を生成する。
エミュレーションレンズ情報生成部37は、実空間点(の点光源)から発せられ、エミュレーションレンズの主点を通る主光線が、仮想センサに到達する到達点を、像面シフト位置として、その像面シフト位置を表す、例えば、仮想センサの中心からのx軸及びy軸方向の座標(距離)を、像面シフト情報として求める。
図48は、エミュレーションレンズ情報生成部37で生成される像面シフト情報を模式的に示す図である。
像面シフト情報は、最大で、Fmax個のフォーカス位置fそれぞれについて、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、視差マップに登録し得るDPN個の視差dそれぞれとの、N×DPN個の組み合わせに対応する実空間点に対して生成される。
いま、例えば、図48に示すように、横方向を、DPN個の視差dとするとともに、縦方向を、仮想センサを構成するN個の画素pix1ないしpix#Nとして、ある視差dと、ある画素pix#nとの組み合わせに対応する実空間点に対する像面シフト情報を登録したテーブルを、フォーカス位置fの像面シフト情報テーブルということとする。
エミュレーションレンズ情報生成部37では、Fmax個のフォーカス位置fそれぞれの像面シフト情報テーブルが生成される。
したがって、像面シフト情報を配列に記録する場合、その像面シフト情報の配列の数は、最大で、Fmax×N×DPNになる。
なお、エミュレーションレンズのレンズ情報(PSF強度分布、像面ピッチ、PSF角度成分情報、及び、像面シフト情報)は、そのエミュレーションレンズのレンズ設計データを用いて、光線追跡等の演算を行うことにより求めることができる他、エミュレーションレンズが、実在する光学レンズである場合には、その光学レンズを用いて、光線を実測することにより求めることができる。
図49は、レンズ情報を生成するエミュレーションレンズ情報生成部37(図3)の構成例を示すブロック図である。
図49において、エミュレーションレンズ情報生成部37は、実空間点選択部131、情報算出部132、及び、フォーカス位置選択部133を有する。
実空間点選択部131は、視差情報生成部31(図3)からエミュレーションレンズ情報生成部37に供給される多層視差マップを参照し、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応する最大実空間点数N×DPNの実空間点の中から、注目実空間点を選択する。
情報算出部132は、レンズ設計データ取得部34(図3)からエミュレーションレンズ情報生成部37に供給されるレンズ設計データを用いて、実空間点選択部131で選択された注目実空間点と、フォーカス位置選択部133で選択された注目フォーカス位置fとに対するレンズ情報を生成し、集光処理部38に供給する。
フォーカス位置選択部133は、Fmax個のフォーカス位置fの中から、注目フォーカス位置を選択する。
図50は、図49のエミュレーションレンズ情報生成部37が行うエミュレーションレンズ情報生成処理の例を説明するフローチャートである。
ステップS141において、フォーカス位置選択部133は、Fmax個のフォーカス位置fの中から、注目フォーカス位置を選択し、処理は、ステップS142に進む。
ここで、本実施の形態では、レンズ情報の情報量を削減するため、注目フォーカス位置に対してだけレンズ情報を生成する。注目フォーカス位置の選択は、例えば、ユーザの操作等に応じて行うことができる。また、注目フォーカス位置としては、例えば、あらかじめ決められたデフォルトのフォーカス位置を選択することができる。
なお、レンズ情報は、注目フォーカス位置だけでなく、Fmax個のフォーカス位置fのそれぞれに対して生成することができる。
ステップS142では、実空間点選択部131が、視差情報生成部31から供給される多層視差マップを取得し、処理は、ステップS143に進む。
ステップS143では、実空間点選択部131は、仮想センサの画素のうちの、まだ、注目画素としていない画素の1つを、注目画素に選択し、処理は、ステップS144に進む。
ステップS144では、実空間点選択部131は、視差情報生成部31からの多層視差マップに登録されている注目画素の視差のうちの、まだ、注目視差としていない視差の1つを、注目視差に選択し、処理は、ステップS145に進む。
ステップS145では、実空間点選択部131は、注目視差がある注目画素に対応する実空間点を、注目実空間点に選択し、処理は、ステップS146に進む。
ステップS146では、情報算出部132が、注目実空間点、すなわち、注目フォーカス位置、注目画素、及び、注目視差のセットに対するレンズ情報であるPSF強度分布、像面ピッチ、PSF角度成分情報、及び、像面シフト情報を、図39ないし図48で説明したようにして求め、処理は、ステップS147に進む。
ステップS147では、実空間点選択部131は、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS147において、まだ、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS144に戻り、以下、同様の処理が繰り返される。
また、ステップS147において、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS148に進む。
ステップS148では、実空間点選択部131は、仮想センサの画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS148において、まだ、仮想センサの画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS143に戻り、以下、同様の処理が繰り返される。
また、ステップS148において、仮想センサの画素のすべてを、注目画素に選択したと判定された場合、エミュレーションレンズ情報生成処理は終了する。
<集光処理>
図51は、図3の集光処理部38で行われる集光処理の概要を説明する図である。
図51は、図37と同様に、仮想レンズとしての撮影装置11を構成するカメラユニット21iで撮影される実空間を、撮影装置の正面に対して右から見た場合の概略を示している。
集光処理部38は、エミュレーションレンズ情報生成部37からのレンズ情報を用いて、入射光線再現部36から供給される光線のうちの衝突判定の結果残った光線が、エミュレーションレンズを介して仮想センサに結像する際の結像値を求め、仮想センサ上に加算する処理を、集光処理として行う。
図52は、集光処理のうちの、結像値を求める処理の例を説明する図である。
なお、図52では、図が煩雑になるのを避けるため、エミュレーションレンズのレンズエリアが、5×5個のレンズエリアユニットに分割されている。
図43で説明したように、実空間点から発せられ、エミュレーションレンズに入射する光線は、必ずしも、仮想センサに到達するとは限らない。すなわち、エミュレーションレンズに入射する光線の中には、仮想センサに到達する光線と、仮想センサに到達しない光線とが存在する。
いま、実空間点から発せられ、エミュレーションレンズに入射する光線の中で、仮想センサに到達する光線が入射するレンズエリアユニットの領域を、有効光線領域ということとする。
図52では、ある実空間点(x,y,z)から発せられる光線について、5×5個のレンズエリアユニットのうちの、中央部分の3×3個のレンズエリアユニットrp1ないしrp9が、有効光線領域になっている。
また、図52では、実空間点(x,y,z)から発せられ、レンズエリアの格子点p#iを通る光線が到達する分布エリア到達点が、PSF強度分布が記録された分布エリアの分布エリアユニットq#iになっている。
実空間点(x,y,z)から発せられ、レンズエリアの格子点p#iを通る光線が到達する分布エリア到達点となる分布エリアユニットq#iは、PSF角度成分情報から認識することができる。
図52では、実空間点(x,y,z)から発せられ、レンズエリアユニットrp1を通る光線BLが、PSF強度分布(が記録された分布エリア)の対応エリアrq1に到達している。
ここで、レンズエリアユニットrp1は、格子点p1,p2,p5,p6を頂点とするレンズエリアユニットである。
また、図52では、実空間点(x,y,z)から発せられ、格子点p1,p2,p5,p6を通る光線は、PSF強度分布が記録された分布エリアの分布エリアユニットq1,q2,q5,q6にそれぞれ到達する。この分布エリアユニットq1,q2,q5,q6を頂点とする領域が、対応エリアrq1である。
PSF角度成分情報によれば、実空間点(x,y,z)から発せられ、格子点p1,p2,p5,p6を通る光線は、PSF強度分布が記録された分布エリアの分布エリアユニットq1,q2,q5,q6にそれぞれ到達することが認識される。その結果、格子点p1,p2,p5,p6を頂点とするレンズエリアユニットrp1を通る光線BLが、分布エリアユニットq1,q2,q5,q6を頂点とする対応エリアrq1に到達することが認識される。
図52では、対応エリアrq#jは、実空間点(x,y,z)から発せられ、レンズエリアユニットrp#jを通る光線の対応エリアになっている。
集光処理部38は、PSF角度成分情報を用いて、実空間点(x,y,z)から発せられ、レンズエリアユニットrp1を通る光線BLについて、その光線BLが到達する対応エリアrq1を特定する。
そして、集光処理部38は、光線BLに割り当てられている輝度と、対応エリアrq1内のPSF強度分布、すなわち、対応エリアrq1を構成する分布エリアユニット(の位置)それぞれに記録されているPSF強度分布との積を、光線BLがエミュレーションレンズを介して仮想センサに結像する際の結像値として求める。
以上のように、光線BLの結像値は、光線BLに割り当てられている輝度と、対応エリアrq1を構成する分布エリアユニットそれぞれに記録されているPSF強度分布との積であるので、分布エリアユニットを粒度とする分布となる。
集光処理部38は、実空間点(x,y,z)から発せられ、レンズエリアユニットrp1以外のレンズエリアユニットを通る光線についても、同様にして、結像値を求める。
なお、実空間点(x,y,z)から発せられ、5×5個のレンズエリアユニットにそれぞれ入射する光線については、それらの光線のうちの、有効光線領域になっていないレンズエリアユニットに入射する光線(以下、非有効光線ともいう)は、仮想センサに到達しない。そのため、非有効光線が入射するレンズエリアユニットについては、その非有効光線が到達する対応エリアが存在しない。したがって、結像値は、有効光線領域になっているレンズエリアユニットrp1ないしrp9を通る光線についてだけ求めることができる。
図53は、集光処理のうちの、結像値を求める処理の他の例を説明する図である。
なお、図53において、図52と対応する部分については、同一の符号を付してある。
図53では、5×5個のレンズエリアユニットの、有効光線領域になっている中央部分の3×3個のレンズエリアユニットrp1ないしrp9のうちの、レンズエリアユニットrp7ないしrp9には、実空間点(x,y,z)から発せられた光線が、その実空間点(x,y,z)よりも手前にある物体に遮られることによって到達しない。
このため、図53では、実質的に、有効光線領域になっているレンズエリアユニットrp1ないしrp9のうちの、実空間点(x,y,z)から発せられた光線が到達するレンズエリアユニットrp1ないしrp6それぞれを通る光線についてだけ、結像値(の分布)が求められる。
図54は、集光処理のうちの、結像値(の分布)を、仮想センサ上に加算する処理の例を説明する図である。
図52で説明したように、実空間点(x,y,z)から発せられる光線の結像値は、分布エリアユニットを粒度とする分布になる。いま、説明を分かりやすくするために、実空間点(x,y,z)から発せられる光線の結像値の分布が、その結像値を求めるのに用いられたPSF強度分布が記録された分布エリアに記録されていることとする。すなわち、実空間点(x,y,z)から発せられる光線の結像値が、その結像値を求めるのに用いられたPSF強度分布が記録された分布エリアに、分布エリアユニット単位で記録されていることとする。
集光処理部38は、実空間点(x,y,z)に対する像面ピッチを用いて、その実空間点(x,y,z)から発せられる光線の結像値の分布が記録された分布エリアのスケールを、仮想センサのスケールに一致させるように、分布エリアのスケールを調整する。
すなわち、像面ピッチがIPであり、仮想センサの画素ピッチがPPであるとすると、集光処理部38は、光線の結像値の分布が記録された分布エリアを、IP/PP倍に縮小(又は拡大)する処理を、分布エリアのスケールの調整として行う。
また、集光処理部38は、実空間点(x,y,z)から発せられる光線が、エミュレーションレンズを介して仮想センサ上に集光する位置の位置合わせを、その実空間点(x,y,z)に対する像面シフト情報が表す像面シフト位置によって行う。
すなわち、集光処理部38は、実空間点(x,y,z)から発せられる光線の結像値の分布が記録された、スケールの調整後の分布エリアと仮想センサとの位置合わせを、分布エリアの中心点CPと仮想センサの像面シフト位置とが一致するように行う。
集光処理部38は、以上のように、結像値の分布が記録された分布エリアのスケールの調整を行い、かつ、スケールの調整後の分布エリアと仮想センサとの位置合わせを行った上で、分布エリアに分布している結像値を、仮想センサ上に、その仮想センサの画素単位で加算する。
なお、結像値(が記録された分布エリア)のスケールの調整と、位置合わせとについては、どちらを先に行ってもよいし、同時に行ってもよい。
図55は、図3の集光処理部38の構成例を示すブロック図である。
図55において、集光処理部38は、実空間点選択部141、結像値算出部142、スケール調整部143、結像位置認識部144、及び、加算部145を有する。
実空間点選択部141は、視差情報生成部31(図3)から集光処理部38に供給される多層視差マップを参照し、基準画像HD1を構成するN個の画素pix1ないしpix#Nそれぞれと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応する最大実空間点数N×DPNの実空間点の中から、注目実空間点を選択する。
結像値算出部142は、エミュレーションレンズ情報生成部34から集光処理部38に供給されるレンズ情報のうちの、PSF強度分布及びPSF角度成分情報を用いて、入射光線再現部36から集光処理部38に供給される光線のうちの、実空間点選択部131で選択された注目実空間点から発せられる光線の結像値の分布が記録された分布エリアを求め、スケール調整部143に供給する。
スケール調整部143は、エミュレーションレンズ情報生成部34から集光処理部38に供給されるレンズ情報のうちの像面ピッチを用いて、結像値算出部142から供給される結像値の分布が記録された分布エリアのスケールを調整し、結像位置認識部144に供給する。
結像位置認識部144は、エミュレーションレンズ情報生成部34から集光処理部38に供給されるレンズ情報のうちの像面シフト情報から、エミュレーションレンズを介した光線が結像する仮想センサ上の結像位置である像面シフト位置を認識し、スケール調整部143からのスケールの調整後の分布エリアとともに、加算部145に供給する。
加算部145は、仮想センサとしてのメモリを内蔵し、結像位置認識部144からのスケールの調整後の分布エリアと仮想センサとの位置合わせ(結像値を加算する仮想センサ上の位置の認識)を、結像位置認識部144からの像面シフト位置によって行う。
さらに、加算部145は、仮想センサとの位置合わせ後の分布エリアに記録された結像値を、仮想センサ上に、その仮想センサの画素単位で(累積)加算する。
そして、加算部145は、仮想センサ、すなわち、メモリ上に得られる結像値の加算結果を画素値とする画像を、エミュレーション画像として、表示装置13(図1)に供給する。
図56は、図55の集光処理部38が行う集光処理の例を説明するフローチャートである。
なお、本実施の形態では、図50で説明したように、レンズ情報の情報量を削減するため、注目フォーカス位置に対してだけレンズ情報が生成される。そのため、集光処理は、フォーカス位置が、レンズ情報が生成されたときの注目フォーカス位置に設定されていることとして行われる。
但し、レンズ情報は、Fmax個のフォーカス位置(図37)のそれぞれに対して、あらかじめ生成しておくことができる。この場合、集光処理部38では、注目フォーカス位置を設定し、その注目フォーカス位置に対するレンズ情報を用いて、集光処理を行うことができる。
又は、エミュレーションレンズ情報生成部37において、集光処理部38で注目フォーカス位置を設定してから、その注目フォーカス位置に対して、レンズ情報を生成することができる。
ステップS151において、実空間点選択部141が、視差情報生成部31から供給される多層視差マップを取得し、処理は、ステップS152に進む。
ステップS152では、実空間点選択部141は、基準画像HD1の画素のうちの、まだ、注目画素としていない画素の1つを、注目画素に選択し、処理は、ステップS153に進む。
ステップS153では、実空間点選択部141は、視差情報生成部31からの多層視差マップに登録されている注目画素の視差のうちの、まだ、注目視差としていない視差の1つを、注目視差に選択し、処理は、ステップS154に進む。
ステップS154では、実空間点選択部141は、注目視差がある注目画素に対応する実空間点を、注目実空間点に選択し、処理は、ステップS155に進む。
ステップS155では、結像値算出部142が、エミュレーションレンズのレンズエリアユニットのうちの、まだ、注目レンズエリアユニットとしていないレンズエリアユニットの1つを、注目レンズエリアユニットに選択し、処理は、ステップS156に進む。
ステップS156では、結像値算出部142は、入射光線再現部36から供給される光線の中から、注目実空間点から注目レンズエリアユニットに向かう光線を、注目光線として取得し、処理は、ステップS157に進む。
ステップS157において、結像値算出部142は、注目光線が、注目実空間点からエミュレーションレンズに到達するかどうかを判定する。
ステップS157において、注目光線がエミュレーションレンズに到達すると判定された場合、すなわち、注目光線に割り当てられている視差(図33ないし図35で説明した入射光線再現処理で割り当てられた視差)が、注目視差と等しい場合、処理は、ステップS158に進む。
ステップS158では、結像値算出部142、スケール調整部143、結像位置認識部144、及び、加算部145において、エミュレーションレンズに到達する注目光線、すなわち、衝突判定の結果残っている注目光線を対象として、後述する光線加算処理が行われ、処理は、ステップS159に進む。
一方、ステップS157において、注目光線がエミュレーションレンズに到達しないと判定された場合、すなわち、注目光線に割り当てられている視差(図33ないし図35で説明した入射光線再現処理で割り当てられた視差)が、注目視差と等しくない場合、処理は、ステップS158をスキップして、ステップS159に進む。したがって、注目光線がエミュレーションレンズに到達しない場合、注目光線については、光線加算処理は、行われない。
ステップS159では、結像値算出部142が、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したかどうかを判定する。
ステップS159において、まだ、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択していないと判定された場合、処理は、ステップS155に戻り、以下、同様の処理が繰り返される。
また、ステップS159において、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したと判定された場合、処理は、ステップS160に進む。
ステップS160では、実空間点選択部141は、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS160において、まだ、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS153に戻り、以下、同様の処理が繰り返される。
また、ステップS160において、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS161に進む。
ステップS161では、実空間点選択部141は、基準画像HD1の画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS161において、まだ、基準画像HD1の画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS152に戻り、以下、同様の処理が繰り返される。
また、ステップS161において、基準画像HD1の画素のすべてを、注目画素に選択したと判定された場合、加算部145は、いままでの処理により得られる、仮想センサ上の結像値の加算結果を画素値とする画像を、エミュレーション画像として、表示装置13(図1)に供給して、集光処理は、終了する。
図57は、図56のステップS158で行われる光線加算処理の例を説明するフローチャートである。
ステップS171において、結像値算出部142は、図52及び図53で説明したように、エミュレーションレンズ情報生成部37からの、注目フォーカス位置fについての注目実空間点(に対応する注目画素及び注目視差)に対するPSF強度分布(が記録された分布エリア)、及び、PSF角度成分情報を用いて、注目光線が到達するPSF強度分布が記録された分布エリア上の位置である対応エリアを求める。
さらに、結像値算出部142は、図52及び図53で説明したように、対応エリアのPSF強度分布と、注目光線に割り当てられた輝度(図33ないし図35で説明した入射光線再現処理で割り当てられた輝度)との積を、注目光線の結像値(の分布)として求める。
そして、結像値算出部142は、注目光線の結像値が記録された分布エリアを、スケール調整部143に供給し、処理は、ステップS171からステップS172に進む。
ステップS172では、スケール調整部143は、図54で説明したように、エミュレーションレンズ情報生成部34からの、注目フォーカス位置fについての注目実空間点に対する像面ピッチを用いて、結像値算出部142からの結像値の分布が記録された分布エリアを縮小又は拡大することで、その分布エリアのスケールを、仮想センサのスケールと一致するスケールに調整する。
さらに、スケール調整部143は、スケールの調整後の分布エリアを、結像位置認識部144を介して、加算部145に供給し、処理は、ステップS172からステップS173に進む。
ステップS173では、結像位置認識部144は、エミュレーションレンズ情報生成部34からの、注目フォーカス位置fについての注目実空間点に対する像面シフト情報から、エミュレーションレンズを介した注目光線が結像する仮想センサ上の結像位置である像面シフト位置を認識し、加算部145に供給して、処理は、ステップS174に進む。
ステップS174では、加算部145は、スケール調整部143で得られたスケールの調整後の分布エリアと仮想センサとの位置合わせを、結像位置認識部144からの像面シフト位置によって行う。
すなわち、加算部145は、スケールの調整後の分布エリアの中心点CP(図54)と、仮想センサの像面シフト位置とが一致するように、スケールの調整後の分布エリアと仮想センサとの位置合わせを行う。
そして、加算部145は、仮想センサとの位置合わせ後の分布エリアに記録された結像値を、仮想センサ上に、その仮想センサの画素単位で加算する。すなわち、加算部145は、仮想センサとしてのメモリの記憶値と、結像値とを加算し、その結果得られる加算値によって、メモリの記憶値を書き換える。なお、仮想センサとしてのメモリの記憶値は、集光処理(図56)の開始時に、0に初期化される。
以上により、光線加算処理は終了し、処理はリターンする。
以上のように、レンズエミュレーション部35(図3)では、入射光線再現部46において、衝突判定の結果残る、仮想レンズに入射する光線を再現する。
また、エミュレーションレンズ情報生成部37において、レンズ情報、すなわち、PSF強度分布、像面ピッチ、PSF角度成分情報、像面シフト情報を生成する。
さらに、集光処理部38において、衝突判定の結果残る光線が、エミュレーションレンズを介して仮想センサに結像する際の結像値として、PSF角度成分情報が表すPSF強度分布の位置におけるPSF強度分布と光線の輝度との積を求める。
また、集光処理部38において、像面ピッチに基づいて、光線の結像値の分布のスケールを、仮想センサのスケールに一致させる。
そして、集光処理部38において、像面シフト位置によって、結像値を加算する仮想センサ上の位置の位置合わせを行い、仮想センサ上で結像値の加算を行って、その加算により得られる加算値を画素値とするエミュレーション画像を生成する。
以上のようなレンズエミュレーション部35の処理によれば、実際の光学レンズと同等の集光が、ディジタル信号処理で再現され、その結果、実際の光学レンズのぼけ味やその他の集光特性を正確に再現(反映)したエミュレーション画像を生成することができる。
したがって、ユーザは、実際の光学レンズを購入しなくても、その光学レンズを用いて撮影をしたかのような高品位な撮影体験(高品位の光学レンズを用いて行われる撮影の体験)を享受することができる。
<レンズ情報の情報量の削減>
図58は、レンズ情報の情報量の削減の概要を説明する図である。
図58のAは、実際の光学レンズのレンズ情報のうちのPSF強度分布の例を示している。
すなわち、図58のAは、光線が実際の光学レンズを介して結像する実際のイメージセンサ上の結像位置と、その結像位置に結像する光線に適用されるPSF強度分布との関係を、模式的に示している。
図38で説明したように、PSF強度分布は、フォーカス位置fや、結像位置の像高(光軸からの距離)、被写体(実空間点)までの距離(視差)によって異なる。
すなわち、例えば、実際のイメージセンサ上の結像位置の像高(その結像位置に結像する実空間点の、光軸からの距離)が異なれば、その結像位置に結像する実空間点から発せられる光線に適用される実際の光学レンズのPSF強度分布は異なる。
したがって、実際のイメージセンサにおいて、実際の光学レンズのPSF強度分布は、結像位置の像高が異なれば異なる無限の情報となる。
以上のように、結像位置の像高が異なれば、PSF強度分布は異なるが、逆に言えば、同一の像高、すなわち、光軸から同一の距離にある実空間点に対しては、フォーカス位置f、及び、視差(実空間点までの距離)が変わらない限り、PSF強度分布は、共通になる。
すなわち、いま、説明を簡単にするため、フォーカス位置f、及び、視差が一定であることとする。
イメージセンサのある像高rのある位置pos1を、光軸を中心として所定の角度aだけ回転した回転後の位置pos2に対応する実空間点に対するPSF強度分布は、位置pos1に対応する実空間点に対するPSF強度分布を、光軸を中心として所定の角度aだけ回転した回転後のPSF強度分布に一致する。
以上のように、位置pos2に対応する実空間点に対するPSF強度分布が、位置pos1に対応する実空間点に対するPSF強度分布を、光軸を中心として所定の角度aだけ回転した回転後のPSF強度分布に一致することから、位置pos2に対応する実空間点に対する像面ピッチは、位置pos1に対応する実空間点に対する像面ピッチに一致する。
また、位置pos2に対応する実空間点に対するPSF角度成分情報は、位置pos1に対応する実空間点に対するPSF角度成分情報を、光軸を中心として所定の角度aだけ回転した回転後のPSF角度成分情報に一致する。
さらに、位置pos2に対応する実空間点に対する像面シフト情報(が表す像面シフト位置)は、位置pos1に対応する実空間点に対する像面シフト情報を、光軸を中心として所定の角度aだけ回転した回転後の像面シフト情報に一致する。
以上のように、フォーカス位置f、及び、視差が一定である場合、イメージセンサの像高が同一の位置に対応する実空間点に対するレンズ情報は、共通になる。
そこで、エミュレーションレンズ情報生成部37では、仮想センサのすべての画素に対応する実空間点ではなく、仮想センサの平面の一部の複数位置である複数の情報点に対応する実空間点に対してのみレンズ情報を生成することで、レンズ情報の情報量を削減することができる。
すなわち、エミュレーションレンズ情報生成部37は、例えば、仮想センサの中心(光軸)から、仮想センサの平面内に延びる所定の1軸(に対応する実空間点)を、レンズ情報を生成する対象のレンズ情報生成軸として、そのレンズ情報生成軸上の複数位置(に対応する実空間点)を、レンズ情報を生成する情報点に設定する。
そして、エミュレーションレンズ情報生成部37は、レンズ情報生成軸の情報点(に対応する実空間点)に対するレンズ情報を生成する。
図58のBは、レンズ情報生成軸の例を示している。
図58のBでは、仮想センサの中心から上方向に延びる1軸が、レンズ情報生成軸になっている。
以上のようなレンズ情報生成軸の情報点に対して生成されたレンズ情報は、例えば、仮想センサの中心を中心として回転することにより、その回転と同じ回転角だけ、レンズ情報生成軸を回転したときの、その回転後のレンズ生成軸に一致する仮想センサの位置に対応する実空間点から発せられる光線の集光処理に適用することができる。
図59は、レンズ情報生成軸の具体例を示す図である。
いま、図59に示すように、仮想センサの中心から、その仮想センサの、対角にある1の画素に向かう軸を、対角軸ということとする。
図59では、対角軸に、15等の複数の位置が、情報点として、等間隔に設定されている。
さらに、図59では、情報点が設定された対角軸が、上方向に向くように、仮想センサの中心を中心として回転され、その回転後の対角軸が、レンズ情報生成軸になっている。
したがって、図59では、レンズ情報生成軸は、横幅が0で、縦の長さが、仮想センサの対角の長さ(対角にある画素どうしの距離)の1/2の、仮想センサの中心から垂直方向(上方向)に延びる線分である。
エミュレーションレンズ情報生成部37では、以上のようなレンズ情報生成軸の情報点に対応する実空間点に対してだけ、レンズ情報を生成することができる。レンズ情報生成軸の情報点に対応する実空間点は、x=0で表される平面内の点になる。
なお、レンズ情報のうちの、PSF強度分布、PSF角度成分情報、及び、像面ピッチについては、15個程度の情報点で十分であるが、像面シフト情報については、15個程度の情報点では、集光処理でのエミュレーションレンズの集光特性の再現性が低下することがある。
そこで、像面シフト情報については、仮想センサの中心から、対角にある1の画素までの距離(仮想センサの像高の最大値)を、仮想センサの画素ピッチで除算した値(仮想センサの対角の画素数の1/2に近い値)等を、レンズ情報生成軸に設ける情報点の数として採用することができる。
ここで、図40、図41、図45、及び、図48で説明したように、レンズ情報が、Fmax個のフォーカス位置fそれぞれについて、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、視差マップに登録し得るDPN個の視差dそれぞれとの、N×DPN個の組み合わせに対応する実空間点に対して生成される場合、レンズ情報の配列の数は、以下のような膨大な数になる。
すなわち、PSF強度分布の配列の数は、図40で説明したように、最大で、Fmax×N×DPN×PX×PYになる。像面ピッチの配列の数は、図41で説明したように、最大で、Fmax×N×DPNになる。PSF角度成分情報の配列の数は、図45で説明したように、最大で、Fmax×N×DPN×(PX+1)×(PY+1)になる。像面シフト情報の配列の数は、図48で説明したように、最大で、Fmax×N×DPNになる。
なお、PX及びPYは、図42で説明したように、レンズエリアを構成するレンズエリアユニットの横(水平方向)及び縦(垂直方向)の数を、それぞれ表す。
一方、レンズ情報生成軸に設ける情報点の数を、Ninfoと表すこととすると、レンズ情報の配列の数は、以下のようになる。
すなわち、PSF強度分布の配列の数は、最大で、Fmax×Ninfo×DPN×PX×PYになる。像面ピッチの配列の数は、最大で、Fmax×Ninfo×DPNになる。PSF角度成分情報の配列の数は、最大で、Fmax×Ninfo×DPN×(PX+1)×(PY+1)になる。像面シフト情報の配列の数は、最大で、Fmax×Ninfo×DPNになる。
したがって、レンズ情報生成軸の情報点に対してだけ、レンズ情報を生成する場合には、Fmax個のフォーカス位置fそれぞれについて、仮想センサを構成するN個の画素pix1ないしpix#Nそれぞれと、視差マップに登録し得るDPN個の視差dそれぞれとの、N×DPN個の組み合わせに対応する実空間点に対して、レンズ情報を生成する場合に比較して、レンズ情報の情報量を、Ninfo/Nに削減することができる。
例えば、仮想センサの画素数Nが、1892×1052であり、情報点の数Ninfoが15である場合には、レンズ情報の情報量を、15/(1892×1052)に削減することができる。
その結果、レンズ情報生成軸によれば、エミュレーションレンズのぼけ味やその他の集光特性を、少ないデータ量で再現することができる。
図60は、レンズ情報生成軸の情報点に対してだけレンズ情報を生成する場合の、図3のエミュレーションレンズ情報生成部37の構成例を示すブロック図である。
なお、図中、図49の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図60において、エミュレーションレンズ情報生成部37は、実空間点選択部231、情報算出部132、及び、フォーカス位置選択部133を有する。
したがって、図60のエミュレーションレンズ情報生成部37は、情報算出部132、及び、フォーカス位置選択部133を有する点で、図49の場合と共通する。
但し、図60のエミュレーションレンズ情報生成部37は、実空間点選択部131に代えて、実空間点選択部231が設けられている点で、図49の場合と相違する。
実空間点選択部231は、視差情報生成部31(図3)から供給される多層視差マップを参照し、仮想センサ上のレンズ情報生成軸のNinfo個の情報点それぞれと、多層視差マップに登録し得るDPN個の視差dそれぞれとの組み合わせに対応するNinfo×DPN個の実空間点の中から、注目実空間点を選択する。
図61は、図60のエミュレーションレンズ情報生成部37が行うエミュレーションレンズ情報生成処理の例を説明するフローチャートである。
ステップS211において、フォーカス位置選択部133は、図50のステップS141と同様に、Fmax個のフォーカス位置fの中から、注目フォーカス位置を選択し、処理は、ステップS212に進む。
ステップS212では、実空間点選択部231は、図50のステップS142と同様に、視差情報生成部31から供給される多層視差マップを取得し、処理は、ステップS213に進む。
ステップS213では、実空間点選択部231は、レンズ情報のうちの、PSF強度分布、PSF角度成分情報、及び、像面ピッチの生成に用いるレンズ情報生成軸を設定し、処理は、ステップS214に進む。
すなわち、軸痛感点選択部231は、例えば、仮想センサの最大像高(仮想センサの中心から、対角の1画素までの距離)を等分する、あらかじめ決められた所定数(例えば、15等)の情報点を有するレンズ情報生成軸を、仮想レンズの中心を始点として、垂直方向(上方向)に設定する。
ステップS214では、実空間点選択部231は、レンズ情報生成軸の情報点のうちの、まだ、注目情報点としていない情報点の1つを、注目情報点に選択し、処理は、ステップS215に進む。
ステップS215では、実空間点選択部231は、視差情報生成部31からの多層視差マップに登録されている、注目情報点の位置の画素(注目情報点に近い画素)に登録され得る視差のうちの、まだ、注目視差としていない視差の1つを、注目視差に選択し、処理は、ステップS216に進む。
ステップS216では、実空間点選択部231は、注目視差がある注目情報点(仮想センサの平面上の注目情報点の位置)に対応する実空間点を、注目実空間点に選択し、処理は、ステップS217に進む。
ステップS217では、情報算出部132が、注目実空間点、すなわち、注目フォーカス位置、注目情報点、及び、注目視差のセットに対するPSF強度分布、像面ピッチ、及び、PSF角度成分情報を、図50のステップS146と同様に求め、処理は、ステップS218に進む。
ステップS218では、実空間点選択部231は、多層視差マップに登録され得る視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS218において、まだ、多層視差マップに登録され得る視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS215に戻り、以下、同様の処理が繰り返される。
また、ステップS218において、多層視差マップに登録され得る視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS219に進む。
ステップS219では、実空間点選択部231は、レンズ情報生成軸の情報点のすべてを、注目情報点に選択したかどうかを判定する。
ステップS219において、まだ、レンズ情報生成軸の情報点のすべてを、注目情報点に選択していないと判定された場合、処理は、ステップS214に戻り、以下、同様の処理が繰り返される。
また、ステップS219において、レンズ情報生成軸の情報点のすべてを、注目情報点に選択したと判定された場合、処理は、ステップS220に進み、以下、像面シフト情報が生成される。
ステップS220では、実空間点選択部231は、レンズ情報のうちの、像面シフト情報の生成に用いるレンズ情報生成軸を設定し、処理は、ステップS221に進む。
すなわち、実空間点選択部231は、例えば、仮想センサの最大像高を、仮想センサの画素ピッチで除算した値の数だけの情報点が等間隔に配置されたレンズ情報生成軸を、仮想レンズの中心を始点として、垂直方向に設定する。
ステップS221では、実空間点選択部231は、レンズ情報生成軸の情報点のうちの、まだ、注目情報点としていない情報点の1つを、注目情報点に選択し、処理は、ステップS222に進む。
ステップS222では、実空間点選択部231は、視差情報生成部31からの多層視差マップに登録されている注目情報点の位置の画素に登録され得る視差のうちの、まだ、注目視差としていない視差の1つを、注目視差に選択し、処理は、ステップS223に進む。
ステップS223では、実空間点選択部231は、注目視差がある注目情報点に対応する実空間点を、注目実空間点に選択し、処理は、ステップS224に進む。
ステップS224では、情報算出部132が、注目実空間点、すなわち、注目フォーカス位置、注目情報点、及び、注目視差のセットに対する像面シフト情報を、図50のステップS146と同様に求め、処理は、ステップS225に進む。
ステップS225では、実空間点選択部231は、多層視差マップに登録され得る視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS225において、まだ、多層視差マップに登録され得る視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS222に戻り、以下、同様の処理が繰り返される。
また、ステップS225において、多層視差マップに登録され得る視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS226に進む。
ステップS226では、実空間点選択部231は、レンズ情報生成軸の情報点のすべてを、注目情報点に選択したかどうかを判定する。
ステップS226において、まだ、レンズ情報生成軸の情報点のすべてを、注目情報点に選択していないと判定された場合、処理は、ステップS221に戻り、以下、同様の処理が繰り返される。
また、ステップS226において、レンズ情報生成軸の情報点のすべてを、注目情報点に選択したと判定された場合、エミュレーションレンズ情報生成処理は終了する。
図61のエミュレーションレンズ情報生成処理では、以上のようにして、多層視差マップに登録され得る視差それぞれと、レンズ情報生成軸の情報点それぞれとのセットに対応する実空間点に対するレンズ情報が求められる。
図62は、以上のように、レンズ情報生成軸の情報点(に対応する実空間点)に対して生成されたレンズ情報を用いて行われる集光処理の例を説明する図である。
レンズ情報生成軸の情報点に対して生成されたレンズ情報を用いて、集光処理を行う方法としては、レンズ情報を回転する方法(以下、レンズ情報回転法ともいう)と、集光処理に用いる光線を回転する方法(以下、光線回転法ともいう)とがある。
いま、例えば、ある実空間点rspに対応する仮想センサの画素(位置)が、レンズ情報生成軸上に位置するように、仮想センサ(の画素)、又は、レンズ情報生成軸を、仮想センサの中心を中心として回転するときの角度を、一致回転角度ALPHAということとする。
実空間点rspに対応する仮想センサの画素と、レンズ情報生成軸とは、仮想センサの中心を中心として、一致回転角度ALPHAを形成する。
レンズ情報回転法、及び、光線回転法では、実空間点rspに対応する仮想センサの画素が、レンズ情報生成軸上に位置するように、仮想センサ(の画素)、又は、レンズ情報生成軸を、仮想センサの中心を中心として、一致回転角度ALPHAだけ回転したときに、実空間点rspに対応する仮想センサの画素に最も近い情報点(以下、対応情報点ともいう)が検出される。
ここで、仮想センサの中心を中心として回転するときの回転角度について、時計回りの方向を正とする。この場合、レンズ情報生成軸を、仮想センサの中心を中心として、一致回転角度+ALPHAだけ回転するか、又は、仮想センサを、仮想センサの中心を中心として、一致回転角度-ALPHAだけ回転することにより、実空間点rspに対応する仮想センサの画素は、レンズ情報生成軸上に位置する状態になる。
以下、説明を簡単にするため、対応情報点の検出にあたっては、レンズ情報生成軸、及び、仮想センサのうちの、例えば、レンズ情報生成軸を、一致回転角度+ALPHAだけ回転することとする。
レンズ情報回転法、及び、光線回転法では、上述のように、レンズ情報生成軸を、仮想センサの中心を中心として、一致回転角度+ALPHAだけ回転したときに、実空間点rspに対応する仮想センサの画素に最も近い情報点が、対応情報点として検出される。
そして、対応情報点(に対応する実空間点)に対するレンズ情報を、実空間点rspから発せられる光線に適用して、集光処理が行われる。
但し、レンズ情報回転法では、対応情報点に対するレンズ情報(のうちのPSF強度分布、PSF角度成分情報、及び、像面シフト情報)が、一致回転角度+ALPHAだけ回転されて、実空間点rspから発せられる光線に適用される。
一方、光線回転法では、実空間点rspから発せられる光線が、一致回転角度-ALPHAだけ回転され、その回転後の光線に、対応情報点に対するレンズ情報が適用される。
図62は、レンズ情報回転法による集光処理の例を示している。
図62のAは、注目実空間点に対応する仮想センサの注目画素が、レンズ情報生成軸上の画素(以下、軸上画素ともいう)である場合の、集光処理における結像値の算出の例を示している。
すなわち、図62のAは、注目実空間点に対応する仮想センサの注目画素についての対応情報点に対するPSF強度分布(が記録された分布エリア)の例を示している。
図62のAにおいて、レンズエリアユニットU1に入射する光線は、PSF強度分布の対応エリアUC1に到達する。
注目実空間点に対応する仮想センサの注目画素が、軸上画素である場合、注目実空間点から発せられ、レンズエリアユニットU1に入射する光線については、注目画素に対する対応情報点に対するPSF強度分布を(回転せずに)そのまま用い、レンズエリアユニットU1に入射する光線に割り当てられた輝度と、対応エリアUC1のPSF強度分布との積が、結像値として求められる。
図62のBは、注目実空間点に対応する仮想センサの注目画素が、レンズ情報生成軸を、仮想センサの中心を中心として、例えば、90度だけ回転した直線上の画素(以下、90度回転画素ともいう)である場合の、集光処理における結像値の算出の例を示している。
図62のBにおいて、注目画素である90度回転画素の一致回転角度+ALPHAは、90度である。
いま、注目画素である90度回転画素に対する対応情報点が、図62のAの場合の軸上画素に対する対応情報点に一致することとする。
この場合、レンズ情報回転法では、注目実空間点から発せられた光線については、注目画素に対する対応情報点に対するPSF強度分布を、例えば、そのPSF強度分布が記録された分布エリアの中心を中心として、一致回転角度+ALPHAである90度だけ回転した回転後のPSF強度分布を用いて、結像値が求められる。
回転後のPSF強度分布(が記録された分布エリア)については、レンズエリアユニットU1を、光軸を中心として、一致回転角度+ALPHAである90度だけ回転した場合の回転後のレンズエリアユニットU1の位置にあるレンズエリアユニットU2に入射する光線が、PSF強度分布の対応エリアUC1に到達する。
したがって、注目画素が90度回転画素である場合、レンズ情報回転法では、注目実空間点から発せられ、レンズエリアユニットU2に入射する光線の結像値として、レンズエリアユニットU2に入射する光線に割り当てられた輝度と、対応エリアUC1のPSF強度分布との積が求められる。
図63は、光線回転法による集光処理の例を示している。
注目実空間点に対応する仮想センサの注目画素が、軸上画素である場合、光線回転法では、注目実空間点から発せられた光線の結像値は、レンズ情報回転法と同様に求められる。
一方、注目実空間点に対応する仮想センサの注目画素が、例えば、90度回転画素である場合、光線回転法では、注目実空間点から発せられた光線を、一致回転角度-ALPHA=-90度だけ回転した回転後の光線を用いて、その光線の結像値が求められる。
図63のAは、注目実空間点から発せられた光線の回転を示している。
注目実空間点に対応する仮想センサの注目画素が、90度回転画素である場合、エミュレーションレンズに入射する光線を、光軸を中心として、一致回転角度-ALPHA=-90度だけ回転する。
図63のAでは、光線の回転前において、注目実空間点からレンズエリアユニットU1に、光線R1が入射しており、注目実空間点からレンズエリアユニットU2に、光線R2が入射している。
レンズエリアユニットU2は、レンズエリアユニットU1を、光軸を中心として、一致回転角度+ALPHA=+90度だけ回転した位置にある。
したがって、エミュレーションレンズに入射する光線を、光軸を中心として、一致回転角度-ALPHA=-90度だけ回転した場合、回転前にレンズエリアユニットU2に入射していた光線R2が、レンズエリアユニットU1に入射する。
図63のBは、注目画素である90度回転画素についての対応情報点に対するPSF強度分布(が記録された分布エリア)の例を示している。
図63のBでは、図62のAの場合と同様に、レンズエリアユニットU1に入射する光線が、PSF強度分布の対応エリアUC1に到達している。
回転後の光線R2は、レンズエリアユニットU1に入射するので、その光線R2の結像値VFは、その光線R2の輝度と、レンズエリアユニットU1に対する対応エリアUC1のPSF強度分布との積として求められる。
図63のCは、光線R2の結像値VFの逆回転の例を示している。
光線回転法では、結像値VFを、仮想センサ上に加算するときに、その結像値VF(が記録された分布エリア)が、光軸を中心として、光線を回転した一致回転角度-ALPHA=-90度だけ逆回転される。
すなわち、結像値VF(が記録された分布エリア)は、光軸を中心として、一致回転角度+ALPHA=+90度だけ回転されてから、仮想センサ上に加算される。
レンズ情報生成軸に対して生成されたレンズ情報を用いて行う集光処理では、レンズ情報回転法を採用しても良いし、光線回転法を採用しても良い。
レンズ情報回転法によれば、光線回転法よりも、集光処理に要する演算量を少なくすることができる。
但し、レンズ情報回転法では、エミュレーションレンズの集光特性の再現性が低下することがあり得る。
すなわち、レンズ情報回転法では、レンズ情報(像面ピッチを除く)が、一致回転角度+ALPHAだけ回転される。
この場合、回転後のレンズ情報のうちの、例えば、PSF角度成分情報が表す分布エリア到達点AP#i(図44)の座標系は、一致回転角度+ALPHAだけ傾いた座標系になる。そのため、一致回転角度+ALPHAが、90度の整数倍である場合を除き、回転前のPSF角度成分情報が表す分布エリア到達点AP#iになり得る位置と、回転後のPSF角度成分情報が表す分布エリア到達点AP#iとなり得る位置との間には、ずれが生じる。
PSF角度成分情報が表す分布エリア到達点AP#iは、分布エリアの分布エリアユニット(図40)の粒度で、光線が到達するPSF強度分布上の位置を表すので、その粒度によっては、回転前のPSF角度成分情報が表す分布エリア到達点AP#iになり得る位置と、回転後のPSF角度成分情報が表す分布エリア到達点AP#iとなり得る位置との間に生じるずれが、エミュレーションレンズの集光特性の再現に、悪影響を及ぼすことがある。
すなわち、回転後のPSF角度成分情報が表す対応エリア(図44)では、PSF強度分布が、他の対応エリアのPSF強度分布と一部重複することや、本来、ある対応エリアに含まれるべきPSF強度分布の部分が、その対応エリアから欠けることがある。
この、PSF強度分布の重複や欠けの程度が大きい場合には、エミュレーションレンズの集光特性の再現性が低下する。
そこで、集光処理には、光線回転法を採用することができる。
但し、分布エリア到達点AP#iが表す、光線が到達するPSF強度分布上の位置の粒度が、十分細かければ、集光処理に、レンズ情報回転法を用いても、エミュレーションレンズの集光特性を、十分正確に再現することができるので、その場合には、レンズ情報回転法を採用することができる。
図64は、レンズ情報生成軸に対して生成されたレンズ情報を用いて集光処理を行う集光処理部38の構成例を示すブロック図である。
なお、図中、図55の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図64において、集光処理部38は、実空間点選択部141、結像値算出部242、スケール調整部143、結像位置認識部244、加算部245、及び、回転処理部246を有する。
したがって、図64の集光処理部38は、実空間点選択部141、及び、スケール調整部143を有する点で、図55の場合と共通する。
但し、図64の集光処理部38は、結像値算出部142、結像位置認識部144、及び、加算部145に代えて、それぞれ、結像値算出部242、結像位置認識部244、及び、加算部245が設けられている点で、図55の場合と相違する。
さらに、図64の集光処理部38は、回転処理部246が新たに設けられている点で、図55の場合と相違する。
結像値算出部242は、レンズ情報回転法、又は、光線回転法により、実空間点選択部131で選択された注目実空間点から発せられた光線の結像値の分布が記録された分布エリアを求め、スケール調整部143に供給する。
すなわち、結像値算出部242は、光線回転法に従い、回転処理部246から供給されるPSF強度分布及びPSF角度成分情報を用いて、同じく回転処理部246から供給される、一致回転角度-ALPHAだけ回転された光線のうちの、実空間点選択部131で選択された注目実空間点から発せられた光線の結像値の分布が記録された分布エリアを求め、スケール調整部143に供給する。
又は、結像値算出部242は、レンズ情報回転法に従い、回転処理部246から供給される、一致回転角度+ALPHAだけ回転されたPSF強度分布及びPSF角度成分情報を用いて、同じく回転処理部246から供給される、実空間点選択部131で選択された注目実空間点から発せられた光線の結像値の分布が記録された分布エリアを求め、スケール調整部143に供給する。
結像位置認識部244は、回転処理部246から供給される像面シフト情報、又は、一致回転角度+ALPHAだけ回転された像面シフト情報から、エミュレーションレンズを介した光線が結像する仮想センサ上の結像位置である像面シフト位置を認識し、スケール調整部143からのスケールの調整後の分布エリアとともに、加算部245に供給する。
加算部245は、図55の加算部145と同様の処理を行う。
すなわち、加算部245は、仮想センサとしてのメモリを内蔵し、結像位置認識部244からのスケールの調整後の分布エリアと仮想センサとの位置合わせを、結像位置認識部244からの像面シフト位置によって行う。
さらに、加算部245は、仮想センサとの位置合わせ後の分布エリアに記録された結像値を、仮想センサ上に、その仮想センサの画素単位で加算する。
そして、加算部245は、仮想センサ、すなわち、メモリ上に得られる結像値の加算結果を画素値とする画像を、エミュレーション画像として、表示装置13(図1)に供給する。
なお、加算部245は、レンズ情報回転法による集光処理が行われる場合には、上述のように、図55の加算部145と同様の処理を行う。
一方、光線回転法による集光処理が行われる場合には、加算部245は、位置合わせ後の分布エリア(に記録された結像値)を、回転処理部246で光線を回転したときの一致回転角度-ALPHAだけ逆回転してから、すなわち、一致回転角度+ALPHAだけ回転してから、その回転後の分布エリアに記録された結像値を、仮想センサ上に加算する。
回転処理部246には、入射光線再現部36(図3)から光線が供給されるとともに、エミュレーションレンズ情報生成部34(図3)からレンズ情報生成軸の情報点に対するレンズ情報が供給される。
回転処理部246は、レンズ情報回転法による集光処理が行われる場合には、実空間点選択部141で選択された注目実空間点に対応する仮想センサの画素が、レンズ情報生成軸上の画素になるように、レンズ情報生成軸を回転するときの一致回転角度+ALPHAだけ、エミュレーションレンズ情報生成部34からのレンズ情報生成軸の情報点に対するレンズ情報のうちのPSF強度分布、PSF角度成分情報、及び、像面シフト情報を回転する。
そして、回転処理部246は、回転後のPSF強度分布及びPSF角度成分情報を、結像値算出部242に供給するとともに、回転後の像面シフト情報を、結像位置認識部244に供給する。
さらに、回転処理部246は、入射光線再現部36からの光線を、回転せずに、そのまま、結像値算出部242に供給する。
一方、回転処理部246は、光線回転法による集光処理が行われる場合には、実空間点選択部141で選択された注目実空間点に対応する仮想センサの画素が、レンズ情報生成軸上の画素になるように、仮想センサ(の画素)を回転するときの一致回転角度-ALPHAだけ、入射光線再現部36からの光線を回転する。
そして、回転処理部246は、回転後の光線を、結像値算出部242に供給する。
さらに、回転処理部246は、エミュレーションレンズ情報生成部34からのレンズ情報生成軸の情報点に対するレンズ情報のうちのPSF強度分布及びPSF角度成分情報を、回転せずに、そのまま、結像値算出部242に供給するとともに、像面シフト情報を、回転せずに、そのまま、結像位置認識部244に供給する。
図65は、図64の集光処理部38が行う集光処理の例を説明するフローチャートである。
なお、本実施の形態では、図61で説明したように、レンズ情報の情報量を削減するため、注目フォーカス位置に対してだけレンズ情報が生成される。そのため、集光処理は、フォーカス位置が、レンズ情報が生成されたときの注目フォーカス位置に設定されていることとして行われる。
但し、レンズ情報は、Fmax個のフォーカス位置(図37)のそれぞれに対して、あらかじめ生成しておくことができる。この場合、集光処理部38では、注目フォーカス位置を設定し、その注目フォーカス位置に対するレンズ情報を用いて、集光処理を行うことができる。
又は、エミュレーションレンズ情報生成部37において、集光処理部38で注目フォーカス位置を設定してから、その注目フォーカス位置に対して、レンズ情報を生成することができる。
ここで、図65では、光線回転法による集光処理を行うこととする。
ステップS251ないしS254において、図56のステップS151ないしS154と、それぞれ同様の処理が行われる。
すなわち、実空間点選択部141は、ステップS251において、視差情報生成部31から供給される多層視差マップを取得し、ステップS252において、基準画像HD1の画素のうちの、まだ、注目画素としていない画素の1つを、注目画素に選択する。
さらに、実空間点選択部141は、ステップS253において、視差情報生成部31からの多層視差マップに登録されている注目画素の視差のうちの、まだ、注目視差としていない視差の1つを、注目視差に選択し、ステップS254において、注目視差がある注目画素に対応する実空間点を、注目実空間点に選択する。
そして、処理は、ステップS254からステップS255に進み、回転処理部246は、実空間点選択部141で選択された注目実空間点に対応する仮想センサの画素が、レンズ情報生成軸上の画素になるように、仮想センサを回転するときの一致回転角度-ALPHAを算出し、処理は、ステップS256に進む。
ステップS256では、回転処理部246が、エミュレーションレンズのレンズエリアユニットのうちの、まだ、注目レンズエリアユニットとしていないレンズエリアユニットの1つを、注目レンズエリアユニットに選択し、処理は、ステップS257に進む。
ステップS257では、回転処理部246は、入射光線再現部36から供給される光線の中から、注目実空間点から注目レンズエリアユニットに向かう光線を、注目光線として取得し、処理は、ステップS258に進む。
ステップS258では、回転処理部246は、注目光線を、ステップS255で算出された一致回転角度-ALPHAだけ、光軸を中心として回転し、回転後の注目光線を、結像値算出部242に供給して、処理は、ステップS259に進む。
ステップS259では、結像値算出部242は、回転処理部246からの回転後の注目光線が、注目実空間点からエミュレーションレンズに到達するかどうかを判定する。
ステップS259において、回転後の注目光線がエミュレーションレンズに到達すると判定された場合、すなわち、回転後の注目光線に割り当てられている視差(図33ないし図35で説明した入射光線再現処理で割り当てられた視差)が、注目視差と等しい場合、処理は、ステップS260に進む。
ステップS260では、結像値算出部242、スケール調整部143、結像位置認識部244、及び、加算部245において、エミュレーションレンズに到達すると判定された回転後の注目光線、すなわち、衝突判定の結果残っている注目光線が回転された、回転後の注目光線を対象として、後述する光線加算処理が行われ、処理は、ステップS261に進む。
一方、ステップS259において、回転後の注目光線がエミュレーションレンズに到達しないと判定された場合、すなわち、回転後の注目光線に割り当てられている視差が、注目視差と等しくない場合、処理は、ステップS260をスキップして、ステップS261に進む。したがって、回転後の注目光線がエミュレーションレンズに到達しない場合、その回転後の注目光線については、光線加算処理は、行われない。
ステップS261ないしS263では、図56のステップS159ないしS161と同様の処理が行われる。
すなわち、ステップS261では、回転処理部246が、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したかどうかを判定し、まだ、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択していないと判定した場合、処理は、ステップS256に戻り、以下、同様の処理が繰り返される。
また、ステップS261において、エミュレーションレンズのレンズエリアユニットのすべてを、注目レンズエリアユニットに選択したと判定された場合、処理は、ステップS262に進み、実空間点選択部141は、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したかどうかを判定する。
ステップS262において、まだ、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択していないと判定された場合、処理は、ステップS253に戻り、以下、同様の処理が繰り返される。
また、ステップS262において、多層視差マップに登録されている注目画素の視差のすべてを、注目視差に選択したと判定された場合、処理は、ステップS263に進み、実空間点選択部141は、基準画像HD1の画素のすべてを、注目画素に選択したかどうかを判定する。
ステップS263において、まだ、基準画像HD1の画素のすべてを、注目画素に選択していないと判定された場合、処理は、ステップS252に戻り、以下、同様の処理が繰り返される。
また、ステップS263において、基準画像HD1の画素のすべてを、注目画素に選択したと判定された場合、加算部245は、いままでの処理により得られる、仮想センサ上の結像値の加算結果を画素値とする画像を、エミュレーション画像として、表示装置13(図1)に供給して、集光処理は、終了する。
図66は、図65のステップS260で行われる光線加算処理の例を説明するフローチャートである。
ステップS271において、結像値算出部242は、注目実空間点に対応する仮想センサの画素(位置)を、図65のステップS255で算出された一致回転角度-ALPHAだけ回転した回転後の画素に最も近い情報点である対応情報点を、レンズ情報生成軸の情報点の中から検出する。
さらに、結像値算出部242は、回転処理部246からのレンズ情報生成軸の情報点に対するレンズ情報の中から、対応情報点と注目視差とに対応する実空間点に対するレンズ情報を取得する。
そして、結像値算出部242は、対応情報点と注目視差とに対応する実空間点に対するレンズ情報のうちの、注目フォーカス位置fについてのPSF強度分布(が記録された分布エリア)、及び、PSF角度成分情報を用いて、回転処理部246からの回転後の注目光線が到達するPSF強度分布が記録された分布エリア上の位置である対応エリアを求める。
さらに、結像値算出部242は、対応エリアのPSF強度分布と、回転後の注目光線に割り当てられた輝度(図33ないし図35で説明した入射光線再現処理で割り当てられた輝度)との積を、回転後の注目光線の結像値(の分布)として求める。
そして、結像値算出部242は、回転後の注目光線の結像値が記録された分布エリアを、スケール調整部143に供給し、処理は、ステップS271からステップS272に進む。
ステップS272では、スケール調整部143は、エミュレーションレンズ情報生成部34からのレンズ情報生成軸の情報点に対するレンズ情報の中から、対応情報点と注目視差とに対応する実空間点に対するレンズ情報を取得する。
そして、スケール調整部143は、対応情報点と注目視差とに対応する実空間点に対するレンズ情報のうちの、注目フォーカス位置fについての像面ピッチを用いて、結像値算出部242からの結像値の分布が記録された分布エリアを縮小又は拡大することで、その分布エリアのスケールを、仮想センサのスケールと一致するスケールに調整する。
さらに、スケール調整部143は、スケールの調整後の分布エリアを、結像位置認識部244を介して、加算部245に供給し、処理は、ステップS272からステップS273に進む。
ステップS273では、結像位置認識部244は、回転処理部246からのレンズ情報生成軸の情報点に対するレンズ情報の中から、対応情報点と注目視差とに対応する実空間点に対するレンズ情報を取得する。
そして、結像位置認識部244は、対応情報点と注目視差とに対応する実空間点に対するレンズ情報のうちの、注目フォーカス位置fについての像面シフト情報と、回転処理部246が注目光線を回転した一致回転角度-ALPHAとから、エミュレーションレンズを介した、回転前の注目光線が結像する仮想センサ上の結像位置である像面シフト位置を認識し、加算部245に供給して、処理は、ステップS274に進む。
ステップS274では、加算部245は、スケール調整部143で得られたスケールの調整後の分布エリアと仮想センサとの位置合わせを、結像位置認識部244からの像面シフト位置によって行う。
すなわち、加算部245は、スケールの調整後の分布エリアの中心点CP(図54)と、仮想センサの像面シフト位置とが一致するように、スケールの調整後の分布エリアと仮想センサとの位置合わせを行う。
さらに、ステップS274では、加算部245は、位置合わせ後の分布エリア(に記録された結像値)を、回転処理部246が注目光線を回転したときの一致回転角度-ALPHAだけ光軸(又は中心点CP)を中心として逆回転し、すなわち、一致回転角度+ALPHAだけ光軸(又は中心点CP)を中心として回転し、処理は、ステップS275に進む。
ステップS275では、加算部245は、回転後の分布エリアに記録された結像値を、仮想センサ上に、その仮想センサの画素単位で加算する。すなわち、加算部245は、仮想センサとしてのメモリの記憶値と、結像値とを加算し、その結果得られる加算値によって、メモリの記憶値を書き換える。
以上により、光線加算処理は終了し、処理はリターンする。
以上のように、レンズ情報を、仮想センサの平面の一部の複数位置である複数の情報点に対応する実空間点に対して生成し、そのレンズ情報を用いて、集光処理を行う場合には、エミュレーションレンズのぼけ味やその他の集光特性を、少ないデータ量で、正確に再現することができる。
なお、本実施の形態では、レンズ情報生成軸として、仮想センサの中心から垂直方向に延びる、仮想センサの対角の長さの1/2の線分(図59)を採用したが、レンズ情報生成軸としては、仮想センサの中心から延びる任意の1軸を採用することができる。
すなわち、レンズ情報生成軸としては、例えば、仮想センサの中心と、仮想センサの対角の1画素とを結ぶ線分を採用することができる。
また、複数の情報点は、仮想センサの中心から延びるレンズ情報生成軸を等分する複数の点に限定されるものではない。
すなわち、複数の情報点としては、例えば、仮想センサの平面の像高が異なる、直線上に並ぶ複数の点、又は、直線上に並んでいない複数の点を採用することができる。なお、複数の情報点の像高は、0から、仮想センサの像高の最大値までの範囲に、万遍なく散らばっていることが望ましい。
図67は、光線回転法による集光処理(図65及び図66)を行う場合に、回転前の光線が結像する仮想センサ上の結像位置である像面シフト位置を求める方法(図66のステップS273で結像位置を認識する方法)を説明する図である。
ここで、像面シフト位置が、例えば、仮想センサの左上の画素を原点とし、仮想センサの画素ピッチを1とする2次元座標系の座標(x,y)で表現されることとする。
また、像面シフト情報は、像面シフト位置の、光軸(仮想センサの中心)SOからの、x方向及びy方向それぞれの距離(マイクロメートル)を表すこととする。
結像位置認識部244は、図66のステップS273で説明したように、注目視差がある対応情報点に対応する実空間点に対する像面シフト情報と、回転処理部246が注目光線を回転した一致回転角度-ALPHAとから、回転前の注目光線が結像する仮想センサ上の結像位置である像面シフト位置(以下、回転前像面シフト位置ともいう)を認識する。
ここで、対応情報点は、仮想センサの中心SOから上方向に延びるセンサ情報生成軸上の点であり、そのような対応情報点と注目視差とに対応する実空間点に対する像面シフト情報img_heightは、仮想センサの中心SOから、その中心SOを通り、垂直方向に延びる直線上の位置Aまでの距離を表す。位置Aは、対応情報点と注目視差とに対応する実空間点から発せられる主光線が、エミュレーションレンズを介して到達する仮想センサ上の位置である。
いま、仮想センサの横幅(左端の画素と右端の画素との間の距離)を、widthと表すとともに、仮想センサの画素ピッチ(隣接する画素どうしの距離)を、Sensor_pitchと表すこととする。
回転前の注目光線が結像する仮想センサ上の結像位置である回転前像面シフト位置は、位置Aを、注目光線を回転したときの一致回転角度-ALPHAだけ逆回転した位置、すなわち、一致回転角度+ALPHAだけ回転した位置になる。
したがって、回転前像面シフト位置のx座標Xは、式X=width/2+(img_height×cos(90°-ALPHA))/Sensor_pitchに従って求めることができる。
回転前像面シフト位置のy座標も、同様に求めることができる。
結像位置認識部244は、以上のようにして、回転前像面シフト位置(のx座標及びy座標)を求めて認識する。
そして、加算部245では、以上のように、対応情報点と注目視差とに対応する実空間点に対する像面シフト情報img_heightが表す位置(像面シフト位置)Aを、注目光線を回転したときの一致回転角度-ALPHAだけ逆回転する(一致回転角度+ALPHAだけ回転する)ことにより得られる回転前像面シフト位置によって、スケールの調整後の分布エリアと仮想センサとの位置合わせが行われる。
すなわち、加算部245では、スケールの調整後の分布エリアの中心点CP(図54)と、仮想センサの回転前像面シフト位置とが一致するように、スケールの調整後の分布エリアと仮想センサとの位置合わせが行われる。
なお、回転前像面シフト位置は、以上のように、対応情報点と注目視差とに対応する実空間点に対する像面シフト情報img_heightが表す位置(像面シフト位置)を回転することにより求められるため、その回転に起因する丸め誤差が生じる。
この丸め誤差により、回転前像面シフト位置の精度が低下し、この回転前像面シフト位置の精度の低下に起因して、集光処理でのエミュレーションレンズの集光特性の再現性が低下することがある。
そこで、回転前像面シフト位置の精度の低下を抑制するため、像面シフト情報(が表す像面シフト位置)については、補間を行うことができる。
像面シフト情報(が表す像面シフト位置)の補間には、情報点の並びの方向(光軸と垂直な方向)(像高の方向)の補間と、視差方向の補間とがある。
図68は、像面シフト情報(が表す像面シフト位置)の、情報点の並びの方向の補間を説明する図である。
光線回転法による集光処理は、注目実空間点に対応する仮想センサの画素(位置)を、一致回転角度-ALPHAだけ回転した回転後の画素(位置)に最も近い情報点である対応情報点と注目視差とに対応する実空間点に対するレンズ情報(以下、単に、対応情報点に対するレンズ情報ともいう)を用いて行われる。
図68では、注目実空間点に対応する仮想センサの画素(位置)ppを、一致回転角度-ALPHAだけ回転した回転後の画素(位置)pp'が、隣接する情報点AとBとの間にあり、その回転後の画素pp'に最も近い情報点である対応情報点が、情報点Bになっている。
この場合、情報点の並びの方向の補間としては、回転後の画素pp'を挟む情報点A及びBそれぞれに対する像面シフト位置ih1及びih2を用いた補間が、例えば、回転後の画素pp'から情報点A及びBそれぞれまでの距離a及びbの比に従って行われる。
すなわち、情報点の並びの方向の補間では、例えば式ih=(ih1×b+ih2×a)/(a+b)に従って、情報点の並びの方向の補間値としての像面シフト位置ihが求められる。
そして、対応情報点である情報点Bに対する像面シフト位置ih2に代えて、情報点の並びの方向の補間値としての像面シフト位置ihを用いて、注目実空間点から発せられる光線の結像値の位置合わせが行われる。
図69は、像面シフト情報(が表す像面シフト位置)の、視差方向の補間を説明する図である。
本実施の形態では、図6で説明したように、視差を、例えば、1/4画素の精度で求めて、その1/4画素の精度の視差を、整数化して用いることとしている。
そのため、例えば、図32等では、視差マップに登録し得る視差dを、最小値Dminから最大値Dmaxまでの、1画素刻みのDPN=Dmax-Dmin+1個の整数値としたが、視差マップには、1/4画素の精度の視差を登録しておき、視差マップに登録されている視差を用いるときに、その視差を、整数化することができる。
以上のように、視差マップに、1/4画素の精度等の画素以下精度の視差が登録されている場合、像面シフト情報の、視差方向の補間は、視差マップに登録されている画素以下精度の視差を、整数化せずにそのまま用いて行うことができる。
例えば、いま、視差マップに、1/4画素の精度の視差が登録されていることとする。
図61のエミュレーションレンズ情報生成処理では、注目情報点及び注目視差に対応する注目実空間点に対するレンズ情報としての像面シフト情報(が表す像面シフト位置)が、視差マップに登録され得る視差を、注目視差に選択して求められる。
このエミュレーションレンズ情報生成処理で注目視差に選択される、視差マップに登録され得る視差としては、最小値Dminから最大値Dmaxまでの、1画素刻みのDPN=Dmax-Dmin+1個の整数値が用いられる。
したがって、エミュレーションレンズ情報生成処理では、整数値の視差に対して、像面シフト位置が求められる。
図69では、ある整数値の視差Dの次に大きい視差が、整数値D+1になっている。そして、整数値の視差Dに対して、像面シフト位置ih1が求められ、次に大きい整数値の視差D+1に対して、像面シフト位置ih2が求められている。
一方、図65の集光処理では、基準画像から選択された注目画素の視差として、視差マップに登録されている視差の中から、注目視差が選択される(ステップS253)。
この場合、視差マップに登録されている視差は、整数化され、注目視差に選択される。
そして、集光処理では、対応情報点及び注目視差に対応する実空間点に対するレンズ情報を用いて、光線加算処理(図66)が行われる。
この光線加算処理で用いられるレンズ情報のうちの、像面シフト情報(が表す像面シフト位置)については、視差マップに登録されている視差を整数化せずに用いて、視差方向の補間を行うことができる。
すなわち、図69では、対応情報点及び注目視差に対応する実空間点の視差(注目視差)が、1/4画素の精度の視差であるD+0.75になっている。
ここで、視差マップに登録されている視差が、1/4画素の精度の視差である場合、整数値の視差Dから、次の整数値の視差D+1までの間の、1/4画素の精度の視差としては、D+0.25,D+0.5,D+0.75がある。
視差マップに登録されている視差を整数化して用いる場合に、その整数化を、例えば、小数点以下の切り捨てによって行うこととすると、注目視差が、D,D+0.25,D+0.5、又は、D+0.75である場合には、いずれの場合にも、整数値Dに整数化される。
そして、整数値Dに整数化された注目視差に対する像面シフト位置ih1を用いて、光線加算処理(図66)が行われる。
視差方向の補間としては、整数化していない注目視差D+0.75を挟む整数値の視差D及びD+1それぞれに対する像面シフト位置ih1及びih2を用いた補間が、注目視差D+0.75から整数値の視差D及びD+1それぞれまでの距離0.75及び0.25の比に従って行われる。
すなわち、視差方向の補間では、式ih=ih1×0.25+ih2×0.75に従って、視差方向の補間値としての像面シフト位置ihが求められる。
そして、整数値Dに整数化された注目視差に対する像面シフト位置ih1に代えて、視差方向の補間値としての像面シフト位置ihを用いて、光線加算処理(のうちの、光線の結像値の位置合わせ)が行われる。
以上のような、像面シフト情報(が表す像面シフト位置)の補間を行う場合には、集光処理でのエミュレーションレンズの集光特性の再現性を向上させることができる。
なお、像面シフト情報については、情報点の並びの方向の補間、及び、視差方向の補間のうちの一方だけを行うこともできるし、両方を行うこともできる。
<エミュレーション結果>
図70は、レンズエミュレーション部35(図3)によるレンズエミュレーション処理の結果得られるエミュレーション画像の例を示す図である。
図70は、物体obj1の手前側に、棒状の物体obj2が配置されている実空間を撮影した撮影画像から得られたエミュレーション画像を示している。
エミュレーション画像によれば、物体obj1の、棒状の物体obj2によって隠れている部分が発する光線が、物体obj2に衝突して見えなくなっていることを確認することができる。
図71は、レンズエミュレーション部35によるレンズエミュレーション処理の結果得られるエミュレーション画像の他の例を示す図である。
なお、図71のエミュレーション画像は、図70と同様に、物体obj1の手前側に、棒状の物体obj2が配置されている実空間を撮影した撮影画像から得られたエミュレーション画像である。
図71のAは、像面シフト位置として、主光線がエミュレーションレンズを介して到達する仮想センサ上の位置ではなく、主光線が仮想レンズを介して到達する仮想センサ上の位置を採用した場合のエミュレーション画像を示している。
集光処理において、像面シフト位置として、主光線がエミュレーションレンズを介して到達する仮想センサ上の位置ではなく、主光線が仮想レンズを介して到達する仮想センサ上の位置を採用した場合、光線の結像値を加算する仮想センサの位置に、仮想レンズとエミュレーションレンズとの入力瞳の位置のずれに起因する誤差が生じる。そのため、図71のAでは、エミュレーション画像において、奥側の物体obj1のうちの、棒状の物体obj2によって隠れて見えないはずの部分が、見えてしまっている。
図71のBは、像面シフト情報の補間を行わなかった場合のエミュレーション画像を示している。
図71のBでは、像面シフト情報(が表す像面シフト位置)の回転に起因する丸め誤差の影響により、棒状の物体obj2の輪郭を形成する垂直方向に延びる線分が、でこぼこになっていることを確認することができる。
像面シフト位置として、主光線がエミュレーションレンズを介して到達する仮想センサ上の位置を採用することや、像面シフト情報の補間を行うことで、エミュレーション画像において、図71に示した症状が生じることを防止することができる。
<本技術を適用したコンピュータの説明>
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
図72は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク405やROM403に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体411に格納(記録)しておくことができる。このようなリムーバブル記録媒体411は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体411としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体411からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク405にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)402を内蔵しており、CPU402には、バス401を介して、入出力インタフェース410が接続されている。
CPU402は、入出力インタフェース410を介して、ユーザによって、入力部407が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)403に格納されているプログラムを実行する。あるいは、CPU402は、ハードディスク405に格納されたプログラムを、RAM(Random Access Memory)404にロードして実行する。
これにより、CPU402は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU402は、その処理結果を、必要に応じて、例えば、入出力インタフェース410を介して、出力部406から出力、あるいは、通信部408から送信、さらには、ハードディスク405に記録等させる。
なお、入力部407は、キーボードや、マウス、マイク等で構成される。また、出力部406は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
なお、本技術は、以下のような構成をとることができる。
<1>
実空間内の実空間点から、複数の視点の画像を撮影する複数の撮影部を合成開口とする仮想レンズに入射する光線を、エミュレーション対象のエミュレーションレンズを介して仮想センサ上に集光する集光処理を、前記仮想センサの平面の一部の複数位置である複数の情報点に対応する実空間点に対して生成された、前記エミュレーションレンズを通過する光線を規定するレンズ情報を用いて行う集光処理部を備える
画像処理装置。
<2>
前記集光処理部は、前記仮想センサの中心から延びる所定の1軸であるレンズ情報生成軸上の前記複数の情報点に対応する実空間点に対する前記レンズ情報を用いて、前記集光処理を行う
<1>に記載の画像処理装置。
<3>
前記集光処理部は、前記実空間点に対応する前記仮想センサの画素が、前記レンズ情報生成軸上に位置するように、前記仮想センサの画素、又は、前記レンズ情報生成軸を、前記仮想センサの中心を中心として回転するときの回転角度だけ、前記実空間点から発せられる光線、又は、前記レンズ情報生成軸のレンズ情報を回転し、前記集光処理を行う
<2>に記載の画像処理装置。
<4>
前記集光処理部は、前記仮想センサの画素、又は、前記レンズ情報生成軸を、前記回転角度だけ回転したときの、前記仮想センサの画素に対応する前記情報点に対応する実空間点に対する前記レンズ情報を用いて、前記集光処理を行う
<3>に記載の画像処理装置。
<5>
前記集光処理部は、
前記光線が前記エミュレーションレンズを介して前記仮想センサに結像する際の結像値を、前記仮想センサ上に加算する前記集光処理を行う
<1>ないし<4>のいずれかに記載の画像処理装置。
<6>
前記集光処理部は、
前記実空間点から発せられる主光線が前記エミュレーションレンズを介して到達する前記仮想センサ上の位置である像面シフト位置によって、前記結像値を加算する前記仮想センサ上の位置の位置合わせを行い、
前記結像値を、前記仮想センサ上に加算する
前記集光処理を行う
<5>に記載の画像処理装置。
<7>
前記集光処理部は、前記像面シフト位置を、前記回転角度だけ逆回転した位置によって、前記結像値を加算する前記仮想センサ上の位置の位置合わせを行う
<6>に記載の画像処理装置。
<8>
前記集光処理部は、前記レンズ情報に含まれる、前記像面シフト位置を表す像面シフト情報を用いた補間によって得られる前記像面シフト位置を用いて、前記集光処理を行う
<7>に記載の画像処理装置。
<9>
前記集光処理部は、前記レンズ情報に含まれる前記像面シフト情報を用いた、視差方向と前記情報点の並びの方向の補間によって得られる前記像面シフト位置を用いて、前記集光処理を行う
<8>に記載の画像処理装置。
<10>
前記集光処理部は、前記光線と、前記エミュレーションレンズの、点光源に対する応答を表す、前記レンズ情報に含まれるPSF(Point Spread Function)強度分布とを用いて、前記光線が前記エミュレーションレンズを介して前記仮想センサに結像する際の結像値を、前記仮想センサ上に加算する前記集光処理を行う
<1>ないし<9>のいずれかに記載の画像処理装置。
<11>
前記集光処理部は、前記光線が到達する前記PSF強度分布の位置を表す、前記レンズ情報に含まれるPSF角度成分情報が表す前記PSF強度分布の位置における前記PSF強度分布と、前記光線の輝度との積を、前記結像値として、前記仮想センサ上に加算する前記集光処理を行う
<10>に記載の画像処理装置。
<12>
前記集光処理部は、前記PSF強度分布のスケールを表す、前記レンズ情報に含まれる像面ピッチと、前記仮想センサの画素のスケールを表す画素ピッチとに基づいて、前記結像値を、前記仮想センサ上に加算する前記集光処理を行う
<11>に記載の画像処理装置。
<13>
前記集光処理部は、前記像面ピッチと、前記画素ピッチとに基づいて、前記PSF強度分布と前記光線の輝度との積で求められる前記結像値の分布のスケールを、前記仮想センサのスケールに一致させて、前記結像値を、前記仮想センサ上に加算する前記集光処理を行う
<12>に記載の画像処理装置。
<14>
実空間内の実空間点から、複数の視点の画像を撮影する複数の撮影部を合成開口とする仮想レンズに入射する光線を、エミュレーション対象のエミュレーションレンズを介して仮想センサ上に集光する集光処理を、前記仮想センサの平面の一部の複数位置である複数の情報点に対応する実空間点に対して生成された、前記エミュレーションレンズを通過する光線を規定するレンズ情報を用いて行うことを含む
画像処理方法。