以下、本発明の実施形態について、添付図面を参照して詳細に説明する。本実施形態では、撮像装置に外部ストロボ装置(照明装置)が装着された撮像システムを取り上げることとする。図1は、本発明の実施形態に係る撮像装置100の外観斜視図である。撮像装置100の正面には、不図示のレンズ鏡筒(交換レンズ)を着脱するためのマウント303が設けられている。また、撮像装置100は、後述するカメラ操作部117に含まれるレリーズボタン301と絞り込み開始ボタン302を備える。なお、レリーズボタン301と絞り込み開始ボタン302の詳細については後述する。
図2は、撮像装置100の概略構成を示すブロック図である。撮像装置100は、カメラMPU101、撮像素子102、不図示のレンズ鏡筒、タイミング信号発生回路103、A/D変換器104、メモリコントローラ105、バッファメモリ106、画像表示部107及び記憶媒体I/F108を備える。また、撮像装置100は、記憶媒体109、モータ制御部110、シャッタ制御部111、測光部112、測光センサ113、レンズ制御部114、焦点検出部115、姿勢検出部116、カメラ操作部117、ストロボ制御部118及び内蔵ストロボ119を備える。撮像装置100には、外部ストロボ装置120(以下「外部ストロボ120」と記す)の着脱が可能となっている。
撮像装置100は、具体的には、外部ストロボ120の着脱が可能なデジタル一眼レフカメラである。カメラMPU101は、撮像装置100の全体動作を制御するマイクロコントローラ(マイクロコンピュータ)である。撮像素子102は、具体的にはCCDセンサやCMOSセンサ等である。レンズ鏡筒を通過した被写体からの光は撮像素子102に結像する。撮像素子102は、結像した光学像を電気信号に変換し、アナログ電気信号を生成する。タイミング信号発生回路103は、撮像素子102を動作させるために必要なタイミング信号を発生する。A/D変換器104は、撮像素子102から出力されたアナログ電気信号をデジタル信号からなる画像データに変換する。なお、本実施形態では、カメラMPU101が、A/D変換器104から出力される画像データに対してホワイトバランス処理等の所定の画像処理を施す画像処理手段としても機能するものとする。
メモリコントローラ105は、バッファメモリ106の読み書きやリフレッシュ動作等を制御する。バッファメモリ106は、A/D変換器104から出力される画像データや記憶媒体109から読み出された画像データを一時的に記憶する。画像表示部107は、バッファメモリ106に記憶された画像データを表示する。記憶媒体I/F108は、メモリカードやハードディスク等の記憶媒体109とカメラMPU101との通信を可能にするインタフェースである。モータ制御部110は、カメラMPU101からの信号に従って不図示のモータを制御することにより不図示のミラーのアップ/ダウンや不図示のシャッタのチャージを行う。シャッタ制御部111は、カメラMPU101からの信号に従って、撮像素子102の前方に配置された不図示のシャッタ先幕とシャッタ後幕の通電を制御して走行させることにより、撮像素子102に対する露出を制御する。
測光部112は、撮影画面内を複数のエリアに分割した測光センサ113の出力に基づき、各エリアでの測光値をカメラMPU101へ出力する。測光センサ113は、CCDセンサ又はCMOSセンサ等である。なお、カメラMPU101は、測光センサ113の各エリアの測光値に基づいて、撮影時の露出制御値(AV値(絞り値)、TV(シャッタスピード)、ISO(撮影感度)等)を決定するための露出演算を行う。また、カメラMPU101は、内蔵ストロボ119又は外部ストロボ120から被写体に向けてプリ発光(予備発光)を行ったときに測光部112から出力される測光値に基づき、ストロボ撮影(露出)時のメイン発光量(本発光量)を演算する。
レンズ制御部114は、レンズ鏡筒内に設けられており、カメラMPU101からの信号に従って、不図示のレンズ駆動モータやレンズ絞りモータを制御することにより、レンズの焦点調節と絞り調節を行う。焦点検出部115は、複数の測距点を備えた不図示の焦点検出センサの出力に基づき、各測距点のデフォーカス量をカメラMPU101に出力する。カメラMPU101は、焦点検出部115から出力されたデフォーカス量に基づいて、レンズ制御部114が焦点調節動作を実行するための指示を与える。姿勢検出部116は、加速度センサ等を有し、重力方向と撮影光軸を中心とした回転方向のそれぞれを基準とした撮像装置100の姿勢を検出する。
カメラ操作部117は、ユーザによる操作を受けて、カメラMPU101に対して各種の処理を指示する。カメラ操作部117は、撮影準備動作や撮影動作の開始指示を受け付けるレリーズボタン301を含む。レリーズボタン301は2段スイッチであり、半押し(第1ストローク)で第1スイッチSW1がオンになり、これに応じてカメラMPU101の制御下で、焦点検出動作や測光動作等の撮影準備動作が実行される。なお、第1スイッチSW1のオン信号は、外部ストロボ120がオートバウンスに対応している場合に、ストロボ制御部118を介して、外部ストロボ120の後述するストロボMPU201に送信される。ストロボMPU201は、第1スイッチSW1のオン信号を受信すると、外部ストロボ120の後述する可動部122を設定角度へ駆動する。レリーズボタン301の全押し(第2ストローク)で第2スイッチSW2がオンになり、これに応じてカメラMPU101の制御下で撮影動作が実行される。
カメラ操作部117は、絞り込み開始ボタン302を含む。外部ストロボ120がオートバウンスに対応していない場合に絞り込み開始ボタン302がオンになると、レンズ制御部114に信号が送信されて、前述の絞り調節が行われる。一方、外部ストロボ120がオートバウンスに対応している場合に絞り込み開始ボタン302がオンになると、ストロボ制御部118を介して、外部ストロボ120にオン信号が送信される。ストロボMPU201は、絞り込み開始ボタン302のオン信号を受信すると、外部ストロボ120の可動部122を最適な角度へ駆動する。可動部122の構成については後述する。
ストロボ制御部118は、内蔵ストロボ119又は外部ストロボ120を使用する際に、カメラMPU101からの信号に従って、プリ発光やメイン発光等の発光パターンや発光量を制御する。また、ストロボ制御部118は、カメラMPU101からの信号に応じて、内蔵ストロボ119と外部ストロボ120の一方を選択的に使用するための切り換え制御を行う。外部ストロボ120のストロボMPU201と撮像装置100のカメラMPU101との間の通信は、ストロボ制御部118を介して行われる。
図3は、外部ストロボ120の概略構成を示す背面図である。図4は、外部ストロボ120の概略構成を示すブロック図である。外部ストロボ120は、撮像装置100に対して着脱される本体部121と、本体部121に対して上下(仰角)及び左右(回転角)方向に回転可能に保持される可動部122(ストロボヘッド部)を備える。可動部122は、発光部202及び測距用測光部203を有する。本体部121は、ストロボMPU201、駆動制御部204、姿勢検出部205、バウンス角度演算部206、ストロボ操作部207、接続部208及び表示部209を有する。
ストロボMPU201は、外部ストロボ120の全体動作を制御するマイクロコントローラ(マイクロコンピュータ)である。発光部202は、閃光放電管やLED等の光源と、樹脂等で形成されて光源の前方に配置された光学系等を有し、ストロボMPU201からの発光信号に従って光源を発光させ、所定の方向にストロボ光を照射する。測距用測光部203は、ストロボ光の照射方向と同じ方向を向くように受光面が配置された受光センサを有し、ストロボ光の照射対象からの反射光量に応じた信号をストロボMPU201へ出力する。ストロボMPU201は、発光部202を発光させたときに照射対象で反射された反射光束を受光した測距用測光部203から出力される信号に基づき、発光部202の光学系の照射面から照射対象までの距離を算出する。
駆動制御部204は、ストロボMPU201からの信号に従って不図示のモータを制御することにより、可動部122を本体部121に対して、撮影光軸と直交し且つ互いに直交する2方向に駆動させる。撮影光軸が水平方向と平行であるとき、撮影光軸と直交し且つ互いに直交する2方向とは、垂直方向(上下方向)及び水平方向(左右方向)となる。また、駆動制御部204は、本体部121に対する可動部122の垂直方向及び水平方向の角度を取得し、ストロボMPU201へ出力する。姿勢検出部205は、加速度センサ等により本体部121の姿勢(水平方向に対する傾き、撮影光軸を中心軸とした回転角度)を検出し、ストロボMPU201へ通知する。バウンス角度演算部206は、測距用測光部203と姿勢検出部205のそれぞれの検出結果をストロボMPU201から取得して最適なバウンス角度を算出し、算出結果をストロボMPU201へ出力する。
ストロボ操作部207は、外部ストロボ120で実行する各種動作をストロボMPU201に指示するためのボタンやスイッチ、タッチパネル等である。図3に示すように、本体部121の背面には、ストロボ操作部207の1つであるバウンスモード切り替えスイッチ401、バウンス角度設定スイッチ402、バウンス角度クリアスイッチ403が設けられている。バウンスモード切り替えスイッチ401は、AIB−FモードとAIB−Sモードとを切り換えるための操作手段である。AIB−Fモードは、自動的に最適なバウンス角度を決定し、決定したバウンス角度へ可動部122を駆動するモード(オートバウンスフルモード)である。AIB−Sモードは、ユーザが設定したバウンス角度へ可動部122を駆動するモード(オートバウンスセミモード)である。バウンス角度設定スイッチ402がオンされると、ストロボMPU201は、現在の可動部122の角度を設定角度として記憶する。バウンス角度クリアスイッチ403がオンされると、現在の可動部122はデフォルト位置である正面位置へ駆動される。なお、正面位置とは、発光部202が撮影対象である被写体に向き、発光部202の中心軸が撮像装置100の撮影光軸と略平行となる位置である。
接続部208は、本体部121の撮像装置100に対する着脱を可能にする部位であり、ストロボMPU201とカメラMPU101との通信を可能にするための電気接点等を有する。オートバウンスモードがAIB−Fモードに設定された状態において撮像装置100で絞り込み開始ボタン302が押下されると、オートバウンス駆動開始指示がカメラMPU101から接続部208を介してストロボMPU201へ通知される。この通知に応じてストロボMPU201は、測距を行い、可動部122を最適な角度へ駆動する。オートバウンスモードがAIB−Fモード又はAIB−Sモードに設定されたレリーズボタン301の第1スイッチSW1がオンになると、設定角度への駆動指示がカメラMPU101から接続部208を介してストロボMPU201へ通知される。この通知に応じてストロボMPU201は、設定角度(目標角度)と現在角度の差を検出し、所定の差がある場合に可動部122を設定角度へ駆動する。表示部209には、外部ストロボ120の状態、各種の設定状況、設定メニュー等が表示される。ストロボMPU201は、可動部122の現在角度と設定角度に所定の差がある場合に、表示部209に警告表示を行う。
次に、撮像装置100での撮影制御について説明する。図5(a)は、撮像装置100(カメラ側)でのオートバウンス撮影制御のフローチャートである。図5(a)のフローチャートにS番号で示す各処理は、カメラMPU101が、カメラ操作部117からの指示を受けて、内部に格納されている所定のプログラムを実行し、撮像装置100の各部の動作を制御することにより実現される。
S501においてカメラMPU101は、カメラ操作部117に含まれる絞り込み開始ボタン302が押下されたか否かを判定する。カメラMPU101は、絞り込み開始ボタン302が押下されていないと判定した場合(S501でNO)、S501の判定を繰り返し、絞り込み開始ボタン302の状態を監視する。カメラMPU101は、絞り込み開始ボタン302が押下されたと判定した場合(S501でYES)、処理をS502へ進める。S502においてカメラMPU101は、ストロボMPU201から受信したオートバウンスモード通知がAIB−Fモードか否かを判定する。なお、オートバウンスモード通知は、AIB−Fモード又はAIB−Sモードである。また、オートバウンスモード通知は、図6を参照して後述するS605の処理により、ストロボMPU201からカメラMPU101へ通知される。カメラMPU101は、AIB−Fモードの通知を受信したと判定した場合(S502でYES)、処理をS503へ進める。
S503においてカメラMPU101は、ストロボ制御部118を介してストロボMPU201に対して、オートバウンス駆動指示を送信し、その後、処理をS505へ進める。S505においてカメラMPU101は、ストロボMPU201からオートバウンス駆動終了通知を受信したか否かを判定する。なお、オートバウンス駆動終了通知は、図6を参照して後述するS613の処理により、ストロボMPU201からカメラMPU101へ通知される。カメラMPU101は、オートバウンス駆動終了通知を受信していないと判定した場合(S505でNO)、S505の判定を繰り返して、オートバウンス駆動終了通知を受信するまで待機する。一方、カメラMPU101は、オートバウンス駆動終了通知を受信したと判定した場合(S505でYES)、本処理を終了させる。
カメラMPU101は、S502においてAIB−Sモードの通知を受信したと判定した場合(S502でNO)、処理をS504へ進める。S504においてカメラMPU101は、測光部112による測光を行い、露出制御値を算出し、算出した露出制御値(AV値)に基づいてレンズ制御部114を介してレンズ絞りモータを動作させて絞り調節を行う。カメラMPU101は、S504の処理後、本処理を終了させる。
図5(b)は、撮像装置100(カメラ側)での撮影処理のフローチャートである。図5(b)のフローチャートの各処理は、カメラMPU101が、カメラ操作部117からの指示を受けて、内部に格納されている所定のプログラムを実行し、撮像装置100の各部の動作を制御することにより実現される。
S511においてカメラMPU101は、レリーズボタン301の第1スイッチSW1がオンになったか否かを判定する。カメラMPU101は、第1スイッチSW1がオンになっていないと判定した場合(S511でNO)、第1スイッチSW1がオンになるまでS511の判定を繰り返して、レリーズボタン301の状態を監視する。カメラMPU101は、第1スイッチSW1がオンになったと判定した場合(S511でYES)、処理をS512へ進める。
S512においてカメラMPU101は、ストロボ制御部118を介してストロボMPU201へバウンス設定角度への駆動指示を送信する。S513においてカメラMPU101は、レンズ制御部114を制御してAFを行い、測光部112による測光結果に基づいて露出制御値を算出する。S514においてカメラMPU101は、第2スイッチSW2がオンになったか否かを判定する。カメラMPU101は、第2スイッチSW2がオンになっていないと判定した場合(S514でNO)、第2スイッチSW2がオンになるまでS514の判定を繰り返して、レリーズボタン301の状態を監視する。カメラMPU101は、第2スイッチSW2がオンになったと判定した場合(S514でYES)、処理をS515へ進める。
S515においてカメラMPU101は、ストロボ制御部118を介してストロボMPU201に対して、第2スイッチSW2がオンになってから撮影開始までの時間Tsと、撮影終了までの時間Teを送信する。なお、時間Tsは、第2スイッチSW2がオンしてからシャッタ先幕が走行を開始するまでの時間である。また、時間Teは、Te=Ts+TV、により算出される。S516においてカメラMPU101は、ストロボMPU201から充完通知(=発光可能なレベルにまで充電が完了しているとの通知)を受信したか否かを判定する。なお、カメラMPU101は、図6を参照して後述するS619の処理により、ストロボMPU201から充完通知を受信する。また、カメラMPU101は、ストロボMPU201から充完通知を受信する前に、図6を参照して後述するS615の処理により、未充完通知(=発光可能なレベルにまで充電が完了していないことの通知)を受信する。カメラMPU101は、充完通知を受信したと判定した場合(S516でYES)、処理をS517へ進め、充完通知を受信していないと判定した場合(S516でNO)、処理をS518へ進める。
S517においてカメラMPU101は、外部ストロボ120の発光制御を行ってストロボ撮影を実行し、その後、本処理を終了させる。具体的には、カメラMPU101は、ストロボ制御部118を介して、ストロボMPU201に対して所定光量でのプリ発光を指示し、これにより、ストロボMPU201はプリ発光を実行する。カメラMPU101は、プリ発光を行った際の輝度信号に基づき、本撮影時のメイン発光量を算出し、ストロボ制御部118を介してストロボMPU201にメイン発光を指示し、これに従ってストロボMPU201はストロボ発光を実行する。また、カメラMPU101は、メイン発光に同期させて所定の露出制御値で露出動作を行い、露出動作の終了後に、撮影画像の画像データを画像表示部107に表示し、記憶媒体109に記憶して撮影動作を終了させる。
S518においてカメラMPU101は、所定の露出制御値で露出動作を行い、露出動作の終了後に、撮影画像の画像データを画像表示部107に表示し、記憶媒体109に記憶して撮影動作を終了させる。なお、図5(a)及び図5(b)のフローでは、絞り込み開始ボタン302又は第1スイッチSW1がオンになったことをトリガにしてオートバウンス駆動制御を開始したが、オートバウンス駆動制御の開始方法はこれに限定されるものではない。例えば、撮像装置100のカメラ操作部117又は外部ストロボ120のストロボ操作部207にオートバウンス開始スイッチが設けられ、オートバウンス開始スイッチがオンに操作されることでオートバウンス駆動制御が開始される構成となっていてもよい。
次に、外部ストロボ120でのストロボ撮影に関する制御について説明する。図6は、外部ストロボ120でのストロボ撮影制御のフローチャートである。図6のフローチャートにS番号で示す各処理は、ストロボMPU201がカメラMPU101からの指示及びストロボ操作部207からの指示を受けて、内部に格納されている所定のプログラムを実行し、外部ストロボ120の各部の動作を制御することにより実現される。
S601においてストロボMPU201は、姿勢検出部205から本体部121の姿勢情報を取得する。S602においてストロボMPU201は、角度ずれ判定処理を実行する。角度ずれ判定処理では、概略、本体部121に対する可動部122の現在の水平方向及び垂直方向の角度を取得し、後のS612及びS712で設定される設定角度に対する可動部122の角度ずれの有無が判定される。なお、角度ずれ判定処理の詳細については後述する。S603においてストロボMPU201は、S602での判定結果に基づき、角度ずれの有無を判定する。ストロボMPU201は、角度ずれがあると判定した場合(S603でYES)、処理をS604へ進め、角度ずれはないと判定した場合(S603でNO)、処理をS605へ進める。S604においてストロボMPU201は、可動部122の角度が設定角度に対してずれている旨の警告表示を表示部209に行う。なお、警告表示は、不図示のLEDランプ等の点滅や点灯等によって行ってもよい。
S605においてストロボMPU201は、バウンスモード切り替えスイッチ401により設定されているオートバウンスモード(AIB−Fモード又はAIB−Sモード)を接続部208を通じてカメラMPU101へ通知する。S606においてストロボMPU201は、カメラMPU101からオートバウンス駆動指示を受信したか否かを判定する。なお、オートバウンス駆動指示は、S503においてカメラMPU101からストロボMPU201へ通知される。ストロボMPU201は、オートバウンス駆動指示を受信したと判定した場合(S606でYES)、処理をS607へ進める。
S607においてストロボMPU201は、発光部202が正面方向を向くように(発光部202の中心軸が撮影光軸と略平行になるように)、可動部122を駆動するオートバウンス制御を実行する。なお、正面方向は光軸方向となるため、可動部122の姿勢は、本体部121に対して垂直方向と水平方向のそれぞれで角度は0度(°)となる。S607の処理の詳細については後述する。S608においてストロボMPU201は、プリ発光を行う。ここでは、プリ発光の方向はS607によって正面方向(被写体)となっているため、発光部202から被写体へ向けてストロボ光が照射されると、測距用測光部203が被写体からの反射光を検出し、検出した反射光量に応じた信号を出力する。ストロボMPU201は、測距用測光部203から取得した出力信号に基づいて、被写体距離を算出する。
S609においてストロボMPU201は、発光部202が天井方向を向くように可動部122を駆動するオートバウンス制御を実行する。なお、天井方向への駆動角度は、本体部121の傾きに基づいて算出される。例えば、S601で取得した本体部121の姿勢情報が、重力方向ではX度、光軸回転方向では0度であった場合、可動部122の本体部121に対する駆動角度は、垂直方向で(90−X)度、水平方向で0度となる。S610においてストロボMPU201は、プリ発光を行う。ここでは、プリ発光の方向はS609によって天井方向となっているため、発光部202から天井へ向けてストロボ光が照射されると、測距用測光部203が天井からの反射光を検出し、検出した反射光量に応じた信号を出力する。ストロボMPU201は、測距用測光部203から取得した出力信号に基づいて、発光部202から天井までの距離(以下「天井距離」という)を算出する。なお、本実施形態では、可動部122を正面方向へ駆動した後に天井方向へ駆動しているが、これらの順序は逆であってもよく、被写体距離と天井距離を算出することができればよい。
S611においてストロボMPU201は、天井距離と被写体距離に基づき最適バウンス角度を算出する。本体部121の傾き角度を加味して最適バウンス角度を算出する方法には周知の技術を用いることができ、ここでの詳細な説明は省略する。S612においてストロボMPU201は、可動部122を最適バウンス角度へ駆動させるオートバウンス制御を実行し、最適バウンス角度を水平方向及び垂直方向のそれぞれについての設定角度として、ストロボMPU201の不図示のメモリに記憶する。その際、既に記憶されている設定角度がある場合には、記憶されている設定角度をS611で算出した最適バウンス角度で上書き(更新)する。S613においてストロボMPU201は、カメラMPU101へ接続部208を介してオートバウンス駆動終了通知を送信し、その後、処理をS601へ戻す。
ストロボMPU201は、S606においてオートバウンス駆動指示を受信していないと判定した場合(S606でNO)、処理をS614へ進める。S614においてストロボMPU201は、カメラMPU101がS512においてストロボMPU201へ送信したバウンス設定角度への駆動指示を受信したか否かを判定する。ストロボMPU201は、駆動指示を受信したと判定した場合(S614でYES)、処理をS615へ進め、駆動指示を受信していないと判定した場合(S614でNO)、処理をS620へ進める。
S615においてストロボMPU201は、接続部208を介してカメラMPU101へ未充完通知を送信する。なお、ストロボMPU201は、外部ストロボ120の不図示のコンデンサ等が充完状態(=発光可能なレベルにまで充電が完了している状態)になっていたとしても、S517でのストロボ撮影を禁止するために、未充完通知を送信する。また、S615においてストロボMPU201は、不図示のLEDランプを消灯させることにより、ユーザにストロボ撮影が実行不可となっていることを通知する。
S616においてストロボMPU201は、バウンス角度の設定処理が完了しているか否かを判定する。詳細は後述するが、バウンス角度の設定処理が完了していれば、設定されたバウンス角度がストロボMPU201のメモリに記憶されている。ストロボMPU201は、バウンス角度設定処理が完了していると判定した場合(S616でYES)、処理をS617へ進め、バウンス角度設定処理が完了していないと判定した場合(S616でNO)、処理をS618へ進める。
S617においてストロボMPU201は、可動部122がバウンス角度設定処理によって記憶されたバウンス角度となるように可動部122を駆動するバウンス復帰制御を行い、その後、処理をS619へ進める。S618においてストロボMPU201は、デフォルト位置への復帰させるために発光部202が正面方向を向くように可動部122を駆動するバウンス復帰制御を行い、その後、処理をS619へ進める。S619においてストロボMPU201は、カメラMPU101へ接続部208を介して充完通知を送信し、また、不図示のLEDランプを点灯することにより、ユーザにストロボ撮影が可能であることを通知する。
S620においてストロボMPU201は、カメラMPU101がS517で送信した発光指示(プリ発光の指示又はメイン発光の指示と発光量)を受信したか否かを判定する。ストロボMPU201は、発光指示を受信していないと判定した場合(S620でNO)、処理をS601へ戻し、発光指示を受信したと判定した場合(S620でYES)、処理をS621へ進める。S621においてストロボMPU201は、発光指示に応じた発光制御を行い、その後、本処理を終了させる。
図7(a)は、可動部122のオートバウンス駆動制御(S607,S609,S612)のフローチャートである。S701においてストロボMPU201は、角度ずれ判定処理を行う。角度ずれ判定処理では、概略、駆動制御部204から可動部122の本体部121に対する現在の水平方向及び垂直方向の各角度を取得し、本体部121に対して移動させるべき水平方向及び垂直方向での目標角度と比較する。ここでの目標角度とは、S607,S609,S612で設定された角度を指す。角度ずれ判定処理の詳細については後述する。
S702においてストロボMPU201は、S701の角度ずれ判定処理の結果、現在角度と目標角度にずれがあるか否かを判定する。ストロボMPU201は、角度ずれがあると判定した場合(S702でYES)、処理をS703へ進め、角度ずれはないと判定した場合(S702でNO)、本処理を終了させる。S703においてストロボMPU201は、駆動制御部204により不図示のモータの駆動を制御して、可動部122の駆動を開始する。
S704においてストロボMPU201は、角度ずれ判定処理を行う。角度ずれ判定処理の内容は、S701の角度ずれ判定処理の内容と同様である。即ち、ストロボMPU201は、駆動制御部204から可動部122の本体部121に対する現在の水平方向及び垂直方向の角度を取得し、本体部121に対して移動させるべき水平方向及び垂直方向の目標角度と比較する。S705においてストロボMPU201は、S704の角度ずれ判定処理の結果、現在角度と目標角度にずれがあるか否かを判定する。ストロボMPU201は、角度ずれがあると判定した場合(S705でYES)、処理をS706へ進め、角度ずれはないと判定した場合(S705でNO)、処理をS707へ進める。
S706においてストロボMPU201は、モータ駆動時間が所定時間を経過したか(タイムアウトしたか)否かを判定する。ストロボMPU201は、タイムアウトしていないと判定した場合(S706でNO)、処理をS704へ戻してモータの駆動を続け、タイムアウトしたと判定した場合(S706でYES)、処理をS707へ進める。S707においてストロボMPU201は、タイムアウトエラー処理として、駆動制御部204によりモータの駆動を停止させて可動部122の駆動を停止させ、その後、本処理を終了させる。
図7(b)は、バウンス角度設定制御(S616)のフローチャートである。S711においてストロボMPU201は、バウンス角度設定スイッチ402がオンか否かを判定する。ストロボMPU201は、バウンス角度設定スイッチ402がオンであると判定した場合(S711でYES)、処理をS712へ進める。S712においてストロボMPU201は、駆動制御部204より取得した可動部122の水平方向及び垂直方向の現在角度を水平方向及び垂直方向の設定角度として、ストロボMPU201のメモリに記憶し、その後、本処理を終了させる。なお、既に設定角度が記憶されている場合には、新しい設定角度が上書き記憶される。また、詳細な説明は省略するが、設定角度は本体部121の姿勢(傾き角度)を加味して算出される。
ストロボMPU201は、S711においてバウンス角度設定スイッチ402がオフであると判定した場合(S711でNO)、処理をS713へ進める。S713においてストロボMPU201は、バウンス角度クリアスイッチ403がオンか否かを判定する。ストロボMPU201は、S713においてバウンス角度クリアスイッチ403がオフであると判定した場合(S713でNO)、本処理を終了させる。一方、ストロボMPU201は、バウンス角度クリアスイッチ403がオンであると判定した場合(S713でYES)、処理をS714へ進める。S714においてストロボMPU201は、可動部122の水平方向及び垂直方向の設定角度をデフォルト値に設定する。S715においてストロボMPU201は、可動部122をデフォルト位置への復帰させるために発光部202が正面方向を向くように可動部122を駆動するバウンス復帰制御を行う。
図8は、バウンス復帰制御(S617,S618,S715)のフローチャートである。S801においてストロボMPU201は、角度ずれ判定処理を行う。S801では、駆動制御部204から可動部122の本体部121に対する現在の水平方向及び垂直方向の各角度を取得し、本体部121に対して移動させるべき水平方向及び垂直方向での目標角度と比較する。ここでの目標角度とは、S617,S618,S715で設定された角度を指す。
S802においてストロボMPU201は、S801の角度ずれ判定処理の結果、現在角度と目標角度にずれがあるか否かを判定する。ストロボMPU201は、角度ずれがあると判定した場合(S802でYES)、処理をS803へ進め、角度ずれはないと判定した場合(S802でNO)、本処理を終了させる。S803においてストロボMPU201は、駆動制御部204により不図示のモータの駆動を制御して、可動部122の駆動を開始する。S804においてストロボMPU201は、角度ずれ判定処理を行う。角度ずれ判定処理の内容は、S801の角度ずれ判定処理の内容と同様である。即ち、ストロボMPU201は、駆動制御部204から可動部122の本体部121に対する現在の水平方向及び垂直方向の角度を取得し、本体部121に対して移動させるべき水平方向及び垂直方向の目標角度と比較する。
S805においてストロボMPU201は、S804の角度ずれ判定処理の結果、現在角度と目標角度にずれがあるか否かを判定する。ストロボMPU201は、角度ずれがあると判定した場合(S805でYES)、処理をS806へ進め、角度ずれはないと判定した場合(S805でNO)、処理をS812へ進める。S806においてストロボMPU201は、カメラMPU101からS515で通知された、第2スイッチSW2をオンしてから撮影開始までの時間Tsと撮影終了までの時間Teを受信したか否かを判定する。ストロボMPU201は、時間Ts及び時間Teを受信したと判定した場合(S806でYES)、処理をS807へ進め、時間Ts及び時間Teを受信していないと判定した場合(S806でNO)、処理をS811へ進める。なお、S515での通知は、第2スイッチSW2のオン動作に同期している。そこで、S806においてストロボMPU201は、第2スイッチSW2がオンしてからの経過時間を計測するためのタイマを時間Ts及び時間Teを受信時に起動させ、経過時間Tpを計測する。
S807においてストロボMPU201は、可動部122の残駆動時間Trを算出し、Ts<Tr<Te、の関係が成り立つか否かを判定する。なお、残駆動時間Trは、S804の判定時に生じている角度のずれ(残駆動角度)と1度の角度の駆動に必要な時間との積により算出される。ストロボMPU201は、Ts<Tr<Teの関係が成り立つと判定した場合(S807でYES)、処理をS808へ進め、Ts<Tr<Teの関係が成り立たないと判定した場合(S807でNO)、処理をS811へ進める。
S808においてストロボMPU201は、駆動制御部204によりモータを制御して可動部122の駆動を停止させる。S809においてストロボMPU201は、経過時間Tpと時間Teに、Tp>Te、の関係が成り立つか否かを判定する。ストロボMPU201は、Tp>Teの関係が成り立つと判定した場合(S809でYES)、S806の処理を再度実行させないために、経過時間Tpと時間Teをゼロクリアして(Tp=0、Te=0)、処理をS810へ進める。ストロボMPU201は、Tp>Teの関係が成り立たないと判定した場合(S809でNO)、S809の判定を継続する。
S810においてストロボMPU201は、駆動制御部204により不図示のモータを制御して可動部122の駆動を再開させる。S811においてストロボMPU201は、モータ駆動時間が所定時間を経過したか(タイムアウトしたか)否かを判定する。ストロボMPU201は、タイムアウトしていないと判定した場合(S811でNO)、処理をS804へ戻してモータの駆動を継続させ、タイムアウトしたと判定した場合(S811でYES)、処理をS812へ進める。
S812においてストロボMPU201は、タイムアウトエラー処理として、駆動制御部204によりモータの駆動を停止させることにより、可動部122の駆動を停止し、その後、本処理を終了させる。このようなフローによれば、可動部122の復帰動作が露光中(時間Ts〜時間Te)に終了して可動部122が停止するのを禁止することができる。したがって、可動部122の駆動が停止した際の反動で撮像装置100にブレが生じてしまうのを防止して、ブレによる撮影の失敗を防止することができる。
図9は、角度ずれ判定処理(S602,S701,S704,S801,S804)の第1の例のフローチャートである。S901においてストロボMPU201は、本体部121に対して可動部122を移動(駆動)させるべき水平方向及び垂直方向の目標角度の絶対値がα度(例えば、3度)未満か否かを判定する。ここでは、目標角度の絶対値がα度未満であることを判定することで、目標角度が可動部122(発光部202)を正面方向に向けるためのものである否かを判定している。目標角度とは、S602の処理の場合には、S612,S712で設定される水平方向及び垂直方向の設定角度である。また、目標角度とは、S701,S704の場合にはS703で移動させるべき角度であり、S801,S804の場合にはS803,S810で移動させるべき角度である。αの値は、バウンス撮影等のストロボ光の照射方向が目標方向からずれても撮影画像に実質的な影響を及ぼさない値に、例えば、実験的又は経験的に設定することができる。ストロボMPU201は、目標角度の絶対値がα度未満であると判定した場合(S901でYES)、処理をS902へ進め、目標角度の絶対値がα度以上であると判定した場合(S901でNO)、処理をS904へ進める。
S902においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向での現在角度を取得し、現在角度の絶対値がα度未満か否かを判定する。ここでは、現在角度の絶対値がα度未満であることを判定することで、正面向きに移動させるべき可動部122が正しく正面を向いているかを判定していることになる。ストロボMPU201は、現在角度の絶対値がα度未満であると判定した場合(S902でYES)、本処理を終了させ、現在角度の絶対値がα度以上であると判定した場合(S902でNO)、処理をS903へ進める。S903においてストロボMPU201は、現在角度が目標角度からずれていると判定し、以降の処理で参照できるように、ストロボMPU201のメモリに現在角度(又は差分)を記憶し、その後、本処理を終了させる。
S904においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向の現在角度を取得し、現在角度と目標角度の差の絶対値がβ度(例えば、10度)未満か否かを判定する。ここで、α<βとすることで、目標角度が正面の場合には可動部122をより正確に正面に向けるための判定を行うことができる。その一方で、正面以外の角度の場合には角度ずれと判定されない範囲を広げることができ、警告表示や可動部122の駆動が頻繁に行われることを抑制することができる。ストロボMPU201は、現在角度の絶対値がβ度未満であると判定した場合(S904でYES)、本処理を終了させ、現在角度の絶対値がβ度以上であると判定した場合(S904でNO)、処理をS905へ進める。S905においてストロボMPU201は、現在角度が目標角度からずれていると判定し、以降の処理で参照できるように、ストロボMPU201のメモリに現在角度(又は差分)を記憶し、その後、本処理を終了させる。
以上の制御方法により、可動部122(発光部202)が正面を向いた直射撮影の場合には、角度ずれを最小限に抑えることができ、これにより、ガイドナンバーや配光のずれを抑えた適切なストロボ撮影を行うことが可能になる。また、最適バウンス角度を算出するS608での測距精度を向上させることができる。更に、角度ずれの許容量を、可動部122を正面向きにする場合よりも可動部122が正面以外の方向を向いたバウンス撮影の場合に大きくすることで、角度ずれに起因する警告表示の頻発や角度ずれを修正するためのバウンス駆動の頻発を抑制することができる。
次に、角度ずれ判定処理の別の実施形態について説明する。図10は、角度ずれ判定処理(S602,S701,S704,S801,S804)の第2の例のフローチャートである。S1001においてストロボMPU201は、角度ずれ判定に用いる閾値α,β,γを算出する。ここで、αは正面用の閾値、γは天井用の閾値、βはこれら以外の方向用の閾値である。図9の第1の例では、α,βを固定値としたが、本例では、ストロボMPU201(又はカメラMPU101)が、撮影条件に応じてα,β,γを設定する。具体的には、発光部202の配光角(照射角)が狭い場合には、小さな角度のずれであっても配光ムラが生じやすくなるため、閾値は小さい値に設定される。同様の理由で、撮像装置100の撮影光学系の焦点距離が長い場合も、閾値は小さい値に設定される。
S1002においてストロボMPU201は、本体部121に対して可動部122を移動(駆動)させるべき水平方向及び垂直方向の目標角度の絶対値がα度未満か否かを判定する。ここでは、目標角度の絶対値がα度未満であることを判定することで、目標角度が可動部122(発光部202)を正面方向に向けるためのものあるか否かを判定している。目標角度とは、S602の処理の場合には、S612,S712で設定される水平方向及び垂直方向の設定角度である。また、目標角度とは、S701,S704の場合にはS703で移動させるべき角度であり、S801,S804の場合にはS803,S810で移動させるべき角度である。ストロボMPU201は、目標角度の絶対値がα度未満であると判定した場合(S1002でYES)、処理をS1003へ進め、目標角度の絶対値がα度以上であると判定した場合(S1002でNO)、処理をS1005へ進める。
S1003においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向での現在角度を取得し、現在角度の絶対値がα度未満か否かを判定する。ここでは、現在角度の絶対値がα度未満であることを判定することで、正面向きに移動させるべき可動部122が正しく正面を向いているかを判定している。ストロボMPU201は、現在角度の絶対値がα度未満であると判定した場合(S1003でYES)、本処理を終了させ、現在角度の絶対値がα度以上であると判定した場合(S1003でNO)、処理をS1004へ進める。S1004においてストロボMPU201は、現在角度が目標角度からずれていると判定し、以降の処理で参照することができるように、ストロボMPU201のメモリに現在角度(又は差分)を記憶し、その後、本処理を終了させる。
S1005においてストロボMPU201は、本体部121に対して可動部122を移動(駆動)させるべき水平方向及び垂直方向の目標角度と天井角度との差分の絶対値がγ度未満か否かを判定する。ここで、天井角度とは、撮像装置100の姿勢を考慮した、可動部122を天井に向けるまでに必要な駆動量を指している。例えば、可動部122(発光部202)が撮像装置100の撮影光軸方向と同じ正面方向を向いている場合、天井角度の水平方向の角度は0度、垂直方向の角度は90度となる。よって、S1005では、目標角度と天井角度との差分の絶対値がγ未満であることを判定することで、目標角度が可動部122(発光部202)を天井に向けるためのものであるか否かを判定している。ストロボMPU201は、目標角度と天井角度との差分の絶対値がγ度未満であると判定した場合(S1005でYES)、処理をS1006へ進める。
S1006においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向での現在角度を取得し、現在角度と天井角度との差分の絶対値がγ度未満か否かを判定する。ここでは、現在角度と天井角度との差分の絶対値がγ未満であることを判定することで、天井方向に向けさせるべき可動部122(発光部202)が、正しく天井方向を向いているかを判定している。ストロボMPU201は、現在角度と天井角度との差分の絶対値がγ度未満であると判定した場合(S1006でYES)、本処理を終了させ、現在角度と天井角度との差分の絶対値がγ度以上であると判定した場合(S1006でNO)、処理をS1007へ進める。S1007においてストロボMPU201は、現在角度が目標角度からずれていると判定し、以降の処理で参照できるように、ストロボMPU201のメモリに現在角度(又は差分)を記憶し、その後、本処理を終了させる。
ストロボMPU201は、S1005において目標角度と天井角度との差分の絶対値がγ度以上であると判定した場合(S1005でNO)、処理をS1008へ進める。S1008においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向での現在角度を取得し、現在角度と目標角度との差分の絶対値がβ度未満か否かを判定する。例えば、γ<βとすることにより、目標角度が天井方向の場合であっても、可動部122をより正確に天井方向に向けるための判定を行うことができる。天井方向へはS610において最適バウンス角度を算出するための測距のためのプリ発光を行うため、測距精度を出すために可動部122の角度の精度は高いことが望ましい。したがって、可動部122を正面方向に向ける場合と同様に、その他の角度よりも角度ずれを判定するための閾値を小さくすることが望ましい。ストロボMPU201は、現在角度と目標角度との差分の絶対値がβ度未満であると判定した場合(S1008でYES)、本処理を終了させ、現在角度と目標角度との差分の絶対値がβ度以上であると判定した場合(S1008でNO)、処理をS1009へ進める。S1009においてストロボMPU201は、現在角度が目標角度からずれていると判定し、以降の処理で参照できるように、ストロボMPU201のメモリに現在角度を記憶し、その後、本処理を終了させる。
上述した角度ずれ判定処理の第2の例では、可動部122を向ける方向、発光部202の配光角や撮影光学系の焦点距離に応じて角度ずれを判定する。これにより、個々の撮像システムの構成や撮影条件ごとに、最適バウンス角度を算出するS608での測距精度を向上させることができる。また、先述の第1の例と比較して、ストロボ光の照射方向に高い精度が求められる場面で必要な精度を確保することができると共に、角度ずれに起因する警告表示の頻発や角度ずれを修正するためのバウンス駆動の頻発を抑制することができる効果をより顕著に得ることができる。
次に、角度ずれ判定処理の更に別の実施形態について説明する。図11は、角度ずれ判定処理(S602,S701,S704,S801,S804)の第3の例のフローチャートである。第3の例で実行される処理について、第1の例(図9)で実行される処理と同じ処理については、その旨を述べてここでの詳細な説明を省略する。第3の例は、S1101において目標角度が正面であるか否かを判定し、判定結果に応じてS1102とS1104とで閾値を使い分けて角度ずれを判定することを特徴としている。
S1101の処理は、S901の処理と同じであるので、説明を省略する。ストロボMPU201は、目標角度の絶対値がα度以上であると判定した場合(S1101でNO)、処理をステップS1104へ進める。S1104〜S1105の処理は、S904〜S905の処理と同じであるため、説明を省略する。一方、ストロボMPU201は、目標角度の絶対値がα度未満であると判定した場合(S1101でYES)、処理をS1102へ進める。
S1102においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向の現在角度を取得し、現在角度と目標角度の差の絶対値がα度未満か否かを判定する。例えば、第1の例のS902の判定では、目標角度が正面から少しだけずれた角度に設定された場合に、目標角度から少しずれただけで角度ずれと判定されてしまう可能性がある。例えば、目標角度が正面から少しだけずれた2度に設定され、且つ、αが3度に設定されていた場合、現在角度が目標角度から1度ずれて3度になった場合に角度ずれが生じていると判定される。逆に、目標角度からα度以上ずれても角度ずれと判定されない可能性もある。例えば、前例と同様に目標角度が2度に、且つ、αが3度に設定されている場合、現在角度が目標角度から−4度ずれて−2度になっても、角度ずれは生じていないと判定される。この問題を解決するため、S1102では、現在角度ではなく、現在角度と目標角度の差分の絶対値を確認する。これにより、正面付近の目標角度へ可動部122(発光部202)を駆動した際の角度ずれ判定の精度を高め、可動部122をより安定して駆動することが可能になる。
ストロボMPU201は、現在角度と目標角度の差の絶対値がα度未満であると判定した場合(S1102でYES)、本処理を終了させ、現在角度と目標角度の差の絶対値がα度以上であると判定した場合(S1102でNO)、処理をS1103に進める。S1103の処理は、S903の処理と同じであるため、説明を省略する。
図12は、角度ずれ判定処理(S602,S701,S704,S801,S804)の第4の例のフローチャートである。第4の例で実行される処理について、第2の例(図10)で実行される処理と同じ処理については、その旨を述べてここでの詳細な説明を省略する。第4の例は、S1202において目標角度が正面であるか否かを判定し、S1205において目標角度が天井であるか否かを判定し、それぞれの判定結果に応じてS1203,S1206,S1208で閾値を使い分けて角度ずれを判定することを特徴としている。
S1201,S1202の各処理は、S1001,S1002の処理と同じであるので、説明を省略する。S1202の判定がYESとなった後のS1203においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向の現在角度を取得し、現在角度と目標角度の差の絶対値がα度未満か否かを判定する。これは、例えば、目標角度が正面から少しだけずれた角度に設定された場合、第2の例のS1003の判定では目標角度から少しずれただけで角度ずれと判定されてしまう可能性があるからである。また、逆に、目標角度からα度以上ずれても角度ずれと判定されない可能性があるからである。この問題を解決するため、S1203では、現在角度ではなく、現在角度と目標角度の差分を確認する。これにより、正面付近の目標角度へ可動部122(発光部202)を駆動した際の角度ずれ判定の精度を高め、可動部122をより安定して駆動することが可能になる。
ストロボMPU201は、現在角度と目標角度の差の絶対値がα度未満であると判定した場合(S1203でYES)、本処理を終了させ、現在角度と目標角度の差の絶対値がα度以上であると判定した場合(S1203でNO)、処理をS1204に進める。S1204の処理は、S1004の処理と同じであるため、説明を省略する。
S1205の処理は、S1005の処理と同じであるので、説明を省略する。S1205の判定がYESとなった後のS1206においてストロボMPU201は、駆動制御部204から本体部121に対する可動部122の水平方向及び垂直方向での現在角度を取得し、現在角度と目標角度との差分の絶対値がγ度未満か否かを判定する。これは、例えば、目標角度が天井から少しだけずれた角度に設定された場合、S1006の判定では目標角度から少しずれただけで角度ずれと判定されてしまう可能性があるからである。また逆に、目標角度からγ度以上ずれても角度ずれと判定されない可能性があるからである。この問題を解決するため、S1206では、現在角度と天井角度の差分ではなく、現在角度と目標角度の差分を確認する。これにより、天井付近の目標角度へ可動部122(発光部202)を駆動した際の角度ずれ判定の精度を高め、可動部122をより安定して駆動することが可能になる。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。例えば、上記実施形態では、外部ストロボ120の可動部122の駆動制御について説明したが、内蔵ストロボ119が外部ストロボ120と同様な構成であれば、上述した可動部122に対する各種の制御は内蔵ストロボ119の制御に適用可能である。また、上記実施形態では、照明光として閃光を発して撮影を行う場合について本発明を説明したが、本発明は、連続的に一定時間の発光を行う撮影にも適用可能である。
本発明は、上述した実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。