(57)【特許請求の範囲】
【請求項１】
複数の色成分を含む画像データのフレームを複数の画素データを含む複数のブロックに分割し、
一つ以上の色温度を定義し、
前記複数のブロックの全部または一部のうちの各々について、該ブロックが前記定義された色温度において灰色の可能性があるか否かを判定し、
灰色の可能性があると判定されたブロックにおける色成分の平均値の組である、第一の平均値の組を計算し、
前記第一の平均値の組に基づいて、ホワイトバランスを調整するためのゲインを決定し、
ホワイトバランスを調整するための前記ゲインの決定において、第一の補足値の組を考慮することであって、前記第一の補足値の組は、前記定義された色温度に対応する位置から第二の平均値の組に対応する位置への最短距離を有する、プランク曲線上の位置に対応する色成分に関する値の組であり、前記第二の平均値の組は、いかなる飽和画素も含まないブロックおよび／または飽和画素を含むブロックに隣接しないブロックの各色成分の平均値の組である、前記考慮する、
ように構成される装置。
【請求項２】
各々異なる複数の光度範囲を定義し、
前記光度範囲の各々について、前記複数のブロックが前記光度範囲において灰色の可能性があるか否かを判定すると共に、該光度範囲において灰色の可能性があると判定されたブロックにおける複数の色成分の平均値を該色成分毎に累積し、
前記色成分の各々について、前記異なる光度範囲から各々得られた前記累積値または前記累積値から生成された値を混合し、
前記混合値に基づいて、ホワイトバランスを調整するためのゲインを決定する、
ように構成される、請求項１に記載の装置。
【請求項３】
前記色温度は、異なる色成分間のヒストグラムの違いに関する測定、色相ヒストグラムの分散に関する測定、いかなる飽和画素も含まないブロックから取得した各色成分の平均に関する測定、および高光度を有するブロックから取得された各色成分の平均に関する測定、のうちの一つ以上に基づいて、定義される、請求項１または２に記載の装置。
【請求項４】
標準光源に対する、前記装置のセンサーのスペクトル応答に関する特性データを備え、
前記複数のブロックの各々について、前記定義された色温度における特性データと、該ブロックにおける各色成分の平均値との逸脱を計算して、かつ前記逸脱が既定値未満である場合に、該ブロックが灰色の可能性があると判定する、ように構成される、
請求項１から３のいずれかに記載の装置。
【請求項５】
前記複数のブロックに関する前記逸脱および／または光度に基づいて、前記第一の平均値の組の計算に重み付けを適用するように構成される、請求項４に記載の装置。
【請求項６】
ホワイトバランスを調整するための前記ゲインの決定において、第二の補足値の組を考慮するように構成され、前記第二の補足値の組は、前記第一の平均値の組に対応する位置からの最短距離を有する、プランク曲線上の位置に対応する色成分に関する値である、請求項１から５のいずれかに記載の装置。
【請求項７】
前記装置は、ブロックが飽和画素を含むか否かについて、前記複数のブロックの全部または一部の各々を確認し、飽和画素を含むブロックを、ホワイトバランスを調整するためのゲインの計算から除外するように構成される、請求項１から６のいずれかに記載の装置。
【請求項８】
前記装置は、ブロックが飽和画素を含むブロックに隣接しているか否かについて、前記複数のブロックの全部または一部のうちの各々を確認して、かつ飽和画素を含むブロックに隣接するブロックを、ホワイトバランスを調整するためのゲインを決定する計算から除外する、ように構成される、請求項１から７のいずれかに記載の装置。
【請求項９】
前記色成分は、赤、緑、および青であり、ブロックが灰色の可能性があるか否かという前記判定は、B/G、R/G、最小(R, B)/G、および最大(R, B)/Gのうちの一つ以上が所定の基準を満たすか否かを条件とし、
ここで、
・  Rは、判定されるブロックの赤データの平均値を表し、
・  Gは、判定されるブロックの緑データの平均値を表し、
・  Bは、判定されるブロックの青データの平均値を表し、
・  最小(R, B)/Gは、前記Rおよび前記Bのうちの小さい方を前記Gで割った値を示し、
・  最大(R, B)/Gは、前記Rおよび前記Bのうちの大きい方を前記Gで割った値を示す、
請求項１ないし８の何れかに記載の装置。
【請求項１０】
前記フレーム全体の各色成分および輝度ならびに前記フレーム全体の各色成分の平均値に関するヒストグラムのうちの一つ以上に基づいて、前記基準は決定される、請求項９に記載の装置。
【請求項１１】
前記基準を決定するための計算は、飽和画素を含むブロックおよび／または飽和画素を含むブロックに隣接するブロックを使用しない、請求項１０に記載の装置。
【請求項１２】
前記装置は、高い確率で灰色の可能性があると判定されたブロックにおける色成分の平均値および／または高い光度を有するブロックにおける色成分の平均値に、重み付けを適用するように構成される、請求項１ないし１１の何れかに記載の装置。
【請求項１３】
前記装置は、前記各光度範囲において灰色の可能性があると判定されたブロックの数および／または前記各光度範囲の代表光度値に基づいて、前記混合に重み付けを適用するように構成される、請求項２に記載の装置。
【請求項１４】
前記装置は、いかなる飽和画素も含まないブロックおよび／または飽和画素を含むブロックに隣接しないブロックから、各色成分の平均値を計算して、かつこれらの平均値を考慮することによって、ホワイトバランスを調整するための前記ゲインを決定する、ように構成される、請求項１ないし１３の何れかに記載の装置。
【請求項１５】
複数の色成分を含む画像データのフレームを複数の画素データを含む複数のブロックに分割し、
一つ以上の色温度を定義し、
前記複数のブロックの全部または一部のうちの各々について、該ブロックが前記定義された色温度において灰色の可能性があるか否かを判定し、
灰色の可能性があると判定されたブロックにおける色成分の平均値の組である、第一の平均値の組を計算し、
前記第一の平均値の組に基づいて、ホワイトバランスを調整するためのゲインを決定し、
ホワイトバランスを調整するための前記ゲインの決定において、第一の補足値の組を考慮することであって、前記第一の補足値の組は、前記定義された色温度に対応する位置から第二の平均値の組に対応する位置への最短距離を有する、プランク曲線上の位置に対応する色成分に関する値の組であり、前記第二の平均値の組は、いかなる飽和画素も含まないブロックおよび／または飽和画素を含むブロックに隣接しないブロックの各色成分の平均値の組である、前記考慮する、
電気回路。
【請求項１６】
各々異なる複数の光度範囲を定義し、
前記光度範囲の各々について、前記複数のブロックが前記光度範囲において灰色の可能性があるか否かを判定すると共に、該光度範囲において灰色の可能性があると判定されたブロックにおける複数の色成分の平均値を該色成分毎に累積し、
前記色成分の各々について、前記異なる光度範囲から各々得られた前記累積値または前記累積値から生成された値を混合し、
前記混合値に基づいて、ホワイトバランスを調整するためのゲインを決定する、
ように構成される、請求項１５に記載の電気回路。
【請求項１７】
ホワイトバランスを調整するための前記ゲインの決定において、第二の補足値の組を考慮するように構成され、前記第二の補足値の組は、前記第一の平均値の組に対応する位置からの最短距離を有する、プランク曲線上の位置に対応する色成分に関する値である、請求項１５または１６に記載の電気回路。
【請求項１８】
複数の色成分を含む画像データのフレームを複数の画素データを含む複数のブロックに分割することと、
一つ以上の色温度を定義することと、
前記複数のブロックの全部または一部のうちの各々について、該ブロックが前記定義された色温度において灰色の可能性があるか否かを判定することと、
灰色の可能性があると判定されたブロックにおける色成分の平均値の組である、第一の平均値の組を計算することと、
前記第一の平均値の組に基づいて、ホワイトバランスを調整するためのゲインを決定することと、
ホワイトバランスを調整するための前記ゲインの決定において、第一の補足値の組を考慮することであって、前記第一の補足値の組は、前記定義された色温度に対応する位置から第二の平均値の組に対応する位置への最短距離を有する、プランク曲線上の位置に対応する色成分に関する値の組であり、前記第二の平均値の組は、いかなる飽和画素も含まないブロックおよび／または飽和画素を含むブロックに隣接しないブロックの各色成分の平均値の組である、前記考慮することと、
を含む方法。
【請求項１９】
各々異なる複数の光度範囲を定義することと、
前記光度範囲の各々について、前記複数のブロックが該光度範囲において灰色の可能性があるか否かを判定すると共に、該光度範囲において灰色の可能性があると判定されたブロックにおける複数の色成分の平均値を該色成分毎に累積することと、
前記色成分の各々について、前記異なる光度範囲から各々得られた前記累積値または前記累積値から生成された値を混合することと、
前記混合値に基づいて、ホワイトバランスを調整するためのゲインを決定することと、
を含む、請求項１８に記載の方法。
【請求項２０】
ホワイトバランスを調整するための前記ゲインの決定において、第二の補足値の組を考慮することをさらに含み、前記第二の補足値の組は、前記第一の平均値の組に対応する位置からの最短距離を有する、プランク曲線上の位置に対応する色成分に関する値である、請求項１８または１９に記載の方法。
【請求項２１】
装置のプロセッサにより実行されることにより、前記装置に、次の処理：
複数の色成分を含む画像データのフレームを複数の画素データを含む複数のブロックに分割し、
一つ以上の色温度を定義し、
前記複数のブロックの全部または一部のうちの各々について、該ブロックが前記定義された色温度において灰色の可能性があるか否かを判定し、
灰色の可能性があると判定されたブロックにおける色成分の平均値の組である、第一の平均値の組を計算し、
前記第一の平均値の組に基づいて、ホワイトバランスを調整するためのゲインを決定し、
ホワイトバランスを調整するための前記ゲインの決定において、第一の補足値の組を考慮することであって、前記第一の補足値の組は、前記定義された色温度に対応する位置から第二の平均値の組に対応する位置への最短距離を有する、プランク曲線上の位置に対応する色成分に関する値の組であり、前記第二の平均値の組は、いかなる飽和画素も含まないブロックおよび／または飽和画素を含むブロックに隣接しないブロックの各色成分の平均値の組である、前記考慮する、
ことを実行可能とするコンピュータプログラム。
【請求項２２】
前記処理は、
各々異なる複数の光度範囲を定義することと、
前記光度範囲の各々について、前記複数のブロックが該光度範囲において灰色の可能性があるか否かを判定すると共に、該光度範囲において灰色の可能性があると判定されたブロックにおける複数の色成分の平均値を該色成分毎に累積することと、
前記色成分の各々について、前記異なる光度範囲から各々得られた前記累積値または前記累積値から生成された値を混合することと、
前記混合値に基づいて、ホワイトバランスを調整するためのゲインを決定することと、
を含む、請求項２１に記載のコンピュータプログラム。
【請求項２３】
前記処理は、ホワイトバランスを調整するための前記ゲインの決定において、第二の補足値の組を考慮することをさらに含み、前記第二の補足値の組は、前記第一の平均値の組に対応する位置からの最短距離を有する、プランク曲線上の位置に対応する色成分に関する値である、請求項２１または２２に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラにおいて使用される画像処理アルゴリズムに関する。より厳密には、本発明は、オートホワイトバランス（Automatic White Balance; AWB）アルゴリズムに関する。
【背景技術】
【０００２】
人間の視覚系は、異なる照明条件および色温度を補うことによって、ほとんどの状況において白色物体を白色として認識可能になっている。デジタルカメラで使用されるAWBアルゴリズムは、デジタルカメラのセンサーで取り込まれた生画像に対して同じことを実行しようと試みる。すなわち、AWBは、異なる色成分（例えば、R、G、およびB）のゲインを相互調整することによって、画像景色の色温度の違いまたは色成分の感度の違いがあっても白色物体を白色に示すようにする。
【０００３】
AWBに関する既存の方法のうちの一つに、全ての色成分の平均を計算し、各色成分に適切なゲインを適用して、これらの平均が相互に等しくなるようにする方法がある。こういった種類の方法は、「グレーワールド」AWBアルゴリズムと呼ばれることが多い。
【発明の開示】
【０００４】
本発明の目的は、高精度なAWB技術を提供することにある。
【０００５】
本発明の一側面によると、複数の色要素を含む画像データのフレームに関するホワイトバランスを調整するための技術が提供される。本技術は、
・  前記フレームを複数の画素データを含む複数のブロックに分割すること、
・  前記ブロックの全部または一部のうちの各々について、前記ブロックが灰色の可能性があるか否かを判定すること、
・  灰色の可能性があると判定された前記ブロックを使用して、ホワイトバランスを調整するためのゲインを決定すること、
を含むことを特徴とする。
【０００６】
一実施形態において、前記ブロックが飽和画素を含むか否かについて、前記ブロックの全部または一部のうちの各々を確認して、かつ飽和画素を含む前記ブロックを、ホワイトバランスを調整するための前記ゲインの計算から除外する、ように構成可能である。
【０００７】
本特許出願の内容において、「白色」は、「灰色」と同義語として使用され、別途明記されない限り、飽和した値を言い表すために使用されない。
【０００８】
一実施形態において、該技術は、
・  前記色要素の各々について、灰色の可能性があると判定された前記ブロックの平均値を累積し、
・  複数の光度（intensity）範囲を定義し、
・  前記光度範囲の各々について、前記ブロックが前記光度範囲において灰色の可能性があるか否かを判定して、かつ前記色要素の各々について、前記光度範囲において灰色の可能性があると判定された前記ブロックの平均値を累積し、
・  前記色要素の各々について、前記異なる光度範囲から各々得られた前記累積値または前記累積値から生成された値を混合し、
・  前記混合値に基づいて、ホワイトバランスを調整するための前記ゲインを決定する、
ように構成可能である。
【０００９】
一実施形態において、該技術は、前記灰色判定に関する一つ以上の色温度を定義して、かつ前記定義された色温度において前記ブロックが灰色の可能性があるか否かを判定する、ように構成可能である。
【００１０】
前記異なる色要素間のヒストグラムの違いに関する手段、色相ヒストグラムの分散に関する手段、いかなる飽和画素も含まない前記ブロックから取得した前記各色要素の平均に関する手段、および高光度を有する前記ブロックから取得された前記各色要素の平均に関する手段、のうちの一つ以上に基づいて、色温度は定義されてもよい。異なる光源色温度に対するセンサーの反応に関して特性データが存在する場合、該技術は、前記定義された色温度における前記特性データと、前記ブロックにおける前記各色要素の平均値との逸脱を計算して、かつ前記逸脱が既定値未満である場合に、前記ブロックが灰色の可能性があると判定する、ように構成可能である。
【００１１】
これらの技術は、例えば、専用カメラ装置またはカメラ付き携帯電話機などのデジタルカメラシステム、ICチップなどの電子回路、コンピュータプログラム、または方法などのさまざまな方法で実現可能である。
【００１２】
本発明の別の側面によると、複数の色要素を含む画像データのフレームを撮影可能なデジタルカメラシステムであって、
・  前記フレームを複数の画素データを含む複数のブロックに分割し、
・  前記各色要素について、ならびに前記複数のブロックの全部または一部のうちの各々について、既定値を計算し、
・  前記複数のブロックの全部または一部のうちの各々について、前記ブロックが灰色（白色）物体の一部の可能性があるか否かを判定し、
・  前記各色要素について灰色（白色）物体の一部の可能性があると判断された前記ブロックの前記既定値を累積し、
・  前記累積値に基づいて、ホワイトバランスを調整するための一連の第一のデジタルゲインを決定する、
ように構成されるシステムが提供される。
【００１３】
前記本発明のさらなる側面によると、複数の色要素を含む画像データのフレームを処理するための電気回路であって、
・  前記画像データのブロックを抽出するブロック抽出部であって、前記ブロッックは複数の画素データを含むブロック抽出部と、
・  前記抽出されたブロックの各色成分の平均値を計算する平均計算部と、
・  前記ブロックが白色の可能性があるか否かを判定する判定部と、
・  前記各色要素について、白色の可能性があると判断された色を有する複数の前記抽出されたブロックの前記平均値を累積する累積部と、
・  前記累積値に基づき、ホワイトバランスを調整するための一連のデジタルゲインを決定する決定部と、
を備える回路が提供される。
電気回路。
【００１４】
本発明の側面に関するさらなる特徴および利点について例示的実施形態を使用して記載する。また、いくつかの好適な実施形態について添付の請求項に記載する。本発明は、本明細書、添付の請求項、および添付の図面に記載の全ての有利な特徴またはその組み合わせも含むことに留意されたい。
【好適な実施形態の詳細な説明】
【００１５】
以下、添付の図面を参照して、本発明の実施形態の例を説明する。
【００１６】
〔実施例1〕
図1は、本明細書に説明される本発明の第一の好適な実施形態に係る、カメラ装置の主要構成要素を示す略ブロック図である。カメラ装置1は、センサーモジュール11、前処理回路13、ホワイトバランス（White Balance; WB）アンプ15、オートホワイトバランス（Auto White Balance; AWB）分析部17、後処理回路19、ディスプレイ21、およびメモリ23を備える。センサーモジュール11は、ファインダーの画像を生成して、静止画像またはビデオを撮影するために使用可能である。センサーモジュール11は、レンズ、RGBベイヤーカラーフィルターを有する画像センサー、アナログ増幅部、およびA/D変換部を備え、入射光をデジタル信号に変換する。このデジタル信号は、RAWデータと呼ばれることが可能であり、RGBベイヤーフォーマットを有し、つまり、各2x2の画素ブロックは、二つの緑データ、一つの赤データ、および一つの青データを含む。別の実施形態において、カラーフィルターは、CMYベイヤーフィルターであってもよい。その他の実施形態において、センサーモジュール11は、ベイヤーカラーフィルターを使用しなくてもよいが、フォビオン型のセンサー、つまり、異なる波長の画像信号をシリコン内の異なる深さで記録するセンサーを備える。また、センサーモジュール11は、自動焦点や自動ズームならびに口径制御やNDフィルタ制御のためのアクチュエータも備える。
【００１７】
前処理回路13は、例えば、ノイズ低減、画素線形化、およびシェーディング補正を実行してもよい。WBアンプ15は、白色物体を白色にするために、異なる色成分（つまり、R、G、およびB）のゲインを相互調整する。ゲイン量は、AWB分析部17によって決定される。AWB分析部17は、RAWデータを分析してゲイン量を計算し、その計算結果に応じてWBアンプ15のデジタルゲインを設定する。カラーバランスの他に、AWB分析部17は、ヒストグラムを明るい側に適応的に拡張することによって、画像の明るさやコントラストを増加させるように、WBゲインにおける全体のデジタルゲイン部分も含んでもよい。また、AWB分析部17は、ヒストグラムを暗い側に適応的に拡張することによって、画像のコントラストを増加させるように、R、G、およびBのオフセットも計算してもよい。このオフセットは、ホワイトバランスゲインにおいて考慮されるべきであり、WBゲインの前または後にデータに適用可能である。また、AWB分析部17は、非線形補正の量および形態も計算し、後処理回路19において画像データに適用されてもよい。
【００１８】
後処理回路19は、カラーフィルター配列（Color Filter Array; CFA）補間、色空間変換、ガンマ補正、RGBからYUVへの変換、画像の鮮明化などを実行する。後処理回路19は、これらの処理のうちの一つまたは全てを実行するためのハードウェアパイプラインであってもよく、あるいは、これらの処理をソフトウェア処理によって実行するためのプロセッサを備えてもよい。後処理回路19によって処理された画像データは、ディスプレイ21上に表示されてもよく、あるいはメモリ23に保存されてもよい。メモリ23は、MMCカードまたはSDカードなどの取り外し可能な保存手段であることが好ましい。
【００１９】
図2は、本発明の好適な実施形態に係る、AWB分析部17の主要構成要素を示す略ブロック図である。AWB分析部17は、ブロック抽出部31、飽和確認部33、および赤（R）成分35、緑（G）成分37、および青（B）成分39に関する平均計算部を備える。また、AWB分析部17は、バス39、CPU41、ファームウェア42、およびRAM43も備える。
【００２０】
ブロック抽出部31は、RAWデータのフレームを小ブロックに分割し、ブロック毎にRAWデータを飽和確認部33に提供する。本明細書の内容において、フレームは、一連のビデオデータにおける静止画像または単一画像の全領域を意味する。各ブロックは、複数の赤、緑、青の画素データを含む。例えば、センサーモジュール11の解像度が1.3メガ画素である場合、ブロック抽出部31は、フレームを72x54のブロックに分割するように構成されることが好ましく、これは、各ブロックが約330画素を含むことを意味する。当然ながら、分割に関するいかなる方法も、その方法が速度、品質、価格などの要件を満たす限り可能である。
【００２１】
飽和確認部33は、バス39に接続され、ブロックが飽和画素を含むか否かについてブロックを確認する。また、飽和確認部33は、処理中のブロックが、その他の飽和ブロックに隣接するか否かについても確認する。この情報、つまり「ブロックがいかなる飽和画素も含まない」、「飽和画素を含む」、または「飽和ブロックに隣接する」は、CPU41に送信される。また、その情報は、ブロック中の飽和画素の数を含んでもよい。図3のステップ150またはステップ180（後述する）において、ブロックサイズが大きいなどの理由から飽和ブロックを使用する必要のある場合に、飽和画素の数は、飽和ブロックの信頼性を決定するのに有用になる。
【００２２】
平均計算部35、36、および37は、バス39に接続され、処理中のブロックの赤成分、緑成分、および青成分の平均値をそれぞれ計算する。その処理中のブロックが飽和画素を含む場合、平均計算部は非飽和画素のみの平均値を計算する。計算された平均値は、バス39を介してCPU41に提供される。ブロック抽出部31、飽和確認部33、ならびに平均計算部35、36、および37は、ハードウェア回路であってもよい。しかしながら、CPUを使用して処理するソフトウェアとしても実現可能である。後者の場合、分割の方法は、プログラム可能であってもよい。
【００２３】
CPU41は、ファームウェア42の指示に応じて、飽和情報およびブロック毎のR、G、Bそれぞれの平均値をRAM43に保存する。ファームウェア42は、必要なデータ処理を実行するようにCPU41を指示するソフトウェアである。CPU41は、ファームウェア42の指示に応じてこの情報に基づきデジタルゲイン量を決定するように、さらに計算を実行する。
【００２４】
図3を参照して、AWB分析部17の画像処理について以下に詳細に説明する。ステップ110は、分析開始を示す。ステップ120において、分析される画像データのフレームは、前処理モジュール13から提供される。前述のように、本実施形態において分析される画像データは、RGBベイヤーフォーマットのRAWデータである。本発明は、その他のデータフォーマットに適用可能であることに留意されたい。その他のデータフォーマットの例として、CMYベイヤーフォーマット、または全ての色成分について同数の色要素を含むデータフォーマット、または使用される色成分の全てを各画素が含むデータフォーマットが挙げられる。
【００２５】
ステップ130において、ブロック抽出部31は、RAWデータのフレームを小ブロックに分割し、ブロック毎にRAWデータを飽和確認部33に提供する。前述のように、本実施形態におけるフレームは、一連のビデオデータの静止画像または単一画像の全領域を意味する。各ブロックは、複数の赤、緑、および青の画素データを含む。
【００２６】
ステップ140において、飽和確認部33は、ブロックがいかなる飽和画素も含まないか、飽和画素を含むか、または飽和ブロックに隣接するか、について各ブロックを確認する。平均計算部35、36、および37は、処理中のブロックの赤成分、緑成分、および青成分の平均値をそれぞれ計算する。処理中のブロックが飽和画素を含む場合、平均計算部は、被飽和画素のみの平均値を計算する。
【００２７】
ステップ140の処理の結果を受けて、AWB分析部17は、一連のブロック情報を取得する。ブロック情報の数は、ブロックの数と同数であり、各ブロック情報は、飽和情報およびブロックのR、G、およびB成分の平均値を含む。この一連のブロック情報は、RAM43に保存される。
【００２８】
ステップ150において、CPU41は、ファームウェア42の指示に応じてブロック情報の全てを走査し、フレーム全体に関する一連の統計値をブロック情報から計算する。これらの統計値は、処理中のRAWデータ全体の赤成分、緑成分、青成分、および輝度（luminance）に関するヒストグラムも含んでもよい。本実施形態における輝度は、(r+2g+b)/4で定義され、ここで、R、G、およびBは、ブロックの赤、緑、および青成分の平均値を示す。これらの統計値は、フレーム全体の赤、緑、および青成分の平均値、および最大輝度値も含んでもよい。最大輝度値は、処理中のフレームの一番明るいブロックの輝度である。
【００２９】
これらの統計値のいくつかは、ブロックが灰色物体の一部である可能性があるか否かに関する基準を設定するために使用される。また、これらの統計値の一部は、光度範囲を決定する基準を設定するためにも使用される。
【００３０】
ブロックが飽和画素を含むこと、あるいはブロックが飽和ブロックに近い状態であることを、ブロックのブロック情報が示す場合、CPU41は、このブロック情報をこれらの統計値の計算から除外する。その理由は、異なる色成分間の関係に関する情報が損失傾向にあるため、飽和画素値に信頼性がないからである。また、飽和画素に近い画素についても好ましくなく、その理由は、画素が飽和に近い場合は画素応答が非常に非線形であるということ、ならびに隣接画素に放出する電子および画素のクロストークの増加の可能性が高くなるからである。CPU41は、飽和画素を含むブロックまたは該ブロックに隣接するブロックを除外するため、本実施形態におけるAWBゲイン分析は、飽和画素を含んでも反応しない。すなわち、本実施形態におけるAWBゲイン分析は、画素飽和の影響を受けない。これは、本実施形態の重要な利点のうちの一つである。
【００３１】
別の実施形態において、飽和画素を含むブロックまたは飽和ブロック（飽和画素を含むブロック）に隣接するブロックに関するブロック情報は、上述の統計値を計算するために使用されてもよい。本実施形態は、フレームが比較的大きいブロックに分割される場合、例えば、フレームが12x32のブロックに分割される場合に、有益であってもよい。このような実施形態において、ブロックを拒否することによって、画像の大きい領域を失うことになる。このような場合、信頼性が十分なくても飽和ブロックに隣接するブロックまたは全てのブロックが利用されてもよく、あるいは、飽和ブロック内の非飽和画素の利点も利用されてもよい。
【００３２】
ステップ160において、CPU41は、ファームウェア42の指示に応じて、各ブロックの光度範囲を決定するための境界条件を設定する。例えば、CPU41およびファームウェア42は、ステップ150で取得した赤成分、緑成分、青成分、および輝度に関するヒストグラムの99.8%、80%、50%、および25%の位置を計算する。本実施形態におけるヒストグラムのxx%の位置は、画素のxx%が、この値よりも暗いことを意味する。本ステップの後、これらの値は、ステップ150で取得されたヒストグラムの代わりに使用される。
【００３３】
ステップ160において、CPU41およびファームウェア42は、R/G、B/G、最小(R, B)/G、および最大(R, B)/Gの関係に関する境界条件も設定し、これは、ブロックが灰色（白色）であるか否かを判定するために使用される。ここで、R、G、およびBは、判定されるブロックにおける赤、緑、および青成分の平均値を示す。最小(R, B)/Gは、RおよびBのうちの小さい方をGで割ったの値を示し、最大(R, B)/Gは、RおよびBのうちの大きい方をGで割った値を示す。一実施形態において、これらの境界条件は、異なる色温度に対する既知のRGB応答に応じて決定されてもよく、センサーの特徴に応じて（例えば、異なる種類のカメラセンサーが異なるとカラーフフィルター特徴が異なるため、必要とされる限度が変化する）、修正される。別の実施形態において、これらの基準（境界条件）は、ステップ150で取得した統計値に基づいて決定される。
【００３４】
また、境界条件の値は、ステップ250において、画像データの特例の照明条件、つまり、画像データの景色の照明条件が、満足のいく正確な色を生成するように特別調整を必要としているかどうかを検出するために使用されてもよい。このような照明条件分析により、特に、その景色に適切な基準となる白色がほとんど存在しないあるいは全く存在しない場合に、ホワイトバランスの性能が改善されてもよい。
【００３５】
ステップ170からステップ240において、CPU41およびファームウェア42は、ブロックの色が灰色（白色）物体に対応するか否かについて各ブロックを判定し、白色／灰色ブロックのRGB平均値を累積する。累積された値は、ホワイトバランスのデジタルゲインを決定するために使用される。
【００３６】
しかしながら、その判定および累積の前に、CPU41およびファームウェア42は、飽和ブロックおよび飽和ブロックに近いブロックを、その動作から排除する（ステップ180）。これらのブロックの排除の理由は前述のとおりであり、信頼性が十分にないからである。別の理由として、本実施形態におけるAWBゲイン分析が、画素を含んでも反応しないことが挙げられる。これは、本実施形態の重要な利点のうちの一つである。一実施形態において、ブロックのサイズが非常に大きい場合、飽和ブロックに近いブロックは排除されなくてもよい。別の実施形態において、飽和ブロックであっても排除されなくてもよく、飽和ブロックの非飽和平均は、いくつかの特例の光度範囲に関して以下のステップで使用されてもよいが、少なくともブロックの大きさが比較的大きい場合に限る。
【００３７】
ステップ200において、CPU41およびファームウェア42は、光度範囲のうちの一つ以上にブロックが属するか否かを確認する。さまざまな種類の光度範囲を定義することができる。例えば、光度範囲Cは、範囲Aおよび範囲Bの光度範囲を含むように定義されてもよい。したがって、範囲Aに属するブロックは、範囲Cにも属する。通常、ブロックは、いくつかの光度範囲に属することができる。
【００３８】
一実施形態において、第一の光度範囲と、第一の光度範囲の範囲を含む第二の光度範囲とを定義することが可能である。また、第一および第二の光度範囲の両方の範囲を含む第三の光度範囲を定義することも可能であってもよい。あるいは、範囲が非常に狭い光度範囲または特別な照明条件（つまり、非常に明るい、非常に暗い、青空、曇り、タングステンなど）に反応する光度範囲などは、定義されてもよい。
【００３９】
ステップ210において、CPU41およびファームウェア42は、処理中のブロックが、白色（灰色）物体の一部の可能性があるか否かを判定する。
【００４０】
一実施形態において、ブロックが灰色（白色）であるか否かは、例えば5000Kにセンサー反応を正規化する一定のセンサー特有のプリゲインを考慮して、ブロックのR、G、およびB平均値を相互に比較することによって決定される。異なる黒体放射体の色温度に対応する異なる色成分間の関係は、限度に関する開始点として使用可能であるが、黒体放射体が可能性のある全ての光源を正確に表すわけではないので、さらなる誤差を認めざるを得ない（例えば、蛍光光源は、スペクトル応答に大きな誤差があり、そのいくつかは黒体放射体と違う）。
【００４１】
好適な実施形態において、CPU41およびファームウェア42は、ステップ160で述べた灰色（白色）判定のための限度を定義する。ステップ210において、CPU41およびファームウェア42は、R/G、B/G、最小(R, B)/G、および最大(R, B)/Gが、ステップ160で決定した基準を満たすか否かを確認し、灰色または白色ブロックとしての基準をブロックが満たしているかを判定する。灰色（白色）判定に関する基準は、各光度範囲で異なることが可能である。また、この基準は、推定された照明条件に応じて異なることが可能である。可能性の高い白色および可能性の低い白色について別々の色制限が存在する。可能性の低いブロックよりも可能性の高いブロックに、累積値についてより重点が置かれる。
【００４２】
ステップ220において、CPU41およびファームウェア42は、処理中の光度範囲において、白色または灰色と判定されたブロックの赤、緑、および青のそれぞれの平均値を累積する。ステップ190からステップ230までのループで示されるように、灰色判定は、光度範囲毎に実行される。そして、各光度範囲において、赤、緑、および青の平均は、ブロック値がステップ160で設定された限度内である場合、各変数に蓄積される（ブロック値は、R/G、B/G、最小(R, B)/G、および最大(R, B)/Gを意味する。ステップ160の記載を参照のこと）。
【００４３】
全部ブロックの走査が完了すると、ステップ240において、R、G、およびB成分に関して蓄積された一連の値が、光度範囲毎に作成される。次に、これらの累積値は、RAM43に一時的に保存され、後にホワイトバランスゲインの計算に使用される。
【００４４】
ステップ250において、CPU41およびファームウェア42は、正確で満足のいく色を生成するために、カラーバランス同調を付加的に必要とする特例を検出する。例えば、真っ青な空の景色は検出可能であり、真っ青な空の下の既知の黒体放射体の色温度は、灰色ブロックと共に使用して、最終の色温度を決定可能である。ステップ160で取得した境界条件を決定するための値は、このような特別の色の場合を特定するために使用される。また、露出時間およびアナログゲイン（デジタルゲインがRAWデータに提供された場合には、デジタルゲイン、ならびに口径および焦点距離がシステムにおいて調整可能である場合には、口径および焦点距離）を含む全露出も、特別な色の場合を特定するために利用されてもよい。特例の検出結果は、ステップ310においてデジタルゲインの計算に考慮される。
【００４５】
特例の例として青空が挙げられてもよい。明るい昼光の照明条件下で撮影され、真っ青な空と場合によってはいくつかの薄雲の靄とから成る画像景色は、誤った基準となる白色を多く含む可能性がある。ゆえに、このような場合を検出して、デジタルゲイン計算において考慮することにより、AWBの性能が改善される。特例のその他の例として、ろうそくや暖炉の画像が挙げられる。このような場合において、より満足のいく（この場合は、より正確とは言えないが、より満足できる）色は、このような場合を検出して、AWBゲインを修正することによって取得可能である。
【００４６】
ステップ260において、CPU41およびファームウェア42は、グレーワールドアルゴリズムに関する一定の良好点数を計算して、基準となる白色がほとんど利用不可能で、グレーワールドアルゴリズムの良好点数が高いと思われる場合に、グレーワールドアルゴリズムも最終結果に含まれるようにする。グレーワールドアルゴリズムによる補正は、ステップ320において実行される。
【００４７】
ステップ290において、CPU41およびファームウェア42は、ステップ170〜240において、各色要素について異なる光度範囲から取得された累積値を混合する。したがって、本ステップにおいて、一連のR、G、およびBの混合された値が生成される。本実施形態において、光度範囲のほんの一部がこの混合に使用される。混合に使用される一連の光度範囲は、ステップ280で選択される。混合値は、ホワイトバランスゲインを決定するために使用される。混合に関して、CPU41およびファームウェア42は、白色の可能性のあるブロックがその光度範囲からいくつ発見されたかに応じて、累積値に重点を置くように構成されてもよい。例えば、多数の灰色（白色）ブロックを含む光度範囲の累積値に、混合の際より重点が置かれる。あるいは、CPU41およびファームウェア42は、特定の光度範囲の累積値により重点が置かれるように構成されてもよい。例えば、範囲が明るい側であればあるほど信頼性があると考えられるので、混合の際に最も明るい光度範囲の累積値により重点が置かれる。重点を置くことは、ステップ220において事前に実行されてもよい。主要な光度範囲から灰色ブロックがほとんど発見されない場合、付加的な光度範囲は累積値に加えることができる。
【００４８】
ステップ300において、CPU41およびファームウェア42は、一連の混合値に基づいて、ホワイトバランスゲインの第一の候補を決定する。ゲイン値は、R、G、およびBの混合値に適用することによって、それらの値を均等可能にするる値として決定されてもよい。
【００４９】
ステップ310において、ステップ290で取得した混合値は、ステップ250で実行された色調推定に基づいて補正されることによって、特に、その景色に適切な基準となる白色がほとんど存在しないあるいは全く存在しない場合に、ホワイトバランスの性能が改善される。例えば、青空に真っ白な雲はないがいくつかの靄が存在する場合、その靄を誤って白色と判断されることがあるので問題となる。この補正によって、こういった状況を改善することができる。補正は、一定の光度範囲の累積値を、ステップ290で取得した混合値に混合することによって実行されてもよい。ホワイトバランスゲインの候補は、新しい混合値に基づいて更新される。本ステップにおける補正は、必要でない場合は実行されなくてもよい。
【００５０】
ステップ320において、ステップ300または310で取得したホワイトバランスゲインの候補は、ステップ260の良好計算に基づいて、グレーワールドアルゴリズムによって補正されてもよい。ステップ260で計算された良好点数は、グレーワールドアルゴリズムから取得される結果に関して、最終ゲインにどのくらい重点が置かれるかを決定するために使用されてもよい。グレーワールドの良好点数が非常に高い場合は、例えば、80%の重点がグレーワールド部分に置かれ、20%の重点が先行のステップで取得したゲイン値に置かれる。同様に、グレーワールドの良好点数が、あまり高くない場合、0%の重点がグレーワールドに置かれ、100%の重点が先行のステップで取得した結果に置かれる。
【００５１】
グレーワールドアルゴリズムを考慮して、ステップ290で取得した混合値に関して補正が実行されてもよい。ステップ310において、真っ青な空または白色基準の不在などの特例が、まず検出されてもよく、次にステップ310と同様に混合が実行される。本ステップにおける補正は、必要で無い場合は実行されなくてもよい。
【００５２】
ステップ330において、デジタルゲインの候補または先行のステップで取得した混合値は、全露出（露出時間*アナログゲイン）に基づいて適応され、明るい景色において全体的に良好な画像コントラストを提供する一方で、暗い景色における明るい画像領域で低ノイズおよび良好な詳細保存を依然として維持してもよい。また、口径、NDフィルタ、焦点距離、および付加的なデジタルプリゲインも、これらのパラメータが可変である場合に考慮されてもよい。
【００５３】
最終ゲインは、カラーバランスゲインおよび全体のデジタルゲインの組み合わせから構成されてもよい。つまり、色は、ゲインだけでなく輝度レベルで補正される。本ステップにおける補正は、必要でない場合あるいは本ステップがファームウェア42で実現されない場合には、実行されなくてもよい。
【００５４】
ステップ340において、一連の最終デジタルゲインが決定される。しかしながら、最終ゲインは、ここでも信頼性のある値であるか否かについて確認される。例えば、色成分の一部が、その他の色成分よりも多数を占めると考えられる場合、誤差の可能性がある。このような場合、ファームウェア42は、ステップ270に戻り、ステップ280で一連の異なる光度範囲を選択し、その後のステップを再び実行するようにCPU41を指示する。最終ゲインが信頼できると、ゲイン計算は完了する（ステップ360）。ファームウェア42の指示に応じて、CPU41は、AWBアンプ15のデジタルゲインを計算値として設定する。
【００５５】
好適な実施形態は、本発明の譲受人によって検証された。本検証において、多数の照明条件下で撮影された248個の画像が使用される。この結果によって、AWBの精度が大幅に改善可能であることが示された。
【００５６】
ステップ360の後、AWBアンプは、ゲイン計算に使用された画像データのフレームにデジタルゲインを適用してもよく、あるいは、次のフレームの画像データ、つまり次の撮影で取り込まれた画像データにのみデジタルゲインを適用してもよい。一実施形態において、カメラ装置1は、完全なフレームに含まれる画像データ全体を保存可能なフレームメモリを備えてもよい。本実施形態において、ホワイトバランス計算に使用される同一のフレームは、計算されたゲインによって補正可能である。しかし、別の実施形態において、カメラ装置1は、フレーム全体を保存可能なメモリを備えなくてもよいが、フレームの一部のみを保存可能なラインバッファを備えてもよい。本実施形態において、フレームの画像データ全体の統計がAWB分析について利用可能になる前に、フレームデータの一部にAWBゲインが適用される必要がある。したがって、先行するフレーム（例えば、ファインダーフレーム）からのAWB分析の結果が代わりに使用可能になる。すなわちフレームnに基づいて計算されるAWB分析は、フレームn+1に使用される。このようなメモリ制限されたシステムにおいて、画像全体がAWB分析ブロック17に利用可能になる前に、WBゲインが画像の初めにおけるラインに適用されてもよい。
【００５７】
本発明の範囲を逸脱することなく、さまざまな修正が加えられてもよいことに留意されたい。例えば、本発明は、ベイヤーのRAWデータだけでなく、フォビオン型データなどの異なる種類の画像データにも適用可能である。また、ステップ150における平均および最大輝度の計算は、R、G、B、および輝度に関するヒストグラムから後のステップでも実行されてもよい。
【００５８】
〔実施例２〕
実施例２と呼ばれる、本発明の好適な実施形態の別の例について、添付の図面の特に図4〜8を参照して以下に説明する。実施例２のハードウェア構成は、上に説明された実施形態（以下実施形態1と呼ぶ）と同一である。したがって、同一のハードウェア名については、実施例２と実施形態1に関して同一の参照番号が使用される。しかしながら、CPU41の制御に使用される実施例２のファームウェアのソフトウェアは、実施形態1のファームウェアと異なる。したがって、この違いを表現するために、実施形態1のファームウェアに使用した42の代わりに、参照番号42'を使用して実施例２のファームウェアが示される。実施形態1と実施例２でのAWB計算の違いは、ファームウェア42と42'との違いによってもたらされる。
【００５９】
図4は、実施例２に係る、理想的なホワイトバランスゲインの取得に関する処理の流れの概要を示す。ステップ400は、単に処理開始を示す。ステップ402において、画像データのフレームは、図3のステップ120と同様、AWB分析部17に提供される。前述のとおり、画像データのフレームは、完全な静止画像または一連のビデオデータのうちの完全なフレームを形成する情報である。カメラ装置1のユーザーが写真またはビデオを撮る際、あるいはユーザーがカメラ装置1のモニターで画像をプレビューする際に、画像データのフレームは、センサーモジュール11から提供されてもよい。別の実施形態において、本画像データは、メモリからAWB分析部17を有する電子回路に提供されてもよい。前述のとおり、本画像データは、RGBカラーフィルターを有するCCDセンサーまたはCMOSセンサーに取得されてもよい。その他の実施形態において、本データは、CMYカラーフィルターを有するフォトセンサーまたはフォビオンセンサーによって撮影されてもよい。このような画像データは、汎用パーソナルコンピュータによって表示可能または印刷可能である汎用画像データとして形成されず、前述のとおり一般的にRAWデータと呼ばれる。
【００６０】
ステップ500は、本実施形態におけるAWBアルゴリズムに使用される情報の計算処理を示す。本ステップは、図3のステップ130からステップ150に対応するが、同一ではない。詳細については後述する。ステップ600は、フレームのブロックが灰色の可能性があるか否かを判定する基礎となる色温度範囲の限定処理を示す。詳細については後述する。ステップ700は、灰色の可能性のあるフレームのブロックを発見し、その基準となる灰色ブロックに基づいて初期ホワイトバランスゲインを計算する処理を示す。ステップ800は、一定基準によって初期ゲインを調整し、最終ホワイトバランスゲインを決定するステップを示す。ステップ404は、処理終了を示す。ステップ500〜800の詳細は後述する。
【００６１】
図5は、図4のステップ500に含まれる処理を示す。ステップ502は、単に処理開始を示す。索引504に示されるループにおいて、フレームの画像データは小ブロックに分割され、必要な情報がブロック毎に計算される。本ステップの処理は、図3のステップ130および140と同一である。実施形態1と同様、RGBベイヤーフォーマットを有する生画像データは、複数の赤、緑、および青要素を含む小ブロック（画素データ）に分割される。複数の小ブロックへのフレームの分割は、ブロック抽出部31のような専用ハードウェア回路によって実行可能である。しかし、当然ながらソフトウェア処理によっても実行可能である。
【００６２】
ステップ506において、i番目のブロックはフレームデータから抽出される。その抽出は、ロック抽出部31によって実行されてもよく、あるいはファームウェア42'の指示に応じてCPU41によって実行されてもよい。次に、ステップ508において、以下の情報がi番目のブロックについて計算される。
(i）    ブロックにおけるR、G、およびBの画素値の平均。
(ii）    ブロックの輝度（(r+2g+b)/4として定義され、ここでR、G、およびBは、それぞれブロックの平均のR、G、およびB画素値である）。
(iii）    ブロックが飽和画素を含むか否かに関する情報（任意）。
(iv）    ブロックにおける飽和画素の数（任意）。
【００６３】
本情報は、個々のブロックに関連しているため、本情報の一部または全部は、以下においてブロック情報またはブロック値と呼ばれてもよい。ブロック情報の一部は、専用ハードウェアによって計算されてもよい。例えば、R、G、およびB画素値の平均は、平均計算部35、36、および37より取得可能である。別の実施形態において、ブロック情報の全ては、ファームウェア42'の指示に応じてCPU41によって計算されてもよい。
【００６４】
全ブロックに関するブロック情報の計算後、処理はステップ510に移る。ステップ510は、フレーム全体に関する情報を計算するステップである。以下の情報が計算される。
(i）    いかなる飽和画素も含まないブロックに関するブロック情報（i）の平均。つまり、いかなる飽和画素も含まないブロックの全てに関する平均R、G、およびB値。
(ii）    非飽和ブロックのブロック情報（i）および（ii）に関するヒストグラム。つまり、いかなる飽和画素も含まないブロックの全てのR、G、およびBブロック平均および輝度値に関するヒストグラム。
(iii）    R、G、およびB成分それぞれについての一定の点におけるヒストグラムのパーセンタイル。例えば、センサーモジュール11のA/D変換部の解像度が8ビットであり、かつヒストグラムのパーセンタイルが25%、50%、80%、および99.8%で計算される場合、取得されるヒストグラムのパーセンタイルは、以下のとおりであってもよい。
0005377691.tif 000002
ここで、R成分について25%のヒストグラムのパーセンタイルは、PR25％と示される。B成分について80%のヒストグラムパーセンタイルは、PB80％と示される。当然ながら、これらの値は、本ステップを理解し易くするために単に例示的に示しているだけである。これらの値は、例えば、画像データ、計算されるパーセンタイルの数、パーセンタイルが計算される位置、A/D変換部の解像度、および／または色成分の数や種類に応じて変化する。
(iv）    明るいブロックの平均R、G、およびB値。例えば、R、G、およびBブロック値のそれぞれの平均は、例えば90%光度パーセンタイルを上回る光度を有するブロックから計算される。本計算で使用されるブロックに上限が用いられてもよく、例えば、光度は、確実な信頼性を得るために、全ダイナミックレンジの例えば95%未満でなくてはならない。飽和画素を含むブロックは、本計算から除外するべきである。
【００６５】
ステップ510で取得された情報は、画像フレーム全体に関連するため、本情報は、以下フレーム情報または統計値と呼ばれてもよい。ステップ512は、図4のステップ500に関する処理終了を示す。
【００６６】
飽和画素を含むブロックがフレーム情報から除外されるため、本実施形態で取得されるホワイトバランスゲインは、飽和に対してロバストである。一実施形態において、ブロックが、飽和画素を含むブロックに隣接するか否かが査定される。このようなブロックも、飽和画素を含むブロックに加えて、フレーム情報を取得する計算から除外される。このような実施形態は、画素飽和に対してロバスト性をさらに向上させることができる。別の実施形態において、飽和画素を含むブロックは、フレーム情報に含まれてもよいが、個々のブロックにおける飽和画素の数が考慮される。このような実施形態は、例えば、このようなブロックが多く存在し過ぎるために、この多数のブロックをホワイトバランス計算から除外することが好ましくないと考えられる状況において有用であってもよい。
【００６７】
図6は、図4のステップ600に含まれる処理を示す。前述のとおり、ステップ600は、ブロックが灰色の可能性があるか否かを判定する基礎となる色温度範囲を決定する処理を含む。すなわち、ステップ600は、AWBアルゴリズムが対処すべき色温度範囲を絞り込む。本特徴により、特に、撮影される景色に明るい青色または明るい茶色などの不明瞭な被写体が含まれる場合に、AWBの性能が改善される。
【００６８】
ステップ602は処理開始を示す。ループ604は、色温度範囲を決定する第一の手段を計算する処理である。ループ604において、異なる色要素間のヒストグラムの違いに関する手段は、評価される色温度毎に計算される。例えば、評価される色温度は、［2500K、13000K］の間で500K毎、つまり、［2500K、3000K、3500K、4000K、4500K、5000K、5500K、6000K、6500K、7000K、7500K、8000K、9000K、10000K、11500K、13000K］で定義されてもよい。高い色温度範囲ではセンサー反応変更が小さくなる傾向にあるため、本実例においてより大きな刻み幅が高い色温度について使用されてもよい。当然ながら、これは単なる例示的な定義であり、その他のさまざまな定義が存在可能である。
【００６９】
ステップ606において、現在のループの色温度に対応するプリゲインが、ステップ510で計算されたヒストグラムのパーセンタイルに適用される。ここで、プリゲインは、標準環境で測定されたR/GおよびB/Gセンサー反応の逆値を意味する。したがって、本ステップにおいて、各Rパーセンタイルおよび各Bパーセンタイルに、現在の色温度におけるR/GおよびB/Gセンサー反応のそれぞれの逆値が乗じられる。
【００７０】
異なる色温度における標準光源に関するR/GおよびB/Gセンサー反応は、事前に測定され、例えばファームウェア42'の一部として装置に保存されるべきである。図9は、市販のRGB画像センサーに関するかかる測定結果を示す。測定結果は、本図面において500K毎に描かれる。また、図9は、CIE等エネルギー光源を使用して定義され、かつプランク曲線からのゼロ偏差が提供される黒体放射体の正規化RおよびBスペクトルである。黒体放射体データも、例えばファームウェア42'の一部としてシステム内に保存されてもよい。当業者によって既知であるように、このような較正は、例えば、SimOne社製のテントおよびGretag MacBeth社製のパッチを使用して実行可能である。
【００７１】
本出願者の発明者は、現在のループの色温度が景色の本来の色温度に近い場合に、該プリゲインが適用された画像データもホワイトバランスされるべきであり、したがって最大と最小のプリゲインされた色成分のヒストグラムのパーセンタイルの違いは、そのパーセンタイルのうちの少なくとも一つに関して小さくなることを発見した。
【００７２】
この見解に基づき、本発明者は、評価される各色温度に関して以下の手段を使用すること提案する。
0005377691.tif 000003
ここで、
・  pregainR(i) : i番目の色温度におけるR成分のプリゲイン
・  pregainB(i) : i番目の色温度におけるB成分のプリゲイン 
・  RP(n) : Rヒストグラムのn番目のパーセンタイル値
・  GP(n) : Gヒストグラムのn番目のパーセンタイル値
・  BP(n) : Bヒストグラムのn番目のパーセンタイル値
・  max(pregainR(i) × RP(n), GP(n), pregainR(i) × BP(n)) :(pregainR(i) × RP(n), GP(n), pregainR(i) × BP(n)) の最大要素
・  min(pregainR(i) × RP(n), GP(n), pregainR(i) × BP(n)) : (pregainR(i) × RP(n), GP(n), pregainR(i) × BP(n))の最小要素
・  iは、1から、評価される色温度の数まで変化する。
・  nは、1から、色成分ヒストグラムについて計算されるパーセンタイルの数まで変化する。
【００７３】
ループの現在の色温度が本来の色温度に近い場合に、ホワイトバランスが良好であれば、最大と最小のプリゲインされた色成分のヒストグラムパーセンタイルの違いがそのパーセンタイルのうちの少なくとも一つに関して小さくなるので、式（1）で表される手段は小さくなる。この手段は、ループにおける現在の色温度が本来の色温度とは程遠い場合に、ホワイトバランスが良好でないと、最大と最小のプリゲインされた色成分のヒストグラムパーセンタイルの違いが大きくなる。したがって、この手段は、画像景色の本来の色温度を検出するために使用可能である。
【００７４】
大きい単色物体で推定される影響を低下させるために、この手段は以下のように修正されてもよい。
0005377691.tif 000004
ここで、max（max_min_dif（n））は、max_min_dif（1）〜max_min_dif（N）の最大値である（Nは、色成分のヒストグラムについて計算されるパーセンタイルの数）。
【００７５】
ループ604において、式（1）または（1'）で表される手段は、ステップ608で評価される色温度毎に計算される。
【００７６】
ループ610は、色温度範囲を決定するための第二の手段を計算する処理である。適用されたゲインが画像に対応する正確なホワイトバランスゲインに近い場合、画像景色の大部分について、色相ヒストグラムにある別々の色がスパイクのように多く存在する（色相は、HSV色空間のH成分である）ことを、本発明者は考察した。しかしながら、適用されたゲインが理想的なホワイトバランスゲインとは程遠い場合、評価された色温度上昇が、画像景色の本来の色温度に比べて高過ぎるまたは低過ぎるか否か次第で、赤領域または青領域にいおいて強力なスパイクが存在する場合がある。この見解に基づき、本発明者は、プリゲインが適用された画像データの色相ヒストグラムの分散に関して点数を用いることを提案する。第一の手段のように、第二の手段も評価される色温度毎に計算される。その結果得られた点数は本来の色温度を検出するために相互比較される。
【００７７】
ステップ612において、ループ610にける現在の色温度のプリゲインは、ステップ508で計算されたRおよびBブロック平均に適用される。前述および図9に図示されるように、プリゲインは、現在のループ位置の色温度における標準照明光源下のR/GおよびB/Gセンサー反応の逆値であり、事前に測定されなければならない。プリゲインは、飽和画素を含まないブロックの全てに適用される。
【００７８】
ステップ614において、色相ヒストグラムは、まず、sRGB（またはその他の同様な色変換）変換をプリゲインされたRGBブロック平均に適用することによって作成され、RGB／HSV変換を正規化されたRGB値に適用し、その結果得られた色相値を色相ヒストグラムに蓄積することによって、センサーの色応答を正規化する。次に、点数、つまり第二の手段は、以下の方法で計算される。まず、色相ヒストグラムの各ビン値は、ヒストグラムの平均ビンカウント値と比較され、Nは、平均ビンカウント値を上回る値を有する各ビンの点数に加えられる。N*bin_count/bin_count_averageは、平均ビンカウント値未満の値を有する各ビンの点数に加えられる。「N」は数字であり、具体的な実施形態に応じて最適化されるべきである。発明者は、N=1000を検証して望ましい結果を出した。また、ビンの数は、具体的な実施形態に応じて最適化されるべきである。本発明者は、ビンの数＝32を検証して望ましい結果を得た。
【００７９】
一実施形態において、異なる色温度のそれぞれのプリゲインに関する色相ヒストグラムの数学的分散は、第二の手段として用いられてもよい。
【００８０】
一実施形態において、低過ぎるまたは高過ぎる光度値を有するブロック、ならびに低過ぎる飽和値（HSVのS成分）を有するブロックは、ステップ614における色相ヒストグラムから除外されてもよい。その理由は、そのような状態における色相は信頼性のある手段であるとは言えないからである。
【００８１】
ループ610が完了すると、評価される色温度の全てについて第二の手段が計算される。
【００８２】
ステップ616において、色温度範囲を決定する第三の手段が取得される。いかなる飽和画素も含まないブロックに関してステップ510で計算された平均R、G、およびB値は、第三の手段として用いられてもよい。また、第三の手段のRGB値に最も近いプランク曲線上の位置に対応する色温度も、計算される。
【００８３】
ステップ618において、色温度範囲を決定する第四の手段が取得される。明るいブロックに関してステップ510で計算された平均R、G、およびB値は、第四の手段として用いられてもよい。また、第四の手段のRGB値に最も近いプランク曲線上の位置に対応する色温度も、計算される。
【００８４】
ステップ620において、初期色温度範囲は、第一の手段の点数に対応する色温度、ならびに最大の第二の手段の点数に対応する色温度によって定義される。例えば、第一の手段が6000Kを示し、第二の手段が5000Kを示す場合、初期範囲は［5000K, 6000K］として定義される。 
【００８５】
多数の灰色、つまり画像の低過ぎる光度レベルまたは全色温度の色相における低過ぎる分散が第二の手段で検知される場合、第三および第四の手段によって示される色温度の平均が、第二の手段の結果の代わりに使用される。画像景色に多数の灰色が存在する状況は、検出されることができる。その理由は、そのような状況において、評価されたRGBゲインが正確なAWBゲインに近い場合に、低飽和値（HSVのS成分）を有するブロックが大量に存在するからである。
【００８６】
ステップ622は、先行のステップで取得された初期範囲の微同調を実行する処理を示す。好適な実施形態において、この調整は以下の順番で実行される。
・  使用された全露出およびその露出からもたらされた平均信号レベルに応じて検出される、照明レベルに応じて動作範囲を限定する。例えば、非常に明るい照明レベルは、［2500K, 15000K］などのデフォルト範囲の代わりに、［3500K, 7500K］に動作範囲を制限することができる。
・  第一および第二の手段の両方がほぼ同じ色温度を示す場合、少なくとも1000K（例えば、［2500K, 3500K］）を含むように範囲を拡張する。まず、第三の手段によって示される色温度の方向に一刻み幅（500K）を拡張し、次に、必要に応じて5500Kの方向にさらなる刻み幅を拡張する。
・  照明レベルが十分高い場合、範囲を［5000K, 6000K］側に移動する。
・  1500Kを超える範囲が含まれる場合に範囲を制限する。まず、第三および第四の手段に示される色温度の平均に応じて、一刻み幅（500K）を制限し、次に、5500K側に制限する。
・  特例の制限を適用する（検出された特例（第一から第四の手段では難しいと認識される一定の特例を検出可能なニューラルネットワークなどで検出）、あるいは手動選択された「昼光」、「タングステン」などのAWBモード）
【００８７】
上記値は単なる例であることに留意されたい。全ての値は、具体的な実施形態に応じて変更可能である。
【００８８】
第一から第四の手段で最終光度範囲を決定するために、ステップ620および622の代わりに、別の発見的方法を使用することも可能である。例えば、第一から第四の手段のうちの一つ以上を入力（またはその他の手段でもよい）として使用し、推定された色温度を出力するニュートラルネットワークを用いることが可能である。
【００８９】
ステップ622の結果を受けて、動作色温度範囲が最終決定される。上述のように、最終色温度範囲は比較的狭い。これは、以下の理由から、AWBの性能の向上に非常に有利になる。
【００９０】
既存のAWBアルゴリズムの多くは、例えば、明るい青色（特に靄の雲に近い青空の一部）または明るい茶色（明るい茶色の肌または砂の一部）のような色を、白色と誤って判断してきた。その理由は、例えば、低色温度（例えば、〜5500K）照明下の明るい青色の被写体は、センサーにおいて、高色温度（例えば、〜10000K）照明下の白色の被写体と同じように反応可能であるからであり、同様に、高色温度の照明下の明るい茶色の被写体は、低色温度の照明下の白色の被写体と同じように反応可能であるからである。既存の解決法として、AWB動作範囲を例えば3500K〜7000Kに固定することが挙げられる。この従来技術の解決法には、タングステン照明または曇りの雪景色などの極端な色温度においてあまり望ましい結果をもたらさないという明らかなマイナス面がある。
【００９１】
しかしながら、実施例２に関するAWBアルゴリズムは、適応的に対処されるように色温度範囲を限定し、つまり、上述のような曖昧な問題が起こらない範囲まで大幅に絞り込む。したがって、本特許出願において発明されたAWBアルゴリズムにより、異なる照明条件でも安定したAWB結果が提供可能になる。このように、AWBの性能はこの限定するという特徴によって向上する。
【００９２】
ステップ624は、図4のステップ600に関する処理終了を示す。
【００９３】
図7は、図4のステップ700に含まれる処理を示す。前述のとおり、ステップ700は、灰色の可能性のあるブロックを発見し、その基準となる灰色ブロックに基づいて初期ホワイトバランスゲインを計算する処理を示す。
【００９４】
ステップ702は処理開始を示す。ループ704は、色判定が全ブロックについて個々に実行されることを示す。しかしながら、好ましくは、飽和画素を含むブロックは、画素飽和に対するロバスト性改善のため、色判定から除外されてもよい。
【００９５】
ループ706において、現在のブロックにおける各RGB平均と、現在の色温度における標準源に関するRGBセンサー反応との逸脱が計算される。前述のとおり、各RGB平均は、ステップ508で計算され、異なる色温度における標準源に関するRGBセンサー反応は、例えばファームウェア42'に保存される。逸脱は、センサー反応データが存在し、かつステップ600で決定された範囲にある色温度毎に計算される。例えば、ステップ600が色温度範囲を［5000K, 6000K］と決定し、センサー特性が500K毎に実行された場合、逸脱は、5000K、5500K、および6000Kに関して計算される。逸脱は、ブロック平均と特性データ（つまり、標準環境におけるセンサー反応）とのR/GおよびB/Gを比較することによって計算されてもよい。逸脱が小さい場合、ブロックの色は灰色と判断可能である。
【００９６】
ステップ708において、どの色温度において逸脱が最小であるかを確認する。ステップ710において、最小逸脱を既定の閾値と比較する。一実施形態において、アルゴリズムは、（R/G, B/G）の違いについて、最も高い可能性の範囲として+/-3%、中程度の範囲として+/-5%、および最低許容範囲として+/-10%である三つの可能性のある範囲を定義する。ステップ710の結果を受けて、各ブロックは、最も高い可能性をもたらす色温度（この場合、5000K、5500K、または6000K）に応じて、四つのカテゴリー（+/-3/5/10%または灰色ではない）のうちの一つに登録される。
【００９７】
当然ながら、これらの閾値は単に例であり、さまざまな種類の閾値が使用可能である。例えば、センサー反応が個々のセンサーに応じて一定の範囲で変化し、それがカラーフィルター応答における変動によってもたらされる場合、上記例のような限度は、適宜拡大してもよい。また、例えば500Kの刻み幅の例えば［1000K,15000K］間の色温度毎にR/GおよびB/Gの限度を決定する際に、プランク曲線とかけ離れていることで既知である異なる照明源を考慮することも望ましい場合がある。
【００９８】
ループ704の完了後、全ブロックはその四つのカテゴリーに分類される。上記基準は、単なる例であり、センサー特性、製造者またはユーザーの好みなどに応じて、さまざまな方法で定義可能であることに留意されたい。
【００９９】
ステップ712において、R、G、およびBブロック値の加重平均は、灰色と判定されたブロック（つまり、上記例の場合、逸脱が10%未満）から生成される。高い可能性を有するブロックのブロック値は、加重平均の計算においてより重点が置かれる。可能性の高い灰色ブロックが多く発見された場合、可能性の低い灰色ブロックの重点はゼロであってもよい。つまり、そのようなブロックは混合値に含まれなくてもよい。一実施形態において、ブロックの光度も加重平均に考慮されてもよい。低光度のブロック値よりも、高光度のブロックのブロック値に重点が置かれてもよい。ステップ712で結果としてもたらされるR、G、およびB値は、最終ホワイトバランスゲインの基礎となる。
【０１００】
ステップ714および716は、ホワイトバランスゲインを取得するための補足値を計算するステップである。ステップ714は、一連の第一の補足値を計算する。これは、プランク曲線上の二つの位置にからの最短距離を有するプランク曲線上の位置に対応する、一連のRGB値または（R/G、B/G）値であり、その二つの位置のうちの一つは、ステップ600で決定した範囲の色温度の中心に対応する位置で、もう一つは、いかなる飽和画素も含まないブロックの全てに関する平均のR、G、およびB値に対応する位置である（ステップ510で取得）。プランク曲線上の位置に対応するR/GおよびB/G値は、センサーのスペクトル応答測定から取得可能である。
【０１０１】
ステップ716は、一連の第二の補足値を計算する。これは、ステップ712で取得した加重RGB平均値に対応する位置からの最短距離を有するプランク曲線上の位置に対応する、一連のRGB値または（R/G、B/G）値である。
【０１０２】
ステップ718において、初期ホワイトバランスゲインは、ステップ712から716で取得した一連の三つの値によって決定される。多数の灰色ブロックがステップ600で発見された場合、ステップ712に関する値は、本ステップの結果としてもたらされるゲインに優位であることが好ましい。ほとんどまたは全く灰色ブロックがステップ600で発見されなかった場合、ステップ714および716に関する値は、結果としてもたらされるゲインに優位であるべきである。重み係数は、ステップ600で灰色と見なされたブロックの数に応じて適応的に変化してもよい。ステップ718において結果としてもたらされる値は、ホワイトバランスゲインの初期候補と見なされる。一実施形態において、結果としてもたらされるこの値は、最終ホワイトバランスゲインとして使用可能であるが、本明細書に記載される実施形態は、ステップ800で示される処理をさらに有する。ステップ720は、ステップ700に関する処理終了を示す。
【０１０３】
画像景色にほとんどまたは全く基準となる灰色（つまり、白色／灰色物体など）が存在せず、グレーワールド点数も高くない場合に、既存のAWBアルゴリズムの多くはロバスト性を失う。しかしながら、発明されたAWBアルゴリズムは、灰色と判定されたブロックからだけでなく、上述の二つの手段からもホワイトバランスゲインを決定するため、このような極端な条件でもロバストなAWB結果を提供することができる。したがって、これらの手段によってAWBゲインを決定するという特徴により、AWBの性能が向上することを理解されたい。
【０１０４】
図8は、図4のステップ800に含まれる処理を示す。前述のとおり、ステップ800は、一定の基準で初期ホワイトバランスゲインを同調し、理想的なホワイトバランスゲインを提供する処理を示す。
【０１０５】
ステップ802は、ステップ800に関する処理開始を示す。ステップ804において、ステップ700から得られたRGB値は、その値が特定の限度外の色温度に対応する場合に調整される。
【０１０６】
ステップ806は、色誤差の可能性を検出するステップを示す。例えば、R、G、およびBの間の違いが最小で、ステップ700で取得された初期ホワイトバランスゲインに応じてゲインされたヒストグラムのパーセンタイルにおいて、いくつかの色成分がその他の色成分と比べて非常に強力である場合、その違いは、例えば、最大で10%、適応的に削減される。つまり、その違いがいくつかの閾値を上回る場合に最大補正が適用され、そうでない場合は、補正は、低い方の閾値でゼロになるまで低い方の閾値まで線形に削減される。
【０１０７】
ステップ808において、付加的なデジタルゲインは、必要に応じて露出不足を補うために計算される。ステップ810において、最終ホワイトバランスゲインは、ステップ804〜808で実行された調整に応じて決定される。これらの調整により、最終ホワイトバランスゲインは、誤差の可能性に対してよりロバストであることが可能である。ステップ812は、ステップ800に関する処理終了を示す。
【０１０８】
さまざまな修正を、上述の実施形態に加えることが可能である。例えば、「昼光」または「タングステン」などのいくつかの特別なAWBモードがユーザーによって選択されると、ステップ600および／またはステップ800において、対応する効果を色温度限度に与えるような、システムまたはアルゴリズムを構成することも可能である。
【０１０９】
当然ながら、実施例１および２を含む本発明に係るAWBアルゴリズムは、デジタルスチルカメラ、デジタルビデオカメラ、およびカメラ付き携帯電話機などのカメラまたはビデオ機能付き携帯機器などのいかなる画像装置にも用いられることができる。本発明に係るAWBアルゴリズムは、本明細書に記載のように一部はハードウェアによって、また一部はソフトウェアによって実現可能であるが、全体をソフトウェア処理で実装することも可能である。したがって、本発明は、パーソナルコンピュータ、携帯機器、サーバー、またコンピュータ装置で上述のAWBアルゴリズムを実行するコンピュータプログラムを備える。
【０１１０】
前述の明細書において、特に重要と考えられる本発明の特徴に注目するように試みたが、上に言及および／または図示された特徴の組み合わせに関するいかなる特許可能な特徴について、そこで特に強調されているか否かに関わらず、本出願者が保護を主張することを理解されたい。
【図面の簡単な説明】
【０１１１】
【図１】詳細な説明部分で説明される第一の実施形態の好適な実施形態に係る、主要構成要素を示す略ブロック図である。
【図２】第一の実施形態に係るＡＷＢ分析部１７の主要構成要素を示す略ブロック図である。
【図３】第一の実施形態に係るＡＷＢ分析部１７の画像処理を説明するフローチャートである。
【図４】詳細な説明部分で説明される第二の実施形態にかかるＡＷＢの処理の流れに関する概要である。
【図５】図４に示されるステップ５００に含まれる処理に関するフローチャートである。
【図６】図４に示されるステップ６００に含まれる処理に関するフローチャートである。
【図７】図４に示されるステップ７００に含まれる処理に関するフローチャートである。
【図８】図４に示されるステップ８００に含まれる処理に関するフローチャートである。
【図９】例示的な画像センサー反応と、色温度の関数としてＣＩＥ等エネルギー光源を使用して定義され、かつプランク曲線からのゼロ偏差を与えられる理想的な黒体放射体とを示す。
【図１】
0005377691.tif 000005
【図２】
0005377691.tif 000006
【図３】
0005377691.tif 000007
【図４】
0005377691.tif 000008
【図５】
0005377691.tif 000009
【図６】
0005377691.tif 000010
【図７】
0005377691.tif 000011
【図８】
0005377691.tif 000012
【図９】
0005377691.tif 000013