画像処理装置、画像処理方法、画像処理プログラム、撮像装置及び電子機器
【課題】多段露光によって得られた画像を重み付け合成するのに好適な画像処理装置、画像処理方法、撮像装置及び電子機器を提供する。
【解決手段】撮像装置1を、撮像素子10と、第1〜第4メモリ12〜15と、映像信号処理部16と、フレームメモリ17と、制御部18と、画像解析部19と、操作部20とを含む構成とし、映像信号処理部16の重み計算部16aにおいて、露光時間T1〜T4(T1<T2<T3<T4)で撮像して得られた画素データS1〜S4のうち、画素データS2の合成重みW2を計算時に画素データS2及びS3の明度を用い、画素データS3の合成重みW3を計算時に画素データS3及びS4の明度を用いる構成とした。また、合成重みW1〜W4の計算において、明度の大きさに応じて関数値が増加し、関数値の最大値が1となる関数F(x)を用いる構成とした。
【解決手段】撮像装置1を、撮像素子10と、第1〜第4メモリ12〜15と、映像信号処理部16と、フレームメモリ17と、制御部18と、画像解析部19と、操作部20とを含む構成とし、映像信号処理部16の重み計算部16aにおいて、露光時間T1〜T4(T1<T2<T3<T4)で撮像して得られた画素データS1〜S4のうち、画素データS2の合成重みW2を計算時に画素データS2及びS3の明度を用い、画素データS3の合成重みW3を計算時に画素データS3及びS4の明度を用いる構成とした。また、合成重みW1〜W4の計算において、明度の大きさに応じて関数値が増加し、関数値の最大値が1となる関数F(x)を用いる構成とした。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、露光量の異なる複数種類の撮像画像データを合成して、ダイナミックレンジを拡張した画像データを生成するのに好適な画像処理装置、画像処理方法、撮像装置及び電子機器等に関する。
【背景技術】
【0002】
従来、複数種類の露光量(露光時間)で同一被写体を撮像し、この撮像で得られた複数種類の露光量にそれぞれ対応した画素信号を合成して、ダイナミックレンジを拡張した画像データ(HDR画像データ)を生成する技術がある。かかる技術においては、合成画像における、各露光量に対応する画像部分と他の露光量に対応する画像部分との境界領域に発生するノイズ(偽色、疑似輪郭など)がしばしば問題となっていた。
【0003】
例えば、露光量L1、L2(L1<L2)に対応する露光時間T1、T2(T1<T2)で同一被写体を撮像して、画素信号D1(T1に対応)、D2(T2に対応)が得られたとする。この場合に、図12(a)及び(b)に示すように、D1の傾きをD2の傾きに合わせるために、画素信号D1に係数「T2/T1」を乗算して正規化を行う。次に、正規化した「D1×T2/T1」と、「D2」とを線形合成する。これにより、図12(c)に示すように、ダイナミックレンジを拡張した(S/Nの良い)撮像画像信号が得られる。
【0004】
しかし、「D1×T2/T1」の傾きとD2の傾きとに微妙な差が生じた場合に、合成後の撮像画像信号の線形性が崩れる恐れがある。線形性が崩れると、「D1×T2/T1」の画像とD2の画像との境界領域において、偽色や疑似輪郭等の原因となるノイズが発生する場合がある。
このような問題を解決するために、画像の重み付け合成が従来から用いられている。例えば、特許文献1では、2組の合成画像のうち、より明るい方の明度情報をもとに重みが変わる関数f、gを用意し、合成後の画像D0を、下式(1)により求めている。
D0=(D1×T2/T1)×f(D2)+D2×g(D2) ・・・(1)
また、特許文献2では、オーバーラップ領域(信号の80%〜100%)を予め設定しておき、2つの画像を合成する際に、より長い露光時間の画像がオーバーラップ領域に達している部分、即ちハイライト部分で、飽和しにくいより短い露光時間の画像との重み付け合成を行っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3084189号公報
【特許文献2】特許第2970440号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1の従来技術においては、露光量の異なる4枚の画像を重み付け合成する場合に、上式(1)を用いた合成方法では、2枚ずつの画像合成にしか対応していない。そのため、例えば、D1〜D4の4画素を重み付け合成するためには、図13に示すように、合計6回もの合成処理を行う必要があり、合成する画像の枚数が増加するほど計算量が飛躍的に増加する。
【0007】
また、上記特許文献2の従来技術においては、重み付け合成の行われる領域が、オーバーラップ領域に限定されるため、重み付け合成されているハイライト部分とそうでない部分とに、不自然な繋ぎ目が発生する恐れがある。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものである。本発明の幾つかの態様によれば、多段露光によって得られた画像を重み付け合成するのに好適な画像処理装置、画像処理方法、撮像装置及び電子機器を提供できる。
【課題を解決するための手段】
【0008】
〔形態1〕 上記目的を達成するために、形態1の画像処理装置は、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出手段と、
前記重み算出手段で算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成手段と、を備える。
【0009】
このような構成であれば、重み付け算出手段によって、3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、第1の画像の画像合成に用いる重みが算出される。
例えば、4種類の露光量L1、L2、L3、L4(L1<L2<L3<L)で被写体を撮像して得られた画像S1〜S4について重みの算出を行う場合に、例えば、画像S2の重みについては、S2の輝度と、S3の輝度とに基づき重みが算出されることになる。
【0010】
ここで、重みの算出は、重み付けの必要な露光量の画像の全てについて行う。例えば、重み付けの必要な露光量の画像が2種類以上ある場合は、そのそれぞれを第1の画像とし、そのそれぞれの次に露光量の大きい画像を第2の画像として重みを算出する。
重みが算出されると、画像合成手段によって、算出した重みを用いて、3種類以上の画像の重み付け加算が行われ、画像が合成される。
以上のことから、合成する画像のうち、露光量の大きさが隣り合う2つの画像の明度に基づき露光量の小さい方の画像の重みを算出することができる。これにより、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0011】
〔形態2〕 更に、形態2の撮像装置は、形態1の撮像装置において、
前記重み算出手段は、前記3種類以上の画像のうち、露光量が最小及び最大となる2種類の画像以外の画像について、前記第1の画像の輝度と、前記第2の画像の輝度とに基づき重みを算出する。
このような構成であれば、重み算出手段によって、露光量が最小及び最大となる2種類の画像を除く、残りの中間の露光量について、第1の画像の輝度と第2の画像の輝度とに基づき重みが算出される。
これにより、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0012】
〔形態3〕 更に、形態3の撮像装置は、形態1又は2の撮像装置において、
前記重み算出手段は、前記重みを、画像の輝度を要素xとし、関数値が輝度の大きさに応じて増加する関数F(x)によって算出した値を用いて算出する。
このような構成であれば、重み算出手段によって、輝度xの大きさに応じて増加する関数F(x)によって算出した値を用いて第1の画像に対する重みを算出することができる。
【0013】
これによって、第2の画像の輝度が大きければ大きいほど、第1の画像に対する重みを大きくすることができるので、例えば、第1の画像の輝度が非飽和で、第2の画像の輝度が飽和している場合に、その飽和部分を第1の画像で補完してやることができる。
従って、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0014】
〔形態4〕 更に、形態4の撮像装置は、形態3の撮像装置において、
前記重み算出手段は、前記関数として、前記要素xに対する算出値が、より急峻に変化する第1の関数F1(x)と、より緩やかに変化する第2の関数F2(x)とを切り替えて用いる。
このような構成であれば、重み算出手段によって、重みの算出に、第1の関数F1(x)と、第2の関数F2(x)とを切り替えて用いることができる。
つまり、より急峻に変化する関数F1(x)を用いた場合は、該当の画像の混合度合いをより強くすることができ、より緩やかに変化する関数F2(x)を用いた場合は、該当の画像の混合度合いをより弱くすることができる。
これによって、複数種類の画像の混合度合いを変化させることができ、より適切な重みを算出することができるという効果が得られる。
【0015】
〔形態5〕 一方、上記目的を達成するために、形態4の画像処理方法は、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップと、を含む。
このような構成であれば、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
【0016】
〔形態6〕 また、上記目的を達成するために、形態5の画像処理プログラムは、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップとを有する処理をコンピューターに実行させるためのプログラムを含む。
このような構成であれば、コンピューターによってプログラムが実行されると、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
【0017】
〔形態7〕 また、上記目的を達成するために、形態7の撮像装置は、
N種類(Nは3以上の自然数)の露光量で被写体を撮像する撮像手段と、
形態1乃至4のいずれか1に記載の画像処理装置と、を備え、
前記画像処理装置は、前記撮像手段で撮像して得られたN種類の露光量に対応するN種類の画像のうち、少なくとも画像合成に用いる3種類以上の画像について、前記第1の画像に対する重みを算出する。
このような構成であれば、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
〔形態8〕 また、上記目的を達成するために、形態6の電子機器は、
形態7に記載の撮像装置を備える。
このような構成であれば、形態7に記載の撮像装置と同等の作用及び効果が得られる。
【図面の簡単な説明】
【0018】
【図1】本発明に係る撮像装置1の構成を示すブロック図である。
【図2】(a)は、撮像素子10の内部構成を示す模式図であり、(b)は、HDRセンサ10dの内部構成を示すブロック図である。
【図3】映像信号処理部16の内部構成を示すブロック図である。
【図4】センサセルアレイにおける各画素のライン毎の露光及び画素信号の読み出し動作の一例を示す図である。
【図5】撮像装置1の動作処理の一例を示すフローチャートである。
【図6】HDR合成処理の一例を示すフローチャートである。
【図7】露光比調整処理の一例を示すフローチャートである。
【図8】(a)〜(d)は、比率が均等となるように決定された露光時間T1〜T4における入射光に対する応答信号S1〜S4の一例を示す図である。
【図9】(a)〜(d)は、入射光に対する合成重みW1〜W4の一例を示す図である。
【図10】図9(a)〜(d)を重ねて表示した図である。
【図11】図8(a)〜(d)における入射光の軸を対数で表した場合の図である。
【図12】従来の重み付けなしの場合の合成対象の画像及びHDR合成処理後の画像の光−信号特性の一例を示す図である。
【図13】従来の重み付けありの場合のHDR合成処理に係る計算処理の流れの一例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の第1実施形態を図面に基づき説明する。図1〜図11は、本発明に係る画像処理装置、画像処理方法、画像処理プログラム、撮像装置及び電子機器の実施形態を示す図である。
まず、本発明に係る撮像装置の構成を図1に基づき説明する。図1は、本発明に係る撮像装置1の構成を示すブロック図である。
撮像装置1は、図1に示すように、撮像素子10と、SW(スイッチ)11と、第1〜第4メモリ12〜15と、映像信号処理部16と、フレームメモリ17と、制御部18と、画像解析部19と、操作部20とを含んで構成される。
【0020】
次に、図2に基づき、撮像素子10の詳細な構成を説明する。ここで、図2(a)は、撮像素子10の内部構成を示す模式図であり、(b)は、HDRセンサ10dの内部構成を示すブロック図である。
撮像素子10は、複数種類の露光量で被写体を撮像する機能を有し、図2(a)に示すように、レンズ10aと、マイクロレンズ10bと、カラーフィルタアレイ10cと、HDRセンサ10dとを含んで構成される。
【0021】
以下、説明の便宜上、撮像素子10は、4種類の露光量L1、L2、L3、L4(L1<L2<L3<L4)に対応する露光時間T1、T2、T3、T4(T1<T2<T3<T4)で撮像を行うものとして構成を説明をする。もちろん、露光量は4種類に限らず、3種類又は5種類以上であってもよい。
レンズ10aは、被写体からの反射光を集光して、マイクロレンズへと導くものである。なお、撮像条件などに応じて、単焦点レンズ、ズームレンズ、オートアイリスレンズなどの種類がある。
【0022】
マイクロレンズ10bは、レンズを透過した光をHDRセンサ10dの有するセンサセルアレイの各センサセル(画素)に集光するものである。
カラーフィルタアレイ10cは、マイクロレンズ10bを透過した光から所定の1種類の色要素に対応する波長の光を分離して該分離した光を対応する各画素に入射するカラーフィルター部(以下、CF部と称す)を少なくとも画素数分含んで構成されるものである。
【0023】
HDRセンサ10dは、電子シャッタ方式によって露光時間T1〜T4を制御して露光量の異なる4種類のデジタルの画像データを出力するものである。
HDRセンサ10dは、図2(b)に示すように、基準タイミング発生器50と、走査ラインスキャナ54と、センサセルアレイ56と、水平転送部58とを含んで構成される。
基準タイミング発生器50は、制御部18からの垂直同期信号及び水平同期信号に基づき、基準タイミング信号を発生し、これを走査ラインスキャナ54に出力する。
【0024】
走査ラインスキャナ54は、基準タイミング発生器50及び制御部18からの各種信号に基づき、リセット処理を行うラインを有効にするリセットライン選択信号を生成する。そして、該生成したリセットライン選択信号をセンサセルアレイ56に出力する。
更に、走査ラインスキャナ54は、リセット後で且つ設定された露光時間T1〜T4の電荷の蓄積が行われたラインを画素信号の読出ラインとして有効にする読出しライン選択信号を生成する。そして、該生成した読出ライン選択信号をセンサセルアレイ56に出力する。
センサセルアレイ56は、CMOS技術を用いて構成された、受光素子(フォトダイオードなど)を含む複数のセンサセル(画素)が2次元マトリクス状に配設された構成の受光領域を備え、各画素のラインに対して、アドレス線、リセット線及び読出し線が共通に接続された構成を有している。
【0025】
そして、前記3つの制御線を介して各種駆動信号(選択信号)が各ラインを構成するセンサセルに送信され、アドレス線及び読出し線が有効になると、信号線を介して蓄積電荷(画素信号)を水平転送部58に転送(出力)する。
このような構成によって、センサセルアレイ56は、走査ラインスキャナ54から供給される選択信号に基づき、アドレス線により、リセット動作又は読出し動作を行わせる画素のラインを有効に(選択)する。そして、当該選択信号で選択したラインの各画素に対して、リセット動作を行わせる場合はリセット線を介してリセット動作を指示する信号を入力し、画素信号の読出しを行わせる場合は、読出し線を介して蓄積電荷の転送を指示する信号を入力する。更に、選択信号によって選択された各画素おいては、リセット動作を指示する信号が入力されたときはリセット動作が行われ、蓄積電荷の転送を指示する信号が入力されたときは、信号線を介して水平転送部58への蓄積電荷の転送が行われる。
【0026】
水平転送部58は、センサセルアレイ56の各画素から読み出された画素信号(アナログ信号)のデータをA/D変換して、ライン単位にメモリ12〜15へとシリアルで順次出力する。
図1に戻って、SW11は、撮像素子10から画像データS1〜S4が入力されると、これと対応して入力された識別信号に基づきスイッチを切り替え、第1〜第4メモリ12〜15のうち識別信号が示す露光時間に対応するメモリに、入力された画像データを出力する。具体的に、露光時間T1の画像データS1を第1メモリ12に、露光時間T2の画像データS2を第1メモリ13に、露光時間T3の画像データS3を第3メモリ14に、露光時間T4の画像データS4を第4メモリ15に出力する。
【0027】
第1〜第4メモリ12〜15は、SW11を介して入力される、露光時間T1〜T4で被写体を撮像して得られた4種類の露光量L1〜L4に対応する画像データS1〜S4のいずれか対応するものを一時記憶するメモリである。具体的に、SW11を介して順次入力される画像データS1〜S4を、同期をとって映像信号処理部16に出力するバッファとしての役割を果たすメモリである。
【0028】
映像信号処理部16は、図3に示すように、重み計算部16aと、正規化部16bと、合成部16cとを含んで構成される。ここで、図3は、映像信号処理部16の内部構成を示すブロック図である。
重み計算部16aは、露光時間T1〜T4に対応する画素データS1〜S4について、画像合成時に用いる重みW1〜W4(x,y)(以下、合成重みW1〜W4(x,y)と称す)を計算する機能を有している。
【0029】
具体的に、S1(x,y)の合成重みW1(x,y)を計算するときはS2(x,y)を用いる。また、S2(x,y)の合成重みW2(x,y)を計算するときは、S2(x,y)とS3(x,y)の2つの画素データを用いる。また、S3(x,y)の合成重みW3(x,y)を計算するときは、S3(x,y)とS4(x,y)の2つの画素データを用いて重みを計算する。また、S4(x,y)の合成重みW4(x,y)を計算するときは、合成重みW1〜W4(x,y)の総和が「1」となることを利用して計算を行う。
【0030】
本実施形態では、重み計算部16aは、下式(2)〜(6)に基づき、合成重みW1〜W4(x,y)を計算する。
F(x)=(x/255)n ・・・(2)
W1(x,y)=F(S2(x,y)) ・・・(3)
W2(x,y)=F(S3(x,y))−W1
=F(S3(x,y))−F(S2(x,y)) ・・・(4)
W3(x,y)=F(S4(x,y))−W2−W1
=F(S4(x,y))−F(S3(x,y)) ・・・(5)
W4(x,y)=1−W3(x,y)−W2(x,y)−W1(x,y)
=1−F(S4(x,y)) ・・・(6)
【0031】
但し、上式(2)は、8ビットの階調範囲(0〜255)のxに対応する式であって、例えば、階調範囲が10ビットであれば、上式(2)の「255」を「1023」とする。このように、要素となるデータのビット数に応じて値を変更する必要がある。
なお、重み計算部16aは、上式(2)〜(6)に従って計算して得られた合成重みW1〜W4(x,y)の情報を、合成部16cに出力する。
正規化部16bは、メモリ12〜15からの画素データS1〜S4(x,y)及び制御部18からの露光比情報に基づき、画素データS1〜S4(x,y)の正規化処理を行う。本実施の形態において、露光比情報は、露光時間T1〜T4の情報となる。
【0032】
具体的に、本実施形態において、正規化部16bは、下式(7)〜(10)に基づき、露光時間T1〜T4を用いてS1〜S4(x,y)の正規化を行い、正規化後の画素データN1〜N4(x,y)を生成する。
N1(x,y)=S1(x,y)×T4/T1 ・・・(7)
N2(x,y)=S2(x,y)×T4/T2 ・・・(8)
N3(x,y)=S3(x,y)×T4/T3 ・・・(9)
N4(x,y)=S4(x,y)×T4/T4 ・・・(10)
なお、正規化部16bは、上式(7)〜(10)に従って計算して得られた正規化画素データN1〜N4(x,y)の情報を、合成部16cに出力する。
【0033】
合成部16cは、重み計算部16aから取得した合成重みW1〜W4(x,y)と、正規化部16bから取得した正規化画素データN1〜N4(x,y)に基づき、HDR合成処理を行い、HDR画素データを生成する機能を有している。
具体的に、本実施形態において、合成部16cは、下式(11)に基づき、正規化画素データN1〜N4(x,y)をW1〜W4(x,y)で重み付けしてから合成し、HDR画素データHDR(x,y)を生成する。
HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)
・・・(11)
なお、合成部16cは、上式(11)に従って計算して得られたHDR画素データHDR(x,y)を、フレームメモリ17に格納する。
図1に戻って、フレームメモリ17は、映像信号処理部16において合成後のHDR画像データを記憶するメモリである。
【0034】
また、制御部18は、操作部20からの入力情報に基づき露光比情報を生成する機能と、画像解析部19から取得した統計情報に基づき現在の露光比を適切なものに調整する機能と、生成した露光比情報を映像信号処理部16に出力する機能とを有するものである。
更に、制御部18は、調整後の露光比に対応する露光比情報又は新規に生成した露光比情報に基づき露光量信号を生成し、生成した露光量信号及び各種制御信号を撮像素子10に送信する機能も有している。ここで、各種制御信号は、垂直同期信号、水平同期信号、ピクセルクロックなどを含む。
具体的に、本実施形態の撮像素子10は、制御部18から出力される露光量信号に応じた4種類の露光量L1〜L4に対応する露光時間T1〜T4で同一被写体を撮像する。
【0035】
そして、本実施形態において、制御部18は、昇順に並ぶ露光量L1、L2、L3、L4における隣接する各2つの露光量の比率「L2/L1」、「L3/L2」、「L4/L3」が均等(L2/L1=L3/L2=L4/L3)となるように露光量L1〜L4に対応する露光時間T1〜T4を設定するようになっている。
また、本実施形態では、制御部18は、撮像環境の明るさに応じて露光量比を最適な比となるように調整するようになっている。そのために、制御部18は、画像解析部19から得たHDR画像データの平均輝度Lavと、予め用意された高輝度側の閾値Lthと、低輝度側の閾値Ltlとをそれぞれ比較する。
【0036】
制御部18は、この比較結果によって、平均輝度LavがLthより大きければ、撮像環境が比較的明るいと判断し、LavがLtlより小さければ、撮像環境が比較的暗いと判断する。更に、この判断結果に基づき、現在設定されている露光時間T1〜T4を、露光量の比率を均等とする状態を保ったままで増減することで、撮像環境の明るさに対して最適な露光量比となるように調整を行う。
【0037】
画像解析部19は、映像信号処理部16で生成され、フレームメモリ17に格納されたHDR画像データに基づき、撮像環境の明るさに係る統計情報を算出し、算出した統計情報を制御部18に出力する機能を有している。本実施形態において、画像解析部19は、複数フレームの連続撮像時において、フレームメモリ17から得たHDR画像データ(少なくとも最初のフレーム分を含む)を統計的に解析する。本実施形態では、撮像環境の明るさに係る情報を得るために、統計情報として、HDR画像データの平均輝度Lavを算出する。そして、算出したLavを、制御部18に出力する。
操作部20は、撮像時、撮像画像の閲覧時、複数種類の撮像モードのうち任意のモードを選択時などにユーザによって操作されるもので、ユーザの操作内容に応じた情報を制御部18に出力する機能を有している。
【0038】
次に、図4に基づき、撮像素子10のHDRセンサ10dの露光時間の制御方法、及びセンサセルアレイ56からの画素信号の読み出し方法について説明する。ここで、図4は、HDRセンサのセンサセルアレイにおける各画素のライン毎の露光及び画素信号の読み出し動作の一例を示す図である。
本実施形態においては、センサセルアレイ56の露光領域(走査領域)に対して、露光時間T1の画素信号の非破壊読み出しを行う非破壊読み出しラインL1と、露光時間T2の画素信号の非破壊読み出しを行う非破壊読み出しラインL2とを設定する。更に、露光時間T3の画素信号の非破壊読み出しを行う非破壊読み出しラインL3を設定する。更に、各画素のラインの蓄積電荷のリセット及び露光時間T4の画素信号の読み出しを行う読み出し&リセットラインL4&Rを設定する。なお、T1〜T4の関係は、「T1<T2<T3<T4」となっている。そして、リセットされてから、まずT1経過時に非破壊読み出しラインL1が設定される。次にT2経過時に非破壊読み出しラインL2が設定され、次にT3経過時に非破壊読み出しラインL3が設定され、次にT4経過時に読み出し&リセットラインL4&Rが設定される。
【0039】
具体的に、非破壊読み出しラインL1、L2及びL3並びに読み出し&リセットラインL4&Rは、図4に示すように、露光領域における画素のラインに順次露光時間T4分の電荷が蓄積されると、読み出し&リセットラインL4&Rが各画素のラインの画素信号を順次読み出すと共に、その蓄積電荷を順次リセットするように設定される。一方、露光領域のリセット後の各画素のラインにおいては、露光時間T4分の電荷が蓄積される期間中、露光時間T1、T2及びT3において各画素のラインの画素信号を非破壊で順次読み出すように非破壊読み出しラインL1、L2及びL3がそれぞれ設定される。
【0040】
例えば、露光領域の一番目のラインである第1ラインにおいて露光時間T4の画素信号S4の読み出し及びリセットが行われたとする。以降は、画素信号S4が第4ラインメモリから読み出される毎に、図4中のスキャン方向に1ラインずつ、読み出し&リセットラインL4&Rの走査が順次行われる。このとき、読み出し&リセットラインL4&Rが再び第1ラインに到達したときに、丁度、露光時間T4が経過するタイミングとなるように走査が行われる。このような手順で、センサセルアレイの露光領域の画素のラインに対して、各画素のライン毎に、露光時間T4で露光時の画素信号の読み出し及び蓄積電荷のリセットを順次行う。
【0041】
一方、蓄積電荷がリセットされると、当該リセット後の画素のラインに対して、非破壊読み出しラインL1において露光時間T1の露光が行われた画素の画素信号S1の非破壊読み出しを行い、引き続き、非破壊読み出しラインL2において露光時間T2の露光が行われた画素の画素信号S2の非破壊読み出しを行う。引き続き、非破壊読み出しラインL3において露光時間T3の露光が行われた画素の画素信号S3の非破壊読み出しを行う。このような手順で、センサセルアレイの各画素のラインに対して、ライン毎に、露光時間T1、T2及びT3で露光時の画素信号S1、S2及びS3の非破壊読み出しを順次行う。
【0042】
なお、本実施形態においては、図4に示すように、露光時間T1に対応する画素信号のデータ(アナログデータ)S1は、第1ラインメモリに読み出され、露光時間T2に対応する画素信号のデータ(アナログデータ)S2は、第2ラインメモリに読み出される。更に、露光時間T3に対応する画素信号のデータ(アナログデータ)S3は、第3ラインメモリに読み出され、露光時間T4に対応する画素信号のデータ(アナログデータ)S4は、第4ラインメモリに読み出される。そして、これら読み出された画素信号のデータS1〜S4(以下、画素データS1〜S4と称す)は、図4に示すように、それぞれ選択回路を経てADCにS1〜S4の順で順次出力されそこでデジタルデータに変換される。変換された各画素データS1〜S4は、変換された順に(S1〜S4の順に)、S1は第1メモリ12に、S2は第2メモリ13に、S3は第3メモリ14に、S4は第4メモリ15にそれぞれ出力される。
【0043】
次に、図5に基づき、撮像装置1の動作処理の流れを説明する。ここで、図5は、撮像装置1の動作処理の一例を示すフローチャートである。
撮像装置1の電源が投入されると、図5に示すように、まず、ステップS100に移行する。
ステップS100では、制御部18において、最短露光時間Tmin及び最長露光時間Tmaxの初期値を設定して、ステップS102に移行する。初期値の設定は、操作部20を介してユーザが入力又は選択した値を用いても良いし、標準露光時間として予め設定されている初期値を用いてもよい。
【0044】
ステップS102では、制御部18において、ステップS100で設定された初期値を用いて、中間の露光量に対応する露光時間である露光時間Tmidを算出し、算出したTmidと、初期値として設定したTmin及びTmaxとに基づき露光比情報を生成する。そして、生成した露光比情報に基づき露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、ステップS104に移行する。
【0045】
本実施形態では、露光量の種類をL1〜L4の4種類としたので、露光量L1に対応する最短露光時間TminはT1に、露光量L4に対応する最長露光時間TmaxはT4となる。そして、露光量L2及びL3に対応する中間露光時間TmidはT2及びT3となる。そして、制御部18は、下式(12)及び(13)に従って、「T2/T1=T3/T2=T4/T3」となる中間露光時間T2及びT3を算出する。
T2=(T12×T4)1/3 ・・・(12)
T3=(T1×T42)1/3 ・・・(13)
【0046】
例えば、設定可能な最短露光時間Tminが1H、最長露光時間Tmaxが1000Hの場合は、T1=1H、T3=1000Hとして、上式(12)から「T2=(12×1000)1/3=10」と算出できる。また、上式(13)から「T3=(1×10002)1/3=100」と算出できる。これにより、露光量比=露光時間比=「1:10:100:1000」が求まる。この場合は、ダイナミックレンジが「60[dB]」となる。
なお、センサセルアレイにおける1ラインの走査時間を水平同期信号の呼称であるHSYNCの頭文字を取り、1Hと表している。例えば、センサセルアレイの総ライン数500ラインに対して、フレームレートが30[fps]の場合は、1Hの期間は1/30秒を500ラインで除算した時間、つまり1/15000秒、換言すれば1/15ミリ秒(約67μ秒)となる。
【0047】
ステップS104では、映像信号処理部16において、撮像処理が開始されたか否かを判定し、開始されたと判定した場合(Yes)は、ステップS106に移行し、そうでない場合(No)は、撮像処理が開始されるまで判定処理を繰り返す。
なお、撮像処理が開始されると、撮像素子10は、制御部18からの露光量信号及び各種制御信号に基づき、露光量L1〜L4(露光時間T1〜T4)で被写体を撮像する。そして、撮像により得られた画像データS1〜S4を、第1〜第4メモリ12〜15に順次出力して、ステップS106に移行する。
【0048】
ステップS106では、映像信号処理部16において、第1〜第4メモリ12〜15から順次出力される画像データS1〜S4と、制御部18からの露光比情報(T1:T2:T3:T4)とに基づき、HDR合成処理を実行して、ステップS108に移行する。
ステップS108では、制御部18において、撮像処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、一連の処理を終了し、そうでない場合(No)は、ステップS110に移行する。
【0049】
ステップS110に移行した場合は、制御部18において、フレームメモリ17に格納されたHDR合成処理によって生成されたHDR画像データに基づき、露光比調整処理を実行して、ステップS106に移行する。
露光比調整処理が実行されると、撮像素子10は、調整後の露光量信号に基づき、撮像処理を実行する。
【0050】
次に、図6に基づき、映像信号処理部16におけるHDR合成処理の流れを説明する。ここで、図6は、HDR合成処理の一例を示すフローチャートである。
ステップS106に移行すると、映像信号処理部16においてHDR合成処理が開始され、図6に示すように、まず、ステップS200に移行する。
ステップS200では、映像信号処理部16において、第1〜第4メモリ12〜15から画素データS1〜S4を1ライン分取得して、ステップS202に移行する。
【0051】
具体的に、映像信号処理部16は、第1〜第4メモリ12〜15に、同じ画素位置の1ライン分の画素データS1〜S4が格納されたタイミングで、該S1〜S4を取得する。
なお、本実施形態においては、画素データS1〜S4(x,y)は、輝度の情報(輝度値)と、画素の位置情報(行及び列の位置情報)とを含むデータであることとする。また、画素データS1〜S4が位置情報を持たず、映像信号処理部16において、水平同期信号及びピクセルクロックをカウントすることで、画素の位置情報を生成する構成としてもよい。
【0052】
また、映像信号処理部16において、必要に応じて、取得した画素データS1〜S4に対して、固定パターンノイズの除去処理、クランプ処理等の前処理を施してもよい。
ステップS202では、映像信号処理部16において、1ライン分の画素データS1〜S4の中から、合成重みW1〜W4及び正規化画素データN1〜N4の計算処理が未処理の1画素分の画素データS1〜S4(x,y)を選択する。そして、選択した画素データS1〜S4(x,y)を正規化部16bに出力し、選択した画素データS1〜S4(x,y)のうちS2〜S4(x,y)を重み計算部16aに出力して、ステップS204に移行する。
【0053】
ステップS204では、重み計算部16aにおいて、ステップS202で選択された画素データS2(x,y)を用いて、上式(2)及び(3)から、合成重みW1(x,y)として、「W1(x,y)=F(S2(x,y))」を計算して、ステップS206に移行する。
ステップS206では、重み計算部16aにおいて、ステップS202で選択された画素データS3(x,y)に基づき、上式(2)から、まず、F(S3(x,y))を計算する。次に、該計算したF(S3(x,y))と、ステップS204で計算したF(S2(x,y))と、上式(4)とから、合成重みW2(x,y)として、「W2(x,y)=F(S3(x,y))−F(S2(x,y))」を計算して、ステップS208に移行する。
【0054】
ステップS208では、重み計算部16aにおいて、ステップS202で選択された画素データS4(x,y)に基づき、上式(2)から、まず、F(S4(x,y))を計算する。次に、該計算したF(S4(x,y))と、ステップS206で計算したF(S3(x,y))と、上式(5)とから、合成重みW3として、「W3(x,y)=F(S4(x,y))−F(S3(x,y))」を計算して、ステップS210に移行する。
ステップS210では、重み計算部16aにおいて、ステップS208で計算したF(S4(x,y))と、上式(6)とから、合成重みW4(x,y)として、「W4(x,y)=1−F(S4(x,y))」を計算して、ステップS212に移行する。
なお、ステップS204〜S210において計算した合成重みW1〜W4(x,y)は、合成部16cに出力される。
【0055】
ステップS212では、正規化部16bにおいて、ステップS202で選択された画素データS1(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT1とT4とに基づき、上式(7)から、画素データS1(x,y)を正規化する。具体的に、正規化画素データN1(x,y)として、「N1(x,y)=S1(x,y)×T4/T1」を計算して、ステップS214に移行する。
【0056】
ステップS214では、正規化部16bにおいて、ステップS202で選択された画素データS2(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT2とT4とに基づき、上式(8)から、画素データS2(x,y)を正規化する。具体的に、正規化画素データN2(x,y)として、「N2(x,y)=S2(x,y)×T4/T2」を計算して、ステップS216に移行する。
【0057】
ステップS216では、正規化部16bにおいて、ステップS202で選択された画素データS3(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT3とT4とに基づき、上式(9)から、画素データS3を正規化する。具体的に、正規化画素データN3(x,y)として、「N3(x,y)=S3(x,y)×T4/T3」を計算して、ステップS218に移行する。
なお、ステップS212〜S216で計算した正規化画素データN1〜N3(x,y)と、「N4(x,y)=S4(x,y)」である正規化画素データN4(x,y)とは、合成部16cに出力される。
【0058】
ステップS218では、合成部16cにおいて、重み計算部16aから取得した合成重みW1〜W4(x,y)と、正規化部16bから取得した正規化画素データN1〜N4(x,y)とを用いて、上式(11)に基づき、N1〜N4(x,y)を合成して、ステップS220に移行する。
具体的に、合成部16cは、上式(11)から、HDR画素データHDR(x,y)として、「HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)」を計算する。
【0059】
ステップS220では、合成部16cにおいて、ステップS218で合成して得られたHDR画素データHDR(x,y)を、フレームメモリ17に格納して、ステップS222に移行する。
ステップS222では、映像信号処理部16において、1ライン分の画素データS1〜S4について、HDR合成処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、ステップS224に移行し、そうでない場合(No)は、ステップS202に移行する。
【0060】
ステップS224に移行した場合は、映像信号処理部16において、1フレーム分(1画像分)の画素データS1〜S4について、HDR合成処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、一連の処理を終了して元の処理に復帰する。一方、終了していないと判定した場合(No)は、ステップS200に移行する。
なお、ステップS204〜S210の処理と、ステップS212〜S216の処理とは、順次行ってもよいし、並列に行ってもよい。
【0061】
次に、図7に基づき、ステップS110の露光比調整処理の流れを説明する。ここで、図7は、露光比調整処理の一例を示すフローチャートである。
ステップS110に移行して、露光比調整処理が開始されると、図7に示すように、まず、ステップS300に移行する。
ステップS300では、制御部18において、フレームメモリ17からHDR合成処理によって生成された1フレーム分(1画像分)のHDR画像データを取得し、取得したHDR画像データから平均輝度Lavを算出して、ステップS302に移行する。
【0062】
ステップS302では、制御部18において、ステップS300で算出した平均輝度Lavと、予め設定された平均輝度値の高輝度側の閾値Lthとを比較し、LavがLthよりも大きいか否かを判定する。そして、LavがLthよりも大きいと判定した場合(Yes)は、ステップS304に移行し、そうでない場合(No)は、ステップS308に移行する。
ステップS304に移行した場合は、制御部18において、最短露光時間Tminを、予め設定された時間だけ減少して、ステップS306に移行する。つまり、撮像環境が比較的明るい状態であるので、白飛びしない画像を得るために最短露光時間Tminを減少する調整を行う。なお、減少する時間は、平均輝度に応じてその都度適切な値を算出するようにしてもよいし、平均輝度の大きさに対応する値をテーブルとして予め用意するようにしてもよい。
【0063】
ステップS306では、制御部18において、ステップS304で減少したTminと、初期設定時のTmaxとを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、減少後のTmin及び初期設定時のTmaxとに基づき露光比情報を生成する。
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報として「T1:T2:T3:T4=Tmin(減):Tmid1(再):Tmid2(再):Tmax(初)」を生成する。なお、各露光時間の後ろに付した、(減)は減少調整後の、(再)は再計算後の、(初)は初期設定時の各露光時間であることを示す。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0064】
一方、ステップS302において、LavがLth以下であってステップS308に移行した場合は、制御部18において、ステップS300で算出した平均輝度Lavと、予め設定された平均輝度値の低輝度側の閾値Ltlとを比較する。更に、この比較結果に基づき、LavがLtlよりも小さいか否かを判定する。そして、LavがLtlよりも小さいと判定した場合(Yes)は、ステップS310に移行し、そうでない場合(No)は、ステップS314に移行する。
【0065】
ステップS310に移行した場合は、制御部18において、最長露光時間Tmaxを、予め設定された時間だけ増加して、ステップS312に移行する。つまり、撮像環境が比較的暗い状態であるので、黒つぶれしない画像を得るために最長露光時間Tmaxを増加する調整を行う。なお、増加する時間は、平均輝度に応じてその都度適切な値を算出するようにしてもよいし、平均輝度の大きさに対応する値をテーブルとして予め用意するようにしてもよい。
【0066】
ステップS312では、制御部18において、ステップS310で増加したTmaxと初期設定時のTminとを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、初期設定時のTmin及び増加後のTmaxとに基づき露光比情報を生成する。
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報は、「T1:T2:T3:T4=Tmin(初):Tmid1(再):Tmid2(再):Tmax(増)」となる。なお、露光時間Tmaxの後ろに付した(増)は増加調整後の露光時間であることを示す。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0067】
また、ステップS308において、LavがLtl以上であってステップS314に移行した場合は、制御部18において、最短露光時間Tminと最長露光時間Tmaxとして通常露光時間を設定して、ステップS316に移行する。本実施形態では、通常露光時間として、初期設定時の露光時間を設定する。
ステップS316では、制御部18において、ステップS314で設定されたTmin及びTmaxを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、初期設定時のTmin及び増加後のTmaxとに基づき露光比情報を生成する。
【0068】
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報は、「T1:T2:T3:T4=Tmin(初):Tmid1(再):Tmid2(再):Tmax(初)」となる。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0069】
次に、図8〜図11に基づき、本実施形態の動作を説明する。
ここで、図8(a)〜(d)は、比率が均等となるように決定された露光時間T1〜T4における入射光に対する応答信号S1〜S4の一例を示す図である。また、図9(a)〜(d)は、入射光に対する合成重みW1〜W4の一例を示す図である。また、図10は、図9(a)〜(d)を重ねて表示した図である。また、図11は、図8(a)〜(d)における入射光の軸を対数で表した場合の図である。
【0070】
電源が投入されると、撮像装置1は、撮像処理が開始される前に、まず、制御部18において、露光比情報及び露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号及び各種制御信号を撮像素子10に送信する。
具体的に、まず、操作部20を介したユーザからの指示又は予め設定された値に基づき、露光時間T1及びT3の初期値が設定される(ステップS100)。ここでは、初期値として、「T1=2H、T4=500H」が設定されたとする。
【0071】
制御部18は、次に、上式(6)及び(7)に従って、「T2/T1=T3/T2=T4/T3」の関係となる中間露光時間T2及びT3を算出する(ステップS102)。具体的に、「T2=2H、T3=500H」が設定されているので、制御部18において、「T2=(4×500)1/3≒12.6」が自動的に算出される。引き続き、制御部18において、「T3=(2×250000)1/3≒79.4」が自動的に算出される。
【0072】
ここでは、四捨五入してT2を「13」に設定し、T3を「79」に設定する。これにより、「T2/T1=13/2=6.5」、「T3/T2=79/13≒6.1」、「T4/T3=500/79≒6.3」となり、比率が略均等になる露光比情報「「T1:T2:T3:T4=2:13:79:500」を得ることができる。
更に、制御部18は、露光比情報「T1:T2:T3:T4=2:13:79:500」の情報を含む露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号及び各種制御信号を撮像素子10に送信する。
【0073】
これにより、撮像素子10のHDRセンサ10dのレジスタに、露光時間比「T1:T2:T3:T4=2:13:79:500」の情報が書き込まれる。
引き続き、撮像素子10において、被写体の撮像が開始されると、被写体から反射された光は、レンズ10aで集光されてマイクロレンズ10bに入射される。レンズ10aからの入射光は、マイクロレンズ10bにおいて平行化されて、カラーフィルタアレイ10cを介してセンサセルアレイの各画素に入射される。
【0074】
一方、HDRセンサ10dにおいて、開始ラインから順に1ラインずつリセットラインRが設定されて、各画素の蓄積電荷がリセットされる。引き続き、各走査ラインに対して、各画素のリセット後において露光時間T1、T2、T3の経過タイミングで非破壊読み出しラインL1、L2、L3が設定さる。これにより、図8(a)〜(c)に示すような光応答の画素信号S1〜S3が順に読み出される。引き続き、開始ラインから順に読み出し&リセットラインL4&Rが設定されて、走査されたラインの各画素から図8(d)に示すような光応答の画素信号S4が読み出され、その後、各画素の蓄積電荷がリセットされる。
以降、撮像が行われている間は、上記の手順でL1〜L3&Rの設定、画素信号S1〜S3の読み出し及びリセット処理が繰り返し行われる。
【0075】
このようにして読み出された画素信号S1〜S4は、ライン毎に、第1ラインメモリ〜第4ラインメモリにそれぞれ格納されライン単位で選択回路へと出力される。選択回路からは、S1〜S4の順でアナログの画素データS1〜S4がADCに出力される。ADCは、アナログの画素データS1〜S4を、デジタルの画素データS1〜S4に変換する。そして、ADCからは、ライン単位で且つ画素データS1〜S4の順で順次画素データが、第1〜第4メモリ12〜15へと出力される。ここでは、画素データS1〜S4は8ビットの階調範囲の輝度値(0〜255)を示すデータとなる。
上記のようにして、比率が略均等となる露光時間T1、T2、T3、T4で撮像して得られる画素信号S1〜S4は、図11に示すように、入射光を対数で表したグラフにおいて略均等な間隔で並ぶ。
【0076】
一方、映像信号処理部16は、撮像が開始され(ステップS104の「Yes」の分岐)、第1〜第4メモリ12〜15に1ライン分の画素データS1〜S4が格納されると、HDR合成処理を開始する(ステップS106)。
HDR合成処理が開始されると、映像信号処理部16は、第1〜第4メモリ12〜15から、1ライン分の画素データS1〜S4を取得する(ステップS200)。
映像信号処理部16は、取得した1ライン分の画素データS1〜S4のうち、合成重みW1〜W4及び正規化画素データN1〜N4の計算処理が未処理の1画素分の画素データS1〜S4(x,y)を選択する。そして、画素データS2〜S4(x,y)を重み計算部16aに出力し、画素データS1〜S4(x,y)を正規化部16bに出力する(ステップS202)。
【0077】
一方、重み計算部16aは、画素データS2〜S4(x,y)を取得すると、まず、画素データS2(x,y)を、上式(2)に代入して、F(S2(x,y))を算出する。更に、上式(3)から、「W1(x,y)=F(S2(x,y))」を計算する(ステップS204)。つまり、合成重みW1(x,y)を算出するときは、画素データS2(x,y)のみを用いる。
例えば、画素データS2(x,y)の輝度値が「10」であるとする。また、ここでは、上式(2)におけるnを「2」とする。この場合は、「F(S2(x,y))=(10/255)2≒1.538×10-3」となり、上式(3)から、「W1(x,y)=1.538×10-3」となる。
【0078】
なお、撮像条件などに応じて、nの値を適宜切り替えることで、上式(2)の関数F(x)の値が、より急峻な変化をするように切り替えたり、より緩やかに変化するように切り替えたりすることができる。
ここで、合成重みW1(x,y)は、図9(a)に示すように、入射光量が少ないうちは比較的緩やかに変化し、ある入射光量を境に一定値となる。換言すると、S2(x,y)の明度(輝度値)が大きいほどW1(x,y)は大きくなり、S2(x,y)の明度が飽和状態となる明度のときにW1(x,y)は最大となる。
【0079】
次に、重み計算部16aは、S3(x,y)を、上式(2)に代入して、F(S3(x,y))を算出し、算出したF(S3(x,y))と、先ほど算出したF(S2(x,y))とを上式(4)に代入する。これにより、「W2(x,y)=F(S3(x,y))−F(S2(x,y))」を計算する(ステップS206)。つまり、合成重みW2(x,y)を算出するときは、画素データS2(x,y)及びS3(x,y)の2つを用いる。
【0080】
例えば、画素データS3(x,y)の輝度値が「40」であるとする。この場合は、「F(S3(x,y))=(40/255)2≒0.0246」となり、上式(4)から、「W2=F(S3(x,y))−F(S2(x,y))=0.0246−1.538×10-3≒0.02307」となる。
ここで、合成重みW2(x,y)は、図9(b)に示すように、入射光量に対して、W1(x,y)と比較して急峻に上昇し、ある入射光量を境に低下する。換言すると、S3(x,y)の明度(輝度値)が大きいほどW2(x,y)は大きくなるが、S2(x,y)の明度も大きいときはW2(x,y)は小さくなる。また、S2(x,y)、S3(x,y)が両方とも飽和しているときはW2(x,y)は最小値「0」となる。
【0081】
次に、重み計算部16aは、S4(x,y)を、上式(2)に代入して、F(S4(x,y))を算出し、算出したF(S4(x,y))と、先ほど算出したF(S3(x,y))とを上式(5)に代入する。これにより、「W3(x,y)=F(S4(x,y))−F(S3(x,y))」を計算する(ステップS208)。つまり、合成重みW3(x,y)を算出するときは、画素データS3(x,y)及びS4(x,y)の2つを用いる。
【0082】
例えば、画素データS4(x,y)の輝度値が「160」であるとする。この場合は、「F(S4(x,y))=(160/255)2≒0.3937」となり、上式(5)から、「W3=F(S4(x,y))−F(S3(x,y))=0.3937−0.02307≒0.3706」となる。
ここで、合成重みW3(x,y)は、図9(c)に示すように、入射光量に対して、W2(x,y)と比較して急峻に上昇し、ある入射光量を境にW2(x,y)と比較して急峻に低下する。具体的に、S4(x,y)の明度(輝度値)が大きいほどW3(x,y)は大きくなるが、S3(x,y)の明度も大きいときはW3(x,y)は小さくなる。また、S3(x,y)、S4(x,y)が両方とも飽和しているときはW3(x,y)は最小値「0」となる。
【0083】
次に、重み計算部16aは、先ほど算出したF(S4(x,y))を上式(6)に代入し、「W4(x,y)=1−F(S4(x,y))」を計算する(ステップS210)。つまり、合成重みW4(x,y)を計算するときは、「W1+W2+W3+W4=1」となることを利用して計算を行う。
例えば、上記数値例の値を用いた場合に、「W4=1−F(S4(x,y))=1−0.3706=0.6294」となる。
【0084】
ここで、合成重みW4(x,y)は、図9(d)に示すように、入射光量が少なければ少ないほど大きな値となり、入射光量の増加に応じてW3(x,y)と比較して急峻に低下する。具体的に、S4(x,y)の明度(輝度値)が小さいほどW4(x,y)は大きくなるが、S4(x,y)の明度が大きいときはW4(x,y)は小さくなる。また、S4(x,y)が飽和しているときはW4(x,y)は最小値「0」となる。
【0085】
以上のようにして計算される合成重みW1〜W4(x,y)を重ねて表示すると、図10に示すように、入射光量に対して、W1〜W4(x,y)がオーバーラップする部分が現れる。本実施形態では、W2(x,y)を計算するときに、S2(x,y)及びS3(x,y)の2つの明度を用い、W3(x,y)を計算するときに、S3(x,y)及びS4(x,y)の2つの明度を用いている。そのため、特にオーバーラップする領域において、S3(x,y)だけ、又はS4(x,y)だけを用いて計算するよりも、より適切な合成重みW2(x,y)及びW3(x,y)を計算することができる。
なお、重み計算部16aは、上記のようにして算出した合成重みW1〜W4(x,y)を、合成部16cに出力する。
【0086】
また、正規化部16bは、画素データS1〜S4(x,y)を取得すると、まず、画素データS1(x,y)と、制御部18から取得した露光比情報のうちT1及びT4とに基づき、上式(7)から、画素データS1(x,y)を正規化する(ステップS212)。
具体的に、画素データS1(x,y)と、露光時間T1、T4とを、上式(7)に代入して、正規化画素データN1(x,y)として、「N1(x,y)=S1(x,y)×T4/T1」を計算する。
露光時間T1、T4として上記数値例を用い、画素データS1(x,y)の輝度値が「2」である場合に、「N1(x,y)=2×500/2=500」となる。
【0087】
次に、正規化部16bは、画素データS2(x,y)と、制御部18から取得した露光比情報のうちT2及びT4とに基づき、上式(8)から、画素データS2(x,y)を正規化する(ステップS214)。
具体的に、画素データS2(x,y)と、露光時間T2、T4とを、上式(8)に代入して、正規化画素データN2(x,y)として、「N2(x,y)=S2(x,y)×T4/T2」を計算する。
露光時間T2、T4、画素データS2(x,y)として上記数値例を用いた場合に、「N2(x,y)=10×500/13≒385」となる。
【0088】
次に、正規化部16bは、画素データS3(x,y)と、制御部18から取得した露光比情報のうちT3及びT4とに基づき、上式(9)から、画素データS3(x,y)を正規化する(ステップS216)。
具体的に、画素データS3(x,y)と、露光時間T3、T4とを、上式(9)に代入して、正規化画素データN3(x,y)として、「N3(x,y)=S3(x,y)×T4/T3」を計算する。
【0089】
露光時間T3、T4、画素データS3(x,y)として上記数値例を用いた場合に、「N3(x,y)=40×500/79≒253」となる。
なお、露光時間T4を基準としているため、画素データS4(x,y)は、そのままの値を用いる(上式(10))。上記数値例で言うと、「N4(x,y)=160」となる。
なお、正規化部16bは、上記のようにして算出した正規化画素データN1〜N4(x,y)を、合成部16cに出力する。
【0090】
合成部16cは、重み計算部16aから合成重みW1〜W4(x,y)を取得し、正規化部16bから正規化画素データN1〜N4(x,y)を取得すると、上式(11)を用いて、N1〜N4のHDR合成処理を実行する(ステップS218)。
具体的に、上式(11)に示すように、正規化画素データN1〜N4(x,y)を、合成重みW1〜W4で重み付けすると共に加算して、HDR画素データHDR(x,y)を計算する。つまり、HDR画素データHDR(x,y)として、「HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)」を計算する。
【0091】
ここで、合成重みW1〜W4(x,y)及び正規化画素データN1〜N4(x,y)として、上記数値例を用いる。
上式(11)に上記各数値を代入すると、「HDR(x,y)=1.538×10-3×500+0.02307×385+0.3706×253+0.6294×160≒0.769+8.88+93.8+101≒204」となる。
【0092】
このようにして生成されたHDR画素データHDR(x,y)は、フレームメモリ17の各画素位置に対応するアドレスのメモリ領域に格納される(ステップS220)。
上記のようにして、各画素の合成重みW1〜W4(x,y)、正規化画素データN1〜N4(x,y)、HDR画素データHDR(x,y)を順次計算する。このHDR合成処理は、1フレーム分の画素についてHDR合成処理が終了するまで行われる(ステップS222及びS224の「Yes」の分岐)。
【0093】
そして、1フレーム分のHDR画素データが生成され、且つ撮像処理が継続している場合に(ステップS108の「No」の分岐)、露光比調整処理を実行する(ステップS110)。
露光比調整処理が開始されると、画像解析部19は、1フレーム分のHDR画素データを、フレームメモリ17から取得する。そして、取得したHDR画素データに基づき、撮像環境の明るさに係る統計情報として、1フレーム分の平均輝度Lavを算出し、算出したLavを制御部18に出力する(ステップS300)。なお、1フレーム分に限らず、複数フレーム分のHDR画素データを用いて複数フレーム分の平均輝度を算出するようにしてもよい。
制御部18は、画像解析部19から平均輝度Lavを取得すると、Lavと、高輝度側の閾値Lthとを比較し、LavがLthより大きいか否かを判定する。ここでは、高輝度側の閾値Lthを「192」、低輝度側の閾値Ltlを「64」とする。
【0094】
例えば、平均輝度Lavが「61」の場合は、Lav(61)はLth(192)よりも小さいので(ステップS302の「No」の分岐)、制御部18は、次に、LavとLtlとを比較し、LavがLtlよりも小さいか否かを判定する。ここでは、Lav(61)はLtl(64)よりも小さいので(ステップS308の「Yes」の分岐)、制御部18は、撮像環境が暗いと判断し、現在設定されている最長露光時間「Tmax(T3)=500H」を増加する調整を行う(ステップS310)。例えば、「T3=1000H」に増加したとする。これにより、略均等となっていた比率が崩れてしまうので、制御部18は、「T1=2H(初)、T4=1000H(増)」を、上式(6)及び(7)に代入して、中間露光時間Tmid(T2及びT3)を再計算する。これにより、「T2=(4×1000)1/3≒16」が算出され、「T3=(2×1000000)1/3≒126」が算出される。そして、新たな露光比情報として、「T1:T2:T3:T4=2:16:126:1000」が生成され、この露光比情報に基づき、新たな露光情報信号が生成される。生成された露光比情報は映像信号処理部16に出力され、生成された露光情報信号は、各制御信号と共に撮像素子10に送信される。これにより、撮像素子10では、撮像環境の明るさに適した新たな露光比情報に基づいて撮像処理が行われる。
【0095】
また、算出した平均輝度Lavが「221」であった場合は、Lav(221)はLth(192)よりも大きいので(ステップS302の「Yes」の分岐)、制御部18は、撮像環境が明るいと判断し、現在設定されている最短露光時間「Tmin(T1)=2H」を減少する調整を行う(ステップS114)。例えば、「T1=1H」に減少したとする。これにより、略均等となっていた比率が崩れてしまうので、制御部18は、「T1=1H(減)、T4=500H(初)」を、上式(12)及び(13)に代入して、中間露光時間Tmid(T2及びT3)を再計算する。これにより、「T2=(1×500)1/3≒8」が算出され、「T3=(1×250000)1/3≒63」が算出される。そして、新たな露光比情報として、「T1:T2:T3:T4=1:8:63:500」が生成され、この露光比情報に基づき、新たな露光情報信号が生成される。生成された露光比情報は映像信号処理部16に出力され、生成された露光情報信号は、各制御信号と共に撮像素子10に送信される。これにより、撮像素子10では、撮像環境の明るさに適した新たな露光比情報に基づいて撮像処理が行われる。
【0096】
以上説明したように、本実施形態の撮像装置1は、露光時間T1〜T4で撮像して得られた画素データS1〜S4を重み付けして合成する際の合成重みW1〜W4の計算において、W2については、S2及びS3の2つを用いて計算するようにした。更に、W3については、S3及びS4の2つを用いて計算するようにした。
つまり、S2に対する合成重みW2については、S2とその次に露光時間の長いS3の両方の明度(輝度値)を用いて計算するので、S2の明度だけ用いた場合と比較して、より自然で適切な合成重みW2を計算することができる。
同様に、S3に対する合成重みW3については、S3とその次に露光時間の長いS4の両方の明度(輝度値)を用いて計算するので、S3の明度だけ用いた場合と比較して、より自然で適切な合成重みW3を計算することができる。
【0097】
また、撮像素子10において、隣接する各2つの露光量の比率「L2/L1」、「L3/L2」及び「L4/L3」が均等「L2/L1=L3/L2=L4/L3」となる露光量L1〜L4に対応する露光時間T1〜T4で被写体を撮像することができる。
これによって、HDR合成処理で用いる画素データS1〜S4の露光量の比が常に一定となるため、暗部から明部に渡って、輝度が均等になり且つノイズの少ない合成画像を得ることができる。
【0098】
更に、撮像環境の明るさに係る統計情報として、1フレーム分のHDR画素データから平均輝度Lavを算出し、該Lavと高輝度側閾値Lth及び低輝度側閾値Ltlとを比較して、撮像環境の明るさの状態を判断することができる。
更に、撮像環境が明るいと判断された場合は、最短露光時間Tmin(T1)を減少させる調整を行い、撮像環境が暗いと判断された場合は、最長露光時間Tmax(T4)を増加させる調整を行うことができる。
【0099】
更に、調整後のT1及びT4を用いて、上式(12)及び(13)に従ってT2及びT3を再計算することで、露光時間の調整によって崩れた比率を均等に戻すことができる。
これによって、露光量比(露光時間比)を、撮像環境の明るさに適した露光量比に自動で調整することができる。
上記実施形態において、撮像素子10及び制御部18は、形態7に記載の撮像手段に対応し、重み計算部16aは、形態1乃至4のいずれか1に記載の重み算出手段に対応し、正規化部16b及び合成部16cは、形態1に記載の画像合成手段に対応する。
【0100】
また、上記実施形態において、ステップS204〜S210は、形態5又は6に記載の重み算出ステップに対応し、ステップ212〜s218は、形態5又は6に記載の画像合成ステップに対応する。
なお、上記実施形態における、撮像装置1は、表示装置、メモリ装置等の不図示の他の装置と組み合わせて、デジタルカメラ、デジタルビデオカメラなどの電子機器を構成することが可能である。
また、上記実施形態において、合成重みを用いるときに、上式(2)に示す関数F(x)を用いた構成を例に挙げたが、この構成に限らない。
【0101】
例えば、要素xの値(上記実施形態では輝度値)が大きいほど増加し、その最大値が「1」又は他の定数となるような関数であれば、他の関数を用いる構成としてもよい。例えば、オフセット値を設定して、xの値がオフセット値以下の場合は全て「0」とするような関数を用いてもよい。
また、上記実施形態において、比率が均等となる複数種類の露光量を、露光時間を制御することで実現する構成としたが、この構成に限らず、撮像素子10の機能に応じて、例えば、アイリス(絞り)や、撮像感度などを制御して実現する構成としてもよい。
【0102】
また、上記実施形態において、上式(12)及び(13)を用いて、中間露光時間T2及びT3を算出する構成としたが、この構成に限らない。例えば、予め上式(12)及び(13)を用いて所定のT1及びT4に対するT2及びT3を算出してデータテーブル(LUT)を生成し、この生成したLUTを用いてT2及びT3を決定する構成としてもよい。
また、上記実施形態において、撮像素子10のHDRセンサ10dが、CMOS技術を用いて構成されたセンサセルアレイ56を有する構成としたが、この構成に限らない。例えば、CCDから構成されるセンサセルアレイを有する構成など他の構成としてもよい。
【0103】
また、上記実施形態は、本発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、本発明の範囲は、上記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。また、上記の説明で用いる図面は、図示の便宜上、部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
また、本発明は上記実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【符号の説明】
【0104】
1…撮像装置、10…撮像素子、10a…レンズ、10b…マイクロレンズ、10c…カラーフィルタアレイ、10d…HDRセンサ、12〜15…第1〜第4メモリ、16…映像信号処理部、16a…重み計算部、16b…正規化部、16c…合成部、17…フレームメモリ、18…制御部、19…画像解析部、20…操作部、50…基準タイミング発生器、54…走査ラインスキャナ、56…センサセルアレイ、58…水平転送部
【技術分野】
【0001】
本発明は、露光量の異なる複数種類の撮像画像データを合成して、ダイナミックレンジを拡張した画像データを生成するのに好適な画像処理装置、画像処理方法、撮像装置及び電子機器等に関する。
【背景技術】
【0002】
従来、複数種類の露光量(露光時間)で同一被写体を撮像し、この撮像で得られた複数種類の露光量にそれぞれ対応した画素信号を合成して、ダイナミックレンジを拡張した画像データ(HDR画像データ)を生成する技術がある。かかる技術においては、合成画像における、各露光量に対応する画像部分と他の露光量に対応する画像部分との境界領域に発生するノイズ(偽色、疑似輪郭など)がしばしば問題となっていた。
【0003】
例えば、露光量L1、L2(L1<L2)に対応する露光時間T1、T2(T1<T2)で同一被写体を撮像して、画素信号D1(T1に対応)、D2(T2に対応)が得られたとする。この場合に、図12(a)及び(b)に示すように、D1の傾きをD2の傾きに合わせるために、画素信号D1に係数「T2/T1」を乗算して正規化を行う。次に、正規化した「D1×T2/T1」と、「D2」とを線形合成する。これにより、図12(c)に示すように、ダイナミックレンジを拡張した(S/Nの良い)撮像画像信号が得られる。
【0004】
しかし、「D1×T2/T1」の傾きとD2の傾きとに微妙な差が生じた場合に、合成後の撮像画像信号の線形性が崩れる恐れがある。線形性が崩れると、「D1×T2/T1」の画像とD2の画像との境界領域において、偽色や疑似輪郭等の原因となるノイズが発生する場合がある。
このような問題を解決するために、画像の重み付け合成が従来から用いられている。例えば、特許文献1では、2組の合成画像のうち、より明るい方の明度情報をもとに重みが変わる関数f、gを用意し、合成後の画像D0を、下式(1)により求めている。
D0=(D1×T2/T1)×f(D2)+D2×g(D2) ・・・(1)
また、特許文献2では、オーバーラップ領域(信号の80%〜100%)を予め設定しておき、2つの画像を合成する際に、より長い露光時間の画像がオーバーラップ領域に達している部分、即ちハイライト部分で、飽和しにくいより短い露光時間の画像との重み付け合成を行っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3084189号公報
【特許文献2】特許第2970440号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1の従来技術においては、露光量の異なる4枚の画像を重み付け合成する場合に、上式(1)を用いた合成方法では、2枚ずつの画像合成にしか対応していない。そのため、例えば、D1〜D4の4画素を重み付け合成するためには、図13に示すように、合計6回もの合成処理を行う必要があり、合成する画像の枚数が増加するほど計算量が飛躍的に増加する。
【0007】
また、上記特許文献2の従来技術においては、重み付け合成の行われる領域が、オーバーラップ領域に限定されるため、重み付け合成されているハイライト部分とそうでない部分とに、不自然な繋ぎ目が発生する恐れがある。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものである。本発明の幾つかの態様によれば、多段露光によって得られた画像を重み付け合成するのに好適な画像処理装置、画像処理方法、撮像装置及び電子機器を提供できる。
【課題を解決するための手段】
【0008】
〔形態1〕 上記目的を達成するために、形態1の画像処理装置は、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出手段と、
前記重み算出手段で算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成手段と、を備える。
【0009】
このような構成であれば、重み付け算出手段によって、3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、第1の画像の画像合成に用いる重みが算出される。
例えば、4種類の露光量L1、L2、L3、L4(L1<L2<L3<L)で被写体を撮像して得られた画像S1〜S4について重みの算出を行う場合に、例えば、画像S2の重みについては、S2の輝度と、S3の輝度とに基づき重みが算出されることになる。
【0010】
ここで、重みの算出は、重み付けの必要な露光量の画像の全てについて行う。例えば、重み付けの必要な露光量の画像が2種類以上ある場合は、そのそれぞれを第1の画像とし、そのそれぞれの次に露光量の大きい画像を第2の画像として重みを算出する。
重みが算出されると、画像合成手段によって、算出した重みを用いて、3種類以上の画像の重み付け加算が行われ、画像が合成される。
以上のことから、合成する画像のうち、露光量の大きさが隣り合う2つの画像の明度に基づき露光量の小さい方の画像の重みを算出することができる。これにより、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0011】
〔形態2〕 更に、形態2の撮像装置は、形態1の撮像装置において、
前記重み算出手段は、前記3種類以上の画像のうち、露光量が最小及び最大となる2種類の画像以外の画像について、前記第1の画像の輝度と、前記第2の画像の輝度とに基づき重みを算出する。
このような構成であれば、重み算出手段によって、露光量が最小及び最大となる2種類の画像を除く、残りの中間の露光量について、第1の画像の輝度と第2の画像の輝度とに基づき重みが算出される。
これにより、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0012】
〔形態3〕 更に、形態3の撮像装置は、形態1又は2の撮像装置において、
前記重み算出手段は、前記重みを、画像の輝度を要素xとし、関数値が輝度の大きさに応じて増加する関数F(x)によって算出した値を用いて算出する。
このような構成であれば、重み算出手段によって、輝度xの大きさに応じて増加する関数F(x)によって算出した値を用いて第1の画像に対する重みを算出することができる。
【0013】
これによって、第2の画像の輝度が大きければ大きいほど、第1の画像に対する重みを大きくすることができるので、例えば、第1の画像の輝度が非飽和で、第2の画像の輝度が飽和している場合に、その飽和部分を第1の画像で補完してやることができる。
従って、露光量の大きい方の画像の明度のみに基づき重みを算出するよりも滑らかな線形合成が可能になるという効果が得られる。
【0014】
〔形態4〕 更に、形態4の撮像装置は、形態3の撮像装置において、
前記重み算出手段は、前記関数として、前記要素xに対する算出値が、より急峻に変化する第1の関数F1(x)と、より緩やかに変化する第2の関数F2(x)とを切り替えて用いる。
このような構成であれば、重み算出手段によって、重みの算出に、第1の関数F1(x)と、第2の関数F2(x)とを切り替えて用いることができる。
つまり、より急峻に変化する関数F1(x)を用いた場合は、該当の画像の混合度合いをより強くすることができ、より緩やかに変化する関数F2(x)を用いた場合は、該当の画像の混合度合いをより弱くすることができる。
これによって、複数種類の画像の混合度合いを変化させることができ、より適切な重みを算出することができるという効果が得られる。
【0015】
〔形態5〕 一方、上記目的を達成するために、形態4の画像処理方法は、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップと、を含む。
このような構成であれば、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
【0016】
〔形態6〕 また、上記目的を達成するために、形態5の画像処理プログラムは、
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップとを有する処理をコンピューターに実行させるためのプログラムを含む。
このような構成であれば、コンピューターによってプログラムが実行されると、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
【0017】
〔形態7〕 また、上記目的を達成するために、形態7の撮像装置は、
N種類(Nは3以上の自然数)の露光量で被写体を撮像する撮像手段と、
形態1乃至4のいずれか1に記載の画像処理装置と、を備え、
前記画像処理装置は、前記撮像手段で撮像して得られたN種類の露光量に対応するN種類の画像のうち、少なくとも画像合成に用いる3種類以上の画像について、前記第1の画像に対する重みを算出する。
このような構成であれば、形態1に記載の画像処理装置と同等の作用及び効果が得られる。
〔形態8〕 また、上記目的を達成するために、形態6の電子機器は、
形態7に記載の撮像装置を備える。
このような構成であれば、形態7に記載の撮像装置と同等の作用及び効果が得られる。
【図面の簡単な説明】
【0018】
【図1】本発明に係る撮像装置1の構成を示すブロック図である。
【図2】(a)は、撮像素子10の内部構成を示す模式図であり、(b)は、HDRセンサ10dの内部構成を示すブロック図である。
【図3】映像信号処理部16の内部構成を示すブロック図である。
【図4】センサセルアレイにおける各画素のライン毎の露光及び画素信号の読み出し動作の一例を示す図である。
【図5】撮像装置1の動作処理の一例を示すフローチャートである。
【図6】HDR合成処理の一例を示すフローチャートである。
【図7】露光比調整処理の一例を示すフローチャートである。
【図8】(a)〜(d)は、比率が均等となるように決定された露光時間T1〜T4における入射光に対する応答信号S1〜S4の一例を示す図である。
【図9】(a)〜(d)は、入射光に対する合成重みW1〜W4の一例を示す図である。
【図10】図9(a)〜(d)を重ねて表示した図である。
【図11】図8(a)〜(d)における入射光の軸を対数で表した場合の図である。
【図12】従来の重み付けなしの場合の合成対象の画像及びHDR合成処理後の画像の光−信号特性の一例を示す図である。
【図13】従来の重み付けありの場合のHDR合成処理に係る計算処理の流れの一例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の第1実施形態を図面に基づき説明する。図1〜図11は、本発明に係る画像処理装置、画像処理方法、画像処理プログラム、撮像装置及び電子機器の実施形態を示す図である。
まず、本発明に係る撮像装置の構成を図1に基づき説明する。図1は、本発明に係る撮像装置1の構成を示すブロック図である。
撮像装置1は、図1に示すように、撮像素子10と、SW(スイッチ)11と、第1〜第4メモリ12〜15と、映像信号処理部16と、フレームメモリ17と、制御部18と、画像解析部19と、操作部20とを含んで構成される。
【0020】
次に、図2に基づき、撮像素子10の詳細な構成を説明する。ここで、図2(a)は、撮像素子10の内部構成を示す模式図であり、(b)は、HDRセンサ10dの内部構成を示すブロック図である。
撮像素子10は、複数種類の露光量で被写体を撮像する機能を有し、図2(a)に示すように、レンズ10aと、マイクロレンズ10bと、カラーフィルタアレイ10cと、HDRセンサ10dとを含んで構成される。
【0021】
以下、説明の便宜上、撮像素子10は、4種類の露光量L1、L2、L3、L4(L1<L2<L3<L4)に対応する露光時間T1、T2、T3、T4(T1<T2<T3<T4)で撮像を行うものとして構成を説明をする。もちろん、露光量は4種類に限らず、3種類又は5種類以上であってもよい。
レンズ10aは、被写体からの反射光を集光して、マイクロレンズへと導くものである。なお、撮像条件などに応じて、単焦点レンズ、ズームレンズ、オートアイリスレンズなどの種類がある。
【0022】
マイクロレンズ10bは、レンズを透過した光をHDRセンサ10dの有するセンサセルアレイの各センサセル(画素)に集光するものである。
カラーフィルタアレイ10cは、マイクロレンズ10bを透過した光から所定の1種類の色要素に対応する波長の光を分離して該分離した光を対応する各画素に入射するカラーフィルター部(以下、CF部と称す)を少なくとも画素数分含んで構成されるものである。
【0023】
HDRセンサ10dは、電子シャッタ方式によって露光時間T1〜T4を制御して露光量の異なる4種類のデジタルの画像データを出力するものである。
HDRセンサ10dは、図2(b)に示すように、基準タイミング発生器50と、走査ラインスキャナ54と、センサセルアレイ56と、水平転送部58とを含んで構成される。
基準タイミング発生器50は、制御部18からの垂直同期信号及び水平同期信号に基づき、基準タイミング信号を発生し、これを走査ラインスキャナ54に出力する。
【0024】
走査ラインスキャナ54は、基準タイミング発生器50及び制御部18からの各種信号に基づき、リセット処理を行うラインを有効にするリセットライン選択信号を生成する。そして、該生成したリセットライン選択信号をセンサセルアレイ56に出力する。
更に、走査ラインスキャナ54は、リセット後で且つ設定された露光時間T1〜T4の電荷の蓄積が行われたラインを画素信号の読出ラインとして有効にする読出しライン選択信号を生成する。そして、該生成した読出ライン選択信号をセンサセルアレイ56に出力する。
センサセルアレイ56は、CMOS技術を用いて構成された、受光素子(フォトダイオードなど)を含む複数のセンサセル(画素)が2次元マトリクス状に配設された構成の受光領域を備え、各画素のラインに対して、アドレス線、リセット線及び読出し線が共通に接続された構成を有している。
【0025】
そして、前記3つの制御線を介して各種駆動信号(選択信号)が各ラインを構成するセンサセルに送信され、アドレス線及び読出し線が有効になると、信号線を介して蓄積電荷(画素信号)を水平転送部58に転送(出力)する。
このような構成によって、センサセルアレイ56は、走査ラインスキャナ54から供給される選択信号に基づき、アドレス線により、リセット動作又は読出し動作を行わせる画素のラインを有効に(選択)する。そして、当該選択信号で選択したラインの各画素に対して、リセット動作を行わせる場合はリセット線を介してリセット動作を指示する信号を入力し、画素信号の読出しを行わせる場合は、読出し線を介して蓄積電荷の転送を指示する信号を入力する。更に、選択信号によって選択された各画素おいては、リセット動作を指示する信号が入力されたときはリセット動作が行われ、蓄積電荷の転送を指示する信号が入力されたときは、信号線を介して水平転送部58への蓄積電荷の転送が行われる。
【0026】
水平転送部58は、センサセルアレイ56の各画素から読み出された画素信号(アナログ信号)のデータをA/D変換して、ライン単位にメモリ12〜15へとシリアルで順次出力する。
図1に戻って、SW11は、撮像素子10から画像データS1〜S4が入力されると、これと対応して入力された識別信号に基づきスイッチを切り替え、第1〜第4メモリ12〜15のうち識別信号が示す露光時間に対応するメモリに、入力された画像データを出力する。具体的に、露光時間T1の画像データS1を第1メモリ12に、露光時間T2の画像データS2を第1メモリ13に、露光時間T3の画像データS3を第3メモリ14に、露光時間T4の画像データS4を第4メモリ15に出力する。
【0027】
第1〜第4メモリ12〜15は、SW11を介して入力される、露光時間T1〜T4で被写体を撮像して得られた4種類の露光量L1〜L4に対応する画像データS1〜S4のいずれか対応するものを一時記憶するメモリである。具体的に、SW11を介して順次入力される画像データS1〜S4を、同期をとって映像信号処理部16に出力するバッファとしての役割を果たすメモリである。
【0028】
映像信号処理部16は、図3に示すように、重み計算部16aと、正規化部16bと、合成部16cとを含んで構成される。ここで、図3は、映像信号処理部16の内部構成を示すブロック図である。
重み計算部16aは、露光時間T1〜T4に対応する画素データS1〜S4について、画像合成時に用いる重みW1〜W4(x,y)(以下、合成重みW1〜W4(x,y)と称す)を計算する機能を有している。
【0029】
具体的に、S1(x,y)の合成重みW1(x,y)を計算するときはS2(x,y)を用いる。また、S2(x,y)の合成重みW2(x,y)を計算するときは、S2(x,y)とS3(x,y)の2つの画素データを用いる。また、S3(x,y)の合成重みW3(x,y)を計算するときは、S3(x,y)とS4(x,y)の2つの画素データを用いて重みを計算する。また、S4(x,y)の合成重みW4(x,y)を計算するときは、合成重みW1〜W4(x,y)の総和が「1」となることを利用して計算を行う。
【0030】
本実施形態では、重み計算部16aは、下式(2)〜(6)に基づき、合成重みW1〜W4(x,y)を計算する。
F(x)=(x/255)n ・・・(2)
W1(x,y)=F(S2(x,y)) ・・・(3)
W2(x,y)=F(S3(x,y))−W1
=F(S3(x,y))−F(S2(x,y)) ・・・(4)
W3(x,y)=F(S4(x,y))−W2−W1
=F(S4(x,y))−F(S3(x,y)) ・・・(5)
W4(x,y)=1−W3(x,y)−W2(x,y)−W1(x,y)
=1−F(S4(x,y)) ・・・(6)
【0031】
但し、上式(2)は、8ビットの階調範囲(0〜255)のxに対応する式であって、例えば、階調範囲が10ビットであれば、上式(2)の「255」を「1023」とする。このように、要素となるデータのビット数に応じて値を変更する必要がある。
なお、重み計算部16aは、上式(2)〜(6)に従って計算して得られた合成重みW1〜W4(x,y)の情報を、合成部16cに出力する。
正規化部16bは、メモリ12〜15からの画素データS1〜S4(x,y)及び制御部18からの露光比情報に基づき、画素データS1〜S4(x,y)の正規化処理を行う。本実施の形態において、露光比情報は、露光時間T1〜T4の情報となる。
【0032】
具体的に、本実施形態において、正規化部16bは、下式(7)〜(10)に基づき、露光時間T1〜T4を用いてS1〜S4(x,y)の正規化を行い、正規化後の画素データN1〜N4(x,y)を生成する。
N1(x,y)=S1(x,y)×T4/T1 ・・・(7)
N2(x,y)=S2(x,y)×T4/T2 ・・・(8)
N3(x,y)=S3(x,y)×T4/T3 ・・・(9)
N4(x,y)=S4(x,y)×T4/T4 ・・・(10)
なお、正規化部16bは、上式(7)〜(10)に従って計算して得られた正規化画素データN1〜N4(x,y)の情報を、合成部16cに出力する。
【0033】
合成部16cは、重み計算部16aから取得した合成重みW1〜W4(x,y)と、正規化部16bから取得した正規化画素データN1〜N4(x,y)に基づき、HDR合成処理を行い、HDR画素データを生成する機能を有している。
具体的に、本実施形態において、合成部16cは、下式(11)に基づき、正規化画素データN1〜N4(x,y)をW1〜W4(x,y)で重み付けしてから合成し、HDR画素データHDR(x,y)を生成する。
HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)
・・・(11)
なお、合成部16cは、上式(11)に従って計算して得られたHDR画素データHDR(x,y)を、フレームメモリ17に格納する。
図1に戻って、フレームメモリ17は、映像信号処理部16において合成後のHDR画像データを記憶するメモリである。
【0034】
また、制御部18は、操作部20からの入力情報に基づき露光比情報を生成する機能と、画像解析部19から取得した統計情報に基づき現在の露光比を適切なものに調整する機能と、生成した露光比情報を映像信号処理部16に出力する機能とを有するものである。
更に、制御部18は、調整後の露光比に対応する露光比情報又は新規に生成した露光比情報に基づき露光量信号を生成し、生成した露光量信号及び各種制御信号を撮像素子10に送信する機能も有している。ここで、各種制御信号は、垂直同期信号、水平同期信号、ピクセルクロックなどを含む。
具体的に、本実施形態の撮像素子10は、制御部18から出力される露光量信号に応じた4種類の露光量L1〜L4に対応する露光時間T1〜T4で同一被写体を撮像する。
【0035】
そして、本実施形態において、制御部18は、昇順に並ぶ露光量L1、L2、L3、L4における隣接する各2つの露光量の比率「L2/L1」、「L3/L2」、「L4/L3」が均等(L2/L1=L3/L2=L4/L3)となるように露光量L1〜L4に対応する露光時間T1〜T4を設定するようになっている。
また、本実施形態では、制御部18は、撮像環境の明るさに応じて露光量比を最適な比となるように調整するようになっている。そのために、制御部18は、画像解析部19から得たHDR画像データの平均輝度Lavと、予め用意された高輝度側の閾値Lthと、低輝度側の閾値Ltlとをそれぞれ比較する。
【0036】
制御部18は、この比較結果によって、平均輝度LavがLthより大きければ、撮像環境が比較的明るいと判断し、LavがLtlより小さければ、撮像環境が比較的暗いと判断する。更に、この判断結果に基づき、現在設定されている露光時間T1〜T4を、露光量の比率を均等とする状態を保ったままで増減することで、撮像環境の明るさに対して最適な露光量比となるように調整を行う。
【0037】
画像解析部19は、映像信号処理部16で生成され、フレームメモリ17に格納されたHDR画像データに基づき、撮像環境の明るさに係る統計情報を算出し、算出した統計情報を制御部18に出力する機能を有している。本実施形態において、画像解析部19は、複数フレームの連続撮像時において、フレームメモリ17から得たHDR画像データ(少なくとも最初のフレーム分を含む)を統計的に解析する。本実施形態では、撮像環境の明るさに係る情報を得るために、統計情報として、HDR画像データの平均輝度Lavを算出する。そして、算出したLavを、制御部18に出力する。
操作部20は、撮像時、撮像画像の閲覧時、複数種類の撮像モードのうち任意のモードを選択時などにユーザによって操作されるもので、ユーザの操作内容に応じた情報を制御部18に出力する機能を有している。
【0038】
次に、図4に基づき、撮像素子10のHDRセンサ10dの露光時間の制御方法、及びセンサセルアレイ56からの画素信号の読み出し方法について説明する。ここで、図4は、HDRセンサのセンサセルアレイにおける各画素のライン毎の露光及び画素信号の読み出し動作の一例を示す図である。
本実施形態においては、センサセルアレイ56の露光領域(走査領域)に対して、露光時間T1の画素信号の非破壊読み出しを行う非破壊読み出しラインL1と、露光時間T2の画素信号の非破壊読み出しを行う非破壊読み出しラインL2とを設定する。更に、露光時間T3の画素信号の非破壊読み出しを行う非破壊読み出しラインL3を設定する。更に、各画素のラインの蓄積電荷のリセット及び露光時間T4の画素信号の読み出しを行う読み出し&リセットラインL4&Rを設定する。なお、T1〜T4の関係は、「T1<T2<T3<T4」となっている。そして、リセットされてから、まずT1経過時に非破壊読み出しラインL1が設定される。次にT2経過時に非破壊読み出しラインL2が設定され、次にT3経過時に非破壊読み出しラインL3が設定され、次にT4経過時に読み出し&リセットラインL4&Rが設定される。
【0039】
具体的に、非破壊読み出しラインL1、L2及びL3並びに読み出し&リセットラインL4&Rは、図4に示すように、露光領域における画素のラインに順次露光時間T4分の電荷が蓄積されると、読み出し&リセットラインL4&Rが各画素のラインの画素信号を順次読み出すと共に、その蓄積電荷を順次リセットするように設定される。一方、露光領域のリセット後の各画素のラインにおいては、露光時間T4分の電荷が蓄積される期間中、露光時間T1、T2及びT3において各画素のラインの画素信号を非破壊で順次読み出すように非破壊読み出しラインL1、L2及びL3がそれぞれ設定される。
【0040】
例えば、露光領域の一番目のラインである第1ラインにおいて露光時間T4の画素信号S4の読み出し及びリセットが行われたとする。以降は、画素信号S4が第4ラインメモリから読み出される毎に、図4中のスキャン方向に1ラインずつ、読み出し&リセットラインL4&Rの走査が順次行われる。このとき、読み出し&リセットラインL4&Rが再び第1ラインに到達したときに、丁度、露光時間T4が経過するタイミングとなるように走査が行われる。このような手順で、センサセルアレイの露光領域の画素のラインに対して、各画素のライン毎に、露光時間T4で露光時の画素信号の読み出し及び蓄積電荷のリセットを順次行う。
【0041】
一方、蓄積電荷がリセットされると、当該リセット後の画素のラインに対して、非破壊読み出しラインL1において露光時間T1の露光が行われた画素の画素信号S1の非破壊読み出しを行い、引き続き、非破壊読み出しラインL2において露光時間T2の露光が行われた画素の画素信号S2の非破壊読み出しを行う。引き続き、非破壊読み出しラインL3において露光時間T3の露光が行われた画素の画素信号S3の非破壊読み出しを行う。このような手順で、センサセルアレイの各画素のラインに対して、ライン毎に、露光時間T1、T2及びT3で露光時の画素信号S1、S2及びS3の非破壊読み出しを順次行う。
【0042】
なお、本実施形態においては、図4に示すように、露光時間T1に対応する画素信号のデータ(アナログデータ)S1は、第1ラインメモリに読み出され、露光時間T2に対応する画素信号のデータ(アナログデータ)S2は、第2ラインメモリに読み出される。更に、露光時間T3に対応する画素信号のデータ(アナログデータ)S3は、第3ラインメモリに読み出され、露光時間T4に対応する画素信号のデータ(アナログデータ)S4は、第4ラインメモリに読み出される。そして、これら読み出された画素信号のデータS1〜S4(以下、画素データS1〜S4と称す)は、図4に示すように、それぞれ選択回路を経てADCにS1〜S4の順で順次出力されそこでデジタルデータに変換される。変換された各画素データS1〜S4は、変換された順に(S1〜S4の順に)、S1は第1メモリ12に、S2は第2メモリ13に、S3は第3メモリ14に、S4は第4メモリ15にそれぞれ出力される。
【0043】
次に、図5に基づき、撮像装置1の動作処理の流れを説明する。ここで、図5は、撮像装置1の動作処理の一例を示すフローチャートである。
撮像装置1の電源が投入されると、図5に示すように、まず、ステップS100に移行する。
ステップS100では、制御部18において、最短露光時間Tmin及び最長露光時間Tmaxの初期値を設定して、ステップS102に移行する。初期値の設定は、操作部20を介してユーザが入力又は選択した値を用いても良いし、標準露光時間として予め設定されている初期値を用いてもよい。
【0044】
ステップS102では、制御部18において、ステップS100で設定された初期値を用いて、中間の露光量に対応する露光時間である露光時間Tmidを算出し、算出したTmidと、初期値として設定したTmin及びTmaxとに基づき露光比情報を生成する。そして、生成した露光比情報に基づき露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、ステップS104に移行する。
【0045】
本実施形態では、露光量の種類をL1〜L4の4種類としたので、露光量L1に対応する最短露光時間TminはT1に、露光量L4に対応する最長露光時間TmaxはT4となる。そして、露光量L2及びL3に対応する中間露光時間TmidはT2及びT3となる。そして、制御部18は、下式(12)及び(13)に従って、「T2/T1=T3/T2=T4/T3」となる中間露光時間T2及びT3を算出する。
T2=(T12×T4)1/3 ・・・(12)
T3=(T1×T42)1/3 ・・・(13)
【0046】
例えば、設定可能な最短露光時間Tminが1H、最長露光時間Tmaxが1000Hの場合は、T1=1H、T3=1000Hとして、上式(12)から「T2=(12×1000)1/3=10」と算出できる。また、上式(13)から「T3=(1×10002)1/3=100」と算出できる。これにより、露光量比=露光時間比=「1:10:100:1000」が求まる。この場合は、ダイナミックレンジが「60[dB]」となる。
なお、センサセルアレイにおける1ラインの走査時間を水平同期信号の呼称であるHSYNCの頭文字を取り、1Hと表している。例えば、センサセルアレイの総ライン数500ラインに対して、フレームレートが30[fps]の場合は、1Hの期間は1/30秒を500ラインで除算した時間、つまり1/15000秒、換言すれば1/15ミリ秒(約67μ秒)となる。
【0047】
ステップS104では、映像信号処理部16において、撮像処理が開始されたか否かを判定し、開始されたと判定した場合(Yes)は、ステップS106に移行し、そうでない場合(No)は、撮像処理が開始されるまで判定処理を繰り返す。
なお、撮像処理が開始されると、撮像素子10は、制御部18からの露光量信号及び各種制御信号に基づき、露光量L1〜L4(露光時間T1〜T4)で被写体を撮像する。そして、撮像により得られた画像データS1〜S4を、第1〜第4メモリ12〜15に順次出力して、ステップS106に移行する。
【0048】
ステップS106では、映像信号処理部16において、第1〜第4メモリ12〜15から順次出力される画像データS1〜S4と、制御部18からの露光比情報(T1:T2:T3:T4)とに基づき、HDR合成処理を実行して、ステップS108に移行する。
ステップS108では、制御部18において、撮像処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、一連の処理を終了し、そうでない場合(No)は、ステップS110に移行する。
【0049】
ステップS110に移行した場合は、制御部18において、フレームメモリ17に格納されたHDR合成処理によって生成されたHDR画像データに基づき、露光比調整処理を実行して、ステップS106に移行する。
露光比調整処理が実行されると、撮像素子10は、調整後の露光量信号に基づき、撮像処理を実行する。
【0050】
次に、図6に基づき、映像信号処理部16におけるHDR合成処理の流れを説明する。ここで、図6は、HDR合成処理の一例を示すフローチャートである。
ステップS106に移行すると、映像信号処理部16においてHDR合成処理が開始され、図6に示すように、まず、ステップS200に移行する。
ステップS200では、映像信号処理部16において、第1〜第4メモリ12〜15から画素データS1〜S4を1ライン分取得して、ステップS202に移行する。
【0051】
具体的に、映像信号処理部16は、第1〜第4メモリ12〜15に、同じ画素位置の1ライン分の画素データS1〜S4が格納されたタイミングで、該S1〜S4を取得する。
なお、本実施形態においては、画素データS1〜S4(x,y)は、輝度の情報(輝度値)と、画素の位置情報(行及び列の位置情報)とを含むデータであることとする。また、画素データS1〜S4が位置情報を持たず、映像信号処理部16において、水平同期信号及びピクセルクロックをカウントすることで、画素の位置情報を生成する構成としてもよい。
【0052】
また、映像信号処理部16において、必要に応じて、取得した画素データS1〜S4に対して、固定パターンノイズの除去処理、クランプ処理等の前処理を施してもよい。
ステップS202では、映像信号処理部16において、1ライン分の画素データS1〜S4の中から、合成重みW1〜W4及び正規化画素データN1〜N4の計算処理が未処理の1画素分の画素データS1〜S4(x,y)を選択する。そして、選択した画素データS1〜S4(x,y)を正規化部16bに出力し、選択した画素データS1〜S4(x,y)のうちS2〜S4(x,y)を重み計算部16aに出力して、ステップS204に移行する。
【0053】
ステップS204では、重み計算部16aにおいて、ステップS202で選択された画素データS2(x,y)を用いて、上式(2)及び(3)から、合成重みW1(x,y)として、「W1(x,y)=F(S2(x,y))」を計算して、ステップS206に移行する。
ステップS206では、重み計算部16aにおいて、ステップS202で選択された画素データS3(x,y)に基づき、上式(2)から、まず、F(S3(x,y))を計算する。次に、該計算したF(S3(x,y))と、ステップS204で計算したF(S2(x,y))と、上式(4)とから、合成重みW2(x,y)として、「W2(x,y)=F(S3(x,y))−F(S2(x,y))」を計算して、ステップS208に移行する。
【0054】
ステップS208では、重み計算部16aにおいて、ステップS202で選択された画素データS4(x,y)に基づき、上式(2)から、まず、F(S4(x,y))を計算する。次に、該計算したF(S4(x,y))と、ステップS206で計算したF(S3(x,y))と、上式(5)とから、合成重みW3として、「W3(x,y)=F(S4(x,y))−F(S3(x,y))」を計算して、ステップS210に移行する。
ステップS210では、重み計算部16aにおいて、ステップS208で計算したF(S4(x,y))と、上式(6)とから、合成重みW4(x,y)として、「W4(x,y)=1−F(S4(x,y))」を計算して、ステップS212に移行する。
なお、ステップS204〜S210において計算した合成重みW1〜W4(x,y)は、合成部16cに出力される。
【0055】
ステップS212では、正規化部16bにおいて、ステップS202で選択された画素データS1(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT1とT4とに基づき、上式(7)から、画素データS1(x,y)を正規化する。具体的に、正規化画素データN1(x,y)として、「N1(x,y)=S1(x,y)×T4/T1」を計算して、ステップS214に移行する。
【0056】
ステップS214では、正規化部16bにおいて、ステップS202で選択された画素データS2(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT2とT4とに基づき、上式(8)から、画素データS2(x,y)を正規化する。具体的に、正規化画素データN2(x,y)として、「N2(x,y)=S2(x,y)×T4/T2」を計算して、ステップS216に移行する。
【0057】
ステップS216では、正規化部16bにおいて、ステップS202で選択された画素データS3(x,y)と、制御部18からの露光比情報「T1:T2:T3:T4」のうちT3とT4とに基づき、上式(9)から、画素データS3を正規化する。具体的に、正規化画素データN3(x,y)として、「N3(x,y)=S3(x,y)×T4/T3」を計算して、ステップS218に移行する。
なお、ステップS212〜S216で計算した正規化画素データN1〜N3(x,y)と、「N4(x,y)=S4(x,y)」である正規化画素データN4(x,y)とは、合成部16cに出力される。
【0058】
ステップS218では、合成部16cにおいて、重み計算部16aから取得した合成重みW1〜W4(x,y)と、正規化部16bから取得した正規化画素データN1〜N4(x,y)とを用いて、上式(11)に基づき、N1〜N4(x,y)を合成して、ステップS220に移行する。
具体的に、合成部16cは、上式(11)から、HDR画素データHDR(x,y)として、「HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)」を計算する。
【0059】
ステップS220では、合成部16cにおいて、ステップS218で合成して得られたHDR画素データHDR(x,y)を、フレームメモリ17に格納して、ステップS222に移行する。
ステップS222では、映像信号処理部16において、1ライン分の画素データS1〜S4について、HDR合成処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、ステップS224に移行し、そうでない場合(No)は、ステップS202に移行する。
【0060】
ステップS224に移行した場合は、映像信号処理部16において、1フレーム分(1画像分)の画素データS1〜S4について、HDR合成処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、一連の処理を終了して元の処理に復帰する。一方、終了していないと判定した場合(No)は、ステップS200に移行する。
なお、ステップS204〜S210の処理と、ステップS212〜S216の処理とは、順次行ってもよいし、並列に行ってもよい。
【0061】
次に、図7に基づき、ステップS110の露光比調整処理の流れを説明する。ここで、図7は、露光比調整処理の一例を示すフローチャートである。
ステップS110に移行して、露光比調整処理が開始されると、図7に示すように、まず、ステップS300に移行する。
ステップS300では、制御部18において、フレームメモリ17からHDR合成処理によって生成された1フレーム分(1画像分)のHDR画像データを取得し、取得したHDR画像データから平均輝度Lavを算出して、ステップS302に移行する。
【0062】
ステップS302では、制御部18において、ステップS300で算出した平均輝度Lavと、予め設定された平均輝度値の高輝度側の閾値Lthとを比較し、LavがLthよりも大きいか否かを判定する。そして、LavがLthよりも大きいと判定した場合(Yes)は、ステップS304に移行し、そうでない場合(No)は、ステップS308に移行する。
ステップS304に移行した場合は、制御部18において、最短露光時間Tminを、予め設定された時間だけ減少して、ステップS306に移行する。つまり、撮像環境が比較的明るい状態であるので、白飛びしない画像を得るために最短露光時間Tminを減少する調整を行う。なお、減少する時間は、平均輝度に応じてその都度適切な値を算出するようにしてもよいし、平均輝度の大きさに対応する値をテーブルとして予め用意するようにしてもよい。
【0063】
ステップS306では、制御部18において、ステップS304で減少したTminと、初期設定時のTmaxとを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、減少後のTmin及び初期設定時のTmaxとに基づき露光比情報を生成する。
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報として「T1:T2:T3:T4=Tmin(減):Tmid1(再):Tmid2(再):Tmax(初)」を生成する。なお、各露光時間の後ろに付した、(減)は減少調整後の、(再)は再計算後の、(初)は初期設定時の各露光時間であることを示す。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0064】
一方、ステップS302において、LavがLth以下であってステップS308に移行した場合は、制御部18において、ステップS300で算出した平均輝度Lavと、予め設定された平均輝度値の低輝度側の閾値Ltlとを比較する。更に、この比較結果に基づき、LavがLtlよりも小さいか否かを判定する。そして、LavがLtlよりも小さいと判定した場合(Yes)は、ステップS310に移行し、そうでない場合(No)は、ステップS314に移行する。
【0065】
ステップS310に移行した場合は、制御部18において、最長露光時間Tmaxを、予め設定された時間だけ増加して、ステップS312に移行する。つまり、撮像環境が比較的暗い状態であるので、黒つぶれしない画像を得るために最長露光時間Tmaxを増加する調整を行う。なお、増加する時間は、平均輝度に応じてその都度適切な値を算出するようにしてもよいし、平均輝度の大きさに対応する値をテーブルとして予め用意するようにしてもよい。
【0066】
ステップS312では、制御部18において、ステップS310で増加したTmaxと初期設定時のTminとを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、初期設定時のTmin及び増加後のTmaxとに基づき露光比情報を生成する。
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報は、「T1:T2:T3:T4=Tmin(初):Tmid1(再):Tmid2(再):Tmax(増)」となる。なお、露光時間Tmaxの後ろに付した(増)は増加調整後の露光時間であることを示す。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0067】
また、ステップS308において、LavがLtl以上であってステップS314に移行した場合は、制御部18において、最短露光時間Tminと最長露光時間Tmaxとして通常露光時間を設定して、ステップS316に移行する。本実施形態では、通常露光時間として、初期設定時の露光時間を設定する。
ステップS316では、制御部18において、ステップS314で設定されたTmin及びTmaxを用いて、中間露光時間Tmidを再計算し、再計算したTmidと、初期設定時のTmin及び増加後のTmaxとに基づき露光比情報を生成する。
【0068】
例えば、露光時間がT1〜T4の4種類の場合に、露光比情報は、「T1:T2:T3:T4=Tmin(初):Tmid1(再):Tmid2(再):Tmax(初)」となる。更に、制御部18は、生成した露光比情報に基づき露光量信号を生成する。そして、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号と各種制御信号とを撮像素子10に送信して、一連の処理を終了し元の処理に復帰する。
【0069】
次に、図8〜図11に基づき、本実施形態の動作を説明する。
ここで、図8(a)〜(d)は、比率が均等となるように決定された露光時間T1〜T4における入射光に対する応答信号S1〜S4の一例を示す図である。また、図9(a)〜(d)は、入射光に対する合成重みW1〜W4の一例を示す図である。また、図10は、図9(a)〜(d)を重ねて表示した図である。また、図11は、図8(a)〜(d)における入射光の軸を対数で表した場合の図である。
【0070】
電源が投入されると、撮像装置1は、撮像処理が開始される前に、まず、制御部18において、露光比情報及び露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号及び各種制御信号を撮像素子10に送信する。
具体的に、まず、操作部20を介したユーザからの指示又は予め設定された値に基づき、露光時間T1及びT3の初期値が設定される(ステップS100)。ここでは、初期値として、「T1=2H、T4=500H」が設定されたとする。
【0071】
制御部18は、次に、上式(6)及び(7)に従って、「T2/T1=T3/T2=T4/T3」の関係となる中間露光時間T2及びT3を算出する(ステップS102)。具体的に、「T2=2H、T3=500H」が設定されているので、制御部18において、「T2=(4×500)1/3≒12.6」が自動的に算出される。引き続き、制御部18において、「T3=(2×250000)1/3≒79.4」が自動的に算出される。
【0072】
ここでは、四捨五入してT2を「13」に設定し、T3を「79」に設定する。これにより、「T2/T1=13/2=6.5」、「T3/T2=79/13≒6.1」、「T4/T3=500/79≒6.3」となり、比率が略均等になる露光比情報「「T1:T2:T3:T4=2:13:79:500」を得ることができる。
更に、制御部18は、露光比情報「T1:T2:T3:T4=2:13:79:500」の情報を含む露光量信号を生成し、生成した露光比情報を映像信号処理部16に出力し、生成した露光量信号及び各種制御信号を撮像素子10に送信する。
【0073】
これにより、撮像素子10のHDRセンサ10dのレジスタに、露光時間比「T1:T2:T3:T4=2:13:79:500」の情報が書き込まれる。
引き続き、撮像素子10において、被写体の撮像が開始されると、被写体から反射された光は、レンズ10aで集光されてマイクロレンズ10bに入射される。レンズ10aからの入射光は、マイクロレンズ10bにおいて平行化されて、カラーフィルタアレイ10cを介してセンサセルアレイの各画素に入射される。
【0074】
一方、HDRセンサ10dにおいて、開始ラインから順に1ラインずつリセットラインRが設定されて、各画素の蓄積電荷がリセットされる。引き続き、各走査ラインに対して、各画素のリセット後において露光時間T1、T2、T3の経過タイミングで非破壊読み出しラインL1、L2、L3が設定さる。これにより、図8(a)〜(c)に示すような光応答の画素信号S1〜S3が順に読み出される。引き続き、開始ラインから順に読み出し&リセットラインL4&Rが設定されて、走査されたラインの各画素から図8(d)に示すような光応答の画素信号S4が読み出され、その後、各画素の蓄積電荷がリセットされる。
以降、撮像が行われている間は、上記の手順でL1〜L3&Rの設定、画素信号S1〜S3の読み出し及びリセット処理が繰り返し行われる。
【0075】
このようにして読み出された画素信号S1〜S4は、ライン毎に、第1ラインメモリ〜第4ラインメモリにそれぞれ格納されライン単位で選択回路へと出力される。選択回路からは、S1〜S4の順でアナログの画素データS1〜S4がADCに出力される。ADCは、アナログの画素データS1〜S4を、デジタルの画素データS1〜S4に変換する。そして、ADCからは、ライン単位で且つ画素データS1〜S4の順で順次画素データが、第1〜第4メモリ12〜15へと出力される。ここでは、画素データS1〜S4は8ビットの階調範囲の輝度値(0〜255)を示すデータとなる。
上記のようにして、比率が略均等となる露光時間T1、T2、T3、T4で撮像して得られる画素信号S1〜S4は、図11に示すように、入射光を対数で表したグラフにおいて略均等な間隔で並ぶ。
【0076】
一方、映像信号処理部16は、撮像が開始され(ステップS104の「Yes」の分岐)、第1〜第4メモリ12〜15に1ライン分の画素データS1〜S4が格納されると、HDR合成処理を開始する(ステップS106)。
HDR合成処理が開始されると、映像信号処理部16は、第1〜第4メモリ12〜15から、1ライン分の画素データS1〜S4を取得する(ステップS200)。
映像信号処理部16は、取得した1ライン分の画素データS1〜S4のうち、合成重みW1〜W4及び正規化画素データN1〜N4の計算処理が未処理の1画素分の画素データS1〜S4(x,y)を選択する。そして、画素データS2〜S4(x,y)を重み計算部16aに出力し、画素データS1〜S4(x,y)を正規化部16bに出力する(ステップS202)。
【0077】
一方、重み計算部16aは、画素データS2〜S4(x,y)を取得すると、まず、画素データS2(x,y)を、上式(2)に代入して、F(S2(x,y))を算出する。更に、上式(3)から、「W1(x,y)=F(S2(x,y))」を計算する(ステップS204)。つまり、合成重みW1(x,y)を算出するときは、画素データS2(x,y)のみを用いる。
例えば、画素データS2(x,y)の輝度値が「10」であるとする。また、ここでは、上式(2)におけるnを「2」とする。この場合は、「F(S2(x,y))=(10/255)2≒1.538×10-3」となり、上式(3)から、「W1(x,y)=1.538×10-3」となる。
【0078】
なお、撮像条件などに応じて、nの値を適宜切り替えることで、上式(2)の関数F(x)の値が、より急峻な変化をするように切り替えたり、より緩やかに変化するように切り替えたりすることができる。
ここで、合成重みW1(x,y)は、図9(a)に示すように、入射光量が少ないうちは比較的緩やかに変化し、ある入射光量を境に一定値となる。換言すると、S2(x,y)の明度(輝度値)が大きいほどW1(x,y)は大きくなり、S2(x,y)の明度が飽和状態となる明度のときにW1(x,y)は最大となる。
【0079】
次に、重み計算部16aは、S3(x,y)を、上式(2)に代入して、F(S3(x,y))を算出し、算出したF(S3(x,y))と、先ほど算出したF(S2(x,y))とを上式(4)に代入する。これにより、「W2(x,y)=F(S3(x,y))−F(S2(x,y))」を計算する(ステップS206)。つまり、合成重みW2(x,y)を算出するときは、画素データS2(x,y)及びS3(x,y)の2つを用いる。
【0080】
例えば、画素データS3(x,y)の輝度値が「40」であるとする。この場合は、「F(S3(x,y))=(40/255)2≒0.0246」となり、上式(4)から、「W2=F(S3(x,y))−F(S2(x,y))=0.0246−1.538×10-3≒0.02307」となる。
ここで、合成重みW2(x,y)は、図9(b)に示すように、入射光量に対して、W1(x,y)と比較して急峻に上昇し、ある入射光量を境に低下する。換言すると、S3(x,y)の明度(輝度値)が大きいほどW2(x,y)は大きくなるが、S2(x,y)の明度も大きいときはW2(x,y)は小さくなる。また、S2(x,y)、S3(x,y)が両方とも飽和しているときはW2(x,y)は最小値「0」となる。
【0081】
次に、重み計算部16aは、S4(x,y)を、上式(2)に代入して、F(S4(x,y))を算出し、算出したF(S4(x,y))と、先ほど算出したF(S3(x,y))とを上式(5)に代入する。これにより、「W3(x,y)=F(S4(x,y))−F(S3(x,y))」を計算する(ステップS208)。つまり、合成重みW3(x,y)を算出するときは、画素データS3(x,y)及びS4(x,y)の2つを用いる。
【0082】
例えば、画素データS4(x,y)の輝度値が「160」であるとする。この場合は、「F(S4(x,y))=(160/255)2≒0.3937」となり、上式(5)から、「W3=F(S4(x,y))−F(S3(x,y))=0.3937−0.02307≒0.3706」となる。
ここで、合成重みW3(x,y)は、図9(c)に示すように、入射光量に対して、W2(x,y)と比較して急峻に上昇し、ある入射光量を境にW2(x,y)と比較して急峻に低下する。具体的に、S4(x,y)の明度(輝度値)が大きいほどW3(x,y)は大きくなるが、S3(x,y)の明度も大きいときはW3(x,y)は小さくなる。また、S3(x,y)、S4(x,y)が両方とも飽和しているときはW3(x,y)は最小値「0」となる。
【0083】
次に、重み計算部16aは、先ほど算出したF(S4(x,y))を上式(6)に代入し、「W4(x,y)=1−F(S4(x,y))」を計算する(ステップS210)。つまり、合成重みW4(x,y)を計算するときは、「W1+W2+W3+W4=1」となることを利用して計算を行う。
例えば、上記数値例の値を用いた場合に、「W4=1−F(S4(x,y))=1−0.3706=0.6294」となる。
【0084】
ここで、合成重みW4(x,y)は、図9(d)に示すように、入射光量が少なければ少ないほど大きな値となり、入射光量の増加に応じてW3(x,y)と比較して急峻に低下する。具体的に、S4(x,y)の明度(輝度値)が小さいほどW4(x,y)は大きくなるが、S4(x,y)の明度が大きいときはW4(x,y)は小さくなる。また、S4(x,y)が飽和しているときはW4(x,y)は最小値「0」となる。
【0085】
以上のようにして計算される合成重みW1〜W4(x,y)を重ねて表示すると、図10に示すように、入射光量に対して、W1〜W4(x,y)がオーバーラップする部分が現れる。本実施形態では、W2(x,y)を計算するときに、S2(x,y)及びS3(x,y)の2つの明度を用い、W3(x,y)を計算するときに、S3(x,y)及びS4(x,y)の2つの明度を用いている。そのため、特にオーバーラップする領域において、S3(x,y)だけ、又はS4(x,y)だけを用いて計算するよりも、より適切な合成重みW2(x,y)及びW3(x,y)を計算することができる。
なお、重み計算部16aは、上記のようにして算出した合成重みW1〜W4(x,y)を、合成部16cに出力する。
【0086】
また、正規化部16bは、画素データS1〜S4(x,y)を取得すると、まず、画素データS1(x,y)と、制御部18から取得した露光比情報のうちT1及びT4とに基づき、上式(7)から、画素データS1(x,y)を正規化する(ステップS212)。
具体的に、画素データS1(x,y)と、露光時間T1、T4とを、上式(7)に代入して、正規化画素データN1(x,y)として、「N1(x,y)=S1(x,y)×T4/T1」を計算する。
露光時間T1、T4として上記数値例を用い、画素データS1(x,y)の輝度値が「2」である場合に、「N1(x,y)=2×500/2=500」となる。
【0087】
次に、正規化部16bは、画素データS2(x,y)と、制御部18から取得した露光比情報のうちT2及びT4とに基づき、上式(8)から、画素データS2(x,y)を正規化する(ステップS214)。
具体的に、画素データS2(x,y)と、露光時間T2、T4とを、上式(8)に代入して、正規化画素データN2(x,y)として、「N2(x,y)=S2(x,y)×T4/T2」を計算する。
露光時間T2、T4、画素データS2(x,y)として上記数値例を用いた場合に、「N2(x,y)=10×500/13≒385」となる。
【0088】
次に、正規化部16bは、画素データS3(x,y)と、制御部18から取得した露光比情報のうちT3及びT4とに基づき、上式(9)から、画素データS3(x,y)を正規化する(ステップS216)。
具体的に、画素データS3(x,y)と、露光時間T3、T4とを、上式(9)に代入して、正規化画素データN3(x,y)として、「N3(x,y)=S3(x,y)×T4/T3」を計算する。
【0089】
露光時間T3、T4、画素データS3(x,y)として上記数値例を用いた場合に、「N3(x,y)=40×500/79≒253」となる。
なお、露光時間T4を基準としているため、画素データS4(x,y)は、そのままの値を用いる(上式(10))。上記数値例で言うと、「N4(x,y)=160」となる。
なお、正規化部16bは、上記のようにして算出した正規化画素データN1〜N4(x,y)を、合成部16cに出力する。
【0090】
合成部16cは、重み計算部16aから合成重みW1〜W4(x,y)を取得し、正規化部16bから正規化画素データN1〜N4(x,y)を取得すると、上式(11)を用いて、N1〜N4のHDR合成処理を実行する(ステップS218)。
具体的に、上式(11)に示すように、正規化画素データN1〜N4(x,y)を、合成重みW1〜W4で重み付けすると共に加算して、HDR画素データHDR(x,y)を計算する。つまり、HDR画素データHDR(x,y)として、「HDR(x,y)=W1(x,y)×N1(x,y)+W2(x,y)×N2(x,y)+W3(x,y)×N3(x,y)+W4(x,y)×N4(x,y)」を計算する。
【0091】
ここで、合成重みW1〜W4(x,y)及び正規化画素データN1〜N4(x,y)として、上記数値例を用いる。
上式(11)に上記各数値を代入すると、「HDR(x,y)=1.538×10-3×500+0.02307×385+0.3706×253+0.6294×160≒0.769+8.88+93.8+101≒204」となる。
【0092】
このようにして生成されたHDR画素データHDR(x,y)は、フレームメモリ17の各画素位置に対応するアドレスのメモリ領域に格納される(ステップS220)。
上記のようにして、各画素の合成重みW1〜W4(x,y)、正規化画素データN1〜N4(x,y)、HDR画素データHDR(x,y)を順次計算する。このHDR合成処理は、1フレーム分の画素についてHDR合成処理が終了するまで行われる(ステップS222及びS224の「Yes」の分岐)。
【0093】
そして、1フレーム分のHDR画素データが生成され、且つ撮像処理が継続している場合に(ステップS108の「No」の分岐)、露光比調整処理を実行する(ステップS110)。
露光比調整処理が開始されると、画像解析部19は、1フレーム分のHDR画素データを、フレームメモリ17から取得する。そして、取得したHDR画素データに基づき、撮像環境の明るさに係る統計情報として、1フレーム分の平均輝度Lavを算出し、算出したLavを制御部18に出力する(ステップS300)。なお、1フレーム分に限らず、複数フレーム分のHDR画素データを用いて複数フレーム分の平均輝度を算出するようにしてもよい。
制御部18は、画像解析部19から平均輝度Lavを取得すると、Lavと、高輝度側の閾値Lthとを比較し、LavがLthより大きいか否かを判定する。ここでは、高輝度側の閾値Lthを「192」、低輝度側の閾値Ltlを「64」とする。
【0094】
例えば、平均輝度Lavが「61」の場合は、Lav(61)はLth(192)よりも小さいので(ステップS302の「No」の分岐)、制御部18は、次に、LavとLtlとを比較し、LavがLtlよりも小さいか否かを判定する。ここでは、Lav(61)はLtl(64)よりも小さいので(ステップS308の「Yes」の分岐)、制御部18は、撮像環境が暗いと判断し、現在設定されている最長露光時間「Tmax(T3)=500H」を増加する調整を行う(ステップS310)。例えば、「T3=1000H」に増加したとする。これにより、略均等となっていた比率が崩れてしまうので、制御部18は、「T1=2H(初)、T4=1000H(増)」を、上式(6)及び(7)に代入して、中間露光時間Tmid(T2及びT3)を再計算する。これにより、「T2=(4×1000)1/3≒16」が算出され、「T3=(2×1000000)1/3≒126」が算出される。そして、新たな露光比情報として、「T1:T2:T3:T4=2:16:126:1000」が生成され、この露光比情報に基づき、新たな露光情報信号が生成される。生成された露光比情報は映像信号処理部16に出力され、生成された露光情報信号は、各制御信号と共に撮像素子10に送信される。これにより、撮像素子10では、撮像環境の明るさに適した新たな露光比情報に基づいて撮像処理が行われる。
【0095】
また、算出した平均輝度Lavが「221」であった場合は、Lav(221)はLth(192)よりも大きいので(ステップS302の「Yes」の分岐)、制御部18は、撮像環境が明るいと判断し、現在設定されている最短露光時間「Tmin(T1)=2H」を減少する調整を行う(ステップS114)。例えば、「T1=1H」に減少したとする。これにより、略均等となっていた比率が崩れてしまうので、制御部18は、「T1=1H(減)、T4=500H(初)」を、上式(12)及び(13)に代入して、中間露光時間Tmid(T2及びT3)を再計算する。これにより、「T2=(1×500)1/3≒8」が算出され、「T3=(1×250000)1/3≒63」が算出される。そして、新たな露光比情報として、「T1:T2:T3:T4=1:8:63:500」が生成され、この露光比情報に基づき、新たな露光情報信号が生成される。生成された露光比情報は映像信号処理部16に出力され、生成された露光情報信号は、各制御信号と共に撮像素子10に送信される。これにより、撮像素子10では、撮像環境の明るさに適した新たな露光比情報に基づいて撮像処理が行われる。
【0096】
以上説明したように、本実施形態の撮像装置1は、露光時間T1〜T4で撮像して得られた画素データS1〜S4を重み付けして合成する際の合成重みW1〜W4の計算において、W2については、S2及びS3の2つを用いて計算するようにした。更に、W3については、S3及びS4の2つを用いて計算するようにした。
つまり、S2に対する合成重みW2については、S2とその次に露光時間の長いS3の両方の明度(輝度値)を用いて計算するので、S2の明度だけ用いた場合と比較して、より自然で適切な合成重みW2を計算することができる。
同様に、S3に対する合成重みW3については、S3とその次に露光時間の長いS4の両方の明度(輝度値)を用いて計算するので、S3の明度だけ用いた場合と比較して、より自然で適切な合成重みW3を計算することができる。
【0097】
また、撮像素子10において、隣接する各2つの露光量の比率「L2/L1」、「L3/L2」及び「L4/L3」が均等「L2/L1=L3/L2=L4/L3」となる露光量L1〜L4に対応する露光時間T1〜T4で被写体を撮像することができる。
これによって、HDR合成処理で用いる画素データS1〜S4の露光量の比が常に一定となるため、暗部から明部に渡って、輝度が均等になり且つノイズの少ない合成画像を得ることができる。
【0098】
更に、撮像環境の明るさに係る統計情報として、1フレーム分のHDR画素データから平均輝度Lavを算出し、該Lavと高輝度側閾値Lth及び低輝度側閾値Ltlとを比較して、撮像環境の明るさの状態を判断することができる。
更に、撮像環境が明るいと判断された場合は、最短露光時間Tmin(T1)を減少させる調整を行い、撮像環境が暗いと判断された場合は、最長露光時間Tmax(T4)を増加させる調整を行うことができる。
【0099】
更に、調整後のT1及びT4を用いて、上式(12)及び(13)に従ってT2及びT3を再計算することで、露光時間の調整によって崩れた比率を均等に戻すことができる。
これによって、露光量比(露光時間比)を、撮像環境の明るさに適した露光量比に自動で調整することができる。
上記実施形態において、撮像素子10及び制御部18は、形態7に記載の撮像手段に対応し、重み計算部16aは、形態1乃至4のいずれか1に記載の重み算出手段に対応し、正規化部16b及び合成部16cは、形態1に記載の画像合成手段に対応する。
【0100】
また、上記実施形態において、ステップS204〜S210は、形態5又は6に記載の重み算出ステップに対応し、ステップ212〜s218は、形態5又は6に記載の画像合成ステップに対応する。
なお、上記実施形態における、撮像装置1は、表示装置、メモリ装置等の不図示の他の装置と組み合わせて、デジタルカメラ、デジタルビデオカメラなどの電子機器を構成することが可能である。
また、上記実施形態において、合成重みを用いるときに、上式(2)に示す関数F(x)を用いた構成を例に挙げたが、この構成に限らない。
【0101】
例えば、要素xの値(上記実施形態では輝度値)が大きいほど増加し、その最大値が「1」又は他の定数となるような関数であれば、他の関数を用いる構成としてもよい。例えば、オフセット値を設定して、xの値がオフセット値以下の場合は全て「0」とするような関数を用いてもよい。
また、上記実施形態において、比率が均等となる複数種類の露光量を、露光時間を制御することで実現する構成としたが、この構成に限らず、撮像素子10の機能に応じて、例えば、アイリス(絞り)や、撮像感度などを制御して実現する構成としてもよい。
【0102】
また、上記実施形態において、上式(12)及び(13)を用いて、中間露光時間T2及びT3を算出する構成としたが、この構成に限らない。例えば、予め上式(12)及び(13)を用いて所定のT1及びT4に対するT2及びT3を算出してデータテーブル(LUT)を生成し、この生成したLUTを用いてT2及びT3を決定する構成としてもよい。
また、上記実施形態において、撮像素子10のHDRセンサ10dが、CMOS技術を用いて構成されたセンサセルアレイ56を有する構成としたが、この構成に限らない。例えば、CCDから構成されるセンサセルアレイを有する構成など他の構成としてもよい。
【0103】
また、上記実施形態は、本発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、本発明の範囲は、上記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。また、上記の説明で用いる図面は、図示の便宜上、部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
また、本発明は上記実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【符号の説明】
【0104】
1…撮像装置、10…撮像素子、10a…レンズ、10b…マイクロレンズ、10c…カラーフィルタアレイ、10d…HDRセンサ、12〜15…第1〜第4メモリ、16…映像信号処理部、16a…重み計算部、16b…正規化部、16c…合成部、17…フレームメモリ、18…制御部、19…画像解析部、20…操作部、50…基準タイミング発生器、54…走査ラインスキャナ、56…センサセルアレイ、58…水平転送部
【特許請求の範囲】
【請求項1】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出手段と、
前記重み算出手段で算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成手段と、を備えることを特徴とする画像処理装置。
【請求項2】
前記重み算出手段は、前記3種類以上の画像のうち、露光量が最小及び最大となる2種類の画像以外の画像について、前記第1の画像の輝度と、前記第2の画像の輝度とに基づき重みを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記重み算出手段は、前記重みを、画像の輝度を要素xとし、関数値が輝度の大きさに応じて増加する関数F(x)によって算出した値を用いて算出することを特徴とする請求項1又は請求項2に記載の画像処理装置。
【請求項4】
前記重み算出手段は、前記関数として、前記要素xに対する算出値が、より急峻に変化する第1の関数F1(x)と、より緩やかに変化する第2の関数F2(x)とを切り替えて用いることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップと、を含むことを特徴とする画像処理方法。
【請求項6】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップとを有する処理をコンピューターに実行させるためのプログラムを含むことを特徴とする画像処理プログラム。
【請求項7】
N種類(Nは3以上の自然数)の露光量で被写体を撮像する撮像手段と、
請求項1乃至請求項4のいずれか1項に記載の画像処理装置と、を備え、
前記画像処理装置は、前記撮像手段で撮像して得られたN種類の露光量に対応するN種類の画像のうち、少なくとも画像合成に用いる3種類以上の画像について、前記第1の画像に対する重みを算出することを特徴とする撮像装置。
【請求項8】
請求項7に記載の撮像装置を備える電子機器。
【請求項1】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出手段と、
前記重み算出手段で算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成手段と、を備えることを特徴とする画像処理装置。
【請求項2】
前記重み算出手段は、前記3種類以上の画像のうち、露光量が最小及び最大となる2種類の画像以外の画像について、前記第1の画像の輝度と、前記第2の画像の輝度とに基づき重みを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記重み算出手段は、前記重みを、画像の輝度を要素xとし、関数値が輝度の大きさに応じて増加する関数F(x)によって算出した値を用いて算出することを特徴とする請求項1又は請求項2に記載の画像処理装置。
【請求項4】
前記重み算出手段は、前記関数として、前記要素xに対する算出値が、より急峻に変化する第1の関数F1(x)と、より緩やかに変化する第2の関数F2(x)とを切り替えて用いることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップと、を含むことを特徴とする画像処理方法。
【請求項6】
3種類以上の露光量で被写体を撮像して得られた3種類以上の画像のうち、第1の画像の輝度と、該第1の画像の次に露光量の大きい第2の画像の輝度とに基づき、該第1の画像に対して画像合成時に用いる重みを算出する重み算出ステップと、
前記重み算出ステップで算出した重みを用いて、前記3種類以上の画像の重み付け加算を行い、画像を合成する画像合成ステップとを有する処理をコンピューターに実行させるためのプログラムを含むことを特徴とする画像処理プログラム。
【請求項7】
N種類(Nは3以上の自然数)の露光量で被写体を撮像する撮像手段と、
請求項1乃至請求項4のいずれか1項に記載の画像処理装置と、を備え、
前記画像処理装置は、前記撮像手段で撮像して得られたN種類の露光量に対応するN種類の画像のうち、少なくとも画像合成に用いる3種類以上の画像について、前記第1の画像に対する重みを算出することを特徴とする撮像装置。
【請求項8】
請求項7に記載の撮像装置を備える電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−101180(P2011−101180A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2009−254212(P2009−254212)
【出願日】平成21年11月5日(2009.11.5)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願日】平成21年11月5日(2009.11.5)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]