以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明は以下の実施の形態に限定されるものではない。
(第一の実施形態)
図1は、本実施形態におけるレンズユニット及びカメラ本体からなるレンズ交換式カメラの構成を示すブロック図である。図1に示すように、本実施形態におけるカメラシステムは、レンズユニット10及びカメラ本体20から構成されている。レンズユニット全体の動作を統括制御するレンズ制御部106と、カメラ全体の動作を統括するカメラ制御部212がデータを通信している。
まず、レンズユニット10の構成について説明する。レンズユニット10は、固定レンズ101、絞り102、フォーカスレンズ103を備えて構成される撮影光学系を有する。絞り102は、絞り駆動部104によって駆動され、後述する撮像素子201への入射光量を制御する。フォーカスレンズ103は、フォーカスレンズ駆動部105によって駆動され、焦点調節を行う。
絞り駆動部104、フォーカスレンズ駆動部105は、レンズ制御部106によって制御され、絞り102の開口量や、フォーカスレンズ103の位置が決定される。ユーザによりレンズ操作部107を介してフォーカスなどの操作が行われた場合には、レンズ制御部106がユーザ操作に応じた制御を行う。レンズ制御部106は、後述するカメラ制御部212から受信した制御命令・制御情報に応じて絞り駆動部104やフォーカスレンズ駆動部105の制御を行い、また、レンズ情報をカメラ制御部212に送信する。
次に、本実施形態に係る自動焦点調節装置を備えるカメラ本体20の構成について説明する。カメラ本体20は、レンズユニット10の撮影光学系を通過した光束から撮像信号を取得可能に構成されている。撮像素子201は、CCDやCMOSセンサにより構成される。撮影光学系を通過した光束が撮像素子201の受光面上に結像し、形成された被写体像がフォトダイオードによって入射光量に応じた電荷に変換(光電変換)される。各フォトダイオードに蓄積された電荷は、カメラ制御部212の指令に従ってタイミングジェネレータ215から与えられる駆動パルスに基づいて電荷に応じた電圧信号として撮像素子201から順次読み出される。
撮像面位相差方式の焦点調節(以下、撮像面位相差AF)に対応しない撮像素子の場合、例えば図2(A)に示すようなベイヤー配列の画素構成となる。一方、本実施形態の撮像素子201は、撮像面位相差AFを行うために、図2(B)に示すように1つの画素に複数(本実施形態では2つ)のフォトダイオード(光電変換素子)を保持している。すなわち、1マイクロレンズ下に複数のフォトダイオードを有している。光束をマイクロレンズで分離し、射出瞳領域の異なる領域を通過した光を2つのフォトダイオードで結像することで、撮像用とAF用の2つの信号が取得可能になっている。2つのフォトダイオードの信号を加算した信号(A+B)が撮像信号であり、個々のフォトダイオードの信号(A、B)がAF用の2つの像信号になっている。ここでは、2つの像信号のそれぞれを読み出す構成に限らず、例えば処理負荷を考慮して、加算した信号(A+B)と一方の像信号(例えばA)を読み出し、その差分からもう一方の像信号(例えばB)を取得する構成でもよい。後述するAF信号処理部204で2つの像信号に対して相関演算を行い、像ずれ量や各種信頼性情報を算出する。
なお、本実施形態では1つの画素に2つのフォトダイオードを有する撮像素子の構成としているが、フォトダイオードの数は2つに限定されず、それ以上であってもよい。また、撮像面位相差AF対応の撮像素子の構成として、本実施形態のように1つの画素に複数のフォトダイオードを設ける構成に限らず、撮像素子中に焦点検出用の画素を設ける構成であってもよい。
撮像素子201から読み出された撮像信号及びAF用信号は、CDS/AGC/ADコンバータ202に入力され、リセットノイズを除去する為の相関二重サンプリング、ゲインの調節、信号のデジタル化を行う。CDS/AGC/ADコンバータ202は、撮像信号を画像入力コントローラ203及びAF評価値生成部216に、撮像面位相差AF用の信号をAF信号処理部204にそれぞれ出力する。
画像入力コントローラ203は、CDS/AGC/ADコンバータ202から出力された撮像信号をSDRAM209に格納する。SDRAM209に格納された撮像信号は、バス21を介して、表示制御部205によって表示部206に表示される。また、撮像信号の記録を行うモードの時には、記録媒体制御部207によって記録媒体208に記録される。
また、バス21を介して接続されたROM210には、カメラ制御部212が実行する制御プログラム及び制御に必要な各種データ等が格納されている。フラッシュROM211には、ユーザ設定情報等のカメラ本体20の動作に関する各種設定情報等が格納されている。
AF信号処理部204は、CDS/AGC/ADコンバータ202から出力されたAF用の2つの像信号を基に相関演算を行い、像ずれ量と信頼性情報(二像一致度、二像急峻度、コントラスト情報、飽和情報、キズ情報等)を算出する。そして、算出した像ずれ量と信頼性情報をカメラ制御部212へ出力する。また、カメラ制御部212は、取得した像ずれ量や信頼性情報を基に、これらを算出する設定の変更をAF信号処理部204に通知する。例えば、像ずれ量が大きい場合に相関演算を行う領域を広く設定したり、コントラスト情報に応じてバンドパスフィルタの種類を変更したりする。相関演算の詳細については、図13乃至図15を用いて後述する。
さらにAF評価値生成部216は、CDS/AGC/ADコンバータ202から出力された撮像信号から高周波成分を抽出してAF評価値信号を生成し、カメラ制御部212へ出力する。AF評価値信号は、撮像素子201からの出力信号に基づいて生成される画像の鮮鋭度(コントラスト状態)を表すものであり、鮮鋭度は撮影光学系の焦点状態(合焦の程度)によって変化するので、結果的に撮影光学系の焦点状態を表す信号となる。なお、AF評価値を生成するのに用いる撮像素子201上の領域は、位相差検出用の像信号を生成するのに用いる領域と対応する領域を含むものとする。
カメラ制御部212は、カメラ本体20内の各構成と情報をやり取りして制御を行う。カメラ本体20内の処理だけでなく、カメラ操作部214からの入力に応じて、電源のON/OFF、設定の変更、記録の開始、AF制御の開始、記録画像の確認等、ユーザが操作したカメラ機能を実行する。また、先述したようにレンズユニット10内のレンズ制御部106と情報をやり取りし、撮影光学系の制御命令・制御情報を送ったり、レンズユニット内の情報を取得する。また、本実施形態の特徴的な部分としては、カメラ制御部212は、後述するレンズ再起動判定部213で用いる再起動判定用の閾値を設定する。詳細については後述する。
カメラ制御部212内にあるレンズ再起動判定部213は、フォーカスレンズ103を停止している状態から再度駆動(再起動)させるかどうかの判定を行う。カメラ制御部212で被写体に合焦したと判定した場合は、レンズユニット10内のレンズ制御部106及びフォーカスレンズ駆動部105を介して、フォーカスレンズ103の駆動を停止する。その後、AF信号処理部204の情報を基に、レンズ再起動判定部213は、再度フォーカスレンズ103を駆動させるかどうかを判定する。レンズ再起動判定部213がフォーカスレンズ103を再起動させると判定した場合は、レンズユニット10内のレンズ制御部106及びフォーカスレンズ駆動部105を介して、フォーカスレンズ103の駆動を再開する。
静止画撮影時には、いち早くピントを合わせるAF制御が求められるが、動画撮影時には、フォーカシング動作による映像の見え方そのものが記録されるため、フォーカシング動作の品位が重要とされる。品位を高めるための制御の一つとして、常にフォーカスレンズを駆動し続けずに、被写体にピントが合った時点でフォーカスレンズを停止させ、その後、被写体が変わったりボケたと判断されるまでフォーカスレンズ駆動を再開させないように制御する。フォーカスレンズを停止させずに駆動し続けた場合、次のような問題がある。例えば、不用意に低コントラスト部のような測距精度の悪い被写体を測距した場合や、意図する被写体以外の被写体の横切りが発生した場合などに、不用意にフォーカシングしてボケてしまい動画の品位を悪くしてしまう。そのため、動画撮影時には、被写体に合焦したと判断した際には一度フォーカスレンズを停止し、被写体が変化したかを判定してフォーカシングを再開するように制御することで、無駄なフォーカシング動作を抑えて品位を高めることができる。
上記のように、フォーカスレンズの停止状態から駆動を再開させるにあたって、不用意なフォーカシング動作をさせないために、被写体状況(合焦状態)が変化したと確かに判断できてから再起動させるように制御するのが望ましい。例えば、デフォーカス量が深度以内であれば再起動はさせず、深度外のデフォーカス量を一定時間検出したら再起動させるという処理を行えば、合焦状態が変化したと判断することができる。
しかしながら、合焦状態が変化したからといって、フォーカシングを行いたくないような撮影シーンもある。例えば、測距エリアから一時的に被写体が出て再び戻るような場合は、ピントが合っていた被写体にピントを維持したいので再起動を行わないことが望ましい。一方で、フォーカスレンズを停止している状態からパンニングなどでシーンが変わった場合には、できるだけボケている期間を少なくしてピントを追従させたいため、いち早く再起動を行うことが望ましい。
本実施形態では、フォーカスレンズの停止状態から再起動するにあたって、カメラ制御部212(レンズ再起動判定部213)において、検出したAF評価値信号とデフォーカス量に基づき、主被写体を捉えているのか、主被写体やシーンが変わったのか判断する。前者であれば、できるだけフォーカスレンズの停止状態を維持するために、再起動を制限するように制御し、後者であれば、ピントを追従させるために早く再起動を行うように制御する。なお、前者の場合でも、主被写体の状況が変化している場合があるので、再起動は行うように制御する。再起動判定に関する処理の詳細は、図10乃至図12を用いて後述する。
次に、本実施形態におけるカメラ本体20の動作について、図を用いて説明する。図3は、カメラ本体20の撮影処理の手順を示すフローチャートである。
まず、ステップS301〜S303で、カメラ制御部212は初期化処理を行う。ステップS301では、カメラ制御部212は、カメラの各種初期値設定を行う。ここでは、撮影処理を開始したとき、または撮影モードが変更されたときに、そのときのユーザ設定や撮影モード等の情報を基に初期値を設定する。ステップS302では、合焦停止フラグをオフにする。ステップS303では、サーチ駆動フラグをオフにして処理を終了する。
ステップS302で初期化する合焦停止フラグは、動画撮影中に合焦したと判定してフォーカスレンズ103を停止している場合はオンに、合焦しておらずフォーカスレンズ103を駆動している状態である場合はオフにする。合焦停止フラグのオン/オフを切り替えることで、現在フォーカスレンズ103を駆動している状態なのか、停止している状態なのかを判別する。
ステップS303で初期化するサーチ駆動フラグは、フォーカスレンズ103を駆動する際、撮像面位相差検出方式で検出したデフォーカス量が信頼できる場合にはオフに、信頼できない場合にはオンにする。デフォーカス量が信頼できる場合とは、デフォーカス量の精度およびデフォーカス方向が確かである場合、すなわち信頼性がある程度より高い状態である。サーチ駆動フラグがオンになると、デフォーカス量を用いずにフォーカスレンズ103を一定方向に駆動して合焦位置を探すサーチ駆動が行われる。
ステップS304では、カメラの撮影設定が動画撮影モードか、静止画撮影モードかの判定を行う。動画撮影モードである場合はステップS305へ、静止画撮影モードである場合はステップS306へ進む。ステップS305では動画撮影処理を行い、ステップS307へ進む。ステップS305の動画撮影処理の詳細については図4で後述する。一方、ステップS306では、静止画撮影処理を行いステップS307へ進む。ステップS306の静止画撮影処理の詳細については省略する。
ステップS307では、撮影処理が停止されたかどうかを判断し、停止されていない場合はステップS308へ進み、停止された場合は撮影処理を終了する。撮影処理が停止された場合とは、カメラの電源が切断されたときや、カメラのユーザ設定処理、撮影画像・動画の確認のための再生処理等、撮影以外の動作が行われたときである。
ステップS308では、撮影モードが変更されたかどうかを判断し、変更されている場合はステップS301へ戻り、変更されていない場合はステップS304へ戻る。撮影モードが変更されていなければ現在の撮影モードの処理を継続して行い、撮影モードが変更された場合はステップS301〜S303で初期化処理を行った上で変更された撮影モードの処理を行う。
次に、図3のステップS305の動画撮影処理について、図4を用いて説明する。ステップS401からS404では、動画記録に関する制御を行う。
ステップS401では、カメラ制御部212は、動画記録スイッチがオンされているかどうかを判断する。オンされている場合はステップS402へ進み、オンされていない場合はステップS405へ進む。
ステップS402では、カメラ制御部212は、現在動画記録中かそうでないかを判断する。動画記録中でない場合はステップS403へ進み、動画記録を開始してステップS405へ進む。一方、動画記録中の場合はステップS404へ進み、動画記録を停止してステップS405へ進む。本実施形態においては、動画記録スイッチを押下することで動画の記録開始・停止を行うが、切り替えスイッチ等の他の方式によって記録開始・停止を行っても構わない。
ステップS405では、焦点検出処理を行う。ここでは、図1のカメラ制御部212及びAF信号処理部204で行う撮像面位相差AFを行うためのデフォーカス情報及び信頼性情報を取得する処理である。詳細は図5を用いて後述する。
ステップS406では、鮮鋭度情報の取得を行う。ここでは、AF評価値生成部216において、設定された測距領域の撮像信号から先鋭度情報(AF評価値)を取得する処理である。この処理に関しては、従来からの技術であるため、詳細は省略する。
ステップS407では、カメラ制御部212は、現在合焦停止中かどうかを判断する。合焦停止中でない場合はステップS408へ進み、合焦停止中である場合はステップS409へ進む。合焦停止中かどうかは、先述した合焦停止フラグのオン/オフによって判断する。ステップS408では、AF処理を実施し動画撮影処理を終了する。ステップS408は、ステップS405及びS406で検出した情報を基にAF制御を行うもので、詳細は図7を用いて後述する。
ステップS409では、AF再起動判定を行い、動画撮影処理を終了する。ステップS409は、合焦停止中から被写体が変わったとして再度AF制御を開始するかどうかの判定を行う処理である。詳細は図6を用いて後述する。
次に、図4のステップS405の焦点検出処理について、図5を用いて説明する。まず、ステップS501では、カメラ制御部212は、任意に設定した測距範囲から一対の像信号を取得する。次に、ステップS502では、カメラ制御部212は、ステップS501で取得した一対の像信号から相関量を算出する。
続いて、ステップS503では、カメラ制御部212は、ステップS502で算出した相関量から相関変化量を算出する。そして、ステップS504では、カメラ制御部212は、ステップS503で算出した相関変化量からピントずれ量を算出する。
また、ステップS505では、カメラ制御部212は、ステップS504で算出したピントずれ量がどれだけ信頼できるのかを表す信頼性を算出する。これらの処理を測距範囲内に存在する測距領域の数だけ行う。そして、ステップS506では、カメラ制御部212は、測距領域毎にピントずれ量をデフォーカス量に変換する。最後に、ステップS507では、AFに使用する測距領域を決定し、焦点検出処理を終了する。
次に、図13から図15を用いて、図5で説明した焦点検出処理を詳細に説明する。図13は、焦点検出処理で取り扱う測距範囲を示す像信号を取得する領域の一例を表した図である。図13(A)は、画素アレイ1301上の測距範囲1302を示す図である。相関演算を行う為に必要な領域1304は、測距範囲1302および相関演算に必要なシフト領域1303を合わせた領域である。図13(A)中のp、q、s、tは、それぞれx軸方向の座標を表す。ここで、pからqは領域1304を表し、sからtは測距範囲1302を表す。
図13(B)は、測距範囲1302を5つに分割した測距領域1305〜1309を示す図である。一例として、本実施形態では、この測距領域単位でピントずれ量を算出し、焦点検出を行う。また、分割した複数の測距領域の中から最も信頼できる領域の測距結果を選び、その領域で算出したピントずれ量をAFに用いる。なお、測距範囲の分割数は上記に限定されない。
図13(C)は、図13(B)の測距領域1305〜1309を連結した仮の測距領域1310を示す図である。実施形態の一例として、このように測距領域を連結した領域から算出したピントずれ量をAFに用いても良い。測距領域の配置の仕方や大きさ等は、本実施形態に挙げた内容に限られるものではなく、発明の要旨を逸脱しない範囲の形式であれば良い。
図14は、図13で設定した測距領域から取得した像信号を示す図である。sからtが測距範囲を表し、pからqがシフト量を踏まえた測距演算に必要な範囲を表す。また、xからyは、分割した1つ分の測距領域を表す。
図14(A)は、シフト前の像信号を波形で表した図である。実線1401が像信号A、破線1402が像信号Bを示している。領域1305から1309は、図13の分割した各測距領域を表す。
図14(B)は、図14(A)のシフト前の像波形に対しプラス方向にシフトした図であり、図14(C)は、図14(A)のシフト前の像波形に対しマイナス方向にシフトした図である。相関量を算出する際には、それぞれ矢印の方向に像信号A1401、像信号B1402を1ビットずつシフトする。
続いて、相関量CORの算出法について説明する。まず、図14(B)と(C)で説明した通り、像信号Aと像信号Bを1ビットずつシフトしていき、そのときの像信号Aと像信号Bの差の絶対値の和を算出する。ここで、シフト量をiで表し、最小シフト数は図14中のp−s、最大シフト数は図14中のq−tである。また、xは測距領域の開始座標、yは測距領域の終了座標である。これらを用いて、以下の式(1)によって相関量CORを算出することができる。
図15(A)は、相関量を波形で示した図である。グラフの横軸はシフト量を示し、縦軸は相関量を示す。相関量波形1501において、1502、1503は極値周辺を示している。この中でも相関量が小さい方ほど、A像とB像の一致度が高いといえる。
続いて、相関変化量ΔCORの算出法について説明する。まず、図15(A)の相関量波形より、1シフト飛ばしの相関量の差から相関変化量を算出する。この時、シフト量をiで表し、最小シフト数は図14中のp−s、最大シフト数は図14中のq−tである。これら用い、以下の式(2)によって相関変化量ΔCORを算出することができる。
図15(B)は、相関変化量ΔCORを波形で示した図である。グラフの横軸はシフト量を示し、縦軸は相関変化量を示す。相関変化量波形1504において、1505、1506は相関変化量がプラスからマイナスになる周辺である。この1505より相関変化量が0となるときをゼロクロスと呼び、最もA像とB像の一致度が高く、そのときのシフト量がピントずれ量となる。
図15(C)は、図15(B)の1505の部分を拡大したもので、1507は相関変化量波形1504の一部分である。図15(C)を用いて、ピントずれ量PRDの算出法について説明する。まず、ピントずれ量は整数部分βと小数部分αに分けられる。小数部分αは、図15(C)中の三角形ABCと三角形ADEの相似の関係から、以下の式(3)によって算出することができる。
続いて小数部分βは、図15(C)中より以下の式(4)によって算出することができる。
以上、αとβの和からピントずれ量PRDを算出することができる。
また、図15(B)のように複数のゼロクロスが存在する場合は、ゼロクロスでの相関量変化の急峻性maxder(以下、急峻性と呼ぶ)が大きいところを第1のゼロクロスとする。この急峻性はAFのし易さを示す指標で、値が大きいほどAFし易い点であることを示す。急峻性は以下の式(5)によって算出する事ができる。
以上のように、ゼロクロスが複数存在する場合は、急峻性によって第1のゼロクロスを決定する。
続いて、ピントずれ量の信頼性の算出法について説明する。信頼性は、前記急峻性や、像信号A、Bの2像の一致度fnclvl(以下、2像一致度と呼ぶ)によって定義することができる。2像一致度はピントずれ量の精度を表す指標で、値が小さいほど精度が良い。
図15(D)は、図15(A)の1502の部分を拡大したもので、1508が相関量波形1501の一部分である。2像一致度は以下の式(6)によって算出できる。
次に、図4のステップS408のAF処理について、図7のフローチャートを用いて説明する。AF処理は、合焦停止していない状態でのフォーカスレンズの駆動及び、合焦停止の判定を行う処理である。
ステップS701では、カメラ制御部212は、デフォーカス量が深度内であり、かつ図5のステップS505で算出した信頼性が所定のレベルより良い値を示しているかどうかを判断する。この条件に該当する場合はステップS702へ進み、そうでない場合はステップS703へ進む。本実施形態では、ステップS701で用いる閾値を深度の1倍としているが、必要に応じて大きく設定したり、小さく設定したりしても構わない。
ステップS702では、合焦停止フラグをオンにして処理を終了する。先述したように、被写体に合焦したと判断した場合は、フォーカスレンズを駆動している状態から停止している状態に移行した後、再度フォーカスレンズを駆動するか否か、図4のステップS409で再起動判定を行う。一方、ステップS703では、カメラ制御部212は、レンズ駆動速度や駆動方法を決定してレンズ駆動処理を行い、処理を終了する。
次に、図4のステップS409におけるAF再起動判定処理について、図6のフローチャートを用いて説明する。AF再起動判定処理は、合焦してフォーカスレンズを停止している状態から、再度フォーカスレンズを駆動するかどうかの判定をする処理である。本フローの処理は、特に記載がない限りカメラ制御部212(レンズ再起動判定部213)により実行される。
まず、ステップS601では、カメラ制御部212は、図5のステップS505で算出した信頼性が所定の閾値(所定のレベル)より良い値かどうかを判断する。良い値を示す場合はステップS602へ進み、悪い値を示す場合はステップS604へ進む。
ステップS602では、カメラ制御部212は、算出したデフォーカス量が深度の所定倍より小さいかどうかを判断する。深度の所定倍より小さい場合はステップS603へ進み、そうでない場合はステップS608へ進む。ステップS603では、AF再起動カウンタaおよびbをリセットし、処理を終了する。
一方、ステップS604に進んだ場合、カメラ制御部212は、AF再起動カウンタaをリセットする。ステップS605では、カメラ制御部212は、位相差検出結果に基づく合焦方向が前回と同じ方向か否かを判定する。同じ方向の場合はステップS606に進み、AF再起動カウンタbを加算してステップS610に進む。同じ方向でない場合はステップS607に進み、AF再起動カウンタbをリセットし、処理を終了する。ここで、AF再起動カウンタbは、信頼性が悪い(検出された方向のみが利用できる)場合に、同じ合焦方向が検出された回数を示している。
一方、ステップS608では、位相差検出結果に基づく合焦方向が前回と同じ方向か否かを判定する。同じ方向の場合はステップS609に進み、同じ方向でない場合はステップS613に進む。
ステップS613では、カメラ制御部212は、AF再起動カウンタbをリセットする。そして、ステップS609でAF再起動カウンタaを加算し、ステップS610に進む。ここで、AF再起動カウンタaは、所定値以上(深度の所定倍以上)のデフォーカス量が検出された回数を示している。
上述したように、デフォーカス量が所定より大きい、または同じ合焦方向が連続して検出されている場合には、主被写体の状況が変化している可能性がある。そのため、ステップS606またはステップS609でAF再起動カウンタを加算し、AFを再起動する準備を行う。検出したデフォーカス量が所定より小さく、位相差検出結果の信頼性も高い状態を維持している場合は、継続してフォーカスレンズを停止させておくためにステップS603でAF再起動カウンタをリセットする。
ここで、ステップS601で設定する信頼性の閾値は、例えば位相差検出結果から算出した距離が信頼できる値を設定する。ステップS601で信頼性が所定の閾値より悪い場合、デフォーカス量から算出した距離が信頼できず、合焦方向のみが利用可能である。また、ステップS602で設定するデフォーカス量の閾値は、主被写体が変わったときには再起動が行いやすく、主被写体が変わっていないときには再起動が不用意にかかりにくくするのを考慮してチューニングを行う。一例として、主被写体のボケが見えるようになる深度の1倍を設定する。
次に、ステップS610では、カメラ制御部212は、AF再起動閾値を設定する。ステップS610のAF再起動閾値設定処理は本実施形態の特徴的な部分であり、後述するステップS611でAF再起動カウンタを用いてAF再起動判定を行う際の閾値を設定する。AF再起動閾値設定処理の詳細は、図11のフローチャートを用いて後述する。
ステップS611に進み、カメラ制御部212は、AF再起動カウンタaまたはbがAF再起動閾値以上かどうかを判断する。AF再起動閾値以上の場合はステップS612へ進み、AF再起動閾値未満の場合は処理を終了する。ステップS612では、合焦停止フラグをオフにしてAF再起動を行い、フォーカスレンズ駆動を再開するようにして処理を終了する。
上述したステップS611では、AFの再起動をするにあたって、ステップS606またはS609で加算したAF再起動カウンタがステップS610で設定した閾値より大きいかどうかを判断する。このようにして、主被写体のピント面が変わったかどうかを一定時間の間確認するように制御する。また、本実施形態ではステップS610で設定するAF再起動閾値を合焦度合いに応じて変更することで、再起動判定するための条件を変える。これにより、主被写体のピント面が変化していると判断できる場合は、早く再起動してピントを追従するように制御する。一方、ピント面が変化していない(合焦を維持している)場合は、再起動を制限するように制御することで、不用意にフォーカシングして品位の悪い挙動をしてしまうことを防ぐ。
次に、図6のステップS610におけるAF再起動閾値設定処理について、図11を用いて説明する。 ステップS1101では、図4のステップS406で取得した結果に基づく合焦度合いが閾値TH1より高いか否かを判定する。TH1よりも高い場合にはステップS1103へ進み、そうでない場合にはステップS1102へ進む。
次に、ステップS1102では、前述の合焦度合いが閾値TH2(<TH1)より高いか否かを判定する。TH2よりも高い場合にはステップS1104へ進み、そうでない場合にはステップS1105へ進む。
なお、上記合焦度合いの一例として、本実施形態では、撮像信号から特定の周波数成分を抽出して生成したAF評価値(TEP)をコントラスト値(MMP)で正規化することで算出される簡易合焦度を用いる。この簡易合焦度が低いほど、フォーカスレンズの位置が合焦位置から離れている可能性が高く、簡易合焦度が高いほど、合焦位置から近い可能性が高い。なお、合焦度合いの判定は上記簡易合焦度に限定されず、他の方法で算出された評価値などを用いて判定してもよい。
ステップS1103〜S1105において、それぞれ図11に示すように、AF再起動閾値X1,Y1,Z1,X2,Y2,Z2を設定する。ここで、AF再起動閾値X1,Y1,Z1は、上述したAF再起動カウンタaの判定に用いられ、AF再起動閾値X2,Y2,Z2は、上述したAF再起動カウンタbの判定に用いられる。なお、AF再起動閾値には以下の関係がある。
X1>Y1>Z1
X2>Y2>Z2
X1<X2、Y1<Y2、Z1<Z2
上述の設定により、合焦している状態で深度の所定倍よりも大きいデフォーカス量が検出された場合は、直ちにフォーカスレンズを駆動せずに、出力されるデフォーカス量を所定期間監視することで、AFの誤動作を軽減することができる。また、一方で、ボケている状態で深度の所定倍よりも大きいデフォーカス量が検出された場合は、速やかにフォーカスレンズを駆動してピントを合わせることができる。
ステップS1106では、設定したAF再起動閾値を調整する処理を行い、本フローの処理を終了する。ステップS1106のAF再起動閾値調整処理の詳細については、図12を用いて後述する。
先述したように、動画撮影時のAF制御において、被写体に合焦してフォーカスレンズを停止した後、被写体の変化(シーンの変化)があると判断した場合、素早くフォーカスレンズを再起動することで、違和感の少ないフォーカシングを行うことができる。一方で、被写体の変化(シーンの変化)がないと判断した場合、フォーカスレンズを停止させておくことで、違和感の少ないシーンを撮影することできる。
具体的な動作の一例について、図9を用いて説明する。図6のステップS601の判定により、検出したデフォーカス量の信頼性が所定より良い、つまり測距結果が使用できる場合、カメラ制御部212は、デフォーカス量が図9(A)に示す「深度内」か「深度外」かを判断する。「深度内」の領域であれば、フォーカスレンズを駆動せず停止し続けるように制御する。これは、図6のステップS602でYesの場合に該当する。
検出したデフォーカス量が「深度外」であった場合、先述の合焦度合いに応じて再起動の条件を設定する。図9(B)では、合焦度合いに応じた再起動閾値を表で示している。図9(B)の表で、「合焦」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により「深度外」のデフォーカス量がX1=10回以上出力されたら、出力されたデフォーカス量を使用してフォーカスレンズを再起動する。被写体にピントが合っている状態では、閾値を大きく(10回)設定することで、不要な再起動を防ぐようにする。そのため、デフォーカス結果のばらつきや被写体が測距領域に一時的に出入りすることによってデフォーカス量が「深度外」となっても、安定したフォーカス制御を行うことができる。
次に、合焦度合いが「小ボケ」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により「深度外」のデフォーカス量がY1=5回以上出力されたら、出力されたデフォーカス量を使用してフォーカスレンズを再起動する。また、合焦度合いが「大ボケ」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により「深度外」のデフォーカス量がZ1=3回以上出力されたら、出力されたデフォーカス量を使用してフォーカスレンズを再起動する。
このように、合焦度合いが低い場合は、閾値を小さく設定することで、速やかにフォーカスレンズを再起動する。そのため、パンニングによって被写体やシーンが変わったり、新しい被写体が画面に入ってくることによってボケている場合でも、すぐにフォーカスレンズを再起動することができるので、応答性の良いフォーカス駆動をすることができる。
なお、上記の例において再起動する際に使用するデフォーカス量は、再起動条件成立時に出力された値でも良いし、過去のデフォーカス量の平均を用いる方法でも良い。
図6のステップS601の判定により、検出したデフォーカス量の信頼性が所定より悪い、つまり測距結果が使用できずに方向のみを使用できる場合も、信頼性が良い場合と同様に、合焦度合いに応じて再起動の条件を設定する。但し、信頼性が所定より悪い場合は、良い場合と比較して、位相差AF結果を使用して再起動する条件を厳しくする、すなわち再起動閾値を大きく設定する。
図9(B)の表において、方向のみ利用可能な場合に、「合焦」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により同一の方向がX2=12回以上出力されたら、出力された方向へフォーカスレンズを再起動する。次に、合焦状態が「小ボケ」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により同一の方向がY2=8回以上出力されたら、出力された方向へフォーカスレンズを再起動する。また、合焦状態が「大ボケ」であると判断した場合、カメラ制御部212は、図4のステップS404の焦点検出処理により同一の方向がZ2=4回以上出力されたら、出力された方向へフォーカスレンズを再起動する。
なお上記の再起動閾値は、経験的に値を決定しているが、X1>Y1>Z1、X2>Y2>Z2の関係が成り立っていれば、上記の値に限定されない。
以上のように、本実施形態では、フォーカスレンズを再起動するための条件を合焦度合いに応じて変更する。合焦度合いが高い場合は、再起動閾値を大きく設定する。これにより、被写体が測距領域から一時的に抜けて再び戻った場合や、被写体のボケやブレが一瞬発生した場合などに、深度を超えるデフォーカス量が検出されても、不要な再起動が行われるのを防ぐことができる。そのため、画面内で被写体が移動したり別の被写体が一時的にフレームインしてきた場合や、被写体の前を別の被写体が通り過ぎた場合でも、安定的なフォーカス制御を行うことができる。なお、本実施形態において、再起動閾値を大きくすることは、再起動までの期間を長くすると換言することができる。
また、合焦度合いが低い場合は、再起動閾値を小さくする。これにより、画面全体がボケており被写体に合焦していないことがほぼ明らかな場合に、速やかに再起動を行うことができる。そのため、被写体がフレームアウトしたりパンニング等によりシーンが変更された場合に、すぐにフォーカス制御を行うことができる。なお、本実施形態において、再起動閾値を小さくすることは、再起動までの期間を短くすると換言することができる。
次に、図11におけるステップS1106のAF再起動閾値調整処理について、図12のフローチャートを用いて説明する。ステップS1201では、図5のステップS507で設定した測距領域の像高が所定より高いかどうかを判断する。所定より高い場合はステップS1203へ進み、そうでない場合はステップS1202へ進む。
ステップS1202では、取得した絞り値より、絞りが所定より小絞り側(開口が小さい)かどうかを判断する。小絞り側である場合はステップS1203へ進み、そうでない場合は処理を終了する。ステップS1203では、図11のステップS1103〜S1105で設定したAF再起動閾値が大きくなるようにゲインを掛け、処理を終了する。
撮像面位相差検出方式では、一般的に像高が高くなるほど像信号A、Bを取得する瞳A、Bに入射する光量差が大きくなり、瞳内の位置によって瞳強度が異なるという特性がある。そのため、像高が高い位置では像信号A、B間のレベル差が顕著に表れ、像信号A、Bの像一致度が低下してしまうことでデフォーカス検出精度が低下してしまう。
また、撮像面位相差検出方式では、像信号A、Bの像ずれ量をデフォーカス量に換算する換算係数が、絞り値に連動して大きくなっていくという特性がある。これは、絞りを絞るほど像信号A、Bを結像する基線長が短くなってしまうためである。そのため、絞った状態では換算係数が膨大になってしまうために、少しの像ずれ量が大きなデフォーカス量に換算されてしまい、デフォーカス精度が悪化してしまう。
上述したように(1)測距領域の像高が高い場合、(2)絞りが小絞り側である場合は、デフォーカス検出精度が低下してしまい、検出するデフォーカス量のバラつきが大きくなってしまう。このような条件では、深度外のデフォーカス量を検出する機会が多くなるため、例えば合焦しているにも関わらず想定外にAF再起動判定を行ってしまうことがある。そのため、不用意なフォーカシングがなされてしまうことでAF制御の品位が悪くなってしまうという問題がある。
そこで、上述したような条件では、AF再起動閾値が大きくなるようにゲイン掛けを行うことで、再起動判定が行われにくくするようにする。これにより、想定外にAF再起動判定が行なわれることによる不要なフォーカシング動作を抑え、AF制御の品位を高めることができる。
なお、本実施形態では絞り値によってAF再起動閾値を変更したが、撮像面位相差方式の原理的には像ずれ量をデフォーカス量に換算する換算係数が絞りを絞るほど大きくなることがそもそもの理由である。したがって、絞り値ではなくこの換算係数に応じてAF再起動閾値を変更しても構わない。また、この換算係数が変動するパラメータが絞り値以外にも存在すれば、そのパラメータに応じてAF再起動閾値を変更する構成でも構わない。
以上説明したように、本実施形態では、フォーカスレンズを停止した状態から再起動判定を行うにあたって、撮像信号に基づく合焦度合いに応じて、再起動の条件を変更する。合焦度合いが低ければ、シーンの切り替わりや被写体の変化があったと推定されるので、再起動しやすい条件に設定する。これにより、主被写体へのピントの追従を早くすることができるので、ボケを抑えてAFの品位を高めることができる。また、合焦度合いが高ければ、シーンが変わっておらず被写体を捉え続けていると推定されるので、再起動の条件が厳しくなるように設定する。これにより、主被写体以外の被写体へピントが移ることを抑え、主被写体にピントを留めておきやすくなり、AFの品位を高めることができる。
なお、本実施形態では、デフォーカス量の測距回数によって再起動判定を行っているが、回数ではなく時間を用いて再起動判定を行うように制御してもよい。たとえば、深度外のデフォーカス量を検出した時点、あるいは信頼性が所定より悪くなった時点からの時間を計測し、AF再起動閾値として経過時間を設定するような制御である。
本実施形態によれば、撮像面位相差検出方式を用いたAF制御を行う際に、撮影条件に応じた適切なフォーカスレンズ再起動判定を行い、品位の良いフォーカシングを実現することができる。
(第二の実施形態)
以下、本発明の第二の実施形態について説明する。本実施形態では、第一の実施形態の特徴的な部分として説明したAF再起動判定の方法を変更する。第一の実施形態では、AF再起動判定を行うにあたって、深度外のデフォーカス量を連続で所定回数検出した場合にAF再起動を行った。一方、本実施形態では、各合焦状態においてフォーカスを再起動するデフォーカス量の閾値を変更する。
本実施形態におけるレンズユニット及びカメラ本体からなるレンズ交換式カメラの構成は、第一の実施形態で図1を基に説明した構成と同様なので説明を省略する。また第一の実施形態で図3、4、5、7、12のフローチャートを用いて説明した処理は、本実施形態においても同様なので説明を省略する。
図4のステップS409における本実施形態のAF再起動判定処理について、図10のフローチャートを用いて説明する。ステップS1001において、カメラ制御部212は、図5のステップS505で算出した信頼性が所定の閾値より良い値かどうかを判断する。信頼性が良い値を示す場合はステップS1002へ進み、悪い値を示す場合は処理を終了する。なお、ここでの所定の閾値は、図6のステップS601と同様に、デフォーカス量から算出した距離が信頼できる値を設定する。
ステップS1002では、カメラ制御部212は、算出したデフォーカス量が深度内であるかどうかを判断する。深度内である場合は処理を終了し、深度外である場合はステップS1003へ進む。
ステップS1003では、AF再起動閾値設定処理を行い、ステップS1004へ進む。ステップS1003における本実施形態のAF再起動閾値設定処理の詳細については後述する。
ステップS1004では、検出したデフォーカス量がステップS1003で設定したAF再起動閾値以上であるか否かを判定する。AF再起動閾値未満であれば処理を終了する。一方、AF再起動閾値以上であればステップS1005に移動し、合焦停止フラグをオフにしてAF再起動を行い、フォーカスレンズ駆動を再開するようにして処理を終了する。
次に、図16を用いて、図10のステップS1003におけるAF再起動閾値設定処理について詳しく説明する。図16におけるステップS1601、S1603、S1606の処理は、それぞれ図11におけるステップS1101、S1102、S1106の処理と同様なので説明を省略する。
ステップS1602では、合焦度合いが「合焦」であると判断された場合であり、カメラ制御部212はAF再起動閾値(デフォーカス量)を「深度外3」に設定し、ステップS1606に進む。
また、ステップS1604では、合焦度合いが「小ボケ」であると判断された場合であり、カメラ制御部212はAF再起動閾値を「深度外2」に設定し、ステップS1606に進む。
また、ステップS1605では、合焦度合いが「大ボケ」であると判断された場合であり、カメラ制御部212はAF再起動閾値を「深度外1」に設定し、ステップS1606に進む。
ここで、図16で設定われるAF再起動閾値について、図17を用いて説明する。図17(A)は、AF再起動閾値としての「深度外1」「深度外2」「深度外3」の関係を示している。本実施形態で設定されるデフォーカス量の閾値について、以下の条件が成り立つ必要がある。
深度外3>深度外2>深度外1
すなわち、「合焦」時にはAF再起動閾値を「深度外3」に設定することで、デフォーカス量が大きい場合だけフォーカスレンズを再起動するようにする。そのため、被写体に合焦しているときに出力されるデフォーカス量のばらつきによりフォーカス制御が不安定になるのを抑制することができる。一方、「大ボケ」時にはAF再起動閾値を「深度外1」に設定することで、デフォーカス量が深度を超えていればフォーカスを再起動するようにする。そのため、「大ボケ」時には素早くピントを合わせるように制御を行うことができる。なお、各閾値は、主被写体が変わったときには再起動が行いやすく、主被写体が変わっていないときには再起動が不用意にかかりにくくするのを考慮してチューニングを行うこととする。
以上説明したように、本実施形態においても、フォーカスレンズを再起動するための条件を合焦度合いに応じて変更する。これにより、撮像面位相差検出方式を用いたAF制御を行う際に、撮影条件に応じた適切なフォーカスレンズ再起動判定を行い、品位の良いフォーカシングを実現することができる。
(第三の実施形態)
以下、本発明の第三の実施形態について説明する。本実施形態では、第一の実施形態の特徴的な部分として説明したAF再起動判定の方法を変更する。第一の実施形態では、AF再起動判定を行うにあたって、深度外のデフォーカス量を連続で所定回数検出した場合にAF再起動を行った。一方、本実施形態では、所定測距回数の内、深度外のデフォーカス量(あるいは所定より悪い信頼性)を所定回数以上検出していればAF再起動するように制御する。すなわち、深度外のデフォーカス量を連続で検出しなくても、AF再起動させる制御方法である。
本実施形態におけるレンズユニット及びカメラ本体からなるレンズ交換式カメラの構成は、第一の実施形態で図1を基に説明した構成と同様なので説明を省略する。また、第一の実施形態で図3、4、5、7、11、12のフローチャートを用いて説明したカメラ本体20の動作は、本実施形態においても同様の処理を行うので説明を省略する。
図4のステップS409における本実施形態のAF再起動判定処理について、図18のフローチャートを用いて説明する。図18のステップS1802、S1803、S1807、S1809の処理は、それぞれ第一の実施形態における図6のステップS601、S602、S610、S612の処理と同様なので説明を省略する。本フローの処理は、特に記載がない限りカメラ制御部212(レンズ再起動判定部213)により実行される。
ステップS1801では、カメラ制御部212は、AF再起動判定フラグaとbを左シフトしてステップS1802へ進む。ステップS1801の処理により、測距回数を参照することができる。
ステップS1802で信頼性が所定の閾値より良く、かつステップS1803でデフォーカス量が深度の所定倍より大きい場合、ステップS1804に進む。ステップS1804では、カメラ制御部212は、位相差検出結果に基づく合焦方向が前回と同じ方向か否かを判定する。同じ方向の場合はステップS1805に進み、同じ方向でない場合はステップS1806に進む。ステップS1805に進んだ場合、カメラ制御部212はAF再起動判定フラグbの最下位ビットを立ててステップS1806に進む。ステップS1806では、カメラ制御部212はAF再起動判定フラグaの最下位ビットを立ててステップS1807へ進む。
一方、ステップS1802で信頼性が所定の閾値より悪い場合、ステップS1810に進む。ステップS1810では、カメラ制御部212は、位相差検出結果に基づく合焦方向が前回と同じ方向か否かを判定する。同じ方向の場合はステップS1811に進み、カメラ制御部212はAF再起動判定フラグbの最下位ビットを立ててステップS1807へ進む。同じ方向でない場合は処理を終了する。
ステップS1807でAF再起動閾値を設定した後に進むステップS1808では、カメラ制御部212は、AF再起動判定フラグaまたはbのビットがAF再起動閾値の数以上立っているかどうかを判断する。なお、信頼性が良いがデフォーカス量が深度外の場合はAF再起動判定フラグaを、信頼性が悪い場合はAF再起動判定フラグbを用いて判断することとする。ステップS1808の条件に該当する場合はステップS1809へ進み、該当しない場合は処理を終了する。
第一の実施形態では、AF再起動カウンタを用いてAF再起動判定を行っていたが、本実施形態では、カウンタの代わりにAF再起動判定フラグを用いる。ステップS1801において、検出したデフォーカス量や信頼性に関係なく、AF再起動判定が行われる毎にAF再起動判定フラグを左シフトする。検出したデフォーカス量が所定より大きい、または前回と同じ方向が得られている場合に、それぞれステップS1805、S1806およびS1811でAF再起動判定フラグの最下位ビットを立てる。このようにして、AF再起動判定フラグは、全ビット数のうち何ビット立っているかにより、過去所定回数の測距において検出したデフォーカス量が所定より大きかった(信頼性が悪かった)回数を知る為の指標として扱うことができる。なお、AF再起動判定フラグaおよびbのビット数は、ステップS1808でAF再起動判定をするためのデフォーカスを検出した回数に相当する。このビット数は、ステップS1807のAF再起動閾値設定で設定し得るAF再起動閾値よりも多く設定する必要がある。例えば、AF再起動判定フラグaを4ビット、AF再起動閾値を3回に設定した場合は、過去4回の測距中、所定より大きいデフォーカス量を検出した回数が3回以上であれば再起動を実行するように制御する。
本実施形態のAF再起動判定方法は、第一の実施形態と比較して、連続で所定より大きいデフォーカス量を検出しなくてもAF再起動を実行できるため、より再起動しやすい判定方法になる。本実施形態の判定方法の利点として、例えば低照度下で撮影する場合や被写体が低コントラストの場合のように、デフォーカス検出精度が低下する撮影条件である場合、再起動をより実行しやすくすることができる。第一の実施形態の手法では、誤判定を抑制することができるが、次のようなデメリットがある。すなわち、デフォーカス検出精度が低下する撮影条件では検出結果のバラつきが大きくなるので、例えば、「大ボケ」状態のような再起動を早く行いたい条件のとき、深度内のデフォーカス量が一時的に検出された場合に再起動の実行に時間がかかる。これに対して、本実施形態の手法であれば、所定より大きいデフォーカス量を連続で検出しなくてもAF再起動できるため、再起動を実行したいシーンでより再起動しやすくなり、AF制御の品位を高めることができる。
なお、第一及び第二の実施形態のAF再起動判定と、第三の実施形態のAF再起動判定を併用して、AF再起動判定を行うようにしても良い。
(他の実施形態)
本発明の目的は以下のようにしても達成できる。すなわち、前述した実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記憶した記憶媒体を、システムまたは装置に供給する。そしてそのシステムまたは装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行する。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体および制御プログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD−R、磁気テープ、不揮発性のメモリカード、ROM等も用いることができる。
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した各実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施形態の機能が実現される場合も含まれる。
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。