以下、添付図面を参照して本発明の例示的な実施形態を詳細に説明する。なお、以下に説明する実施形態は単なる例示であり、本発明は実施形態に記載された構成に限定されない。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る撮像装置の一例としてのレンズ交換式カメラの機能構成例を示すブロック図である。
本実施形態の撮像装置は交換可能なレンズユニット10及びカメラ本体20から構成されている。レンズ全体の動作を統括制御するレンズ制御部106と、レンズユニット10を含めたカメラシステム全体の動作を統括するカメラ制御部212とは、レンズマウントに設けられた端子を通じて相互に通信可能である。
まず、レンズユニット10の構成について説明する。固定レンズ101、絞り102、フォーカスレンズ103は撮影光学系を構成する。絞り102は、絞り駆動部104によって駆動され、後述する撮像素子201への入射光量を制御する。フォーカスレンズ103はフォーカスレンズ駆動部105によって駆動され、フォーカスレンズ103の位置に応じて撮像光学系の合焦距離が変化する。絞り駆動部104、フォーカスレンズ駆動部105はレンズ制御部106によって制御され、絞り102の開口量や、フォーカスレンズ103の位置を決定する。なお、固定レンズ101、絞り102、フォーカスレンズ103の位置関係は図1の構成に限定されない。また、固定レンズ101とフォーカスレンズ103は各々1枚のレンズで図示されているが、複数のレンズから成るレンズ群であってもよい。
レンズ操作部107は、AF/MFモードの切り替え、撮影距離範囲の設定、手ブレ補正モードの設定など、ユーザがレンズユニット10の動作に関する設定を行うための入力デバイス群である。レンズ操作部107が操作された場合、レンズ制御部106が操作に応じた制御を行う。
レンズ制御部106は、後述するカメラ制御部212から受信した制御命令や制御情報に応じて絞り駆動部104やフォーカスレンズ駆動部105を制御し、また、レンズ制御情報をカメラ制御部212に送信する。
次に、カメラ本体20の構成について説明する。カメラ本体20はレンズユニット10の撮影光学系を通過した光束から撮像信号を取得できるように構成されている。
撮像素子201はCCDやCMOSセンサにより構成される。レンズユニット10の撮影光学系から入射した光束は撮像素子201の受光面上に結像し、撮像素子201に配列された画素に設けられたフォトダイオードにより、入射光量に応じた信号電荷に変換される。各フォトダイオードに蓄積された信号電荷は、カメラ制御部212の指令に従ってタイミングジェネレータ215が出力する駆動パルスより、信号電荷に応じた電圧信号として撮像素子201から順次読み出される。
本実施形態の撮像素子201は、一つの画素に2つのフォトダイオードが構成されており、撮像面位相差検出方式による自動焦点検出(以下、撮像面位相差AFと呼ぶ)に用いる像信号を生成可能である。図2(a)は、撮像面位相差AFに対応していない画素の構成、図2(b)は、撮像面位相差AFに対応した画素の構成の例を模式的に示している。なお、ここではいずれの場合もベイヤ配列の原色カラーフィルタが設けられているものとする。撮像面位相差AFに対応した図2(b)の画素構成では、図2(a)における1画素が水平方向に2分割されており、AB2つのフォトダイオード(受光領域)が設けられている。なお、図2(b)に示した分割方法は一例であり、他の方法を用いたり、画素によって異なる分割方法が適用されたりしてもよい。
各画素に入射する光束をマイクロレンズで分離し、画素に設けられた2つのフォトダイオードで受光することで、1つの画素で撮像用とAF用の2つの信号が取得できる。つまり、画素内の2つのフォトダイオードA,B(A画素、B画素)のそれぞれで得られる信号(A,B)がAF用の2つの像信号であり、加算信号(A+B)が撮像信号である。なお、通常の位相差検出AFで用いる1対の像信号が複数の画素を有するラインセンサの1対により生成されるように、撮像面位相差AFで用いる1対の像信号も、複数のA画素と複数のB画素の出力から得られる。AF用信号を基に、後述するAF信号処理部204で2つの像信号に対して相関演算を行い、像ずれ量や各種の信頼性情報を算出する。
CDS/AGC/ADコンバータ202は、撮像素子201から読み出された撮像信号及びAF用信号に対し、リセットノイズを除去する為の相関二重サンプリング、ゲインの調節、信号のデジタル化を行う。CDS/AGC/ADコンバータ202は、撮像信号を画像入力コントローラ203に、撮像面位相差AF用の信号をAF信号処理部204にそれぞれ出力する。
画像入力コントローラ203は、CDS/AGC/ADコンバータ202から出力された撮像信号をバス21を介してSDRAM209に格納する。SDRAM209に格納された撮像信号は、バス21を介して表示制御部205によって読み出され、表示部206に表示される。また、撮像信号の記録を行う動作モードでは、SDRAM209に格納された撮像信号は記録媒体制御部207によって記録媒体208に記録される。
ROM210にはカメラ制御部212が実行する制御プログラム及び制御に必要な各種データ等が格納されており、フラッシュROM211には、ユーザ設定情報等のカメラ本体20の動作に関する各種設定情報等が格納されている。
AF信号処理部204はCDS/AGC/ADコンバータ202から出力されたAF用の2つの像信号に対して相関演算を行い、像ずれ量、信頼性情報(二像一致度、二像急峻度、コントラスト情報、飽和情報、キズ情報等)を算出する。AF信号処理部204は、算出した像ずれ量および信頼性情報をカメラ制御部212へ出力する。
カメラ制御部212は、AF信号処理部204が求めた像ずれ量や信頼性情報を基に、必要に応じてAF信号処理部204の設定を変更する。例えば、像ずれ量が所定量以上の場合に相関演算を行う領域を広く設定したり、コントラスト情報に応じてバンドパスフィルタの種類を変更したりする。相関演算の詳細については、図7から図9(b)を用いて後述する。
なお、本実施形態は撮像信号及び2つのAF用像信号の計3信号を撮像素子201から取得しているが、このような方法に限定されない。撮像素子201の負荷を考慮し、例えば撮像信号と1つのAF用像信号の計2信号を取り出し、撮像信号とAF用信号の差分をもう一つのAF用像信号として用いてもよい。
カメラ制御部212は、カメラ本体20内の各機能ブロックと情報をやり取りして制御を行う。カメラ制御部212はカメラ本体20内の処理だけでなく、カメラ操作部214からの入力に応じて、電源のON/OFF、設定の変更、記録の開始、AF制御の開始、記録映像の確認等の、ユーザが操作したさまざまなカメラ機能を実行する。また、カメラ制御部212はレンズユニット10の制御命令・制御情報をレンズ制御部106に送ったり、またレンズユニット10の情報をレンズ制御部106から取得したりする。また、カメラ制御部212は、後で説明するように、再起動判定部213で用いる再起動判定用の閾値を設定する。
カメラ制御部212は例えば1つ以上のプログラマブルプロセッサであり、例えばROM210に記憶された制御プログラムを実行することで、レンズユニット10を含めたカメラシステム全体の動作を実現する。
再起動判定部213は、カメラ制御部212の機能の1部を示しており、フォーカスレンズ103の駆動が停止されている状態から、駆動を開始(または再開)すべきかどうかを判定する。被写体に合焦した状態であるとカメラ制御部212が判定すると、カメラ制御部212はレンズユニット10内のレンズ制御部106及びフォーカスレンズ駆動部105を介して、フォーカスレンズ103の駆動を停止させる。その後、再起動判定部213は、フォーカスレンズ103の駆動を再開(再起動)させるかどうかを、AF信号処理部204の情報を基に判定する。再起動判定部213がフォーカスレンズ103を再起動させることを判定した場合、レンズユニット10内のレンズ制御部106及びフォーカスレンズ駆動部105を介して、フォーカスレンズ103の駆動を再開する。
従来、デジタルカメラは主に静止画撮影に用いられ、動画撮影はビデオカメラを用いるのが一般的であったが、近年ではデジタルカメラの動画撮影機能に対する需要が高まっている。動画AF制御を行う場合には、フォーカスレンズの駆動中も画像が記録されるため、フォーカスレンズの駆動品位が特に重要である。より具体的には、撮影される動画像の画質、特に合焦度合いの時間的な変動が小さくなるようにフォーカスレンズを駆動することが重要である。
フォーカスレンズの駆動品位を高めるための制御の一つとして、被写体に合焦したと判断されると、その後、焦点検出を再度行う必要があると判断されるまでフォーカスレンズの駆動を停止させる方法がある。例えば、被写体が変わったり、合焦度合いが閾値以下に低下したりした場合に、焦点検出を再度行う必要があると判断する。
合焦した状態でもフォーカスレンズを停止させずに駆動し続けた場合、合焦した被写体に変化がないにもかかわらず、合焦位置を変化させてしまうことを回避できる。例えば撮影範囲が少し動いて被写体の低コントラスト部のようなデフォーカスの検出精度が悪くなりやすい部分を撮影した場合や、合焦した被写体と撮像装置の間を他の被写体が横切った場合などに、誤ったフォーカスレンズの駆動が発生しやすい。
動画撮影時に被写体に合焦したと判断したら一度フォーカスレンズを停止し、被写体が変化したと判断した場合にフォーカシング(フォーカスレンズの駆動)を再開するように制御することで、無駄なフォーカシングを抑えることができる。
フォーカスレンズの駆動の再開を判定するための情報として、主被写体との距離に関する情報を用いることができる。距離に関する情報は、デフォーカス量であってよいが、他の情報であってもよい。例えば検出されたデフォーカス量が焦点深度以内であれば、デフォーカス量が変化しても再起動は不要と判定し、焦点深度外のデフォーカス量が所定時間にわたって検出されたら主被写体との距離が有意に変化したと判定することができる。しかしながら、例えば図19(b)に示したような、主被写体と撮像装置との間を通過する被写体に反応して距離の変化を検出してしまうと、フォーカスレンズの駆動を停止させた効果が得られない。そのため、主被写体との距離が有意に変化したことが十分な確からしさで判断できた場合に再起動の実行を決定すべきである。図19(b)と同様の問題が生じる他の例としては、撮影時の手ブレ等で焦点検出領域が主被写体でなく背景を撮影してしまった場合がある。
一方、フォーカスレンズを停止した状態から主被写体が近づいたり遠ざかったりした場合には、合焦状態をできるだけ維持できるよう、再起動を早期に実施したい。本実施形態では、フォーカスレンズ103を停止状態から駆動状態にする(再起動する)に当たり、再起動判定部213が、検出されたデフォーカス量から、主被写体との距離が、再起動すべきであるほど移動したのか否かを判断する。また、再起動判定部213は、焦点検出領域が主被写体以外の被写体を捉えたのかどうかについても判断する。
そして、主被写体との距離が再起動すべきであるほど移動したことが検出されれば被写体の移動に追従してフォーカスレンズの移動ができるようにする。一方、主被写体との距離が再起動すべきであるほど移動していないことが検出されれば、フォーカスレンズの停止状態を維持するために、再起動の開始時期を遅らせる。なお、主被写体が変化した場合も後者に該当することがあり得るので、焦点検出領域が主被写体以外の被写体を捉えたと判断される場合であっても再起動は行う。再起動判定部213の動作に関する詳細はカメラ本体20の制御を説明するフローチャートを用いて後述する。
次に、カメラ本体20の動作について、図3から図14を用いて説明する。
図3はカメラ本体20の撮影処理の手順を示すフローチャートである。S301でカメラ制御部212は初期化処理を行い、S302へ処理を進める。初期化処理の詳細については図4で後述する。S302でカメラ制御部212は、カメラ本体20の撮影モードが動画撮影モードか静止画撮影モードか判定し、動画撮影モードである場合はS303へ、静止画撮影モードである場合はS304へ処理を進める。S303でカメラ制御部212は動画撮影処理を行い、S305へ処理を進める。S303の動画撮影処理の詳細については図5で後述する。S302で静止画撮影モードであればS304でカメラ制御部212は静止画撮影処理を行いS305へ処理を進める。S304の静止画撮影処理の詳細については省略する。
S303で動画撮影処理、若しくはS304で静止画撮影処理を行った後に進むS305でカメラ制御部212は、撮影処理が停止されたかどうかを判断し、停止されていない場合はS306へ処理を進め、停止された場合は撮影処理を終了する。撮影処理が停止されたときとは、カメラ操作部214を通じてカメラ本体20の電源が切断されたときや、カメラのユーザ設定処理、撮影画像・動画の確認のための再生処理等、撮影以外の動作が行われたときである。S305で撮影処理が停止されていないと判断した後に進むS306でカメラ制御部212は、撮影モードが変更されたかどうかを判断し、変更されている場合はS301へ、変更されていない場合はS302へ、処理を戻す。撮影モードが変更されていなければカメラ制御部212は現在の撮影モードの処理を継続して行い、撮影モードが変更された場合はS301で初期化処理を行った上で変更された撮影モードの処理を行う。
次に、図3のS301の初期化処理について図4のフローチャートを用いて説明する。S401でカメラ制御部212はカメラの各種初期値設定を行いS402へ処理を進める。撮影処理を開始または撮影モードが変更された時点におけるユーザ設定や撮影モード等の情報を基に、カメラ制御部212は初期値を設定する。S402、S403でカメラ制御部212は本実施形態で使用するフラグを初期化する。S402でカメラ制御部212は合焦停止フラグをオフにしてS403へ処理を進める。S403でカメラ制御部212は、サーチ駆動フラグをオフにして処理を終了する。
S402で初期化する合焦停止フラグは、動画撮影中に合焦したと判定しレンズを停止している場合はオン、合焦しておらずフォーカスレンズ103を駆動している場合はオフの値を有する。合焦停止フラグのオン/オフを切り替えることで、現在フォーカスレンズを駆動している状態なのか、停止している状態なのかが判別できる。S403で初期化するサーチ駆動フラグは、レンズを駆動する際、撮像面位相差検出方式で検出したデフォーカス量が信頼できる場合にはオフ、信頼できない場合にはオンの値を有する。
デフォーカス量が信頼できる場合とは、デフォーカス量の精度が確かであると判断できる場合だけでなく、デフォーカス方向が確かであると判断できる場合のように、信頼性がある程度より高い状態である。例えば、主被写体に対して合焦に近い状態であると判断できる場合や、すでに合焦している状態である。このような状態ではデフォーカス量を信頼し、デフォーカス量に基づいてフォーカスレンズを駆動する。
一方、デフォーカス量が信頼できない場合とは、デフォーカスの量及び方向(例えばデフォーカス量の符号で表される)がいずれも確かであると判断できない場合、すなわち信頼性がある程度より低い状態である。例えば、主被写体が大きくボケている状態のようにデフォーカス量が正しく算出できないような状態である。この場合にはデフォーカス量を信頼してフォーカスレンズを駆動すると、撮影される動画の画質に影響するので、サーチ駆動(デフォーカス量とは無関係にフォーカスレンズを一定方向に所定量ずつ駆動し被写体を探す駆動)を行う。
次に図3のS303の動画撮影処理について図5を用いて説明する。S501からS504でカメラ制御部212は、動画記録に関する制御を行う。S501でカメラ制御部212は動画記録スイッチがオンされているかどうかを判断し、オンされている場合はS502へ処理を進め、オンされていない場合はS505へ処理を進める。S502でカメラ制御部212は、現在動画記録中かどうかを判断し、動画記録中でない場合はS503で動画記録を開始してS505へ処理を進め、動画記録中である場合はS504で動画記録を停止してS505へ処理を進める。本実施形態においては動画記録スイッチを押下するごとに動画の記録開始と停止を行うが、記録開始と停止とで異なるボタンを用いたり、切り替えスイッチ等を用いたりといった他の方式によって記録開始と停止を行っても構わない。
S505でカメラ制御部212は焦点状態検出処理を行い、S506へ処理を進める。焦点状態検出処理は、カメラ制御部212及びAF信号処理部204による、撮像面位相差AFを行うためのデフォーカス情報及び信頼性情報を取得する処理であり、詳細は図6を用いて後述する。S505で焦点状態検出処理を行った後に進むS506でカメラ制御部212は、現在合焦停止中かどうかを判断し、合焦停止中でない場合はS507へ処理を進め、合焦停止中である場合はS508へ処理を進める。合焦停止中かどうかは、先述した合焦停止フラグのオン/オフによって判断することができる。S506で合焦停止中でないと判断した場合に進むS507でカメラ制御部212は、AF処理を実施し動画撮影処理を終了する。S507はS505で検出した情報を基にAF制御を行うもので、詳細は図11を用いて後述する。S506で合焦停止中だと判断した場合に進むS508でカメラ制御部212は、AF再起動判定を行い動画撮影処理を終了する。S508は、合焦停止中から主被写体が移動したり変わったとして再度AF制御を開始するかどうかの判定を行うもので、詳細は図16を用いて後述する。
次に図5のS505の焦点状態検出処理について図6を用いて説明する。まず、S601でAF信号処理部204は、任意に設定した焦点検出範囲に含まれる画素からAF用の1対の像信号を取得する。次に、S602でAF信号処理部204は、取得した像信号間の相関量を算出する。続いて、S603でAF信号処理部204はS602より算出した相関量から相関変化量を算出する。そしてS604でAF信号処理部204は相関変化量からピントずれ量を算出する。またS605でAF信号処理部204はピントずれ量がどれだけ信頼できるのかを表す信頼性を算出する。これらの処理を、焦点検出範囲内に存在する焦点検出領域の数だけ行う。そして、S606でAF信号処理部204は焦点検出領域ごとにピントずれ量をデフォーカス量に変換する。最後にAF信号処理部204は、AFに使用する焦点検出領域をS607で決定し、焦点状態検出処理を終了する。
図7から図9(b)を用いて図6で説明した焦点状態検出処理をさらに詳細に説明する。
図7は焦点状態検出処理で取り扱う焦点検出範囲と焦点検出領域の一例を模式的に示した図である。
図7(a)は、撮像素子201の画素アレイ1501における焦点検出範囲1502の例を示している。シフト領域1503は、相関演算に必要な領域である。従って、焦点検出範囲1502とシフト領域1503とを合わせた領域1504が相関演算に必要な画素領域である。図中のp、q、s、tはそれぞれx軸方向の座標を表し、pおよびqは画素領域1504の始点及び終点のx座標を、sおよびtは焦点検出範囲1502の始点および終点のx座標を表す。
図7(b)は焦点検出範囲1502を5つの焦点検出領域1505〜1509に分割した例を示す図である。本実施形態ではこのように焦点検出範囲を分割した焦点検出領域ごとにピントずれ量を算出し、最も信頼できるピントずれ量を用いる。
図7(c)は、図7(b)の焦点検出領域1505〜1509を連結した仮の焦点検出領域を示す図である。このように、焦点検出領域を連結した領域から算出したピントずれ量を用いても良い。焦点検出領域の配置の仕方、領域の広さ等は、ここで例示した構成に限られるものではなく、他の構成を用いてもよい。
図8は図7で設定した焦点検出領域1505〜1509に含まれる画素から取得したAF用の像信号の例を示している。実線1601が像信号A、破線1602が像信号Bである。
図8(a)は、シフト前の像信号の例を示している。
図8(b)および(c)は、図8(a)のシフト前の像波形に対しプラス方向およびマイナス方向にシフトした状態を示している。相関量を算出する際には、像信号A1601および像信号B1602の両方を、矢印の方向に1ビットずつシフトする。続いて相関量CORの算出法について説明する。
まず、図8(b)および(c)に示したように、像信号A1601と像信号B1602のそれぞれを1ビットずつシフトし、その時の像信号Aと像信号Bの差の絶対値の和を算出する。この時、シフト量をiで表し、最小シフト量は図8中のp−s、最大シフト量は図8中のq−tである。またxは焦点検出領域1508の開始座標、yは焦点検出領域1508の終了座標である。これらを用い、焦点検出領域1508における相関量CORは以下の式(1)によって算出することができる。
図9(a)はシフト量と相関量との関係例を示した図である。横軸はシフト量を示し、縦軸は相関量を示す。相関量波形1701における極値付近1702、1703のうち、相関量が小さい方ほど、像信号Aと像信号Bの一致度が高い。続いて相関変化量ΔCORの算出法について説明する。
まず、図9(a)の相関量波形から、1シフト飛ばしの相関量の差から相関変化量を算出する。シフト量をiで表し、最小シフト量は図8中のp−s、最大シフト量は図8中のq−tである。これらを用い、相関変化量ΔCORは以下の式(2)によって算出することができる。
図10(a)はシフト量と相関変化量ΔCORの関係例を示した図である。横軸はシフト量を示し、縦軸は相関変化量を示す。相関変化量波形1801で、1802、1803は相関変化量がプラスからマイナスになる周辺である。相関変化量が0となる状態ゼロクロスと呼び、像信号間の一致度が最も高く、ゼロクロス時のシフト量がピントずれ量となる。
図10(b)は図10(a)の1802の部分を拡大したもので、1901は相関変化量波形1801の一部分である。図10(b)を用いてピントずれ量PRDの算出法について説明する。
ここで、ゼロクロス時のシフト量(k−1+α)は、整数部分β(=k−1)と小数部分αに分けられる。小数部分αは、図中の三角形ABCと三角形ADEの相似の関係から、以下の式(3)によって算出することができる。
続いて整数部分βは、図10(b)中より以下の式(4)によって算出することができる。
β=k−1 (4)
αとβの和からピントずれ量PRDを算出することができる。
また図10(a)のようにゼロクロスとなるシフト量が複数が存在する場合は、ゼロクロスでの相関量変化の急峻性が大きいところを第1のゼロクロスとする。この急峻性はAFのし易さを示す指標で、値が大きいほどAFし易い点であることを示す。急峻性maxderは以下の式(5)によって算出することができる。
以上のように、ゼロクロスが複数存在する場合は、急峻性によって第1のゼロクロスを決定する。続いてピントずれ量の信頼性の算出法について説明する。
信頼性は、上述した急峻性や、像信号A、Bの一致度fnclvl(以下、2像一致度と呼ぶ)によって定義することができる。2像一致度はピントずれ量の精度を表す指標で、値が小さいほど精度が良い。
図9(b)は図9(a)の1702の部分を拡大したもので、2001が相関量波形1701の一部分である。図9(b)を用いて急峻性と2像一致度の算出法について説明する。
2像一致度fnclvlは以下の式(6)によって算出できる。
次に図5のS507のAF処理について図11のフローチャートを用いて説明する。AF処理は、合焦停止していない状態でのフォーカスレンズの駆動及び、合焦停止の判定を行う処理である。
S801でカメラ制御部212は、デフォーカス量の大きさが予め定めた量以下(ここでは焦点深度内とする)であり、かつデフォーカス量の信頼性が所定値より良い値を示しているかどうかを判断する。そして、カメラ制御部212は、この条件に該当する場合はS802へ処理を進め、そうでない場合はS803へ処理を進める。本実施形態では、S801で用いる閾値を焦点深度の1倍としているが、必要に応じて大きく設定したり、小さく設定したりしても構わない。S801で設定する信頼性の閾値は、少なくとも合焦精度が保証できる様な値を設定する。
S802でカメラ制御部212は、合焦停止フラグをオンにし、AF処理を終了する。先述したように、被写体に合焦したと判断した場合は、フォーカスレンズ103を駆動している状態から停止している状態に移行した後、フォーカスレンズ103を再度駆動(再起動)するか否かの再起動判定を、S506及びS508で行う。
S801でデフォーカス量が焦点深度内でない、またはデフォーカス量の信頼性が所定値より悪い場合に進むS803で、カメラ制御部212は、フォーカスレンズ103の駆動速度や駆動方法を決定し、処理をS804へ進める。S803のレンズ駆動設定の詳細は図12を用いて後述する。S804でカメラ制御部212はフォーカスレンズ103の駆動処理を行いAF処理を終了する。S804のレンズ駆動処理の詳細は図13を用いて後述する。
次に図11のS803のレンズ駆動設定について図12のフローチャートを用いて説明する。本実施形態におけるレンズ駆動設定では、デフォーカス量の信頼性に応じたフォーカスレンズの駆動速度を設定する。
S901からS907では、レンズ駆動速度の設定及び、サーチ駆動移行カウンタの加算及びリセットを行う。S901では信頼性が所定値αより良い値か(信頼性が所定の信頼性より高いか)どうかを判断し、所定値αより良い値の場合はS902へ処理を進め、そうでない場合はS904へ処理を進める。S902でカメラ制御部212は、サーチ駆動カウンタをリセットしてS903へ処理を進め、レンズ駆動速度Aを設定して処理をS908へ進める。
S901で信頼性が所定値αより良い値でない(信頼性が所定の信頼性より高くない)場合に進むS904でカメラ制御部212は、サーチ駆動移行カウンタを加算してS905に処理を進める。S905でカメラ制御部212は、サーチ駆動移行カウンタの値が所定値以上かどうかを判断し、所定値以上である場合はS906へ、所定値以上でない場合はS907へ処理を進める。S905でサーチ駆動移行カウンタの値が所定値以上であると判断した場合に進むS906でカメラ制御部212は、サーチ駆動フラグをオンにしてS908へ処理を進める。一方、S905でサーチ駆動移行カウンタの値が所定値以上でないと判断された場合に進むS907でカメラ制御部212は、フォーカスレンズの駆動速度Zを設定して処理をS908へ進める。S903、S906、S907のいずれかの後に行うS908でカメラ制御部212は、サーチ駆動フラグがオンかどうかを判断し、オンである場合はS909へ処理を進め、オフである場合はレンズ駆動設定処理を終了する。S908でサーチ駆動フラグがオンだと判断した後に進むS909でカメラ制御部212は、レンズ駆動速度Sを設定し、レンズ駆動設定処理を終了する。
S901で設定する信頼性閾値αは、デフォーカスの方向と量のうち、少なくとも方向が信頼できると判定できる値に設定する。デフォーカス方向が信頼できる場合は、設定したレンズ駆動速度Aでデフォーカス量を基にフォーカスレンズを駆動するようにする。一方、デフォーカス方向が信頼できないと判定される信頼性(αより悪い)が継続している場合は、サーチ駆動を行う。サーチ駆動とはデフォーカス量に関係なく、デフォーカス方向を設定してその方向に所定単位(ステップ駆動量)ずつ、フォーカスレンズをその駆動範囲内で駆動する方法である。
S901で、デフォーカス量の方向も信頼できない場合にはS904でサーチ駆動移行カウンタを加算し、S905でサーチ駆動移行カウンタの値が所定値以上になったかどうかを判定することで、継続して信頼性が低い状態である場合にのみサーチ駆動を行う。上述の通りサーチ駆動はデフォーカス量を使用しないため、一時的に大きくボケてしまうような品位の悪いフォーカスレンズの駆動を行う可能性がある。そこで、信頼性が低くなってもすぐにサーチ駆動に移行させないようにすることで、ノイズ等の一時的な要因によって不用意にサーチ駆動をしないようにしている。
S905でサーチ駆動移行カウンタの値が所定値以上となり、サーチ駆動に移行することを判断すると、カメラ制御部212はS906でサーチ駆動フラグをオンにし、S908を経てS909でサーチ駆動用のレンズ駆動速度Sを設定する。サーチ駆動速度Sには、駆動速度Aよりも速い値を設定する。サーチ駆動移行カウンタが所定値に達する前にデフォーカス量の信頼性が所定値αより良い値になった場合、カメラ制御部212はS902でサーチ駆動移行カウンタをリセットする。また、デフォーカス量の信頼度が所定値αより悪いが、サーチ駆動移行カウンタの値が所定値に達していない場合に進むS907で設定するレンズ駆動速度Zには、駆動速度Aより遅い、かつ十分に遅い(ゼロを含む)値を設定する。
図12において設定するレンズ駆動速度には以下の関係がある。
Z < A < S (Zが最も遅く、Sが最も速い)
サーチ駆動を行うのはデフォーカス量の信頼性がデフォーカス方向も信頼できない低い状態が継続している場合であるため、主被写体は大きくボケていると考えられる。そのため、素早く合焦できるよう、S909で設定するサーチ駆動時のフォーカスレンズ駆動速度Sは、駆動速度Aよりも速い値とする。
また、S901で信頼性が所定値αより悪く、S905でサーチ駆動に移行するか判断する間は、デフォーカス量を信じてフォーカスレンズ駆動させない方が良い。そのため、S907でカメラ制御部212は、フォーカスレンズの駆動速度Zとして、速度0(停止)もしくは駆動が目立たない程度の低い速度を設定する。これにより、デフォーカス量の信頼性が悪い場合に品位の悪いフォーカスレンズ駆動がなされることを防止している。
次に図11のS804のレンズ駆動処理について図13のフローチャートを用いて説明する。レンズ駆動処理は、図12を用いて説明したレンズ駆動設定処理によって設定した駆動速度や、サーチ駆動フラグなどの設定を基にフォーカスレンズ103を駆動する処理である。
S1001でカメラ制御部212は、サーチ駆動フラグがオフかどうかを判断し、オフの場合はS1002へ処理を進め、デフォーカス量を基に、レンズ駆動設定処理によって設定した駆動速度でフォーカスレンズを駆動し、レンズ駆動処理を終了する。また、サーチ駆動フラグがオンの場合はS1003へ処理を進め、サーチ駆動処理を行いレンズ駆動処理を終了する。S1003のサーチ駆動処理の詳細は図14を用いて後述する。
次に図13のS1003のサーチ駆動処理について図14のフローチャートを用いて説明する。サーチ駆動処理は、図12のS906でサーチ駆動フラグがオンされた場合に行う処理であり、フォーカスレンズの駆動範囲内を、S909で設定された駆動速度で駆動する。
S1101でカメラ制御部212は、サーチ駆動が初回かどうかを判断し、初回でない場合はS1103へ直接処理を進め、初回である場合はS1102で駆動方向設定を行ってからS1103へ処理を進める。サーチ駆動が初回である場合は、どちらにフォーカスレンズ103を駆動するかを決定する必要がある。S1102の駆動方向設定処理については図16を用いて後述する。
S1103でカメラ制御部212は、レンズ制御部106を通じ、設定した駆動方向及び駆動速度Sでフォーカスレンズ103を駆動し、S1104へ処理を進める。S1104でカメラ制御部212は、フォーカスレンズ103が至近端若しくは無限端に到達したかどうかを判断し、到達した場合はS1105へ処理を進め、到達していない場合はS1106へ処理を進める。S1105でカメラ制御部212は、駆動方向を反転させてS1106へ処理を進める。S1106でカメラ制御部212は、信頼性が所定値αより良い値かどうかを判断し、所定値αより良い値の場合はS1107へ処理を進め、そうでない場合はS1108へ処理を進める。S1108でカメラ制御部212は、フォーカスレンズ103がサーチ駆動の過程で至近端、無限端の両方に到達したかどうかを判断し、到達した場合はS1107へ処理を進め、到達していない場合はサーチ駆動処理を終了する。S1107でカメラ制御部212は、サーチ駆動フラグをオフにしてサーチ駆動処理を終了する。
サーチ駆動を終了する条件は、S1106で信頼性が所定値αより良い値になった場合、若しくはS1108でフォーカスレンズ103が至近端、無限端の両方に到達した場合である。S1106で設定する信頼性閾値αは、図12のS901で設定した閾値αと同じであり、少なくともデフォーカス量の方向が信頼できると判断できる値である。信頼性が閾値αより良い値になったのであれば、被写体が合焦に近づいてきたと判断できるため、サーチ駆動をやめて再度デフォーカス量を基に駆動する制御に切り替える。また、S1108で至近端、無限端の両方に到達したと判断された場合は、フォーカス駆動範囲の全域を駆動した場合であり、つまりは被写体が特定できなかった場合である。この場合はサーチ駆動フラグをオフにし、最初の処理の状態に戻す。なお、被写体が特定できない場合にはサーチ駆動フラグをオフにせずにサーチ駆動を継続させるようにしても良い。
次に図14のS1102の駆動方向設定処理について、図15のフローチャートを用いて説明する。S1201でカメラ制御部212は、フォーカスレンズ103の現在位置が無限端よりも至近端に近いかどうかを判断し、至近端に近い場合はS1202へ処理を進め、無限端に近い場合はS1203へ処理を進める。
S1202でカメラ制御部212は、サーチ駆動開始時のフォーカスレンズ103の駆動方向を至近方向に設定して駆動方向設定処理を終了する。一方、S1203でカメラ制御部212は、サーチ駆動開始時のフォーカスレンズ103の駆動方向を無限方向に設定して駆動方向設定処理を終了する。このように駆動方向を設定することで、フォーカスレンズの駆動領域全体をサーチ駆動する時間を短縮することができ、サーチ駆動によって被写体を発見するために要する最大時間を短くできる。
次に、図5のS508のAF再起動判定について図16のフローチャートを用いて説明する。AF再起動判定は、合焦していると判断してフォーカスレンズ103を停止している際に、再度フォーカスレンズ103を駆動するかどうかの判定をする処理である。
S701でカメラ制御部212(再起動判定部213)は、AF信号処理部204が算出したデフォーカス量が焦点深度の所定倍(例えば1より大きな倍数)より小さいかどうかを判断し、小さい場合はS702へ、大きい場合はS704へ処理を進める。S702で再起動判定部213は、AF信号処理部204が算出した信頼性が所定値より良いかどうかを判断し、良い値を示す場合はS703へ処理を進め、そうでない場合はS704へ処理を進める。S703で再起動判定部213はAF再起動カウンタをリセットし、S705へ処理を進める。S704で再起動判定部213はAF再起動カウンタを加算しS705へ処理を進める。
上述したように、デフォーカス量が所定量以上、またはデフォーカス量の信頼性が所定値より悪い場合、再起動判定部213は、撮影している主被写体が変わったと判断し、AF再起動をする(フォーカスレンズ103を再駆動する)準備を行う。一方、デフォーカス量の大きさと信頼性から、主被写体が変わっていないと判断する場合、再起動判定部213はAF再起動をしない(フォーカスレンズ103の停止状態を維持する)ようにする。
S701で設定するデフォーカス量の閾値は、主被写体が変わったときにはAF再起動が行われ、主被写体が変わっていないときにはAF再起動がされにくくなるよう、経験的もしくは実験的に設定する。一例として、主被写体のボケが見えるようになる深度の1倍を設定する。また、S702で設定する信頼性の閾値は、例えばデフォーカス方向を信頼するのが困難なほど低い信頼性の場合に、主被写体が変わったと判定してAF再起動されるように設定する。このようにS701、S702の判定は、主被写体が変わったかどうかの判定処理とも言える。従って、同様の判定が可能な任意の処理に置き換えることができ、処理の方法に応じて用いる閾値の種類や値を設定する。
S705で再起動判定部213は、AF再起動閾値を設定して処理をS706へ進める。AF再起動閾値は、AF再起動カウンタを用いて、AF再起動判定を行う際の閾値である。S705のAF再起動閾値設定の詳細は、図17のフローチャートを用いて後述する。このように、本実施形態では、AF再起動判定処理が実行されるごとに、直近に検出されたデフォーカス量に基づいてAF再起動閾値を設定する。
S706で再起動判定部213は、AF再起動カウンタの値がS705で設定されたAF再起動閾値以上かどうかを判断し、閾値以上ならS707へ処理を進め、閾値未満ならAF再起動判定処理を終了する。S707で再起動判定部213は、合焦停止フラグをオフにすることでAFを再起動するように、すなわちフォーカスレンズの駆動を再開するようにして、AF再起動判定処理を終了する。このように、所定量以上のデフォーカス量か信頼性が所定値より悪いデフォーカス量が閾値の回数以上検出されると、フォーカスレンズの駆動が開始される。
S707でAF再起動を決定するに当たって再起動判定部213は、S704で加算したAF再起動カウンタの値が、AF再起動閾値以上かどうかを判断する。AF再起動カウンタの加算と値の判定は、主被写体が変化したかどうかの判定を、デフォーカス量の大きさや信頼性の1回の判定に基づいて行わず、一定期間に得られる判定結果の統計量に基づいて行うものである。また、本実施形態ではS705で設定するAF再起動閾値を条件に応じて可変値とすることで、再起動の決定がなされるまでの時間(決定されやすさ)を調節する。
AF再起動閾値を制御することにより、主被写体が近づいているか遠ざかっていると判断できる場合には再起動の決定がされやすく、主被写体以外の被写体の影響である可能性がある場合には再起動の決定がされにくくすることができる。これにより、主被写体が実際には変わっていない場合に、一時的なデフォーカス量の大きさや信頼性の変動によって主被写体が変わったと判断してAF再起動することによる画質への影響を防ぎながら、主被写体の距離変換に対する良好な追従性を実現できる。
次に、図16のS705におけるAF再起動閾値設定処理について、図17のフローチャートを用いて説明する。
S1301でカメラ制御部212(再起動判定部213)は、直近に検出したデフォーカス量が所定値βより小さいかどうかを判断し、小さいと判断される場合はS1302へ、所定値β以上と判断される場合はS1303へ処理を進める。なお、S1301で比較する所定値βは、図7のS701で設定した値(焦点深度の所定数倍)より大きな値とする。
再起動判定部213は、S1302でAF再起動閾値をXに、S1303でAF再起動閾値をYに設定し、処理をS1304へ進める。ここで、X<Yとする。S1304で再起動判定部213は、設定したAF再起動閾値を再調整する処理を行い処理を終了する。S1304のAF再起動閾値調整の詳細については図18を用いて後述する。
なお、先述したように、動画撮影時の焦点検出制御において、被写体が停止している場合には合焦後にフォーカスレンズの駆動を停止するのは、不用意なフォーカスレンズの駆動が動画像の見えに影響を与えることを回避するためである。従って、不用意な再起動の決定もまたフォーカスレンズの駆動動作の品位の低下につながる。つまり、主被写体の移動に対して追従しなければならない状態ではできるだけ早期に再起動を実行すべきであるが、一方で再起動したことで他の被写体に合焦してしまうといった事態は避けるべきである。そのため、本実施形態では、デフォーカス量に基づいてAF再起動閾値を動的に設定することにより、フォーカスレンズ103の駆動を再開する決定の精度と応答性とを改善する。
AF再起動閾値の制御とその効果について、図20に示す例を用いて説明する。図20は、フォーカスレンズ103の駆動範囲を合焦位置を中心として示している。図20に示すようにフォーカスレンズ103が合焦位置で停止した状態にある場合、検出されたデフォーカス量が「焦点深度内」であり、デフォーカス量の信頼性が所定値よりよければ、フォーカスレンズ103の駆動を再開しないように制御する。これは、図16において、S703が実行される場合に相当する。一方、検出されたデフォーカス量が焦点深度外であった場合、本実施形態では、デフォーカス量の範囲を比較的小さい「深度外1」と、デフォーカス量が比較的大きい「深度外2」の2つに分けて異なるAF再起動閾値を設定する。「深度外1」に対応するAF再起動閾値は図17のS1302で設定されるXである。また「深度外2」に対応するAF再起動閾値は図17のS1303で設定されるYである。従って、図20における「深度外1」と「深度外2」の境界が、S1301で使用する閾値βに該当する。
比較的小さな「深度外1」のデフォーカス量を検出した場合、合焦位置におけるデフォーカス量からの変化が小さいため、主被写体が近づいたり遠ざかったりして、主被写体の距離が変化していることが想定される。このような場合には、主被写体の移動に追従した焦点検出を行うため、できるだけ早く再起動を実行すべきである。従って、AF再起動閾値として比較的小さい値であり、Yよりも小さなXを設定する。AF再起動閾値に小さな値を設定することにより、S706における判定条件が満たされるまでに要する時間が短縮されるため、主被写体の距離に変化があると想定される場合に素早い再起動が実行でき、焦点検出動作の追従性能を高めることができる。
一方、比較的大きな「深度外2」のデフォーカス量を検出した場合には、合焦位置におけるデフォーカス量からの変化が大きい。この場合、主被写体が急激に移動した可能性よりは、主被写体とは別の被写体に対するデフォーカス量を検出した可能性が高い。ただし、主被写体が変わった場合には新たな被写体に合焦させる必要があるため、再起動は行う。この場合は、本当に主被写体が変わったのか、あるいは一時的に他の被写体が通過したのかを見極めるために、AF再起動閾値として比較的大きい、かつXより大きなYを設定する。AF再起動閾値を大きくすると、S706における判定条件が満たされるまでに要する時間が延びる。そのため、例えば主被写体の前を別の被写体が横切ったようなシーンでは、AF再起動カウンタの値がAF再起動閾値に達する前にS703でAF再起動カウンタがリセットされ、AF再起動が実行されない。従って、フォーカスレンズは停止状態を維持し、主被写体に合焦した状態を維持できる。また、本当に主被写体が変わった場合は、AF再起動カウンタがリセットされずにS704で加算されつづけるため、最終的には再起動が実行されるため、新たな主被写体へ合焦すべく焦点検出を行うことができる。
このように、本実施形態ではAF再起動閾値の値を制御することにより、フォーカスレンズの停止状態で検出されたデフォーカス量が大きい場合には再起動の実行が決定されにくくし、デフォーカス量が小さい場合には再起動の実行が決定されやすくする。これにより、撮影シーンの状況に適したフォーカスレンズの再起動判定が実現でき、動画撮影に適した品位のよいフォーカスレンズの駆動が実現できる。
なお、本実施形態では説明及び理解を容易にするため、デフォーカス量に応じた2通りのAF再起動閾値を設定する例を説明したが、より多くの種類のAF再起動閾値を設定するようにしてもよい。また、実際に設定するAF再起動閾値とデフォーカス量の対応関係は、デフォーカス量の検出周期やフォーカスレンズの駆動速度の設定範囲など、撮像装置やレンズユニットの性能や仕様に応じて決定する。
次に、図17のS1304におけるAF再起動閾値調整処理について、図18のフローチャートを用いて説明する。
S1401でカメラ制御部212(再起動判定部213)は、図6のS607で設定した焦点検出領域(AF枠)の像高が所定値より大きいかどうかを判断する。そして、再起動判定部213は、焦点検出領域の像高が所定値より大きいと判断される場合はS1403へ、所定値以下と判断される場合にはS1402へ処理を進める。
S1402で再起動判定部213は、設定されている絞り値が所定値より小絞り側か(所定値より大きいか)どうかを判断し、小絞り側と判断される場合はS1403へ、そうでない判断される場合はAF再起動閾値を変更せずに処理を終了する。S1403で再起動判定部213は、図17のS1302及びS1303で設定したAF再起動閾値を大きくするゲインを適用して処理を終了する。
撮像面位相差検出方式では、一般的に像高が大きいほど像信号A、Bを取得する瞳A、Bに入射する光量差が大きくなり、瞳内の位置によって瞳強度が異なるという特性がある。そのため、像高が大きい位置では像信号A、B間のレベル差が顕著に表れ、像信号A、Bの像一致度が低下し、デフォーカス検出精度が低下してしまう。
また、撮像面位相差検出方式では、絞り値が大きい(小絞り)ほど、像信号A、Bを結像する基線長が短くなるため、像信号A、Bの像ずれ量をデフォーカス量に換算する換算係数が大きくなる特性がある。そのため、絞り値が大きい(小絞り)ほど、少しの像ずれ量が大きなデフォーカス量に換算され、デフォーカス精度が悪化する。
上述した(1)焦点検出領域の像高が高い場合、(2)絞りが小絞りである場合のように、デフォーカス量の検出精度が低下する条件下では、検出されるデフォーカス量のバラつきが大きくなり、焦点深度外のデフォーカス量を検出する可能性が大きくなる。そのため、例えば合焦しているにも関わらず再起動の条件が満たされてしまうことがあり、不用意なフォーカスレンズの駆動によって動画の品質に影響を与えてしまう。そこで、デフォーカス量の検出精度が低下する条件が満たされる場合には、デフォーカス量に基づいて決定された既定のAF再起動閾値を大きくして、精度の低下したデフォーカス量により意図しない再起動が実行されることを抑制する。なお、所定値を加算するなど、他の方法によって閾値を大きくしてもよい。なお、S1403で適用するゲインや加算値などの大きさは例えば実験的に定めればよい。
なお、デフォーカス検出精度(信頼性)が低くなりやすい撮影条件の例として、絞り値と像高を説明したが、さらに、あるいはこれらに代えて、他の条件を考慮しても良い。例えば、絞り値の代わりに変換係数の値が所定値以上であることを条件として用いても良い。これは、上述の通り、絞り値の大きさと変換係数の大きさとが連動しているためである。同様に、変換係数の大きさの変化と連動した大きさを有する他のパラメータを用いることもできる。また、変換係数や像高とは独立したパラメータを考慮することもできる。
以上説明したように、本実施形態の撮像装置は、フォーカスレンズが停止状態で検出されたデフォーカス量に基づいて、フォーカスレンズの駆動再開の決定されやすさを制御する。具体的には、検出されたデフォーカス量が予め定められた値より小さければ、予め定められた値以上の場合よりもフォーカスレンズの駆動再開が決定やすくなるようにする(駆動再開が決定される条件を緩くする)。これにより、撮影シーンの状況に適したフォーカスレンズの再起動判定が実現でき、動画撮影に適した品位のよいフォーカスレンズの駆動が実現できる。
また、本実施形態によれば、コントラスト検出方式を利用する必要が無いため、撮像面位相差検出方式とコントラスト検出方式を併用する方法よりも簡便な構成で、適切なフォーカスレンズの再起動判定を実現することができる。
また、撮像面位相差検出方式を用いる場合にデフォーカス検出精度が悪化する設定がなされている場合には、そのような設定がなされていない場合よりも、フォーカスレンズの駆動を再開が決定されにくくする。このようにすることで、被写体との距離が変動していないにもかかわらず、フォーカスレンズの駆動が再開されてしまうことを抑制できる。
なお、本実施形態では条件を満たすデフォーカス量や信頼性が検出される回数、特には閾値の回数以上、連続して検出されるとフォーカスレンズの駆動再開(再起動)を決定した。しかし、条件を満たすデフォーカス量が連続して検出された期間の長さ(経過時間)が所定時間以上かどうかの判定など、他の判定方法でもよい。
(第2の実施形態)
以下、本発明の第2の実施形態について説明する。まず本実施形態と第1の実施形態との違いについて説明する。
第1の実施形態では、焦点深度外のデフォーカス量を連続で所定回数検出した場合にフォーカスレンズの駆動を再開(開始)した。第2の実施形態では、連続した所定の複数回のデフォーカス量検出により、焦点深度外のデフォーカス量を(所定の複数回以下の)複数回以上検出していればフォーカスレンズの駆動を再開(開始)するように制御する。
本実施形態におけるレンズ及びカメラ本体からなるレンズ交換式カメラの構成は、第1の実施形態で図1を基に説明した構成と同様なので説明は省略する。
また、本実施形態は図5のS508におけるAF再起動判定処理以外、第1の実施形態と同様であるため、以下では、本実施形態に特徴的なAF再起動判定処理についてのみ説明する。
図5のS508のAF再起動判定について、図21のフローチャートを用いて説明する。図21のS2302、S2303、S2305、S2307の処理は、第1の実施形態におけるS701、S702、S705、S707の処理と同様なので説明を省略する。
S2301でカメラ制御部212(再起動判定部213)は、AF再起動判定フラグを左シフトして処理をS2302へ進める。第1の実施形態では、AF再起動カウンタを用いてAF再起動判定を行っていたが、本実施形態ではAF再起動判定フラグを用いる。
S2302でデフォーカス量が焦点深度の所定倍以上の場合、またはS2303で信頼性が所定値より悪い場合に実施されるS2304で再起動判定部213は、AF再起動判定フラグの最下位ビットを1にして処理をS2305へ進める。S2305でAF再起動閾値を設定した後に実行するS2306で再起動判定部213は、AF再起動判定フラグがS2305で設定したAF再起動閾値の数以上「1」のビットを有するかどうか判断する。そして、AF再起動判定フラグがS2305で設定したAF再起動閾値の数以上「1」のビットを有すると判断した場合はS2307で合焦停止フラグを0(オフ)にしてAF再起動判定処理を終了する。一方、AF再起動判定フラグに含まれる「1」のビット数がAF再起動閾値未満であると判断した場合、再起動判定部213は、S2307を実行せずにAF再起動判定処理を終了する。なお、S2306の判定は他の方法によってもよい。例えば、AF再起動判定フラグの総ビット数に対する「1」ビットの割合や確率が所定値以上かどうかの判定を用いることができる。あるいは、S2302において焦点深度の所定倍より大きいデフォーカス量が検出された期間の長さ(時間)が所定時間以上かどうかの判定であってもよい。
本実施形態ではAF再起動閾値と比較する対象として、カウンタ値の代わりにAF再起動移行判定フラグが有する「1」のビット数を用いている。AF再起動判定フラグは、S2303が実行されるごとに、すなわち図21のAF再起動判定処理が行われるごとに1ビット左シフトされる。一方、検出したデフォーカス量が焦点深度の所定倍より大きいか、デフォーカス量の信頼性が所定値より悪い場合にのみ、S2304でAF再起動判定フラグの最下位ビットを「1」にする。
ここで、AF再起動判定フラグをnビット(nは1より大きいの整数)とする。この場合、n回AF再起動判定処理を実行した後にAF再起動判定フラグが有する「1」のビット数は、n回のうち焦点深度の所定倍より大きいか、信頼性が所定値より悪いデフォーカス量が検出された回数に等しい。従って、連続でなくても、条件に合致するデフォーカス量がAF再起動閾値以上の回数検出されればフォーカスレンズの駆動を再開する本実施形態では、AF再起動判定フラグのビット数nをAF再起動閾値より多く設定する必要がある。例えば、AF再起動判定フラグを4ビット、AF再起動判定閾値を3に設定した場合、過去4回のデフォーカス量の検出において、焦点深度の所定倍より大きいか、信頼性が所定値より悪いデフォーカス量が3回以上検出されれば再起動を実行する。なお、ビット数n=AF再起動閾値とした場合には、第1の実施形態と同様の制御を行うことができる。
本実施形態のAF再起動判定方法は、AF再起動判定フラグのビット数と、AF再起動閾値の量を用いて、再起動の決定のされやすさを制御可能であり、第1の実施形態の方法を含めた、より柔軟な制御が実現できる。なお、第1の実施形態の判定方法と、本実施形態の判定方法とを併用してもよい。第1の実施形態の判定方法と、本実施形態の判定方法との切り替え条件に特に制限は無い。例えば、第1の実施形態の判定方法を用いている際に、フォーカスレンズの停止時間が所定時間を超えた場合に本実施形態の判定方法に切り替えることができる。この場合、AF再起動閾値を小さくする代わりに、AF再起動閾値より大きなビット数を有するAF再起動判定フラグを用いるようにすればよい。
以上説明したように、本実施形態では、大きなデフォーカス量や信頼性の悪いデフォーカス量が検出された時点で直ちにフォーカスレンズの駆動を再開することはしない。その代わり、大きなデフォーカス量や信頼性の悪いデフォーカス量が所定割合以上検出されるとフォーカスレンズの駆動を再開(開始)する。そのため、第1の実施形態と同様の効果を得ることが可能な上、より柔軟な再起動判定の制御が可能である。
以上、本発明をその例示的な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、特許請求の範囲に記載した発明の範囲内で様々な変形、改変を行うことができる。
(他の実施形態)
上述の実施形態におけるAF再起動判定処理においては、検出されたデフォーカス量が大きい(S701)か、信頼性の悪い(S702)かのいずれかが満たされると、AF再起動カウンタを加算していた。しかし、S701とS702の一方のみを実施してもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する 処理である。