(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明の一実施形態に係る焦点調節装置の適用例としての撮像装置の一例の構成を示すブロック図である。撮像装置は、デジタルカメラ及びスマートフォンといった機器の他、フォーカスレンズを有する各種の撮像装置を含む。
【0011】
図1に示すように、撮像装置100は、撮影レンズ102と、焦点調節機構104と、絞り106と、絞り駆動機構108と、シャッタ110と、シャッタ駆動機構112と、撮像素子114と、撮像素子インターフェイス(IF)回路116と、RAM118と、表示素子120と、表示素子駆動回路122と、タッチパネル124と、タッチパネル駆動回路126と、記録メディア128と、システムコントローラ130と、操作部132と、FlashRom134と、ジャイロセンサ回路136とを有している。
【0012】
撮影レンズ102は、図示しない被写体からの光束を撮像素子114の受光面に導くための光学系である。撮影レンズ102は、フォーカスレンズを有している。フォーカスレンズは、撮影レンズ102の焦点位置を変化させるためのレンズである。撮影レンズ102は、ズームレンズとして構成されていてもよい。また、撮影レンズ102は、撮像装置100に対して着脱自在に構成されていてもよい。
【0013】
焦点調節機構104は、フォーカスレンズを駆動するための駆動機構を有している。焦点調節機構104は、システムコントローラ130のAF制御回路1302の制御に従ってフォーカスレンズをその光軸方向(図示一点鎖線方向)に駆動する。
【0014】
絞り106は、撮影レンズ102を介して撮像素子114に入射する光束の量を調節する。
【0015】
絞り駆動機構108は、絞り106を駆動するための駆動機構を有している。絞り駆動機構108は、システムコントローラ130のCPU1301の制御に従って絞り106を駆動する。
【0016】
シャッタ110は、撮像素子114の受光面を遮光状態又は露光状態とするように構成されている。シャッタ110は、撮像素子114の受光面を遮光している時間によって撮像素子114の露光時間を調節する。
【0017】
シャッタ駆動機構112は、シャッタ110を駆動するための駆動機構を有している。シャッタ駆動機構112は、システムコントローラ130のCPU1301の制御に従ってシャッタ110を駆動する。
【0018】
撮像素子114は、撮影レンズ102を介して導かれた光束を受光するための受光面を有している。撮像素子114の受光面には、2次元状に配置された複数の画素が設けられている。また、受光面の光入射側には、カラーフィルタが設けられている。このような撮像素子114は、受光面において受光された光束に応じた電気信号(以下、画像信号という)を生成する。
【0019】
撮像素子IF回路116は、システムコントローラ130のCPU1301の制御に従って撮像素子114を駆動する。また、撮像素子IF回路116は、システムコントローラ130のCPU1301の制御に従って、撮像素子114で得られた画像信号を読み出す。そして、撮像素子IF回路116は、読み出した画像信号に対してCDS(相関二重サンプリング)処理及びAGC(自動利得制御)処理等のアナログ処理を施す。さらに、撮像素子IF回路116は、アナログ処理した画像信号に基づくデジタル信号(以下、画像データという)を生成する。
【0020】
RAM118は、例えばSDRAMであり、ワーク領域を有している。ワーク領域は、撮像装置100の各部で発生したデータを一時記憶しておくための記憶領域である。
【0021】
表示素子120は、例えば液晶ディプレイ(LCD)である。表示素子120は、各種の画像を表示する。表示素子駆動回路122は、システムコントローラ130のCPU1301から入力された画像データに基づいて表示素子120を駆動する。
【0022】
タッチパネル124は、表示素子120の表示画面上に一体的に形成されており、表示画面上へのユーザの指等の接触位置を検出する。タッチパネル駆動回路126は、タッチパネル124を駆動するとともに、タッチパネル124からの接触検出信号をシステムコントローラ130のCPU1301に出力する。CPU1301は、接触検出信号から、ユーザの表示画面上への接触操作を検出し、その接触操作に応じた処理を実行する。
【0023】
記録メディア128は、例えばメモリカードである。記録メディア128には、動画撮影動作によって得られた動画ファイルが記録される。
【0024】
システムコントローラ130は、撮像装置100の動作を制御するための制御回路として、CPU1301と、AF制御回路1302と、AE制御回路1303と、画像処理回路1304と、顔認識回路1305と、動画記録回路1306とを有している。システムコントローラ130と同様の機能は、ソフトウェアによって実現されてもよい。
【0025】
CPU1301は、絞り駆動機構108、シャッタ駆動機構112、表示素子駆動回路122、タッチパネル駆動回路126等のシステムコントローラ130の外部の各ブロック、及びシステムコントローラ130の内部の各制御回路の動作を制御する。
【0026】
焦点検出装置としてのAF制御回路1302は、コントラストAF方式によってAF処理を制御する。AF制御回路1302は、方向判断部の機能と、制御部との機能を有している。AF制御回路1302は、画像データに対して焦点検出領域を設定する。そして、AF制御回路1302は、フォーカスレンズの駆動に伴って撮像素子114を介して逐次に得られる焦点検出領域の画像データから評価値を算出する。評価値は、例えば焦点検出領域における画像データをハイパスフィルタ処理(HPF)することによって得られる。また、AF制御回路1302は、評価値に基づいて合焦に向かうフォーカスレンズの駆動方向を判断し、方向判断結果に従ってフォーカスレンズを合焦位置まで駆動する。
【0027】
AE制御回路1303は、画像データ等から得られる被写体輝度に基づいてAE処理を制御する。
【0028】
画像処理回路1304は、画像データに対する各種の画像処理を行う。画像処理としては、色補正処理、ガンマ(γ)補正処理、圧縮処理等が含まれる。また、画像処理回路1304は、圧縮されている画像データに対する伸張処理も施す。
【0029】
顔認識回路1305は、例えばテンプレートマッチングを用いて、画像データにおける人物の顔を認識する。顔の認識結果に基づいてAF処理及びAE処理が行われ得る。
【0030】
動画記録回路1306は、動画記録の動作を制御する。
【0031】
操作部132は、ユーザによって操作される各種の操作部材である。操作部132としては、例えば、レリーズボタン、動画ボタン、モードボタン、選択キー、電源ボタン等が含まれる。レリーズボタンは、静止画撮影の指示をするための操作部材である。動画ボタンは、動画撮影の指示をするための操作部材である。モードボタンは、撮像装置100の撮影設定を選択するための操作部材である。選択キーは、例えばメニュー画面上での項目の選択や決定をするための操作部材である。電源ボタンは、撮像装置の電源をオン又はオフするための操作部材である。
【0032】
FlashRom134は、CPU1301が種々の処理を実行するためのプログラムコードを記憶している。また、FlashRom134は、撮影レンズ102、絞り106、及び撮像素子114等の動作に必要な制御パラメータ、並びに画像処理回路1304での画像処理に必要な制御パラメータ等の、各種の制御パラメータを記憶している。
【0033】
ジャイロセンサ回路136は、撮像装置100の姿勢変化を検出するセンサである。ジャイロセンサ回路136は、例えば撮像装置100に発生した角速度を検出することによって撮像装置100の姿勢変化を検出する。
【0034】
以下、本実施形態に係る焦点検出装置の適用例としての撮像装置100の動作を説明する。以下で説明する動作は、動画記録時のAF処理である動画AF時の動作である。勿論、撮像装置100は、静止画記録も可能に構成されていてもよい。
【0035】
本実施形態において、評価値は、画面内に対して設定された複数の焦点検出領域である大領域、中領域、小領域のそれぞれに対して算出される。
図2は、大領域、中領域、小領域のそれぞれについて示す図である。大領域202は、演算の負荷等を考慮して決定された所定のサイズを有するように画面内に設定される。中領域204は、大領域202と少なくとも一部において重なっており、かつ、大領域202よりも小さいサイズを有するように画面内に設定される。小領域206は、大領域202及び中領域204の両方と少なくとも一部において重なっており、かつ、中領域204よりも小さいサイズを有するように画面内に設定される。
図2では、大領域202は、画面中央に設定されている。また、中領域204は、大領域202の内部に設定されている。さらに、小領域206は、中領域204の上段左側、上段中央、上段右側、中段左側、中段中央、中段右側、下段左側、下段中央及び下段右側にそれぞれ設定されている。
図2においては、それぞれの小領域には、(1)−(9)の番号が付されている。
【0036】
図3は、本実施形態における動画AF時の処理の概要を示す図である。本実施形態における撮像装置による動画AF時の処理では、状態が「ステップ(step)フェーズ」、「サーチフェーズ」、「待機フェーズ」からなる3つの制御フェーズの間で遷移する。ステップフェーズは、至近方向と無限方向のうちの何れかの方向(第1の方向)への微小量のフォーカスレンズの相対駆動と第1の方向の逆方向(第2の方向)への微小量のフォーカスレンズの相対駆動とを併用してフォーカスレンズを合焦位置まで駆動するフェーズである。ステップフェーズの詳細については後で詳しく説明する。サーチフェーズは、フォーカスレンズを至近方向又は無限方向に連続駆動させながらフォーカスレンズを合焦位置まで駆動するフェーズである。待機フェーズは、フォーカスレンズを駆動せずに処理を待機するフェーズである。
【0037】
ステップフェーズでは、フォーカスレンズのレンズ位置が合焦位置から遠いと判定されたとき、すなわち、評価値のピーク位置が遠いと判定されたとき、制御フェーズはサーチフェーズに遷移する。サーチフェーズに遷移することによって、フォーカスレンズは素早く合焦位置付近へと移動する。一方、ステップフェーズにおいて、レンズ位置は合焦位置であると判定されたとき、すなわち、評価値のピークが検出されたと判定されたとき、制御フェーズは待機フェーズに遷移し、レンズ駆動は停止される。また、ステップフェーズにおいて、フォーカスレンズが端点位置に達したと判定されたときも、制御フェーズは待機フェーズに遷移し、レンズ駆動は停止される。
【0038】
サーチフェーズでは、レンズ位置が合焦位置付近だと判定されたとき、すなわち、評価値のピーク付近であると判断されたとき、制御フェーズはステップフェーズに遷移する。この後、ステップ駆動によって、フォーカスレンズは合焦位置まで移動させられる。一方、サーチフェーズにおいて、レンズ位置は合焦位置であると判定されたとき、すなわち、評価値がピークとなって安定した状態にあると判定されたとき、制御フェーズは待機フェーズに遷移し、レンズ駆動は停止される。
【0039】
待機フェーズでは、撮像装置100の動きの検出があったときや、画像のコントラストの変化、顔情報の変化等があったとき、すなわち、撮像装置又は被写体の状況の変化が検出されたとき、制御フェーズはステップフェーズに遷移する。このとき、フォーカスレンズを合焦状態とするようにステップ駆動が開始される。
【0040】
以下、ステップフェーズについてさらに説明する。
図4は、ステップフェーズにおける全体処理について示すフローチャートである。
図4の処理は、例えばユーザによって動画ボタンが押された後、AF制御回路1302によって動画記録の1フレーム毎に行われる処理である。以下で説明する処理は、CPU1301等のAF制御回路1302以外の回路によって行われてもよい。また、特定の回路だけでなく、分散処理によって行われてもよい。
【0041】
ステップS1において、AF制御回路1302は、端点判断処理を行う。端点判断処理において、AF制御回路1302は、現在のフォーカスレンズの位置が端点位置であるか否かを判断する。現在のフォーカスレンズの位置が至近側又は無限側の端点位置であると判断されたときに、AF制御回路1302は、処理を待機フェーズに遷移させるか又はステップフェーズのままとするかを判断する。例えば、ステップフェーズの実行回数が所定回数を超えても合焦に至らなかった場合には、AF制御回路1302は、処理を待機フェーズに遷移させると判断する。待機フェーズにおいて、被写体状況の変化が検出されたときには、AF制御回路1302は、処理をステップフェーズに遷移させる。被写体状況の変化は、例えばコントラストの変化、動きベクトルの変化又は撮像装置100の動きの変化である。
【0042】
現在のフォーカスレンズの位置が端点位置でないと判断されたとき又はステップフェーズを継続すると判断されたときには、AF制御回路1302は、処理をステップS2に移行させる。ステップS2において、AF制御回路1302は、合焦判断処理を行う。合焦判断処理において、AF制御回路1302は、フォーカスレンズが合焦に至ったか否かを判断する。合焦判断処理において、合焦判断が成立したときには、AF制御回路1302は、処理を待機フェーズに遷移させる。合焦判断処理の詳細については後で説明する。
【0043】
合焦判断処理において、合焦判断が成立していないときには、AF制御回路1302は、処理をステップS3に移行させる。ステップS3において、AF制御回路1302は、方向判断処理を行う。方向判断処理は、焦点検出領域の全体としてのフォーカスレンズの駆動方向を判断する処理である。方向判断処理の詳細については後で説明する。
【0044】
ステップS4において、AF制御回路1302は、フォーカス状態更新処理を行う。その後、処理はステップS5に移行する。フォーカス状態更新処理は、現在の動画AFにおけるフォーカス状態を更新する処理である。本実施形態ではフォーカス状態に応じた異なる処理が行われる。フォーカス状態更新処理の詳細については後で説明する。
【0045】
ステップS5において、AF制御回路1302は、レンズ駆動処理を行う。その後、処理はステップS6に移行する。レンズ駆動処理は、合焦のためのレンズ駆動を行う処理である。レンズ駆動処理の詳細については後で説明する。
【0046】
ステップS6において、AF制御回路1302は、サーチ遷移判断処理を行う。その後、
図4の処理は終了する。サーチ遷移判断処理において、AF制御回路1302は、過去からの方向判断結果の履歴とレンズ駆動の履歴等から、制御フェーズをサーチフェーズに遷移させるか否かを判断する。例えば、ステップフェーズにおけるフォーカスレンズの駆動方向の反転回数が閾値を超えたと判定されたとき、AF制御回路1302は、制御フェーズをサーチフェーズに遷移させると判断する。サーチフェーズにおいて、フォーカスレンズの位置が合焦位置付近であると判定されたときには、AF制御回路1302は、処理をステップフェーズに遷移させる。また、サーチ遷移判断処理において、制御フェーズをサーチフェーズに遷移させないと判断されたときには、処理はステップS1に戻る。
【0047】
次に、方向判断処理を説明する。
図5は、方向判断処理の概念図である。フォーカスレンズの駆動すべき方向は、大領域202と、中領域204と、9個の小領域206との焦点検出領域のそれぞれにおいて得られた方向判断結果に基づいて決定される。11個の焦点検出領域のそれぞれでは、
図5に示すように、3種類のハイパスフィルタ処理(HPF)によって得られた評価値に基づいてフォーカスレンズの駆動方向が判断される。このように、本実施形態における方向判断処理は、階層的に行われる。以下では、3種類のHPFを、カットオフ周波数が低いものから順にHPF1、HPF2及びHPF3と言うこととする。
【0048】
図6は、方向判断処理の一例を示すフローチャートである。まず、AF制御回路1302は、それぞれの焦点検出領域に対するループ処理を行う。焦点検出領域は、例えば右上の小領域から左下の小領域の順で選択され、その後に中領域、大領域の順で選択される。焦点検出領域の選択順は、異なる選択順であってもよい。
【0049】
それぞれの焦点検出領域に対するループ処理において、AF制御回路1302は、それぞれのHPFに対するループ処理を行う。HPFは、例えばHPF1、HPF2、HPF3の順で選択される。HPFの選択順は、異なる選択順であってもよい。
【0050】
それぞれのHPFに対する処理の開始であるステップS11において、AF制御回路1302は、方向判断演算処理を行う。方向判断演算処理について説明する。
図7は、方向判断演算処理について示すフローチャートである。ステップS21において、AF制御回路1302は、方向判断の演算に必要な数の評価値が蓄積されているか否かを判定する。一例では、方向判断の演算には、少なくとも2フレーム分の評価値が必要である。ただし、2フレーム分の評価値では方向判断を行うことができない可能性もあるので、本実施形態では3フレーム分の評価値を用いて方向判断が行われるものとする。ステップS21において、方向判断の演算に必要な数の評価値が蓄積されていないと判定されたときには、
図7の処理は終了する。ステップS21において、方向判断の演算に必要な数の評価値が蓄積されていると判定されたときには、処理はステップS22に移行する。
【0051】
ステップS22において、AF制御回路1302は、af_val_dlt演算処理を行う。その後、処理はステップS23に移行する。af_val_dlt演算処理は、評価値Afval[n-1]及びAfval[n](nはフレーム番号)の差分及び評価値Afval[n-2]及びAfval[n]の差分、すなわち以下の(式1)のAfval_dlt_1及びAfval_dlt_2を演算する処理である。なお、ここでは現フレームの評価値と2フレーム前までの評価値との差分が演算されるが、現フレームの評価値と3フレーム以降前までの評価値との差分が演算されてもよい。
Afval_dlt_1=Afval[n]−Afval[n-1]
Afval_dlt_2=Afval[n]−Afval[n-2] (式1)
図8は、時間(フレーム)の経過と評価値の変化との関係を示す。被写体のコントラストが正しく捉えられており、かつ、フォーカスレンズが合焦付近にないときには、評価値は、
図8に示すように、時間の経過、すなわちフォーカスレンズの位置の変化に伴って単調増加又は単調減少する。
【0052】
ステップS23において、AF制御回路1302は、af_val_dlt判定処理を行う。その後、
図7の処理は終了する。af_val_dlt判定処理は、現在の選択中の焦点検出領域におけるフォーカスレンズの駆動方向を判断するための処理である。ステップS23のaf_val_dlt判定処理について説明する。
図9は、af_val_dlt判定処理について示すフローチャートである。
【0053】
ステップS31において、AF制御回路1302は、被写体のコントラストが十分であるか否かを判定する。例えば、評価値の大きさが閾値以上であれば、被写体のコントラストが十分であると判定される。ステップS31において、被写体のコントラストが十分であると判定されたときには、処理はステップS32に移行する。ステップS31において、被写体のコントラストが十分でないと判定されたときには、処理はステップS38に移行する。
【0054】
ステップS32において、AF制御回路1302は、評価値の差分Afval_dlt_1の絶対値及び符号から方向判断を行う。まず、評価値の差分Afval_dlt_1の絶対値が予め定められた方向判断基準値を超えるある範囲外であるときには、方向判断は確定されない。この場合には、処理はステップS35に移行する。一方、評価値の差分Afval_dlt_1の絶対値が方向判断基準値を超えるある範囲内であって、評価値の差分Afval_dlt_1の符号が正であるときには、方向判断結果は今回のaf_val_dlt判定処理の直前のフォーカスレンズの駆動方向と同方向である。すなわち、フォーカスレンズが無限側から至近側に駆動されていたときには、方向判断結果は「無限から至近(Near)」である。また、フォーカスレンズが至近側から無限側に駆動されていたときには、方向判断結果は「至近から無限(Far)」である。さらに、評価値の差分Afval_dlt_1の絶対値が方向判断基準値によって定まる範囲内であって、評価値の差分Afval_dlt_1の符号が負であるときには、方向判断結果は今回のaf_val_dlt判定処理の直前のフォーカスレンズの駆動方向と逆方向である。すなわち、フォーカスレンズが無限側から至近側に駆動されていたときには、方向判断結果は「Far」である。また、フォーカスレンズが至近側から無限側に駆動されていたときには、方向判断結果は「Near」である。ステップS32において、方向判断結果が「Near」であると判定されたときには、処理はステップS33に移行する。ステップS32において、方向判断結果が「Far」であると判定されたときには、処理はステップS34に移行する。
【0055】
ステップS33において、AF制御回路1302は、現在の選択中の焦点検出領域の現在の選択中の評価値に対する方向判断結果を「Near」に設定する。その後、
図9の処理は終了し、処理は、
図6のHPFに対するループ処理の終了判定に移行する。ステップS34において、AF制御回路1302は、現在の選択中の焦点検出領域の現在の選択中の評価値に対する方向判断結果を「Far」に設定する。その後、
図9の処理は終了し、処理は、
図6のHPFに対するループ処理の終了判定に移行する。
【0056】
ステップS35において、AF制御回路1302は、評価値の差分Afval_dlt_2の絶対値及び符号から方向判断を行う。評価値の差分Afval_dlt_1を用いた判断と同様、評価値の差分Afval_dlt_2の絶対値が予め定められた方向判断基準値を超えるある範囲外であるときには、方向判断は確定されない。この場合には、処理はステップS38に移行する。一方、評価値の差分Afval_dlt_2の絶対値が方向判断基準値を超えるある範囲内であって、評価値の差分Afval_dlt_2の符号が正であるときには、方向判断結果は今回のaf_val_dlt判定処理の直前のフォーカスレンズの駆動方向と同方向である。すなわち、フォーカスレンズが無限側から至近側に駆動されていたときには、方向判断結果は「Near」である。また、フォーカスレンズが至近側から無限側に駆動されていたときには、方向判断結果は「Far」である。さらに、評価値の差分Afval_dlt_2の絶対値が方向判断基準値によって定まる範囲内であって、評価値の差分Afval_dlt_2の符号が負であるときには、方向判断結果は今回のaf_val_dlt判定処理の直前のフォーカスレンズの駆動方向と逆方向である。すなわち、フォーカスレンズが無限側から至近側に駆動されていたときには、方向判断結果は「Far」である。また、フォーカスレンズが至近側から無限側に駆動されていたときには、方向判断結果は「Near」である。ステップS35において、方向判断結果が「Near」であると判定されたときには、処理はステップS36に移行する。ステップS35において、方向判断結果が「Far」であると判定されたときには、処理はステップS37に移行する。
【0057】
ステップS36において、AF制御回路1302は、現在の選択中の焦点検出領域の現在の選択中の評価値に対する方向判断結果を「Near」に設定する。その後、
図9の処理は終了し、処理は、
図6のHPFに対するループ処理の終了判定に移行する。ステップS37において、AF制御回路1302は、現在の選択中の焦点検出領域の現在の選択中の評価値に対する方向判断結果を「Far」に設定する。その後、
図9の処理は終了し、処理は、
図6のHPFに対するループ処理の終了判定に移行する。
【0058】
ステップS38において、現在の選択中の焦点検出領域の現在の選択中の評価値に対する方向判断結果を「不定」に設定する。その後、
図9の処理は終了し、処理は、
図6のHPFに対するループ処理の終了判定に移行する。
【0059】
このように、本実施形態では、直近の3フレームの評価値を用いて2段階の方向判断が行われるので、方向判断の精度を高めることが可能である。なお、
図9では、3フレーム分の評価値から方向判断が行われる例が示されているが、4フレーム以上分の評価値を用いて方向判断が行われてもよい。af_val_dlt判定処理において用いられる評価値の数は、方向判断の精度とAFの処理時間とのトレードオフによって適宜決定され得る。
【0060】
ここで、
図6の説明に戻る。ステップS11の方向判断演算の後、AF制御回路1302は、それぞれのHPFに対するループ処理の終了判定を行う。すなわち、現在の選択中の焦点検出領域についてのすべてのHPFの結果に対してステップS11の処理が終了したと判定されたときには、それぞれのHPFに対するループ処理は終了する。この場合、処理はステップS12に移行する。一方、現在の選択中の焦点検出領域についてのすべてのHPFの結果に対してステップS11の処理が終了していないと判定されたときには、HPFの切り替え後、処理はステップS11に戻る。
【0061】
ステップS12において、AF制御回路1302は、選択中の焦点検出領域の方向判断処理を行う。その後、処理はそれぞれの焦点検出領域に対するループ処理の終了判定に移行する。焦点検出領域全体の方向判断処理について説明する。
図10は、個々の焦点検出領域の方向判断処理について示すフローチャートである。ステップS41において、AF制御回路1302は、HPFの優先順位判定処理を行う。その後、処理は、それぞれの焦点検出領域に対するループ処理の終了判定に移行する。
【0062】
HPFの優先順位判定処理は、例えば
図11に示すテーブルに従って行われる。
図11において、「○」は、対応するHPFの結果を用いて方向判断が確定されたことを示す。また、「同一」は、他のHPFの結果に基づく方向判断結果と同一の方向判断結果となったことを示す。
【0063】
図11の例では、AF制御回路1302は、まず、HPF3の結果を用いて方向判断が確定されているか否かを判定する。HPF3の結果を用いて方向判断が確定されているときには、AF制御回路1302は、HPF3による方向判断結果を採用する。
【0064】
HPF3による方向判断が確定されていないときには、AF制御回路1302は、HPF2による方向判断結果とHPF1による方向判断結果とが同一であるか否かを判定する。HPF2による方向判断結果とHPF1による方向判断結果とが同一であるときには、AF制御回路1302は、HPF2による方向判断結果を採用する。
【0065】
HPF2による方向判断結果とHPF1による方向判断結果とが同一でないときには、AF制御回路1302は、HPF2の結果を用いて方向判断が確定されたか否かを判定する。HPF2の結果を用いて方向判断が確定されているときには、AF制御回路1302は、HPF2による方向判断結果を採用する。HPF2の結果を用いて方向判断が確定されていないときには、AF制御回路1302は、HPF1の結果を用いて方向判断が確定されたか否かを判定する。HPF1の結果を用いて方向判断が確定されているときには、AF制御回路1302は、HPF1による方向判断結果を採用する。
【0066】
このように、
図11の例では、カットオフ周波数が高いHPFの結果に基づく方向判断結果を重視するように優先順位が設定されている。これは、カットオフ周波数が高いHPFの結果に基づく方向判断結果は、撮影画像がより高周波成分をより多く含む合焦付近では、より精度が高いためである。
【0067】
ここで、
図6の説明に戻る。ステップS12の後、AF制御回路1302は、それぞれの焦点検出領域に対するループ処理の終了判定を行う。すなわち、すべての焦点検出領域に対してステップS11−S12の処理が終了したと判定されたときには、それぞれの焦点検出領域に対するループ処理は終了する。この場合、処理はステップS13に移行する。一方、すべて焦点検出領域に対してステップS11−S12の処理が終了していないと判定されたときには、焦点検出領域の切り替え後、処理はステップS11に戻る。
【0068】
ステップS13において、AF制御回路1302は、焦点検出領域の全体の方向判断処理を行う。これにより、方向判断処理は終了する。その後、処理は、
図4のステップS4に移行する。全体の方向判断処理について説明する。
図12は、全体の方向判断処理について示すフローチャートである。ステップS51において、AF制御回路1302は、焦点検出領域の優先順位判定処理を行う。その後、
図12の処理は終了する。
【0069】
焦点検出領域の優先順位判定処理は、例えば
図13に示すテーブルに従って行われる。
図13に示すテーブルにおいては、小領域の、また、中央に近い「Near」の結果を優先するように優先順位が設定されている。ただし、小領域についての方向判断結果は、以下の条件のすべてを満たしているときにしか考慮されない。
(1)追尾中でない
(2)顔検出中でない
(3)デジタルテレコン中でない
(4)ムービーテレコン中でない
(5)ジャイロセンサ回路136の出力取得中でない
(6)(方向判断結果が「Near」の小領域にのみ適用)現在のフォーカスレンズの位置が光学至近よりも至近位置にない
(7)被写体が点光源でない
図13の例では、AF制御回路1302は、まず、小領域(5)についての方向判断結果が「Near」であるか否かを判定する。「Near」であるときには、AF制御回路1302は、全体としての方向判断結果を「Near」に決定する。小領域(5)についての方向判断結果が「Near」でないときには、AF制御回路1302は、小領域(8)についての方向判断結果が「Near」であるか否かを判定する。「Near」であるときには、AF制御回路1302は、全体としての方向判断結果を「Near」に決定する。小領域(8)についての方向判断結果が「Near」でないとき、AF制御回路1302は、小領域(4)についての方向判断結果が「Near」であるか否かを判定する。「Near」であるとき、AF制御回路1302は、全体としての方向判断結果を「Near」に決定する。以下同様に、AF制御回路1302は、小領域(6)、小領域(2)、小領域(7)、小領域(9)、小領域(1)、小領域(3)、中領域の順に方向判断結果が「Near」であるか否かを判定する。「Near」であるとき、AF制御回路1302は、全体としての方向判断結果を「Near」に決定する。
【0070】
中領域についての方向判断結果が「Near」でないとき、AF制御回路1302は、小領域(5)についての方向判断結果が「Far」であるか否かを判定する。「Far」であるときには、AF制御回路1302は、全体としての方向判断結果を「Far」に決定する。小領域(5)についての方向判断結果が「Far」でないときには、AF制御回路1302は、小領域(8)についての方向判断結果が「Far」であるか否かを判定する。「Far」であるときには、AF制御回路1302は、全体としての方向判断結果を「Far」に決定する。小領域(8)についての方向判断結果が「Far」でないとき、AF制御回路1302は、小領域(4)についての方向判断結果が「Far」であるか否かを判定する。「Far」であるとき、AF制御回路1302は、全体としての方向判断結果を「Far」に決定する。以下同様に、AF制御回路1302は、小領域(6)、小領域(2)、小領域(7)、小領域(9)、小領域(1)、小領域(3)、中領域の順に方向判断結果が「Far」であるか否かを判定する。「Far」であるとき、AF制御回路1302は、全体としての方向判断結果を「Far」に決定する。
【0071】
中領域についての方向判断結果が「Far」でないとき、AF制御回路1302は、大領域についての方向判断結果が「Near」であるか否かを判定する。「Near」であるとき、AF制御回路1302は、全体としての方向判断結果を「Near」に決定する。「Near」でないとき、AF制御回路1302は、大領域についての方向判断結果が「Far」であるか否かを判定する。「Far」であるとき、AF制御回路1302は、全体としての方向判断結果を「Far」に決定する。「Far」でないとき、AF制御回路1302は、全体としての方向判断結果を「不定」に決定する。
【0072】
このように、
図13の例では、小領域、中領域、大領域の順に優先順位が高く設定されている。これは、小領域であれば、遠近混在被写体の影響を低減することができるためである。また、小領域同士では、中央ほど優先順位が高く、上よりも下の方で優先順位が高く設定されている。これは、中央に注目する被写体が配置されるように構図が決定されることが多く、また、画像の上よりも下の方に注目する被写体があることが多いためである。また、画像の上よりも下の方に、手前側の被写体が存在することが多いためである。
【0073】
次に、フォーカス状態更新処理について説明する。動画AFでは、パン又はチルトといったユーザによる撮像装置100の移動操作のような焦点調節に影響を与え得る変化がある。また、撮像装置100は移動していなくても、被写体のコントラストの変化や被写体の移動といった焦点調節に影響を与え得る被写体状態の変化もある。フォーカス状態更新処理では、これらの撮像装置100の状態の変化や被写体状態の変化から、現在のフォーカス状態が
図14の状態遷移図の中の何れかの状態に更新される。
図14の例では、フォーカス状態は、「パン中」、「動きベクトル」、「通常」、「遠近混在」、「不明」、「合焦付近」の何れかを含む。「パン中」は、ジャイロセンサ回路136の出力によって撮像装置100のパン移動(撮像装置100を地表に対して平行な方向に略等速移動させるユーザ操作)又はチルト移動(撮像装置100を地表に対して垂直な方向に略等速移動させるユーザ操作)が検出されている状態である。「動きベクトル」は、動きベクトルの変化から被写体の移動が検出されている状態である。「通常」は、被写体が遠近混在被写体でない通常被写体である、すなわち1つの焦点検出領域内に複数の距離の異なる被写体が存在していないと判定された状態である。「遠近混在」は、被写体が遠近混在被写体である、すなわち1つの焦点検出領域内に複数の距離の異なる被写体が存在していると判定された状態である。「不明」は、被写体が遠近混在被写体であるか通常被写体であるかが判定されていない状態である。「合焦付近」は、フォーカスレンズの位置が合焦付近にあると判定された状態である。
図14に示すように、フォーカス状態が「パン中」又は「動きベクトル」であるとき、フォーカス状態は元の状態を維持するか又は「不明」に遷移し得る。フォーカス状態が「不明」であるとき、フォーカス状態は元の状態を維持するか又は「遠近混在」或いは「通常」に遷移し得る。フォーカス状態が「遠近混在」であるとき、フォーカス状態は元の状態を維持するか又は「通常」に遷移し得る。フォーカス状態が「通常」であるとき、フォーカス状態は元の状態を維持するか又は「合焦付近」に遷移し得る。また、全てのフォーカス状態において、評価値変化が大きいときには、「不明」に遷移し得る。
【0074】
図15は、フォーカス状態更新処理について示すフローチャートである。ステップS61において、AF制御回路1302は、ジャイロ判定処理を行う。ジャイロ判定処理は、フォーカス状態更新処理において最も優先順位の高い処理である。ジャイロ判定処理において、AF制御回路1302は、ジャイロセンサ回路136の出力から撮像装置100がパン移動又はチルト移動しているか否かを判定する。例えば、パン方向(地表に平行な方向)の移動を検出するジャイロセンサ回路136の出力からパン方向への略等速移動が検出されたときには、パン移動していると判定される。また、チルト方向(地表に垂直な方向)の移動を検出するジャイロセンサ回路136の出力からチルト方向への略等速移動が検出されたときには、チルト移動していると判定される。撮像装置100がパン移動又はチルト移動していると判定されたときには、AF制御回路1302は、フォーカス状態を「パン中」に遷移させる。その後、
図15の処理は終了する。撮像装置100がパン移動もチルト移動もしていないと判定されたときには、AF制御回路1302は、現在のフォーカス状態が「パン中」であるか否かを判定する。現在のフォーカス状態が「パン中」であると判定されたときには、AF制御回路1302は、フォーカス状態を「不明」に遷移させる。その後、
図15の処理は終了する。現在のフォーカス状態が「パン中」でないと判定されたときには、処理はステップS62に移行する。
【0075】
ステップS62において、AF制御回路1302は、コントラスト変化検出処理を行う。コントラスト変化検出処理は、ステップ駆動によらない評価値の変化を検出するための処理である。ここで、コントラスト変化検出処理では、大領域の評価値の変化が判定される。コントラスト変化検出処理では、
図16に示すように、コントラストを示す値である評価値Afval[n]の一定値以上の減少が一定期間継続したか否かが判定される。そして、評価値Afval[n]の一定値以上の減少が一定期間継続したと判定されたときには、AF制御回路1302は、フォーカス状態を「不明」に遷移させる。その後、
図15の処理は終了する。評価値Afval[n]の一定値以上の減少がない又は評価値Afval[n]の減少が一定期間継続していないと判定されたときには、処理はステップS63に移行する。なお、評価値Afval[n]の減少のみで判定が行われるのは、フォーカスレンズの駆動による評価値Afval[n]の増加によって評価値Afval[n]が変化していると判定されないようにするためである。
【0076】
ステップS63において、AF制御回路1302は、動きベクトル判定処理を行う。動きベクトル判定処理において、AF制御回路1302は、複数フレームの画像データから一定の大きさを超える動きベクトルが検出されたか否かを判定する。一定の大きさを超える動きベクトルが検出されたと判定されたときには、AF制御回路1302は、フォーカス状態を「動きベクトル」に遷移させる。その後、
図15の処理は終了する。一定の大きさを超える動きベクトルが検出されていないと判定されたときには、処理はステップS64に移行する。
【0077】
ステップS64において、AF制御回路1302は、マトリクス判定処理を行う。マトリクス判定処理では、現在のフォーカス状態によって異なる判定が行われる。そして、この判定の結果に従ってフォーカス状態が更新される。
図17は、現在のフォーカス状態と、判定の内容と、フォーカス状態の遷移先とを対応付けたテーブルを示す図である。
図17の例では、現在のフォーカス状態が「通常」であるときには、合焦付近判定処理が行われる。合焦付近判定処理では、フォーカス状態は、「合焦付近」に遷移し得る。また、現在のフォーカス状態が「遠近混在」であるときには、通常被写体判定処理が行われる。通常被写体判定処理では、フォーカス状態は、「通常」に遷移し得る。また、現在のフォーカス状態が「不明」であるときには、遠近混在判定処理が行われる。遠近混在判定処理では、フォーカス状態は、「遠近混在」又は「通常」に遷移し得る。
【0078】
合焦付近判定処理について説明する。合焦付近判定処理は、ステップフェーズにおける駆動方向の履歴と評価値の変化とからフォーカスレンズが合焦位置に近づいているかを判定する処理である。合焦付近判定処理では、以下の4つの条件をすべて満たすか否かが判定される。
(1)同一の駆動方向のステップ駆動が一定回数以上行われている
(2)対象の焦点検出領域の方向判断基準値に対する評価値の変化が閾値以上である
(3)対象の焦点検出領域の現在のHPF1の結果が閾値以上である
(4)対象の焦点検出領域の方向判断結果はHPF3の結果が採用されている
合焦付近判定処理では、(1)−(4)の条件をすべて満たすと判定されたときには、AF制御回路1302は、フォーカス状態を「合焦付近」に遷移させる。その後、
図15の処理は終了する。
図18は、(1)−(4)の条件を満たしているときのレンズ位置及び評価値の状態の一例を示している。
図18のグラフの横軸はフレーム番号を示している。
図18の上のグラフの縦軸はレンズ位置LDPを示し、下のグラフの縦軸は評価値Afval[n]を示している。
【0079】
また、合焦付近判定処理では、(1)―(4)の条件をすべて満たさないと判定されたときには、AF制御回路1302は、フォーカス状態を「通常」のままにする。その後、
図15の処理は終了する。
【0080】
通常被写体判定処理について説明する。通常被写体判定処理は、被写体が通常被写体であるか又は遠近混在被写体であるか否かを判定する処理である。通常被写体判定処理においては、中領域と小領域の方向判断結果が同一であるフレームが連続しているときには、被写体は通常被写体であると判定される。
【0081】
具体的な処理として、AF制御回路1302は、通常被写体判定処理を行う毎に、現在の焦点検出領域全体の方向判断結果と中領域の方向判断結果とが同一であるか否かを判定する。
図13からも分かるように、方向判断処理においては、小領域の方向判断結果は中領域の方向判断結果よりも重視される。したがって、現在の焦点検出領域全体の方向判断結果と中領域の方向判断結果とが同一であれば、中領域と小領域の方向判断結果が同一であると考えることができる。
【0082】
現在の焦点検出領域全体の方向判断結果と中領域の方向判断結果とが同一であると判定したとき、AF制御回路1302は、カウント値general_sbj_cntをカウントアップする。カウント値general_sbj_cntは、中領域と小領域の方向判断結果が同一であるフレームの連続数を示すカウント値である。カウント値general_sbj_cntは、例えばステップフェーズの開始時及びフォーカス状態の更新時に更新される。カウント値general_sbj_cntのカウントアップ後、AF制御回路1302は、カウント値general_sbj_cntが閾値以上であるか否かを判定する。カウント値general_sbj_cntが閾値以上であると判定したとき、AF制御回路1302は、フォーカス状態を「通常」に遷移させる。カウント値general_sbj_cntをカウントアップしていないとき又はカウント値general_sbj_cntが閾値未満であると判定したとき、AF制御回路1302は、フォーカス状態を「遠近混在」のままにする。その後、
図15の処理は終了する。
【0083】
遠近混在判定処理について説明する。遠近混在判定処理は、フォーカス状態が「不明」であるときに、被写体が通常被写体であるのか又は遠近混在被写体であるのかを判定するための処理である。
図19は、遠近混在判定処理について示すフローチャートである。ステップS71において、AF制御回路1302は、遠近混在判定処理を実施するか否かを判定する。以下の条件をすべて満たすときには、遠近混在判定処理を実施すると判定される。
(1)フォーカスレンズの駆動による像倍率変動が大きくない
(2)絞り106が絞り込まれていない
(3)被写界深度が深くない
(4)フォーカスレンズの無限端から至近端までの像面距離が単位デフォーカス像面移動量(フォーカスレンズが単位距離だけ移動したときの像面上での像の移動量)と比較して長くない
ステップS71において遠近混在判定処理を実施しないと判定されたときに、処理はステップS72に移行する。ステップS71において遠近混在判定処理を実施すると判定されたときに、処理はステップS75に移行する。
【0084】
ステップS72において、AF制御回路1302は、被写体を通常被写体と確定するか否かを判定する。ステップS72においては、反転駆動の回数が閾値よりも多くなって方向判断の性能が低下してきたときに、被写体を通常被写体と確定すると判定される。ステップS72において被写体を通常被写体と確定すると判定されたときに、処理はステップS73に移行する。ステップS72において被写体を通常被写体と確定しないと判定されたときに、処理はステップS74に移行する。
【0085】
ステップS73において、AF制御回路1302は、フォーカス状態を「通常」に遷移させる。その後、
図19の処理は終了する。このとき、
図15の処理も終了する。ステップS74において、AF制御回路1302は、フォーカス状態を「不明」に遷移させる。その後、
図19の処理は終了する。このとき、
図15の処理も終了する。
【0086】
ステップS75において、AF制御回路1302は、小領域方向判断結果確認処理を行う。
図20は、小領域方向判断結果確認処理について示すフローチャートである。ステップS81において、AF制御回路1302は、至近方向小領域カウントを0に初期化する。至近方向小領域カウントは、方向判断結果が「Near」である小領域の数を示すカウント値である。
【0087】
続いて、AF制御回路1302は、それぞれの小領域に対するループ処理を行う小領域は、例えば右上の小領域から左下の小領域の順で選択される。小領域の選択順は、異なる選択順であってもよい。
【0088】
ステップS82において、AF制御回路1302は、現在の選択中の方向判断結果が「Near」であるか否かを判定する。ステップS82において、方向判断結果が「Near」であると判定されたときに、処理はステップS83に移行する。ステップS82において、方向判断結果が「Near」でないと判定されたときには、処理は小領域に対するループ処理の終了判定に移行する。
【0089】
ステップS83において、AF制御回路1302は、至近方向小領域カウントを1だけ増加させる。その後、処理は小領域に対するループ処理の終了判定に移行する。
【0090】
ステップS82又はS83の後、AF制御回路1302は、それぞれの小領域に対するループ処理の終了判定を行う。すなわち、すべての小領域に対してステップS82−S83の処理が終了したと判定されたときには、それぞれの小領域に対するループ処理は終了する。その後、
図20の処理は終了する。
【0091】
ここで、
図19の説明に戻る。ステップS76において、AF制御回路1302は、現在の被写体が遠近混在状態であるか否かを判定する。例えば、至近方向小領域カウントの値が閾値(例えば過半数)よりも大きいときには、現在の被写体が遠近混在状態であると判定される。方向判断結果「Near」の小領域が多いということは、中領域又は大領域で見たときに複数の被写体が混在している状態であると考えることができる。ステップS76において、現在の被写体が遠近混在状態でないと判定されたときには、処理はステップS77に移行する。ステップS76において、現在の被写体が遠近混在状態であると判定されたときには、処理はステップS78に移行する。
【0092】
ステップS77において、AF制御回路1302は、フォーカス状態を「通常」に遷移させる。その後、
図19の処理は終了する。このとき、
図15の処理も終了する。ステップS78において、AF制御回路1302は、フォーカス状態を「遠近混在」に遷移させる。その後、
図19の処理は終了する。このとき、
図15の処理も終了する。
【0093】
次に、レンズ駆動処理について説明する。
図21は、レンズ駆動処理について示すフローチャートである。ステップS91において、AF制御回路1302は、フォーカス状態によるステップ係数の選択処理を行う。ステップ係数の選択処理では、フォーカス状態によってレンズ駆動の際のステップ量を決めるためのステップ係数が選択される。
図22は、フォーカス状態とステップ係数との対応を示すテーブルを示す図である。ステップ係数は、
図22に示すように、デフォーカス量及び像倍率変動量として表わされている。デフォーカス量及び像倍率変動量は、レンズ駆動の際のライブビューの見えに関連する量である。したがって、デフォーカス量又は像倍率変動量に基づいてステップ量を決定することにより、AFの追従性とライブビューの見えを両立させることが可能である。
【0094】
図22において、フォーカス状態が「通常」であるときのデフォーカス量は、他のフォーカス状態よりも大きな値である1Fδから4Fδ(F:Fナンバー、δ:許容錯乱円径)の間の値で設定され得る。また、フォーカス状態が「通常」であるときの像倍率変動量は、他のフォーカス状態よりも大きな値に設定されている。フォーカス状態が「通常」である場合には、まだ合焦付近ではなく像がボケている可能性が高いため、ステップ量をある程度に大きくしてもライブビューの見えは悪くならない。したがって、選択されるデフォーカス量及び像倍率変動量は他のフォーカス状態のものよりも大きな値に設定される。これにより、AFの追従性が向上する。
【0095】
一方、フォーカス状態が「合焦付近」、「パン中」、「遠近混在」のときには、合焦精度が重視されるためにステップ量は小さく設定される。また、フォーカス状態が「不明」のときには、固定のステップ量でレンズ駆動が行われる。
【0096】
ステップS92において、AF制御回路1302は、ステップ量算出処理を行う。ステップ量算出処理では、ステップS91で選択されたデフォーカス量及び像倍率変動量のそれぞれがステップ量に変換される。ステップ量は、例えば焦点調節機構104がフォーカスレンズを駆動する際のパルス数として表される。ステップ量は、例えばAF制御回路1302に予め記憶されているデフォーカス量からステップ量を求めるための変換式及び像倍率変動量からステップ量を求めるための変換式に基づいて算出される。ステップ量の算出後、AF制御回路1302は、2つのステップ量のうちの何れか小さいほうを最終的なステップ量として採用する。
【0097】
ステップS93において、AF制御回路1302は、最大値クリップ処理を行う。ステップ量は、例えばAF制御回路1302に予め記憶されているデフォーカス量等のパラメータにステップ係数を掛けたものとして算出される。このため、算出されるステップ量は焦点調節機構104に設定可能な最大のステップ量よりも大きくなる可能性がある。したがって、最大値クリップ処理では、算出されたステップ量が焦点調節機構104に設定可能な最大値よりも大きいときには、算出されたステップ量は最大値にクリップされる。
【0098】
ステップS94において、AF制御回路1302は、ステップ方向設定処理を行う。その後、
図21の処理は終了する。ステップ方向設定処理について説明する。
図23は、ステップ方向設定処理について示すフローチャートである。ステップS101において、AF制御回路1302は、反復直後判定処理を行う。反転直後判定処理の後、処理はステップS102に移行する。
図24は、反転直後判定処理を示すフローチャートである。ステップS121において、AF制御回路1302は、直前の2回のステップ方向設定処理の結果から、ステップ方向が「Far」から「Near」に反転されているか否かを判定する。ステップS121においては、前々回のステップ方向が「Far」で、かつ、前回のステップ方向が「Near」であると判定されたときには、ステップ方向が「Far」から「Near」に反転されていると判定される。ステップS121において、ステップ方向が「Far」から「Near」に反転されていると判定されたときには、処理はステップS122に移行する。ステップS121において、ステップ方向が「Far」から「Near」に反転されていないと判定されたときには、処理はステップS123に移行する。
【0099】
ステップS122において、AF制御回路1302は、「Far」へのステップ駆動を禁止するように設定する。例えば、「Far」へのステップ駆動を禁止する旨のフラグを設定する。その後、
図24の処理は終了する。
【0100】
ステップS123において、AF制御回路1302は、直前の2回のステップ方向設定処理の結果から、ステップ方向が「Near」から「Far」に反転されているか否かを判定する。ステップS123においては、前々回のステップ方向が「Near」で、かつ、前回のステップ方向が「Far」であると判定されたときには、ステップ方向が「Near」から「Far」に反転されていると判定される。ステップS123において、ステップ方向が「Near」から「Far」に反転されていると判定されたときには、処理はステップS124に移行する。ステップS123において、ステップ方向が「Near」から「Far」に反転されていないと判定されたときには、処理はステップS125に移行する。
【0101】
ステップS124において、AF制御回路1302は、「Near」へのステップ駆動を禁止するように設定する。例えば、「Near」へのステップ駆動を禁止する旨のフラグを設定する。その後、
図24の処理は終了する。
【0102】
ステップS125において、AF制御回路1302は、ステップ駆動の禁止を解除する。その後、
図24の処理は終了する。
【0103】
ここで、
図23の説明に戻る。ステップS102において、AF制御回路1302は、焦点検出領域の全体の方向判断結果が「Far」であるか否かを判定する。ステップS102において、方向判断結果が「Far」であると判定されたときには、処理はステップS103に移行する。ステップS102において、方向判断結果が「Far」でないと判定されたときには、処理はステップS106に移行する。
【0104】
ステップS103において、AF制御回路1302は、例えばフラグの参照によって、「Far」へのステップ駆動が禁止されているか否かを判定する。ステップS103において、「Far」へのステップ駆動が禁止されていると判定されたときには、処理はステップS104に移行する。ステップS103において、「Far」へのステップ駆動が禁止とされていないと判定されたときには、処理はステップS105に移行する。
【0105】
ステップS104において、AF制御回路1302は、ステップ方向を「Near」に設定する。その後、処理はステップS111に移行する。すなわち、前回のステップ駆動において「Far」から「Near」への反転駆動が行われているときには(前々回のステップ駆動方向が「Far」で前回のステップ駆動方向が「Near」の場合には)、その次の今回のステップ駆動では、方向判断がFarであっても、反転駆動が行われないようにステップ方向が「Near」に設定される。
【0106】
ステップS105において、AF制御回路1302は、ステップ方向を「Far」に設定する。その後、処理はステップS111に移行する。すなわち、前回のステップ駆動において「Far」から「Near」への反転駆動が行われていないときには(前々回のステップ駆動方向が「Far」、かつ前回のステップ駆動方向が「Near」ではない場合には)、今回の方向判断結果に応じてステップ方向は「Far」に設定される。
【0107】
ステップS106において、AF制御回路1302は、今回の焦点検出領域の全体の方向判断結果が「Near」であるか否かを判定する。ステップS106において、方向判断結果が「Near」であると判定されたときには、処理はステップS107に移行する。ステップS106において、今回の方向判断結果が「Near」でないと判定されたときには、処理はステップS110に移行する。
【0108】
ステップS107において、AF制御回路1302は、例えばフラグの参照によって、「Near」へのステップ駆動が禁止されているか否かを判定する。ステップS107において、「Near」へのステップ駆動が禁止されていると判定されたときには、処理はステップS108に移行する。ステップS107において、「Near」へのステップ駆動が禁止されていないと判定されたときには、処理はステップS109に移行する。
【0109】
ステップS108において、AF制御回路1302は、ステップ方向を「Far」に設定する。その後、処理はステップS111に移行する。すなわち、前回のステップ駆動において「Near」から「Far」への反転駆動が行われているときには(前々回のステップ駆動方向が「Near」で前回のステップ駆動方向が「Far」の場合には)、その次の今回のステップ駆動では、方向判断がNearであっても、反転駆動が行われないようにステップ方向は「Far」に設定される。
【0110】
ステップS109において、AF制御回路1302は、ステップ方向を「Near」に設定する。その後、処理はステップS111に移行する。すなわち、前回のステップ駆動において「Near」から「Far」への反転駆動が行われていないときには(前々回のステップ駆動方向が「Near」、かつ前回のステップ駆動方向が「Far」ではない場合には)、今回の方向判断結果に応じてステップ方向は「Near」に設定される。
【0111】
ステップS110において、AF制御回路1302は、ステップ方向を前回のステップ方向設定処理で設定された方向と同じに設定する。その後、処理はステップS111に移行する。ステップS110の処理は、焦点検出領域の全体の方向判断結果が「不定」であるときの処理である。
【0112】
ステップS111において、AF制御回路1302は、焦点調節機構104に対してステップ量及びステップ方向を含むフォーカスレンズの駆動を指示する。その後、
図23の処理は終了する。焦点調節機構104は、AF制御回路1302からの指令を受けてフォーカスレンズを駆動する。
【0113】
次に、合焦判断処理について説明する。
図25は、合焦判断処理について示すフローチャートである。ステップS131において、AF制御回路1302は、反転合焦判断処理を行う。反転合焦判断処理の後、処理はステップS132に移行する。
図26は、反転合焦判断処理を示すフローチャートである。ステップS141において、AF制御回路1302は、ステップ駆動の履歴から、ステップ駆動の軌跡が反転軌跡であるか否かを判定する。ステップS141においては、評価値のピークを確定するための所定回数(例えば3回)の反転駆動が行われているか否かが判定される。そして、所定回数の反転駆動が行われているときには、ステップ駆動の軌跡が反転軌跡であると判定される。ステップS141において、ステップ駆動の軌跡が反転軌跡であるときには、処理はステップS142に移行する。ステップS141において、ステップ駆動の軌跡が反転軌跡でないときには、処理は、ステップS146に移行する。
【0114】
ステップS142において、AF制御回路1302は、外乱判定がOKであるか否かを判定する。ステップS142においては、ステップ駆動の履歴から、反転駆動が外乱のない状態で行われていたか否かが判定される。例えば、ジャイロセンサ回路136の出力が不安定でなく、動きベクトルが不安定でなく、ズームや絞り等の変化中でない状態で、反転駆動が行われているときには外乱判定がOKであると判定される。ステップS142において、外乱判定がOKであるときには、処理はステップS143に移行する。ステップS142において、外乱判定がOKでないときには、処理はステップS146に移行する。すなわち、外乱がある場合には偽合焦の可能性があるので、合焦位置の算出は行われないようにする。
【0115】
ステップS143において、AF制御回路1302は、方向判断処理で得られた方向判断結果がOKであるか否かを判定する。ステップS143においては、評価値の絶対値及び差分が十分な大きさで方向判断結果が得られているときには、方向判断結果がOKであると判定される。ステップS143において、方向判断処理で得られた方向判断結果がOKであると判定されたときには、処理はステップS144に移行する。ステップS143において、方向判断処理で得られた方向判断結果がOKでないと判定されたときには、処理はステップS146に移行する。
【0116】
ステップS144において、AF制御回路1302は、合焦判断が成立したことを確定する。そして、ステップS145において、AF制御回路1302は、合焦位置を算出する。合焦位置は、反転駆動の振幅の中心位置である。その後、
図26の処理は終了する。
【0117】
ステップS146において、AF制御回路1302は、合焦判断が成立しなかったことを確定する。その後、
図26の処理は終了する。
【0118】
ここで、
図25の説明に戻る。ステップS132において、AF制御回路1302は、方向不定合焦判断処理を行う。方向不定合焦判断処理の後、
図25の処理は終了する。
図27は、方向不定合焦判断処理を示すフローチャートである。ステップS151において、AF制御回路1302は、方向不定合焦判断処理の実施条件を満たしているか否かを判定する。ステップS151においては、以下の4つの条件の何れかを満たすか否かが判定される。以下の4つの条件の何れかを満たすと判定されたときには、処理はステップS152に移行する。以下の4つの条件の何れも満たさないと判定されたときには、処理はステップS157に移行する。
(1)開放基準1Fδ当たりの像倍率変動が所定値(例えば0.049%)以上、かつ、焦点距離が所定値(例えば35mm)以下である(像倍率変動が大きくなると、方向判断が難しくなるため)
(2)現在の絞り値が所定値(例えばF10)よりも大きい(絞り106が絞り込まれていると、方向判断が難しくなるため)
(3)現在の絞り値が所定値(例えばF8)よりも大きく、かつ、LDストローク(フォーカス調整に必要なレンズ駆動量。至近端から無限端までのパルス数を1Fδ(焦点深度)相当のパルス数で割ったもの)が所定値(例えば110)未満のとき(被写界深度がある程度に深く、LDストロークが短いので、ある程度のレンズ駆動誤差があっても大ぼけ状態になりにくいため)
(4)被写界深度が所定値(1m)以下のとき(被写界深度が深いときにはある程度のレンズ駆動誤差が許容されるため)
【0119】
ステップS152において、AF制御回路1302は、外乱判定がOKであるか否かを判定する。ステップS152においては、ステップ駆動の履歴から、個々の反転駆動が外乱のない状態で行われていたか否かが判定される。例えば、ジャイロセンサ回路136の出力が不安定でなく、動きベクトルが不安定でなく、ズームや絞り等の変化中でない状態でないときには外乱判定がOKであると判定される。ステップS152において、外乱判定がOKであるときには、処理はステップS153に移行する。ステップS152において、外乱判定がOKでないときには、処理はステップS157に移行する。すなわち、外乱がある場合には偽合焦の可能性があるので、合焦位置の算出は行われないようにする。
【0120】
ステップS153において、AF制御回路1302は、ステップ駆動の履歴から、ステップ駆動の軌跡が反転なし軌跡であるか否かを判定する。ステップS153においては、一定期間、反転駆動が行われなかったことが判定される。ステップS153においては、以下の(1)の条件を満たし、かつ、(2)又は(3)の条件を満たすときに、ステップ駆動の軌跡が反転なし軌跡であると判定される。ステップS153において、ステップ駆動の軌跡が反転なし軌跡であるときには、処理はステップS154に移行する。ステップS153において、ステップ駆動の軌跡が反転なし軌跡でないときには、処理はステップS157に移行する。
(1)方向判断結果が「不定」である
(2)フォーカス状態が「合焦付近」である
(3)反転駆動後の同一方向へのステップ駆動の回数が2回よりも多い
【0121】
ステップS154において、AF制御回路1302は、評価値がOKであるか否かを判定する。ステップS154においては、以下の(1)の条件を満たし、かつ、(2)又は(3)の条件を満たし、かつ、(4)の条件を満たすときに、評価値がOKであると判定される。すなわち、方向判断結果が「不定」であったとしても、評価値が増加している間は、まだ合焦位置の手前であると考えることができる。したがって、評価値が減少するまでは合焦判断を確定しないことにする。ステップS154において、評価値がOKであるときには、処理はステップS155に移行する。ステップS154において、評価値がOKであるときには、処理はステップS157に移行する。
(1)Afval[n]がAfval[n-1]以下である
(2)Afval[n]が閾値以上である
(3)Afval[n-1]が閾値以上である
(4)9つの小領域の何れかのAfval[n]が閾値以上である
【0122】
ステップS155において、AF制御回路1302は、合焦判断が成立したことを確定する。そして、ステップS156において、AF制御回路1302は、合焦位置を算出する。合焦位置は、現在のフォーカスレンズの位置である。合焦位置の算出後、
図27の処理は終了する。
【0123】
ステップS157において、AF制御回路1302は、合焦判断が成立しなかったことを確定する。その後、
図27の処理は終了する。
【0124】
図28は、合焦判断処理についてさらに説明するための図である。ここで、
図28(a)は反転合焦判断処理が適用される場合のコントラストカーブを示しており、
図28(b)は方向不定合焦判断処理が適用される場合のコントラストカーブを示している。すなわち、
図28(a)に示す例では、ステップ駆動の前後での評価値の変化が大きく、
図28(b)に示す例では、ステップ駆動の前後での評価値の変化が小さい。
【0125】
図28(a)の例において、最初は、評価値が増加し続けているので、同方向のステップ駆動が継続される。そして、8ステップのステップ駆動の後、フォーカスレンズの位置が評価値のピーク位置を超え、反転方向への方向判断が確定される。ここで、図では7ステップ目でピーク位置を超えているが、評価値の差分が小さいために方向判断結果は不定となり、結果として前回と同方向にステップ駆動がされる。この一連のステップ駆動の間、まだ、所定回数(例えば3回)の反転が行われていないので合焦判断は成立しない。
【0126】
1回目の反転駆動により、評価値が減少から増加に転じる。そして、4ステップのステップ駆動の後、フォーカスレンズの位置が評価値のピーク位置を再び超え、反転方向への方向判断が確定される。この一連の反転駆動の間も、まだ、所定回数(例えば3回)の反転が行われていないので合焦判断は成立しない。
【0127】
2回目の反転駆動により、評価値が再び減少から増加に転じる。4ステップのステップ駆動の後、フォーカスレンズの位置が評価値のピーク位置を再び超え、反転方向への方向判断が確定される。この一連の反転駆動の間も、まだ、所定回数(例えば3回)の反転が行われていないので合焦判断は成立しない。
【0128】
3回目の反転駆動の後の合焦判断処理において合焦判断が成立する。このとき、算出される合焦位置は、反転駆動の振幅の中心位置である、反転駆動の開始位置から2ステップ分の位置になる。
【0129】
一方、
図28(b)の例において、ステップ駆動の前後の評価値の変化は小さいものの、フォーカスレンズが合焦位置に向かっている限りにおいては、評価値は増加を続ける。そして、フォーカスレンズが合焦位置を超えたときに評価値は増加から減少に転じる。このときに、評価値がOKとなり、合焦判断が成立する。被写体のコントラストが低い場合等では、評価値の差分が十分に大きくならない場合がある。しかしながら、フォーカスレンズが合焦位置に近づいている限りにおいては評価値の絶対値は大きくなる。さらに、フォーカスレンズの位置が合焦付近であるときには、評価値の変化は特に小さくなる。したがって、不定方向合焦判断処理では、基本的には方向判断ができなくなったときに、すなわち方向判断結果が「不定」となり、かつ、評価値の絶対値が閾値以上となったときにフォーカスレンズを停止させる。ただし、実際には方向判断結果が「不定」であっても評価値が増加し続ける可能性はあるので、評価値が減少したときにフォーカスレンズを停止させる。この場合、フォーカスレンズは真の合焦位置には停止しないことになるが、方向不定合焦判断処理ではあまり問題にはならない。
【0130】
以上説明したように本実施形態では、第1の方向へのフォーカスレンズの微小駆動と第2の方向へのフォーカスレンズの微小駆動とを組み合わせてAFが行われる。このとき、第1の方向から第2の方向への反転駆動が行われた直後は、続く方向判断処理において判断された方向が第1の方向であったとしても、第1の方向への駆動は禁止されて第2の方向への駆動が行われる。これにより、バックラッシュ量が分からなくても、また、反転時のレンズ駆動量がバックラッシュ量よりも小さい場合であっても、続く同方向へのレンズ駆動によってバックラッシュの影響が低減されるので、それ以降のAF性能の低下を抑制することができる。
【0131】
以下、この効果について
図29を参照してさらに説明する。なお、
図29は、バックラッシュを概念的に示す図であって、実際の機構とは異なる。フォーカスレンズの駆動機構におけるバックラッシュとは、例えばフォーカスレンズを駆動するためのレンズモータのギア(レンズモータに連結されているギア)とフォーカスレンズの玉のギア(レンズの玉と一体的に固定されたギア)との間の隙間のことである。このようなバックラッシュが機構的に存在することにより、フォーカスレンズをその光軸方向に駆動する際に、レンズモータを回転させてもフォーカスレンズが移動しない状態が発生する。
【0132】
ここで、
図29(a)に示すように、レンズ駆動方向側のバックラッシュが詰められている状態では、レンズモータの回転はすべてレンズの玉に伝わるので、レンズ駆動量がバックラッシュ以下のときであっても、フォーカスレンズはレンズモータの回転量に応じた分だけ動く。
【0133】
一方、
図29(a)の状態から反転駆動が行われた場合には、バックラッシュが詰められておらず、レンズモータの回転のすべてはレンズの玉に伝わらない。特に、レンズ駆動量がバックラッシュ以下であるときには、
図29(b)のようにバックラッシュを詰めきることができずにフォーカスレンズは動かない。この場合、本来、反転駆動によって増加するはずの評価値は増加しない。したがって、以降の方向判断結果には誤りが生じてAF性能が劣化してしまう。
【0134】
これに対し、本実施形態では、反転直後には同方向へのステップ駆動が行われる。
図29(b)でも示したように、反転駆動で、かつ、レンズ駆動量がバックラッシュ以下であっても、レンズ駆動された分については、バックラッシュは詰められる。したがって、
図29(c)に示すように、同方向に複数回(たとえば2回)の駆動を行うことでバックラッシュを詰めきって狙い通りの位置までフォーカスレンズを駆動することが可能である。このため、以降もAF性能は維持される。
【0135】
ここで、本実施形態における反転駆動の直後に同方向へのステップ駆動を行うことは、本実施形態のような山登り式のコントラストAFでは、
図30のような反転駆動の直後に反転駆動が行われることは通常はありえない(反転駆動によって通常は評価値が増加するはずなので、その直後に方向判断が反転されることはない)という考えに基づいている。一方で、反転駆動の直後に撮像装置又は被写体の状況の変化といった外乱があった場合には、方向判断が反転されることも起こり得る。しかしながら、本実施形態では、反転駆動の直後の再度の反転駆動を禁止することによってこのような外乱の影響も排除できる。
【0136】
さらに、本実施形態では、合焦判断処理において方向不定合焦判断処理が行われる。基本的には、本実施形態では、反転直後の再度の同方向へのレンズ駆動によってバックラッシュは詰められて、狙い通りのレンズ駆動が行われる。しかしながら、再度の同方向へのレンズ駆動が行われてもなおバックラッシュが詰めきれない場合等もあり得る。このような場合であっても方向不定合焦判断処理により、ある程度の精度でフォーカスレンズを合焦位置まで駆動することが可能である。
【0137】
以上実施形態に基づいて本発明を説明したが、本発明は前述した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。
【0138】
例えば、前述の実施形態では、バックラッシュ以下の微小なレンズ駆動量で反転駆動が行われることが前提になっている。ここで、前述の反転駆動の禁止は、バックラッシュによって狙い通りのレンズ駆動ができないことに対する対策である。所定値よりも大きなステップ量であれば、1回の反転駆動でバックラッシュが詰められる可能性があるので、このような場合には反転駆動の禁止を行わないようにしてもよい。例えば、ステップS103及びステップS107の判定において、フラグによって反転駆動が禁止されており、かつ、ステップ量が所定値(例えば焦点深度(1Fδ)相当駆動量)未満であるときのみ、反転駆動を禁止すると判定されるようにしてもよい。
【0139】
また、前述した反転直後判定処理では、1回前と2回前のステップ方向設定処理の結果から反転駆動の直後であるか否かの判定がなされる。これに対し、3回前と2回前のステップ方向設定処理の結果から反転駆動の直後であるか否かの判定もさらに行うようにし、前回のステップ駆動と前々回のステップ駆動の何れかで反転駆動があるときには、反転直後であると判定されるようにしてもよい。この場合、反転駆動の後の2回、同方向の駆動が行われることになる。これにより、レンズ駆動量がさらに微小になったとしても狙い通りのレンズ駆動を行うことが可能である。また、一旦、反転駆動の直後であるとの判定がされたときには、それ以後の数フレームの間は同方向への駆動がなされるようにしてもよい。あるいは、反転駆動の直後であるとの判定がされたときには、所定フレーム数に相当する所定時間だけ、同方向への駆動を実行するようにしてもよい。このようにしても、レンズ駆動量がさらに微小になったときにより確実に狙い通りのレンズ駆動を行うことが可能である。
【0140】
また、前述の各動作フローチャートの説明において、便宜上「まず」、「次に」等を用いて動作を説明しているが、この順で動作を実施することが必須であることを意味するものではない。
【0141】
また、上述した実施形態による各処理は、コンピュータとしてのCPU等に実行させることができるプログラムとして記憶させておくこともできる。この他、メモリカード、磁気ディスク、光ディスク、半導体メモリ等の外部記憶装置の記憶媒体に格納して配布することができる。そして、CPU等は、この外部記憶装置の記憶媒体に記憶されたプログラムを読み込み、この読み込んだプログラムによって動作が制御されることにより、上述した処理を実行することができる。
【0142】
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、上述したような課題を解決でき、上述したような効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。