(57)【特許請求の範囲】
【請求項１】
撮像手段と、
前記撮像手段で得られた連続的な画像データに基づいて、被写体からの光の光量変化特性を算出する第１の算出手段と、
前記撮像手段で得られた画像データから生成された画面内写像データに基づいて前記光量変化特性を算出する第２の算出手段と、
被写体の状態に応じて前記第１の算出手段によって前記光量変化特性を算出するか前記第２の算出手段によって前記光量変化特性を算出するかを制御する制御手段と、を備えることを特徴とする撮像装置。
【請求項２】
前記被写体の明るさを測定する測光手段を備え、
前記制御手段は、前記測光手段による測光値が所定の閾値以上であるときに前記第１の算出手段によって前記光量変化特性を算出し、前記測光値が前記所定の閾値より小さいときに前記第２の算出手段によって前記光量変化特性を算出するように制御することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記制御手段は、前記撮像手段で得られた画像データから前記被写体の動きを検知し、前記被写体が移動していない場合に前記第１の算出手段によって前記光量変化特性を算出し、前記被写体が移動している場合に前記第２の算出手段によって前記光量変化特性を算出するように制御することを特徴とする請求項１に記載の撮像装置。
【請求項４】
所定時間よりも短い期間の間隔で得られた複数の測光値に基づいて、対象物からの光の光量変化特性を算出する第１の算出手段と、
前記複数の測光値の各々を得る前記期間よりも長い蓄積期間で領域ごとに開始タイミングを異ならせて電荷蓄積を行って得られた画像内の輝度変化情報に基づいて、前記光量変化特性を算出する第２の算出手段と、
前記対象物の状態に応じて、前記第１の算出手段によって前記光量変化特性を算出するか前記第２の算出手段によって前記光量変化特性を算出するかを制御する制御手段と、を備えることを特徴とする電子機器。
【請求項５】
前記第１の算出手段および前記第２の算出手段は、前記光量変化特性として、前記対象物からの光の光量変化周期を算出することを特徴とする請求項４に記載の電子機器。
【請求項６】
前記第１の算出手段および前記第２の算出手段は、前記光量変化特性として、周期的に変化する前記対象物からの光の光量が極大値となるタイミングを算出することを特徴とする請求項４又は５に記載の電子機器。
【請求項７】
前記測光値を得るための測光手段と、
前記画像を得るための撮像手段と、を更に備えることを特徴とする請求項４乃至６のいずれか１項に記載の電子機器。
【請求項８】
前記画像を得るための撮像手段を備え、
前記撮像手段は、前記測光値を得るためにも用いられることを特徴とする請求項４乃至６のいずれか１項に記載の電子機器。
【請求項９】
前記所定時間は、１／１２０秒であることを特徴する請求項４乃至８のいずれか１項に記載の電子機器。
【請求項１０】
前記制御手段は、前記対象物の明るさが所定の閾値以上であるときに前記第１の算出手段によって前記光量変化特性を算出し、前記対象物の明るさが前記所定の閾値より小さいときに前記第２の算出手段によって前記光量変化特性を算出するように制御することを特徴とする請求項４乃至９のいずれか１項に記載の電子機器。
【請求項１１】
前記制御手段は、前記画像内の対象物の動きを検知し、前記対象物が移動していない場合に前記第１の算出手段によって前記光量変化特性を算出し、前記対象物が移動している場合に前記第２の算出手段によって前記光量変化特性を算出するように制御することを特徴とする請求項４乃至９のいずれか１項に記載の電子機器。
【請求項１２】
前記所定時間は、フリッカの光量変化の１周期に対応する期間であって、
前記第１の算出手段は、前記複数の測光値として、前記フリッカの光量変化の１周期よりも短い期間で取得した複数の画像データに基づいて前記光量変化特性を算出することを特徴とする請求項４乃至１１のいずれか１項に記載の電子機器。
【請求項１３】
前記画像内の輝度変化情報は、前記複数の測光値の各々を得る前記期間よりも長い蓄積期間で領域ごとに開始タイミングを異ならせて電荷蓄積を行い得られた画像における明るさのむらに関する情報であることを特徴とする請求項４乃至１２のいずれか１項に記載の電子機器。
【請求項１４】
撮像ステップと、
前記撮像ステップで得られた連続的な画像データに基づいて、被写体からの光の光量変化特性を算出する第１の算出ステップと、
前記撮像ステップで得られた画像データから生成された画面内写像データに基づいて前記光量変化特性を算出する第２の算出ステップと、
被写体の状態に応じて前記第１の算出ステップによって前記光量変化特性を算出するか前記第２の算出ステップによって前記光量変化特性を算出するかを制御する制御ステップと、を有することを特徴とする光量変化特性の算出方法。
【請求項１５】
所定時間よりも短い期間の間隔で得られた複数の測光値に基づいて、対象物からの光の光量変化特性を算出する第１の算出ステップと、
前記複数の測光値の各々を得る前記期間よりも長い蓄積期間で領域ごとに開始タイミングを異ならせて電荷蓄積を行って得られた画像内の輝度変化情報に基づいて、前記光量変化特性を算出する第２の算出ステップと、
前記対象物の状態に応じて、前記第１の算出ステップによって前記光量変化特性を算出するか前記第２の算出ステップによって前記光量変化特性を算出するかを制御する制御ステップと、を有することを特徴とする光量変化特性の算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラ等の撮像装置、電子機器及び被写体からの光の光量変化特性の算出方法に関する。
【背景技術】
【０００２】
近年、デジタルカメラ等の撮像装置では、撮像素子の高感度化に伴い、室内のような比較的暗い環境下においても高速のシャッタ速度でブレのない写真を撮像することができるようになってきている。ここで、室内光源として普及している蛍光灯では、電源（一般的に、商用電源）の周波数の影響により、周期的に照明光がゆらぐフリッカと呼ばれる現象が生じる。そして、フリッカが生じる光源（以下「フリッカ光源」と記す）下での高速シャッタ撮像では、フリッカの影響によって、フレーム毎に画像の露出や色温度にばらつきが生じてしまい、また、１フレーム内で露出むらや色むらが発生してしまうことがある。
【０００３】
また、撮像装置として、撮像素子によって定期的に撮像された画像を撮像装置が備える表示部に連続的に表示するライブビュー機能を有するものが広く普及している。ライブビュー機能でも、撮像フレーム毎の蓄積時間が短い場合には、フリッカの影響により、フレーム内での露出むらが発生してしまうことがある。
【０００４】
このような問題に対して、特許文献１では、照明光のフリッカの状態を検出し、露光時間の中心が照明光の光量が極大値を示すタイミングと略一致するように撮像タイミングを調節する技術が提案されている。また、特許文献１では、サンプリング間隔１（ｍｓｅｃ）ごとに照明光の照度を検出し、検出結果から照明光の照度や明滅周期を検出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２２２９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された照明光のフリッカの状態を検出する方法は、検出に用いる光電変換素子の電荷蓄積時間が制限される。その結果、環境光が暗い状況では、フリッカの誤検知が生じやすいという問題がある。また、画像に映り込む被写体によって輝度変化が発生する場合も、フリッカの誤検知が発生しやすいという問題がある。
【０００７】
そこで、本発明は、対象物の状態に応じて対象物からの光の光量変化特性の算出することができる撮像装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る撮像装置は、所定時間よりも短い期間の間隔で得られた複数の測光値に基づいて、対象物からの光の光量変化特性を算出する第１の算出手段と、前記複数の測光値の各々を得る前記期間よりも長い蓄積期間で領域ごとに開始タイミングを異ならせて電荷蓄積を行って得られた画像内の輝度変化情報に基づいて、前記光量変化特性を算出する第２の算出手段と、前記対象物の状態に応じて、前記第１の算出手段によって前記光量変化特性を算出するか前記第２の算出手段によって前記光量変化特性を算出するかを制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明に係る撮像装置によれば、対象物の状態に応じて対象物からの光の光量変化特性を算出することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るデジタルカメラの概略構成を示す図である。
【図２】本発明の第１実施形態に係るフリッカ検知方法のフローチャートである。
【図３】輝度変化フリッカ検知のための測光センサの電荷蓄積と出力測光値の推移を示す図である。
【図４】画面内写像フリッカ検知のための撮像素子での電荷蓄積を模式的に説明する図である。
【図５】第２実施形態に係るフリッカ検知方法で用いる撮像素子における輝度評価値の取得領域を説明する図と、輝度評価値取得領域に被写体が写り込んだときの輝度評価値の変化を説明する図である。
【図６】フリッカ光源下ではない撮像環境とフリッカ光源下のそれぞれにおいて被写体が写り込んだ場合に取得される画面内写像を模式的に示す図である。
【図７】本発明の第２実施形態に係るフリッカ検知方法のフローチャートである。
【図８】図７のステップＳ７０２の被写体追尾処理を模式的示す図である。
【図９】本発明の第３実施形態に係るフリッカ検知方法のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。ここでは、本発明に係る撮像装置として、所謂、デジタルカメラを取り上げることとする。但し、本発明はこれに限定されるものではなく、カメラ機能を備える各種の電子機器であってもよい。例えば、本発明に係る撮像装置は、携帯電話やスマートフォン等のカメラ機能付き携帯通信端末、カメラ機能付き携帯型コンピュータ、カメラ機能付き携帯ゲーム機等であってもよい。
【００１２】
＜撮像素子の概略構成＞
図１は、本発明の実施形態に係るデジタルカメラ１００の概略構成を示す図である。デジタルカメラ１００は、大略的に、カメラ本体１００Ａ及びレンズ鏡筒１００Ｂから構成される。撮像光学系であるレンズ鏡筒１００Ｂは、カメラ本体１００Ａと一体となっていてもよいし、カメラ本体１００Ａに対して着脱自在であってもよい。なお、以下では、対象物からの光の光量変化特性の算出をフリッカ検知と呼んで説明を行うものとする。
【００１３】
カメラ本体１００Ａは、ＣＰＵ１０１、メモリ１０２、撮像素子１０３、シャッタ１０４、ハーフミラー１０５、ピント板１０６、表示素子１０７及び測光センサ１０８を備える。また、カメラ本体１００Ａは、ペンタプリズム１０９、不図示の光学ファインダ、ＡＦセンサ１１０、ＡＦミラー１１１、ＩＣＰＵ１１２及びメモリ１１３を備える。レンズ鏡筒１００Ｂは、複数のレンズ１２１と、不図示の絞りと、ＬＰＵ１２２とを備える。
【００１４】
ＣＰＵ１０１は、デジタルカメラ１００の各部を制御する演算処理装置である。メモリ１０２は、ＣＰＵ１０１が実行するプログラムや変数等を格納するＲＯＭと、ＣＰＵ１０１がプログラムを展開する作業領域や一時的に画像データ等を記憶する記憶領域を有するＲＡＭを含む。ＬＰＵ１２２は、鏡筒内ＣＰＵであり、被写体に対する距離情報等をＣＰＵ１０１へ送信し、また、ＣＰＵ１０１からの指令に基づいてレンズ１２１の駆動制御等を行う。撮像素子１０３は、赤外カットフィルタやローパスフィルタ等を含むＣＭＯＳ等の光電変換素子からなるイメージセンサである。撮像素子１０３は、通常の撮像以外に、後述する第１実施形態に係るフリッカ検知方法において、画面内写像フリッカ検知にも用いられる。シャッタ１０４は、非撮影時には閉じて撮像素子１０３を遮光し、撮影時には開いてレンズ鏡筒１００Ｂを通過した入射光（光束）を撮像素子１０３へ導く。
【００１５】
撮像素子１０３の前面側（被写体側）に設けられたハーフミラー１０５は、非撮影時にレンズ１２１を通して入射する光の一部を反射して、ピント板１０６に光学像を結像させる。表示素子１０７は、ＰＮ液晶等のＡＦ測距枠を表示し、被写体のどの位置に対してＡＦ動作の制御が行われているかを、光学ファインダを通じて撮影者（使用者）に示す。測光センサ１０８は、ＣＣＤ或いはＣＭＯＳ等の光電変換素子からなり、露出制御のために被写界に対する測光を行い、被写体の明るさ（輝度）を測定する。なお、後述する第３実施形態に係るフリッカ検知方法では、測光センサ１０８からの出力信号を用いて、輝度変化フリッカ検知等を行う。
【００１６】
ペンタプリズム１０９は、ピント板１０６の被写体像を測光センサ１０８と光学ファインダへ導く。なお、測光センサ１０８は、ペンタプリズム１０９を介してピント板１０６に結像された被写体像を斜め方向の位置から見ている。ＡＦミラー１１１は、レンズ鏡筒１００Ｂから入射してハーフミラー１０５を通過した光束の一部をＡＦセンサ１１０へ導く。ＡＦセンサ１１０は、受光した光束に基づいて、被写体に対する自動合焦のための測距を行う。
【００１７】
ＩＣＰＵ１１２は、測光センサ１０８の駆動制御や測光演算、顔検知演算や追跡演算等の被写体認識処理、フリッカ検知演算等の各種の演算処理を行うＣＰＵである。メモリ１１３は、ＩＣＰＵ１１２が実行するプログラムや変数等を格納するＲＯＭと、ＩＣＰＵ１１２がプログラムを展開する作業領域や一時的に演算結果を記憶するＲＡＭを含む。
【００１８】
なお、図１には不図示であるが、デジタルカメラ１００は、電源スイッチ及びシャッタスイッチを備える。シャッタスイッチは、半押し（第１ストローク）でオンするスイッチＳＷ１と、全押し（第２ストローク）でオンするスイッチＳＷ２とを備える。スイッチＳＷ１がオンすることで、測光センサ１０８からの出力に基づく露出制御とＡＦセンサ１１０からの出力に基づく自動合焦制御が実行される。また、スイッチＳＷ２がオンすることで、本撮影が行われる。本撮影では、撮像素子１０３に結像した光学像が撮像素子１０３によってアナログ電気信号に変換され、そのアナログ電気信号が不図示の画像処理手段によりデジタル画像データに変換され、不図示のメモリカード等の記憶手段に記憶される。
【００１９】
＜第１実施形態に係るフリッカ検知方法＞
図２は、デジタルカメラ１００での第１実施形態に係るフリッカ検知方法のフローチャートである。図２に示す各処理は、ＣＰＵ１０１がメモリ１０２のＲＯＭに格納されたプログラムをＲＡＭに展開することにより、デジタルカメラ１００の各構成要素の動作を制御することにより実現される。なお、図２に示す処理の中には、ＣＰＵ１０１の制御下において実質的にＩＣＰＵ１１２が実行する処理があり、その処理については動作主体をＩＣＰＵ１１２として説明を行うこととする。
【００２０】
撮像に際してフリッカ検知を実施するためには、撮像環境の明るさを知る必要がある。これは、撮像環境の明るさが分からないと、撮像素子１０３を駆動する上での適正な蓄積時間やゲインを設定することができないからである。そこで、ＣＰＵ１０１の制御下にあるＩＣＰＵ１１２は、ステップＳ２０１において、測光センサ１０８を用いて通常測光動作を行い、撮像環境の明るさを検出する。ＩＣＰＵ１１２は、測光センサ１０８から得られた出力信号に基づいて測光演算を行い、その演算結果をＣＰＵ１０１にシリアル通信等のＣＰＵ間通信によって通知する。測光演算の方法は特に限定されないが、例えば、測光センサ１０８から得られた撮像領域を複数に分割した分割領域ごとの画像信号を、領域ごとに設定された重み付けで加重演算して測光値を求めるようにすればよい。
【００２１】
続くステップＳ２０２においてＣＰＵ１０１は、ステップＳ２０１で求めた測光値を予め定めた閾値と比較し、測光値が閾値よりも大きいか否かを判定する。このような判定を行う理由は以下の通りである。即ち、ステップＳ２０３，Ｓ２０４では輝度変化フリッカ検知を実施するが、輝度変化フリッカ検知を行う際の撮像素子１０３の駆動では、長い蓄積時間を設定することができない。よって、環境光が暗い環境で輝度変化フリッカ検知を実施した場合、誤検知が生じやすくなる。そこで、輝度変化フリッカ検知で誤検知が生じやすくなる輝度を予め決めておき、通常測光結果と比較した結果に基づいて、輝度変化フリッカ検知を実施するか又は画面内写像フリッカ検知を実施するかを決定する。
【００２２】
なお、輝度変化フリッカ検知とは、所定時間よりも短い間隔で得られた複数の測光値に基づいて対象物からの光の光量変化特性を算出する方法である。また、画面内写像フリッカ検知とは、複数の測光値を得る期間よりも長い蓄積期間で、領域ごとに開始タイミングを異ならせて電荷蓄積を行い得られた画像内の輝度変化情報に基づいて対象物からの光の光量変化特性を算出する方法である。
【００２３】
ＣＰＵ１０１は、測光値が閾値以上である場合（Ｓ２０２でＮＯ）、処理をステップＳ２０３へ進め、測光値が閾値より小さい場合（Ｓ２０２でＹＥＳ）、処理をステップＳ２０５へ進める。
【００２４】
環境光が暗くない場合であるステップＳ２０３，Ｓ２０４では、ＣＰＵ１０１は、輝度変化フリッカ検知（第１の算出方法、以下、第１のフリッカ検知方法とも呼ぶ）を実行する。ステップＳ２０３においてＣＰＵ１０１は、撮像素子１０３を輝度変化フリッカ検知用の駆動モードで駆動する。ここで、輝度変化フリッカ検知用の撮像素子１０３の駆動形態について、図３を参照して説明する。
【００２５】
図３（ａ），（ｂ）はそれぞれ、周波数が５０Ｈｚ，６０Ｈｚの各電源で点灯させたフリッカ光源に対する輝度変化フリッカ検知のための撮像素子１０３の電荷蓄積と出力測光値の推移を示す図である。輝度変化フリッカ検知では、フリッカを検出するために、図３の各図に示すように、約６００ｆｐｓ（＝約１．６６７ｍｓ）の周期で蓄積・読み出しを連続して１２回行う。この６００ｆｐｓという周期は、予想されるフリッカ光源の周波数（１００Ｈｚと１２０Ｈｚ）の公倍数周波数となっている。そのため、輝度変化フリッカ検知で連続的な画像データを得るための撮像の蓄積時間は、予想されるフリッカ光源の光量変化周期の短い方の時間である１／１２０秒（所定時間）よりも短い蓄積時間となる。なお、フリッカ光源の明暗が変化する周波数は、電源周波数の２倍になることから、商用電源の周波数が５０Ｈｚの地域では周波数は１００Ｈｚとなり、商用電源の周波数が６０Ｈｚの地域では周波数は１２０Ｈｚとなる。
【００２６】
輝度変化フリッカ検知では、２０ｍｓｅｃ（＝１．６６７ｍｓｅｃ×１２）で連続的な画像データを１セット取得することができるため、高速でフリッカ検知を実現することができる。よって、本実施形態では、輝度変化フリッカ検知は、後述する画面内写像フリッカ検知よりもフリッカ検知に要する時間が短いため、優先して実施される。
【００２７】
ここで、撮像素子１０３を約６００ｆｐｓで駆動させる方法について説明する。
【００２８】
例えば、ＱＶＧＡ以上の画素数を有する撮像素子１０３の全画素を約６００ｆｐｓ以上の高速なフレームレートで駆動する（読み出す）ためには、駆動周波数を高くする方法やＡ／Ｄ変換器を多数配置する方法等の対処法が考えられる。しかしながら、これらの対処法では、回路構成が複雑になってコストが嵩み、また、技術的にも容易ではない。そこで、顔検出や被写体追尾を行う際には、全画素数を時間をかけて読み出すこととし、フリッカ検知の際には、画素加算読み出しや間引き読み出しを行うことによって、フレームレートを約６００ｆｐｓに調整する。
【００２９】
撮像素子１０３がＣＣＤである場合、ＣＣＤは一般的に部分読み出しを行うことができないため、画素加算による読み出しライン数の擬似的減少によって高速駆動させるとよい。例えば、画素配列がストライプ状のセンサで垂直画素加算を行うことにより、表１に示すように、読み出し時間（１Ｖ時間）を短縮することができる。表１に示した撮像素子１０３の場合、９画素加算を行うことによりフレームレートを約６００ｆｐｓに調整することができ、その場合に得られる画像は、垂直方向の画素数が１／９になったものとなる。
【００３０】
【表１】
0006460829.tif 000002
【００３１】
一方、撮像素子１０３がＣＭＯＳである場合、部分読み出しを比較的簡単に行うことができるため、所謂、間引き読み出しによって蓄積と読み出しの合計時間が約１．６６７ｍｓｅｃとなるように調整するとよい。
【００３２】
図２の説明に戻る。ＩＣＰＵ１１２は、ステップＳ２０３において輝度変化フリッカ検知用の撮像素子１０３の駆動（蓄積と読み出し）を終えると、ステップＳ２０４においてフリッカ検知演算を行い、その結果をＣＰＵ１０１へ通知する。図３の各図では、ｎ回目の蓄積を「蓄積ｎ」、蓄積ｎの読み出しを「読出ｎ」、読出ｎの結果から得られる測光値を「ＡＥ（ｎ）」で示している。各測光値の取得時間について、蓄積は有限の時間で行われるため、蓄積期間中の中央値で代表させることとする。
【００３３】
５０Ｈｚの商用電源でのフリッカ発光周期は約１０ｍｓｅｃであり、１０／１．６６７≒６であるから、蓄積のタイミングによらず、図３（ａ）に示すように、６回周期で同じ測光値が得られる。即ち、ＡＥ（ｎ）=ＡＥ（ｎ＋６）の関係となる。同様に、６０Ｈｚの商用電源でのフリッカ発光周期は約８．３３ｍｓｅｃであり、８．３３／１．６６７≒５であるから、蓄積のタイミングによらず、図３（ｂ）に示すように、５回周期で同じ測光値が得られる。よって、ＡＥ（ｎ）=ＡＥ（ｎ＋５）の関係となる。一方で、フリッカがない環境下では、ｎによらず、ＡＥ（ｎ）は一定である。
【００３４】
電源周波数が５０Ｈｚであるフリッカ光源下での評価値Ｆ５０と、電源周波数が６０Ｈｚであるフリッカ光源下での評価値Ｆ６０をそれぞれ、下記式１、式２の通りに定義することとする。
【００３５】
【数１】
0006460829.tif 000003
【００３６】
この場合、所定の閾値Ｆ＿ｔｈを用いて、“Ｆ５０＜Ｆ＿ｔｈ、且つ、Ｆ６０＜Ｆ＿ｔｈ”の関係が成り立つ場合には、フリッカなし（フリッカ光源下ではない）と判断することができる。また、“Ｆ５０＜Ｆ＿ｔｈ、且つ、Ｆ６０≧Ｆ＿ｔｈ”の関係が成り立つ場合には、電源周波数が５０Ｈｚであるフリッカ光源下であると判断することができる。更に、“Ｆ５０≧Ｆ＿ｔｈ、且つ、Ｆ６０＜Ｆ＿ｔｈ”の関係が成り立つ場合には、電源周波数が６０Ｈｚであるフリッカ光源下であると判断することができる。ステップＳ２０４の後、ＣＰＵ１０１は、処理をステップＳ２０７へ進める。
【００３７】
環境光が暗い場合であるステップＳ２０５，Ｓ２０６では、画面内写像フリッカ検知（第２の算出方法、以下、第２のフリッカ検知方法とも呼ぶ）を実行する。ステップＳ２０５においてＣＰＵ１０１は、撮像素子１０３を画面内写像フリッカ検知用の駆動モードで駆動し、写像データを取得する。ここで、画面内写像フリッカ検知について説明する。
【００３８】
図４（ａ），（ｂ）はそれぞれ、周波数が５０Ｈｚ，６０Ｈｚの各電源で点灯させたフリッカ光源に対する画面内写像フリッカ検知のための撮像素子１０３の電荷蓄積を模式的に説明する図である。
【００３９】
画面内写像フリッカ検知では、レンズ鏡筒１００Ｂを通過した光が撮像素子１０３に結像するようにハーフミラー１０５を上げるミラーアップ等を行った状態で撮像素子１０３を２２ｆｐｓで駆動して、画像データを取得する。２２ｆｐｓで撮像素子１０３を駆動すると、１フレーム当たりの処理時間は、１０００／２２≒４４．４５ｍｓｅｃとなる。そのため、画面内写像フリッカ検知で画面内写像データを得るための撮像の蓄積期間は、予想されるフリッカ光源の光量変化周期の長い方の時間である１／１００秒よりも長い蓄積期間となる。
【００４０】
なお、蓄積期間とは、撮像素子１０３の最初に電荷蓄積を開始する領域の電荷蓄積開始時から最後に電荷蓄積を開始する領域の電荷蓄積終了時までの期間を表していて、１フレーム当たりの処理時間と略等しい長さである。また、撮像素子１０３の蓄積時間が短すぎると露出むらが現れにくくなるため、下限値（例えば、１／６００秒など）を設けて蓄積時間の長さを設定するのが望ましい。一方、撮像素子１０３の蓄積時間が長すぎても後述する露出むらが現れにくくなるため、上限値（例えば、１／３０秒など）を設けて蓄積時間の長さを設定してもよい。また、撮像素子１０３の蓄積時間が１／１００秒の倍数や１／１２０秒の倍数となる場合、フリッカ光源の光量変化の１周期の整数倍の蓄積時間となり露出むらが現れなくなる場合がある。そのため、撮像素子１０３の蓄積時間は、前述した上限値と下限値の範囲内で、かつ、１／１００秒の倍数や１／１２０秒の倍数と異なる蓄積時間としてもよい。このような条件を満たすのであれば、予め設定された蓄積時間であってもよいし、撮像環境に応じて設定された蓄積時間であってもよい。
【００４１】
５０Ｈｚの商用電源でのフリッカ光源での発光周期は約１０ｍｓｅｃであり、４４．４５／１０≒４．４５となる。また、撮像素子１０３は、ＣＭＯＳ等のラインごとに電荷蓄積の開始タイミング及び終了タイミングを異ならせて制御される光電変換素子である。そのため、図４（ａ）に示すように、１フレーム目と２フレーム目とを連続して画像データを取得すると、フリッカによる１フレーム目に現れる露出むらと２フレーム目に現れる露出むらは位相が逆になる。前述したように、撮像素子１０３は電荷蓄積の開始タイミング及び終了タイミングを異ならせて制御されるので、図４（ａ）に示す縞状の露出むらが現れた画像データは、時間軸方向が撮像素子１０３の縦方向、写像生成方向が撮像素子１０３の横方向に対応する。すなわち、２２ｆｐｓで撮像素子１０３を駆動すると、横縞が現れた画像データとなる。
【００４２】
同様に、６０Ｈｚの商用電源でのフリッカ光源での発光周期は約８．３３ｍｓｅｃであり、４４．４５／８．３３≒５．４６となる。そのため、図４（ｂ）に示すように、１フレーム目と２フレーム目とを連続して画像データを取得すると、フリッカによる１フレーム目に現れる露出むらと２フレーム目に現れる露出むらは位相が逆になる。
【００４３】
ステップＳ２０５では、ＣＰＵ１０１は、こうして取得する各フレームについて、横方向（写像生成方向）に写像を生成し、時間軸方向に写像データを取得する。写像データとは、撮像素子１０３のラインごとに算出される各ラインの代表値を時間軸方向に並べたデータであり、代表値の算出方法は、フレーム内での代表値の変化がフリッカ光源の光量変化に対応するような算出方法であれば特に限定されない。例えば、代表値は、各ラインに含まれる画素の画素信号を平均した平均値や積分した積分値などである。次に、ステップＳ２０６においてＣＰＵ１０１は、ステップＳ２０５で取得した画面内写像データを用いてフリッカ検知演算を実施する。フリッカ検知演算では、写像データの極大値と極小値とがより大きくなるように、１フレーム目の写像データを２フレーム目の写像データで除算する。これは、１フレーム目と２フレーム目の写像の位相が逆になるフレームレートで撮像しているため、除算により写像データをより強調することが可能になり、フリッカによる露出むらを判別しやすくなるからである。こうして強調された写像データの極大値及び極小値と、その出現周期を求めることにより、フリッカの有無（対象物からの光量が周期的に変化しているか）とその周期（フリッカ光源の電源周波数（５０Ｈｚ，６０Ｈｚ））を判定することができる。
【００４４】
ステップＳ２０４，Ｓ２０６の後、ＣＰＵ１０１は、処理をステップＳ２０７へ進める。ステップＳ２０７においてＣＰＵ１０１は、ステップＳ２０４，Ｓ２０６の判定結果に基づいて、フリッカの有無を判定する。即ち、ステップＳ２０４の輝度変化フリッカ検知演算結果とステップＳ２０６の画面内写像フリッカ検知演算結果のいずれか一方が算出されているため、算出されたフリッカ検知演算結果からデジタルカメラ１００の撮像環境でのフリッカの有無を決定する。
【００４５】
以上の通り、第１実施形態に係るフリッカ検知方法では、撮像環境の明るさに応じて、輝度変化フリッカ検知と画面内写像フリッカ検知とを切り替えて、撮像環境におけるフリッカの有無を検知する。これにより、対象物の状態に応じて対象物からの光の光量変化特性の算出することができ、フリッカ検知の高速化を実現しながら、フリッカ検知精度を高めることができる。
【００４６】
＜第２実施形態に係るフリッカ検知方法＞
図５（ａ）は、デジタルカメラ１００での第２実施形態に係るフリッカ検知方法で用いる撮像素子１０３における輝度評価値の取得領域１０３Ａを説明する図である。
【００４７】
輝度評価値の取得領域１０３Ａとは、輝度変化を算出するための領域であり、撮像素子１０３の撮像可能領域の一部（ここでは、外周縁部を除く領域）に設定されている。その理由の１つは、画素数が多くなると輝度演算に要する時間が長くなるため、演算に要する時間として許可される時間内に処理可能な画素数を設定する必要があるからである。また、レンズ鏡筒１００Ｂを通過した光が撮像素子１０３に結像したときに、光軸から離れた画素に斜めから入った光は撮像素子１０３に２次元に配置されたフォトダイオードには到達せずにけられてしまい、周辺輝度の落ちた画像データが得られる。そのため、別の理由は、周辺光量が落ちる部分を除いた領域で輝度評価値を求めることにより、より正確な輝度評価値を求めるためである。
【００４８】
図５（ｂ）は、輝度評価値の取得領域１０３Ａに被写体が写り込んだときの輝度評価値の変化の様子を説明する図である。図５（ａ）に示すように輝度評価値の取得領域１０３Ａを設定した撮像素子１０３を用いて輝度変化フリッカ検知を実行した場合、図５（ｂ）に示すように、被写体が輝度評価値の取得領域１０３Ａの内部に写り込む量が時間経過にしたがって変化することがある。この場合、被写体が映り込む範囲が多くなるにしたがって輝度評価値の値は小さくなり、輝度演算結果は徐々に暗くなるように評価される。また、被写体が映り込む範囲が少なくなるにしたがって輝度評価値の値は大きくなり、輝度演算結果は徐々に明るくなるように評価される。よって、被写体が写り込む量の変化に応じて輝度が変化しているように評価されてしまい、フリッカによる輝度変化でないものをフリッカによる輝度変化であると誤検知してしまう可能性がある。
【００４９】
図６（ａ）は、フリッカ光源下ではない撮像環境において被写体が写り込んだ場合に取得される画面内写像を模式的に示す図である。フレーム１，２の各フレーム写像では、被写体が写り込んだ部分の写像データが変化するが、除算後の写像データには、極大や極小を強調したフリッカによる露出むらは存在しないため、フリッカ有りと判定することはない。
【００５０】
一方、図６（ｂ）は、５０Ｈｚの電源で点灯させたフリッカ光源下の撮像環境において被写体が写り込んだ場合に取得される画面内写像を示している。フレーム１，２の各写像データに被写体の影響が現れ、フレーム１の写像データをフレーム２の写像データで除算した後の写像データにはフリッカによる露出むらが強調されて残る。よって、フリッカ光源下の撮像環境にあることを検知することができる。よって、第２実施形態では、図６（ａ），（ｂ）の相違を利用して、フリッカ検知を行う。
【００５１】
図７は、デジタルカメラ１００での第２実施形態に係るフリッカ検知方法のフローチャートである。図７に示す各処理は、ＣＰＵ１０１がＲＯＭに格納されたプログラムをＲＡＭに展開することにより、デジタルカメラ１００の各構成要素の動作を制御することにより実現される。
【００５２】
ステップＳ７０１においてＣＰＵ１０１は、撮像素子１０３を輝度変化フリッカ検知用の駆動モードで駆動して、電荷蓄積を行う。ステップＳ７０１の具体的な処理内容は、図２のステップＳ２０３と同様であるため、ここでの説明を省略する。続くステップＳ７０２においてＣＰＵ１０１は、輝度変化フリッカ検知用に蓄積した画像データから、被写体の映り込み状態を検知するために、被写体追尾処理を実行する。
【００５３】
図８は、ステップＳ７０２の被写体追尾処理を模式的示す図であり、輝度変化フリッカ検知用に連続して取得した画像データとしてフレーム１からフレーム５までを示している。連続する２枚のフレームの間で、画像データに写り込む被写体の相関を取ることで、フレーム間で被写体を追尾することができる。フレーム２以降のフレーム間でも被写体を追尾することで、撮像素子１０３に設定した輝度評価値の取得領域１０３Ａに被写体が写り込んでいるか、また、写り込んだときの範囲等を検出することができる。よって、被写体追尾処理の結果を、輝度変化フリッカ検知演算を実施することができるか否かの判定条件として使用する。
【００５４】
なお、被写体追尾処理として、被写体の色を判定して追尾する色追尾処理や、被写体が人体であるかを判定して追尾する人体追尾処理等を実施することによって、被写体追尾処理の精度を上げることも好ましい。また、前述した被写体追尾処理は、画像内に含まれる対象物である被写体が移動しているか否かを判定することができる。したがって、追尾する被写体があるか否かは、画像内に含まれる対象物である被写体が移動しているか否かと同等である。
【００５５】
次に、ステップＳ７０３においてＣＰＵ１０１は、ステップＳ７０２の被写体追尾処理の結果から、輝度変化フリッカ検知演算の実施が可能か否かを、追尾する被写体があるか否かにより判定する。ＣＰＵ１０１は、追尾対象となる被写体がない場合、つまり、画面の輝度変化を与えるような被写体がない場合（Ｓ７０３でＮＯ）、処理をステップＳ７０４へ進める。一方、ＣＰＵ１０１は、追尾対象となる被写体がある場合、つまり、輝度評価値の取得領域１０３Ａに被写体が入り込むことで画面の輝度変化に影響を与える場合（Ｓ７０３でＹＥＳ）、処理をステップＳ７０５へ進める。
【００５６】
ステップＳ７０４においてＣＰＵ１０１は、輝度変化フリッカ検知演算を選択し、ステップＳ７０１で取得した画像データを用いて、輝度変化フリッカ検知演算を実施する。輝度変化フリッカ検知の演算処理内容は、図２のステップＳ２０４の処理内容と同様であるため、ここでの説明を省略する。ＣＰＵ１０１は、ステップＳ７０４の後、処理をステップＳ７０７へ進める。
【００５７】
ステップＳ７０５においてＣＰＵ１０１は、撮像素子１０３を画面内写像フリッカ検知用の駆動モードで駆動し、写像データを取得する。そして、ステップＳ７０６においてＣＰＵ１０１は、ステップＳ７０５で取得した画面内写像データを用いてフリッカ検知演算を実施する。ステップＳ７０５，Ｓ７０６の処理内容は、図２のステップＳ２０５，Ｓ２０６７０４の処理内容と同様であるため、ここでの説明を省略する。ＣＰＵ１０１は、ステップＳ７０６の後、処理をステップＳ７０７へ進める。
【００５８】
ステップＳ７０７においてＣＰＵ１０１は、フリッカの有無を判定する。即ち、ステップＳ７０４の輝度変化フリッカ検知演算結果とステップＳ７０６の画面内写像フリッカ検知演算結果のいずれか一方が算出されているため、算出されたフリッカ検知演算結果からデジタルカメラ１００の撮像環境でのフリッカの有無を決定する。
【００５９】
以上の通り、第２実施形態に係るフリッカ検知方法でも、フリッカ検知の高速化を実現しつつ、撮像環境に応じたフリッカ検知方法を選択して用いることにより、対象物の状態に応じて対象物からの光の光量変化特性の算出することができる。
【００６０】
＜第３実施形態に係るフリッカ検知方法＞
図１に示したデジタルカメラ１００のカメラ本体１００Ａの背面部には、不図示の液晶パネル等の表示装置が設けられているものとする。この表示装置に撮像素子１０３で連続的に取得される画像データを連続的に表示するライブビュー機能をフリッカ光源下で実行した場合に、フリッカによる露出むらのある映像が表示装置に表示されてしまうことがある。
【００６１】
そこで、第３実施形態では、ライブビュー機能の実行前に撮像環境がフリッカ光源下であるか否かを判定し、その判定結果に応じてデジタルカメラ１００で使用するプログラム線図を決定する。これにより、フリッカによる露出むらのないライブビュー映像を使用者に提供することが可能になる。
【００６２】
なお、前述の通り、測光センサ１０８にはＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサ（撮像素子）が使用されているため、測光センサ１０８で取得したデータ（画像データ）を用いて輝度検出や被写体追尾、顔検出等を実行することができる。また、測光センサ１０８の画素数は撮像素子１０３の画素数よりも少ないため、輝度変化フリッカ検知を実施する要件である、高速な画像データの読み出しを行いやすい。そこで、第３実施形態に係るフリッカ検知方法における輝度変化フリッカ検知には、測光センサ１０８を用いる。
【００６３】
図９は、デジタルカメラ１００での第３実施形態に係るフリッカ検知方法のフローチャートである。図９に示す各処理は、ＣＰＵ１０１がメモリ１０２のＲＯＭに格納されたプログラムをＲＡＭに展開することにより、デジタルカメラ１００の各構成要素の動作を制御することにより実現される。なお、図９に示す処理の中には、ＣＰＵ１０１の制御下において実質的にＩＣＰＵ１１２が実行する処理があり、その処理については動作主体をＩＣＰＵ１１２として説明を行うこととする。
【００６４】
使用者によりデジタルカメラ１００でライブビューの実行が指示されると、ＣＰＵ１０１の制御下にあるＩＣＰＵ１１２は、ステップＳ９０１において、測光センサ１０８を用いて通常測光動作を行い、撮像環境の明るさを検出する。ステップＳ９０１での検出結果は、フリッカ検知が実施可能か否かを判定するために使用される。
【００６５】
また、ステップＳ９０１での検出結果は、ライブビュー用の画像データを撮像素子１０３で撮像し始める際の基準の明るさとして使用される。これは、次の理由による。即ち、ライブビューを開始した後は、撮像素子１０３で取得した画像データから測光値を求めて露出を決定するが、ライブビューを開始するときの明るさは外部から情報として取得する必要がある。撮像素子１０３から得られる画像データを用いて測光する場合、１回の撮影で得られる画像データで測光可能な明るさの範囲は、専用の測光センサである測光センサ１０８よりもレンジが狭い。そのため、撮像素子１０３を用いて広い範囲の明るさを計測して、ライブビュー開始時の明るさを決定しようとすると、画像データを複数回取得して測光を行う必要があるため、ライブビューの開始が遅れてしまう。また、ライブビュー開始時の明るさが間違っていると、表示装置に白飛びや黒沈みの画像が表示されてから適正な明るさへと表示が変化する様子を使用者に見せることとなり、表示品質が低下してしまう。これらの問題を解決するため、ライブビュー開始時の明るさを、測光センサ１０８で計測することが望ましい。
【００６６】
続くステップＳ９０２においてＣＰＵ１０１は、ステップＳ９０１で求めた測光値を予め定めた閾値と比較し、測光値が閾値よりも大きいか否かを判定する。ステップＳ９０２の処理内容は、図２のステップＳ２０２と同じであるため、ここでの詳細な説明を省略する。ＣＰＵ１０１は、測光値が閾値以上の場合（Ｓ９０２でＮＯ）、処理をステップＳ９０３へ進め、測光値が閾値より小さい場合（Ｓ９０２でＹＥＳ）、処理をステップＳ９０７へ進める。
【００６７】
ステップＳ９０３においてＣＰＵ１０１の制御下にあるＩＣＰＵ１１２は、測光センサ１０８を輝度変化フリッカ検知用の駆動モードで駆動する（第３のフリッカ検知方法）。続いて、ステップＳ９０４においてＩＣＰＵ１１２は、フリッカ検知演算を行い、その結果をＣＰＵ１０１へ通知する。続くステップＳ９０５においてＣＰＵ１０１は、フリッカの有無を判定する。ステップＳ９０５の判定結果は、フリッカなし、フリッカ（電源：５０Ｈｚ）、フリッカあり（電源：６０Ｈｚ）のうちの１つとなる。
【００６８】
ここで、本実施形態では、フリッカ有無の判定結果に応じてライブビューの実行に使用されるプログラム線図が決定され、その際に、ステップＳ９０１で計測した測光値が必要となる。よって、ステップＳ９０４では、ＩＣＰＵ１１２は、フリッカ検知演算の結果と共にステップＳ９０１で計測した測光値をＣＰＵ１０１に通知する。ステップＳ９０３，Ｓ９０４の処理内容の詳細は、図２のステップＳ２０３，Ｓ２０４の処理内容と同じであるので、ここでの説明を省略する。
【００６９】
なお、本実施形態では、ＩＣＰＵ１１２は、フリッカ検知演算を行うが、フリッカの有無の判定を行わない構成としている。これに限らず、ＩＣＰＵ１１２がフリッカの有無の判定を行い、その判定結果をステップＳ９０１で計測した測光値と共にＣＰＵ１０１へ通知する構成であってもよい。
【００７０】
次に、ステップＳ９０６においてＣＰＵ１０１は、ライブビュー動作を開始するためにミラーアップを行うと共にシャッタ１０４を開けて、撮像素子１０３にレンズ鏡筒１００Ｂを通過した光が結像するようにする。その後、ＣＰＵ１０１は、処理をステップＳ３１１へ進める。
【００７１】
ステップＳ９０２の判定がＹＥＳとなった場合の次の処理であるステップＳ９０７〜Ｓ９１０においてＣＰＵ１０１は、撮像素子１０３を用いた画面内写像フリッカ検知を実施する。ステップＳ９０７においてＣＰＵ１０１は、ミラーアップを行うと共にシャッタ１０４を開けて、撮像素子１０３にレンズ鏡筒１００Ｂを通過した光が結像するようにする。なお、ステップＳ９０７では、ＩＣＰＵ１１２による輝度変化フリッカ検知を実施しないため、ＩＣＰＵ１１２からＣＰＵ１０１へフリッカ不明が通知される。
【００７２】
ステップＳ９０８においてＣＰＵ１０１は、撮像素子１０３を画面内写像フリッカ検知用の駆動モードで駆動し、写像データを取得する。続いて、ステップＳ９０９においてＣＰＵ１０１は、ステップＳ９０８で取得した写像データを用いてフリッカ検知演算を実施する。ステップＳ９０８，Ｓ９０９の処理内容の詳細は、図２のステップＳ２０５，Ｓ２０６の処理内容と同じであるので、ここでの説明を省略する。
【００７３】
続いて、ステップＳ９１０においてＣＰＵ１０１は、ステップＳ９０９の演算結果からフリッカの有無を判定する。ステップＳ９１０の判定結果は、ステップＳ９０５の判定結果と同様に、フリッカなし、フリッカあり（電源：５０Ｈｚ）、フリッカあり（電源：６０Ｈｚ）のうちの１つとなる。ステップＳ９１０の判定後に、処理はステップＳ９１１へ進められる。
【００７４】
ステップＳ９１１においてＣＰＵ１０１は、ステップＳ９０５，Ｓ９１０の判定結果に基づいて、ライブビューに用いるプログラム線図を決定する。ここで、ライブビュー用のプログラム線図には、通常のプログラム線図と、フリッカが表示されないように短秒時側のシャッタ秒時を使用しないフリッカ除去プログラム線図の２つが準備されており、これら２つのうちの一方が使用される。なお、プログラム線図は、メモリ１０２のＲＯＭに格納されている。
【００７５】
ステップＳ９１１により、ライブビュー開始時の明るさとライブビュー動作で使用されるプログラム線図が決定されたので、ステップＳ９１２においてＣＰＵ１０１は、撮像素子１０３を用いて画像データを連続的に取得し、ライブビュー動作を行う。これにより、ステップＳ９１３においてＣＰＵ１０１は、撮像素子１０３によって取得された画像データを表示装置に表示し、これにより、ライブビューの開始動作が完了する。
【００７６】
以上の通り、第３実施形態に係るフリッカ検知方法では、ライブビューを実行する際に、測光センサ１０８を用いて高速な輝度変化フリッカ検知を実施し、撮像素子１０３でフリッカ検知を実施する場合は、画面内写像フリッカ検知を実施する。これにより、対象物の状態に応じて対象物からの光の光量変化特性の算出することができる。ライブビュー開始を指示してから表示装置へ映像が表示されるまでの時間を短縮することができ、その際に、フリッカによる露出むらのあるライブビュー映像が表示装置に表示されてしまうのを防止することができる。
【００７７】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。更に、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。例えば、上記の各実施形態では、測光センサ１０８のために専用ＣＰＵであるＩＣＰＵ１１２を備える構成としているが、測光センサ１０８の駆動制御や画像処理、演算をＣＰＵ１０１で行う構成としてもよい。
【００７８】
また、第１実施形態と第２実施形態を組み合わせて実施する構成であってもよい。更に、第１及び第２実施形態では、撮像素子１０３を用いて輝度変化フリッカ検知と画面内写像フリッカ検知とを行う構成であるが、測光センサ１０８を用いて輝度変化フリッカ検知と画面内写像フリッカ検知とを行う構成であってもよい。
【００７９】
また、第１及び第２実施形態においても、第３実施形態と同様に、測光センサ１０８を用いて輝度変化フリッカ検知を行い、撮像素子１０３を用いて画面内写像フリッカ検知を行ってもよい。
【００８０】
上記の３つの実施形態では、ＣＣＤ或いはＣＭＯＳ等の光電変換素子からなる測光センサ１０８を用いて輝度変化フリッカ検知を行う構成であるが、輝度変化フリッカ検知では画像データでなくても測光値を取得できるセンサであればよい。そのため、測光センサ１０８として、ＣＣＤ或いはＣＭＯＳ等の光電変換素子ではない公知の測光センサを備えた構成であってもよい。
【００８１】
また、第１及び第２実施形態では、本発明の実施形態として撮像装置を説明したが、対象物からの光の光量変化特性を算出する機能を備えた電子機器であれば、撮像機能を有していない電子機器であっても本発明は実施可能である。例えば、撮像装置と通信可能な通信機器が対象物からの光の光量変化特性を算出する機能を備えていて、算出結果を通信機器から撮像装置に送信して撮像装置での撮像に利用してもよい。或いは、測光機器が対象物からの光の光量変化特性を算出する機能を備えていて、算出結果を使用者が確認して撮像装置の操作に反映させてもよい。
【００８２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し、実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８３】
１００    デジタルカメラ
１００Ａ    カメラ本体
１００Ｂ    レンズ鏡筒
１０１    ＣＰＵ
１０３    撮像素子
１０４    シャッタ
１０５    ハーフミラー
１０８    測光センサ
１１２    ＩＣＰＵ
１２２    ＬＰＵ 
【図１】
0006460829.tif 000004
【図２】
0006460829.tif 000005
【図３】
0006460829.tif 000006
【図４】
0006460829.tif 000007
【図５】
0006460829.tif 000008
【図６】
0006460829.tif 000009
【図７】
0006460829.tif 000010
【図８】
0006460829.tif 000011
【図９】
0006460829.tif 000012