(57)【要約】【課題】マニュアルフォーカス時に、操作部材によって指定される距離にピントを合わせることが可能な撮影装置を提供する。【解決手段】撮影レンズを含むレンズ鏡筒内に設けられた光軸方向に移動可能なフォーカスレンズ１１ｂと、レンズ鏡筒に対して第１の端点と第２の端点の角度範囲内を回転可能に配設される距離環５１と、距離環５１の回転角と距離の第１の関係と、フォーカスレンズ１１ｂの光軸方向の位置と距離の第２の関係を記憶する記憶部３７と、距離環５１の回転角と第１の関係に基づいてリング部材の回転角に応じた距離を算出し、この距離と第２の関係に基づいて焦点調節レンズの光軸方向の位置を設定するレンズＣＰＵ４１を有している。【選択図】  図１
2015011315.tif 000002
【特許請求の範囲】
【請求項１】
撮影レンズを含むレンズ鏡筒内に設けられた光軸方向に移動可能な焦点調節レンズと、
上記レンズ鏡筒に対して第１の端点と第２の端点の角度範囲内を回転可能に配設されるリング部材と、
上記リング部材の回転角と距離の第１の関係と、上記焦点調節レンズの光軸方向の位置と距離の第２の関係を記憶する記憶部と、
上記リング部材の回転角と上記第１の関係に基づいて上記リング部材の回転角に応じた距離を算出し、該距離と上記第２の関係に基づいて上記焦点調節レンズの光軸方向の位置を設定する制御部と、
を具備することを特徴とする撮影装置。
【請求項２】
上記レンズ鏡筒内にズームレンズ群が設けられ、上記ズームレンズ群のズーム位置を検出するズーム位置検出部を有し、
上記記憶部は、上記ズーム位置に応じて複数の第２の関係を記憶し、
上記制御部は、上記リング部材の回転角と上記第１の関係に基づいて上記リング部材の回転角に応じた距離を算出し、該距離と上記ズーム位置に応じた上記第２の関係に基づいて上記焦点調節レンズの光軸方向の位置を設定する、
ことを特徴とする請求項１に記載の撮影装置。
【請求項３】
上記制御部は、上記リング部材の上記第１の端点に応じて上記焦点調節レンズの光学的至近となる光軸方向の位置を対応させ、上記リング部材を上記第２の端点に対して上記焦点調節レンズの光学的無限となる光軸方向の位置を対応させることを特徴とする請求項１に記載の撮影装置。
【請求項４】
上記制御部は、上記ズーム位置に応じて、上記焦点調節レンズの光学的至近となる光軸方向の位置と光学的無限となる光軸方向の位置を変更することを特徴とする請求項３に記載の撮影装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影装置に関し、詳しくは、ズームレンズ鏡筒に回転自在に配設されたリング部材を有し、リング部材の回転によって設定された距離にピントが合うようにフォーカシング可能な撮影装置に関する。
【背景技術】
【０００２】
レンズ鏡筒にフォーカスリングを設け、このフォーカスリングをユーザが回転操作することにより、マニュアルでフォーカシングを行うことのできる撮影装置が提案されている（例えば、特許文献１）。特許文献１に開示の撮影装置では、フォーカシングリングを回転操作すると、この動きに追随して表示リングが回転し、被写体距離を示すことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５８３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１に開示の撮影装置では、ピントの合っている被写体距離（絶対距離）を確認することはできる。しかしながら、撮影者の意図する被写体距離にピントを合わせることができない。すなわち、絶対距離の付されたフォーカスリングを操作して、意図する撮影距離にピント合わせを行うことができない。
【０００５】
本発明は、このような事情を鑑みてなされたものであり、マニュアルフォーカス時に、操作部材によって指定される距離にピントを合わせることが可能な撮影装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため第１の発明に係る撮影装置は、撮影レンズを含むレンズ鏡筒内に設けられた光軸方向に移動可能な焦点調節レンズと、上記レンズ鏡筒に対して第１の端点と第２の端点の角度範囲内を回転可能に配設されるリング部材と、上記リング部材の回転角と距離の第１の関係と、上記焦点調節レンズの光軸方向の位置と距離の第２の関係を記憶する記憶部と、上記リング部材の回転角と上記第１の関係に基づいて上記リング部材の回転角に応じた距離を算出し、該距離と上記第２の関係に基づいて上記焦点調節レンズの光軸方向の位置を設定する制御部と、を具備する。
【０００７】
第２の発明に係る撮影装置は、上記第１の発明において、上記レンズ鏡筒内にズームレンズ群が設けられ、上記ズームレンズ群のズーム位置を検出するズーム位置検出部を有し、上記記憶部は、上記ズーム位置に応じて複数の第２の関係を記憶し、上記制御部は、上記リング部材の回転角と上記第１の関係に基づいて上記リング部材の回転角に応じた距離を算出し、該距離と上記ズーム位置に応じた上記第２の関係に基づいて上記焦点調節レンズの光軸方向の位置を設定する。
【０００８】
第３の発明に係る撮影装置は、上記第１の発明において、上記制御部は、上記リング部材の上記第１の端点に応じて上記焦点調節レンズの光学的至近となる光軸方向の位置を対応させ、上記リング部材を上記第２の端点に対して上記焦点調節レンズの光学的無限となる光軸方向の位置を対応させる。
【０００９】
第４の発明に係る撮影装置は、上記第３の発明において、上記制御部は、上記ズーム位置に応じて、上記焦点調節レンズの光学的至近となる光軸方向の位置と光学的無限となる光軸方向の位置を変更する。
【発明の効果】
【００１０】
本発明によれば、マニュアルフォーカス時に、操作部材によって指定される距離にピントを合わせることが可能な撮影装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るカメラの構成を示すブロック図である。
【図２】本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。
【図３】本発明の一実施形態に係るカメラのＲＦモードおよび非ＲＦモードの設定を説明する図であって、レンズ鏡筒の平面図である。
【図４】本発明の一実施形態に係るカメラにおいて、ＲＦモードにおけるＭＦ環の回転方向の絶対値（ＡＤ値）と被写体距離（Ｌ）の逆数の関係を示すグラフである。
【図５】本発明の一実施形態に係るカメラにおいて、被写体距離の逆数（１／Ｌ）とフォーカスレンズ位置（ＬＤＰｌｓ）の関係を示すグラフである。
【図６】本発明の一実施形態に係るカメラにおいて、被写体距離の逆数（１／Ｌ）から焦点距離に応じたフォーカスレンズ位置（ＬＤＰｌｓ）を算出するためのテーブルを示す図である。
【図７】本発明の一実施形態に係るカメラにおいて、被写体距離ごとの焦点距離とフォーカスレンズ位置（ＬＤＰｌｓ）の関係を示すグラフである。
【図８】本発明の一実施形態に係るカメラにおける状態遷移図である。
【図９】本発明の一実施形態に係るカメラのモード切り換えの動作を示すフローチャートである。
【図１０】本発明の一実施形態に係るカメラのＲＦモード切り換え処理の動作を示すフローチャートである。
【図１１】本発明の一実施形態に係るカメラのＲＦモード駆動周期処理の動作を示すフローチャートである。
【図１２】本発明の一実施形態に係るカメラのＲＦ起動判断処理の動作を示すフローチャートである。
【図１３】本発明の一実施形態に係るカメラのＲＦ操作停止判断処理の動作を示すフローチャートである。
【図１４】本発明の一実施形態に係るカメラのＲＦＡＤ位置更新判断の動作を示すフローチャートである。
【図１５】本発明の一実施形態に係るカメラのＲＦＡＤ位置更新判断の動作を示すフローチャートである。
【図１６】本発明の一実施形態に係るカメラの目標位置Ｐｌｓ演算の動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に従って本発明を適用したカメラを用いて好ましい一実施形態について説明する。図１は、本発明の一実施形態に係るカメラの構成を示すブロック図であり、図２は、このカメラにおける電気的構成を示すブロック図である。このカメラは、交換レンズ１００とカメラ本体２００から構成される。しかし、レンズ鏡筒とカメラ本体を一体に構成しても勿論かまわない。
【００１３】
交換レンズ１００内には、レンズ１１ａ〜１１ｃからなる撮影レンズ１１を有する。撮影レンズ１１によって被写体像が形成される。このうち、フォーカスレンズ１１ｂは焦点調節用のレンズであり、フォーカスレンズ駆動機構２５によって光軸方向に移動可能である。フォーカスレンズ駆動機構２５は、フォーカスレンズ用アクチュエータとフォーカスレンズ用ドライブ回路を有している。したがって、フォーカスレンズ１１ｂは、撮影レンズを含むレンズ鏡筒内に設けられた光軸方向に移動可能な焦点調節レンズとしての機能を果たす。また、レンズ１１ａ〜１１ｃの一部は、焦点距離を変化させるためのズームレンズである。したがって、交換レンズ１００内にはズームレンズ群が設けられている。
【００１４】
またフォーカスレンズ基準位置検出部２７は、フォーカスレンズ１１ｂが基準位置に達すると検出信号を制御部であるＣＰＵ４１に出力する。基準位置検出には、フォトインタラプタ（ＰＩ）を用いる。なお、本実施形態においては、フォーカスレンズ１１ｂの位置検出は、基準位置を検出すると、その位置を基準にして、フォーカスレンズ用のアクチュエータ（パルスモータ使用）への印加パルス数に基づいて行う。
【００１５】
レンズ１１ａと１１ｂの間には、絞り１３が配置されている。絞り１３は、絞り駆動機構２１によって開口径が変化し、撮影レンズ１１を通過する被写体光量を変化させる。絞り駆動機構２１は、絞り用アクチュエータと絞り用ドライバ回路等を有する。アクチュエータとしては、ステッピングモータを使用し、マイクロステップ駆動によって細かい制御を行う。なお、絞り１３は、レンズ１１ａと１１ｂの間以外に配置しても勿論かまわない。
【００１６】
絞り基準位置検出部２３は、絞りの開口径が基準位置に達すると、検出信号をＣＰＵ４１に出力する。絞り位置は、基準位置検出部２３によって基準位置を取得し、相対的な位置検出によって絞り位置を管理する。相対的な位置検出はステッピングモータへの印加パルス数によって検出し、基準位置の検出はフォトインタラプタ（ＰＩ）によって検出する。
【００１７】
交換レンズ１００の外周には、距離環５１が配置されている。距離環５１は、交換レンズ１００の外周を回動自在であると共に、撮影レンズ１１の光軸方向の所定範囲内で、スライド自在である。この距離環５１は、図３に示すように、被写体側にスライドすると、非ＲＦ（非レンジフォーカス）（ＭＦ（マニュアルフォーカス）という場合もある）位置に設定され、本体側にスライドすると、ＲＦ（レンジフォーカス）位置に設定される。距離環５１のスライドにより、ＲＦモードと非ＲＦモード（ＭＦモード）の切り換えを行う。このモードの検出は、ＲＦモード検出部３３が行う。また、距離環５１は、至近と無限遠の間で回動自在に構成されている。したがって、距離環５１は、レンズ鏡筒に対して第１の端点と第２の端点の角度範囲内を回転可能に配設されるリング部材としての機能を果たす。
【００１８】
非ＲＦモードは、ユーザが距離環５１の回転方向および回転量に応じてピント合わせを行うモードであり、一方ＲＦモードは距離環５１によって指定された距離にピントを合わせるモードである。すなわち、非ＲＦモードもＭＦモードもマニュアルフォーカスであるが、非ＲＦモードでは距離環５１は相対的な距離指定を行うのに対して、ＲＦモードでは絶対距離を指定する点で相違する。
【００１９】
距離環５１のスライドによってＭＦモードが設定されると、距離環５１の回転により、距離環５１の内側にある遮光羽根が一体となって回転する。この遮光羽根の回転をフォトインタラプタ（ＰＩ）によってカウントし、このカウント値に応じてフォーカスレンズ１１ｂを駆動する。なお、距離環５１の回転方向および回転量は、フォトインタラプタ以外のセンサによって検出するようにしても勿論かまわない。
【００２０】
距離環５１のスライドによってＲＦモードが設定され、距離環５１が回転されると、その回転位置をＲＦ位置検出部３１が検出する。ＲＦ位置検出部３１は、距離環５１の回転位置の絶対位置を検出する。フォーカスレンズ駆動機構２５は、ＣＰＵ４１からの制御信号に従って、距離環５１の回転位置に応じた撮影距離に、フォーカスレンズ１１ｂを駆動する。
【００２１】
ＲＦモード検出部３３は、ＲＦ／ＭＦモード検出スイッチ８３（図２参照）の出力に基づいて、距離環５１が非ＲＦ位置（ＭＦ位置）、ＲＦ位置のいずれかに設定されているかを検出する。
【００２２】
ＭＦ位置検出部３５は、距離環５１が非ＲＦ位置（ＭＦ位置）に設定されている際に、距離環５１の回転方向および回転量を検出する。このＭＦ位置検出部３５の検出結果に基づいて、マニュアルフォーカスを行う。
【００２３】
交換レンズ１００の外周であって、距離環５１より本体側には、ズーム環５２が外周を回動自在に配置されている。ユーザが手動でズーム環５２を回転させるとズーミングを行うことができる。
【００２４】
ズーム位置検出部３４は、ズーム環５２の回転位置の絶対値を検出し、ＣＰＵ４１に出力する。ズーム位置検出部３４は、後述するように、リニアエンコーダＺＭ位置検出部８２を有しており、このリニアエンコーダ位置検出部８２の出力はＣＰＵ４１内のＡ／Ｄ変換器４４によってＡＤ変換され、このＡＤ変換値は焦点距離を表す。ズーム位置検出部３４は、ズームレンズ群のズーム位置を検出するズーム位置検出部としての機能を果たす。
【００２５】
記憶部３７は、フラッシュメモリ３７等の書き換え可能な不揮発メモリ等を有し、ＣＰＵ４１用のプログラムや、交換レンズの光学データ等の各種情報や、各種調整値や各種パラメータ等を記憶する。また、記憶部３７は、リング部材の回転角と距離の第１の関係（図４に示す関係）と、焦点調節レンズの光軸方向の位置と距離の第２の関係（図５に示す関係）を記憶する記憶部としての機能を果たす。なお、本実施形態においては、第１と第２の関係は、テーブルとして記憶される。
【００２６】
制御部であるＣＰＵ４１は、前述した記憶部３７に記憶されているプログラムに従い、カメラ本体２００からの制御命令に応じて、交換レンズ１００内の制御を行う。ＣＰＵ４１は、絞り位置検出部２３、フォーカスレンズ基準位置検出部２７、ＲＦ位置検出部３１、ＲＦモード検出部３３、およびＭＦ位置検出部３５からの検出信号を入力し、またフォーカスレンズ駆動機構２５および絞り駆動機構２１に制御信号を出力する。
【００２７】
また、ＣＰＵ４１は、リング部材の回転角と第１の関係に基づいてリング部材の回転角に応じた距離を算出し、この距離と第２の関係に基づいて焦点調節レンズの光軸方向の位置を設定する制御部としての機能を果たす。この焦点レンズの光軸方向の位置設定については、図１０〜図１６に示すフローチャートを用いて後述する。
【００２８】
カメラ本体２００内には、撮像素子２０１が配置されている。この撮像素子２０１は、撮影レンズ１１の結像位置付近に配置されており、撮影レンズ１１に形成される被写体像を光電変換し、画像データを出力する。また、カメラ本体２００内にも制御用のＣＰＵが設けられており、交換レンズ１００内のＣＰＵ４１と通信を行う。
【００２９】
次に、図２を用いて、電気構成の詳細について説明する。ＣＰＵ４１は、前述したように、カメラ本体２００と通信が可能である。また、ＣＰＵ４１は、モータドライバ７１に接続されており、このモータドライバ７１は、ＦＣＰＩ６９、ＬＤＭＴ７３、ＡＶＭＴ７５、およびＡＶＰＩ７７の駆動を行う。
【００３０】
ＦＣＰＩ６９は、フォーカスレンズ１１ｂの基準位置検出用のフォトインタラプタであり、このＦＣＰＩ６９の出力はＦＣＰＩ二値化回路６７に接続されている。ＦＣＰＩ６９およびＦＣＰＩ二値化回路６７は、前述のフォーカスレンズ基準位置検出部２７に対応する。
【００３１】
ＬＤＭＴ７３は、ＬＤモータ（レンズ駆動モータ）であり、前述のフォーカスレンズ駆動機構２５内のフォーカス用アクチュエータとして機能する。ＬＤモータとしては、本実施形態においては、ＶＣＭ（ボイスコイルモータ）を採用するが、他のモータ、例えば一般的なステッピングモータを用いても勿論かまわない。ＡＶＭＴ７５は、絞りモータであり、前述の絞り駆動機構２１内の絞り用アクチュエータとして機能する。
【００３２】
ＡＶＰＩ７７は、絞り１３の基準位置検出用のフォトインタラプタであり、このＡＶＰＩ７７の出力はＡＶＰＩ二値化回路７９に接続されている。ＡＶＰＩ７７およびＡＶＰＩ二値化回路７９は、前述の絞り基準位置検出部２３に対応する。
【００３３】
ＭＦＰＩドライバ６５は、距離環５１がＭＦ位置にスライドされた場合に、距離環５１の回動を検出するためのＭＦＰＩ６３のドライバである。ＭＦＰＩ６３は、遮光羽根の回動方向に沿って２箇所、設けられている。このＭＦＰＩ６３の出力は、ＭＦＰＩ二値化回路６１に接続されており、ＭＦＰＩ二値化回路６１によって二値化される。ＭＦＰＩ二値化回路６１、ＭＦＰＩ６３、ＭＦＰＩドライバ６５は、前述のＭＦ位置検出部３５に対応する。
【００３４】
リニアエンコーダＲＦ位置検出部８１は、距離環５１がＲＦ位置にスライドされた場合に、距離環５１の回転方向における絶対値を検出するためのリニアエンコーダである。リニアエンコーダＲＦ位置検出部８１は、距離環５１の回動方向に沿って設けられており、リング５１の回動方向での絶対位置に応じてアナログ信号を出力する。ＣＰＵ４１内には、Ａ／Ｄ変換器４３が設けられており、リニアエンコーダＲＦ位置検出部８１からのアナログ信号をデジタル信号に変換する。Ａ／Ｄ変換器４３によるＡＤ変換値は、ユーザによって設定される被写体距離（絶対距離）を表す（ＲＦリニアエンコーダＡＤと称する場合がある）。
【００３５】
リニアエンコーダＺＭ位置検出部８２は、ズーム環５２の回転方向における絶対値を検出するためのエンコーダである。リニアエンコーダＺＭ位置検出部８２は、ズーム環５２の回動方向に沿って設けられており、ズーム環５２の回転方向での絶対位置に応じてアナログ信号を出力する。ＣＰＵ４１内には、Ａ／Ｄ変換器４４が設けられており、リニアエンコーダＺＭ位置検出部８２からのアナログ信号をデジタル信号に変換する。Ａ／Ｄ変換器４４によるＡＤ変換値は、ユーザによって設定される焦点距離（絶対距離）を表す。
【００３６】
ＲＦ／ＭＦモード検出スイッチ（ＳＷ）８３は、距離環５１がＲＦモードに設定されているか、ＭＦモード（非ＲＦモード）に設定されているかを検出するためのスイッチである。このＲＦ／ＭＦモード検出ＳＷ８３は、距離環５１の光軸方向の位置を検出し、ＲＦモード設定時またはＭＦモード設定時にオンまたはオフとなり、このオンオフ状態はＣＰＵ４１に出力される。
【００３７】
次に、図３を用いて、ＲＦモードとＭＦモードの切り換えについて説明する。前述したように、距離環５１は交換レンズ１００の光軸方向に沿って摺動可能であり、距離環５１を被写体側にスライドすると、図３（ａ）に示すように、非ＲＦモード（ＭＦモード）に切り換わる。このＭＦモードは、従来と同じマニュアルフォーカスモードであり、距離環５１の回転方向および回転量に応じて、フォーカスレンズ１１ｂが光軸方向に移動する。
【００３８】
また、距離環５１を本体側（撮像側）にスライドすると、図３（ｂ）に示すようにＲＦモードに切り換わる。ＲＦモードに切り換わると、距離目盛（図示の例では、０．５ｍ、１ｍ、３ｍ、７ｍ、∞）を示すＲＦ指標５３と、ＲＦ基準線５４が露呈する。ＲＦ指標５３で表示される距離目盛は、距離の逆数に比例した間隔で設けられており、至近側の指標間隔が広くなっている。なお、距離環５１が非ＲＦモードに設定されている場合には、ＲＦ指標５３、ＲＦ基準線５４は、距離環５１によって覆われ、ユーザは見ることができない。
【００３９】
次に、図４ないし図７を用いて、本実施形態における、ＲＦモードにおけるレンズ駆動制御について説明する。前述したように、ＲＦモードが設定されると、距離環５１の回転方向の絶対位置を検出し、この絶対位置に応じてフォーカスレンズ１１ｂの制御を行い、指定された絶対距離にピント合わせを行う。マニュアルフォーカスによるピント合わせの使用感を良くするためには、距離環５１の微小な回転に応じて、フォーカスレンズ１１ｂの動きも追従することが望ましい。
【００４０】
そこで、本実施形態においては、ＲＦモード設定時の距離環５１の絶対位置を検出するためのリニアエンコーダＲＦ位置検出部８１の出力をＡＤ変換する際のＬＳＢ（least significant bit）（ＡＤ変換にあたっての最小ビット）をそのまま分解能として使用する。勿論、分解能としては、ＬＳＢを使用しなくてもよいが、なるべく最下位ビットに近い値を使用すると、使用感がよくなる。
【００４１】
ＬＳＢ単位で制御を行うと、組み立てのばらつきから製品ごとにストローク範囲（ＡＤ範囲、両端側のＡＤ値）が僅かに異なる。このため、分割領域とフォーカスレンズ位置ＬＤＰｌｓの関係を示すテーブルを使用するテーブル方式を用いることができない。また、交換レンズ１００がズームレンズの場合には、ズーム位置によって使用するフォーカスレンズ位置ＬＤＰｌｓの範囲が異なることから、テーブル方式は使用し難い。そこで、本実施形態においては、距離環５１の絶対位置を示すＡＤ値と、被写体距離の逆数（１／Ｌ）の関係を線形１次式で持たせることにより解決した。
【００４２】
なお、フォーカスレンズ位置ＬＤＰｌｓは、基準位置（フォーカスレンズ基準位置検出部２７のリセット位置またはリセット位置を基準にして設定された無限遠位置）から、フォーカスレンズ駆動機構２５内のレンズ駆動モータ（ＬＤモータ）であるＬＤＭＴ７３によってステッピング駆動されたパルス数で表わされる。
【００４３】
図４は、距離環５１の絶対位置を示すＡＤ値と、被写体距離の逆数（１／Ｌ）の関係を示す図である。図４において、横軸は、距離環５１の絶対位置を示すＡＤ値であり、Ａｄｊ＿ＡＤ＿ｎｅａｒは、交換レンズの最至近側に距離環５１を当てつけた時のＲＦリニアエンコーダＲＦ位置検出部８１の出力に対応するＡＤ変換値であり、Ａｄｊ＿ＡＤ＿ｆａｒは、無限遠側に距離環５１を当てつけた時のＲＦリニアエンコーダＲＦ位置検出部８１の出力に対応するＡＤ変換値である。
【００４４】
また、図４において、縦軸は、被写体距離の逆数（１／Ｌ）を示している。縦軸において、逆数（１／Ｌ）の最大値は、最至近距離の設計値よりも大きな値を確保している。例えば、最至近距離が０．２ｍの場合には、その逆数は、５．０となるが、図４に示す例では、これより大きな５．３４まで確保している。逆数（１／Ｌ）の最小値は、無限遠の逆数である０よりも小さな値を確保している。図４に示す例では、−０．７９まで確保している。
【００４５】
このように、本実施形態においては、ＲＦモードにおけるＡＤ値（ＲＦ-ＡＤ値）と、距離の逆数（１／Ｌ）は、線形補間によって、図４に示すような関係となっており、まとめると、下記（１）〜（３）の関係を有する。
【００４６】
（１）  必ず光学無限遠が確保できるように、無限遠側の１／Ｌは負の値を用意し、光学無限遠位置は０を取り得る。
（２）同様に、光学至近が確保できるように、至近側の１／Ｌは至近撮影距離よりも大きな値を用意しておく。
（３）距離表示メモリは、１／Ｌ刻みとし、リニアエンコーダＲＦ位置検出部８１で検出する。よって、Ｙ＝ａＸ＋ｂの一次式の関係となる。ここで、Ｙは距離の逆数（１／Ｌ）であり、ＸはＡＤ値である。上記一次式を用いＡＤ変換値に基づいて１／Ｌを求める。上記一次式をＡＤ変換値−１／Ｌ線形補間式と称する。
【００４７】
図５は、距離の逆数（１／Ｌ）とＬＤＰｌｓとの関係を示すグラフである。図５に示すグラフから分かるように、出力ＬＤＰｌｓは無限遠側では密になり、至近側では疎になっている。図６を用いて後述するように、本実施形態に係るカメラは、このグラフに基づく距離の逆数（１／Ｌ）とＬＤＰｌｓとの関係を、テーブルで保持する。
【００４８】
ＲＦモードに設定された場合に、ＭＦリングの回転操作によって指定された距離は、図４を用いて説明したように、距離の逆数（１／Ｌ）に変換される。図５は、変換された距離の逆数（１／Ｌ）に対するフォーカスレンズ１１ｂの駆動位置（ＬＤＰｌｓ）を示している。両者の関係は、テーブルで保持していることから、離散的な値しか分からない。すなわち、離散的な距離の逆数（１／Ｌ）に対するＬＤＰｌｓの関係のみがテーブルに記憶されている。
【００４９】
そこで、距離の逆数（１／Ｌ）の入力値Ｐｘに対して、入力値Ｐｘの前後の４つの距離の逆数Ｐ１〜Ｐ４に対する４つのＬＤＰｌｓ（図中のＱ１〜Ｑ４）を用いて、線形補間演算により出力ＬＤＰｌｓ（図中のＱｙ）を算出する。なお、本実施形態においては、入力値Ｐｘに対して、前後の４点を用いて線形補間演算を行っているが、これに限らず、他の補間演算によって出力ＬＤＰｌｓを算出するようにしてもよい。
【００５０】
図５は、ある焦点距離において、入力値（距離の逆数）に対するフォーカスレンズ位置（出力ＬＤＰｌｓ）の算出方法の概念を示しているが、実際には、図６に示すようなテーブルを用いてフォーカスレンズ位置（出力ＬＤＰｌｓ）を求める。
【００５１】
図６は、図５に示した距離の逆数（１／Ｌ）とＬＤＰｌｓとの関係を、テーブルで表している。図５では、交換レンズの焦点距離を固定していたが、図６では、ズームレンズを想定し、焦点距離毎のＬＤＰｌｓを示し、また、テーブル上での補間演算も示している。図６の上部は、図５における横軸に示した距離の逆数（１／Ｌ）と、距離そのものを示している。図中、Ｐｘが図５における入力値Ｐｘに対応する。
【００５２】
図６の下部は、縦方向の欄に焦点距離をとり（
Ｔｒａｃ−ＺＭＥＮＣ−０〜Ｔｒａｃ−ＺＭＥＮＣ−ｎ）、各行にそれぞれの距離の逆数に対応したＬＤＰｌｓを示す。例えば、焦点距離がＴｒａｃ−ＺＭＥＮＣ−ｋ２の場合、距離Ｌ（ｉ）におけるＬＤＰｌｓはＰｌｓ（ｋ２：ｉ）であり、距離Ｌ（ｉ＋１）におけるＬＤＰｌｓはＰｌｓ（ｋ２：ｉ＋１）である。また、焦点距離（Ｔｒａｃ−ＺＭＥＮＣ−０〜Ｔｒａｃ−ＺＭＥＮＣ−ｎ）に応じて光学的に変化する光学無限、光学至近に対応するＬＤＰｌｓを含んでいる。
【００５３】
図６に示した補間演算の例では、ズーム環５２によって現在設定されている焦点距離はＴｒａｃ−ＺＭＥＮＣ−ｋ２である。この例では、ＦＣＥＮＣ（ｉ−１）〜ＦＣＥＮＣ（ｉ＋２）（距離Ｌ（ｉ−１）、Ｌ（ｉ）、Ｌ（ｉ＋１）、Ｌ（ｉ＋２）に対応するデータ）に応じたＬＤＰｌｓであるＰｌｓ（ｋ２：ｉ−１）、Ｐｌｓ（ｋ２：ｉ）、Ｐｌｓ（ｋ２：ｉ＋１）、Ｐｌｓ（ｋ２：ｉ＋２）を用いて、入力値Ｐｘに対応する出力ＬＤＰｌｓ（Ｑｙ）を求めている。
【００５４】
したがって、本実施形態においては、下記の手順で距離の逆数（１／Ｌ）の入力データに対応するＬＤＰｌｓを算出する。
（１）  距離の逆数（１／Ｌ）入力データが含まれるＦＣＥＮＣ領域を特定し、その両側に隣接するＦＣＥＮＣ領域および代表する１／Ｌデータを求める。
（２）現在のズーム位置と、Ｔｒａｃ−ＺＭＥＮＣテーブルから、上述の（１）の両側に隣接するＦＣＥＮＣ領域に対応するＬＤＰｌｓを求める。
（３）上述の（１）（２）のデータから、線形補間式によって、１／Ｌ入力データに対応するＬＤＰｌｓを求める。
【００５５】
図７は、横軸にズーム位置（焦点距離）、縦軸にＬＤＰｌｓとした時の、各被写体距離（ＦＣＥＮＣ）での軌跡の一例を示す。すなわち、同一被写体距離における焦点距離毎のＬＤＰｌｓの変化を示し、図６をグラフ化したものである。図７に示す例において、ズーム位置（入力値）８００Ｅｄｉｖ、被写体距離ＦＣＥＮＣ７の場合には、ＬＤＰｌｓは略５０００である。なお、本実施形態においては、ズーム位置は、リニアエンコーダＺＭ位置検出部８２によって、１０２４分割で検出され、Ｅｄｉｖ単位として表示される。また、ＦＣＥＮＣ０（光学無限）に対応するＬＤＰｌｓ、ＦＣＥＮＣ１５（光学至近）に対応するＬＤＰｌｓは、それぞれズーム位置（焦点距離）に応じて、一例として図７のように変化することを示している。
【００５６】
このように、本実施形態においては、ＲＦモードが設定され、ユーザによって距離環５１が回転操作され、被写体距離が指定されると、リニアエンコーダＲＦ位置検出部８１によってこの指定された距離を検出し、この距離の逆数（１／Ｌ）を求める（図４参照）。また、このときズーム環５２によって設定されている焦点距離を、リニアエンコーダＺＭ位置検出部８２によって検出する。求められた距離の逆数（１／Ｌ）と設定された焦点距離を用いて、フォーカスレンズ位置ＬＤＰｌｓを求める(図５、図６参照)。現在のフォーカスレンズ位置ＬＤＰｌｓと、求められたフォーカスレンズ位置ＬＤＰｌｓの差分に基づいて、フォーカスレンズ駆動機構２５内のＬＤモータであるＬＤＭＴ７３を駆動することにより、ユーザが指定した被写体距離にピントが合う。
【００５７】
次に、図８を用いて、本実施形態に係るカメラのＲＦ操作の状態遷移について説明する。前述したように、距離環５１を光軸方向にスライドすることにより、ＲＦモードと非ＲＦモードに切り換える（図８中の矢印Ａ、Ｂ）。
【００５８】
ＲＦモード時には、ユーザが指定した距離にピント合わせを行う「駆動」と、この駆動動作の「停止」の２つの状態がある。停止状態から駆動状態への変化は、ヒステリシスを超えたＡＤ変化が有る場合に行われる（図８中の矢印Ｃ）。また、駆動状態から停止状態への変化はヒステリシスを超えたＡＤ変化がなくなると駆動を完了する（図８中の矢印Ｄ）。すなわち、ＲＦモード時に距離環５１を回転操作させた際に、リニアエンコーダＲＦ位置検出部８１からの出力をＡＤ変換するＡ／Ｄ変換器４３の出力が、ある一定量（ヒステリシス）を超えると、停止状態から駆動状態に変化し、また一定量を超えなくなると駆動状態から停止状態に変化する。リニアエンコーダＲＦ位置検出部８１からのチャタリングやノイズ出力等によって、ユーザの意図に反してＲＦ駆動が開始し、また停止することを防止するためである。
【００５９】
また、同様に、ヒステリシスを超えたＡＤ変化がある場合に駆動目標を更新し、駆動状態を継続し（図８中の矢印Ｅ）、ヒステリシスを超えたＡＤ変換がない場合には、停止状態を継続する（図８中の矢印Ｆ）。なお、ＲＦ設定時には、非ＲＦモード設定時に行われるようなコンティニュアスＡＦ（ＣＡＦ）やシングルＡＦ（ＳＡＦ）などのカメラ本体からの指示に対する駆動は行わず、距離環５１からの操作に応じて駆動を行う。
【００６０】
非ＲＦモード設定時には、マニュアルフォーカス（ＭＦ）や、ＣＡＦやＳＡＦなど、カメラ本体の状態に従いフォーカスレンズの駆動（ＬＤ駆動）を行う。なお、マニュアルフォーカス（ＭＦ）では、前述したように、距離環５１の回転方向や回転量に応じて、フォーカスレンズ１１ｂを駆動する。また、ＣＡＦやＳＡＦの設定時には、カメラ本体において、焦点状態を検出し、この検出された焦点状態に基づいてカメラ本体よりフォーカスレンズの駆動制御信号を入力し、制御部４１はこの駆動制御信号に従ってフォーカスレンズ１１ｂの駆動制御を行う。
【００６１】
次に、図９ないし図１６に示すフローチャートを用いて、本実施形態におけるＲＦモードの動作について説明する。このフローチャートは、交換レンズ１００内の制御部４１が交換レンズ１００内の各部を制御することにより実行する。
【００６２】
図９に示すモード検出のゼネラルフローは、予め決められた時間毎に実行し、モードの切り換えを検出する。モード検出のゼネラルフローに入ると、まず、ＲＦモードスイッチのチェックを行い、ＲＦモードと非ＲＦモードのいずれが設定されてか否かを判定する（Ｓ１）。ここでは、ＲＦ／ＭＦモード検出ＳＷ８３（図２参照）の操作状態を入力し、この操作状態に基づいて判定する。
【００６３】
ＲＦモードＳＷチェックを行うと、次にＲＦモード変化判定を行う（Ｓ３）。ここで、ＲＦ／ＭＦモードＳＷがチャタリングのために、変化する場合がある。このため、このステップでは、ステップＳ１におけるＲＦモードＳＷチェックの結果、規定の回数の間(所定時間の間)、モード検出の結果が一致しているか否かによって、ＲＦモード変化の判定を行っている。
【００６４】
ステップＳ３においてＲＦモード変化判定を行うと、この判定に基づいて、ＲＦモード変化があったか否かを判定する（Ｓ５）。この判定の結果、ＲＦモード変化があった場合には、ＲＦモード切換処理を行う（Ｓ７）。ここでは、ユーザによって設定されたＲＦモード、または非ＲＦモードのいずれかにモード設定を行う。このＲＦモード切換処理の詳しい動作については、図１０を用いて後述する。一方、判定の結果、ＲＦモード変化がなかった場合、またはステップＳ７におけるＲＦモード切換処理を行うと、モード検出のフローを終了し、モード検出の周期監視処理に戻る。
【００６５】
次に、図１０を用いて、ステップＳ７におけるＲＦモード切換処理の動作について説明する。このＲＦモード切換処理では、ステップＳ１１、Ｓ１３、Ｓ１５、Ｓ２５において、更新前のＲＦモード（Ｒｆ＿Ｍｏｄｅ＿Ｐｒｅｖ）を現在のモード（ＲＦ＿Ｍｏｄｅ＿Ｃｕｒｒｅｎｔ）に更新するためのモード切換処理部としての動作と、ステップＳ１７−Ｓ２１、Ｓ２７においてモード切り換理事のＲＦ駆動を行うモード切換時ＲＦ駆動部としての動作がある。
【００６６】
ＲＦモード切換処理のフローに入ると、まず、現在のモードをＳＷ状態のモードとする（Ｓ１１）。ここでは、ステップＳ７においてＲＦ／ＭＦモード検出ＳＷ８３の設定状態基づいて設定したモードを現在のモードに設定する。
【００６７】
ステップＳ１１において現在のモードを設定すると、次に、現在のモードがＲＦモードか否かを判定する（Ｓ１３）。この判定の結果、現在のモードがＲＦモードの場合には、これに応じたＬ＿ＳＴＡＴＵＳ＿Ｍビット処理を行う（Ｓ１５）。Ｌ＿ＳＴＡＴＵＳ＿Ｍビット処理は、交換レンズ１００の状態を示す各種フラグ（以下に示すＲＦ＿Ｍｏｄｅ＿Ｆｌａｇ、ＡＦ禁止状態ビット、ＡＦ／ＭＦ状態ビット等）を設定する処理である。この各種フラグは交換レンズ１００の状態を知らせるためにカメラ本体２００へ送信される。ここでは、現在のモードがＲＦモード（ＲＦ＿Ｍｏｄｅ＿Ｐｒｅｖ：１）に切り換わった場合である。この場合には、ＲＦ＿Ｍｏｄｅ＿Ｆｌａｇを１にセットする。また、レンズ状態送信データ（Ｌ＿ＳＴＡＴＵＳ＿Ｍ）のレンズＡＦ禁止状態ビットを１にセットし、ＡＦ／ＭＦ状態ビットを１にセットする。
【００６８】
一方、ステップＳ１３における判定の結果、現在のモードがＲＦモードでない場合には、これに応じたＬ＿ＳＴＡＴＵＳ＿Ｍビット処理を行う（Ｓ２５）。ここでは、現在のモードが非ＲＦモード（ＲＦ＿Ｍｏｄｅ＿Ｐｒｅｖ：０）に切り換わった場合である。この場合には、ＲＦ＿Ｍｏｄｅ＿Ｆｌａｇを０にクリアする。また、レンズ状態送信データ（Ｌ＿ＳＴＡＴＵＳ＿Ｍ）のレンズＡＦ禁止状態ビットを０にクリアし、ＡＦ／ＭＦ状態ビットを０にクリアする。
【００６９】
ステップＳ１５における処理を行うと、ステップＳ１７〜Ｓ２１において、モード切換時のＲＦ駆動を行う。まず、ＲＦ演算＿変数初期値を設定する（Ｓ１７）。ここでは、ＲＦモード駆動に使用する変数の初期値を設定する。
【００７０】
続いて、ＲＦリニアエンコーダＡＤ（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）を更新する（Ｓ１９）。リニアエンコーダＲＦ位置検出部８１の出力をＡ／Ｄ変換器４３によりＡＤ変換を行い、ＡＤ変換値を更新する。
【００７１】
続いて、目標位置Ｐｌｓ演算を行い、ＲＦリング５１の現在位置に対応したＬＤＰｌｓ位置を算出し、このＬＤＰｌｓ位置へフォーカスレンズ１１ｂを駆動し、フォーカスレンズ１１ｂが駆動中（ＬＤ駆動中）であれば、目標位置を更新して駆動する（Ｓ２１）。目標位置Ｐｌｓ演算は、ＲＦ＿Ｐｒｅｖ＿ＡＤを使用するので、ＲＦ＿Ｐｒｅｖ＿ＡＤにＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤを代入する。目標位置Ｐｌｓ演算の結果、現在のＬＤＰｌｓ位置と比較し、駆動方向が無限遠方向であれば、駆動方向を示すフラグＲＦ＿Ｄｒｖ＿ｄｉｒ＝０とし、至近方向であれば、ＲＦ＿Ｄｒｖ＿ｄｉｒ＝１とする。目標位置Ｐｌｓ演算の結果のＬＤＰｌｓを目標ＬＤＰｌｓとし、ＬＤモータ（ＬＤＭＴ７３）によって、絶対値駆動を行う。目標位置Ｐｌｓ演算の詳細については後述する。
【００７２】
ステップＳ２１における処理を行うと、次に、ＲＦモード駆動周期処理ゼネラルフローを実行する（Ｓ２３）。ここでは、リニアエンコーダＲＦ位置検出部８１およびＡ／Ｄ変換器４３によって検出したＭＦリング５１の動きに応じたＡＤ値を周期的に監視し、このＡＤ値の変化に応じてＲＦ駆動を行う。このＲＦモード駆動周期処理の詳しい動作については、図１１を用いて後述する。
【００７３】
ステップＳ２５における処理を行うと、モード切換時のＲＦ駆動を行う。すなわち、フォーカスレンズ１１ｂが駆動中（ＬＤがＲＦ駆動中）であれば、減速して停止処理を行う（Ｓ２７）。ステップＳ２７は、ＲＦモードから非ＲＦモードに切り換わった場合であり、レンズ駆動（ＬＤ）としてＲＦ駆動中であれば、減速して停止処理を行う。
【００７４】
ステップＳ２３において、ＲＦモード駆動周期処理を行うと、またはステップＳ２７において停止処理を行うと、ＲＦモード切換処理のフローを終了し、元のフローに戻る。
【００７５】
図１０のＲＦモード切換処理において、ステップＳ２１において目標位置Ｐｌｓ演算を行っており、以下に詳細を説明する。この目標位置Ｐｌｓ演算では、リニアエンコーダＲＦ位置検出部８１の検出結果のＡＤ変換値に基づいてＬＤＰｌｓを演算する。この目標位置Ｐｌｓ演算は、下記のような手順で行う。
【００７６】
（１）図４に示す関係に応じたＡＤ変換値−１／Ｌ線形補間式を用いて、ＲＦ＿Ｐｒｅｖ＿ＡＤから１／Ｌの被写体距離データを算出する。
（２）上記１／Ｌが該当するフォーカス領域であるＦＣＥＮＣ領域を求める(図６)。
（３）フォーカス領域ＦＣＥＮＣとズーム位置Ｔｒａｃ＿ＺＭＥＮＣによりなるフォーカストラッキングテーブルよりＬＤＰｌｓを求める（図６参照）。算出されたＬＤＰｌｓを基に、ＲＦモード切換時の初期位置へ駆動する目標ＬＤＰｌｓを決める。
【００７７】
次に、ＲＦ駆動のエンコーダ検出方法について説明する。ＲＦ駆動にあたって、被写体距離を表すＡＤ値を、至近から無限遠の範囲内を適当に分割し、この分割した領域毎に対応するＬＤＰｌｓを決める方法がある。つまり、ＡＤ値をまるめて上位ビットのみを使用してＬＤＰｌｓに変換する方法である。しかし、本実施形態においては、細かな距離設定を可能にするＲＦ駆動を行うために、ＡＤ値のＬＳＢ単位で制御を行うようにしている。但し、ＡＤ値のＬＳＢ単位で制御を行うと、ＡＤ値の分解能が高いことから、ユーザが意図しないフォーカス駆動となったり、またＡＤ変換の誤検出の影響が大きくなってしまう。そこで、これらの不具合を避けるために、ＡＤ値にヒステリシス（不感帯）を持たせて制御を行うようにしている。ＲＦ駆動にあたって、ＬＳＢ単位で制御を行うことから、信号ノイズ、チャタリング等に配慮した制御を行っている。最適な操作感が得られるように、以下に説明するオフセットとヒステリシスを用意し、動作によってヒステリシスを変更する。
【００７８】
具体的には、本実施形態においては、エンコーダ端のオフセットとして、ＲＦ＿Ｏｆｆｓｅｔ＿ＡＤ（オフセットＡＤ）を用意している。また、ヒステリシスとして起動判断ヒステリシスＲＦ＿Ｅｄｇｅ＿ｈｉｓ＿ＡＤ、駆動中のＡＤ更新判断ヒステリシスＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ、ＭＦリング５１のユーザ操作停止判断ヒステリシスＲＦ＿Ｓｔｏｐ＿ｈｉｓ＿ＡＤを用意している。また、チャタリングのような誤検出を抑制するために、各判断基準に判定回数や方向フラグを用意している。それらの判断基準を満足し確定したＡＤ値を、１／Ｌ被写体距離データを用いて、被写体距離に変換し、更にフォーカストラッキングテーブルおよびズーム環位置（Ｔｒａｃ−ＺＭＥＮＣ）の情報を用いて、ＲＦ駆動の目標ＬＤＰｌｓ位置を演算し、算出された目標ＬＤＰｌｓ位置へ駆動する。
【００７９】
なお、ＲＦ駆動時のフラグ処理としては、上述したフラグの他に、ＭＦリング操作状態フラグがある。このフラグは、距離環５１（ＭＦリングともいう）の操作状態を表し、距離環５１が操作されている場合には「１」、操作されていない場合には「０」が設定される。このＭＦリング操作状態フラグは、交換レンズ１００からカメラ本体２００にレンズ通信によって出力し、カメラ本体２００では、ＭＦリング操作時における拡大表示等の際の判定に使用してもよい。
【００８０】
次に、図１１を用いて、ステップＳ２３（図１０）におけるＲＦモード駆動周期処理について説明する。このフローは、リニアエンコーダＲＦ位置検出部８１の出力のＡＤ値を監視する時間間隔であるＴｉｍ＿ＲＦ＿ＡＤ＿Ｄｅｔｅｃ毎に周期的に監視を実施する。また、リニアエンコーダＲＦ位置検出部８１の出力のＡＤ値を更新（更新したＡＤ値は、ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）する。更新したＡＤ値を保持する変数（ＲＦ＿Ｐｒｅｖ＿ＡＤ）へ反映するか否かは、停止状態、駆動状態、それぞれの条件により判断する。ＲＦが駆動中か否かをＲＦ＿Ｄｒｖ＿Ｆｌａｇで確認し、「１」の場合は駆動中、「０」の場合は停止（非駆動）となる。
【００８１】
図１１に示すＲＦモード駆動周期処理に入ると、まず、ＲＦリニアエンコーダＡＤの更新を行う（Ｓ３１）。ここでは、リニアエンコーダＲＦ位置検出部８１の出力のＡＤ値を取得し、この取得したＡＤ値を、ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤとする。
【００８２】
ステップＳ３１においてＲＦリニアエンコーダのＡＤを更新すると、次に、ＲＦ駆動中か否かを判定する（Ｓ３３）。この判定は、ＲＦ駆動中か否かを示すＲＦ＿Ｄｒｖ＿Ｆｌａｇが「１」であれば駆動中、このフラグが「０」であれば停止（非駆動）と判定する。
【００８３】
ステップＳ３３における判定の結果、フラグが０、すなわち停止（非駆動）であった場合には、ＲＦ起動判断処理を行う（Ｓ３５）。このＲＦ起動判断処理では、距離環５１がメカ端（無限端、至近端）付近にあるか、また距離環５１をユーザが操作したかの起動判断を行う。このＲＦ起動判断処理の詳しい動作については、図１２を用いて後述する。
【００８４】
ステップＳ３５においてＲＦ起動判断処理を行うと、次に、起動されたか否かを判定する（Ｓ３７）。ここでは、起動判断回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔが、起動判断判定回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｕｔ＿ｊｕｄｇｅ以上であるか否かを判定する。
【００８５】
ステップＳ３７における判定の結果、起動判断回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔが、起動判断判定回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｕｔ＿ｊｕｄｇｅよりも小さい場合には（判定の結果、Ｎｏ）、ステップＳ５３に進み、ＶＣＭ駆動状態をチェックし、次回周期監視を待つ。
【００８６】
一方、ステップＳ３７における判定の結果、起動判断回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔが、起動判断判定回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｕｔ＿ｊｕｄｇｅ以上の場合には（判定の結果、Ｙｅｓ）、起動と判断し、フラグ処理を行う（Ｓ３９）。このステップにおける起動処理後のフラグ処理は、ＭＦリング操作状態ビットを「１」にセットし、ＲＦ＿Ｄｒｖ＿Ｆｌａｇを「１」にセットして、駆動状態とする。また、起動判断回数ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔを「０」にクリアする。
【００８７】
ステップＳ３９においてフラグ処理を行うと、更新されたＲＦリニアエンコーダＡＤを保持するためのＲＦ＿Ｐｒｅｖ＿ＡＤに、更新したＡＤ値、ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤに置き換える（Ｓ４１）。
【００８８】
ステップＳ３３における判定の結果、フラグが１、すなわちＲＦ駆動中であった場合には、ＲＦ操作停止判断処理を行う（Ｓ４３）。ここでは、1つ前の周期監視処理において、ユーザによって距離環５１のＲＦ操作（回転操作）が行われており、かつ今回の周期監視処理でもＲＦ操作が継続しているか否かを判定する。この判定にあたっては、今回の周期監視処理で取得したリニアエンコーダＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）に基づいて、ＲＦ操作が継続しているか停止したかを判断し、駆動継続であれば、ＲＦ＿Ｄｒｖ＿Ｆｌａｇに「１」をセットし、停止であれば、「０」にクリアする。このＲＦ操作停止判断処理の詳しい動作については、図１３を用いて後述する。
【００８９】
ステップＳ４３においてＲＦ操作停止判断処理を行うと、次に、ＲＦ操作は継続されていたか否かを判定する（Ｓ４５）。ここでは、ステップＳ４３中において判定されたＲＦ＿Ｄｒｖ＿Ｆｌａｇが「１」か否かを判定する。この判定の結果、停止と判定された場合（判定結果がＮｏ）には、ステップＳ５３に進み、ＶＣＭ駆動状態をチェックし、次回周期監視を待つ。
【００９０】
一方、ステップＳ４５における判定の結果、ＲＦ操作は継続中と判断された場合には、ＲＦ＿ＡＤ位置更新判断を行う（Ｓ４７）。ここでの状態は、ユーザのＲＦ操作は継続中であり、その状態にて周期監視で更新されたＡＤ値で距離環５１の位置を更新するか否かを判断する。このＲＦ＿ＡＤ位置更新判断にて取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）を新しい目標位置として駆動する処理を行う。このＲＦ＿ＡＤ位置更新判断の詳しい動作については、図１４を用いて後述する。
【００９１】
ステップＳ４１において、ＲＦリニアエンコーダＡＤ値の更新を行うと、またはステップＳ４７においてＲＦ＿ＡＤ位置更新判断を行うと、次に、目標位置Ｐｌｓ演算を行う（Ｓ４９）。ここでは、最終的なＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）を基に、ＬＤ目標Ｐｌｓを演算する。この目標位置Ｐｌｓ演算の詳しい動作については、図１６を用いて後述する。
【００９２】
ステップＳ４９において目標位置Ｐｌｓ演算を行うと、次に、ＲＦ駆動を実行する（Ｓ５１）。ここでは、ステップＳ４９において演算された新しいＬＤ目標Ｐｌｓへフォーカスレンズ１１ｂを駆動する。
【００９３】
続いて、ＶＣＭ駆動状態チェックを行う（Ｓ５３）。ここでは、カメラ本体２００から交換レンズ１００に対して出力されている制御信号のチェックを行う。ＶＣＭ駆動状態チェックおよびそれに伴う処理が終了すると、元のフローに戻る。
【００９４】
次に、図１２に示すフローチャートを用いて、ステップＳ３５（図１１）のＲＦ起動判断処理の動作について説明する。このフローでは、ＲＦ駆動を行っていない状態で、ＲＦ駆動を起動するか否かを判断する。
【００９５】
ＲＦ起動判断処理のフローに入ると、ステップＳ６１〜Ｓ７５において、取得したＡＤ値が端＋端オフセット範囲内にあるか否かに応じた処理を行う。ここで、端はメカ端を意味し、メカ端は、フォーカスレンズ１１ｂの無限遠側および至近側の移動範囲内の端部であり、フォーカスレンズ１１ｂが機械的に移動できる限界である。また、端＋端オフセット範囲は、メカ端から端オフセットを考慮した範囲内を意味する。端オフセットＡＤは、端オフセットに対応するＡＤ値であり、この端オフセットＡＤ値は、ＲＦ＿Ｏｆｆｓｅｔ＿ＡＤとして予め記憶部３７に記憶されている。
【００９６】
ＲＦ起動判断処理のフローに入ると、まず、取得したＡＤが端＋端オフセットＡＤ以下で無限遠側にあるか否かを判定する（Ｓ６１）。ここでは、今回取得したＡＤ値（ＲＦ_Ｃｕｒｒｅｎｔ＿ＡＤ）が遠側調整ＡＤ値（Ａｄｊ＿ＡＤ＿Ｆａｒ）＋端オフセットＡＤ（ＲＦ＿Ｏｆｆｓｅｔ＿ＡＤ）以下で、無限遠側の端オフセットＡＤの範囲内にあるか否かを判定する。無限遠側調整ＡＤ値（Ａｄｊ＿ＡＤ＿Ｆａｒ）は、光学的無限遠の位置を決めるための調整値である。
【００９７】
ステップＳ６１における判定の結果、取得したＡＤ値が端＋端オフセットＡＤ以下で無限遠側にある場合には、すなわち、無限遠側の端オフセットＡＤの範囲内にある場合には、次に、前回取得したＡＤ値も端＋端オフセットＡＤ以下で無限遠側にあるかを判定する（Ｓ６３）。ここでは、前回取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）も無限遠側の端オフセットＡＤの範囲内にあるか否かを判定する。
【００９８】
ステップＳ６３における判定の結果、前回取得したＡＤ値も端＋端オフセットＡＤ以下で無限遠側にあった場合には、ＦＲ＿Ｄｒｖ＿ｄｉｒを無限遠方向（０）にセットする（Ｓ６７）。ここでは、ＲＦ駆動の駆動方向フラグＲＦ＿Ｄｒｖ＿ｄｉｒを０にセットし、ＲＦ駆動方向を無限遠方向とする。ステップＳ６１→Ｓ６３→Ｓ６７と進む場合には、距離環５１が無限遠側のメカ端付近にある場合であり、ＲＦ駆動方向を無限遠側に設定する。ステップＳ６７における処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【００９９】
一方、ステップＳ６３における判定の結果、前回取得したＡＤ値は端＋端オフセットＡＤ以下で無限遠側になかった場合には、ＲＦ起動判断カウントをカウントアップする（Ｓ６５）。ここでは、ＲＦ起動判断回数（ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔ）をカウントアップする。すなわち、前回はメカ端付近ではなく、ＲＦ駆動した結果、今回、メカ端付近に達したことから、ＲＦ起動判断の回数をカウントするカウンタをカウントアップしている。ステップＳ６５における処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【０１００】
ステップＳ６１における判定の結果、取得したＡＤ値が端＋端オフセットＡＤ以下で無限遠側にない場合には、次に、取得したＡＤ値が端＋端オフセットＡＤ以上で至近側にあるか否かを判定する（Ｓ６９）。ここでは、今回取得したＡＤ値（ＲＦ_Ｃｕｒｒｅｎｔ＿ＡＤ）が至近側調整ＡＤ値（Ａｄｊ＿ＡＤ＿Ｎｅａｒ）＋端オフセットＡＤ（ＲＦ＿Ｏｆｆｓｅｔ＿ＡＤ）以下で、至近側の端オフセットＡＤの範囲内にあるか否かを判定する。
【０１０１】
ステップＳ６９における判定の結果、取得したＡＤ値が端＋端オフセットＡＤ以上で至近側にある場合には、すなわち、至近側の端オフセットＡＤの範囲内にある場合には、次に、前回取得したＡＤ値も端＋端オフセットＡＤ以上で至近側にあるかを判定する（Ｓ７１）。ここでは、前回取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）も至近側の端オフセットＡＤの範囲内にあるか否かを判定する。
【０１０２】
ステップＳ７１における判定の結果、前回取得したＡＤ値も端＋端オフセットＡＤ以上で至近側にあった場合には、ＦＲ＿Ｄｒｖ＿ｄｉｒを至近方向（１）にセットする（Ｓ７５）。ここでは、ＲＦ駆動の駆動方向フラグＲＦ＿Ｄｒｖ＿ｄｉｒを１にセットし、ＲＦ駆動方向を至近方向とする。ステップＳ６１→Ｓ６９→Ｓ７１→Ｓ７５と進む場合には、距離環５１が至近側のメカ端付近にある場合であり、ＲＦ駆動方向を至近側に設定する。ステップＳ７５における処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【０１０３】
一方、ステップＳ７１における判定の結果、前回取得したＡＤ値が端＋端オフセットＡＤ以上で至近側になかった場合には、ＲＦ起動判断カウントをカウントアップする（Ｓ７３）。ここでは、ＲＦ起動判断回数（ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔ）をカウントアップする。すなわち、前回はメカ端付近ではなく、ＲＦ駆動した結果、今回、メカ端付近に達したことから、ＲＦ起動判断の回数をカウントするカウンタをカウントアップしている。ステップＳ７３における処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【０１０４】
前述したように、ステップＳ６１〜Ｓ７５において取得したＡＤ値が端＋端オフセット範囲内にある場合の処理を行った。ステップＳ６１およびＳ６９における判定の結果、ＡＤ値が端＋端オフセット範囲内にない場合には、ステップＳ７７〜Ｓ８９において、ＡＤ値が端付近にないが、起動判断ヒステリシスより大きい場合の処理を行う。
【０１０５】
ステップＳ６９における判定の結果、取得したＡＤ値が端＋端オフセットＡＤ以上で至近側にない場合には、次に、取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が１つ前のＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）にヒス（ヒステリシス）を減算した位置よりも無限遠側にあるか否かを判定する（Ｓ７７）。ここでは、現在の位置（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が、前回の位置（ＲＦ＿Ｐｒｅｖ＿ＡＤ）に、ヒステリシスとして予め記憶部３７に記憶されている起動判断ヒステリシス（ＲＦ＿Ｌａｕｎｃｈ＿ｈｉｓ＿ＡＤ）を減算した位置よりも無限遠側にあるか否かを判定する。リニアエンコーダＲＦ位置検出部８１の出力をＡＤ変換するにあたって、ＬＳＢ単位で細かく位置検出していることから、ノイズによってＲＦ駆動を行ってしまう場合がある。そこで、本実施形態においては、不感帯として起動判断ヒステリシス（ＲＦ＿Ｌａｕｎｃｈ＿ｈｉｓ＿ＡＤ）を記憶部３７に記憶しておき、前回のＡＤ値と今回のＡＤ値の差が起動判断ヒステリシス以上の動きが所定回数（図１１のＳ３７におけるＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔ＿ｊｕｄｇｅ）以上、あった場合に、ＲＦ起動を行うようにしている。なお、ＡＤ値は、無限遠側に０の位置があり、至近側になるほどＡＤ値は大きくなっていく。
【０１０６】
ステップＳ７７における判定の結果、取得したＡＤ値が1つ前のＡＤ値よりもヒス分以上に無限遠側にある場合には、ＦＲ＿Ｄｒｖ＿ｄｉｒを無限遠方向（０）にセットする（Ｓ７９）。ここでは、ＲＦ駆動の駆動方向フラグＲＦ＿Ｄｒｖ＿ｄｉｒを０にセットし、ＲＦ駆動方向を無限遠方向とする。ステップＳ６９→Ｓ７７→Ｓ７９と進む場合には、距離環５１が無限遠側のメカ端付近にはないが、ユーザが距離環５１を停止状態から無限遠方向に操作している場合であることから、ＲＦ駆動方向を無限遠側に設定する。
【０１０７】
ステップＳ７７における判定の結果、取得したＡＤ値が1つ前のＡＤ値よりもヒス分以上に無限遠側にない場合には、次に、取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が１つ前のＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）にヒスを加算した位置よりも至近側にあるか否かを判定する（Ｓ８１）。ここでは、現在の位置（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が、前回の位置（ＲＦ＿Ｐｒｅｖ＿ＡＤ）に、起動判断ヒステリシス（ＲＦ＿Ｌａｕｎｃｈ＿ｈｉｓ＿ＡＤ）を加えた位置よりも至近側にあるか否かを判定する。
【０１０８】
ステップＳ８１における判定の結果、取得したＡＤ値が１つ前のＡＤ値にヒスを加算した位置よりも至近側にある場合には、ＦＲ＿Ｄｒｖ＿ｄｉｒを至近方向（１）にセットする（Ｓ８３）。ここでは、ＲＦ駆動の駆動方向フラグＲＦ＿Ｄｒｖ＿ｄｉｒを１にセットし、ＲＦ駆動方向を至近方向とする。ステップＳ６９→Ｓ８１→Ｓ８３と進む場合には、距離環５１が至近側のメカ端付近にはないが、ユーザが距離環５１を停止状態から至近方向に操作している場合であることから、ＲＦ駆動方向を至近側に設定する。
【０１０９】
ステップＳ７９またはＳ８３において、駆動方向フラグＦＲ＿Ｄｒｖ＿ｄｉｒに０または１をセットすると、ＲＦ起動判断カウントをカウントアップする（Ｓ８５）。ここでは、ＲＦ起動判断回数（ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔ）をカウントアップする。すなわち、前回はメカ端付近ではなく、しかも、前回のＡＤ値と今回のＡＤ値の差が起動判断ヒステリシス以上の動きがあることから、ＲＦ起動判断の回数をカウントするカウンタをカウントアップしている。ステップＳ８５における処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【０１１０】
ステップＳ８１における判定の結果、取得したＡＤ値が１つ前のＡＤ値にヒスを加算した位置よりも至近側にない場合には、ＲＦ＿Ｐｒｅｖ＿ＡＤ値は更新しない（Ｓ８７）。ステップＳ８１の判定の結果、前回と今回のＡＤ値の差がヒステリシス範囲内であることから、今回、取得したＡＤ値は、ユーザの操作によるものでない。そのため、１つ前のＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）の更新を行わない。
【０１１１】
続いて、ＲＦ起動判断カウントを０にする（Ｓ８９）。ユーザ操作によるＡＤ値の変化でなかったことから、ＲＦの起動判断回数（ＲＦ＿Ｌａｕｎｃｈ＿ｃｎｔ）をクリアする。ステップＳ８９の処理を行うと、ＲＦ起動判断処理を終了し、元のフローに戻る。
【０１１２】
このように、図１２に示すＲＦ起動判断処理では、今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）及び前回取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）、端オフセットＡＤ（ＲＦ＿Ｏｆｆｓｅｔ＿ＡＤ）を用いて、距離環５１がメカ端付近にあるか否かの判断と、ユーザがメカ端付近で操作したか否かの起動判断を行っている（Ｓ６１〜Ｓ７５）。また、今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）、前回取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）、及び起動判断ヒステリシスＡＤ（ＲＦ＿Ｌａｕｎｃｈ＿ｈｉｓ＿ＡＤ）を用いて、距離環５１のメカ端付近にない状態の操作で、ユーザが距離環５１を操作したか否かの起動判断を行っている（Ｓ７７〜Ｓ８９）。
【０１１３】
次に、図１３に示すフローチャートを用いて、ステップＳ４３（図１１）のＲＦ操作停止判断処理の動作について説明する。このフローでは、ＲＦ駆動を行っている状態で、ＲＦ駆動を停止するか否かを判断する。
【０１１４】
ＲＦ操作停止判断処理のフローに入ると、まず、取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が１つ前のＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）に停止判断ヒスを加算した値より小さいか否かを判定する（Ｓ９１）。ここでは、現在の位置（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が、前回の位置（ＲＦ＿Ｐｒｅｖ＿ＡＤ）に、停止判断ヒステリシスとして予め記憶部３７に記憶されている停止判断ヒステリシス（ＲＦ＿Ｓｔｏｐ＿ｈｉｓ＿ＡＤ）を加算した位置の範囲内にあるか否かを判定する。前述したように、リニアエンコーダＲＦ位置検出部８１の出力をＡＤ変換するにあたって、ＬＳＢ単位で細かく位置検出していることから、ノイズやチャタリングでＡＤ値を誤検出し、ＲＦ駆動を停止してしまう場合がある。そこで、本実施形態においては、不感帯として停止判断ヒステリシス（ＲＦ＿Ｓｔｏｐ＿ｈｉｓ＿ＡＤ）を記憶部３７に記憶しておき、前回のＡＤ値と今回のＡＤ値の差が停止判断ヒステリシスより小さいことの判断回数が所定回数（図１３のＳ９３におけるＲＦ＿Ｓｔｏｐ＿ｃｎｔ＿ｊｕｄｇｅ）以上、あった場合に、ＲＦ駆動を停止するようにしている。
【０１１５】
ステップＳ９１における判定の結果、取得したＡＤが１つ前のＡＤ＋停止判断ヒスより大きい場合には、距離環５１の操作は続行中であることから、ＲＦ操作停止判断のフローを終了して元のフローに戻る。
【０１１６】
一方、ステップＳ９１における判定の結果、取得したＡＤが１つ前のＡＤ＋停止判断ヒスより小さい場合には、停止判断されたカウントが規格カウント以上か否かを判定する（Ｓ９３）。ステップＳ９１において取得したＡＤが１つ前のＡＤ＋停止判断ヒスより小さいと判断された回数がＲＦ停止判断カウント（ＲＦ＿Ｓｔｏｐ＿ｃｎｔ）においてカウントされており（Ｓ９５）、ステップＳ９３においては、このカウント値がＲＦ操作停止判断規格カウント（ＲＦ＿Ｓｔｏｐ＿ｃｎｔ＿ｊｕｄｇｅ）以上であるか否かを判定する。なお、ＲＦ操作停止判断規格カウントは、予め記憶部３７に記憶されている。
【０１１７】
ステップＳ９３における判定の結果、停止判断されたカウントが規格カウント以上でない場合には、ＲＦ停止判断カウントをカウントアップする（Ｓ９５）。ここでは、ＲＦ操作停止カウントがＲＦ操作停止判断カウント規格未満の場合には、距離環５１の操作停止の判断に至らず、ＲＦ操作停止カウントをカウントアップする。カウントアップすると、ＲＦ操作停止判断のフローを終了して元のフローに戻る。
【０１１８】
一方、ステップＳ９３における判定の結果、停止判断されたカウントが規格カウント以上の場合には、フラグ処理を行う（Ｓ９７）。この場合には、ユーザの距離環５１の操作が停止したと判断し、ＭＦリング操作状態ビットを０にする。フラグ処理を行うと、ＲＦ操作停止判断のフローを終了して元のフローに戻る。
【０１１９】
このように、図１３に示すＲＦ操作停止判断処理では、１つ前の周期処理にて、ユーザによるＲＦ操作（ＲＦモード時の距離環５１の回転操作）が行われていて、今回の周期処理でも、ＲＦ操作が継続しているか否かを判断している。前回取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）と今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）の絶対値の差分が、操作停止判断ヒステリシス（ＲＦ＿Ｓｔｏｐ＿ｈｉｓ＿ＡＤ）以内にあるか否かによって、前回に対して停止状態にあるか否かを判断している（Ｓ９１）。また、１回だけの判定では、チャタリング等によって誤判定する可能性があることから、停止状態と判定された回数が所定回数に達した場合に、最終的な停止判断としている（Ｓ９３Ｙｅｓ）。
【０１２０】
次に、図１４および図１５に示すフローチャートを用いて、ステップＳ４７（図１１）のＲＦ＿ＡＤ位置更新判断の動作について説明する。このフローでは、ＲＦ駆動を行っている状態で、新たに取得したＡＤ値で更新するか否かの判定を行う。すなわち、ユーザの距離環５１の操作によりＡＤ値が変化するが、ＡＤ変換のＬＳＢ単位でユーザの指定距離を検出していることから、ＡＤ変換のノイズや、また検出部におけるチャタリング等によって、誤ったＡＤ値でデータを更新してしまうおそれがある。図１４のフローでは、このような誤ったＡＤ値でデータを更新することを防止している。
【０１２１】
ＲＦ＿ＡＤ位置更新判断のフローに入ると、取得したＡＤが、１つ前のＡＤ（ＲＦ＿Ｐｒｅｖ＿ＡＤ）からＡＤ更新判断ヒスを減算した値以下であるか否か、また無限遠方向か否かを判定する（Ｓ１０１）。ここでは、今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が、１つ前に取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）からＡＤ更新判断ヒスである駆動中ヒステリシスＡＤ値（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）を減算した値以下であって、かつ無限遠方向に駆動中であるか否かを判定する。
【０１２２】
ステップＳ１０１における判定の結果、取得したＡＤが１つ前のＡＤ−ＡＤ更新判断ヒス以下であって、かつ無限遠方向であった場合には、次に、前回の駆動方向が無限遠方向か否かを判定する（Ｓ１０３）。前述したように、リニアエンコーダＲＦ位置検出部８１の出力をＡＤ変換するにあたって、ＬＳＢ単位で細かく位置検出していることから、ＡＤ変換器のノイズやリニアエンコーダのチャタリングでＡＤ値を誤検出してしまう場合がある。そこで、本実施形態においては、不感帯としてＡＤ更新判断ヒスである駆動中ヒステリシスＡＤ（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）を記憶部３７に記憶しておき、前回のＡＤ値と今回のＡＤ値の差が更新判断ヒステリシスより小さいか否かを判定している。
【０１２３】
ステップＳ１０３における判定の結果、前回の駆動方向が無限遠の場合には、フラグ処理を行う（Ｓ１０７）。ステップＳ１０１およびＳ１０３において、前回および今回の駆動方向が無限遠方向であることから、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）として無限遠方向：０をセットする。
【０１２４】
ステップＳ１０７においてフラグ処理を行うと、次に、ＲＦ＿Ｐｒｅｖ＿ＡＤに今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）をセットする（Ｓ１０９）。ステップＳ１０１およびＳ１０３の判断結果から、今回取得のＡＤ値が信頼できることから、ＡＤ値の更新を行う。
【０１２５】
ステップＳ１０３における判定の結果、前回の駆動方向が無限遠でなかった場合には、次に、前回と駆動方向が逆だと判断したカウントが規格カウント以上か否かを判定する（Ｓ１０５）。ステップＳ１０１における駆動方向とステップＳ１０３における駆動方向が逆となっている。このステップでは、前回と駆動方向が逆だと判断した駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が規格カウントである駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上か否かを判定する。なお、前回と駆動方向が逆だと判断した駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）は、ステップＳ１１５においてカウントされる。また、規格カウントである駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）は、予め記憶部３７に記憶されている。１回だけの判定では、チャタリング等によって誤判定する可能性があることから、規格カウントに達した場合に、フラグ処理とＡＤ値の更新を行うようにしている。
【０１２６】
ステップＳ１０５における判定の結果、カウントが規格カウント以上でない場合には、駆動方向逆（反転）判断の駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）のカウントアップを行い（Ｓ１１５）、ＲＦ＿Ｐｒｅｖ＿ＡＤ値の更新を行わない（Ｓ１１７）。
【０１２７】
一方、ステップＳ１０５における判定の結果、カウントが規格カウント以上の場合には、フラグ処理を行う（Ｓ１１１）。ステップＳ１０３において、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）は、至近方向：１と判断されており、取得したＡＤ値の方向と逆となる。しかし、ステップＳ１０１における駆動方向は無限遠方向であり、かつ駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上となり、無限遠方向に駆動していることが信頼できることから、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）を無限遠方向：０にセットする。また、駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）を０にクリアする。
【０１２８】
続いて、ＲＦ＿Ｐｒｅｖ＿ＡＤに取得したＡＤ値をセットし、更新する（Ｓ１１３）。駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上となり、今回取得したＡＤ値が信頼できることから、ＡＤ値の更新を行う。
【０１２９】
ステップＳ１０９、Ｓ１１３、Ｓ１１７における処理を行うと、ＲＦ＿ＡＤ位置更新判断のフローを終了し、元のフローに戻る。
【０１３０】
ステップＳ１０１における判定の結果、取得したＡＤが１つ前のＡＤ−ＡＤ更新判断ヒス以下であって、かつ無限方向でない場合には、次に、取得したＡＤが、１つ前のＡＤ（ＲＦ＿Ｐｒｅｖ＿ＡＤ）＋ＡＤ更新判断ヒス以上か否か、かつ至近方向か否かを判定する（Ｓ１２１）。ここでは、今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）が、１つ前に取得したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）にＡＤ更新判断ヒスである駆動中ヒステリシスＡＤ値（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）を加算した値以上であって、かつ至近方向に駆動中であるか否かを判定する。
【０１３１】
ステップＳ１２１における判定の結果、取得したＡＤが１つ前のＡＤ＋ＡＤ更新判断ヒス以上であって、かつ至近方向であった場合には、次に、前回の駆動方向が至近方向か否かを判定する（Ｓ１２３）。前述したように、Ａ／Ｄ変換器のノイズやリニアエンコーダのチャタリングでＡＤ値を誤検出してしまう場合があり、不感帯としてＡＤ更新判断ヒスである駆動中ヒステリシスＡＤ（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）を記憶部３７に記憶しておき、前回のＡＤ値と今回のＡＤ値の差が更新判断ヒステリシスより小さくか否かを判定している。
【０１３２】
ステップＳ１２３における判定の結果、前回の駆動方向が至近の場合には、フラグ処理を行う（Ｓ１２９）。ステップＳ１２１およびＳ１２３において、前回および今回の駆動方向が至近方向であることから、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）として至近方向：１をセットする。
【０１３３】
ステップＳ１２９においてフラグ処理を行うと、次に、ＲＦ＿Ｐｒｅｖ＿ＡＤに今回取得したＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）をセットする（Ｓ１３１）。ステップＳ１２１およびＳ１２３の判断結果から、今回取得のＡＤ値が信頼できることから、ＡＤ値の更新を行う。
【０１３４】
ステップＳ１２３における判定の結果、前回の駆動方向が至近でなかった場合には、次に、前回と駆動方向が逆だと判断したカウントが規格カウント以上か否かを判定する（Ｓ１２５）。ステップＳ１２１とステップＳ１２３における駆動方向が逆となっている。このステップでは、前回と駆動方向が逆だと判断した駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が規格カウントである駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上か否かを判定する。
【０１３５】
ステップＳ１２５における判定の結果、カウントが規格カウント以上でない場合には、駆動方向逆（反転）判断の駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）のカウントアップを行い（Ｓ１３７）、ＲＦ＿Ｐｒｅｖ＿ＡＤ値の更新を行わない（Ｓ１３９）。
【０１３６】
一方、ステップＳ１２５における判定の結果、カウントが規格カウント以上の場合には、フラグ処理を行う（Ｓ１３３）。ステップＳ１２３において、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）は、無限遠方向：０と判断されており、取得したＡＤ値の方向と逆となる。しかし、ステップＳ１２１において今回取得した駆動方向は至近方向であり、かつ駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上となり、至近方向に駆動していることが信頼できることから、駆動方向フラグ（ＲＦ＿Ｄｒｖ＿ｄｉｒ）を至近方向：１にセットする。また、駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）を０にクリアする。
【０１３７】
続いて、ＲＦ＿Ｐｒｅｖ＿ＡＤに取得したＡＤ値をセットし、更新する（Ｓ１３５）。駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）が駆動方向カウント判断（ＲＦ＿Ｄｒｖ＿ｃｎｔ＿ｊｕｄｇｅ）以上となり、今回取得したＡＤ値が信頼できることから、ＡＤ値の更新を行う。
【０１３８】
ステップＳ１２１における判定の結果、取得したＡＤが１つ前のＡＤ＋ＡＤ更新判断ヒス以上であって、かつ至近方向であった場合には、ＲＲ＿Ｐｒｅｖ＿ＡＤ値は更新しない（Ｓ１２７）。ステップＳ１０１およびＳ１２１における判定により、今回取得したＡＤ値は、駆動中ヒステリシスＡＤ（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）の範囲内にあることから、信頼性が低いので、１つ前のＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）を今回取得したＡＤ値（ＲＲ＿Ｐｒｅｖ＿ＡＤ）に更新しない。
【０１３９】
ステップＳ１２７、Ｓ１３１、Ｓ１３５、Ｓ１３９における処理を行うと、ＲＦ＿ＡＤ位置更新判断のフローを終了し、元のフローに戻る。
【０１４０】
このように、図１４および図１５に示すＲＦ＿ＡＤ位置更新判断では、ユーザの距離環５１の操作が継続中に、周期監視で取得されたＡＤ値（ＲＦ＿Ｃｕｒｒｅｎｔ＿ＡＤ）で、前回取得されたＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）を更新するか否かを判断している。今回取得したＡＤ値の変化が駆動中ヒステリシスＡＤ（ＲＦ＿Ｄｒｖ＿ｈｉｓ＿ＡＤ）よりも大きい場合には、ユーザの距離環５１の操作により指定位置が更新されたと判断している（Ｓ１０１、Ｓ１２１）。また、今回取得したＡＤ値の前回駆動方向と逆方向であった場合には（Ｓ１０３Ｎｏ、Ｓ１２３Ｎｏ）、駆動方向カウント（ＲＦ＿Ｄｒｖ＿ｃｎｔ）のカウント値が規格カウント以上の場合に（Ｓ１０５Ｙｅｓ、Ｓ１２５Ｙｅｓ）、ユーザによる距離環５１の操作があったと判断し、ＡＤ値の更新を行っている。これにより、チャタリング等による駆動方向反転動作を抑制している。
【０１４１】
次に、図１６に示すフローチャートを用いて、ステップＳ４９（図１１）の目標位置Ｐｌｓ演算の動作について説明する。目標位置Ｐｌｓは、図４ないし図６を用いて説明したように、概略、ユーザが距離環５１を操作して距離（Ｌ）を指定すると、この指定された距離の逆数（１／Ｌ）を算出し、この距離の逆数（１／Ｌ）から、フォーカスレンズ１１ｂの駆動位置に相当するＬＤＰｌｓを算出することによって得られる。
【０１４２】
目標位置Ｐｌｓ演算のフローに入ると、まず、ＲＦ＿Ｐｒｅｖ＿ＡＤと、ＡＤ−１・Ｌ線形補間式より被写体距離１／Ｌを算出する（Ｓ１４１）。ここでは、リニアエンコーダＲＦ位置検出部８１の出力をＡ／Ｄ変換器４３によってＡＤ変換したＡＤ値（ＲＦ＿Ｐｒｅｖ＿ＡＤ）を用いて、ＡＤ−１／Ｌ線形補間式によって、距離の逆数１／Ｌを算出する。
【０１４３】
距離の逆数（１／Ｌ）を算出すると、次に、この１／ＬよりＦＣＥＮＣ領域を算出する（Ｓ１４３）。ＦＣＥＮＣ領域は、図６に示したように、テーブル上の１／Ｌに対応する値である。
【０１４４】
ＦＣＥＮＣ領域を算出すると、次に、ＦＣＥＮＣとＴｒａｃ＿ＺＭＥｎｃよりＬＤＰｌｓを算出する（Ｓ１４５）。Ｔｒａｃ＿ＺＭＥｎｃは、図６に示したように、テーブル上の焦点距離に対応する値である。１／Ｌに対応するＦＣＥＮＣと、焦点距離に対応するＺＭＥｎｃが決まれば、フォーカスレンズ１１ｂのフォーカス位置に対応するＰｌｓを求めることができる。なお、テーブル上では、離散的な値しかないので、補間演算式を用いて、より精密にＰｌｓを求めればよい。フォーカスレンズの目標位置Ｐｌｓが求まれれば、目標位置Ｐｌｓと現在位置の差であるフォーカスレンズ１１ｂの駆動量ＬＤｐｌｓが決まる。ＬＤｐｌｓを算出すると、目標位置Ｐｌｓ演算のフローを終了し、元のフローに戻る。
【０１４５】
以上説明したように、本発明の一実施形態においては、撮影レンズを含むレンズ鏡筒内に設けられた光軸方向に移動可能な焦点調節レンズ（例えば、フォーカスレンズ１１ｂ）と、レンズ鏡筒に対して第１の端点と第２の端点の角度範囲内を回転可能に配設されるリング部材（例えば、距離環５１）と、リング部材の回転角と距離の第１の関係（例えば、図４参照）と、焦点調節レンズの光軸方向の位置と距離の第２の関係(例えば、図５参照)を記憶する記憶部(例えば、記憶部３７)と、リング部材の回転角と第１の関係に基づいてリング部材の回転角に応じた距離を算出し、この距離と第２の関係に基づいて焦点調節レンズの光軸方向の位置を設定する制御部（例えば、レンズＣＰＵ４１）を有している。このため、マニュアルフォーカス時に、操作部材によって指定される距離にピントを合わせることができる。すなわち、リング部材の回転角から距離を算出し、この算出された距離から焦点調節レンズの光軸方向の位置を算出するようにしたので、指定された距離にピント合わせが可能となる。
【０１４６】
また、本発明の一実施形態においては、レンズ鏡筒内にズームレンズ群が設けられ、ズームレンズ群のズーム位置を検出するズーム位置検出部（例えば、ズーム位置検出部３４）を有し、記憶部は、ズーム位置に応じて複数の第２の関係を記憶し（例えば、図６におけるＴｒａｃ＿ＺＭＥＮＣ）、制御部は、リング部材の回転角と第１の関係に基づいてリング部材の回転角に応じた距離を算出し、この距離とズーム位置に応じた第２の関係に基づいて焦点調節レンズの光軸方向の位置を設定する。このため、レンズ鏡筒がズームレンズの場合であっても操作部材によって指定される距離にピントを合わせることができる。
【０１４７】
また、本発明の一実施形態においては、制御部は、リング部材の第１の端点（例えば、図１２のＳ６９の端）に応じて焦点調節レンズの光学的至近となる光軸方向の位置を対応させ、リング部材を第２の端点（例えば、図１２のＳ６１の端）に対して焦点調節レンズの光学的無限となる光軸方向の位置を対応させている。このため、リング部材の両側端点（指標）に焦点調節レンズの光学至近や光学無限を対応させることができる。なお、この第１および第２の端点は、メカ端であってもよいが、必ずしもメカ端である必要はない。
【０１４８】
また、本発明の一実施形態においては、制御部は、ズーム位置に応じて、焦点調節レンズの光学的至近となる光軸方向の位置と光学的無限となる光軸方向の位置を変更している。このため、ズームに応じたフォーカストラキングカーブを得ることができる。
【０１４９】
なお、本発明の一実施形態においては、フォーカスレンズ１１ｂをＶＣＭ（ボイスコイルモータ）によって駆動していたが、これ限らず、一般的なステッピングモータ等の他のモータであってもよい。また、フォーカスレンズ１１ｂの位置を基準位置からのモータの駆動ステップ数によってカウントしていたが、これに限らず、エンコーダで直接検出するようにしてもよい。
【０１５０】
また、本発明の一実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォーンや携帯情報端末（ＰＤＡ：Personal Digital Assist）、ゲーム機器等に内蔵されるカメラでも構わない。いずれにしても、操作部材を手動操作することにより、距離を指定することのできるレンズ光学系を有する撮影のための機器であれば、本発明を適用することができる。
【０１５１】
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
【０１５２】
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
【０１５３】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１５４】
１１ａ〜１１ｃ・・・レンズ、１３・・・絞り、２１・・・絞り駆動機構、２３・・・絞り基準位置検出部、２５・・・フォーカスレンズ駆動機構、２７・・・フォーカスレンズ基準位置検出部、３１・・・ＲＦ位置検出部、３３・・・ＲＦモード検出部、３４・・・ズーム位置検出部、３５・・・ＭＦ位置検出部、３７・・・記憶部、４１・・・ＣＰＵ、４３・・・Ａ／Ｄ変換器、４４・・・Ａ／Ｄ変換器、５１・・・距離環、５２・・・ズーム環、５３・・・ＲＦ指標、５４・・・ＲＦ基準線、６１・・・ＭＦＰＩ二値化回路、６３・・・ＭＦＰＩ、６５・・・ＭＦＰＩドライバ、６７・・・ＦＣＰＩ二値化回路、６９・・・ＦＣＰＩ、７１・・・モータドライバ、７３・・・ＬＤモータ、７５・・・ＡＶモータ、７７・・・ＡＶフォトインタラプタ、７９・・・ＡＶフォトインタラプタ二値化回路、８１・・・リニアエンコーダＲＦ位置検出部、８２・・・リニアエンコーダＺＭ位置検出部、８３・・・ＲＦ／ＭＦモード検出ＳＷ、１００・・・交換レンズ、２００・・・カメラ本体、２０１・・・撮像素子
【図１】
2015011315.tif 000003
【図２】
2015011315.tif 000004
【図３】
2015011315.tif 000005
【図４】
2015011315.tif 000006
【図５】
2015011315.tif 000007
【図６】
2015011315.tif 000008
【図７】
2015011315.tif 000009
【図８】
2015011315.tif 000010
【図９】
2015011315.tif 000011
【図１０】
2015011315.tif 000012
【図１１】
2015011315.tif 000013
【図１２】
2015011315.tif 000014
【図１３】
2015011315.tif 000015
【図１４】
2015011315.tif 000016
【図１５】
2015011315.tif 000017
【図１６】
2015011315.tif 000018