(57)【特許請求の範囲】
【請求項１】
入射光に応じた画像信号を出力する撮像素子と、
前記画像信号を前記撮像素子から読み出す際のフレーム周期の位相調整を行う位相調整部と、
前記画像信号からフレーム単位の露光量を求め、前記位相調整部により位相調整された互いに異なる位相で読み出されたそれぞれのフレームの前記露光量を合成する演算部と、
前記合成後の前記露光量の時間的変化に基づいて、光源の明滅周波数を算出する周波数算出部と
を備えることを特徴とする撮像装置。
【請求項２】
請求項１に記載の撮像装置において、
前記位相調整部は、前記光源の明滅周波数として予め予測される複数の周波数の最大公約数の周波数に相当する周期の整数倍毎の周期で前記位相調整を行う
ことを特徴とする撮像装置。
【請求項３】
請求項１または２に記載の撮像装置において、
前記フレーム周期は、予め予測される前記光源の最大の明滅周期の１／２未満である
ことを特徴とする撮像装置。
【請求項４】
請求項１から３のいずれか一項に記載の撮像装置において、
前記位相調整部は、前記画像信号を前記撮像素子から読み出す際のフレーム周期の位相調整を少なくとも２回行い、
前記演算部は、前記位相調整部により位相調整された少なくとも２つの異なる位相で読み出されたそれぞれのフレームの前記露光量を合成する
ことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関する。
【背景技術】
【０００２】
現在、一般的なＸＹアドレス走査型の撮像素子を備える撮像装置では、アドレス指定によりライン毎に電荷蓄積時間を制御するローリングシャッタ方式が採用されている。
【０００３】
一方、室内光源として普及している蛍光灯は、明滅周波数（例えば５０Ｈｚ又は６０Ｈｚの商用電源周波数）による周期的な輝度変化の影響により、画像に横縞状の明暗むら（以下、「フリッカ」と称する）が生じる場合がある。そこで、光源の明滅周波数を検出して、撮影する動画のフリッカを抑制する撮像装置が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１８９１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、１フレームの画像を垂直走査方向に分割して複数のフリッカ検波枠を設定し、時間的に変動する各フリッカ検波枠内の輝度値のデータからフリッカ成分を抽出した後、光源の明滅周波数を算出するようになっている。そのため、特許文献１の撮像装置では、演算処理が一般的に複雑になるという問題がある。
【０００６】
上記課題に鑑み、本発明の目的は、演算処理が複雑にならずに光源の明滅周波数を算出できる撮像装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る撮像装置は、入射光に応じた画像信号を出力する撮像素子と、前記画像信号を前記撮像素子から読み出す際のフレーム周期の位相調整を行う位相調整部と、前記画像信号からフレーム単位の露光量を求め、前記位相調整部により位相調整された互いに異なる位相で読み出されたそれぞれのフレームの前記露光量を合成する演算部と、前記合成後の前記露光量の時間的変化に基づいて、光源の明滅周波数を算出する周波数算出部とを備えることを特徴とする。
【０００８】
特に、前記位相調整部は、前記光源の明滅周波数として予め予測される複数の周波数の最大公約数の周波数に相当する周期の整数倍毎の周期で前記位相調整を行うことを特徴とする。
【０００９】
また、前記フレーム周期は、予め予測される前記光源の最大の明滅周期の１／２未満であることを特徴とする。
【００１０】
さらに、前記位相調整部は、前記画像信号を前記撮像素子から読み出す際のフレーム周期の位相調整を少なくとも２回行い、前記演算部は、前記位相調整部により位相調整された少なくとも２つの異なる位相で読み出されたそれぞれのフレームの前記露光量を合成することを特徴とする。
【発明の効果】
【００１１】
本発明に係る撮像装置は、演算処理が複雑にならずに光源の明滅周波数を精度よく検出することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る撮像装置の一実施形態である電子カメラ１００の内部構成例を説明するブロック図である。
【図２】従来のフリッカ検出方法の一例を示す図である。
【図３】本実施形態に係る電子カメラ１００のフリッカ検出方法の基本となる動作を示す図である。
【図４】本実施形態に係る電子カメラ１００のフリッカ検出方法の一例を示す図である。
【図５】合成方法の一例を示す図である。
【図６】本実施形態に係る電子カメラ１００のフリッカ検出に関係するブロック図である。
【図７】電子カメラ１００のフリッカ検出処理の一例を示すフローチャートである。
【図８】フリッカ検出処理の変形例を示すフローチャートである。
【図９】フリッカ検出処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明に係る撮像装置の実施形態について図面を用いて詳細に説明する。図１は、本発明に係る撮像装置の一実施形態である電子カメラ１００の構成例を示すブロック図である。尚、電子カメラ１００は動画撮影機能および撮影時に構図を確認するためのライブビュー（以下、ＬＶと称する。）画像表示機能を有する。そして、動画撮影開始時やＬＶ画像表示開始時に光源の明滅周波数を検出して、撮影画像に現れるフリッカを除去する機能を有している。
【００１４】
図１において、電子カメラ１００は、撮影レンズ１０１と、撮像素子１０２と、タイミングジェネレータ（以下、「ＴＧ」と称する。）１０３と、アナログフロントエンド部（以下、「ＡＦＥ」と称する。）１０４と、画像処理部１０５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０７と、表示モニタ１０８と、記録インターフェース部（以下、「記録Ｉ／Ｆ部」と称する。）１０９と、操作部１１０と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１と、バス１１２とを備える。
【００１５】
このうち、ＡＦＥ１０４、画像処理部１０５、ＲＡＭ１０６、ＲＯＭ１０７、表示モニタ１０８、記録Ｉ／Ｆ部１０９及びＣＰＵ１１１は、バス１１２を介して互いに接続され、バス１１２を介して各ブロック間でデータの入出力が行われる。
【００１６】
撮影レンズ１０１は、フォーカスレンズやズームレンズを含む複数のレンズ群で構成される。これらのレンズは不図示のレンズ駆動装置によって駆動され、ＣＰＵ１１１によって制御される。
【００１７】
撮像素子１０２は、一例として撮像面に複数の画素が２次元状（Ｍ行Ｎ列：（Ｍ，Ｎは整数））に配列され、任意のライン（例えばｍ行目：（ｍは１からＭまでの整数））を指定して信号を読み出し可能なＸＹアドレス方式のＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）型の撮像素子である。そして、動画撮影時やＬＶ画像表示時は、アドレス指定によりライン毎に順番に電荷蓄積時間を制御するローリングシャッタ方式を用いる。
【００１８】
ＴＧ１０３は、ＣＰＵ１１１からの指示に従い、撮像素子１０２及びＡＦＥ１０４に駆動信号を出力し、撮像素子１０２から画像信号を読み出すための同期信号を出力する。例えば、撮像素子１０２でローリングシャッタによる撮影を行うためにライン毎に画素の電荷をリセットするタイミング信号や画素に蓄積された電荷を読み出すタイミング信号を出力する。或いは、フレーム周期を与える垂直同期信号を出力する。特に、本実施形態では、ＴＧ１０３は、ＣＰＵ１１１からの指令により、垂直同期信号のフレーム周期に対する位相を調整して撮像素子１０２に出力する。
【００１９】
ＡＦＥ１０４は、撮像素子１０２が生成する画像信号のゲイン調整やＡ／Ｄ変換などを行うアナログフロントエンド回路である。このＡＦＥ１０４が出力するデジタルの画像信号は、ＲＡＭ１０６に一時的に記憶される。
【００２０】
画像処理部１０５は、ＲＡＭ１０６に記録されている画像信号を読み出し、各種の画像処理（階調変換処理、輪郭強調処理、ホワイトバランス処理等）を施す。
【００２１】
ＲＯＭ１０７は、電子カメラ１００の制御を行うプログラム等を予め記憶している不揮発性のフラッシュメモリを用いる。例えば、このＲＯＭ１０７には、ＣＰＵ１１１の制御により撮像素子１０２から間引き読み出しする際の指定アドレスの情報等が予め記録されている。また、電子カメラ１００の動作に必要なパラメータ等も予め記憶されている。そして、これらのパラメータは、電子カメラ１００の操作メニューなどによってユーザーが適宜、変更することができる。
【００２２】
表示モニタ１０８は、例えば液晶モニタが用いられ、ＣＰＵ１１１によってＲＡＭ１０６に記憶されている撮影画像や電子カメラ１００の操作メニュー等を表示する。
【００２３】
記録Ｉ／Ｆ部１０９は、着脱自在の記録媒体１１３を接続するためのコネクタやインターフェース回路を有する。そして、ＣＰＵ１１１の指示により、そのコネクタに接続された記録媒体１１３にアクセスして静止画像や動画の記録や読み出し等を行う。尚、記録媒体１１３として、例えば不揮発性のメモリカードが用いられる。
【００２４】
操作部１１０は、例えば、コマンド選択用のコマンドダイヤル、電源ボタン、レリーズボタン等を有している。そして、操作部１１０は、電子カメラ１００を操作するための指示入力を受け付ける。また、操作部１１０は、コマンドダイヤルを介して、例えば動画の撮影モードの選択を受け付ける。ここで、動画の撮影モードが選択されると、ＣＰＵ１１１はフリッカ検出用のプログラムを実行する。また、静止画の撮影モードが選択された場合に、撮影構図を確認するためのＬＶ画像を表示モニタ１０８に表示する前に、ＣＰＵ１１１はフリッカ検出用のプログラムを実行する。
【００２５】
ＣＰＵ１１１は、電子カメラ１００の統括的な制御を行うプロセッサである。ＣＰＵ１１１は、ＲＯＭ１０７に予め格納されたプログラムを実行することにより電子カメラ１００の各部を制御する。例えば、ＣＰＵ１１１は、ＸＹアドレス指定によりライン毎に電荷蓄積時間を制御するローリングシャッタ方式を用いて、撮像素子１０２から画像信号の読み出しを行う。特に本実施形態では、ＣＰＵ１１１は、フリッカ検出を行うための処理を行う。
［フリッカ検出方法］
先ず、本実施形態に係る電子カメラ１００のフリッカ検出方法について説明する前に、比較例として従来のフリッカ検出方法の一例について説明する。
【００２６】
図２は、従来行われているＣＭＯＳ撮像素子のフリッカ検出の一例について説明する図である。図２（ａ）は、蛍光灯の輝度変化を点線１５１で模式的に示した図である。図２（ｂ）は、１フレームの画像の読み出し開始を示す垂直同期信号のタイミングチャートを示す図である。図２（ｃ）は、ローリングシャッタ方式で撮影した場合の画像１５５および画像１５６を示し、蛍光灯下で明滅周波数に起因して発生するフリッカの様子を誇張して描いた図である。
【００２７】
ここで、例えば光源として使用する蛍光灯は使用する電源周波数（商用電源周波数）の１周期に輝度変化を２回繰り返すので、光源の明滅周波数は商用電源周波数の２倍となる。図２（ａ）の場合は、商用電源周波数が６０Ｈｚの蛍光灯の輝度変化を示し、光源の明滅周期は１／１２０秒になる。ここで、フリッカ検出するために撮影する画像のフレームレートを通常の動画撮影と同じ３０ｆｐｓとすると、図２（ｂ）に示すようにフレーム周期を与える垂直同期信号１５２、１５３および１５４が１／３０秒毎に出力され、１フレーム周期の間に光源の明滅が４回現れることになる。
【００２８】
ここで、ローリングシャッタ方式で撮影を行う場合、ローリングシャッタの露光時間（電荷蓄積時間）が光源の明滅周期（１／１２０秒）のｎ倍（ｎは整数、但し、０を除く）に対応する周期でない場合、撮像素子１０２のライン毎の露光量が異なり、図２（ｃ）の画像１５５や画像１５６に示すような横縞状のフリッカが生じる。尚、図２（ｃ）において、説明がわかり易いように、垂直同期信号１５２から垂直同期信号１５３の期間読み出された画像フレームが画像１５５、垂直同期信号１５３から垂直同期信号１５４の期間読み出された画像フレームが画像１５６であるかのように描いてあるが、厳密にはそれぞれの１つ前のフレームで取得された画像フレームである。例えば、画像１５５は垂直同期信号１５２より前に取得された画像で、画像１５６は垂直同期信号１５２から垂直同期信号１５３の期間に取得された画像である。
【００２９】
従来のＣＭＯＳ撮像素子のフリッカ検出方法として、１画面内に現れる横縞に基づいて蛍光灯の明滅周波数を算出する技術が考えられているが、１画面内での明暗の変化を検出しなければならず、演算処理が複雑になるという問題があった。そこで、本実施形態に係る電子カメラ１００では、演算処理が簡単になるように、１フレーム内で明暗が変化するラインフリッカではなく、図２（ｄ）のようにフレーム毎に明暗が変化する面フリッカを生成し、面フリッカから光源の明滅周波数を精度良く求める。
【００３０】
次に、本実施形態に係る電子カメラ１００で用いるフリッカ検出のベースとなる面フリッカを生成する方法について図３を用いて説明する。本実施形態に係る電子カメラ１００では、光源の明滅周期よりも短い高速フレームレートで撮影することにより、フレーム毎に明暗が変化する面フリッカを生成する。そして、面フリッカの変動周期から光源の明滅周波数を容易に求める。
【００３１】
図３（ａ）は図２（ａ）と同じ光源の輝度変化を示す図で、商用電源６０Ｈｚの蛍光灯の輝度変化の明滅周期を点線１５１で模式的に示した図である。図３（ｂ）は、高速フレームレート（例えば６００ｆｐｓ）で撮影する画像のフレーム周期を与える垂直同期信号１６１、１６２および１６３を図３（ａ）の明滅周期と同じ時間軸で示したタイミングチャートである。図３（ｃ）は、光源の明滅周期毎に撮影される画像フレームの一例を示す図で、光源の明滅周期毎（１／１２０秒毎）に６００ｆｐｓのフレームが５つ撮影される。ここで、図３（ｃ）の各画像フレームは、例えば垂直同期信号１６１と垂直同期信号１６２の期間にローリングシャッタ方式で撮影され、この撮影期間中に光源の輝度が少し変化するので、１画面のライン毎の露光量が少し異なるが、フレーム毎に例えば平均化することによって図３（ｃ）のように一様な露光量の画像フレームが得られる。尚、図３（ｃ）において、図２（ｃ）と同様に、説明がわかり易いように、画像フレーム１５７は、垂直同期信号１６１から垂直同期信号１６２の期間に対応させて描いてあるが、厳密には画像１５７は垂直同期信号１６２後に得られる画像フレームである。同様に、画像フレーム１５８は垂直同期信号１６３後に得られる画像フレームである。
【００３２】
また、光源の明滅周期よりも速いフレームレートで撮影するので、図３（ｃ）に示すように、光源の輝度変化に応じてフレーム毎に明暗が変化する面フリッカとして観測することができる。そして、面フリッカの変動周期から光源の明滅周期を容易に求めることができる。例えばフレームの露光量のピーク周期を検出すれば、そのピーク周期が光源の明滅周期となる。
【００３３】
このように、光源の明滅周期よりも速いフレームレートで撮影して面フリッカに変換することにより、複雑な処理や演算を行うことなく、光源の明滅周期を求めることができるが、光源の明滅周期当たりのフレーム数によってフリッカ検出の精度が制限されるので、できるだけフレームレートを上げるのが好ましい。ところが、フレームレートを速くすると露光時間が短くなるのでフリッカの明暗が判別しにくくなり、ハードウェアの負担も増える。そこで、本実施形態に係る電子カメラ１００では、図３に示した６００ｆｐｓ程度のフレームレートでも１０００ｆｐｓ以上のフレームレートで撮影してフリッカ検出する場合と同等の検出精度が得られる。
【００３４】
次に、図３で説明したフリッカ検出方法をベースとして用いる本実施形態に係る電子カメラ１００のフリッカ検出方法について説明する。
【００３５】
本実施形態に係る電子カメラ１００では、フレーム周期の位相を調整して異なる位相で取得した面フリッカの画像フレームの出力を光源の明滅周期に同期させて同じ時間軸上で合成することにより、極端に速いフレームレートを必要とせず、且つ複雑な演算を行わずに光源の明滅周波数の検出精度を向上することができる。
【００３６】
図４（ａ）は、図３（ａ）および図２（ａ）と同じ光源の輝度変化を示す図で、商用電源６０Ｈｚの蛍光灯の輝度変化の明滅周期を点線１５１で模式的に示した図である。図４（ｂ）は、図３（ｂ）に対応する図で、高速フレームレート（例えば６００ｆｐｓ）で撮影する画像のフレーム周期を与える垂直同期信号１６１、１６２および１６３と、フレーム周期に対して１／２フレーム分だけ垂直同期信号の位相をずらした時の垂直同期信号１８１、１８２および１８３とを図４（ａ）の光源の明滅周期に対応させて描いたタイミングチャートである。ここで、図４（ｂ）が図３（ｂ）と異なるのは、５０ｍｓ周期で垂直同期信号の位相を１／２フレーム周期分だけ遅らせていることである。尚、５０ｍｓの周期で行う理由については後で説明する。
【００３７】
また、図４（ｃ）は、図３（ｃ）と同様に、光源の明滅周期毎（１／１２０秒毎）に撮影される画像フレームの一例を示す図で、光源の明滅周期（点線１５１）の１周期の間に５つの画像フレームが６００ｆｐｓで撮影される。また、図４（ｃ）では５０ｍｓの周期で１／２フレーム周期分だけ遅らせて撮影されるフレームも光源の明滅周期１７１に対して１／２フレーム周期分が遅れる形で６００ｆｐｓのフレームレートで各画像フレームが連続して撮影される。これらの画像フレームも図３（ｃ）と同様に、フレーム毎に明暗が変化する面フリッカとして観測される。
【００３８】
尚、図４（ｃ）において、図３（ｃ）と同様に、説明がわかり易いように、画像１５７は、垂直同期信号１６１から垂直同期信号１６２の期間に対応させて描いてあるが、厳密には画像１５７は垂直同期信号１６２後に得られる画像フレームである。同様に、画像１５８は垂直同期信号１６３後に得られる画像フレーム、画像１５９は垂直同期信号１８２後に得られる画像フレームである。
【００３９】
そして、本実施形態に係る電子カメラ１００では、５０ｍｓのタイミングで１／２フレーム分の位相を遅らせる前のフレームの露光量と遅らせた後のフレームの露光量とを合成し、合成後の露光量の時間的な変化からフリッカの変動周期、つまり、光源の明滅周期を求める。
【００４０】
ここで、５０ｍｓの周期で垂直同期信号の位相調整を行う理由について説明する。先の説明では、光源として６０Ｈｚの商用電源の蛍光灯の場合について説明したが、実際には６０Ｈｚの商用電源であるか否かは不明なので、本実施形態に係る電子カメラ１００では、想定される光源の明滅周波数を予めＲＯＭ１０７に設定しておき、その中から光源の明滅周波数を特定する。先に説明した５０ｍｓは、日本国内で想定される商用電源の周波数５０Ｈｚと６０Ｈｚの場合の例である。５０Ｈｚの商用電源の場合の明滅周波数は１００Ｈｚ、６０Ｈｚの商用電源の場合の明滅周波数は１２０Ｈｚなので、１００Ｈｚと１２０Ｈｚとの最大公約数の周波数２０Ｈｚが位相調整周波数となる。この場合の位相調整周期は５０ｍｓ（１／２０）である。
【００４１】
このように、位相調整周期は、想定される複数の全ての光源の明滅周波数の整数倍になるので、光源の輝度変化に同期させてフレーム周期の位相を調整することができる。これにより、位相調整周期毎にフレーム周期の位相を調整して取得した一連の画像フレームの露光量を同じ時間軸で合成することができる。
【００４２】
次に、フレーム周期の位相が異なる画像フレームの露光量を同じ時間軸で合成する場合の例について図５を用いて説明する。尚、図５では、光源の明滅周期１２０Ｈｚに対してフレームレートが４８０ｆｐｓの一例を示し、１つの光源の明滅周期に４フレームが含まれる。
【００４３】
図５（ａ）は、垂直同期信号の位相（フレーム周期の位相）をずらしていない場合の光源の明滅パターンと、垂直同期信号とを同じ時間軸で示した図である。図５（ａ）において、垂直同期信号のタイミングＴ１とＴ２の期間に撮影されたフレームは画像フレームＩＭＧ１、タイミングＴ２とＴ３の期間に撮影されたフレームは画像フレームＩＭＧ２、以下同様にタイミングＴ３からＴ９の各フレーム期間において画像フレームＩＭＧ３から画像フレームＩＭＧ７がそれぞれ撮影される。尚、図５（ａ）では、図３（ｃ）および図４（ｃ）のように簡略化せずに、各垂直同期信号の期間で取得される画像フレームが次のフレーム期間で取得されることを厳密に示してある。そして、これらの画像フレームは、図３（ｃ）および図４（ｃ）で説明したように、フレーム内の露光量が一様になるように処理（例えば平均化など）されている。また、図５（ａ）において、各画像フレームに対応させて描いた棒グラフは、画像フレームＩＭＧ１から画像フレームＩＭＧ７の各フレームの露光量に応じた出力レベルＬ１から出力レベルＬ７をそれぞれ示している。
【００４４】
図５（ｂ）は、垂直同期信号の位相（フレーム周期の位相）を１／２位相ずらした場合の光源の明滅パターンと、垂直同期信号とを図５（ａ）と光源の明滅周期とを同期させて同じ時間軸で示した図である。つまり、図５（ａ）のタイミングＴ１の垂直同期信号に対して図５（ｂ）のタイミング１１の垂直同期信号はフレーム周期に対して１／２位相遅れたタイミング関係にある。
【００４５】
図５（ｂ）において、垂直同期信号のタイミングＴ１１とＴ１２の期間に撮影されたフレームは画像フレームＩＭＧ１１、タイミングＴ１２とＴ１３の期間に撮影されたフレームは画像フレームＩＭＧ１２、以下同様にタイミングＴ１３からＴ１９の各フレーム期間において画像フレームＩＭＧ１３から画像フレームＩＭＧ１７がそれぞれ撮影される。尚、図５（ｂ）においても、図３（ｃ）および図４（ｃ）のように簡略化せずに、各垂直同期信号期間で取得される画像フレームが次のフレーム期間で取得されることを厳密に示してある。そして、これらの画像フレームについても、フレーム内の露光量が一様になるように平均化などの処理が施されている。また、図５（ａ）において、各画像フレームに対応して描いた棒グラフは、画像フレームＩＭＧ１１から画像フレームＩＭＧ１７の各フレームの露光量に応じた出力レベルＬ１１から出力レベルＬ１７をそれぞれ示している。
【００４６】
図５（ｃ）は、垂直同期信号の位相をずらしていない図５（ａ）の各画像フレームの出力レベルと、垂直同期信号の位相を１／２位相ずらした図５（ｂ）の各画像フレームの出力レベルとを光源の明滅周期に同期させて同じ時間軸で示した図である。つまり、図５（ａ）の垂直同期信号のタイミングＴ１からＴ９に対してそれぞれ１／２位相遅れて図５（ｂ）の垂直同期信号のタイミングＴ１１からＴ１９が同じ時間軸上に配置される。
【００４７】
図５（ｃ）において、タイミングＴ２とＴ１２の間の出力レベルＬ２１は、図５（ａ）のタイミングＴ２とＴ３の間の出力レベルＬ１と図５（ｂ）のタイミングＴ１１とＴ１２の間の出力レベルＬ１１とを合成した出力レベルとなる。尚、図５（ｃ）での合成方法は、出力レベルＬ１と出力レベルＬ１１の平均値とするが、例えば出力レベルＬ１と出力レベルＬ１１の和でもよい。同様に、図５（ｃ）のタイミングＴ１２とＴ３の間の出力レベルＬ２２は、図５（ａ）の出力レベルＬ１と図５（ｂ）の出力レベルＬ１１との平均値となる。以下同様に、垂直同期信号の位相をずらしていない画像フレームの出力レベルと１／２位相ずらした画像フレームの出力レベルとを同じ時間軸同士で平均値を求め、合成後の出力レベル（露光量）とする。
【００４８】
このようにして、合成後の出力レベルＬ２１からＬ３４が得られる。この合成後の出力レベルは光源の明滅周期の１周期当たり８つの出力が得られるので、フレームレートを２倍に上げることと実質的に同じである。図５の場合は、物理的なフレームレートは４８０ｆｐｓであるが、フリッカ検出するためのフレームレートは９６０ｆｐｓとなる。さらに、２つの画像フレームの出力レベルを演算（和や平均など）するので、明暗のコントラスト比が大きくなり、フリッカの変化を検出しやすくなる。
【００４９】
尚、図５の例では、１／２位相ずらすようにしたが、１／３位相ずらして３種類の異なる位相で各フレームの露光量を取得すれば、合成後のフレームレートは３倍の１４４０ｆｐｓと等価であり、より高精度なフリッカ検出を行うことができる。
【００５０】
特に、本実施形態に係る電子カメラ１００のフリッカ検出処理のベースになる処理は、図３で説明したような面フリッカの検出処理と同じなので、処理が極端に複雑になることはない。
［ＣＰＵ１１１の処理］
次に、上記の処理を実現するためのＣＰＵ１１１の構成について図６を用いて詳しく説明する。図６は、図１の電子カメラ１００において、フリッカ検出に関係するブロックを中心に描いたブロック図で、図１と同符号のものは同じブロックを示す。
【００５１】
図６において、ＣＰＵ１１１は、位相調整部２０１と、演算部２０２と、光源周波数算出部２０３とを有する。また、ＣＰＵ１１１はこれらのブロックの制御や電子カメラ１００全体の制御を行う制御部２０４を有する。なお、本実施形態では、図６において、位相調整部２０１と、演算部２０２と、光源周波数算出部２０３とをＣＰＵ１１１の処理の一部として示してあるが、例えば、ＡＳＩＣ（画像エンジン：Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）のように各ブロックを１つの機能単位に集約して用いてもよい。
【００５２】
位相調整部２０１は、動画やＬＶ画像の撮影時に撮像素子１０２から画像信号を読み出す際のフレーム周期の位相調整を行う。ここで、フリッカ検出時には、予め予測される光源の最大の明滅周期の１／２未満のフレーム周期で撮像素子１０２から画像信号を読み出すように、ＣＰＵ１１１はＴＧ１０３を設定する。一例として、６０Ｈｚの商用電源を用いた蛍光灯が光源である場合、光源の明滅周波数は１２０Ｈｚなので、フレームレートは２４０ｆｐｓ（フレーム／秒）より大きく設定される。これを時間軸で考えるために周期で表現すると、上記の場合の光源の明滅周期１／１２０の１／２未満になるようにフレーム周期（１／２４０未満）が設定される。実際には、フリッカの検出精度を確保するために、光源の１つの明滅周期に数フレームが入るフレーム周期として、図３、図４および図５などで例を挙げた４８０ｆｐｓや６００ｆｐｓなどのフレームレートが設定される。尚、予め想定される光源が複数ある場合は、その中の最大の明滅周期を基準にしてフレームレートを設定する。例えば６０Ｈｚの商用電源を用いた蛍光灯と、５０Ｈｚの商用電源を用いた蛍光灯とが想定される場合は、６０Ｈｚの光源の明滅周波数１２０Ｈｚを基準としてフレームレートを設定する。
【００５３】
そして、位相調整部２０１は、光源の明滅周波数として予め予測される複数の周波数の最大公約数の周波数に相当する周期の整数倍毎の周期（位相調整周期と称する）で、フレーム周期の位相を調整する。例えば先に説明したように、５０Ｈｚと６０Ｈｚの最大公約数は２０Ｈｚとなるので、５０ｍｓ（１／２０）の周期でフレーム周期の位相を調整する。また、フレーム周期の位相調整幅は、予め設定された位相分（１／２位相や１／３位相など）とし、位相調整周期毎に位相調整幅だけフレーム周期の位相を遅らせる。例えばフレームレートが６００ｆｐｓで１／２位相遅らせる場合は、位相調整周期毎に１／３００ｓｅｃだけ、ＴＧ１０３が撮像素子１０２に出力する垂直同期信号を遅らせる。尚、位相調整部２０１は、位相調整周期を計測するためのタイマ２０１ａを有する。
【００５４】
このようにして、位相調整部２０１は、予め設定された位相調整幅だけ遅らせるようにＴＧ１０３を制御し、撮像素子１０２から位相が異なるフレームの画像信号がそれぞれ読み出され、ＲＡＭ１０６に一時的に記憶される。
【００５５】
演算部２０２は、図３で説明した本実施形態のフリッカ検出方法のベースとなる処理を行う露光量算出部２１１と、互いに異なる位相で読み出されたフレームの露光量を合成する露光量合成部２１２とを有する。
【００５６】
露光量算出部２１１は、ＲＡＭ１０６に記憶されている画像信号からフレーム単位の露光量を求める露光量算出処理を行う。例えば６００ｆｐｓなどの高速フレームレートで読み出す画像信号の取得処理と、取得されたフレーム毎に画像信号の明るさ（露光量）の平均値を算出する平均処理とを行う。この時、６００ｆｐｓなどの高速フレームレートを実現するために撮像素子１０２からライン間引き読み出しを行ってもよい。この場合は、ライン間引き読み出しした画像信号の明るさの平均値をそのフレームの明るさ（露光量）とする。或いは、ライン間引きを行わずに、複数ライン単位で画像信号を加算して１ライン分の画像信号として撮像素子１０２から読み出すようにしてもよい。この場合は、飛ばされるラインが無くなるので、撮影画面に局所的に光源フリッカがある場合でもフリッカ検出を行うことができる。尚、高速フレームレートに対応するために、撮像素子１０２にハード的に信号加算を行う加算部を設けるのが好ましい。
【００５７】
このようにして、通常のＸＹアドレス方式のＣＭＯＳ型撮像素子でローリングシャッタ撮影を行う場合に、１フレーム内に横縞状に現れるフリッカをフレーム毎に明るさが変化する面フリッカに変換することができる。尚、ＣＣＤ型撮像素子を用いる場合は全画素で同時に光電変換を行うので、上記のような処理を行わなくても面フリッカの出力が得られる。従って、ＣＣＤ型撮像素子に本実施形態と同様の処理を適用してフリッカ検出を行う場合は、フレームレートを高速化し、位相調整部２０１により位相調整すればよい。
【００５８】
露光量合成部２１２は、位相調整部２０１により位相調整されて読み出された互いに異なる位相で読み出されたフレーム（面フリッカに変換されたフレーム）の露光量を合成する露光量合成処理を行う。尚、合成方法については図５で説明したように、互いに異なる位相で読み出されたフレームの出力レベルを位相調整周期毎に同じ時間軸上に重ね合わせて、合成後の露光量を求める。
【００５９】
光源周波数算出部２０３は、演算部２０２の露光量合成部２１２が求めた合成後の露光量の時間的変化に基づいて、光源の明滅周波数を算出する。光源の明滅周波数の算出は、例えば合成後の露光量がピークとなる間隔から求めてもよいし、ＦＦＴのような数学的手法を用いて周波数検出を行ってもよい。
［フリッカ検出処理］
図７は、電子カメラ１００のフリッカ検出動作の一例を示すフローチャートである。このフローチャートは、コマンドダイヤル等で動画撮影モードが選択された場合や静止画撮影モードでＬＶ画像の表示を行う場合に、ＣＰＵ１１１により開始される。
【００６０】
尚、位相調整周期、位相調整幅、フリッカ検出用フレームの取得時間、フリッカ検出時のフレームレートなどのパラメータは、予めＲＯＭ１０７に記憶されているものとする。以下の例では、位相調整周期を５０ｍｓ、位相調整幅を１／２位相、フリッカ検出用フレームの取得時間を１００ｍｓ、フリッカ検出時のフレームレートを６００ｆｐｓとする。ここで、フリッカ検出用フレームの取得時間が１００ｍｓなので、位相調整無しの５０ｍｓの期間と１／２位相ずらした５０ｍｓの期間のそれぞれのフリッカ検出用画像を合成することができる。
【００６１】
以下、フリッカ検出処理について順番に説明する。
（ステップＳ１０１）ＣＰＵ１１１の制御部２０４は、ＲＯＭ１０７に予め記憶されたフリッカ検出用パラメータを読み出し、フリッカ検出用画像を撮像するための設定を行う。具体的には、制御部２０４は、ＴＧ１０３を介して、撮像素子１０２及びＡＦＥ１０４へ向けて駆動信号を送出し、６００ｆｐｓのフレームレートで画像信号を取得する指示を出す。ここで、制御部２０４は、ローリングシャッタ方式により、撮像素子１０２から順次画像信号を読み出す。
【００６２】
なお、説明の便宜上、この６００ｆｐｓのフレームレートは、フリッカ検出用であって、実際の動画撮影時には、制御部２０４は、動画フォーマットに応じて、例えば、２４ｆｐｓ、３０ｆｐｓ、５０ｆｐｓ若しくは６０ｆｐｓ等のフレームレートに設定する。つまり、フリッカ検出時には、制御部２０４は、フレームレートを通常の動画撮影時よりも速くする。
（ステップＳ１０２）位相調整部２０１は、タイマ２０１ａの時間ｔを０に初期化する。
（ステップＳ１０３）位相調整部２０１は、タイマ２０１ａの時間ｔが位相調整周期Ｔｓ（５０ｍｓ）になったか否かを判別する。ｔ＝Ｔｓの場合はステップＳ１０５に進み、ｔ≠Ｔｓの場合はステップＳ１０４に進む。
（ステップＳ１０４）位相調整部２０１は、６００ｆｐｓのフレームレートで垂直同期信号をＴＧ１０３から撮像素子１０２に出力させ、撮像素子１０２からフリッカ検出用の画像フレームを読み出す。
（ステップＳ１０５）位相調整部２０１は、次に出力する垂直同期信号をフレーム周期の１／２位相ずらすようＴＧ１０３を制御する。
（ステップＳ１０６）位相調整部２０１は、タイマ２０１ａの時間ｔを０に初期化する。
（ステップＳ１０７）演算部２０２の露光量算出部２１１は、撮像素子１０２からフリッカ検出用の画像フレーム毎に露光量を求める。露光量算出部２１１は、求めた露光量をＲＡＭ１０６に一時的に記憶する。
（ステップＳ１０８）位相調整部２０１は、タイマ２０１ａの時間ｔがフリッカ検出用フレームの取得時間Ｔｅ（１００ｍｓ）になったか否かを判別する。ｔ＝Ｔｅの場合はステップＳ１０９に進み、ｔ≠Ｔｅの場合はステップＳ１０３に戻る。尚、実際にはｔ＝Ｔｅの判別は多少の処理遅延などの誤差を含めてｔ≒Ｔｅとする。
（ステップＳ１０９）露光量合成部２１２は、ステップＳ１０７でＲＡＭ１０６に一時的に記憶された互いに異なる位相のフリッカ検出用の画像フレームの露光量（出力レベル）を図５で説明したように位相調整周期毎に同じ時間軸で合成し、図５（ｃ）のような合成後の出力レベルを求める。
（ステップＳ１１０）光源周波数算出部２０３は、ステップＳ１０９で求めた合成後の出力レベルの時間的変化より、光源の明滅周波数を求め、制御部２０４に出力する。具体的には、光源周波数算出部２０３は、例えばＲＡＭ１０６から５０ｍｓ分のフレームの出力レベルを読み出す。次に、光源周波数算出部２０３は、出力レベルが相対的に低いフレーム（画面が暗いフレームを意味する）が出現する周期をフレームレートに基づいて算出する。例えばフレームレートが４８０ｆｐｓの場合に出力レベルが相対的に低いフレームが４フレーム毎に現れる場合の光源の明滅周波数は１２０Ｈｚで明滅周期は１／１２０ｓｅｃであると算出される。或いは、光源周波数算出部２０３は、出力レベルが相対的に高いフレームが出現する周期に基づいて、光源の明滅周波数の算出を行ってもよい。または、光源周波数算出部２０３は、出力レベルが相対的に低いフレームと相対的に高いフレームとが出現する周期を求め、これらの平均値を光源の明滅周波数としてもよい。尚、ＲＡＭ１０６に取り込まれたフレームの出力レベルの時間的変化に周期性が無い場合、例えば蛍光灯下での撮影でない場合には、明滅周期を算出することができないので、明滅周期の検出不可を制御部２０４に出力する。
（ステップＳ１１１）制御部２０４は、ステップＳ１１０で光源周波数算出部２０３が光源の明滅周波数を検出できたか否かを判別する。光源周波数算出部２０３が光源の明滅周波数を検出できた場合はステップＳ１１２に進み、検出できなかった場合はステップＳ１１３に進む。
（ステップＳ１１２）制御部２０４は、ステップＳ１１０で求めた光源の明滅周波数に応じて、フリッカが生じないローリングシャッタの露光時間を求め、動画撮影やＬＶ画像の表示を行うための設定を行う。具体的には、ＣＰＵ１１１は、ＴＧ１０３を介して、撮像素子１０２及びＡＦＥ１０４へ向けて駆動信号を送出し、動画撮影のフレームレート（例えば３０ｆｐｓなど）で画像信号を取得する指示を出す。例えば、制御部２０４は、明滅周期のｎ倍のローリングシャッタ速度に設定する。これにより、フリッカは撮影する画像に出現しなくなる。
（ステップＳ１１３）制御部２０４は、フリッカの影響がないため、動画撮影時のローリングシャッタ速度を任意に設定することができる。
【００６３】
以上のようにしてフリッカ検出処理を行った後、動画撮影やＬＶ画像の表示を開始する。
【００６４】
このように、本実施形態の電子カメラ１００によれば、フレーム内に出現する横縞状のフリッカを検出するための複雑な処理を行う必要がなくなり、複数フレーム間で発生する面フリッカから容易に明滅周波数を算出することができる。さらに、フレームレートを極端に高速化することなく光源の明滅周波数を精度良く求めることができる。
（変形例１）
上記の図７のフローチャートにおいて、位相が異なるフレームの出力レベルを合成するステップＳ１０９は、全てのフレームの出力レベルを取得し終えたステップＳ１０８の後で実行するようになっていたが、図５で説明した合成処理を各フレームを取得毎に行うようにしてもよい。この場合は、図５（ａ）の画像フレームＩＭＧ１からＩＭＧ７を撮像素子１０２から読み出している時は、５０ｍｓ後に読み出す図５（ｂ）の画像フレームＩＭＧ１１からＩＭＧ１７の出力レベルを０としておき、図５（ｃ）の合成処理を行う。例えば前半の５０ｍｓの位相調整周期の画像フレームを取得しているときの合成後の出力レベルは、画像フレームＩＭＧ１１からＩＭＧ１７の出力レベルが０なので、図５（ａ）と同様に画像フレームＩＭＧ１からＩＭＧ７の出力レベルと同じ合成出力が得られる。そして、後半の５０ｍｓの位相調整周期の画像フレームを取得しているときの合成後の出力レベルは、画像フレームＩＭＧ１１からＩＭＧ１７の各出力レベルが読み出される毎に図５（ｃ）と同様の合成出力が得られる。
【００６５】
このように、１つの画像フレームを読み出す毎に逐次、合成処理を行うことにより、処理に必要なメモリ容量を少なくすることができる。尚、この場合、図７のフローチャートに示すように、図６のフローチャートのステップＳ１０９とステップＳ１０８の順番を入れ替えればよい。
（変形例２）
上記の図７のフローチャートにおいて、位相調整部２０１は、タイマ２０１ａの時間ｔがフリッカ検出用フレームの取得時間Ｔｅ（１００ｍｓ）を超えたか否かを判別して、ｔ＝Ｔｅの場合にフリッカ検出処理を終了するようにしたが、位相調整を行う回数（位相調整回数Ｋｅ）を予め設定しておき、設定された回数だけ位相調整を行った後でフリッカ検出処理を終了するようにしてもよい。例えば上記の例では５０ｍｓの位相調整を１回行い、位相調整後の位相調整期間が終了して２回目をカウントした時に処理を終了させる。
【００６６】
この場合のフローチャートを図８に示す。尚、図８において、図７のフローチャートと同符号の処理ステップは同じ処理を示す。図８のフローチャートは、図７のフローチャートのステップＳ１０２とステップＳ１０３との間にステップＳ２０１を設け、さらに図７のフローチャートのステップＳ１０６とステップＳ１０４との間にステップＳ２０２を設けた。また、図７のフローチャートのステップＳ１０８をステップＳ２０３に変更した。
【００６７】
以下、図７のフローチャートと異なる処理（ステップＳ２０１、Ｓ２０２およびＳ２０３）について説明する。
（ステップＳ２０１）位相調整部２０１は、位相調整回数をカウントするために設けたソフト的なカウンタ変数ｋを０に初期化する。
（ステップＳ２０２）位相調整部２０１は、カウンタ変数ｋを１つインクリメントする（ｋ＝ｋ＋１）。
（ステップＳ２０３）位相調整部２０１は、カウンタ変数ｋのカウント値が予め設定された回数Ｋｅが２回（例えば１回目の位相調整後の位相調整期間が終了して２回目をカウントしたことを示す）になったか否かを判別する。ｋ＝Ｋｅの場合はステップＳ１０９に進み、ｋ≠Ｋｅの場合はステップＳ１０３に戻る。
【００６８】
このようにして、予め設定された位相調整回数だけ位相調整を行った後、互いに異なる位相で読み出されたフレームの出力レベルを位相調整周期毎に同じ時間軸上に重ね合わせて、合成後の露光量を求めることができる。
【００６９】
尚、本実施形態では、５０Ｈｚ及び６０Ｈｚの２つの周波数を蛍光灯などの光源に使用する商用電源の周波数としたが、他の周波数であってもよい。
【００７０】
また、本実施形態では、フリッカを検出するセンサとして、記録媒体１１３に記録する本画像を撮像する撮像素子１０２を用いたが、本画像を撮像する撮像素子１０２とは別に設けられた撮像素子（例えば、測光センサ）を採用してもよい。
【００７１】
さらに、本実施形態では、撮像素子１０２をアナログ出力センサとして、ＴＧ１０３やＡＦＥ１０４を撮像素子１０２とは別に設けたが、ＴＧ１０３を撮像素子１０２に内蔵してもよい。また、本発明では、ＡＦＥ１０４を撮像素子１０２に内蔵してデジタル出力センサとしてもよい。また、デジタル出力センサの場合は、ＴＧ１０３、画像処理部１０５、ＲＡＭ１０６、ＲＯＭ１０７、ＣＰＵ１１１などの各ブロックを自由に組み合わせて撮像素子１０２にに内蔵してもよい。
【００７２】
以上、本発明に係る撮像装置について、各実施形態で例を挙げて説明してきたが、その精神またはその主要な特徴から逸脱することなく他の多様な形で実施することができる。そのため、上述した実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明は、特許請求の範囲によって示されるものであって、本発明は明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内である。
【符号の説明】
【００７３】
１００・・・電子カメラ、１０１・・・撮影レンズ、１０２・・・撮像素子、１０３・・・ＴＧ、１０４・・・ＡＦＥ、１０５・・・画像処理部、１０６・・・ＲＡＭ、１０７・・・ＲＯＭ、１０８・・・表示モニタ、１０９・・・記録Ｉ／Ｆ部、１１０・・・操作部、１１１・・・ＣＰＵ、１１２・・・バス、２０１・・・位相調整部、２０２・・・演算部、２０３・・・光源周波数算出部、２０４・・・制御部、２１１・・・露光量算出部、２１２・・・露光量合成部
【図１】
0005581968.tif 000002
【図２】
0005581968.tif 000003
【図３】
0005581968.tif 000004
【図４】
0005581968.tif 000005
【図５】
0005581968.tif 000006
【図６】
0005581968.tif 000007
【図７】
0005581968.tif 000008
【図８】
0005581968.tif 000009
【図９】
0005581968.tif 000010