以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本発明の実施形態は、ハイダイナミックレンジ合成処理で生成されたハイダイナミックレンジ合成画像に対して、グローバルトーンマッピング処理とローカルトーンマッピング処理とを直列に実行することにより、出力画像を生成する画像生成装置である。
本実施形態について説明する前にまず、一般的なグローバルトーンマッピング処理とその問題点について、図1を用いて説明する。一般的なグローバルトーンマッピング処理では、HDR合成画像の画素値(輝度値)のヒストグラムが算出される。
まず、例えば図1(a)の(a−1)として示されるように、HDR合成画像のヒストグラムが、画素値が小さいすなわち画像が暗い範囲に集中しているケースを考える。一般的なグローバルトーンマッピング処理において、このケースの場合には、例えば図1(a)の(a−1)から(a−2)へのHDR合成画像の各画素値から出力画像の各画素値へのマッピングが行われる。この変換では、(a−1)でHDR合成画像の画素値のヒストグラムが存在し得る最も大きな画素値HLが(a−2)の出力画像の最大画素値になるように、矢印Aのように、画素値HL以下のHDR合成画像の各画素値が出力画像の各画素値にマッピングされる。
なお、HDR合成画像の画素値の範囲と出力画像の画素値の範囲は同じ、すなわち、最小画素値は0で、最大画素値が同じ(例えば1023)であるとする。実際には、出力画像の画素値の最終的な範囲は、その出力画像が出力される表示装置やプリンタの性能に応じて異なるが、トーンマッピングの時点では出力画像の画素値の範囲はHDR合成画像の画素値の範囲と同じとして扱われる。
ここで、画像を撮像するカメラの適正露光量を0EV(EV:Exposure Value:露出値)とする。EVは、画像が撮像されたときの露光量を示す数値で、カメラにおける基準となる適正露光量を0EVとして、EV値が1EV増える毎に露光量が2倍ずつ増加し、1EV減る毎に露光量が1/2ずつ減少する。そして、本実施形態では、例えば露光量が0EVである適正露光画像と、0EVに対する相対的な露光量が−2EVである小露光画像と、相対的な露光量が2EVである大露光画像の3枚の画像が撮像され、それらの画像からHDR合成画像が生成される。いま、露光量=−2EVは露光量=0EVの1/4の露光量である。従って、小露光画像から生成されたHDR合成画像に対してゲイン4倍を超えるトーンマッピングを行うと、HDR合成画像中の−2EVの露光領域が出力画像にマッピングされた場合、その出力画像の領域の露光量は0EVを超えて露光オーバーになってしまう。
しかし、例えば図1(a)の(a−1)から(a−2)へのマッピングでは、画素値HLが出力画像の最大画素値に対応するように、画素値HL以下のHDR合成画像の各画素値が出力画像の各画素値に単純にマッピングされてしまう。このため、画素値HLが出力画像の最大画素値の1/4未満の値である場合には、画素値HL以下のHDR合成画像の各画素値が出力画像の各画素値に単純にマッピングされるときのゲインが、4倍を超えてしまう。従って、一般的なグローバルトーンマッピング処理において、図1(a)のようなケースでは、出力画像が露光オーバーになってしまう場合があるという問題があった。
次に、例えば図1(b)の(b−1−1)として示されるように、HDR合成画像のヒストグラムが、画素値が小さいすなわち画像が暗い範囲にも、画素値が大きいすなわち画像が明るい範囲にも存在しているケースを考える。一般的なグローバルトーンマッピング処理において、このようなケースの場合には、図1(b)の(b−1−2)の矢印Bとして示されるように、画素値が小さい領域のみが画素値が増える方向に引き延ばされるように、HDR合成画像から出力画像へのマッピングが行われる。
続いて、例えば図1(b)の(b−2−1)として示されるように、HDR合成画像のヒストグラムが、図1(b)の(b−1−1)の場合と同じ傾向を示している。しかし、HDR合成画像を生成した小露光画像の露光量は、(b−1−1)の場合は例えば−2EVで、(b−2−1)の場合は例えば−3EVであったとする。画像を撮像するカメラが決定する適正露光量を0EVとしたときに、前述したように、露光量が−2EVである小露光画像を適正露光量にするためには2-(-2) =22 =4倍のゲインが必要となる。一方、露光量が−3EVの場合には、2-(-3) =23 =8倍のゲインが必要となる。この場合には、図1(b)の(b−2−2)の矢印Cとして示されるように、(b−1−2)の矢印Bに比較して、画素値が小さい領域のみが画素値がより多く増える方向に引き延ばされるように、HDR合成画像から出力画像へのマッピングが行われる必要がある。
しかし、一般的なグローバルトーンマッピング処理では、HDR合成画像を生成した小露光画像の露光量は考慮されていなかった。このため、(b−1−1)と(b−2−1)に示されるようにヒストグラムの形状が同じ場合、(b−1−2)の場合の増加量Bと(b−2−2)の場合の増加量Cは同じであった。従って、一般的なグローバルトーンマッピング処理では、図1(b)に示されるようにHDR合成画像のヒストグラムが画素値が小さい範囲にも大きい範囲にも存在しているケースで、露光量不足になる場合があるという問題があった。
以上説明したように、一般的なグローバルトーンマッピング処理では、単純にヒストグラムのみに基づいてHDR合成画像の各画素値から出力画像の各画素値へのトーンマッピングが行われていた。このため、HDR合成画像を生成した画像の露光量の違いやHDR合成画像のヒストグラムの特定に応じて、トーンマッピングを適切に行うことができない場合があった。
図2は、図1で説明した一般的なグローバルトーンマッピング処理の問題点を解決できる、本発明による画像生成装置100の実施形態を含むブロック図である。図2は、画像生成装置100の実施形態のブロックに加えて、HDR合成装置150のブロックを含む。まず、HDR合成装置150は、例えばデジタルカメラである。HDR合成装置150は、同一被写体に対して例えば、適正露光(例えば0EV)、小露光(例えば−2EV)、及び大露光(例えば2EV)による3回の撮像を行う。これにより、HDR合成装置150は、適正露光画像153、小露光画像154、及び大露光画像155の3枚の画像を取得する。なお、これらの画像には、カメラガンマの補正はかけられていないものとする。また、取得される画像の枚数は、3枚には限定されず、2枚以上であればよい。
次に、HDR合成装置150内の位置あわせ処理部151は、上記適正露光画像153、小露光画像154、及び大露光画像155に対して、画素のずれを補正する位置あわせ処理を実行する。上記3枚の画像は、連続した時間ではあるが同一時間では撮像されないため、それぞれの画像に写る被写体の画素位置が微妙にずれる場合がある。このため、位置あわせ処理部151は、例えば適正露光画像153内の各画素を基準にして、ブロックマッチング等の手法を用いて、その適正露光画像153上の画素に対応する小露光画像154の画素を算出して、その対応関係を記憶する。同様に、位置あわせ処理部151は、適正露光画像153上の画素に対応する大露光画像155の画素を算出し、その対応関係を記憶する。
次に、HDR合成装置150内のHDR合成処理部152は、位置あわせ処理部151により画素毎に対応関係がとられた適正露光画像153、小露光画像154、及び大露光画像155に対して、それぞれの適正露光部分を合成することで、ハイライト側の白飛びやシェーディング側の黒つぶれなどの少ないハイダイナミックレンジを持つHDR合成画像を生成する。
次に、画像生成装置100は、HDR合成装置150内のHDR合成処理部152で生成されたHDR合成画像に対して、グローバルトーンマッピング処理とローカルトーンマッピング処理とを実行する。これにより、画像生成装置100は、ディスプレイやプリンタなどの出力機器に合ったダイナミックレンジを有する出力画像143を生成する。画像生成装置100は、グローバルトーンマッピングパラメータ算出部101と、直列トーンマッピング処理部102と、入力受付部103と、記憶処理部104とを備える。
入力受付部103は、HDR合成装置150から、HDR合成画像130と最小EV設定値131(最小露光設定値)を入力して保持する。HDR合成画像130は、HDR合成装置150内のHDR合成処理部152でのハイダイナミックレンジ合成処理(以下「HDR合成処理」と記載)により生成された画像である。最小EV設定値131は、HDR合成装置150における上記HDR合成処理時に使用された最小露光画像のEV値(露光値)である。図2の例では、破線で囲まれた、小露光画像154のEV値=−2EVが入力される。
グローバルトーンマッピングパラメータ算出部101は、パラメータ算出補間処理S1を実行する。パラメータ算出補間処理S1では、入力受付部103が入力した最小EV設定値131に基づき、グローバルトーンマッピング処理のための上限パラメータ140と下限パラメータ141とを設定する。上限パラメータ140は、直列トーンマッピング処理部102が実行するグローバルトーンマッピング処理S2で、HDR合成画像130の各第1の画素値を中間出力画像121の各第2の画素値にマッピングするときの、第1の画素値毎のゲインの上限値を示す。下限パラメータ141は、グローバルトーンマッピング処理S2で、HDR合成画像130の各第1の画素値を中間出力画像121の各第2の画素値にマッピングするときの、第1の画素値毎のゲインの下限値を示す。上限パラメータ140及び下限パラメータ141の更に詳細な定義及び説明については、後述する。グローバルトーンマッピングパラメータ算出部101は、パラメータ算出補間処理S1で設定された上限パラメータ140と下限パラメータ141を、記憶処理部104に記憶させる。
次に、グローバルトーンマッピングパラメータ算出部101は、パラメータ算出補間処理Sで、入力受付部103が入力したHDR合成画像130のヒストグラムに基づき、上限パラメータ140と下限パラメータ141を補間する。この結果、グローバルトーンマッピングパラメータ142が算出される。このグローバルトーンマッピングパラメータ142は、グローバルトーンマッピング処理S2で、HDR合成画像130の各第1の画素値を中間出力画像121の各第2の画素値にマッピングするときの、第1の画素値毎のゲインの適正値を示している。グローバルトーンマッピングパラメータ142の更に詳細な定義及び説明については、後述する。このグローバルトーンマッピングパラメータ142は、第1の画素値毎にゲインの値を記憶したLUTとして記憶処理部104に記憶される。
その後、直列トーンマッピング処理部102において、入力受付部103が保持しているHDR合成画像130に対して、グローバルトーンマッピング処理S2とローカルトーンマッピング処理S3が直列に実行される。
まず、グローバルトーンマッピング処理S2では、記憶処理部104から読み込んだ上記グローバルトーンマッピングパラメータ142のLUTにより、HDR合成画像130の各第1の画素値が中間出力画像121の各第2の画素値にマッピングされる。
続いて、ローカルトーンマッピング処理S3では、上述のようにヒストグラムの偏りが適切に補正された中間出力画像121に対して、ヒストグラムの偏りが小さい傾向に対して、エッジ部分の情報を保存しながら、適切なトーンマッピングが実行される。ローカルトーンマッピング処理S3としては、例えば前述した特許文献2に記載の処理を採用することができる。このローカルトーンマッピング処理S3により生成された最終的な出力画像143は、記憶処理部104に保持される。その後、この出力画像143は、上述のトーンマッピングに対応したディスプレイやプリンタに出力される。
図2の画像生成装置100内のグローバルトーンマッピングパラメータ算出部101が実行するパラメータ算出補間処理S1について、以下に詳細に説明する。図3は、パラメータ算出補間処理S1の説明図である。
図2のHDR合成装置150で得られる適正露光画像153のEV設定値=0EVが、HDR合成装置150が装備されるカメラの適正露光量であるときに、この適正露光量=0EVを超えてグローバルトーンマッピングをしてしまうと、露光オーバーになってしまう。図2の例では、小露光画像154のEV設定値は−2EVであり、−2EVは0EVの1/4の露光量である。従って、EV設定値=−2EVの小露光画像154から生成されたHDR合成画像130に対して、2-(-2) =22 =4倍のゲインを超えるトーンマッピングを行うと、次のような状態が発生し得る。HDR合成画像130中の−2EVで露光された領域に対応する中間出力画像121の領域の露光量が0EVを超える場合が発生し得る。
そこで、本実施形態ではまず、HDR合成画像130の各第1の画素値を中間出力画像121の各第2の画素値にマッピングするときの、第1の画素値毎のゲインの上限値が定義される。上述の考察より、HDR合成画像130を生成したときの最小EV設定値131をEVminとしたときに、上限値を2-EVminとするのが望ましい。図2の例では、EVminの値は、小露光画像154が撮像されたときのEV設定値=−2EVである。従って、この場合の上限値は、2-EVmin=2-(-2) =4となる。
ここで、中間出力画像121の最大画素値をR(例えば1023)とし、設定された上限値のもとで中間出力画像121の最大画素値Rを生成するHDR合成画像130の画素値をMinR(第3の画素値)と定義する。なお、図1の説明で前述したように、HDR合成画像130の画素値の範囲と中間出力画像121の画素値の範囲は同じ、つまり、最小画素値は0で、最大画素値は同じ値R(例えば1023)であるとする。この場合、例えば上記上限値=4のもとでのMinR値は、R/4となる。従って、HDR合成画像130の画素値が0からR/4までの範囲では、上記上限値=4のゲインを用いて、HDR合成画像130の画素値を中間出力画像121の画素値にマッピングするのが望ましい。なお、HDR合成画像130の画素値がR/4を超えてRまでの範囲では、HDR合成画像130の画素値=中間出力画像121の画素値=Rとしてマッピングするのが望ましい。このようにして、HDR合成画像130の画素値毎(実質的には最小画素値=0からMinRまでの画素値毎)に設定される、上記上限値を、上限パラメータ140と定義する。
図3(a)は、HDR合成画像130のヒストグラム302aと、上限パラメータ140のトーンマッピングカーブ301aとの関係を示す図である。図3(a)において、横軸は、HDR合成画像130の画素値(以下「HDR画素値」と記載)(第1の画素値)の最小画素値=0から最大画素値=Rまでの範囲を示している。また、左端の縦軸は、HDR合成画像130の画素値毎のヒストグラム(度数)を示している。図3(a)の横軸と左端の縦軸により、最小画素値=0から画素値MinR(図2の例ではR/4)までの範囲にヒストグラム302aが存在する場合の例が示されている。また、図3(a)において、右端の縦軸は、中間出力画像121の画素値(以下「中間出力画素値」と記載)(第2の画素値)の最小画素値=0から最大画素値=Rまでの範囲を示している。ここで、「最大画素値=R」とは、HDR合成画像130又は出力画像143において、実際にその画素値が存在するか否かにかかわらず、取り得る画素値の最大値をいう。図3(a)の横軸と右端の縦軸により、最小画素値=0から画素値MinR(図2の例ではMinR=R/4)までの範囲において、HDR画素値を中間出力画素値にマッピングするためのトーンマッピングカーブ301aが示されている。このカーブ301aは、HDR画素値の最小画素値=0と最大画素値=Rがそれぞれ中間出力画素値の最小画素値=0と最大画素値=Rにマッピングされる、ゲインを示す傾き=R/MinR(図2の例では「=4」)の上限パラメータ140の直線カーブである。
以上より、HDR合成画像130のヒストグラム302aが画素値=0からMinR(図2の例ではR/4)までの範囲に存在する場合、グローバルトーンマッピング処理S2(図2参照)では、ゲイン=R/MinRの上限パラメータ140の使用が適している。HDR画素値=0〜MinRの範囲では、グローバルトーンマッピング処理S2において、上限パラメータ140のトーンマッピングカーブ301aに従うようなトーンマッピングが行われることにより、適正露光を維持することが可能となる。
図4は、上限パラメータ140を定義することの効果を示す説明図である。図4(a)は、EV設定値=2EVの大露光画像155、EV設定値=0EVの適正露光画像153、及びEV設定値=−2EVの小露光画像154の例を示した図である。また図4(b)は、上記3つの画像の各ダイナミックレンジと露光量との関係を比較した図である。図4(b)で、EV設定値=−2EVの小露光画像154のダイナミックレンジ(0〜1)及び露光量(=1)を基準とする。この場合、EV設定値=0EVの適正露光画像153のダイナミックレンジは0〜2-2=0〜1/4、露光量は4倍になる。また、EV設定値=2EVの大露光画像155のダイナミックレンジは、0〜2-2-2=0〜2-4=0〜1/16、露光量は16倍になる。上限パラメータ140を定義することによって、少なくともEV設定値=−2EVの小露光画像154から生成されたHDR合成画像130上の領域について、最大で図4の401で示されるダイナミックレンジ領域に対応する明るさを補償することが可能となる。
図2の直列トーンマッピング処理部102が実行するグローバルトーンマッピング処理S2のためのトーンマッピングカーブとして、図3(a)の301aとして示される上限パラメータ140が定義されることにより、次の効果がある。HDR合成画像130の生成時の最小EV設定値131に応じて、HDR画素値を中間出力画素値にマッピングするときのゲインに上限値を設定できる。これにより、図1(a)の説明で前述した、最小EV設定値131によって、グローバルトーンマッピング処理S2の結果において適切な露光量が得られない場合があるという問題を解決することが可能となる。
図3の説明に戻って、図3(b)(横軸と左端及び右端の縦軸の関係は図3(a)と同じ)に示されるように、HDR合成画像130のヒストグラム302bが、HDR画素値の最小画素値=0から最大画素値=Rまでの全範囲にわたり存在するケースを考える。またこのケースにおいて、ヒストグラム302bは例えば、HDR画素値が小さい領域のほうが比較的度数が大きいとする。これは、HDR合成画像130においてシャドー部の割合が大きい場合の例である。このケースでは、HDR画素値から中間出力画素値へマッピングを行うためのゲインの値をHDR画素値毎にプロットしたトーンマッピングカーブ301bとしては、次のようなカーブを採用することができる。まず、トーンマッピングカーブ301bが示すゲインの値は、HDR画素値が小さい領域では、値1よりも大きく、図3(a)で設定された上限パラメータ140のゲインの値R/MinRより小さい値で変化する。そして、トーンマッピングカーブ301bが示すゲインの値は、HDR画素値が大きくなるに従って、徐々に値1に近づきながら減少してゆき、HDR画素値の最大画素値=Rにおいて、値1になってHDR画素値=中間出力画素値=Rとなる。グローバルトーンマッピング処理S2(図2参照)では、HDR画素値毎に、上記トーンマッピングカーブ301bが示す値より小さい値のゲインでは、マッピングを行わない。すなわち、トーンマッピングカーブ301bは、HDR画素値毎に中間出力画素値にマッピングされるときの下限値を示している。図3(b)のトーンマッピングカーブ301bが示す下限値を、下限パラメータ141と定義する。
図3(b)に示されるようなトーンマッピングカーブ301bの例として、HDR画素値の最小画素値=0及び最大画素値=Rがそれぞれ中間出力画像121の最小画素値=0及び最大画素値=Rにマッピングされるようなγカーブを採用することができる。また、γカーブでは、入力(HDR画素値)の値が小さい領域で傾きが大きく、最大値(HDR画素値の最大画素値=R)に近づくに従って傾きが小さくなって0に近づいてゆく。このため、γカーブは、下限パラメータ141のトーンマッピングカーブ301bとして好適である。
前述したように、HDR合成画像130を生成したときの最小EV設定値131をEVminとしたときに上限パラメータ140が示すゲインの上限値は2-EVminで規定される。例えば、EVmin=−1EVであれば上限値は2-(-1) =2、EVmin=−2EVであれば上限値は2-(-2) =4、EVmin=−3EVであれば上限値は2-(-3) =8である。そして、前述したように、図3(b)のトーンマッピングカーブ301bが示すゲインの値は、HDR画素値が小さい領域では、上記上限パラメータ140が示すゲインの上限値より少し小さい値となる。従って、図3(b)のトーンマッピングカーブ301bのHDR画素値が小さい領域のゲイン値は、最小EV設定値131が小さければ大きく、最小EV設定値131が大きければ小さくなるように設定されることが望ましい。
図5は、上述の特性を実現することができる、最小EV設定値131毎のγカーブによるトーンマッピングカーブ301bの例を示す説明図である。HDR合成画像130の生成時の小露光画像154の最小EV設定値131が小さいほうがHDR画素値が小さい領域のゲイン値が大きく、最小EV設定値131が大きいが上記ゲイン値が小さくなるようにするために、次のようなγカーブが採用されればよい。本実施形態では、図5(b)に示されるように、最小EV設定値131が小さくなるに従って、γカーブのγ値として大きな値が設定される。これにより、本実施形態では、最小EV設定値131の値に対応して、図5(a)に示されるγカーブが、トーンマッピングカーブ301bとして設定される。最小EV設定値131が例えば−3EVのトーンマッピングカーブ301bでは、最小EV設定値131が例えば−EVのトーンマッピングカーブ301bに比較して、HDR画素値が小さい領域で、より大きな値の中間出力画素値がマッピングされる。最小EV設定値131が−2EVのトーンマッピングカーブ301bは、最小EV設定値131が−3EVのトーンマッピングカーブ301bの特性と最小EV設定値131が−EVのトーンマッピングカーブ301bの特性の中間の特性を有する。
図5(c)は、図2の記憶部104に記憶される下限パラメータ141を示すトーンマッピングカーブ301bのLUTの実際のデータ形式を示す図である。例えば0から1023までのHDR画素値毎に、ゲイン値が記憶される。なお、図5(c)では連続的な曲線が示されているが、実際には、HDR画素値毎のゲイン値の集合である。図5(a)のトーンマッピングカーブ301bに対応して、HDR画素値が値0から一定の範囲では、ゲイン値が最大値(図5(c)の例では値3)となる。これは、トーンマッピングカーブ301bにおいて、HDR画素値が0から最初の一定範囲では、カーブが直線的に増加する特性に対応している。そして、HDR画素値が上記一定の範囲を超えて増加してゆくと、ゲイン値が値1に向かって漸近的に減少してゆき、HDR画素値が最大画素値(図5(c)では1023)に達すると、ゲイン値は値1に収束する。図5(c)のデータ形式を有するLUTが用いて、HDR画素値を入力としてLUTが参照されることにより得られたゲイン値が、HDR画素値に乗算されることにより、中間出力画素値が算出される。
図2の直列トーンマッピング処理部102が実行するグローバルトーンマッピング処理S2のためのトーンマッピングカーブとして、図3(b)の301b又は図5(a)として示される下限パラメータ141が定義されることにより、次の効果がある。図5で説明したように、下限パラメータ141を規定するトーンマッピングカーブとして、HDR合成画像130の生成時の最小EV設定値131に応じて、HDR画素値が小さい領域のゲイン値が異なるγカーブを設定することができる。これにより、図1(b)の説明で前述した、最小EV設定値131の値によってHDR合成画像130中の小露光画像領域を適正露光量にすることができないという問題を解決することが可能となる。
図3の説明に戻り、図3(c)(横軸と左端及び右端の縦軸の関係は図3(a)と同じ)のように、HDR合成画像130のヒストグラム302cが、HDR画素値の最小画素値=0から最大画素値=Rまで達しない手前の画素値HLまで存在するケースを考える。なお、この画素値HLを、以下の説明では、ヒストグラム302cが存在し得る輝度値が最も大きな画素値という意味で、ハイライトポイント画素値HL(第4の画素値)と呼ぶ。このケースにおいて、ヒストグラム302cは例えば、HDR画素値が小さい領域のほうが比較的度数が大きいとする。これは、図3(b)の場合と同様に、HDR合成画像130においてシャドー部の割合が大きい場合の例である。このケースでは、HDR画素値から中間出力画素値へマッピングを行うためのゲインの値をHDR画素値毎にプロットしたトーンマッピングカーブ301cとしては、次のようなカーブを採用することができる。
まず、ハイライトポイント画素値HLが、図3(a)の画素値MinRに近い場合を考える。ここで、図3(a)の説明で前述したように、MinRは、上限パラメータ140により設定された上限値のもとで中間出力画像121の最大画素値Rを生成するHDR合成画像130の画素値である。この場合には、図3(c)のHDR合成画像130のヒストグラム302cの形状が、図3(a)のヒストグラム302aの形状に近づく。そして、図3(c)のトーンマッピングカーブ301cの形状は、図3(a)で説明した上限パラメータ140のトーンマッピングカーブ301aの直線形状に近づく。
一方、ハイライトポイント画素値HLが、図3(b)の最大画素値=Rに近い場合を考える。この場合には、図3(c)のHDR合成画像130のヒストグラム302cの形状が、図3(b)のヒストグラム302bの形状に近づく。そして、トーンマッピングカーブ301cの形状は、図3(b)で説明した下限パラメータ141のトーンマッピングカーブ301bの形状に近づく。
更に、ハイライトポイント画素値HLが、図3(a)のMinRと図3(b)の最大画素値=Rの中間にある場合を考える。この場合には、図3(c)のHDR合成画像130のヒストグラム302cの形状は、図3(a)のヒストグラム302aと図3(b)のヒストグラム302bの中間の形状になる。このような場合には、トーンマッピングカーブ301cは、図3(c)に示されるように、図3(a)で説明した上限パラメータ140のトーンマッピングカーブ301aと、図3(b)で説明した下限パラメータ141のトーンマッピングカーブ301bの中間を通るカーブとなる。ただし、トーンマッピングカーブ301cは、ハイライトポイント画素値HL付近において、HDR画素値を中間出力画素値の最大画素値=Rにマッピングさせるような特性になる。HDR画素値において、ハイライトポイント画素値HLを超えて最大画素値=Rまでは、ヒストグラム302cの形状的にHDR合成画像130中にはそのような画素値を有する画素は存在しない(又は無視できる)。このため、ハイライトポイント画素値HLを超えて最大画素値=Rまでの範囲では、トーンマッピングカーブ301cは意味をなさない。
上述の考察より、本実施形態では、HDR合成画像130のヒストグラム302cの形状、具体的にはハイライトポイント画素値HLの値と、MinRと、最大画素値=Rとの関係に応じて、トーンマッピングカーブ301cが生成される。より具体的には、図2のパラメータ算出補間処理S1では、上限パラメータ140のトーンマッピングカーブ301aと下限パラメータ141のトーンマッピングカーブ301bとが補間されることで、トーンマッピングカーブ301cが算出される。このトーンマッピングカーブ301cは、HDR画素値を中間出力画素値にマッピングするときの、HDR画素値毎のゲインの適正値を示すグローバルトーンマッピングパラメータ142に対応する。
図2の直列トーンマッピング処理部102が実行するグローバルトーンマッピング処理S2のためのトーンマッピングカーブとして、図3(c)の301cとして示されるグローバルトーンマッピングパラメータ142が定義されることにより、次の効果がある。図3(c)に示されるHDR合成画像130のヒストグラム302cが、図3(a)のヒストグラム302aと図3(b)のヒストグラム302bの中間の形状を有していても、図3(a)の場合の効果と図3(b)の場合の効果の両方の効果を兼ね備える。すなわち、図1(a)の説明で前述した、最小EV設定値131によって、グローバルトーンマッピング処理S2の結果において適切な露光量が得られない場合があるという問題を解決することが可能となる。これと同時に、図1(b)の説明で前述した、最小EV設定値131の値によってHDR合成画像130中の小露光画像領域を適正露光量にすることができないという問題を解決することが可能となる。
なお、図3の各図において、HDR合成画像130の画素値が小さいエリアは大露光画像155から生成される(図3中の「大」という表示)。露光量を多くすることにより小さい画素値(シャドー部)の情報が適正露光量で取得される。また、HDR合成画像130の画素値が中間のエリアは適正露光画像153から生成される(図3中の「適正」という表示)。更に、HDR合成画像130の画素値が大きいエリアは小露光画像154から生成される(図3中の「小」という表示)。露光量を少なくすることにより大きい画素値(ハイライト部)の情報が適正露光量で取得される。
図6は、図2の画像生成装置100が実行する画像生成処理の例を示すフローチャートである。以下の説明においては、図2の各ブロックを随時参照する。
まず、入力受付部103が、前述したように、HDR合成画像130と最小EV設定値131(最小露光設定値)を入力して保持する(ステップS601)。
次に、グローバルトーンマッピングパラメータ算出部101が、以下のステップS602からS604の一連の処理として示される図2のパラメータ算出補間処理S1を実行する。
パラメータ算出補間処理S1においてまず、最小EV設定値131に基づいて、図3(a)と図4、及び図3(b)と図5で説明した処理を実行することにより、上限パラメータ140及び下限パラメータ141が設定される(ステップS602)。
続いて、入力受付部103が保持しているHDR合成画像130から、そのヒストグラム302c(図3(c)参照)が算出される(ステップS603)。
そして、ステップS603で算出されたヒストグラム302cと、ステップS602で設定された上限パラメータ140及び下限パラメータ141とから、グローバルトーンマッピングパラメータ142が算出される(ステップS604)。このグローバルトーンマッピングパラメータ142は、図3(c)のトーンマッピングカーブ301cに対応する。
次に、直列トーンマッピング処理部102が、ステップS604で算出されたグローバルトーンマッピングパラメータ142に基づき、図2のグローバルトーンマッピング処理S2を実行することで、図2の中間出力画像121を出力する(ステップS605)。ここでは前述したように、記憶処理部104から読み込んだグローバルトーンマッピングパラメータ142のLUTにより、HDR合成画像130の各第1の画素値が中間出力画像121の各第2の画素値にマッピングされる。
最後に、直列トーンマッピング処理部102が、上記中間出力画像121に対して、ローカルトーンマッピング処理S3を実行することで、図2の最終的な出力画像143を出力する(ステップS606)。ここでは前述したように、中間出力画像121に対して、ヒストグラムの偏りが小さい傾向に対して、エッジ部分の情報を保存しながら、適切なトーンマッピングが実行される。例えば前述した特許文献2に記載の処理を採用することができる。具体的には、中間出力画像121中の画素(以下「対象画素」と記載)毎に、対象画素のレベル値とのレベル差が大きく異なる周辺画素以外の周辺画素に基づき対象画素にローパスフィルタを適用して平滑化画像が生成され、中間出力画像121の低周波成分とされる。次に、この平滑化画像と中間出力画像121との差分画像が生成され、中間出力画像121の高周波成分とされる。そして、上記低周波成分である平滑化画像に対してダイナミックレンジが圧縮される。このダイナミックレンジが圧縮された平滑化画像と上記差分画像とが合成されて出力画像143が生成される。
ステップS606で生成された最終的な出力画像143は、記憶処理部104に保持される。その後、画像生成装置100は、図6のフローチャートで示される画像生成処理を終了する。記憶処理部104に記憶された出力画像143は、適切なタイミングで、ディスプレイやプリンタに出力される。
図7は、図6のステップS604のグローバルトーンマッピングパラメータ算出処理の詳細例を示すフローチャートである。
まず、図6のステップS602で設定された上限パラメータ140のゲインの上限値のもとで、図3(a)で説明した、中間出力画像121の最大画素値Rを生成するHDR合成画像130の画素値をMinRが設定される(ステップS701)。以下、このMinRを、図6のステップS603で算出されたHDR合成画像130のヒストグラム302c(図3(c)参照)における、探索範囲下限値MinRと呼ぶ。
次に、HDR合成画像130のヒストグラム302cの上位側(最大画素値=Rの側)から下位側(最小画素値=0の側)に向かって、HDR画素値(横軸)上で、ハイライトポイント画素値HL(図3(c)参照)が探索される(ステップS702)。このハイライトポイント画素値HLは例えば、図3(c)のヒストグラム302cで、HDR合成画像130の全画素数の例えば0.1%の累積画素数(所定の閾値)より小さくならない度数(図3(c)の縦軸の値)を有する最も大きな画素値として定義される。
ただし、ハイライトポイント画素値HLが探索範囲下限値MinRよりも小さくなった場合には、ハイライトポイント画素値HLの値は探索範囲下限値MinRの値に設定される。
次に、下記の(1)式で示される演算により、ブレンド係数b(0≦b≦1)が算出される(ステップS703)。
b=(HL−MinR)/(R−MinR) ・・・(1)
ここで、ハイライトポイント画素値HLは、HL=MinRからHL=Rまでの値を取り得る。従って、(1)の演算で算出されるブレンド係数bの値は、(MinR−MinR)/(R−MinR)=0から、(R−MinR)/(R−MinR)=1までの値を取り得る。
続いて、下記の(2)式で示される演算により、基準ゲイン係数gが算出される(ステップS704)。
g=R/HL ・・・(2)
上記基準ゲイン係数gは、図3(c)のトーンマッピングカーブ301cが、HDR合成画像130中のハイライトポイント画素値HLを中間出力画像121中の最大画素値=Rにマッピングすべきであることを意味する。ここで、ハイライトポイント画素値HLは、HL=MinRからHL=Rまでの値を取り得る。従って、(2)の演算で算出される基準ゲイン係数gの値は、R/MinR=上限パラメータ140のゲインの上限値から、R/R=1までの値を取り得る。
そして、ステップS703で算出されたブレンド係数bを用いて、下記(3)式で示される演算により、ステップS704で算出された基準ゲイン係数gと、下限パラメータ141のLUTの出力値であるMinG(図5(c)参照)が、補間演算される。この補間演算の結果として、グローバルトーンマッピングパラメータ142のゲイン値である最終ゲイン値fgが算出される(以上、ステップS705)。
fg(i)=g×((MinG(i)−1)×b+1) ・・・(3)
その後、図7のフローチャートで示される図6のステップS604のグローバルトーンマッピングパラメータ算出処理が終了する。
上記(3)式において、「MinG(i)」は、例えば図5(c)に示される下限パラメータ141のLUTにおいて、入力するHDR画素値を「i」(0≦i≦R)としたときに、そのHDR画素値iで参照されるLUTの出力ゲイン値である。また、「fg(i)」は、上記HDR画素値iに対応して(3)で示される演算により算出される最終ゲイン値である。
上記(1)、(2)、及び(3)式で示される演算において、ハイライトポイント画素値HLが探索範囲下限値MinRに等しい場合、(1)式で算出ブレンド係数bの値は0となる。また、(2)式で算出される基準ゲイン係数gの値は、g=R/MinRとなって、上限パラメータ140のゲインの上限値となる。従って、(3)式の演算結果は、下記(4)式のようになる。
fg(i)=R/MinR×((MinG(i)−1)×0+1)
=R/MinR ・・・(4)
上記(4)式の場合には、HDR合成画像130のヒストグラムは図3(a)に示されるヒストグラム302aに等しくなる。そして、グローバルトーンマッピングパラメータ142は、図3(a)の上限パラメータ140のトーンマッピングカーブ301aに等しくなる。
一方、上記(1)、(2)、及び(3)式で示される演算において、ハイライトポイント画素値HLが最大画素値=Rに等しい場合、(1)式で算出ブレンド係数bの値は1となる。また、(2)式で算出される基準ゲイン係数gの値は、g=R/R=1となる。従って、(3)式の演算結果は、下記(5)式のようになる。
fg(i)=1×((MinG(i)−1)×1+1)
=MinG(i) ・・・(5)
上記(5)式の場合には、HDR合成画像130のヒストグラムは図3(b)に示されるヒストグラム302bに等しくなる。そして、グローバルトーンマッピングパラメータ142は、図3(b)の下限パラメータ141のトーンマッピングカーブ301bに等しくなる。
更に、上記(1)、(2)、及び(3)式で示される演算で、ハイライトポイント画素値HLが探索範囲下限値MinRと最大画素値=Rの間にある場合は、図3(c)のトーンマッピングカーブ301cは、次のような形状になる。トーンマッピングカーブ301cは、上限パラメータ140のトーンマッピングカーブ301aと下限パラメータ141のトーンマッピングカーブ301bを補間する特性になる。かつ、トーンマッピングカーブ301cは、ハイライトポイント画素値HL付近において、HDR画素値を中間出力画素値の最大画素値=Rにマッピングさせる特性になる。また、前述したように、HDR画素値において、ハイライトポイント画素値HLを超えて最大画素値=Rまでは、ヒストグラム302cの形状的にHDR合成画像130中にはそのような画素値を有する画素は存在しない(又は無視できる)。このため、ハイライトポイント画素値HLを超えて最大画素値=Rまでの範囲では、トーンマッピングカーブ301cは意味をなさない。
以上説明したように、図2のグローバルトーンマッピングパラメータ算出部101で算出される上記グローバルトーンマッピングパラメータ142は、HDR合成処理時の最小EV設定値131が考慮されている。また、上記グローバルトーンマッピングパラメータ142は、HDR合成画像130のヒストグラムにおけるハイライトポイント画素値HLも考慮されている。このように、上記グローバルトーンマッピングパラメータ142は、HDR撮影の露光量の設定値とシーンのダイナミックレンジの状態に適切に対応したパラメータとなっている。このため、HDR合成画像130における輝度のヒストグラムにおいて比較的偏りが大きい傾向に対して、適正露光を維持しつつダイナミックレンジを補正できるLUTを実現することができ、このLUTにより安定したグローバルトーンマッピングが可能となる。
図8は、図2の画像生成装置100の実施形態を実現可能なコンピュータのハードウェアの例を示すブロック図である。図8に示されるコンピュータは、CPU(Central Processing Unit)801、メモリ802、入力装置803、出力装置804、補助情報記憶装置805、可搬型記録媒体809が挿入される媒体駆動装置806、及びネットワーク接続装置807を有する。これらの構成要素は、バス808により相互に接続されている。同図に示される構成は上記画像生成装置100を実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
メモリ802は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、画像生成処理に用いられるプログラム及びデータを格納する。
CPU(プロセッサ)801は例えば、メモリ802を利用し、図2の画像生成装置100に用いられる例えば図6及び図7のフローチャートの処理に対応するプログラムを実行することで、図2の画像生成装置100内に示される各処理ブロックとして動作する。
入力装置803は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置804は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。
補助情報記憶装置805は、例えば、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置、テープ装置、又は半導体記憶装置であり、例えば、図2に示される記憶処理部104として動作する。図2の画像生成装置100は、補助情報記憶装置805に図2の画像生成装置100に用いられる例えば図6及び図7のフローチャートの処理を実行するプログラム及びデータを格納しておき、それらをメモリ802にロードして使用することができる。
媒体駆動装置806は、可搬型記録媒体809を駆動し、その記録内容にアクセスする。可搬型記録媒体809は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体809は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体809に上述のプログラム及びデータを格納しておき、メモリ802にロードして使用することができる。
このように、上述のプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ802、補助情報記憶装置805、又は可搬型記録媒体809のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置807は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。図2の画像生成装置100は、上述のプログラム又はデータを外部の装置からネットワーク接続装置807を介して受信し、それらをメモリ802にロードして使用することができる。
なお、図2の画像生成装置100が図2の画像生成装置100の全ての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザからの指示又は情報を入力する必要がない場合は、入力装置803が省略されてもよい。可搬型記録媒体809又は通信ネットワークを利用しない場合は、媒体駆動装置806又はネットワーク接続装置807が省略されてもよい。
以上、開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができる。