まず、図1を参照して、本発明の実施例1におけるカメラシステムについて説明する。図1は、本実施例におけるカメラシステム10(撮像装置または撮像システム)のブロック図である。本実施例において、カメラシステム10は、カメラ本体100(撮像装置または撮像装置本体)と、カメラ本体100に着脱可能な交換レンズ200(レンズ装置)とを備えて構成されるレンズ交換式カメラシステムである。
図1に示されるように、本実施例のカメラ本体100には、レンズマウント部12を介して交換レンズ200が着脱可能に装着されている。カメラ本体100に装着可能な交換レンズ200には、フォーカスレンズ201、ズーム制御ユニット202、絞り203、および、防振制御レンズ204を備えて構成される撮像光学系が設けられている。なお図1には、フォーカスレンズ201、ズーム制御ユニット202(ズームレンズ)、または、防振制御レンズ204として1枚のレンズが示されているが、それぞれのレンズは、複数枚のレンズから構成されるレンズ群でもよい。撮像光学系を介して形成された光束は、撮像素子102に導かれ、撮像素子102に光学像として結像される。
まず、カメラ本体100の構成について説明する。シャッタ101は、撮像素子102への露光量を制御する。撮像素子102は、CCDセンサやCMOSセンサを備え、被写体の光学像をアナログ画像信号に変換する。すなわち撮像素子102は、撮像光学系を介して形成された光学像を光電変換して画像信号を出力する。また撮像素子102は、焦点検出に用いられる複数の画素(焦点検出画素)を有してもよい。A/D変換部103は、撮像素子102から出力されるアナログ画像信号をデジタル画像信号に変換し、デジタル画像信号を画像処理部140およびメモリ制御部105へ出力する。被写体の光学像は、ミラー112がダウンしている間、ミラー112、113を介して光学ファインダ114により観察可能である。タイミング発生部104は、撮像素子102、A/D変換部103、画像処理部140、メモリ制御部105、および、システム制御部130にクロック信号および同期信号を供給する。
画像処理部140は、A/D変換部103からのデジタル画像信号またはメモリ制御部105からのデータに対して、所定の画素補完処理や色変換処理を行い、画像データを生成する。また画像処理部140は、デジタル画像信号を用いて所定の演算処理を行う。画像処理部140は、被写体位置を判定し、被写体の色や形状に基づいて被写体を追尾する。また画像処理部140は、動きベクトル検出部141(動きベクトル検出手段)を有する。動きベクトル検出部141は、追尾した被写体の複数のフレームにわたる被写体位置に基づいて、第1の期間に動きベクトル(動きベクトル量)を検出する。被写体位置は、被写体の左上座標と高さと幅とで構成される。画像処理部140の演算結果は、メモリ制御部105を介してシステム制御部130に出力される。
メモリ制御部105は、A/D変換部103、タイミング発生部104、画像処理部140、メモリ107、記録部108、および、画像表示部106を制御する。A/D変換部103からの出力データは、画像処理部140およびメモリ制御部105を介して、メモリ107および記録部108に書き込まれる。メモリ107および記録部108は、撮影した静止画像や動画像を格納する。メモリ107は、揮発性メモリで構成され、システム制御部130の作業領域としても使用される。記録部108は、カメラ本体100の内部または外部に取り付けられた不揮発性メモリで構成される画像記録領域として使用される。
画像表示部106は、LCDなどを用いて構成され、EVFの場合、撮像した画像データを逐次表示し、EVF機能を実現する。また画像表示部106は、画像再生の際に、記録部108に記録された画像(撮影画像)を表示する。シャッタ制御部110は、システム制御部130からの制御信号に基づいて、ミラー制御部111と連携しながら、シャッタ101を制御する。ミラー制御部111は、システム制御部130からの制御信号に基づいて、ミラー112を制御する。
システム制御部130は、シャッタスイッチ115(SW1)、シャッタスイッチ116(SW2)、カメラ操作部117、および、メモリ制御部105などからの入力信号に従って、カメラ本体100を含むカメラシステム10の全体を制御する。すなわちシステム制御部130は、前述の各入力信号に従って、撮像素子102、メモリ制御部105、シャッタ制御部110、ミラー制御部111、および、I/F120を介して交換レンズ200などを制御する。
シャッタスイッチ115(SW1)は、AF処理、AE処理、および、AWB処理などの動作開始をシステム制御部130へ指示する。シャッタスイッチ116(SW2)は、露光開始をシステム制御部130へ指示する。露光開始指示を受けたシステム制御部130は、ミラー制御部111、シャッタ制御部110、メモリ制御部105、および、I/F120を介して交換レンズ200を制御して、撮像素子102の露光(記録部108に画像データを記録する処理)を開始する。本実施例では、交換レンズ200の制御として、露光の際に防振制御部209を駆動させる必要がある。このためシステム制御部130は、I/F120を介して、露光の開始タイミング情報を交換レンズ200へ通知する。露光の開始タイミング情報(露光タイミング)は、通信処理により通知することができ、または、専用のI/F120に設けられた端子を介して通知してもよい。
カメラ操作部117は、各種ボタン、タッチパネル、および、電源オンオフボタンなどからなり、撮影者の操作により受け付けた指示をシステム制御部130に出力する。カメラ操作部117を介した撮影者の操作に従って、システム制御部130は、カメラ本体100に搭載された各種機能の一つである、AFモード、AEモード、および、流し撮りアシストモードなどの各動作モードの切り替えを行う。カメラ電源制御部118は、カメラ本体100の外部電池や内蔵電池の管理を行う。電池が取り外された場合や電池残量がなくなった場合、カメラ電源制御部118は、カメラ本体100の制御の緊急遮断処理を行う。このとき、システム制御部130は、交換レンズ200に供給する電源を遮断する。
AF制御部131は、システム制御部130に設けられており、カメラ本体100のAF処理を司る。AF処理の際、AF制御部131は、AFモードに従い、I/F120を介して交換レンズ200から得られるフォーカス位置や焦点距離などのレンズ情報とAF評価値とに基づいて、フォーカスレンズ201の駆動量を演算する。フォーカスレンズ201の駆動量は、システム制御部130に設けられるレンズ通信制御部133、およびI/F120を介して、交換レンズ200に入力される。例えば位相差AFモードの場合、AF制御部131は、被写体の光学像をミラー112および不図示の焦点検出用サブミラーを介して不図示の合焦状態判定部に入射させて得られる位相差AF評価値などに基づいて、フォーカスレンズ201の駆動量を演算する。コントラストAFモードの場合、AF制御部131は、画像処理部140にて演算されるコントラストAF評価値に基づいて、フォーカスレンズ201の駆動量を演算する。撮像面位相差AFモードの場合、AF制御部131は、撮像素子102の画素(焦点検出のために用いられる画素)から出力された撮像面位相差AF評価値に基づいて、フォーカスレンズ201の駆動量を演算する。またAF制御部131は、1点AFモード、多点AFモード、および、顔検出AFモードなどのAF評価モードに従い、評価値を演算するためのAF枠の位置を切り替える。
AE制御部132は、システム制御部130に設けられており、カメラ本体100のAE処理を司る。AE処理の際、AE制御部132は、AEモードに従い、I/F120を介して交換レンズ200から得られる開放F値や焦点距離などのレンズ情報、およびAE評価値などに基づいて、AE制御量(絞り制御量、シャッタ制御量、露光感度など)を演算する。絞り制御量は、レンズ通信制御部133およびI/F120を介して交換レンズ200に入力される。シャッタ制御量は、シャッタ制御部110に入力される。露光感度は、撮像素子102に入力される。例えばファインダ撮影モードの場合、AE制御部132は、被写体の光学像をミラー112およびミラー113を介して不図示の明るさ判定部に入射させて得られるAE評価値に基づいて、AE制御量を演算する。ライブビュー撮影モードの場合、AE制御部132は、画像処理部140にて演算されるAE評価値に基づいてAE制御量を演算する。またAE制御部132は、評価測光モード、平均測光モード、および、顔検出測光モードなどの測光モードに従い、評価値を演算するAE枠位置および重み付け量を切り替える。
流し撮りアシスト制御部134(演算手段)は、システム制御部130に設けられており、カメラ本体100の流し撮りアシスト処理を司る。流し撮りアシスト機能は、ライブビュー撮影モードに設定され、かつ装着されている交換レンズ200が流し撮りアシストに対応している場合にのみ実行可能である。流し撮りアシスト機能が実行不可能な場合、流し撮りアシスト制御部134は、流し撮りアシストモードに従い、画像の流れ量のみを制御する。具体的には流し撮りアシスト制御部134は、交換レンズ200の角速度検出部208から得られる角速度情報(レンズ角速度情報)などに基づいて、露光中の振れ角が任意の量になるようにシャッタ制御量をAE制御部132へ通知し、画像の流れ量のみを制御する。なお角速度情報は、カメラ本体100に不図示の角速度検出部を搭載した場合、この角速度検出部から得ることもできる。
一方、流し撮りアシスト機能が実行可能な場合、流し撮りアシスト制御部134は、流し撮りアシストモードに従い、I/F120を介して交換レンズ200に流し撮りアシスト処理の実行可否を指示する。また、I/F120を介して交換レンズ200から得られる角速度情報や焦点距離などのレンズ情報、画像処理部140から入力される動きベクトル量などに基づいて、被写体角速度や被写体角加速度などの被写体の角速度情報を算出する。
また流し撮りアシスト制御部134は、交換レンズ200におけるレンズ角速度検出期間が動きベクトル検出期間と一致する(対応する)ように、フレームレートおよびシャッタ速度などに基づいて、レンズ角速度検出期間の設定値を演算する。被写体角速度情報およびレンズ角速度検出期間の設定値は、通信手段としてのレンズ通信制御部133およびI/F120を介して、交換レンズ200に送信される。本実施例において、カメラ本体100から交換レンズ200に送信される被写体角速度情報には、図10(A)を参照して後述するように、角速度検出部208が角速度を検出した時刻情報(角速度の検出時刻情報)を含む。
レンズ通信制御部133は、システム制御部130に設けられており、カメラ本体100と交換レンズ200との通信処理を司る。I/F120を介して交換レンズ200が装着されたことを検知すると、レンズ通信制御部133は、カメラ本体100と交換レンズ200は通信を開始し、適宜、レンズ情報を受信するとともに、カメラ情報や駆動命令などを送信する。例えば、ライブビュー撮影モードに設定され、かつ装着されている交換レンズ200が流し撮りアシストに対応している場合を考える。この場合にタイミング発生部104から撮像同期信号が入力されると、レンズ通信制御部133は、撮像同期信号から通信を開始するまでの通信開始遅延時間を通知するための同期信号通信を実施する。また、シャッタスイッチ116(SW2)による露光が終了した場合、レンズ通信制御部133は、流し撮りアシスト結果情報を交換レンズ200から受信する。ライブビュー撮影モードの場合、タイミング発生部104から撮像同期信号が入力されると、レンズ通信制御部133は、レンズ情報(フォーカスレンズ位置、フォーカスレンズ状態、絞り状態、焦点距離など)をまとめて受信する。
I/F120は、カメラ本体100と交換レンズ200との間の通信のインタフェースである。I/F120は、コネクタ20を介して、カメラ本体100のシステム制御部130とレンズ制御部210との間で電気信号を用いて通信を実施することにより、レンズ情報や制御命令などを送受信する。
次に、交換レンズ200の構成について説明する。フォーカスレンズ201は、光軸OAに沿った方向(光軸方向)に移動して撮像光学系のピント(焦点状態)を変化させる。フォーカス制御部205は、レンズ制御部210により制御され、フォーカスレンズ201を駆動する。またフォーカス制御部205は、フォーカスレンズ201の位置などのフォーカス情報をレンズ制御部210へ出力する。
ズーム制御ユニット202は、光軸方向に移動して撮像光学系の焦点距離を変化させる。ズーム制御部206は、レンズ制御部210により制御され、ズーム制御ユニット202を駆動する。またズーム制御部206は、焦点距離などのズーム情報をレンズ制御部210へ出力する。絞り203は、その開口径(絞り値)が可変であり,開口径に応じて光量を変化させる。絞り制御部207は、レンズ制御部210により制御され、絞り203を駆動する。また絞り制御部207は、絞り値(F値)などの絞り情報をレンズ制御部210へ出力する。
防振制御レンズ204は、光軸OAに直交する方向(光軸直交方向)に移動することにより、手振れなどによるカメラ振れに起因する像ブレを低減する。防振制御部209は、レンズ制御部210により制御され、防振制御レンズ204を駆動する。また防振制御部209は、防振可能範囲などの防振情報をレンズ制御部210へと出力する。
角速度検出部208(角速度検出手段)は、交換レンズ200の角速度(Yaw方向およびPitch方向の速度)を検出し、レンズ制御部210へ出力する。角速度検出部208は、レンズ制御部210により制御される。なお、角速度検出部をカメラ本体100に設けることもできる。本実施例において、レンズ制御部210は、角速度検出部208が角速度を検出した時刻情報(角速度の検出時刻情報)を取得する。
レンズ操作部211は、フォーカスリング、ズームレンズ、AF/MFスイッチ、および、ISオンオフスイッチなどからなり、撮影者の操作により受け付けた指示をレンズ制御部210に出力する。レンズ操作部211を介した撮影者の操作に従って、システム制御部130は、交換レンズ200に搭載された各種機能についての動作モードを切り替える。メモリ212は、揮発性メモリで構成されている。
レンズ制御部210は、レンズ操作部211またはI/F220からの入力信号に従って、フォーカス制御部205、ズーム制御部206、絞り制御部207、防振制御部209、および、角速度検出部208などを制御する。これによりレンズ制御部210は、交換レンズ200の全体を制御する。またレンズ制御部210は、各制御部や検出部などから入力された情報を、I/F220を介して受信したレンズ情報取得命令に応答して、I/F220を介してカメラ本体100へ送信する。本実施例において、レンズ制御部210は、カメラ本体100から通信により入力された撮像同期信号情報およびレンズ角速度検出期間の設定値に基づいて、角速度検出部208を動作させる(制御する)。レンズ制御部210は、角速度検出部208から取得した角速度情報および角速度の検出時刻情報を、I/F220を介してカメラ本体100へ送信する。
I/F220は、カメラ本体100と交換レンズ200との間の通信のためのインタフェース(通信手段)である。I/F220は、コネクタ20を介して、カメラ本体100のシステム制御部130とレンズ制御部210との間で電気信号を用いて通信を実施することにより、レンズ情報や制御命令などを送受信する。
次に、図2を参照して、本実施例におけるカメラ本体100の撮像同期通信処理について説明する。図2は、カメラ本体100の撮像同期通信処理のフローチャートであり、カメラ本体100がライブビュー撮影モードであって、かつ装着されている交換レンズ200が流し撮りアシストに対応している場合におけるカメラ本体100の動作を示している。撮像同期通信処理は、ライブビュー撮影モードの際に開始される処理であり、レンズ制御部210が撮像同期信号のタイミングで交換レンズ200と通信をするための処理である。
まずステップS201において、システム制御部130は、ライブビュー撮影が継続中であるか否かを判定する。ライブビュー撮影が継続中の場合、ステップS202へ進む。一方、ライブビュー撮影が継続していない場合、本フローの撮像同期通信処理を終了する。
ステップS202において、システム制御部130は、撮像同期信号が入力されたか否かを判定する。撮像同期信号が入力された場合、ステップS203へ進む。一方、撮像同期信号が入力されていない場合、ステップS201へ戻る。ステップS203において、システム制御部130は、撮像同期信号が入力された時刻を、撮像同期信号時刻としてシステム制御部130の内部メモリ(不図示)またはメモリ107などに記憶する。続いてステップS204において、システム制御部130は、未処理のレンズ通信が残っているか否かを判定する。未処理のレンズ通信が残っている場合、ステップS205へ進む。一方、未処理のレンズ通信が残っていない場合、ステップS206へ進む。ステップS205において、システム制御部130は、未処理のレンズ通信を完了させ、ステップS206へ進む。
ステップS206において、システム制御部130は、同期信号通信を実施するか否かを判定する。交換レンズ200が流し撮りアシストに対応しており、かつ、流し撮りアシストモードが有効である場合、システム制御部130は同期信号通信を実施すると判定し、ステップS207へ進む。一方、システム制御部130が同期信号通信を実施しないと判定した場合、ステップS201へ戻る。
ステップS207において、システム制御部130は、撮像同期信号時刻からの経過時間を測定し、この経過時間を遅延時間(同期信号通信遅延時間)として内部メモリまたはメモリ107に記憶する。続いてステップS208において、システム制御部130は、I/F120を介して交換レンズ200へ同期信号通信を実施する。同期信号通信の送信データには、同期信号遅延時間が含まれる。続いてステップS209において、システム制御部130は、I/F120を介して交換レンズ200へレンズ角速度検出期間の設定値通信を実施し、ステップS201へ戻る。この通信の送信データとして、システム制御部130は、動きベクトル検出期間(カメラ本体100が動きベクトルを検出する期間)と交換レンズ200による角速度検出期間とを同期させるためのタイミング情報として、レンズ角速度検出期間の設定値を送信する。
以上の処理を実施することより、カメラ本体100から交換レンズ200へ撮像同期信号を通知することができるとともに、レンズ角速度検出期間を設定することが可能となる。
次に、図3を参照して、カメラ本体100の露光設定処理について説明する。図3は、カメラ本体100の露光設定処理のフローチャートであり、カメラ本体100がライブビュー撮影モードであって、かつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、カメラ本体100の露光設定処理の動作を示している。露光設定処理は、ライブビュー撮影モードの際にフレームごとに実施される処理であり、次フレームの露光制御をするための処理である。
まずステップS301において、システム制御部130は、ライブビュー撮影が継続中であるか否かを判定する。ライブビュー撮影が継続中の場合、ステップS302へ進む。一方、ライブビュー撮影が継続中でない場合、本フローの露光設定処理を終了する。
ステップS302において、システム制御部130は、次フレームの撮像素子102の露光設定タイミングか否かを判定する。露光設定タイミングである場合、ステップS303へ進む。一方、露光設定タイミングでない場合、ステップS301へ戻る。
ステップS303において、システム制御部130は、AE制御量やカメラモードなどに基づいて露光設定値を算出する。またシステム制御部130は、メモリ制御部105に露光設定値を出力することにより、次フレームの露光制御を行う。続いてステップS304において、流し撮りアシスト制御部134は、流し撮りアシスト処理を実施するか否かを判定する。交換レンズ200が流し撮りアシストに対応しており、かつ、流し撮りアシストモードが有効である場合、流し撮りアシスト制御部134は、流し撮りアシスト処理を実施すると判定し、ステップS305へ進む。一方、流し撮りアシスト制御部134が流し撮りアシスト処理を実施しないと判定した場合、ステップS301へ戻る。
ステップS305において、流し撮りアシスト制御部134は、次フレームの露光設定などに基づいて、動きベクトル検出期間と角速度の検出期間とが一致する(対応する)ように、レンズ角速度検出期間の設定値を、撮像同期信号からの相対時間として算出する。算出された角速度検出期間の設定値は、前述のステップS209にて交換レンズ200へ送信される。
続いてステップS306において、流し撮りアシスト制御部134は、カメラ本体100から交換レンズ200へ送信したレンズ角速度検出期間の設定値に基づき、角速度検出部208が検出した角速度および角速度の検出時刻情報を交換レンズ200から取得する。ただし、図10(A)に示されるように、ステップS306にて取得する角速度情報は、前回のフレームにおける動きベクトル検出期間と一致(対応)させた角速度検出期間における角速度情報である。流し撮りアシスト制御部134は、角速度情報(レンズ角速度)と角速度の検出時刻情報(レンズ角速度検出時刻)とを互いに関連付けて交換レンズ200から受信(取得)する。例えば表1に示される通信コマンドのように、流し撮りアシスト制御部134(レンズ通信制御部133、I/F120)は、レンズ角速度とレンズ角速度検出時刻とを同一の通信パケットで受信(取得)する。換言すると、レンズ制御部210(I/F220)は、レンズ角速度とレンズ角速度検出時刻とを同一の通信パケットで送信する。
続いてステップS307において、流し撮りアシスト制御部134は、被写体の角速度情報(被写体角速度や被写体角加速度を含む)を算出する。被写体の角速度情報は、ステップS306にて交換レンズ200から取得した角速度情報、角速度の検出時刻情報や焦点距離などのレンズ情報、および、画像処理部140から入力される動きベクトル量などに基づいて算出される。また流し撮りアシスト制御部134は、算出した被写体の角速度情報をレンズ通信制御部133へ出力する。
続いてステップS308において、レンズ通信制御部133は、被写体の角速度情報を交換レンズ200へ送信するため、被写体角速度通信を実施する。本実施例において、流し撮りアシスト制御部134(レンズ通信制御部133)は、被写体の角速度情報に、ステップS306にて交換レンズ200から取得した角速度情報の取得時刻を関連付けて、交換レンズ200へ送信する。このとき流し撮りアシスト制御部134は、被写体の角速度情報(被写体角速度)と角速度の検出時刻情報(レンズ角速度検出時刻)とを互いに関連付けて交換レンズ200へ送信する。例えば表2に示される通信コマンドのように、流し撮りアシスト制御部134は、被写体角速度とレンズ角速度検出時刻とを同一の通信パケットで送信する。換言すると、レンズ制御部210(I/F220)は、被写体角速度とレンズ角速度検出時刻とを同一の通信パケットで受信(取得)する。
ステップS308の被写体角速度通信が完了すると、ステップS301へ戻る。
以上の処理を実施することより、次フレームの露光制御を行うとともに、次の撮像同期信号で交換レンズ200へ通知するレンズ角速度検出期間を設定することが可能である。また、交換レンズ200へ被写体角速度を通知でき、交換レンズ200から角速度情報を取得することができる。
次に、図4を参照して、カメラ本体100の露光処理について説明する。図4は、カメラ本体100の露光処理のフローチャートである。図4は、ライブビュー撮影モードであって、かつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、カメラ本体100のライブビュー露光処理の動作を示している。ライブビュー露光処理は、ライブビュー撮影モードの際に、シャッタスイッチ116(SW2)を介した露光開始指示(撮影開始指示)により開始される処理である。
まずステップS401において、システム制御部130は、レンズ通信制御部133を介して、交換レンズ200に対して露光開始タイミング(撮影開始タイミング)であることを通信により通知する。続いてステップS402において、システム制御部130は、シャッタ制御部110および撮像素子102を制御して露光処理を実施し、画像データを取得する。画像データは、画像処理部140およびメモリ制御部105を介してメモリ107に保持される。
続いてステップS403において、レンズ通信制御部133は、流し撮りアシスト処理を実施するか否かを判定する。交換レンズ200が流し撮りアシストに対応しており、かつ、流し撮りアシストモードが有効である場合、レンズ通信制御部133は、流し撮りアシスト処理を実施すると判定し、ステップS404へ進む。一方、流し撮りアシスト処理を実施しない場合、ステップS405へ進む。
ステップS404において、レンズ通信制御部133は、交換レンズ200から流し撮りアシスト結果情報を受信する通信を実施する。ステップS405において、システム制御部130は、画像ファイルに付加されるEXIF情報を作成する。EXIF情報は、メモリ制御部105を介してメモリ107に記録される。本実施例において、EXIF情報は、レンズ情報、シャッタスピード、および、絞り値などの撮影条件(カメラモード)などと共に、ステップS404にて受信した流し撮りアシスト結果情報を含む。
続いてステップS406において、システム制御部130は、画像処理部140を制御して、画像データとEXIF情報から画像ファイルを作成する。またシステム制御部130は、メモリ制御部105を介してメモリ107に画像データを保持した後、画像データを記録部108に記録する。
以上の処理を実施することより、露光の際に施された流し撮りアシストの結果を交換レンズ200から取得できるとともに、取得した画像データに流し撮りアシスト結果を記録し、または画像表示部106に表示することが可能となる。
また、カメラ本体100から交換レンズ200へレンズ角速度検出期間の設定値を送信することにより、カメラ本体100の動きベクトル検出期間とレンズの角速度検出期間とのタイミングを合わせることができる。また、交換レンズ200が検出する角速度情報とこの角速度情報の検出時刻とを紐づけて(関連付けて)カメラ本体100へ送信する。また、角速度情報と動きベクトル検出情報とに基づいて算出した被写体の角速度情報に角速度情報(交換レンズ200が検出する角速度)の検出時刻を紐づけて(関連付けて)、交換レンズ200へ送信する。これにより、後述するライブビューレリーズ露光処理の際に、露光時の被写体の移動量を正しく補正するように防振制御部209を制御することが可能となる。すなわち、カメラ本体100への角速度情報の送信、および、カメラ本体100から被写体の角速度情報の送信処理が完了していない状況でライブビューレリーズ露光処理の要求が発生した場合でも、正しい補正が可能となる。また、想定したタイミングで流し撮りアシスト用の通信が完了していない状況でライブビューレリーズ露光処理の要求が発生した場合でも、正しい補正が可能となる。
次に、図5を参照して、交換レンズ200による同期信号通信の受信処理について説明する。図5は、交換レンズ200の同期信号通信の受信処理のフローチャートである。図5は、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、交換レンズ200がカメラ本体100から同期信号通信を受信した際に開始される処理を示している。
まずステップS501において、レンズ制御部210は、交換レンズ200内での時間管理に使用されるフリーランタイマの現在時刻を記憶することにより、通信が実施された時刻を記憶する。この時刻は、レンズ制御部210の内部メモリ(不図示)またはメモリ212に記憶される。
続いてステップS502において、レンズ制御部210は、予め決められた同期信号通信の通信データ長だけ通信されたか否か(全データの送受信が完了したか否か)を判定する。全データの通信(送受信)が完了していない場合、全データの通信が完了するまでステップS502を繰り返す。一方、全データの通信が完了した場合、ステップS503へ進む。ステップS503において、レンズ制御部210は、ステップS501にて記憶された時刻(通信が実施された時刻)から、同期信号通信の受信データに含まれる遅延時間(同期信号遅延時間)を差し引く。これにより、カメラ本体100内の撮像同期信号タイミングと一致したレンズ内撮像同期信号の時刻を演算(設定)することができる。
以上の処理を実施することより、交換レンズ200は、カメラ本体100内の撮像同期信号タイミングと一致したレンズ内撮像同期信号時刻を知ることができる。
次に、図6を参照して、交換レンズ200によるレンズ角速度検出期間の設定値通信の受信処理について説明する。図6は、交換レンズ200によるレンズ角速度検出期間の設定値通信の受信処理のフローチャートである。図6は、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、交換レンズ200がカメラ本体100からのレンズ角速度検出期間の設定値通信を受信したときに開始される処理を示している。
まずステップS601において、レンズ制御部210は、予め決められたレンズ角速度検出期間の設定値通信の通信データ長だけ通信されたか否か(全データの送受信が完了したか否か)を判定する。全データの通信(送受信)が完了していない場合、全データの通信が完了するまでステップS601を繰り返す。一方、全データの通信が完了した場合、ステップS602へ進む。
ステップS602において、レンズ制御部210は、レンズ角速度検出期間の設定値通信の受信データに含まれるレンズ角速度検出期間および、前述のステップS503にて算出されたレンズ内撮像同期信号の時刻に基づいて、レンズ角速度検出期間を設定する。すなわちレンズ制御部210は、レンズ内撮像同期信号の時刻を起点として、レンズ角速度検出期間(角速度検出部208が角速度を検出する期間)の時間が経過したタイミングで、角速度検出部208からレンズ角速度検出期間における角速度を取得する。
続いてステップS603において、レンズ制御部210は、角速度検出部208が角速度を検出した際の時刻情報(レンズ角速度検出時刻)を記憶する。レンズ角速度検出時刻は、例えば、レンズ制御部210の内部メモリ(不図示)またはメモリ212に記憶される。より具体的には、レンズ制御部210は、交換レンズ200内における時間管理に使用するフリーランタイマの現在時刻を記憶する。記憶される時刻(時刻情報)は、カメラ本体100から送信されたレンズ角速度検出期間の設定値で指示される期間の中心時刻であることが好ましい。ただし本実施例は、これに限定されるものではなく、レンズ角速度検出期間の設定値で指示される期間の開始時刻または終了時刻であってもよい。
以上の処理を実施することより、交換レンズ200は、カメラ本体100内の動きベクトル検出期間と一致したレンズ角速度検出期間を設定することができる。
次に、図7を参照して、交換レンズ200による被写体角速度通信の受信処理について説明する。図7は、交換レンズ200による被写体角速度通信の受信処理のフローチャートである。図7は、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、交換レンズ200がカメラ本体100から被写体角速度通信を受信したときに開始される処理を示している。
まずステップS701において、レンズ制御部210は、ステップS602にて記憶された角速度情報(レンズ角速度)、および、ステップS603にて記憶された角速度の検出時刻情報(レンズ角速度検出時刻)をカメラ本体100に送信する。このためレンズ制御部210は、これらの情報(データ)を送信バッファに格納する。
続いてステップS702において、レンズ制御部210は、予め決められた被写体角速度通信の通信データ長だけ通信されたか否か(全データの送受信が完了したか否か)を判定する。全データの送受信(通信)が完了していない場合、全データの通信が完了するまでステップS702を繰り返す。一方、全データの通信が完了した場合、ステップS703へ進む。
ステップS703において、レンズ制御部210は、ステップS701にて準備した角速度情報および角速度の検出時刻情報をカメラ本体100へ送信する。続いてステップS704において、レンズ制御部210は、カメラ本体100からライブビューレリーズ露光処理の要求が通信された場合に備えて、被写体の角速度情報および角速度の検出時刻情報を流し撮りアシスト制御部134に記憶させる。なお、図10(A)を参照して後述するように、ステップS703にてカメラ本体100から受信するレンズ角速度検出時刻は、交換レンズ200がステップS603にて記憶された、角速度情報と関連付けてカメラ本体100に送信した角速度の検出時刻情報である。
このように、交換レンズ200が角速度情報を検出する時刻をカメラ本体100へ送信し、再度、交換レンズ200へ送信する仕組みとしているのは、以下の理由のためである。すなわち、交換レンズ200からカメラ本体100へ角速度情報を送信し、カメラ本体100から交換レンズ200へ被写体角速度情報を送信するという一連の通信処理と、ライブビューレリーズ露光処理は同期していない。このため、一連の通信処理が未完了の状態であってもライブビューレリーズ露光処理の際の流し撮りアシスト動作を実現しなければならない。本実施例の構成によれば、被写体の露光時の移動量を防振制御部209で補正するように駆動させるための駆動量を算出するときの被写体角速度情報と、予測基点時刻となるレンズ角速度検出時刻とのずれが生じないことを保証することができる。なお、被写体角速度情報と予測基点時刻となるレンズ角速度検出時刻とがずれる可能性があるイレギュラーなケースについては、後述のタイムチャートにて説明する。
本実施例では、交換レンズ200からカメラ本体100へ送信するレンズ角速度情報通信と、カメラ本体100から交換レンズ200への被写体角速度情報とをそれぞれ別の通信処理として説明したが、これに限定されるものではない。本実施例は、全二重通信としてデータフォーマットを規定し、一つの通信処理で実施してもよい。
以上の処理を実施することより、交換レンズ200は、カメラ本体100の動きベクトル検出期間と一致したレンズ角速度検出期間を設定することができるとともに、カメラ本体100から被写体角速度情報を取得することができる。
次に、図8を参照して、交換レンズ200による露光開始タイミング通信の受信処理について説明する。図8は、交換レンズ200による露光開始タイミング通信の受信処理のフローチャートである。図8は、本実施例において、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、交換レンズ200がカメラ本体100から露光開始タイミング通信を受信したときに実施される処理を示している。
まずステップS801において、レンズ制御部210は、流し撮りアシスト処理を実施すべき露光であるか否かを判定する。例えば、ステップS602にて書き込むメモリ212の領域を参照して判定を行う。流し撮りアシスト処理を実施する場合、ステップS802へ進む。一方、流し撮りアシスト処理を実施しない場合、ステップS804へ進む。
ステップS802において、レンズ制御部210(演算手段)は、ステップS703にて記憶された被写体角速度情報および角速度の検出時刻情報と、現在時刻(露光開始タイミング時刻)とに基づいて、現在時刻での被写体角速度を予測する。すなわちレンズ制御部210は、被写体の予測角速度を算出する。現在時刻をT、現在時刻Tでの被写体角速度をVとするとき、レンズ制御部210は、以下の式(1)で表されるように予測演算を行う。
式(1)において、vは、交換レンズ200がステップS703にてカメラ本体100に送信し、カメラ本体100がステップS306にて取得する被写体角速度(被写体角速度情報)である。aは、カメラ本体100がステップS306にて取得する被写体角加速度(被写体角加速度情報)である。tは、カメラ本体100がステップS306にて取得する角速度情報取得時刻(レンズ角速度情報取得時刻)である。ただし、予測演算は式(1)に限定されるものではなく、他の式や手法を用いてもよい。
続いてステップS803において、レンズ制御部210は、現時刻での被写体角速度Vを用いて防振制御部209を制御し、流し撮りアシスト処理を実行する。例えば、レンズ制御部210は、角速度検出部208から防振量g(パンニング量)を取得し、以下の式(2)を用いて流し撮りアシスト防振量Gを算出する。
ただし、流し撮りアシスト防振量Gの演算方法はこれに限定されるものではない。露光の際に流し撮りアシスト防振量を打ち消すように防振制御レンズ204を制御することにより、移動している被写体を静止することが可能となる。
ステップS804において、レンズ制御部210は、角速度検出部208からの防振量のみを用いて防振処理(防振制御)を行うことにより、通常の手振れ補正が実施される。
以上の処理を実施することより、交換レンズ200は、露光の際に施された流し撮りアシスト結果をカメラ本体100へ送信できるとともに、カメラ本体100は、取得した画像データに流し撮りアシスト結果を記録することができる。
次に、図9を参照して、交換レンズ200による流し撮りアシスト結果通信の受信処理について説明する。図9は、交換レンズ200による流し撮りアシスト結果通信の受信処理のフローチャートである。図9は、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、交換レンズ200がカメラ本体100から流し撮りアシスト結果通信を受信したときに開始される処理を示している。
まずステップS901において、レンズ制御部210は、ステップS802にて予測演算した被写体角速度などを、流し撮りアシスト結果としてカメラ本体100に送信するため、流し撮りアシスト結果を送信バッファに準備(保持)する。続いてステップS902において、レンズ制御部210は、予め決められた流し撮りアシスト結果通信の通信データ長だけ通信されたか否か(全データの送受信が完了したか否か)を判定する。全データの通信(送受信)が完了していない場合、前データの通信が完了するまでステップS902を繰り返す。一方、全データの通信が完了した場合、本フローの受信処理を終了する。
以上の処理を実施することより、交換レンズ200は、レンズ角速度検出時刻を取得した時刻から露光開始までの経過時間を加味した被写体角速度を得られ、より高精度の流し撮りアシストを施すことができる。
次に、図10(A)を参照して、カメラシステム10(カメラ本体100および交換レンズ200)による流し撮りアシスト処理について説明する。図10(A)は、カメラシステム10による流し撮りアシスト処理のタイミングチャートである。図10(A)は、ライブビュー撮影モードかつ装着されている交換レンズ200が流し撮りアシストに対応している場合の、流し撮りアシストモード中のカメラシステム10の処理タイミングを示している。
撮像同期信号1001は、タイミング発生部104が出力する同期信号である。撮像蓄積1002は、撮像素子102の蓄積期間であり、撮像同期信号1001を受けて画面上部から順に読み出しを開始する。同期信号通信1003は、図2のステップS208にて実施される同期信号通信のタイミングである。レンズ角速度検出期間の設定値通信1004は、図2のステップS209にて実施されるレンズ角速度検出期間の設定値通信のタイミングである。
レンズ角速度通信1005は、図7のステップS703にて実施されるレンズ角速度通信のタイミングである。被写体角速度通信1006は、図7のステップS704にて実施される被写体角速度通信のタイミングである。露光タイミング通信1007は、図4のステップS401にて実施される露光開始通信のタイミングである。レンズ角速度検出期間1008は、図6のステップS602にて設定されるレンズ角速度検出期間である。レンズ角速度検出期間が完了すると、その期間に相当するレンズ角速度を演算し、レンズ角速度情報とレンズ角速度情報の取得時刻とを紐づけて(関連付けて)記憶する。
角速度出力1009は、角速度検出部208からの出力である。レンズ制御部210は、レンズ角速度検出期間1008の間、角速度出力1009をサンプリングする。流し撮りアシスト露光時の被写体移動補正量予測1010は、図8のステップS802にて実施される、露光時の被写体移動量を補正するための防振制御部209の駆動量を予測式により算出する処理での基点時刻(すなわちレンズ角速度情報取得時間t)を示す。流し撮りアシスト補正処理1011は、図8のステップS803にて実施される、防振制御部209の制御期間を示す。
以下、ライブビューレリーズ露光処理における流し撮りアシスト処理を実現するための基本的なシーケンスについて説明する。例えば、撮像同期信号1012を受けて同期信号通信1013が実施され、レンズ制御部210は撮像同期信号1012と一致したレンズ内撮像同期信号時刻を演算する。その後、レンズ角速度検出期間の設定値通信1014が実施される。これにより、カメラ本体100の動きベクトル検出期間1016の開始タイミングおよび動きベクトル検出期間に相当する時間情報として、レンズ角速度検出期間の設定値1015を交換レンズ200へ送信する。これにより、レンズ制御部210は、レンズ角速度検出期間1017を設定する。このときレンズ制御部210は、レンズ角速度検出期間1017の重心の時刻となる時刻情報を、レンズ角速度検出時刻として記憶する。レンズ角速度検出期間1017が完了して得られたレンズ角速度情報およびレンズ角速度検出時刻は、レンズ角速度通信1018によりカメラ本体100に通知される。
レンズ角速度情報をカメラ本体100が受信すると、動きベクトル検出期間1016にて検出した動きベクトル情報と、カメラ本体100は、交換レンズ200から受信したレンズ角速度情報とに基づいて被写体角速度情報を生成する。ここで生成された被写体角速度情報は、被写体角速度通信1019によりカメラ本体100に通知される。撮影者からのライブビューレリーズ露光処理要求が発生しない限り、以上の処理を繰り返すことにより、カメラ本体100は交換レンズ200に正確な被写体角速度情報を送信し続ける。
続いて、ライブビューレリーズ露光処理要求1020のタイミングで、撮影者がシャッタスイッチ116を押下した場合のライブビューレリーズ露光処理について説明する。1021は静止画撮影のためのライブビューレリーズ露光処理を示している。カメラ本体100は、ライブビューレリーズ露光処理1021が開始されるよりも所定時間1022前のタイミングにて露光タイミング通信1023を実施する。これによりカメラ本体100は、静止画撮影のためのライブビューレリーズ露光処理の開始タイミングを交換レンズ200へ送信する。なお本実施例では、通信処理にて露光タイミングを通知しているが、タイミングの通知方法は通信によらなくてもよい。
流し撮りアシスト制御部134は、露光タイミング通信1007を受信すると、ライブビューレリーズ露光処理中の被写体の移動量、すなわち露光時に防振制御部209を駆動させる補正量を、期間1024中に演算する。このとき使用する演算式は、図8のステップS802を参照して説明した式(1)である。式(1)において、現在位置Tは露光開始タイミング時刻に相当し、露光タイミング通信1007の受信時刻に対して露光開始までの所定時間1022を加算した時刻である。また、vは、レンズ角速度検出期間1017に得られたレンズ角速度情報である。aは、被写体角速度通信1019により交換レンズ200に通知される被写体角速度である。tは、レンズ角速度情報取得時刻1025である。すなわち、破線1026で示される期間にて被写体が動作している量を補正するように、防振制御部209を、ライブビューレリーズ露光処理期間1027に駆動させる。ここで説明したライブビューレリーズ露光処理の際の流し撮り補正量の算出方法については、図11を参照して後述する。
以上のように流し撮りアシスト機能を実現するには、交換レンズ200の角速度検出情報とカメラ本体100の動きベクトル検出情報とに基づいて被写体角速度情報を生成し、さらに被写体角速度情報を交換レンズ200に送信する。これにより、ライブビューレリーズ露光処理要求1020が発生した場合に、露光時までに被写体が動いた補正量を演算することが可能となる。
図10(A)では、カメラ本体100と交換レンズ200との間の一連の情報交換が完了したタイミングで、ライブビューレリーズ露光処理要求1020が発生した場合を示している。次に、図10(B)を参照して、カメラ本体100と交換レンズ200との間の一連の情報交換が完了していない例として、カメラ本体100から交換レンズ200への被写体角速度情報の送信前にライブビューレリーズ露光処理要求が発生した場合を説明する。
図10(B)において、1001〜1018の説明は図10(A)中の1001〜1008とそれぞれ同様であり、レンズ角速度情報およびレンズ角速度検出時刻は、レンズ角速度通信1018によりカメラ本体100に通知される。
動きベクトル検出期間1016に検出した動きベクトル情報とレンズ角速度検出期間1017に検出した角速度情報に基づいて、カメラ本体100は、被写体角速度情報を交換レンズ200へ送信する。図10(B)においては、被写体角速度情報の通信の前に、ライブビューレリーズ露光処理要求1020が発生している。この場合、1つ前の撮像同期信号における情報により、ライブビューレリーズ露光処理要求1020の際の流し撮りアシスト処理が行われる。すなわち、交換レンズ200は、破線で示されるレンズ角速度検出期間1029に検出された角速度情報に基づいて、レンズ角速度情報およびレンズ角速度検出時刻をレンズ角速度通信1030によりカメラ本体100に通知する。カメラ本体100は、破線で示される動きベクトル検出期間1028に検出された動きベクトル情報と、破線で示されるレンズ角速度検出期間1029に検出された角速度情報とに基づいて被写体角速度情報を生成する。そしてカメラ本体100は、生成した被写体角速度情報を被写体角速度通信1031により交換レンズ200に通知する。このとき、被写体角速度通信1031にはレンズ角速度検出時刻1032が格納されている。このため、流し撮りアシスト制御部134は、各撮像同期信号処理で行うレンズ角速度情報取得時間を記憶している必要はない。すなわち流し撮りアシスト制御部134は、被写体角速度通信1031で受信する情報のみで、式(1)によるライブビューレリーズ露光処理における防振制御部209の駆動量を算出することが可能となる。
図10(A)では、カメラ本体100と交換レンズ200との間の一連の情報交換が所定の撮像同期信号期間内に完了する場合について説明した。しかし、カメラ本体100と交換レンズ200との間では、流し撮りアシスト用の通信の他にもAFまたはAEなどの通信処理が行われる。このため、流し撮りアシスト以外の通信を実施することにより、通信帯域を確保することができず、例えばレンズ角速度通信1018または被写体角速度通信1019を所定の撮像同期信号期間内に実施できずに次の撮像同期信号期間にずれ込む可能性がある。以下、このような場合について、図10(C)を参照して説明する。
図10(C)は、被写体角速度通信1033が所定の撮像同期信号期間に実施できず、次の撮像同期信号期間にて処理されることを示している。図10(C)では、被写体角速度通信1033が処理される前に、ライブビューレリーズ露光処理要求1020が発生している。この場合、ライブビューレリーズ露光処理に移行するため、斜線で示される被写体角速度通信1033は実施されない。従って、1つ前の撮像同期信号における情報に基づいて、ライブビューレリーズ露光処理要求1020による流し撮りアシスト処理が行われる。すなわち、交換レンズ200は、破線で示されるレンズ角速度検出期間1029に検出された角速度情報に基づいて、レンズ角速度情報およびレンズ角速度検出時刻をレンズ角速度通信1030によりカメラ本体100に通知する。カメラ本体100は、破線で示される動きベクトル検出期間1028に検出された動きベクトル情報と、破線で示されるレンズ角速度検出期間1029に検出された角速度情報とに基づいて被写体角速度情報を生成する。そしてカメラ本体100は、生成した被写体角速度情報を被写体角速度通信1031により交換レンズ200に通知する。このとき、被写体角速度通信1031にはレンズ角速度検出時刻1032が格納されている。このため、流し撮りアシスト制御部134は、各撮像同期信号処理で行うレンズ角速度情報取得時間を記憶している必要はない。すなわち流し撮りアシスト制御部134は、被写体角速度通信1031で受信する情報のみで、式(1)によるライブビューレリーズ露光処理における防振制御部209の駆動量を算出することが可能となる。
なお本実施例において、レンズ角速度通信1005と被写体角速度通信1006とを互いに別の通信として表現しているが、全二重通信のフォーマットで規定して一つの通信処理として統合してもよい。
次に、図11を参照して、露光の際における防振制御部209の駆動量の算出方法について説明する。図11は、露光の際における防振制御部209の駆動量の算出方法の説明図である。図11において、縦軸は被写体角速度、横軸は時刻(時間経過)をそれぞれ示している。
ポイント1101は、流し撮りアシスト補正量を算出するための起点となるレンズ角速度検出時の情報である。tはレンズ角速度検出時刻である。vはレンズ角速度検出期間およびレンズ角速度検出期間と同じタイミングで実施されるカメラ本体100の動きベクトル情報とに基づいて生成される被写体角速度情報である。レンズ角速度検出時刻tは、図10(A)の場合においてはレンズ角速度検出期間1017の重心の時刻であり、図10(B)、図10(C)のそれぞれの場合においてはレンズ角速度検出期間1029の重心の時刻である。被写体角速度情報vは、図10(A)の場合においては被写体角速度通信1019にてレンズに送信される情報、図10(B)、図10(C)のそれぞれの場合においては被写体角速度通信1031により交換レンズ200に送信される情報である。ポイント1101の被写体角速度情報には、被写体の角加速度情報aが含まれており、予測式(式(1))を用いてポイント1102のライブビューレリーズ露光処理の際の被写体角速度Vを線形式にて予測する。
本実施例において、交換レンズは、レンズ角速度検出情報とともにレンズ角速度検出時刻をカメラ本体へ送信する。そしてカメラ本体は、交換レンズから受信したレンズ角速度情報と動きベクトル情報とに基づいて被写体角速度情報を生成し、被写体角速度情報とレンズ角速度検出時刻とを交換レンズに送信する。このような構成により、撮影者が任意のタイミングで操作するライブビューレリーズ露光処理の際に被写体の移動量を適切に予測し防振制御部を用いて補正することが可能な、流し撮りアシスト機能を搭載したレンズ交換式カメラシステムの実現が可能になる。