図1には、実施例1のレンズ交換型カメラシステム(撮像システム)の構成を示している。図1において、レンズユニット(交換レンズ)L100は、カメラ本体(ビデオカメラ本体、撮像装置)C100に対して着脱可能に構成され、カメラ本体C100はレンズユニットL100を装着可能である。
被写体からの光は、レンズユニットL100内の撮影光学系L101〜L105を通って、後述するカメラ本体C100内の撮像素子C101に被写体像を形成する。図1のレンズユニットL100において、第1固定レンズL101と第2固定レンズL104は、レンズユニットL100内で固定されているレンズである。変倍レンズL102は、レンズユニットL100の光軸方向に移動して変倍を行うレンズである。絞りL103は、撮像素子C101に入射する光量の調節を行うものである。フォーカスレンズL105は、変倍に伴う像面変動を補正する機能とフォーカス機能とを兼ね備えたレンズである。図1に示すように、本実施例の撮影光学系は、被写体側から順に、第1固定レンズL101、変倍レンズL102、絞りL103、第2固定レンズL104、フォーカスレンズL105を有する。図1に示す本実施例の撮影光学系の構成は単なる一例であり、これに限定されない。なお、図中には、各レンズ群が1枚のレンズにより構成されているように記載されているが、実際には、1枚のレンズにより構成されていてもよいし、複数枚のレンズにより構成されていてもよい。
一方、図1のカメラ本体C100において、撮像素子C101は、CCDセンサやCMOSセンサにより構成される光電変換素子であり、被写体像を光電変換してアナログ信号(撮像信号)を出力する。なお、撮像素子C101を、赤(R)、緑(G)、青(B)の3原色のそれぞれに対して1つずつ設けてもよい。CDS/AGC/ADコンバータC102は撮像素子C101の出力をサンプリングし、さらにゲイン調整およびデジタル変換する。カメラ信号処理回路C103はCDS/AGC/ADコンバータC102からの出力信号に対して各種の画像処理を行い、画像信号を生成する。
カメラ信号処理回路C103は、AF信号処理回路C1031を有する。AF信号処理回路C1031は、CDS/AGC/ADコンバータC102からの撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素からの出力信号から、高周波成分や該高周波成分から生成した輝度差成分等を抽出して焦点信号を生成する。該焦点信号は、コントラスト評価値信号とも称され、撮像素子C101からの出力信号に基づいて生成される画像の鮮鋭度(コントラスト状態)を表す。鮮鋭度は撮影光学系の焦点状態によって変化するので、結果的に焦点信号は、撮影光学系の焦点状態を表す信号となる。
表示装置C104はカメラ信号処理回路C103からの画像信号を表示する。記録装置C105はカメラ信号処理回路C103からの画像信号を磁気テープ、光ディスク、半導体メモリ等の記録媒体に記録する。カメラマイクロコンピュータ(撮像装置制御部:以下、カメラマイコンという)C106は、カメラ本体C100全体の動作の制御を司る。カメラマイコンC106は、カメラ信号処理回路C103からの出力に基づいて、後述のレンズユニットL100内のフォーカスアクチュエータL108を制御し、フォーカスレンズL105を光軸方向に移動させる。つまり、本実施例では、カメラ本体側で(カメラマイコンC106が)AF制御を行う。この動作は主にカメラマイコンC106内に設けられたカメラAF制御部C1061によって行われる。カメラAF制御部C1061は、カメラ信号処理回路C103から出力される焦点信号に基づいてフォーカスレンズの駆動に関する情報を生成する。このカメラAF制御部C1061の動作の詳細については後述する。また、カメラマイコンC106は、後述するレンズマイクロコンピュータL106と通信可能な通信手段としても構成される。
図1のレンズユニットL100内において、レンズマイクロコンピュータ(レンズ制御部:以下、レンズマイコンという)L106は、カメラマイコンC106と情報を相互に送受信(通信)することが可能な通信手段として構成される。レンズマイコンL106は、レンズAF制御部L1061を有する。レンズAF制御部L1061は、カメラAF制御部C1061によって決定されたフォーカスレンズL105の目標位置に従って実際にフォーカス制御を行う。また、レンズAF制御部L1061は、変倍時にレンズマイコンL106内に記憶されたズームトラッキングデータ(ズームトラッキングカム)に基づいてフォーカスレンズL105を移動させるズームトラッキング制御を行う。ズームトラッキングデータとは、変倍レンズL102の位置に応じたフォーカスレンズL105の位置を複数の焦点距離について記憶したデータであり、変倍動作を行う際、合焦状態を維持するためにフォーカスレンズL105が移動すべき軌跡を示す。これにより、変倍に伴う像面変動(ボケ)を防止することができる。
ズームアクチュエータL107は変倍レンズL102を移動させるズーム駆動源である。フォーカスアクチュエータL108はフォーカスレンズL105を移動させるフォーカス駆動源である。ズームアクチュエータL107およびフォーカスアクチュエータL108は、ステッピングモータ、DCモータ、振動型モータおよびボイスコイルモータ等のアクチュエータにより構成される。
次に、レンズマイコンL106およびカメラマイコンC106によって行われるフォーカス制御(TVAF制御)の概要について、図2〜図4を用いて説明する。
図2は、ライブビュー表示時又は動画撮影時におけるTVAF制御の全体的な流れを示したフローチャートである。ここでの処理は、主にカメラマイコンC106内のカメラAF制御部C1061がコンピュータプログラムに従って実行する。このことは、後述する他の実施例でも同じである。
カメラマイコンC106(カメラAF制御部C1061)は、レンズマイコンL106(レンズAF制御部L1061)との通信を通じてフォーカスレンズL105の駆動や位置の管理を行う。
図2において、Step201では、カメラマイコンC106は、現在のTVAFモードが微小駆動モードであるかどうかを判別し、微小駆動モードである場合はStep202に、そうでない場合はStep208に進む。
Step202では、カメラマイコンC106は、フォーカスレンズL105を所定の振幅で駆動する微小駆動動作(ウォブリング動作)を行い、合焦しているか否か、合焦していなければどちらの方向に合焦点が存在するかを判別する。ここでの詳細な動作は、後に図3および図4を用いて説明する。
Step203では、カメラマイコンC106は、Step202の微小駆動動作によるフォーカスレンズL105の位置の履歴から、所定回数同一エリアで往復しているか否かを判別する。そうである場合は合焦判別が行われたとしてStep206に、そうでない場合は合焦判別が行われなかったとしてStep204に進む。
Step204では、カメラマイコンC106は、Step202での微小駆動動作によるフォーカスレンズL105の位置の履歴から、所定回数連続して同一方向に合焦点が存在していると判別されたかどうかを判別する。そうである場合は合焦方向判別が行われたとしてStep205に進み、山登り駆動モードへ移行し、そうでない場合は方向判別が行われなかったとしてStep201に戻り、微小駆動モードを継続する。
Step206では、カメラマイコンC106は、合焦時の焦点信号レベルを不図示のメモリに格納した後、Step207に進んで再起動判定モードへ移行する。再起動判定モードとは、再び微小駆動(方向判別)をするかどうかを判定するモードである。これについては、後述のStep216,Step217にて説明する。
Step208では、カメラマイコンC106は、現在のTVAFモードが山登り駆動モードであるかどうかを判別し、山登り駆動モードである場合はStep209に、そうでない場合はStep213に進む。
Step209では、カメラマイコンC106は、焦点信号の値が大きくなる方向にフォーカスレンズL105を駆動する山登り駆動動作を行う。ここでの詳細な動作は、後に図5および図6を用いて説明する。
Step210では、カメラマイコンC106は、Step209での山登り駆動動作によって焦点信号が最大値(撮影光学系の合焦状態を示す値)となるフォーカスレンズL105の位置(以下、ピーク位置という)が検出されたか否かを判別する。ピーク位置が検出された場合はStep211に進み、そうでない場合はStep201に戻り、山登り駆動モードを継続する。Step210でピーク位置が検出されたと判別された場合には、後述するようにピーク位置にフォーカスレンズL105が移動された後(Step214)、合焦判別モードとなる(Step215)。
Step211では、カメラマイコンC106は、ピーク位置をフォーカスレンズL105の目標位置に設定する。その後、Step212に進み、停止モードへ移行する。
Step213では、カメラマイコンC106は、現在のTVAFモードが停止モードであるかを判別し、停止モードである場合はStep214に、そうでない場合はStep216に進む。
Step214では、カメラマイコンC106は、フォーカスレンズL105がピーク位置に戻ったかどうかを判別する。そうである場合はStep215に進んで微小駆動(合焦判別)モードへ移行し、そうでない場合はStep201に戻り、停止モードを継続する。
Step216は、再起動判定モードである。カメラマイコンC106は、現在の焦点信号のレベルとStep206で保持した焦点信号のレベルとを比較し、その変動量が所定値より大きいかどうかを判別する。変動量が所定値より大きい場合はStep217に進んで微小駆動(方向判別)モードに移行し、そうでない場合はStep201に戻り、再起動判定モードを継続する。
以上説明した図2のフローチャートの処理を、ライブビュー撮影時又は動画撮影時において繰り返し行う。
続いて、Step202での微小駆動動作時における、カメラマイコンC106およびレンズマイコンL106による制御の流れを図3および図4を用いて説明する。
本実施例では、カメラマイコンC106からレンズマイコンL106にフォーカスレンズL105の駆動開始タイミング(以下、駆動タイミングともいう)および到達予測タイミングを送る。到達予測タイミングとは、該タイミングまでにフォーカスレンズL105が目標位置に到達するとカメラマイコンC106が予測したタイミングである。また、レンズマイコンL106は、カメラマイコンC106に、上記到達予測タイミングまでに到達フォーカスレンズL105が目標位置に到達可能かどうかを予測した結果を返す。これにより、両者の制御タイミングを管理してフォーカス制御を行う。
図3において、StepC301では、カメラマイコンC106は、映像の垂直同期信号に対する現在のタイミングが、予め決められているレンズ通信を行うタイミングと一致しているかどうかを判別する。そうである場合はStepC302に進み、そうでない場合はStepC301に戻って待つ。このレンズ通信のタイミングは、撮像素子C101の映像信号の蓄積タイミングを基準として任意のタイミングに設定することが可能であるが、垂直同期信号に対しての遅延時間は一定である必要がある。
なお、本実施例では、カメラマイコンC106とレンズマイコンL106は、1垂直同期期間の間に2回の固定長パケット通信を行う。2回の通信のうち、後述するステップC303及びステップL303で行われる通信を第1通信、ステップC327とステップL305で行われる通信を第2通信とする。
StepC302では、カメラマイコンC106は、レンズマイコンL106に対して通信要求を送信し、レンズ通信を開始させる。
一方、StepL301では、レンズマイコンL106は、カメラマイコンC106がStepC302で送信した通信要求を受信したかどうか判別し、そうである場合はStepL302に進み、そうでない場合はStepL301に戻って待つ。
StepL302では、レンズマイコンL106は、1回目のレンズ通信が開始されたことをトリガとして内部タイマーをリセットし、該レンズ通信の開始からの遅延時間を計測する。
StepL303では、レンズマイコンL106は、前回の処理で演算した到達予測判定および予測レンズ位置の結果を第1通信としてカメラマイコンC106に対して送信する。この到達予測判定および予測レンズ位置の内容については、後にStep1104で詳細に説明する。
次に、StepC303では、カメラマイコンC106は、レンズマイコンL106がStepL303で送信した到達予測判定および予測レンズ位置の結果を受信する。図4の例で現在のVDが(4)である場合、ここでの処理は到達予測判定(4)等受信のタイミングに相当する。
StepC304では、カメラマイコンC106は、現在の制御状態が無限駆動、無限停止、至近駆動、至近停止のいずれであるかを判別する。無限駆動状態の場合はStepC305に、無限停止状態の場合はStepC311に、至近駆動状態の場合はStepC315に、至近停止状態の場合はStepC321に、それぞれ遷移する。
StepC305では、カメラマイコンC106は、前回のStepC321で保存した無限遠側の焦点信号のレベルと前回のStepC311で保存した至近側の焦点信号のレベルを比較する。前者が大きい場合はStepC306に、そうでない場合はStepC307に進む。図4の例で現在のVDが(7)である場合、焦点信号(4)と焦点信号(2)との大小関係を比較することになる。
StepC306では、カメラマイコンC106は、フォーカスレンズL105の駆動中心(振動中心)である中心位置の無限遠方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC307では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する無限遠方向への駆動量(像面振幅量、振動振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC308では、カメラマイコンC106は、StepC306およびStepC307で求めたデフォーカス量(目標デフォーカス量)分、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図4の例で現在のVDが(3)である場合、撮像素子C101の(2)の蓄積が完了するタイミングがレンズ駆動開始タイミング(4)となる。ここでは、撮像素子C101の(2)の蓄積が完了するタイミングをレンズ駆動開始タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(4)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC309では、カメラマイコンC106は、StepC308で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、該タイミングから所定の許容時間内にフォーカスレンズL105が目標位置に到達すれば適切な目標デフォーカス量が得られるもので、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図4の例で現在のVDが(3)である場合、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(4)となる。ここでは、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(4)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC310では、カメラマイコンC106は、次回の制御状態を無限停止状態に設定する。
StepC304で無限停止状態と判別した場合、StepC311において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が至近側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105が後述のStepC323で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図4の例で現在のVDが(4)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が至近側に停止していた、VD(2)で蓄積された映像信号から生成されたものとなる。
StepC312では、カメラマイコンC106は、StepC303で受信した前回の到達予測判定の結果が、到達可能と予測されている場合はStepC313に、そうでない場合はStepC325に進む。前回到達不可と予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC313では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は後述のStepC321で取得する焦点信号に関連付けられる。
StepC314では、カメラマイコンC106は、次回の制御状態を至近駆動状態に設定する。
StepC304で至近駆動状態と判別した場合、StepC315において、カメラマイコンC106は、前回StepC311で保存した至近側の焦点信号のレベルと前回StepC321で保存した無限遠側の焦点信号のレベルを比較する。前者が大きい場合はStepC316に、そうでない場合はStepC317に進む。図4の例で現在のVDが(5)である場合、焦点信号(2)と不図示の焦点信号(0)との大小関係を比較することになる。
StepC316では、カメラマイコンC106は、フォーカスレンズL105の駆動中心である中心位置の至近方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC317では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する至近方向への駆動量(像面振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC318では、カメラマイコンC106は、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図4の例で現在のVDが(5)である場合、撮像素子C101の(4)の蓄積が完了するタイミングがレンズ駆動開始タイミング(6)となる。ここでは、撮像素子C101の(4)の蓄積が完了するタイミングをレンズ駆動開始タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(6)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC319では、カメラマイコンC106は、StepC318で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図4の例で現在のVDが(5)である場合、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(6)となる。ここでは、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(6)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC320では、カメラマイコンC106は、次回の制御状態を至近停止状態に設定する。
StepC304で至近停止状態と判別した場合、StepC321において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が無限遠側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105がStepC313で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図4の例で現在のVDが(6)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が無限側に停止していた、VD(4)で蓄積された映像信号から生成されたものとなる。
StepC322では、カメラマイコンC106は、StepC303で受信した前回の到達予測判定の結果が、到達可能と予測されている場合はStepC323に、そうでない場合はStepC325に進む。前回到達不可と予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC323では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は次回のStepC311で取得する焦点信号に関連付けられる。
StepC324では、カメラマイコンC106は、次回の制御状態を無限駆動状態に設定する。
StepC325では、今回の駆動命令が直接的あるいは間接的に目標位置を指定する命令であるため、命令形態を位置指定命令に設定する。なお本実施形態では、この命令形態を位置指定命令と後述の方向指定命令の2種類とするが、その他、停止命令あるいは無効命令などを含んでいても構わない。カメラマイコンC106は、これら位置指定命令、方向指定命令、停止命令、無効命令の中から1つの命令形態を設定可能とする。ここで、位置指定命令は、フォーカスレンズの駆動目標位置を指定して制御する第1の制御であり、方向指定命令は、フォーカスレンズの駆動方向を指定して制御する第2の制御である。
StepC326では、カメラマイコンC106は、レンズマイコンL106に対して再度通信要求を送信し、レンズ通信を開始させる。
StepL304では、レンズマイコンL106は、カメラマイコンC106がStepC326で送信した通信要求を受信したかどうか判別し、そうである場合はStepL305に進み、そうでない場合はStepL304に戻って待つ。
StepC327では、カメラマイコンC106は、レンズ通信が開始されると、フォーカスレンズL105の駆動に関する情報を第2通信としてレンズマイコンL106に送信する。ここで、フォーカスレンズL105の駆動に関する情報とは、StepC325で設定した命令形態を含むものである。また、StepC306、StepC307またはStepC316、StepC317で求めた像面振幅量や像面中心移動量で示される目標デフォーカス量等を含むものである。他にも、StepC308またはStepC318で演算した駆動開始タイミング、StepC309またはStepC319で演算した到達予測タイミング等(フォーカスレンズの駆動時間に関する情報)が含まれる。図4の例で現在のVDが(5)である場合は、ここでの処理は命令形態(6)および目標デフォーカス量(6)等の送信タイミングに相当する。なお、これまで説明した微小駆動動作時においては、後述するように駆動速度はレンズマイコンL106側で設定されるため、駆動速度のデータを設定するデータ領域(第1のデータ領域)には、任意の数値が詰められる。つまり、駆動速度のデータ領域に設定されたデータ(ここでは駆動速度(6))はレンズユニット側で使用されない。ここで、レンズユニット側で使用されないにも関わらず駆動速度のデータ領域に任意の数値を詰めるのは、カメラマイコンC106とレンズマイコンL106で固定長パケット通信を行うためである。
StepL305では、レンズマイコンL106は、カメラマイコンC106がStepC327で送信した命令形態や目標デフォーカス量等のフォーカスレンズL105の駆動に関する情報を受信する。その後レンズマイコンL106は、受信した情報に基づき、後述するフォーカスレンズ駆動制御を行う。
以上の微小駆動動作の処理を行うと、カメラマイコンC106は、合焦方向と判断される方向が予め設定された回数(NB)連続して同一であるか否かを判定する。NB回の連続した合焦方向の一致を判定した場合、カメラマイコンC106は、方向判別ができたと判断する。この場合、図2のStep203からStep204に進み、方向判別できたとして山登り駆動モードへ移行する。
一方、NB回連続して合焦方向が同一だと判定しなかった場合、カメラマイコンC106は、フォーカスレンズL105が同一エリア内で予め設定された回数(NB)往復を繰り返した否かを判定する。同一エリア内の報復がNB回繰り返されたと判定した場合、カメラマイコンC106は、過去のレンズ位置情報に基づいて合焦位置演算を行い、合焦判定ができたと判定する。そして、図2のStep203で合焦判別できたとして、再起動判定モードへ移行する。
続いて、Step209での山登り駆動動作時における、カメラマイコンC106およびレンズマイコンL106による制御の流れを図5および図6を用いて説明する。
図5において、StepC501では、カメラマイコンC106は、映像の垂直同期信号に対する現在のタイミングが、予め決められているレンズ通信を行うタイミングと一致しているかどうかを判別する。そうである場合はStepC502に進み、そうでない場合はStepC501に戻って待つ。このレンズ通信のタイミングは、撮像素子C101の映像信号の蓄積タイミングを基準として任意のタイミングに設定することが可能であるが、垂直同期信号に対しての遅延時間は一定である必要がある。
なお、本実施例では、カメラマイコンC106とレンズマイコンL106は、1垂直同期期間の間に2回の固定長パケット通信を行う。2回の通信のうち、後述するステップC503及びステップL503で行われる通信を第1通信、ステップC514とステップL505で行われる通信を第2通信とする。
StepC502では、カメラマイコンC106は、レンズマイコンL106に対して通信要求を送信し、レンズ通信を開始させる。
一方、StepL501では、レンズマイコンL106は、カメラマイコンC106がStepC502で送信した通信要求を受信したかどうか判別し、そうである場合はStepL502に進み、そうでない場合はStepL501に戻って待つ。
StepL502では、レンズマイコンL106は、1回目のレンズ通信が開始されたことをトリガとして内部タイマーをリセットし、該レンズ通信の開始からの遅延時間を計測する。
StepL503では、レンズマイコンL106は、前回の処理で演算した到達予測判定および予測レンズ位置の結果を第1通信としてカメラマイコンC106に対して送信する。ここでは、固定長パケット通信のため、便宜上到達予測判定の結果も送信するが、後述のように、山登り動作の場合はカメラマイコンC106から明確な目標位置の指定がないため、実際に到達予測判定の結果がカメラマイコンC106内で使用されることはない。予測レンズ位置の内容については、後にStep1108で詳細に説明する。
次に、StepC503では、カメラマイコンC106は、レンズマイコンL106がStepL303で送信した到達予測判定および予測レンズ位置の結果を受信する。このとき受信した予測レンズ位置は次回後述のStepC504で取得する焦点信号に関連付けられる。図6の例で現在のVDが(4)である場合、ここでの処理は到達予測(3)受信のタイミングに相当する。
StepC504では、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が過去に駆動していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105がStepC503で取得した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図6の例で現在のVDが(5)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が駆動していた、VD(3)で蓄積された映像信号から生成されたものとなる。
StepC505では、カメラマイコンC106は、今回StepC504で取得した焦点信号のレベルと前回StepC504で取得した焦点信号のレベルを比較し、前者が大きい場合はStepC506へ、そうでない場合はStepC507へ進む。
StepC506では、カメラマイコンC106は、焦点信号が増加していることから、次回の駆動方向を現在と同じ方向に設定する。本実施例では、微小駆動動作時に像面振幅量のデータを設定していたデータ領域(第2のデータ領域)を用いて、駆動方向を指定するものとする。具体的には、該データ領域に設定する数値の符号情報によって駆動方向を指定する。つまり、本実施例では、微小駆動動作時に設定される像面振幅量と山登り駆動動作時に設定される駆動方向は、対応するデータ領域(第2のデータ領域)に設定される。この方法以外に、別途通信データを用意して駆動方向の指定を行っても構わない。
StepC507では、カメラマイコンC106は、焦点信号のピークが過去に存在したか否かを判別し、ピークが存在した場合はStepC509へ、そうでない場合はStepC508へ進む。
StepC508では、カメラマイコンC106は、焦点信号のピークが存在していないにも関わらず焦点信号が減少していることから、次回の駆動方向を現在と逆の方向に設定する。本実施例では、上述のように、微小駆動動作時に像面振幅量のデータを設定したデータ領域(第2のデータ領域)を用いて、該データ領域に設定する数値の符号情報によって駆動方向を指定する。
StepC509では、カメラマイコンC106は、焦点信号のピークを検出できたものと判別する。この場合、図2のStep210に進んだ際、ピーク位置が発見されたものとしてStep211に進み、山登り駆動動作を終了する。
StepC510では、カメラマイコンC106は、フォーカスレンズL105の駆動速度を、撮像面上でのピント移動速度として演算する。この駆動速度は、1回の焦点信号取得に必要な時間あたりのピント移動量が焦点深度内となるように設定される。
StepC511では、カメラマイコンC106は、StepC503で取得するフォーカスレンズL105の到達予測の対象となるタイミングを演算する。すなわち、どのタイミングのレンズ位置を知りたいかをここで設定する。このタイミングは、微小駆動動作時のStepC309およびStepC319では撮像素子C101の映像信号の電荷蓄積開始タイミングを基準とした。しかし、ここでの到達予測タイミングは、撮像素子C101の映像信号の電荷蓄積中心タイミングを基準として設定する。図6の例で現在のVDが(3)である場合、撮像素子C101の(3)の蓄積に要する期間の中心タイミングがレンズ到達予測タイミング(3)となる。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC512では、今回の駆動命令が具体的な目標位置を指定するものではなく、駆動の方向のみを指定する命令であることをレンズに通知するため、命令形態を方向指定命令に設定する。
StepC513では、カメラマイコンC106は、レンズマイコンL106に対して再度通信要求を送信し、レンズ通信を開始させる。
StepL504では、レンズマイコンL106は、カメラマイコンC106がStepC513で送信した通信要求を受信したかどうか判別し、そうである場合はStepL505に進み、そうでない場合はStepL504に戻って待つ。
StepC514では、カメラマイコンC106は、レンズ通信が開始されると、フォーカスレンズL105の駆動に関する情報を第2通信としてレンズマイコンL106に送信する。ここで、フォーカスレンズL105の駆動に関する情報とは、StepC512で設定した命令形態を含むものである。また、StepC506またはStepC508で設定した駆動方向等を含むものである。また他にも、StepC510で演算した駆動速度、StepC511で演算した到達予測タイミング等が含まれる。図6の例で現在のVDが(3)である場合は、ここでの処理は命令形態(3)および駆動方向(3)等の送信タイミングに相当する。
なお、山登り動作時は、常にフォーカスレンズL105は駆動しているため、カメラマイコンC106から駆動開始タイミングを指定する必要はない。しかしながら、固定長パケット通信であるため、微小駆動時にStepC327で駆動開始タイミングを設定したデータ領域に何らかの数値を入れる必要がある。そこで、カメラマイコンC106は任意の数値を該データ領域に設定するが、後述するようにレンズマイコンL106は設定された数値を無効として、フォーカスレンズL105の駆動制御に使用しない。
StepL505では、レンズマイコンL106は、カメラマイコンC106がStepC514で送信した命令形態および駆動方向等のフォーカスレンズL105の駆動に関する情報を受信する。その後レンズマイコンL106は、受信した情報に基づき、後述するフォーカスレンズ駆動制御を行う。
次に、図3のStepL305および図5のStepL505の後に行われる、レンズマイコンL106によるフォーカスレンズ駆動制御について、図11を用いて説明する。
Step1101では、StepL305又はStepL505で受信した命令形態が位置指定命令であるかどうか判別し、そうである場合はStep1102に、そうでない場合はStep1106に進む。
Step1102では、レンズマイコンL106は、フォーカスレンズL105の実駆動量(実移動量)を演算し、目標位置を設定する。ここで実駆動量は、StepL305で受信した目標デフォーカス量が得られるように現在のフォーカス位置敏感度を考慮して計算される。
Step1103では、レンズマイコンL106は、Step1102で求めた実駆動量に応じて、フォーカスレンズL105の駆動速度を演算する。ここで駆動速度は、フォーカスアクチュエータL108の特性に基づき、フォーカスレンズL105動作中の騒音やオーバーシュート等の影響を考慮して計算される。レンズマイコンL106は、騒音低減や脱調防止等のために、任意のタイミングでフォーカスレンズL105の駆動速度を変更可能である。
Step1104では、レンズマイコンL106は、StepL305で受信した駆動開始タイミングから到達予測タイミングまでの間、Step1103で求めた駆動速度でフォーカスレンズL105を駆動させた場合の位置を予測する。つまり、StepL305で受信した駆動開始タイミングにてStep1103で求めた駆動速度でフォーカスレンズを駆動させた場合に、StepL305で受信した到達予測タイミングにおいてフォーカスレンズL105がどの位置に存在するかを予測する。さらに、ここで予測したフォーカスレンズL105の予測位置とStep1102で設定した目標位置とを比較することにより、StepL305で受信した到達予測タイミングから所定の許容時間内に目標位置に到達可能か否かを判定する。すなわち、カメラマイコンC106が所望する目標デフォーカス量が得られるかどうかを判定する。該到達予測判定の結果は、次回のStepL303においてレンズマイコンL106からカメラマイコンC106に送信される。
Step1105では、レンズマイコンL106は、StepL302でリセットした内部タイマーの値を参照し、1回目のレンズ通信の開始時からの遅延時間がStepL305で受信した駆動開始タイミングに一致しているかどうかを判別する。一致している場合はStep1109に、そうでない場合はStep1105に戻って待つ。
Step1109では、レンズマイコンL106は、Step1102で設定した目標位置とStep1103で演算した駆動速度をフォーカスアクチュエータL108に設定し、実際にフォーカスレンズL105を駆動させる。図4の例で現在のVDが(5)である場合は、ここでの処理はフォーカス(6)駆動のタイミングに相当する。
一方、Step1101において、命令形態が位置指定命令ではない場合、命令形態が方向指定命令であるとしてStep1106に進む。Step1106では、レンズマイコンL106は、フォーカスレンズL105の目標位置を設定する。方向指定命令の場合は、カメラマイコンC106から明確な目標位置の指定がない。そのため、実際に設定する目標位置はStepL505で受信した駆動方向が保証できる範囲でレンズマイコンL106が自由に設定して構わない。
Step1107では、レンズマイコンL106は、フォーカスレンズL105の駆動速度を演算する。ここで駆動速度は、StepL505で受信した撮像面での駆動速度を現在のフォーカス位置敏感度を考慮して実際のレンズ駆動速度に変換することで計算される。
Step1108では、レンズマイコンL106は、Step1107で求めた駆動速度でフォーカスレンズL105を駆動させた場合に、StepL505で受信した到達予測タイミングにおいてフォーカスレンズL105がどこに存在するかを予測する。該到達予測の結果は、次回のStepL503においてレンズマイコンL106からカメラマイコンC106に送信される。
Step1109では、レンズマイコンL106は、Step1106で設定した目標位置とStep1107で演算した駆動速度をフォーカスアクチュエータL108に設定し、実際にフォーカスレンズL105を駆動させる。図6の例で現在のVDが(3)である場合は、ここでの処理はフォーカス(3)駆動のタイミングに相当する。なお、位置指定命令の微小駆動動作時は、フォーカスレンズL105の駆動および停止のタイミングを厳密に管理するため、カメラマイコンC106が駆動開始タイミングを指定する必要があった。しかし、方向指定命令の山登り動作時は、常にフォーカスレンズL105は駆動しているため、改めて駆動開始タイミングを指定する必要はない。
このように、本実施例では、レンズマイコンL106は、受信した命令形態に応じて、特定のデータ領域にセットされた情報の有効/無効を切り換える。具体的には、位置指定命令の場合は駆動開始タイミングのデータ領域にセットされた情報を用いてフォーカスレンズL105の駆動を制御し、方向指定命令の場合は当該データ領域にセットされた情報をフォーカスレンズL105の駆動制御に用いない。このようにすることで、命令形態に応じて通信フォーマットを変更することなく、微小駆動、山登り駆動それぞれに応じたTVAF制御命令を通信することが可能になる。
本実施例では、TVAF制御において、再起動判定→微小駆動→山登り駆動→停止→微小駆動→再起動判定を繰り返しながらフォーカスレンズL105を移動させる。これにより、焦点信号が常に最大となるように合焦状態が維持される。
また、本実施例では、カメラ本体からレンズユニットに対してフォーカスレンズL105の駆動に関する情報を送信し、レンズユニットからカメラ本体にフォーカスレンズL105の位置に関する情報を送信する。これにより、カメラ本体に装着されるレンズユニットごとに光学特性が異なる場合でも、レンズ一体型カメラと同様に、予めTVAF制御の周期を認識することが可能となり、良好なTVAF制御を行うことができる。
本発明の実施例2について説明する。実施例1では、カメラ本体が到達予測タイミングをレンズユニットに送り、レンズユニットは該到達予測タイミングにてフォーカスレンズが目標位置に到達可能かどうかを予測してその到達予測の結果をカメラ本体に返した。これに対して本実施例では、レンズユニットはカメラ本体から受信した到達予測タイミングにおけるフォーカスレンズの実駆動量を予測して、撮像面上のデフォーカス量に換算したデフォーカス量予測結果をカメラ本体に返すように構成している。
本実施例のレンズ交換型カメラシステムの構成は、実施例1(図1)と同じである。また、TVAF制御の全体的な流れも、実施例1(図2)と同じである。
図2に示したStep202での微小駆動動作時にてカメラマイコンC106およびレンズマイコンL106にて行われる制御を、図7および図8を用いて説明する。
図7において、StepC701では、カメラマイコンC106は、映像の垂直同期信号に対する現在のタイミングが、予め決められているレンズ通信を行うタイミングと一致しているかどうかを判別する。そうである場合はStepC702に進み、そうでない場合はStepC701に戻って待つ。このレンズ通信のタイミングは、撮像素子C101の映像信号の蓄積タイミングを基準として任意のタイミングに設定することが可能であるが、垂直同期信号に対しての遅延時間は一定である必要がある。
なお、本実施例でも、カメラマイコンC106とレンズマイコンL106は、1垂直同期期間の間に2回の固定長パケット通信を行う。2回の通信のうち、後述するステップC703及びステップL703で行われる通信を第1通信、ステップC727とステップL705で行われる通信を第2通信とする。
StepC702では、カメラマイコンC106は、レンズマイコンL106に対して通信要求を送信し、レンズ通信を開始させる。
一方、StepL701では、レンズマイコンL106は、カメラマイコンC106がStepC702で送信した通信要求を受信したかどうか判別し、そうである場合はStepL702に進み、そうでない場合はStepL701に戻って待つ。
StepL702では、レンズマイコンL106は、1回目のレンズ通信が開始されたことをトリガとして内部タイマーをリセットし、該レンズ通信の開始からの遅延時間を計測する。
StepL703では、レンズマイコンL106は、前回の処理で演算した予測デフォーカス量および予測レンズ位置の結果を第1通信としてカメラマイコンC106に対して送信する。この予測デフォーカス量および予測レンズ位置の内容については、後にStep1104で詳細に説明する。
次に、StepC703では、カメラマイコンC106は、レンズマイコンL106がStepL703で送信した予測デフォーカス量および予測レンズ位置の結果を受信する。図8の例で現在のVDが(4)である場合、ここでの処理は予測デフォーカス量(4)等受信のタイミングに相当する。
StepC704では、カメラマイコンC106は、現在の制御状態が無限駆動、無限停止、至近駆動、至近停止のいずれであるかを判別する。無限駆動状態の場合はStepC705に、無限停止状態の場合はStepC711に、至近駆動状態の場合はStepC715に、至近停止状態の場合はStepC721に、それぞれ遷移する。
StepC705では、カメラマイコンC106は、前回のStepC721で保存した無限遠側の焦点信号のレベルと前回のStepC711で保存した至近側の焦点信号のレベルを比較する。前者が大きい場合はStepC706に、そうでない場合はStepC707に進む。図8の例で現在のVDが(7)である場合、焦点信号(4)と焦点信号(2)との大小関係を比較することになる。
StepC706では、カメラマイコンC106は、フォーカスレンズL105の駆動中心である中心位置の無限遠方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC707では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する無限遠方向への駆動量(像面振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC708では、カメラマイコンC106は、StepC706およびStepC707で求めたデフォーカス量(目標デフォーカス量)分、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図8の例で現在のVDが(3)である場合、撮像素子C101の(2)の蓄積が完了するタイミングがレンズ駆動開始タイミング(4)となる。ここでは、撮像素子C101の(2)の蓄積が完了するタイミングをレンズ駆動開始タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(4)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC709では、カメラマイコンC106は、StepC708で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、該タイミングから所定の許容時間内にフォーカスレンズL105が目標位置に到達すれば適切な目標デフォーカス量が得られるもので、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図8の例で現在のVDが(3)である場合、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(4)となる。ここでは、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(4)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC710では、カメラマイコンC106は、次回の制御状態を無限停止状態に設定する。
StepC704で無限停止状態と判別した場合、StepC711において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が至近側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105が後述のStepC723で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図8の例で現在のVDが(4)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が至近側に停止していた、VD(2)で蓄積された映像信号から生成されたものとなる。
StepC712では、カメラマイコンC106は、StepC703で受信した前回の予測デフォーカス量の結果が、StepC706およびStepC707で指定した目標デフォーカス量と一致しているか判定(到達予測判定)する。すなわち、所望のデフォーカス量が得られたかどうかを判別し、一致している(とみなされる許容範囲内にある)場合はStepC713に、そうでない場合はStepC725に進む。一致していないと予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC713では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は後述のStepC721で取得する焦点信号に関連付けられる。
StepC714では、カメラマイコンC106は、次回の制御状態を至近駆動状態に設定する。
StepC304で至近駆動状態と判別した場合、StepC715において、カメラマイコンC106は、前回StepC711で保存した至近側の焦点信号のレベルと前回StepC721で保存した無限遠側の焦点信号のレベルを比較する。前者が大きい場合はStepC716に、そうでない場合はStepC717に進む。図8の例で現在のVDが(5)である場合、焦点信号(2)と不図示の焦点信号(0)との大小関係を比較することになる。
StepC716では、カメラマイコンC106は、フォーカスレンズL105の駆動中心である中心位置の至近方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC717では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する至近方向への駆動量(像面振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC718では、カメラマイコンC106は、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図8の例で現在のVDが(5)である場合、撮像素子C101の(4)の蓄積が完了するタイミングがレンズ駆動開始タイミング(6)となる。ここでは、撮像素子C101の(4)の蓄積が完了するタイミングをレンズ駆動開始タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(6)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC719では、カメラマイコンC106は、StepC718で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図8の例で現在のVDが(5)である場合、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(6)となる。ここでは、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(6)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC720では、カメラマイコンC106は、次回の制御状態を至近停止状態に設定する。
StepC704で至近停止状態と判別した場合、StepC721において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が無限遠側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105がStepC713で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図8の例で現在のVDが(6)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が無限側に停止していた、VD(4)で蓄積された映像信号から生成されたものとなる。
StepC722では、カメラマイコンC106は、StepC703で受信した前回の予測デフォーカス量の結果が、StepC716およびStepC717で指定した目標デフォーカス量と一致しているか判定(到達予測判定)する。すなわち、所望のデフォーカス量が得られたかどうかを判別し、一致している(とみなされる許容範囲内にある)場合はStepC723に、そうでない場合はStepC725に進む。一致していないと予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC723では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は次回のStepC711で取得する焦点信号に関連付けられる。
StepC724では、カメラマイコンC106は、次回の制御状態を無限駆動状態に設定する。
StepC725では、今回の駆動命令が直接的あるいは間接的に目標位置を指定する命令であるため、命令形態を位置指定命令に設定する。なお本実施形態では、この命令形態を位置指定命令と後述の方向指定命令の2種類とするが、その他、停止命令あるいは無効命令などを含んでいても構わない。カメラマイコンC106は、これら位置指定命令、方向指定命令、停止命令、無効命令の中から1つの命令形態を設定可能とする。ここで、位置指定命令は、フォーカスレンズの駆動目標位置を指定して制御する第1の制御であり、方向指定命令は、フォーカスレンズの駆動方向を指定して制御する第2の制御である。
StepC726では、カメラマイコンC106は、レンズマイコンL106に対して再度通信要求を送信し、レンズ通信を開始させる。
StepL704では、レンズマイコンL106は、カメラマイコンC106がStepC726で送信した通信要求を受信したかどうか判別し、そうである場合はStepL705に進み、そうでない場合はStepL704に戻って待つ。
StepC727では、カメラマイコンC106は、レンズ通信が開始されると、フォーカスレンズL105の駆動に関する情報を第2通信としてレンズマイコンL106に送信する。ここで、フォーカスレンズL105の駆動に関する情報とは、StepC725で設定した命令形態を含むものである。また、StepC706、StepC707またはStepC716、StepC717で求めた像面振幅量や像面中心移動量で示される目標デフォーカス量等を含むものである。また他にも、StepC708またはStepC718で演算した駆動開始タイミング、StepC709またはStepC719で演算した到達予測タイミング等が含まれる。図8の例で現在のVDが(5)である場合は、ここでの処理は命令形態(6)および目標デフォーカス量(6)等の送信タイミングに相当する。なお、微小駆動動作時においては、駆動速度はレンズマイコンL106側で設定されるため、駆動速度のデータを設定するデータ領域(第1のデータ領域)には、任意の数値が詰められる。つまり、駆動速度のデータ領域に設定されたデータ(ここでは駆動速度(6))はレンズユニット側で使用されない。ここで、レンズユニット側で使用されないにも関わらず駆動速度のデータ領域に任意の数値を詰めるのは、カメラマイコンC106とレンズマイコンL106で固定長パケット通信を行うためである。
StepL705では、レンズマイコンL106は、カメラマイコンC106がStepC727で送信した命令形態や目標デフォーカス量等のフォーカスレンズL105の駆動に関する情報を受信する。その後レンズマイコンL106は、受信した情報に基づき、後述するフォーカスレンズ駆動制御を行う。
以上の微小駆動動作の処理を行うと、カメラマイコンC106は、合焦方向と判断される方向が予め設定された回数(NB)連続して同一であるか否かを判定する。NB回の連続した合焦方向の一致を判定した場合、カメラマイコンC106は、方向判別ができたと判断する。この場合、図2のStep203からStep204に進み、方向判別できたとして山登り駆動モードへ移行する。
一方、NB回連続して合焦方向が同一だと判定しなかった場合、カメラマイコンC106は、フォーカスレンズL105が同一エリア内で予め設定された回数(NB)往復を繰り返した否かを判定する。同一エリア内の報復がNB回繰り返されたと判定した場合、カメラマイコンC106は、過去のレンズ位置情報に基づいて合焦位置演算を行い、合焦判定ができたと判定する。そして、図2のStep203で合焦判別できたとして、再起動判定モードへ移行する。
図2のStep209での山登り駆動動作時における、カメラマイコンC106およびレンズマイコンL106による制御の流れは、実施例1(図5および図6)と同じである。また、図7のStepL705および図5のStepL505の後に行われる、レンズマイコンL106によるフォーカスレンズ駆動制御の流れは、実施例1(図11)と同じである。なお、ここで上述した図11のStep1104の内容は、以下のように読み替えるものとする。すなわち、「さらに、ここで予測したフォーカスレンズL105の予測位置とStep1102で設定した目標位置とを比較することにより、StepL305で受信した到達予測タイミングから所定の許容時間内に目標位置に到達可能か否かを判定する。すなわち、カメラマイコンC106が所望する目標デフォーカス量が得られるかどうかを判定する。該到達予測判定の結果は、次回のStepL303においてレンズマイコンL106からカメラマイコンC106に送信される。」は、「さらに、ここで予測したフォーカスレンズL105の予測位置のデフォーカス量が撮像面上でどのくらいに相当するかを判定する。該予測デフォーカス量の結果は、次回のStepL703においてレンズマイコンL106からカメラマイコンC106に送信される。」と読み替える。
本実施例でも、レンズマイコンL106は、受信した命令形態に応じて、特定のデータ領域にセットされた情報の有効/無効を切り換える。具体的には、位置指定命令の場合は駆動開始タイミングのデータ領域にセットされた情報を用いてフォーカスレンズL105の駆動を制御し、方向指定命令の場合は当該データ領域にセットされた情報をフォーカスレンズL105の駆動制御に用いない。このようにすることで、命令形態に応じて通信フォーマットを変更することなく、微小駆動、山登り駆動それぞれに応じたTVAF制御命令を通信することが可能になる。
本実施例では、TVAF制御において、再起動判定→微小駆動→山登り駆動→停止→微小駆動→再起動判定を繰り返しながらフォーカスレンズL105を移動させる。これにより、焦点信号が常に最大となるように合焦状態が維持される。
また、本実施例では、カメラ本体からレンズユニットに対してフォーカスレンズL105の駆動に関する情報を送信し、レンズユニットからカメラ本体にフォーカスレンズL105の位置に関する情報を送信する。これにより、カメラ本体に装着されるレンズユニットごとに光学特性が異なる場合でも、レンズ一体型カメラと同様に、予めTVAF制御の周期を認識することが可能となり、良好なTVAF制御を行うことができる。
本発明の実施例3について説明する。実施例1では、カメラ本体が到達予測タイミングをレンズユニットに送り、レンズユニットは該到達予測タイミングにてフォーカスレンズが目標位置に到達可能かどうかを予測してその到達予測の結果をカメラ本体に返した。また実施例2では、レンズユニットはカメラ本体から受信した到達予測タイミングにおけるフォーカスレンズの実駆動量を予測して、撮像面上のデフォーカス量に換算したデフォーカス量予測結果をカメラ本体に返した。これに対して本実施例では、レンズユニットはフォーカスレンズが目標位置に到達するのに必要な時間をカメラ本体に返すように構成している。
本実施例のレンズ交換型カメラシステムの構成は、実施例1(図1)と同じである。また、TVAF制御の全体的な流れも、実施例1(図2)と同じである。
図2に示したStep202での微小駆動動作時にてカメラマイコンC106およびレンズマイコンL106にて行われる制御を、図9および図10を用いて説明する。
図9において、StepC901では、カメラマイコンC106は、映像の垂直同期信号に対する現在のタイミングが、予め決められているレンズ通信を行うタイミングと一致しているかどうかを判別する。そうである場合はStepC902に進み、そうでない場合はStepC901に戻って待つ。このレンズ通信のタイミングは、撮像素子C101の映像信号の蓄積タイミングを基準として任意のタイミングに設定することが可能であるが、垂直同期信号に対しての遅延時間は一定である必要がある。
なお、本実施例でも、カメラマイコンC106とレンズマイコンL106は、1垂直同期期間の間に2回の固定長パケット通信を行う。2回の通信のうち、後述するステップC903及びステップL903で行われる通信を第1通信、ステップC927とステップL905で行われる通信を第2通信とする。
StepC902では、カメラマイコンC106は、レンズマイコンL106に対して通信要求を送信し、レンズ通信を開始させる。
一方、StepL901では、レンズマイコンL106は、カメラマイコンC106がStepC902で送信した通信要求を受信したかどうか判別し、そうである場合はStepL902に進み、そうでない場合はStepL901に戻って待つ。
StepL902では、レンズマイコンL106は、1回目のレンズ通信が開始されたことをトリガとして内部タイマーをリセットし、該レンズ通信の開始からの遅延時間を計測する。
StepL903では、レンズマイコンL106は、前回の処理で演算した予測到達時間および予測レンズ位置の結果を第1通信としてカメラマイコンC106に対して送信する。この予測到達時間および予測レンズ位置の内容については、後にStep1104で詳細に説明する。
次に、StepC903では、カメラマイコンC106は、レンズマイコンL106がStepL903で送信した予測到達時間および予測レンズ位置の結果を受信する。図10の例で現在のVDが(4)である場合、ここでの処理は予測到達時間(4)等受信のタイミングに相当する。
StepC904では、カメラマイコンC106は、現在の制御状態が無限駆動、無限停止、至近駆動、至近停止のいずれであるかを判別する。無限駆動状態の場合はStepC905に、無限停止状態の場合はStepC911に、至近駆動状態の場合はStepC915に、至近停止状態の場合はStepC921に、それぞれ遷移する。
StepC905では、カメラマイコンC106は、前回のStepC921で保存した無限遠側の焦点信号のレベルと前回のStepC911で保存した至近側の焦点信号のレベルを比較する。前者が大きい場合はStepC906に、そうでない場合はStepC907に進む。図10の例で現在のVDが(7)である場合、焦点信号(4)と焦点信号(2)との大小関係を比較することになる。
StepC906では、カメラマイコンC106は、フォーカスレンズL105の駆動中心である中心位置の無限遠方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC907では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する無限遠方向への駆動量(像面振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC908では、カメラマイコンC106は、StepC906およびStepC907で求めたデフォーカス量(目標デフォーカス量)分、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図10の例で現在のVDが(3)である場合、撮像素子C101の(2)の蓄積が完了するタイミングがレンズ駆動開始タイミング(4)となる。ここでは、撮像素子C101の(2)の蓄積が完了するタイミングをレンズ駆動開始タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(4)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC909では、カメラマイコンC106は、StepC908で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、該タイミングから所定の許容時間内にフォーカスレンズL105が目標位置に到達すれば適切な目標デフォーカス量が得られるもので、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図10の例で現在のVDが(3)である場合、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(4)となる。ここでは、撮像素子C101の(4)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(4)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(4)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC910では、カメラマイコンC106は、次回の制御状態を無限停止状態に設定する。
StepC904で無限停止状態と判別した場合、StepC911において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が至近側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105が後述のStepC923で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図10の例で現在のVDが(4)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が至近側に停止していた、VD(2)で蓄積された映像信号から生成されたものとなる。
StepC912では、カメラマイコンC106は、StepC903で受信した前回の予測到達時間の結果が、StepC909で指定した到達予測タイミングより短いか、すなわち、所望のデフォーカス量が得られたかどうかを判別する。短い場合はStepC913に、そうでない場合はStepC925に進む。短くないと予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC913では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は後述のStepC921で取得する焦点信号に関連付けられる。
StepC914では、カメラマイコンC106は、次回の制御状態を至近駆動状態に設定する。
StepC904で至近駆動状態と判別した場合、StepC915において、カメラマイコンC106は、前回StepC911で保存した至近側の焦点信号のレベルと前回StepC921で保存した無限遠側の焦点信号のレベルを比較する。前者が大きい場合はStepC916に、そうでない場合はStepC917に進む。図10の例で現在のVDが(5)である場合、焦点信号(2)と不図示の焦点信号(0)との大小関係を比較することになる。
StepC916では、カメラマイコンC106は、フォーカスレンズL105の駆動中心である中心位置の至近方向への移動量(像面中心移動量)を、撮像面上でのデフォーカス量として演算する。このデフォーカス量は焦点深度内に設定される。
StepC917では、カメラマイコンC106は、フォーカスレンズL105の上記中心位置に対する至近方向への駆動量(像面振幅量)を、撮像面上でのデフォーカス量として演算する。中心位置の移動量と同様に、このデフォーカス量も焦点深度内に設定される。
StepC918では、カメラマイコンC106は、実際にフォーカスレンズL105を駆動させる駆動開始タイミングを演算する。この駆動開始タイミングは、撮像素子C101の映像信号の蓄積完了タイミングを基準として設定する。図10の例で現在のVDが(5)である場合、撮像素子C101の(4)の蓄積が完了するタイミングがレンズ駆動開始タイミング(6)となる。ここでは、撮像素子C101の(4)の蓄積が完了するタイミングをレンズ駆動開始タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が完了するタイミングに応じてレンズ駆動開始タイミング(6)を決定しても構わない。また、本実施例では、この駆動開始タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、駆動開始タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC919では、カメラマイコンC106は、StepC918で演算した駆動開始タイミングでフォーカスレンズL105を駆動させた場合に、次の上記目標デフォーカス量を得るための到達予測タイミングを演算する。ここで、到達予測タイミングは、撮像素子C101の映像信号の電荷蓄積開始タイミングを基準として設定する。図10の例で現在のVDが(5)である場合、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングが到達予測タイミング(6)となる。ここでは、撮像素子C101の(6)の蓄積が開始して所定時間後のタイミングを到達予測タイミング(6)とした。しかし、撮像素子C101の全画素の出力信号のうち焦点検出に用いる領域の画素の蓄積が開始するタイミングに応じて到達予測タイミング(6)を決定しても構わない。本実施例では、この到達予測タイミングを、前述した1回目のレンズ通信の開始からの遅延時間で定義する。ただし、これに限らず、到達予測タイミングを、垂直同期信号に対しての遅延時間等で定義してもよい。
StepC920では、カメラマイコンC106は、次回の制御状態を至近停止状態に設定する。
StepC904で至近停止状態と判別した場合、StepC921において、カメラマイコンC106は、焦点信号を取得し、フォーカスレンズL105が無限遠側に停止していたときのものとして保存する。すなわち、ここで取得した焦点信号は、前回フォーカスレンズL105がStepC913で保存した位置にあったときに蓄積された映像信号から生成された焦点信号であると関連付けられる。図10の例で現在のVDが(6)である場合、ここで取得可能な焦点信号はフォーカスレンズL105が無限側に停止していた、VD(4)で蓄積された映像信号から生成されたものとなる。
StepC922では、カメラマイコンC106は、StepC903で受信した前回の予測到達時間の結果が、StepC919で指定した到達予測タイミングより短いか、すなわち、所望のデフォーカス量が得られたかどうかを判別する。短い場合はStepC923に、そうでない場合はStepC925に進む。短くないと予測されていた場合は、現在もフォーカスレンズL105は駆動中であり、次回取得可能な焦点信号は適切なデフォーカス量が得られない可能性が高いため、誤動作を回避するためにTVAF制御の周期を遅らせる必要がある。
StepC923では、カメラマイコンC106は、フォーカスレンズL105が目標位置に到達したとして現在の位置を保存する。このとき保存されたフォーカスレンズ位置は次回のStepC911で取得する焦点信号に関連付けられる。
StepC924では、カメラマイコンC106は、次回の制御状態を無限駆動状態に設定する。
StepC925では、今回の駆動命令が直接的あるいは間接的に目標位置を指定する命令であるため、命令形態を位置指定命令に設定する。なお本実施形態では、この命令形態を位置指定命令と後述の方向指定命令の2種類とするが、その他、停止命令あるいは無効命令などを含んでいても構わない。カメラマイコンC106は、これら位置指定命令、方向指定命令、停止命令、無効命令の中から1つの命令形態を設定可能とする。ここで、位置指定命令は、フォーカスレンズの駆動目標位置を指定して制御する第1の制御であり、方向指定命令は、フォーカスレンズの駆動方向を指定して制御する第2の制御である。
StepC926では、カメラマイコンC106は、レンズマイコンL106に対して再度通信要求を送信し、レンズ通信を開始させる。
StepL904では、レンズマイコンL106は、カメラマイコンC106がStepC926で送信した通信要求を受信したかどうか判別し、そうである場合はStepL905に進み、そうでない場合はStepL904に戻って待つ。
StepC927では、カメラマイコンC106は、レンズ通信が開始されると、フォーカスレンズL105の駆動に関する情報を第2通信としてレンズマイコンL106に送信する。ここで、フォーカスレンズL105の駆動に関する情報とは、StepC925で設定した命令形態を含むものである。また、StepC906、StepC907またはStepC916、StepC917で求めた像面振幅量や像面中心移動量で示される目標デフォーカス量等を含むものである。また他にも、StepC908またはStepC918で演算した駆動開始タイミング、StepC909またはStepC919で演算した到達予測タイミング等が含まれる。図10の例で現在のVDが(5)である場合は、ここでの処理は命令形態(6)および目標デフォーカス量(6)等の送信タイミングに相当する。なお、微小駆動動作時においては、駆動速度はレンズマイコンL106側で設定されるため、駆動速度のデータを設定するデータ領域(第1のデータ領域)には、任意の数値が詰められる。つまり、駆動速度のデータ領域に設定されたデータ(ここでは駆動速度(6))はレンズユニット側で使用されない。ここで、レンズユニット側で使用されないにも関わらず駆動速度のデータ領域に任意の数値を詰めるのは、カメラマイコンC106とレンズマイコンL106で固定長パケット通信を行うためである。
StepL905では、レンズマイコンL106は、カメラマイコンC106がStepC927で送信した命令形態や目標デフォーカス量等のフォーカスレンズL105の駆動に関する情報を受信する。その後レンズマイコンL106は、受信した情報に基づき、後述するフォーカスレンズ駆動制御を行う。
以上の微小駆動動作の処理を行うと、カメラマイコンC106は、合焦方向と判断される方向が予め設定された回数(NB)連続して同一であるか否かを判定する。NB回の連続した合焦方向の一致を判定した場合、カメラマイコンC106は、方向判別ができたと判断する。この場合、図2のStep203からStep204に進み、方向判別できたとして山登り駆動モードへ移行する。
一方、NB回連続して合焦方向が同一だと判定しなかった場合、カメラマイコンC106は、フォーカスレンズL105が同一エリア内で予め設定された回数(NB)往復を繰り返した否かを判定する。同一エリア内の報復がNB回繰り返されたと判定した場合、カメラマイコンC106は、過去のレンズ位置情報に基づいて合焦位置演算を行い、合焦判定ができたと判定する。そして、図2のStep203で合焦判別できたとして、再起動判定モードへ移行する。
図2のStep209での山登り駆動動作時における、カメラマイコンC106およびレンズマイコンL106による制御の流れは、実施例1(図5および図6)と同じである。また、図9のStepL905および図5のStepL505の後に行われる、レンズマイコンL106によるフォーカスレンズ駆動制御の流れは、実施例1(図11)と同じである。なお、ここで上述した図11のStep1104の内容は、以下のように読み替えるものとする。すなわち、「さらに、ここで予測したフォーカスレンズL105の予測位置とStep1102で設定した目標位置とを比較することにより、StepL305で受信した到達予測タイミングから所定の許容時間内に目標位置に到達可能か否かを判定する。すなわち、カメラマイコンC106が所望する目標デフォーカス量が得られるかどうかを判定する。該到達予測判定の結果は、次回のStepL303においてレンズマイコンL106からカメラマイコンC106に送信される。」は、「さらに、実際にStep1102で設定した目標位置に到達可能となる時間を予測する。該予測到達時間の結果は、次回のStepL903においてレンズマイコンL106からカメラマイコンC106に送信される。」と読み替える。
本実施例でも、レンズマイコンL106は、受信した命令形態に応じて、特定のデータ領域にセットされた情報の有効/無効を切り換える。具体的には、位置指定命令の場合は駆動開始タイミングのデータ領域にセットされた情報を用いてフォーカスレンズL105の駆動を制御し、方向指定命令の場合は当該データ領域にセットされた情報をフォーカスレンズL105の駆動制御に用いない。このようにすることで、命令形態に応じて通信フォーマットを変更することなく、微小駆動、山登り駆動それぞれに応じたTVAF制御命令を通信することが可能になる。
このように、本実施例では、TVAF制御において、再起動判定→微小駆動→山登り駆動→停止→微小駆動→再起動判定を繰り返しながらフォーカスレンズL105を移動させる。これにより、焦点信号が常に最大となるように合焦状態が維持される。
また、本実施例では、カメラ本体からレンズユニットに対してフォーカスレンズL105の駆動に関する情報を送信し、レンズユニットからカメラ本体にフォーカスレンズL105の位置に関する情報を送信する。これにより、カメラ本体に装着されるレンズユニットごとに光学特性が異なる場合でも、レンズ一体型カメラと同様に、予めTVAF制御の周期を認識することが可能となり、良好なTVAF制御を行うことができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。