以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
第1の実施形態における撮像装置は、動画像撮影時に、任意のフレームにおいて目標フレームレートと現状の(現在の)フレームレートの乖離を比較し、比較結果に応じて、その後のフレームにてフレームレートの調整を実施するよう制御するデジタルカメラである。そのデジタルカメラには、動画像撮影が可能であるが、静止画撮影を主とするデジタルスチルカメラを含む。以下では、フレームレートの調整を実施するか否かの判定を3フレーム毎に行う場合を一例として説明する。
図1は、第1の実施形態における撮像装置の構成例を示す図である。図1には、撮像装置の構成のうち、ラインフリッカ(面内フリッカ)の補正を実施するための要部を示している。
図1において、同期信号生成部101は、撮像データを取り込むための同期信号を生成する。同期信号生成部101は、例えばタイミング生成部(TG:Timing Generator)102に対して撮像系へのタイミング発行を行うための基準タイミングを与える。同期信号生成部101は、例えばフレームのタイミング(垂直同期信号(VD)や水平同期信号(HD))を管理する。タイミング生成部102は、同期信号生成部101から垂直同期信号や水平同期信号を受け取り、撮像部103、CDS/AGC回路部104、及びA/D変換部105等に対して撮像データ取得のためのタイミング(駆動パルス等)を与える。タイミング生成部102は、例えば、撮像部103におけるリセット動作・蓄積動作・転送動作・読み出し動作を制御せしめるタイミングパルス等を撮像部103に出力する。
撮像部103は、被写体像等に係る光学情報を光電変換して電気信号として取り出すための画素が二次元状(例えばマトリクス状)に配列されている。CDS/AGC回路部104は、相関二重サンプリング回路や自動利得制御回路等を含み、撮像部103より得られた電気信号のS/Nを改善するための処理等を行う。A/D変換部105は、アナログ電気信号をデジタル信号に変換する。すなわち、A/D変換部105は、撮像部103で得られ、CDS/AGC回路部104を介して入力された電気信号にアナログ−デジタル変換処理(A/D変換処理)を施してデジタルの撮像データに変換し出力する。A/D変換部105から出力された撮像データは、センサやアンプ等のアナログ回路部の特性を除去するための補正処理、及び偽色抑圧や解像度改善のための画像処理を施し、必要に応じて画像情報圧縮処理を施して、画像データファイルとして記録される。ラインフリッカ(面内フリッカ)を除去するためのフリッカ補正は、センサやアンプ等のアナログ回路部の特性を除去した後に行えば良い。なお、図1においては、センサやアンプ等のアナログ回路部の特性を除去するための補正処理に係る構成については省略している。
フリッカ成分は、画像信号に対する変調成分である。フリッカ補正は、加算器(減算器)115、乗算器116、及び加算器117による演算処理によって実行される。A/D変換部105の出力からオフセット値が加算器(減算器)115によって減算され、加算器(減算器)115の出力とフリッカ補正用の補正ゲイン値とが乗算器116によって乗算される。乗算器116の出力に対して適宜セットアップ値が加算器117によって加算される。このようにして撮影で得られた撮像データに対するフリッカ補正(振幅補正)を行うには、フリッカ成分の検出を行う手段と、検出したフリッカ成分からフリッカ補正用(振幅補正用)の補正ゲイン値を算出する手段が必要である。
積分処理部106は、A/D変換部105の出力である撮影データの信号レベルを積分する。ラインフリッカ(面内フリッカ)は、前述のように画像の垂直方向に明暗の縞のように現れる現象である。したがって、積分処理部106は、撮影データの信号レベルを水平方向(ライン毎)に積分した値を求めれば良い。しかしながら、光源や被写体の状態によっては画像における中央部及び端部(右端部・左端部)でのフリッカの影響を考慮しないと過補正や誤補正となり画像を劣化させることもあるので、水平方向について幾つか領域に分割して積分を実施するようにしても良い。
サンプル点抽出部107は、サンプル点における積分処理部106の出力をサンプリング(抽出)する。ここで、点滅光源に供給する商用電源の周波数が50Hzである場合、フリッカ周波数は100Hzとなる。各ラインをサンプル点とする程の精度は不要であり、またシステムリソースの確保の点からもサンプル点を減らす必要がある。そこで、サンプル点抽出部107を用いて、フリッカ周期(例えば、100Hz)をサンプリング可能なサンプル点(代表点)にして積分処理部106の出力をサンプリングする。一時記憶部(バッファ)108は、サンプル点抽出部107によってサンプリングされたサンプル値を一時記憶する。
検波部109は、点滅光源の発光周期で変調された撮影画像から、発光周期の成分を検波する。検波部109は、例えば商用電源の周波数が50Hzである場合には、100Hzの検波を行う。画像信号のように一定期間でサンプリングされたデータに対しては、離散フーリエ変換を用いた周波数領域への変換が一般的である。サンプリングする母数をN、サンプリングしたデータをx(n)(n=0,1,・・・,N−1)とすると、離散的なフーリエ係数X(k)としての周波数領域成分は(式1)で表される。
時間T[sec]をN点で(等間隔に)サンプリングしたときのサンプリング間隔(周期)をt[sec]とすると、離散フーリエ変換後のフーリエ係数X(k)は(式2)で表される離散的な周波数fkの範囲で求められる。
前記(式2)において、fsは、時間領域におけるサンプリング周波数である。サンプル点抽出部107によるサンプリングは、前記(式2)を満たすことで周波数成分fkを得ることができる。例えば、フリッカ周波数を100Hzとするとfk=100Hzであり、フレームレートの調整の有無によっては変化しない。フレームレートの調整の有無による調整の対象は、時間T[sec]がそれに当たり、結果としてサンプリング周期t[sec]が調整される。しかし、フレームレートの調整を実施するか否かにかかわらず、画素数としては同一になるように、例えば水平走査方向における有効画素以外のクロックカウントで調整され、垂直走査方向の写像であるサンプル点の時間間隔としては調整がなされる。
画像信号から得られたサンプルデータのそれぞれは、実時間信号である。前記(式1)は、(式3)のように実部Re()及び虚部Im()に分離できる。それぞれの成分は、(式4−1)、(式4−2)のように表すことができる。
前記(式4−1)、(式4−2)より、周波数fkにおける振幅スペクトルAkは(式5)のように求めることができ、位相成分Ωkは(式6)のように求めることができる。
一時記憶部(バッファ)110は、検波部109の結果出力を保持する。一時記憶部110が保持する検波部109の結果出力には、前記(式4−1)、(式4−2)、式(5)、(式6)に示されるようなフリッカの成分を含む。
本実施形態において、フレームレートの調整は、複数フレームの平均として目標フレームレートを達成する範疇で実施する。しかも、動画像として違和感なく通常の動画像と同じような動画像を得るために、撮像素子の駆動を大きく変更するものではない。つまり、本実施形態におけるフレームレートの調整の範疇では、その実施の有無による検波部109に得られるフリッカ成分の変動は無視できるものである。ただし、成分の抽出においてはfk=100Hzを正確に検波する必要がある。そのような制御状態を実現するために、例えば後述するセレクタ121及び127を設けて、適宜パラメータも切り替え選択できるようにしている。
本実施形態では、フレーム毎にフリッカの振幅成分の変動が無視できる範囲でフレームレートの調整を実施するようにし、フレームレートの調整を実施するか否かによらずフリッカの振幅成分の変動を無視できるものとする。この条件では、検波対象フレームと補正対象フレームとが(時間的に)異なる場合に、それぞれの位相成分の条件を合わせて(フレーム間の位相量を調整して)逆フーリエ変換を実施することで、補正対象フレームのフリッカ成分を時間軸の成分で取り出せる。
補正ゲイン算出部111a、111bは、フリッカ補正用の補正ゲイン値を算出する。なお、補正ゲイン算出部111a、111bによる補正ゲイン値の算出に係る演算処理は、並行して実行可能になっている。前述のように、検波部109の検波結果に対して位相成分を予測適用(以下、位相調整)して逆フーリエ変換を実施することで、補正対象フレームの時間領域でのフリッカ成分の値が算出できる。フレームレート(蓄積時間)が固定であるとすると、フリッカ成分のフレーム間位相量は、撮影時のフレームレートと点滅光源の発光周期との関係から一意に決まる。そのときの位相量をθkとして、前述した実部及び虚部を用いた逆フーリエ変換の式は、(式7)のようになる。なお、フレームレートが30fpsや60fpsなどで誤差がない場合には、発光周波数が100Hzの点滅光源に対しては3フレーム周期でフレーム間位相は元に戻る。フレームレートに誤差がある場合には、位相量にも誤差の影響が含まれるので、フレーム間位相の遷移をトレースして、その値を例えば位相保持部124のような保持部に保持しておく必要がある。
検波部109で100Hzの検波を行ったとき、フリッカ成分の近似として正弦波のみを取り出すのであれば、補正ゲイン算出部111a、111bは、fk=100Hzとなるkについてのみ前記(式7)を用いた演算を行えば良い。このようにした場合には、演算量やフリッカ成分を保持するバッファ量を削減できる。ここで、逆フーリエ変換では、時間領域のフリッカ成分はゼロ中心として得られる。対象フレーム内に発生するフリッカ成分は被写体の信号強度に比例する(変調された状態である)ので、補正ゲイン算出部111a、111bは、逆フーリエ変換で得られたフリッカ成分値を1中心にして、その逆数を求めフリッカ補正用の補正ゲイン値とする。
一時記憶部(バッファ)112a、112bは、補正ゲイン算出部111a、111bのそれぞれに対して配置され、補正ゲイン算出部111a、111bのそれぞれが算出した補正ゲイン値を保持する。一時記憶部112a、112bの出力(保持された補正ゲイン値)を乗算器116に供給することで、フリッカ補正(振幅補正)が実施される。
本実施形態では、タイマー118、誤差検出部119、及び調整判定部120によって、フレームレートの調整を実施するか否かの判定を3フレームに1回の頻度で行う。タイマー118は、所定のフレーム数毎(ここでは3フレーム毎)の処理期間のマシンサイクルを計数する。マシンサイクルとは、タイマー118に入力されるクロック等の周期性を持つ信号・ステータスの繰り返し周期を指す。本実施形態においては、タイマー118は、垂直同期信号のイベント(パルス状にハイレベル(“H”)になる)間隔を3フレーム分計時し、計時結果を誤差検出部119に対して出力する。誤差検出部119は、タイマー118の計時結果を入力とし、その計時結果と目標数値との差異を求める加算器(減算器)を有する。誤差検出部119は、タイマー118の出力である計時結果と、目標フレームレート(例えば、30fps)に係る設定値との差異を誤差量として求めて出力する。
調整判定部120は、フレームレートの調整を実施する否かの判定を行う。調整判定部120は、誤差検出部119の出力結果を受けて、次のフレームでの撮像データの取り込みにおいて撮像部103の駆動に調整を入れるか、入れないかを判定する。調整判定部120は、誤差許容範囲を示す閾値と計時結果を基に算出された誤差とを比較する比較器を有し、誤差が閾値を超えていた場合には誤差の是正が必要であると判断し、フレームレートの調整を実施すると判定する。フレームレートの調整に係る判定は、次のフレームの取り込みに対して画像(映像)に影響がないようにその結果を反映する。そのため、調整を実施するか否かの判定結果ステータスは、同期信号生成部101及びフリッカ検出系の制御部には直ちに伝達されるが、それらからの制御を受ける各機能部において直ちに反映されるわけではない。各機能部への実際の反映は、それぞれの機能部が有効データを処理していない適当な時期に適宜行われて、各機能部の制御状態が切り替えられる。
セレクタ121及び127は、フレームレートの調整の有無に応じて、サンプル点抽出部107及び検波部109に供給される検出用パラメータを切り替える。離散フーリエ変換を用いて検波を実施するとき、調整によって変更されたフレームレートに対して画像上のサンプリング間隔に係る時間軸/周波数軸上の定義(又は解釈)が変更されると、検波での誤検出につながる。そこで、セレクタ121及び127は、サンプル点の間隔を調整して時間軸/周波数軸上におけるサンプリング間隔が異ならないよう、調整の有無に応じてそれぞれ適当なパラメータをサンプル点抽出部107及び検波部109に対して出力する。遅延部126は、セレクタ切り替え指示を行うためのステータス信号FSTを1フレーム処理分遅延させる。これは、検波処理自体が、対象フレームを積分した後の次のフレーム到達期間に処理するためである。
なお、図1において、T1の表記は、フレームレートの調整を実施しないときの通常フレーム周期T1に関するパラメータであることを示すものとする。また、T2の表記は、フレームレートの調整を実施するときの調整フレーム周期T2に関するパラメータであることを示すものとする。また、図1においては、T1、T2で表記する2つのパラメータのみを示しているが、それぞれに別途複数のパラメータを設定しても良い。それら(周期を推定できる)パラメータとしては、例えばフレーム周期に係る数値(例えば、30.04fps,29.93fps等の具体的な数値)を挙げることができる。その他、前のフレームの有効ラインの終了点から後のフレームの有効ラインの開始点までの期間にフリッカ成分が進捗する位相量の数値を挙げることができる。また、それらを正規化した数値(1周期を2π[rad]として、2πを256等分して8bitで示した数値)等を挙げることができる。
また、供給対象の機能部(例えば、サンプル点抽出部107や検波部109等)に対してそれぞれ適宜扱いやすいパラメータであれば良く、共通の値を供給することには拘らない。また、経路不図示であるが、積分処理部106に必要なパラメータを供給しても良い。この場合の必要なパラメータとは、積分開始・終了位置の調整による変更等が挙げられる。
セレクタ(第1の選択部)122は、補正ゲイン算出部111a、111bによりそれぞれ算出されたフレームレートの調整を実施しない場合に使用される補正ゲイン値又はフレームレートの調整を実施する場合に使用される補正ゲイン値を選択的に出力する。本実施形態では、補正ゲイン算出部111a及び一時記憶部112aからなる一方の側をフレームレートの調整を実施しない側とし、補正ゲイン算出部111b及び一時記憶部112bからなる他方の側をフレームレートの調整を実施する側として、以下説明を行う。すなわち、補正ゲイン算出部111aが通常のフレーム周期T1に対応した第1の補正ゲイン値を算出し、補正ゲイン算出部111bが調整フレーム周期T2に対応した第2の補正ゲイン値を算出するものとする。
また、補正ゲイン算出部111a、111bは、フレーム処理毎の任意のタイミングで更新するパラメータ(第1のパラメータ)をセレクタ(第2の選択部)123に対して出力する。セレクタ(第2の選択部)123は、補正ゲイン算出部111a、111bでのフレーム処理の進捗にあわせて推移した位相量のフィードバックを行うためのループの際に、実際に補正に用いた側からのパラメータ(第1のパラメータ)を選択し出力する。なお、このパラメータ(第1のパラメータ)は、例えば撮像部103における蓄積時間と動画像撮影時のフレームレートと点滅光源の発光周期との何れか又はすべての関係が反映された数値である。
動画像撮影において、例えば各フレームにおいてずれがなく30fpsのフレームレート制御が実施されるのであれば、フリッカ成分のフレーム間位相は3フレームで一巡するように(3フレーム毎に)決まった値をとる。しかし、1フレームの処理が誤差なく1/30秒にならないようなフレームレート制御状態では、補正対象フレームの先頭におけるフリッカ成分の位相状態をトレースしていく必要がある。この位相状態をトレースしていくために、本実施形態では、位相保持部(一時記憶部)124においてセレクタ(第2の選択部)123の出力を積算していくことによって、位相状態を位相保持部(一時記憶部)124に保持する。
ここで、図1において、φ1、φ2のそれぞれは、フレーム間の位相量φ1、φ2に関する調整を行うためのパラメータであることを示すものとする。フレーム間の位相量としてのφ1、φ2は、フリッカの時間成分算出のための逆フーリエ変換を計算するときの、基本波(例えば100Hz)の三角波(sin,cos)成分に対するフレーム先頭の位相量とする。フレーム先頭の位相量は、前のフレームの補正対象画像の終了位置からその後のフレーム(注目フレーム)の補正対象画像の開始位置までの位相量である(図2参照)。なお、φ1、φ2は、位相成分として角度で保持しても良いし、1周期を2πとしてそれを256で正規化した8bitの数値で保持しても良い。また、φ1、φ2を前のフレームの有効画像の終了ラインから注目フレームの有効画像の開始ラインまでの走査時間相当のライン数として保持し、補正ゲイン算出部中でフリッカ成分に対するフレーム間の位相量に換算しても良い。また、補正ゲイン算出部111a、111bのそれぞれに設定するφ1、φ2等の調整パラメータは、前述したφ1、φ2のみに限定するものではない。
セレクタ(第3の選択部)125は、フレームレートの調整を実施するか否かに応じて、補正ゲイン算出部111aの入力パラメータ(第2のパラメータ)を選択して出力する。セレクタ(第3の選択部)125は、フレームレートの調整を実施しない場合には、フレーム間の位相量φ1に関する調整を行うためのパラメータを選択して、補正ゲイン算出部111aに対し入力パラメータ(第2のパラメータ)として出力する。また、セレクタ(第3の選択部)125は、フレームレートの調整を実施する場合には、フレーム間の位相量φ3に関する調整を行うためのパラメータを選択して、補正ゲイン算出部111aに対し入力パラメータ(第2のパラメータ)として出力する。ここで、フレーム間の位相量φ1、φ3に関する調整を行うための各パラメータは、例えば撮像部103における蓄積時間と動画像撮影時のフレームレートと点滅光源の発光周期との何れか又はすべての関係が反映された数値である。セレクタ125によって補正ゲイン算出部111aへの入力パラメータを切り替えることで、フレームレートの調整を実施した際に、次のフレームの補正ゲイン値を算出するためのフレーム間の位相量の予想に調整フレームの挿入の影響を反映させることができる。
図2は、横軸を時間の推移として、第1の実施形態における撮像装置の動作例を示すタイミングチャートである。図2において、1001は、撮像部103から撮像データを読み出すためのタイミングパルス(本例では負論理)としての垂直同期信号(VD)である。1002は、垂直同期信号毎に読み出されるフレーム単位の撮像データであり、説明の便宜上、図中にフレーム単位で連番を添え字として付している。1003は、撮像データにおいて画像(映像)として補正処理や画像処理等の対象となる処理対象期間を示す信号である。なお、処理対象期間中には、図示しない水平同期信号(HD)に起因した非画像データの期間も存在するが、ここでは無視する。
1004は、目標フレームレートと現状の(実際の)フレームレートとが異なることによって蓄積される蓄積誤差の値である。1005は、蓄積誤差値を基にフレームレートの調整を実施するか否かを判定するタイミングを示す判定タイミング信号(パルス信号)であり、パルス状に“H”になったときに判定が行われる。また、1006は、判定結果に応じてフレームレートの調整の実行を要求するための調整実行ステータスを示す調整実行信号(パルス信号)であり、パルス状に“H”となったときにフレームレートの調整が実施される。1007は、フレームレートの調整を実施するか否かを判定するための調整有無判定閾値である。
また、201は、フレームレートの調整を実施する調整フレーム期間であるか否かを示すステータス信号(以下、調整フレーム信号とも称す。)である。調整フレーム信号201は、調整実行信号1006を受けて、次の1フレームを調整フレームとするか通常フレームとするかを状態(レベル)で示している。図2に示す例では、調整フレーム信号201がハイレベル(“H”)の場合には調整フレームとする、すなわち1フレームの周期を調整フレーム周期T2とすることを示すものとする。また、調整フレーム信号201がローレベル(“L”)の場合には通常フレームとする、すなわち1フレームの周期を通常のフレーム周期T1とすることを示すものとする。なお、調整フレーム信号201がハイレベルになった場合には、次の1フレームが終了した後に(そのフレーム終了後において垂直同期信号が次にアサートされるまでに)調整フレーム信号201はローレベルにされる。なお、例えば、調整フレーム信号201を、図1に示した調整判定部120の出力として、セレクタ121、122、123、及び125に分配するとともに、遅延部126を介してセレクタ127に分配し、各セレクタの切り替えを行うようにしても良い。
202は、基本正弦波(例えば100Hz)であり、その振幅及び位相は任意である。周期T1、T2と点滅光源の発光周期との比較を容易にし、フリッカ成分のフレーム間位相の推移との関係を想像しやすくするよう図示している。
203は、フリッカ成分(本例では100Hz)の検波の処理期間(検波期間)である。長方形で表した検波期間203において、長方形中の数字はフリッカ成分検出対象となる撮影データ1002の添字に対応している。204は補正ゲイン算出の処理期間(補正ゲイン算出期間)であり、205は補正ゲイン値を一時記憶部112a、112bから読み出して、撮影データ1002に適用しフリッカ補正を行う処理期間(フリッカ補正ゲイン読み出し期間)である。長方形で表した補正ゲイン算出期間204及びフリッカ補正ゲイン読み出し期間205において、長方形中の数字はフリッカ補正(振幅補正)の対象となる撮影データ1002の添字に対応している。
本実施形態では、3フレーム毎に1回の頻度でフレームレートの調整を実施するか否かの判定を行う。その判定において、蓄積誤差値1004が判定閾値1007を超えているときには、誤差の是正が必要であると判断し、次の1フレームにおいてフレームレートの調整を実施する。なお、本実施形態では3フレーム毎に1回の頻度でフレームレートの調整を実施するか否かの判定を行うようにしているが、これに限定されず、所定のタイミング毎に判定を行えば良い。フレームレートの調整は、例えば通常フレーム(調整が入らないときのフレーム)に代えて、撮像部103(CMOSセンサ等)の1水平走査期間を通常フレームよりも数クロック分短い調整フレームを挿入することで調整する。つまり、本例では、常態で正側に誤差を蓄積し、調整時に誤差が負側(又は0)になるようにフレームレートを調整する。なお、誤差蓄積(増減)の方向は、前述の例に限らず、常態で負側に誤差を蓄積し、調整時に誤差が正側(又は0)になるようにフレームレートを調整しても良い。
ここで、図2に示した位相量φ1、φ2、φ3、及びθ1、θ2について説明する。位相量φ1は、通常フレームが連続しているときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。位相量φ2は、通常フレームから調整フレームに切り替わるときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。位相量φ3は、調整フレームから通常フレームへ遷移するときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。
また、本実施形態における撮像装置のように位相関係の推移をトレースする必要がある場合には、処理対象期間1003における有効期間の間もトレースの対象になる。位相量θ1は通常フレーム処理における位相量であり、位相量θ2は調整フレーム処理における位相量である。位相量θ1、θ2のそれぞれは、例えば補正ゲイン算出部111a、111bで積算し、積算結果をセレクタ(第2の選択部)123を介して位相保持部124に送出すれば良い。また、位相量θ1、θ2は、補正ゲイン算出部111a、111bの出力をセレクタ(第2の選択部)123を介して位相保持部124に送出し、位相保持部124にて積算するようにしても良い。また、位相量φ3の出現は通常フレーム側に限られるので、セレクタ(第3の選択部)125は補正ゲイン算出部111a側にのみ設ければ良い。
図2に示すように、添字iのフレームに係る撮像データ1002が取り込まれると、添字iの検波期間203にて、その撮像データ1002のフリッカ成分(周波数成分)の検出が行われる。添字iの検波期間203において検出されたフリッカ成分(周波数成分)は、添字(i+2)の補正ゲイン算出期間204にて、フレーム間の位相量が予測されて時間信号の成分に戻され、それを用いた補正ゲイン値の算出が行われる。添字(i+2)の補正ゲイン算出期間204において算出された補正ゲイン値は、添字(i+2)のフリッカ補正ゲイン読み出し期間205にて、乗算器116に出力され、それを用いた添字(i+2)のフレームに係る撮像データ1002のフリッカ補正が行われる。このように本実施形態における撮像装置では、添字(i+2)のフレームに係る撮像データ1002のフリッカ補正は、添字iのフレームに係る撮像データ1002のフリッカ成分から予測して算出した補正ゲイン値を用いて行われる。
例えば、図2に示した例では、撮像データ1002の添字4のフレーム取り込み時にフレームレートの調整を実施している。添字4のフレームに係る撮像データ1002は、A/D変換部105でデジタル化されたデータとして乗算器116でフリッカ補正(振幅補正)される。このとき、前述のように添字2のフレーム取り込み期間に取り込まれた撮像データ1002のフリッカ成分から予測して算出した補正ゲイン値が、添字4のフレームに係る撮像データ1002のフリッカ補正に用いられる。添字2のフレーム取り込み期間に取り込まれた撮像データ1002は、次(撮像データ1002の添字3)のフレーム取り込み期間中に、フリッカ成分の検波が行われる。具体的には、検波期間203における期間203−2に、添字2のフレーム取り込み期間に取り込まれた撮像データ1002のフリッカ成分(周波数成分)が検波部109を用いて検出され、検出したフリッカ成分が一時記憶部110に格納される。そして、補正ゲイン算出期間204における期間204−4に、一時記憶部110に格納されているフリッカ成分(周波数成分)をフレーム間の位相量を予測して時間信号の成分に戻し、それを基に補正ゲイン値が算出される。算出した補正ゲイン値は、フリッカ補正ゲイン読み出し期間205における期間205−4に、乗算器116に対して出力される。
ここで、補正ゲイン算出期間204における期間204−4では、次のフレーム(撮像データ1002の添字4のフレーム)がフレームレートの調整されたデータとして受信されるか否かは未定である。そのため、期間204−4では、補正ゲイン算出部111a、111bのそれぞれが、位相量φ1、φ2に係る調整パラメータを用いて補正ゲイン算出処理を行い、補正ゲイン値を結果として得る。なお、本実施形態では、3フレームに1回の実行頻度でフレームレートの調整を実施するか否かの判定が行われるので、フレームレートの調整は判定結果後の1フレームに対してのみ実施され得る。よって、フレームレートの調整を実施するか否かの判定を行うフレームを把握して制御するのであれば、補正ゲイン算出部111bでの補正ゲイン算出処理は、判定タイミング信号1005が発行される直前のフレームでのみ行うようにしても良い。
フリッカ補正ゲイン読み出し期間205における期間205−4では、ステータス信号(調整フレーム信号)201によって現行フレームが調整フレームであることがわかる。このとき、補正ゲイン算出部111bによって算出され一時記憶部112bに格納されている補正ゲイン値(第2の補正ゲイン値)が、セレクタ(第1の選択部)122を介して乗算器116に出力される。また、このとき(添字4のフレーム)の撮像データ1002は、フレームレートの調整が実施されているので、調整フレーム周期T2を鑑みて積分処理部106での積分処理及びサンプル点抽出部107でのサンプリング処理を行う。そして、検波期間203における期間203−4において、同様に調整フレーム周期T2を鑑みて検波部109での検波処理が行われる。また、補正ゲイン算出期間204における期間204−5の前に、補正ゲイン算出部111aにはセレクタ125により位相量φ3の調整パラメータが入力される。
以上のようにして、本実施形態における撮像装置は、フレームレートの調整を鑑みたラインフリッカ(面内フリッカ)の検出及び補正を実施する。
本実施形態では、補正ゲイン算出部111a、111bに供給する調整パラメータは、フレーム間位相の位相量φ1、φ2、φ3に係るパラメータとしているが、これに限定されない。調整パラメータを、fk=100Hz一定の点滅周期に対するフレーム処理の時間量t1、t2、t3に係るパラメータとしても良い。例えば、φ1=2πfk・t1とすると、セレクタ125へ入力するパラメータ設定値としては時間量t1に係る数値で設定しておくことも可能である(φ2、φ3についても同様)。その場合、1フレーム経過時の位相保持部124への位相量更新値(例えば、(φ1+θ1)分の位相量)も、同様に時間量に係る数値とすることが好ましい。
次に、本実施形態における撮像装置でのフリッカ成分検出処理、フリッカ補正用の補正ゲイン算出処理、及びフリッカ補正処理についてそれぞれ説明する。なお、フリッカ成分検出処理、フリッカ補正用の補正ゲイン算出処理、及びフリッカ補正処理の流れをそれぞれ示す図3〜図5には、動画像撮影時における任意のフレーム単位の処理として図示している。また、以下の説明では、次のフレームの撮像部103による撮像データの取り込みに対してフレームレートの調整を実施するか否かの判定が調整判定部120により実施され、その判定結果がステータス信号FST(201)として送出されているものとする。
図3は、フリッカ成分検出処理の一例を示すフローチャートである。図3(a)には積分処理からサンプル点抽出処理までを示しており、図3(b)には検波処理を示している。例えば、図2に示した添字2のフレームの撮像データ1002の取り込み時にその撮像データ1002に係る積分処理及びサンプル点抽出処理(図3(a)に示す処理)が行われる。そして、その検波処理(図3(b)に示す処理)が検波期間203における期間203−2に行われる。このとき、フレームレートの調整を実施するか否か、すなわち処理対象のフレームが調整フレームであるか否かを示すステータス信号FST(201)は、遅延部126により1フレーム処理分遅延されてセレクタ127に供給されている。
まず、図3(a)に示す積分処理及びサンプル点抽出処理について説明する。
セレクタ121は、ステータス信号FST(201)を参照して(S301)、処理対象フレームが通常フレームであれば図1に示したT1側のパラメータを選択し(S302)、調整フレームであれば図1に示したT2側のパラメータを選択する(S303)。セレクタ121における選択するパラメータの切り替えは、例えば処理対象期間1003により示される有効期間外で行う。続いて、積分処理部106が、A/D変換部105によりデジタル化された撮像データ1002をライン単位に積分する(S304)。次に、サンプル点抽出部107が、積分処理部106により得られた積分値(又は、それを平均化(正規化)した値でも良い)を、セレクタ121により選択されたパラメータを用いて所望のサンプル点に写像し一時記憶部108に一時保持させる(S305)。
図3(a)に示した処理で得られた結果(一時記憶部108に格納されているデータ(サンプル値))を用いて、図3(b)に示す検波処理が行われる。本実施形態では、1フレーム分の撮像データよりすべてのサンプル点データを抽出した後、すなわち1フレーム分の撮像データの取り込み完了後に、検波処理を実施するため、検波処理に用いるパラメータの選択は、遅延部126の出力を参照して行われる。まず、セレクタ127は、遅延部126の出力(1フレーム分遅延されたステータス信号FST(201))を参照し(S311)、サンプル点データを抽出した処理対象フレームが通常フレームであれば図1に示したT1側のパラメータを選択する(S312)。一方、そうでなければ(調整フレームであれば)、セレクタ127は、図1に示したT2側のパラメータを選択する(S313)。続いて、検波部109が、セレクタ127により選択されたパラメータを用いて、一時記憶部108に格納されているデータを基にフリッカ成分を検波して一時記憶部110に保持させ(S314)、フリッカ成分検出処理を終了する。
図4は、フリッカ補正用の補正ゲイン算出処理の一例を示すフローチャートである。
セレクタ(第2の選択部)123は、ステータス信号FST(201)を参照して(S401)、処理対象フレームが通常フレームであれば補正ゲイン算出部111aで積算した位相量を選択する(S402)。一方、そうでなければ(処理対象フレームが調整フレームであれば)、セレクタ(第2の選択部)123は、補正ゲイン算出部111bで積算した位相量を選択する(S404)。同様に、セレクタ(第3の選択部)125は、ステータス信号FST(201)を参照して(S401)、処理対象フレームが通常フレームであれば位相量φ1に係るパラメータを選択する(S403)。一方、そうでなければ(処理対象フレームが調整フレームであれば)、セレクタ(第3の選択部)125は、位相量φ3に係るパラメータを選択する(S405)。なお、前述したセレクタ123及びセレクタ125における選択については、時間的な優先順位はなく同時であっても良い。
次に、位相保持部124は、セレクタ123の出力値を保持し、フリッカ成分の位相進捗が更新される(S406)。ここで、本実施形態では、取り込んだ撮像データを積分して検波実行するまでに1フレーム処理に対応する期間を要するので、位相保持部124は、初期値として(φ1+θ1)分の位相進捗が図示しない初期値設定ステップで設定される。また、補正ゲイン算出部111a、111bからのセレクタ123へのフィードバック値にも、同様に1フレーム分の位相進捗を反映した初期値が設定される。したがって、位相保持部124は、検波対象フレーム及び補正対象フレームの位相遅延量(2フレーム分)を保持する。
前述した処理を完遂してから、補正ゲイン算出期間204として示される期間中において、補正ゲイン算出部111aによる補正ゲイン演算(S407)及び補正ゲイン算出部111bによる補正ゲイン演算(S408)がそれぞれ実行される。補正ゲイン算出部111aは、セレクタ125により選択された位相量φ1に係るパラメータ又は位相量φ3に係るパラメータを用いて、補正ゲイン演算を行い、補正ゲイン算出部111bは、位相量φ2に係るパラメータを用いて補正ゲイン演算を行う。そして、ステップS407及びS408での演算結果、すなわち算出した補正ゲイン値が、それぞれ一時記憶部112a、112bに一時格納され、補正ゲイン算出処理が終了する。なお、ステップS407及びS408における処理について、時間的な優先順位はなく、ステップS408に示す処理を実行した後にステップS407に示す処理を実行しても良いし、ハードウエア等で同時に実行しても良い。また、フレームレートの調整が実施され得る、すなわち調整フレームにされ得るフレーム位置が予め定まっている場合には、補正ゲイン算出部111bによる補正ゲイン演算は、調整フレームにされ得るフレーム位置の前のフレームにおいてのみ行うようにしても良い。
また、図2に例示したタイミングチャートにも示されるように、一時記憶部112a、112bに対して、現在のフレームに係る補正ゲイン値の読み出しを行う期間と次のフレームに係る補正ゲイン値の書き込みを行う期間とが重複し得ることが考えられる。そのようなタイミングに対応するために、一時記憶部112a、112bはFIFO構成とするようにしても良い。また、ファームウエアであれば、一時記憶部112a、112bのそれぞれに対して複数のメモリ領域を確保するようにしても良い。また、一時記憶部112a、112bが同一の記憶手段として存在し、その中に記憶領域がそれぞれ独立に確保されていても良い(例えば、アドレスで管理されていても良い)。その場合には、セレクタ122はアドレスデコーダとして機能する他、アドレス管理部を別途設ける。
図5は、フリッカ補正処理の一例を示すフローチャートである。
セレクタ(第1の選択部)122は、ステータス信号FST(201)を参照して(S501)、通常フレームに対する補正であれば一時記憶部112aの出力を選択する(S502)。一方、そうでなければ(調整フレームに対する補正であれば)、セレクタ(第1の選択部)122は、一時記憶部112bの出力を選択する(S503)。そして、撮像装置は、処理対象期間を示す信号1003にあわせて、選択された一時記憶部112a、112bからフリッカ補正用(振幅補正用)の補正ゲイン値を呼び出して乗算器116に入力する(S504)。すなわち、通常フレームに対する補正であれば、補正ゲイン算出部111aによって算出された補正ゲイン値が乗算器116に出力され、加算器(減算器)115、乗算器116、及び加算器117での演算処理によって撮像データに係るフリッカ補正が行われる。また、調整フレームに対する補正であれば、補正ゲイン算出部111bによって算出された補正ゲイン値が乗算器116に出力され、加算器(減算器)115、乗算器116、及び加算器117での演算処理によって撮像データに係るフリッカ補正が行われる。
第1の実施形態によれば、動画像撮影時にフレームレートの調整が実施される撮像装置において、調整を実施したとき及び調整を実施しないときのフリッカ補正用の補正ゲイン値を算出し、調整の実施の有無に応じて適宜選択してフリッカ補正を行う。これにより、動画像撮影に適したクロックを有していなくとも、撮像データの取りこぼし(システム不成立)やフリッカ補正のための遅延を発生させることなく、フレームレートの調整に応じたラインフリッカ(面内フリッカ)の検出及び補正を行うことができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態において例示の撮像装置は、動画像撮影時に3フレーム毎に目標フレームレートと現状の(現在の)フレームレートの乖離を比較することでフレームレートの調整を実施するか否かを判定し、その結果に応じてフレームレートの調整を行う。以下に説明する第2の実施形態における撮像装置は、動画像撮影時にフレーム毎にフレームレートの調整を実施するか否かを判定し、その結果に応じてフレームレートの調整を行うよう制御する。第2の実施形態における撮像装置には、動画像撮影が可能であるが、静止画撮影を主とするデジタルスチルカメラが含まれる。
図6は、第2の実施形態における撮像装置の動作例を示すタイミングチャートであり、図7は、第2の実施形態における撮像装置の構成例を示す図である。なお、図6において、図2に示した要素と同一の要素には同一の符号を付して重複する説明は省略する。また、図7において、図1に示した要素と同一の要素には同一の符号を付して重複する説明は省略する。図6に示すように、第2の実施形態においては、フレーム毎(フレームデータ取り込み毎)に判定タイミング信号1005がパルス状に“H”になる。このようにフレームレートの調整を実施するか否かの判定周期が短くなったため、目標フレームレートと現状の(実際の)フレームレートとの誤差の蓄積期間も短縮される。そこで、図6においては、調整有無判定閾値1007を第1の実施形態よりも低く設定し、誤差回復の分解能を上げる方向に設定した場合を一例として示している。
図6において、601は、現在の処理フレームがフレームレートの調整の対象であることを示す、すなわち現在の処理フレームが調整フレームであるか通常フレームであるかを示すステータス信号(調整フレーム信号)である。図6に示す例では、調整フレーム信号601は、ローレベル(“0”)で通常フレームであることを示し、ハイレベル(“1”)で調整フレームであることを示すものとする。第1の実施形態では、フレームレートの調整を実施するか否かの判定は3フレーム毎に1回行うので調整フレームが連続することはなく、ステータス信号(調整フレーム信号)が連続する2フレームにおいてハイレベルになることはない。それに対して、第2の実施形態では、フレームレートの調整を実施するか否かの判定の結果に応じて、調整フレームが連続することもあるので、連続する2フレーム以上の期間においてステータス信号(調整フレーム信号)601がハイレベルとなることがある。
602は、基本正弦波(例えば100Hz)であり、その振幅及び位相は任意である。603は、フリッカ成分の検波の処理期間(検波期間)である。長方形で表した検波期間603において、長方形中の数字はフリッカ成分検出対象となる撮影データ1002の添字に対応している。604は補正ゲイン算出の処理期間(補正ゲイン算出期間)であり、605は補正ゲイン値を一時記憶部112a、112bから読み出して、撮影データ1002に適用しフリッカ補正を行う処理期間(フリッカ補正ゲイン読み出し期間)である。長方形で表した補正ゲイン算出期間604及びフリッカ補正ゲイン読み出し期間605において、長方形中の数字はフリッカ補正(振幅補正)の対象となる撮影データ1002の添字に対応している。
図6に示した位相量φ1、φ2、φ3、φ4及びθ1、θ2について説明する。位相量φ1は、通常フレームが連続しているときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。位相量φ2は、通常フレームから調整フレームに切り替わるときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。位相量φ3は、調整フレームから通常フレームへ遷移するときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。位相量φ4は、調整フレームが連続しているときの、前のフレームにおける処理対象期間の終了からその次のフレームにおける処理対象期間の開始までの間の位相量である。
また、本実施形態における撮像装置のように位相関係の推移をトレースする必要がある場合には、処理対象期間1003における有効期間の間も位相量のトレース対象になる。位相量θ1は通常フレーム処理における位相量であり、位相量θ2は調整フレーム処理における位相量である。位相量θ1、θ2のそれぞれは、例えば図7に示す補正ゲイン算出部111a、111bで積算し、積算結果をセレクタ123を介して位相保持部124に送出すれば良い。また、位相量θ1、θ2は、補正ゲイン算出部111a、111bの出力をセレクタ123を介して位相保持部124に送出し、位相保持部124にて積算するようにしても良い。
図7に示すように、第2の実施形態における撮像装置は、補正ゲイン算出部111aに対してセレクタ(第3の選択部)125を有するとともに、補正ゲイン算出部111bに対してセレクタ(第3の選択部)701を有する。セレクタ(第3の選択部)125、701は、フレームレートの調整を実施するか否かに応じて、フレーム間の位相量に関する調整を行うためのパラメータの選択を行い、選択されたパラメータを補正ゲイン算出部111a、111bに出力する。セレクタ125は、ステータス信号(調整フレーム信号)FSTがハイレベルであれば(調整フレーム時)、位相量φ3に関する調整パラメータを選択し、そうでなければ(通常フレーム時)、位相量φ1に関する調整パラメータを選択する。同様に、セレクタ701は、ステータス信号(調整フレーム信号)FSTがハイレベルであれば(調整フレーム時)、位相量φ4に関する調整パラメータを選択し、そうでなければ(通常フレーム時)、位相量φ2に関する調整パラメータを選択する。
なお、第2の実施形態における撮像装置でのフレームレートの調整、及びフリッカ検出・補正に係る動作は、第1の実施形態における撮像装置での動作と基本的には同じである。ただし、フレームレートの調整を実施するか否かの判定をフレーム毎に行うこと、及びその結果、任意のフレームが調整フレームにされ得ることが、第1の実施形態とは異なる。また、調整フレームが連続する場合には、その先頭フレームを除き、位相量φ4に関する調整パラメータを用いた補正ゲイン算出部111bによる補正ゲイン演算により算出された補正ゲイン値を用いてフリッカ補正を行うことが、第1の実施形態とは異なる。
なお、フレーム間位相の位相量φ1、φ2、φ3、φ4に係る調整パラメータを、fk=100Hz一定の点滅光源の周期に対するフレーム処理の時間量t1、t2、t3、t4に係る調整パラメータとしても良い。例えば、φ1=2πfk・t1とすると、セレクタ125に入力するパラメータ設定値としては時間量t1に係る数値で設定しておくことも可能である(φ2、φ3、φ4についても同様)。その場合、1フレーム経過時の位相保持部124への位相量更新値(例えば、(φ1+θ1)分の位相量)も、同様に時間量に係る数値とすることが好ましい。
例えば、図6に示した例では、撮像データ1002の添字4のフレーム取り込み時及び添字5のフレーム取り込み時にフレームレートの調整を実施している。各撮像データ1002は、A/D変換部105でデジタル化されたデータとして乗算器116でフリッカ補正(振幅補正)される。ここで、添字4のフレームに係る撮像データ1002のフリッカ補正に用いられる補正ゲイン値は、添字2のフレーム取り込み期間に取り込まれた撮像データ1002のフリッカ成分を基に算出されたものである。すなわち、検波期間603−2に検出したフリッカ成分(周波数成分)を、補正ゲイン算出期間604−4にフレーム間の位相量を予測し時間信号成分に戻した値から得たものであり、フリッカ補正ゲイン読み出し期間605−4に乗算器116に出力される。同様に、添字5のフレームに係る撮像データ1002のフリッカ補正に用いられる補正ゲイン値は、添字3のフレーム取り込み期間に取り込まれた撮像データ1002のフリッカ成分を基に算出されたものである。すなわち、検波期間603−3に検出したフリッカ成分(周波数成分)を、補正ゲイン算出期間604−5にフレーム間の位相量を予測し時間信号成分に戻した値から得たものであり、フリッカ補正ゲイン読み出し期間605−5に乗算器116に出力される。このようにして、撮像データ1002の有効画像データに対してラインフリッカ(面内フリッカ)補正を実施していく。
なお、補正ゲイン算出期間604−4での処理前における位相調整量は、撮像データ1002の添字4の期間に合わせるために位相量φ2を選択する必要がある。補正ゲイン算出期間604−4の前において、セレクタ701は、ステータス信号FST(601)を参照して位相量φ2に係るパラメータを選択しており、補正ゲイン算出部111bには位相量φ2に係るパラメータが入力される。なお、セレクタ125は、位相量φ1に係るパラメータを選択しており、補正ゲイン算出部111aには位相量φ1に係るパラメータが入力される。そして、補正ゲイン算出期間604−4に、補正ゲイン算出部111a、111bがそれぞれ補正ゲイン値を算出して、一時記憶部112a、112bに格納する。続いて、フリッカ補正ゲイン読み出し期間605−4に、セレクタ122を介して一時記憶部112bに格納されている、すなわち補正ゲイン算出部111bが算出した補正ゲイン値が読み出され、乗算器116に出力される。また、このとき位相保持部124に入力される位相進捗は、(φ2+θ2)となるようセレクタ123により補正ゲイン算出部111bでの積算結果が選択される。
同様に、補正ゲイン算出期間604−5の処理前における位相調整量は、撮像データ1002の添字5の期間に合わせるために位相量φ4を選択する必要がある。補正ゲイン算出期間604−5の前において、セレクタ701は、ステータス信号FST(601)を参照して位相量φ4に係るパラメータを選択しており、補正ゲイン算出部111bには位相量φ4に係るパラメータが入力される。なお、セレクタ125は、位相量φ3に係るパラメータを選択しており、補正ゲイン算出部111aには位相量φ3に係るパラメータが入力される。そして、補正ゲイン算出期間604−5に、補正ゲイン算出部111a、111bがそれぞれ補正ゲイン値を算出して、一時記憶部112a、112bに格納する。続いて、フリッカ補正ゲイン読み出し期間605−5に、セレクタ122を介して一時記憶部112bに格納されている(補正ゲイン算出部111bが算出した)補正ゲイン値が読み出され、乗算器116に出力される。また、このとき位相保持部124に入力される位相進捗は、(φ4+θ2)となるようセレクタ123により補正ゲイン算出部111bでの積算結果が選択される。
第2の実施形態によれば、動画像撮影時にフレームレートの調整が実施される撮像装置において、調整を実施したとき及び調整を実施しないときのフリッカ補正用の補正ゲイン値を算出し、調整の実施の有無に応じて適宜選択してフリッカ補正を行う。これにより、動画像撮影に適したクロックを有していなくとも、撮像データの取りこぼしやフリッカ補正のための遅延を発生させることなく、フレームレートの調整に応じたラインフリッカ(面内フリッカ)の検出及び補正を行うことができる。また、フレーム毎にフレームレートの調整を実施するか否かの判定を行うので、フレームレートの誤差の蓄積期間が短縮され、調整を実施するか否かの判定に用いる閾値を低く設定することができ、誤差回復の分解能を向上させることができる。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。