図1は、本発明の実施例に係る撮像装置の構成を示すブロック図である。図1において、100は撮像装置である。10は撮影レンズ、12は絞り機能を備えるシャッターである。また、絞りと別に備えられたNDフィルタもシャッター12に含む。シャッター12を制御することで撮像素子14の受光する光量を変更することができる。
14は光学像を電気信号に変換する撮像素子、16は撮像素子14のアナログ信号出力をディジタル信号に変換するA/D変換部である。また、撮像素子14のアナログ信号出力を増幅するゲイン回路もA/D変換部16に含む。設定されたISO感度などに応じてゲイン回路を制御することで、信号のゲインアップ量を変化させることができる。
18は撮像素子14、A/D変換部16、D/A変換器26にクロック信号や制御信号を供給するタイミング発生回路であり、メモリ制御回路22及びシステム制御部50により制御される。タイミング発生回路18を制御することで電子シャッター制御が可能となり、露光時間を変更することができる。
20は画像処理部であり、A/D変換部16からのデータあるいはメモリ制御回路22からのデータに対して所定の画素補間処理や色変換処理を行う。また、画像処理部20においては、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部50が露光制御手段40、フォーカス制御手段42に対して制御を行う。具体的には、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理を行う。さらに、画像処理部20においては、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理を行う。他にも画像処理部20は顔検出回路を含み、A/D変換部16からのデータあるいはメモリ制御回路22からのデータに対して顔検出を行い、検出された顔領域に係る情報をシステム制御部50に通知する。
22はメモリ制御回路であり、A/D変換部16、タイミング発生回路18、画像処理部20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮/伸張部32を制御する。A/D変換部16のデータが画像処理部20、メモリ制御回路22を介して、あるいはA/D変換部16のデータが直接メモリ制御回路22を介して、画像表示メモリ24あるいはメモリ30に書き込まれる。
24は画像表示メモリ、26はD/A変換器、28はTFT LCD等から成る画像表示部であり、画像表示メモリ24に書き込まれた表示用の画像データはD/A変換器26を介して画像表示部28により表示される。画像表示部28を用いて撮像した画像データを逐次スルー表示すれば、電子ファインダー機能(ライブビュー機能)を実現することが可能である。また、画像表示部28は、システム制御部50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合には撮像装置100の電力消費を大幅に低減することができる。
30は撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、メモリ30はシステム制御部50の作業領域としても使用することが可能である。
32は適応離散コサイン変換(ADCT)、ウェーブレット変換等により画像データを圧縮伸長する圧縮/伸長部であり、メモリ30に格納された画像を読み込んで圧縮処理あるいは伸長処理を行い、処理を終えたデータをメモリ30に書き込む。34は暗号/復号回路であり、撮影してメモリ30の所定領域に記憶した画像データに対して必要に応じて暗号化処理を行うと共に、暗号化処理を行ってメモリ30の所定領域に記憶した画像データを再生表示する際に復号化処理を行う。
40は絞り機能を備えるシャッター12を制御する露光制御手段であり、フラッシュ48と連携することによりフラッシュ調光機能も有するものである。42は撮影レンズ10のフォーカシングを制御するフォーカス制御手段、44は撮影レンズ10のズーミングを制御するズーム制御手段、46は保護手段であるレンズバリア102の動作を制御するバリア制御手段である。48はフラッシュであり、AF補助光の投光機能、フラッシュ調光機能も有する。
露光制御手段40、フォーカス制御手段42はTTL方式を用いて制御されており、撮像した画像データを画像処理部20によって演算した演算結果に基づき、システム制御部50が露光制御手段40、フォーカス制御手段42に対して制御を行う。
50は撮像装置100全体を制御するシステム制御部、52はシステム制御部50の動作用の定数、変数、プログラム等を記憶するメモリである。
54はシステム制御部50でのプログラムの実行に応じて、文字、画像、音声等を用いて動作状態やメッセージ等を表示する液晶表示装置、スピーカー等の表示部である。表示部54は、撮像装置100の操作部近辺の視認し易い位置に単数あるいは複数個所設置され、例えばLCDやLED、発音素子等の組み合わせにより構成されている。56は電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM、フラッシュメモリ等が用いられる。
60は電源スイッチ(メインスイッチ)で、撮像装置100の電源ON/OFFを切り替えることができる。また、撮像装置100に接続された各種付属装置の電源ON/OFFの設定も合わせて切り替えることができる。
62はシャッタースイッチSW1で、不図示のシャッターボタンの操作途中でONとなり、静止画撮影用のAF処理、AE処理、AWB処理、EF処理等の撮影準備処理の開始指示を行う。すなわち、撮像装置100の状態を撮影準備処理を行う撮影準備状態に移行させる、静止画撮影に対する準備指示を行う。
64はシャッタースイッチSW2で、不図示のシャッターボタンの操作完了でONとなり一連の撮影処理の開始指示を行う。すなわち、静止画撮影の撮影指示を行う。一連の撮影処理とは、撮像素子14から読み出した信号をA/D変換部16、メモリ制御回路22を介してメモリ30に画像データを書き込む露光処理、画像処理部20やメモリ制御回路22での演算を用いた現像処理などの処理である。
70は各種ボタンやタッチパネル等からなる操作部で、メニューボタン、セットボタン、メニュー移動+(プラス)ボタン、メニュー移動−(マイナス)ボタン、画像表示ON/OFFボタンなどが含まれる。
72はモードダイアルスイッチで、静止画記録モード、動画記録モード、再生モード等の各機能モードを切り替え設定することができる。75は姿勢検知センサで、撮像装置100の姿勢が縦位置、横位置であるか検知することができる。
80は電源制御手段で、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成されており、電池の装着の有無、電池の種類、電池残量の検出を行う。そして、検出結果及びシステム制御部50の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体を含む各部へ供給する。82、84はコネクタ、86は電池やACアダプター等からなる電源手段である。
90はメモリカードやハードディスク等の記録媒体とのインタフェース、92はメモリカードやハードディスク等の記録媒体と接続を行うコネクタである。
102は、撮像装置100の撮影レンズ10を含む撮像部を覆う事により、撮像部の汚れや破損を防止するバリアである保護手段である。
104は光学ファインダであり、画像表示部28による電子ファインダー機能を使用しなくても、光学ファインダのみを用いて撮影を行うことが可能である。
200はメモリカードやハードディスク等の記録媒体である。記録媒体200は、半導体メモリや磁気ディスク等から構成される記録部202、撮像装置100とのインタフェース204、撮像装置100と接続を行うコネクタ206を備えている。なお、記録媒体200は本実施例では撮像装置100に内蔵される構成としている。
図2は、本実施例の撮像装置100の全体的な動作を説明するフローチャートである。
電源スイッチ60が操作され電源がONに切り替わると、ステップS201においてシステム制御部50はフラグや制御変数等を初期化する。続いて、ステップS202において、記録媒体200に記録されているファイルに関する管理処理を開始する。
次に、ステップS203、S205、S207において、システム制御部50は、モードダイアルスイッチ72の設定位置を判断する。静止画記録モードに設定されていたならばステップS204へ進み、静止画記録モード処理を実行する。ステップS204の静止画記録モード処理の詳細は図3を用いて後述する。モードダイアルスイッチ72が動画記録モードに設定されていたならばステップS206へ進み、動画記録モード処理を実行する。また、モードダイアルスイッチ72が再生モードに設定されていた場合はステップS208へ進み、再生モード処理を実行する。
また、その他のモードに設定されていた場合はステップS209へ進み、システム制御部50は選択されたモードに応じた処理を実行する。その他のモードとしては、例えば、不図示の通信手段を介して記録媒体200に格納されたファイルを外部機器へ送信するための送信モード、外部機器からファイルを受信して記録媒体200に格納する受信モードが含まれる。
ステップS204、S206、S208、S209のうちのモードダイアルスイッチ72によって設定されたモードに対応した処理を実行した後、ステップS210へ進む。ステップS210において、システム制御部50は電源スイッチ60の設定位置を判断する。電源スイッチ60が電源ONに設定されていれば、ステップS203の処理に戻る。一方、電源スイッチ60が電源OFFに設定されていたならばステップS211へ進み、システム制御部50は終了処理を行う。終了処理には、例えば以下の処理が含まれる。すなわち、画像表示部28の表示を終了状態に変更し、レンズバリア102を閉じて撮像部を保護し、フラグや制御変数等を含むパラメータや設定値、設定モードを不揮発性メモリ56に記録し、電源供給が不要な部分への電源を遮断する。ステップS211の終了処理が完了すると、本処理を終了し、電源をOFF状態へ移行する。
図2のステップS204における静止画記録モード処理について、図3ないし図6に示すフローチャートを用いて説明する。なお、以下に説明する静止画記録モード処理は、モードダイアルスイッチ72により他のモードへの切替が行われた場合や電源スイッチ60がOFFに設定された場合に、割り込み処理等により終了するものとする。また、以下では、シャッタスイッチSW1がONされた状態(SW1保持中)において、被写体輝度の変化に応じて露出制御値を変化させるAE制御(第2の露出制御モード、以下、サーボAEとする)を実行可能であるものとして静止画記録モード処理を説明する。サーボAE中は、後述するように、取得され得る測光値の範囲のなかに設けられた、取得された測光値が変化したときに該変化量に合わせて絞り値および露光時間の少なくとも一方を変更させる露出応答範囲が制限されている。なお、露出制御値を構成する要素としては、絞り(Av)、露光時間(Tv)、NDフィルタ、感度(ゲイン)などが考えられるが、以下では簡単のため絞り(Av)と露光時間(Tv)のみを露出制御値として示すことにする。
システム制御部50は、静止画記録モードを開始すると、ステップS301において撮影モードを確定する。撮影モードの確定は、不揮発性メモリ56より前回の静止画記録モード終了時における撮影モードを取得してメモリ52に格納することでなされる。または、ユーザにより操作部70が操作されて撮影モードの設定入力があった場合に、その設定入力された撮影モードをメモリ52に格納することでなされる。なお、静止画記録モードにおける撮影モードについては、操作部70を操作することで複数の撮影モードの中から任意に撮影モードを選択することができる。選択可能な撮影モードとしては、カメラの各種パラメータが測定された測光値に基づいて撮像装置100に組み込まれたプログラムにより自動的に決定されるオートモード、カメラの各種パラメータをユーザが自由に設定可能なマニュアルモードなどがある。その他、撮影シーンに適した露出条件の設定が自動的に決定されるシーンモードなども含まれる。
ステップS302において、システム制御部50は、ステップS301において撮影モードが確定すると、続いて撮像部からの画像データを画像表示部28に表示させるスルー表示を行う。
続いて、ステップS303において、システム制御部50は、電源制御部80を用いて電池等により構成される残容量や、記録媒体200の有無や残容量が撮像装置100の動作に問題があるか否かを判定する。電池の残容量不足などの問題があれば、ステップS304において、画像表示部28を用いて画像や音声により所定の警告表示を行い、ステップS301に戻る。
ステップS303で問題が無いと判定されたら、ステップS305において測光処理を行う。ステップS305では、システム制御部50は、撮像部から読み出された画像データのの信号レベルに基づいて被写体輝度を示した測光値を求めてメモリ52に記憶する。測光処理には、操作部70を用いて設定可能な測光方式が反映される。測光方式には、画像表示部28に表示されるスポット測光枠内のみを測光領域とするスポット測光、画面の略全体を測光領域とし中央に重みを置いて測光する中央重点測光、画面の略全体を測光領域とし輝度分布などを基に測光データを補正する評価測光などがある。なお、評価測光については、画像処理部20により被写体の顔が検出されている場合は検出された顔領域に重み付けをして露出制御を行う。
ステップS306では、ステップS305の測光結果に応じた露出制御を行う。ここでは、絞りも測光値に応じて変化させる。また、暗い被写体に対しては撮像レート(フレームレート)を低くすることで設定可能な露光時間を伸ばし、長い露光時間を設定するような制御も行う。すなわち、取得され得る測光値の範囲のなかに設けられた、取得された測光値が変化したときに該変化量に合わせて絞り値および露光時間の少なくとも一方を変更させる露出応答範囲(以下、追従範囲とする)が通常である露出制御(第1の露出制御モード)を行う。
次に、ステップS307において、システム制御部50は、シャッタースイッチSW1がONされているか否かを判断する。シャッタースイッチSW1がOFFの場合はステップS305に戻り、上記ステップS305、S306を繰り返す。一方、シャッタースイッチSW1がONの場合は、ステップS308に進む。
ステップS308ではシャッタースイッチSW1がONされた時点の最新の測光値を求めるために、シャッタースイッチSW1がONされてから最初の測光処理を行い、測光値をメモリ52に記憶する。
次に、ステップS308で記憶した測光値に基き、システム制御部50はAF処理に適した露出制御を行う(ステップS309)。例えば、被写界深度が浅い状態でAF処理を行えるように、絞りを開くような制御を行う。なお、この時点では、後述するような追従範囲の制限を設けずに露出制御を行うので、絞りを最も開放側の絞り値となるまで開いても構わない。露出制御が完了した後、ステップS310にてAF処理を行って撮影レンズ10の焦点を被写体に合わせ、ステップS311に進む。
ステップS311では、ステップS308で記憶した測光値に基き静止画撮影用の露出制御値を算出する。例えば、S301で確定した撮影モードに応じたプログラム線図を用いることにより、撮影シーンに適した露出制御値を求める。求めた静止画露出制御値はメモリ52に記憶する。
ステップS312では、非サーボAE用SW1露出制御値を算出しメモリ52に記憶する。非サーボAE用SW1露出制御値とは、SW1保持中に被写体輝度が変化しても絞り値や露光時間を変更させずに固定しておく場合のSW1保持中の露出制御値のことである。ここでは、撮影時(SW2ON時)の絞り駆動によるタイムラグを抑えるために、非サーボAE用SW1露出制御値の絞り値はステップS311で求めた静止画用の絞り値に合わせておく。
ステップS313では、システム制御部50は、フラッシュ撮影をするか否かを判断する。例えば、ステップS311で記憶した静止画露出制御値を参照して露光時間が所定値より長い場合や、撮像データから逆光シーンと判断される場合などにフラッシュ撮影を行うよう判断する。判断結果はメモリ52に記憶しておく。
図4に示すステップS401では、システム制御部50は、サーボAEを行うか否かを判定するためのサーボAE判定処理を行う。このサーボAE判定処理を行うステップS401については図7を用いて後述する。
ステップS401での判定結果に基づきサーボAEを行うと判定された場合は(ステップS402)、ステップS403に進み、サーボAE情報記憶処理を行う。このサーボAE情報記憶処理については図8を用いて後述する。
ステップS404では、サーボAE用SW1露出算出処理を行う。このサーボAE用SW1露出算出処理は図10を用いて後述する。
次にシステム制御部50は、ステップS404で求めたサーボAE用SW1露出制御値で被写体が適正露出になるか否かを判断する(ステップS405)。適正にならないと判断された場合はステップS406に進む。後述するようにステップS404においてサーボAE用SW1露出制御値の露光時間を撮像レートが低くならない範囲に制限しているため、撮像レートを低くしてまで露光時間を長くしないと適正露出とならない被写体の場合にはステップS406に進むことになる。
ステップS402においてサーボAEを行わないと判定された場合や、ステップS405においてサーボAE用SW1露出制御値では適正にならないと判断された場合はステップS406に進む。そして、ステップS406ではシステム制御部50はステップS312で記憶した非サーボAE用SW1露出制御値となるように露出制御を行う。この後、シャッタースイッチSW1がONされていれば、シャッタースイッチSW2がONされて撮影されるまでこの露出制御値で固定となる。さらに、ステップS407ではメモリ52に記憶しているサーボAEフラグをOFFにする。
ステップS405においてサーボAE用SW1露出制御値で適正になると判断された場合はステップS408に進み、ステップS408ではシステム制御部50は、ステップS404で記憶したサーボAE用SW1露出制御値となるように露出制御を行う。更に、ステップS409においてメモリ52に記憶しているサーボAEフラグをセットする。
図5に示すステップS501において、シャッタースイッチSW2のON/OFF状態を判断する。シャッタースイッチSW2がONの場合は図6に示すステップS601に進む。
シャッタースイッチSW2がOFFの場合(ステップS501)、さらにシャッタースイッチSW1もOFFになると(ステップS502)、ステップS305に戻る。シャッタースイッチSW1がON、シャッタースイッチSW2がOFFの間は、ステップS501、S502の処理が繰り返される。
ステップS409においてメモリ52に記憶しているサーボAEフラグをセットした後、ステップS503では、システム制御部50はサーボAFを開始する。なお、サーボAFとは、SW1保持中に被写体の動きに追従して合焦制御を行い焦点を合わせ続けるAF制御のことであり、以降、サーボAFが停止されるまでは被写体に合わせて焦点を合わせ続ける処理を行う。
次に、システム制御部50は操作部70に含まれるダイヤルやポップアップストロボの状態に変化がないかを判定する(ステップS504)。ここで、状態変化を判定する対象は、露出条件に影響のある設定に関する操作部材であり、例えばISO感度を設定可能なISOダイヤル、露出補正値を設定可能な露出補正ダイヤル、ポップアップストロボなどである。これらの状態に変化があった場合はステップS311に戻る。
ダイヤルやポップアップの状態に変化が無い場合は(S504)、最新の測光値を求めるために測光処理を行い、測光値をメモリ52に記憶する(S505)。
次に、ステップS506において、システム制御部50はステップS505で求めた測光値に対してサーボAE用静止画露出制御値を算出する。このサーボAE用静止画露出算出処理は図9を用いて後述する。
次に、ステップS507において、システム制御部50はステップS505で求めた測光値に対してサーボAE用SW1露出制御値を算出する。このサーボAE用SW1露出算出処理は図10を用いて後述する。
ステップS508では、ステップS507で求めたサーボAE用SW1露出制御値となるように露出制御を行う。
ステップS509では、ステップS506で算出した露出制御値に応じて表示部54の表示を更新する。例えば、ステップS506で求めた絞り値や露光時間、ISO感度を表示したり、露光時間に応じて手ブレ警告表示を行う。なお、通常は露光時間が長い場合には手ブレ警告表示と併せてストロボ警告を行う場合があるが、ここではストロボ警告は行わない。なぜなら、サーボAE中は露光時間が変化することがあるため、それにストロボ状態を合わせてしまうと発光/非発光が頻繁に切り替わってしまうことがあるからである。発光/非発光が切り替わってしまうと、急に発光しようとしても充電完了待ちが発生しレリーズタイムラグの増大を招くため、サーボAE中は露光時間が長くなってもストロボ発光しないようにする。すなわち、フラッシュ撮影をするか否かの判断はサーボAEが開始される前のステップS313のタイミングで行い、サーボAE中は被写体輝度が変化したとしてもフラッシュ撮影をするか否かの判断を行わないようにする。
ステップS510、S511ではシャッタースイッチSW1、シャッタースイッチSW2のON/OFF状態を判断する。シャッタースイッチSW2がONされている場合は(ステップS510)、サーボAFを停止し(ステップS512)、ステップS601に進む。
シャッタースイッチSW2がOFFの場合(ステップS510)、さらにシャッタースイッチSW1もOFFになると(ステップS511)、サーボAFを停止し(ステップS513)、ステップS305に戻る。シャッタースイッチSW1がON、シャッタースイッチSW2がOFFの間は、ステップS504〜S511が繰り返される。
図6に示すステップS601において、システム制御部50は、画像表示部28のスルー表示を中断する。そして、ステップS602において、システム制御部50は、露光処理や現像処理を含む撮影処理を実行する。なお、露光処理では、A/D変換部16、画像処理部20、メモリ制御回路22を介して、あるいはA/D変換部16から直接メモリ制御回路22を介して、メモリ30に撮影した画像データが書き込まれる。また、現像処理では、システム制御部50が、必要に応じてメモリ30に書き込まれた画像データを読み出して各種処理を行う。この撮影処理の詳細は図12を用いて後述する。
次に、システム制御部50は、ステップS603おいて、撮影処理で得られた画像データのレックレビュー表示を画像表示部28に表示させる。レックレビューとは、撮影画像の確認のために、撮影したあと記録媒体への記録前に、予め決められた時間(レビュー時間)だけ画像データを画像表示部28に表示する処理である。レックレビュー表示後、ステップS604において、システム制御部50は撮影処理で得られた画像データを画像ファイルとして記録媒体200に対して書き込む記録処理を実行する。
ステップS604の記録処理が終了すると、ステップS605において、システム制御部50は、シャッタースイッチSW2のON/OFF状態を判断する。シャッタースイッチSW2がONの場合は、ステップS605の判断を繰り返し、シャッタースイッチSW2がOFFになるのを待つ。この間、画像表示部28でのレックレビューの表示を継続させる。このように構成することにより、ユーザは、シャッターボタンの全押し状態を継続することで、レックレビューを用いた撮影画像データの確認を入念に行うことが可能となる。
ユーザがシャッターボタンを全押し状態にして撮影を行った後、シャッターボタンから手を放すなどして全押し状態が解除されシャッタースイッチSW2がOFFになると、ステップS606へ進む。ステップS606において、システム制御部50は、予め定められた所定レビュー時間が経過したか否かを判断し、所定レビュー時間が経過していればステップS607に進む。ステップS607において、システム制御部50は、画像表示部28の表示状態をレックレビュー表示状態からスルー表示状態に戻す。この処理により、レックレビュー表示によって撮影画像データを確認した後、画像表示部28の表示状態は次の撮影のために撮像部からの画像データを逐次表示するスルー表示状態に自動的に切り替わることになる。
そして、ステップS608において、システム制御部50は、シャッタースイッチSW1のON/OFFを判断し、シャッタースイッチSW1がONの場合はステップS609へ進み、OFFの場合はステップS305へ戻る。
ステップS609ではメモリ52に記憶されたサーボAEフラグを参照し、フラグがONであればステップS503へ戻り、フラグがOFFの場合はステップS501へ戻る。すなわち、シャッターボタンの半押し状態が継続している(シャッタースイッチSW1がON)場合は、システム制御部50は次の撮影に備える(ステップS501、S503)。一方、シャッターボタンの半押し状態が解除された状態(シャッタースイッチSW1がOFF)であったならば、システム制御部50は、一連の撮影動作を終えて撮影待機状態に戻る(ステップS305)。
図7は図4に示すステップS401におけるサーボAE判定処理を示すフローチャートである。なお、図7は判定項目の一例を示したものであって、必ずしも図7に示した項目に基づいて判定を行わなくてもよい。また、判定処理を行うタイミングについては、SW1保持中の判定項目の状態が確定していればステップS401のタイミングでなくてもよい。
システム制御部50はステップS301においてメモリ52に格納された撮影モードを参照し、AE処理を行う撮影モードか否かを判断する(ステップS701)。AE処理を行わない撮影モードであった場合はステップS705へ進み、SW1保持中にサーボAEを実行しないものとする。AE処理を行わない撮影モードとしては、例えば、マニュアルモードなどが挙げられる。
AE処理を行う撮影モードであった場合は(ステップS701)、システム制御部50はサーボAFのON/OFF設定状態を判断する(ステップS702)。サーボAFがOFFに設定されていた場合はステップS705へ進み、サーボAEを実行しないものとする。
サーボAFがONに設定されていた場合は(ステップS702)、システム制御部50はステップS313の発光判定の結果を参照し、フラッシュ撮影を行うと判定されていた場合はステップS705へ進む。
フラッシュ撮影しないと判定されていた場合は(ステップS703)、システム制御部50はAEロックされている状態か否かを判断し(ステップS704)、AEロックされていればステップS705に進む。AEロックは操作部70に含まれるAEロックボタンを操作することで実行できる。
AEロックされていない場合は(ステップS704)、システム制御部50はサーボAEを実行するものとして判定結果をメモリ52に記憶し(ステップS706)、サーボAE判定処理を終了する。
ステップS705では、システム制御部50はサーボAEを実行しないものとして判定結果をメモリ52に記憶し、サーボAE判定処理を終了する。
図8は図4のステップS403におけるサーボAE情報記憶処理を示すフローチャートである。
ステップS801で、システム制御部50は、シャッタースイッチSW1がONされた後の一回目の情報記憶処理か否かを判定する。シャッタースイッチSW1がONされた状態で、操作部70に含まれる露出補正ダイヤルを回した場合など、すでに一度後述する情報記憶処理を行っている場合はステップS805へ進む。
シャッタースイッチSW1がONされた後1回目の情報記憶である場合はステップS802に進み、最新の測光値をメモリ52に記憶する。ここで記憶される測光値は、ステップS308で求めた値である。なお、記録される測光値は、ステップS308で求めた値でなくてもよく、ステップS308で求めた値とステップS305で求めた値がほぼ等しいようであればステップS305で求めた値を記憶してもよい。
次に、ステップS803において、SW1保持中の被写体輝度の変化に追従させて露出制御を行う追従範囲を設定し、メモリ52に記憶する。例えば、ステップS802で記憶した測光値を中心に±2段の範囲で測光値が変化した場合には絞り値および露光時間の少なくとも一方を変更させて露出制御を行うように、追従範囲を設定する。ここで設定する追従範囲は、SW1保持中の測光時に用いる露出制御値に関係するため、測光精度を出すために露出補正値が設定されている場合でも露出補正値を反映させないようにする。また、測光値を中心に±2段の範囲を追従範囲として設定したが、測光値を基準にした所定範囲を追従範囲に設定すればよく、測光値を中心に±2段の範囲に限定されるものではない。例えば、測光値を基準にした+1段と−2段の範囲といったように、測光値が中心ではない範囲を追従範囲として設定してもよい。または、ユーザが測光結果などから判断した任意の範囲を追従範囲として操作部70を操作して設定できるようにしてもよい。
さらに、ステップS804において、最新の顔検出個数をメモリ52に記憶し、ステップS805へ進む。ステップS804で記憶した顔の数によって、SW1保持中に検出された顔領域に重点を置いたAE処理をするか否かを切り替える。例えば、ステップS804で記憶した顔検出個数が0の場合は、SW1保持中は常に画面の略全体を測光領域とし、たとえSW1保持中に新たに顔が検出されるようになっても検出された顔領域に重点を置いて露出制御を行わないようにする。逆に、ステップS804で記憶した顔検出個数が1以上の場合は、SW1保持中は常に検出された顔領域が適正露出となるように露出制御を行う。SW1保持中に顔が検出されなくなった場合には、最後に検出された顔領域が適正露出となるような状態で露出制御値を固定する。再び顔が検出されるようになれば、検出された顔領域が適正露出となるように露出制御を再開する。ステップS306で行う通常AEの場合、顔が検出されていない状態では画面略全体測光を行い、顔が検出された状態になると顔重点測光に切り替えるため、ステップS306で行う通常AEとサーボAEとでは異なる制御を行うことになる。
ステップS805で、システム制御部50は、サーボAEによって被写体輝度の変化に対して静止画用の露出制御値を追従させる範囲である静止画用追従範囲を設定し、メモリ52に記憶する。例えば、ステップS802で記憶した測光値を中心に±2段の範囲で測光値が変化した場合には絞り値および露光時間の少なくとも一方を変更させて露出制御を行うように、追従範囲を設定する。ここで設定する静止画用追従範囲に関しては、特にユーザの設定した露出補正値を反映させた値とする点で、ステップS803で設定された追従範囲とは異なる。露出補正値が変わると静止画用追従範囲も変わるため、SW1保持中に操作部70に含まれる露出補正ダイヤルが操作された場合などに、静止画用追従範囲が再設定されるようにしている。
ステップS805で静止画用追従範囲が決定したら、ステップS806にて静止画用追従範囲下限に対応する露出制御値をプログラム線図などを用いて求め、メモリ52に記憶する。なお、追従範囲下限とは、被写体輝度が低く(被写体が暗く)変化した場合の追従限界のことを表し、追従範囲上限とは、被写体輝度が高く(被写体が明るく)変化した場合の追従限界のことを表すものとする。ここでは同一輝度に対して最も絞りを開くプログラム線図を用いて静止画露出制御値を求めるが、それについては図12を用いて後述する。
次に、SW1保持中の追従範囲上限および下限に対応する露出制御値を求め、メモリ52に記憶する(ステップS807)。ここで求める露出制御値について、絞り値に関してはステップS806で求めた静止画用の絞り値に合わせる。処理を終えたら、サーボAE情報記憶処理を終了する。
図9は図5のステップS506におけるサーボAE用静止画露出算出処理を示すフローチャートである。
ステップS901において、システム制御部50は、最新の測光値から求めた露出制御の目標とする露出値を示す目標露出値を、静止画用追従範囲に基づいてクリップ処理する。すなわち、目標露出値をEv、静止画用追従範囲の下限および上限の測光値に対応する露出値をそれぞれEv(a)、Ev(b){Ev(a)<Ev(b)}とした場合、EvとEv(a)、Ev(b)の大小関係に応じて目標露出値を以下のように修正する。修正後の目標露出値は修正後Evとする。
修正後Ev=Ev(a){Ev<Ev(a)}
修正後Ev=Ev{Ev(a)≦Ev≦Ev(b)}
修正後Ev=Ev(b){Ev>Ev(b)}
以上のように、目標露出値が追従範囲下限に対応する露出値を下回る場合には追従範囲下限に対応する露出値を目標露出値となるように修正し、追従範囲上限に対応する露出値を上回る場合には追従範囲上限に対応する露出値を目標露出値となるように修正する。なお、ここで用いる測光値はステップS505で求めたものになる。また、目標露出値Evに対してはユーザが設定した露出補正値を反映させる。すなわち、露出補正値が設定されていない場合には適正露出となる露出値を目標露出値とするが、露出補正値が設定されている場合には適正露出となる露出値よりも露出補正値分シフトした露出値を目標露出値Evとする。
次に、ステップS902では、ステップS901で求めた修正後の目標露出値である修正後Evを実現する露出制御値をプログラム線図等を用いて決定してメモリ52に記憶し、サーボAE用静止画露出算出処理を行うステップS506を終了する。
図10は図4のステップS404および図5のステップS507におけるサーボAE用SW1露出算出処理を示すフローチャートである。
ステップS1001において、システム制御部50は、最新の測光値から求めた露出制御の目標とする露出値を示す目標露出値を、SW1保持中の追従範囲でクリップ処理する。すなわち、目標露出値をEv’、SW1保持中の追従範囲の下限および上限の測光値に対応する露出値をそれぞれEv(a)’、Ev(b)’{Ev(a)’<Ev(b)’}とした場合、S901と同じようにして目標露出値を以下のように修正する。修正後の目標露出値を修正後Ev’とする。
修正後Ev’=Ev(a)’{Ev’<Ev(a)’}
修正後Ev’=Ev’{Ev(a)’≦Ev’≦Ev(b)’}
修正後Ev’=Ev(b)’{Ev’>Ev(b)’}
以上のように、目標露出値が追従範囲下限に対応する露出値を下回る場合には追従範囲下限に対応する露出値を目標露出値となるように修正し、追従範囲上限に対応する露出値を上回る場合には追従範囲上限に対応する露出値を目標露出値となるように修正する。なお、目標露出値Ev’に対してはユーザが設定した露出補正値を考慮せず、常に適正露出となるような露出値を目標露出値Ev’とする。
次に、ステップS1002において、絞り値とNDフィルターに関してはステップS806で記憶した絞り値及びNDフィルターに合わせる。さらに、露光時間に関しては撮像レートを低下させない範囲で、ステップS1001で求めた修正後の目標露出値である修正後Ev’に応じて決定する(ステップS1003)。露光時間を撮像レートが低くならない範囲に制限することによって、露光時間が長いために生じる像ブレを防ぎ、サーボAFを精度よく行えるようになる。なお、本実施例では、サーボAE中は撮像レートを低下させない範囲の露光時間で露出制御を行うようにしたが、特に撮像レートが低い場合には、AF精度の観点から許容可能な最長露光時間を設定し、それ以上に露光時間が伸びないように制御してもよい。すなわち、サーボAE中は通常の露出制御よりも設定可能な最長露光時間が短くなるように制御すればよい。
最後にステップS1004において、修正後の目標露出値である修正後Ev’を実現するよう感度を調整して露出を決定し、サーボAE用SW1露出算出処理を行うステップS404、S507を終了する。
図11は図6のステップS602における撮影処理を示すフローチャートである。
ステップS1101において、システム制御部50は、撮影開始時にその日時を不図示のシステムタイマより取得し、メモリ52に記憶する。続いて、ステップS1102において、ステップS311あるいはS506で記憶した絞り値に従い、絞り機能を有するシャッター12を制御する。別体のNDフィルターを備えている場合は、NDもここで制御する。こうして、露光が開始される(ステップS1103)。
ステップS1104において、システム制御部50は、ステップS311あるいはS506で記憶した露光時間に従って撮像素子14の露光終了を待つ。露光終了時刻に到達すると、ステップS1105において、システム制御部50はシャッター12を閉じる。そして、ステップS1106において、撮像素子14から電荷信号を読み出し、A/D変換部16、画像処理部20、メモリ制御回路22を介して、あるいはA/D変換部16から直接メモリ制御回路22を介してメモリ30に画像データを書き込む。この際、感度設定に応じて読み出し時に信号を増幅する処理も行う。以上、ステップS1101〜S1106が露光処理に対応する。
続いて、ステップS1107において、システム制御部50は必要に応じて、メモリ30に書き込まれた画像データを読み出して画像処理を順次施す。この画像処理は、例えば、ホワイトバランス処理や、圧縮/伸張部32を用いた圧縮処理等が含まれる。また、画像データのうち暗い部分をゲインアップする暗部補正処理もここで行う。処理を終えた画像データはメモリ30に書き込まれる。そして、ステップS1108において、システム制御部50は、メモリ30から画像データを読み出し、これを圧縮/伸張部32を用いて伸張し、画像表示部28の表示用にリサイズする。そして、リサイズされた画像データを画像表示部28に表示するべくD/A変換器26に転送する。一連の処理を終えたならば、撮影処理を終了する。
次に、図12を用いてステップS806における静止画露出制御値を求める処理を説明する。図12は、静止画用プログラム線図の例であり、図12(a)は通常のプログラム線図の例を示しており、図12(b)は被写体の動きを検知した場合のプログラム線図の例を示している。
図12(a)を用いて、静止画露出制御値と追従範囲との関係について説明する。まず、シャッタースイッチSW1がONされた時点の測光値に対応した静止画の適正露出値がEv1であったとする。このときの測光値はステップS802で記憶したものになる。そして、サーボAEを行う場合の静止画用追従範囲として、例えば、適正露出値Ev1に対応する測光値より1段低い測光値から適正露出値Ev1に対応する測光値より1段高い測光値までの範囲を追従範囲として設定する。すなわち、露出値の追従範囲としては、適正露出値Ev1±2段の範囲が追従範囲となる。なお、この処理はステップS805の処理に相当する。
静止画用追従範囲を設定したら、次に、ステップS806の処理である追従範囲下限での静止画露出制御値を求める処理を行う。図12(a)に示した例では、追従範囲下限の静止画露出制御値が(Av1,Tv1)と求まる。サーボAE中に追従範囲内で被写体に追従させて露出制御を行った場合に、最も絞りを開く可能性のある露出制御値が(Av1,Tv1)になる。そのため、SW1保持中に絞りを絞り値がAv1にまで開いておけば、SW1保持中にサーボAFが動作して焦点合わせを行ったときの絞りよりも静止画で絞りを開くことがなくなる。すなわち、絞りを開いて被写界深度が浅くなることにより焦点がずれることを防止できる。このことを鑑み、本実施例では、追従範囲に対応する絞り値のなかの最小絞り値であるAv1をSW1保持中の露出制御に用いる絞り値として記憶し、ステップ404、507におけるサーボAE用SW1露出算出処理で参照する構成にしている。
SW1がONされた時点から被写体が明るくなった場合、ステップS506で算出される実際に静止画撮影する際の露出制御値は、例えば、(Av2,Tv2)になる。この場合、ステップS408、S508のタイミング、すなわち、SW1保持中は絞りを絞り値がAv1となるように固定しておき、ステップS1102のタイミング、すなわち、静止画露出制御の際に絞り値がAv2となるように絞る。
以上のように、Av1よりAv2が絞りを絞った状態になるため、静止画露出制御の際に絞り値を変更することになっても被写界深度が浅い状態から深い状態に変化するので、SW1保持中に焦点の合った被写体に対して焦点の合ったまま静止画が撮影できる。
また、サーボAE中に絞り値や露光時間を変更させる追従範囲を制限し、撮影処理の開始指示がなされるまで追従範囲に対応する絞り値のなかの最小絞り値で絞りを固定することで、静止画露出制御の際に絞り値を変更する場合の絞りの変化量を制限できる。そうすることで、絞り制御に伴うレリーズタイムラグを低減することができる。
また、SW1がONされた時点の測光値を基にして追従範囲を設定することで、SW1保持中に想定される被写体輝度の変化量に対応した追従範囲を設定することができる。そのため、元々明るい被写体に対して必要以上に絞りを開いて固定することがなく、絞りを開くことでスミアが発生し測光精度が低下するといった問題の影響を低減することができる。また、絞りを開くことで撮像素子の入出力の線形性が崩れた領域で測光することになり測光精度が低下し高輝度追従性が低下するといった問題の影響も低減することができる。
次に、図12(a)に示した通常のプログラム線図の他にも、例えば、被写体の動きを検知した場合のプログラム線図など、複数のプログラム線図を有する場合における静止画露出制御値を求める処理を図12(b)を用いて説明する。なお、図12(b)には比較のため、被写体静止時のプログラム線図(図12(a)に示した通常のプログラム線図)も破線で示してある。
被写体の動きの検出方法については、例えば、以下のような方法が挙げられる。連続して撮像される画像データのフレーム間差分を画像処理部20が検知して差分の大小によって検出する方法、システム制御部50が測光結果を監視して測光値の変化によって検出する方法などが挙げられる。また、画像処理部20で検出される顔の位置情報をシステム制御部50が監視して顔の移動量(位置の差分)を基に検出する方法、不図示のジャイロユニットの出力信号を基に検出する方法なども挙げられるが、いずれの方法で被写体の動きを検出してもよい。
被写体が動いている場合には、被写体ブレ防止のためになるべく短い露光時間にしたいため、同一輝度の被写体に対して絞りとしては開く傾向にある。例えば、追従範囲の下限に対応する露出値Ev1−2に対して、絞り値は被写体静止時のプログラム線図ではAv1=4となるが、動き検出時のプログラム線図ではAv3=3となり、一段絞りを開いた状態になる(露光時間は一段短くなる)。サーボAE中に被写体の動き検出の結果に応じて2つの線図を適宜切り替えて露出制御を行う場合は、より絞りを開くことになる動き検出時のプログラム線図を用いてSW1保持中の露出制御に用いる絞り値を求めることが望ましい。例えば、SW1時点では被写体が静止していたとして、被写体静止時のプログラム線図を用いて追従範囲下限の静止画露出制御値を(Av1,Tv1)と求め、SW1保持中は絞り値をAv1にして露出制御を行ったとする。このとき、撮影(SW2)間際に被写体が動き、システム制御部50が動きを検知してプログラム線図を切り替えたとすると、測光値に対応する露出値が最終的にEv1−2であった場合に(Av3,Tv3)という露出制御値で撮影されることになる。このように絞り制御を行うとAv1>Av3であるから、SW1保持中にサーボAFにより被写体に焦点を合わせていたとしても、静止画撮影時に絞りを開くことになってしまい被写体に焦点が合っていない静止画が撮影される可能性がある。これを防ぐために、ステップS806では、例えば、動き検出時のプログラム線図のような、同一被写体輝度に対して最も絞りを開くプログラム線図を用いて追従範囲下限の静止画露出制御値およびSW1保持中の絞り値を求めるようにしている。こうすることで、使用するプログラム線図が切り替わったとしても静止画撮影時に絞りを開くことがなくなり、SW1保持中に焦点を合わせていた被写体に対して焦点がずれないようにすることができる。
なお、本実施例では、被写体の動き検出に伴ってプログラム線図を切り替える場合についてのみ説明を行ったが、動き検出の場合に限らず、サーボAE中に撮影条件に応じてプログラム線図を切り替える場合は同様の処理を行うようにしてもよい。例えば、画像処理部20およびシステム制御部50によって撮影シーンの特徴を抽出および判断して、それによって撮影シーンに適したプログラム線図に自動的に切り替える場合も同様である。
次に、サーボAE中の静止画用追従範囲とSW1保持中の追従範囲との差異について図13を用いて説明する。図13は静止画露出制御値およびSW1保持中の露出制御値を求めるためのプログラム線図の例である。なお、図13において用いられるEv1、Ev2、(Av1,Tv1)、(Av2,Tv2)、(Av3,Tv3)は、図12においても用いられているが、特に対応関係はないものとする。
図13(a)は静止画露出用のプログラム線図である。シャッタースイッチSW1がONされた時点での測光値に対応した適正露出値がEv1であり、露出値の追従範囲として適正露出値Ev1±1段の範囲を追従範囲(追従範囲1)に設定する場合を考える。なお、このとき設定されている露出補正値は0とする。
この状態でサーボAEを開始し、S504で露出補正値が、例えば、+3に変更されたとすると、追従範囲はEv2±1段の範囲(Ev2=Ev1−3)(追従範囲2)に変化する。被写体輝度に変化がない場合であっても露出補正値が+3に変更されると3段明るい露出制御値で撮影する必要がある。すなわち、絞りをより開き、より長い露光時間で撮影する必要があるため、追従すべき露出値の範囲も追従範囲1から追従範囲2にシフトするように、追従範囲を露出補正値分シフトさせる。露出補正値が−3に変更された場合も同様に、追従範囲はEv3±1段の範囲(Ev3=Ev1+3)(追従範囲3)に変化する。
一方、図13(b)はサーボAE中のSW1保持中の露出制御値をプログラム線図で表したものである。図13(a)から、露出補正値が0の場合の静止画用追従範囲下限の絞り値がAv1、露出補正値+3の場合の静止画露出の追従範囲下限の絞り値がAv2、露出補正値−3の静止画露出の追従範囲下限の絞り値がAv3となる。そのため、SW1露出制御値はそれぞれ、露出補正値が0の場合はAv=Av1に固定、露出補正値が+3の場合はAv=Av2に固定、露出補正値が−3の場合はAv=Av3に固定される。
SW1保持中の追従範囲に関しては、露出補正値によらず一定である点で、静止画用追従範囲とは異なる。サーボAE中はSW1保持中の露出制御値で測光処理を行うため、SW1保持中の露出制御値は測光に適したものにすることが求められる。被写体輝度に適していない露出制御値で測光を行うと、撮像素子の入出力の線形性が崩れた領域で測光することになりやすく、測光精度が低下する。そのため、測光精度を出すためには被写体輝度に対して適した露出制御値にしておくことが望ましいため、サーボAE中のSW1保持中の露出制御値は露出補正値の有無によらず適正露出値に対応した露出制御値を設定する。すなわち、ステップS1001における目標露出値を露出補正値を反映させない値とする。また、SW1保持中に画像表示部28に表示される画像データについても、SW1保持中の露出制御値で得られた画像データを表示させることになるので、露出補正を反映させていない適正露出の画像データを表示することになる。
このように、SW1保持中の露出制御値に関しては露出補正値を反映させないため、図13(b)のようにSW1保持中の追従範囲は、露出補正値が変化しても一定となる。ただし、絞り値は露出補正値によって変化するため、露出制御値の組み合わせとしては露出補正値によって変化することになる。
これらを鑑み、露出補正値の変更などの影響を受ける静止画用追従範囲や追従範囲下限に対応した静止画用絞り値についてはステップS404でその都度変更する。一方、SW1保持中の追従範囲のようなSW1がONされた以降変更することのない情報についてはS403で初回のみ記憶するようにしている。
以上述べたように、静止画記録の準備処理を開始した後(SW1がONされた後)に被写体が暗くなっても、追従範囲内であれば準備処理を開始した時の被写体輝度に対応した絞り値よりも絞りを開いた撮影が可能となり、所望の露出で静止画撮影することができる。
また、SW1保持中は追従範囲下限の絞り値に絞りを固定しているので、サーボAFによりSW1保持中に焦点を合わせた状態よりも静止画撮影で絞りを開くことがなく、被写界深度が浅くなることによる焦点ずれを回避することができる。
また、SW1保持中は露光時間を所定時間よりも長くならない範囲で制御することで、露光時間が長くなることにより生じる像ブレを防ぎ、サーボAFの合焦精度を損なうことなくAE制御を行うことができる。特に、露光時間を撮像レートが低くならない範囲で制御し、撮像レートを一定に保つことでAF制御を妨げることなくAE制御も行えるので、焦点および露出の被写体追従性が向上する。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。