(57)【要約】【課題】より少ない演算量で、良好なホワイトバランス処理を行う。【解決手段】  ログ変換器４１により、入力画像の画素の画素値の階調を線形スケールから対数スケールに変換し、入力画像を空間方向に分割して得られるブロック毎にＲＧＢの画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出する。  ブロック毎のＲＧＢの画素の画素値の積分値と画素数より、ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、ブロック毎のＲＧＢの画素の画素値の平均値を対数スケールから線形スケールに変換し、ブロック毎にＲＧＢの画素の画素値の平均値の比を決定してブロック毎にＲＧＢのゲイン設定値を設定する。  そして、ＲＧＢのゲイン設定値に基づいて入力画像のブロック毎の画素の画素値に対してホワイトバランス処理を行う。【選択図】図２
2013207427.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の画素の画素値の階調を線形スケールから対数スケールに変換する変換部と、
前記入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出する検波部と、
前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、前記ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、前記ブロック毎の各色成分の画素の画素値の平均値を対数スケールから前記線形スケールに変換し、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定するゲイン設定部と、
各色成分のゲイン設定値に基づいて前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行うホワイトバランス処理部と、を備える
撮像装置。
【請求項２】
前記検波部は、
前記ブロック毎の各色成分の画素の輝度が閾値以上か否かを判定する輝度閾値判定部と、
前記ブロック毎に輝度が閾値未満と判定された画素の画素値の積分値を対数スケールで算出するとともに画素数を算出する低輝度側積分部と、
前記ブロック毎に輝度が閾値以上と判定された画素の画素値の積分値を対数スケールで算出するとともに画素数を算出する高輝度側積分部と、を更に備え、
前記ゲイン設定部は、前記低輝度側積分部から供給される前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、低輝度側の画素の画素値の平均値を算出し、また、前記高輝度側積分部から供給される前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、高輝度側の画素の画素値の平均値を算出し、低輝度側と高輝度側のそれぞれについて、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定し、
前記ホワイトバランス処理部は、各色成分の低輝度側のゲイン設定値または高輝度側のゲイン設定値に基づいて、前記入力画像の前記ブロック毎に低輝度側または高輝度側の画素の画素値に対してホワイトバランス処理を行う
請求項１に記載の撮像装置。
【請求項３】
前記ホワイトバランス処理部は、
前記入力画像の画素の画素値の階調を線形スケールから対数スケールに変換する変換部、を更に備え、
前記ゲイン設定部は、記対数スケールで算出した前記ブロック毎の各色成分の画素の画素値の平均値を用い、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定し、
前記ホワイトバランス処理部は、対数スケールで設定された前記ブロック毎の各色成分のゲイン設定値を用いて、前記変換部により対数スケールに変換された前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行う
請求項１に記載の撮像装置。
【請求項４】
前記入力画像は、露光時間を異ならせて撮影された複数のフレームを合成した画像である
請求項１に記載の撮像装置。
【請求項５】
前記ホワイトバランス処理部により前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理が行われた後、前記入力画像の前記ブロック毎の画素の画素値の階調を圧縮する階調圧縮部、を更に備える
請求項１に記載の撮像装置。
【請求項６】
変換部により、入力画像の画素の画素値の階調を線形スケールから対数スケールに変換することと、
検波部により、前記入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出することと、
ゲイン設定部により、前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、前記ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、前記ブロック毎の各色成分の画素の画素値の平均値を対数スケールから前記線形スケールに変換し、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定することと、
ホワイトバランス処理部により、各色成分のゲイン設定値に基づいて前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行うことと、
を含む撮像方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、撮像装置および撮像方法に関し、例えばホワイトバランス処理などを行う場合に用いて好適な撮像装置および撮像方法に係わる。
【背景技術】
【０００２】
従来、一画面を複数領域に分け、各領域でＲ，Ｇ，Ｂそれぞれの画素値を線形スケールで積分計算し、その検波値を元にＲＧＢゲインを調整することでホワイトバランス処理を行っている。その際、一領域につき一つの検波値／ＲＧＢゲインを用いる。
【０００３】
例えば、画像を複数のブロックに分割してブロック毎にホワイトバランス処理を行う技術が開示されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３４７８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ワイドダイナミックレンジの画像信号を取り扱う場合、線形スケールのままではビット数が大きくなり、回路規模および処理負荷が大きくなってしまう。
【０００６】
以上のような状況から、より少ない演算量で、良好なホワイトバランス処理を行うことができる手法が要望されていた。
【課題を解決するための手段】
【０００７】
本開示の一側面の撮像装置は、変換部と、検波部と、ゲイン設定部と、ホワイトバランス処理部を備えて構成される。
変換部は、入力画像の画素の画素値の階調を線形スケールから対数スケールに変換する。
検波部は、入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出する。
ゲイン設定部は、ブロック毎の各色成分の画素の画素値の積分値と画素数より、ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、ブロック毎の各色成分の画素の画素値の平均値を対数スケールから線形スケールに変換し、ブロック毎に各色成分の画素の画素値の平均値の比を決定してブロック毎に各色成分のゲイン設定値を設定する。
ホワイトバランス処理部は、各色成分のゲイン設定値に基づいて入力画像のブロック毎の画素の画素値に対してホワイトバランス処理を行う。
【０００８】
本開示の一側面によれば、まず入力画像の画素の画素値の階調を線形スケールから対数スケールに変換し、入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出する。対数スケールで検波を行い、その検波結果を元に、ホワイトバランス処理におけるゲイン設定を行うことにより、例えばダイナミックレンジ対応のビット数の多いデータの演算であっても、ビット数を削減できる。それゆえ、演算量を少なくできる。
【発明の効果】
【０００９】
本開示によれば、より少ない演算量で、良好なホワイトバランス処理を行うことができる。そして、演算量を少なくできることにより、回路規模の増大を抑え、処理負荷を軽減できる。
【図面の簡単な説明】
【００１０】
【図１】本開示の第１の実施形態に係る撮像装置の内部構成例を示すブロック図である。
【図２】本開示の第１の実施形態に係るホワイトバランス検波部の構成例を示すブロック図である。
【図３】Ａは計算式を用いたログ変換の例、Ｂはテーブルを用いたログ変換の例を示す説明図である。
【図４】１画面を複数の領域に分割する領域分割の説明図である。
【図５】本開示の第１の実施形態に係るホワイトバランス処理部の構成例を示すブロック図である。
【図６】本開示の第１の実施形態に係るホワイトバランス処理部の他の構成例（ログ変換部あり）を示すブロック図である。
【図７】本開示の第１の実施形態に係るホワイトバランス検波処理を説明するフローチャートである。
【図８】本開示の第１の実施形態に係るＲＧＢゲイン設定処理を説明するフローチャートである。
【図９】本開示の第１の実施形態に係るホワイトバランス処理を説明するフローチャートである。
【図１０】ＲＧＢゲイン設定値の４つの中心点およびバイリニア補間処理を説明するための図である。
【図１１】本開示の第２の実施形態に係るホワイトバランス検波部の構成例を示すブロック図である。
【図１２】輝度閾値を説明するための図である。
【図１３】本開示の第２の実施形態に係るホワイトバランス処理部の構成例を示すブロック図である。
【図１４】本開示の第２の実施形態に係るホワイトバランス処理部の他の構成例（ログ変換部あり）を示すブロック図である。
【図１５】輝度ごとＲＧＢゲイン算出処理を説明するための図である。
【図１６】本開示の第２の実施形態に係るホワイトバランス検波処理を説明するフローチャートである。
【図１７】本開示の第２の実施形態に係るＲＧＢゲイン設定処理を説明するフローチャートである。
【図１８】本開示の第２の実施形態に係るホワイトバランス処理を説明するフローチャートである。
【図１９】Ａ〜Ｃは、本開示の第２の実施形態の変形例に係る輝度閾値算出処理を説明するための図である。
【図２０】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本開示を実施するための形態（以下、実施形態という）の例について説明する。なお、本明細書および図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【００１２】
説明は以下の順序で行う。
１．第１の実施形態（画像データをログ変換後に、ＷＢ検波およびＷＢ処理を行う例）
２．第２の実施形態（画像データをログ変換後に、輝度閾値を用いて、ＷＢ検波およびＷＢ処理を行う例）
３．変形例
【００１３】
＜１．第１の実施形態＞
[撮像装置の構成例]
図１は、本開示の第１の実施形態に係る撮像装置の内部構成例を示すブロック図である。
撮像装置１は、例えばイメージセンサ１０、合成処理部２０、デモザイク処理部３０、ホワイトバランス検波部４０、ＣＰＵ５０、メモリ５２、ホワイトバランス処理部６０、階調圧縮部７０、および出力変換部８０を備えて構成される。一例として、合成処理部２０、デモザイク処理部３０、ホワイトバランス検波部４０、ホワイトバランス処理部６０、および階調圧縮部７０は、ＤＳＰブロックにより実現される。ＤＳＰブロックは、信号処理用のプロセッサ（例えば、ＤＳＰ）と画像データを保持するＲＡＭ（Random Access Memory）などのメモリなどにより構成されるブロックであり、プロセッサが所定のプログラムを実行することにより、後述する画像処理を行う。
【００１４】
レンズおよび絞りなどからなる光学系を通過した被写体からの入射光は、まずイメージセンサ１０の撮像面上の各受光素子に到達し、受光素子による光電変換により電気信号に変換される。
【００１５】
このイメージセンサ１０の前面には、マトリクス状に配列された各画素の受光素子ごとに、例えばＲ（赤），Ｇ（緑），Ｂ（青）のカラーフィルタが設けられている。カラーフィルタは、例えばベイヤー配列のフィルタであり、Ｇのフィルが市松状に配置され、残りの部分に、Ｒ及びＢのフィルタが一行ごとに交互に配置されている。したがって、イメージセンサ１０の各画素は、Ｒ，Ｇ，Ｂのうちのいずれかの色成分に対応する電気信号を出力する。
【００１６】
イメージセンサ１０から出力された電気信号は、例えば相関２重サンプリング回路（図示略）によってノイズが除去され、イメージセンサ１０のＡ／Ｄコンバータ（図示略）によってデジタル化され、デジタル化された画像データ（モザイク画像）がＤＳＰブロックのメモリに一時的に格納される。相関２重サンプリング回路を含むＤＳＰブロックにより構成される信号処理系は、図示しないタイミングジェネレータからのタイミング信号によって制御する。このタイミング信号に基づいて各ブロックが動作することで、一定のフレームレートにより画像データが合成処理部２０に取り込まれる。すなわち、合成処理部２０に、一定のフレームレートで画像データのストリームが供給される。
【００１７】
イメージセンサ１０は、一般的なＣＭＯＳ（Complementary Metal Oxide Semiconductor）などのイメージセンサよりダイナミックレンジが広く（ワイドダイナミックレンジ）、飽和したり、ノイズを発生させたりすることなく、被写体の暗い部分から明るい部分までを撮像することができる。例えば、イメージセンサ１０は、シャッタースピードすなわち露光時間の異なる連続した複数のフレームを一組とする画像データを出力することにより、ワイドダイナミックレンジに対応するようにしている。
【００１８】
合成処理部２０は、イメージセンサ１０から供給される露光時間の異なる連続した複数のフレーム（モザイク画像）を１フレームに合成する。例えば、一組の画像データの中で最も遅いシャッタースピードで露光したフレームを基準(１倍)とし、他のフレームはその基準のシャッタースピードに対して何倍(ここではＸ倍とする)のシャッタースピードであるかを算出する。そして、当該他のフレームを構成する画素の画素値（画素信号）をＸ倍することで、シャッタースピードの異なる各フレームを構成する各画素の画素値を正規化する。その後、複数のフレームの対応する画素ごとに、最も遅いシャッタースピードのフレームの画素から順番に画素値をみて、その値がそのフレームが表現できる最大値ではないときに採用し、最大値であるときはさらに一つ速いシャッタースピードのフレームの画素をみていく。なお、この露光時間の異なる連続した複数のフレームの合成処理方法は、一例であってこの例に限られない。
【００１９】
このようにして、合成処理部２０は、シャッタースピードの異なる複数フレームが合成されたワイドダイナミックレンジ(多ビット)に対応した画像データ（モザイク画像）を生成する。すなわち、合成処理部２０（Ａ／Ｄコンバータ）は、入力される電気信号を、通常の撮像素子の階調数（例えば、８〜１２ビット程度のデータにより表現できる階調数）よりも多い階調数（例えば、１４〜１６ビット程度のデータにより表現できる階調数）の画像データに変換する。なお、図１及び以降の図面のブロック図において、通常のワイドダイナミック程度のビット数のデータの流れを一点鎖線で、ワイドダイナミック対応のビット数のデータの流れを実線で示している。
【００２０】
デモザイク処理部３０は、合成処理部２０から供給された画像データ（モザイク画像）に対して、１つの画素がＲ，Ｇ，Ｂ成分を全て有するようにするデモザイク処理を施す。これにより、Ｒ，Ｇ，Ｂの３つの色成分にそれぞれ対応するＲ画像、Ｇ画像、Ｂ画像の３つの画像データが生成される。イメージセンサ１０から供給される画像データは、画素ごとにＲまたはＧまたはＢいずれかの色成分の情報しか持たない。そこで、デモザイク処理により、例えば、所望の色成分の画素を生成したい注目画素の縦横斜めに隣接するＲの画素の画素値の平均値、Ｇの画素の画素値の平均値、Ｂの画素の画素値の平均値をその注目画素の位置に補間する色成分の画素値にする（画面端の画素を処理する場合は存在する周辺画素の平均にする）などして画素ごとにＲ，Ｇ，Ｂの情報を持たせる。デモザイク処理部３０は、生成したＲ画像、Ｇ画像、Ｂ画像の３つの画像データをホワイトバランス検波部４０と、ホワイトバランス処理部６０に供給する。
【００２１】
ホワイトバランス検波部４０は、デモザイク処理部３０から供給されるＲ，Ｇ，Ｂの画像データの画素値の線形スケールで表された階調数を対数スケールに変換し、対数スケール変換後のＲ，Ｇ，Ｂの画像データを複数の領域に分割し、領域ごとに該領域を構成する画素の画素値を加算する。
【００２２】
ＣＰＵ５０は、撮像装置１全体を制御するものであり、本例では、ＲＧＢゲイン設定部５１を備える。ＲＧＢゲイン設定部５１は、ホワイトバランス検波部４０から供給されるＲ，Ｇ，Ｂの画像データの領域ごとの検波結果に基づいて、Ｒ，Ｇ，Ｂの画像データの各領域のホワイトバランス処理時に使用されるゲイン設定値（ＲＧＢゲイン設定値）を算出する。ＲＧＢゲイン設定部５１は、ゲイン設定部の一例である。
【００２３】
メモリ５２は、ホワイトバランス検波部４０、ホワイトバランス処理部６０、およびＣＰＵ５０による演算結果を一時格納する記憶部である。記憶部であれば、メモリに限られず、例えばレジスタを用いてもよい。
【００２４】
ホワイトバランス処理部６０は、デモザイク処理部３０から供給されるＲ，Ｇ，Ｂの画像データを複数の領域に分割し、ＣＰＵ５０で設定されたＲ，Ｇ，Ｂの画像データの領域ごとのゲイン設定値（ＲＧＢゲイン設定値）を用いて、画像データの領域ごとにホワイトバランスの調整を行う。
【００２５】
階調圧縮部７０は、ホワイトバランス処理部６０から供給されるワイドダイナミックレンジ対応の多ビットのデータ（例えば、１４〜１６ビット程度のデータにより表現できる階調数）の最小値から最大値までを、例えば０〜２５５（８ビット）のＲＧＢデータに圧縮することで、通常のダイナミックレンジの出力変換処理に対応させる。
【００２６】
出力変換部８０は、画像データのダイナミックレンジが、例えば表示装置が表示可能なデータフォーマットになるように、画像処理を画像データに施した後、画像処理を施した画像データを、必要に応じて、表示装置やコーデックに供給する。例えば、コーデックでは、画像データを所定の方式により符号化し、符号化した画像データを、記録媒体に記録させる。
【００２７】
[ホワイトバランス検波部の構成例]
図２は、図１のホワイトバランス検波部４０の機能の構成例を示すブロック図である。
ホワイトバランス検波部４０は、ログ変換部４１、領域判定部４２、ブロック検波器４３から構成される。
【００２８】
ログ変換部４１は、変換部の一例であり、デモザイク処理部３０から供給される１フレームのＲＧＢ画像の画素値を表す線形スケールの階調数を、対数スケールの階調数に変換し、領域判定部４２に供給する。線形スケールの階調数を対数スケールに変換することを、ログ変換と称す。ログ変換は、主に、計算式を用いる方法、またはテーブルを用いる方法によって実現できる。
【００２９】
図３は、ログ変換の実現例を示す説明図であり、図３Ａは計算式を用いたログ変換の例、図３Ｂはテーブルを用いたログ変換の例である。それぞれに、線形スケール（リニア）から対数スケール（ログ）への変換、および、対数スケール（ログ）から線形スケール（リニア）への変換例が例示されている。図３Ｂの線形スケールのレコードでは、２進数であることを示す「ｂ」を表示している。「＊」はワイルドカードであり、どんな数字が入っても当てはまることを示す。テーブルを用いる方法は、粗い精度で変換するには良いものの、精度が細かくなってくるとテーブルが巨大化してしまうため、精度良く変換するには変換式による変換の方がよい。
【００３０】
このログ変換部４１で、入力されたＲＧＢ画像の画素値を表す線形スケールの階調数を、対数スケールの階調数に変換することにより、データのビット数を少なくすることができので、回路規模の増大を抑制および処理負荷を軽減することができる。
【００３１】
なお、線形スケールから対数スケールへの変換時は計算式を用い、対数スケールから線形スケールへの変換時はテーブルを用いるようにしてもよい。もしくは、線形スケールから対数スケールへの変換時はテーブルを用い、対数スケールから線形スケールへの変換時は計算式を用いるという組み合わせ方もあり得る。
【００３２】
また、対数スケールの階調数を線形スケールに変換することを、リニア変換と称す。リニア変換についても、図３Ａに示すような計算式を用いる方法、または図３Ｂに示すようなテーブルを用いる方法によって実現できる。
【００３３】
領域判定部４２は、ログ変換部４１で対数スケールに変換された輝度値からなる１フレームの画像（画面）を、空間方向に横Ｗ個×縦Ｈ個の領域（以下、ブロックとも称す）に分割し、走査（ラスタスキャン）により入力された画素値に対応する画素（ピクセル）が画像のどの領域（ブロック）に属するかを判定する。この領域の判定は、現在の画素位置の座標を計算しながら判定する。その判定結果を、ブロック検波器４３に通知する。領域判定部４２では、例えばＣＰＵ５０からメモリ５２を介して１画面(１フレーム)の横と縦の画素数（ピクセル数）の情報を与えておく。
【００３４】
図４は、１画面を複数の領域に分割する領域分割の説明図である。
この例では、１画面(１フレーム)を横８、縦６に等分割することによって４８個のブロックに分割し、左上から順に０〜４７のブロック番号を付している。ホワイトバランス検波部４０、ホワイトバランス処理部６０へ供給される画像データ（ＲＧＢ画像）は、破線で表した矢印のように、２次元の画素配列の左上（ブロック番号１）から１ライン目、２ライン目…の順番にラスタスキャンで入力される。
【００３５】
ブロック検波器４３は、検波部の一例であり、１フレームの画像の分割された領域の数と同じ数だけ設けられる。領域判定部４２によって判定されたブロック番号に対応するブロック検波器４３は、積分器４４を備え、領域判定部４２からの指令によりＲ画像、Ｇ画像、Ｂ画像ごとに該当ブロックを構成する画素の画素値を加算（積分）する。すなわち、各々のブロックでＲ，Ｇ，Ｂを別々に検波（積分）する。このとき選択されたブロック検波器４３では、積分した画素の数もカウント（１画素について１カウント）する。このような処理を、１フレームの画像を構成するブロックと対応している各々のブロック検波器４３で実行する。この４つの値、すなわちＲ画像、Ｇ画像、Ｂ画像ごとの該当ブロックを構成する画素の画素値を加算した値、および該当ブロックを構成する画素の画素数の値は、新しいフレームを処理するたびに０に初期化される。ブロック検波器４３による検波結果は、メモリ５２を介してＣＰＵ５０に供給される。
【００３６】
［ＲＧＢゲイン設定部の構成例］
ＣＰＵ５０のＲＧＢゲイン設定部５１では、ホワイトバランス検波部４０からの検波結果を元に、入力された画像データのＲ，Ｇ，Ｂの画素値の積分値の比を求め、これがホワイトバランス処理部６０によって１：１：１に補正されるように、ＲＧＢゲイン（ここでは各ブロックの中心点のＲＧＢゲイン）を設定する。ただし、最初の１フレーム目は検波値が取得できないため、全てのＲＧＢゲインを１倍に設定するものとする。
【００３７】
従来のホワイトバランス検波では、線形スケールのＲ，Ｇ，Ｂの画素の画素値をそのまま積分するため、検波結果がそのまま入力された画像データ全体のＲ，Ｇ，Ｂの比率となる。しかし、ログ変換により回路規模の増大の抑制を図ったホワイトバランス検波では、線形スケールのＲ，Ｇ，Ｂの画素値を積分していくため、そのままでは線形スケールの画素値を乗算していくことに相当する。そこで、ログ変換したＲ，Ｇ，Ｂの画素値を積分する際に、積分した画素数もカウントしておき、検波結果である対数スケールのＲ，Ｇ，Ｂの画素値の積分値をこの画素カウント数で割り、その値を１画素あたりのＲ，Ｇ，Ｂの平均値に相当するとみなすことにより、線形スケールに戻したものを画像全体のＲ，Ｇ，Ｂの比率と考える。そして、これらをホワイトバランス処理によって１：１：１に補正するように、Ｒ，Ｇ，Ｂゲインを設定する。
【００３８】
Ｒ画像の画素値の平均値Ｒ、Ｇ画像の画素値の平均値Ｇ、Ｂ画像の画素値の平均値Ｂは、それぞれ以下の式により求められる。“＾”は指数を表す記号である
【００３９】
平均値Ｒ＝２＾（ΣｌｏｇＲ／ＳｕｍＰｉｘ）
平均値Ｇ＝２＾（ΣｌｏｇＧ／ＳｕｍＰｉｘ）
平均値Ｂ＝２＾（ΣｌｏｇＢ／ＳｕｍＰｉｘ）
但し、ΣｌｏｇＲ，ΣｌｏｇＧ，ΣｌｏｇＢ：  ホワイトバランス検波による
対数スケールでの積分結果、
ＳｕｍＰｉｘ：  画素カウント数
【００４０】
なお、実際には、Ｒ，Ｇ，Ｂゲインが急激に変化すると不自然な動画になるため、時定数αによって緩やかにＲＧＢゲインを変化させることもある。ここで、ｎフレーム目の各色画像の平均値Ｒ、平均値Ｇおよび平均値Ｂを、平均値Ｒ（ｎ）、平均値Ｇ（ｎ）および平均値Ｂ（ｎ）としたときの、（ｎ＋１）フレーム目でのＲＧＢゲインの算出例を以下に示す。ここでは、Ｇゲインを１倍に固定してＲＧＢゲインを計算する。
【００４１】
時定数を使わない場合：
Ｒｇａｉｎ（ｎ＋１）＝平均値Ｇ（ｎ）／平均値Ｒ（ｎ）
Ｇｇａｉｎ（ｎ＋１）＝１
Ｂｇａｉｎ（ｎ＋１）＝平均値Ｇ（ｎ）／平均値Ｂ（ｎ）
※Ｒｇａｉｎ，Ｇｇａｉｎ，Ｂｇａｉｎ：時定数を使わないＲＧＢゲイン
【００４２】
時定数を使った場合：
Ｒｇａｉｎ´（ｎ＋１）＝｛（１−α）＊Ｒｇａｉｎ´（ｎ）｝
＋｛α＊Ｒｇａｉｎ（ｎ＋１）｝
Ｇｇａｉｎ´（ｎ＋１）＝１
Ｂｇａｉｎ´（ｎ＋１）＝｛（１−α）＊Ｂｇａｉｎ´（ｎ）｝
＋｛α＊Ｂｇａｉｎ（ｎ＋１）｝
※Ｒｇａｉｎ´，Ｇｇａｉｎ´，Ｂｇａｉｎ´：時定数を使ったＲＧＢゲイン
※αは０〜１の値とする
【００４３】
[ホワイトバランス処理部の構成例]
（ログ変換部なしの場合）
図５は、図１のホワイトバランス処理部６０の機能の構成例を示すブロック図である。
ホワイトバランス処理部６０は、ブロックＷＢＲＧＢゲイン算出部６１、ＲＧＢゲイン処理部６２から構成される。
【００４４】
ブロックＷＢＲＧＢゲイン算出部６１は、ゲイン算出部の一例であり、ＣＰＵ５０のＲＧＢゲイン設定部５１からメモリ５２を介して供給される、ＲＧＢ画像の領域ごとのＲＧＢゲイン設定値に基づいて、各領域を構成する画素の画素値に対するＲＧＢゲインを算出する。このブロックＷＢＲＧＢゲイン算出部６１は、ホワイトバランス検波部４０の領域判定部４２と類似の機能を備え、ラスタスキャンで入力された画素値に対応する画素（ピクセル）がどの領域に属するかを、現在の画素位置の座標を計算しながら判定する。本例では、ＲＧＢゲイン設定値は、分割された領域の中心点のＲＧＢゲインの設定値である。
【００４５】
ＲＧＢゲイン処理部６２は、デモザイク処理部３０から供給されるＲＧＢ画像の画素値に対し、ブロックＷＢＲＧＢゲイン算出部６１から供給されるＲＧＢ画像の各領域を構成する画素の画素値に対するＲＧＢゲインをかける。
【００４６】
（ログ変換部ありの場合）
図６は、ホワイトバランス処理部６０´の機能の他の構成例（ログ変換部あり）を示すブロック図である。
ホワイトバランス処理部６０´は、ログ変換部６３、ブロックＷＢＲＧＢゲイン算出部６１、ＲＧＢゲイン処理部６２、リニア変換部６４から構成される。すなわち、このホワイトバランス処理部６０´は、ホワイトバランス処理部６０にさらに、ログ変換部６３とリニア変換部６４を備える。ログ変換を行う場合は、ＣＰＵ５０からＲＧＢゲインが対数スケールで設定される。
【００４７】
ログ変換部６３は、デモザイク処理部３０から供給される１フレームのＲＧＢ画像の画素値を表す線形スケールの階調数を、対数スケールの階調数に変換し、ブロックＷＢＲＧＢゲイン算出部６１に供給する。このログ変換部６３は、ホワイトバランス検波部４０のログ変換部４１と同一構成であるから、詳細な説明を割愛する。ログ変換によって対数スケール上での計算となるため、ＲＧＢゲイン処理部６２での処理はＲＧＢゲインと画素値の加算となる。
【００４８】
リニア変換部６４は、ＲＧＢゲイン処理部６２から供給されるホワイトバランス処理後のＲＧＢ画像の画素値を表す対数スケールの階調数を、線形スケールの階調数に変換し、階調圧縮部７０に供給する。このリニア変換部６４は、上述したように、図３Ａに示すような計算式を用いる方法、または図３Ｂに示すようなテーブルを用いる方法によって実現できる。
【００４９】
［ホワイトバランス検波処理の説明］
次に、図７のフローチャートを参照して、ホワイトバランス検波部４０により実行されるホワイトバランス検波処理について説明する。
なお、この処理は、例えば、図１の撮像装置１による撮影が開始され、デモザイク処理部３０からホワイトバランス検波部４０への画像データのストリームの供給が開始されたときに開始される。また、ホワイトバランス検波部４０に供給された画像データは、逐次、ホワイトバランス検波部４０の図示せぬ内部のレジスタに格納される。
【００５０】
ステップＳ１において、ホワイトバランス検波部４０は、内部のレジスタに１フレームの縦幅（画素数）および横幅（画素数）の設定を行う。この１フレームの縦幅および横幅は、撮像装置の仕様から予めわかっている情報である。
【００５１】
ステップＳ２において、ホワイトバランス検波部４０は、領域判定部４２のＸ，Ｙ座標を保持するレジスタ、各ブロック検波器４３のＲ，Ｇ，Ｂ積分値を保持するレジスタ、画素数カウント値を保持するレジスタを全て０に初期化する。なお、Ｘ，Ｙ座標の原点（０，０）を、画像の左上角とする。
【００５２】
ステップＳ３において、ホワイトバランス検波部４０は、デモザイク処理部３０から画像データ（ＲＧＢ画像）のストリームが供給されるのを待つ。例えば、フレームの開始信号の直後の走査位置がフレームの左上、終了信号の直前の走査位置が右下となるラスタスキャンを前提とする。この場合において、イメージセンサ１０がフレームの開始信号および終了信号を出力する例と、フレームの画像データ内に開始信号および終了信号が含まれている例が挙げられる。
【００５３】
ステップＳ４において、ログ変換部４１は、供給された１フレームのＲＧＢ画像の画素値を表す線形スケールの階調数を、対数スケールの階調数に変換し、領域判定部４２に供給する。
【００５４】
ステップＳ５において、領域判定部４２は、入力された画素値に対応する画素（ピクセル）が、画像のどのブロックに属するか判定を開始し、まず該当画素のＸ座標が０であるかどうかを判定する。この処理は、走査対象が新しいラインに切り替わったか否かを判定している。ステップＳ５において、該当画素のＸ座標が０であると判定された場合、ステップＳ６に進む。
【００５５】
一方、ステップＳ５において、該当画素のＸ座標が０ではないと判定された場合、処理はステップＳ７に進む。この場合は、走査対象が新しいラインに切り替わったことを示すものではなく、既にあるラインを走査中であることを示す。
【００５６】
ステップＳ６において、領域判定部４２は、該当画素のＹ座標を確認し、縦方向のブロック番号を判定する。本例では、画像を横８個×縦６個のブロックに分割（図４参照）しているので、まず該当画素のＹ座標が縦幅の１／６未満かどうかを判定し、該当画素のＹ座標が縦幅の１／６未満であれば、該当画素は左上のブロック０に属すると判定する。Ｙ座標が縦幅の１／６未満ではない場合、続いてＹ座標が縦幅の２／６未満であるかどうかを判定していき、該当画素がブロック８，１６，２４，３２，４０のどのブロックに属するか判定する。図中ｉ（ｉ＝０，８，１６，２４，３２，４０）は、ブロック番号を示している。ステップＳ６の処理が終了後、ステップＳ７に進む。
【００５７】
ステップＳ７において、領域判定部４２は、該当画素のＸ座標を確認し、横方向のブロック番号を判定する。
本例では、まず該当画素のＸ座標が横幅の１／８，２／８，…８／７と一致するかどうかを判定し、一致する場合には、該当画素のＸ座標がブロックの境界線上にあると判定して、ブロック番号を１つインクリメントする。一方、ステップＳ７において、該当画素のＸ座標が横幅の１／８，２／８，…８／７と一致しないと判定された場合、一つ前の画素を走査したときのブロック番号と同じであると判定する。このようにして、領域判定部４２は、入力された画素値に対応する画素が、画像のどのブロックに属するか判定し、その判定結果をブロック検波器４３に通知する。
【００５８】
ステップＳ８において、領域判定部４２で判定されたブロック番号と対応するブロック検波器４３の積分器４４は、ＲＧＢ画像の画素の画素値を積分するとともに、積分した画素の数をカウントする。（ここで検波対象の上限と下限を設けることもあり、上限と下限の範囲内に収まらない場合はＳ９へ進む）
【００５９】
ステップＳ９において、領域判定部４２は、該当ブロックにおけるＲＧＢ画像の画素の画素値の積分と、画素数のカウントが終了した後、注目画素を現在の画素と同一ライン上の隣の画素に移動する。
【００６０】
ステップＳ１０において、領域判定部４２は、注目画素のＸ座標が画像の右端であるか否かを判定する。注目画素のＸ座標が画像の右端ではないと判定された場合は、ステップＳ１２へ進む。
【００６１】
一方、ステップＳ１０において、領域判定部４２は、注目画素のＸ座標が画像の右端であると判定された場合は、ステップＳ１１へ進む。
【００６２】
ステップＳ１１において、領域判定部４２は、判定されたブロックにおけるＲＧＢ画像の画素の画素値の積分と、画素数のカウントが終了した後、注目画素を次のラインの左端に移動する。
【００６３】
ステップＳ１２において、領域判定部４２は、注目画素のＹ座標（ライン）が画像の下端であると判定された場合は、ステップＳ２へ進む。このとき、領域判定部４２は、割り込み信号等によりＣＰＵ５０に検波完了を通知する。
【００６４】
一方、ステップＳ１２において、領域判定部４２は、注目画素のＹ座標（ライン）が画像の下端ではないと判定された場合は、ステップＳ３に戻り、次のラインを構成する画素の画素値が入力されるのを待つ。
【００６５】
このようにして、１フレーム分の画像についてＲＧＢ画像の画素の画素値を、対数スケールで積分するとともに、積分した画素の数をカウントする。
【００６６】
［ＲＧＢゲイン設定処理の説明］
次に、図８のフローチャートを参照して、ＣＰＵ５０のＲＧＢゲイン設定部５１により実行されるＲＧＢゲイン設定処理について説明する。
なお、この処理は、例えば、図１の撮像装置１による撮影が開始され、ホワイトバランス検波部４０から検波結果の供給が開始されたときに開始される。また、ＲＧＢゲイン設定部５１に供給された検波結果は、逐次、メモリ５２に格納される。
【００６７】
ステップＳ２１において、ＲＧＢゲイン設定部５１は、ホワイトバランス検波部４０から検波値（ＲＧＢ画像の画素の画素値の積分値、画素数カウント数）の算出が完了したことを示すフラグ（検波値算出完了フラグ）が送信されるのを待つ。
【００６８】
ステップＳ２２において、ＲＧＢゲイン設定部５１は、検波値算出完了フラグを受信した後、ホワイトバランス検波部４０からメモリ５２を介して検波値を取得する。ホワイトバランス検波部４０では、検波値を格納するメモリ又はレジスタを表裏２面持っており、ホワイトバランス検波部４０でメモリの表を使っていたら、ＣＰＵ５０では裏を読む。逆に、ホワイトバランス検波部４０でメモリの裏を使っていたら、ＣＰＵ５０では表を読む。このメモリ又はレジスタの表裏の切り換えは、１フレームごとに行われるものとする。
【００６９】
ステップＳ２３において、ＲＧＢゲイン設定部５１は、ブロック番号ｉを０とする。
【００７０】
ステップＳ２４において、ＲＧＢゲイン設定部５１は、例えば横８×縦６のブロックに分割した場合に、ブロック番号ｉが４８を超えるか否かを判定する。ステップＳ２４において、例えばブロック番号ｉが４８であると判定された場合、ステップＳ２１に戻り、検波値算出完了フラグを待つ。
【００７１】
一方、ＲＧＢゲイン設定部５１は、例えばブロック番号ｉが４８ではないと判定された場合、ステップＳ２５へ進む。
【００７２】
ステップＳ２５において、ＲＧＢゲイン設定部５１は、ブロック番号ｉにおいて、対数スケールで「Ｒ,Ｇ,Ｂ画像の画素の画素値の積分値／画素数カウント値（Ｒ,Ｇ,Ｂログ平均値）」の値を算出する。最初は、ブロック番号は０である。
【００７３】
ステップＳ２６において、ＲＧＢゲイン設定部５１は、ブロック番号ｉにおいて、上記の対数スケールで算出したＲ,Ｇ,Ｂログ平均を、線形スケールに変換し、Ｒ，Ｇ，Ｂ平均値を取得する。なお、ホワイトバランス処理部６０´のようにログ変換部６３を備える場合、この処理はスキップすることができる。
【００７４】
ステップＳ２７において、ＲＧＢゲイン設定部５１は、ブロック番号ｉにおいて、ホワイトバランス処理時に使用する下記のＲＧＢゲイン設定値を設定し、メモリ５２に格納する。
Ｒｇａｉｎ＝Ｇ平均値／Ｒ平均値
Ｇｇａｉｎ＝１
Ｂｇａｉｎ＝Ｇ平均値／Ｂ平均値
ログ変換ありの場合は対数スケール上での計算となるので下式となる。
Ｒｇａｉｎ＝Ｇ平均値−Ｒ平均値
Ｇｇａｉｎ＝０
Ｂｇａｉｎ＝Ｇ平均値−Ｂ平均値
【００７５】
ステップＳ２８において、ＲＧＢゲイン設定部５１は、ブロック番号ｉを（ｉ＋１）にインクリメントする。ステップＳ２８の処理が終了後、ステップＳ２４に進み、ＲＧＢゲイン設定部５１は、次のブロック番号（ｉ＋１）において上述と同様の処理を行う。そして、１フレームの画像の各領域のＲＧＢゲイン設定値を設定する。
【００７６】
[ホワイトバランス処理の説明]
次に、図９のフローチャートを参照して、ホワイトバランス処理部６０（６０´）により実行されるホワイトバランス処理について説明する。
分割した領域ごとのホワイトバランス処理では、ブロックの中心点ごとのＲ，Ｇ，ＢゲインがＣＰＵ５０から設定され、そのゲイン値をもとに注目画素におけるゲインの値が決定される。
【００７７】
なお、この処理は、例えば、図１の撮像装置１による撮影が開始され、ＲＧＢゲイン設定部５１からＲＧＢゲイン設定値の供給が開始されたときに開始される。また、デモザイク処理部３０からホワイトバランス処理部６０に供給された画像データおよびＲＧＢゲイン設定値は、逐次、ホワイトバランス処理部６０の図示せぬ内部のレジスタに格納される。
【００７８】
ステップＳ４１において、ホワイトバランス処理部６０は、内部のレジスタに１フレームの縦幅（画素数）および横幅（画素数）の設定を行う。
【００７９】
ステップＳ４２において、ホワイトバランス処理部６０は、ブロックＷＢＲＧＢゲイン算出部６１のＸ，Ｙ座標を保持するレジスタを０に初期化する。
【００８０】
ステップＳ４３において、ホワイトバランス処理部６０は、デモザイク処理部３０から画像データ（ＲＧＢ画像）のストリームが供給されるのを待つ。
【００８１】
ステップＳ４４において、ホワイトバランス処理部６０は、ログ変換部６３を備える場合（図６参照）、供給された１フレームのＲＧＢ画像の画素値を表す線形スケールの階調数を、対数スケールの階調数に変換し、ブロックＷＢＲＧＢゲイン算出部６１に供給する。一方、ホワイトバランス処理部６０がログ変換部を備えていない場合（図５参照）、ステップＳ４４の処理はスキップする。
【００８２】
ステップＳ４５において、ブロックＷＢＲＧＢゲイン算出部６１は、下記に従って、現在の注目点の座標からブレンド（合成）するＲＧＢゲイン設定値の４つの中心点を選択する。図１０は、ＲＧＢゲイン設定値の４つの中心点およびバイリニア補間処理を説明するための図である。バイリニア補間処理については後述する。
【００８３】
１．注目点が現ブロックの中心点にある場合、現ブロックのみを選択
２．注目点が現ブロックの中心点の真上にある場合、現ブロックと上の２ブロックを選択
３．注目点が現ブロックの中心点の真下にある場合、現ブロックと下の２ブロックを選択
４．注目点が現ブロックの中心点の真左にある場合、現ブロックと左の２ブロックを選択
５．注目点が現ブロックの中心点の真右にある場合、現ブロックと右の２ブロックを選択
６．注目点が現ブロックの中心点の左上にある場合、現ブロックと左,上,左上の４ブロックを選択
７．注目点が現ブロックの中心点の右上にある場合、現ブロックと右,上,右上の４ブロックを選択
８．注目点が現ブロックの中心点の左下にある場合、現ブロックと左,下,左下の４ブロックを選択
９．注目点が現ブロックの中心点の右下にある場合、現ブロックと右,下,右下の４ブロックを選択
【００８４】
上記１．の場合、注目点が現ブロックの中心点にあるので、現ブロックの中心点に設定したＲＧＢゲイン設定値を使用する。上記２．〜５．の場合、注目点が現ブロックの中心点と他のブロックの中心点との直線状に位置するので、２ブロックを選択するだけでよい。
【００８５】
ステップＳ４６において、ブロックＷＢＲＧＢゲイン算出部６１は、選択された中心点のＲＧＢゲイン設定値から注目点の画素のＲＧＢゲインを算出する。なお、ステップＳ４４においてログ変換が行われた場合、ステップＳ４６，Ｓ４７の処理は、対数スケールで行われる。
【００８６】
・１中心点のみが選択された場合
選択された中心点のＲＧＢゲイン設定値をそのまま採用して、注目点の画素のＲＧＢゲインを算出する。
・２中心点が選択された場合
選択された中心点Ａと注目点との距離をＬＡ、選択された中心点Ｂと注目点の距離をＬＢとしたとき、中心点ＡのＲＧＢゲインをＬＢ／（ＬＡ＋ＬＢ）の重みで、中心点ＢのＲＧＢゲインをＬＡ／（ＬＡ＋ＬＢ）の重みでブレンドする。
・４中心点が選択された場合
バイリニア補間によって注目点のＲＧＢゲインを算出する。
【００８７】
ステップＳ４７において、ＲＧＢゲイン処理部６２は、デモザイク処理部３０から供給されるＲＧＢ画像の各画素の画素値に、ステップＳ４６で算出されたＲＧＢゲインを乗算（ログ変換ありの場合は加算）することにより、ＲＧＢゲイン処理（ホワイトバランス処理）を行う。
【００８８】
ステップＳ４８において、ホワイトバランス処理部６０は、リニア変換部６４を備える場合（図６参照）、１フレームのＲＧＢ画像の画素値を表す対数スケールの階調数を、線形スケールの階調数に変換し、階調圧縮部７０に供給する。一方、ホワイトバランス処理部６０がリニア変換部を備えていない場合（図５参照）、ステップＳ４８の処理はスキップする。
【００８９】
ステップＳ４９において、ブロックＷＢＲＧＢゲイン算出部６１は、ＲＧＢゲイン処理が終了した後、注目画素を現在の画素と同一ライン上の隣の画素に移動する。
【００９０】
ステップＳ５０において、ブロックＷＢＲＧＢゲイン算出部６１は、は、注目画素のＸ座標が画像の右端であるか否かを判定する。注目画素のＸ座標が画像の右端ではないと判定された場合は、ステップＳ５２へ進む。
【００９１】
一方、ステップＳ５０において、ブロックＷＢＲＧＢゲイン算出部６１は、注目画素のＸ座標が画像の右端であると判定された場合は、ステップＳ５１へ進む。
【００９２】
ステップＳ５１において、ブロックＷＢＲＧＢゲイン算出部６１は、判定されたブロックにおけるＲＧＢ画像の画素の画素値の積分と、画素数のカウントが終了した後、注目画素を次のラインの左端に移動する。
【００９３】
ステップＳ５２において、ブロックＷＢＲＧＢゲイン算出部６１は、注目画素のＹ座標（ライン）が画像の下端であると判定された場合は、ステップＳ４２へ進む。このとき、ブロックＷＢＲＧＢゲイン算出部６１は、割り込み信号等によりＣＰＵ５０に処理完了を通知する。
【００９４】
一方、ステップＳ５２において、ブロックＷＢＲＧＢゲイン算出部６１は、注目画素のＹ座標（ライン）が画像の下端ではないと判定された場合は、ステップＳ４３に戻り、次のラインを構成する画素の画素値が入力されるのを待つ。
【００９５】
このようにして、１フレームのＲＧＢ画像について画素の画素値のゲインを調整（ホワイトバランス処理）する。
【００９６】
[バイリニア補間処理]
ここで、図１０を参照して、図９のステップＳ４６のバイリニア補間処理について説明する。
図１０の注目画素Ｐに対するＲ，Ｇ，Ｂにおいてホワイトバランス処理を行うことを想定した場合、注目画素Ｐを囲む破線の４つブロックＢ１〜Ｂ４の中心点Ｃ１，Ｃ２，Ｃ３，Ｃ４を角とする四角形で囲まれているので、これら４点のゲインの重み付け和を注目画素Ｐのゲインとする。
ここで中心点Ｃ１のゲインに対する重みは対角となる中心点Ｃ４を含むＤの面積をＡＢＣＤ全体の面積で割った値とし、中心点Ｃ２はＣ、中心点Ｃ３はＢ、中心点Ｃ４はＡの面積をそれぞれＡＢＣＤ全体の面積で割った値を重みとする。４つブロックＢ１〜Ｂ４の中心点に囲まれていない点のゲインを算出する際は、存在しない中心点を、最も近い距離に存在する中心点と同じゲイン設定であると仮定して、同様の重み付け和によりゲインを決定する。中心点Ｃ１〜Ｃ４の重み及び注目画素Ｐのゲインはそれぞれ、以下の式で表される。
【００９７】
中心点Ｃ１の重み（ｗ１）＝Ｄ÷ＡＢＣＤ
＝（ｖ＿ｄ×ｈ＿ｒ）÷（（ｖ＿ｕ＋ｖ＿ｄ）×（ｈ＿ｌ＋ｈ＿ｒ））
中心点Ｃ２の重み（ｗ２）＝Ｃ÷ＡＢＣＤ
＝（ｖ＿ｄ×ｈ＿ｌ）÷（（ｖ＿ｕ＋ｖ＿ｄ）×（ｈ＿ｌ＋ｈ＿ｒ））
中心点Ｃ３の重み（ｗ３）＝Ｂ÷ＡＢＣＤ
＝（ｖ＿ｕ×ｈ＿ｒ）÷（（ｖ＿ｕ＋ｖ＿ｄ）×（ｈ＿ｌ＋ｈ＿ｒ））
中心点Ｃ４の重み（ｗ４）＝Ａ÷ＡＢＣＤ
＝（ｖ＿ｕ×ｈ＿ｌ）÷（（ｖ＿ｕ＋ｖ＿ｄ）×（ｈ＿ｌ＋ｈ＿ｒ））
【００９８】
注目画素のＲｇａｉｎ＝ｗ１＊Ｒｇａｉｎ１＋ｗ２＊Ｒｇａｉｎ２＋ｗ３＊Ｒｇａｉｎ３＋ｗ４＊Ｒｇａｉｎ４
注目画素のＧｇａｉｎ＝ｗ１＊Ｇｇａｉｎ１＋ｗ２＊Ｇｇａｉｎ２＋ｗ３＊Ｇｇａｉｎ３＋ｗ４＊Ｇｇａｉｎ４
注目画素のＢｇａｉｎ＝ｗ１＊Ｂｇａｉｎ１＋ｗ２＊Ｂｇａｉｎ２＋ｗ３＊Ｂｇａｉｎ３＋ｗ４＊Ｂｇａｉｎ４
【００９９】
なお、注目点が４つの中心点を結ぶ四角形の範囲外に位置する場合、端に位置するブロックでは、ＲＧＢゲインを算出するためのブロックを選択できない場合がある。例えば、ブロックＢ１が左上端のブロックであると仮定すると、ブロックＢ１内の注目点が中心点Ｃ１と中心点Ｃ２を結ぶ直線より上方にある場合、ブロックＢ１の上には他のブロックが存在しないため、通常ではブロックを選択することができない。そこで、このような場合は、ブロックＢ１、Ｂ２の上方に鏡写しでブロックＢ１が存在すると仮想し、ブロックＢ１と鏡写しのブロックＢ１、ブロックＢ２と鏡写しのブロックＢ２を選択する。また、ブロックＢ１内の注目点が中心点Ｃ１と中心点Ｃ３を結ぶ直線より左側にある場合、ブロックＢ１、Ｂ３の左側に鏡写しでブロックＢ１が存在すると仮想し、ブロックＢ１と鏡写しのブロックＢ１、ブロックＢ３と鏡写しのブロックＢ３を選択する。さらに、また、ブロックＢ１内の注目点が中心点Ｃ１の左上にある場合、ブロックＢ１の上、左、左上に鏡写しでブロックＢ１が存在すると仮想し、ブロックＢ１とその上、左及び左上の鏡写しのブロックＢ１の４ブロックを選択する。
【０１００】
上述した第１の実施形態では、１フレームのＲＧＢ画像を複数の領域に分け、複数に分けた各領域で、多ビットのＲＧＢそれぞれの画素値を対数スケールに圧縮してから積分計算する。各領域においてＲＧＢごとに積分値の平均をとってから線形スケールに戻すことにより、線形スケールでの積分計算に代わる結果が得られる。これを元にホワイトバランス処理におけるＲＧＢゲインを算出し、各領域の画素の輝度値にこのＲＧＢゲインをかけ、ホワイトバランスを調整する。
【０１０１】
この第１の実施形態によれば、ホワイトバランス処理においてＲＧＢ画像の各領域の検波を、線形スケールから対数スケールに変換して行うことにより、データのビット数を削減することができる。それゆえ、例えばダイナミックレンジに対応する撮像素子が出力する多ビットの画像データを処理する場合において、回路規模の増大が抑えられ、処理負荷を軽減することができる。
【０１０２】
また、検波後のＲＧＢのゲイン調整（ホワイトバランス処理）においても対数スケールで演算するようにした場合、ホワイトバランス処理部の回路規模の増大が抑えられ、処理負荷を軽減できる。よって、撮像装置等の装置全体の回路規模の増大が抑えられ、装置の小型化が図られる。
【０１０３】
＜２．第２の実施形態＞
背景技術の欄で説明したように、従来、一画面を複数領域に分け、各領域でＲ，Ｇ，Ｂそれぞれの画素値を線形スケールで積分計算し、その検波値を元にＲＧＢゲインを調整することでホワイトバランス処理を行うものがある。その際、一領域につき一つの検波値／ＲＧＢゲインを用いていた。しかし、この構成では、同一領域内に２光源の境界が存在する場合には対応することができなかった。
【０１０４】
そこで、第２の実施形態では、同一領域内に２光源の境界が存在する場合にも対応できるようにするため、同一領域内でも輝度の偏りをみて、別々の検波およびＲＧＢゲインをかけることにより、同一領域内の２光源に対応する。なお、第２の実施形態でも、ＲＧＢ画像の各領域の検波処理を対数スケールで行う例としている。
【０１０５】
[ホワイトバランス検波部の構成例]
図１１は、本開示の第２の実施形態に係るホワイトバランス検波部の機能の構成例を示すブロック図である。第２の実施形態では、ホワイトバランス検波部４０Ａが低輝度側と高輝度側の２つの輝度で別々に検波を行う構成としている。図１１において、図２と対応する部分には同一符号を付し、説明を省略する。
【０１０６】
ホワイトバランス検波部４０Ａは、ログ変換部４１、領域判定部４２、ブロック検波器４３Ａ、輝度算出部４５を備える。
【０１０７】
輝度算出部４５は、デモザイク処理部３０から供給される１フレームのＲＧＢ画像の画素値から輝度値を抽出し、線形スケールで輝度を算出するものである。輝度算出部４５は、算出した輝度情報をブロック検波器４３Ａへ供給する。
【０１０８】
ブロック検波器４３Ａは、輝度閾値判定部４６、低輝度側積分器４４Ｌ、高輝度側積分器４４Ｈから構成される。
【０１０９】
輝度閾値判定部４６は、例えば内部のレジスタに格納された輝度閾値を参照し、領域判定部４２から供給される、ＲＧＢ画像の領域判定された画素の輝度が輝度閾値以上か否かを判定し、その結果に基づいて当該領域判定された画素を、低輝度側積分器４４Ｌ又は高輝度側積分器４４Ｈに振り分ける。
【０１１０】
低輝度側積分器４４Ｌは、低輝度側積分部の一例であり、輝度閾値判定部４６から供給される、ＲＧＢ画像の領域判定された低輝度の画素の画素値を、ＲＧＢごとに検波（積分）し、検波結果をメモリ５２へ格納する。
【０１１１】
高輝度側積分器４４Ｈは、高輝度側積分部の一例であり、輝度閾値判定部４６ｄから供給される、ＲＧＢ画像の領域判定された高輝度の画素の画素値を、ＲＧＢごとに検波（積分）し、検波結果をメモリ５２へ格納する。
【０１１２】
図１２は、輝度閾値を説明するための図である。
ホワイトバランス検波部４０Ａでは、各ブロックにおいて輝度（Ｙ＝０．２５Ｒ＋０．５Ｇ＋０．２５Ｂ）が、閾値の下限輝度閾値（ＷＢＤ＿ＴＨＲ＿Ｌ）と上限輝度閾値（ＷＢＤ＿ＴＨＲ＿Ｈ）の間（低輝度側検波範囲ＡｒＬ、高輝度側検波範囲ＡｒＨ）に値がある画素のみを検波の対象とする。閾値の下限輝度閾値と上限輝度閾値の間に値がある画素のみを検波対象とする点は、ホワイトバランス検波部４０も同様である。
【０１１３】
さらに、輝度ごとにホワイトバランス処理を行う第２の実施形態では、検波の対象となる画素を中間輝度閾値（ＷＢＤ＿ＴＨＲ＿Ｍ）によって低輝度側検波と高輝度側検波とに分類する。また、分割されたブロックすべてに対して同じ閾値を適用する。選択された低輝度側積分器４４Ｌまたは高輝度側積分器４４Ｈでは、与えられた画像データによりＲ，Ｇ，Ｂの画素値の積分と画素数のカウント（１画素につき１カウント）を行う。
［ＲＧＢゲイン設定部の構成例］
ＣＰＵ５０のＲＧＢゲイン設定部５１では、ホワイトバランス検波部４０Ａからの検波結果を元に、入力された画像データのＲ，Ｇ，Ｂの画素値の積分値の比を求め、これがホワイトバランス処理部６０Ａによって１：１：１に補正されるように、ＲＧＢゲイン設定値を設定する。第２の実施形態では、ホワイトバランス検波部４０Ａからの検波結果が高輝度側と低輝度側とで別々に供給されるので、ＲＧＢゲイン設定部５１では、このＲＧＢゲインを、低輝度側ゲイン設定値と高輝度側ゲイン設定値と別々に設定する。設定した低輝度側ゲイン設定値と高輝度側ゲイン設定値を、ホワイトバランス処理部６０Ａに供給する。ただし、最初の１フレーム目は検波値が取得できないため、全てのＲＧＢゲインを１倍に設定するものとする。また、Ｒ、Ｇ、Ｂゲインのいずれかが０となってしまう場合は、ｎフレーム目のＲＧＢゲインをそのまま流用する。
【０１１４】
[ホワイトバランス処理部の構成例]
（ログ変換部なしの場合）
図１３は、本開示の第２の実施形態に係るホワイトバランス処理部の機能の構成例を示すブロック図である。第２の実施形態では、ホワイトバランス処理部６０Ａが低輝度側と高輝度側の２つの輝度で別々にホワイトバランス処理を行う構成としている。図１３において、図５と対応する部分には同一符号を付し、説明を省略する。
【０１１５】
ホワイトバランス処理部６０Ａは、ブロックＷＢＲＧＢゲイン算出部６１Ｌ、ブロックＷＢＲＧＢゲイン算出部６１Ｈ、輝度別ＷＢＲＧＢゲイン算出部６１Ｂ、ＲＧＢゲイン処理部６２から構成される。
【０１１６】
ブロックＷＢＲＧＢゲイン算出部６１Ｌは、ＲＧＢゲイン設定部５１からメモリ５２を介して供給される、ＲＧＢ画像の領域ごとのＲＧＢゲイン設定値に基づいて、各領域を構成する画素の画素値に対するＲＧＢゲインを算出する。この第２の実施形態では、ＲＧＢゲイン設定部５１から低輝度側ゲイン設定値が供給されるので、各領域を構成する低輝度側の画素の画素値に対するＲＧＢゲインを算出する。
【０１１７】
ブロックＷＢＲＧＢゲイン算出部６１Ｈは、ＲＧＢゲイン設定部５１からメモリ５２を介して供給される、ＲＧＢ画像の領域ごとのＲＧＢゲイン設定値に基づいて、各領域を構成する画素の画素値に対するＲＧＢゲインを算出する。この第２の実施形態では、ＲＧＢゲイン設定部５１から高輝度側ゲイン設定値が供給されるので、各領域を構成する高輝度側の画素の画素値に対するＲＧＢゲインを算出する。
【０１１８】
輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、ブロックＷＢＲＧＢゲイン算出部６１ＬおよびブロックＷＢＲＧＢゲイン算出部６１Ｈで算出された、低輝度側ＲＧＢゲインおよび高輝度側ＲＧＢゲインのαブレンドを行う。なお、図１３の例では、ブロックＷＢＲＧＢゲイン算出部６１ＬおよびブロックＷＢＲＧＢゲイン算出部６１Ｈに線形スケールのＲＧＢ画像のデータが入力されている。そこで、輝度別ＷＢＲＧＢゲイン算出部６１Ｂにおいて、ＲＧＢ画像から、各画素の輝度を算出するようにしている。輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、αブレンドしたＲＧＢゲインを、ＲＧＢゲイン処理部６２へ供給する。
【０１１９】
（ログ変換部ありの場合）
図１４は、ホワイトバランス処理部６０Ａ´の機能の他の構成例（ログ変換部あり）を示すブロック図である。
ホワイトバランス処理部６０Ａ´は、ログ変換部６３、ブロックＷＢＲＧＢゲイン算出部６１Ｌ、ブロックＷＢＲＧＢゲイン算出部６１Ｈ、輝度別ＷＢＲＧＢゲイン算出部６１Ｂ、ＲＧＢゲイン処理部６２、リニア変換部６４、輝度算出部６５から構成されている。すなわち、このホワイトバランス処理部６０Ａ´は、ホワイトバランス処理部６０Ａにさらに、ログ変換部６３、リニア変換部６４および輝度算出部６５を備えている。
【０１２０】
この例では、デモザイク処理部３０から入力されるＲＧＢ画像を構成する画素の画素値を、ログ変換部６３によって線形スケールから対数スケールに変換しているため、図１３のように輝度別ＷＢＲＧＢゲイン算出部６１Ｂにおいて各画素の輝度を算出することができない。そこで、輝度算出部６５を設けて、ログ変換前のＲＧＢ画像から各画素の輝度値を算出し、これを輝度別ＷＢＲＧＢゲイン算出部６１Ｂに供給するようにしている。
【０１２１】
[輝度ごとホワイトバランス処理におけるＲＧＢゲインの算出方法]
次に、輝度別ＷＢＲＧＢゲイン算出部６１Ｂによる、輝度ごとホワイトバランス処理におけるＲＧＢゲインの算出方法について説明する。
【０１２２】
図１５は、輝度ごとＲＧＢゲイン算出処理を説明するための図である。
輝度ごとホワイトバランス処理を行う場合は、輝度別ＷＢＲＧＢゲイン算出部６１Ｂで算出された低輝度側ＲＧＢゲインおよび高輝度側ＲＧＢゲインのαブレンドを行う。なお、高輝度側ＲＧＢゲインが低輝度側ゲインより値が大きいとは限らない。
【０１２３】
ここで、低輝度ＲＧＢゲインとブレンド区間との境界となる低輝度側閾値（ＷＢ＿ＴＨＲ＿Ｌ）と高輝度ＲＧＢゲインとブレンド区間との境界となる高輝度側閾値（ＷＢ＿ＴＨＲ＿Ｈ）とした時、注目画素の輝度（Ｙ）に応じてＲＧＢゲインを切り換える。注目画素の輝度（Ｙ）が低輝度側閾値ＷＢ＿ＴＨＲ＿Ｌ以下であれば低輝度用ＲＧＢゲイン、また高輝度側閾値ＷＢ＿ＴＨＲ＿Ｈ以上であれば高輝度ＲＧＢゲイン、さらに、これらの中間の値であった場合は低輝度用と高輝度用のＲＧＢゲインの重みを決めてブレンドする。なお、これらの閾値は、例えば輝度別ＷＢＲＧＢゲイン算出部６１Ｂが内部に持つレジスタに保持されているものとする。
【０１２４】
低輝度側と高輝度側の閾値ＷＢ＿ＴＨＲ＿Ｌ，ＷＢ＿ＴＨＲ＿Ｈの値は、ホワイトバランス検波で使用する中間輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍを中心として任意の距離（Ａ，Ｂ）に設定する。これらの距離Ａ，Ｂを０以上で調整することで、低輝度と高輝度の閾値付近でなだらかに色が変化している部分があっても不自然な色合いにならないようにしている。以下にその条件式を記載する。
【０１２５】
ｉｆ（ＷＢ＿ＴＨＲ＿Ｌ＞＝Ｙ）    ＲＧＢゲイン＝低輝度ゲイン；
ｅｌｓｅ  ｉｆ（ＷＢ＿ＴＨＲ＿Ｈ＜＝Ｙ）    ＲＧＢゲイン＝高輝度ゲイン；
ｅｌｓｅ  ＲＧＢゲイン＝［｛（ＷＢ＿ＴＨＬ＿Ｈ−Ｙ）／（ＷＢ＿ＴＨＲ＿Ｈ−ＷＢ＿ＴＨＲ＿Ｌ）｝×低輝度ゲイン］＋［｛（Ｙ−ＷＢ＿ＴＨＲ＿Ｌ）／（ＷＢ＿ＴＨＲ＿Ｈ−ＷＢ＿ＴＨＲ＿Ｌ）｝×高輝度ゲイン］；
【０１２６】
［ホワイトバランス検波処理の説明］
次に、図１６のフローチャートを参照して、ホワイトバランス検波部４０Ａにより実行されるホワイトバランス検波処理について説明する。
図１６のステップＳ６１〜Ｓ６４、Ｓ６６〜Ｓ６８，Ｓ７２〜Ｓ７５は、図７のステップＳ１〜Ｓ４、Ｓ５〜Ｓ７，Ｓ９〜Ｓ１２に対応しており、重複する説明を割愛する。
【０１２７】
まず、ログ変換部４１が、ステップＳ６１〜Ｓ６４の処理を行う。
【０１２８】
ステップ６５において、輝度算出部４５は、デモザイク処理部３０から供給される１フレームのＲＧＢ画像の画素値から輝度値を抽出し、線形スケールで輝度を算出する。算出した輝度情報は、ブロック検波器４３Ａへ供給される。
【０１２９】
次に、領域判定部４２が、ステップＳ６６〜Ｓ６８の処理を行う。
【０１３０】
ステップＳ６９において、輝度閾値判定部４６が、輝度閾値を参照し、領域判定部４２から供給される、ＲＧＢ画像の領域判定された画素の輝度が輝度閾値以上か否かを判定する。そして、対象画素が低輝度であれば低輝度側積分器４４Ｌへ供給し、ステップＳ７０へ進む。一方、対象画素が高輝度であれば高輝度側積分器４４Ｈへ供給し、ステップＳ７１へ進む。（低輝度側、高輝度側のどちらにも属さない場合はＳ７２へ進む）
【０１３１】
ステップＳ７０において、領域判定部４２で判定されたブロック番号と対応するブロック検波器４３Ａの低輝度側積分器４４Ｌは、ＲＧＢ画像の低輝度の画素の画素値を積分するとともに、積分した画素の数をカウントする。
【０１３２】
ステップＳ７１において、領域判定部４２で判定されたブロック番号と対応するブロック検波器４３Ａの高輝度側積分器４４Ｈは、ＲＧＢ画像の高輝度の画素の画素値を積分するとともに、積分した画素の数をカウントする。
【０１３３】
ステップＳ７０、Ｓ７１の処理が終了後、領域判定部４２が、ステップＳ７２〜Ｓ７５の処理を行う。
【０１３４】
このようにして、１フレーム分のＲＧＢ画像の低輝度側と高輝度側の画素の画素値を、対数スケールで別々に積分するとともに、積分した画素の数をカウントする。
【０１３５】
［ＲＧＢゲイン設定処理の説明］
次に、図１７のフローチャートを参照して、ＣＰＵ５０のＲＧＢゲイン設定部５１により実行されるＲＧＢゲイン設定処理について説明する。
図１７のステップＳ８１〜Ｓ８４、Ｓ８８は、図８のステップＳ２１〜Ｓ２４、Ｓ２８に対応しており、重複する説明を割愛する。
【０１３６】
まず、ＲＧＢゲイン設定部５１が、ステップＳ８１〜Ｓ８４の処理を行う。
【０１３７】
ステップＳ８５において、ＲＧＢゲイン設定部５１が、ブロック番号ｉにおいて、対数スケールで低輝度側と高輝度側のそれぞれについて「Ｒ,Ｇ,Ｂ画像の画素の画素値の積分値／画素数カウント値（Ｒ,Ｇ,Ｂログ平均値）」の値を算出する。
【０１３８】
ステップＳ８６において、ＲＧＢゲイン設定部５１が、ブロック番号ｉにおいて、上記の対数スケールで算出したＲ,Ｇ,Ｂログ平均を、線形スケールに変換し、低輝度側と高輝度側のそれぞれについてＲ，Ｇ，Ｂ平均値を取得する。なお、ホワイトバランス処理部６０Ａ´のようにログ変換器６３を備える場合、この処理はスキップとすることができる。
【０１３９】
ステップＳ８７において、ＲＧＢゲイン設定部５１が、ブロック番号ｉにおいて、ホワイトバランス処理時に使用するＲＧＢゲイン設定値を設定し、メモリ５２に格納する。ここでは、低輝度側についてＲ，Ｇ，Ｂそれぞれのゲイン設定値、高輝度側についてＲ，Ｇ，Ｂそれぞれのゲイン設定値を設定する。ここで、ログ変換ありの場合はＳ２７と同様に減算による演算となる。
【０１４０】
ステップＳ８７の処理が終了後、領域判定部４２が、ステップＳ７２〜Ｓ７５の処理を行う。このようにして、１フレームのＲＧＢ画像の各領域を構成する画素について、低輝度側と高輝度側のそれぞれについてＲＧＢゲイン設定値を設定する。
【０１４１】
[ホワイトバランス処理の説明]
次に、図１８のフローチャートを参照して、ホワイトバランス処理部６０Ａ（６０Ａ´）により実行されるホワイトバランス処理について説明する。
図１８のステップＳ１０１〜Ｓ１０４、Ｓ１１３〜Ｓ１１７は、図９のステップＳ４１〜Ｓ４４、Ｓ４８〜Ｓ５２に対応しており、重複する説明を割愛する。
【０１４２】
まず、ホワイトバランス処理部６０Ａ（６０Ａ´）が、ステップＳ１０１〜Ｓ１０４の処理を行う。
【０１４３】
ステップＳ１０５において、上記ステップＳ１０４において１フレームのＲＧＢ画像の画素値を線形スケールから対数スケールに変換する場合、ここで、輝度算出部６５が、ログ変換前のＲＧＢ画像から各画素の輝度値を算出し、これを輝度別ＷＢＲＧＢゲイン算出部６１Ｂに供給する。
【０１４４】
ステップＳ１０６において、ブロックＷＢＲＧＢゲイン算出部６１Ｌは、現在の注目点の座標からブレンド（合成）するＲＧＢゲイン設定値の４つの中心点を選択する。また、ブロックＷＢＲＧＢゲイン算出部６１Ｈは、現在の注目点の座標からブレンド（合成）するＲＧＢゲイン設定値の４つの中心点を選択する。
【０１４５】
ステップＳ１０７において、ブロックＷＢＲＧＢゲイン算出部６１Ｌは、選択された中心点とＲＧＢゲイン設定値から注目点の画素の低輝度側ＲＧＢゲインを算出する。また、ブロックＷＢＲＧＢゲイン算出部６１Ｈは、選択された中心点とＲＧＢゲイン設定値から注目点の画素の高輝度側ＲＧＢゲインを算出する。
【０１４６】
ステップＳ１０８において、上記ステップＳ１０４において１フレームのＲＧＢ画像の画素値を線形スケールから対数スケールに変換しない場合、輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、ＲＧＢ画像から各画素の輝度を算出するようにしている。
【０１４７】
ステップＳ１０９において、輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、図示しないレジスタ等に格納された低輝度側閾値および高輝度側閾値を参照して、供給されるＲＧＢ画像の領域判定された画素の輝度が、低輝度側閾値以下、高輝度側閾値以上またはその中間のいずれであるかを判定する。ステップＳ１０９において判定対象の画素の輝度が低輝度側閾値以下であると判定された場合、ステップＳ１１０へ進む。また判定対象の画素の輝度が低輝度側閾値と高輝度側閾値の間であると判定された場合、ステップＳ１１１へ進む。さらに判定対象の画素の輝度が高輝度側閾値以上であると判定された場合、ステップＳ１１２へ進む。
【０１４８】
ステップＳ１１０において、輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、ＲＧＢゲインとして、ステップＳ１０７で算出された低輝度側ＲＧＢゲインを用いる。ＲＧＢゲイン処理部６２は、デモザイク処理部３０から供給されるＲＧＢ画像の各画素の画素値に、低輝度側ＲＧＢゲインを乗算することにより、ＲＧＢゲイン処理（ホワイトバランス処理）を行う。
【０１４９】
ステップＳ１１１において、輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、ステップＳ１０７で算出された低輝度側ＲＧＢゲインと高輝度側ＲＧＢゲインをαブレンドしてＲＧＢゲインを算出する。ＲＧＢゲイン処理部６２は、デモザイク処理部３０から供給されるＲＧＢ画像の各画素の画素値に、この低輝度側ＲＧＢゲインと高輝度側ＲＧＢゲインをαブレンドしたＲＧＢゲインを乗算することにより、ＲＧＢゲイン処理（ホワイトバランス処理）を行う。
【０１５０】
ステップＳ１１２において、輝度別ＷＢＲＧＢゲイン算出部６１Ｂは、ＲＧＢゲインとして、ステップＳ１０７で算出された高輝度側ＲＧＢゲインを用いる。ＲＧＢゲイン処理部６２は、デモザイク処理部３０から供給されるＲＧＢ画像の各画素の画素値に、高輝度側ＲＧＢゲインを乗算することにより、ＲＧＢゲイン処理（ホワイトバランス処理）を行う。
【０１５１】
ステップＳ１１０〜Ｓ１１２のいずれかの処理が終了後、ブロックＷＢＲＧＢゲイン算出部６１Ｌ，６１Ｈは、ステップＳ１１３〜Ｓ１１７の処理を行う。
【０１５２】
このようにして、１フレームのＲＧＢ画像の各領域を構成する画素について、低輝度側と高輝度側の画素の画素値のゲインを調整（ホワイトバランス処理）する。
【０１５３】
上述した第２の実施形態では、１フレームのＲＧＢ画像を複数の領域に分け、複数に分けた各領域で、多ビットのＲＧＢそれぞれの画素値を対数スケールに圧縮してから積分計算する。その際、輝度の閾値を設けて閾値以下／閾値以上のもので別々に積分計算する。また、同時に閾値以下／閾値以上の画素数もカウントする。低輝度側と高輝度側で別々に計算された検波値は、各領域においてＲＧＢごとに積分値の平均をとってから線形スケールに戻すことにより積分計算に代わる結果が得られる。これを元にホワイトバランス処理のための低輝度側／高輝度側の閾値と低輝度側／高輝度側のＲＧＢのゲインを設定する。ホワイトバランス処理では、低輝度側閾値以下／高輝度側閾値以上の画素なら対応するＲＧＢゲインをかけ、中間の輝度では両閾値との距離で重みを決めて両ＲＧＢゲインをブレンドする。
【０１５４】
この第２の実施形態によれば、輝度の閾値により、画像の各領域を構成する画素を低輝度側と高輝度側に分け、低輝度側と高輝度側で別々に検波、ＲＧＢゲイン設定を行うので、同一領域内に２光源の境界が存在する場合にも対応できる。すなわち、領域ごとに別々に色合いを調整できるだけでなく、同一の領域内でも２光源まで別々に色合いを調整することができる。
【０１５５】
さらに、第２の実施形態は、上述の第１の実施形態と同様に、ホワイトバランス処理においてＲＧＢ画像の各領域の検波を、線形スケールではなく対数スケールを用いて行うことにより、データのビット数を削減することができる。それゆえ、例えばダイナミックレンジに対応する撮像素子が出力する多ビットの画像データを処理する場合において、回路規模の増大が抑えられ、処理負荷を軽減することができる。
【０１５６】
＜３．変形例＞
図１９は、Ａ〜Ｃは、本開示の第２の実施形態の変形例に係る輝度閾値算出処理を説明するための図である。ここでは、輝度別ＷＢＲＧＢゲイン算出部６１Ｂが、輝度ごとのホワイトバランス検波における輝度閾値を適応的に算出する例を説明する。
【０１５７】
（１）  撮影プログラムが起動直後は、輝度閾値の基準となる値がないため、輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍを高輝度側閾値ＷＢＤ＿ＴＨＲ＿Ｈと同じ値とし、低輝度側閾値ＷＢＤ＿ＴＨＲ＿Ｌと高輝度側閾値ＷＢＤ＿ＴＨＲ＿Ｈに囲まれた全範囲ＡｒＬ１（図１９Ａ）を低輝度検波する。（ただし、ＷＢＤ＿ＴＨＲ＿Ｌ＜ＷＢＤ＿ＴＨＲ＿Ｈ）
【０１５８】
（２）  低輝度検波によって求まったＲ平均値，Ｇ平均値，Ｂ平均値（平均値：Ｒ，Ｇ，Ｂそれぞれの対数スケールでの積分値を画素カウント数で割った値を線形スケールに変換した値）から下記の式によって輝度平均を求め、次の検波における輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍに設定する。輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍを境に、低輝度側検波範囲ＡｒＬ２と高輝度側検波範囲ＡｒＨ２に分けられる（図１９Ｂ）。
輝度平均＝（０．２５×Ｒ平均値）＋（０．５×Ｇ平均値）＋（０．２５×Ｂ平均値）
【０１５９】
（３）  新たに（２）で求まった輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍで輝度ごとに検波することにより求まる低輝度側および高輝度側のＲ平均値，Ｇ平均値，Ｂ平均値から、（２）の場合と同様に、低輝度側および高輝度側の輝度平均を求めてから、下記の式によって二つの平均値の中間輝度値を求め、次の検波における輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍに設定する。これにより、輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍを境に、低輝度側検波範囲ＡｒＬ３と高輝度側検波範囲ＡｒＨ３に分けられる（図１９Ｃ）。
中間輝度値＝（低輝度側輝度平均＋高輝度側輝度平均）／２
【０１６０】
（４）これ以降は（３）の処理を繰り返す
【０１６１】
なお、（１）では、輝度閾値ＷＢＤ＿ＴＨＲ＿Ｍの初期値として、低輝度側閾値ＷＢＤ＿ＴＨＲ＿Ｌと高輝度側閾値ＷＢＤ＿ＴＨＲ＿Ｈの中間輝度値を用いてもよい。この例では、輝度別ＷＢＲＧＢゲイン算出部６１Ｂが、輝度ごとのホワイトバランス検波における輝度閾値を適応的に算出する例を説明したが、例えばＣＰＵ５０が同様の処理を行うようにしてもよい。
【０１６２】
また、上述した第１および第２の実施形態において、領域ごとホワイトバランスでバイリニア補間に代えて、バイキュービック補間を適用することもできる。
【０１６３】
また、上述した第２の実施形態において、輝度ごとホワイトバランスで輝度の計算式（Ｒ，Ｇ，Ｂの重み）を変更してもよい。
【０１６４】
また、上述した第２の実施形態において、輝度閾値を一つではなく、２以上に増やすことにより、３以上の多光源に拡張することもできる。
【０１６５】
［本開示の適用範囲の例］
なお、以上において説明したように、図１のデジタルビデオカメラは、画像の大局的な構造を抽出する画像処理を行う。このような画像処理により抽出された情報は、画質を向上させる処理などに利用することが可能であるため、画像の大局的な構造を抽出するブロックを実装する装置として、デジタルビデオカメラだけでなく他の装置にも適用することが可能である。例えば、そのような装置として、デジタルスチルカメラなどの撮像装置や、プリンタ、ディスプレイなどの表示装置等が考えられる。さらに、画像を加工したり、編集したりする装置やコンピュータプログラムにも応用することができる。
【０１６６】
［コンピュータのハードウェアの構成例］
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１６７】
図２０は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１６８】
コンピュータにおいて、ＣＰＵ２０１，ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２，ＲＡＭ１０３は、バス１０４により相互に接続されている。
【０１６９】
バス１０４には、さらに、入出力インターフェース１０５が接続されている。入出力インターフェース１０５には、キーボード、マウス、マイクロホンなどよりなる入力部１０６、ディスプレイ、スピーカなどよりなる出力部１０７、ハードディスクや不揮発性のメモリなどよりなる記録部１０８、ネットワークインターフェースなどよりなる通信部１０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１１１を駆動するドライブ１１０が接続されている。
【０１７０】
以上のように構成されるコンピュータでは、ＣＰＵ１０１が、例えば、記録部１０８に記録されているプログラムを、入出力インターフェース１０５およびバス１０４を介して、ＲＡＭ１０３にロードして実行することにより、上述した一連の処理が行われる。
【０１７１】
コンピュータ（ＣＰＵ２０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０１７２】
そして、プログラムは、リムーバブルメディア２１１をドライブ１１０に装着することにより、入出力インターフェース１０５を介して、記録部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記録部１０８にインストールすることができる。その他、プログラムは、ＲＯＭ１０２や記録部１０８に、あらかじめインストールしておくことができる。
【０１７３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【０１７４】
なお、本開示は以下のような構成も取ることができる。
（１）
入力画像の画素の画素値の階調を線形スケールから対数スケールに変換する変換部と、
前記入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出する検波部と、
前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、前記ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、前記ブロック毎の各色成分の画素の画素値の平均値を対数スケールから前記線形スケールに変換し、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定するゲイン設定部と、
各色成分のゲイン設定値に基づいて前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行うホワイトバランス処理部と、を備える
撮像装置。
（２）
前記検波部は、
前記ブロック毎の各色成分の画素の輝度が閾値以上か否かを判定する輝度閾値判定部と、
前記ブロック毎に輝度が閾値未満と判定された画素の画素値の積分値を対数スケールで算出するとともに画素数を算出する低輝度側積分部と、
前記ブロック毎に輝度が閾値以上と判定された画素の画素値の積分値を対数スケールで算出するとともに画素数を算出する高輝度側積分部と、を更に備え、
前記ゲイン設定部は、前記低輝度側積分部から供給される前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、低輝度側の画素の画素値の平均値を算出し、また、前記高輝度側積分部から供給される前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、高輝度側の画素の画素値の平均値を算出し、低輝度側と高輝度側のそれぞれについて、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定し、
前記ホワイトバランス処理部は、各色成分の低輝度側のゲイン設定値または高輝度側のゲイン設定値に基づいて、前記入力画像の前記ブロック毎に低輝度側または高輝度側の画素の画素値に対してホワイトバランス処理を行う
前記（１）に記載の撮像装置。
（３）
前記ホワイトバランス処理部は、
前記入力画像の画素の画素値の階調を線形スケールから対数スケールに変換する変換部、を更に備え、
前記ゲイン設定部は、記対数スケールで算出した前記ブロック毎の各色成分の画素の画素値の平均値を用い、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定し、
前記ホワイトバランス処理部は、対数スケールで設定された前記ブロック毎の各色成分のゲイン設定値を用いて、前記変換部により対数スケールに変換された前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行う
前記(１)または（２）に記載の撮像装置。
（４）
前記入力画像は、露光時間を異ならせて撮影された複数のフレームを合成した画像である
前記（１）〜（３）のいずれかに記載の撮像装置。
（５）
前記ホワイトバランス処理部により前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理が行われた後、前記入力画像の前記ブロック毎の画素の画素値の階調を圧縮する階調圧縮部、を更に備える
前記（１）〜（４）のいずれかに記載の撮像装置。
（６）
変換部により、入力画像の画素の画素値の階調を線形スケールから対数スケールに変換することと、
検波部により、前記入力画像を空間方向に分割して得られるブロック毎に各色成分の画素の画素値の積分値を対数スケールで算出するとともに、画素数を算出することと、
ゲイン設定部により、前記ブロック毎の各色成分の画素の画素値の積分値と画素数より、前記ブロック毎に各色成分の画素の画素値の平均値を対数スケールで算出し、前記ブロック毎の各色成分の画素の画素値の平均値を対数スケールから前記線形スケールに変換し、前記ブロック毎に各色成分の画素の画素値の平均値の比を決定して前記ブロック毎に各色成分のゲイン設定値を設定することと、
ホワイトバランス処理部により、各色成分のゲイン設定値に基づいて前記入力画像の前記ブロック毎の画素の画素値に対してホワイトバランス処理を行うことと、
を含む撮像方法。
【０１７５】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１７６】
１…撮像装置、
１０…イメージセンサ、  ２０…合成処理部、  ３０…デモザイク処理部、４０，４０Ａ…ホワイトバランス検波部、  ４１…ログ変換部、  ４２…領域判定部、  ４３，４３Ａ…ブロック検波器、  ４４…積分器、  ４４Ｌ…低輝度側積分器、  ４４Ｈ…高輝度側積分器、  ４５…輝度算出部、  ４６…輝度閾値判定部、  ５０…ＣＰＵ、  ５１…ＲＧＢゲイン設定部、  ５２…メモリ、  ６０，６０´，６０Ａ，６０Ａ´…ホワイトバランス処理部、  ６１…ブロックＷＢＲＧＢゲイン算出部、  ６１Ｌ…ブロックＷＢＲＧＢゲイン算出部、  ６１Ｈ…ブロックＷＢＲＧＢゲイン算出部、  ６１Ｂ…輝度別ＷＢＲＧＢゲイン算出部、  ６２…ＲＧＢゲイン処理部、  ６３…ログ変換部、  ６４…リニア変換部、  ６５…輝度算出部、  ７０…階調圧縮部
【図１】
2013207427.tif 000003
【図２】
2013207427.tif 000004
【図３】
2013207427.tif 000005
【図４】
2013207427.tif 000006
【図５】
2013207427.tif 000007
【図６】
2013207427.tif 000008
【図１０】
2013207427.tif 000009
【図１１】
2013207427.tif 000010
【図１３】
2013207427.tif 000011
【図１４】
2013207427.tif 000012
【図１５】
2013207427.tif 000013
【図２０】
2013207427.tif 000014
【図７】
2013207427.tif 000015
【図８】
2013207427.tif 000016
【図９】
2013207427.tif 000017
【図１２】
2013207427.tif 000018
【図１６】
2013207427.tif 000019
【図１７】
2013207427.tif 000020
【図１８】
2013207427.tif 000021
【図１９】
2013207427.tif 000022