(57)【特許請求の範囲】
【請求項１】
被写体を撮像手段が撮像して出力された画像データのフレームの所定領域の特徴量と、該画像データの該フレームに対して過去のフレームの該所定領域の特徴量との差分を示す差分値を算出する差分算出手段と、
前記差分算出手段で算出された前記差分値の絶対値が閾値を超える回数を所定期間内でカウントする第１のカウント手段と、
前記画像データの現フレームについて前記差分算出手段で算出された前記差分値と、該画像データの過去のフレームについて前記差分算出手段で算出された前記差分値とで正負が異なる回数を所定期間内でカウントする第２のカウント手段と、
前記第１のカウント手段にカウントされた回数が所定値を超えた場合に、前記第２のカウント手段にカウントされた回数と所定値とを比較し、比較結果に基づき前記被写体に対する光源の光源周波数を識別する識別手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
前記差分算出手段は、
前記所定領域に含まれる画素の画素値の合計値を前記特徴量として用いる
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記差分算出手段は、
前記合計値を前記所定領域に含まれる画素の画素数で除した値を前記特徴量として用いる
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像データによる画像の垂直方向のサイズに対する前記所定領域の垂直方向のサイズの比が、基準とする前記光源周波数の４倍に対する該画像データのフレームレートの比よりも小さい
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の画像処理装置。
【請求項５】
前記所定領域は、
前記画像データによる画像内の、前記撮像手段に対する位置関係が固定された被写体による画像領域である
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の画像処理装置。
【請求項６】
前記撮像手段は、車体に搭載されて用いられ、
前記所定領域は、前記車体の一部を被写体とした領域である
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記識別手段により識別された前記光源周波数に応じたフリッカをキャンセルするための設定を前記撮像手段に対して行う設定手段をさらに有する
ことを特徴とする請求項１乃至請求項６の何れか１項に記載の画像処理装置。
【請求項８】
前記撮像手段から前記現フレームの露光値を取得し、取得した該現フレームの露光値の、前記過去のフレームで取得した露光値に対する変化を検出する検出手段をさらに有し、
前記設定手段は、
前記所定期間内に前記検出手段により前記変化が検出された場合に、前記フリッカをキャンセルするための設定を行わない
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記差分算出手段は、
前記画素値として輝度値を用いて前記特徴量を求める
ことを特徴とする請求項３に記載の画像処理装置。
【請求項１０】
前記画像データがインタレース走査である場合は、前記フレームの代わりに第１および第２フィールドのうち何れか一方を用いる
ことを特徴とする請求項１乃至請求項９の何れか１項に記載の画像処理装置。
【請求項１１】
差分算出手段が、被写体を撮像手段が撮像して出力された画像データのフレームの所定領域の特徴量と、該画像データの該フレームに対して過去のフレームの該所定領域の特徴量との差分を示す差分値を算出する差分算出ステップと、
第１のカウント手段が、前記差分算出ステップで算出された前記差分値の絶対値が閾値を超える回数を所定期間内でカウントする第１のカウントステップと、
第２のカウント手段が、前記画像データの現フレームについて前記差分算出ステップで算出された前記差分値と、該画像データの過去のフレームについて前記差分算出ステップで算出された前記差分値とで正負が異なる回数を所定期間内でカウントする第２のカウントステップと、
識別手段が、前記第１のカウントステップによりカウントされた回数が所定値を超えた場合に、前記第２のカウントステップによりカウントされた回数と所定値とを比較し、比較結果に基づき前記被写体に対する光源の光源周波数を識別する識別ステップと
を有する
ことを特徴とする画像処理方法。
【請求項１２】
前記撮像手段と、
請求項１乃至請求項１０の何れか１項に記載の画像処理装置と
を備える
ことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローリングシャッタ方式で撮像された画像データを処理する画像処理装置および画像処理方法、ならびに、撮像装置に関する。
【背景技術】
【０００２】
近年、車載カメラの普及が著しい。車載カメラにて走行中に撮影された画像データは、記録され、事故の際の証拠物件として用いたり、編集など施して楽しむために用いられる。車載カメラに用いられる撮像素子の一つとして、ＣＭＯＳ(Complementary  Metal-Oxide  Semiconductor)イメージセンサがある。ＣＭＯＳイメージセンサは、ＸＹアドレス型のセンサであって、ローリングシャッタにより画像データを読み出す。
【０００３】
このような、ローリングシャッタ特性を有する撮像素子を用いて、商用交流電源により直接的に点灯される蛍光灯のような、所定周波数で明滅する光源による照明下で被写体の撮影を行った場合、露光時間を光源の発光周期より著しく短くすると、画像データの各フレームにおいて垂直方向の輝度ムラが生じる。また、撮影のフレームレートと、光源の発光周期とが異なる場合、垂直方向の輝度ムラの状態が変化し、時間方向に輝度のフリッカ（いわゆる蛍光灯フリッカ）が生じる。周期的に明滅する光源に対し、ローリングシャッタでは、グローバルシャッタと異なり全画素を同じタイミングで露光できないからである。
【０００４】
日本における商用交流電源の周波数は、概略的には、糸魚川静岡構造線を境界として東側の地域が５０Ｈｚ（５０Ｈｚ地域）、西側の地域が６０Ｈｚ（６０Ｈｚ地域）とされている。ローリングシャッタ特性を有する撮像素子を用いた車載カメラを搭載した自動車が、これら５０Ｈｚ地域および６０Ｈｚ地域の境界を跨いで移動することが考えられる。このとき、周波数が５０Ｈｚおよび６０Ｈｚの何れか一方に対応したフリッカ除去フィルタを用いていた場合、他方の周波数の地域に移動した際に、車載カメラによる画像データに対してフリッカが発生してしまうことになる。
【０００５】
特許文献１には、ローリングシャッタにより撮影を行う際に、光源が非インバータ方式の蛍光灯であるか否かを判定し、非インバータ方式の蛍光灯である場合に、当該蛍光灯の駆動周波数が５０Ｈｚおよび６０Ｈｚの何れであるかを判定する技術が記載されている。
【０００６】
すなわち、特許文献１では、例えば、画像データのフレームレートが６０ｆｐｓ(frame  per  second)である場合に、１／６０秒露光の通常露光画像と１／２４０秒露光の短時間露光画像とを、ローリングシャッタにて交互に撮影する。そして、時間的に隣接する通常露光画像と短時間露光画像との間で垂直方向の輝度分布を対比することによって、光源が非インバータ式の蛍光灯であるか否かを検出する。光源が非インバータ方式の蛍光灯である場合、時間的に近接する２つの短時間露光画像の間で垂直方向の輝度分布を対比することによって、蛍光灯の駆動周波数が５０Ｈｚおよび６０Ｈｚの何れであるのかを検出している。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の方法では、２種類の露光を行なう必要があり、撮像装置の制御が複雑になってしまうという問題点があった。また、垂直方向の輝度分布を記憶させるためのメモリを設ける必要があり、システムが煩雑になってしまうという問題点があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、被写体の光源周波数を簡易な処理およびシステムにより識別可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、被写体を撮像手段が撮像して出力された画像データのフレームの所定領域の特徴量と、画像データのフレームに対して過去のフレームの所定領域の特徴量との差分を示す差分値を算出する差分算出手段と、差分算出手段で算出された差分値の絶対値が閾値を超える回数を所定期間内でカウントする第１のカウント手段と、画像データの現フレームについて差分算出手段で算出された差分値と、画像データの過去のフレームについて差分算出手段で算出された差分値とで正負が異なる回数を所定期間内でカウントする第２のカウント手段と、第１のカウント手段にカウントされた回数が所定値を超えた場合に、第２のカウント手段にカウントされた回数と所定値とを比較し、比較結果に基づき被写体に対する光源の光源周波数を識別する識別手段とを有することを特徴とする。
【００１０】
また、本発明は、差分算出手段が、被写体を撮像手段が撮像して出力された画像データのフレームの所定領域の特徴量と、画像データのフレームに対して過去のフレームの所定領域の特徴量との差分を示す差分値を算出する差分算出ステップと、第１のカウント手段が、差分算出ステップで算出された差分値の絶対値が閾値を超える回数を所定期間内でカウントする第１のカウントステップと、第２のカウント手段が、画像データの現フレームについて差分算出ステップで算出された差分値と、画像データの過去のフレームについて差分算出ステップで算出された差分値とで正負が異なる回数を所定期間内でカウントする第２のカウントステップと、識別手段が、第１のカウントステップによりカウントされた回数が所定値を超えた場合に、第２のカウントステップによりカウントされた回数と所定値とを比較し、比較結果に基づき被写体に対する光源の光源周波数を識別する識別ステップとを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、被写体の光源周波数を簡易な処理およびシステムにより識別可能となるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の第１の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
【図２】図２は、画像処理部の構成を、本発明の第１の実施形態に関連の深い部分を抜粋して示す機能ブロック図である。
【図３】図３は、参照領域の例を示す略線図である。
【図４】図４は、参照領域内の画素平均値ＰAVGの算出方法について説明するための略線図である。
【図５】図５は、本発明の第１の実施形態による光源周波数の識別方法について説明するための略線図である。
【図６】図６は、本発明の第１の実施形態によるフリッカ抑制方法の一例の処理を示すフローチャートである。
【図７】図７は、フリッカ検知部の一例の構成を示すブロック図である。
【図８】図８は、フリッカ検知部に供給される垂直同期信号Ｖsync、水平有効画素同期信号Ｈrefおよび画像データを概略的に示す一例のタイムチャートである。
【図９】図９は、参照領域における画素平均値ＰAVGのフレーム間の差分値を、時間の推移に伴い実測した例を示す略線図である。
【図１０】図１０は、参照領域における画素平均値ＰAVGのフレーム間の差分値を、時間の推移に伴い実測した例を示す略線図である。
【図１１】図１１は、画像内に映り込む車体の一部の画像領域を参照領域に設定することを説明するための略線図である。
【図１２】図１２は、インタレース走査の画像データを説明するための略線図である。
【図１３】図１３は、本発明の第２の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
【図１４】図１４は、画像処理部の構成を、本発明の第２の実施形態に関連の深い部分を抜粋して示す機能ブロック図である。
【図１５】図１５は、本発明の第２の実施形態によるフリッカ抑制方法の一例の処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
以下に添付図面を参照して、この発明にかかる画像処理装置の第１の実施形態を詳細に説明する。図１は、本発明の第１の実施形態に適用可能な撮像装置の一例の構成を示す。この撮像装置は、撮像部１０、画像処理部２０およびＲＡＭ(Random  Access  Memory)３０を有する。Ｄ／Ａ変換部（ＤＡＣ）４０は、画像処理部２０から出力される画像データをアナログ画像信号に変換して後段に渡す。
【００１４】
撮像部１０は、撮像素子と、撮像素子から出力された撮像信号に対してノイズ除去、ＡＧＣ(Auto  Gain  Control)などの所定の処理を施す撮像信号処理部と、撮像信号処理部で処理された画像信号をデジタルの画像データに変換するＡ／Ｄ変換部とを有する。撮像素子としては、ＣＭＯＳ(Complementary  Metal-Oxide  Semiconductor)イメージセンサを用い、ローリングシャッタ方式によりライン順次で露光を行う。露光時間は、撮像部１０が有する図示されないレジスタに書き込まれる値により設定される。
【００１５】
撮像部１０は、被写体を撮像した画像データを、例えばＹＣｂＣｒ４２２形式により出力すると共に、垂直同期信号Ｖsyncおよび水平有効画素同期信号Ｈrefを出力する。水平有効画素同期信号Ｈrefは、１ラインにおける有効画素領域を示す。画像データの有効画像領域は、水平６４０画素×垂直４８０ラインであるものとする。
【００１６】
画像処理部２０は、例えばＦＰＧＡ(Field  Programmable  Gate  Array)により構成され、フォーマット変換部２１、フリッカ検知部２２、メモリＩ／Ｆ（インターフェイス）２３、画像伸張部２４、ＤＡＣ  Ｉ／Ｆ（インターフェイス）２５およびプロセッサ部２６を有する。フォーマット変換部２１は、撮像部１０から出力された、ＹＣｂＣｒ４２２形式の画像データを、ＹＣｂＣｒ４４４形式の画像データに変換し、輝度成分Ｙ、色差成分ＣｒおよびＣｂの画像データをそれぞれ出力する。
【００１７】
なお、以下では、特に記載のない限り、これら輝度成分Ｙ、色差成分ＣｒおよびＣｂそれぞれの画像データを「画像データ」として纏めて記述する。
【００１８】
フリッカ検知部２２は、フォーマット変換部２１から出力された画像データと、撮像部１０から出力された垂直同期信号Ｖsyncおよび水平有効画素同期信号Ｈrefとを用いて当該画像データの特徴量を算出する。そして、算出された特徴量からフリッカをキャンセルする処理を行うために必要な情報を生成し、プロセッサ部２６に渡す。
【００１９】
プロセッサ部２６は、フリッカ検知部２２から受け取った情報に基づき、画像データ中のフリッカの有無の検知を行い、フリッカが検知された場合に、フリッカの原因となる被写体光源の光源周波数の判定を行う。そして、判定結果に応じてフリッカキャンセル用レジスタ切り替え命令を生成し、撮像部１０が有する露光時間を設定するためのレジスタの値を書き換える。これにより、撮像素子の露光時間が光源周波数に適応した値に設定され、フリッカの発生が抑制される。
【００２０】
なお、フリッカの発生を抑制する場合、被写体光源の光源周波数に対応した周期で露光を行うように、撮像素子の露光時間が設定される。例えば、５０Ｈｚ地域であれば、光源周波数が１００Ｈｚとなり、撮像素子がこの１００Ｈｚの周期で露光を行うように、露光時間が設定される。
【００２１】
フリッカ検知部２２は、さらに、フォーマット変換部２１から供給された画像データをそのまま出力する。この画像データは、メモリＩ／Ｆ２３を介してＲＡＭ３０に書き込まれる。ＲＡＭ３０は、例えばフレームメモリとして用いられ、１フレーム分の画像データが書き込まれる。
【００２２】
画像伸張部２４は、ＲＡＭ３０に書き込まれた１フレーム分の画像データを、メモリＩ／Ｆ２３を介して読み出し、補間処理などを用いて、読み出した画像データのサイズを水平方向に伸張する。例えば、画像伸張部２４は、元の画像データの水平６４０画素×垂直４８０ラインのサイズを、水平７２０画素×垂直４８０ラインのサイズに伸張する。なお、この画像伸張部２４による画像データの伸張処理は、後段のＤＡＣ４０の仕様に対応するものである。
【００２３】
画像伸張部２４で伸張された画像データは、ＤＡＣ  Ｉ／Ｆ２５を介して出力される。ＤＡＣ４０は、ＤＡＣ  Ｉ／Ｆ２５から出力された画像データをアナログ画像信号に変換し、後段に渡す。
【００２４】
図２は、画像処理部２０の構成を、本第１の実施形態に関連の深い部分を抜粋して示す機能ブロック図である。フリッカ検知部２２は、平均値算出部５０および差分算出部５１を有する。平均値算出部５０は、撮像部１０から出力された画像データによる画像の所定領域を参照領域として、参照領域内の画素値の平均値（以下、画素平均値ＰAVGと呼ぶ）を、当該画像データの特徴量として、フレーム毎に算出する。画素値は、画像データのうち、例えば輝度成分Ｙの画素データの値を用いることができる。これに限らず、色差成分Ｃｂや色差成分Ｃｂの画素データの値を用いてもよい。
【００２５】
図３は、参照領域の例を示す。画像データによる、水平６４０画素×垂直４８０ラインの撮像画像８０内の所定位置に対して、参照領域を設定する。図３の例では、参照領域のサイズが水平１２８画素×垂直３２ラインとされている。また、図３の例では、参照領域が撮像画像８０内の下部に配置されているが、これはこの例に限定されず、撮像画像８０内の他の位置に参照領域を配置してもよい。
【００２６】
図４を用いて、参照領域内の画素平均値ＰAVGの算出方法について説明する。ここで、参照領域の水平画素数を値Ｍ、ライン数（垂直方向の画素数）を値Ｎとする。平均値算出部５０は、下記の式（１）に従い、参照領域内の全画素の画素値を加算し、加算結果を参照領域内の画素数で除して画素平均値ＰAVGを算出する。
【数１】
0005644451.tif 000002
【００２７】
平均値算出部５０は、垂直同期信号Ｖsyncと、上述のようにして参照領域内の画素データから算出した画素平均値ＰAVGとを、差分算出部５１に対して出力する。差分算出部５１は、供給された現フレームの画素平均値ＰAVGと、図示されないレジスタなどに保持されている前フレームの画素平均値ＰAVGとの差分値を算出する。そして、この差分値の絶対値が閾値を超えた回数をカウントし、カウント値Ｄｃを出力する。
【００２８】
また、差分算出部５１は、画像データが前フレームから現フレームへと遷移した際に、画素平均値ＰAVGがゼロ点を跨いだ回数をカウントし、カウント値Ｚｃを出力する。さらに、差分算出部５１は、垂直同期信号Ｖsyncの回数をカウントしてフレームカウント値Ｆｃを求める。垂直同期信号Ｖsync、カウント値Ｄｃ、カウント値Ｚｃおよびフレームカウント値Ｆｃは、プロセッサ部２６に渡される。
【００２９】
プロセッサ部２６は、フレームカウント値判定部６０、フリッカ有無判定部６１、光源周波数識別部６２およびフリッカキャンセル命令部６３を有する。フレームカウント値判定部６０は、差分算出部５１から受け取ったフレームカウント値Ｆｃが所定値に達したか否かを判定する。フリッカ有無判定部６１は、フレームカウント値判定部６０でフレームカウント値Ｆｃが所定値を超えたと判定した場合に、差分算出部５１から受け取ったカウント値Ｄｃが所定値Ｄｔｈを超えたか否かを判定する。光源周波数識別部６２は、カウント値Ｄｃが所定値Ｄｔｈを超えた場合に、現フレームおよび前フレームの画素平均値ＰAVGに基づき、画像データの光源周波数が５０Ｈｚおよび６０Ｈｚの何れであるかを識別する。
【００３０】
フリッカキャンセル命令部６３は、光源周波数識別部６２の識別結果に応じた露光時間を撮像部１０に設定するためのフリッカキャンセル用レジスタ切り替え命令を生成する。この命令は、インターフェイス（Ｉ／Ｆ）５２に供給される。インターフェイス５２は、この命令に従い、撮像部１０が有する、露光時間を設定するための値（露光値）が格納されるレジスタ１１の内容を書き換える。
【００３１】
周知のように、撮像部１０における露光時間を、光源周波数による周期の整数倍とすることで、画像データのフリッカをキャンセルできる。例えば、光源周波数が５０Ｈｚの場合、露光時間を１００Ｈｚすなわち１／１００秒とすることで、フリッカのキャンセルが可能である。同様に、光源周波数が６０Ｈｚの場合、例えば露光時間を１２０Ｈｚすなわち１／１２０秒の整数倍とすることで、フリッカのキャンセルが可能である。フリッカキャンセル命令部６３は、露光時間を、１／１００秒および１／１２０秒のうち光源周波数の識別結果に応じた値に設定するようなフリッカキャンセル用レジスタ切り替え命令を生成する。
【００３２】
次に、本第１の実施形態による光源周波数の識別方法について、図５を用いてより詳細に説明する。図５は、横軸に時間の経過を示し、フレームレートと光源の明滅周期（光源周波数）との一例の関係を模式的に示す。
【００３３】
例えば非インバータ方式の蛍光灯や水銀灯などの放電灯は、電源周波数の２倍の周波数で明滅を繰り返す。ローリングシャッタ方式では、ライン順次に露光を行うため、露光時間が光源周波数に適応していない場合、撮像画像には、この明滅周期に対応した垂直方向の間隔で、水平方向の暗い縞が現れる。さらに、光源周波数がフレームレートに同期していない場合には、図５に例示されるように、フレーム上の明滅位置がフレームに従いずれていくため、水平方向の暗い縞が垂直方向に流れるようなフリッカとなる。本第１の実施形態では、この垂直方向に流れるフリッカを抑制する。以下では、特に記載のない限り、フリッカとはこの垂直方向に流れるフリッカを指すものとする。
【００３４】
先ず、フリッカ有無の判定方法について説明する。画像の少なくとも垂直方向における所定領域を参照領域として、参照領域内において上述の画素平均値ＰAVGを当該画像の特徴量として算出し、算出した画素平均値ＰAVGのフレーム間での差分を求める。上述したように、フリッカは、水平方向の暗い縞の位置がフレーム毎に順次変化することで生じる。そのため、所定範囲に限定した参照領域における画素平均値ＰAVGのフレーム間の差分を求め、この差分の絶対値が所定の閾値を超えた場合に、フリッカが存在すると判定できる。
【００３５】
なお、ここでは、画像の特徴量として、参照領域内の画素の画素値の平均値を用いているが、これはこの例に限定されない。例えば、画像の特徴量として、参照領域内の画素の画素値の合計値を用いてもよい。
【００３６】
ここで、画素平均値ＰAVGのフレーム間の差分の絶対値を求める処理は、参照領域におけるフリッカによる暗い縞と明るい部分との比率のフレーム間での変化を求める処理と同義であるといえる。したがって、参照領域の垂直方向のサイズを、光源の明滅周期による間隔の１／２以下になるように定めるのが好ましい（図５参照）。換言すれば、参照領域は、画像データによる画像の垂直方向のサイズに対する参照領域の垂直方向のサイズの比が、基準とする光源周波数の４倍に対する画像データのフレームレートの比よりも小さくなるように定める。このように参照領域の垂直方向のサイズを定めることにより、参照領域内におけるフリッカによる暗い縞と明るい部分との比率のフレーム間での変化を、より精度よく検出することができる。なお、基準とする光源周波数は、５０Ｈｚおよび６０Ｈｚの何れでも構わない。
【００３７】
なお、実際には、画像のノイズなどの影響を排除するために、複数フレームに亘って差分の絶対値が閾値を超えた回数をカウントし、当該カウント値Ｄｃが所定値Ｄｔｈを超えた場合に、フリッカが存在すると判定する。
【００３８】
次に、光源周波数の判定方法について説明する。フリッカ有無の判定においてフリッカが存在すると判定された場合に、上述の差分がフレーム間で０を跨いで変化した回数を、所定フレーム期間内でカウントし、カウント値Ｚｃを求める。そして、当該カウント値Ｚｃを所定値Ｚｔｈと比較する。比較の結果、カウント値Ｚｃが所定値Ｚｔｈよりも大きければ光源周波数が６０Ｈｚであると判定し、カウント値Ｚｃが所定値Ｚｔｈより小さければ光源周波数が５０Ｈｚであると判定する。
【００３９】
すなわち、光源の明滅周期とフレームレートとがずれている場合、画素平均値ＰAVGのフレーム間の差分は、フレームの更新に伴い周期的に変化することになる。この差分の変化の周期は、光源の明滅周期とフレームレートとの比率に応じて決定される。したがって、フレームレートが固定であれば、差分の変化の周期を求めることで、光源の明滅周期すなわち光源周波数を知ることができる。
【００４０】
図６は、本第１の実施形態によるフリッカ抑制方法の一例の処理を示すフローチャートである。なお、この図６のフローチャートによる処理は、撮像部１０から出力される画像データのフレームレートｆｒが２５Ｈｚ＜ｆｒ＜２７.５Ｈｚの場合の例である。また、このフローチャートによる処理に先立って、フレームカウント値Ｆｃ、カウント値Ｄｃおよびカウント値Ｚｃがそれぞれ０に初期化される。
【００４１】
フリッカ検知部２２は、ステップＳ１００で、撮像部１０で撮像された１フレームの画像データを取得する。次に、ステップＳ１０１で、フリッカ検知部２２の平均値算出部５０は、１フレームの画像における参照領域の画素を抽出し、抽出した画素の画素値から、上述の式（１）に従い画素平均値ＰAVGを算出する。
【００４２】
次のステップＳ１０２で、フリッカ検知部２２は、フレームカウント値Ｆｃを１だけ増加させ、処理がステップＳ１０３に移行される。フレームカウント値Ｆｃは、プロセッサ部２６に渡される。ステップＳ１０３で、差分算出部５１が現在のフレームの画素平均値ＰAVGと、レジスタなどに保持された前フレームの画素平均値ＰAVGとの差分絶対値を算出し、フリッカ検知部２２は、算出された差分絶対値が予め設定された閾値を超えたか否かを判定する。若し、超えていないと判定したら、処理をステップＳ１０５に移行させる。一方、超えたと判定したら、ステップＳ１０４でカウント値Ｄｃを１だけ増加させて、処理をステップＳ１０５に移行させる。カウント値Ｄｃは、プロセッサ部２６に渡される。
【００４３】
ステップＳ１０５では、フリッカ検知部２２は、現在のフレームの画素平均値ＰAVGが前フレームの画素平均値ＰAVGに対してゼロ点を超えているか否かを判定する。具体的には、現在および前フレームとで画素平均値ＰAVGの正負が異なるか否かを判定する。正負が異なれば、ゼロ点を超えていると判定できる。若し、ゼロ点を超えていないと判定されたら、処理をステップＳ１０７に移行させる。一方、ゼロ点を超えていると判定したら、ステップＳ１０６でカウント値Ｚｃを１だけ増加させて、処理をステップＳ１０７に移行させる。カウント値Ｚｃは、プロセッサ部２６に渡される。
【００４４】
ステップＳ１０７で、プロセッサ部２６内のフレームカウント値判定部６０は、フレームカウント値Ｆｃが所定値を超えたか否かを判定する。若し、超えていないと判定したら、処理をステップＳ１００に戻し、次のフレームについて処理を行う。一方、フレームカウント値Ｆｃが所定値を超えたと判定したら、処理をステップＳ１０８に移行させる。
【００４５】
ステップＳ１０８で、プロセッサ部２６内のフリッカ有無判定部６１は、カウント値Ｄｃが予め設定された閾値Ｄｔｈを超えたか否かを判定する。すなわち、プロセッサ部２６は、このステップＳ１０８でフリッカの有無を検知する。若し、カウント値Ｄｃが閾値Ｄｔｈを超えていないと判定したら、処理をステップＳ１００に戻し、次のフレームについて処理を行う。一方、カウント値Ｄｃが閾値Ｄｔｈを超えたと判定したら、処理をステップＳ１０９に移行させる。
【００４６】
ステップＳ１０９で、プロセッサ部２６内の光源周波数識別部６２は、カウント値Ｚｃと、予め設定された所定値Ｚｔｈとを比較する。すなわち、プロセッサ部２６は、このステップＳ１０９で、光源周波数を識別する。比較の結果、若し、カウント値Ｚｃが所定値Ｚｔｈを超えたと判定したら、光源周波数が６０Ｈｚであるものと識別し、処理をステップＳ１１０に移行させる。ステップＳ１１０で、プロセッサ部２６内のフリッカキャンセル命令部６３は、光源周波数が６０Ｈｚのフリッカをキャンセルするためのフリッカキャンセル用レジスタ切り替え命令を生成する。この命令は、インターフェイス５２に供給される。インターフェイス５２は、この命令に従い、撮像部１０におけるレジスタ１１の値を書き換える。
【００４７】
一方、光源周波数識別部６２は、ステップＳ１０９での比較の結果、カウント値Ｚｃが所定値Ｚｔｈ以下であると判定したら、光源周波数が５０Ｈzであるものと識別し、処理をステップＳ１１１に移行させる。ステップＳ１１１で、フリッカキャンセル命令部６３は、光源周波数が５０Ｈｚのフリッカをキャンセルするためのフリッカキャンセル用レジスタ切り替え命令を生成する。この命令は、インターフェイス５２に供給される。インターフェイス５２は、この命令に従い、撮像部１０におけるレジスタ１１の値を書き換える。
【００４８】
ステップＳ１１０またはステップＳ１１１の処理が終了すると、処理がステップＳ１００に戻されて、次のフレームについて、同様の処理がなされる。
【００４９】
なお、上述のステップＳ１０９での判定条件は、撮像部１０から出力される画像データのフレームレートｆｒにより変化する。例えば、フレームレートｆｒが２５ｆｐｓ〜３０ｆｐｓの範囲では、２５ｆｐｓ＜ｆｒ＜２７.５ｆｐｓで図６に示した判定となる。一方、２７.５ｆｐｓ＜ｆｒ＜３０ｆｐｓでは、判定結果が逆となる。すなわち、フリッカキャンセル命令部６３は、２７.５ｆｐｓ＜ｆｒ＜３０ｆｐｓでは、カウンタ値Ｚｃが所定値Ｚｔｈを超える場合に光源周波数が５０Ｈｚ、カウンタ値Ｚｃが所定値Ｚｔｈ以下の場合に光源周波数が６０Ｈｚのフリッカをキャンセルするためのフリッカキャンセル用レジスタ切り替え命令を、それぞれ生成する。
【００５０】
また例えば、フレームレートｆｒが５０ｆｐｓ〜６０ｆｐｓの範囲では、５０ｆｐｓ＜ｆｒ＜５５ｆｐｓで図６に示した判定となる。一方、５５ｆｐｓ＜ｆｒ＜６０ｆｐｓでは、判定結果が逆となる。なお、フレームレートｆｒが２７.５ｆｐｓや５５ｆｐｓの場合は、光源周波数が５０Ｈｚと６０Ｈｚの場合とでカウンタ値Ｚｃが略等しくなり、光源周波数の識別ができないと考えられる。
【００５１】
フレームレートｆｒの値は、例えば撮像部１０において固定的とし、フリッカ検知部２２においてＲＯＭ(Read  Only  Memory)などに予め保持しておいてもよい。これに限らず、撮像部１０からフレームレートｆｒを示す情報を画像処理部２０に送信し、フリッカ検知部２２が受け取るようにしてもよい。さらに、フリッカ検知部２２など画像処理部２０の内部において、撮像部１０から出力される画像データのフレームレートｆｒを、例えば垂直同期信号Ｖsyncの間隔を計測して取得するようにもできる。
【００５２】
図７は、フリッカ検知部２２の一例の構成を示す。フリッカ検知部２２に対して、撮像部１０から出力された垂直同期信号Ｖsyncおよび水平有効画素同期信号Ｈrefと、フォーマット変換部２１から出力された輝度成分Ｙ、色差成分ＣｒおよびＣｂそれぞれの画像データとが供給される。なお、フリッカ検知部２２は、図示されないクロック生成部から供給される、画素タイミングに同期したクロックに従い動作する。
【００５３】
垂直同期信号Ｖsyncは、フリッカ検知部２２からそのまま出力されると共に、エッジ検出部１１０および１３０にそれぞれ供給される。水平有効画素同期信号Ｈrefは、フリッカ検知部２２からそのまま出力されると共に、エッジ検出部１００、Ｘ座標カウンタ１０２にそれぞれ供給される。また、輝度成分Ｙ、色差成分ＣｒおよびＣｂそれぞれの画像データは、フリッカ検知部２２からそのまま出力されると共に、輝度成分Ｙ、色差成分ＣｒおよびＣｂのうち何れか１の画像データ（輝度成分Ｙの画像データとする）が加算部１１１に供給される。
【００５４】
図８は、フリッカ検知部２２に供給される垂直同期信号Ｖsync、水平有効画素同期信号Ｈrefおよび画像データを概略的に示す一例のタイムチャートである。図８（ａ）に例示される垂直同期信号Ｖsyncは、エッジの立ち上がりでフレームの先頭を示す。図８（ｂ）に例示される水平有効画素同期信号Ｈrefは、エッジの立ち上がりおよび立ち下がりで、ラインの先頭および終端をそれぞれ示す。すなわち、水平有効画素同期信号Ｈrefは、Ｈレベルでラインの有効画素期間を示す。図８（ｃ）に例示されるように、水平有効画素同期信号ＨrefがＨレベルの期間に、有効な画像データがクロックに同期した画素データとして供給される。
【００５５】
エッジ検出部１００は、水平有効画素同期信号Ｈrefの立ち上がりを検出したら、イネーブル信号ＥｎａをＹ座標カウンタ１０１に出力する。Ｙ座標カウンタ１０１は、このイネーブル信号Ｅｎａを受け取ったら、Ｙ座標すなわちラインのカウント値を１だけ増加させる。Ｙ座標カウンタ１０１は、カウント値が４８０になったらカウント値をリセットする。Ｘ座標カウンタ１０２は、水平有効画素同期信号ＨrefがＨレベルの期間において、クロックをカウントし、Ｘ座標のカウント値とする。Ｘ座標カウンタ１０２は、カウント値が６４０になったら、カウント値をリセットする。
【００５６】
Ｙ座標カウンタ１０１およびＸ座標カウンタ１０２のカウント値は、それぞれ参照領域判定部１０３に供給される。参照領域判定部１０３は、予め参照領域の画像内における座標が設定されている。参照領域判定部１０３は、Ｙ座標カウンタ１０１およびＸ座標カウンタ１０２のカウント値がそれぞれ参照領域内部のＹ座標およびＸ座標を示している場合に、イネーブル信号Ｅｎａを加算部１１１に対して出力する。
【００５７】
上述した図３の例では、参照領域が画像内における所定位置の１２８画素×３２ラインの領域とした場合、４８０ラインのうち所定領域の３２ラインそれぞれにおける位置が互いに対応する連続する１２８画素の期間において、イネーブル信号Ｅｎａが出力される。
【００５８】
加算部１１１は、参照領域判定部１０３からイネーブル信号Ｅｎａが供給されると、フォーマット変換部２１からクロックに同期して供給された画素データの値（画素値）を累積的に加算する。一方、エッジ検出部１１０は、垂直同期信号Ｖsyncの立ち下がりを検出したら、加算部１１１に対してリセット信号Ｒｓｔを出力する。加算部１１１は、リセット信号Ｒｓｔを受け取ったら、累積的に加算した画素値すなわち参照領域の画素値の合計値を画素平均値演算部１１２に対して出力し、その後、この合計値をリセットする。
【００５９】
画素平均値演算部１１２は、上述した式（１）に従い、加算部１１１から供給された参照領域の画素値の合計値を参照領域の画素数で除して、現フレームの参照領域における画素平均値ＰAVGを算出する。
【００６０】
ここで、例えばフリッカ検知部２２を含む画像処理部２０がＦＰＧＡで構成される場合、任意の値Ｍおよび値Ｎに対して上述の式（１）の演算を行う演算回路をＦＰＧＡに実装するのは、困難である。この場合、参照領域に含まれる画素数として、例えば２のｎ乗（ｎは自然数）で表される画素数を選択すると、画素平均値ＰAVGが、参照領域の画素値の合計値を右にｎビットシフトするだけで求められ、好ましい。参照領域を１２８画素×３２ラインとした図３の例では、参照領域に含まれる画素の総数は、１２８×３２＝４０９６画素＝２１２画素となり、合計値を１２ビット右シフトすることで、参照領域における画素値の平均値を求めることができる。
【００６１】
画素平均値演算部１１２で算出された現フレームの画素平均値ＰAVGは、レジスタ１１３を介して、差分値算出部１１５およびレジスタ１１４にそれぞれ供給される。レジスタ１１４は、画素平均値演算部１１２から現フレームの画素平均値ＰAVGが供給されると、前フレームの処理時において格納された画素平均値ＰAVGを出力し、現フレームの画素平均値ＰAVGを格納する。レジスタ１１４から出力された前フレームの画素平均値ＰAVGは、差分値算出部１１５に供給される。
【００６２】
差分値算出部１１５は、レジスタ１１３から供給された現フレームの画素平均値ＰAVGと、レジスタ１１４から供給された前フレームの画素平均値ＰAVGとの差分を算出する。算出された差分値は、現フレームの差分値として閾値比較部１１６、レジスタ１１８およびゼロクロス検出部１１９にそれぞれ供給される。
【００６３】
閾値比較部１１６は、差分値算出部１１５から供給された差分値の絶対値を、予め設定された閾値と比較し、比較の結果、絶対値が閾値を超えたと判定したら、イネーブル信号Ｅｎａをカウンタ１１７に対して出力する。カウンタ１１７は、イネーブル信号Ｅｎａが供給されると、カウント値Ｄｃを１だけ増加させてプロセッサ部２６に渡す。
【００６４】
レジスタ１１８は、差分値算出部１１５から現フレームの差分値が供給されると、前フレームの処理時において格納された差分値を出力し、現フレームの差分値を格納する。レジスタ１１８から出力された前フレームの差分値は、ゼロクロス検出部１１９に供給される。
【００６５】
ゼロクロス検出部１１９は、差分値算出部１１５から供給された現フレームの差分値と、レジスタ１１８から供給された前フレームの差分値とで、正負が異なるか否かを判定する。若し、異なると判定したら、イネーブル信号Ｅｎａをゼロ点カウンタ１２０に対して出力する。ゼロ点カウンタ１２０は、イネーブル信号Ｅｎａが供給されると、カウント値Ｚｃを１だけ増加させてプロセッサ部２６に渡す。
【００６６】
エッジ検出部１３０は、垂直同期信号Ｖsyncの立ち上がりを検出すると、イネーブル信号Ｅｎａをフレームカウンタ１３１に対して出力する。フレームカウンタ１３１は、イネーブル信号Ｅｎａが供給されると、フレームカウント値Ｆｃを１だけ増加させてプロセッサ部２６に渡すと共に、フレームカウント値Ｆｃをフレーム判定部１３２に渡す。フレームカウンタ１３１は、フレームカウント値Ｆｃが１００になったら、フレームカウント値Ｆｃをリセットする。
【００６７】
フレーム判定部１３２は、フレームカウント値Ｆｃが０か否かを判定する。若し、フレームカウント値Ｆｃが０であると判定したら、リセット信号Ｒｓｔをカウンタ１１７およびゼロ点カウンタ１２０に対して出力する。カウンタ１１７およびゼロ点カウンタ１２０は、リセット信号Ｒｓｔが供給されると、カウンタ値Ｄｃおよびカウンタ値Ｚｃをそれぞれリセットする。
【００６８】
プロセッサ部２６は、カウンタ１１７、ゼロ点カウンタ１２０およびフレームカウンタ１３１からそれぞれ供給されたカウント値Ｄｃ、ＺｃおよびＦｃを用いて、図６のフローチャートにおけるステップＳ１０７〜ステップＳ１０９の判定処理を行い、光源周波数に適応したフリッカキャンセル命令を出力する。
【００６９】
次に、本第１の実施形態によるフリッカ有無の判定および光源周波数の識別について、より具体的な例を用いて説明する。図９および図１０は、それぞれ参照領域における画素平均値ＰAVGのフレーム間の差分値を、時間の推移に伴い実測した例を示す。図９は、フレームレートが２９ｆｐｓの場合の例、図１０は、フレームレートが２７ｆｐｓの場合の例をそれぞれ示す。図９および図１０において、横軸は時間の推移をフレーム数で示し、縦軸は差分値を示す。
【００７０】
図９（ｃ）および図１０（ｃ）は、それぞれフリッカが発生していない状態の例を示す。フリッカが発生していない場合は、このように、画素平均値ＰAVGのフレーム間の差分値は、殆ど変化しない。
【００７１】
図９において、図９（ａ）および図９（ｂ）は、それぞれ光源周波数が５０Ｈｚおよび６０Ｈｚの場合の例を示す。フレームレートが２９ｆｐｓ（＞２７.５Ｈｚ）であるので、光源周波数による明滅周期がフレームレートの整数倍により近い６０Ｈｚの場合に、画素平均値ＰAVGのフレーム間の差分値の変化が小さくなることが分かる。
【００７２】
第１の例として、画像データのフレームレートが２９ｆｐｓであって、上述の図６のフローチャートにおいてステップＳ１０７でフレームカウント値Ｆｃと比較する所定値を１００フレームとした場合について説明する。この場合において、光源周波数が５０Ｈｚおよび６０Ｈｚの状態でそれぞれフリッカを発生させて、画素平均値ＰAVGのフレーム間差分値が現フレームと前フレームとで０点を跨いだ回数を示すカウント値Ｚｃを計測する。図９（ａ）および図９（ｂ）の例では、１００フレーム経過後のカウント値Ｚｃは、それぞれ８８回および３２回と計測された。
【００７３】
この場合、上述した図６のフローチャートにおいてカウント値Ｚｃと比較する所定値Ｚｔｈを例えば４５回程度としておくことで、光源周波数が５０Ｈｚおよび６０Ｈｚのうち何れであるかを判定することができる。この例では、光源周波数が５０Ｈｚおよび６０Ｈｚの何れに遷移しても、約４秒後に切り替えが完了し、フリッカキャンセルが行えることが実証された。
【００７４】
第２の例として、画像データのフレームレートが２９ｆｐｓであって、ステップＳ１０７でフレームカウント値Ｆｃと比較する所定値を５０フレームとした場合について説明する。この場合において、図９（ａ）および図９（ｂ）の例では、５０フレーム経過後のカウント値Ｚｃは、それぞれ４４回および１６回と計測された。したがって、上述した図６のフローチャートにおいてカウント値Ｚｃと比較する所定値Ｚｔｈを例えば２３回程度としておくことで、光源周波数が５０Ｈｚおよび６０Ｈｚのうち何れであるかを判定することができる。この例では、光源周波数が５０Ｈｚおよび６０Ｈｚの何れに遷移しても、約２秒後に切り替えが完了し、フリッカキャンセルが行えることが実証された。
【００７５】
第３の例として、画像データのフレームレートが２７ｆｐｓ（＜２７.５Ｈｚ）であって、上述の図６のフローチャートにおいてステップＳ１０７でフレームカウント値Ｆｃと比較する所定値を１００フレームとした場合について説明する。
【００７６】
図１０において、図１０（ａ）および図１０（ｂ）は、それぞれ光源周波数が５０Ｈｚおよび６０Ｈｚの場合の例を示す。フレームレートが２７ｆｐｓであるので、光源周波数による明滅周期がフレームレートの整数倍により近い５０Ｈｚの場合に、画素平均値ＰAVGのフレーム間の差分値の変化が小さくなることが分かる。
【００７７】
この場合において、図１０（ａ）および図１０（ｂ）の例では、１００フレーム経過後のカウント値Ｚｃは、それぞれ５２回および８０回と計測された。したがって、上述した図６のフローチャートにおいてカウント値Ｚｃと比較する所定値Ｚｔｈを例えば６５回程度としておくことで、光源周波数が５０Ｈｚおよび６０Ｈｚのうち何れであるかを判定することができる。この例では、光源周波数が５０Ｈｚおよび６０Ｈｚの何れに遷移しても、約４秒後に切り替えが完了し、フリッカキャンセルが行えることが実証された。
【００７８】
第４の例として、画像データのフレームレートが２７ｆｐｓであって、ステップＳ１０７でフレームカウント値Ｆｃと比較する所定値を５０フレームとした場合について説明する。この場合において、光源周波数が５０Ｈｚおよび６０Ｈｚの状態でそれぞれフリッカを発生させて、画素平均値ＰAVGのフレーム間差分値が現フレームと前フレームとで０点を跨いだ回数を示すカウント値Ｚｃを計測する。図１０（ａ）および図１０（ｂ）の例では、５０フレーム経過後のカウント値Ｚｃは、それぞれ２６回および４０回と計測された。
【００７９】
したがって、上述した図６のフローチャートにおいてカウント値Ｚｃと比較する所定値Ｚｔｈを例えば３２回程度としておくことで、光源周波数が５０Ｈｚおよび６０Ｈｚのうち何れであるかを判定することができる。この例では、光源周波数が５０Ｈｚおよび６０Ｈｚの何れに遷移しても、約２秒後に切り替えが完了し、フリッカキャンセルが行なえることが実証された。
【００８０】
なお、上述では、参照領域は、撮像部１０から出力された画像データによる画像内の任意の位置に設定できるように説明した。これはこの例に限定されず、例えば、撮像部１０に対する位置関係が固定的とされた被写体による画像領域に参照領域を設定することで、誤動作を防止することができる。例えば、車載の用途において、画像内に映り込む車体の一部の画像領域を参照領域に設定することが考えられる。より具体的な例として、撮像部の光学系に広角レンズを用いた撮像装置をバックミラー付近に取り付けた場合、図１１に例示されるように、車体の一部としてのダッシュボードが撮像画像８０の下部に映り込むので、このダッシュボードの画像領域に対して参照領域を設定する。
【００８１】
また、上述では、撮像部１０からプログレッシブ走査による画像データが出力されるものとして説明したが、本発明は、インタレース走査による画像データにも適用可能なものである。すなわち、撮像部１０から出力される画像データが、ＮＴＳＣ(National  Television  System  Committee)方式のようなインタレース走査によるものである場合、当該画像データは、図１２（ａ）に例示されるように、１フレームの奇数ラインからなる第１フィールドと、偶数ラインからなる第２フィールドによるフィールド画像データとなる。
【００８２】
この例では、図１２（ｂ）に示されるように、１フレームの画像データのうち、１ラインおきに配置された第１ライン〜第２６３ラインが第１フィールドの画像データとされ、第２６４ライン〜第５２５ラインが第２フィールドの画像データとされている。なお、第１フィールドにおいて、第１ライン〜第１９ラインが垂直ブランキング期間とされ、第２０ラインから下のラインが有効映像期間とされている。同様に、第２フィールドにおいて、第２６４ライン〜第２８２ラインが垂直ブランキング期間とされ、第２８３ラインから下のラインが有効映像期間とされている。
【００８３】
このように、２つのフィールド画像データが１フレームの画像データを構成するため、第１フィールドおよび第２フィールドのうち何れか一方のフィールド画像データを参照して画素平均値ＰAVGを求めることができる。これに限らず、第１および第２フィールドの画像データを共に参照して画素平均値ＰAVGを求めてもよい。
【００８４】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。上述の第１の実施形態では、参照領域内の画素の画素値の平均値に基づき、水平方向に縞状に現れるフリッカを検出し、フリッカが検出された場合に、フリッカキャンセル用レジスタの切り替えを行うことで、フリッカを抑制している。この場合、検出対象のフリッカ以外の要因によりフリッカ有無を誤判定してしまう場合がある。すなわち、フリッカが発生していないにも関わらず、フリッカが発生していると判定されてしまう場合がある。
【００８５】
この誤判定の要因としては、例えば、撮像部１０に入射される光量の変化に応じて撮像部１０が露光時間を自動的に変更してしまうことが挙げられる。一例として、撮像部１０は、画像データによる撮像画像内の所定範囲において輝度を測定し、当該所定範囲での輝度の平均値を求める。この輝度の平均値が、予め決められた輝度収束範囲の上限を超えた（明るい）場合に、露光の周期は変えずに露光時間を短くし、撮像画像を暗くする。また、輝度の平均値が輝度収束範囲の下限を越えた（暗い）場合には、露光の周期は変えずに露光時間を長くして、撮像画像を明るくする。
【００８６】
このように露光時間が変化することにより、撮像部１０から出力される画像データによる映像自体の明るさが微調整される。この微調整を要因として、誤ったフリッカ有無判定を行ってしまうおそれがある。
【００８７】
そこで、本第２の実施形態では、撮像部１０からフレーム毎に露光値を取得し、取得した現フレームの露光値と、前フレームにおいて取得した露光値とを比較する。そして、所定期間内に現フレームの露光値と前フレームの露光値との間に変化が検出された場合に、フリッカキャンセル用レジスタの切り替えを行わないようにする。こうすることで、より高精度にフリッカ検出を行うことが可能となり、フリッカ有無の誤判定を防ぐことができる。なお、ここでいう露光値は、露光周期毎の露光時間をいうものとする。
【００８８】
図１３は、本第２の実施形態に適用可能な撮像装置の一例の構成を示す。なお、図１３において、上述した図１と共通する部分には同一の符号を付し、詳細な説明を省略する。図１３に示す撮像装置は、上述した図１に示す撮像装置に対して、画像処理部２０’が撮像部１０から露光値を取り込むようにしている点が異なる。
【００８９】
なお、撮像部１０は、入射光の光量に応じて露光量を変化させることができるものとする。例えば、撮像部１０は、出力される画像データのレベルが所定範囲内に収まるように、入射光の光量に応じて露光量を変化させる。上述したように、露光量は、撮像部１０が有するレジスタに書き込まれる値（露光値）により、露光周期毎の露光時間を設定することで制御される。
【００９０】
図１４は、本第２の実施形態による撮像装置における画像処理部２０’を、本第２の実施形態に関連の深い部分を抜粋して示す機能ブロック図である。なお、図１４において、上述した図２と共通する部分には同一の符号を付し、詳細な説明を省略する。図１４に示す画像処理部２０’は、上述した図２に示す画像処理部２０に対し、露光値変化検知部５３が追加されている。
【００９１】
撮像部１０において、レジスタ１１には、露光値が書き込まれる。撮像部１０は、露光量の変化に応じて、レジスタ１１に書き込まれている露光値を書き換える。
【００９２】
画像処理部２０’において、露光値変化検知部５３は、垂直同期信号Ｖsyncを参照して、撮像部１０から出力される画像データのフレーム毎に、レジスタ１１から露光値を取得し、例えばレジスタなどによる露光値保持部（図示しない）に保持する。露光値変化検知部５３は、取得した現フレームの露光値と、露光値保持部に保持される前フレームの露光値とを比較して、前フレームの露光値に対して現フレームの露光値が変化しているか否かを判定する。
【００９３】
フリッカキャンセル命令部６３は、露光値変化検知部５３により前フレームの露光値に対して現フレームの露光値が変化していると判定された場合に、フリッカキャンセル用レジスタ切り替え命令を生成しない。したがって、撮像部１０では、直前までのフリッカキャンセル状態が維持される。
【００９４】
図１５は、本第２の実施形態によるフリッカ抑制方法の一例の処理を示すフローチャートである。なお、図１５のフローチャートにおいて、上述の図６のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。また、この図１５のフローチャートによる処理は、上述の図６のフローチャートと同様に、撮像部１０から出力される画像データのフレームレートｆｒが２５Ｈｚ＜ｆｒ＜２７.５Ｈｚの場合の例である。また、このフローチャートによる処理に先立って、フレームカウント値Ｆｃ、カウント値Ｄｃおよびカウント値Ｚｃがそれぞれ０に初期化される。また、露光値変化の判定に用いるフラグｆｌａｇの値が０に初期化される。
【００９５】
図１５において、ステップＳ１００〜ステップＳ１０４までの処理は、上述した図６のフローチャートにおける処理と同一であるので、ここでの説明を省略する。ステップＳ１０５で、フリッカ検知部２２は、現在のフレームの画素平均値ＰAVGが前フレームの画素平均値ＰAVGに対してゼロ点を超えているか否かを判定する。若し、ゼロ点を超えていないと判定したら、処理をステップＳ２００に移行させる。一方、ゼロ点を超えていると判定したら、ステップＳ１０６でカウント値Ｚｃを１だけ増加させて、処理をステップＳ２００に移行させる。
【００９６】
ステップＳ２００で、露光値変化検知部５３は、現フレームの露光値をレジスタ１１から取得すると共に、露光値保持部から前フレームの露光値を取得する。露光値変化検知部５３は、次のステップＳ２０１で、ステップＳ２００で取得した現フレームの露光値と前フレームの露光値とを比較して、露光値が変化したか否かを判定する。例えば、露光値が８ビットの値であって０〜２５５の値で表現されている場合、現フレームの露光値と前フレームの露光値とで値が１以上異なっている場合に、露光値が変化したと判定する。これに限らず、値が閾値以上異なっている場合に、露光値が変化したと判定することもできる。若し、露光値が変化したと判定された場合、処理がステップＳ２０２に移行され、フラグｆｌａｇの値が１とされる。その後、処理がステップＳ１０７に移行される。
【００９７】
一方、現フレームの露光値と前フレームの露光値とが一致し、露光値が変化していないと判定された場合、処理がステップＳ１０７に移行される。ステップＳ１０７で、フレームカウント値判定部６０は、フレームカウント値Ｆｃが所定値を超えたか否かを判定する。若し、超えていないと判定したら、処理をステップＳ１００に戻す。一方、フレームカウント値Ｆｃが所定値を超えたと判定したら、処理をステップＳ１０８に移行させる。
【００９８】
ステップＳ１０８で、フリッカ有無判定部６１は、カウント値Ｄｃが予め設定された閾値Ｄｔｈを超えたか否かを判定し、フリッカの有無を検知する。若し、カウント値Ｄｃが閾値Ｄｔｈを超えていないと判定したら、処理をステップＳ１００に戻し、次のフレームについて処理を行う。一方、カウント値Ｄｃが閾値Ｄｔｈを超えたと判定したら、処理をステップＳ１０９に移行させる。
【００９９】
ステップＳ１０９で、光源周波数識別部６２は、カウント値Ｚｃと、予め設定された所定値Ｚｔｈとを比較し、光源周波数を識別する。比較の結果、若し、カウント値Ｚｃが所定値Ｚｔｈを超えたと判定したら、光源周波数が６０Ｈｚであるものと識別し、処理をステップＳ２０３に移行させる。ステップＳ２０３で、フリッカキャンセル命令部６３は、フラグｆｌａｇの値が０であるか否かを判定する。
【０１００】
若し、フラグｆｌａｇの値が０であると判定された場合、処理がステップＳ１１０に移行され、フリッカキャンセル命令部６３は、光源周波数が６０Ｈｚのフリッカをキャンセルするためのフリッカキャンセル用レジスタ切り替え命令を生成する。この命令は、インターフェイス５２に供給され、撮像部１０におけるレジスタ１１の値が書き換えられる。
【０１０１】
一方、ステップＳ２０３で、フラグｆｌａｇの値が０ではないと判定された場合、処理がステップＳ２０５に移行されてフラグｆｌａｇの値が０に初期化され、処理がステップＳ１００に戻される。すなわち、フラグｆｌａｇの値が０以外の値（この例ではフラグｆｌａｇ＝１）の場合、現フレームの露光値が前フレームの露光値に対して変化していることを意味するため、フリッカキャンセル命令部６３がフリッカキャンセル用レジスタ切り替え命令を生成しないようにする。
【０１０２】
上述のステップＳ１０９での比較の結果、カウント値Ｚｃが所定値Ｚｔｈ以下であると判定したら、光源周波数が５０Ｈzであるものと識別し、処理をステップＳ２０４に移行させる。ステップＳ２０４で、フリッカキャンセル命令部６３は、フラグｆｌａｇの値が０であるか否かを判定する。
【０１０３】
若し、フラグｆｌａｇの値が０であると判定された場合、処理がステップＳ１１１に移行され、フリッカキャンセル命令部６３は、光源周波数が５０Ｈｚのフリッカをキャンセルするためのフリッカキャンセル用レジスタ切り替え命令を生成する。この命令は、インターフェイス５２に供給され、撮像部１０におけるレジスタ１１の値が書き換えられる。
【０１０４】
一方、ステップＳ２０４で、フラグｆｌａｇの値が０ではないと判定された場合、処理がステップＳ２０５に移行されてフラグｆｌａｇの値が０に初期化され、処理がステップＳ１００に戻される。上述と同様に、フラグｆｌａｇの値が０以外の値（この例ではフラグｆｌａｇ＝１）の場合、現フレームの露光値が前フレームの露光値に対して変化していることを意味するため、フリッカキャンセル命令部６３がフリッカキャンセル用レジスタ切り替え命令を生成しないようにする。
【０１０５】
ステップＳ１１０またはステップＳ１１１の処理が終了すると、処理がステップＳ１００に戻されて、次のフレームについて、同様の処理がなされる。
【０１０６】
このように、本第２の実施形態によれば、露光値の変化を検知して、露光値が変化した場合に、フリッカをキャンセルする光源周波数を変更しないようにしている。そのため、より高精度にフリッカ検出を行うことが可能となり、フリッカ有無の誤判定を防ぐことができる。
【０１０７】
なお、上述では、前フレームの露光値に対して現フレームの露光値が変化したと判定された場合に、フリッカキャンセル命令部６３がフリッカキャンセル用レジスタの切り替え命令を生成しないようにしているが、これはこの例に限定されない。例えば、前フレームの露光値に対して現フレームの露光値が変化したと判定された場合に、光源周波数識別部６２による光源周波数の識別処理を行わないようにしてもよい。
【符号の説明】
【０１０８】
１０  撮像部
１１  レジスタ
２０，２０’  画像処理部
２２  フリッカ検知部
２６  プロセッサ部
５０  平均値算出部
５１  差分算出部
５２  インターフェイス
５３  露光値変化検知部
６０  フレームカウント値判定部
６１  フリッカ有無判定部
６２  光源周波数識別部
６３  フリッカキャンセル命令部
８０  撮像画像
１０１  Ｙ座標カウンタ
１０２  Ｘ座標カウンタ
１０３  参照領域判定部
１１１  加算部
１１２  画素平均値演算部
１１５  差分値算出部
１１６  閾値比較部
１１７  カウンタ
１１９  ゼロクロス検出部
１２０  ゼロ点カウンタ
１３１  フレームカウンタ
１３２  フレーム判定部
【先行技術文献】
【特許文献】
【０１０９】
【特許文献１】特開２００８−１０９２５３号公報
【図１】
0005644451.tif 000003
【図２】
0005644451.tif 000004
【図３】
0005644451.tif 000005
【図４】
0005644451.tif 000006
【図５】
0005644451.tif 000007
【図６】
0005644451.tif 000008
【図７】
0005644451.tif 000009
【図８】
0005644451.tif 000010
【図９】
0005644451.tif 000011
【図１０】
0005644451.tif 000012
【図１１】
0005644451.tif 000013
【図１２】
0005644451.tif 000014
【図１３】
0005644451.tif 000015
【図１４】
0005644451.tif 000016
【図１５】
0005644451.tif 000017