以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
本発明は、例えば図1に示すような構成の撮像装置100に適用される。
この撮像装置100は、赤色画像撮像用の撮像素子10R、緑色画像撮像用の撮像素子10G、青色画像撮像用の撮像素子10B、各撮像素子10R,10G,10Bから出力されるアナログの撮像信号をデジタル化するA/D変換器20R,20G,20B、各A/D変換器20R,20G,20Bによりデジタル化された撮像信号DV_R,DV_G,DV_Bが供給されるフリッカ補正回路30R,30G,30B、補正位相誤差検出器40R,40G,40B及び補正振幅誤差検出器50R,50G,50Bにより検出された補正振幅誤差信号CV_R,CV_G,CV_Bが供給されるカメラ用信号処理回路70などからなる。
各補正位相誤差検出器40R,40G,40Bは、各フリッカ補正回路30R,30G,30Bによりフリッカ補正された撮像信号CV_R,CV_G,CV_B及びフリッカ振幅調整器60R,60G,60Bにより調整されたフリッカ振幅信号A_R,A_G,A_Bが供給されており、上記デジタル化された撮像信号DV_R,DV_G,DV_Bとフリッカ補正された撮像信号CV_R,CV_G,CV_B、フリッカ振幅信号A_R,A_G,A_Bから各撮像信号CV_R,CV_G,CV_Bの補正位相誤差を検出して補正位相誤差信号E_R,E_G,E_Bを生成し、生成した補正位相誤差信号E_R,E_G,E_Bを各フリッカ補正回路30R,30G,30B及び各補正振幅誤差検出器50R,50G,50Bに供給する。
また、各補正振幅誤差検出器50R,50G,50Bは、各フリッカ補正回路30R,30G,30Bによりフリッカ補正された撮像信号CV_R,CV_G,CV_B及びフリッカ振幅調整器60R,60G,60Bにより調整されたフリッカ振幅信号A_R,A_G,A_Bが供給されており、上記デジタル化された撮像信号DV_R,DV_G,DV_Bとフリッカ補正された撮像信号CV_R,CV_G,CV_B、フリッカ振幅信号A_R,A_G,A_B、補正位相誤差信号E_R,E_G,E_Bから各撮像信号CV_R,CV_G,CV_Bの補正振幅誤差を検出して補正振幅誤差信号C_R,C_G,C_Bを生成し、生成した補正振幅誤差信号C_R,C_G,C_Bをフリッカ振幅調整器60R,60G,60Bに供給する。
フリッカ振幅調整器60R,60G,60Bは、補正振幅誤差信号C_R,C_G,C_Bからフリッカ振幅信号A_R,A_G,A_Bを生成し、生成したフリッカ振幅信号A_R,A_G,A_Bをフリッカ補正回路30R,30G,30B、補正位相誤差検出器40R,40G,40B及び補正振幅誤差検出器50R,50G,50Bに供給する。
この撮像装置100において、各フリッカ補正回路30R,30G,30Bには、図2に示すような構成のフリッカ補正回路30*が用いられている。以下、*はR,G,Bを代表して表記したものである。
フリッカ補正回路30*は、補正位相誤差検出器40*から補正位相誤差信号E_*が供給されるアドレス算出器31*、このアドレス算出器31*により算出されたアドレスADが供給される補正値算出器32*、この補正値算出器32*により算出されたフリッカ補正データFDと上記フリッカ振幅調整器60*により生成されたフリッカ振幅信号A_*が供給される乗算器33*、この乗算器33*によりフリッカ振幅信号A_*が乗算されたフリッカ補正データFDAが供給されるレベル調整器34*、上記A/D変換器20*によりデジタル化された撮像信号DV_*が供給されるローパスフィルタ(LPF)35*及び演算器36*を備え、上記A/D変換器20*によりデジタル化された撮像信号DV_*が上記ローパスフィルタ(LPF)35*を介して上記レベル調整器34*に供給され、このレベル調整器34*により生成されるフリッカ補正値CFDが上記演算器36*に供給されるようになっている。そして、演算器36*は、映像信号DV_*及びフリッカ補正値CFDに応じて、フリッカ補正された映像信号CV_*を出力する。
このような構成のフリッカ補正回路30*において、アドレス算出部31*では、補正誤差検出器40*から供給される補正誤差信号E_*をもとに、補正値算出器32*に備えられたROMのアドレスADを計算する。
このアドレス算出器31*では、注目するフレームの先頭ラインのアドレスを電源周波数とフレームレートから計算し、そのアドレスに1ライン進む毎のアドレス増加量を加算することで現在のラインでのアドレスを算出する。具体的には電源周波数が50Hz、フレームレートが30Hz、撮像素子10*の垂直方向のクロック数が1125clkである場合(以後、具体例では電源周波数、フレームレート、撮像素子10*のクロック数は同じ)に、フリッカの1回の明暗の周期Tは、337.5ライン(T=30[Hz]×1125[cLk]/(50[Hz]×2)=337.5[cLk])となる。また、システム内部のROMには1周期を512分割したフリッカデータが保持されており、1ライン進む毎にROMのアドレスは、約1.51703(512/337.5≒1.51703)だけ増えることになる。つまり、先頭ラインでの補正はアドレスが0のとき、100ライン進むとそのラインでのアドレスは、152(0+1.51703×100≒152)となる。
補正値算出器32*は、図3に示すように、アドレス算出部31*により算出されたアドレスADをもとにフリッカ成分を正弦波近似した補正波形データを記憶している補正波形データ記憶部321*と、補正波形データ記憶部321*から読み出された補正波形データから特定期間分を積分する積分器322*とを備え、上記積分器322*によって積分された補正波形データをフリッカ補正データFDとして出力する。
ここで、補正値算出器32*の補正波形データ記憶部321*で記憶されている補正波形データは、周期性を利用するため波形の一部を積分器322*へ供給することとなっている。また、このフリッカ補正データFDは、ライン単位で決まる値で、1ラインにつき1回更新される。
補正値算出器32*では、図4に示す光源の電源周波数L[Hz]と各撮像素子10*の電荷蓄積時間であるシャッタスピードS[s]と電荷蓄積タイミングとの関係をモデル化し、正弦波近似された補正波形データに加えて、このモデルを用いて、従来に対してより精度の高いフリッカ補正を可能とするフリッカ補正データFDを算出するものとする。
図4は、光源の電源周波数L[Hz]と各撮像素子10*の電荷蓄積時間であるシャッタスピードS[s]と電荷蓄積タイミングとの関係をモデル化したものである。具体的に、補正波形データの積分区間は、電荷蓄積時間、すなわちシャッタスピードS[s]である。また、補正波形データを積分するタイミング、すなわち電荷を蓄積するタイミングのずれは、フレームレートの逆数1/F[s]を映像信号の垂直方向のライン数Vで割った値1/(F×V)となる。
ここで、光源の電源周期1/L[s]分の補正波形データのアドレス数をWとすると、積分区間毎に対応する補正波形データのアドレス数が2×L×S×Wとなり、補正波形データの積分タイミングが2×L×W/(F×V)となる。
そして、補正値検出部32*では、積分区間毎に対応する補正波形データのアドレス数(2×L×S×W)、及び、その積分タイミング(2×L×W/(F×V))に基づいて積分器322*がフリッカ補正データFDを算出する。
このように、補正値算出部32*では、正弦波近似された補正波形データに加えて、上述したモデルに基づいて適切なフリッカ補正データFDを算出するので、より高精度のフリッカ補正を可能とする。よって、補正値検出部32*は、任意のフレームレート及びシャッタスピードに応じて適切なフリッカ補正データFDを算出することができる。特に、高速なフレームレート及び高速なシャッタスピードで撮像する条件下において、従来では、正弦波による近似精度が低下してしまうため、高精度のフリッカ補正データFDを算出できなかったが、本実施例に係る補正値算出部32*では、このような条件下でも精度良くフリッカ補正を行うことができる。
ここで、フレームレート、シャッタスピード、及び、電源周波数は、いずれも撮像装置100が備える図示しない記憶部に保持されている。この記憶部への入力は、撮像装置100に備えられているスイッチ等を用いた手動による設定、及び、外部装置からの伝送による設定などで行われる。フレームレート、シャッタスピード、及び、電源周波数は、この記憶部から撮像装置100全体の動作を制御する図示しない制御部により読み取られ、補正値算出部32*に与えられる。
また、フリッカのレベルは各画素値の輝度値に応じて変化するので入力される撮像信号DV_*を用いて画素毎にレベル調整を行うが、撮像信号DV_*にはノイズ成分も含まれており、このレベル調整にノイズの影響が出てしまう。
そこで、この撮像装置100におけるフリッカ補正回路30*では、ローパスフィルタ(LPF)35*を通すことで撮像信号DV_*からノイズを除去し、ノイズを除去した撮像信号DV_*’とフリッカ振幅信号A_*が乗算されたフリッカ補正データFDAから、ノイズの影響を受けていない各画素の補正値CFDを算出する。
なお、この実施の形態では画素値に応じて補正値も短調増加するものとなっている。これは、画素値に応じてフリッカのレベルも線形に増加する傾向が観測されたためである。また、画素値が非常に小さい場合と非常に大きい場合ではフリッカが測定されないので、その特徴も備えた計算を実行しているが、この特性に限定するものではない。
そして、このフリッカ補正回路30*では、演算器35*において撮像信号DV_*に各画素の補正値CFDを加算することでフリッカ成分が補正された撮像信号CV_*を得る。
次に、この撮像装置100における補正誤差の検出アルゴリズムについて、図5を参照して説明する。具体的には、まず、図5Aを参照して位相の補正誤差の検出アルゴリズムを説明することにする。
まず、あるフレーム画像(ここではnフレーム目の画像)のフリッカが正しいレベルで補正できたとする。「nフレーム目の補正画像」を出力した後、その「nフレーム目の補正画像」に対してn+1フレーム目の画像のフリッカの状態を予測してフリッカ成分を付加する。このようにしてできたフリッカ画像を画像Aとする。同時に、n+1フレーム目のフリッカ状態を予測し、さらにアドレスをずらしたフリッカ成分を付加する。このようにしてできたフリッカ画像を画像Bとする。
ここで、これら2つの画像に対して、フリッカ成分を含んだ補正前の「n+1フレーム目の画像」との差分をそれぞれ取ると、画像Aに対する差分値は被写体の動き成分のみが差分画像として出力されるが、画像Bに対する差分値は被写体の動き成分とフリッカ成分の両方が差分画像として出力される。このため、画像Aから求めた差分値が、画像Bから求めた差分値よりも小さくなると考えられる。これに対して、画像Bから求めた差分値が、画像Aから求めた差分値よりも小さくなった場合には、アドレスをずらしたほうが正しくフリッカの位相を予測していると考えられる。つまり、差分値が小さい方が正しくフリッカの位相を予測しているので、差分値が小さくなる方向へアドレスをずらしていくことで最終的に適当な範囲内で位相の補正誤差を収束させることができる。
続いて、図5Bを参照して、振幅の補正誤差の検出アルゴリズムについて説明する。
まず、あるフレーム画像(ここではnフレーム目の画像)のフリッカを正しいレベルで補正する。続いて、次フレーム(ここではn+1目の画像)を予測し、この予測した次フレームのフリッカのレベルをnフレーム目と同じレベルで、補正画像にn+1フレーム目のフリッカを付加する。このようにしてできたフリッカ画像を画像Aとする。同時にレベルをnフレーム目より強くして、補正画像にn+1フレーム目のフリッカを付加する。このようにしてできたフリッカ画像を画像Bとする。
ここで、これら2つの画像に対して、フリッカ成分を含んだ補正前の「n+1フレーム目の画像」との差分をそれぞれ取ると、画像Aに対する差分値は被写体の動き成分のみが出力されるが、画像Bに対する差分値は被写体の動き成分とフリッカ成分の2つの成分が出力される。このため、画像Aから求めた差分値が、画像Bから求めた差分値よりも小さくなると考えられる。これに対して、画像Bから求めた差分値が、画像Aから求めた差分値よりも小さくなった場合には、画像Aより強いレベルを付加したほうが正しくフリッカの振幅を予測していると考えられる。つまり、差分値が小さい方が正しくフリッカの振幅を予測しているので、差分値が小さくなる方向へレベルを付加することで最終的に適当な範囲内で振幅の補正誤差を収束させることができる。
補正位相誤差検出器40R,40G,40B及び補正振幅誤差検出器50R,50G,50Bは、上記アルゴリズムに従って構成されている。
この撮像装置100において、補正位相誤差検出器40R,40G,40Bには、上記アルゴリズムに従って構成された図6に示すような補正位相誤差検出器40*が用いられている。
一方、補正位相誤差検出器40*は、上記フリッカ補正回路30*によりフリッカ補正された撮像信号CV_*及び上記フリッカ振幅調整器60*により生成されたフリッカ振幅信号A_*が供給されるフリッカ付加信号生成部41A*,41B*、各フリッカ信号生成部41A*,41B*により生成されたフリッカ付加信号FDV1,FDV2が供給されるライン積分器42A*,42B*、各ライン積分器42A*,42B*により積分されたラインデータLD11,LD21が供給されるメモリ43A*,43B*、各メモリ43A*,43B*から読み出されたラインデータLD12,LD22が供給される差分検出器44A*,44B*、上記A/D変換器20*によりデジタル化された撮像信号DV_*が供給されるライン積分器45*、各差分検出器44A*,44B*による検出された差分データDD1,DD2が供給される積分器46A*,46B*、各積分器46A*,46B*により得られた積分データID1,ID2が供給される比較器47*などを備え、ライン積分器45*により得られるラインデータLD3が各差分検出器44A*,44B*に供給され、比較器47*による比較出力として得られる補正位相誤差信号E_*が各フリッカ付加信号生成部41A*,41B*に供給されるようになっている。
各フリッカ付加信号生成部41A*,41B*は、比較器47*による比較出力として得られる補正位相誤差信号E_*が供給されるアドレス算出部411A*,411B*、各アドレス算出部411A*,411B*により算出されたアドレスAD11,AD21が供給されるアドレス変換器412A*,412B*、各アドレス変換器412A*,412B*により算出されたアドレスAD12,AD22が供給される補正値算出器413A*,413B*、上記フリッカ振幅調整器60*により生成されたフリッカ振幅信号A_*が供給される乗算器414A*,414B*、この乗算器414A*,414B*によりフリッカ振幅信号A_*が乗算されたフリッカデータFDA1,FDA2が供給されるレベル調整器415A*,415B*、上記A/D変換器20*によりデジタル化された撮像信号DV_*が上記ローパスフィルタ(LPF)416A*,416B*を介して上記レベル調整器415A*,415B*に供給され、このレベル調整器415A*,415B*により生成される補正値CFD1,CFD2が上記演算器417A*,417B*に供給されるようになっている。
このような構成の補正位相誤差検出器40*では、補正誤差信号E_*をもとにアドレス算出部411A*,411B*で補正位相誤差検出器40*内部に備えられたROMのアドレスAD11,AD21を計算する。ここで、計算するアドレスは次フレームのフリッカの先頭のアドレスをプラス方向とマイナス方向とへずらしたアドレスである。これらのアドレスは、フリッカ補正器30*でのアドレス算出器31*と同様の計算によって算出する。また、補正誤差検出器40*に備えられるROMは、フリッカ補正回路30*に備えられたROMと同じものである。
アドレス変換器412A*,412B*では、アドレス算出器411A*,411B*で算出されたアドレスAD11,AD21から次フレームのフリッカを再現できるアドレスAD12,AD22へ変換する。つまり、位相が逆転するアドレスへと変換する。このアドレス変換器412A*,412B*で変換されるアドレスAD12,AD22は、次フレームのフリッカを予測したものでフリッカを補正するためのものではない。
補正値算出器413A*,413B*では、アドレス変換器412A*,412B*により変換されたアドレスAD12,AD22をもとにフリッカ補正データFD1,FD2を算出する。このフリッカデータFD1,FD2もフリッカ補正回路30*と同様にライン単位で決まる値である。この補正値算出器413A*,413B*もフリッカ補正回路30*に備えられ補正値算出器32*と同様の構成のものが用いられる。
補正位相誤差検出器40*は、フリッカ付加信号生成部41A*,41B*において、ローパスフィルタ(LPF)416A*,416B*を通すことでフリッカ補正された撮像信号CV_*からノイズを除去し、ノイズを除去した撮像信号CV_*をレベル調整器415A*,415B*に供給する。レベル調整器415A*,415B*では、ノイズのない撮像信号CV_*と乗算器414A*,414B*で算出したフリッカデータFDA1,FDA2から、ノイズの影響を受けていない各画素の補正値CFD1,CFD2を算出する。
このレベル調整器415A*,415B*もフリッカ補正回路30*に備えられたレベル調整器34*と同様の構成のものが用いられる。
演算器417A*,417B*では、フリッカ補正された撮像信号CV_*に各画素の補正値CFD1,CFD2を加算して、次フレームのフリッカ付加信号FDV1,FDV2を生成する。この演算器417A*,417B*もフリッカ補正回路30*に備えられた演算器36*と同様の構成のものが用いられる。
そして、ライン積分器42A*,42B*では、次フレームのフリッカ付加信号FDV1,FDV2のある領域をそれぞれ積分しラインデータLD11,LD21を算出する。ここでの領域とは水平方向に取得される画像の範囲であれば任意の値を取ることが可能であり、広くとることで補正誤差の検出の精度を上げることができる。垂直方向には1画面内に入るフリッカの明暗の周期の整数倍とすればよい。具体的には水平方向に1000画素分、垂直方向に675画素分(337.5×2.0)などとすることができる。ここで、337.5ラインとは、電源周波数が50[Hz]、フレームレートが30[Hz]、センサの垂直方向のライン数が1125[ライン]の場合のフリッカの1回の明暗の周期(30[Hz]×1125[ライン]/(50[Hz]×2)=337.5[ライン])である。
ライン積分器42A*,42B*により算出されたラインデータLD12,LD21を、次フレームの撮像信号DV_*が入力されるまでメモリ43A*,43B*に蓄えておき、次フレームの撮像信号DV_*が入力されたら、フリッカ付加信号FDV1,FDV2を積分した領域と同じ領域をライン積分器45*でライン積分してラインデータLD3を算出する。
メモリ43A*,43B*に蓄えてあるラインデータLD12,LD22とそのラインに対応する次フレームの撮像信号DV_*のラインデータLD3をそれぞれ差分検出器44A*,44B*に入力し差分データDD1,DD2を得る。
積分器46A*,46B*では、2つの差分データDD1,DD2をそれぞれ積分することにより積分データID1,ID2を得る。
そして、比較器47*において、これらの積分データID1,ID2の大小を比べることでアドレスをプラスとマイナスのどちらにずらしたほうがより正しいフリッカを予測しているか判断する。例えば、アドレスをプラスにしたほうの積分データID*がアドレスをマイナスした積分データID*より小さいならばアドレスをプラスにするように補正位相誤差信号E_*を出力する。
この補正位相誤差信号E_*を上記フリッカ補正回路30*及び補正振幅誤差検出器50*に入力し、正しい方向へアドレスをずらしていくことで補正誤差を最小にする。
また、この撮像装置100において、補正振幅誤差検出器50R,50G,50Bには、上記アルゴリズムに従って構成された図7に示すような構成の補正振幅誤差検出器60*が用いられている。
補正振幅誤差検出器50*は、上記フリッカ補正回路30*によりフリッカ成分が補正された撮像信号CV_*及び上記フリッカ振幅調整器60*により生成されたフリッカ振幅信号A_*が供給されるフリッカ付加信号生成部51A*,51B*、各フリッカ付加信号生成部51A*,51B*により生成されたフリッカ付加信号FDV31,FDV32が供給されるライン積分器52A*,52B*、各ライン積分器52A*,52B*により積分されたラインデータLD31,LD32が供給されるメモリ53A*,53B*、各メモリ53A*,53B*から読み出されたラインデータLD31,LD32が供給される差分検出器54A*,54B*、上記A/D変換器20*によりデジタル化された撮像信号DV_*が供給されるライン積分器55*、各差分検出器54A*,54B*による検出された差分データDD31,DD32が供給される積分器56A*,56B*により得られた積分データID31,ID32が供給される比較器57*などを備え、ライン積分器55*により得られるラインデータLD3が各差分検出器54A*,54B*に供給されるようになっている。
フリッカ付加信号生成部51A*,51B*は、上記補正位相誤差検出器40*における比較器47*による比較出力として得られる補正位相誤差信号E_*が供給されるアドレス算出器511A*,511B*、各アドレス算出器511A*,511B*により算出されたアドレスAD31が供給されるアドレス変換器512A*,512B*、各アドレス変換器512A*,512B*により算出されたアドレスAD32が供給される補正値算出器513A*,513B*、上記フリッカ振幅調整器60*により生成されたフリッカ振幅信号A_*が供給される振幅増幅器514A*及び振幅減衰器514B*、補正値算出器513A*,513B*により算出されたフリッカデータFD31が供給される乗算器515A*,515B*、この乗算器515A*,515B*によりフリッカ振幅信号A_*が乗算されたフリッカデータFDA31,FDA32が供給されるレベル調節器516A*,516B*、上記A/D変換器20*によりデジタル化された撮像信号DV_*が上記ローパスフィルタ(LPF)517A*,517B*を介して上記レベル調整器516A*,516B*に供給され、このレベル調整器516A*,516B*により生成される補正値CFD31,CFD32が上記演算器518A*,518B*に供給されるようになっている。
このような構成の補正振幅誤差検出器50*では、フリッカ付加信号生成部51A*,51B*において、補正位相誤差信号E_*をもとにアドレス算出器511A*,511B*で補正振幅誤差検出器50*内部に備えられたROMのアドレスAD31を計算する。ここで計算するアドレスは次フレームのフリッカ成分の先頭のアドレスである。このアドレスはフリッカ補正回路30*でのアドレス算出器31*と同様の計算によって算出する。また、この補正振幅誤差検出器50*に備えられるROMは、フリッカ補正回路30*に備えられたROMと同じものである。
アドレス変換器512A*,512B*では、アドレス算出器511A*,511B*で算出されたアドレスAD31から次フレームのフリッカを再現できるアドレスへと変換する。具体的には入力されるアドレスAD31の位相を反転させたアドレスAD32に変換する。このアドレス変換器512A*,512B*で変換されたアドレスAD32は次フレームのフリッカを予測したものでフリッカを補正するためのものではない。
補正値算出器513A*,513B*では、アドレス変換器512A*,512B*により変換されたアドレスAD32をもとにフリッカデータFD31を算出する。このフリッカデータFD31もフリッカ補正回路30*と同様にライン単位で決まる値である。この補正値算出器513A*,513B*もフリッカ補正回路30*に備えられた補正値算出器32*と同様の構成のものが用いられる。
次に振幅増幅器514A*によってフリッカ振幅信号A_*を増幅させた振幅信号AM31を算出し、同時に、振幅減衰器514B*によって入力されるフリッカ振幅信号A_*を減衰させた減衰信号AM32を算出し、算出した振幅信号AM31,減衰信号AM32のそれぞれとフリッカデータFD31を乗算器515A*,515B*で乗算することでフリッカ成分を増幅させたフリッカ補正データFDA31及び減衰させたフリッカ補正データFDA32を得る。
補正振幅誤差検出器50*は、フリッカ付加信号生成部51A*,51B*において、ローパスフィルタ(LPF)517A*,517B*を通すことで撮像信号CV_*からノイズを除去し、ノイズを除去した撮像信号CV_*をレベル調整器516A*,516B*に供給する。レベル調整器516A*,516B*では、ノイズが除去された撮像信号CV_*と乗算器515A*,515B*で算出したフリッカデータFDA31,FDA32から、ノイズの影響を受けていない各画素の補正値CFD31,CFD32を算出する。
このレベル調整器516A*,516B*もフリッカ補正回路30*に備えられたレベル調整器34*と同様の構成のものが用いられる。
演算器518A*,518B*では、フリッカ補正された撮像信号CV_*に各画素の補正値CFD31,CFD32を加算して、次フレームのフリッカ付加信号FDV31,FDV32を生成する。この演算器518A*,518B*はフリッカ補正回路30*に備えられた演算器36*と同様の構成のものが用いられる。
そして、補正振幅誤差検出器50*では、上記演算器518A*,518*により得られた次フレームのフリッカ付加信号FDV31、FDV32に対して、上記補正位相誤差検出器40*と同様の処理を行う。すなわち、ライン積分器52A*,52B*では、次フレームのフリッカ付加信号FDV31,FDV32のある領域をそれぞれ積分しラインデータLD31,LD32を算出する。
ライン積分器52A*,52B*により算出されたラインデータLD31,LD32を、次フレームの撮像信号DV_*が入力されるまでメモリ53A*,53B*に蓄えておき、次フレームの撮像信号DV_*が入力されたら、フリッカ付加信号FDV31,FDV32を積分した領域と同じ領域をライン積分器55*でライン積分しラインデータLD3を算出する。
メモリ53A*,53B*に蓄えられてあるラインデータLD31,LD32とそのラインに対応する次フレームの撮像信号DV_*のラインデータLD3をそれぞれ差分検出器54A*,54B*に入力し差分データDD31,DD32を得る。
積分器56A*,56B*では、2つの差分データDD31,DD32をそれぞれ積分することにより積分データID31,ID32を得る。
そして、比較器57*において、これらの積分データID31,ID32の大小を比較することで次フレームでのフリッカの振幅を増幅させるべきか、減衰させるべきかを示す補正振幅信号C_*を出力する。
この補正振幅誤差検出器50*により得られた補正振幅誤差信号C_*が供給されるフリッカ振幅調整器60*は、図8に示すように、比較器61*と振幅増幅器62*とから構成され、補正振幅誤差信号C_*により常に振幅を変動させている。このフリッカ振幅調整器60*は、補正振幅誤差検出器50*により得られた補正振幅誤差信号C_*が小さくなる向きにフリッカの振幅を変化させる機能を持つ。補正振幅誤差信号C_*が小さくなることによって、予測して作られたフリッカ画像が撮像素子10*より得られる実際の画像に近づいていることが分かるからである。すなわち、比較器51*によりフレーム間の補正振幅誤差信号C_*の大小関係を調べることでフリッカのレベル予測が正しく行われているかを判定できる。そして、例えば、フリッカの振幅を増やしたときに、補正振幅誤差信号C_*が前フレームの補正振幅誤差信号C_*と比べて大きくなっている場合は、そのときのフリッカの振幅の予測が間違っていると判定できるので振幅増幅器52A*,振幅減衰期52B*によりフリッカの振幅を減らし、逆に補正振幅誤差信号C_*が前フレームでの補正振幅誤差信号C_*と比べて小さくなっている場合は、そのときのフリッカの振幅の予測があっていると判定できるので振幅増幅器52*によりフリッカの振幅を増加させる。以上の処理によってフリッカ振幅信号A_*を出力する。
また、この撮像装置100におけるフリッカ補正は、図9、図10、及び図11に示すフローチャートに示す一連の手順に従って行われる。
まず、フリッカ補正回路30*では、アドレス算出器31*が補正位相誤差検出器40*から入力される補正位相誤差信号E_*をもとにアドレスADを計算し(ステップS1A)、補正値算出器32*がアドレス算出器31*で計算されたアドレスADをもとにフリッカ補正データFDを算出する(ステップS2)。
一方、フリッカ振幅調整器60*では、ステップS1Bにおいて、補正振幅誤差検出器50*により得られた補正振幅誤差信号C_*をもとにフリッカのレベル予測が正しく行われているかを判定し、この判定結果に応じてフリッカ振幅信号A_*を出力する。
ステップS2A及びステップS1Bに処理が完了すると、フリッカ補正回路30*では、レベル調整器34*がノイズを除去された撮像信号DV_*’及びフリッカ補正データFDAから各画素の補正値CFDを算出し(ステップS3)、演算器36*がノイズ除去されていない撮像信号DV_*に各画素の補正値CFDを減算してフリッカ成分を補正した撮像信号CV_*を得る(ステップS4)。
ここで、フリッカ補正回路30*によって得られたフリッカ成分が補正された撮像信号CV_*は、補正位相誤差検出器40*及び補正振幅誤差検出器50*に供給される。以下では、まず補正位相誤差検出器40による補正位相誤差信号E_*の算出処理を示し、続いて補正振幅誤差検出部50*による補正振幅誤差信号C_*の算出処理工程を示す。なお、補正位相誤差検出器40*及び補正振幅誤差検出器50*のそれぞれの処理は、どちらか一方を先に行わなければならないものではなく、互いに並列して行うようにしても良い。
補正位相誤差検出部40*では、アドレス算出部411A*,411B*が次フレームのフリッカの先頭アドレスを計算するとともに(ステップS10)、アドレス算出部411A*,411B*がこの先頭アドレスをそれぞれプラス方向及びマイナス方向へずらしたアドレスAD12,AD22を算出する(ステップS11A,S11B)。続いて、補正位相誤差検出部40*では、アドレス変換器412A*,412B*により変換されたアドレスAD12,AD22をもとにフリッカ補正データFD1,FD2をそれぞれ算出し(ステップS12A、S12B)、レベル調整器415A*,415B*が補正済みの撮像信号CV_*とフリッカ補正データFDA1,FDA2から、各画素の補正値CFD1,CFD2を算出し(ステップS13A,S13B)、演算器417A*,417B*がノイズ除去されていない補正済みの撮像信号CV_*に各画素の補正値CFD1,CFD2を加算して次フレームのフリッカ付加信号FDV1,FDV2を生成する(ステップS14A,S14B)。
続いて、補正位相誤差検出器40*では、ライン積分器42A*,42B*が次フレームのフリッカ付加信号FDV1,FDV2のある領域をそれぞれ積分してラインデータLD11,LD21を算出し、メモリ43A*,43B*がこのラインデータLD11,LD21を次フレームの撮像信号DV_*が入力されるまで蓄える(ステップS15A,S15B)。続いて、補正位相誤差検出器40*では、差分検出器44A*,44B*がメモリ43A*,43B*に蓄えられてあるラインデータLD12,LD22及びそのラインに対応する次フレームの撮像信号DV_*のラインデータLD3をもとにして差分データDD1,DD2を生成して(ステップS16A,16B)、積分器46A*,46B*が差分データDD1,DD2を積分して積分データID1,ID2を生成する(ステップS17A,17B)。
そして、補正値位相誤差検出器40*では、比較器47*がこれらの積分データID1,ID2の大小を比較して(ステップS18)、アドレスをプラスにしたほうが正しいフリッカを予測しているかどうかを判断し(ステップS19)、正しいフリッカを予測していると判断するとアドレスをプラス方向に、又は、正しいフリッカを予測していないと判断するとアドレスをマイナス方向に、それぞれずらすように補正位相誤差信号E_*を出力する(ステップS20A,20B)。その後、本処理はステップS1Aに戻る。
次に、補正振幅誤差検出部50*による補正振幅誤差信号C_*の算出処理工程を示す。
補正振幅誤差検出部50*では、アドレス算出部511A*,511B*が次フレームのフリッカの先頭アドレスを計算する(ステップS30)。
補正振幅誤差検出器50*では、振幅増幅器514A*がフリッカ振幅信号A_*を増幅させた振幅信号AM31を算出し(ステップS31A)、同時に、振幅減衰器514B*がフリッカ振幅信号A_*を減衰させて振幅信号AM32を算出して(ステップS31B)、その後それぞれステップS33A、S33Bへ進む。また、補正振幅誤差検出部50*では、補正値算出器513A*,513B*がアドレス変換器512A*,512B*により変換されたアドレスAD32をもとにフリッカデータFD31を算出する(ステップS32)。
続いて、補正振幅誤差検出器50*では、レベル調整器516A*,516B*がフリッカ補正された映像信号CV_*とフリッカ補正データFDA1,FDA2から各画素の補正値CFD31,CFD32を算出し(ステップS33A,S33B)、演算器518A*,518B*がノイズ除去されていない映像信号CV_*に各画素の補正値CFD31,CFD32を加算して次フレームのフリッカ付加信号FDV31,FDV32を生成する(ステップS34A,S34B)。
補正振幅誤差検出器50*では、ライン積分器52A*,52B*が次フレームのフリッカ付加信号FDV31,FDV32のある領域をそれぞれ積分してラインデータLD31,LD32を算出し、メモリ53A*,53B*がこのラインデータLD31,LD32を次フレームの撮像信号DV_*が入力されるまで蓄える(ステップS35A,S35B)。続いて、補正振幅誤差検出器50*では、差分検出器54A*,54B*がメモリ53A*,53B*に蓄えられてあるラインデータLD31,LD32及びそのラインに対応する次フレームの撮像信号DV_*のラインデータLD3をもとにして差分データDD31,DD32を生成して(ステップS36A,S36B)、積分器46A*,46B*が差分データDD31,DD32を積分して積分データID31,ID32を生成する(ステップS37A,S37B)。
そして、補正値振幅誤差検出器50*では、比較器57*がこれらの積分データID31,ID32の大小を比較して(ステップS38)、フリッカの振幅を増幅したほうが正しいフリッカを予測しているかどうかを判断し(ステップS39)、正しいフリッカを予測していると判断するとフリッカの振幅を増幅させる、又は、正しいフリッカを予測していないと判断するとフリッカの振幅を減衰させるべきかを示す補正振幅誤差信号C_*を出力する(ステップS40A,S40B)。その後、処理工程は、ステップS1Bに戻る。
そして、この撮像装置100では、図9〜図11に示すフローチャートに従ってフレーム毎にフリッカ補正を行うことにより、図12のタイムチャートに示すように、nフレーム目のフリッカ補正の情報がn+1フレーム目の画像と比較され、n+2フレーム目のフリッカ補正に反映され、以下同様にしてn+3フレーム目以降のフリッカ補正が行われる。
このように、この撮像装置100は、各フレーム期間毎にフリッカ補正信号CFDがフリッカ成分についての補正誤差を低減させるので、撮像信号DV_*が異なるフレーム期間からなる複数の撮像信号である場合、又は、撮像信号DV_*に含まれるフリッカ成分が撮像信号DV_*に含まれるフリッカ成分に周期性がない場合も、フリッカ成分が効果的に低減された撮像信号CV_*を得ることができる。
なお、本発明は、上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
10R,10G,10B 撮像素子、20R,20G,20B,20* A/D変換器、30R,30G,30B,30* フリッカ補正回路、31* アドレス算出器、32* 補正値算出器、33* 乗算器、34* レベル調整器、35* ローパスフィルタ(LPF)、36* 演算器、40R,40G,40B,40* 補正位相誤差検出器、41A*,41B* フリッカ付加信号生成部、 42A*,42B*,45* ライン積分器、43A*,43B* メモリ、44A*,44B* 差分検出器、46A*,46B* 積分器、47* 比較器、50R,50G,50B,50* 補正振幅誤差検出器、60R,60G,60B,60* フリッカ振幅調整器、61* 比較器、62* 振幅増減器、70 カメラ用信号処理回路、100 撮像装置