<実施形態1>
以下、発明の第1の実施形態について添付の図面に基づいて詳細に説明する。図1は、本発明の実施形態にかかわる撮像装置としてのカメラ700の構成の一例を示すブロック図である。
なお、撮像装置には、デジタルスチルカメラ、静止画撮影の可能なデジタルビデオカメラの他、発光量制御のための測光処理が可能な撮像機能を有する装置が含まれる。当該装置は、例えばパーソナルコンピュータ、携帯電話、スマートフォン、PDA、タブレット端末等を含むことができる。
カメラ700は少なくとも2つのマイコン(マイコン100、マイコン200)を有する処理部10を含み、マイコン間のデータ通信は専用バス300を介して行うことができる。撮像部400は処理部10から、即ちマイコン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の機能については説明を省略する。
ストロボ800は撮影時に発光を行う照明装置である。ストロボ800は内部の詳細は不図示であるが、動作を制御するマイクロコンピュータCPUを有し、光量制御装置で、電池電圧を昇圧し後述する光を点灯させるための昇圧回路や発光の開始及び停止を制御する電流制御回路等が含まれている。また、フレネルレンズなどのパネル等から成りストロボ800の照射角を変更するズーム光学系も有する。さらに反射傘も有し、光源の発光光束を集光し被写体に照射している。その発光部はキセノン管や白色LEDなどで構成される。ストロボ800は処理部10、即ちマイコン100およびマイコン200との通信が可能で、マイコンからの指示により、プリ発光を行い発光量制御のための測光演算の結果から、指定された光量で発光を行うことが可能である。なお、ストロボ800は、カメラ700に内蔵された内蔵ストロボでも、カメラ700に着脱可能に取り付けられた外部ストロボでもよい。
以下、発明の実施形態に対応する処理の詳細を説明する。カメラ700の各マイコンの撮像素子400aでの撮像画像、測光撮像素子400dでの測光画像を同時に取り込みながら、発光量制御のための測光をして連続撮影をする場合のタイミングチャートについて、図2から図4を用いて説明する。以下では、発光量制御のための測光をETTL(Evaluative Through The Lens)測光と称す。図2では連続撮影時に発生する問題点を説明するための図であり、図3及び図4は、当該問題点を解決する発明の実施形態の説明のための図である。
図2から図4では、上からミラー400b、撮像素子400a、ストロボ800、測光撮像素子400d、画像振り分け部400e、マイコン100及びマイコン200のそれぞれの動作を横軸の時間軸において示している。
まず、ミラー400bの動作は、上位と下位の2つの動作状態を含む。上位にある場合はミラーアップ状態を表しており、その際の光軸は撮像素子400aに対して向けられた状態となる(撮像素子露光時)。一方、下位にある場合には、ミラーダウン状態を表しており、その際の光軸は測光撮像素子400dに対して向けられた状態となる(例えば、P0期間、PE期間等)。時間軸上にある測光P0、測光P1、測光P2は測光タイミングを示し、P0期間、P1期間、P2期間は測光期間を表している。またETTL測光PE(1)、ETTL測光PE(2)はETTL測光するタイミングを表し、PE(1)期間、PE(2)期間はその期間を表している。なお、数字はその回数・順番を表している。
次に、撮像素子400aの動作につき、時間軸上にあるI蓄積は上記ミラー動作のミラーアップにより露光がはじまり、撮像素子400aにおいて、結像している状態を表現している。またiは蓄積の回数、順番を表し、iなら一回目の撮影、iiなら二回目の撮影を表している。ストロボ800の動作につき、時間軸上にあるプリ発光は、各ETTL測光タイミングでプリ発光を行うタイミングを表す。また、本発光は撮影のために発光するタイミングを表している。測光撮像素子400dの動作につき、時間軸上にあるP蓄積は上記ミラー動作のミラーダウン中に、各測光タイミング(測光P0、P1など)で測光撮像素子400dにより露光し、結像している状態を表している。なお、このときにはフラッシュ800による発光は行わない。PE蓄積は上記ミラー動作のミラーダウン中に各ETTL測光タイミング(測光PE1、測光PE2など)に応じて、プリ発光のタイミングで測光撮像素子400dにより、露光、結像している状態を表している。数字は、その蓄積回数、順番を表している。
次に、画像振り分け部400eの動作につき、時間軸上にある準備、終了、A設定、B設定、C設定の意味を下記に説明する。まず、準備では画像振り分け部400eに対して、電源をいれるといった振り分け動作を行うための準備動作期間を表している。終了では画像振り分け部に対して、電源を切るといった振り分け動作を終了するための終了動作期間を表している。画像振り分け部400eが振り分けを行わない場合、つまり、撮影していない場合や測光していない場合であっても、画像振り分け部400eが稼働状態にあれば電力が消費され発熱する。そこで、必要な範囲で画像振り分け部400eを稼働させるために、画像振り分け部400eへの準備、終了の各処理の設定が必要となる。
次に、A設定は画像振り分け部400eが測光撮像素子400dからの画像信号の供給先をいずれか一方のマイコンとする設定状態を表す。本実施形態では、A設定ではマイコン200を供給先とする。B設定は、画像振り分け部400eが測光撮像素子400dからの画像信号をマイコン200へ、撮像素子400aからの画像信号をマイコン100へ振り分ける設定状態を表す。C設定は、画像振り分け部400eが測光撮像素子400dからの画像信号をマイコン100へ、撮像素子400aからの画像信号をマイコン200へ振り分ける設定状態を表す。このように、A設定、B設定及びC設定のいずれにおいても、同一のマイコンで処理が時間的に重複しないように撮像画像及び測光画像の供給先が設定される。数字は、0、1は測光の回数、順番を表し、(1)、(2)はETTL測光の回数、順番を表し、i、iiは撮像画像の回数、順番を表している。
次にマイコン100の動作につき、時間軸上にあるI読出は、撮像素子400aから画像信号を読みだしている期間、言い換えると、マイコン100が撮像素子400aから画像信号を取得している期間を表している。I画像処理は、撮像素子400aから読み出した画像信号を画像処理部101が画像データとしてメモリ103に記憶させ、さらにコーデック部104がJPEG変換やロスレス圧縮(RAW形式)を行って静止画データを生成する期間を表している。P読出は、測光撮像素子400dから画像信号を読みだし取得している期間を表している。P画演算は、測光撮像素子400dから取得した画像信号を画像処理部101が画像データとしてメモリ103に記憶させ、CPU102が測光演算を行う期間を表している。数字は、iは撮像素子400aから出力された画像信号に基づく処理回数、順番を表し、2は測光撮像素子400dから出力された画像信号に基づく処理回数を表している。なお、測光演算方法については、公知の技術なので、ここでは特に記述しない。
次にマイコン200の動作につき、時間軸上にあるI読出、I画像処理、P読出、P画演算は上記マイコン100で説明した処理と同様の処理をマイコン200が実施することを表している。但し、マイコン200の時間軸上にはマイコン100にないPE読出、PE画演算がある。PE読出は、ETTL測光での測光撮像素子400dからの画像信号の読出期間を表している。PE画演算は測光撮像素子400dから取得した画像信号を画像処理部101が画像データとしてメモリ103に記憶させ、CPU102がETTL測光演算を行う期間を表している。
以下、具体的に図2のタイミングチャートに基づき、カメラ700の動作を時系列に説明する。まず、ミラーダウン状態時に測光P0の測光タイミングに応じて画像振り分け部400eの準備0を行い、測光撮像素子400dはP蓄積0を行う。このとき、画像振り分け部400eはA設定0に設定されている。よって本実施形態では、P蓄積0に続く処理をマイコン200が行うものとし、P蓄積0のあとにマイコン200がP読出0、P画演算0を行い、測光値を決定する。なお、本実施形態ではA設定をマイコン200に処理を割り当てる設定としたが、A設定はマイコン100と200のいずれかに割り当てる設定であればよい。図2の開始タイミングではマイコン100とマイコン200のいずれもがアイドル状態であるので、マイコン200の代わりにマイコン100に割り当ててもよい。なお、P画演算0の間に、画像振り分け部400eの終了0を実行する。その処理は、マイコン200がP画演算中のためマイコン100で設定する。
次に、撮影i要求とともに画像振り分け部400eの準備(1)を行い、ETTL測光PE(1)のタイミングでストロボ800によりプリ発光(1)が行われ、測光撮像素子400dではPE蓄積(1)が行われる。このとき、画像振り分け部400eはA設定(1)に設定されている。よって、本実施形態では、PE蓄積(1)に続く処理をマイコン200が行うものとし、PE蓄積(1)のあとにマイコン200がPE読出(1)、PE画演算(1)を行い、ETTL測光値を決定する。なお、PE画演算(1)の間に、画像振り分け部400eの終了(1)を行う。
次に、ETTL測光PE(1)で決定したETTL測光値で撮像が開始され、画像振り分け部400eでは準備i-1をし、ミラー400bをミラーアップ状態にして撮像素子400aが露光を行う。その際、画像振り分け部400eはB設定i−1に設定される。ETTL測光により決まった光量でストロボ800が本発光iを行い撮像素子400aがI蓄積iが行う。I蓄積i完了後は、マイコン100によりI読出iが行われ、I読出i後にマイコン100がI画像処理iを行う。蓄積完了後はミラー400bをミラーダウン状態にし、ミラー400bが下がった測光P1のタイミングで測光撮像素子400dに対してP蓄積1が行われる。P蓄積1の完了後にマイコン200でP読出1、P画演算1が行われ、次の撮影のための測光値を決定する。これは、ストロボの充電が間に合わないなど、発光が不可能な際に用いる測光値として予備的に決定されるものであるが、本タイミングチャートでは以降に説明するようにストロボ800が発光するものとして説明する。
マイコン100でI読出をしている間は、画像振り分け部400eをB設定にすることで、マイコン200が測光撮像素子400dから画像信号を取得し、測光値を決定することとなる。マイコン100は撮像素子400aから画像信号を取得し、I読出iが完了後、画像振り分け部400eの終了i−1を行う。
ここで、図2の太線枠F1で囲まれた部分は、本実施形態で解決すべき問題点を含む動作状態を表している。画像振り分け部400eに対するB設定i−1の設定は、マイコン100によるI読出iと、マイコン200によるP読出1が完了するタイミングで完了するので、I読出iとP読出1が完了した時点で、終了処理を行う必要がある。その一方、ストロボ800が次の撮影のために発光充電完了、かつ、撮影ii要求が来た際のPE読出(2)を行う必要があるが、図2タイミングチャートではその設定を行うことができない。撮影ii要求のあと、ETTL測光PE(2)のタイミングでストロボプリ発光を行うタイミングで画像振り分け部400eがB設定i−1中の場合、画像振り分け部400eの準備(2)、A設定(2)を行う分プリ発光(2)の遅延Dが発生する。このため、撮影iiの撮像素子露光のタイミングが遅延してしまうおそれがある。
遅延Dの後、プリ発光(2)と測光撮像素子400dによるPE蓄積(2)が行われる。その際の画像振り分け部400eはA設定(2)となっているが、その設定はマイコン100、200どちらから行ってもよい。本実施形態では、PE蓄積(2)のあとにマイコン200がPE読出(2)、PE画演算(2)を行い、ETTL測光値を決定する。なお、PE画演算(2)の間に、画像振り分け部の終了(2)を行う。
次に、撮像素子400aが、ETTL測光PE(2)で決定したETTL測光値で撮像を開始するに際し、画像振り分け部400eの準備ii-2をし、ミラー400bをミラーアップ状態にして撮像素子400aの露光が行われる。その際、画像振り分け部400eはC設定ii−2に設定される。ストロボ800は、ETTL測光により決まった光量で本発光iiを行い、撮像素子400aはI蓄積iiを行う。I蓄積iiの完了後、マイコン200はI読出iiを行い、I読出ii後にマイコン200でI画像処理iiを行う。蓄積完了後はミラー400bをミラーダウン状態にし、ミラーが下がった測光P2のタイミングで測光撮像素子400dがP蓄積2を行う。P蓄積2の完了後にマイコン100がP読出2、P画演算2を行い、次の撮影のための測光値を決定する。以降は、説明したタイミングチャートの動作を繰り返し、撮像素子と測光撮像素子からの出力を並行処理することでETTL測光連続撮影を行う。
次に図3のタイミングチャートを参照して、図2の太線枠F1で囲まれた部分の動作状態に関する問題点を解消するための動作制御の具体例を説明する。図3のタイミングチャートは、太線枠F2で囲まれた部分の動作が図2のタイミングチャートと異なる以外は図2と同様であるので、以下では太線枠F2内の動作について説明する。
太線枠F2で囲まれた撮影iiのタイミングでは、画像振り分け部400eのB設定i−1は、I読出iと、P読出1とが完了するタイミングで完了する。図3の例ではI読出iが後に終わるので、I読出iが完了するとB設定i-1も完了する。I読出iの継続中(すなわち、B設定i-1も継続中)に撮像iiにおけるETTL測光PE(2)のタイミングが来ると、枠F2−1に示すように、ETTL測光PE(2)のためのB設定延長i-1-(2)を実行する。これにより、B設定i-1を終了し、新たにA設定の準備(2)を開始する必要がなくなるので、図2の太線枠F1内で発生した遅延Dを失くすことができる。なお、B設定延長i-1-(2)はPE読出(2)が完了するまで実施される。これにより、撮影iiの撮像素子露光を遅延なく開始することができる。以降は、図2で説明したタイミングチャートの動作を繰り返し、撮像素子400aと測光撮像素子400dからの出力を並行処理することでETTL測光連続撮影を行う。
次に、図4のタイミングチャートを参照して、図2の太線枠F1で囲まれた部分の動作状態に関する問題点を解消するための動作制御の他の具体例を説明する。図4のタイミングチャートは、太線枠F3で囲まれた部分の動作が図2のタイミングチャートと異なる以外は図2と同様であるので、以下では太線枠F3内の動作について説明する。
太線枠F3で囲まれた撮影iiのタイミングでは、画像振り分け部400eのB設定i−1は、I読出iと、P読出1とが完了するタイミングで完了する。図4の例ではI読出iが後に終わるので、I読出iが完了するとB設定i-1も完了する。I読出iの継続中(すなわち、B設定i-1も継続中)に撮像iiのタイミングとなると、その後にETTL測光PE(2)のタイミングが到来する。しかし、ETTL測光PE(2)のタイミングは、プリ発光及び本発光を行うタイミングやストロボの発光充電状態に起因する遅延が生ずることがある。図3では当該遅延が生じない場合を想定していたが、図4では、この遅延が生ずる場合を想定している。
ETTL測光PE(2)に遅延が生ずる場合、ETTL測光PE(2)のタイミングが到来する前にI読出iとP読出が完了してしまう。この場合、通常はB設定i-1も完了することとなり、結果としてB設定i-1の終了処理とA設定の準備処理(2)とが実施されてしまう。これに対して、図4では、B設定i-1の継続中に撮影iiのタイミングが到来した場合は、枠F3−1に示すように、終了処理と準備処理とを実行する代わりに所定期間だけB設定待機i−1を実行する。当該B設定待機i-1の期間は、終了処理と準備処理とに要する時間よりも短いものとする。なお、待機期間を設けずに終了、準備処理をした方が待機時間を設けるよりも時間を短縮できる場合も想定されるが、待機期間の設定の仕方次第で待機期間を設けた方が時間軸上、短縮が可能となる。
B設定待機i−1中にETTL測光PE(2)の要求が到来した場合、ETTL測光PE(2)のためのB設定延長i-1-(2)を実施する。B設定延長i-1-(2)はPE読出(2)が完了するまでB設定を継続するので、余計な終了処理、準備処理を省くことができる。これにより、上記の終了処理と準備処理の実行に基づく遅延Dを無くし、撮影iiの撮像素子露光を開始することができる。以降は、図2で説明したタイミングチャートの動作を繰り返し、撮像素子400aと測光撮像素子400dからの出力を並行処理することでETTL測光連続撮影を行う。
次に、図3及び図4のタイミングチャートに対応する制御方法を、図5のETTL連続撮影処理フローチャートを参照して説明する。図5及びこれ以降のフローチャートに対応する処理は、例えばCPU102及び202が、メモリ103、203に格納されているコンピュータプログラムを実行することにより実現することができる。なお、図5およびこれ以降のフローチャートでは、説明のために各ステップを順に記載しているが、各ステップに対応する処理はフローチャートに示す順序で時系列に実行されなくてもよい。例えば、連続して記載される複数のステップが同時に実行されても良いし、実行順序が入れ替わっても良い。
まずS501では、CPU102が測光開始(測光P0)要求を受け付けたか否かの判断を行う。当該判断は、例えば、撮影モードにおいてユーザが操作部111のシャッターボタンを半押する操作を行ったかどうかに基づき行うことができる。もし当該要求を受け付けていない場合、S501の判断を繰り返す。CPU102が要求を受け付けたと判断した場合、S502に進み、測光処理を行うS502における測光処理の詳細は、図6のフローチャートを参照して後述する。次にS503に進み、CPU102は撮影iの開始要求がされたか否かの判断を行う。当該判断は、撮影モードにおいてユーザが操作部111のシャッターボタンを全押しする操作を行ったかどうかに基づき行うことができる。もし、当該要求を受け付けていない場合、S502に戻り測光処理(測光P1)を実行する。要求を受け付けたと判断した場合はS504に進み、ETTL測光処理S504を行う。S504におけるETTL測光処理の詳細は図7のフローチャートを参照して後述する。次に、S505ではETTL撮影測光処理を実行する。ETTL撮影測光処理の詳細は、図8のフローチャートを参照して後述する。以上のようにして、図3及び図4のタイミングチャートのETTL連続撮影処理制御を行うことができる。
以下、具体的に図5の各処理を説明する。まず、図6のフローチャートを参照して、測光処理の詳細を説明する。まず、S601では画像振り分け部400eを動作させるための準備処理を行う。次にS602では画像振り分け部400eに対しA設定の設定処理を行う。この設定処理は、測光撮像素子400dから出力された画像信号の画像振り分け部400eからの供給先を、マイコン200に設定する処理であって、設定自体はマイコン100から行ってもマイコン200から行ってもよい。次にS603では、測光撮像素子400dによるP蓄積処理を行う。なお、P蓄積処理とは、上述のようにミラー400bのミラーダウン中に、所定の測光タイミングで測光撮像素子400dが露光し、測光用の画像信号を出力する処理である。
次にS604に進み、マイコン200のP読出処理を行う。S602で画像振り分け部400eはA設定に設定されており、測光撮像素子400dからの画像信号はマイコン200に供給される。よって、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS605では、マイコン200のP画演算処理を行う。P画演算処理は、S604で読みだされた測光撮像素子400dからの画像信号を画像処理部201が画像データとしてメモリ203に展開した上で、CPU202が測光演算を行う処理を行い、測光結果を算出する。次にS606では画像振り分け部400eの動作を終了させるための終了処理を行う。終了処理はマイコン100、マイコン200どちらで行っても構わないが、処理負荷の少ないマイコン側で行うことが望ましい。以上のようにして、図5のS502における測光処理を行うことができる。
次に、図7のフローチャートを参照してETTL測光処理の詳細を説明する。まず、S701では画像振り分け部400eを動作させるための準備処理を行う。次にS702では、画像振り分け部400eに対しA設定の設定処理を行う。この設定処理は、測光撮像素子400dからの画像信号をマイコン200に供給するように設定する処理であって、設定自体はマイコン100から行ってもマイコン200から行ってもよい。次にS703では、図3のETTL測光PE(1)のタイミングで、プリ発光が行われたか否かの判断をする。もしプリ発光が行われていない場合はS703を繰り返し、プリ発光が行わる場合、S704で測光撮像素子400dがPE蓄積を行う。もちろんこの蓄積中にプリ発光が行われるように、マイコン100、およびマイコン200により、ストロボ800は制御されている。なおPE蓄積を行うための設定、ストロボ制御はマイコン100、マイコン200のどちらで行ってもよい。
次にS705では、マイコン200がPE読出処理を行う。S702で画像振り分け部400eにはA設定がなされており、測光撮像素子400dからの画像信号はマイコン200に供給される。よって、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS706ではマイコン200のPE画演算処理を行う。PE画演算処理はS704で読みだされた測光撮像素子400dの画像信号を画像処理部201で画像データとしてメモリ203に展開した上で、CPU202により、ETTL測光演算を行い、ETTL測光結果を算出する。
次にS707では、画像振り分け部400eの動作を終了させるための終了処理を行う。終了処理はマイコン100、マイコン200どちらで行っても構わないが、処理負荷の少ないマイコン側で行うことが望ましい。以上のようにして、図5のS504における測光処理が行われる。
次に、図8のフローチャートを参照して、ETTL撮影時の測光処理の詳細を説明する。まず、S801では、マイコン100が撮像素子400aからの画像信号を処理するか否かの判定をするためのフラグをCPU102及びCPU202が参照し、フラグ値がTRUEかどうかの判定をする。このフラグ値はマイコン100のメモリ103内に保持され、初期値はTRUEとなっている。また、当該フラグの情報は、マイコン100とマイコン200との間で通信部106を介して、互いに同期をとって保持されている。即ち、マイコン200内のメモリ203にも対応するフラグ値が保持されている。CPU102とCPU202がフラグ値がTRUEと判断すると、処理はS802に進む。
S802では、マイコン200のCPU202がミラー400bの動作を制御してミラーアップ処理を実行させ、ミラーアップ状態にする。その後のS803では、マイコン100のCPU102が、画像振り分け部400eを動作させるための準備処理を行う。次にS804に進み、マイコン100のCPU102が画像振り分け部400eをB設定にする。即ち、画像振り分け部400eが、測光撮像素子400dからの画像信号をマイコン200へ、撮像素子400aからの画像信号をマイコン100へ振り分けるように画像振り分け部400eの動作を設定する。なお、マイコン100のCPU102がミラーアップ処理を行い、マイコン200のCPU202が画像振り分け部400eの準備およびB設定への設定処理を行ってもよい。いずれの場合においても、異なるマイコンで並列処理をすることで時間を短縮することが重要になる。
S801での判定に基づく分岐の説明に戻り、S801でフラグ値がTRUEでない(FALSE)と判断された場合、S805に進む。S805ではマイコン100のCPU102がミラー400bのミラーアップ処理を行い、続くS806では、マイコン200のCPU202が画像振り分け部400eを動作させるための準備処理を行う。次にS807では画像振り分け部400eをC設定に設定する。即ち、画像振り分け部400eが、測光撮像素子400dからの画像信号をマイコン100へ、撮像素子400aからの画像信号をマイコン200へ振り分けるように画像振り分け部400eの動作を設定する。なお、マイコン200のCPU202がミラーアップ処理を行い、マイコン100のCPU102が画像振り分け部400eの準備およびC設定への設定処理を行ってもよい。いずれの場合においても、異なるマイコンで並列処理をすることで時間を短縮することが重要になる。
次にS808では、CPU102又はCPU202が、図3の本発光i及びI蓄積iのタイミングで、本発光及びI蓄積を行う。即ち、CPU102またはCPU202がストロボ800を制御して本発光動作を実行させると共に、撮像素子400aを制御し本発光中に露光、画像蓄積を行わせる。なお、本発光を行うための設定、ストロボ制御、撮像素子400Aaの制御はマイコン100とマイコン200とのどちらが行ってもよい。
次にS809では、CPU102とCPU202とが上記フラグ値がTRUEかどうかを判定する。もしフラグ値がTRUEの場合、S810に進みマイコン100がI読出処理を実行して撮像素子400aから画像信号を読み出す。このとき、画像振り分け部400eにはS804でB設定がなされており、撮像素子400aからの画像信号はマイコン100に供給され、測光撮像素子400dからの画像信号はマイコン200に供給されることとなっている。従って、マイコン100は撮像素子400aから画像信号を読み出すことができる。次にS811に進み、マイコン100でI画像処理を行う。
S811におけるI画像処理では、例えば、撮像素子400aから読み出した画像信号を画像処理部101が処理して画像データとしてメモリ103に記憶させ、さらにコーデック部104がJPEG変換やロスレス圧縮(RAW形式)して静止画データを生成する。またS812においてマイコン200がミラーダウン処理を行う。ミラーダウン処理は、I蓄積iが完了した時点で開始され、このときマイコン100はI読出処理及びI画像処理をするので、マイコン200がミラーダウン処理を行うことが望ましい。
一方、S809でフラグ値がTRUEでなかった(FALSE)の場合、S813にてマイコン200がI読出処理を実行して撮像素子400aから画像信号を読み出す。このとき、画像振り分け部400eにはS806にてC設定がなされており、撮像素子400aからの画像信号はマイコン200に供給され、測光撮像素子400dからの画像信号はマイコン100に供給されることとなっている。従って、マイコン200は撮像素子400aから画像信号を読み出すことができる。次にS814に進み、マイコン200でI画像処理を行う。
S814におけるI画像処理では、例えば、撮像素子400aから読み出した画像信号を画像処理部201が処理して画像データとしてメモリ203に記憶させ、さらにコーデック部204がJPEG変換やロスレス圧縮(RAW形式)して静止画データを生成する。またS815においてマイコン100がミラーダウン処理を行う。ミラーダウン処理は、I蓄積iが完了した時点で開始され、このときマイコン200はI読出処理及びI画像処理をするので、マイコン100がミラーダウン処理を行うことが望ましい。
I蓄積i後のミラーダウン処理が完了すると、S816で測光撮像素子400dが露光、画像蓄積を行うことでP蓄積処理を行う。続くS817では、CPU102及びCPU202が上述のフラグ値がTRUEかどうかを判定する。フラグ値がTRUEの場合、S818においてマイコン200が測光撮像素子400dから画像信号を読み出してP読出処理を実行する。このとき画像振り分け部400eにはS804でB設定がなされており、撮像素子400aからの画像信号がマイコン100に供給され、測光撮像素子400dからの画像信号がマイコン200に供給されることになっている。従って、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS819に進み、マイコン200でP画演算処理を行う。S820のP画演算処理では、測光撮像素子400dから読み出した画像信号を画像処理部201が処理して画像データとしてメモリ203に記憶させ、CPU202が測光演算を行って測光結果を算出する。
S817での判定に基づく分岐の説明に戻り、フラグ値がTRUEでない(FALSE)と判定された場合、S820においてマイコン100が測光撮像素子400dから画像信号を読み出してP読出処理を実行する。このとき画像振り分け部400eにはS807でC設定がなされており、撮像素子400aからの画像信号はマイコン200に供給され、測光撮像素子400dからの画像信号がマイコン100に供給されることになっている。従って、マイコン100は測光撮像素子400dから画像信号を読み出すことができる。次にS821に進み、マイコン100でP画演算処理を行う。S821のP画演算処理では、測光撮像素子400dから読み出した画像信号を画像処理部101が処理して画像データとしてメモリ103に記憶させ、CPU102が測光演算を行って測光結果を算出する。
次にS822では、画像振り分け部400eの設定を待機又は延長するための設定待機延長処理を行う。設定待機延長処理の詳細は図9のフローチャートを参照して後述する。次にS823ではフラグ値を変更する。当該フラグ値の変更処理では、フラグ値がTRUEである場合にはFALSEに変更し、FALSEである場合にはTRUEに変更する。これにより、撮像素子400aからの画像信号の処理を、マイコン100とマイコン200との間で交互に切り替えることが可能となる。続くS824では、撮影を終了するか否かを判定する。もし終了でなければ、S801に戻り、処理を繰り返す。終了と判断すれば、ETTL撮影測光処理を終了する。以上のようにして、図5のS505においてETTL撮影測光処理を行うことができる。
次に、図9のフローチャートを参照して、図8のS822における、画像振り分け部400eの設定待機延長処理の詳細を説明する。まず、S901では、I読出とP読出とが共に完了したかどうかをCPU102またはCPU202が判定する。本実施形態では、マイコン100がI読出を制御し、マイコン200がP読出を制御しており、P読出が先に終了するのでCPU202が判定しても良い。I読出及びP読出の両方が完了したと判定された場合、S902に進んで画像振り分け部400eの設定待機処理を行う。この設定待機処理は、I読出とP読出とが完了した後に、図4に示すETTL測光PE(2)のタイミングを所定の待機時間の間だけ待機するための処理である。図4の枠F3−1のB設定待機i−1に相当する。設定待機処理では、CPU202が画像振り分け部400eをB設定のまま、待機時間T1をカウントするタイマをスタートさせる。待機するよりも画像振り分け部400eを一旦終了し、改めて準備処理をした方が時間が短縮される場合もあるため、待機時間T1は準備と終了時間に応じて決定することができる。なお、図4との関連で前述したように、撮像ii後のETTL測光PE(2)のタイミングが図3に比べて遅れて来るため、所定期間のB設定待機i−1を実施することで終了処理、準備処理を省くことができる。
次にS903に進み、CPU202はETTL測光PE(2)のタイミングでプリ発光が行われたかどうかを判定する。もし、プリ発光が行われた場合はS906に進み、プリ発光が行われなかった場合はS904に進む。S904では、CPU202がS902で設定したタイマのカウント値を参照して所定の待機時間T1が経過したか否かを判定する。所定の待機時間T1が経過した場合はS913に進み、経過していない場合はS902に戻って待機処理を継続する。
S901での判定に基づく分岐の説明に戻り、S901でI読出とP読出とが完了していない場合、S905に進む。S905では、ETTL測光PE(2)のタイミングでプリ発光が行われたか否かを判定する。当該判定はCPU102と202のいずれで行ってもよいが、マイコン200におけるP読出の制御が終了している場合にはCPU202が行っても良い。もし、プリ発光が行われていなければS901に戻り、プリ発光が行われた場合はS906に進む。
S906では画像振り分け部400eの設定延長処理を行う。この設定延長処理は、図3に示すようにI読出とP読出とが完了する前にETTL測光PE(2)のタイミングが到来した場合の処理で、図3の枠F2−1で示すB設定延長i−1‐(2)に相当する。図3との関連で前述したように、B設定i−1は、I読出iとP読出1が完了するタイミングで完了する。しかし、撮像ii後のETTL測光PE(2)のタイミングが先に到来した場合は、I読出iとP読出1が完了してもCPU102及びCPU202は画像振り分け部400eの終了処理を行わない。その代わりに図3の枠F2−1にあるように、ETTL測光PE(2)のためのB設定延長i-1-(2)を実施する。具体的に、CPU102またはCPU202はプリ発光(2)とPE蓄積(2)に伴って行われるマイコン200のPE読出(2)が完了するまでB設定を延長し、PE読出(2)の完了後に終了処理を行う。これにより余計な終了処理、準備処理を省くことができる。
S907では、測光撮像素子400dがPE蓄積処理を行う。PE蓄積を行うための設定はマイコン100、マイコン200のどちらで行ってもよい。なお、PE蓄積はプリ発光と同じタイミングで実施されている。次にS908では、フラグ値がTRUEか否かを判定する。もしフラグ値がTRUEの場合、S909に進みマイコン200がPE読出処理を行う。このとき画像振り分け部400eには図8のS804でB設定がなされており、撮像素子400aからの画像信号がマイコン100に供給され、測光撮像素子400dからの画像信号がマイコン200に供給されることとなっている。従って、マイコン200は測光撮像素子400dから画像信号を読み出すことができる。次にS910に進み、マイコン200がPE画演算処理を行う。PE画演算処理では測光撮像素子400dからの画像信号を画像処理部201が処理して画像データとしてメモリ203に記憶させ、CPU202がETTL測光演算を行ってETTL測光結果を算出する。
S908での判定に基づく分岐に戻り、フラグ値がTRUEでない(FALSE)と判定された場合、S911に進みマイコン100がPE読出処理を行う。次にS912においてマイコン100がPE画演算処理を行う。PE読出処理及びPE画演算処理はS909、S910で説明した内容と同様である。その後S913に進み、マイコン100、マイコン200のうち処理負荷の少ないマイコンが画像振り分け部400eの動作を終了させるための終了処理を実行する。このようにして、図8のS822における設定待機延長処理を実施することができる。
以上の実施形態によれば、複数のマイコンと複数の撮像素子、例えば撮像素子と測光撮像素子でタイミングが不定期、かつ非同期行われる際の出力を並行処理した上で、特にストロボ撮影のためのETTL測光をして高速連続撮影動作させることができる。
[実施形態2]
以下に、発明の第2の実施形態を説明する。実施形態2における撮像装置の構成は実施形態1で説明したカメラ700と同じなので、説明を省略する。
図10は、カメラ700の各マイコンの撮像素子400aでの撮像画像、測光撮像素子400dでの測光画像を同時に取り込みながら、ETTL測光をして連続撮影をする場合の本実施形態に対応するタイミングチャートである。図10では、図2から図4と同様、上からミラー400b、撮像素子400a、ストロボ800、測光撮像素子400d、画像振り分け部400e、マイコン100及びマイコン200のそれぞれの動作を、横軸の時間軸において示している。
図10に示すタイミングチャートは、実施形態1の図2から図4のタイミングチャートと比較して、マイコン100の時間軸上にI短読出処理がある点で異なっている。I短読出処理とは、実施形態1のI読出処理に比べて短い時間で撮像素子400aからの画像信号を読み出す処理をいう。このような短い読出し時間は、撮像素子400aが有する撮像領域のうち一部の領域の画像信号を読み出していること、言い換えれば撮像素子400aが生成する撮像画像の画素数が異なっていることに起因する。
図11は、撮像素子400aの読出し領域を説明するための図である。読出領域1101は撮像素子400a内の有効画素で構成される撮像領域を最大限に使用する広域な読出しをするための領域である。一方、読出領域1102は撮像領域における有効画素の一部分だけを読みだす領域を表している。読出領域1102は、例えば被写体を拡大して撮像を行う場合の画像信号の読み出し領域として設定されることがある。読出領域1101と読出領域1102とは、読み出し対象となる有効画素が構成する領域の大きさの違いから、読出時間に差が生まれ、当然のことながら読出領域1102の読出時間は読出領域1101に比べて短くなる。図10にあるI短読出処理は、読出領域1102を読み出す処理を表している。なお、読出領域1101と読出領域1102との切替えは、マイコン100とマイコン200とのいずれで行っても良い。
次に実施形態2における図2の太線枠F1で囲まれた部分の動作状態に関する問題点を解消するための動作制御の具体例を説明する。図10のタイミングチャートは、上述のI短読出の動作と太線枠F4で囲まれた部分の動作とが図2のタイミングチャートと異なる以外は図2と同様であるので、以下では太線枠F4内の動作について説明する。
太線枠F4で囲まれた撮影iiのタイミングでは、画像振り分け部400eのB設定i−1の設定は、I短読出iとP読出1が完了するタイミングで完了する。図10の例では、I短読出iが後に終わるので、I短読出iが完了するとB設定i-1も完了する。しかし、I短読出iが実施形態1の図2から図4で示したI読出iよりも時間が短くなるため、枠F4−1で示すB設定i−1待機時間を実施形態1の図4の場合と比較して待機時間を長く設定する必要がある。なお、図4は、図11の読出領域1101の画素を読み出した場合に相当する。仮に待機時間を図4と同じくすると、待機時間の経過により終了処理と準備処理が実行されることとなり、図2の遅延Dを解消することができない。もちろん、待機期間を設けずに終了、準備処理をした方が待機時間を設けるよりも時間を短縮することができる場合もあるが、本実施形態では、待機期間を設ける場合について説明する。
このように図4のように読出領域1101の画素の全てを読み出す場合と、より狭い領域の読出領域1102の画素を読み出す場合とで、画像振り分け部400eを待機状態にする期間を変更することができる。これにより、待機時間経過前にプリ発光が開始されればB設定はPE読出(2)が完了するまでB延長される(枠F4−2で示すB設定延長i-1-(2))ので、余計な終了処理、準備処理を省くことができる。
次に、図10のタイミングチャートに対応する待機時間の制御について、図12のフローチャートを参照して説明する。図12に示すステップは、例えば図9のS902において待機時間をタイマに設定する場合に実行されてもよい。また、画像の拡大操作が既に行われていた場合にはそのタイミングで実行し、タイマの設定値をマイコン100及び200の各メモリ内に記憶させておいても良い。
まず、S1201では、CPU102またはCPU202が撮像素子400aから画像信号を読み出す領域として読出領域1101と読出領域1102のいずれが設定されているかを判定する。もし、読出し領域1101が設定されている場合、S1202に進み、待機時間をT1に設定する。一方、読出領域1102が設定されている場合はS1203に移行して、待機時間をT2に設定する。このときT2>T1となる。
なお、図11では読出領域を2種類しか示していないが、本実施形態の趣旨に従えば、読み出される画像の画素数が異なっていればよいので、3種類以上の読出領域を設定しても良い。その場合には、読出領域の大きさ(または、画素数の違い)に応じた待機時間を設定すればよい。但し、待機時間が画像振り分け部400eの終了処理と準備処理とに要する時間よりも長くなる場合は待機処理を行う必要がなくなるので、その場合は待機時間を設定しなくて良い。
以上の本実施形態によれば、画像の読出領域の大きさに応じて読出時間が変化する場合であっても、当該変化に対応して不要な終了処理、準備処理を省略して撮影の遅延を防止することが可能となる。
[実施形態3]
以下、発明の第3の実施形態を説明する。実施形態2における撮像装置の構成は実施形態1で説明したカメラ700と同じなので、説明を省略する。
図13は、カメラ700の各マイコンの撮像素子400aでの撮像画像、測光撮像素子400dでの測光画像を同時に取り込みながら、ETTL測光をして連続撮影をする場合の本実施形態に対応するタイミングチャートである。図13では、図2から図4及び図10と同様、上からミラー400b、撮像素子400a、ストロボ800、測光撮像素子400d、画像振り分け部400e、マイコン100及びマイコン200のそれぞれの動作を横軸の時間軸において示している。
なお、図13では、ストロボ1300が追加されている。ストロボ撮影は複数のストロボを発光させて実施される場合があり、本実施形態はそのような場合を想定している。例えば、ストロボ800がカメラ700の内蔵ストロボであり、ストロボ1300がカメラ700から離れた位置に配置され、ストロボ1300がカメラ700と有線または無線で通信可能に接続されている場合が考えられる。この場合、カメラ700に取り付けられたときと同様にカメラ700によってストロボ1300の発光制御が可能である。
次に図13の太線枠F5で囲まれた部分の動作制御の具体例を説明する。図13のタイミングチャートは、2つのストロボを使用している以外は図2と同様であるので、以下では太線枠F5内の動作について説明する。太線枠F5で囲まれた撮影iiのタイミングでは、画像振り分け部400eのB設定i−1の設定は、I読出iとP読出1が完了するタイミングで完了する。図13の例ではI読出iが後に終わるので、I読出iが完了するとB設定i-1も完了する。I読出iの継続中(すなわち、B設定i-1も継続中)に撮像iiにおけるETTL測光PE(2)のタイミングが来ると、枠F5−1に示すように、ETTL測光PE(2)のための枠F5−1で示すB設定延長i-1-(2)を実行する。B設定は、ETTL測光PE(2)に基づくPE読出(2)が完了するまで延長される。これにより、B設定i-1を終了し、新たにA設定の準備(2)を開始する必要がなくなるので、図2の太線枠F1内で発生した遅延Dを失くすことができる。
次に、PE読出(2)が完了するとB設定の延長が終了し、これに伴い終了処理と準備処理が行われることとなる。これに対して本実施形態では、複数のストロボを使用したETTL測光処理に対応すべく、PE読出(2)の完了後にB設定の待機処理(枠F5−2で示すB設定待機i-1-(2))に移行する。即ち、PE読出(2)の完了後に所定時間の待機時間を設定し、当該待機時間が経過するまでにETTL測光PE(3)のタイミングが到来した場合には再度B設定を延長して(枠F5−3で示すB設定延長i-1-(2)-(3))プリ発光(3)、PE蓄積(3)及びPE読出(3)を行う。これにより余計な終了処理、準備処理を省くことができ、撮影iiの撮像素子400aの露光タイミングを遅延させることなく開始できる。
次に、図14のフローチャートを参照して、本実施形態に対応する画像振り分け部400eの設定待機延長処理の詳細を説明する。図14のフローチャートのS1401からS1412までの構成は、図9のフローチャートのS901からS912までの構成と同様である。以下では両者の相違点について特に説明する。
図14では、待機時間が経過した場合と、PE画演算処理が終了した場合にS1413において複数のストロボのそれぞれにおいてプリ発光が既に行われたか否かを判定する。当該判定は、プリ発光の回数に基づいて、ストロボ数に応じた所定の複数回数の発光が行われたか否かに基づき実施しても良い。もし、プリ発光を行っていないストロボが1つでも存在する場合は、S1415で待機時間が経過したか否かを判定する。もし、待機時間が経過した場合はS1414に進み、画像振り分け部400eを終了するための終了処理を実行する。一方、S1415にて待機時間が経過していない場合はS1402に戻って待機処理を継続する。また、S1413で全てのストロボでプリ発光が行われたと判定された場合、S1414で終了処理を行う。終了処理はマイコン100、マイコン200どちらで行っても構わないが、処理負荷の少ないマイコン側で行うことが望ましい。
以上の本実施形態によれば、複数のストロボを使用した多灯ストロボ撮影を行う場合であっても、不要な終了処理、準備処理を省略して撮影の遅延を防止することが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。