(35U.S.C.§119の下の優先権主張)
本特許出願は、2005年12月8日に出願され、"ADAPTIVE AUTO WHITE BALANCE WITH WEIGHTING VECTORS"と題され、本願の譲受人に譲渡され、その全体が本明細書に参照によって明確に組み込まれた米国仮出願60/748,732号の優先権を主張する。
発明の概要
画像システムは、画像フォーマットの成分のゲインを生成する。このゲインは、シーンの画像が生成されたとききシーンを照明する光源の輝度に少なくとも部分的に依存する。このゲインは、光源によって引き起こされた画像における色変化に対して、画像フォーマットの成分を補正するために使用することができる。幾つかの事例では、画像システムは、画像フォーマットにおける複数の成分、または、画像フォーマットにおける成分の全てのゲインを生成する。各ゲインは、光源によって引き起こされた画像における色変化に関する成分を補正するために用いられる。このシステムの1つの実施形態は、モバイル・カメラ電話である。この電話は、シーンの画像が生成されたときにシーンを照明している光源の輝度を決定するための電子機器を含む。この電話は更に、複数の重み係数を決定するために輝度を用いる電子機器を含む。重み係数はそれぞれ、画像が生成されたときに、異なる光源が、シーンを照明している光源である確率を示す。この電話は更に、画像フォーマットの成分の重み付けられた灰色成分を生成する電子機器を含む。重み付けられた灰色成分は、画像フォーマットの成分である。更に、重み付けられた灰色成分は、既知の光強度を持つ異なる可能な光源にそれぞれ関連付けられた可能な灰色成分の重み付け平均でありうる。特定の可能な光源に関連付けられた可能な灰色成分の値は、可能な光源によって照明された灰色に関してこの成分が持つであろう値を示す。重み付け平均された可能な灰色成分は、画像が既知の光強度レベルで生成された場合に、可能な灰色成分に関連付けられた可能な光源が、シーンを照明している光源である確率を示す係数によって重み付けられる。この電話は更に、画像フォーマットの成分のゲインを生成するために、重み付けられた灰色成分を用いる電子機器と、画像が生成されたときに、シーンを照明している光源によって引き起こされた画像における色変化に関する成分を補正するためにこのゲインを用いる電子機器とを含む。
詳細な説明
画像システムは、画像フォーマットの1または複数の成分のゲインを生成する。各ゲインは、シーンの画像における色変化に対して画像フォーマットの成分を補正するために使用される。この色変化は、画像が撮られたときにシーンを照明していた光源によって引き起こされる。各ゲインは、シーンを照明している光源の輝度に少なくとも部分的に依存する。例えば、特定のセットの画像データのために決定されたゲインは、光源の輝度に依存して異なりうる。ゲインを生成する場合に輝度を考慮に入れることは、色変化補正が、正しい光源に基づくであろう確率を高める。例えば、明るい画像は、太陽光を光源として屋外で撮られる可能性が高いであろう。一方、さほど明るくない画像は、タングステン光源または蛍光光源の下で、屋内で撮られる可能性が高いであろう。その結果、輝度は、シーンを照明している光源を示す。
ゲインは、それぞれ異なる光源に関連付けられた重み係数を用いて生成される。各重み係数は、シーンが生成されたときに、関連付けられた光源が、このシーンを照明していた光源である確率を示す。これら重み係数はそれぞれ、シーンを照明している光源の輝度の関数である。その結果、異なる光源に関連付けられた重み係数を決定するために、シーンを照明している光源の輝度が用いられる。ゲインは、複数の異なる光源に関するデータの関数であって、各光源のデータは、その光源に関連付けられた重みによって重み付けられる。従って、画像が生成されたときに、各光源が、シーンを実際に照明している光源であるという確率によって重み付けられた異なる光源に関するデータからゲインが生成される。
輝度を用いることによって、蛍光灯の下で撮影された青色と、太陽光の下で撮影された灰色との間の乱れを克服することができる。例えば、シーンを照明している光源が非常に明るい場合、本システムは、蛍光灯よりも太陽光により重みを与えるだろう。従って、ゲインは、支配的な光源として太陽光を主に反映し、画像データは、太陽光からのものを主とする色変化に対して補正されるだろう。シーンを照明している光源が、それほど明るくない場合、本システムは、太陽光よりも蛍光灯により高い重みを与えるだろう。従って、ゲインは主に、支配的な光源として蛍光灯を反映し、画像データは、主に蛍光灯からの色変化に対して補正されるだろう。
重み係数は、簡単なチューニング方法をシステムに提供する。例えば、重み係数は、異なる輝度レベルにおいて、異なる光源の影響を調節するために変えることができる。
図1は、画像システム10のブロック図である。画像システム10は、光センサ16にそれぞれ関連付けられたピクセル14からなるアレイを有する画像センサ12を含んでいる。幾つかの事例では、ピクセルは、カラムとローからなる2次元アレイで構成される。画像センサの例は、限定される訳ではないが、CMOS(相補型金属酸化膜半導体)センサ・チップと、CCD(電荷結合素子)センサ・チップとを含んでいる。
画像システムは、画像センサ12から画像データを受信するように構成された電子機器20を含んでいる。画像データは、シーンの画像を記述する。電子機器20は、画像が生成されたときにシーンを照明していた光源に起因する色変化に対する画像データを補正する。この電子機器は、画像を再生成したり、1または複数の出力デバイス24へその結果を出力するために、補正された画像データを用いることができる。適切な出力デバイス24は、限定される訳ではないが、コンピュータ・システム、プリンタ、送信機、例えばインターネットのようなネットワーク、および、例えばカメラ・ディスプレイ、テレビ電話ディスプレイ、ビデオ・スクリーン、コンピュータ・スクリーンのようなディスプレイを含む。1または複数の出力デバイス24は、画像システム10の一部として示されているが、1または複数の出力デバイス24は、画像システムの外部であっても良い。
電子機器20は、メモリ30と通信するプロセッサ28を含んでいる。メモリ30は、例えば画像や、画像に関連付けられたデータを格納することのような読み/書き動作に適切な任意のメモリ・デバイスまたはこれらメモリ・デバイスの組み合わせでありうる。
プロセッサは、補助電子機器32と電気的に通信している。補助電子機器32は、データを電子機器20に提供したり、電子機器20からデータを受信するシステム内の何れかにある電子機器でありうる。例えば、補助電子機器32は、ビデオ・フロント・エンドでありうる。幾つかの事例では、補助電子機器32は、1または複数のプロセッサ、及び/又は、1または複数のメモリを含んでいる。電子機器20は、画像に関するデータを求めてこれら補助電子機器32にアクセスすることができる。例えば、電子機器20は、画像が生成された時に、シーンを照明している光源の輝度に関するデータを求めてこれら補助電気機器にアクセスすることができる。補助電子機器32は、電気機器とは別のものとして示されているが、補助電子機器と電子機器とは統合されることが可能である。
本発明の方法および装置は、例えば、フロッピ(登録商標)ディスク、CD−ROM、ハード・ドライブ、ランダム・アクセス・メモリまたは読取専用メモリ、あるいはその他の機械読取可能記憶媒体のような明確なメディア内で具体化されたプログラム・ロジックまたはプログラム・コード(すなわち、命令群)のうちの少なくとも一部を形成することができる。プログラム・コードが、例えばコンピュータのような機械へロードされ、実行される場合、この機械が、本発明を実現するための装置になる。本発明の方法および装置はまた、光ファイバや、無線インタフェースや、その他任意の送信形式を介した例えば電気的ワイヤリングまたはケーブリングのような幾つかの送信媒体を介して送信されるプログラム・コードの形式で具体化されうる。プログラム・コードが受信され、ロードされ、例えばプロセッサのような機械によって実行される場合、この機械が、本発明を実現する装置となる。汎用プロセッサ上で実施される場合、プログラム・コードは、プロセッサと一緒になって、具体的なロジック回路と似たように動作するユニークな装置を提供する。幾つかの事例では、電子機器は、プロセッサ28と通信するコンピュータ読取可能媒体34を含む。コンピュータ読取可能媒体は、プロセッサによって実行される命令群からなるセットを有することができる。コンピュータ読取可能媒体34は、メモリ30とは異なるものとして示されているが、コンピュータ読取可能媒体34は、メモリ30と同じになることができる。
適切なプロセッサ28は、限定される訳ではないが、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールド・プログラム可能ゲート・アレイ(FPGA)またはその他のプログラム可能ロジック回路、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、あるいは本明細書に記載の機能を実行するように設計された任意の組み合わせを含む。汎用プロセッサは、マイクロプロセッサでありうるが、代替例では、このプロセッサは、任意の従来式プロセッサ、コントローラ、マイクロコントローラ、または状態機械でありうる。プロセッサはまた、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1または複数のマイクロプロセッサ、またはその他任意のそのような構成のような計算デバイスの組み合わせとして実現されうる。
適切なコンピュータ読取可能媒体34は、限定される訳ではないが、例えば、CD、磁気記憶ディスケット、Zipディスク、磁気テープ、RAM、およびROMのような光ディスクを含む。幾つかの事例では、コンピュータ読取可能媒体34は、画像システムの外部に位置する。例えば、コンピュータ読取可能媒体は、コンピュータ・ネットワーク上のサーバ・コンピュータに接続することができる。幾つかの事例では、コンピュータ読取可能媒体34は必要ではない。
適切な画像システム10の例は、限定される訳ではないが、デジタル・カメラ、ビデオ・カメラ、モバイル・カメラ電話、医療用画像デバイスを含む。画像システムはさらに、画像データを格納するように構成されたコンピュータ・システムでありうる。適切なコンピュータ・システムの一例は、限定される訳ではないが、パーソナル・コンピュータおよびサーバを含む。幾つかの事例では、画像システムは、画像センサを含んでいない。例えば、画像システムがコンピュータ・システムである場合、画像センサは必ずしも画像システムには含まれない。画像センサが画像システムに含まれない場合、画像センサは、画像システムから独立することができるが、電子機器がセンサ値を受信できるように、画像システムと通信するように配置されうる。
図2は、図1の画像システムのような画像システムを介した画像データの進展を示す。画像データは、RGBフォーマットあるいはYCbCrフォーマットのような画像フォーマットでありうる。画像フォーマットは、異なる成分を含む。例えば、RGBフォーマットはR成分、G成分、およびB成分を含む一方、YCbCr画像フォーマットは、Y成分、Cb成分、およびCr成分を含む。ほとんどの事例では、画像フォーマットの成分の各々は、画像の光学特性を示す。例えば、RGBフォーマットでは、R成分がピクセルの赤成分を示し、G成分がピクセルの緑成分を示し、B成分がピクセルの青成分を示す。YCbCrフォーマットでは、Yは、ピクセルのルミネセンス成分を示す一方、CbおよびCrは各々、ピクセルのクロミナンス成分を示す。その結果、画像成分のセットは一般に、ピクセルの光学特性を記述する。しかしながら、電子機器は、個々のピクセル以外の項目を記述するために、画像フォーマットの成分を適用する。例えば、多数のピクセルを含んでいる領域の光学特性は、画像フォーマットの成分を用いて記述することができる。その結果、画像の領域は、R成分(Rreg)、G成分(Greg)、およびB成分(Breg)を用いて記述することができる。
画像の生成中、電子機器は、画像センサから画像データを受け取る。電子機器は、メモリ内にこの画像データを格納する。画像データは、例えばRGBフォーマットのような初期フォーマットである場合がある。例示目的のために、図2は、RGBフォーマットの画像データで始まる。電子機器は、生のデータ・フォーマットを、灰色のピクセル識別フォーマットへ変換する。電子機器は、可能な灰色のピクセルを識別するために、灰色ピクセル識別フォーマットの画像データを適用する。その結果、識別フォーマットは、初期フォーマットよりも、灰色のピクセルを識別するのにより適することができる。初期フォーマットが、可能な灰色ピクセルを識別するのに適切な事例では、画像データを初期フォーマットから識別フォーマットへ変換することは、実現のために必要ではないかもしれない。その結果、画像データを初期フォーマットから識別フォーマットへ変換することは、オプションでありうる。適切な識別フォーマットは、限定される訳ではないが、YCbCrフォーマットを含んでいる。図2は、YCbCrフォーマットの画像データに変換される初期RGBフォーマットの画像データを示す。
電子機器は、可能な灰色ピクセルを識別するために、灰色の識別フォーマットの画像成分を用いる。例えば、電子機器は、このピクセルが可能な灰色のピクセルであるかを判定するために、ピクセルに関する識別フォーマットのうちの1または複数の成分を、1または複数の基準と比較することができる。この識別フォーマットがYCbCrフォーマットである場合、電子機器は、範囲内にY値を持つピクセルを選択することができる。Yに対する値の範囲は、暗すぎるピクセルであるか、明るすぎるピクセルが、可能な灰色ピクセルのプールから取り除かれるように確立することができる。その後、電子機器は、それぞれCrおよび/またはCbの関数である1または複数の基準を満足する選択されたピクセルを識別することができる。識別されたピクセルは、可能な灰色ピクセルとして役立つ。灰色ピクセルを識別するために適切な基準は、以下の式で表現することができる。例えば、以下の6つの式を満足するYCbCr成分を備えたピクセルは、可能な灰色ピクセルと考えることができる。
定数m1、m2、m3、m4、c1、c2、c3およびc4は、1または複数の可能な灰色ピクセルが、ほとんど全ての画像が実際に識別されることを促進しながら、可能な灰色ピクセルの正確な選択を促進するために選択される。例示目的のために、図2におけるダイヤグラムAは、画像内のピクセルの一部を例示する。ピクセルの一部は、灰色になり、可能な灰色ピクセルを表す。式1乃至式6は、個別の式として例示されているが、これら式は結合することが可能である。例えば、式1および式2は、Ymin≦Y≦Ymaxとして表すことができる。
幾つかの事例では、可能な灰色ピクセルであるかを識別するために、ピクセルの一部のみが処理される。大量のデータを有するより大きな画像では、この処理時間は、全ピクセルよりも少ないピクセルをサンプルすることによって低減される。例えば、灰色ピクセルであるかを確かめるために、水平方向および/または垂直方向におけるその他全てのピクセルがテストされる。
電子機器は、画像を、領域またはブロックに分割する。例えば、図2におけるダイヤグラムBは、領域に分割された画像の一部を例示する。各領域は、複数のピクセルを含む。例えば、図2のダイヤグラムAに例示するような画像の一部は、図2のダイヤグラムBにおける領域のうちの1つとなる。一例において、各領域は、(ピクセル/16の画像幅)ピクセル×(ピクセル/16の画像高さ)ピクセルを含み、他の例では、各領域は、(ピクセル/8の画像幅)ピクセル×(ピクセル/8の画像高さ)ピクセルを含む。別の例では、各領域はそれぞれ単一のピクセルを含んでいる。従って、以下の説明は、個々のピクセルを表わす各領域で行なうことができる。
電子機器は、可能な灰色ピクセルのうちの1つを含む各領域の領域成分を決定することができる。各領域成分は、識別フォーマットの成分に対応する。例えば、領域成分は、識別フォーマットでありうる。その結果、領域成分は、識別フォーマットの成分と同じでありえる。一例として、識別フォーマットがYCbCrフォーマットである場合、領域成分は、領域Y成分(Yreg)、領域Cb成分(Cbreg)、および領域Cr成分(Crreg)を含むことができる。従って、領域Y成分(Yreg)は、識別フォーマットのY成分に対応し、領域Cb成分(Cbreg)は、識別フォーマットのCb成分に対応し、領域Cr成分(Crreg)は、識別フォーマットのCr成分に対応する。
各領域成分はそれぞれ生成されるので、領域における可能な灰色ピクセルの対応する成分を表す。例えば、電子機器は、領域内の可能な灰色ピクセルのY値を平均化することによって、領域の領域Y成分(Yreg)を生成し、領域内の可能な灰色ピクセルのCb値を平均化することによって、領域の領域Cb成分(Cbreg)を生成し、領域内の可能な灰色ピクセルのCr値を平均化することによって、領域の領域Cr成分(Crreg)を生成することができる。あるいは、電子機器は、領域Y成分(Yreg)として、領域内の可能な灰色ピクセルのY値のメジアンを用い、領域Cb成分(Cbreg)として、領域内の可能な灰色ピクセルのCb値のメジアンを用い、領域Cr成分(Crreg)として、領域内の可能な灰色ピクセルのCr値のメジアンを用いることができる。領域のうちの幾つかは、何れの灰色ピクセルをも含まないので、領域のうちの少なくとも一部は、それぞれ領域成分に関連付けられる。
電子機器は、領域成分を識別フォーマットから比較フォーマットに変換することができる。電子機器は、領域成分に関連付けられた領域の各々が灰色領域であるかを判定するために比較フォーマットを適用する。その結果、比較フォーマットは、灰色領域を識別するために、識別フォーマットよりもより適切でありうる。図2に示す例では、電子機器は、YCbCrフォーマットの領域成分を、RGBフォーマットとYCbCrフォーマットとの間の従来式の変換を用いて、RGBフォーマットの領域成分に変換する。その変換の結果、領域R成分(Rreg)、領域G成分(Greg)、および領域B成分(Breg)となる。幾つかの事例では、識別フォーマットは、比較フォーマットとして用いるのに適している。その結果、識別フォーマットから比較フォーマットへの領域成分の変換は必要ではないかもしれない。更に、比較フォーマットは、初期フォーマットと同じでありえる。例えば、図2に例示するように、初期フォーマットと比較フォーマットは共に、RGBフォーマットでありうる。
電子機器は、異なる光源に関し、領域成分を基準データと比較することができる。異なる光源の例は、限定される訳ではないが、白熱光源、ハロゲン光源、タングステン光源、蛍光光源、異なる日時における太陽光、および/または異なる条件下における太陽光を含む。光源は、例えば太陽光と蛍光灯との組み合わせのような光源の組み合わせになりえる。
基準データは、メモリ内に格納することができる。基準データは、メモリ内に格納することができる。
基準データは、各光源に関連付けられた基準成分を含むことができる。各基準成分は、比較フォーマットの成分に対応することができる。例えば、基準成分は、比較フォーマットでありうる。その結果、基準成分は、比較フォーマットの成分と同じでありうる。一例として、比較フォーマットがRGBフォーマットである場合、基準成分は、基準R成分(Rref)、基準G成分(Gref)、および基準B成分(Bref)を含むことができる。従って、基準R成分(Rref)は、比較フォーマットにおけるR成分に相当し、基準G成分(Gref)は、比較フォーマットにおけるG成分に相当し、基準B成分(Bref)は、比較フォーマットにおけるB成分に相当する。灰色を示す光源の基準成分は、その光源によって照明された場合に表れる。従って、光源の基準成分は、その光源によって照明された場合、灰色の光特性を示す。
灰色シーンの画像を生成することによって基準データが生成される。ここでは、各画像が、基準データが望まれる光源によって照明される。灰色シーンは、一様に照明されるフラット・フィールドでありうる。幾つかの事例では、同じ光源について1より多い画像が生成される。画像は比較フォーマットで生成されるか、または、比較フォーマットへ変換される。画像の比較フォーマットは、光源によって照明された灰色を表す基準成分を識別するために処理される。例えば、光源の基準R値は、光源によって照明された画像のうちの1または複数における異なるピクセルのR値の平均でありうる。あるいは、光源の基準R値は、光源によって照明された画像のうちの1または複数における異なるピクセルのR値のメジアンでありうる。
領域成分は、灰色領域を識別するために、基準成分と比較される。この比較は、比較フォーマット空間における異なる点の間の距離を利用することができる。RGBはカラー・フォーマットである。その結果、比較フォーマットがRGBフォーマットである場合、比較フォーマット空間はRGB色空間である。従って、比較フォーマットがRGBフォーマットである場合、この比較は、RGB色空間における異なる点の間の距離を利用することができる。
図2におけるダイヤグラムCは、B/Gを表すx軸とR/Gを表すy軸とを備えたRGB色空間を例示する2次元ダイヤグラムである。基準点は、P1refとラベルされた黒丸で示される。この基準点は、RGB色空間内の光源のうちの1つの基準成分の位置を例示する。例えば、P1refとラベルされた基準点は、蛍光光源に関連付けられたRref、Gref、およびBrefに位置することができる。領域点は、中空円として例示される。領域点は、比較フォーマット空間におけるその領域の位置を例示する。例えば、P1regとラベルされた領域点は、図2のダイヤグラムBに例示するような領域のうちの1つに関連付けられたRreg、Greg、およびBregから決定されるような(Rreg/Greg、Breg/Greg)に位置することができる。図2におけるダイヤグラムCは、2次元のダイヤグラムを示すが、比較フォーマット空間は、2次元を超える次元で表現されることも可能である。例えば、RGB色空間は、R成分を表すx軸と、G成分を表すy軸と、B成分を表すy軸とを備えた3次元でありうる。
基準データは、光源の各々に関連付けられた距離範囲を含むことができる。幾つかの事例では、この距離範囲は、光源の各々について同一である。この距離範囲は、メモリ内に格納することができる。幾つかの事例では、この距離範囲は、基準データ内に含まれる。
電子機器は、領域点の各々について、領域点と、最も近い基準点との間の距離を判定することができる。判定された距離は各々、比較距離として役立つ。領域の比較距離は、最も近い基準点に関連付けられた距離範囲と比較することができる。比較距離が、距離範囲内にある場合、領域点に関連付けられた領域が、灰色領域として分類され、その領域点の領域データが、将来の計算のために保持される。比較距離が距離範囲を越える場合、その領域点に関連付けられた領域は、灰色領域となることはできず、その領域点の領域データが、将来の計算のために保留される。灰色領域を識別する処理は、その領域点の各々について繰り返すことができる。
灰色領域を識別する処理は、基準点の各々における円を中心としており、かつ、円の外側に位置する領域点を除外するものとして例示される。特定の基準点の周りの円の直径は、その基準点に関連付けられた距離範囲と等しい。例示目的のために、図2のダイヤグラムCは、P1refとラベルされた基準点を中心とし、幾つかの領域点を囲んでいる円を含む。この円の外側の領域点は、破棄することができる。例えば、P2regとラベルされた領域点は、円の外側にあり、更なる計算から破棄することができる。
灰色領域を識別する処理は、2次フィルタとして作用することができ、可能な灰色ピクセルを識別する処理は、1次フィルタとして作用することができる。2次フィルタ処理は、領域成分が、灰色ピクセルを実際に含む領域のためであることを保証するのに役立つ。例えば、1次フィルタ処理は、ある緑ピクセルとある黄色ピクセルとを、可能な灰色ピクセルであるとして誤って識別しうる。2次フィルタ処理は、領域成分が、灰色の基準成分に近いが必要であるので、2次フィルタ処理は、誤って識別された可能な灰色ピクセルを含む領域を除去することができる。
電子機器は、可能な光源を識別するために灰色領域を用いる。例えば、電子機器は、基準点の周りの領域点のクラスタを識別することができる。図2においてダイヤグラムCに関して述べたように、基準点に関連付けられた距離範囲は、比較フォーマット空間内の基準点の周りの円として例示することができる。円の内部の領域点は、領域点のクラスタに属する。異なる円内の領域点は、異なるクラスタに属する。幾つかの事例では、領域点は、2つの異なるクラスタに関連付けられた円内に位置し、この領域点がどのクラスタに属するか明らかではないかもしれない。これらの事例では、領域点は、その領域点に最も近い基準点に関連付けられたクラスタに属するものとして指定されうる。図2におけるダイヤグラムCは、Aとラベルされたクラスタと、Bとラベルされたクラスタとを例示する。クラスタ内の灰色領域はそれぞれ、灰色領域がクラスタ化される基準点に関連付けられる。各基準点は光源に関連付けられているので、各灰色領域もまた光源に関連付けられる。光源に関連付けられた灰色領域の数は、しきい値数と比較することができる。しきい値数を越える灰色領域の数に関連付けられた光源は、画像が取得された時間においてシーンを照明している実際の光源である可能な光源として分類される。例えば、ダイヤグラムCで例示された画像は、Aとラベルされたクラスタ内の灰色領域に関連付けられた光源、および/または、Bとラベルされたクラスタ内の灰色領域に関連付けられた光源によって照明されるであろう。幾つかの事例では、1または複数の光源が、灰色領域のしきい値数と等しいかまたはそれより少ない灰色領域の数に関連付けられる。これらの光源は、可能な光源として分類されないだろう。可能な光源として分類されるべき光源のための光源に関連付けられる必要のある灰色領域のしきい値数は、0、1、および/または1を越える値でありうる。
電子機器は、可能な光源の各々について可能な灰色成分を生成する。可能な灰色成分はそれぞれ、比較フォーマットの成分に相当することができる。従って、可能な灰色成分は、比較フォーマットの成分と同じでありえる。一例として、比較フォーマットがRGBフォーマットである場合、可能な灰色成分は、可能な灰色R成分(Rss)、可能な灰色G成分(Gss)、および可能な灰色B成分(Bss)を含むことができる。従って、可能な灰色R成分(Rss)は、比較フォーマットのR成分に相当し、可能な灰色G成分(Gss)は、比較フォーマットのG成分に相当し、可能な灰色B成分(Bss)は、比較フォーマットのB成分に相当する。
特定の可能な光源のための可能な灰色成分の値は、その可能な光源によって照明された場合、フォーマット成分がその灰色のために持つであろう値の近似である。従って、電子機器は、その可能な光源に関連付けられた灰色領域のための光学特性を特徴付けることができるように、特定の可能な光源のための可能な灰色成分を生成する。その結果、可能な光源の可能な灰色成分は、その可能な光源に関連付けられた灰色領域の領域成分の関数でありうる。例えば、可能な光源のための可能な灰色成分は、その可能な光源に関連付けられた灰色領域のための対応する領域成分の平均でありうる。一例として、可能な光源のRssは、その光源に関連付けられたRreg値の平均でありうる。あるいは、可能な光源用の可能な灰色成分は、その可能な光源に関連付けられた灰色領域の対応する領域成分のメジアンでありうる。
電子機器は、重み付けられた灰色成分を決定するために、可能な灰色成分を使用する。重み付けられた各灰色成分は、比較フォーマットの成分に相当することができる。重み付けられた灰色成分は、比較フォーマットの成分と同じでありえる。一例として、比較フォーマットがRGBフォーマットである場合、重み付けられた灰色成分は、重み付けられたR成分(Rw)、重み付けられたG成分(Gw)、および重み付けられたB成分(Bw)を含むことができる。従って、重み付けられたR成分(Rw)は、比較フォーマットにおけるR成分に相当し、可能な灰色G成分(Gw)は、比較フォーマットにおけるG成分に相当し、可能な灰色B成分(Bw)は、比較フォーマットにおけるB成分に相当する。
電子機器は、重み付けられた灰色成分を決定するために重み係数をも使用する。可能な光源の各々は、重み係数と関連付けることができる。重み係数は、シーンの画像が生成されたとき、この係数に関連付けられた可能な光源が、シーンを照明している光源である確率を示すことができる。例えば、重み係数は、画像のための実際の光源がタングステン光源であるか太陽光であるかの相対確率を示すことができる。
光源に関連付けられた重み係数は、シーンの画像が撮られたときに、シーンを照明している光源の輝度に少なくとも部分的に依存することができる。例えば、表1は、異なる輝度レベルに対する可能な重み係数を示す。高い輝度レベルでは、太陽光の重み係数は、タングステン光源および/または蛍光光源の重み係数よりも大きい。この重み付けは、非常に明るい画像が戸外で撮られることが高い確率を反映する。例えば、タングステン光源を1に重み付ける一方、太陽光を200に重み付けることは、画像が太陽光によって照明される相対確率が、画像がタングステン光源によって照明される確率の200倍であることを示す。低い輝度レベルでは、太陽光の重み係数は、タングステン光源および/または白熱光源の重み係数よりも低い。この重み付けは、薄暗い条件で生成された画像が屋内で撮られたとの確率が高いことを反映する。例えば、タングステン光源を2に重み付ける一方、太陽光を1に重み付けることは、画像が太陽光によって照明される相対確率が、画像がタングステン光源によって照明される確率の半分であることを示す。従って、重み係数は、画像が、可能な光源のうちの特定の1つによって照明される確率を示す。
輝度に少なくとも部分的に依存する重み係数に各光源を関連付けるデータは、メモリに格納することができる。幾つかの事例では、重み係数に各光源を関連付けるデータは、基準データとともに含まれる。例えば、基準データは、例えば表1に示すデータのようなデータを含むルック・アップ・テーブルを含むことができる。
電子機器は、自動露光制御ロジックから画像輝度を決定することができる。自動露光制御ロジックは、図1に示された第2の電子機器に含まれている。例えばカメラのような多くの画像デバイスが、ビデオ・フロント・エンド(VFE)内に第2の電子機器を含んでいる。電子機器は、輝度を、輝度に少なくとも部分的に依存する重み係数に各光源を関連付けるデータと比較することにより、個々の可能な光源の重み係数を決定することができる。例えば、第1の条件の下では、太陽光の重み係数が1であることを決定するために、電子機器は、低輝度を、表1内のデータと比較することができる。重み係数を決定する際に、電子機器は、実際に輝度を使用する必要はないが、輝度を示すか、輝度と関連する信号および/またはその他の変数を使用することができる。
電子機器は、重み付けられた灰色成分を生成するために、重みおよび可能な灰色成分を使用する。重み付けられた灰色成分は各々、比較フォーマットの成分に相当しうる。例として、比較フォーマットがRGBフォーマットである場合、重み付けられた灰色成分は、重み付けられたR成分(Rw)、重み付けられたG成分(Gw)、および重み付けられたB成分(BW)を含むことができる。
重み付けられた灰色成分は、それぞれの可能な灰色成分に関連付けられた光源が、画像のための実際の光源である確率によって重み付けられた1または複数の光源によって関連付けられた可能な灰色成分であることを示す。その結果、重み付けられた灰色成分は、画像内の灰色ピクセルに属する成分の近似である。
電子機器は、対応する可能な灰色成分の重み付け平均を生成することにより、重み付けられた灰色成分を生成することができる。重み付け平均における各可能な灰色成分は、可能な灰色成分に関連付けられた可能な光源が、画像が生成されたときにシーンを照明していた光源でもあるという確率を示す係数によって重み付けることができる。例として、Aとラベルされたクラスタと関連付けられた光源の可能な灰色R成分は、Rss、Aと示され、Bとラベルされたクラスタと関連付けられた光源の可能な灰色R成分は、Rss、Bと示され、Aとラベルされたクラスタと関連付けられた光源の重み係数は、WAと示され、Bとラベルされたクラスタと関連付けられた光源の重み係数は、WBと示される。これら表示を用いて、重み付けられたR成分(RW)は、Rw=(WA*Rss、A+WBRss、B)/(WA+WB)として示される。その結果、重み付けられた灰色成分は、重み係数と可能な灰色成分との関数である。
電子機器は、比較フォーマットの成分のゲインを決定するために、重み付けられた灰色成分を用いる。このゲインはそれぞれ、比較フォーマットの成分に相当している。例として、比較フォーマットがRGBフォーマットである場合、ゲインは、R成分(GR)のためのゲイン、G成分(GG)のためのゲイン、およびB成分(GB)のためのゲインを含むことができる。
RGBフォーマットでは、R成分、G成分、およびB成分は、灰色と等しい。灰色のR成分、G成分、およびB成分の各々を設定するために、電子機器は、予備的な赤ゲイン(PGR)を1/Rw、予備的な緑ゲイン(PGG)を1/Gw、予備的な青ゲイン(PGB)を1/Bwと定めることができる。電子機器は、赤ゲインGR、緑ゲインGG、および青ゲインGBを提供するために、PGR、PGG、およびPGBからなるグループにおける最低値によって、PGR、PGG、およびPGBの値を規格化することができる。ゲインは、重み係数の関数である重み付け灰色成分から決定されるので、ゲインは、重み係数の関数である。ゲインは、重み係数の関数であり、重み係数は、シーンを照明する光源の輝度に少なくとも部分的に依存するので、ゲインは、画像の輝度に少なくとも部分的に依存する。例えば、フォーマットされた画像データのセットのために決定されるゲインは、画像が生成されたときにシーンを照明していた光源の輝度に依存して異なりうる。
画像成分ゲインは、光源ベースの色変化に対して画像を補正するために用いることができる。例えば、画像データが、比較フォーマットと同じフォーマットで利用可能な場合、光源ベースの色変化に対して画像を補正するために、画像データの成分に、対応するゲインを乗じることができる。例えば、画像データがRGBフォーマットにおいて利用可能であり、比較フォーマットがRGBフォーマットである場合、補正された画像データは、画像データ内のR値に赤ゲインを乗じ、画像データ内のG値に緑ゲインを乗じ、画像データ内のB値に青ゲインを乗じることによって生成される。画像データが、比較フォーマットと同じフォーマットで利用可能ではない場合、ゲインは、比較フォーマットから、画像データと同じフォーマットに変換することができる。あるいは、画像データは、ゲインと同じフォーマットに変換することができる。電子機器は、補正された画像データをメモリに格納するか、あるいは、またはそれに加えて、補正された画像を出力デバイス上に表示することができる。
図3は、光源ベースの色変化に対して画像を補正するために画像データを処理する方法を例示するフロー図である。処理ブロック200では、画像データが受け取られる。例えば、電子機器が、画像センサから画像データを受け取ることができる。この画像データは、シーンの画像のためのものである。画像データは、例えばRGBフォーマットのような画像成分を有する初期フォーマットにある。処理ブロック202では、画像内の灰色ピクセルが識別される。例えば、電子機器は、この画像データを、初期フォーマットから、画像成分をも持つ灰色ピクセル識別フォーマットへ変換することができる。灰色ピクセルの識別に適切なフォーマットは、YCbCrフォーマットでありうる。灰色ピクセル識別フォーマット・ピクセルの成分は、可能な灰色ピクセルであるピクセルを識別するために、式1〜6に示す基準と比較されうる。
処理ブロック204では、灰色領域が識別される。例えば、電子機器は、領域成分を生成するために、画像における異なる領域に位置する可能な灰色ピクセルのための画像成分を平均化することができる。電子機器は、基準データと比較するために、領域成分を、灰色ピクセル識別フォーマットから比較フォーマットへ変換することができる。例えば、電子機器は、領域成分を、例えばYCbCrのようなピクセル識別フォーマットから、例えばRGBのような比較フォーマットに変換することができる。電子機器は、各領域が灰色領域であるかを判定するために、比較フォーマットにおける領域成分を、基準データと比較することができる。幾つかの事例では、この比較は、領域と基準点との間の、比較フォーマット空間における距離を決定することを含む。領域と、最も近い基準点との間の距離が、距離範囲よりも大きい場合、その領域は、灰色領域ではないと判定される。領域と、最も近い基準点との間の距離が、距離範囲内である場合、その領域は、その基準点に関連付けられた灰色領域であると判定される。1を超える基準点の距離範囲内に領域がある場合、その領域は、最も近い基準点に関連付けられた灰色領域でありうる。
処理ブロック206では、可能な光源が識別される。灰色領域はそれぞれ基準点に関連付けられ、基準点はそれぞれ光源に関連付けられているので、灰色領域はそれぞれ光源に関連付けられている。電子機器は、光源に関連付けられた灰色領域の数を決定することができる。光源に関連付けられた灰色領域の数がしきい値を越える場合、電子機器は、その光源を可能な光源として分類することができる。光源に関連付けられた灰色領域の数が、しきい値に、あるいはそれ以下になった場合、電子機器は、その光源を可能な光源として分類することができる。この処理は、光源の各々のために繰り返されうる。
処理ブロック208では、画像フォーマットの成分のためのゲインが生成される。例えば、電子機器は、ゲインを生成するために、灰色領域のデータを、可能な光源の各々の基準データと比較することができる。図4は、ゲインを生成する適切な方法を図示するフローチャートである。
処理ブロック210では、画像が生成された場合にシーンを実際に照明していた光源によって引き起こされた色変化に対して画像データが補正される。例えば、電子機器は、ゲインを用いて、画像データの1または複数の成分に、対応するゲインを乗じることによって画像データの成分を補正することができる。電子機器は、補正された画像データをメモリ内に格納し、あるいは、またはそれに加えて、補正された画像データを出力デバイスに出力し、あるいは、またはそれに加えて、補正された画像を出力デバイス上に表示することができる。
図4は、画像フォーマットの1または複数の成分のためのゲインを生成する適切な方法を例示するフロー図である。処理ブロック230では、可能な光源と灰色領域のデータが受け取られる。例えば、電子機器は、図3の処理ブロック206で生成されたデータにアクセスすることができる。処理ブロック232では、各可能な光源の可能な灰色成分が生成される。例えば、電子機器は、可能な光源に関連付けられた灰色領域の対応する領域成分を平均化することによって、可能な光源の可能な灰色成分を生成することができる。電子機器は、可能な光源の各々、および成分の各々に対する平均化処理を繰り返すことができる。
処理ブロック234では、シーンを照明していた光源の輝度が決定される。例えば、電子機器は、補助電子機器から輝度を受け取ることができる。あるいは、電子機器は、補助電子機器から、輝度を示すデータであるか、あるいは、機能の関数であるデータを受け取ることができる。処理ブロック236では、可能な光源の各々の重み係数を決定するために輝度が用いられる。例えば、電子機器はメモリから、各光源を、輝度の関数である重み係数に関連付けるデータにアクセスすることができる。例として、電子機器は、メモリから、表1のデータを含むルック・アップ・テーブルにアクセスすることができる。電子機器は、各可能な光源の重み係数を決定できるように、処理ブロック234で決定された輝度を、データと比較することができる。
処理ブロック238では、重み付けられた灰色成分を生成するために、重み係数と、可能な灰色成分とが合成される。例えば、電子機器は、可能な灰色成分の重み付け平均を生成することができる。この成分の重み付け平均は、光源についての重み係数によって重み付けられた各可能な光源に対応する可能な灰色成分を有することができる。
処理ブロック240では、重み付けられた灰色成分が、ゲインを生成するために使用される。例えば、電子機器は、成分について重み付けられた灰色成分の逆数として、その成分のための予備的ゲインを決定することができる。予備的ゲインは、重み付けられた灰色成分の各々について決定することができる。電子機器は、ゲインを生成するために、最も低い予備的ゲインによって、予備的ゲインを規格化することができる。
図3および図4のフロー図内で例示された処理ブロックおよび決定ブロックは、例示されたシーケンス以外のシーケンスでも行うことが可能である。例えば、図4は、処理ブロック234および処理ブロック236と平行して実行される処理ブロック230および処理ブロック232を示す。しかしながら、処理ブロック230、処理ブロック232、処理ブロック234、および処理ブロック236は、連続的に実行することができる。更に、あるいは、その代わりに、図3および図4のフロー図の開示の一部はオプションである。例えば、初期フォーマットからピクセル識別フォーマットへの変換は、オプションでありうる。また、ピクセル識別フォーマットから比較フォーマットへの変換も、オプションでありうる。
図5は、色変化を補正できるように画像データを処理する論理モジュールを示す論理フロー図である。電子機器18は、画像センサから画像データを受け取るように構成された灰色ピクセル識別モジュール252を含む。灰色ピクセル識別モジュール252は、画像内の可能な灰色ピクセルを識別できるように、画像データを処理することができる。電子機器はまた、灰色領域識別モジュール254と基準データ・モジュール256とを含んでいる。基準データ・モジュール256は、基準光源の基準成分を格納し、処理することができる。灰色領域識別モジュール254は、領域成分を生成するために、画像の異なる領域に位置する可能な灰色ピクセルの画像データを処理することができる。灰色領域識別モジュール254は、灰色領域を識別するために、領域成分を基準成分と比較することができる。
電子機器は、灰色領域識別モジュール254から灰色領域の領域成分を受け取り、かつ、基準データ・モジュール256から基準成分を受け取る可能光源識別モジュール258を含む。可能光源識別モジュール258は、可能な光源を識別するために、灰色領域の領域成分を、基準成分と比較する。可能な光源の各々は、画像が撮られたときにシーンを照明している光源でありうる。
電子機器はまた、シーンの画像が生成されているときにシーンを照明している光源の輝度を決定するように構成された輝度モジュール260を含む。例えば、電子機器は、補助電子機器から、輝度または輝度を示すデータを受け取ることができる。基準データ・モジュール256は、輝度モジュール260から輝度を受け取り、この輝度を、係数データと比較することができる。係数データは、輝度に少なくとも部分的に依存する重み係数に各光源を関連付ける。基準データ・モジュール256は、光源の各々の重み係数を生成できるように、輝度を係数データと比較することができる。
電子機器は、基準データ・モジュール256から重み係数を受け取り、かつ、可能光源識別モジュール258から可能な光源の領域データを受け取るゲイン生成モジュール262を含む。ゲイン生成モジュール262は、各可能な光源の可能な灰色成分を生成するために、可能な光源の領域データを用いる。ゲイン生成モジュール262は、画像データの成分のゲインを生成するために、可能な灰色成分と重み係数とを合成する。
電子機器は、画像補正モジュール264を含んでいる。この画像補正モジュールは、画像が生成されたときにシーンを照明している光源から生じる色変化に対し、画像データのうちの1または複数の成分を補正するために、ゲイン生成モジュールからのゲインを用いる。補正された画像データは、出力デバイス24において受け取ることができる。電子機器はまた、画像補正モジュール264から、補正された画像データを受け取り、それを格納する記憶モジュール266を含んでいる。
上記開示は灰色を用いることに関して与えられているが、本開示はその他の色に関しても適用可能である。更に、この開示は、RGBフォーマットやYCbCRフォーマット以外のフォーマットに関しても適用可能である。
上述した1または複数の方法のうちの全てまたは一部は、画像システムによって、あるいは、画像システム内の電子機器によって実行される。更に、プロセッサは、上述した方法の1または複数のうちの全てまたは一部を実行することができる。電子機器が、コンピュータ読取可能媒体を含む場合、プロセッサは、コンピュータ読取可能媒体上の命令群を実行することができる。これら命令群は、プロセッサに対して、上述した方法の1または複数のうちの全てまたは一部を実行させることができる。更に、上述した方法の1または複数のうちの全てまたは一部は、開示した画像システム以外のシステムおよびデバイスによって実行することができる。
当業者であれば、これら情報および信号が、種々異なった技術や技法を用いて表されることを理解するであろう。例えば、上述した記載の全体で引用されているデータ、命令群、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学微粒子、あるいはこれら何れかの組み合わせによって表現されうる。
当業者であれば、更に、本明細書で開示された実施形態に関連して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム・ステップが、電子工学ハードウェア、コンピュータ・ソフトウェア、あるいはこれらの組み合わせとして実現されることを理解するであろう。ハードウェアとソフトウェアとの相互置換性を明確に説明するために、様々な例示的な部品、ブロック、モジュール、回路、およびステップが、それらの機能に関して一般的に記述された。それら機能がハードウェアとして又はソフトウェアとして実現されるかは、特定のアプリケーション及びシステム全体に課せられている設計制約に依存する。当業者であれば、各特定のアプリケーションに応じて変化する方法で上述した機能を実現することができる。しかしながら、この適用判断は、本発明の範囲からの逸脱をもたらすものと解釈されるべきではない。
本明細書で開示された実施形態に関連して記述された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)あるいはその他のプログラマブル論理デバイス、ディスクリート・ゲートあるいはトランジスタ・ロジック、ディスクリート・ハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実施されうる。
汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。プロセッサは、例えばDSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアに接続された1または複数のマイクロプロセッサ、またはその他任意のこのような構成である計算デバイスの組み合わせとして実現することも可能である。
本明細書で開示された実施形態に関連して記述された方法やアルゴリズムのステップは、ハードウェアによって直接的に、プロセッサによって実行されるソフトウェア・モジュールによって、または、これらの組み合わせによって具体化される。ソフトウェア・モジュールは、RAMメモリ、フラッシュ・メモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブル・ディスク、CD−ROM、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。典型的な記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されることができる。このプロセッサと記憶媒体とは、ASIC内に存在することができる。ASICは、ユーザ端末内に存在することもできる。あるいはこのプロセッサと記憶媒体とは、ユーザ端末内のディスクリート部品として存在することができる。
開示された実施形態における上述の記載は、当業者をして、本発明の製造または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当業者には明らかであって、本明細書で定義された一般的な原理は、本発明の主旨または範囲から逸脱することなく他の実施形態にも適用されうる。このように、本発明は、本明細書で示された実施形態に限定されるものではなく、本明細書に記載された原理および新規な特徴に一致した最も広い範囲に相当することが意図されている。