JP2011009810A - 逆光補正制御方法および半導体集積回路 - Google Patents
逆光補正制御方法および半導体集積回路 Download PDFInfo
- Publication number
- JP2011009810A JP2011009810A JP2009148227A JP2009148227A JP2011009810A JP 2011009810 A JP2011009810 A JP 2011009810A JP 2009148227 A JP2009148227 A JP 2009148227A JP 2009148227 A JP2009148227 A JP 2009148227A JP 2011009810 A JP2011009810 A JP 2011009810A
- Authority
- JP
- Japan
- Prior art keywords
- value
- backlight
- captured image
- correction
- histogram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】撮像画像のブロックの分割数に大きく影響されずに、逆光状態の検出の精度を向上させることができる逆光補正制御方法を提供する。
【解決手段】撮像画像の分割測光データを入力する分割測光データ入力ステップS100と、各分割測光データのブロック間での差分値によってエッジを検出するエッジ検出ステップS200と、エッジの数を閾値と比較して逆光状態を判定する判定ステップS400と、逆光状態と判定された場合に補正値を算出して設定する補正値設定ステップS500とを有し、エッジ検出ステップS200において、基準ブロックと、隣接する第1の隣接ブロックとの間の第1の差分値と、第1の隣接ブロックが接する方向と同じ方向で第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、第1の差分値と第2の差分値の少なくとも一方が差分基準値以上である場合に第1の隣接ブロックにエッジを有すると判断する。
【選択図】図1
【解決手段】撮像画像の分割測光データを入力する分割測光データ入力ステップS100と、各分割測光データのブロック間での差分値によってエッジを検出するエッジ検出ステップS200と、エッジの数を閾値と比較して逆光状態を判定する判定ステップS400と、逆光状態と判定された場合に補正値を算出して設定する補正値設定ステップS500とを有し、エッジ検出ステップS200において、基準ブロックと、隣接する第1の隣接ブロックとの間の第1の差分値と、第1の隣接ブロックが接する方向と同じ方向で第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、第1の差分値と第2の差分値の少なくとも一方が差分基準値以上である場合に第1の隣接ブロックにエッジを有すると判断する。
【選択図】図1
Description
本発明は、デジタルによる撮像装置等における露光量の制御技術に関し、特に、逆光状態の判別とそれに伴う露光量等の補正を自動で行う逆光補正制御方法および、当該逆光補正制御方法に係る処理を実行する半導体集積回路に適用して有効な技術に関するものである。
デジタルスチルカメラやデジタルビデオカメラなどの撮像装置においては、通常状態での撮影では白とびしてしまう高輝度部分を表示できるようにするために、いわゆるワイドダイナミックレンジ(以下では「WDR」と記載する場合がある)制御を実装している場合がある。これにより、例えば、建物や部屋などの屋内に設置された監視カメラから出入口や窓などを撮影したような場合でも、外部の風景(高輝度部分)は表示できるようになる。しかし、このような状況で、例えば出入口から人が入ってきた場合など、高輝度部分の手前に人や物などが配置された場合には逆光状態となり、この部分は逆に黒つぶれしてしまい識別できないという問題が生じる。
このような逆光条件下において、人や物などの主たる被写体の明るさを十分に得るための技術として、例えば、特開2007−158995号公報(特許文献1)には、撮像素子にて得られた撮像画像を複数のブロックに分割し、それぞれのブロックの輝度平均値を求め、それぞれのブロックの輝度平均値に基づいて隣接するブロックとのコントラスト値を求め、コントラスト値が所定のコントラスト判定用閾値以上であるブロックを求め、求めたブロックのうちの最小の輝度平均値を用いて逆光部分のブロックを検出し、逆光部分のブロックの輝度平均値に所定の重み付けを行って、撮像画像の明度を求め、撮像画像の明度に基づいて撮像素子に入射する光量または撮像素子からの出力のゲインを制御する露出量制御装置が開示されている。
しかしながら、従来技術による露出量制御技術では、処理の高速化等を目的としてブロックの分割数を少なくした場合(ブロックのサイズを大きくした場合)に、ブロック内の輝度分布が当該ブロック全体の輝度に平均化され埋もれてしまう。このため、精度の高いコントラスト値を求めることができず、逆光状態の誤検出につながる可能性がある。すなわち、所定の精度を得るためにはブロックの分割数をある程度多くする(ブロックを細かく分割する)必要があり、その結果処理時間を要することとなる。
そこで本発明の目的は、撮像画像のブロックの分割数に大きく影響されずに、逆光状態の検出の精度を向上させることができる逆光補正制御方法および当該逆光補正制御方法に係る処理を実行する半導体集積回路を提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態による逆光補正制御方法は、入射した光を光電変換する撮像素子から得られた撮像画像のデータについて複数のブロックに分割して輝度が測光された分割測光データを入力する分割測光データ入力ステップと、前記各分割測光データの前記ブロック間での差分値を所定の差分基準値と比較することによって、前記撮像画像におけるエッジの部分を有する前記ブロックを検出するエッジ検出ステップと、前記エッジ検出ステップにおいて検出された前記エッジの部分を有する前記ブロックの数を所定の閾値と比較することによって、前記撮像画像が逆光状態であるか否かを判定する判定ステップと、前記判定ステップにおいて前記撮像画像が逆光状態であると判定された場合に、逆光状態を露光制御により補正するための補正値を算出して設定する補正値設定ステップとを有する逆光補正制御方法であって、以下の点を特徴とするものである。
すなわち、前記エッジ検出ステップにおいて前記分割測光データの前記ブロック間での差分値を求める際に、対象となる基準ブロックと、前記基準ブロックと隣接する第1の隣接ブロックとの間の第1の差分値と、前記基準ブロックに対して前記第1の隣接ブロックが接する方向と同じ方向で前記第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、前記第1の差分値と前記第2の差分値の少なくとも一方が前記差分基準値以上である場合に、前記第1の隣接ブロックに前記エッジを有すると判断することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明の代表的な実施の形態によれば、逆光状態の検出のために撮像画像内のエッジを検出する際に、対象のブロックの隣接ブロックだけでなく、隣接ブロックのさらに一つ先の隣接ブロックについても輝度の差分を求めてエッジを検出する。これにより、撮像画像のブロックの分割数に大きく影響されずにエッジの検出精度、すなわち逆光状態の検出精度を向上させることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明の一実施の形態である逆光補正制御装置は、デジタルスチルカメラに加えて、動画像を撮像するデジタルビデオカメラや監視カメラ、車載カメラ等、カメラ製品全般の撮像装置に適用することが可能である。
本実施の形態の逆光補正制御装置の処理概要は以下のとおりである。まず、撮像素子にて得られた撮像画像を複数のブロックに分割して測光を行い、測光によって得られた輝度データからヒストグラムを作成する。次に、作成したヒストグラムの偏りに基づいてエッジ検出用の差分基準値を決定する。エッジ検出の際は、対象のブロックに対して複数のブロックとの間で輝度の差分値を求め、これらの差分値が差分基準値を超えている場合にエッジとして検出する。
撮像画像内でのエッジの個数が逆光判定閾値を超えている場合に逆光状態であると判断し、露光制御によって光量を上げる。露光制御による逆光補正制御中にエッジの数が逆光判定時の1/n倍(例えば1/2倍)になった場合や、撮像画像全体の明るさに変化があった場合には逆光状態ではなくなったと判断して、逆光補正制御を元に戻す。
[システム構成]
図2は、本発明の一実施の形態である逆光補正制御装置の構成例を示した図である。逆光補正制御装置1は、例えば、レンズ101、撮像素子102、カメラLSI(Large Scale Integration)200、外部メモリ300から構成される。撮像素子102は、被写体からレンズ101を通して受けた光を光電変換する素子であり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサによって構成される。また、外部メモリ300は、SDRAM(Synchronous Dynamic Random Access Memory)などによって構成される。
図2は、本発明の一実施の形態である逆光補正制御装置の構成例を示した図である。逆光補正制御装置1は、例えば、レンズ101、撮像素子102、カメラLSI(Large Scale Integration)200、外部メモリ300から構成される。撮像素子102は、被写体からレンズ101を通して受けた光を光電変換する素子であり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサによって構成される。また、外部メモリ300は、SDRAM(Synchronous Dynamic Random Access Memory)などによって構成される。
カメラLSI200は、例えば、AFE(Analog Front End:アナログフロントエンド)210、カメラDSP(Digital Signal Processor)220、CPU(Central Processing Unit)230を含んだ1チップのLSIである。AFE210は、撮像素子102から出力されたアナログ信号をデジタル信号に変換する処理を行う。
カメラDSP220は、さらに信号処理部221、WDR処理部222を有している。信号処理部221は、AFE210から出力されたデジタル信号に対して輝度や色の処理を行う。このとき、画像データを複数のブロックに分割して処理を行う(分割測光)。WDR処理部222は、例えば、信号処理部221で処理されて外部メモリ300に格納された、高速シャッターで撮像された画像の信号と、信号処理部221で処理されて出力された低速シャッターで撮像された画像の信号とに基づいてWDR制御の処理を行う。WDR制御の具体的な処理内容については本明細書では触れない。なお、カメラLSI200にてWDR制御を行わない場合は、WDR処理部222や外部メモリ300は不要である。
CPU230は、AFE210、カメラDSP220、外部メモリ300等の各部の制御を行う。また、逆光補正制御プログラム231を実行することにより、逆光状態の検知および逆光状態での逆光補正制御の処理を行う。なお、逆光補正制御プログラム231は、例えば、図示しない外部のフラッシュメモリ等に格納され、図示しないCPU230内のRAM(Random Access Memory)に読み込まれて実行される。
[逆光補正制御処理フロー]
図1は、図2における逆光補正制御プログラム231の実行により、カメラLSI200が行う逆光補正制御処理の一例について概要を示したフローチャートである。まず、撮像素子102にて得られた撮像画像(1フレームもしくは1フィールド)に対して、カメラDSP220の信号処理部221によって複数のブロックに分割して測光することで得られた分割測光データ(輝度データ)を入力する(S100)。このとき、分割測光データの平均値算出および分割測光データからのヒストグラムの作成を行う。また、各ブロックに対して重み付けのデータが設定されている場合は、各ブロックの分割測光データに対する重み付け制御も行う。
図1は、図2における逆光補正制御プログラム231の実行により、カメラLSI200が行う逆光補正制御処理の一例について概要を示したフローチャートである。まず、撮像素子102にて得られた撮像画像(1フレームもしくは1フィールド)に対して、カメラDSP220の信号処理部221によって複数のブロックに分割して測光することで得られた分割測光データ(輝度データ)を入力する(S100)。このとき、分割測光データの平均値算出および分割測光データからのヒストグラムの作成を行う。また、各ブロックに対して重み付けのデータが設定されている場合は、各ブロックの分割測光データに対する重み付け制御も行う。
次に、各ブロックの分割測光データに基づいて、輝度の差分値が所定の閾値を超えている部分、すなわちエッジを検出する(S200)。このとき、基準となるブロックに対して隣接するブロックとの間での差分値を比較するのが一般的である。しかし、この場合は、分割するブロックの数を少なくした場合(ブロックのサイズを大きくした場合)に、ブロック内の輝度分布が当該ブロック全体の輝度に平均化され埋もれてしまい、十分な検出精度が得られない。そこで、本実施の形態では、比較するエリアを拡張し、基準ブロックに対して隣接ブロックだけでなく、さらに一つ先の隣接ブロックとの間でも差分値を比較してエッジ(のブロックの数)を検出する。
次に、上記の処理で得たヒストグラムやエッジ数に対して所定の期間の撮像画像に対するモニタリング処理を行う(S300)。1回(1つの撮像画像)のみの検出では検出データの誤差やノイズ等により誤検出・誤判断となる可能性がある。そこで、本実施の形態では、モニタリング期間におけるヒストグラムの変化やエッジ数の平均を取得することにより検出精度の向上を図っている。
次に、上記の処理で得たヒストグラムやエッジ数の情報に基づいて逆光状態であるか否かを判定する(S400)。このとき、判定結果および後述するステートマシンの現在の状態(モード)に基づいて、ステートマシンの状態遷移を行う。この状態遷移に伴って、逆光補正制御の起動/解除などが制御される。
次に、ステートマシンが補正モードの場合に、逆光状態を補正するための露光量等の補正値を算出し、得られた補正値をカメラDSP220に出力してレジスタに設定する(S500)。本実施の形態では、輝度(AE(Automatic Exposure:自動露出)目標値)、輝度信号Yおよび色差信号Cのガンマ係数とガンマKnee係数、黒レベルを調整するYセットアップのそれぞれについて補正値を算出する。
以上の一連の処理を、得られた撮像画像(1フレームもしくは1フィールド)毎に繰り返し実行することで逆光補正制御処理を行う。以下では、上記の各処理の詳細について説明する。
[分割測光データ入力処理]
分割測光データ入力処理(図1におけるS100)では、カメラDSP220によって分割測光されたデータを入力し、撮像画像全体における平均値算出などの処理を行う。また、重み付け制御や、ヒストグラムの作成の処理も行う。
分割測光データ入力処理(図1におけるS100)では、カメラDSP220によって分割測光されたデータを入力し、撮像画像全体における平均値算出などの処理を行う。また、重み付け制御や、ヒストグラムの作成の処理も行う。
カメラDSP220の信号処理部221は、撮像画像の領域をN個のブロックに分割し、各ブロック毎に分割測光して分割測光データ(輝度データ)を取得する。本実施の形態のカメラDSP220では、N=64(8行×8列)に分割しているが、分割数Nの値はこれに限るものではない。
ここで、例えば監視カメラなどの用途の場合は、撮影対象となる場所が建物の出入口や窓などほぼ固定されており、撮像画像の領域において逆光状態となるエリアもほぼ固定される。このような場合に、撮像画像の特定の部分に基づいて逆光状態であると判断し易くする/判断しにくくするような設定を可能とするため、本実施の形態では、各ブロックの分割測光データに対して重み付けすることを可能とする。このため、撮像画像をN分割する場合には、各ブロックにそれぞれ対応したN個の重み付け値を設ける。これらの重み付け値は、例えば、上述した外部のフラッシュメモリなどに格納しておき、外部から設定値の変更等が行えるようにする。
図3は、分割測光データおよび重み付け値の設定例を示した図である。分割測光データ401は、撮像画像を64分割して測光した例を模式的に示したものである。また、重み付けデータ402は、各ブロックに対する重み付け値の設定状況を模式的に示したものである。重み付けデータ402では、例えば、分割測光データに対してそれぞれ、左上部分の領域のブロックでは0.5倍、中央下部分の領域では1.5倍の重み付けを行うことを示している(それ以外の部分では1.0倍で重み付けなし)。
このとき、撮像画像の左上部分では、各ブロックの分割測光データ(輝度データ)が0.5倍されるため、このエリア内に高輝度な被写体(例えば、分割測光データ401に示す太陽)が存在した場合でも輝度データが圧縮される。従って、後述するエッジ検出処理(S200)において、周辺のエリアとの分割測光データ(輝度データ)の差分値も圧縮され、このエリアが逆光状態であると判断されにくくなる。
一方、中央下部分では分割測光データが1.5倍されるため、このエリア内に低輝度な暗い被写体(例えば、分割測光データ401に示す人物)が存在した場合でも輝度データが持ち上げられ、周辺エリアとの分割測光データの差分値が大きくなるため、逆光状態であると判断され易くなる。
さらに、このように重み付けされた分割測光データ401について、ブロック毎に順次その値を読み込み、値の範囲に応じて複数のレベルに分類・集計してヒストグラムを作成する。図4は、分割測光データのレベル分けおよびヒストグラムの例を示した図である。本実施の形態では、図4に示すように、分割測光データ401の各ブロックをその値に応じてレベルL0〜L7の8つのレベルに分類する。分類した各ブロックの数をレベル毎に集計してヒストグラム403を作成する。レベルの数やそのデータ範囲の設定(図4の下段の表)については、例えば、上述した外部のフラッシュメモリなどに格納しておき、外部から設定内容の変更等が行えるようにしてもよい。
また、上記のヒストグラムの作成と同時に各ブロックの分割測光データの合計値を算出しておき、これをブロック数Nで除算することで撮像画像全体での分割測光データ(輝度データ)のブロック毎の平均値を算出する。
図5は、上述した分割測光データ入力処理(S100)の一例を示すフローチャートである。処理を開始すると、まず、現在保持している過去の撮像画像(フレームもしくはフィールド)のヒストグラムのデータを退避させる(S110)。具体的には、例えば、保持している中で最も古い撮像画像のヒストグラムを破棄し、残ったヒストグラムの格納領域を順次移動して退避させることで、最も新しい撮像画像のヒストグラムが格納される領域を書き込み可能とする。過去の複数の撮像画像のヒストグラムを保持するのは、後述するモニタリング処理(図1におけるS300)において、これらのヒストグラムとの相関を判断するためである。
次に、ヒストグラムを作成するために必要となる変数を初期化する(S120)。次に、各ブロックについて処理を行うループを開始する。ループ処理では、まず、カメラDSP220にて取得した分割測光データ401から、対象のブロックの分割測光データを読み込む(S130)。次に、読み込んだ分割測光データに対して、重み付けデータ402から取得した対象のブロックの重み付け値を乗算して重み付けを行う(S140)。
その後、対象のブロックの重み付け後の分割測光データの値に応じて属するヒストグラムのレベルを判定して集計(S150)するとともに、分割測光データを積算する(S160)。以上のステップS130〜S160の処理を全てのブロックについて実行するとヒストグラムの集計は完了し、ループ処理を終了する。ループ処理を終了すると、ステップS160によって積算された分割測光データの合計値をブロック数Nで除算することで分割測光データの各ブロックでの平均値を算出し(S170)、分割測光データ入力処理を終了する。
[エッジ検出処理]
エッジ検出処理(図1におけるS200)では、カメラDSP220によって分割測光されたデータに基づいて、ブロック間での分割測光データ(輝度データ)の差分値を求め、差分値が所定の閾値(差分基準値)を超えているブロック、すなわちエッジが存在するブロックを検出する。エッジが存在するとして検出されたブロックの数を所定の閾値と比較することによって、当該撮像画像が逆光状態であるか否かの判定を行う。
エッジ検出処理(図1におけるS200)では、カメラDSP220によって分割測光されたデータに基づいて、ブロック間での分割測光データ(輝度データ)の差分値を求め、差分値が所定の閾値(差分基準値)を超えているブロック、すなわちエッジが存在するブロックを検出する。エッジが存在するとして検出されたブロックの数を所定の閾値と比較することによって、当該撮像画像が逆光状態であるか否かの判定を行う。
ここで、エッジ検出の精度を上げるための手法として、本実施の形態では、2つの手法を適用している。一つは、撮像画像全体の明るさ、すなわち、ヒストグラムの偏りに基づいて差分基準値を設定するという手法であり、もう一つは、上述したように、基準ブロックに対して隣接ブロックだけでなく、さらに一つ先の隣接ブロックとの間でも分割測光データの差分値を比較するという手法である。
まず、ヒストグラムの偏りに基づいて差分基準値を設定することにより、撮像画像全体の明るさに応じて差分基準値を設定することができ、エッジの検出精度を上げることができる。例えば、撮像画像全体が暗い場合はヒストグラムが低輝度側に偏り、ブロック間の輝度差も小さくなる。このとき、差分基準値が大きい場合は検出できないエッジが生じる場合がある。
一方、撮像画像全体が比較的明るい場合はヒストグラムの分布が広くなり、ブロック間の輝度差も大きくなる。このとき、差分基準値が小さい場合はエッジを誤検出してしまう可能性が高くなる。このように、一律の差分基準値だけでは撮像画像全体の明るさに応じた適切なエッジの検出が困難となる場合がある。これを回避するため、本実施の形態では、撮像画像全体の明るさ、すなわちヒストグラムの偏りに基づいて差分基準値を設定する。
図6は、ヒストグラムの偏りに基づいて差分基準値を設定する例を示した図である。本実施の形態では、ヒストグラムの偏りについて複数のパターンを予め定義し、上述した外部のフラッシュメモリなどにデータベースとして保持しておく。これらのパターンと作成したヒストグラムとを比較し、一致したパターンに対応する差分基準値を取得して設定する。
図6の例では、データベースにパターン1〜3までの3つのパターンが保持されている。これらのパターンは、例えば、ヒストグラムの各レベルでどの範囲にデータ(ブロック)が存在するかによって分類されている。また、各パターンにはそれぞれ対応する差分基準値が設定されている。例えば、図6のヒストグラム403では、レベルL0〜L4の範囲にデータが存在するため、同様にレベルL0〜L4の範囲にデータが存在するパターン2と合致し、差分基準値は「50」と設定される。なお、本実施の形態ではヒストグラムの各レベルにデータが存在するか否かでパターンを比較しているが、各レベルでの値の範囲まで考慮してパターンを定義して比較するなど、種々の比較の手法をとることができる。
図7は、上述したヒストグラム偏り判定処理の一例を示すフローチャートである。処理を開始すると、まず、データベースに保持した各パターンについて処理を行うループを開始する。ループ処理では、まず、各パターンのデータを保持するヒストグラムデータベース404からパターンを読み込む(S201)。
次に、ヒストグラムの各レベルについて処理を行うループを開始する。ループ処理では、対象のレベルについて、読み込んだパターンと対象のヒストグラムとの間でデータ(ブロック)の存在状況を照合する(S202)。全てのレベルで照合が完了すると、各レベルでのループ処理は終了する。なお、全てのレベルでの照合を完了する前にいずれかのレベルで合致しないと判定した場合は、その時点で各レベルでのループを終了してもよい。
次に、各レベルでの照合結果に基づいて、対象のヒストグラムの偏りが読み込んだパターンと合致するか否かを判定する(S203)。ステップS201〜S203の処理をヒストグラムデータベース404に格納されている全てのパターンについて実行すると、各パターンでのループ処理は終了する。なお、全てのパターンとの照合を完了する前にいずれかのパターンとの間で合致したと判定した場合は、その時点で各パターンでのループ処理を終了してもよい。ループ処理を終了すると、合致したと判定したパターンに対応する差分基準値をヒストグラムデータベース404から読み込んで差分基準値として設定し(S204)、ヒストグラム偏り判定処理を終了する。
以上の処理によって設定された差分基準値に基づいて、ブロック間での分割測光データ(輝度データ)の差分値が差分基準値を超えているブロック、すなわちエッジが存在するブロックを検出する。このとき、上述したように、基準ブロックに対して隣接ブロックだけでなく、さらに一つ先の隣接ブロック(基準ブロックに対して隣接ブロックが接する方向と同じ方向で隣接ブロックに対してさらに隣接するブロック。以下では「隣々接ブロック」と記載する場合がある)との間でも分割測光データの差分値を比較する。これは、実際にはブロック内にエッジに相当する部分がある場合であっても、分割測光データでは、ブロック内の輝度分布の平均値として出力されるため埋もれてしまい、エッジが存在すると判断できない場合があるためである。
図8は、基準ブロックに対して隣接ブロックだけでなく隣々接ブロックとの間でも分割測光データの差分値を比較してエッジを検出する例を示した図である。分割測光データ401において、☆印が付されたブロックがエッジ検出の基準のブロックであるとする。本実施の形態では、この基準ブロックに対して、右の隣接ブロックと下の隣接ブロックに加えて、右の隣々接ブロックと下の隣々接ブロックとの間で分割測光データ(輝度データ)の差分値を算出する。
ここで、基準ブロックが属する水平方向のライン(図中の分割測光データ401における一点鎖線のライン)での分割測光データを右側の図に例として示している。なお、ブロック番号は、左上のブロックから右方向に順にB0〜B7と割り当てられ、その下段がB8〜B15というように割り当てられる。従って、このラインのブロック番号は左から順にB32〜B39であり、基準ブロックはB33である。
このとき、まず基準ブロック(B33)に対して、右の隣接ブロック(B34)との分割測光データの差分値を算出する(図中の「差分1」)。ここで、「差分1」が上述した差分基準値を超える場合には、この部分(隣接ブロック(B34))にエッジが存在すると判断する。しかし、実際は隣接ブロック(B34)では輝度レベルが平均化されており、このため「差分1」が差分基準値を超えないことから、隣接ブロック(B34)はエッジとして判断されない。
そこで次に、右の隣々接ブロック(B35)との間でも同様の処理を行う。ここで算出された差分値(図中の「差分2」)は差分基準値を超えるため、この部分にエッジが存在すると判断する。このとき、エッジが存在するブロックはB35ではなくB34の隣接ブロックであるとする。
以上の処理は、基準ブロックに対して下の隣接ブロック、および隣々接ブロックに対しても同様に行うことができる。このような処理を、基準ブロックを左上のブロック(B0)から縦方向、横方向にスキャンさせて行い、エッジとして検出したブロックの数をカウントする。カウントしたブロックの数が所定の個数以上の場合は逆光状態であると判断する。
図9は、撮像画像全体についてエッジ検出を行った場合の例を示した図である。分割測光データ401に対して、縦方向(下方向)の比較を順次行った縦スキャンの結果と、横方向(右方向)の比較を順次行った横スキャンの結果とを合成して得られる縦横スキャンの結果がエッジ検出結果である。図中において、☆印のブロックが基準ブロックであり、矢印の先のブロックが基準ブロックとの間で差分値を比較した対象のブロックである。また、その比較の結果によってエッジとして検出されたブロックが斜線で表されている。図9に示すように、上記の手法によればエッジ検出の精度を上げることができる。
図10は、エッジ検出の際の基準ブロックの移動パターンの例を示した図である。左上のブロック(B0)から開始し、縦スキャンの場合は下方向、横スキャンの場合は右方向に基準ブロックが移動する。また、スキャンする列(行)も順次移動する。ただし、実際は、縦スキャンの場合は下端、横スキャンの場合は右端において、比較する対象となるブロックがなくなるため、下端(右端)より一つ手前のブロックで次の列(行)に移動する。このとき、下端(右端)より一つ手前のブロックでは、隣接ブロック(下端(右端)のブロック)との間でのみ差分値の比較を行う。
図11は、上述したエッジ検出処理の一例を示したフローチャートである。処理を開始すると、まず、図7で説明したヒストグラム偏り判定処理を実行し、撮像画像の明るさに応じた差分基準値を取得する(S210)。次に、各ブロックについてエッジが存在するか否かの情報を保持するN個のデータ格納領域(エッジデータ)を初期化する(S220)。
次に、各スキャン種別について処理を行うループを開始する。ここでは、1回目のループでは縦スキャン、2回目のループでは横スキャンを行うものとする。このループ処理では、さらに、ブロックの各列もしくは各行について処理を行うループを開始する。ここでは、図10に示すように、縦スキャン時は左から右へ各列について、横スキャン時は上から下へ各行について順次処理対象としてループする。
このループ処理では、さらに、対象の列もしくは行内の各ブロックについて処理を行うループを開始する。ここでの処理対象の各ブロックは上述した基準ブロックとなり、図10に示すように、縦スキャン時は対象の列の上から下へ、横スキャン時は対象の行の左から右へ各ブロックについて順次処理対象としてループする。なお、本実施の形態では、上述したとおり、縦スキャン時は下端、横スキャン時は右端のブロックは処理対象外となる(基準ブロックとはしない)ため、ループの回数は(行数(もしくは列数)−1)回となる。
各ブロックを処理対象(基準ブロック)としたループ処理では、上述した手法により、基準ブロックに対して隣接ブロックおよび隣々接ブロック(縦スキャン時は下、横スキャン時は右)との間で分割測光データ(輝度データ)の差分値を比較してエッジの有無を判定する(S230)。この処理の手順については後述する。
対象の列もしくは行内の各ブロックについての処理を完了すると、各ブロックでのループ処理は終了する。また、対象のスキャン種別において全ての列もしくは行についての処理を完了すると、各列もしくは行でのループ処理は終了する。また、全てのスキャン種別についての処理を完了すると、各スキャン種別でのループ処理は完了し、エッジ検出処理は終了する。
図12は、図11のエッジ検出処理におけるエッジ判定処理(図11におけるS230)の一例を示したフローチャートである。処理を開始すると、まず、基準ブロックに対する各検出対象ブロックについて処理を行うループを開始する。ここでは、1回目のループでは隣接ブロック、2回目のループでは隣々接ブロック(いずれも縦スキャン時は下、横スキャン時は右)を検出対象ブロックとする。
ループ処理では、まず、基準ブロックと検出対象ブロックとの間で分割測光データ(輝度データ)の差分値の絶対値を算出する(S241)。次に、算出した差分値が、図11のエッジ検出処理におけるヒストグラム偏り判定処理(S210)で設定された差分基準値以上であるか否かを判定する(S242)。差分値が差分基準値以上でない場合はエッジが存在しないとして何も処理を行わない。
一方、差分値が差分基準値以上である場合は、隣接ブロックのエッジデータにエッジが存在する旨のフラグ(エッジフラグ)をセットする(S243)。ここでは、検出対象ブロックが隣々接ブロックである場合であっても、当該隣々接ブロックではなく隣接ブロックに対してエッジフラグをセットする。以上のステップS241〜S243の処理を各検出対象ブロックについて実行すると、各検出対象ブロックについてのループ処理は終了し、エッジ判定処理は終了する。
[モニタリング処理]
モニタリング処理(図1におけるS300)では、上記の処理で得たヒストグラムやエッジ数に対して所定の期間のモニタリングを行う。1つの撮像画像(1フレームもしくは1フィールド)のみでの検出では検出データの誤差やノイズ等により誤検出・誤判断となる可能性があるため、一定期間の撮像画像のデータを利用することで検出精度の向上を図るものである。
モニタリング処理(図1におけるS300)では、上記の処理で得たヒストグラムやエッジ数に対して所定の期間のモニタリングを行う。1つの撮像画像(1フレームもしくは1フィールド)のみでの検出では検出データの誤差やノイズ等により誤検出・誤判断となる可能性があるため、一定期間の撮像画像のデータを利用することで検出精度の向上を図るものである。
ヒストグラムについては、ヒストグラムの形状が安定したか否かを判断して、撮像シーンに変化が無いかどうかを判定する。例えば、後述する判定処理(図1におけるS400)において逆光状態であると判断した場合、補正モードに移行し、後述する補正値設定処理(図1におけるS500)により露光量等の補正値を算出して設定する。これにより輝度レベルを上げようとするが、実際に補正値に追従して輝度レベルが上がり、安定状態に落ち着くまでには時間を要する。
そこで、本実施の形態では、所定のモニタリング期間でのヒストグラムの形状の変化を判断することで輝度レベルが安定状態になったか否かを判断する。安定状態になったと判断される場合は、後述する判定処理(図1におけるS400)において補正モードから保持モードにステートマシンの状態を遷移させることができる。
図13は、モニタリング期間でのヒストグラムの形状の変化を判断する場合の例を示した図である。ヒストグラムの形状の変化は、モニタリング期間における各撮像画像のヒストグラム毎の相関の有無を検出することで判断する。すなわち、処理対象の撮像画像(フレームもしくはフィールド)からモニタリング期間分だけ過去に処理された撮像画像についてのヒストグラムが相関検出の対象となる。これらのヒストグラムは、図5の分割測光データ入力処理のヒストグラム退避処理(S110)によって保持される。
図13において、右端の時間T0のヒストグラム(レベルL0〜L7のデータ)が処理対象の(最新の)撮像画像のヒストグラムである。モニタリング期間はn(時間T0〜Tn)であり、時間T0〜Tnのそれぞれにおける撮像画像のヒストグラム(レベルL0〜L7のデータ)が示されている。
このとき、例えば、モニタリング期間で最も古い時間Tnのヒストグラムを基準とし、この基準のヒストグラム(時間Tn)と各時間(T(n−1)〜T0)のヒストグラムとの間でそれぞれ相関を検出する。これにより、モニタリング期間での最初の画像からの変化の有無を検出することができる。なお、相関の検出方法はこれに限らず、例えば、ある時間のヒストグラムとその直前のヒストグラムの画像との間でそれぞれ相関を検出するなどの方法であってもよい。
相関の検出は、例えば、ヒストグラムの各レベル同士で値を比較し、その差分値が所定の閾値以内であれば相関がある(変化がない)と判断する。ヒストグラムの全てのレベルにおいて相関があると判断された場合はヒストグラム間で相関があると判断し、比較対象のヒストグラムに対して“OK”のフラグをセットする。逆に一つのレベルでも相関がない(変化している)と判断された場合(例えば、図中の時間T1のレベルL3や時間T0のレベルL5)は“NG”のフラグをセットする。
時間T(n−1)〜T0の各ヒストグラムについてそれぞれ時間Tnの基準のヒストグラムとの間で相関検出を行って“OK”か“NG”かを判断し、“OK”の数をカウントする。この数が例えばn/2以上(モニタリング期間のヒストグラムの半数以上)である場合はヒストグラムに相関がある、すなわち、安定状態であると判断する。なお、上記の判断手法はあくまで一例であり、他の手法をとることも当然可能である。
一方、エッジ数については、逆光状態であるか否かの判断の精度を向上させるため、図11のエッジ検出処理によって求めた撮像画像のエッジ数について、モニタリング期間での各撮像画像における平均値を算出することで、ノイズ等の影響を低減させる。
図14は、上述したモニタリング処理の一例を示したフローチャートである。処理を開始すると、まず、保持している過去のヒストグラムから基準となるヒストグラム(本実施の形態では最も古いヒストグラム)を特定する(S310)。次に、モニタリング期間についてのループを開始する。ループ処理では、まず、基準のヒストグラムと比較する対象のヒストグラムを設定する(S320)。例えば、基準となるヒストグラムの次に古いヒストグラムから順に新しいヒストグラムを比較対象のヒストグラムとして設定する。
次に、各ヒストグラムレベルについて処理するループを開始する。ループ処理では、対象のレベルについて、基準となるヒストグラムと比較対象のヒストグラムとの間でヒストグラムの相関を検出する(S330)。ここでは、上述したように例えば、それぞれのヒストグラムの値について差分値の絶対値を算出し、所定の閾値と比較することで対象のレベルでの相関の有無を検出する。全てのヒストグラムレベルについて相関を検出すると、各ヒストグラムレベルでのループ処理は終了する。なお、全てのヒストグラムレベルでの相関検出を完了する前にいずれかのレベルで相関がないと判断された場合は、その時点で各ヒストグラムレベルでのループ処理を終了してもよい。
ループ処理を終了すると、対象のヒストグラムについて、基準のヒストグラムに対して全てのヒストグラムレベルで相関があると判断されたか否かを判定し、対象のヒストグラムについての基準のヒストグラムとの間の相関の有無を検出する(S340)。相関がある場合は、上述したように、対象のヒストグラムに対して“OK”のフラグをセットし、相関がない場合は“NG”のフラグをセットする。またこれとは別に、対象のヒストグラムに対応する撮像画像についてのエッジ数を積算しておく(S350)。
ステップS320〜S350の処理をモニタリング期間での全てのヒストグラムについて実行すると、モニタリング期間でのループ処理は終了する。ループ処理を終了すると、モニタリング期間の全てのヒストグラムについて“OK”のフラグの数をカウントし、所定の閾値(例えば、モニタリング期間の全てのヒストグラムの半数)と比較することによりヒストグラムが安定状態である(相関がある)か否かを判定する(S360)。また、積算されたエッジ数をモニタリング期間のヒストグラム(撮像画像)の数で除算することで、撮像画像あたりのエッジ数の平均値を算出し(S370)、モニタリング処理を終了する。
[判定処理]
判定処理(図1におけるS400)では、上記の処理で得たヒストグラムやエッジ数の情報に基づいて逆光状態であるか否かを判定し、ステートマシンの現在の状態(モード)に基づいて、ステートマシンの状態遷移を行う。この状態遷移に伴って、逆光補正制御の起動/解除などが制御される。
判定処理(図1におけるS400)では、上記の処理で得たヒストグラムやエッジ数の情報に基づいて逆光状態であるか否かを判定し、ステートマシンの現在の状態(モード)に基づいて、ステートマシンの状態遷移を行う。この状態遷移に伴って、逆光補正制御の起動/解除などが制御される。
図15は、ステートマシンの状態遷移図の一例である。逆光補正制御装置1の起動時等における初期状態では逆光補正制御OFFモード501の状態である。この状態では、逆光状態の検知やそれに伴う逆光補正制御を行わない。すなわち、逆光補正制御プログラム231の実行は停止している。逆光補正制御OFFモード501の状態で、ユーザからの指示等をトリガとして逆光補正制御機能をONにする、すなわち、逆光補正制御プログラム231の実行を開始すると、判定モード502に移行する。
判定モード502では、撮像画像のエッジ数に基づいて逆光状態の検知を行う。逆光状態を検知した場合には補正モード503に移行する。補正モード503では、後述する補正値設定処理(図1におけるS500)により、逆光状態を補正するための補正値を設定して逆光補正制御を行う。設定した補正値によって目標とする逆光補正の状態となるまで補正値を漸次調整する。目標とする逆光補正の状態に達した場合は保持モード504に移行する。
保持モード504では、補正モード503において設定された補正値をそのまま維持し、逆光補正制御を継続するとともに、撮像画像のエッジ数や分割測光データ、ヒストグラムなどに基づいて逆光状態を抜けたか否かの検知を行う。逆光状態を抜けたと判断した場合には終了モード505に移行する。このとき補正値は初期設定値に戻す。終了モード505では、逆光状態の検知やそれに伴う逆光補正制御は行わず、所定時間の経過などの条件をトリガとして判定モード502に再度移行する。
なお、判定モード502、補正モード503、保持モード504、終了モード505の各状態において、随時ユーザからの指示等をトリガとして、逆光補正制御機能をOFFにして逆光補正制御プログラム231の実行を停止し、逆光補正制御OFFモード501に移行することができる。
図16は、上述したステートマシンの状態遷移を行うモード判定処理の一例を示したフローチャートである。処理を開始すると、まず、ステートマシンにおける現在のモード(状態)を判定する(S410)。判定モード502、補正モード503、保持モード504、終了モード505の各状態でそれぞれ処理内容は異なる。
判定モード502の場合は、撮像画像が逆光状態となったか否かを判断する。具体的には、図14のモニタリング処理のエッジ数平均算出処理(S370)で算出したエッジ数の平均値が所定の閾値以上となっているか否かを判定する(S421)。所定の閾値以上となっている場合は逆光状態になったと判断し、補正モード503に移行して(S422)、モード判定処理を終了する。一方、所定の閾値以上となっていない場合は逆光状態になっていないと判断し、そのままモード判定処理を終了する。すなわち、判定モード502を継続する。
補正モード503の場合は、後述する補正値設定処理(図1におけるS500)により設定した補正値によって目標とする逆光補正の状態(輝度レベル)に達したか否かを判断する。具体的には、まず、図14のモニタリング処理のヒストグラム相関判定処理(S360)の結果に基づいてヒストグラムに相関があるか否か、すなわちヒストグラムが安定状態であるか否かを判定する(S431)。補正値を設定した場合でも、実際に補正値に追従して輝度レベルが上がり、安定状態に落ち着くまでには時間を要するためである。
ヒストグラムに相関がない、すなわちヒストグラムがまだ安定していない場合は、何も行わずにモード判定処理を終了する。すなわち、補正モード503を継続する。ヒストグラムが安定状態である場合は、さらに、後述する補正値設定処理(図1におけるS500)におけるAE目標値の制御が自動制御であるか否かを判定する(S432)。AE目標値の制御が自動制御ではない(手動制御である)場合は、ゲイン係数は手動で設定された値を固定で用いるため、保持モード504に移行して(S434)、モード判定処理を終了する。
AE目標値の制御が自動制御である場合は、ヒストグラムに基づいて輝度レベルが後述する所定の目標値に到達しているか否かを判定する(S433)。輝度レベルが所定の目標値に到達していない場合は、そのままモード判定処理を終了し、補正モード503を継続する。輝度レベルが所定の目標値に到達している場合は、目標とする逆光補正の状態に達したと判断し、保持モード504に移行して(S434)、モード判定処理を終了する。
保持モード504の場合は、撮像画像が逆光状態を抜けたか否かを判断する。具体的には、例えば、以下の4つの条件のいずれか1つに該当した場合に逆光状態を抜けたと判断する。
(1)図14のモニタリング処理のエッジ数平均算出処理(S370)で算出したエッジ数の平均値が所定の閾値(本実施の形態では、例えば、逆光状態であると判定したときのエッジ数の平均値(この値は、例えば、CPU230の図示しないRAM等に記憶しておく)の1/n倍)以下となっている場合(S441)。
(2)図5の分割測光データ入力処理の分割測光データ平均算出処理(S170)で算出した分割測光データの平均値が所定の低輝度閾値以下であり、かつヒストグラムに相関があり安定状態である場合、すなわち、画面全体が暗くなった場合(S442)。
(3)図5の分割測光データ入力処理の分割測光データ平均算出処理(S170)で算出した分割測光データの平均値が所定の高輝度閾値以上であり、かつヒストグラムに相関があり安定状態である場合、すなわち、画面全体が明るくなった場合(S443)。
(4)AE目標値の制御が自動制御である場合に、ヒストグラムに基づく輝度レベルが後述する所定の目標値以下になった場合(S444)。
(1)図14のモニタリング処理のエッジ数平均算出処理(S370)で算出したエッジ数の平均値が所定の閾値(本実施の形態では、例えば、逆光状態であると判定したときのエッジ数の平均値(この値は、例えば、CPU230の図示しないRAM等に記憶しておく)の1/n倍)以下となっている場合(S441)。
(2)図5の分割測光データ入力処理の分割測光データ平均算出処理(S170)で算出した分割測光データの平均値が所定の低輝度閾値以下であり、かつヒストグラムに相関があり安定状態である場合、すなわち、画面全体が暗くなった場合(S442)。
(3)図5の分割測光データ入力処理の分割測光データ平均算出処理(S170)で算出した分割測光データの平均値が所定の高輝度閾値以上であり、かつヒストグラムに相関があり安定状態である場合、すなわち、画面全体が明るくなった場合(S443)。
(4)AE目標値の制御が自動制御である場合に、ヒストグラムに基づく輝度レベルが後述する所定の目標値以下になった場合(S444)。
ステップS441〜S444のいずれの条件も満たさなかった場合は逆光状態が継続していると判断し、そのままモード判定処理を終了する。すなわち、保持モード504を継続する。一方、ステップS441〜S444のいずれかの条件を満たした場合は逆光状態を抜けたと判断し、終了モード505に移行する(S445)。さらに、逆光補正制御のための補正値を解除して初期値に戻し(S446)、モード判定処理を終了する。なお、補正値を一気に解除して初期値に戻すと、撮像画像の状態が急激に変化してしまう場合がある。従って、補正値の解除を一気に行うのではなく、所定の時間幅で徐々に解除するようにしてもよい。
終了モード505の場合は、本実施の形態では、まず、所定時間が経過したか否かを判定する(S451)。上述したように、保持モード504から終了モード505に移行する際に、補正値解除処理(S446)において徐々に補正値を解除するようにした場合、その完了を待つためである。なお、補正値を一気に解除する場合は、この所定時間をゼロに設定してもよい。所定時間が経過していない場合は、そのままモード判定処理を終了する。すなわち、終了モード505を継続する。一方、所定時間が経過している場合は、判定モード502に再度移行し(S452)、ヒストグラムやエッジに関するデータ等を初期化して(S453)、モード判定処理を終了する。
[補正値設定処理]
補正値設定処理(図1におけるS500)では、ステートマシンが補正モード503の場合に、逆光状態を補正するための露光量等の補正値を算出し、得られた補正値をカメラDSP220に出力してレジスタに設定する。本実施の形態では、輝度(AE(Automatic Exposure:自動露出)目標値)に加えて、さらに、輝度信号Yおよび色差信号Cのガンマ係数とガンマKnee係数、および黒レベルを調整するYセットアップ値のそれぞれについて補正値を算出する。
補正値設定処理(図1におけるS500)では、ステートマシンが補正モード503の場合に、逆光状態を補正するための露光量等の補正値を算出し、得られた補正値をカメラDSP220に出力してレジスタに設定する。本実施の形態では、輝度(AE(Automatic Exposure:自動露出)目標値)に加えて、さらに、輝度信号Yおよび色差信号Cのガンマ係数とガンマKnee係数、および黒レベルを調整するYセットアップ値のそれぞれについて補正値を算出する。
まず、AE目標値の補正値算出について説明する。一般的にAE目標値の制御には手動制御と自動制御とがあり、手動制御の場合は手動で設定したゲイン係数が固定的に設定される。従って、以下では自動制御の場合の手法について説明する。
図17は、逆光状態であると判断された撮像画像について、逆光状態の補正を行う前と、手動制御でのAE目標値の補正により必要十分な逆光補正を行ったときのヒストグラム403の例を示した図である。一般的に、逆光状態であると判断された撮像画像において、逆光補正制御による逆光補正を行う前では、ヒストグラム403は低輝度側に偏っており高輝度側にはない。一方、逆光状態であると判断して逆光補正を行った場合は、ヒストグラム403のレベルL7の値が全体の40%〜50%程度となることが多いという結果が実験によっても得られている。
そこで、本実施の形態では、ヒストグラム403におけるレベルL7の値が全体の40%〜50%に達するように漸次輝度レベルを上げるよう、AE目標値を設定する。AE目標値を設定した後、図14のモニタリング処理を経てヒストグラムが安定状態であると判断された場合に、ヒストグラムのレベルL7の値が目標値(全体の40%〜50%の範囲で設定)に達しているか否かを判定する。目標値に達していない場合はさらにAE目標値を上げてゲイン係数を上げることによって全体の輝度レベルを上げ、目標値に達するまでこれを繰り返す。
図18は、輝度レベルを漸次上げる場合の例を示した図である。AE目標値を設定し、ヒストグラムの相関をモニタリングしながら安定状態となったかどうかを判断する。安定状態となった場合、例えば、図中の(1)の時点でヒストグラムのレベルL7の値を判定する。(1)の時点では目標値に達していないため、さらにAE目標値を上げて、ゲイン係数を、例えば、0.1倍や0.2倍ずつステップ状に増加させる(図中の(2)〜(7))。
図中の(8)の時点でヒストグラムのレベルL7の値が目標値に達するため、AE目標値の自動制御は終了する。この補正値はその後の保持モード504において維持される。なお、図18の例では、等幅のステップで輝度レベルを上げているが、現在値と目標値との差分値の大きさに基づいてフィードバック制御により変化量を決定してもよい。
次に、YおよびCのガンマとガンマKneeの補正値算出について説明する。逆光状態であると判断して、上述のようにAE目標値を上げてゲインを上げることによって撮像画像全体の輝度を上げると、元来高輝度であった部分もさらに高輝度となってしまう。従って、YおよびCのガンマKnee係数を下げる(Knee部分の傾きを小さくする)ことによって高輝度部分の出力を抑制する制御を行う。また、ガンマカーブにおいてガンマKnee係数はガンマ係数とリンクするため、ガンマKnee係数を下げるのに伴いガンマ係数(ガンマカーブの膨らみ)についても調整する(ガンマカーブを持ち上げる)。
図19は、ガンマ係数およびガンマKnee係数の補正値算出の例を示す図である。例えば、初期設定において、ガンマKnee係数をガンマ係数の半分であるとする(図19の例ではガンマ係数=0.5倍、ガンマKnee係数=0.25倍とし、点線のガンマカーブで示す)。このとき、ガンマ係数およびガンマKnee係数の補正値については以下の手法により算出する。
図19の例において、初期設定のガンマカーブでは、出力100IRE(出力値512)に対する入力値は512である。また、出力120IRE(出力値614)に対する入力値は921である。このとき、入力値(例えば921)に対して、逆光補正によりAE目標値に対するゲイン係数を乗じたものに対する出力値が同じ値(例えば614)になるようにするガンマKnee係数(図中の実線のガンマカーブにおけるKnee部分の傾き)は、
ガンマKnee係数=
(614−512)/(921×ゲイン係数−512) …式(1)
の式により求めることができる。
ガンマKnee係数=
(614−512)/(921×ゲイン係数−512) …式(1)
の式により求めることができる。
さらに、式(1)によって求められたガンマKnee係数を用いて、ガンマ係数は、
ガンマ係数=0.5+2×(0.25−ガンマKnee係数) …式(2)
の式により求めることができる。なお、式(1)および式(2)で求めたガンマKnee係数およびガンマ係数に対応するカメラDSP220のレジスタへの設定値は、
レジスタ設定値=係数値×256 …式(3)
の式により求めることができる。
ガンマ係数=0.5+2×(0.25−ガンマKnee係数) …式(2)
の式により求めることができる。なお、式(1)および式(2)で求めたガンマKnee係数およびガンマ係数に対応するカメラDSP220のレジスタへの設定値は、
レジスタ設定値=係数値×256 …式(3)
の式により求めることができる。
例えば、図19の例のように初期設定のガンマ係数=0.5倍、ガンマKnee係数=0.25倍の場合において、AE目標値に対するゲイン係数が1.5倍であるとする。このとき、ガンマKnee係数およびレジスタへの設定値は、式(1)、(3)より、それぞれ、
ガンマKnee係数=
(614−512)/(921×1.5−512)≒0.117倍
レジスタ設定値=0.117×256≒30
となる。また、ガンマ係数およびレジスタへの設定値は、式(2)、(3)より、それぞれ、
ガンマ係数=0.5+2×(0.25−0.117)≒0.766倍
レジスタ設定値=0.766×256≒196
となる。
ガンマKnee係数=
(614−512)/(921×1.5−512)≒0.117倍
レジスタ設定値=0.117×256≒30
となる。また、ガンマ係数およびレジスタへの設定値は、式(2)、(3)より、それぞれ、
ガンマ係数=0.5+2×(0.25−0.117)≒0.766倍
レジスタ設定値=0.766×256≒196
となる。
次に、Yセットアップ値の補正値算出について説明する。逆光状態であると判断して、上述のようにAE目標値を上げてゲイン係数を上げることによって撮像画像全体の輝度を上げると、画面全体が白っぽくなる。これは、撮像画像全体の輝度が上がることによって黒レベルも上がるためである。従って、これを抑制するため、黒レベルを調整するYセットアップ値の補正を行う。
図20は、Yセットアップ値の補正値算出の例を示す図である。図20の例では、ゲイン係数が1倍のときのYセットアップデフォルト値に対する、ゲイン係数が2倍のときのYセットアップの値の増加分を求め、これを設定データとして保持しておく。本実施の形態では、ゲイン係数の増加に対してYセットアップの値が直線的に増加するものとして、ゲイン係数が1倍と2倍のときの2点間を結ぶ一次関数を用いたリニア補正により補正値を算出する。すなわち、
Yセットアップ値=
(ゲイン係数−1)×増加分+Yセットアップデフォルト値 …式(4)
の式により、Yセットアップの補正値を算出することができる。
Yセットアップ値=
(ゲイン係数−1)×増加分+Yセットアップデフォルト値 …式(4)
の式により、Yセットアップの補正値を算出することができる。
図21は、上述した逆光状態を補正するための補正値設定処理の一例を示したフローチャートである。処理を開始すると、まず、ステートマシンにおける現在のモードが補正モード503であるか否かを判定する(S510)。補正モード503でない場合は以降の処理を行わずに補正値設定処理を終了する。
次に、図14のモニタリング処理のヒストグラム相関判定処理(S360)の結果に基づいてヒストグラムに相関があるか否か、すなわちヒストグラムが安定状態であるか否かを判定する(S520)。ヒストグラムに相関がない場合は、現在の補正値においてまだ輝度レベルが安定していないため、新たな補正値の設定を行わずに補正値設定処理を終了する。
ステップS520でヒストグラムに相関がある、すなわちヒストグラムが安定状態である場合は、上述したAE目標値の制御が自動制御であるか否かを判定する(S530)。自動制御ではない、すなわち手動制御である場合は、ゲイン係数は固定的に設定されるため、AE目標値の新たな設定を行わずにステップS560に進む。AE目標値の制御が自動制御である場合は、現在の撮像画像(ヒストグラム)の輝度レベルが所定の目標の輝度レベル(ヒストグラムのレベルL7の値が全体の40%〜50%となる範囲で設定)に到達しているか否かを判定する(S540)。目標の輝度レベルに到達している場合は、AE目標値の新たな設定を行わずにステップS560に進む。
ステップS540で輝度レベルが所定の目標の輝度レベルに達していない場合は、輝度レベルを上げるよう、AE目標値を現在よりもさらに上げる補正行う(S550)。なお、上述したように、AE目標値を上げる際には、ゲイン係数が0.1倍や0.2倍ずつステップ状に増加するようにしたり、現在の輝度レベルとの差分に基づいてフィードバック制御によりゲイン係数を算出したりなど種々の方法をとることができる。
次に、ステップS550で設定されたAE目標値に対するゲイン係数に基づいて、上述した式(1)〜式(4)を用いてYおよびCのガンマ係数およびガンマKnee係数や、黒レベルを調整するYセットアップ値の補正値を算出し(S560)、補正値設定処理を終了する。なお、ステップS550、S560で算出した補正値に基づいてカメラDSP220のレジスタの値を設定する。
以上の説明では、動画像を撮像する撮像装置における逆光補正制御方法につて説明したが、静止画を撮像するデジタルスチルカメラ等においても適用することができる。例えば、デジタルスチルカメラにおいては、撮像素子102によって得られた撮像画像を動画像として常時記録するということは行わないが、ステートマシンが上述した保持モード504の状態になり、ヒストグラムが安定した時点で撮像画像を記録することで、逆光補正された静止画像を得ることができる。
以上に説明したように、本実施の形態の逆光補正制御方法によれば、逆光状態の検出のために撮像画像内のエッジを検出する際に、対象のブロックの隣接ブロックだけでなく、隣々接ブロックについても輝度の差分値を求めてエッジを検出する。これにより、撮像画像のブロックの分割数に大きく影響されずにエッジの検出精度、すなわち逆光状態の検出精度を向上させることができる。
また、このとき、各ブロックの輝度(分割測光データ)に対して、ブロック毎に重み付け値を乗算して重み付けすることを可能としている。これにより、撮像画像内のエリア毎に逆光状態であると判断され易くするエリアと判断されにくくするエリアを設けて、撮像画像の特質に応じて逆光状態の検出精度を向上させることができる。
さらに、ブロック間での輝度の差分値を求める際に、一律の差分基準値ではなくヒストグラムの偏りのパターン毎に予め設定された差分基準値の中から、ヒストグラムの偏りのパターンが合致するものを選択して取得する。これにより、撮像画像全体の明るさに応じて差分基準値を適切な値に設定することができ、逆光状態の検出精度を向上させることができる。
また、本発明の実施の形態の逆光補正制御方法によれば、逆光状態を検出して逆光補正制御を行っている間も撮像画像内のエッジ数等をモニタリングし、逆光状態ではなくなったことを検出したことによって逆光補正制御を通常の状態に戻す制御を行う。また、このような状態の移行をステートマシンによる状態遷移により管理する。これにより、刻々と状態が変化する動画像の撮影においても状況に応じた逆光補正制御を実現することができる。
また、エッジ数に基いて逆光状態であるか否かを検知する際や、逆光補正制御による逆光状態の補正が目標とする状態に達したか否かを判断する際に、1つの撮像画像のみによる判断ではなく、モニタリング期間での複数の撮像画像におけるヒストグラムの相関によりヒストグラムが安定状態であることを条件として判断する。これにより、データの誤差やノイズの影響を低減し、検出精度を向上させることができる。
また、本発明の実施の形態の逆光補正制御方法によれば、逆光状態を検出して逆光補正を行う際に、ヒストグラムの輝度の目標値に対して、AE目標値を少しずつ上げて露光量を増やし、その都度モニタリングによりヒストグラムが安定するのを待ちながら、フィードバック制御等によりヒストグラムの輝度レベルが目標値に達するまで自動制御を行う。これにより、逆光補正制御によって逆光状態の補正を行う際に、撮像画像が急激に変化するのを抑えつつ、適切に補正を行うことができる。
さらに、AE目標値(ゲイン係数)の補正値に連動して、輝度信号Yおよび色差信号Cのガンマ係数およびガンマKnee係数、ならびに黒レベルを調整するYセットアップ値の調整も行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、デジタルスチルカメラおよび動画像を撮像するデジタルビデオカメラや監視カメラ、車載カメラ等、カメラ製品全般に利用可能であり、これらの撮像装置等において逆光状態の判別とそれに伴う露光量の補正を自動で行う逆光補正制御方法および、当該逆光補正制御方法に係る処理を実行する半導体集積回路に利用することができる。
1…逆光補正制御装置、
101…レンズ、102…撮像素子、
200…カメラLSI、210…AFE、220…カメラDSP、221…信号処理部、222…WDR処理部、230…CPU、231…逆光補正制御プログラム、
300…外部メモリ、
401…分割測光データ、402…重み付けデータ、403…ヒストグラム、404…ヒストグラムデータベース、
501…逆光補正制御OFFモード、502…判定モード、503…補正モード、504…保持モード、505…終了モード。
101…レンズ、102…撮像素子、
200…カメラLSI、210…AFE、220…カメラDSP、221…信号処理部、222…WDR処理部、230…CPU、231…逆光補正制御プログラム、
300…外部メモリ、
401…分割測光データ、402…重み付けデータ、403…ヒストグラム、404…ヒストグラムデータベース、
501…逆光補正制御OFFモード、502…判定モード、503…補正モード、504…保持モード、505…終了モード。
Claims (16)
- 入射した光を光電変換する撮像素子から得られた撮像画像のデータについて複数のブロックに分割して輝度が測光された分割測光データを入力する分割測光データ入力ステップと、
前記各分割測光データの前記ブロック間での差分値を所定の差分基準値と比較することによって、前記撮像画像におけるエッジの部分を有する前記ブロックを検出するエッジ検出ステップと、
前記エッジ検出ステップにおいて検出された前記エッジの部分を有する前記ブロックの数を所定の閾値と比較することによって、前記撮像画像が逆光状態であるか否かを判定する判定ステップと、
前記判定ステップにおいて前記撮像画像が逆光状態であると判定された場合に、逆光状態を露光制御により補正するための補正値を算出して設定する補正値設定ステップとを有する逆光補正制御方法であって、
前記エッジ検出ステップにおいて前記分割測光データの前記ブロック間での差分値を求める際に、対象となる基準ブロックと、前記基準ブロックと隣接する第1の隣接ブロックとの間の第1の差分値と、前記基準ブロックに対して前記第1の隣接ブロックが接する方向と同じ方向で前記第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、前記第1の差分値と前記第2の差分値の少なくとも一方が前記差分基準値以上である場合に、前記第1の隣接ブロックに前記エッジを有すると判断することを特徴とする逆光補正制御方法。 - 請求項1に記載の逆光補正制御方法において、
前記分割測光データ入力ステップでは、前記各分割測光データを値の範囲に応じて複数のレベルにそれぞれ分類および集計してヒストグラムを作成し、
前記エッジ検出ステップでは、前記ヒストグラムの偏りを予め保持している複数の前記ヒストグラムの偏りのパターンと比較し、合致する前記パターンに基づいて、予め保持している前記パターンに対応する前記差分基準値を取得することを特徴とする逆光補正制御方法。 - 請求項1または2に記載の逆光補正制御方法において、
前記分割測光データ入力ステップでは、前記各分割測光データに対して、前記ブロック毎に予め設定した重み付け値をそれぞれ乗算して重み付けを行うことが可能であることを特徴とする逆光補正制御方法。 - 入射した光を光電変換する撮像素子から得られた撮像画像のデータに基づいて、前記撮像画像が逆光状態であるか否かを判定し、逆光状態である場合に逆光状態を露光制御により補正するための補正値を算出して設定する逆光補正制御方法であって、
前記撮像画像のデータについて複数のブロックに分割して輝度が測光された分割測光データを入力する分割測光データ入力ステップと、
前記各分割測光データの前記ブロック間での差分値を所定の差分基準値と比較することによって、前記撮像画像におけるエッジの部分を有する前記ブロックを検出するエッジ検出ステップと、
前記エッジ検出ステップにおいて検出された前記エッジの部分を有する前記ブロックの数を、所定のモニタリング期間に得られた各撮像画像のデータについて取得して、その平均値を算出するモニタリングステップと、
前記モニタリングステップにおいて算出された前記エッジの部分を有する前記ブロックの数の平均値を所定の閾値と比較することによって、前記撮像画像が逆光状態であるか否かを判定する判定ステップと、
前記判定ステップにおいて前記撮像画像が逆光状態であると判定された場合に、逆光状態を露光制御により補正するための補正値を算出して設定する補正値設定ステップとを有することを特徴とする逆光補正制御方法。 - 請求項4に記載の逆光補正制御方法において、
前記判定ステップでは、前記撮像画像が逆光状態であると判定した場合に、前記エッジの部分を有する前記ブロックの数の第1の平均値を記録しておき、その後の前記撮像画像において、前記エッジの部分を有する前記ブロックの数の第2の平均値が、前記第1の平均値と比較して所定の値以下になった場合に、前記撮像画像が逆光状態ではなくなったと判定して前記補正値設定ステップによって設定された前記補正値を元の値に戻すことを特徴とする逆光補正制御方法。 - 請求項4または5に記載の逆光補正制御方法において、
前記エッジ検出ステップでは、前記分割測光データの前記ブロック間での差分値を求める際に、対象となる基準ブロックと、前記基準ブロックと隣接する第1の隣接ブロックとの間の第1の差分値と、前記基準ブロックに対して前記第1の隣接ブロックが接する方向と同じ方向で前記第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、前記第1の差分値と前記第2の差分値の少なくとも一方が前記差分基準値以上である場合に、前記第1の隣接ブロックに前記エッジを有すると判断することを特徴とする逆光補正制御方法。 - 請求項4〜6のいずれか1項に記載の逆光補正制御方法において、
前記分割測光データ入力ステップでは、前記各分割測光データを値の範囲に応じて複数のレベルにそれぞれ分類および集計してヒストグラムを作成し、
前記エッジ検出ステップでは、前記ヒストグラムの偏りを予め保持している複数の前記ヒストグラムの偏りのパターンと比較し、合致する前記パターンに基づいて、予め保持している前記パターンに対応する前記差分基準値を取得することを特徴とする逆光補正制御方法。 - 請求項4〜7のいずれか1項に記載の逆光補正制御方法において、
前記分割測光データ入力ステップでは、前記各分割測光データに対して、前記ブロック毎に予め設定した重み付け値をそれぞれ乗算して重み付けを行うことが可能であることを特徴とする逆光補正制御方法。 - 請求項7または8に記載の逆光補正制御方法において、
前記モニタリングステップでは、前記モニタリング期間に得られた各撮像画像について、前記分割測光データ入力ステップにおいてそれぞれ作成された各ヒストグラムでの相関を判定し、
前記判定ステップでは、前記モニタリングステップにおいて前記各ヒストグラムでの前記相関があると判定された場合に前記ヒストグラムが安定状態であると判断し、かつ、前記補正値設定ステップによって設定された前記補正値に基づいて、前記撮像画像が目標とする逆光補正の状態に到達している場合に、それ以降、前記補正値を一定の状態に保持することを特徴とする逆光補正制御方法。 - 請求項9に記載の逆光補正制御方法において、
前記分割測光データ入力ステップでは、前記撮像画像における前記分割測光データの平均値を算出し、
前記判定ステップでは、前記ヒストグラムが安定状態であると判断し、かつ、前記分割測光データの平均値が所定の低輝度閾値以下である場合もしくは前記分割測光データの平均値が所定の高輝度閾値以上である場合に、前記撮像画像が逆光状態ではなくなったと判定して前記補正値設定ステップによって設定された前記補正値を元の値に戻すことを特徴とする逆光補正制御方法。 - 請求項2または7に記載の逆光補正制御方法において、
前記補正値設定ステップでは、前記判定ステップにおいて前記撮像画像が逆光状態であると判定された際の前記ヒストグラムの輝度レベルが所定の目標の輝度レベルとなるように、前記撮像画像毎に露光量が漸次増加するようゲイン係数に係る前記補正値を設定することを特徴とする逆光補正制御方法。 - 請求項11に記載の逆光補正制御方法において、
前記補正値設定ステップでは、前記ゲイン係数に係る前記補正値に基づいて、補正後の高輝度部分の出力値が補正前の出力値と同値となるように輝度信号Yおよび色差信号CのガンマKnee係数の傾きを低減させ、さらに当該ガンマKnee係数の傾きに対応するガンマ係数を算出して、前記ガンマ係数および前記ガンマKnee係数に係る前記補正値としてそれぞれ設定することを特徴とする逆光補正制御方法。 - 請求項11に記載の逆光補正制御方法において、
前記補正値設定ステップでは、前記ゲイン係数を変数とする所定の一次関数に基づいて、前記ゲイン係数に係る前記補正値に対応するYセットアップ値を算出して、前記Yセットアップ値に係る前記補正値として設定することを特徴とする逆光補正制御方法。 - 入射した光を光電変換する撮像素子から出力された撮像画像のアナログ信号をデジタル信号に変換するアナログフロントエンドと、
前記アナログフロントエンドから出力された前記デジタル信号に対して輝度や色の処理を行い、さらに、前記撮像画像のデータについて複数のブロックに分割して輝度が測光された分割測光データを出力するカメラDSPと、
前記アナログフロントエンドや前記カメラDSPの制御を行うCPUを有する半導体集積回路であって、
前記CPUは、前記カメラDSPから出力された前記各分割測光データについて、前記分割測光データの前記ブロック間での差分値を所定の差分基準値と比較することによって、前記撮像画像におけるエッジの部分を有する前記ブロックを検出するエッジ検出処理と、
前記エッジ検出処理において検出された前記エッジの部分を有する前記ブロックの数を、所定のモニタリング期間に得られた各撮像画像のデータについて取得して、その平均値を算出するモニタリング処理と、
前記モニタリング処理において算出された前記エッジの部分を有する前記ブロックの数の平均値を所定の閾値と比較することによって、前記撮像画像が逆光状態であるか否かを判定する判定処理と、
前記判定処理において前記撮像画像が逆光状態であると判定された場合に、逆光状態を露光制御により補正するための補正値を算出して、前記カメラDSPのレジスタに設定する補正値設定処理とを実行することを特徴とする半導体集積回路。 - 請求項14に記載の半導体集積回路において、
前記エッジ検出処理では、前記分割測光データの前記ブロック間での差分値を求める際に、対象となる基準ブロックと、前記基準ブロックと隣接する第1の隣接ブロックとの間の第1の差分値と、前記基準ブロックに対して前記第1の隣接ブロックが接する方向と同じ方向で前記第1の隣接ブロックと隣接する第2の隣接ブロックとの間の第2の差分値とを求め、前記第1の差分値と前記第2の差分値の少なくとも一方が前記差分基準値以上である場合に、前記第1の隣接ブロックに前記エッジを有すると判断することを特徴とする半導体集積回路。 - 請求項14または15に記載の半導体集積回路において、
前記CPUは、前記カメラDSPから出力された前記各分割測光データに対して、前記ブロック毎に予め設定した重み付け値をそれぞれ乗算して重み付けを行うことが可能であることを特徴とする半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009148227A JP2011009810A (ja) | 2009-06-23 | 2009-06-23 | 逆光補正制御方法および半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009148227A JP2011009810A (ja) | 2009-06-23 | 2009-06-23 | 逆光補正制御方法および半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011009810A true JP2011009810A (ja) | 2011-01-13 |
Family
ID=43566002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009148227A Pending JP2011009810A (ja) | 2009-06-23 | 2009-06-23 | 逆光補正制御方法および半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011009810A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013198013A (ja) * | 2012-03-21 | 2013-09-30 | Casio Comput Co Ltd | 撮像装置、撮像制御方法及びプログラム |
-
2009
- 2009-06-23 JP JP2009148227A patent/JP2011009810A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013198013A (ja) * | 2012-03-21 | 2013-09-30 | Casio Comput Co Ltd | 撮像装置、撮像制御方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8780262B2 (en) | Image pickup apparatus that performs exposure control, method of controlling the image pickup apparatus, and storage medium | |
JP4622629B2 (ja) | 撮像装置 | |
KR100733096B1 (ko) | 카메라 장치 및 촬영 방법 | |
US20070092244A1 (en) | Camera exposure optimization techniques that take camera and scene motion into account | |
CN101848327B (zh) | 摄像装置及图像处理方法 | |
JP2010157925A (ja) | 撮像装置及びその制御方法及びプログラム | |
US7375758B2 (en) | Electronic camera | |
US8989510B2 (en) | Contrast enhancement using gradation conversion processing | |
KR101795604B1 (ko) | 자동 초점 조절 장치 및 그 제어방법 | |
US20110043674A1 (en) | Photographing apparatus and method | |
US20180167594A1 (en) | Image pickup apparatus and method of controlling an image pickup apparatus | |
GB2499668A (en) | Exposure Controller | |
JPH09266549A (ja) | 逆光検出方法、逆光検出装置及び撮像カメラ | |
US10972676B2 (en) | Image processing method and electronic device capable of optimizing hdr image by using depth information | |
JP4841582B2 (ja) | 画像補正プログラムおよび画像補正装置 | |
JP3884952B2 (ja) | 撮像装置 | |
JP2011009810A (ja) | 逆光補正制御方法および半導体集積回路 | |
JP4260003B2 (ja) | 電子カメラ | |
JP2009100275A (ja) | カメラ | |
US10594912B2 (en) | Flash band determination device for detecting flash band, method of controlling the same, storage medium, and image pickup apparatus | |
JP6118133B2 (ja) | 信号処理装置及び撮像装置 | |
JP5473582B2 (ja) | 画像処理装置、方法及びプログラム | |
JP5978829B2 (ja) | 撮像素子の露光制御装置及び方法、並びに画像撮像装置 | |
JP4893642B2 (ja) | 自動露出制御装置 | |
KR20110067700A (ko) | 이미지 획득 방법 및 디지털 카메라 시스템 |