<実施形態1>
以下、発明の第1の実施形態について添付の図面に基づいて詳細に説明する。図1は、本発明の実施形態にかかわる撮像装置としてのカメラ700の構成の一例を示すブロック図である。なお、撮像装置には、デジタルスチルカメラ、静止画撮影の可能なデジタルビデオカメラの他、発光量制御のための測光処理が可能な撮像機能を有する装置が含まれる。当該装置は、例えばパーソナルコンピュータ、携帯電話、スマートフォン、PDA、タブレット端末等を含むことができる。
カメラ700は少なくとも2つのマイコン(マイコン100、マイコン200)を有する処理部10を含み、マイコン間のデータ通信は専用バス300を介して行うことができる。撮像部400はマイコン100、マイコン200のいずれからも制御可能であり、撮像素子400aから出力された画像信号をそれぞれのマイコンにおいて処理することが可能である。また、測光撮像素子400dから出力された画像信号をそれぞれのマイコンにおいて処理することが可能である。画像振り分け部400eは撮像素子400aが出力した画像信号をマイコン100に供給する一方、測光撮像素子400dが出力した画像信号をマイコン200に供給することができ、その逆も可能である。画像振り分け部400eによる画像信号の供給先となるマイコンの設定は、処理部10から、即ち、マイコン100、マイコン200のいずれから行ってもよい。
マイコン100は、画像処理部101、CPU(Central Processing Unit)102,メモリ103、コーデック部104、記録制御部105、通信部106、外部接続部107、表示制御部108、操作制御部109を含むように構成される。画像処理部101は、撮像部400から出力されたデータに対して画素補間処理や色変換処理等の画像処理を行う。画像処理部101は、撮像素子400aから読みだした画像信号をYUV色空間のデータフォーマットに変換を行う。また、測光撮像素子400dから読みだした画像信号をYUV色空間のデータフォーマットに変換を行う。
CPU102は、メモリ103に格納されているコンピュータプログラムに従って、カメラ700全体の動作を制御する。特に、本実施形態に対応する撮像振り分け部400eの振り分け制御も行う。メモリ103は、CPU102のワークエリアとして機能する。なお、CPU102のワークエリアは、メモリ103に限られるものではなく、ハードディスクドライブ等の外部記録装置等であってもよい。
撮像部400と画像処理部101は、CPU102によって、AE処理を行うように制御される。CPU102からAE処理を開始するように指示された場合、画像処理部101は、撮像部400の測光撮像素子400dから出力されたアナログの画像信号をA/D変換によりデジタルの画像信号に変換し、さらにYUV形式の画像データに変換してメモリ103に書き込む。また、メモリ103に書き込まれた画像データから測光演算処理を行う。この演算結果に基づいて、TTL(スルー・ザ・レンズ)方式のAE処理を行うことができる。なお、ミラー400bは光軸を切替えることにより、光を送る対象を撮像素子400aと測光撮像素子400dとの間で切替えることができる。
撮像部400及び画像処理部101は、CPU102によって、撮影を行うように制御される。CPU102から撮影を開始するように指示された場合、撮像部400及び画像処理部101は露光処理や現像処理等の処理を含む撮影処理を実行する。画像処理部101は撮像素子400aから出力されたアナログ画像信号をA/D変換によりデジタルの画像信号に変換し、さらにYUV形式の画像データに変換してメモリ103に書き込む。また、メモリ103に書き込まれた画像データに対して、コーデック部104がエンコードを行う。コーデック部104ではYUVの画像データをJPEG形式やロスレス圧縮(RAW形式)などの静止画像へのエンコードし、また、JPEG形式やロスレス圧縮(RAW形式)などのデータをYUVの画像データにデコードする。エンコードされた画像データはメモリ103に記憶される。マイコン100は、同じYUVの画像データに対してコーデック部104で異なるエンコードを使用して複数の撮像画像を生成することもできる。
記録制御部105は、カメラ700の動作モードが撮影モードである場合は、撮像部400から出力された画像信号を処理して得られた静止画像データをファイル形式で記録媒体500に記録する。記録制御部105に接続される記録媒体500は、取り外し可能なリムーバブルメディアでもよいし、カメラ700に内蔵される記憶領域でもよい。通信部106は、他のマイコンとのデータ通信を行う為の装置である。データ受信するためのデータ受信部106a、データ送信する為のデータ送信部106b、単純な制御コマンドなどのメッセージを送る為のメッセージ通信部106cとで構成されている。通信部106での通信は専用の通信バス300を介して行われる。それぞれの通信は独立して行うことが可能である。
外部接続部107は、カメラ700が外部の機器と接続された場合に、接続制御を行う。例えば、パソコンとUSBなどで接続された場合、撮影した静止画像を外部接続部107から直接パソコンに送ることができる。また、外部接続部107は、無線接続の通信や、テレビなどの映像出力機器への映像信号を制御できてもよい。表示制御部108は、液晶ディスプレイなどの表示装置110における表示を制御する。カメラ700の動作モードが撮影モードである場合、撮像部400からの画像信号に基づく画像データがメモリ103上に展開され、表示制御部108は表示装置110が当該画像データを表示するように制御する。
操作制御部109は、カメラ700を操作するための操作部111と通信し、ユーザからの操作を受け付ける。操作部111は、カメラ700を操作するための電源ボタン、モード変更ボタン、シャッターボタン、十字ボタン、メニューボタン等を含み、各ボタンはスイッチ、タッチパネル等により構成される。
CPU102は、操作制御部109を介して入力されたユーザの指示に従ってカメラ700を制御することができる。ユーザによって操作部111のボタンが操作された場合、操作制御部109が操作部111から各ボタンに応じた操作信号をCPU102に出力する。CPU102は操作制御部109から入力された操作信号を解析し、解析結果に応じて操作信号に対応した処理を判定する。CPU102は、操作制御部109から入力された操作信号に対応した処理を実行するようにカメラ700の各部を制御する。
次に、マイコン200は、画像処理部201、CPU202、メモリ203、コーデック部204、記録制御部205、通信部206を含むように構成される。ブロック201から206はマイコン100におけるブロック101〜106に対応し、同一機能を有するので、ブロック201から206の機能については説明を省略する。
以下、発明の実施形態に対応する処理の詳細を説明する。カメラ700の各マイコンの撮像素子400aでの撮像画像、測光撮像素子400dでの測光画像を同時に取り込みながら、測光をして連続撮影をする場合のタイミングチャートについて、図2を用いて説明する。図2では、上からミラー400b、撮像素子400a、測光撮像素子400d、画像振り分け部400e、マイコン100及びマイコン200のそれぞれの動作を横軸の時間軸において示している。
まず、ミラー400bの動作は、上位と下位の2つの動作状態を含む。時間軸が上位にある場合にはミラーアップ状態を表しており、その際の光軸は撮像素子400aに対して向けられてた状態となる(撮像素子露光時)。一方、下位にある場合には、ミラーダウン状態を表しており、その際の光軸は測光撮像素子400dに対して向けられた状態となる。時間軸上にある測光P0、測光P1等は測光タイミングを示し、P0期間、P1期間等は測光期間を示している。なお数字はその回数・順番を表している。
次に、撮像素子400aの動作タイミングにつき、時間軸上にあるI蓄積は上記ミラー動作のミラーアップにより露光がはじまり、撮像素子400aにおいて結像している状態を表現している。またiは蓄積の回数、順番を表し、iなら一回目の撮影、iiなら二回目の撮影ということを表している。
次に、測光撮像素子400dの動作タイミングにつき、時間軸上にあるP蓄積はミラーダウン中に、各測光タイミング(測光P0、P1など)で測光撮像素子400dにより露光し、結像している状態を表している。数字は、その蓄積回数、順番を表している。
次に、画像振り分け部400eの動作タイミングにつき、時間軸上にあるA設定、B設定、C設定の意味を下記に説明する。
まず、A設定では画像振り分け部400eが測光撮像素子400dからの画像信号の供給先をマイコン200とする設定状態を表す。B設定では画像振り分け部400eが測光撮像素子400dからの画像信号の供給先をマイコン200へ、撮像素子400aからの画像信号の供給先をマイコン100として振り分ける設定状態の表す。C設定では画像振り分け部400eの設定が、測光撮像素子400dからの画像信号の供給先をマイコン100へ、撮像素子400aからの画像信号の供給先をマイコン200として振り分ける設定状態を表す。
このように、A設定、B設定及びC設定のいずれにおいても、同一のマイコンで処理が時間的に重複しないように撮像画像及び測光画像の供給先が設定される。数字は、0、1は測光の回数、順番を表し、i、iiは撮像画像の回数、順番を表している。
次にマイコン100の動作につき、時間軸上にあるI読出は、撮像素子400aから画像信号を読みだしている期間、言い換えると、マイコン100が撮像素子400aから画像信号を取得している期間を表している。I画像処理は、撮像素子400aから読み出した画像信号を画像処理部101が画像データとしてメモリ103に記憶させ、さらにコーデック部104がJPEG変換やロスレス圧縮(RAW形式)を行って静止画データを生成する期間を表している。P読出は、測光撮像素子400dから画像信号を読みだし取得している期間を表している。P画演算は、測光撮像素子400dから取得した画像信号を画像処理部101が画像データとしてメモリ103に記憶させ、CPU102が測光演算を行う期間を表している。数字は、iは撮像素子400aから出力された画像信号に基づく処理回数、順番を表し、3は測光撮像素子400dから出力された画像信号に基づく処理回数を表している。なお、測光演算方法については、公知の技術なので、ここでは特に記述しない。
次にマイコン200の動作タイミングにつき、時間軸上にあるI読出画像処理、P読出画演算は上記マイコン100で説明した処理と同様の処理をマイコン200が実施することを表している。
以下、具体的に図2のタイミングチャートに基づき、カメラ700の動作を時系列に説明する。まず、ミラーダウン状態時に測光P0により測光撮像素子400dがP蓄積0を行う。その際の画像振り分け部400eはA設定0に設定されている。よって本実施形態では、P蓄積0に続く処理をマイコン200が行うものとし、P蓄積0のあとにマイコン200がP読出0、P画演算0を行い、測光値を決定する。なお、本実施形態ではA設定をマイコン200に処理を割り当てる設定としたが、A設定はマイコン100と200のいずれかに割り当てる設定であればよい。また、画像振り分け部400eの当該設定はマイコン100、200どちらから行ってもよい。また、測光P1でも同様の処理を行い、測光P1で決定した測光値で撮像が開始される。撮像要求により、撮影iのタイミングでミラー400bをミラーアップ状態にして、撮像素子400aの露光が行わる。その際、画像振り分け部400eはB設定i−2に設定される。
撮像素子400aはI蓄積iを行い、I蓄積i完了後にマイコン100がI読出iを行う。I読出iの後、マイコン100はI画像処理iを行う。蓄積完了後はミラー400bをミラーダウン状態にし、ミラー400bが下がった測光P2のタイミングで測光撮像素子400dがP蓄積2を行う。P蓄積2の完了後、マイコン200はP読出2、P画演算2を順に行い、次の撮影のための測光値を決定する。マイコン100がI読出iをしている間、画像振り分け部はB設定に設定され、マイコン200には測光撮像素子400dからの画像信号が供給されて、測光値が決定される。
次に、マイコン100にはI読出iにて撮像素子400aからの画像信号が供給され、I読出iの完了後、次の撮影iiが開始される。ミラー400bがミラーアップ状態となり、撮像素子400aへの露光が行われる。その際、画像振り分け部400eはC設定ii−3に設定される。撮像素子400aはI蓄積iiを行い、I蓄積iiの完了後にマイコン200がI読出iiを行う。また図2には記載していないが、I読出iiの完了後、次の撮影iiiを開始することができる。また、I読出iiの後にマイコン200はI画像処理iiを行う。このI読出iiは、マイコン100がI画像処理iを行っている間に開始することができる。即ち、マイコン100における撮影iに基づくI画像処理iの完了を待たずに次の撮影iiを開始して、I読出iiを開始することができるので、連写速度を向上させることができる。
I蓄積iiの完了後、ミラー400bをミラーダウン状態にし、ミラーが下がった測光P3のタイミングで測光撮像素子400dがP蓄積3を行う。P蓄積2の完了後、I画像処理iを終えたマイコン100がP読出3、P画演算3を行い、次の撮影のための測光値を決定する。これ以降は、説明したタイミングチャートの動作を繰り返し、撮像素子と測光撮像素子からの出力を並行処理することで連続撮影を行う。
次に、前述の図2のタイミングチャートの制御方法を図3の撮影処理フローチャートを使って説明する。図3及びこれ以降のフローチャートに対応する処理は、例えばCPU102及び202が、メモリ103、203に格納されているコンピュータプログラムを実行することにより実現することができる。なお、図3およびこれ以降のフローチャートでは、説明のために各ステップを順に記載しているが、各ステップに対応する処理はフローチャートに示す順序で時系列に実行されなくてもよい。例えば、連続して記載される複数のステップが同時に実行されても良いし、実行順序が入れ替わっても良い。
まずS301ではCPU102が測光開始(測光P0)要求を受け付けた否かの判断を行う。当該判断は、例えば、撮影モードにおいてユーザが操作部111のシャッターボタンを半押する操作を行ったかどうかに基づき行うことができる。もし、当該要求を受け付けていない場合、S301の判断を繰り返す。CPU102が要求を受け付けたと判断した場合、S302に進み、測光処理を行う。S302における測光処理の詳細は、図4の測光処理フローチャートを参照して後述する。次にS303に進み、CPU102は撮影の開始要求(撮影i)がされたか否かの判断を行う。当該判断は、撮影モードにおいてユーザが操作部111のシャッターボタンを全押しする操作を行ったかどうかに基づき行うことができる。もし、当該要求を受け付けていない場合、S302に戻り、測光処理(測光P1)を行う。要求を受け付けたと判断した場合はS304に進み、撮影測光処理S304を行う。撮影測光処理の詳細は、図5の撮影測光処理フローチャートを参照して後述する。以上のようにして、図2のタイミングチャートに対応する撮影処理制御を行うことができる。
次に、図4の測光処理フローチャートを使って、図3のS302の測光処理の詳細を説明する。まず、S401では画像振り分け部400eに対しA設定の設定処理を行う。この設定処理は、測光撮像素子400dから出力された画像信号の画像振り分け部400eからの供給先をマイコン200に設定するための処理であって、設定自体はマイコン100から行ってもマイコン200から行ってもよい。次にS402では、測光撮像素子400dによるP蓄積処理を行う。なお、P蓄積処理とは、上述のようにミラー400bのミラーダウン中に、所定の測光タイミングで測光撮像素子400dが露光し、測光用の画像信号を出力する処理である。
次にS403に進み、マイコン200のP読出処理を行う。S401で画像振り分け部400eはA設定に設定されており、測光撮像素子400dからの画像信号はマイコン200に供給される。よって、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS404ではマイコン200のP画演算処理を行う。P画演算処理では、S403で読みだされた測光撮像素子400dからの画像信号を画像処理部201が画像データとしてメモリ203に展開した上で、CPU202により、測光演算を行う処理を行い、測光結果を算出する。以上のようにして、図3のS302における測光処理を実行することができる。
次に、図5の撮影測光処理フローチャートを参照して、図3のS304における撮影測光処理の詳細を説明する。まず、S501ではCPU102及びCPU202がマイコン100が撮像素子400aからの画像信号を処理するか否かの判定をするためのフラグを参照し、フラグ値がTRUEかどうかの判定をする。このフラグ値はマイコン100のメモリ103内に保持され、初期値はTRUEとなっている。また、当該フラグの情報はマイコン100とマイコン200との間で通信部106を介して、互いに同期をとって保持されている。即ち、マイコン200内のメモリ203にも対応するフラグ値が保持されている。CPU102とCPU202がフラグ値がTRUEと判断すると、処理はS302に進む。
S502では、マイコン200のCPU202がミラー400bの動作を制御してミラーアップ処理を実行させ、ミラーアップ状態にする。その後のS503では、マイコン100のCPU102が、画像振り分け部400eの設定をB設定にする。即ち、画像振り分け部400eが、測光撮像素子400dからの画像信号をマイコン200へ、撮像素子400aからの画像信号をマイコン100へ振り分けるように画像振り分け部400eの動作を設定する。なお、マイコン100のCPU102がミラーアップ処理を行い、マイコン200のCPU202が画像振り分け部400eの準備およびB設定への設定処理を行ってもよい。いずれの場合においても、異なるマイコンで並列処理をすることで時間を短縮することが重要になる。
S501での判定に基づく分岐の説明に戻り、S501でフラグ値がTRUEでない(FALSE)と判断された場合、S504に進む。S504ではマイコン100のCPU102がミラー400bのミラーアップ処理を行い、続くS505では、マイコン200のCPU202が画像振り分け部400eをC設定に設定する。即ち、画像振り分け部400eが、測光撮像素子400dからの画像信号をマイコン100へ、撮像素子400aからの画像信号をマイコン200へ振り分けるように画像振り分け部400eの動作を設定する。なお、マイコン200のCPU202がミラーアップ処理、マイコン100のCPU102が画像振り分け部400eのC設定への設定処理を行ってもよい。いずれの場合においても、異なるマイコンで並行に処理をすることで時間を短縮することが重要になる。
次に、S506では、CPU102またはCPU202が撮像素子400aを制御し、I蓄積処理において露光及び画像蓄積を行わせる。続くS507では、CPU102とCPU202とが上記フラグ値がTRUEかどうかを判定する。フラグ値がTRUEと判定された場合、S508に進む。S508ではマイコン100がI読出処理を実行して撮像素子400aから画像信号を読み出す。このとき画像振り分け部400eはB設定に設定されており、撮像素子400aからの画像信号がマイコン100に供給され、測光撮像素子400dからの画像信号がマイコン200に供給されることとなっている。従って、マイコン100は撮像素子400aから画像信号を読み出すことができる。次にS509に進み、マイコン100でI画像処理を行う。
S509におけるI画像処理では、例えば、画像素子400aから読み出した画像信号を画像処理部101が処理して画像データとしてメモリ103に記憶させ、さらにコーデック部104がJPEG変換やロスレス圧縮(RAW形式)して静止画データを生成する。またS510において、マイコン200がミラーダウン処理を行う。ミラーダウン処理は、I蓄積が完了した時点で開始され、このときマイコン100はI読出処理及びI画像処理をするので、マイコン200がミラーダウン処理を行うことが望ましい。
一方、S507でフラグ値がTRUEでなかった(FALSE)場合、S511にてマイコン200がI読出処理を実行して撮像素子400aから画像信号を読み出す。このとき画像振り分け部400eはC設定に設定されており、撮像素子400aからの画像信号がマイコン200に供給され、測光撮像素子400dからの画像信号がマイコン100に供給されることとなっている。従って、マイコン200は撮像素子400aから画像信号を読み出すことができる。次にS512に進み、マイコン200がI画像処理を行う。
S512におけるI画像処理では、例えば画像素子400aから読み出した画像信号を画像処理部201が処理して画像データとしてメモリ203に記憶させ、さらにコーデック部204がJPEG変換やロスレス圧縮(RAW形式)して静止画データを生成する。またS513においてマイコン100がミラーダウン処理を行う。ミラーダウン処理は、I蓄積が完了した時点で開始され、このときマイコン200はI読出処理及びI画像処理をするので、マイコン100がミラーダウン処理を行うことが望ましい。
I蓄積後のミラーダウン処理が完了すると、S514で測光撮像素子400dが露光、画像蓄積を行うことでP蓄積処理を行う。続くS515では、CPU102及びCPU202が上述のフラグ値がTRUEかどうかを判定する。フラグ値がTRUEの場合、S516においてマイコン200が測光撮像素子400dから画像信号を読み出してP読出処理を実行する。このとき画像振り分け部400eにはS503でB設定がなされており、撮像素子400aからの画像信号がマイコン100に供給され、測光撮像素子400dからの画像信号がマイコン200に供給されることになっている。従って、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS517に進み、マイコン200でP画演算処理を行う。S517のP画演算処理では、測光撮像素子400dから読み出した画像信号を画像処理部201が処理して画像データとしてメモリ203に記憶させ、CPU202が測光演算を行って測光結果を算出する。
S515での判定に基づく分岐の説明に戻り、フラグ値がTRUEでない(FALSE)と判定された場合、S518においてマイコン100が測光撮像素子400dから画像信号を読み出してP読出処理を実行する。このとき画像振り分け部400eにはS505でC設定がなされており、撮像素子400aからの画像信号はマイコン200に供給され、測光撮像素子400dからの画像信号がマイコン100に供給されることになっている。従って、マイコン100は測光撮像素子400dから画像信号を読み出すことができる。次にS519に進み、マイコン100でP画演算処理を行う。S519のP画演算処理では、測光撮像素子400dから読み出した画像信号を画像処理部101が処理して画像データとしてメモリ103に記憶させ、CPU102が測光演算を行って測光結果を算出する。
次にS520ではフラグ値を変更する。当該フラグ値の変更処理では、フラグ値がTRUEである場合にはFALSEに変更し、FALSEである場合にはTRUEに変更する。これにより、撮像素子400aからの画像信号の処理を、マイコン100とマイコン200との間で交互に切り替えることが可能となる。続くS521では、撮影を終了するか否かを判定する。もし終了でなければ、S501に戻り、処理を繰り返す。終了と判断すれば、撮影測光処理を終了する。以上のようにして、図3のS304において撮影測光処理を行うことができる。
以上の実施形態によれば、複数のマイコンと複数の撮像素子、例えば撮像素子と測光撮像素子でタイミングが不定期、かつ非同期行われる際の出力を並行処理して、高速撮影動作を実現することができる。
<実施形態2>
以下、発明の第2の実施形態を説明する。実施形態2における撮像装置の構成は実施形態1で説明したカメラ700と同じなので、説明を省略する。
以下、実施形態2に対応する本発明のカメラ700の動作について、図6のタイミングチャートを参照して説明する。図6では、図2と同様、上からミラー400b、撮像素子400a、測光撮像素子400d、画像振り分け部400e、マイコン100及びマイコン200のそれぞれの動作を、横軸の時間軸において示している。但し、図10のタイミングチャートは、図2のタイミングチャートと比較して、時間軸上にマイコン100によるI画像読出が不可と判断されるタイミングを示す線601及び602がある点で異なっている。
図6における測光P3のタイミングは実施形態1の図2における測光P3と同一で、画像振り分け設定部400e、マイコン100、マイコン200の動作、及び、そのタイミングも同一である。時間軸上にある線601は、マイコン200のI読出iiが終わったタイミングを示している。線601のタイミングは、次に撮影が行われた場合に、例えば、メモリ103の空き容量がないといった、マイコン100がI画像読出できない何らかの要因の存在を判断をするタイミングを表している。
図6は、判断タイミング601においてマイコン100でI画像読出ができないと判断された例を示している。実施形態1ではI読出完了後に次の撮影を開始することができたが、図6の例では、撮影開始タイミングは図2の実施形態1の場合にくらべて遅くなる。次の撮影タイミングとしては、マイコン200のI画像処理iiが終わった時点で、マイコン200が撮像素子400aから画像信号を読み出すことが可能となるので、撮影iiiを開始できる。
撮影iiiが開始されるとミラー400bをミラーアップ状態にして、撮像素子400aに露光が行われる。その際、画像振り分け部400eはC設定iii−4に設定される。前回の画像振り分け部400eの設定がC設定なので、ここでの処理を省いても問題はないが、画像振り分け部400eになんらかの設定をしている期間は電力が消費される場合も考慮して、撮影していない、もしくは測光していない場合には、画像振り分け部400eへの設定を無効にしておくことが望ましいため、改めて設定をするものとしている。
撮像素子400aはI蓄積iiiを行い、I蓄積iii完了後にマイコン200がI読出iiiを行う。I蓄積iii完了後はミラー400bをミラーダウン状態にし、ミラー400bが下がった測光P4のタイミングで測光撮像素子400dがP蓄積4を行う。なお、撮影素子400aによるI読出に必要なメモリ容量は、画像信号のデータ量が大きいためにマイコン100内のメモリ103内に確保できない場合もある。一方、測光撮像素子400dから出力される画像信号は、測光用のデータであってメモリ容量を圧迫しないので、測光撮像素子400dからの読出はいつでも可能としている。
P蓄積4の完了後にマイコン100がP読出4、P画演算4を行い、次の撮影のための測光値を決定する。マイコン100で撮影ができない場合、画像振り分け部400eをC設定にし、マイコン200で撮影する設定に切り替えて、マイコン200でI読出をしている間にマイコン100で測光撮像素子400dからのデータを受け、測光値を決定する。次にマイコン200で撮像素子400aからの画像信号を読み出すI読出iiiの完了後、線602で示すタイミングにおいてマイコン100によるI画像読出が可能かどうかの判定を行う。図6は、判断タイミング602においてマイコン100でI画像読出ができると判断された例を示している。これ以降は実施形態1で説明した動作に復帰して、連続撮影を行うことができる。以降、説明したタイミングチャートの動作を繰り返し、撮像素子と測光撮像素子からの出力を並行処理することで連続撮影を行う。なお、図6では、マイコン100がI画像の読出が可能か否かを判定したが、マイコン200がI画像の読出が可能か否かの判定も、上記の説明と同様に行うことができる。
次に、図6タイミングチャートに対応する撮影処理を説明する。当該撮影処理は、図3の撮影処理と同様に実施できるが、S304の撮影測光処理の詳細が異なるので、異なる点を説明する。図5のフローチャートでは、S517及びS519におけるP画演算処理の後、S520においてフラグ値の変更処理を行った。ここでは、単純にフラグ値がTRUEである場合にはFALSEに変更し、FALSEである場合にはTRUEに変更するだけであった。
これに対し、本実施形態では図7に示すようなフラグ値変更処理を行う。まず、S701でCPU102及びCPU202がフラグ値がTRUEか否かを判定する。もしフラグ値がTRUEと判断された場合、S702に進む。S702では、CPU202がマイコン200でI画像の読出しが可能か否かを判定する。フラグ値がTRUEの場合、フラグ変更処理によりフラグ値がFALSEに変更されるので、変更後の設定で撮像素子400aから画像信号を取得することとなるマイコン200がI画像の読出しが可能か否かをここで判定する。判断基準は様々あるが、本実施形態ではメモリ203の空き容量に基づき、所定容量以上の空き容量がメモリ203内に確保できるか否かを判定する。もし、所定容量以上の空き容量が確保できる場合はI読出が可能と判定され、確保できない場合はI読出は不可能と判定される。
もしI読出が不可能と判定された場合、S703に進む。S703ではCPU102がマイコン100のI画像処理が完了したかの判断を行い、完了と判断すれば、フラグ値変更処理を終了する。その後、処理はS521に移行する。完了していなければ、S703に戻り完了を判断する。これによりフラグ値を書き換えないため、次も同じマイコンで撮像素子400aから画像信号を取得し、処理することができる。
一方、S702でI読出が可能と判定された場合、S704においてフラグ値を変更する。当該変更処理では、フラグ値をTRUEからFALSEに変更する処理を行う。これにより、撮像素子400aからの画像信号の処理を、マイコン100からマイコン200へ切り替えることが可能となる。
また、S701でフラグ値がTRUEでない(FALSE)場合、S705に進む。S705ではCPU102がマイコン100でI画像の読出しが可能か否か判定する。フラグ値がFALSEの場合、フラグ変更処理によりフラグ値がTRUEに変更されるので、変更後の設定で撮像素子400aから画像信号を取得することとなるマイコン100がI画像の読出しが可能か否かをここで判定する。判定基準は、例えばメモリ203の場合と同様に空き容量に基づくものとできる。もしI読出が不可能の判定された場合、S706に進む。S706ではCPU202がマイコン200のI画像処理が完了したか否かを判定し、完了した場合は終了する。完了でなければ、S706に戻り完了を判断する。これによりフラグ値を書き換えないため、次も同じマイコンで撮像素子400aからの画像信号を処理することができる。一方、S705でマイコン100でI読出が可能と判断された場合、S707にてフラグ値を変更する。当該変更処理では、フラグ値をFALSEからTRUEに変更する。これにより、撮像素子400aからの画像信号の処理を、マイコン200からマイコン100へ切り替えることが可能となる。以上のようにして、フラグ値変更処理を行う。
以上の実施形態によれば、複数のマイコンと複数の撮像素子、例えば撮像素子と測光撮像素子でタイミングが不定期、かつ非同期行われる際の出力を並行処理する場合に、一方のマイコンで画像の読出が困難な場合には他方のマイコンでの読出を継続して行う。これによって撮像装置を高速に動作させることができる。
<実施形態3>
以下に、発明の第3の実施形態を説明する。実施形態3における撮像装置の構成は実施形態1で説明したカメラ700と同じなので、説明を省略する。
上記実施形態1及び2では、複数の撮像素子からの非同期出力を複数のマイコンで並行処理する場合の撮像装置の動作の高速化について説明した。本実施形態では、当該複数の撮像素子と複数のマイコンを利用し、処理情報の通信の高速化を説明する。特に、静止画連続撮影からライブビュー撮影へ動作モードが切り替る場合の情報の引き継ぎに関して説明する。なお、以下の実施形態では、具体的に被写体の追尾を行う際のマイコン間での追尾情報の引き継ぎを説明するが、発明の実施形態は追尾情報に限定されるものではなく、引き継ぎが可能な情報であれば、撮影パラメータ等の他の情報であっても良い。また、被写体領域として特に顔領域を検出する例を説明するが、被写体は、顔に限定されるものではなく、撮像可能な被写体であって追尾が可能なものであればよい。
まず、図8を参照してカメラ700の動作モードが切り替る際の追尾情報の引き継ぎについて説明する。本実施形態では、「静止画撮影モード」から「ライブビュー撮影モード」へ切り替わる場合について説明する。ライブビュー撮影モードとは、静止画や動画撮影を行う際に、撮像素子400aによる撮像画像を表示装置108やファインダ400cに表示し、ユーザに撮像画像を確認しながら撮影を可能とする撮影モードである。
なお、静止画撮影モードでは撮像素子400aと測光撮像素子400dとの両方を使用し、撮像画像の生成だけでなく、測光画像の生成も行うのに対し、ライブビュー撮影モードでは、撮像素子400aによる撮像のみが行われる。静止画撮影モードでは、測光撮像素子400dから出力される画像信号に基づき顔検出を行うのに対し、ライブビュー撮影モードでは、撮像素子400aから出力された画像信号に基づき顔検出を行う。更に、静止画撮影モードでは、撮像素子400a内の有効画素で構成される撮像領域に含まれる全画素の画像信号が出力されるが、ライブビュー撮影モードでは撮像領域に含まれる一部の画素の画像信号のみが出力されても良い。また、静止画撮影モードとライブビュー撮影モードでは、画像処理部101(201)における処理のレベルが異なっていても良い。即ち、ライブビュー撮影モードでは、記録目的での撮影を行うわけではないので、実行される画像処理は簡易的なものであっても良い。例えば、ライブビュー撮影モードの現像処理では、現像後の画像サイズを200万画素以下に制限したり、ノイズ除去や光学的な歪補正を限定的な処理に留めたり或いは省いたりすることができる。
図8(a)は静止画撮影時の撮影画像を表示したスルー画像(表示装置108またはファインダ400cに表示される撮影画像)の一例を示す。枠801は撮影対象となる撮影画角を表している。顔802は、静止画撮影時に撮影画角801内で発見された顔であって、かつ、ユーザが追尾対象に設定した顔である。顔803は静止画撮影時に撮影画角801内で発見された顔であって、かつ、ユーザが追尾対象に設定していない顔である。画像における顔検出方法は公知であるのでここでは詳細な説明は省略する。検出された顔領域は、例えば撮像画像において顔領域の位置を特定するための座標情報として管理される。また、追尾対象は顔領域を特定するための情報にフラグ値として付与されても良い。
枠804は追尾対象の顔を示す枠であり、追尾対象である顔802の周辺に表示されている。この静止画撮影では顔802を追尾対象としており、枠804が顔802の周辺に表示され、その枠804付近にフォーカスを合わせて撮影が行われる。その後、ユーザが撮影を終了してライブビュー撮影に切り替わる。このときに、測光撮像素子400dから最後に出力された画像信号を処理したマイコンとは別のマイコンがライブビュー撮影での画像信号の処理を行う場合、直前の顔画像の検出結果がメモリに保持されないことになる。即ち、顔画像の検出結果及びどの顔を追尾対象としたかについての情報が引き継がれなくなってしまう。その結果、図8(b)に示すように、追尾対象の顔が別の顔になってしまうことがある。
図8(b)は、ライブビュー撮影開始時の撮影画像を表示したスルー画像である。このとき、撮影画角801内のどの顔を追尾するべきかという情報はメモリ内に保持されていない。よって静止画撮影時にユーザが追尾対象として設定した顔802を追尾するとは限らない。追尾対象は、その動作モードにおける事前の設定内容に基づき決定される場合がある。例えば、画角801の中央位置に近い顔を優先して追尾を行うという設定になっていれば、中央に近い顔803が追尾されることになり、枠804は顔803周辺に表示されてその付近にフォーカスされるようになる。
このように、静止画撮影からライブビュー撮影へ切り替る際に追尾対象に関する情報が引き継がれない場合、追尾対象が変更されてしまうおそれがある。その結果、ユーザが引き続き顔802を撮影したくても追尾対象を顔802に再度設定する手間が生ずるので次の撮影にスムーズに移行できない。
これに対して図8(c)、(d)では、追尾情報が引き継がれる場合を示している。図8(c)は、図8(a)と同様、静止画撮影時の撮影画像を表示したスルー画像を示している。枠801内の顔802と顔803のうち、追尾対象を示す枠804が顔802の周辺に表示されている。よって、静止画撮影では顔802を追尾対象とし、枠804付近にフォーカスを合わせて撮影が行われる。その後、ユーザが撮影を終了するとライブビュー撮影に切り替わる。このとき測光撮像素子400dから最後に出力された画像信号を処理するマイコンと同一マイコンがライブビュー撮影での画像信号の処理を行うと、どの顔を追尾対象としたかの情報を引き継ぐことが可能になる。
図8(d)はライブビュー撮影開始時の撮影画像を表示したスルー画像である。このとき撮影画角801内のどの顔を追尾するべきかという追尾情報が静止画撮影時から引き継がれており、ライブビュー撮影開始時から静止画で追尾していた顔と同じ顔802を追尾することができる。これによってユーザが引き続き顔802を撮影したいときに再度追尾する顔を設定する必要はなくなり、スムーズに次の撮影に移行できるようになる。
次に図9を参照してカメラ700の複数のマイコンおよび複数の撮像素子で静止画連写撮影からライブビュー撮影へ顔情報を引き継ぐときのタイミングチャートを説明する。図9では、上からミラー400b、撮像素子400a、測光撮像素子400d、マイコン100及びマイコン200のそれぞれの動作を横軸の時間軸において示している。
まず、ミラー400bの動作は、上位と下位の2つの動作状態として、ミラーアップ状態とミラーダウン状態を含む。また、撮像素子400aが結像した画像は、静止画撮影画像又はライブビュー撮影画像となる。測光撮像素子400dが結像した画像はここでは顔検出のために用いられる。撮像素子400aはミラーアップ状態時にI蓄積を行う。また測光撮像素子400dはミラーダウン状態時にP蓄積を行う。
マイコン100及びマイコン200はどちらも撮像素子400aまたは測光撮像素子400dから画像信号を読み出すことができる。また、撮像素子400aの画像信号を画像処理することができる。さらに測光撮像素子400dから取得した画像信号に基づき顔検出を行うことができる。
カメラ700による静止画連続撮影では、撮像素子400aからの画像信号の読出及び画像処理を、マイコン100及びマイコン200を撮像画像1枚毎に交互に使用して行うことができる。また、測光撮像素子400dから画像信号の読出及び顔検出は、撮像素子400aからの画像信号の読出及び画像処理を行っていない側のマイコンを使用できる。これによりマイコンを1つだけ使用したときよりも高速に静止画連続撮影を実現できる。また、カメラ700は、ライブビュー撮影時にはマイコン100のみを使用できる。このとき、マイコン200はスリープ状態にすることで省電力を実現している。
次に、図9(a)のタイミングチャートに対応する具体的な動作を時系列に説明する。まず、タイミングT0ではミラー400bがミラーアップ状態となっており、撮像素子400aが静止画撮影1枚目となるI蓄積iを開始する。タイミングT10ではI蓄積iが終了し、ミラー400bがミラーダウン動作を開始する。また、I蓄積i終了後、当該I蓄積iにより蓄積された画像信号を取得するためにマイコン100がI読出iを開始し、I読出i終了後にI画像処理iを開始する。タイミングT20ではミラー400bのミラーダウン動作が終了し、測光撮像素子400dによるP蓄積1を開始する。タイミングT30ではP蓄積1が終了しミラー400bのミラーアップ動作を開始する。また、I読出iを行っていない側のマイコン200でP蓄積1のP読出1を開始し、P読出1終了後にP顔検出1を開始する。
タイミングT40ではミラー400bのミラーアップ動作が終了し、撮像素子400aが静止画撮影2枚目となるI蓄積iiを開始する。タイミングT50ではI蓄積iiが終了しミラー400bのミラーダウン動作を開始する。また、1枚目にI読出およびI画像処理を行わなかった側のマイコン200でI蓄積iiのI読出iiを開始し、I読出ii終了後にI画像処理iiを開始する。タイミングT60ではミラー400bのミラーダウン動作が終了し、測光撮像素子400dのP蓄積2を開始する。
次に、タイミングT70で静止画連続撮影終了の要求が発生する。この後、静止画用の撮像素子400aの蓄積は行わない。静止画連続撮影はユーザによる操作部111のシャッターボタンの操作が継続されている間実行される。よって、ユーザがシャッターボタンから指を離して操作を終了すると、撮影終了指示と見なされ静止画連続撮影終了の要求が発生する。なお、本実施形態ではT70において当該要求が発生しているが、ユーザが操作を終了するタイミングはT70のタイミングに限定されるものではなく、より早いタイミングでもよいし、より遅いタイミングであっても良い。その場合、例えばP蓄積の途中、或いはそれ以前で静止画連続撮影終了の要求が発生した場合、次の撮影を行わずに静止画連続撮影を終了して良い。一方、P蓄積が完了し、ミラー400bがミラーアップ動作を開始した後に静止画連続撮影終了の要求が発生した場合には、当該ミラーアップ後の撮影を行った後、撮影を終了しても良い。
次にタイミングT80ではP蓄積2が終了するが、連続撮影が終了しているため、ミラーアップ動作は行わない。また、I読出iiを行っていない側のマイコン100でP蓄積2のP読出2を開始し、P読出2終了後にP顔検出2を開始する。P顔検出2終了後のタイミングT90で静止画連続撮影を完了し、ミラー400bのミラーアップ動作を開始する。また、そのとき静止画顔検出結果はマイコン100内のメモリ103に保持しておく。
タイミングT100ではミラーアップ動作が終了し、撮像素子400aでライブビュー撮影用の蓄積を開始する。また、マイコン100ではライブビュー用の読出、画像処理、顔検出を開始する。このときライブビュー撮影の顔検出では、マイコン100内のメモリ103に保持されている静止画顔検出結果を参照する。当該検出結果には、撮像画像内で検出された被写体領域(顔領域)の位置を特定する情報及び追尾対象の顔を特定する情報が含まれている。
以上のように、静止画連続撮影の最後の顔検出結果が,ライブビュー撮影を行うマイコン100内のメモリ103に保持されているときは、検出結果をマイコン100内の処理で引き継ぐことができ(矢印901)、CPU間通信は発生しないため大きな遅延なくライブビュー撮影の顔検出を開始することができる。
次に、図9(b)のタイミングチャートに対応する具体的な動作を時系列に説明する。ミラー動作、撮像素子および測光撮像素子の動作の説明は図9(a)と同様のため省略する。
タイミングT0ではミラー400bのミラーアップ状態で、撮像素子400aが静止画撮影1枚目となるI蓄積iを開始する。タイミングT10では、図9(a)とは違い、マイコン200でI蓄積iのI読出iを開始し、I読出i終了後にI画像処理iを開始する。タイミングT30では、I読出iを行っていない側のマイコン100でP蓄積1のP読出1を開始し、P読出1終了後にP顔検出1を開始する。T50では1枚目にI読出およびI画像処理を行わなかった側のマイコン100でI蓄積iiのI読出iiを開始し、I読出ii終了後にI画像処理iiを開始する。
次に、タイミングT70で静止画連続撮影終了の要求が発生する。この後、静止画用の撮像素子400aの蓄積は行わない。タイミングT80ではI読出iiを行っていない側のマイコン200でP蓄積2のP読出2を開始し、P読出2終了後にP顔検出2を開始する。P顔検出2終了後のタイミングT90で静止画連続撮影を完了し、そのとき静止画顔検出結果はマイコン200内のメモリ203に保持しておく。タイミングT100では撮像素子400aでライブビュー撮影用の蓄積を開始する。また、マイコン100ではライブビュー用の読出、画像処理、顔検出を開始する。
このときライブビュー撮影の顔検出はマイコン100で動作しており、静止画顔検出結果を参照したいのだが、結果はマイコン200内のメモリ203に保持されている。このため顔検出結果のデータを参照する(矢印902)ためには、マイコン200からマイコン100へ通信部206、データバス300、通信部106を経由してCPU間通信を行うことが必要となる。このため、CPU間通信が完了してからライブビューの顔検出を行うまでの間、通信時間の分だけ検出開始が遅延してしまい、スムーズにライブビュー撮影が開始できないという問題が生じる。また、遅延時間の間に被写体の位置に変化が生じた場合、以前の顔検出結果を利用する効果が薄れてしまうおそれもある。
そこで、係る問題を解決するため、静止画連続撮影時の最後の顔検出処理を必ずライブビュー撮影が動作するマイコン100上で行うように制御する。当該動作のタイミングチャートを図10に示す。ミラー400b、撮像素子400a、測光撮像素子400d、マイコン100、マイコン200の説明は図9と同様のため省略する。また、タイミングT0〜T70は図9(b)と同様のため省略する。
図9および図10のT70の静止画連続撮影終了要求までは、P読出とP顔検出はそのときI読出とI画像処理を行っていない側のマイコンで実施している。しかし図10の方式では、T70の後のP読出2およびP顔検出2を必ずマイコン100で行うようにする。タイミングT80では、マイコン100でI画像処理iiを行っている途中だが、並行してP読出2を開始する。タイミングT90でI画像処理iiが終了し、その後P顔検出2を開始する。P顔検出2終了後のタイミングT100で静止画連続撮影を完了し、ミラーアップ動作を開始する。また、そのとき静止画顔検出結果はマイコン100内のメモリ103に保持しておく。
タイミングT110ではミラーアップ動作が終了し、撮像素子400aでライブビュー撮影用の蓄積を開始する。また、マイコン100ではライブビュー撮影用の読出、画像処理、顔検出を開始する。このときライブビュー撮影の顔検出では、マイコン100内のメモリ103に保持されている静止画顔検出結果を参照する。
以上のように、静止画連続撮影の最後の顔検出を必ずライブビュー撮影が動作するマイコン100で行うように制御すれば、顔検出結果をマイコン100内の処理で引き継ぐことができる(矢印1001)。これによって、CPU間通信は発生しないため大きな遅延もなくライブビュー撮影の顔検出を開始することができる。
次に図11のフローチャートを参照して、静止画連続撮影時の最後の顔検出処理をマイコン100で実施するためのカメラ700の制御を説明する。
まずS1101で、ユーザによる操作部111のシャッターボタンの操作に基づき静止画連続撮影を開始する。このときCPU102は撮影枚数をカウントするためのパラメータnを1にセットする。次にS1102でCPU102は撮影枚数nの値が偶数か、奇数かを判定する。本実施形態では、撮影枚数nの値が偶数か奇数かに応じて画像処理を行うマイコンを決定する。撮影枚数が奇数の場合S1103で奇数時の設定を行う。このとき、CPU102は画像振り分け部400eによる各撮像素子からの画像信号の供給先を設定する。具体的に撮像枚数が奇数時は、画像振り分け部400eは、撮像素子400aからの画像信号をマイコン100に供給し、測光撮像素子400dからの画像信号をマイコン200に供給するように設定される。これにより、マイコン100が図10のI読出およびI画像処理を行い、マイコン200が図10のP読出およびP顔検出を行うことができる。
また撮影枚数が偶数の場合S1104で偶数時の設定を行う。このときCPU102は画像振り分け部400eによる各撮像素子からの画像信号の供給先を設定する。具体的に撮像枚数が偶数時は、画像振り分け部400eは、撮像素子400aからの画像信号をマイコン200に供給し、測光撮像素子400dからの画像信号をマイコン100に供給するように設定される。これによりマイコン100が図10のP読出およびP顔検出を行い、マイコン200がI読出およびI画像処理を行うことができる。
上記の設定が完了すると、S1105では、撮像素子400aがI蓄積により蓄積した画像信号につき、設定に従ってマイコン100または200がI読出およびI画像処理を行う。次にS1106でCPU102が撮影枚数nに1を加算して更新する。続くS1107では、CPU102がユーザによる操作部111のシャッターボタンに対する操作が解除されたかどうかに基づき静止画連続撮影の終了要求の有無を判定する。当該判定は、測光撮像素子400dによるP蓄積が完了するまで行う。当該P蓄積が完了するまでに終了要求が無い場合、S1108に移行して、測光撮像素子400dがP蓄積により蓄積した画像信号につき、設定に従ってマイコン100または200がP読出およびP顔検出を行う。その後、次の撮影処理に移行し、再度S1102の処理を行う。もしP蓄積が完了するまでに終了要求があった場合、次の撮影処理は行わずにS1109以降の静止画連続撮影の終了処理に移行する。
本実施形態では、静止画連続撮影最後の顔検出処理を必ずマイコン100で行うように制御している。S1109では、直近のP蓄積に基づく測光撮像素子400dからの出力画像信号につきマイコン100がP読出およびP顔検出を行い、S1110では顔検出結果をマイコン100内のメモリ103に書き込む。S1110ではマイコン100でライブビュー撮影を開始する。このとき顔検出結果をメモリ103から読み出すことでCPU間通信を行うことなく静止画撮影からライブビュー撮影へ結果を引き継ぐことができる。
以上のように、本実施形態では静止画連続撮影の最後の被写体検出を必ずライブビュー撮影が動作するマイコンで行うように制御することが可能となり、被写体検出結果を同一マイコン内の処理で引き継ぐことができる。よって、CPU間通信を不要とし、大きな遅延もなくライブビュー撮影の被写体検出を開始することができる。
<実施形態4>
以下に、発明の第4の実施形態を説明する。実施形態4における撮像装置の構成は実施形態1で説明したカメラ700と同じなので、説明を省略する。また、以下では実施形態3と同様、静止画連続撮影からライブビュー撮影への顔追尾情報の引き継ぎに関して説明する。
まず、図12(a)を参照してカメラ700の複数のマイコンおよび複数の撮像素子で静止画連写撮影からライブビュー撮影へ顔情報を引き継ぐときのタイミングチャートを説明する。図12では、上からミラー400b、撮像素子400a、測光撮像素子400d、マイコン100及びマイコン200のそれぞれの動作を横軸の時間軸において示している。また、タイミングT0からT80までは図10とほぼ同様のため、詳細な説明は省略する。ただし、I画像処理iおよびI画像処理iiが図10の場合と比べて非常に長い時間の処理となっている。また、T90以降の静止画顔検出結果をライブビュー撮影に引き継ぐ処理に関しても図10とほぼ同様のため、説明は省略する。
ただし、前述の通り、I画像処理iiの処理が長いため、顔検出用のP蓄積2が終了するT80からライブビュー撮影が検出結果を受け取るタイミングT110までの時間Taが非常に長い時間となっている。このため、この期間Taに追尾対象となる顔が画角内で移動してしまった際は、ライブビュー撮影が検出結果を受け取ったとしても追尾対象を見失ったり、他の誤った顔を追尾するケースが増えてしまったりといった問題が生じるおそれがある。
そこで、係る問題を解決するため、静止画連続撮影時の最後の画像処理時間が長い場合は一定期間ごとに改めて顔検出用のP蓄積を行うように制御する。当該動作のタイミングチャートを図12(b)に示す。ミラー400b、撮像素子400a、測光撮像素子400d、マイコン100、マイコン200の説明は図10と同様のため省略する。また、タイミングT0〜T80は図12(a)と同様のため省略する。
図12(b)の例では、タイミングT80のP蓄積2の終了から一定期間Tbが経過したタイミングT90で、もしI画像処理iiが終了していなかった場合、再度測光撮像素子400dによりP蓄積3を行う。タイミングT100では、最後の顔検出結果をマイコン100で引き継ぐために必ずマイコン100でP読出3を行う。その後、一定期間Tbが経過する度に測光撮像素子400dによりP蓄積を行う。一方、一定期間Tbが経過する前にI画像処理iiが終了すればP顔検出3を行い、この顔検出結果をライブビュー撮影に引き継ぐ。図12(b)では、タイミングT110でI画像処理iiが終了した例を示している。
ここで顔検出用のP蓄積3が終了するT100からライブビュー撮影が検出結果を受け取るタイミングT130までの時間Taは、図12(a)よりも短い時間となっている。このように静止画連続撮影時の最終P蓄積後、一定期間ごとに再度顔検出用のP蓄積を行うということで期間Taを短縮することができる。よって、期間Taの間に追尾対象となる顔が移動してしまい追尾対象を見失う、或いは、他の誤った顔を追尾してしまうといった問題の発生を、図12(a)の場合に比べて減少させることができる。
次に図13のフローチャートを参照して、静止画連続撮影時の最後の画像処理時間が長い場合は改めて顔検出用のP蓄積を行う解決策の制御を説明する。図11と同一の処理を行う工程については同一の参照番号を付した。即ち、S1101〜S1108、S1110及びS1111は、図11と同様の処理を行う。
S1301では静止画連続撮影終了の要求後に完了するP蓄積の終了後に待機時間をカウントするためのタイマーを始動させる。次いでS1302では、P蓄積により測光撮像素子400dにより蓄積された顔検出用の画像信号をマイコン100がP読出により読み出す。次に、S1303では、S1301で開始したカウント値が一定の待機時間Tb以上となったか否かを判定する。もし、待機時間がTb以上となった場合、S1304に移行して、CPU102は測光撮像素子400dにP蓄積を再度実行させる。その後S1301に戻ってタイマーをリスタートする。
一方、待機時間がTbに満たない場合、S1305に移行して、CPU102が静止画の最終画像処理が終了したか否かを判定する。もし終了していない場合はS1303に戻って待機時間を再度判定する。一方、画像処理が終了した場合、S1306に移行し、S1302でマイコン100が読み出した最新の顔検出用P蓄積の画像信号を用いてマイコン100がP顔検出を行う。この処理により、顔検出情報を最新の情報に保つことが可能となる。その後は、図11のS1110以降と同様にして処理を終了する。
以上のように、本実施形態によれば、静止画連続撮影終了後に画像処理に時間を要し、ライブビュー撮影モードに直ちに移行できない場合であっても、測光撮像素子400dによる蓄積動作を定期的に行うことで、ライブビュー撮影モードに移行した場合に活用可能な顔検出情報を生成することが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。