(57)【要約】【課題】ヒストグラム伸張の装置および方法。【解決手段】メモリおよびコントラスト調整モジュールを含むグラフィックス・コントローラが提供され、装置上でヒストグラム伸張を行なう。メモリはデジタル画像のヒストグラム表を格納するように構成される。コントラスト調整モジュールはメモリに格納されるヒストグラム表を読み、読まれたヒストグラム表に基づきヒストグラム伸張伝達関数を演算するように構成される。コントラスト調整モジュールはさらに、演算されたヒストグラム伸張伝達関数を後にコントラスト調整モジュールが受信するデジタル画像データに適用するように構成される。【選択図】図５
2006073009.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス・コントローラであって、デジタル画像に対するヒストグラム表を格納するように構成されたメモリと、メモリに格納されたヒストグラム表を読むように構成されるコントラスト調整モジュールであって、さらに読まれたヒストグラム表に基づきヒストグラム伸張伝達関数を演算し、演算されたヒストグラム伸張伝達関数を、後にコントラスト調整モジュールで受信されるデジタル画像データに演算されたヒストグラム伸張伝達関数を適用するように構成されるコントラスト調整モジュールと、を含むグラフィックス・コントローラ。
【請求項２】
コントラスト調整モジュールが、グラフィックス・コントローラのホスト装置のプロセッサの係わりなしにヒストグラム伸張伝達関数を演算し適用する請求項１に記載されるグラフィックス・コントローラ。
【請求項３】
コントラスト調整モジュールが、メモリに格納されるヒストグラム表の全体を読まずしてヒストグラム伸張伝達関数を演算するように構成される請求項１に記載されるグラフィックス・コントローラ。
【請求項４】
コントラスト調整モジュールが、後にコントラスト調整モジュールで受信されるデジタル画像データ内に表される各ピクセルに対しピクセル毎にヒストグラム伸張伝送関数を演算し適用する請求項１に記載されるグラフィックス・コントローラ。
【請求項５】
ヒストグラム伸張伝達関数が、演算されたヒストグラム伸張伝達関数の適用前に演算されたヒストグラム伸張伝達関数を格納する必要なくコントラスト調整モジュールにより演算され適用される請求項１に記載されるグラフィックス・コントローラ。
【請求項６】
請求項１に記載されるグラフィックス・コントローラでさらに、入力デジタル画像データをコントラスト調整モジュールに送信するように構成されたカメラ・インタフェースと、コントラスト調整モジュールからデジタル画像データを受信し、コントラスト調整モジュールから受信したデジタル画像データを格納するように構成されたメモリの画像部分と、を含み、前記コントラスト調整モジュールは、カメラ・インタフェースからデジタル画像データがコントラスト調整モジュール経由でメモリの画像部分に送信される間にヒストグラム伸張伝達関数を演算しこれをデジタル画像データに適用するように構成されるグラフィックス・コントローラ。
【請求項７】
グラフィックス・コントローラのコントラスト調整モジュールであって、ヒストグラム伸張操作を行なう際に使用される、各々ピクセル値に対応する第１伸張点および第２伸張点を演算するように構成される伸張点演算モジュールと、第１および第２伸張点およびコントラスト調整モジュールで受信されるデジタル画像データに基づきヒストグラム伸張伝達関数の一部を演算するように構成される伝達関数演算モジュールと、マルチプレクサによって受信されるセレクト信号に従ってコントラストが調整されタピクセル値を出力構成されるマルチプレクサであって、さらに伝達関数演算モジュールが演算したヒストグラム伸張伝達関数の該一部を入力として受信するように構成されるマルチプレクサと、該マルチプレクサ向けにセレクト信号を生成するように構成される比較モジュールであって、セレクト信号が第１および第２伸張点およびコントラスト調整モジュールに受信されるデジタル画像データに基づき生成される比較モジュールと、を含むコントラスト調整モジュール。
【請求項８】
第１伸張点が可能な最小ピクセル値および第１伸張点の間に許容されるデジタル画像のピクセル数に基づき演算され、第２伸張点は第２伸張点および可能な最大ピクセル値の間に許容されるデジタル画像のピクセル数に基づき演算される請求項７に記載されるグラフィックス・コントローラのコントラスト調整モジュール。
【請求項９】
請求項８に記載されるグラフィックス・コントローラのコントラスト調整モジュールで、コントラスト調整モジュールは第１レジスタおよび第２レジスタに格納される値を読むように接続され、第１レジスタは可能な最小ピクセル値および第１伸張点の間に許容されるデジタル画像のピクセル数を格納することに割り当てられ、第２レジスタは第２伸張点および可能な最大ピクセル値の間に許容されるデジタル画像のピクセル数を格納することに割り当てられるコントラスト・モジュール。
【請求項１０】
第１および第２レジスタに格納される値は、可能な最小ピクセル値および第１伸張点の間、ならびに第２伸張点および可能な最大ピクセル値にあるデジタル画像のピクセル数の合計がデジタル画像における全ピクセル数の10%に相当するように設定される請求項９に記載されるグラフィックス・コントローラのコントラスト調整モジュール。
【請求項１１】
ヒストグラム伸張伝達関数の該一部が第１伸張点以上で第２伸張点以下のピクセル値に相当する請求項７に記載されるグラフィックス・コントローラのコントラスト調整モジュール。
【請求項１２】
ヒストグラム伸張伝達関数の該一部が次のように定義され、
【数１】
2006073009.tif 000007
MaxPixelValueは可能な最大ピクセル値、InputPixelValueはコントラスト調整モジュールで受信されるデジタル画像データ内のピクセル値、a は第１伸張点に相当するピクセル値、およびb isは第２伸張点に相当するピクセル値である、請求項７に記載されるグラフィックス・コントローラのコントラスト調整モジュール。
【請求項１３】
マルチプレクサにより出力されるコントラストが調整されたピクセル値が可能な最小ピクセル値、伝達関数演算モジュールで演算されたヒストグラム伸張伝達関数の該一部、または可能な最大ピクセル値に相当する請求項７に記載するグラフィックス・コントローラのコントラスト調整モジュール。
【請求項１４】
請求項７に記載されるグラフィックス・コントローラのコントラスト調整モジュールで、セレクト信号はデジタル画像データ内のピクセル値が第１伸張点未満である場合は可能な最小ピクセル値を出力することをマルチプレクサに指示するように定義され、セレクト信号はデジタル画像データ内のピクセル値が第１伸張点以上で第２伸張点以下の場合は伝達関数演算モジュールに演算されたヒストグラム伸張伝達関数の該一部を出力することをマルチプレクサに指示するように定義され、セレクト信号はデジタル画像内のピクセル値が第２伸張点を越える場合は可能な最大ピクセル値を出力することをマルチプレクサに指示するように定義されるコントラスト調整モジュール。
【請求項１５】
デジタル画像装置から受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法であって、グラフィックス・コントローラのメモリに格納されるヒストグラム表を読むためのグラフィックス・コントローラ内のコントラスト調整モジュールの操作と、デジタル画像装置から受信したデジタル画像データに適用するヒストグラム伸張伝達関数を演算するためのコントラスト調整モジュールの操作であって、ヒストグラム伸張伝達関数はメモリから読まれたヒストグラム表に一部基づく操作と、コントラスト調整モジュールでデジタル画像を受信する操作と、受信されたデジタル画像データにヒストグラム伸張伝達関数を適用するためのコントラスト調整モジュールの操作であって、受信したデジタル画像データにヒストグラム伸張伝達関数を適用することは受信されたデジタル画像データで定義されるデジタル画像のコントラストを調整する役を持つ操作とを含む方法。
【請求項１６】
ヒストグラム伸張伝達関数を演算するためのコントラスト調整モジュールの操作が各々ピクセル値に相当する第１伸張点および第２伸張点を計算することを含む、請求項１５に記載される受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法。
【請求項１７】
第１伸張点が可能な最小ピクセル値および第１伸張点の間に許容されるデジタル画像のピクセル数に基づき演算され、第２伸張点は第２伸張点および可能な最大ピクセル値の間に許容されるデジタル画像のピクセル数に基づき演算される、請求項１６に記載される受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法。
【請求項１８】
ヒストグラム伸張伝達関数を演算するためのコントラスト調整モジュールの操作が第１伸張点以上で第２伸張点以下のピクセル値に相当するヒストグラム伸張伝達関数を判断することを含む請求項１６に記載される受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法。
【請求項１９】
第１伸張点以上で第２伸張点以下のピクセル値に相当するヒストグラム伸張伝達関数が次のように定義され、 
【数２】
2006073009.tif 000008
MaxPixelValueは可能な最大ピクセル値、InputPixelValueはコントラスト調整モジュールで受信されるデジタル画像データ内のピクセル値、a は第１伸張点に相当するピクセル値、およびb isは第２伸張点に相当するピクセル値である、請求項１８に記載される受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法。
【請求項２０】
ヒストグラム伸張伝達関数を演算するためのコントラスト調整モジュールの操作が、コントラスト調整モジュールが受信したデジタル画像データ内のピクセル値を第１および第２伸張点と比較し、コントラスト調整モジュールが受信したピクセル値の代わりに出力するヒストグラム伸張伝達関数値を判断することを含む、請求項１６に記載される受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にデジタル画像データの表示に関する。
【背景技術】
【０００２】
デジタル・カメラで撮ったものなどの画像内のコントラストは向上させる必要がしばしばある。画像のコントラストが不十分であると、画像の特徴や詳細が画像の他の部分と見分けがつかなくなる可能性がある。従って、表示前に画像コントラストを評価し、調整することは有用であろう。
【０００３】
【特許文献１】米国特許出願公開第2003/0161549号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
画像のコントラストを評価する一方法は画像のヒストグラム表を生成することを含む。ヒストグラム表は画像内の各ピクセル値の出現頻度を表す。従ってヒストグラム表の評価は類似するピクセル値で、画像内に発生する頻度がコントラストに悪影響を与えるに充分なものを特定することができる。ヒストグラム表から得られた情報を用い、表示する前に画像を適当に改良し、コントラストを向上させることができる。コントラストを向上させるためにヒストグラム表を使用する方法および装置を改良する必要性は継続して存在する。
【課題を解決するための手段】
【０００５】
一実施形態で、グラフィックス・コントローラが開示される。グラフィックス・コントローラはメモリおよびコントラスト調整モジュールを含む。メモリはデジタル画像のヒストグラム表を格納するように構成される。コントラスト調整モジュールはメモリに格納されるヒストグラム表を読み、読まれたヒストグラム表に基づきヒストグラム伸張伝達関数を演算するように構成される。コントラスト調整モジュールはさらに演算されたヒストグラム伸張伝達関数を続いてコントラスト調整モジュールで受信されるデジタル画像データに適用するように構成される。
【０００６】
別の実施形態で、グラフィックス・コントローラのコントラスト調整モジュールが開示される。グラフィックス・コントローラのコントラスト調整モジュールは伸張点演算モジュール、伝達関数演算モジュール、マルチプレクサ、および比較モジュールが含まれる。伸張点演算モジュールはヒストグラム伸張操作を行なう際用いられる第１伸張点および第２伸張点を演算するように構成される。第１および第２伸張点は各々ピクセル値に対応する。伝達関数演算モジュールは第１および第２伸張点、ならびにコントラスト調整モジュールに受信されるデジタル画像データに基づきヒストグラム伸張伝達関数の一部を演算するように構成される。マルチプレクサはマルチプレクサに受信される選ばれた信号に従ってコントラストを調整されたピクセル値を出力するように構成される。マルチプレクサはさらに伝達関数演算モジュールで演算されたヒストグラム伸張伝達関数の一部を入力として受信するように構成される。比較モジュールは選ばれた信号をマルチプレクサ向けに選ばれた信号を生成するように構成される。選ばれた信号は第１および第２伸張点ならびにコントラスト調整モジュールに受信されるデジタル画像データに基づき生成される。
【０００７】
別の実施形態で、デジタル画像装置から受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法が開示される。方法はグラフィックス・コントローラ内のコントラスト調整モジュールを操作して、グラフィックス・コントローラのメモリに格納されるヒストグラム表を読むことを含む。方法の中ではさらに、コントラスト調整モジュールが操作され、デジタル画像装置から受信したデジタル画像データに適用するヒストグラム伸張伝達関数を演算するが、ここでヒストグラム伸張伝達関数はメモリから読み取ったヒストグラム表に一部基づいている。またデジタル画像データをコントラスト調整モジュールで受信する操作も行なわれる。コントラスト調整モジュールは次に操作され、受信したデジタル画像データにヒストグラム伸張伝達関数を適用する。受信したデジタル画像データにヒストグラム伸張伝達関数を適用することは、受信したデジタル画像データで定義されたデジタル画像のコントラストを調整する役目を果たす。
【０００８】
発明の他の態様は以下の詳細な説明と併せて本発明の例を示す添付図面によりさらに明らかになるであろう。
【発明を実施するための最良の形態】
【０００９】
以下の説明では本発明の充分な理解を提供するために多数の具体的な内容が述べられる。しかし本発明は以下の具体的な内容の一部あるいはすべてがなくても実施することができることは当業者であれば明らかであろう。また本発明を不必要に不明確にしないよう、公知の処理操作は詳しく説明していない。
【００１０】
デジタル画像は取り込んだ画像を画素またはピクセルのグリッド上にマッピングすることにより作成される。各ピクセルは、そのピクセルが取り込み画像において表すべき部分に最も近く対応する色調値、すなわちピクセル値、が割り当てられる。デジタル画像において、ピクセルの色調値は２進数字のシーケンスで定義される２進コードで表される。各色調値を定義するために使用される２進数字の数はデジタル画像のビット深度を表す。ビット深度が大きいと、デジタル画像における各ピクセルを定義するために使用できる色調値のセットが大きいことになる。例えばビット深度1を有する黒白画像においては、各ピクセルに割り当てられる可能性のある色調値の数は（21）または2である。ビット深度が8のグレースケールまたはカラー画像では、各ピクセルに割り当てできる色調値の数は（28）または256である。さらにビット深度16を有する画像の場合は、各ピクセルに対し（216）または65536の色調値が可能である。本発明は本明細書で明示的に特定しないビット深度を含め、任意のビット深度に対して実施できることは理解されよう。
【００１１】
デジタル画像を定義するために用いられる色調値はコントラストなど、デジタル画像の特性を評価するためにも利用できる。例えば、同じまたは類似の色調値を有するピクセルを多数含むデジタル画像は低いコントラストを有すると特定でき、従って画像内の特徴または詳細が不明瞭になる。デジタル画像の色調値を分析することによって得られた情報を用いて画像特性を表示前に改良／向上させることができる。
【００１２】
デジタル画像の色調値を分析する一つの方法は画像のヒストグラム表を展開することであり、この場合ヒストグラム表は画像内において可能なあらゆる色調値の頻度を表す。ヒストグラム表では、デジタル画像のビット深度に基づき可能なすべての色調値各々に対し集計が生成される。各集計はデジタル画像において対応する色調値の発生頻度を表す。このように、デジタル画像において特定の色調値を有する各ピクセルはその特定色調値の集計に１回数えられる。一旦デジタル画像の各ピクセルが適当にヒストグラム表に集計されると、ヒストグラム表を評価してコントラストの問題を特定し、必要に応じ表示前に画像を向上させることができる。
【００１３】
図１Ａは実質的に均等なコントラストを有する画像の典型的なヒストグラムを示す。図１Ａのヒストグラムに対応する画像のビット深度は8である。従って、画像を定義するピクセルに対し（28）または256 の色調値があり得る。可能な色調値、すなわちピクセル値、は横軸で0から255で表せる。縦軸は画像内における各ピクセル値の発生頻度を表す。図１Ａのヒストグラムは画像内で広範囲の可能なピクセル値が充分に表せていることを示す。従って図１Ａのヒストグラムは画像が低いコントラスト特性を示していること示唆していない。
【００１４】
図１Ｂは低いコントラストを有する画像の典型的なヒストグラムを示す。図１Ａと同様、図１Ｂの画像のビット深度は8で、可能な256の色調値が0から255で横軸上に表される。縦軸は画像内における各ピクセル値の発生頻度を表す。図１Ｂに示されるように、低いコントラストを有する画像ではあまり使用されないか全く使用されないピクセル値が多数あり得る。このように、画像の大半は密接に関係した、すなわち近い色の、ピクセル値で表せられている。従って、密接に関係したピクセル値が大半である画像を見る観察者は画像内の詳細を解像するのに苦労するかもしれない。図１Ｂにおけるヒストグラムのとがった形は画像が低いコントラスト特性を示していることを示唆している。
【００１５】
画像のコントラストを向上させる一つの方法はデジタル画像を定義するピクセル値にヒストグラム伸張手法を実施することである。ヒストグラム伸張手法では、元のヒストグラム内で２つの伸張点が選ばれ、各々利用可能なピクセル値範囲の最大および最小限度に伸張される。図２Ａおよび２Ｂは本発明の一実施形態によるヒストグラム伸張手法を示す。図２Ａは低いコントラスト特性を示す元のヒストグラムを示す。図２Ａにおいて、「a」および「b」という２つの伸張点がヒストグラム伸張手法の実施向けに選ばれる。２つの伸張点「a」および「b」は元のヒストグラムのピクセル値を表し、図２Ａおよび２Ｂを結ぶ点線で示されるように、各々ピクセル値範囲の最大および最小限度に翻訳される。
【００１６】
図２Ｂは伸張点「a」および「b」を各々ピクセル値範囲のピクセル値0および255に翻訳した後の伸張されたヒストグラムを示す。図２Ａおよび２Ｂは各々ビット深度が8の画像に相当する。従ってピクセル値範囲の最小および最大限度は各々0および255で表される。伸張点「a」および「b」の選択と翻訳に加え、ヒストグラム伸張手法はまた、伸張伝達関数を利用して元のヒストグラムにおける各ピクセル値を伸張されたヒストグラムにおける適当なピクセル値に翻訳、すなわちマッピング、する。
【００１７】
図３Ａは図２Ａに描く元のヒストグラムに対する伝達関数を示す。伝達関数は出力ピクセル値を入力ピクセル値の関数として定義する。従って、伝達関数は予め定義された基準に基づき有効に各入力ピクセル値を適当な出力ピクセル値にマッピングする。図３Ａは元のヒストグラムに対応するので、各出力ピクセル値は各入力ピクセル値と同等である。従って元のヒストグラムに対する伝達関数は単に１の傾斜でピクセル値0からピクセル値255まで延びる線として表される。
【００１８】
図３Ｂは図２Ｂに描く伸張されたヒストグラムの伝達関数を示す。図３Ｂの伝達関数は伸張点「a」および「b」が各々ピクセル値範囲の最小（0）および最大（255）限度にマッピングされていることを示す。図３Ｂに描く伝達関数は伸張点「a」に対応するピクセル値未満の各ピクセル値を、ピクセル値範囲の最小限度（0）にマッピングする。また図３Ｂに描く伝達関数は伸張点「b」に対応するピクセル値を超えた各ピクセル値を、ピクセル値範囲の最大限度（255）にマッピングする。さらに図３Ｂの伝達関数は、伸張点「a」および「b」に対応するピクセル値の間にある各ピクセル値を0から255の適当な出力ピクセル値にマッピングする。
【００１９】
図２Ａにおいて、伸張ピクセル値の範囲は伸張点「a」および「b」の間に定義される。伸張ピクセル値範囲のある比率は伸張点「a」と伸張ピクセル値範囲内の各入力ピクセル値との間に存在する。図３Ｂの伝達関数は、「a」から「b」に達する伸張ピクセル値範囲内で伸張点「a」と特定の入力ピクセル値との間に存在する伸張ピクセル値範囲の比率が伸張されたヒストグラムの中で、伸張されたヒストグラムのピクセル値範囲全体に対しピクセル値0から出力ピクセル値の間で表されるように定義される。従って、図２Ａ、２Ｂ、３Ａ、および３Ｂに関して説明された典型的伝達関数は数学的には以下のように表される：
方程式１．
【数１】
2006073009.tif 000003
ここでa とb は各々伸張点「a」および「b」に対応するピクセル値を表す。
【００２０】
図４はデジタル画像処理システムを示す。処理システムはカメラ403、グラフィックス・コントローラ401、中央演算装置（ＣＰＵ）407、およびディスプレー405を含む。カメラ403はデジタル・カメラ、デジタル・ビデオ・カメラ、またはその他デジタル・フォーマットで画像を取り込める任意の装置で良いことが理解されよう。また、ディスプレー405は液晶ディスプレー（ＬＣＤ），プラズマ・ディスプレー、ブラウン管（ＣＲＴ）ディスプレー等々、電子信号で定義される画像を具現できる任意の種類のディスプレー装置で良いことが理解されよう。ＣＰＵ407は一般的なホスト装置のＣＰＵを表す。グラフィックス・コントローラ401はホスト装置内に実施して、デジタル画像処理能力をホスト装置に提供することができることが理解されよう。
【００２１】
グラフィックス・コントローラ401はカメラ・インタフェース409、ランダムアクセス・メモリ（ＲＡＭ）413、およびヒストグラム419を含む。カメラ・インタフェースは矢印421で示すように、カメラ403からデジタル画像データを受信するように構成される。カメラ403からのデジタル画像データはバイトのストリームとしてカメラ・インタフェースに入る。一実施形態で、デジタル画像データはラスタ・シーケンスに従ったピクセル順序でカメラ・インタフェース409に到着する。カメラ・インタフェース409に到着するデジタル画像データはデジタル・ビデオ・カメラからのストリーミング・ビデオまたはデジタル・カメラからの１つのスナップ写真を表すことができる。ストリーミング・ビデオの場合、到着するビデオの各フレームは、デジタル・カメラから到着する１つのスナップ写真と同様の１つのデジタル画像とみなすことができる。ヒストグラム表は１つのデジタル画像を基に生成されるので、本発明は１つのデジタル画像に対するデータの受信および処理という観点で説明される。しかし本発明はストリーミング・ビデオおよびスナップ写真の画像双方において実施できることが理解されよう。
【００２２】
前述のとおり、ディスプレー405に送信して見る前にデジタル画像を改良する必要があるかもしれない。ヒストグラム・モジュール419はデジタル画像のコントラストを評価するために使用するヒストグラム表を生成するのに必要な機能性を提供する。操作中にヒストグラム表は入力デジタル画像各々に対し、または選択された入力デジタル画像に対し生成することができる。入力デジタル画像に対しヒストグラムを生成する場合は矢印431で示すように、デジタル画像データはカメラ・インタフェース409からヒストグラム・モジュール419に送信される。ヒストグラム・モジュール419は入力ピクセル各々に対し色調値を判断するように作動し、矢印433で示すように、ＲＡＭ417のヒストグラム表部分における対応する色調値集計がそれに応じて更新されることを保証する。
【００２３】
一旦デジタル画像データ全体がヒストグラム・モジュール419によって受信され、処理されると、矢印435に示すようにＣＰＵ407が操作されヒストグラム表を分析し、その後のデジタル画像として受信するデジタル画像データに対する適当な調整を判断することができる。一実施形態でＣＰＵ407はデジタル画像全体が処理され、ヒストグラム表が完成するまで待ってからヒストグラム表を分析する。
【００２４】
一実施形態ではルックアップ表（ＬＵＴ）411がカメラ・インタフェース409およびＲＡＭ413のビデオＲＡＭ（ＶＲＡＭ）415部分の間に実施することができる。カメラ・インタフェース109からのデジタル画像データは矢印423および425で示す、ＶＲＡＭ415への途中でＬＵＴ411を通過することができる。一実施形態で、ＬＵＴ411は前述のように伝達関数を実施する役を持つ。このように、ＬＵＴ411は可能なピクセル値各々を表し各入力ピクセル、すなわち入力ピクセル値、を適当な出力ピクセル値にマッピングする役を持つ。ＬＵＴ411からの出力ピクセル値が次に各々の入力ピクセル値の代わりにＶＲＡＭ415に送信される。ＬＵＴ411が実施する伝達関数は矢印429で示すように、ヒストグラム表の分析から得られた結果に基づきＣＰＵ407により確立される。
【００２５】
デジタル・ビデオの一実施形態では、ＣＰＵ407がすべてのフレームに対しヒストグラム表を分析しない。例えば、ＣＰＵ407は３０フレーム毎に１つヒストグラム表を分析するかもしれない。ヒストグラム表の分析に基づき、ＣＰＵ407は表示する画像を例えばヒストグラム伸張により調整するために使用されるＬＵＴ411を更新する。更新されたＬＵＴ411の値はＣＰＵ407が作動して再びＬＵＴ411を更新するまで各フレームに適用される。
【００２６】
上記に従い、カメラ・インタフェース409に到着後デジタル画像データはＬＵＴ411に従い修正されＶＲＡＭ415に格納される。ＬＵＴ411に修正されたデジタル画像全体がＶＲＡＭ415 に一旦格納されると、デジタル画像を定義するデータは適当な電子フォーマットに転換され、矢印427で示すようにディスプレー405に送信されることができる。ディスプレー405でデジタル画像は見るために具現される。
【００２７】
図４のデジタル画像処理システムにおいて前述のヒストグラム伸張手法を実施するために以下の操作が行なわれる：
入力デジタル画像に対しヒストグラムがハードウェアで演算され、ＲＡＭ413のヒストグラム表部分417に格納される。
ＣＰＵ407が作動し、ＲＡＭ413のヒストグラム表部分417に格納されるヒストグラム表を読み取る。
ＣＰＵがプログラムできるパラメータに基づき伸張点「a」および「b」を判断する。
ＣＰＵがヒストグラム伸張を行なうように定義された伝達関数の出力ピクセル値を演算する。
ＣＰＵが伸張されたヒストグラム用の演算された出力ピクセル値をＬＵＴ411における適当な場所に書き込む。
カメラ・インタフェース409から次のデジタル画像が、ＶＲＡＭ415に格納される前にＬＵＴ411を通過し、それによりそのヒストグラムをＬＵＴ411内の設定に従って伸張する。
【００２８】
上述のように図４のデジタル画像処理システムを用いたヒストグラム伸張手法の実施はＣＰＵ集約的である。従って、ＣＰＵが図４に関連して説明したヒストグラム伸張を行なうことでふさがっている間、ＣＰＵの対応が必要な他の処理が遅延されるかもしれない。また、ＶＲＡＭ413のヒストグラム表部分417からヒストグラムを読み、ＬＵＴ411に出力ピクセル値を書くことはＣＰＵとグラフィックス・コントローラ401との間の入力／出力（Ｉ／Ｏ）ラインの切り替えが必要となる。ＣＰＵとグラフィックス・コントローラ401との間の入力／出力（Ｉ／Ｏ）ラインの切り替えは電力を消費する。従って、図４のデジタル画像処理システムを用いたヒストグラム伸張手法の実施はＣＰＵの帯域幅および電力消費という面で高価になり得る。これらＣＰＵの帯域幅および電力消費は例えば携帯電話などの処理能力および電池寿命が貴重な携帯電子装置においては重要になり得る。
【００２９】
本発明はホストＣＰＵに頼らず、グラフィックス・コントローラとホストＣＰＵとの間で頻繁なＩ／Ｏラインの切り替えなしにグラフィックス・コントローラ内でヒストグラム伸張を行なうことができる装置を提供する。このように、本発明はヒストグラム伸張に必要な処理をホストＣＰＵからグラフィックス・コントローラにオフロードする。従って本発明はホストＣＰＵを他のタスクを行なうために解放し、電力消費を削減する。
【００３０】
図５は本発明の一実施形態によるデジタル画像処理システムを示す。図４の処理システムと同様、図５の処理システムはカメラ403、ＣＰＵ407、およびディスプレー405を含む。しかし、図５は内部構成が図４のグラフィックス・コントローラ401とは異なるグラフィックス・コントローラ501を含む。より具体的には、グラフィックス・コントローラ501はＬＵＴ411を含まない。代わりにグラフィックス・コントローラ501はグラフィックス・コントローラ上でヒストグラム伸張を行なうように定義された回路を有するコントラスト調整モジュール503を含む。また図５に関し、カメラ403、カメラ・インタフェース409、ＶＲＡＭ415、ＲＡＭ413のヒストグラム表の部分417、ヒストグラム・モジュール419、およびディスプレー405は図４について上述した様態と実質的に同じように機能するように定義されていることが理解されよう。
【００３１】
グラフィックス・コントローラ501において矢印509で示す通り、コントラスト調整モジュール503がカメラ・インタフェース409から入力デジタル画像データを受信する。コントラスト調整モジュール503で変更されたデジタル画像データは矢印511で示す通り、コントラスト調整モジュール503からＶＲＡＭ415に送信される。コントラスト調整モジュール503 はまた矢印519で示す通り、ＲＡＭ413のヒストグラム表の部分417からヒストグラム表のデータを読むように接続されている。コントラスト調整モジュール503はさらに矢印515および517で示す通り、各々第1レジスタ「ＲｅｇＡ」505 および第2レジスタ「ＲｅｇＢ」507に格納される値を読むように接続されている。ＲｅｇＡ505およびＲｅｇＢ507各々に格納される値は各々矢印513および514で示す通り、ホストＣＰＵ407を通してユーザが設定することができる。グラフィックス・コントローラ501のコントラスト調整操作に対するホストＣＰＵ407の係わり合いはユーザがＲｅｇＡ505およびＲｅｇＢ507各々に値を設定できることに限定されることが留意されよう。コントラス調整モジュール503のヒストグラム伸張伝達関数に関するＲｅｇＡ505およびＲｅｇＢ507の目的はさらに後述される。ＲｅｇＡ505およびＲｅｇＢ507はグラフィックス・コントローラ501のレイアウトを最適化する必要に応じ、基本的にグラフィックス・コントローラ501のどの位置にでも存在できることが理解されよう。例えば、ＲｅｇＡ505およびＲｅｇＢ507はグラフィックス・コントローラ501のレジスタ・ブロック内、またはコントラスト調整モジュール503内に位置することができる。
【００３２】
一実施形態で、コントラスト調整モジュール503は図２Ａ、２Ｂ、３Ａ、３Ｂ、および方程式１に関連して前述のように、伝達関数を用いてヒストグラム伸張手法を実施するように定義される。従って、コントラスト調整回路503は後からの入力デジタル画像の各ピクセル値に適用すべき伝達関数を演算するために２つの伸張点「a」と「b」、および前のデジタル画像からのヒストグラム・データを必要とする。
【００３３】
カメラから受信する画像に係わるヒストグラムの特質は知られていないので、伸張点「a」および「b」は固定した形で明示的に指定するのは難しい。言い換えれば、伸張点「a」および「b」は特定の画像に係わるヒストグラムの特質に依存する。レジスタＲｅｇＡ505およびＲｅｇＢ507は各々伸張点「a」および「b」の演算を支援するために備えられる。ヒストグラムはデジタル画像内で可能な各ピクセル値の発生頻度を表すことを想起すると、ヒストグラム曲線の下にある全面積はデジタル画像内のピクセル数の合計を表すことになる。一実施形態で、レジスタＲｅｇＡ505は例えば0など、可能な限りの最小ピクセル値と伸張点「a」との間に許容されるピクセルの合計数に対応する値でプログラムされている。同じ実施形態で、レジスタＲｅｇＢ507はビット深度8を有する画像の場合例えば255など可能な限りの最大ピクセル値と伸張点「b」との間に許容されるピクセルの合計数に対応する値でプログラムされている。典型的な実施形態で、ＲｅｇＡ505およびＲｅｇＢ507にプログラムされる値は、伸張点「a」未満で伸張点「b」を超えたピクセル数の合計が画像の全ピクセル数、つまりヒストグラム曲線全体の下にある全ピクセル数、の約10%に相当するというように定義することができる。しかしＲｅｇＡ505およびＲｅｇＢ507にプログラムされる値を決めるのに使用できる条件の数は基本的に無限であることが理解されよう。とは言え、本発明のＲｅｇＡ505およびＲｅｇＢ507に格納される値はヒストグラム伸張用に伝達関数を実施する際使用される伸張点「a」および「b」を演算するためにコントラスト調整モジュール503が用いることができる基準を表している。
【００３４】
図６は本発明の一実施形態によるコントラスト調整モジュール503のより詳細な図を示す。矢印519、515、および517で各々示す通り、コントラスト調整モジュール503はＲＡＭ413のヒストグラム表の部分417、レジスタＲｅｇＡ505、およびレジスタＲｅｇＢ507から入力を受信するように接続されている。上記入力は各々伸張点「a」および「b」を演算する役を持つ伸張点演算モジュール601の中に受信される。
【００３５】
伸張点演算モジュール601は伸張点「a」および「b」を演算するためのアルゴリズムを実施するように定義される回路を表す。以下の擬似コードは本発明の一実施形態により伸張点「a」を演算するアルゴリズムを説明している：
2006073009.tif 000004
上記の擬似コードにおいて、パラメータ「i」はピクセル値のインデクス・カウンタを表す。パラメータ「sum」はピクセル値0乃至インデクス「i」に対応する現在のピクセル値までのヒストグラムで表されるピクセルの合計を表す。パラメータ「RegA」はグラフィックス・コントローラ501のレジスタＲｅｇＡ505に格納される値に対応する。パラメータHistogramTable(i)はＲＡＭ413のヒストグラム表の部分417から読み取られたヒストグラム・データを表す。パラメータ「a」は伸張点「a」に対応するピクセル値を表す。
【００３６】
以下の擬似コードは本発明の一実施形態により伸張点「b」を演算するアルゴリズムを説明している：
2006073009.tif 000005
上記の擬似コードにおいて、パラメータ「i」はピクセル値のインデクス・カウンタを表す。パラメータ「MaxPixelValue」は可能な最大のピクセル値 に対応する。例えば、ビット深度が8の画像はMaxPixelValueが255になる。パラメータ「sum」はMaxPixelValue 乃至インデクス「i」に対応する現在のピクセル値までのヒストグラムで表されるピクセルの合計を表す。パラメータ「RegB」はグラフィックス・コントローラ501のレジスタＲｅｇＢ507に格納される値に対応する。パラメータHistogramTable(i)はＲＡＭ413のヒストグラム表の部分417から読み取られたヒストグラム・データを表す。パラメータ「b」は伸張点「b」に対応するピクセル値を表す。
【００３７】
伸張点演算モジュール601で計算された伸張点「a」は矢印613で示す通り、レジスタ「ａ」603に書き込まれる。同様に伸張点演算モジュール601で計算された伸張点「b」は矢印615で示す通り、レジスタ「ｂ」605に書き込まれる。矢印617および621で各々示す通り、レジスタ「ａ」603および「ｂ」605に格納される値は伝達関数演算モジュール607に通信される。また矢印619および623で各々示す通り、レジスタ「ａ」603および「ｂ」605に格納される値はさらに比較モジュール609に通信される。
【００３８】
伝達関数演算モジュール607および比較モジュール609は図２Ａ、２Ｂ、３Ａ、および方程式１に関連して前述の伝達関数を実施するように定義された回路を表す。伝達関数演算モジュール607および比較モジュール609は各々矢印509および625で示す通り、カメラ・インタフェース409から入力されるデジタル画像データを受信するように接続されている。伝達関数演算モジュール607は次の式を評価するように構成される：
【数２】
2006073009.tif 000006
ここで「MaxPixelValue」は可能な最大ピクセル値に相当、「InputPixelValue」はカメラ・インタフェース409から現在受信したピクセル値に相当、「a」はレジスタ「ａ」603に格納される伸張点「a」のピクセル値に相当、「b」はレジスタ「ｂ」605に格納される伸張点「b」のピクセル値に相当する。伝達関数演算モジュール607で計算された値は矢印631で示す通り、マルチプレクサ611に通信される。
【００３９】
比較モジュール609は次の３つの条件式を評価し、真である条件式に基づき出力信号を生成するように構成される：
式1: [InputPixelValue < a]
式2: [a ≦ InputPixelValue ≦ b]
式3: [InputPixelValue > b]
ここで「InputPixelValue」は カメラ・インタフェース409から現在受信したピクセル値に相当、「a」はレジスタ「ａ」603に格納される伸張点「a」のピクセル値に相当、「b」はレジスタ「ｂ」605に格納される伸張点「b」のピクセル値に相当する。出力信号は矢印627で示す通り、セレクト信号としてマルチプレクサ611に通信される。比較モジュール609により評価される３つの条件式は３つの可能な出力を表すので、比較モジュール609が生成する出力信号は２ビット信号として定義できる。
【００４０】
マルチプレクサ611は比較モジュール609から受信したセレクト信号に基づき、３つの入力値の内の１つを出力するように機能する。前述のように、伝達関数演算モジュール607からの出力は矢印631で示す通り、マルチプレクサ611への３つの入力の内１つを表す。ピクセル値0は矢印629で示す通り、マルチプレクサ611への３つの入力の内、さらに１つと定義される。矢印633で示す通り、MaxPixelValue のパラメータがマルチプレクサ611への３つの入力の最後である。式[InputPixelValue < a]が真であることをセレクト信号が示す場合、マルチプレクサ611の出力は入力ピクセル値0に相当する。式[a ≦ InputPixelValue ≦ b]が真であることをセレクト信号が示す場合、マルチプレクサ611の出力は伝達関数演算モジュール607から受信した入力に相当する。式[InputPixelValue > b] が真であることをセレクト信号が示す場合、マルチプレクサ611の出力はMaxPixelValueの入力に相当する。マルチプレクサ611の出力は矢印511が示す通り、ＶＲＡＭ511に送信される。
【００４１】
図５および６のデジタル画像処理システムにおいては、ヒストグラム伸張伝達関数がハードウェア、すなわち回路、の中で直接実施でき、ＬＵＴの必要性がなくなることが理解されよう。ＬＵＴを取り除くことは電力および貴重なチップ・スペースの節約を提供できる。さらに図５および６に関連して説明されたコントラスト調整モジュール503はコントラスト調整機能の実施を担当していることが理解されよう。従って、グラフィックス・コントローラ503上のコントラスト調整モジュール503はコントラス調整以外のタスクを行なえるようにホストＣＰＵ407を開放し、ホストＣＰＵの利用可能性を増加させる。さらに、図５および６のデジタル画像処理システムは必要なＩ／Ｏピンの切り替え量を削減し、またＲＡＭ413のヒストグラム表の部分417からの必要な読み取り操作回数を削減することにより電力を節約する。より具体的に、図５および６のデジタル画像処理システムは伸張点「a」および「b」を判断するためにメモリからヒストグラム表全体を読み取る必要がない。加えて、図５および６のデジタル画像処理システムは基本的にピクセル値のマッピングにより入力デジタル画像を調整するように定義されたどのような伝達関数を実施するためにも用いることができる。例えば、図５および６のデジタル画像処理システムを用いて入力デジタル画像の色を反転するための伝達関数を実施することができる。
【００４２】
図７は本発明の一実施形態により、デジタル画像装置から受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法のフローチャートを示す。方法はグラフィックス・コントローラのメモリに格納されるヒストグラム表を読むためにグラフィックス・コントローラ内のコントラスト調整モジュールが操作される操作701を含む。方法はさらにデジタル画像装置から受信したデジタル画像データに適用されるヒストグラム伸張伝達関数を演算するためにコントラスト調整モジュールが操作される操作703を含み、ここでヒストグラム伸張伝達関数はグラフィックス・コントローラのメモリから読み取られたヒストグラム表に一部基づく。
【００４３】
ヒストグラム伸張伝達関数を演算するためにコントラスト調整モジュールを操作することは第１伸張点および第２進頂点の計算を含み、ここで第１および第２伸張点は各々あるピクセル値に対応する。第１伸張点はデジタル画像において可能な最小ピクセル値と第１伸張点との間に許容されるピクセルの数に基づき演算される。第２伸張点はデジタル画像における第２伸張点と可能な最大ピクセル値との間に許容されるピクセルの数に基づき演算される。
【００４４】
ヒストグラム伸張伝達関数を演算するためにコントラスト調整モジュールを操作することはさらに、第１伸張点以上で第２伸張点以下のピクセル値に相当するヒストグラム伸張伝達関数を判断することを含む。一実施形態で、方程式１に関して前述した式を実施して第１伸張点以上で第２伸張点以下のピクセル値に相当するヒストグラム伸張伝達関数を判断することができる。
【００４５】
方法はさらにデジタル画像データをコントラスト調整モジュールで受信する操作705を含み、ここでデジタル画像データはコントラスト調整が行なわれるデジタル画像を定義する。加えて方法は受信されたデジタル画像データにヒストグラム伸張伝達関数を適用するためにコントラスト調整モジュールが操作される操作707を含む。コントラスト調整モジュールで受信されたデジタル画像データ内の各ピクセル値は適当なヒストグラム伸張伝達関数値を判断するために第１および第２伸張点と比較される。次に適当なヒストグラム伸張伝達関数値が受信したピクセル値の代わりにコントラスト調整モジュールにより出力される。ヒストグラム伸張伝達関数のデジタル画像データへの適用は対応デジタル画像のコントラストを調整する役を果たす。
【００４６】
本発明の装置および方法は処理能力が貴重な携帯電子装置で実施すると特に有用である。本発明から益を得る携帯電子装置はデジタル・カメラ、デジタル・ビデオレコーダ、デジタル・カメラまたはビデオ付の携帯電話、およびその他のデジタル画像化能力を有する手持ち式装置を含む。
【００４７】
上記実施形態を念頭に、本発明はコンピュータ・システムに格納されるデータに係わる各種のコンピュータ実行操作を用いることができることが理解されよう。これらの操作は物理量を物理的に操作する必要があるものである。必ずしもではないが、通常これらの量は格納、移転、組み合わせ、比較、およびその他の方法で操作される電気または磁気信号の形を取る。さらに実行される操作はしばしば生成、特定、判断、または比較などの用語で言及されるものである。
【００４８】
本明細書で説明され、発明の一部をなす操作はいずれも有用なコンピュータ操作である。発明はさらにこれらの操作を実行するためのデバイスまたは装置に関するものである。装置は必要な目的のために特別に構成されることもでき、または汎用コンピュータでコンピュータ内に格納されたコンピュータ・プログラムによって選択的に駆動または構成されたものであっても良い。特に各種汎用コンピュータを本明細書の教示に従って書かれたコンピュータ・プログラムといっしょに使用することができ、または必要な操作を実行するより専門的な装置を構成する方がより便利かもしれない。また本明細書で説明される操作で発明の一部をなすものは記載された機能を行なうことのできる任意の適当な構造的「手段」で実施することができる。例えば、構造の例は請求される発明の各種実施形態で説明される構造的要素により提供される。
【００４９】
本発明はいくつかの実施形態により説明されたが、前述の明細書を当業者が読み、図面を見れば、発明に対する各種の変更、追加、置き換えおよび同等のものを実現できることが理解されよう。従って本発明は発明の真の精神および範囲に含まれる、かかる変更、追加、置き換え、および同等のものをすべて含むことが意図される。
【図面の簡単な説明】
【００５０】
【図１】Ａは、均等なコントラストを有する画像の典型的なヒストグラム、Ｂは、低いコントラストを有する画像の典型的なヒストグラム。
【図２】Ａは、低いコントラスト特性を示す元のヒストグラム、Ｂは、伸張点「a」および「b」を各々ピクセル値範囲のピクセル値0および255に翻訳した後の伸張されたヒストグラム。
【図３】Ａは、図２Ａに描く元のヒストグラムに対する伝達関数、Ｂは、図２Ｂに描く伸張されたヒストグラムの伝達関数。
【図４】デジタル画像処理システム。
【図５】本発明の一実施形態によるデジタル画像処理システム。
【図６】本発明の一実施形態によるコントラスト調整モジュールの詳細図。
【図７】本発明の一実施形態により、デジタル画像装置から受信したデジタル画像のコントラストを調整するためにグラフィックス・コントローラを操作する方法のフローチャート。
【符号の説明】
【００５１】
403  カメラ
407  ＣＰＵ
409  カメラ・インタフェース
411  ＬＵＴ
419  ヒストグラム・モジュール
413  ＲＡＭ
415  ＶＲＡＭ
417  ヒストグラム表
405  ディスプレー
501  グラフィックス・コントローラ
403  カメラ
407  ＣＰＵ
409  カメラ・インタフェース
503  コントラスト調整モジュール
505  ＲｅｇＡ
507  ＲｅｇＢ
419  ヒストグラム・モジュール
413  ＲＡＭ
415  ＶＲＡＭ
417  ヒストグラム表
405  ディスプレー
601  伸張点演算モジュール
607  伝達関数演算モジュール
609  比較モジュール
633  MaxPixelValue
【図１】
2006073009.tif 000009
【図２】
2006073009.tif 000010
【図３】
2006073009.tif 000011
【図４】
2006073009.tif 000012
【図５】
2006073009.tif 000013
【図６】
2006073009.tif 000014
【図７】
2006073009.tif 000015