(57)【特許請求の範囲】
【請求項１】
ディジタルカメラからの捕獲画像の輝度を調整するための方法であって、
捕獲パラメータを使用して基準露出値を計算するステップと、
周囲照明を特性化するパラメータの関数として実際の露出値を計算するステップと、
実際の画像飽和値を決定するために前記基準露出値と前記実際の露出値を比較するステップと、
輝度調整係数を決定するために、前記実際の画像飽和値と、前記画像を捕獲するために使用される画像センサの飽和値とを比較するステップと、
前記輝度調整係数に応答して露出過剰および露出不足のうちのいずれかを補償するために前記捕獲画像を調整するステップと
を含む方法。
【請求項２】
輝度調整係数を決定するために、前記実際の画像飽和値と、前記画像を捕獲するために使用される画像センサの飽和値とを比較するステップが、処理中における画像情報のクリッピング、あるいは前記画像を出力画像範囲に変換する際の画像情報のクリッピングを回避するために、ヘッドルーム調整パラメータを提供するステップを含む、請求項1に記載の方法。
【請求項３】
前記輝度調整係数に応答して露出過剰および露出不足のうちのいずれかを補償するために前記捕獲画像を調整するステップが、
前記実際の画像飽和値の方が前記画像を捕獲するために使用される画像センサの飽和値より小さい場合、前記輝度調整係数を使用して前記画像をスケールアップするステップと、
前記実際の画像飽和値の方が前記画像を捕獲するために使用される画像センサの飽和値より大きい場合、前記輝度調整係数を使用して前記画像をスケールダウンするステップと
を含む、請求項1に記載の方法。
【請求項４】
前記実際の露出値を計算するステップが、カメラのメータリングモードと整合するように前記実際の露出値を計算するステップを含む、請求項1に記載の方法。
【請求項５】
前記実際の露出値を計算するステップが、周囲照明を特性化する少なくとも1つのパラメータの関数として前記実際の露出値を計算するステップを含む、請求項1に記載の方法。
【請求項６】
周囲照明を特性化する少なくとも1つのパラメータの関数として前記実際の露出値を計算するステップが、捕獲画像中のブロックに対応する周囲照明を特性化する値の配列を評価するステップを含む、請求項5に記載の方法。
【請求項７】
周囲照明を特性化する値の配列を評価するステップが、重み付け平均のように前記実際の露出値を計算するために個々の周囲照明配列値に重みを関連付けるステップを含む、請求項6に記載の方法。
【請求項８】
個々の周囲照明配列値に重みを関連付けるステップが、平均周囲照明値を得るためにすべての重みを同じ値に設定するステップを含む、請求項7に記載の方法。
【請求項９】
個々の周囲照明配列値に重みを関連付けるステップが、カメラによって示されるか、あるいは捕獲画像データを使用して自動的に検出される焦点のブロックと関連付けられた重みだけを非ゼロ値に設定するステップを含む、請求項7に記載の方法。
【請求項１０】
個々の周囲照明配列値に重みを関連付けるステップが、関心のある1つまたは複数の画像ブロックと関連付けられた重みだけを非ゼロ値に設定するステップを含む、請求項7に記載の方法。
【請求項１１】
関心のある画像ブロックと関連付けられた重みだけを非ゼロ値に設定するステップが、スポットメータリングを介して決定される関心のある画像ブロックを非ゼロ値に設定するステップを含む、請求項10に記載の方法。
【請求項１２】
関心のある画像ブロックと関連付けられた重みだけを非ゼロ値に設定するステップが、カメラメニューの中から使用者によって選択される関心のある画像ブロックを非ゼロ値に設定するステップを含む、請求項10に記載の方法。
【請求項１３】
関心のある画像ブロックと関連付けられた重みだけを非ゼロ値に設定するステップが、PCインタフェースを介して使用者によって選択される関心のある画像ブロックを非ゼロ値に設定するステップを含む、請求項10に記載の方法。
【請求項１４】
個々の周囲照明配列値に重みを関連付けるステップが、関心のある画像ブロックからの距離の増加の関数として小さくなる重み値を設定するステップを含む、請求項7に記載の方法。
【請求項１５】
個々の周囲照明配列値に重みを関連付けるステップが、画像の中心からの距離の増加の関数として小さくなる重み値を設定するステップを含む、請求項7に記載の方法。
【請求項１６】
個々の周囲照明配列値に重みを関連付けるステップが、目標周囲照明値に近い値を有する画像ブロックと関連付けられた重みを設定するステップを含む、請求項7に記載の方法。
【請求項１７】
目標周囲照明値に近い値を有する画像ブロックと関連付けられた重みを設定するステップが、所定の目標周囲照明値に近い値を有する画像ブロックと関連付けられた重み値を設定するステップを含む、請求項16に記載の方法。
【請求項１８】
目標周囲照明値に近い値を有する画像ブロックと関連付けられた重みを設定するステップが、任意関数を使用して計算された値を有する画像ブロックと関連付けられた重み値を設定するステップを含む、請求項16に記載の方法。
【請求項１９】
前記任意関数が、獲得された周囲照明値のメジアン、最大-最小、平均、最大および最小の平均のうちの1つである、請求項18に記載の方法。
【請求項２０】
画像ブロックと関連付けられた重みを設定するステップが、
重み値および捕獲された周囲照明値のうちの一方と所定の閾値を比較するステップと、
前記所定の閾値未満になるこれらの重みまたは捕獲された周囲照明値をゼロに設定するステップと
を含む、請求項7に記載の方法。
【請求項２１】
目標周囲照明値に近い値を有する画像ブロックと関連付けられた重みを設定するステップが、前記目標周囲照明値からの差の増加の関数として減少する画像ブロックと関連付けられた重みを設定するステップを含む、請求項7に記載の方法。
【請求項２２】
目標周囲照明値に近い値を有する画像ブロックと関連付けられた重みを設定するステップが、前記目標周囲照明値からの差の増加の関数として小さくなる重み値と、関心のある画像ブロックからの距離の増加の関数として小さくなる重み値とを組み合わせるステップを含む、請求項7に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれている、2011年5月19日に出願した米国仮特許出願第61/487902号の利益を主張するものである。
【０００２】
本発明はディジタル画像の処理に関する。より詳細には、本発明は、捕獲パラメータおよび周囲照明に関する情報を使用してディジタルカメラ画像の輝度を調整するための方法に関する。
【背景技術】
【０００３】
カメラ捕獲画像の輝度を調整する最も一般的な方法は、調整すべき画像から抽出される画像統計量を使用することである。残念なことには、このような技法は、ダイナミックレンジが広い場面および照明が変化する場面などの複雑な場面の場合、うまくいかないことがある。さらに、ピクセルの数が極めて多く、また、関連するアルゴリズムが複雑であるため、このような技法は、速度が遅く、計算が複雑で、かつ、大容量メモリ要求事項を有していることも一般的である。したがって異なる手法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ディジタル画像における露出調整または輝度調整を、ディジタルカメラ捕獲パラメータおよび周囲照明に関する情報を使用して実施するための方法からなっている。
【課題を解決するための手段】
【０００５】
本発明の第1の態様によれば、ディジタルカメラからの捕獲画像の輝度を調整するための方法には、捕獲パラメータを使用して基準露出値を計算するステップと、周囲照明を特性化するパラメータの関数として実際の露出値を計算するステップが含まれている。実際の画像飽和値を決定するために基準露出値と実際の露出値が比較される。輝度調整係数を決定するために実際の画像飽和値と、画像を捕獲するために使用される画像センサの飽和値が比較され、かつ、輝度調整係数値に応答して露出過剰および露出不足のうちのいずれかを補償するために捕獲画像が調整される。この調整方法には、実際の画像飽和値の方が、画像を捕獲するために使用される画像センサの飽和値より小さい場合、輝度調整係数を使用して画像をスケールアップするステップと、実際の画像飽和値の方が、画像を捕獲するために使用される画像センサの飽和値より大きい場合、輝度調整係数を使用して画像をスケールダウンするステップが含まれている。
【図面の簡単な説明】
【０００６】
【図１】本発明の実例実施形態を示す流れ図である。
【図２】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【図３】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【図４】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【図５】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【図６】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【図７】実際の露出値を重み付けするための本発明の実例実施形態を示す流れ図である。
【発明を実施するための形態】
【０００７】
本発明についての以下の説明は単に実例による説明にすぎず、何ら本発明を制限するものではないことは当業者には認識されよう。このような当業者には本発明の他の実施形態が自ら容易に提案されよう。
【０００８】
本発明の方法によれば、ディジタルカメラによる場面のあり得る露出過剰または露出不足、例えば使用者によって入力される不適切な捕獲パラメータ設定、あるいはカメラの不適切な自動設定に起因する露出過剰または露出不足を補償するために、捕獲パラメータを使用して計算された露出値と、周囲照明を特性化するパラメータを使用して計算された露出値が比較される。本発明は、以下に示されている特定の例に限定されない。
【０００９】
最初に図1を参照すると、流れ図には、ディジタルカメラによる場面のあり得る露出過剰または露出不足を補償するための本発明の一態様による実例方法10が示されている。プロセスは参照符号12で開始される。参照符号14で、捕獲パラメータを使用して基準露出値が計算される。参照符号16で、周囲照明を特性化するパラメータの関数として実際の露出値が計算される。
【００１０】
参照符号18で、実際の画像飽和値を決定するために基準露出値と実際の露出値が比較される。参照符号20で、輝度調整係数を決定するために、実際の画像飽和値と、画像を捕獲するために使用される画像センサの飽和値が比較される。
【００１１】
参照符号22で、捕獲画像からの実際の画像飽和値が画像センサの飽和値と異なっているかどうか決定される。捕獲画像からの実際の画像飽和値の方が画像センサの飽和値より小さい場合、画像は露出不足であり、参照符号24で輝度調整係数を使用して捕獲画像がスケールアップされる。捕獲画像からの実際の画像飽和値の方が画像センサの飽和値より大きい場合、画像は露出過剰であり、参照符号26で輝度調整係数を使用して捕獲画像がスケールダウンされる。捕獲画像からの実際の画像飽和値と画像センサの飽和値が等しい場合、画像は適切に露出されたと見なされ、輝度調整する必要はない。プロセスは参照符号28で終了する。
【００１２】
基準露出値は、捕獲パラメータを使用して計算される。解決法の一例では、基準露出値EVrefは以下のように計算される。
EVref=log2(A2/t)-log2(I/100)                              (1)
Aは開口であり、tはシャッター速度であり、また、IはISO設定値である。
【００１３】
実際の露出値は、周囲照明を特性化するパラメータの関数として計算される。このようなパラメータは、通常、配列で配置され、個々の配列値は、捕獲画像中のブロックに対応している。実際の露出値計算は、評価的、スポット、中央領域および中央重み付け平均などのカメラメータリングモードと整合することができる。
【００１４】
代替解決法は、周囲照明配列値を任意の方法で関連付けることができる。上で言及した解決法の例は、個々の周囲照明配列値に重みを関連付けることによって一般化することができ、次のように、重み付け平均のように実際の露出値EVactを計算することができる。
【００１５】
【数１】
0005367123.tif 000002
【００１６】
ここで、Nは、利用可能な周囲照明値の総数であり、また、wiは、周囲照明値αiと関連付けられた重みである(一般的には非負の値を有している)。関数T(・)は、カメラ露出値(すなわち画像センサの応答)とαi値(すなわち周囲照明センサ応答)との間の関係を表しており、この関数は、通常、カメラ較正段で決定される。例えば関数T(・)は、T(x)=(x-48)/8+5として定義することができる。
【００１７】
次に図2を参照すると、重みを割り当てるための一般的な方法30が流れ図として示されている。プロセスは参照符号32で開始される。参照符号34で個々の周囲照明配列値に重みが関連付けられる。参照符号36で、周囲照明配列値およびそれらの重みから実際の露出値が計算される。参照符号38で処理が終了する。
【００１８】
図2に示されている例示的実施形態では、平均周囲照明値を得るためにすべての重みを同じ値に設定することができる。他の例示的実施形態では、(カメラによって示されるか、あるいは捕獲画像データを使用して自動的に検出される)焦点のブロックに対応するαi値と関連付けられた重みは、1または一般的には同じ非ゼロ値に設定され、一方、他のすべての重みは、ゼロまたは焦点のブロックに対応するαiと関連付けられた重みより小さい何らかの非ゼロ値に設定される。さらに他の例示的実施形態では、関心のある画像ブロック(例えばスポットメータリングを介して決定されるブロック、またはカメラメニューの中から、あるいはPCインタフェースを介して使用者によって選択されるブロック)と関連付けられた重みのみが非ゼロ値に設定される。
【００１９】
次に図3を参照すると、重みを割り当てるための方法40が流れ図として示されている。プロセスは参照符号42で開始される。参照符号44で、処理される周囲照明配列値が選択されたブロックに存在しているかどうか決定される。指摘したように、このブロックは、焦点のブロックであっても、スポットメータリングによって決定されるブロックであっても、カメラを介して、あるいはPCなどの外部インタフェースを介して使用者によって選択されるブロックであってもよい。
【００２０】
検討される周囲照明配列値が選択されたブロックに含まれている場合、参照符号46で、配列内の個々の周囲照明値に非ゼロの重みが関連付けられる。調査される周囲照明配列値が選択されたブロックに含まれていない場合、参照符号48で配列内の個々の周囲照明値に対する重みがゼロに設定される。参照符号50で実際の露出値が計算される。参照符号52でプロセスが終了する。
【００２１】
他の例示的実施形態では、(例えば中央領域および中央重み付け平均化モードに対応している)重み値は、センサの中心からの距離が長くなるにつれて小さくなる。図4の流れ図は、本発明のこの実施形態を実施する方法60を示したものである。プロセスは参照符号62で開始される。参照符号64で、処理される配列値が選択された中央ブロックに存在しているかどうか決定される。
【００２２】
調査される配列値がイメージャの中心と関連付けられたブロックに含まれている場合、参照符号66で、配列内の個々の周囲照明値に非ゼロの重みが関連付けられる。調査される配列値が、イメージャの中心と関連付けられたブロックに含まれていない場合、参照符号68で、このような周囲照明値の各々の重みが、イメージャの中心からの距離の関数として小さくなる値に設定される。減少関数は様々な形態を有することができ、その例には、それらに限定されないが、画像の中心からの距離に反比例する重みの形態、およびガウス関数を使用して得られる重みの形態がある。参照符号70で実際の露出値が計算される。参照符号72でプロセスが終了する。
【００２３】
他の例示的実施形態では、重み値は、選択された関心のある画像ブロックからの距離が長くなるにつれて小さくなる。図5の流れ図は、本発明のこの実施形態を実施する方法80を示したものである。プロセスは参照符号82で開始される。参照符号84で、処理される配列値が選択された関心のあるブロックに存在しているかどうか決定される。
【００２４】
調査される配列値が、選択されたブロックで画像の部分と関連付けられたブロックに含まれている場合、参照符号86で、配列内の個々の周囲照明値に重みが関連付けられる。調査される配列値が、選択されたブロックで画像の部分と関連付けられたブロックに含まれていない場合、参照符号88で、このような周囲照明値の各々の重みが、選択されたブロックからの距離の関数として小さくなる値に設定される。減少関数は様々な形態を有することができ、その例には、それらに限定されないが、選択されたブロックの中心からの距離に反比例する重みの形態、ガウス関数を使用して得られる重みの形態、および様々な閾値化関数を使用して得られる重みの形態がある。参照符号90で実際の露出値が計算される。参照符号92でプロセスが終了する。
【００２５】
さらに他の例示的実施形態では、例えば予め決定されているか、あるいは獲得された周囲照明値の任意関数(例えばメジアン、最大、最小、最大および最小の平均、等々)を使用して計算されるかのいずれかである目標周囲照明値に近いサンプルに1つまたは複数の非ゼロ重みが関連付けられる。
【００２６】
図6の流れ図は、本発明のこの実施形態を実施する方法100を示したものである。プロセスは参照符号102で開始される。参照符号104で目標周囲照明値が設定される。目標周囲照明値は、予め決定されているか、あるいは上で言及した任意関数を使用して計算された値として設定することができる。参照符号106で、処理される配列値の値が目標周囲照明値に近いかどうか決定される(つまり目標周囲照明値の特定の範囲内であるかどうか決定され、この範囲は、目標周囲照明値の百分率として表され、あるいは目標周囲照明値からの差として規定される)。
【００２７】
調査される配列値の値が目標周囲照明値に近い値の場合、参照符号108で、配列内の個々の周囲照明値に重みが関連付けられる。調査される配列値の値が目標周囲照明値に近くない場合、参照符号110で、配列内のこれらの周囲照明値に対する重みがゼロに設定される。参照符号112で実際の露出値が計算される。参照符号114でプロセスが終了する。
【００２８】
さらに他の例では、所定の閾値化基準未満になるこれらの重みまたはαi値に対して、それらの重みをゼロに設定するために、重み値または捕獲されたαi値を所定の閾値と比較することができる。
【００２９】
図7の流れ図は、本発明のこの実施形態を実施する方法120を示したものである。プロセスは参照符号122で開始される。参照符号124で所定の閾値が設定される。参照符号126で、配列内の周囲照明値毎に初期重み値が設定される。初期重みは、本明細書において開示されている関数などの任意の関数によって設定することができる。
【００３０】
参照符号128で、初期設定重みが所定の重み閾値より大きいかどうか決定される。参照符号130で、所定の重み閾値より大きい初期設定重みを有する配列内のすべての周囲照明値に対して、その重み値が初期設定値に設定される。参照符号132で、所定の重み閾値より小さい初期設定重みを有する配列内のすべての周囲照明値に対して、その重み値がゼロに設定される。参照符号134で実際の露出値が計算される。参照符号136でプロセスが終了する。
【００３１】
本発明は、重みを設定するための様々な方法を組み合わせることができることに留意されたい。例えば、重みは、目標周囲照明値からの絶対差の減少関数として表現することができる。減少関数は異なる形態を有することができ、その例には、それらに限定されないが、目標周囲値からの周囲照明配列値の絶対距離または二乗距離に反比例する重みの形態、ガウス関数を使用して得られる重みの形態、および様々な閾値化関数を使用して得られる重みの形態がある。また、選択された関心のあるブロックからのこれらの重みと関連付けられたブロックの距離の関数として誘導される重みと、これらの重みと関連付けられた周囲照明配列値と目標周囲照明値との間の差の関数として誘導される重みとを組み合わせることも可能である。
【００３２】
基準露出値EVrefおよび実際の基準値EVactの両方が決定されると、本発明による方法は、EVrefとEVactを比較し、実際の画像飽和値Satを計算することによって露出不足または露出過剰のレベルを決定する。任意関数f(・)を使用して、以下のようにこのタスクを実施することができる。
Sat=f(EVref,EVact,β)                              (3)
ここで、βは画像センサ飽和値を表しており、例えば12ビットアナログ-ディジタル変換器と共に動作するセンサの場合、4095である。高度な解決法によれば、次のように定義することができる。
Sat=f(EVref,EVact,β,p1,p2,...)                              (4)
ここで、p1,p2,...は、最適露出からの逸脱を示す捕獲パラメータ、フラッシュパラメータ、等々などの追加捕獲パラメータまたは所定のパラメータである。
【００３３】
一例では、実際の画像飽和値は次のように計算することができる。
Sat=2(EVref-EVact)signβ                              (5)
ここで、sign項は、較正中に1または-1に設定されるパラメータを表している。
【００３４】
他の例では、実際の画像飽和値は次のように計算することができる。
【００３５】
【数２】
0005367123.tif 000003
【００３６】
さらに他の例では、実際の画像飽和値は次のように計算することができる。
【００３７】
【数３】
0005367123.tif 000004
【００３８】
ここで、Eは、最適露出からの露出逸脱(例えば画像捕獲プロセスの間にカメラによって決定される)を表しており、HおよびLは、調整可能パラメータまたは所定のパラメータである。
【００３９】
解決法の他の例では、実際の画像飽和値Satは次のように計算することができる。
Sat=β  (EVref-EVact)sign>Δの場合                    (8)
一方、さらに他の例では、
Sat=β  (EVref-EVact)sign>ΔかつEVact<ηの場合          (9)
ここで、Δおよびηは所定のパラメータである。
【００４０】
実際の画像飽和値Satが決定されると、あり得る露出過剰または露出不足を補償するために捕獲画像を調整することができる。
【００４１】
最も単純な形態では、実際の画像飽和値Satと画像センサ飽和値βの比率を使用して画像をスケール化しなければならない。これは、画像を出力範囲にマッピングする前に画像範囲をスケール化するのに類似している。Sat>βの場合、画像は露出過剰であり、処理中における画像情報のクリッピング、あるいは画像を出力画像範囲に変換する際の画像情報のクリッピングを回避するためには、画像クリッピングポイント(通常、デフォルトによってβに設定されている)をSat/β(あるいはγSat/β、γはヘッドルーム調整パラメータである)だけスケールアップしなければならない。Sat<βの場合、画像は露出不足であり、画像が暗くなりすぎるのを回避するためには、画像クリッピングポイントをSat/β(あるいはγSat/β)だけスケールダウンしなければならない。
【００４２】
もっと高度な解決法の場合、SatまたはγSatを画像クリッピングポイントとして、あるいはガンマ補正および/またはトーンカーブマッピングを実施するために使用されるルックアップテーブルの最大入力値として使用することができる。クリッピングは、img=min(img,Sat)またはimg=min(img,γSat)として実施することができることに留意されたい。imgは、露出過剰または露出不足を調整または補償すべき画像を表している。
【００４３】
さらに他の例では、最適決定露出で最終画像を取得する前に、Satを使用してカメラ捕獲パラメータを調整することも可能である。
【００４４】
本発明の例示的実施形態についての以上の説明では、本発明の様々な特徴は、開示を簡潔にするために、また、本発明の様々な態様のうちの1つまたは複数の理解を促進するために、場合によっては単一の実施形態、図またはその説明の中で1つにまとめられていることを理解されたい。本発明の態様の本質は、上で開示した単一の実施形態のすべての特徴にあるのではなく、また、本明細書において説明されている個々の実施形態は、本発明の複数の特徴を含むことができる。
【００４５】
以上、本発明の実施形態および用途について、図に示し、かつ、説明したが、本明細書における本発明の概念から逸脱することなく、上で言及した変形形態よりももっと多くの変更態様が可能であることは当業者には明らかであろう。したがって、特許請求の範囲の精神を除き、本発明を限定してはならない。
【符号の説明】
【００４６】
10  ディジタルカメラによる場面のあり得る露出過剰または露出不足を補償するための本発明の一態様による方法
30  重みを割り当てるための一般的な方法
40  重みを割り当てるための方法
60  センサの中心からの距離が長くなるにつれて重み値が小さくなる実施形態を実施する方法
80  選択された関心のある画像ブロックからの距離が長くなるにつれて重み値が小さくなる実施形態を実施する方法
100  目標周囲照明値に近いサンプルに1つまたは複数の非ゼロ重みを関連付ける実施形態を実施する方法
120  重み値または捕獲されたαi値を所定の閾値と比較する実施形態を実施する方法
【図１】
0005367123.tif 000005
【図２】
0005367123.tif 000006
【図３】
0005367123.tif 000007
【図４】
0005367123.tif 000008
【図５】
0005367123.tif 000009
【図６】
0005367123.tif 000010
【図７】
0005367123.tif 000011