(57)【特許請求の範囲】
【請求項１】
画像フレームのコントラストを改善するための装置であって、
複数の画素を有する画像のヒストグラム表現を決定するための手段であって、各画素が輝度値の範囲内の輝度値を有し、前記ヒストグラムが、輝度値の前記範囲内の輝度値ごとの輝度値を有する前記画像の画素の数を含む、手段と、
前記画像の前記ヒストグラムの輝度値の前記範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するための手段であって、各マーカーが関連付けられるブレンド係数を有する、手段と、
少なくとも1つのマーカーブレンド係数に基づいて、前記画像の画素ごとに画素ブレンド係数を決定するための手段と、
画素ごとに最初の平坦化画素出力値を決定するための手段と、
前記画像の画素ごとに最終の平坦化画素出力値を計算するための手段であって、画素ごとの前記最終の平坦化画素出力値が、その画素の前記画素ブレンド係数、その画素の前記最初の平坦化画素出力値、およびその画素の元の画素値に基づく、手段と
を備え、
特定の画素について、前記画素ブレンド係数が、2つの隣接するマーカーの前記ブレンド係数を補間することに基づく、装置。
【請求項２】
撮像センサを備える撮像デバイスをさらに備える、請求項1に記載の装置。
【請求項３】
制御モジュールをさらに備え、
前記制御モジュールが、モバイルデバイス用のカメラアプリケーションの構成要素である、請求項1に記載の装置。
【請求項４】
前記マーカーが輝度値の前記範囲にわたって均等に離間されている、請求項1に記載の装置。
【請求項５】
前記制御モジュールが、画素ごとに最初の平坦化画素出力値を取得するために、前記画像の画素ごとにコントラストリミテッドヒストグラム平坦化を実行するようにさらに構成される、請求項3に記載の装置。
【請求項６】
前記制御モジュールが、画素ごとの前記最終の平坦化画素出力値にランダムノイズ値を追加するようにさらに構成される、請求項3に記載の装置。
【請求項７】
前記制御モジュールが、前記最終の平坦化画素出力値に基づいて、修正された画像を出力するようにさらに構成される、請求項3に記載の装置。
【請求項８】
輝度値の範囲の低輝度値領域で定義されたブレンド係数が、前記ヒストグラムの高輝度値領域で定義された前記ブレンド係数よりも高い重みを有する、請求項1に記載の装置。
【請求項９】
マーカーごとの前記ブレンド係数が、周囲光レベルに少なくとも部分的に基づく、請求項1に記載の装置。
【請求項１０】
画像フレームのコントラストを改善するための方法であって、
複数の画素を有する画像のヒストグラム表現を決定するステップであって、各画素が輝度値の範囲内の輝度値を有し、前記ヒストグラムが、輝度値の前記範囲内の輝度値ごとの輝度値を有する前記画像の画素の数を含むステップと、
前記画像の前記ヒストグラムの輝度値の前記範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップであって、各マーカーが関連付けられるブレンド係数を有するステップと、
少なくとも1つのマーカーブレンド係数に基づいて、前記画像の画素ごとに画素ブレンド係数を決定するステップと、
画素ごとに最初の平坦化画素出力値を決定するステップと、
前記画像の画素ごとに最終の平坦化画素出力値を計算するステップであって、画素ごとの前記最終の平坦化画素出力値が、その画素の前記画素ブレンド係数、その画素の前記最初の平坦化画素出力値、およびその画素の元の画素値に基づくステップと
を備え、
特定の画素について、前記画素ブレンド係数が、2つの隣接するマーカーの前記ブレンド係数を補間することに基づく、方法。
【請求項１１】
前記マーカーが輝度値の前記範囲に沿って均等に離間されている、請求項10に記載の方法。
【請求項１２】
前記方法が、画素ごとに最初の平坦化画素出力値を取得するために、前記画像の画素ごとにコントラストリミテッドヒストグラム平坦化を実行するステップをさらに備える、および/または、
前記方法が、画素ごとの前記最終の平坦化画素出力値にランダムノイズ値を追加するために、ランダムノイズ係数を追加するステップをさらに備える、および/または、
前記方法が、前記最終の平坦化画素出力値に基づいて、修正された画像を出力するステップをさらに備える、および/または、
前記画像の前記ヒストグラム表現の輝度値の前記範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップが、周囲光レベルによって少なくとも部分的に決定される、および/または、
マーカーごとにブレンド係数を決定するステップが、周囲光レベルによって少なくとも部分的に決定される、請求項10に記載の方法。
【請求項１３】
実行されると、請求項10から12のいずれか一項に記載の方法を実行する命令を記憶するコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示されるシステムおよび方法は、一般に画像およびビデオのコントラスト強調に関する。
【背景技術】
【０００２】
コントラスト強調は、典型的には、画像のより暗い部分で発見される詳細を強調することによって、画像およびビデオを「より良く」見えるように、または閲覧者にとってより満足のいくものになるようにするために使用される。コントラスト強調のための方法は、非常に単純で非コンテンツ適応型のソリューション(たとえば、輝度伸張(Luma Stretch)、ガンマ曲線)から、非常に複雑なソリューション(真の局所的な方法、たとえば、大規模なアンシャープマスキング、またはウィンドウベースのヒストグラム平坦化)に及ぶ。しかしながら、画像の輝度値(Intensity Value)がすでに全輝度範囲に及ぶ場合、これらの方式のうちのいくつかは有効ではない場合がある。これらの方法のうちのいくつかはまた、画像の大きな領域における明度シフトを引き起こす可能性があり、それは望ましくない。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示のシステム、方法、およびデバイスは、それぞれいくつかの革新的な態様を有するが、それらのうちのいずれも、本明細書に開示の所望の属性を単独で担わない。本明細書に記載の技術革新、態様、および特徴の組合せは、システム、方法、およびデバイスの様々な実施形態に組み込まれてよく、そのような組合せは、本明細書に記載の実施形態の例によって限定されるものではない。
【０００４】
本明細書に記載の実施形態および技術革新は、画像またはビデオの局所的な強調を組み込むために、電子デバイスのプロセッサで実行され得るシステムおよび方法に関する。局所的なコントラスト強調方法は、広い範囲の制御を有し、既存のハードウェアまたはソフトウェアに実装され得ることが好ましい。しかしながら、いくつかの実施形態では、特別に設計されたハードウェアおよびソフトウェアは、そのようなプロセスの速度または効率を改善し得る。いくつかの実施形態では、周囲光レベルに基づいてコントラスト強調と太陽光可視性モードとの間を動的に切り替えることによって、太陽光の下で見られた時のモバイルデバイスディスプレイの可視性を改善するために同様のアルゴリズムが使用され得る。
【０００５】
いくつかの実施形態では、ヒストグラム平坦化アルゴリズムを適用する前に入力画像のヒストグラムを修正するために、コントラストリミテッドヒストグラム平坦化(Contrast Limited Histogram Equalization)が実行される。
【０００６】
一態様は、画像フレームのコントラストを改善するためのシステムに関する。本システムは、複数の画素を有する画像のヒストグラム表現を決定することであって、各画素が輝度値の範囲内の輝度値を有し、ヒストグラムが、輝度値の範囲内の輝度値ごとの輝度値を有する画像の画素の数を含む、決定することと、画像のヒストグラムの輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義することであって、各マーカーが関連付けられるブレンド係数を有する、定義することと、少なくとも1つのマーカーブレンド係数に基づいて、画像の画素ごとに画素ブレンド係数を決定することと、画素ごとに最初の平坦化画素出力値を決定することと、画像の画素ごとに最終の平坦化画素出力値を計算することであって、画素ごとの最終の平坦化画素出力値が、その画素の画素ブレンド係数、その画素の最初の平坦化画素出力値、およびその画素の元の画素値に基づく、計算することとを行うように構成された制御モジュールを含む。本システムは、撮像センサを備える撮像デバイスをさらに含み得る。いくつかの実施形態では、制御モジュールは、モバイルデバイス用のカメラアプリケーションの構成要素である。いくつかの実施形態では、マーカーは輝度値の範囲にわたって均等に離間されている。いくつかの実施形態では、特定の画素について、画素ブレンド係数は、2つの隣接するマーカーのブレンド係数を補間するステップに基づく。いくつかの実施形態では、制御モジュールは、画素ごとに最初の平坦化画素出力値を取得するために、画像の画素ごとにコントラストリミテッドヒストグラム平坦化を実行するようにさらに構成される。いくつかの実施形態では、制御モジュールは、画素ごとの最終の平坦化画素出力値にランダムノイズ値を追加するようにさらに構成される。いくつかの実施形態では、制御モジュールは、最終の平坦化画素出力値に基づいて修正された画像を出力するようにさらに構成される。いくつかの実施形態では、輝度値の範囲の低輝度値領域で定義されたブレンド係数は、ヒストグラムの高輝度値領域で定義されたブレンド係数よりも高い重みを有する。いくつかの実施形態では、マーカーごとのブレンド係数は、周囲光レベルに少なくとも部分的に基づく。
【０００７】
別の態様では、画像フレームのコントラストを改善するための方法は、複数の画素を有する画像のヒストグラム表現を決定するステップであって、各画素が輝度値の範囲内の輝度値を有し、ヒストグラムが、輝度値の範囲内の輝度値ごとの輝度値を有する画像の画素の数を含むステップと、画像のヒストグラムの輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップであって、各マーカーが関連付けられるブレンド係数を有するステップと、少なくとも1つのマーカーブレンド係数に基づいて、画像の画素ごとに画素ブレンド係数を決定するステップと、画素ごとに最初の平坦化画素出力値を決定するステップと、画像の画素ごとに最終の平坦化画素出力値を計算するステップであって、画素ごとの最終の平坦化画素出力値が、その画素の画素ブレンド係数、その画素の最初の平坦化画素出力値、およびその画素の元の画素値に基づくステップとを含む。いくつかの実施形態では、マーカーは輝度値の範囲に沿って均等に離間されている。いくつかの実施形態では、特定の画素について、画素ブレンド係数は、2つの隣接するマーカーのブレンド係数を補間するステップに基づく。いくつかの実施形態では、本方法は、画素ごとに最初の平坦化画素出力値を取得するために、画像の画素ごとにコントラストリミテッドヒストグラム平坦化を実行するステップをさらに含む。いくつかの実施形態では、本方法は、画素ごとの最終の平坦化画素出力値にランダムノイズ値を追加するために、ランダムノイズ係数を追加するステップをさらに含む。いくつかの実施形態では、本方法は、最終の平坦化画素出力値に基づいて修正された画像を出力するステップをさらに含む。いくつかの実施形態では、画像のヒストグラム表現の輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップは、周囲光レベルによって少なくとも部分的に決定される。いくつかの実施形態では、マーカーごとにブレンド係数を決定するステップは、周囲光レベルによって少なくとも部分的に決定される。
【０００８】
さらに別の態様では、画像フレームのコントラストを改善するための装置は、複数の画素を有する画像のヒストグラム表現を決定するための手段であって、各画素が輝度値の範囲内の輝度値を有し、ヒストグラムが、輝度値の範囲内の輝度値ごとの輝度値を有する画像の画素の数を含む手段と、画像のヒストグラムの輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するための手段であって、各マーカーが関連付けられるブレンド係数を有する手段と、少なくとも1つのマーカーブレンド係数に基づいて、画像の画素ごとに画素ブレンド係数を決定するための手段と、画素ごとに最初の平坦化画素出力値を決定するための手段と、画像の画素ごとに最終の平坦化画素出力値を計算するための手段であって、画素ごとの最終の平坦化画素出力値が、その画素の画素ブレンド係数、その画素の最初の平坦化画素出力値、およびその画素の元の画素値に基づく手段とを含む。
【０００９】
別の態様では、非一時的コンピュータ可読媒体は、実行されると、少なくとも1つの物理的コンピュータプロセッサに、画像フレームのコントラストを改善するための方法を実行させる命令を記憶する。本方法は、複数の画素を有する画像のヒストグラム表現を決定するステップであって、各画素が輝度値の範囲内の輝度値を有し、ヒストグラムが、輝度値の範囲内の輝度値ごとの輝度値を有する画像の画素の数を含むステップと、画像のヒストグラム表現の輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップであって、各マーカーが関連付けられるブレンド係数を有するステップと、少なくとも1つのマーカーブレンド係数に基づいて、画像の画素ごとに画素ブレンド係数を決定するステップと、画素ごとに最初の平坦化画素出力値を決定するステップと、画像の画素ごとに最終の平坦化画素出力値を計算するステップであって、画素ごとの最終の平坦化画素出力値が、その画素の画素ブレンド係数、その画素の最初の平坦化画素出力値、およびその画素の元の画素値に基づくステップとを含む。いくつかの実施形態では、マーカーは輝度値の範囲にわたって均等に離間されている。いくつかの実施形態では、特定の画素について、画素ブレンド係数は、2つの隣接するマーカーのブレンド係数を補間するステップに基づく。いくつかの実施形態では、本方法は、画素ごとに最初の平坦化画素出力値を取得するために、画像の画素ごとにコントラストリミテッドヒストグラム平坦化を実行するステップを含む。いくつかの実施形態では、本方法は、画素ごとの最終の平坦化画素出力値にランダムノイズ値を追加するステップを含む。いくつかの実施形態では、本方法は、最終の平坦化画素出力値に基づいて修正された画像を出力するステップを含む。いくつかの実施形態では、画像のヒストグラム表現の輝度値の範囲の少なくとも一部にわたって離間されたマーカーのセットを定義するステップは、周囲光レベルによって少なくとも部分的に決定される。いくつかの実施形態では、マーカーごとにブレンド係数を決定するステップは、周囲光レベルによって少なくとも部分的に決定される。
【００１０】
開示された態様は、以下で、添付の図面に関連して説明され、開示される態様を示すために提供されるものであり、開示された態様を限定するものではない。同様の名称は、同様の要素を指す。
【図面の簡単な説明】
【００１１】
【図１Ａ】ヒストグラム平坦化技法(または、プロセス)を適用する前の画像の例を示す図である。
【図１Ｂ】図1Aの画像の画素輝度を示すヒストグラムである。
【図２Ａ】ヒストグラム平坦化技法を適用した後の画像の例を示す図である。
【図２Ｂ】図2Aの画像の画素輝度を示すヒストグラムである。
【図３】コントラスト強調プロセスの一部として画像ヒストグラムに適用されるクリッピングまたはしきい値化の例を示す図である。
【図４】画像の局所的な強調のためのいくつかの動作要素を実装するシステムを示すブロック図である。
【図５】画像の局所的な強調のためのプロセスの例を示すフローチャートである。
【図６】画像の局所的なコントラスト強調のためのプロセスを示す概略図である。
【図７】局所的なコントラスト強調プロセスの一部として、複数のマーカーの配置と、関連付けられるブレンド係数とを示す画像の画素輝度のヒストグラムである。
【図８】局所的なコントラスト強調プロセスのソフトウェア実装形態の例を示す概略図である。
【図９Ａ】局所的なコントラスト強調プロセスを適用する前の画像の例を示す図である。
【図９Ｂ】局所的なコントラスト強調プロセスを適用された後の図9Bの画像を示す図である。
【図１０】ディスプレイが太陽光で直接または間接に照射される時に、電子デバイスのディスプレイの可視性を改善するためのプロセス、すなわち電子デバイスの太陽光可視性改善のためのプロセスを示すフローチャートである。
【図１１】電子デバイスの太陽光可視性改善のためのプロセスの例を示す概略図である。
【発明を実施するための形態】
【００１２】
本明細書で使用される場合、「画像ヒストグラム」は、一般に、デジタル画像の画素データの色調分布を表すグラフ図であるヒストグラムのタイプを指す。ヒストグラムは、各色調値(「明度(Brightness)」または「輝度(Intensity)」値と呼ばれ得る)での画素の数を示す。特定の画像のためのそのようなヒストグラムの検査は、閲覧者に画像の全体の色調分布を示す。画像ヒストグラムはまた、画像が見られたとき、または画像を使用して処理している間に、白飛び(Blown-out Highlights)やブラックアウトシャドウ(Blacked-out Shadows)のために画像の詳細が失われた可能性があるかどうかを決定するために使用され得る。ヒストグラム平坦化は、画像のヒストグラムを使用して画像のコントラスト強調を実行するために、多くの画像処理パイプラインで使用され得る。ヒストグラム平坦化は、より低い局所的コントラストのエリアがより高いコントラストを得るように、画像の最も頻度の高い輝度値を広げることを含む、一種の強調プロセスである。言い換えれば、ヒストグラム平坦化は、画素数が少ないヒストグラムの領域を圧縮しながら、画素数が多いヒストグラムの領域を伸張することによって、コントラスト強調を実行する。ヒストグラムを伸張することは、これらの画素のダイナミックレンジが増加し、それによってコントラストを強調することを意味する。ヒストグラム平坦化は、定義によればコンテンツ適応型であり、入力-出力画素マッピングを計算するために入力画像の分布関数を使用する。しかしながら、ヒストグラム平坦化は、画像の望ましくない輪郭削り(contouring)を含む、画像に対する非常に大きな変化を引き起こす可能性がある。
【００１３】
図1Aおよび図1Bは、ヒストグラム平坦化を使用する例を示している。図1Aは、それぞれが画素の輝度(または、明度)を示す画素値を有する複数の画素を有する画像の例である。図1Bは、ヒストグラム平坦化プロセス(または、技法)が画像の画素データに適用される前の、図1Aに示される画像に対応する画像ヒストグラムを示している。画像ヒストグラムのこの例では、ヒストグラムは、x軸に沿った色調または輝度値(「ビン」と呼ばれることもある)、およびy軸に沿った各ビン内の画素の数(または、各色調または輝度)を示している。図1Bに示される画像ヒストグラムは、画像の画素値が表し得る輝度の全範囲に対して圧縮されて表示している。たとえば、図1Bは、120〜200の輝度範囲に分散された輝度(または、色調)を有するすべて(またはほとんどすべて)の画素値を示しており、全輝度範囲は0〜255である。
【００１４】
図2Aは、ヒストグラム平坦化技法が画像に適用された後の図1Aの画像を示している。図2Bは、図2Aに示される、修正された画像の結果として得られる画像ヒストグラムを示している。図2Bに示されるように、色調輝度値が0〜255の輝度の全範囲にわたってより分散されて、ヒストグラム平坦化が適用される前に比べて120〜200の輝度範囲(x軸に沿って)にあまり集中しないように、画像ヒストグラムは伸張したように見える。図2Aに示される、結果として得られる画像は、それに応じて元の画像(図1Aに示される)よりも広い範囲の色調を示すが、図2Bに示される輝度値に見られるように、画像の画素の輝度値におけるギャップのために、望ましくない「輪郭削り」も有する。すなわち、輝度値はいくつかの特定の値であり、特定の値は複数の輝度値によって分離される。図1Bおよび図2Bのそれぞれにおける黒線は、ヒストグラム値の累積合計を表す。この線はゼロの初期値を有し、その最終的な値は画像内の画素の総数である。図1Bにおいて、この線は非常に急速に上昇し、画像内の画素のほとんどが120〜200の輝度範囲に集中していることを示す。図2Bにおいて、この線ははるかに徐々に増加し、平坦化プロシージャの結果としてヒストグラムがより均等に広げられたことを意味する。
【００１５】
コントラスト強調は、テレビ、メディアプレーヤー、セットトップボックス、モバイル電話、タブレット、ラップトップなどの、多くの消費者向け電子デバイスの画質を改善するために使用され得る。単純なコントラスト強調は、輝度値の線形伸張を通じて画像のダイナミックレンジを増加させて、ガンマ曲線を適用することによって行われ得る。しかしながら、画素がすでに全輝度範囲に及ぶ場合、これらの方式は有効ではない場合がある。さらに、これらの方式はまた、画像またはビデオの大きな領域において望ましくない明度シフトを引き起こす可能性がある。以下で議論される方法およびシステムは、以前のコントラスト強調手法の欠点を回避する、画像およびビデオの局所的なコントラスト強調を含む、グローバルな処理ソリューションを提供する。
【００１６】
いくつかの実施形態では、局所的なコントラスト強調は、既存のコントラストリミテッドヒストグラム平坦化プロセス(CLHE: Contrast Limited Histogram Equalization)に導入され得、それ自体が、典型的なヒストグラム平坦化アルゴリズムの修正である。CLHEは、ヒストグラム平坦化(HE: Histogram Equalization)を適用する前に、入力画像のヒストグラムを修正する。CLHEにおいて、ピークを低減するためにヒストグラムがクリップされるように、元の画像のヒストグラムにしきい値が適用される。クリッピング段階で失われた画素は、色調分布の残りのビンに均等に分散され得る。次いで、通常の(すなわち、コントラストリミテッドではない)ヒストグラム平坦化が、修正されたヒストグラムを使用して画像に適用される。ヒストグラム修正は、元の画像ヒストグラムを均等化し、出力において輪郭削りを引き起こす可能性がある大きなピークを削除する。したがって、結果として得られる画像強調は、通常のヒストグラム平坦化を適用するほど強力ではない。局所的コントラスト強調は、典型的には、画像の大部分(または「ウィンドウ」)を個別に処理することによって行われる。しかしながら、そのような技法は計算集約的であり得、したがってかなりのハードウェアリソースを必要とする、または長いソフトウェア処理時間をもたらす場合がある。
【００１７】
図3は、コントラストリミテッドヒストグラム平坦化が適用され得る画像ヒストグラムの例を示している。左側に示される元の画像304のヒストグラムは、右側の修正されたヒストグラム306によって示されるように、ピークを低減させるためにしきい値によって制限(またはクランプ)されている。クランピング段階で失われた画素は、ヒストグラム306の残りのビンに均等に分散される。このプロセスは、矢印302によって表される。次いで、通常のヒストグラム平坦化が、修正されたヒストグラムに適用される。ヒストグラム修正は、ヒストグラムをスムーズにし、出力において輪郭削りを引き起こす可能性がある大きなピークを軽減するために役立つ。したがって、この複合プロセスから得られた強調は、ストレートヒストグラム平坦化プロセスから得られた強調ほど強力ではない。
【００１８】
本明細書で論じる局所的なコントラスト強調実施形態は、画像またはビデオデータにグローバルな変更を適用する代わりに、コントラストを局所的に修正または強調する。局所的なコントラスト強調は、コンテンツ適応型であり、画像の中間または明るい領域をシフトまたは強調することなしに画像またはビデオの暗い領域を強調することが好ましい。したがって、より良好な視覚効果は、中間または明るい領域よりも暗い領域を強調することによって達成されることが望ましい。本明細書で論じる実施形態は、画像またはビデオを(ヒストグラム平坦化様アルゴリズムに基づいて)グローバルに処理する効率的なコントラスト強調アルゴリズムを提供するが、画像またはビデオを局所的に強調する。これらの実施形態は、真の局所的なコントラスト強調アルゴリズムよりも、ソフトウェアまたはハードウェアのいずれかで実装するためにより単純であることが望ましい。
【００１９】
実施例は、フローチャート、フロー図、有限状態図、構造図、またはブロック図として示されるプロセスとして説明され得る点に留意されたい。フローチャートは、動作を順次プロセスとして説明し得るが、動作の多くは並列、または同時に実行され得、プロセスは繰り返され得る。また、動作の順序は並べ替えられてよい。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスがソフトウェアの関数に対応する場合、その終了は、呼出し関数またはメイン関数への関数のリターンに対応する。
【００２０】
実施形態は、システムオンチップ(SoC)、または外部ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組合せに実装され得る。当業者は、情報および信号が、様々な異なる技術および技法のいずれかを用いて表され得ることを理解するだろう。たとえば、上記の説明の全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁粒子、光場または光粒子、あるいはそれらの任意の組合せによって表され得る。
【００２１】
以下の説明では、実施例の完全な理解をもたらすために、具体的な詳細が与えられる。しかしながら、実施例がこれらの具体的な詳細なしに実施され得ることが当業者には理解されよう。たとえば、不必要な詳細で実施例を不明瞭にしないために、電気の構成要素/デバイスがブロック図で示される場合がある。他の事例では、実施例をさらに説明するために、そのような構成要素、他の構造および技法が詳細に示される場合がある。
【００２２】
《システム概要》
図4は、取得された画像またはビデオのコントラストを強調するように構成されたシステム100の一例を示している。図示された実施形態は限定することを意図するものではないが、いくつかの実施形態における特定の構成要素の例を示している。システム100は、図示された構成要素を明確にするために図示されていない他の機能のための様々な他の構成要素を含み得る。
【００２３】
システム100は、撮像デバイス110および電子ディスプレイ130を含み得る。電子ディスプレイ130の特定の実施形態は、たとえばLED、LCD、プラズマ、または投影スクリーンなどの任意のフラットパネルディスプレイ技術であり得る。電子ディスプレイ130は、ユーザに視覚的に表示するための情報を受信するためにプロセッサ120に結合され得る。そのような情報は、これに限定されないが、メモリ位置に記憶されたファイルの視覚的表現、プロセッサ120にインストールされたソフトウェアアプリケーション、ユーザインターフェース、およびネットワークアクセス可能コンテンツオブジェクトを含み得る。
【００２４】
撮像デバイス110は、1つの撮像センサ、または撮像センサの組合せを使用し得る。システム100は、撮像デバイス110に連結されたプロセッサ120をさらに含み得る。作業メモリ135、電子ディスプレイ130、およびプログラムメモリ140もまた、プロセッサ120と通信している。システム100は、モバイルデバイス、たとえば、タブレット、ラップトップコンピュータ、またはセルラ電話であり得る。他の実施形態では、システム100は、テレビまたはデスクトップコンピュータであり得る。
【００２５】
プロセッサ120は、汎用処理ユニットであってもよく、ハンドヘルド電子デバイスのための撮像アプリケーション用に特別に設計されたプロセッサであってもよい。図示されるように、プロセッサ120は、プログラムメモリ140および作業メモリ135に接続されており、またそれらとデータ通信している。いくつかの実施形態では、作業メモリ135は、プロセッサ120、たとえばキャッシュメモリに組み込まれ得る。作業メモリ135はまた、プロセッサ120とは別の、プロセッサ120に結合された構成要素、たとえば、1つまたは複数のRAMあるいはDRAM構成要素であり得る。言い換えれば、図4は、いくつかのモジュールを備えるメモリ構成要素140と、作業メモリを備える別個のメモリ135とを含む2つのメモリ構成要素を示しているが、当業者は、異なるメモリアーキテクチャを利用するいくつかの実施形態を認識するだろう。たとえば、ある設計は、メモリ140に含まれるモジュールを実装するプロセッサ命令の記憶のためにROMまたはスタティックRAMメモリを利用し得る。その場合、プロセッサ命令は、プロセッサによる実行を容易にするためにRAMにローディングされ得る。たとえば、作業メモリ135は、命令がプロセッサ120によって実行される前に作業メモリ135にローディングされる、RAMメモリであり得る。
【００２６】
図示される実施形態では、プログラムメモリ140は、画像撮影モジュール145、マーカー定義モジュール150、ブレンド係数計算モジュール155、コントラストリミテッドヒストグラム平坦化(CLHE)計算モジュール157、ブレンディングモジュール160、オペレーティングシステム165、およびユーザインターフェースモジュール170を記憶する。これらのモジュールは、様々な画像処理およびデバイス管理タスクを実行するようにプロセッサ120を構成する命令を含み得る。プログラムメモリ140は、たとえば非一時的記憶媒体などの、任意の適切なコンピュータ可読記憶媒体であり得る。作業メモリ135は、メモリ140のモジュール内に含まれるプロセッサ命令の作業セットを記憶するためにプロセッサ120によって使用され得る。代替的に、作業メモリ135はまた、撮像システム100の動作中に作成された動的データを記憶するために、プロセッサ120によって使用され得る。
【００２７】
上述のように、プロセッサ120は、メモリ140に記憶された複数のモジュールによって構成され得る。言い換えれば、プロセッサ120は、メモリ140内のモジュールに記憶された命令を実行し得る。画像撮影モジュール145は、撮像デバイスから画像を取得するようにプロセッサ120を構成する命令を含み得る。したがって、プロセッサ120は、画像撮影モジュール145、撮像デバイス110、および作業メモリ135とともに、画像センサデータを取得するための手段を表す。
【００２８】
依然として図4を参照すると、メモリ140はまた、マーカー定義モジュール150を含み得る。マーカー定義モジュール150は、以下にさらに詳細に説明するように、ブレンド係数または値に関連付けられる画像ヒストグラムの輝度範囲のマーカーのセットを定義するようにプロセッサ120を構成する命令を含み得る。マーカーおよびブレンド係数は、所望の強調のタイプに基づいてプログラミングされ得る。これらの数字のプログラミングは、ややヒューリスティックであり、経験および出力の視覚に基づく。典型的なマーカーの配置では、より多数のマーカーが、より強い強調が所望されるヒストグラムの領域に配置される。これらのマーカーはまた、それらに関連付けられるより高いブレンド係数を有するであろう。より弱い、またはより少ない強調が所望される他の領域では、より少ないマーカーが配置されてよく、これらのマーカーのブレンド係数はより低くてもよい。マーカーの数および配置はまた、ディスプレイのタイプ、ディスプレイの出力応答、強調の強さ(たとえば、低、中、高の設定など)、強調のモード(スポーツ、映画、ゲームなど)等に応じて調整され得る。したがって、プロセッサ120は、マーカー定義モジュール150および作業メモリ135とともに、画像ヒストグラムの輝度範囲のマーカーを定義するための手段を表す。
【００２９】
メモリ140はまた、ブレンド係数計算モジュール155を含み得る。ブレンド係数計算モジュール155は、以下で詳細に説明するように、画像の入力画素ごとにブレンド係数βを計算するようにプロセッサ120を構成する命令を含み得る。たとえば、プロセッサ120は、画像の入力画素ごとにブレンド係数βを計算し、ブレンド係数を作業メモリ135またはストレージデバイス125に記憶するように、ブレンド係数計算モジュール155によって命令され得る。一実施形態では、入力画素ごとのブレンド係数βは、入力画素と2つの隣接するマーカーとの間の距離を決定し、2つの隣接するマーカーのブレンド係数を補間するためにこの距離を使用することによって計算され得る。したがって、プロセッサ120は、マーカー定義モジュール150、ブレンド係数計算モジュール155、および作業メモリ135とともに、画像の入力画素ごとにブレンド係数を計算し、記憶するための手段を表す。
【００３０】
メモリ140はまた、コントラストリミテッドヒストグラム平坦化計算モジュール157を含み得る。図4に示されるコントラストリミテッドヒストグラム平坦化計算モジュール157は、コントラストリミテッドヒストグラム平坦化を画像ヒストグラムに適用することによって、入力画素yINごとにCLHE出力値yCLHEを計算するようにプロセッサ120を構成する命令を含み得る。したがって、プロセッサ120は、コントラストリミテッドヒストグラム平坦化計算モジュール157および作業メモリ135とともに、画像の入力画素ごとにCLHE出力値を生成するための手段を表す。
【００３１】
メモリ140はまた、ブレンディングモジュール160を含み得る。図4に示されるブレンディングモジュール160は、ブレンド係数β、入力画素値yIN、およびCLHE出力値yCLHEを使用して、画像の各画素の出力値を計算するようにプロセッサ120を構成する命令を含み得る。したがって、プロセッサ120は、マーカー定義モジュール150、ブレンド係数計算モジュール155、コントラストリミテッドヒストグラム平坦化計算モジュール157、ブレンディングモジュール160、および作業メモリ135とともに、画像の画素ごとに出力値を計算するための手段を表す。
【００３２】
メモリ140はまた、ユーザインターフェースモジュール170を含み得る。図4に示されるユーザインターフェースモジュール170は、ユーザがデバイスと相互作用することを可能にする、オンディスプレイオブジェクト(on-display objects)とソフト制御(soft control)との集合を提供するようにプロセッサ120を構成する命令を含み得る。ユーザインターフェースモジュール170はまた、アプリケーションがシステムの残りの部分と相互作用することを可能にする。オペレーティングシステム165はまた、システム100のメモリおよび処理リソースを管理するために、メモリ140内に存在し、プロセッサ120と動作し得る。たとえば、オペレーティングシステム165は、たとえば電子ディスプレイ130または撮像デバイス110のなどの、ハードウェアリソースを管理するためのデバイスドライバを含み得る。いくつかの実施形態では、マーカー定義モジュール150およびブレンド係数計算モジュール155に含まれる命令は、これらのハードウェアリソースと直接相互作用しない場合があるが、代わりにオペレーティングシステム165に位置する標準サブルーチンまたはAPIを通じて相互作用する。その場合、オペレーティングシステム165内の命令は、これらのハードウェア構成要素と直接相互作用し得る。
【００３３】
プロセッサ120は、データをストレージデバイス125に書き込む場合がある。ストレージデバイス125は従来のディスクドライブとして図示されているが、当業者は、複数の実施形態は、ディスクベースのストレージデバイス、またはメモリディスク、USBドライブ、フラッシュドライブ、遠隔に接続された記憶媒体、仮想ディスクドライバなどを含むいくつかの他のタイプの記憶媒体のいずれかを含み得ることを理解するだろう。
【００３４】
図4は、プロセッサ、撮像デバイス、電子ディスプレイ、およびメモリを含むために別個の構成要素を備えるデバイスを示しているが、当業者は、これらの別個の構成要素は、特定の設計目的を達成するために様々な方法で結合され得ることを認識するだろう。たとえば、代替実施形態では、メモリ構成要素は、コストを節約し性能を改善するためにプロセッサ構成要素と組み合わされ得る。
【００３５】
さらに、図4は、いくつかのモジュールを備えるメモリ構成要素140と、作業メモリを備える別個のメモリ135とを含む2つのメモリ構成要素を示しているが、当業者は、異なるメモリアーキテクチャを利用するいくつかの実施形態を認識するだろう。たとえば、ある設計は、メモリ140に含まれるモジュールを実装するプロセッサ命令の記憶のためにROMまたはスタティックRAMメモリを利用し得る。代替的に、プロセッサ命令は、撮像システム100に統合された、または外部デバイスポートを介して接続されたディスクストレージデバイスから、システム起動時に読み込まれ得る。その場合、プロセッサ命令は、プロセッサによる実行を容易にするためにRAMにローディングされ得る。たとえば、作業メモリ135は、命令がプロセッサ120によって実行される前に作業メモリ135にローディングされる、RAMメモリであり得る。
【００３６】
《方法概要》
本発明の実施形態は、グローバルに適用される画像またはビデオの局所的なコントラスト強調のためのプロセスに関する。実施例は、フローチャート、流れ図、有限状態図、構造図、またはブロック図として示されるプロセスとして説明され得る。フローチャートは、動作を順次プロセスとして説明し得るが、動作の多くは並列、または同時に実行され得、プロセスは繰り返され得る。また、動作の順序は並べ替えられてよい。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスがソフトウェアの関数に対応する場合、その終了は、呼出し関数またはメイン関数への関数のリターンに対応する。
【００３７】
図5は、図4に示されるモジュールのうちの1つまたは複数で実装され得る、画像またはビデオデータ上で局所的なコントラスト強調を実行するように電子デバイスを構成するためのプロセス500の実施形態の一例を示している。いくつかの例では、プロセス500は、プロセッサ、たとえばプロセッサ120(図4)上で実行されてもよく、メモリ140に記憶された、あるいは他のハードウェアまたはソフトウェアに組み込まれた、図4に示される他の構成要素上で実行されてもよい。
【００３８】
プロセス500は、開始ブロック502で開始し、ブロック504に移行し、プロセッサ、たとえばプロセッサ120が、元の画像ヒストグラムの輝度範囲でマーカーのセットを定義するように命令される。いくつかの実施形態では、輝度範囲で6〜8個のマーカーが定義され得る。画像ヒストグラムの輝度範囲にわたって均等に分散された7個のマーカーの一例が、図7に示されている。図7に示されるようないくつかの実施形態では、マーカーはヒストグラムの輝度範囲に沿って均等に離間される。他の実施形態では、マーカーはヒストグラムの輝度範囲に沿って均等に離間されない。マーカーは、図4に関連して上述したように配置および分散され得る。
【００３９】
次いで、プロセス500はブロック506に移行し、プロセッサは各マーカーをブレンド係数または値に関連付けるように命令される。図7に示されるように、ブレンド係数は、画像のより暗い領域がより重く重み付けされるように各マーカーに割り当てられ得る。これは、好ましくは、画像の暗い領域により大きい強調をもたらし、画像の中間から明るい領域は、わずかに強調されるか、まったく強調されないかのいずれかである。一旦ブレンド値が各マーカーに割り当てられると、図4に関連して上述したように、プロセス500はブロック508に移行する。
【００４０】
ブロック508で、プロセッサは、画像の元の画素ごとにブレンド係数βを計算するように命令される。たとえば、すべての入力画素yINについて、画素のいずれかの側にある2つの隣接するマーカーから画素までの距離を求め、2つの隣接するマーカーのブレンド値を使用して画素のブレンド係数を補間するためにこの距離を使用することによって、ブレンド係数βが計算され得る。
【００４１】
次に、プロセス500はブロック510に移行し、プロセッサは、コントラストリミテッドヒストグラム平坦化を画像ヒストグラムにグローバルに適用するように命令される。上述のように、コントラストリミテッドヒストグラム平坦化(CLHE)では、目立つことからピークを低減するために、元の入力画像のヒストグラムはしきい値化またはクランピングによって修正される。図3に示されるように、クランピング段階で失われた画素は、残りのビンに均等に分散される。一実施形態では、分散される必要がある画素の総数は、クランピングによって影響されないビンの数によって分割される。次いで、画素のこの平均数が、クランプされなかったすべてのヒストグラムビンに追加される。この再分散プロシージャは、修正されたヒストグラムを計算するために実行され、ノイズを導入する可能性を低減するために実際の画像に実行されないことが好ましい。これは、出力の不要な輪郭削りを低減し得る、よりスムーズなヒストグラムをもたらす。入力画像にCLHEを実行することは、各画素がCLHE値、yCLHEを有することをもたらす。次に、プロセス500はブロック512に移行し、プロセッサは各画素の出力値を計算するように命令される。いくつかの実施形態では、以下のように、各画素yOUTの出力値は、画素のブレンド係数β、画素の入力値yIN、およびCLHEプロセスによって計算される画素の値、yCLHEを使用して計算され得る。
yOUT=β*yCLHE+(1-β)*yIN       （式1）
【００４２】
式1に示されるように、入力値と平坦化値をブレンドすることによって各画素の出力値を計算した後、プロセス500はブロック514に移行し、プロセッサは、出力画像を構成する新しい画素値を出力するように命令される。次いで、プロセス500はブロック516に移行し、終了する。
【００４３】
そのヒストグラムに基づいてビデオのフレームを修正することは、そのヒストグラムを計算中にフレームが記憶されることを必要とする。フレームストレージは、典型的なビデオ/ディスプレイシステムにとって高価であるため、図5に示される局所的な強調プロセス500は、ヒストグラムは通常は2つの連続するフレーム間で著しく変化しないので、フレームN-1のヒストグラムを使用してフレームNを処理するために容易に修正され得る。本明細書に記載の局所的な強調プロセスは、HSVのV、YCbCrにおけるYなどのカラー画像の任意の輝度表現に適用され得る。
【００４４】
図6は、上述のプロセス500の1つのハードウェア実装形態600を図示している。図示されるように、画素ごとにブレンド係数βを計算するために、マーカーごとのマーカー値およびブレンド係数が使用される。ブレンド係数β、および元の画素値yINおよび各画素のコントラストリミテッドヒストグラム平坦化値yCLHEは、画素出力値yOUTを計算するためにブレンディング計算(式1)において使用される。ビデオのフレームなどの一連の画像を修正するためのプロセス500が、図6に示されるようなハードウェア実装形態において行われると、第1のメモリがフレームNのヒストグラムを累積する間、フレームNの画素を修正するためにフレームN-1の累積分布関数(CDF)を記憶するために第2のメモリが使用され得る。これらの2つのメモリは、各画像フレームのヒストグラムを組み立てるために交互に動作し得る。
【００４５】
図8は、上述のプロセス500の1つのソフトウェア実装形態800を図示している。プロセス500のソフトウェア支援実装形態の一実施形態では、図8に示されるように、各画像フレームNのヒストグラムは、フレームNとN+1との間の空白時間の間にソフトウェアによって読み出される。フレームN+1が表示される前に、ソフトウェアは、すべての入力画素を出力画素値にマッピングするルックアップテーブル(LUT)をプログラミングする。LUTは、図5に概説されているステップを実行することによって構成される。入力画像を使用する代わりに、ソフトウェアはすべての入力輝度値の出力(すなわち、8ビットシステムについて0〜255)を計算し、結果をLUTに記憶する。この出力画素値は、上述のようなプロセス500と計算されたヒストグラムとを使用して計算される。
【００４６】
画像に適用される、図5に関連して上述した局所的なコントラスト強調プロセスの適用の1つの結果は、図9Aおよび図9Bに示されている。図9Aは、元の入力画像を示している。図9Bは、プロセス500などの、局所的な強調を適用した後に結果として得られる画像を示している。強調された画像では、黒はより暗く、白はより白い。この例は、適度に明るい画像は輝度伸張アルゴリズムで処理された従来の画像と同様に扱われて、より暗いシーンは異なるように扱われることを示している。より暗いシーンでは、詳細を引き出すために暗い画素はより明るく作られ、より明るい画素はほとんど影響を受けていない。
【００４７】
《太陽光可視性の改善》
上述の局所的な強調プロセスで使用されるような画素処理はまた、太陽光の下にいる時にモバイル画面上のコンテンツの可視性を改善するために使用され得る。画素処理は、コンテンツに適応した画像のダイナミックレンジを増加させて、画像の暗い領域におけるコントラストを高めるために、ディスプレイのバックライトを増加させることとともに使用され得る。
【００４８】
上述の局所的な強調プロセス500と同様の処理が、ヒストグラムにより高いクリップ制限を適用し、画像の暗い領域のブレンド係数を変化させることによって、太陽光の下でのモバイルデバイス画面の可視性を改善するために使用され得る。処理がコントラスト強調(低い周囲光の中で)から太陽光可視性処理(高い周囲光の中で)にスムーズに変更できるように、局所的なコントラスト強調方法のパラメータは周囲光条件に基づき得る。いくつかの実施形態では、周囲光条件は、ヒストグラムの輝度範囲に沿ったマーカーの分散と、マーカーへのブレンド係数の割当てとを決定するために使用され得る。周囲光値がしきい値より高い場合、デバイスはおそらく明るい環境の屋外で使用されている。通常、画面の可視性は明るい環境においてはるかに低い。したがって、マーカーとブレンド係数とは、明るい環境に合わせるために再プログラミングされ得る。いくつかの実施形態では、あらかじめ定められた値の複数のセットがメモリに記憶されて、あらかじめ定められたセットのうちの1つが周囲光条件に基づいて選択される。
【００４９】
デバイスが太陽光の下での可視性改善モードで動作している場合、周囲光条件下で画面がより容易に見られることを可能にするために適用されるより強い強調のために、いくつかの画像上の輪郭削りが可視であり得る。コントラスト強調のために同様の明度レベルが離して伸張された時に輪郭削りが発生する。輪郭削りは、一般的に、空または海などの、画像の大きくてゆっくり変化する領域上で可視である。輪郭削りに寄与する要因は、量子化によるより少数の明度レベル、不正確な上流処理、および圧縮ノイズを含む。
【００５０】
しかしながら、輪郭削りは、以下で式2に示されるように、出力画素yOUTにランダムノイズを追加することによって太陽光の下での可視性改善モードで動作している時に低減され得る。
yout=β*yCLHE+(1-β)*yIN+εIN       （式2）
上式で、yCLHE、yIN、およびβが式1に関連して上述したように定義される。
【００５１】
いくつかの実施形態では、ランダムノイズ加算係数εINはノイズシグマσ(I)を使用するガウスノイズ発生器によって生成され得る。シグマは、典型的に、すべての画素について同じではなく、そうでない場合は画像全体にノイズが現れる。代わりに、シグマは画素輝度の関数である。いくつかの実施形態では、これらの画素はより輪郭削りになりやすいですので、シグマは高ヒストグラム値に正比例する(コントラストリミテッドヒストグラム平坦化ステップを実行した後で)。
【００５２】
一例では、シグマは以下のように計算され得る。
σ(I)=min(σbase, σIN*hist(I)/ClipLevel)       （式3）
上式で、
hist(I)=輝度Iでのヒストグラム値(クリッピング後)、
ClipLevel=最大ヒストグラム値、
σIN=入力シグマ値、および、
σbase=低ヒストグラム値を有する画素のベースシグマ値(全画素に小さなノイズフロアレベルを与えるために)。
【００５３】
図10は、図4に示されるモジュールのうちの1つまたは複数で実装され得る電子デバイスの画面の太陽光可視性強化を実行するように電子デバイスを構成するための、プロセス1000の一実施形態を示している。いくつかの例では、プロセス1000は、プロセッサ、たとえばプロセッサ120(図4)上で実行されてもよく、メモリ140に記憶された、あるいは他のハードウェアまたはソフトウェアに組み込まれた、図4に示される他の構成要素上で実行されてもよい。
【００５４】
プロセス1000は、開始ブロック1002で開始し、ブロック1004に移行し、プロセッサ、たとえばプロセッサ120は、元の画像ヒストグラムの輝度範囲でマーカーのセットを定義するように命令され得る。いくつかの実施形態では、輝度範囲で6〜8個のマーカーが定義され得る。上述のように、マーカーはヒストグラムの輝度範囲に沿って均等に離間され得るが、他の実施形態では、マーカーはヒストグラムの輝度範囲に沿って均等に離間されない場合がある。
【００５５】
次いで、プロセス1000はブロック1006に移行し、プロセッサは各マーカーをブレンド係数または値に関連付けるように命令され得る。図7に示されるように、ブレンド係数は、画像のより暗い領域がより重く重み付けされるように各マーカーに割り当てられ得る。これは、好ましくは、画像の暗い領域により大きい強調をもたらし、画像の中間から明るい領域は、わずかに強調されるか、まったく強調されないかのいずれかである。一旦ブレンド値が各マーカーに割り当てられると、プロセス1000はブロック1008に移行する。
【００５６】
ブロック1008で、プロセッサは、画像の元の画素ごとにブレンド係数βを計算するように命令され得る。たとえば、すべての入力画素yINについて、画素のいずれかの側にある2つの隣接するマーカーから画素までの距離を求めて、2つの隣接するマーカーのブレンド値を使用して画素のブレンド係数を補間するためにこの距離を使用することによって、ブレンド係数βが計算され得る。
【００５７】
次に、プロセス1000はブロック1010に移行し、プロセッサは、コントラストリミテッドヒストグラム平坦化を画像ヒストグラムにグローバルに適用するように命令され得る。上述のように、コントラストリミテッドヒストグラム平坦化(CLHE)では、目立つことからピークを低減するために、元の入力画像のヒストグラムはしきい値化またはクランピングによって修正される。図3に示されるように、クランピング段階で失われた画素は、残りのビンに均等に分散される。これは、出力の不要な輪郭削りを低減し得る、よりスムーズなヒストグラムをもたらす。入力画像にCLHEを実行することは、各画素がCLHE値、yCLHEを有することをもたらす。次に、プロセス1000はブロック1012に移行し、プロセッサはシグマσ(I)とランダムノイズ加算係数εINとを計算するように命令される。上述のように、シグマは高ヒストグラム値に正比例し(コントラストリミテッドヒストグラム平坦化ステップを実行した後で)、式3に従って計算され得る。一旦シグマが計算されると、ランダムノイズ加算係数εINはガウスノイズ発生器によって生成され得る。
【００５８】
ランダムノイズ加算係数を決定した後、プロセス1000はブロック1014に移行し、プロセッサは各画素の出力値を計算するように命令される。いくつかの実施形態では、ここで繰り返される式2のように、各画素の出力値は、画素のブレンド係数β、画素の入力値yIN、およびCLHEプロセスによって計算される画素の値、yCLHEを使用して計算され得る。
yOUT=β*yCLHE+(1-β)*yIN+εIN       （式2）
【００５９】
式1に示されるように、入力値と平坦化値をブレンドすることによって各画素の出力値を計算した後、プロセス1000はブロック1016に移行し、プロセッサは、出力画像を構成する新しい画素値を出力ように命令される。次いで、プロセス1000はブロック1018に移行し、終了する。
【００６０】
図11は、ハードウェア、またはソフトウェア構成要素、あるいはその両方に実装され得る、上述のプロセス1000の1つの例示的な実施形態を表す概略図1100を示している。図示されるように、周囲光条件、マーカーごとのマーカー値およびブレンド係数は、画素ごとにブレンド係数βを計算するために使用される。ブレンド係数β、および元の画素値yINおよび各画素のコントラストリミテッドヒストグラム平坦化値yCLHE、およびランダムノイズ加算係数εINは、画素出力値yOUTを計算するためにブレンディング計算(式2)において使用される。ノイズを加えた画面の太陽光可視性強化は、建物などの画像のより詳細な、または中間から明るい領域に影響を与えずに、画像の空や開口領域内の任意の望ましくない輪郭削りを隠すことが望ましい。
【００６１】
《用語に関する明確化》
特に断らない限り、特定の特徴を有する装置の動作のいかなる開示も、類似の特徴を有する方法を開示すること(およびその逆)が明示的に意図されており、特定の構成による装置の動作のいかなる開示も、類似の構成に記載の方法を開示すること(およびその逆)が明示的に意図される。「構成」という用語は、その特定の文脈によって示されるように、方法、装置、および/またはシステムに関連して使用され得る。「方法」、「プロセス」、「プロシージャ」、および「技法」という用語は、特定の文脈によって示されない限り、一般的および互換的に使用される。「装置」および「デバイス」という用語もまた、特定の文脈によって示されない限り、一般的および互換的に使用される。「要素」および「モジュール」という用語は、一般的に、より大きい構成の一部を示すために使用される。その文脈によって明示的に限定されない限り、「システム」という用語は、本明細書では、「共通の目的を果たすために相互作用する要素のグループ」を含む、その通常の意味のいずれかを示すために使用される。文書の一部の参照による任意の組込みはまた、そのような定義が他の場所に文書で表示された部分、一部において参照されている用語や変数の定義を組み込むように理解されなければならず、そのような定義は、文書内の他の場所、ならびに組み込まれた部分において参照される任意の図面内に表示される。
【００６２】
当業者は、本明細書に開示される実装形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、および処理ステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることをさらに理解するだろう。ハードウェアとソフトウェアのこの互換性を明示的に説明するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、それらの機能の観点から一般的に上述されている。そのような機能がハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の用途およびシステム全体に課せられる設計制約によって決まる。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装決定は本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。当業者は、一部、またはある部分は、全体未満、または全体に等しいものを備え得ることを認識するだろう。たとえば、画素の集合の一部は、それらの画素のサブコレクションを指し得る。
【００６３】
本明細書に開示された実装形態に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成要素、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実装または実効され得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと併せた1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成の組合せなどの、コンピューティングデバイスの組合せとして実装され得る。
【００６４】
本明細書に開示されている実施形態に関連して説明した方法またはプロセスは、ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、または2つの組合せにおいて直接的に具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当分野で知られている非一時的記憶媒体の任意の他の形態の中に存在し得る。例示的なコンピュータ可読記憶媒体がプロセッサに接続されると、そのようなプロセッサはコンピュータ可読記憶媒体から情報を読み出し、そこへ情報を書き込むことができる。代替として、記憶媒体はプロセッサと一体構成であってもよい。プロセッサおよび記憶媒体はASIC内に存在し得る。ASICは、ユーザ端末、カメラ、または他のデバイス内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内のディスクリート構成要素、カメラ、または他のデバイスとして存在し得る。
【００６５】
本明細書では、見出しは、参照のために、および様々なセクションを配置するのを助けるために含まれる。これらの見出しは、それに関して説明した概念の範囲を限定することを意図するものではない。そのような概念は明細書全体を通して適用性を有し得る。
【００６６】
開示された実装形態の前の説明は、任意の当業者が本発明を作成または使用することを可能にするために提供される。これらの実装形態への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本発明の趣旨または範囲を逸脱することなしに他の実装形態に適用され得る。したがって、本発明は、本明細書に示される実装形態に限定されることを意図するものではなく、本明細書に開示される原理および新規な特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００６７】
100  システム
100  撮像システム
110  撮像デバイス
120  プロセッサ
125  ストレージデバイス
130  電子ディスプレイ
135  作業メモリ
140  プログラムメモリ
145  画像撮影モジュール
150  マーカー定義モジュール
155  ブレンド係数計算モジュール
157  コントラストリミテッドヒストグラム平坦化(CLHE)計算モジュール
160  ブレンディングモジュール
165  オペレーティングシステム
170  ユーザインターフェースモジュール
302  矢印
304  元の画像
306  ヒストグラム
500  プロセス
600  ハードウェア実装形態
【図１Ａ】
0006602789.tif 000002
【図１Ｂ】
0006602789.tif 000003
【図２Ａ】
0006602789.tif 000004
【図２Ｂ】
0006602789.tif 000005
【図３】
0006602789.tif 000006
【図４】
0006602789.tif 000007
【図５】
0006602789.tif 000008
【図６】
0006602789.tif 000009
【図７】
0006602789.tif 000010
【図８】
0006602789.tif 000011
【図９Ａ】
0006602789.tif 000012
【図９Ｂ】
0006602789.tif 000013
【図１０】
0006602789.tif 000014
【図１１】
0006602789.tif 000015