(57)【要約】【課題】  ＡＦモードにおいて、３次元被写体などで意図した被写体に合焦していないためにフォーカスリングを操作して強制的に別の被写体の合焦近傍にフォーカスレンズを移動させる場合、現在の合焦位置から別の被写体までのフォーカスレンズの移動量が大きい場合には、フォーカスリングの操作量を多くしなければならないという問題点があった。【解決手段】ＡＦモード実行中におけるＭＦ操作手段からのフォーカスレンズ群の移動方向を指示するフォーカス位置変更指令に基づいて、該フォーカスレンズ群を移動させ、ＡＦ評価値のピーク位置で該フォーカスレンズ群を停止させるフォローフォーカスモードを実行する手段を有するレンズ装置を提供する。【選択図】  図１
2006030475.tif 000002
【特許請求の範囲】
【請求項１】
ＡＦ評価手段により算出されるＡＦ評価値に基づいてフォーカスレンズ群を光軸方向に駆動するＡＦモードを実行する手段と、
ＭＦ操作手段からのフォーカス位置変更指令に基づいて前記フォーカスレンズ群を光軸方向に駆動するＭＦモードを実行する手段と、を有するレンズ装置において、
該ＡＦモード実行中における該ＭＦ操作手段からの該フォーカスレンズ群の移動方向を指示するフォーカス位置変更指令に基づいて、該フォーカスレンズ群を移動させ、該ＡＦ評価値のピーク位置で該フォーカスレンズ群を停止させるフォローフォーカスモードを実行する手段を有するレンズ装置。
【請求項２】
前記ＭＦ操作手段は位置指令出力手段であることを特徴とする請求項１に記載のレンズ装置。
【請求項３】
前記ＭＦ操作手段は速度指令出力手段であることを特徴とする請求項１に記載のレンズ装置。
【請求項４】
前記ＭＦ操作手段は少なくとも２つあり、第１のＭＦ操作手段は位置指令出力手段であり、第２のＭＦ操作手段は速度指令出力手段であることを特徴とする請求項１に記載のレンズ装置。
【請求項５】
前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記フォーカス位置変更指令による該フォーカスレンズ群の移動方向の指示に従い前記フォーカスレンズ群をＡＦ評価値のピーク位置まで移動させるモードであることを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項６】
前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記フォーカス位置変更指令による該フォーカスレンズ群の移動方向の指示に従い前記フォーカスレンズ群をＡＦ評価値のピーク位置まで移動させるモードであることを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項７】
前記フォローフォーカスモードは、前記ＭＦ操作手段から前記フォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうち最後のピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項８】
前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうち最後のピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項９】
前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうちＡＦ評価値が最大となったピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項１０】
前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうちＡＦ評価値が最大となったピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置。
【請求項１１】
前記フォーカス位置変更指令の停止を判別する時間は１００ｍｓｅｃ以上であることを特徴とする請求項１乃至１０のいずれか一項に記載のレンズ装置。
【請求項１２】
前記位置指令出力手段の操作部は両端を有し、該操作部の一端を検出した状態における該操作部の他端方向への操作は該フォーカスレンズ群を移動しないことを特徴とする請求項２、４乃至１０に記載のいずれか一項レンズ装置。
【請求項１３】
前記フォーカスレンズ群が光学端の一端に到達した場合、該光学系の一端とは逆方向の光学端の他端に向い該フォーカスレンズ群を移動させることを特徴とする請求項１乃至１２のいずれか１項に記載のレンズ装置。
【請求項１４】
前記位置指令出力手段からのフォーカス位置変更指令と前記速度指令出力手段からのフォーカス位置変更指令が同時に出力された場合、前記位置指令出力手段からのフォーカス位置変更指令を優先することを特徴とする請求項４乃至１３のいずれか１項に記載のレンズ装置。
【請求項１５】
前記位置指令出力手段からのフォーカス位置変更指令と前記速度指令出力手段からのフォーカス位置変更指令が同時に出力された場合、前記速度指令出力手段からのフォーカス位置変更指令を優先することを特徴とする請求項４乃至１３のいずれか１項に記載のレンズ装置。
【請求項１６】
前記位置指令出力手段からのフォーカス位置変更指令を優先する位置指令優先モードまたは前記速度指令出力手段からのフォーカス位置変更指令を優先する速度指令優先モードを切り換えるＭＦ制御切替え手段を有することを特徴とする請求項４乃至１５のいずれか１項に記載のレンズ装置。
【請求項１７】
請求項１乃至１６のいずれか一項に記載のレンズ装置と、該レンズ装置に装着されるカメラ装置を備えた撮影装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オートフォーカスモード（ＡＦモード）を実行する手段とマニュアルフォーカスモード（ＭＦモード）を実行する手段とフォローフォーカスモードを実行する手段を有するレンズ装置及びレンズ装置を用いたテレビカメラ、ビデオカメラに使用される撮影装置に関する。
【背景技術】
【０００２】
従来、ＡＦレンズにおけるフォーカスレンズのマニュアル操作用部材は、エンドレスの回転リング（マニュアル操作リング、フォーカスリング、フォーカス電子リングなどと呼ぶことが多い）で構成されている。ＡＦモードではピントが合せにくい被写体の場合は、この回転リングを操作すると、ＡＦモードから瞬時にマニュアルフォーカスモードに切り換えて、撮影者の意図した被写体にピントを合せることができるようになっている（特許文献１参照）。またリアフォーカス式のレンズの場合、マニュアル操作リングからのフォーカスレンズ駆動信号は、速度指令で構成されている。
【０００３】
一方、放送用レンズにおいては、フォーカスレンズのマニュアル操作部材は、ＭＯＤ端とＩＮＦ端が存在し、操作部材を回転させると位置制御によってフォーカスレンズを駆動するような構成となっている。
【特許文献１】特開平５−１４７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら従来例では、操作端が存在するフォーカスリングや外部操作部材からの指令が位置制御指令の場合、ＡＦモード中にフォーカスのマニュアル操作を行うと、指令位置にフォーカスレンズが移動してしまい、ＡＦモード中のフォーカスレンズ位置とはまったく別の非合焦位置に移動してしまう場合があった。
【０００５】
またＡＦモードにおいて３次元被写体などで意図した被写体に合焦していない場合、フォーカスリングを操作して強制的に別な被写体の合焦近傍にフォーカスレンズを移動させる必要がある。このとき現在の合焦位置から別な被写体までの移動量が大きい場合は、フォーカスリングの操作量を多くしなければならないという問題点があった。
【課題を解決するための手段】
【０００６】
そこで、ＡＦモード実行中にＭＦ操作手段によるフォーカスのマニュアル操作があった場合には、フォーカスレンズを合焦位置までＡＦ評価値に基づいて自動的に移動させることによって撮影者の操作を補助する「フォローフォーカスモード」を実行可能なレンズ装置および撮影装置を提供する。
【０００７】
請求項１にかかる発明は、ＡＦ評価手段により算出されるＡＦ評価値に基づいてフォーカスレンズ群を光軸方向に駆動するＡＦモードを実行する手段と、
ＭＦ操作手段からのフォーカス位置変更指令に基づいて前記フォーカスレンズ群を光軸方向に駆動するＭＦモードを実行する手段と、を有するレンズ装置において、
該ＡＦモード実行中における該ＭＦ操作手段からの該フォーカスレンズ群の移動方向を指示するフォーカス位置変更指令に基づいて該フォーカスレンズ群を移動させ、該ＡＦ評価値のピーク位置で該フォーカスレンズ群を停止させるフォローフォーカスモードを実行する手段を有するレンズ装置に関する。請求項１の発明は、特に図１１、図３１、図４６、図３９、図３４及び実施例６、実施例７により示される。
【０００８】
請求項２にかかる発明は、前記ＭＦ操作手段は位置指令出力手段であることを特徴とする請求項１に記載のレンズ装置に関する。
【０００９】
請求項３にかかる発明は、前記ＭＦ操作手段は速度指令出力手段であることを特徴とする請求項１に記載のレンズ装置に関する。
【００１０】
請求項４にかかる発明は、前記ＭＦ操作手段は少なくとも２つあり、第１のＭＦ操作手段は位置指令出力手段であり、第２のＭＦ操作手段は速度指令出力手段であることを特徴とする請求項１に記載のレンズ装置に関する。
【００１１】
請求項５にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記フォーカス位置変更指令による該フォーカスレンズ群の移動方向の指示に従い前記フォーカスレンズ群をＡＦ評価値のピーク位置まで移動させるモードであることを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項５の発明は、特に図５４、図５５、図５６により示される。
【００１２】
請求項６にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記フォーカス位置変更指令による該フォーカスレンズ群の移動方向の指示に従い前記フォーカスレンズ群をＡＦ評価値のピーク位置まで移動させるモードであることを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項６の発明は、特に図５４、図５５、図５６、及び実施例６に示される。
【００１３】
請求項７にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段から前記フォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうち最後のピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項７の発明は、特に図５７、図５８、図５９により示される。
【００１４】
請求項８にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうち最後のピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項８の発明は、特に図５７、図５８、図５９、及び実施例６により示される。
【００１５】
請求項９にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間は、該フォーカス位置変更指令に従い前記フォーカスレンズ群を移動させ、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうちＡＦ評価値が最大となったピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項９の発明は、図３６の詳細な説明に記載する。
【００１６】
請求項１０にかかる発明は、前記フォローフォーカスモードは、前記ＭＦ操作手段からフォーカス位置変更指令が出力されている間もＡＦモードを継続し、該フォーカス位置変更指令が停止した後は、前記ＡＦ評価値のピーク位置のうちＡＦ評価値が最大となったピーク位置まで前記フォーカスレンズ群を戻すことを特徴とする請求項１乃至４のいずれか１項に記載のレンズ装置に関する。請求項１０の発明は、図３６の詳細な説明および実施例６に記載する。
【００１７】
請求項１１にかかる発明は、前記フォーカス位置変更指令の停止を判別する時間は１００ｍｓｅｃ以上であることを特徴とする請求項１乃至１０のいずれか一項に記載のレンズ装置に関する。請求項１１の発明は、特に図５３により示される。
【００１８】
請求項１２にかかる発明は、前記位置指令出力手段の操作部は両端を有し、該操作部の一端を検出した状態における該操作部の他端方向への操作は該フォーカスレンズ群を移動しないことを特徴とする請求項２、４乃至１０に記載のいずれか一項レンズ装置に関する。請求項１２の発明は特に図４６、図４９、図５０、図５１、図５２、図３１により示される。
【００１９】
請求項１３にかかる発明は、前記フォーカスレンズ群が光学端の一端に到達した場合、該光学系の一端とは逆方向の光学端の他端に向い該フォーカスレンズ群を移動させることを特徴とする請求項１乃至１２のいずれか１項に記載のレンズ装置に関する。請求項１３にかかる発明は、特に図４２により示される。
【００２０】
請求項１４にかかる発明は、前記位置指令出力手段からのフォーカス位置変更指令と前記速度指令出力手段からのフォーカス位置変更指令が同時に出力された場合、前記位置指令出力手段からのフォーカス位置変更指令を優先することを特徴とする請求項４乃至１３のいずれか１項に記載のレンズ装置に関する。請求項１４にかかる発明は、特に図２５により示される。
【００２１】
請求項１５にかかる発明は、前記位置指令出力手段からのフォーカス位置変更指令と前記速度指令出力手段からのフォーカス位置変更指令が同時に出力された場合、前記速度指令出力手段からのフォーカス位置変更指令を優先することを特徴とする請求項４乃至１３のいずれか１項に記載のレンズ装置に関する。請求項１５にかかる発明は、特に図６１により示される。
【００２２】
請求項１６にかかる発明は、前記位置指令出力手段からのフォーカス位置変更指令を優先する位置指令優先モードまたは前記速度指令出力手段からのフォーカス位置変更指令を優先する速度指令優先モードを切り換えるＭＦ制御切替え手段を有することを特徴とする請求項４乃至１５のいずれか１項に記載のレンズ装置に関する。請求項１６に係る発明は、特に図１、図１８、図６４により示される。
【００２３】
請求項１７にかかる発明は、請求項１乃至１６のいずれか一項に記載のレンズ装置と、該レンズ装置に装着されるカメラ装置を備えた撮影装置に関する。
【発明の効果】
【００２４】
本発明によれば、ＡＦ評価手段により算出されるＡＦ評価値に基づいてフォーカスレンズ群を光軸方向に駆動するＡＦモードを実行する手段と、ＭＦ操作手段からのフォーカス位置変更指令に基づいて前記フォーカスレンズ群を光軸方向に駆動するＭＦモードを実行する手段と、を有するレンズ装置において、該ＡＦモード実行中に、該ＭＦ操作手段からの該フォーカスレンズ群の移動方向を指示するフォーカス位置変更指令に従い該フォーカスレンズ群を移動させ、該ＡＦ評価値のピーク位置で該フォーカスレンズ群を停止させるフォローフォーカスモードを実行する手段を有するレンズ装置を用いることにより、簡単な操作で撮影者の意図した被写体にピントを合せることができるようになる。
【発明を実施するための最良の形態】
【００２５】
本発明の詳細について図面に示す実施形態を参照して詳細に説明する。
【００２６】
（作用）
上記目的を達成するために、ＡＦモード中に位置指令が発生した場合、現在位置を基準とし、位置指令値を現在位置からの相対位置指令として制御することを特徴とする。
【００２７】
また位置指令値が端位置指令となった場合は、位置指令値が検出された端指令値とは逆の端方向に連続変化している場合は、位置指令値を無視するようにすることで、先に検出された端と同じ方向の相対位置制御が可能となる。
【００２８】
さらに逆の端方向の位置指令が連続変化しなくなってから、ある一定時間経過後の位置指令値から有効な位置指令位置として、フォーカスレンズ駆動することで、検出された端とは逆方向の位置指令でのフォーカスレンズ駆動も可能となる。
【００２９】
ＡＦモード中に速度指令と位置指令が同時に存在した場合、速度指令もしくは位置指令を優先することで指令操作部材の切り換えＳＷが必要でなくなる。またフォーカスマニュアルモードにおけるフォーカス制御モード切り換えＳＷをＡＦモード時にも使用し、位置制御モードと速度制御モードそれぞれに対応させた位置指令もしくは速度指令を使用することでも操作部材切り換えＳＷが必要でなくなる。
【００３０】
本発明によれば、３次元被写体などで、ＡＦにより撮影者の意図しない被写体にピントが合ってしまった場合でも、フォーカス電子リングからの速度指令やフォーカスデマンドのような位置指令の変化でＡＦ評価値のピーク位置を探すフォローフォーカスモードを新たに設けることにより、簡単な操作で撮影者の意図した被写体にピントを合せることができるようになる。
【実施例１】
【００３１】
図１は、本発明のリアフォーカス式ズームレンズの実施形態を示しているレンズ装置である。図１において、レンズ装置の光学系は、固定前玉群１０１、ズームレンズ群１０２、ＩＲＩＳ１０３、リアフォーカスレンズ群１０４、エクステンダ１０５から成り立っている。レンズ装置にはカメラ装置が取り付けられるようになっており、レンズ装置の光学系を通してカメラ装置のＣＣＤ１０６の受光面に被写体からの光が結像されるようになっている。ズームレンズ群１０２には、ズームリング１０７が取り付けられており、手動操作によるズーミング操作が可能になっている。またＩＲＩＳ１０３には、ＩＲＩＳリング１０８が取り付けられていて、手動操作による絞り設定が可能となっている。レンズ装置にはＣＰＵ１２０が内蔵されており、レンズ装置の制御やデータ処理を行っている。ＣＰＵ１２０はズームレンズ群１０２を制御するために、ズーム制御部１１０を介して、ズーミング機構（可動部）の制御を行っている。またＣＰＵ１２０はＩＲＩＳ１０３の制御をするために、ＩＲＩＳ制御部１１１を介して、ＩＲＩＳ機構（可動部）の制御を行っている。さらにＣＰＵ１２０はリアフォーカスレンズ群１０４の制御を行うために、フォーカス制御部１１２を介してリアフォーカスレンズ機構（可動部）の制御を行っている。同様にＣＰＵ１２０はエクステンダ１０５の制御を行うために、エクステンダ制御部１１３を介して、エクステンダ機構（可動部）の制御を行っている。これらの機構を制御するためにＣＰＵ１２０には、タイマ１２１やメモリ１２２が接続されていて、制御のための時間管理やデータなどの参照が可能となっている。またメモリ１２２にはズームレンズ群１０２とリアフォーカスレンズ群１０４との位置関係を表すトラッキングカーブ特性テーブルが記憶されており、ズームレンズ群１０２の位置の移動に対するリアフォーカスレンズ群１０４の位置補正などに使用される。例えばトラッキングカーブ特性は、リアフォーカスレンズ群１０４のパルス位置すなわち物体距離に対するズームレンズ群１０２の位置との関係で表されている。ＣＰＵ１２０はＡＦ制御のために、ＣＣＤ１０６の映像信号をＡＦ評価値部１１４を介して、ＡＦ評価値を入力することができる。ＣＰＵ１２０は、フォーカスモードＳＷ部１２３からの信号を入力することにより、フォーカスのマニュアルモード・ＡＦモードの選択が可能となっている。またＣＰＵ１２０は、ズームレンズ群１０２の制御を行うための指令値をズームシーソーＳＷ部１２４から入力することができるようになっている。またＣＰＵ１２０は、ＩＲＩＳ１０３を制御するための指令信号をＩＲＩＳ指令部１２５から入力することができる。さらにＣＰＵ１２０はフォーカスのマニュアルモード時にリアフォーカスレンズ群１０４を制御するための指令信号をフォーカス電子リング部１２６から入力するように構成されている。またＣＰＵ１２０はアクセサリインターフェース部１２７を持っており、外部からのレンズ装置の制御を行ったり、外部装置へレンズ装置の情報を伝達したりできるように構成されている。またＣＰＵ１２０はフォーカス制御切替ＳＷ部１２８を持っており、マニュアルフォーカス時におけるフォーカスレンズの制御方法（位置制御・速度制御）を切り換えることが可能となっている。
【００３２】
図２を用いて、ズーム制御部１１０の説明を行う。ＣＰＵ１２０はＤ／Ａ変換器ａ２０５を介してモータドライバａ２０４に制御信号を送る。モータドライバａ２０４はモータａ２０３を駆動し、その出力はクラッチａ２０２を介して、ズームレンズ群１０２を駆動する。クラッチａ２０２にはレバーａ２０１が接続されているため、レバーａ２０１を操作することで、クラッチａ２０２がオン／オフする。クラッチａ２０２がオンしているときは、モータａ２０３の出力がズームレンズ群１０２に伝達されるが、クラッチａ２０２がオフしているときは、モータａ２０３の出力がズームレンズ群１０２に伝達されないように構成されている。またクラッチａ２０２のオン／オフ状態は、ＣＰＵ１２０が読み込むことができるようになっているため、ズームレンズ群１０２がサーボ可能かどうかを判断することが可能である。すなわち、クラッチａ２０２がオン状態の場合は、ズームレンズ群１０２がサーボモード、オフ状態の場合は、マニュアルモードとなる。さらにズームレンズ群１０２の位置情報としてポテンショメータａ２０６が接続されている。ポテンショメータａ２０６の出力は、Ａ／Ｄ変換器ａ２０７を介してＣＰＵ１２０に入力されているため、ズームレンズ群１０２の位置が判断可能となる。ここでＤ／Ａ変換器ａ２０５は１６ビットとし、Ｄ／Ａ変換器ａ２０５に与えるデータは、０でズームレンズ群１０２は停止、＞０でテレ方向、＜０でワイド方向に駆動されるように構成されている。また、データの絶対値が大きくなればなるほどズームレンズ群１０２の速度は早くなるものとする。Ａ／Ｄ変換器ａ２０７は１６ビットとし、データが０の時にワイド端、６５５３５の時にテレ端にズームレンズ群１０２が位置するものとする。
【００３３】
図３を用いて、ＩＲＩＳ制御部１１１の説明を行う。ＣＰＵ１２０はＩＲＩＳ１０３の位置指令をＤ／Ａ変換器ｂ３０５を介して作動増幅器ｂ３０８の＋側に制御信号を送る。作動増幅器ｂ３０８の出力はモータドライバｂ３０４に接続されている。モータドライバｂ３０４はモータｂ３０３を駆動し、その出力はクラッチｂ３０２を介して、ＩＲＩＳ１０３を駆動する。クラッチｂ３０２にはレバーｂ３０１が接続されているため、レバーｂ３０１を操作することで、クラッチｂ３０２がオン／オフする。クラッチｂ３０２がオンしているときは、モータｂ３０３の出力がＩＲＩＳ１０３に伝達されるが、クラッチｂ３０２がオフしているときは、モータｂ３０３の出力がＩＲＩＳ１０３に伝達されないように構成されている。またクラッチｂ３０２のオン／オフ状態は、ＣＰＵ１２０が読み込むことができるようになっているため、ＩＲＩＳ１０３がサーボ可能かどうかを判断することが可能である。すなわち、クラッチｂ３０２がオン状態の場合は、ＩＲＩＳ１０３がサーボモード、オフ状態の場合は、マニュアルモードとなる。さらにＩＲＩＳ１０３の位置情報としてポテンショメータｂ３０６が接続されている。ポテンショメータ３０６の出力は、作動増幅器ｂ３０８の−端子に接続することにより、ＩＲＩＳ１０３の位置フィードバックを構成している。またポテンショメータｂ３０６の出力は、Ａ／Ｄ変換器ｂ３０７を介してＣＰＵ１２０に入力されているため、ＩＲＩＳ１０３の位置が判断可能となる。ここでＤ／Ａ変換器ｂ３０５は１６ビットとし、Ｄ／Ａ変換器ｂ３０５に与えるデータは０でＩＲＩＳがクローズし、６５５３５で開放になるように構成されている。Ａ／Ｄ変換器ｂは１６ビットとし、ＩＲＩＳの位置がクローズの時にデータが０、開放のときにデータが６５５３５になるように構成されているものとする。
【００３４】
図４を用いて、フォーカス制御部１１２の説明を行う。ＣＰＵ１２０は、コントローラｃ４０３を介してドライバｃ４０２に制御信号を送り、ドライバｃ４０２の出力はパルスモータ４０１を制御するようになっている。パルスモータ４０１の出力はリアフォーカスレンズ群１０４を駆動する。パルスモータ４０１による駆動方法は相対位置の制御方法になる。そこでリアフォーカスレンズ群１０４に接続されている原点センサ４０４の出力をＣＰＵ１２０に入力されているため、この原点センサ４０４の出力を使用して初期化を行うことで、その後のリアフォーカスレンズ群１０４の絶対値制御が可能となる。ここでコントローラｃ４０３は、周波数とパルス位置を設定すると、指定周波数で現在位置から指定位置までパルスモータ４０１を駆動する。また周波数を０に設定するとパルスモータ４０１は周波数０を設定した位置で停止するものとする。さらに任意のタイミングで現在位置を読み出せるものとする。
【００３５】
図５を用いて、エクステンダ制御部１１３の説明を行う。ここではエクステンダ１０５は手動操作のみで作動するように構成されている。またエクステンダ１０５は、倍率として１倍と２倍が存在するものとする。ＣＰＵ１２０はエクステンダ１０５の倍率を入力できるように構成されており、レバーｄ５０１を使用して倍率を変えられるようになっている。
【００３６】
図６を用いて、フォーカスモードＳＷ部１２３の説明を行う。ＣＰＵ１２０にはフォーカスモードＳＷ６０１が接続されている。フォーカスモードＳＷ６０１の両端はそれぞれプルアップ抵抗Ｒａ６０２とＧＮＤとに接続されているため、オン／オフ状態をＣＰＵ１２０が入力可能となっている。フォーカスモードＳＷ６０１がオンしているときは、オートフォーカスモード、オフしているときはマニュアルフォーカスモードとする。
【００３７】
図７を用いて、ズームシーソーＳＷ部１２４の説明を行う。ＣＰＵ１２０はＡ／Ｄ変換器ｅ７０１の出力を入力することで、ポテンショメータＲｂ７０２の電圧を入力することができるようになっている。Ａ／Ｄ変換器ｅ７０１の出力データについては後述する。
【００３８】
図８を用いて、ＩＲＩＳ指令部１２５の説明を行う。ＣＰＵ１２０はＡ／Ｄ変換器ｆ８０１の出力を入力することで、ポテンショメータＲｃ８０２の電圧を入力することができるようになっている。ここでＡ／Ｄ変換器ｆ８０１は１６ビットとし、データが０の場合は、クローズ指令、６５５３５のときに開放指令となるように構成されているものとする。
【００３９】
図９を用いて、フォーカス電子リング部１２６の説明を行う。ＣＰＵ１２０は２相パルス発生器９０２からの出力を、カウンタｇ９０１を介してカウンタ値として入力することができる。２相パルス発生器９０２は、図示していない操作部材により２相パルスが発生するように構成されている。
【００４０】
図１０を用いて、２パルス発生器９０２の出力形式を説明する。図１０の（ａ）に示されるようにＡ相がＢ相より９０度進んだ状態の出力を発生する場合、カウンタｇ９０１はカウントアップをする。また、図１０の（ｂ）に示されるようにＡ相がＢ相より９０度遅れた出力を発生する場合、カウンタｇ９０１はカウントダウンするものとする。
【００４１】
図４７を用いて、アクセサリインターフェース部１２７の説明を行う。ＣＰＵ１２０はＡ／Ｄ変換器ｈ４７０１の出力を入力することで、アクセサリ接続部４７０２に接続される外部コントローラであるフォーカスデマンド４７０３の電圧を入力することができるようになっている。ここでフォーカスデマンド４７０３はフォーカスの無限位置から至近位置までの位置制御指令を出力し、無限位置指令が出力される位置と至近位置指令が出力される位置でメカニカルな端を構成している。またここでＡ／Ｄ変換器ｈ４７０１は１６ビットとし、０の時は無限端位置指令、６５５３５の時はは至近端位置指令とする。
【００４２】
図４８を用いて、フォーカス制御切替ＳＷ部１２８の説明を行う。ＣＰＵ１２０にはマニュアルフォーカス制御モードＳＷ４８０１が接続されている。このＳＷはマニュアルフォーカス時におけるフォーカスの制御モードを設定するＳＷである。またマニュアルフォーカス制御モードＳＷ４８０１の両端はそれぞれプルアップ抵抗Ｒｄ４８０２とＧＮＤとに接続されているため、オン／オフ状態をＣＰＵ１２０が入力可能となっている。マニュアルフォーカス制御モードＳＷ４８０１がオンしているときは、位置指令モード、オフしているときは速度指令入力モードとする。
【００４３】
図１１を用いて、メイン処理用ルーチンであるＭａｉｎを説明する。ステップＳ１１０１では、システムの初期化をするために、サブルーチンＩｎｉｔＳｙｓｔｅｍを呼び出す。そしてステップＳ１１０２へ行く。ステップＳ１１０２では、ズームレンズ群１０２の制御を行うためのサブルーチンＺｏｏｍＳｐｅｅｄＣｏｎｔｒｏｌを呼び出す。そしてステップＳ１１０３へ行く。ステップＳ１１０３では、リアフォーカスレンズ群１０４の制御を行うためのサブルーチンＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そしてステップＳ１１０４へ行く。ステップＳ１１０４では、ＩＲＩＳ１０３の制御をするためのサブルーチンＩｒｉｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを呼び出す。そしてステップＳ１１０２へ戻る。このとき、ステップＳ１１０２からステップＳ１１０４を繰り返し実行中にタイマ１２１から周期的にタイマ割り込みが入り、タイマ割り込み処理ルーチンであるＴｉｍｅｒＩｎｔｅｒｒｕｐｕｔが実行されるものとする。このタイマ割り込みの周期が本システムのサンプリング周期となる。
【００４４】
図１２を用いて、初期化処理であるＩｎｉｔＳｙｓｔｅｍの説明をする。ステップＳ１２０１では各レンズのモードやエクステンダの倍率情報の初期化を行う。
【００４５】
ＦｏｃｕｓＭｏｄｅ＝ＭａｎｕａｌＦｏｃｕｓ・・・・・マニュアルフォーカスモード
ＺｏｏｍＭｏｄｅ＝ＭａｎｕａｌＺｏｏｍ・・・・・ズームマニュアルモード
ＩｒｉｓＭｏｄｅ＝ＭａｎｕａｌＩｒｉｓ・・・・・ＩＲＩＳマニュアルモード
ＥｘｔｅｎｄｅｒＭａｇ＝１・・・・・エクステンダ１倍
そして、ステップＳ１２０２へ行く。ステップＳ１２０２では、各レンズの速度指令値の初期化を行う。 
ＰｒｅＦｏｃｕｓＣｏｕｎｔ＝０・・・・・フォーカス速度指令算出用データ
ＰｒｅＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝０・・・・・フォーカス速度指令演算用データ
ＰｒｅＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０・・・・・フォーカス速度指令値
ＺｏｏｍＳｐｅｅｄＣｏｍｍａｎｄ＝０・・・・・ズーム速度指令値
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０・・・・・フォーカス速度指令値
そして、ステップＳ１２０３へ行く。ステップＳ１２０３では、リアフォーカスレンズ群１０４の初期化を行う。パルスモータ４０１を駆動し、原点センサ４０４がオンする位置（原点位置）まで移動する。ここで原点位置は、ピント面が無限となる位置とする。そしてステップＳ１２０４へ行く。ステップ１２０４では現在のトラッキングカーブ番号の設定を行う。 
ＴｒａｃｋｉｎｇＣｕｒｖｅＮｏ＝１・・・・・カーブ番号１
そしてステップＳ１２０５へ行く。ステップＳ１２０５では、レンズ情報の初期化を行うために、サブルーチンＩｎｉｔＬｅｎｓＩｎｆｏｒｍａｔｉｏｎを呼び出す。そして、ステップＳ１２０６へ行く。ステップＳ１２０６では、強制マニュアルフォーカスモードの解除のために
ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅ
とする。そしてステップＳ１２０７へ行く。ステップＳ１２０７では、時間処理用データの初期化を行う。 
ＴｉｍｅｒＩｎｔｅｒｒｕｐｔＰｅｒｉｏｄＴｉｍｅ＝５ｍｓｅｃ・・・タイマ割り込み周期時間
ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＳｔｄＴｉｍｅ＝１００ｍｓｅｃ・・・フォーカスデマンド操作なし基準時間
とする。そしてステップＳ１２０８へ行く。ステップＳ１２０８では、レンズ制御情報の初期化を行うために、サブルーチンＩｎｉｔＬｅｎｓＣｏｎｔＩｎｆｏｒｍａｔｉｏｎを呼び出す。そしてステップＳ１２０９へ行く。ステップＳ１２０９では、タイマ割り込み周期時間ＴｉｍｅｒＩｎｔｅｒｒｕｐｔＰｅｒｉｏｄＴｉｍｅを用いて、タイマ割り込み用タイマのスタートを行う。
【００４６】
そして本サブルーチンＩｎｉｔＳｙｓｔｅｍを終了する。
【００４７】
図１３を用いて、レンズ情報の初期化処理用サブルーチンＩｎｉｔＬｅｎｓＩｎｆｏｒｍａｔｉｏｎを説明する。ステップＳ１３０１では、ズーム位置検出およびズーム速度算出用サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを呼び出す。そしてステップＳ１３０２へ行く。ステップＳ１３０２では、現在のズームレンズ群１０２の速度データの初期化を行う。 
ＣｕｒＺｏｏｍＳｐｅｅｄ＝０・・・      現在の符号付ズーム速度
ＡｂｓＣｕｒＺｏｏｍＳｐｅｅｄ＝０・・・現在の絶対値ズーム速度
そしてステップＳ１３０３へ行く。ステップＳ１３０３では、ＩＲＩＳ位置検出およびＩＲＩＳ速度算出用サブルーチンＤｅｔｅｃｔＩｒｉｓＰｏｓｉｔｉｏｎを呼び出す。そしてステップＳ１３０４へ行く。ステップＳ１３０４では、現在のＩＲＩＳ１０３の速度データの初期化を行う。
【００４８】
ＣｕｒＩｒｉｓＳｐｅｅｄ＝０・・・    現在の符号付ＩＲＩＳ速度
そしてステップＳ１３０５へ行く。ステップＳ１３０５では、エクステンダ倍率検出用サブルーチンＤｅｔｅｃｔＥｘｔｅｎｄｅｒＭａｇを呼び出す。そしてステップＳ１３０６へ行く。ステップＳ１３０６では、エクステンダ倍率変化量の初期化を行う。 
ＤｉｆｆＥｘｔｅｎｄｅｒＭａｇ＝０
そして本サブルーチンＩｎｉｔＬｅｎｓＩｎｆｏｒｍａｔｉｏｎを終了する。
【００４９】
図１４を用いて、タイマ割り込み処理用割り込みルーチンを説明する。ステップＳ１４０１では、レンズモード入力用サブルーチンであるＩｎｐｕｔＬｅｎｓＭｏｄｅを呼び出す。そしてステップＳ１４０２へ行く。ステップＳ１４０２では、レンズ位置入力用サブルーチンであるＩｎｐｕｔＬｅｎｓＰｏｓｉｔｉｏｎを呼び出す。そしてステップＳ１４０３へ行く。ステップＳ１４０３では、レンズ指令入力用サブルーチンであるＩｎｐｕｔＬｅｎｓＣｏｍｍａｎｄを呼び出す。そして本割り込みルーチンを終了する。
【００５０】
図１５を用いて、レンズモード入力処理用サブルーチンであるＩｎｐｕｔＬｅｎｓＭｏｄｅを説明する。ステップＳ１５０１では、フォーカスモード入力ルーチンであるＩｎｐｕｔＦｏｃｕｓＭｏｄｅを呼び出す。そしてステップＳ１５０２へ行く。ステップＳ１５０２では、ズームモード入力ルーチンであるＩｎｐｕｔＺｏｏｍＭｏｄｅを呼び出す。そしてステップＳ１５０３へ行く。ステップＳ１５０３では、ＩＲＩＳモード入力ルーチンであるＩｎｐｕｔＩｒｉｓＭｏｄｅを呼び出す。そして本サブルーチンＩｎｐｕｔＬｅｎｓＭｏｄｅを終了する。
【００５１】
図１６を用いて、レンズ位置入力用サブルーチンであるＩｎｐｕｔＬｅｎｓＰｏｓｉｔｉｏｎを説明する。ステップＳ１６０１では、ズーム位置検出および速度の算出用サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを呼び出す。そしてステップＳ１６０２へ行く。ステップＳ１６０２では、ＩＲＩＳ位置検出および速度算出用サブルーチンＤｅｔｅｃｔＩｒｉｓＰｏｓｉｔｉｏｎを呼び出す。そしてステップＳ１６０３へ行く。ステップＳ１６０３では、エクステンダ倍率検出および倍率変化算出用サブルーチンＤｅｔｅｃｔＥｘｔｅｎｄｅｒＭａｇを呼び出す。そしてステップＳ１６０４へ行く。ステップＳ１６０４では、リアフォーカスレンズ群１０４の現在位置をコントローラｃ４０３より読み出し、ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎに設定する。そして本サブルーチンＩｎｐｕｔＬｅｎｓＰｏｓｉｔｉｏｎを終了する。
【００５２】
図１７を用いてレンズ指令入力用サブルーチンＩｎｐｕｔＬｅｎｓＣｏｍｍａｎｄを説明する。ステップＳ１７０１では、ズーム指令入力用サブルーチンＩｎｐｕｔＺｏｏｍＣｏｍｍａｎｄを呼び出す。そしてステップＳ１７０２へ行く。ステップＳ１７０２では、フォーカス指令入力用サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄを呼び出す。そしてステップＳ１７０３へ行く。ステップＳ１７０３では、ＩＲＩＳ指令入力用サブルーチンであるＩｎｐｕｔＩｒｉｓＣｏｍｍａｎｄを呼び出す。そして本サブルーチンＩｎｐｕｔＬｅｎｓＣｏｍｍａｎｄを終了する。
【００５３】
図１８を用いて、フォーカスモード入力用サブルーチンＩｎｐｕｔＦｏｃｕｓＭｏｄｅを説明する。ステップＳ１８０１では、フォーカスモードＳＷ６０１を入力する。そしてステップＳ１８０２へ行く。ステップＳ１８０２では、フォーカスモードＳＷ６０１のオン・オフ状態をチェックする。オンしている場合は、ステップＳ１８０４へ行く。ステップＳ１８０４では、フォーカスモードをオートフォーカスモードに設定する。 
ＦｏｃｕｓＭｏｄｅ＝ＡｕｔｏＦｏｃｕｓ
そして、ステップＳ１８０５へ行く。またステップＳ１８０２で、フォーカスモードＳＷ６０１がオフであると判断された場合は、ステップＳ１８０３へ行く。ステップＳ１８０３では、フォーカスモードをマニュアルフォーカスモードに設定する。 
ＦｏｃｕｓＭｏｄｅ＝ＭａｎｕａｌＦｏｃｕｓ
そして、ステップＳ１８０５へ行く。ステップＳ１８０５では、フォーカス制御モードＳＷ４８０１の状態を入力する。そしてステップＳ１８０６へ行く。ステップＳ１８０６では、フォーカス制御モードＳＷのオン・オフ状態をチェックする。フォーカス制御モードＳＷ４８０１がオンしていた場合は、ステップＳ１８０８へ行く。ステップＳ１８０８ではマニュアルフォーカス制御モードを、フォーカス位置制御モードに設定する。 
ＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ＝ＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔＭｏｄｅ
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＭｏｄｅを終了する。またステップＳ１８０６でフォーカス制御モードＳＷ４８０１がオフしていた場合、ステップＳ１８０７へ行く。ステップＳ１８０７ではマニュアルフォーカス位置制御モードを、フォーカス速度制御モードに設定する。 
ＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ＝ＦｏｃｕｓＳｐｅｅｄＣｏｎｔＭｏｄｅ
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＭｏｄｅを終了する。
【００５４】
図１９を用いて、ズームモード入力用サブルーチンであるＩｎｐｕｔＺｏｏｍＭｏｄｅを説明する。ステップＳ１９０１では、ズームレンズ用クラッチａ２０２の状態ＺｏｏｍＣｌｕｔｃｈＳｔａｔｕｓを入力する。そしてステップＳ１９０２へ行く。ステップＳ１９０２では、ＺｏｏｍＣｌｕｔｃｈＳｔａｔｕｓをチェックする。オンしている場合は、ステップＳ１９０４へ行く。ステップＳ１９０４では、ズームモードをサーボズームモードに設定する。 
ＺｏｏｍＭｏｄｅ＝ＳｅｒｖｏＺｏｏｍ
そして、本サブルーチンＩｎｐｕｔＺｏｏｍＭｏｄｅを終了する。ステップＳ１９０２で、ＺｏｏｍＣｌｕｔｃｈＳｔａｔｕｓがオフであると判断された場合は、ステップＳ１９０３へ行く。ステップＳ１９０３では、ズームモードをマニュアルズームモードに設定する。 
ＺｏｏｍＭｏｄｅ＝ＭａｎｕａｌＺｏｏｍ
そして本サブルーチンＩｎｐｕｔＺｏｏｍＭｏｄｅを終了する。
【００５５】
図２０を用いて、ＩＲＩＳモード入力用サブルーチンＩｎｐｕｔＩｒｉｓＭｏｄｅを説明する。ステップＳ２００１では、ＩＲＩＳ用クラッチｂ３０２の状態ＩｒｉｓＣｌｕｔｃｈＳｔａｔｕｓを入力する。そしてステップＳ２００２へ行く。ステップＳ２００２では、ＩｒｉｓＣｌｕｔｃｈＳｔａｔｕｓをチェックする。オンしている場合は、ステップＳ２００４へ行く。ステップＳ２００４では、ＩＲＩＳモードをサーボＩＲＩＳモードに設定する。 
ＩｒｉｓＭｏｄｅ＝ＳｅｒｖｏＩｒｉｓ
そして、本サブルーチンＩｎｐｕｔＩｒｉｓＭｏｄｅを終了する。ステップＳ２００２で、ＩｒｉｓＣｌｕｔｃｈＳｔａｔｕｓがオフであると判断された場合は、ステップＳ２００３へ行く。ステップＳ２００３では、ＩＲＩＳモードをマニュアルＩＲＩＳモードに設定する。 
ＩｒｉｓＭｏｄｅ＝ＭａｎｕａｌＩｒｉｓ
そして本サブルーチンＩｎｐｕｔＩｒｉｓＭｏｄｅを終了する。
【００５６】
図２１を用いて、ズーム指令入力用サブルーチンであるＩｎｐｕｔＺｏｏｍＣｏｍｍａｎｄを説明する。ステップＳ２１０１では、Ａ／Ｄ変換器ｅ７０１から速度指令データであるＺｏｏｍＳｐｅｅｄＡｄを入力する。そしてステップＳ２１０２へ行く。ステップＳ２１０２では、ズーム指令値作成用サブルーチンであるＣａｌｃＺｏｏｍＣｏｍｍａｎｄを呼び出す。そしてステップＳ２１０３へ行く。ステップＳ２１０３では、式（１）にて、ズーム速度指令値ＺｏｏｍＳｐｅｅｄＣｏｍｍａｎｄを算出する。 
ＺｏｏｍＳｐｅｅｄＣｏｍｍａｎｄ＝Ｋｚｃ＊ＺｏｏｍＳｐｅｅｄＡｄ    ・・・（１）
ここで、ＫｚｃはＡ／Ｄ変換値をズーム速度指令値に変換するための係数とする。そして本サブルーチンＩｎｐｕｔＺｏｏｍＣｏｍｍａｎｄを終了する。
【００５７】
図２２を用いて、ズーム指令値作成用サブルーチンであるＣａｌｃＺｏｏｍＣｏｍｍａｎｄを説明する。ここでＡ／Ｄ変換器ｅ７０１を８ビットとして説明をする。ステップＳ２２０１では、式（２）を用いて速度指令のオフセット演算を行う。 
ＺｏｏｍＳｐｅｅｄＡｄ＝ＺｏｏｍＳｐｅｅｄＡｄ−１２７  ・・・（２）
【００５８】
そしてステップＳ２２０２へ行く。ステップＳ２２０２では、ＺｏｏｍＳｐｅｅｄＡｄの符号を調べる。ＺｏｏｍＳｐｅｅｄＡｄ＜０が成立する場合は、ステップＳ２２０６へ行く。ステップＳ２２０６では式（３）を用いて、不感帯領域の作成を行う。 
ＺｏｏｍＳｐｅｅｄＡｄ＝ＺｏｏｍＳｐｅｅｄＡｄ＋７  ・・・（３）
【００５９】
そしてステップＳ２２０７へ行く。ステップＳ２２０７では、式（３）の結果の符合を調べる。ＺｏｏｍＳｐｅｅｄＡｄ＞０が成立する場合は、ステップＳ２２０８へ行く。ステップＳ２２０８では、不感帯領域を決定するために、ＺｏｏｍＳｐｅｅｄＡｄ＝０とする。そして本サブルーチンＣａｌｃＺｏｏｍＣｏｍｍａｎｄを終了する。ステップＳ２２０７でＺｏｏｍＳｐｅｅｄＡｄ＞０が不成立の場合、本サブルーチンＣａｌｃＺｏｏｍＣｏｍｍａｎｄを終了する。ステップＳ２２０２でＺｏｏｍＳｐｅｅｄＡｄ＜０が不成立の場合は、ステップＳ２２０３へ行く。ステップＳ２２０３では、式（４）を用いて不感帯領域の作成を行う。 
ＺｏｏｍＳｐｅｅｄＡｄ＝ＺｏｏｍＳｐｅｅｄＡｄ−７  ・・・（４）
【００６０】
そしてステップＳ２２０４へ行く。ステップＳ２２０４では、式（４）の結果の符号を調べる。ＺｏｏｍＳｐｅｅｄＡｄ＜０が成立する場合は、ステップＳ２２０５へ行く。ステップＳ２２０５では、不感帯領域を決定するために、ＺｏｏｍＳｐｅｅｄＡｄ＝０とする。そして本サブルーチンＣａｌｃＺｏｏｍＣｏｍｍａｎｄを終了する。またステップＳ２２０４でＺｏｏｍＳｐｅｅｄＡｄ＜０が不成立の場合、本サブルーチンを終了する。本サブルーチンＣａｌｃＺｏｏｍＣｏｍｍａｎｄの演算結果を図２３に示す。Ａ／Ｄ変換値ＺｏｏｍＳｐｅｅｄＡｄが１２０から１３４の場合は、ＺｏｏｍＳｐｅｅｄＡｄを０として不感帯を作成することになる。
【００６１】
図２４を用いて、ＩＲＩＳ指令入力用サブルーチンＩｎｐｕｔＩｒｉｓＣｏｍｍａｎｄを説明する。ステップ２４０１では、Ａ／Ｄ変換器ｆ８０１からＩＲＩＳ位置指令値であるＩｒｉｓＰｏｓｉｔｉｏｎＡｄを入力する。そしてステップＳ２４０２へ行く。ステップＳ２４０２では、式（５）にて、ＩＲＩＳ位置指令値ＩｒｉｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄを算出する。 
ＩｒｉｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄ＝Ｋｉｃ＊ＩｒｉｓＰｏｓｉｔｉｏｎＡｄ  ・・・（５）
ここで、ＫｉｃはＡ／Ｄ変換値をＩＲＩＳ位置指令値に変換するための係数とする。そして本サブルーチンＩｎｐｕｔＩｒｉｓＣｏｍｍａｎｄを終了する。
【００６２】
図２５を用いて、フォーカス指令入力用サブルーチンであるＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄの説明をする。ステップＳ２５０１では、フォーカス電子リング部１２６からの速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを呼び出す。そしてステップＳ２５０２へ行く。ステップＳ２５０２では、アクセサリインターフェース部１２７からの位置指令値および速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄを呼び出す。そしてステップＳ２５０３へ行く。ステップＳ２５０３では、フォーカス制御指令値の優先を調べるために、ＦｏｃｕｓＤｉｆｆＰｏｓＡｄの値を調べる。ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＝０が成立した場合は、アクセサリインターフェース部１２７からの指令値であるフォーカスデマンド４７０３の操作が無かったとして、フォーカス電子リング部１２６の操作データを使用するために、ステップＳ２５０４へ行く。ステップＳ２５０４では、フォーカス電子リング部１２６の速度指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＩｎｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
【００６３】
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄを終了する。またステップＳ２５０３でＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＝０が成立しなかった場合は、アクセサリインターフェース部１２７からの指令値であるフォーカスデマンド４７０３の操作が検出されたとして、フォーカスデマンド４７０３の指令値を優先して使用するためにステップＳ２５０５へ行く。ステップＳ２５０５では、アクセサリインターフェース部１２７の指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＥｘｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
【００６４】
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄを終了する。ここでＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄは、タイマ割り込みによる周期的な処理となるため、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄは周期的なカウンタ値あるいはＡ／Ｄ変換値の差分データとなる。したがって単位は［ｐｕｌｓｅ／ｓｅｃ］となり、速度指令となる。
【００６５】
図６２を用いて、フォーカス電子リング部１２６からの速度指令値を入力するためのサブルーチンＩｎｐｕｔＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄの説明をする。
【００６６】
ステップＳ６２０１では、カウンタｇ９０１からカウンタ値ＣｕｒＦｏｃｕｓＣｏｕｎｔを入力する。そしてステップＳ６１０２へ行く。ステップＳ６２０２では、式（６）にて前回のカウンタ値ＰｒｅＦｏｃｕｓＣｏｕｎｔとの差分を算出する。 
ＦｏｃｕｓＤｉｆｆＣｏｕｎｔ＝ＣｕｒＦｏｃｕｓＣｏｕｎｔ−ＰｒｅＦｏｃｕｓＣｏｕｎｔ  ・・・（６）
そしてステップＳ６２０３へ行く。ステップＳ６２０３では、式（７）にてフォーカス速度指令値ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを算出する。 
ＩｎｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝Ｋｆｃ＊ＦｏｃｕｓＤｉｆｆＣｏｕｎｔ  ・・・（７）
ここで、Ｋｆｃはカウンタ差分値をフォーカス速度指令値に変換するための係数とする。そしてステップＳ６２０４へ行く。ステップＳ６２０４では、次回の演算処理のために、ＰｒｅＦｏｃｕｓＣｏｕｎｔ＝ＣｕｒＦｏｃｕｓＣｏｕｎｔとする。そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを終了する。
【００６７】
図６３を用いて、アクセサリインターフェース部１２７からの位置指令値および速度指令値を入力するためのサブルーチンＩｎｐｕｔＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄの説明を行う。ステップＳ６３０１では、Ａ／Ｄ変換器ｈ４７０１からＡ／Ｄ値を入力し、ＦｏｃｕｓＰｏｓＣｏｎｔＡｄにセットする。そしてステップＳ６３０２へ行く。ステップＳ６３０２ではＡ／Ｄ変換値の変化量ＦｏｃｕｓＤｉｆｆＰｏｓＡｄを今回のＡ／Ｄ値ＦｏｃｕｓＰｏｓＣｏｎｔＡｄと前回のＡ／Ｄ値ＰｒｅＦｏｃｕｓＰｓｏＣｏｎｔＡｄとから式（８）を用いて算出する。 
ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＝ＦｏｃｕｓＰｏｓＣｏｕｎｔＡｄ−ＰｒｅＦｏｃｕｓＰｏｓＣｏｎｔＡｄ  ・・・（８）
そしてステップＳ６３０３へ行く。ステップＳ６３０３では、式（９）にてフォーカス速度指令値ＥｘｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを算出し直す。 
ＥｘｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝Ｋｆａ＊ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ  ・・・（９）
ここで、ＫｆａはＡ／Ｄ変換差分値をフォーカス速度指令値に変換するための係数とする。そしてステップＳ６３０４へ行く。ステップＳ６３０４では、次回の演算処理のために、ＰｒｅＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝ＦｏｃｕｓＰｏｓＣｏｎｔＡｄとする。そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄを終了する。
【００６８】
図２６を用いて、ズーム位置検出用サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを説明する。ステップＳ２６０１では、Ａ／Ｄ変換器ａ２０７からズーム位置ＺｏｏｍＰｏｓｉｔｉｏｎＡｄを入力する。そしてステップＳ２６０２へ行く。ステップＳ２６０２では、式（１０）にてズームの現在位置ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎを算出する。 
ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎ＝Ｋｚｆ＊ＺｏｏｍＰｏｓｉｔｉｏｎＡｄ  ・・・（１０）
ここで、ＫｚｆはＡ／Ｄ変換値をズーム位置情報に変換するための係数とする。そしてステップＳ２６０３へ行く。ステップＳ２６０３では、式（１１）にて、ズームの現在速度情報を算出する。 
ＣｕｒＺｏｏｍＳｐｅｅｄ＝ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎ−ＰｒｅＺｏｏｍＰｏｓｉｔｉｏｎ  ・・・（１１）
ここで本サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎはタイマ割り込み処理による周期的な処理なため、ズーム位置情報の差分データは、速度相当となる。そしてステップＳ２６０４へ行く。ステップＳ２６０４では、ズームの現在速度情報ＣｕｒＺｏｏｍＳｐｅｅｄの絶対値を式（１２）にて算出する。 
ＡｂｓＣｕｒＺｏｏｍＳｐｅｅｄ＝ＡＢＳ（ＣｕｒＺｏｏｍＳｐｅｅｄ）  ・・・（１２）
ここでＡＢＳ（ｘ）は、ｘの値の絶対値を算出する処理とする。
【００６９】
そしてステップＳ２６０５へ行く。ステップＳ２６０５では、次回の演算のための準備として、ＰｒｅＺｏｏｍＰｏｓｉｔｉｏｎ＝ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎとする。そしてステップＳ２６０６へ行く。ステップＳ２６０６では、現在のズーム位置情報ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎを調べて、ワイド端にいる、テレ端にいる、どちらの端にもいないかどうかをチェックする。ステップＳ２６０６で、ワイド端にいると判断された場合は、ステップＳ２６０７へ行く。ステップＳ２６０６で、テレ端にいると判断された場合は、ステップＳ２６０９へ行く。ステップＳ２６０６で、どちらの端にもいないと判断された場合は、ステップＳ２６０８へ行く。ステップＳ２６０７では、ワイド端にいるとして
ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ・・・テレ端にいない
ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅ・・・ワイド端にいる
とする。そして本サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを終了する。ステップＳ２６０９では、テレ端にいるとして
ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅ・・・テレ端にいる
ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ・・・ワイド端にいない
とする。そして本サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを終了する。ステップＳ２６０８では、どちらの端にもいないとして
ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ・・・テレ端にいない
ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ・・・ワイド端にいない
とする。そして本サブルーチンＤｅｔｅｃｔＺｏｏｍＰｏｓｉｔｉｏｎを終了する。
【００７０】
図２７を用いて、ＩＲＩＳ位置検出用サブルーチンＤｅｔｅｃｔＩｒｉｓＰｏｓｉｔｉｏｎの説明を行う。ステップＳ２７０１では、Ａ／Ｄ変換器ｂ３０７からＩＲＩＳ位置ＩｒｉｓＰｏｓｉｔｉｏｎＡｄを入力する。そしてステップＳ２７０２へ行く。ステップＳ２７０２では、式（１３）にてＩＲＩＳの現在位置ＣｕｒＩｒｉｓＰｏｓｉｔｉｏｎを算出する。 
ＣｕｒＩｒｉｓＰｏｓｉｔｉｏｎ＝Ｋｉｆ＊ＩｒｉｓＰｏｓｉｔｉｏｎＡｄ・・・  （１３）
ここで、ＫｉｆはＡ／Ｄ変換値をＩＲＩＳ位置情報に変換するための係数とする。そしてステップＳ２７０３へ行く。ステップＳ２７０３では、式（１４）にて、ＩＲＩＳの現在速度情報を算出する。 
ＣｕｒＩｒｉｓＳｐｅｅｄ＝ＣｕｒＩｒｉｓＰｏｓｉｔｉｏｎ−ＰｒｅＩｒｉｓＰｏｓｉｔｉｏｎ  ・・・（１４）
ここで本サブルーチンＤｅｔｅｃｔＩｒｉｓＰｏｓｉｔｉｏｎはタイマ割り込み処理による周期的な処理なため、ＩＲＩＳ位置情報の差分データは、速度相当となる。そしてステップＳ２７０４へ行く。ステップＳ２７０４では、次回の演算のための準備として、ＰｒｅＩｒｉｓＰｏｓｉｔｉｏｎ＝ＣｕｒＩｒｉｓＰｏｓｉｔｉｏｎとする。そして本サブルーチンＤｅｔｅｃｔＩｒｉｓＰｏｓｉｔｉｏｎを終了する。
【００７１】
図２８を用いて、エクステンダ倍率検出用サブルーチンＤｅｔｅｃｔＥｘｔｅｎｄｅｒＭａｇの説明を行う。ステップＳ２８０１では、エクステンダ１０５より倍率ＣｕｒＥｘｔｅｎｄｅｒＭａｇを入力する。そしてステップＳ２８０２へ行く。ステップＳ２８０２では、エクステンダ１０５の倍率変化ＤｉｆｆＥｘｔｅｎｄｅｒＭａｇを式（１５）を用いて算出する。 
ＤｉｆｆＥｘｔｅｎｄｅｒＭａｇ＝ＣｕｒＥｘｔｅｎｄｅｒＭａｇ−ＰｒｅＥｘｔｅｎｄｅｒＭａｇ  ・・・（１５）
そしてステップＳ２８０３へ行く。ステップＳ２８０３では、次回の演算のための準備として、ＰｒｅＥｘｔｅｎｄｅｒＭａｇ＝ＣｕｒＥｘｔｅｎｄｅｒＭａｇとする。そして本サブルーチンＤｅｔｅｃｔＥｘｔｅｎｄｅｒＭａｇを終了する。
【００７２】
図２９を用いて、ＩＲＩＳ位置制御用サブルーチンＩｒｉｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを説明する。ステップＳ２９０１では、ＩＲＩＳモードをチェックする。ＩＲＩＳモードがマニュアルＩＲＩＳモードの場合（ＭａｎｕａｌＩｒｉｓ）、制御は行わないため、本サブルーチンＩｒｉｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを終了する。ステップＳ２９０１でＩＲＩＳモードがサーボＩＲＩＳモードの場合（ＳｅｒｖｏＩｒｉｓ）、ステップＳ２９０２へ行く。ステップＳ２９０２では、式（１６）を用いてＩＲＩＳ位置指令値をＤ／Ａ変換用データに変換する。 
ＩｒｉｓＰｏｓｉｔｉｏｎＤａ＝Ｋｉｄａ＊ＩｒｉｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄ  ・・・（１６）
ここで、ＫｉｄａはＩＲＩＳ位置指令値をＤ／Ａ変換器ｂ３０５用のデータに変換するための係数とする。そしてステップＳ２９０３へ行く。ステップＳ２７０３では、式（１６）にて算出したＩｒｉｓＰｏｓｉｔｉｏｎＤａをＤ／Ａ変換器ｂ３０５に設定する。そして本サブルーチンＩｒｉｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを終了する。
【００７３】
図３０を用いて、ズーム速度制御用サブルーチンＺｏｏｍＳｐｅｅｄＣｏｎｔｒｏｌを説明する。ステップＳ３００１では、ズームモードＺｏｏｍＭｏｄｅをチェックする。ズームモードＺｏｏｍＭｏｄｅがマニュアルズームモードの場合（ＭａｎｕａｌＺｏｏｍ）、ステップＳ３００２へ行く。ステップＳ３００２では、ズーム停止指令値に変更するために、ＺｏｏｍＳｐｅｅｄＣｏｍｍａｎｄ＝０とする。そしてステップＳ３００３へ行く。またステップＳ３００１でズームモードＺｏｏｍＭｏｄｅがサーボズームモード（ＳｅｒｖｏＺｏｏｍ）と判断された場合は、ステップＳ３００３へ行く。ステップＳ３００３では、式（１７）を用いてズーム速度指令値をＤ／Ａ変換用データに変換する。 
ＺｏｏｍＳｐｅｅｄＤａ＝Ｋｚｄａ＊ＺｏｏｍＳｐｅｅｄＣｏｍｍａｎｄ  ・・・（１７）
ここで、Ｋｚｄａはズーム速度指令値をＤ／Ａ変換器ａ２０５用のデータに変換するための係数とする。そしてステップＳ３００４へ行く。ステップＳ３００４では、Ｄ／Ａ変換器ａ２０５用データＺｏｏｍＳｐｅｅｄＤａの符号を調べる。ＺｏｏｍＳｐｅｅｄＤａ＞０の場合、テレ方向への駆動指令値として、ステップＳ３００５へ行く。ステップＳ３００５では、ズームレンズ群１０２のテレ端情報ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇを調べる。ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅの場合、テレ端にいるとして、ステップＳ３００６へ行く。ステップＳ３００６では、ズームレンズ群１０２がテレ端にいるのでズーム停止指令に変更するために、ＺｏｏｍＳｐｅｅｄＤａ＝０とする。そしてステップＳ３００９へ行く。ステップＳ３００９では、Ｄ／Ａ変換器用ズーム速度指令値ＺｏｏｍＳｐｅｅｄＤａをＤ／Ａ変換器ａ２０５にセットする。そして本サブルーチンＺｏｏｍＳｐｅｅｄＣｏｎｔｒｏｌを終了する。またステップＳ３００５で、ＺｏｏｍＴｅｌｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅの場合、テレ端にいないので、ステップＳ３００９へ行く。またステップＳ３００４でＺｏｏｍＳｐｅｅｄＤａ≦０と判断された場合、停止命令を含めてワイド方向への駆動指令値として、ステップＳ３００７へ行く。ステップＳ３００７では、ズームレンズ群１０２のワイド端情報ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇを調べる。ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅの場合、ワイド端にいるとして、ステップＳ３００８へ行く。ステップＳ３００８では、ズームレンズ群１０２がワイド端にいるのでズーム停止命令に変更するために、ＺｏｏｍＳｐｅｅｄＤａ＝０とする。そしてステップＳ３００９へ行く。またステップＳ３００７で、ＺｏｏｍＷｉｄｅＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅの場合、ワイド端にいないので、ステップＳ３００９へ行く。
【００７４】
図３１を用いて、フォーカス制御用サブルーチンＦｏｃｕｓＣｏｎｔｒｏｌの説明を行う。ステップＳ３１０１では、フォーカスモードＦｏｃｕｓＭｏｄｅをチェックする。フォーカスモードがマニュアルすなわちＦｏｃｕｓＭｏｄｅ＝ＭａｎｕａｌＦｏｃｕｓの場合、ステップＳ３１０６へ行く。ステップＳ３１０６では、フォーカスレンズのマニュアル駆動を行うために、サブルーチンＭａｎｕａｌＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＦｏｃｕｓＣｏｎｔｒｏｌを終了する。またステップＳ３１０１でフォーカスモードがオートフォーカスすなわちＦｏｃｕｓＭｏｄｅ＝ＡｕｔｏＦｏｃｕｓの場合、ステップＳ３１０２へ行く。ステップＳ３１０２では、強制マニュアルフォーカスモードかどうかをチェックする。すなわちＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅ＝Ｔｒｕｅの場合、マニュアルモード駆動を行うために、ステップＳ３１０６へ行く。またＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅ＝Ｆａｌｓｅの場合、強制マニュアルフォーカスモードでないため、ステップＳ３１０３へ行く。ステップＳ３１０３では、フォーカスデマンド４７０３がＭＯＤ端位置に存在した後に反対側のＩＮＦ端方向に操作しているかどうかを調べるために、ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇを調べる。ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｔｒｕｅの場合は、フォーカスデマンド４７０３がＭＯＤ端位置に存在した後に反対側のＩＮＦ端方向に操作していると判断されるため、本サブルーチンＦｏｃｕｓＣｏｎｔｒｏｌを終了する。またステップＳ３１０３でＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅの場合、ステップＳ３１０４へ行く。ステップＳ３１０４では、フォーカスデマンド４７０３がＩＮＦ端位置に存在した後に反対側のＭＯＤ端方向に操作しているかどうかを調べるために、ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇを調べる。ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｔｒｕｅの場合は、フォーカスデマンド４７０３がＩＮＦ端位置に存在した後に反対側のＭＯＤ端方向に操作していると判断されるため、本サブルーチンＦｏｃｕｓＣｏｎｔｒｏｌを終了する。またステップＳ３１０４でＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅの場合、ステップＳ３１０５へ行く。このようにＡＦモードにおいて、フォーカスデマンドが一方の端位置に存在した後に反対側の端方向に操作している場合は、フォーカスレンズの制御をしないようにすることで、メカニカルな端の存在する操作部材でレンズを制御しても、ＡＦの補助操作が可能となる。ステップＳ３１０５では、フォーカスのＡＦ制御などを行うためにサブルーチンＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＦｏｃｕｓＣｏｎｔｒｏｌを終了する。
【００７５】
図３２を用いて、ＡＦ制御用サブルーチンであるＡｕｔｏＦｏｃｕｓＣｏｎｔｒｏｌを説明する。ここではビデオＡＦにおけるウォブリングを基本にしたＡＦ制御をしているものとする。ステップＳ３２０１では、リアフォーカスレンズ群１０４のウォブリング開始位置を記憶するために、現在位置ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎをＷｏｂＳｔａｒｔＰｏｓにセットする。そしてステップＳ３２０２へ行く。ステップＳ３２０２では、現在位置におけるＡＦ評価値をＡＦ評価値部１１４から読み込み、ＣｕｒＡｆＶａｌｕｅにセットする。そしてステップＳ３２０３へ行く。ステップＳ３２０３では、無限側移動のＡＦ評価値をＡＦ評価値部１１４から読み込み、ＦａｒＡｆＶａｌｕｅにセットする。そしてステップＳ３２０４へ行く。ステップＳ３２０４では、至近側移動のＡＦ評価値をＡＦ評価値部１１４から読み込み、ＮｅａｒＡｆＶａｌｕｅにセットする。そしてステップＳ３２０５へ行く。ステップＳ３２０５では、ウォブリングを終了するために、リアフォーカスレンズ群１０４をウォブリング開始位置ＷｏｂＳｔａｒｔＰｏｓに戻す。そしてステップＳ３２０６へ行く。ステップＳ３２０６では、ウォブリングによって得られたそれぞれのＡＦ評価値を評価してよりコントラストの高い方へリアフォーカスレンズ群１０４を移動するために、サブルーチンＡｆＰｅａｋＤｉｒＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＡｕｔｏＦｏｃｕｓＣｏｎｔｒｏｌを終了する。
【００７６】
図３３を用いて、ＡＦ評価値処理用サブルーチンであるＡｆＰｅａｋＤｉｒＣｏｎｔｒｏｌを説明する。ステップＳ３３０１では、ウォブリング開始前のＡＦ評価値ＣｕｒＡｆＶａｌｕｅと無限側移動のＡＦ評価値ＦａｒＡｆＶａｌｕｅとの比較を行う。ＣｕｒＡｆＶａｌｕｅ＞ＦａｒＡｆＶａｌｕｅが成立しなかった場合、非合焦状態であると判断されるので、ステップＳ３３０３へ行く。ステップＳ３３０３では、至近側移動のＡＦ評価値ＮｅａｒＡｆＶａｌｕｅと無限側移動のＡＦ評価値ＦａｒＡｆＶａｌｕｅとの比較を行う。ＮｅａｒＡｆＶａｌｕｅ＞ＦａｒＡｆＶａｌｕｅが成立した場合、至近側にリアフォーカスレンズ群１０４を移動する。そしてステップＳ３３０６へ行く。ステップＳ３３０６では、現在のズームレンズ群１０２およびリアフォーカスレンズ群１０４の位置から決定されるトラッキングカーブ番号をＴｒａｃｋｉｎｇＣｕｒｖｅＮｏにセットする。そして本サブルーチンＡｆＰｅａｋＤｉｒＣｏｎｔｒｏｌを終了する。またステップＳ３３０３で、ＮｅａｒＡｆＶａｌｕｅ＞ＦａｒＡｆＶａｌｕｅが成立しなかった場合、ステップＳ３３０４へ行く。ステップＳ３３０４では、無限側にリアフォーカスレンズ群１０４を移動する。そしてステップＳ３３０６へ行く。またステップＳ３３０１でＣｕｒＡｆＶａｌｕｅ＞ＦａｒＡｆＶａｌｕｅが成立した場合は、ステップＳ３３０２へ行く。ステップＳ３３０２では、ウォブリング開始前のＡＦ評価値ＣｕｒＡｆＶａｌｕｅと至近側移動のＡＦ評価値ＮｅａｒＡｆＶａｌｕｅとの比較を行う。ＣｕｒＡｆＶａｌｕｅ＞ＮｅａｒＡｆＶａｌｕｅが成立しなかった場合、非合焦であると判断されるので、ステップＳ３３０３へ行く。またステップＳ３３０２でＣｕｒＡｆＶａｌｕｅ＞ＮｅａｒＡｆＶａｌｕｅが成立した場合、合焦状態であると判断されるため、本サブルーチンＡｆＰｅａｋＤｉｒＣｏｎｔｒｏｌを終了する。
【００７７】
図３４を用いて、フォーカスサーボ制御用サブルーチンであるＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌを説明する。ステップＳ３４０１では、フォーカスサーチモードをチェックする。フォーカスサーチモードすなわちＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、ステップＳ３４０２へ行く。ステップＳ３４０２では、フォーカスサーチモード用の指令値のピークホールドを行うために、サブルーチンＦｏｃｕｓＳｐｅｅｄＣｍｄＰｅａｋｄＨｏｌｄを呼び出す。そしてステップＳ３４０３へ行く。ステップＳ３４０３では、ＡＦ評価値のピークを探すためのフォーカス制御用サブルーチンＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌを呼び出す。そしてステップＳ３４０４へ行く。ステップＳ３４０４では、ＡＦ評価値のピークを探すためのＡＦ評価値判断用サブルーチンＦｏｃｕｓＰｅａｋＳｅａｒｃｈを呼び出す。そしてステップＳ３４０５へ行く。ステップＳ３４０５では、ＡＦ評価値のピークが検出されたかどうかをチェックする。ＡＦ評価値のピークが検出された場合すなわちＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｔｒｕｅの場合、ステップＳ３４０６へ行く。ステップＳ３４０６では、ＡＦ評価値のピークが検出されたので、フォーカスサーチモードを解除するためにサブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ３４０７へ行く。ステップＳ３４０７では、フォーカスレンズ群１０２を停止するために駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑ＝０をコントローラｃ４０３にセットする。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌを終了する。またステップＳ３４０５でＡＦ評価値のピークが検出されていない、すなわちＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅの場合は、ステップＳ３４０９へ行く。ステップＳ３４０９では、リアフォーカスレンズ群１０４の端検出処理を行うために、サブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌを終了する。またステップＳ３４０１でフォーカスサーチモードでないすなわちＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合はＡＦモード用制御を行うためにステップＳ３４０８へ行く。ステップＳ３４０８では、ＡＦ制御を行うためにサブルーチンＡｕｔｏＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｏｌを終了する。
【００７８】
図３５を用いて、フォーカス速度制御用サブルーチンであるＦｏｃｕｓＳｐｅｅｄＣｏｎｔｒｏｌを説明する。ステップＳ３５０１では、式（１８）を用いてリアフォーカスレンズ群１０４を駆動するためのパルスモータ４０１の駆動周波数を、フォーカス速度指令ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを元に算出する。 
ＦｏｃｕｓＳｐｅｅｄＦｒｅｑ＝Ｋｆｃｔ＊ＡＢＳ（ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ）  ・・・（１８）
ここでＡＢＳ（ｘ）は、ｘの値の絶対値を算出する処理とし、また、Ｋｆｃｔは速度指令値をコントローラｃ４０３用の周波数データに変換するための係数とする。そしてステップＳ３５０２へ行く。ステップＳ３５０２では、フォーカス速度指令ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄの符号を調べる。ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＞０の場合、ＭＯＤ方向に駆動するものとして、ステップＳ３５０４へ行く。ステップＳ３５０４では、ＭＯＤ方向に駆動するために、ズームレンズ群１０２の現在位置ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎに依存した至近端位置をＦｏｃｕｓＴａｒｇｅｔＰｏｓにセットする。そしてステップＳ３５０５へ行く。ステップＳ３５０５では、駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑおよび停止目標位置ＦｏｃｕｓＴａｒｇｅｔＰｏｓをコントローラｃ４０３にセットする。
【００７９】
そしてステップＳ３５０６へ行く。ステップＳ３５０６では、強制マニュアルフォーカスモードをチェックする。強制マニュアルフォーカスモードであるすなわちＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅである場合、ステップＳ３５０７へ行く。ステップＳ３５０７では、ＡＦ評価値のピークを探すためのＡＦ評価値判断用サブルーチンＦｏｃｕｓＰｅａｋＳｅａｒｃｈを呼び出す。そして本サブルーチンＦｏｃｕｓＳｐｅｅｄＣｏｔｒｏｌを終了する。またステップＳ３５０６で、強制マニュアルフォーカスモードでないすなわちＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅである場合、本サブルーチンＦｏｃｕｓＳｐｅｅｄＣｏｎｔｒｏｌを終了する。またステップＳ３５０２で、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ≦０の場合、停止命令を含めてＩＮＦ方向に駆動するために、ステップＳ３５０３へ行く。ステップＳ３５０３では、ＩＮＦ方向に駆動するために、ズームレンズ群１０２の現在位置ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎに依存した無限端位置をＦｏｃｕｓＴａｒｇｅｔＰｏｓにセットする。そしてステップＳ３５０５へ行く。
【００８０】
図３６を用いて、ＡＦ評価値判断用サブルーチンであるＦｏｃｕｓＰｅａｋＳｅａｒｃｈの説明を行う。ステップＳ３６０１では、ＡＦ評価値部１１４から現在のＡＦ評価値を読み込みＣｕｒＡｆＶａｌｕｅにセットする。そしてステップＳ３６０２へ行く。ステップＳ３６０２では、ＡＦ評価値が大きくなることが検出されたかどうかを調べる。ＡｆＶａｌｕｅＲｉｓｉｇＦｌａｇ＝Ｆａｌｓｅの場合、まだＡＦ評価値が大きくなることが検出されていないため、ステップＳ３６０３へ行く。ステップＳ３６０３では、現在のＡＦ評価値ＣｕｒＡｆｖａｌｕｅと前回のＡＦ評価値ＰｒｅＡｆＶａｌｕｅを比較する。ＣｕｒＡｆＶａｌｕｅ＞ＰｒｅＡｆＶａｌｕｅが成立した場合、ＡＦ評価値が大きくなることが検出されたので、ステップＳ３６０４へ行く。ステップＳ３６０４では、ＡＦ評価値が大きくなることが検出されたことを示すため、ＡｆＶａｌｕｅＲｉｓｉｎｇＦｌａｇ＝Ｔｒｕｅとする。そしてステップＳ３６０５へ行く。ステップＳ３６０５では、現在のＡＦ評価値を仮のＡＦ評価値のピーク値として記憶する。また、このときのフォーカスレンズ群１０２の位置も記憶する。 
ＴｅｍｐＰｅａｋＡｆＶａｌｕｅ  ＝ＣｕｒＡｆＶａｌｕｅ
ＴｅｍｐＰｅａｋＦｏｃｕｓＰｏｓ＝ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎ
そしてステップＳ３６１０へ行く。ステップＳ３６１０では、次回のための演算用処理を行う。 
ＰｒｅＡｆＶａｌｕｅ＝ＣｕｒＡｆＶａｌｕｅ
【００８１】
そして本サブルーチンＦｏｃｕｓＰｅａｋＳｅａｒｃｈを終了する。またステップＳ３６０３で、ＣｕｒＡｆＶａｌｕｅ＞ＰｒｅＡｆＶａｌｕｅが成立しなかった場合、前回のＡＦ評価値ＰｒｅＡｆＶａｌｕｅより現在のＡＦ評価値ＣｕｒＡｆＶａｌｕｅが大きくなかったとして、ステップＳ３６１０へ行く。またステップＳ３６０２で、ＡｆＶａｌｕｅＲｉｓｉｎｇＦｌａｇ＝Ｔｒｕｅの場合、ＡＦ評価値が大きくなることが検出されたので、ステップＳ３６０６へ行く。ステップＳ３６０６では、前回検出されたＡＦ評価値ＰｒｅＡｆＶａｌｕｅと今回のＡＦ評価値ＣｕｒＡｆＶａｌｕｅを比べる。ＣｕｒＡｆＶａｌｕｅ＜ＰｒｅＡｆＶａｌｕｅが成立した場合、前回のＡＦ評価値ＰｒｅＡｆＶａｌｕｅよりも今回のＡＦ評価値ＣｕｒＡｆＶａｌｕｅの方が小さいと判断されるため、ＡＦ評価値のピークを検出できたことになる。そしてステップＳ３６０７へ行く。ステップＳ３６０７では、検出したＡＦ評価値のピーク値を設定する。 
ＰｅａｋＡｆＶａｌｕｅ  ＝ＴｅｍｐＰｅａｋＡｆＶａｌｕｅ
ＰｅａｋＦｏｃｕｓＰｏｓ＝ＴｅｍｐＰｅａｋＦｏｃｕｓＰｏｓ
そしてステップＳ３６０８へ行く。ステップＳ３６０８では、ＡＦ評価値のピーク値を検出したことを示すために、ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｔｒｕｅとする。そしてステップＳ３６０９へ行く。ステップＳ３６０９では、次のＡＦ評価値のピーク値を検出するために、ＡＦ評価値が大きくなったことを示すフラグをクリアする。すなわちＡｆＶａｌｕｅＲｉｓｉｇｎＦｌａｇ＝Ｆａｌｓｅとする。そしてステップＳ３６１０へ行く。またステップＳ３６０６で、ＣｕｒＡｆＶａｌｕｅ＜ＰｒｅＡｆＶａｌｕｅが成立しなかった場合、ＡＦ評価値のピークを検出していないため、ステップＳ３６１０へ行く。
【００８２】
また図３６において、ステップＳ３６０７を実行する際に、ＴｅｍｐＰｅａｋＡｆＶａｌｕｅ＞ＰｅａｋＡｆＶａｌｕｅが成立するかどうかをチェックし、成立した場合は、ステップＳ３６０７を実行し、成立しなかった場合は、ステップＳ３６０７を実行せずに、ステップＳＳ３６１０に行くようにすると、ＡＦ評価値のピークが最大値、すなわちコントラストが一番高い被写体を検出することが可能となる。
【００８３】
図３７を用いて、フォーカスサーチ用データの初期化サブルーチンであるＩｎｉｔＦｏｃｕｓＳｅａｒｃｈＤａｔａの説明を行う。ステップＳ３７０１では、ＡＦ評価値のピーク検出用フラグの初期化を行う。 
ＡｆＶａｌｕｅＲｉｓｉｎｇＦｌａｇ        ＝Ｆａｌｓｅ
ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ３７０２へ行く。ステップＳ３７０２では、フォーカスレンズの端検出によるサーチ方向反転用フラグの初期化を行う。
【００８４】
ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ３７０３へ行く。ステップＳ３７０３では、ＡＦ評価値のピーク検出のために現在のＡＦ評価値をＡＦ評価値部１１４から入力し、ＰｒｅＡｆＶａｌｕｅにセットする。そして本サブルーチンＩｎｉｔＦｏｃｕｓＳｅａｒｃｈＤａｔａを終了する。
【００８５】
図３８を用いて、フォーカス速度指令値のピークホールド処理用サブルーチンであるＦｏｃｕｓＳｐｅｅｄＣｍｄＰｅａｋＨｏｌｄを説明する。ステップＳ３８０１ではＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄの符号をチェックする。ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＞０画成立した場合は、ステップＳ３８０２へ行く。ステップＳ３８０２ではＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの符号をチェックする。ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＞０が成立した場合、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄとＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄは同符号であるとして、ステップＳ３８０４へ行く。ステップＳ３８０４では、フォーカス速度指令値のピークホールド値ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの絶対値を算出する。 
ＡｂｓＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＝ＡＢＳ（ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ）
ここでＡＢＳ（ｘ）は、ｘの値の絶対値を算出する処理とする。そしてステップＳ３８０５へ行く。ステップＳ３８０５では、現在のフォーカス速度指令値ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄの絶対値を算出する。 
ＡｂｓＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝ＡＢＳ（ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ）
ここでＡＢＳ（ｘ）は、ｘの値の絶対値を算出する処理とする。そしてステップＳ３８０６へ行く。ステップＳ３８０６では、現在速度指令値とフォーカス速度指令値のピークホールド値との大きさ比較を行う。速度の大きさ比較のために上記で算出した絶対値を使用する。ＡｂｓＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＞ＡｂｓＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄが成立した場合、ピークホールドされた速度指令値の絶対値より現在の速度指令値の絶対値が大きくなったとし、ステップＳ３８０７へ行く。ステップＳ３８０７では、現在のフォーカス速度指令値ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄをピークホールド値とする。 
ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＝ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
そして本サブルーチンＦｏｃｕｓＳｐｅｅｄＣｍｄＰｅａｋＨｏｌｄを終了する。またステップＳ３８０６でＡｂｓＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＞ＡｂｓＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄが成立しなかった場合、ピークホールドされた速度指令値の絶対値より現在の速度指令値の絶対値が大きくなったと判断されない。従ってピークホールド値を更新しないので、本サブルーチンＦｏｃｕｓＳｐｅｅｄＣｍｄＰｅａｋＨｏｌｄを終了する。またステップＳ３８０１でＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＞０が成立しなかった場合、ステップＳ３８０３へ行く。ステップＳ３８０３ではＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの符号をチェックする。ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＞０が成立した場合、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄとＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの符号が異なるので、ステップＳ３８０７へ行く。またステップＳ３８０３でＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＞０が成立しなかった場合、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄとＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの符号が同符号であるとして、ステップＳ３８０４へ行く。またステップＳ３８０２でＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＞０が成立しなかった場合、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄとＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄの符号が異なるものとして、ステップＳ３８０７へ行く。
【００８６】
図３９を用いて、フォーカスサーチモードの設定処理用サブルーチンであるＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを説明する。ステップＳ３９０１ではフォーカスモードをチェックする。マニュアルフォーカスモードすなわちＦｏｃｕｓＭｏｄｅ＝ＭａｎｕａｌＦｏｃｕｓの場合、ステップＳ３９１２へ行く。ステップＳ３９１２では、フォーカスサーチモードの解除を行うために、サブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ３９１１へ行く。ステップＳ３９１１では、次の演算のための準備を行う。 
ＰｒｅＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
そして本サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを終了する。またステップＳ３９０１でフォーカスモードがオートフォーカスモードであるすなわちＦｏｃｕｓＭｏｄｅ＝ＡｕｔｏＦｏｃｕｓの場合、ステップＳ３９０２へ行く。ステップＳ３９０２では、現在のズームレンズ群１０２の速度であるＣｕｒＺｏｏｍＳｐｅｅｄをチェックする。ＣｕｒＺｏｏｍＳｐｅｅｄ＝０が成立しなかった場合、ズームレンズ群１０２が動いていると判断されるため、ステップＳ３９１２へ行く。またステップＳ３９０２でＣｕｒＺｏｏｍＳｐｅｅｄ＝０が成立した場合、ズームレンズ群１０２は停止していると判断されるため、ステップＳ３９０３へ行く。ステップＳ３９０３では、フォーカスの強制マニュアルモードの設定・解除などを行うために、サブルーチンＳｅｔＦｏｃｕｓＦｏｒｃｅｄＭａｎｕａｌを呼び出す。そしてステップＳ３９０４へ行く。ステップＳ３９０４ではフォーカス速度指令値をチェックする。ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０が成立した場合、フォーカス駆動要求が無かったものとして、ステップＳ３９１１へ行く。またステップＳ３９０４で、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０が成立しなかった場合、フォーカス駆動要求があったものとしてステップＳ３９０５へ行く。ステップＳ３９０５では、前回のフォーカス速度指令値ＰｒｅＦｏｃｕｓＳｐｅｅｄＣｏｍｍｎｄをチェックする。ＰｒｅＦｏｃｕｓＣｏｍｍａｎｄ＝０が成立しなかった場合、フォーカス速度指令が０から変化しなかったものとしてステップＳ３９１１へ行く。ステップＳ３９０５でＰｒｅＦｏｃｕｓＣｏｍｍａｎｄ＝０が成立した場合、速度指令が０から変化したしたものとし、ステップＳ３９０６へ行く。ステップＳ３９０６では、現在のフォーカスサーチモードをチェックする。ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、すでにフォーカスサーチモードになっているため、ステップＳ３９１１へ行く。またステップＳ３９０６でＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、現在フォーカスサーチモードではないので、フォーカスデマンド４７０３の操作状態をチェックするためにステップＳ３９０７行く。ステップＳ３９０７は、フォーカスデマンド４７０３の操作においてＭＯＤ端位置にあってからＩＮＦ側に移動しているかどうか（フォーカスデマンド反転操作中かどうか）をチェックするために、ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇを調べる。ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｔｒｕｅの場合、フォーカスデマンド４７０３が反転操作中なため、ステップＳ３９１１へ行く。ステップＳ３９０７でＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅの場合、フォーカスデマンド反転操作中でないため、ステップＳ３９０８へ行く。ステップＳ３９０８では、フォーカスデマンド４７０３の操作においてＩＮＦ端位置にあってからＭＯＤ側に移動しているかどうか（フォーカスデマンド反転操作中かどうか）をチェックするために、ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇを調べる。ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｔｒｕｅの場合、フォーカスデマンド４７０３が反転操作中なため、ステップＳ３９１１へ行く。ステップＳ３９０８でＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅの場合、デマンド反転操作中でないため、ステップＳ３９０９へ行く。ステップＳ３９０９では、フォーカスサーチモード用データの初期化を行うために、サブルーチンＩｎｉｔＦｏｃｕｓＳｅａｒｃｈＤａｔａを呼び出す。そしてステップＳ３９１０へ行く。ステップＳ３９１０では、フォーカスサーチモードの設定をおこなう。 
ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅ
そしてステップＳ３９１１へ行く。
【００８７】
図４０を用いて、フォーカスサーチ制御用サブルーチンＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌの説明を行う。ステップＳ４００１では、フォーカス速度制御用データの設定を行う。フォーカス制御用ピークホールド速度指令値ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄをＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄにセットする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ
そしてステップＳ４００２へ行く。ステップＳ４００２では、フォーカス速度制御用サブルーチンであるＦｏｃｕｓＳｐｅｅｄＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌを終了する。
【００８８】
図４１を用いて、フォーカスサーチモードの解除用サブルーチンであるＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅの説明を行う。ステップＳ４１０１では、フォーカスサーチモードを解除する。 
ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４１０２へ行く。ステップＳ４１０２では、強制マニュアルフォーカスモードを解除する。 
ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４１０３へ行く。ステップＳ４１０３では、フォーカス速度指令のピークホールド値をクリアする。 
ＰｅａｋＨｏｌｄＦｏｃｕｓＳｐｄＣｍｄ＝０
そしてステップＳ４１０４へ行く。ステップＳ４１０４では、ＡＦ評価値のピーク検出フラグのクリアを行う。 
ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４１０５へ行く。ステップＳ４１０５では、フォーカスレンズの端検出によるサーチ方向反転用フラグの初期化を行う。 
ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４１０６へ行く。ステップＳ４１０６では、フォーカスデマンド反転操作検出フラグのクリアを行う。 
ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅ
ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅ
そして本サブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを終了する。
【００８９】
図４２を用いて、ＡＦ評価値ピークサーチモードにおけるリアフォーカスレンズ群１０４の光学端検出処理用サブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔの説明を行う。ステップＳ４２０１では、メモリ１２２にあるトラッキングカーブ情報に基づいて現在のズーム位置に対するリアフォーカスレンズ群１０４のＭＯＤ端情報をＦｏｃｕｓＭｏｄＬｉｍｉｔＰｏｓにセットし、また、リアフォーカスレンズ群１０４のＩＮＦ端情報をＦｏｃｕｓＩｎｆＬｉｍｉｔＰｏｓにセットする。そしてステップＳ４２０２へ行く。ステップＳ４２０２では、フォーカス速度指令値ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄをチェックする。ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＜０が成立した場合、ＩＮＦ方向の駆動指令であるとし、ステップＳ４２０３へ行く。ステップＳ４２０３では、現在のリアフォーカスレンズ群１０４の位置がＩＮＦ端であるかどうかを調べる。ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎ＞ＦｏｃｕｓＩｎｆＬｉｍｉｔＰｏｓが成立しなかった場合、リアフォーカスレンズ群１０４はＩＮＦ端にいるものとしてステップＳ４２０５へ行く。ステップＳ４２０５では、１回目のリアフォーカスレンズ群１０４の端検出かどうかを調べる。ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅの場合、１回目の端検出のため、ステップＳ４２０６へ行く。ステップＳ４２０６では、現在検出されている端とは逆の端方向に駆動するために、フォーカス速度指令値の符号を反転する。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝−ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
【００９０】
そしてステップＳ４２０７へ行く。ステップＳ４２０７では、１回目の端検出をしたことを示すために、ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅとする。そして本サブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔを終了する。またステップＳ４２０３において、ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎ＞ＦｏｃｕｓＩｎｆＬｉｍｉｔＰｏｓが成立した場合、ＩＮＦ端にいないものとして、本サブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔを終了する。またステップＳ４２０２で、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＜０が成立しなかった場合、ＭＯＤ方向の駆動指令であるとし、ステップＳ４２０４へ行く。ステップＳ４２０４では、現在のリアフォーカスレンズ群１０４の位置がＭＯＤ端であるかどうかを調べる。ＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎ＜ＦｏｃｕｓＭｏｄＬｉｍｉｔＰｏｓが成立しなかった場合、リアフォーカスレンズ群１０４はＭＯＤ端にいるものとしてステップＳ４２０５へ行く。またステップＳ４２０４でＣｕｒＦｏｃｕｓＰｏｓｉｔｉｏｎ＜ＦｏｃｕｓＭｏｄＬｉｍｉｔＰｏｓが成立した場合、リアフォーカスレンズ群１０４はＭＯＤ端にいないものとして本サブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔを終了する。またステップＳ４２０５において、ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅである場合、２度目の端検出であるためステップＳ４２０８へいく。ステップＳ４２０８では、リアフォーカスレンズ群１０４はＩＮＦ端、ＭＯＤ端両方を検出したため、サーチモードを終了するために、サブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ４２０９へ行く。ステップＳ４２０９では、リアフォーカスレンズ群１０４を停止させるために、駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑ＝０をコントローラｃ４０３にセットする。
【００９１】
ここで、サーチモードにおける端検出を片方の端のみで終了するようなアルゴリズムにするにはステップＳ４２０５において、ＲｅｖｅｒｓｅＦｏｃｕｓＤｅｔｅｃｔＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅの場合もステップＳ４２０８へ行くようにすればよい。
【００９２】
図４３を用いて、レンズ制御用データの初期化処理用サブルーチンＩｎｉｔＬｅｎｓＣｏｎｔＩｎｆｏｒｍａｔｉｏｎの説明を行う。ステップＳ４３０１では、ＡＦ評価値ピークサーチ用データの初期化を行う。 
ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｆａｌｓｅ
ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ      ＝Ｆａｌｓｅ
ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ  ＝Ｆａｌｓｅ
ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＣｏｕｎｔ  ＝０
そしてステップＳ４３０２へ行く。ステップＳ４３０２では、フォーカスデマンド端検出後の反転操作用データの初期化を行う。 
ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅ
ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４３０３へ行く。ステップＳ４３０３では、端付デマンドの端検出情報の初期化を行う。 
ＦｏｃｕｓＰｏｓＣｏｎｔＩｎｆＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
ＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ４３０４へ行く。ステップＳ４３０３ではＡＦ評価値ピーク位置検出用フォーカス速度の初期化を行う。 
ＦｏｃｕｓＳｅａｒｃｈＳｔｄＳｐｅｅｄ＝５０［ｐｕｌｓｅ／ｓｅｃ］
そして、本サブルーチンＩｎｉｔＬｅｎｓＣｏｎｔＩｎｆｏｒｍａｔｉｏｎを終了する。
【００９３】
図４４を用いて、マニュアルフォーカスモードにおけるフォーカスレンズ制御処理用サブルーチンＭａｎｕａｌＦｏｃｕｓＣｏｎｔｒｏｌの説明を行う。ステップＳ４４０１ではリアフォーカスレンズ群１０４がＡＦ評価値ピークサーチモードで検出したＡＦ評価値ピーク位置移動要求中かどうかをチェックする。ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｔｒｕｅの場合、移動要求中なのでステップＳ４４０２へ行く。Ｓ４４０２では、ＡＦ評価値ピークサーチモードを解除するためにサブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ４４０３へ行く。ステップＳ４４０３ではＡＦ評価値ピーク位置移動要求フラグをクリアする。 
ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｆａｌｓｅ
【００９４】
そしてステップＳ４４０４へ行く。ステップＳ４４０４では、フォーカス強制マニュアルモードかどうかをチェックする。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、フォーカス強制マニュアルモードでないためステップＳ４４０５へ行く。ステップＳ４４０５では、現在のマニュアルモードが位置制御モードなのか速度制御モードなのかをチェックする。ＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ＝ＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔＭｏｄｅの場合、位置制御モードのためステップＳ４４０６へ行く。ステップＳ４４０６ではリアフォーカスレンズ群１０４を位置制御するためにサブルーチンＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを呼び出す。そしてステップＳ４４０８へ行く。ステップＳ４４０８では、ズームレンズ群１０２の現在位置ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎとリアフォーカスレンズ群１０４ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎに基づいてトラッキング・カーブ・テーブルより現在のトラッキングカーブ番号を算出し、ＴｒａｃｋｉｎｇＣｕｒｖｅＮｏに設定する。そして本サブルーチンＭａｎｕａｌＦｏｃｕｓＣｏｎｔｒｏｌを終了する。またステップＳ４４０１でＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｆａｌｓｅの場合、移動要求中ではないのでステップＳ４４０４へ行く。またステップＳ４４０４でＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、フォーカス強制マニュアルモードであるためテップＳ４４０７へ行く。ステップＳ４４０７ではリアフォーカスレンズ群１０４を速度制御するためにサブルーチンＦｏｃｕｓＳｐｅｅｄＣｏｎｔｒｏｌを呼び出す。そしてステップＳ４４０８へ行く。またステップＳ４４０５でＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ＝ＦｏｃｕｓＳｐｅｅｄＣｏｎｔＭｏｄｅの場合、速度制御のためステップＳ４４０７へ行く。
【００９５】
図４５を用いて、フォーカス位置制御用サブルーチンＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌの説明を行う。ステップＳ４５０１では、ズームレンズ群の現在位置ＣｕｒＺｏｏｍＰｏｓｉｔｉｏｎとフォーカスデマンド位置指令値ＦｏｃｕｓＰｏｓＣｏｎｔＡｄに基づく物体距離とから決まるリアフォーカスレンズ群１０４の位置をメモリ１１２から読み出し、ＦｏｃｕｓＴａｒｇｅｔＰｏｓにセットする。そしてステップＳ４５０２へ行く。リアフォーカスレンズ群１０４の駆動可能な最高周波数をＦｏｃｕｓＳｐｅｅｄＦｒｅｑにセットする。そしてステップＳ４５０３へ行く。ステップＳ４５０３では、駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑおよび位置情報ＦｏｃｕｓＴａｒｇｅｔＰｏｓをコントローラｃにセットする。そして本サブルーチンＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔｒｏｌを終了する。
【００９６】
図４６を用いて、オートフォーカスおよびＡＦ評価値ピーク位置サーチモード制御処理用サブルーチンＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌの説明を行う。ステップＳ４６０１では、フォーカスデマンド端検出後の逆操作状態をチェックするためにサブルーチンＣｈｅｃｋＦｏｃｕｓＤｅｍａｎｄＲｅｖｅｒｓｅを呼び出す。そしてステップＳ４６０２へ行く。ステップＳ４６０２では、ＡＦ評価値ピーク位置サーチモードの設定処理を行うためにサブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ４６０３へ行く。ステップＳ４６０３では、ＡＦ制御やＡＦ評価値ピーク位置サーチ制御のためにサブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌを終了する。
【００９７】
図４９を用いて、フォーカスデマンド端検出および逆操作検出処理用サブルーチンＣｈｅｃｋＦｏｃｕｓＤｅｍａｎｄＲｅｖｅｒｓｅを説明する。ステップＳ４９０１では、前回のサンプリングによるデマンド端検出情報を利用した反転操作を検出するためにサブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを呼び出す。そしてステップＳ４９０２へ行く。ステップＳ４９０２では、フォーカスデマンド端検出後の反転操作をしているときにさらに反転操作を行われたかどうかをチェックするためにサブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを呼び出す。そしてステップＳ４９０３へ行く。ステップＳ４９０３では、フォーカスデマンド端の検出を行うためにサブルーチンＣｈｅｃｋＤｅｍａｎｄＬｉｍｉｔを呼び出す。そして本サブルーチンＣｈｅｃｋＦｏｃｕｓＤｅｍａｎｄＲｅｖｅｒｓｅを終了する。
【００９８】
図５０を用いて、フォーカスデマンド端検出後の反転操作検出処理用サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを説明する。ステップＳ５００１では、前回のサンプリングによるフォーカスデマンドＩＮＦ端検出情報をチェックする。ＦｏｃｕｓＰｏｓＣｏｎｔＩｎｆＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅの場合、ＩＮＦ端検出状態であるため、ステップＳ５００３へ行く。ステップＳ５００３では、フォーカスデマンド指令のＡ／Ｄ変換値の速度指令値相当である差分情報をチェックする。ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＞０が成立しなかった場合、フォーカスデマンドがＩＮＦ端にいるとし、本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを終了する。またステップＳ５００３でＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＞０が成立した場合、ＭＯＤ方向に操作中であるとし、ステップＳ５００４へ行く。ステップＳ５００４では、フォーカスデマンドＩＮＦ端検出後のＭＯＤ方向操作中であることを示すために、
ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｔｒｕｅ
とする。そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを終了する。またステップＳ５００１でＦｏｃｕｓＰｏｓＣｏｎｔＬｍｔＦｌａｇ＝Ｆａｌｓｅの場合、前回のサンプリングでフォーカスデマンドＩＮＦ端検出状態でなかったとして、ステップＳ５００２へ行く。ステップＳ５００２では、前回のサンプリングによるフォーカスデマンドＭＯＤ端検出情報をチェックする。ＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅの場合、ＭＯＤ端検出状態であるため、ステップＳ５００５へ行く。ステップＳ５００５では、フォーカスデマンド指令のＡ／Ｄ変換値の速度指令値相当である差分情報をチェックする。ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＜０が成立しなかった場合、フォーカスデマンドがＭＯＤ端にいるとし、本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを終了する。またステップＳ５００５でＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＜０が成立した場合、ＩＮＦ方向に操作中であるとし、ステップＳ５００６へ行く。ステップＳ５００６では、フォーカスデマンドＭＯＤ端検出後のＩＮＦ方向操作中であることを示すために、
ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｔｒｕｅ
とする。そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを終了する。またステップＳ５００２でＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅの場合、前回のサンプリングでフォーカスデマンドＭＯＤ端検出状態でなかったとして、本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｍｔＲｅｖｅｒｓｅを終了する。
【００９９】
図５１を用いて、フォーカスデマンド端検出後の反転操作をしているときにさらに反転操作を行われたかどうかを検出するためのサブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを説明する。ステップＳ５１０１ではフォーカスデマンド４７０３が前回のサンプリングによるチェックでＭＯＤ端検出後にＩＮＦ端方向に操作されているかどうかをチェックする。ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅの場合、ＩＮＦ方向に操作されていないためステップＳ５１０４へ行く。ステップＳ５１０４ではフォーカスデマンド４７０３が前回のサンプリンによるチェックでＩＮＦ端検出後にＭＯＤ端方向に操作されているかどうかをチェックする。ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅの場合、ＭＯＤ方向に操作されていないため、本サブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを終了する。ステップＳ５１０１で、ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｔｒｕｅの場合、前回のサンプリングによるチェックでＩＮＦ端方向に操作中であると判断されるため、ステップＳ５１０２へ行く。ステップＳ５１０２では、今回のサンプリングでのフォーカスデマンド指令のＡ／Ｄ変換値の速度指令値相当である差分情報をチェックする。ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＞０が成立しなかった場合はフォーカスデマンド４７０３がＭＯＤ方向に操作されていないとして、ステップＳ５１０４へ行く。またステップＳ５１０２でＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＞０が成立した場合は今回のサンプリングでフォーカスデマンド４７０３がＭＯＤ方向に操作中であると判断されるためステップＳ５１０３へ行く。ステップＳ５１０３では、フォーカスデマンド４７０３のＭＯＤ端検出後のＩＮＦ端方向への反転操作中フラグをクリアする。 
ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ＝Ｆａｌｓｅ
【０１００】
そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを終了する。またステップＳ５１０４で、ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｔｒｕｅの場合、前回のサンプリングによるチェックＭＯＤ端方向に操作中であると判断されるため、ステップＳ５１０５へ行く。ステップＳ５１０５では、今回のサンプリングでのフォーカスデマンド指令のＡ／Ｄ変換値の速度指令値相当である差分情報をチェックする。ＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＜０が成立しなかった場合は、フォーカスデマンド４７０３がＩＮＦ方向に操作されていないとして、本サブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを終了する。またステップＳ５１０５でＦｏｃｕｓＤｉｆｆＰｏｓＡｄ＜０が成立した場合は今回のサンプリングでフォーカスデマンド４７０３がＩＮＦ方向に操作中であると判断されるためステップＳ５１０６へ行く。ステップＳ５１０６では、フォーカスデマンド４７０３のＩＮＦ端検出後のＭＯＤ端方向への反転操作中フラグをクリアする。 
ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ＝Ｆａｌｓｅ
そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＲｅｖｅｒｓｅＥｎｄを終了する。
【０１０１】
図５２を用いて、フォーカスデマンド端検出処理用サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｉｍｉｔの説明を行う。ステップＳ５２０１では、フォーカスデマンド指令値がＩＮＦ端指令値であるかどうかをチェックする。ＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝０の場合、ＩＮＦ端指令値なのでステップＳ５２０４へ行く。ステップＳ５２０４では、ＩＮＦ端指令検出処理を行う。 
ＦｏｃｕｓＰｏｓＣｏｎｔＩｎｆＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅ
ＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｉｍｉｔを終了する。またステップＳ５２０１でＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝０が成立しなかった場合は、ＩＮＦ端指令値でないため、ステップＳ５２０２へ行く。ステップＳ５２０２では、フォーカスデマンド指令値がＭＯＤ端指令値であるかどうかをチェックする。ＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝６５５３５の場合、ＭＯＤ端指令値なのでステップＳ５２０５へ行く。ステップＳ５２０５では、ＭＯＤ端指令検出処理を行う。 
ＦｏｃｕｓＰｏｓＣｏｎｔＩｎｆＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
ＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｔｒｕｅ
そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｉｍｉｔを終了する。またステップＳ５２０２でＦｏｃｕｓＰｏｓＣｏｎｔＡｄ＝６５５３５が成立しなかった場合、ＭＯＤ端指令値でないため、ステップＳ５２０３へ行く。ステップＳ５２０３では、ＩＮＦ端指令値でもＭＯＤ端指令値でもないため、以下の処理を行う。 
ＦｏｃｕｓＰｏｓＣｏｎｔＩｎｆＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
ＦｏｃｕｓＰｏｓＣｏｎｔＭｏｄＬｉｍｉｔＦｌａｇ＝Ｆａｌｓｅ
そして本サブルーチンＣｈｅｃｋＤｅｍａｎｄＬｉｍｉｔを終了する。
【０１０２】
図５３を用いて、フォーカス強制マニュアル設定処理用サブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌの説明を行う。ステップＳ５３０１では、フォーカス速度指令値をチェックする。ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０が成立しなかった場合、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作が行われているものとし、ステップＳ５３０２へ行く。ステップＳ５３０２では、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作なしカウンタをクリアする。 
ＦｏｃｕｓＤｅｍａｎｄＵｐＯｐｅＣｏｕｎｔ＝０
そしてステップＳ５３０３へ行く。ステップＳ５３０３では、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作が行われているため、フォーカス強制マニュアルモードを設定する。 
ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅ
そしてステップＳ５３０５へ行く。ステップＳ５３０５では、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作が行われていない時間をタイマ割り込みによるサンプリング周期を元にした式（１９）を用いて算出する。 
ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＴｉｍｅ＝ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＣｏｕｎｔ＊ＴｉｍｅｒＩｎｔｅｒｒｕｐｔＰｅｒｉｏｄＴｉｍｅ  ・・・（１９）
そしてステップＳ５３０６へ行く。ステップＳ５３０６では、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作が行われていない時間を式（２０）を用いてチェックする。 
ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＴｉｍｅ＜ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＳｔｄＴｉｍｅ  ・・・（２０）
式（２０）が成立した場合、フォーカス電子リング部１２６およびフォーカスデマンド４７０３の操作が行われていない時間が基準時間以内のため、本サブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌを終了する。また、ステップＳ５３０６で式（２０）が成立しなかた場合は、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作が行われていない時間が基準時間以上経過したため、ステップＳ５３０７へ行く。ステップＳ５３０７では、フォーカス強制マニュアルモードの解除を行う。 
ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅ
ＤｅｍａｎｄＲｅｖｅｒｓｅＩｎｆＦｌａｇ          ＝Ｆａｌｓｅ
ＤｅｍａｎｄＲｅｖｅｒｓｅＭｏｄＦｌａｇ          ＝Ｆａｌｓｅ
そして本サブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌを終了する。またステップＳ５３０１で、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝０が成立した場合、フォーカス電子リング部１２６およびフォーカスデマンド４７０３の操作が行われていないものとし、ステップＳ５３０４へ行く。ステップＳ５３０４では、フォーカス電子リング部１２６もしくはフォーカスデマンド４７０３の操作なしカウンタをインクリメントする。 
ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＣｏｕｎｔ＝ＦｏｃｕｓＤｅｍａｎｄＵｎＯｐｅＣｏｕｎｔ＋１
そしてステップＳ５３０５へ行く。
【実施例２】
【０１０３】
図５４を用いて、オートフォーカスおよびＡＦ評価値ピークサーチモード制御処理用サブルーチンであるＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌ２の説明を行う。このサブルーチンは図４６のＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌの代わりをするものであり、フォーカス電子リング１２６あるいはフォーカスデマンド４７０３の操作中は強制マニュアルフォーカスモードになり、操作終了後には、操作終了直前の速度指令方向にリアフォーカスレンズ群１０４を移動させてＡＦ評価値のピークを探し、検出したピーク位置で停止するものである。まず、ステップＳ５４０１では、フォーカスデマンド端検出および逆操作検出処理を行うためにサブルーチンＣｈｅｃｋＦｏｃｕｓＤｅｍａｎｄＲｅｖｅｒｓｅを呼び出す。そしてステップＳ５４０２へ行く。ステップＳ５４０２では、フォーカスサーチモードの設定処理を行うためにサブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を呼び出す。そしてステップＳ５４０３へ行く。ステップＳ５４０３では、フォーカス制御のためにサブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ２を呼び出す。そして本サブルーチンＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌ２を終了する。
【０１０４】
図５５を用いて、フォーカスサーボ制御用サブルーチンであるＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ２を説明する。ステップＳ５５０１では、フォーカスサーチモードをチェックする。フォーカスサーチモードすなわちＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、ステップＳ５５０２へ行く。ステップＳ５５０２では、フォーカスサーチモードにおけるリアフォーカスレンズ群１０４の速度を設定する。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ＝ＦｏｃｕｓＳｅａｒｃｈＳｔｄＳｐｅｅｄ
【０１０５】
そしてステップＳ５５０３へ行く。ステップＳ５５０３では、ＡＦ評価値ピーク位置サーチ用制御を行うためにサブルーチンＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌを呼び出す。そしてステップＳ５５０４へ行く。ステップＳ５５０４ではＡＦ評価値のピーク検出処理を行うために、サブルーチンＦｏｃｕｓＰｅａｋＳｅａｒｃｈを呼び出す。そしてステップＳ５５０５へ行く。ステップＳ５５０５では、ＡＦ評価値のピークを検出したかどうかを確認するために、ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇをチェックする。ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｔｒｕｅの場合、ＡＦ評価値のピークを検出したために、ステップＳ５５０６へ行く。ステップＳ５５０６では、フォーカスサーチモードを解除するためにサブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そしてステップＳ５５０７へ行く。ステップＳ５５０７では、リアフォーカスレンズ群１０４を停止させるために、駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑ＝０をコントローラｃ４０３にセットする。そして本サブルーチンＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌ２を終了する。またステップＳ５５０１でＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、オートフォーカスモードのため、ステップＳ５５０９へ行く。ステップＳ５５０９ではＡＦ制御を行うためにサブルーチンＡｕｔｏＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ２を終了する。またステップＳ５５０５で、ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅの場合、まだＡＦ評価値のピークを検出していないため、リアフォーカスレンズ群１０４の端検出処理を行うためにサブルーチンＤｅｔｅｃｔＦｏｃｕｓＬｉｍｉｔを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ２を終了する。
【０１０６】
図５６を用いて、フォーカスサーチモードの設定処理用サブルーチンであるＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を説明する。ステップＳ５６０１では、フォーカスモードをチェックする。マニュアルフォーカスモードすなわちＦｏｃｕｓＭｏｄｅ＝ＭａｎｕａｌＦｏｃｕｓの場合、ステップＳ５６０８へ行く。ステップＳ５６０８では、フォーカスサーチモードを解除するためにサブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そして本サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を終了する。またステップＳ５６０１で、フォーカスモードがオートフォーカスモードであるすなわちＦｏｃｕｓＭｏｄｅ＝ＡｕｔｏＦｏｃｕｓの場合、ステップＳ５６０２へ行く。ステップＳ５６０２では、現在のズームレンズ群１０２の速度であるＣｕｒＺｏｏｍＳｐｅｅｄをチェックする。ＣｕｒＺｏｏｍＳｐｅｅｄ＝０が成立しなかった場合、ズームレンズ群１０２が動いていると判断されるため、ステップＳ５６０８へ行く。またステップＳ５６０２でＣｕｒＺｏｏｍＳｐｅｅｄ＝０が成立した場合、ズームレンズ群１０２は停止していると判断されるため、ステップＳ５６０３へ行く。ステップＳ５６０３では、前回のタイマ割り込みによるフォーカス強制マニュアルモードのチェックを行う。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、前回のタイマ割り込みではフォーカス強制マニュアルモードになっていないのでステップＳ５６０９へ行く。ステップＳ５６０９では、今回のタイマ割り込みによるフォーカス強制マニュアルモードを設定するためにサブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌを呼び出す。そして本サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を終了する。またステップ５６０３でＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、すでにフォーカス強制マニュアルモードになっているため、ステップＳ５６０４へ行く。ステップＳ５６０４では、今回のタイマ割り込みによるフォーカス強制マニュアルモードを設定するためにサブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌを呼び出す。そしてステップＳ５６０５へ行く。ステップＳ５６０５では、今回のタイマ割り込みによるフォーカス強制マニュアルモードのチェックを行う。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、今回のタイマ割り込みで強制マニュアルモードであるため、本サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を終了する。またステップＳ５６０５でＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、フォーカス強制マニュアルモードが終了したので、ステップＳ５６０６へ行く。ステップＳ５６０６では、ＡＦ評価値ピーク位置検出用データの初期化を行うために、サブルーチンＩｎｉｔＦｏｃｕｓＳｅａｒｃｈＤａｔａを呼び出す。そしてステップＳ５６０７へ行く。ステップＳ５６０７では、フォーカスサーチモードの設定を行う。 
ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅ
そして本サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を終了する。
【実施例３】
【０１０７】
図５７を用いて、オートフォーカスおよびＡＦ評価値ピークサーチモード制御処理用サブルーチンであるＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌ３の説明を行う。このサブルーチンは図４６のＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌの代わりをするものであり、フォーカス電子リング１２６あるいはフォーカスデマンド４７０３の操作中は強制マニュアルフォーカスモードになり、強制マニュアルフォーカスモード中にＡＦ評価値のピーク位置を検出し、操作終了後に検出したピーク位置に移動して停止するものである。まず、ステップＳ５７０１では、フォーカスデマンド端検出および逆操作検出処理を行うためにサブルーチンＣｈｅｃｋＦｏｃｕｓＤｅｍａｎｄＲｅｖｅｒｓｅを呼び出す。そしてステップＳ５７０２へ行く。ステップＳ５７０２では、ＡＦ評価値ピーク位置移動要求設定処理を行うために、サブルーチンＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３を呼び出す。そしてステップＳ５７０３へ行く。ステップＳ５７０３では、リアフォーカスレンズ群１０４のＡＦ制御やマニュアル制御、ＡＦ評価値ピーク位置移動などの処理を行うためにサブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ３を呼び出す。そして本サブルーチンＡｕｔｏＦｏｃｕｓＳｅａｒｃｈＣｏｎｔｒｏｌ３を終了する。
【０１０８】
図５８を用いて、ＡＦ評価値ピーク位置移動要求処理用サブルーチンであるＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３の説明を行う。ステップＳ５８０１では、前回のサンプリングにおける強制マニュアルフォーカスモードの状態をチェックする。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、強制マニュアルフォーカスモードであるとして、ステップＳ５８０２へ行く。ステップＳ５８０２では、今回のサンプリングによる強制マニュアルフォーカスモードの設定・解除を行うために、サブルーチンＳｅｔＦｏｃｕｓＦｏｒｃｅｄＭａｎｕａｌを呼び出す。そしてステップＳ５８０３へ行く。ステップＳ５８０３では、今回のサンプリングによる強制マニュアルフォーカスモードの状態をチェックする。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、強制マニュアルフォーカスモードが終了したとしてステップＳ５８０４へ行く。ステップＳ５８０４では、強制マニュアルフォーカスモード中にＡＦ評価値のピーク位置を検出したかどうかをチェックする。ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｔｒｕｅの場合、ＡＦ評価値ピーク位置検出状態のため、ステップＳ５８０５へ行く。ステップＳ５８０５では、ＡＦ評価値ピーク位置検出フラグをクリアする。 
ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅ
そしてステップＳ５８０６へ行く。ステップＳ５８０６では、ＡＦ評価値ピーク位置移動要求フラグをセットする。 
ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｔｒｕｅ
【０１０９】
そして本サブルーチンＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３を終了する。またステップＳ５８０１でＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、強制マニュアルフォーカスモードでないため、ステップＳ５８０７へ行く。ステップＳ５８０７では、今回のサンプリングによる強制マニュアルフォーカスモードの設定・解除を行うために、サブルーチンＳｅｔＦｏｃｕｓＦｏｒｃｅｄＭａｎｕａｌを呼び出す。そしてステップ本サブルーチンＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３を終了する。またステップＳ５８０３において、ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅの場合、強制マニュアルフォーカスモードが継続中のため、本サブルーチンＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３を終了する。またステップＳ５８０４でＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅの場合、ＡＦ評価値ピーク位置検出状態でないため、本サブルーチンＣｈｅｃｋＦｏｃｕｓＭｏｖｅＢｙＡｆＰｅａｋ３を終了する。
【０１１０】
図５９を用いて、ＡＦ評価値ピーク位置移動やＡＦ制御などの処理用サブルーチンであるＦｏｃｕｓＳｅｒｖｏＣｏｔｒｏｌ３を説明する。ステップＳ５９０１では、ＡＦ評価値ピーク位置移動要求フラグのチェックをする。ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｆａｌｓｅの場合、ＡＦ評価値ピーク位置移動中でないため、ステップＳ５９０２へ行く。ステップＳ５９０２では、強制マニュアルフォーカスモードであるかを調べる。ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅの場合、強制マニュアルフォーカスモードでないため、ステップＳ５９０３へ行く。ステップＳ５９０３では、ＡＦ評価値ピーク位置検出状態かどうかを調べる。ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｔｒｕｅの場合、ＡＦ評価値ピーク位置検出状態なので、ステップＳ５９０４へ行く。ステップＳ５９０４では、ＡＦ評価値ピーク位置に移動するために、サブルーチンＭｏｖｅＴｏＡｆＰｅａｋＰｏｓｉｔｉｏｎ３を呼び出す。そしてステップＳ５９０６へ行く。ステップＳ５９０６では、フォーカスサーチモードを解除するために、サブルーチンＲｅｌｅａｓｅＦｏｃｕｓＳｅａｒｃｈＭｏｄｅを呼び出す。そして本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ３を終了する。またステップＳ５９０２で、ＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｕｒｅの場合、強制マニュアルフォーカスモードのため、ステップＳ５９０７へ行く。ステップＳ５９０７では、マニュアルフォーカス制御をするために、サブルーチンＭａｎｕａｌＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そして、本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ３を終了する。またステップＳ５９０３で、ＤｅｔｅｃｔＰｅａｋＡｆＶａｌｕｅＦｌａｇ＝Ｆａｌｓｅの場合、ＡＦ評価値ピーク位置を検出していないため、ステップＳ５９０５へ行く。ステップＳ５９０５では、ＡＦ制御を行うために、サブルーチンＡｕｔｏＦｏｃｕｓＣｏｎｔｒｏｌを呼び出す。そしてステップＳ５９０６へ行く。また、ステップＳ５９０１で、ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｔｒｕｅの場合、ＡＦ評価値ピーク位置に移動中のため、ステップＳ５９０８へ行く。ステップＳ５９０８では、リアフォーカスレンズ群１０４が目標位置に到達したかどうかをチェックする。目標位置に到達していない場合は、「Ｎ」へ行き、本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ３を終了する。またステップＳ５９０８でリアフォーカスレンズ群１０４が目標位置に到達したと判断される場合、「Ｙ」に行き、ステップＳ５９０９へ行く。ステップＳ５９０９ではＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＦｌａｇ＝Ｆａｌｓｅとする。そして、本サブルーチンＦｏｃｕｓＳｅｒｖｏＣｏｎｔｒｏｌ３を終了する。
【０１１１】
図６０を用いて、ＡＦ評価値ピーク位置移動処理用サブルーチンであるＭｏｖｅＴｏＡｆＰｅａｋＰｏｓｉｔｉｏｎ３の説明をする。ステップＳ６００１では、リアフォーカスレンズ群１０４の移動速度ＦｏｃｕｓＳｐｅｅｄＤａｔａに最高速度を設定する。そしてステップＳ６００２へ行く。ステップＳ６００２では、式（２１）を用いてアフォーカスレンズ群１０４を駆動するためのパルスモータ４０１の駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑを、フォーカス速度指令ＦｏｃｕｓＳｐｅｅｄＤａｔａを元に算出する。 
ＦｏｃｕｓＳｐｅｅｄＦｒｅｑ＝Ｋｆｃｔ＊ＡＢＳ（ＦｏｃｕｓＳｐｅｅｄＤａｔａ）  ・・・（２１）
【０１１２】
ここでＡＢＳ（ｘ）は、ｘの値の絶対値を算出する処理とし、また、Ｋｆｃｔは速度指令値をコントローラｃ４０３用の周波数データに変換するための係数とする。そしてステップＳ６００３へ行く。ステップＳ６００３では、駆動周波数ＦｏｃｕｓＳｐｅｅｄＦｒｅｑおよび停止目標位置ＦｏｃｕｓＰｅａｋＰｏｓをコントローラｃ４０３にセットする。そしてステップＳ６００４へ行く。ステップＳ６００４では、ＡＦ評価値ピーク位置へ移動するために、移動要求設定をする。 
ＦｏｃｕｓＭｏｖｅＴｏＰｅａｋＲｅｑＦｌａｇ＝Ｔｒｕｅ
そして、本サブルーチンＭｏｖｅＴｏＡｆＰｅａｋＰｏｓｉｔｉｏｎ３を終了する。
【実施例４】
【０１１３】
図６１を用いて、フォーカス指令入力用サブルーチンであるＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ４の説明をする。このサブルーチンは図２５のＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄの代わりをするものであり、フォーカスデマンド４７０３からの指令値よりフォーカス電子リング１２６からの指令値を優先するものである。ステップＳ６１０１では、フォーカス電子リング部１２６からの速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを呼び出す。そしてステップＳ６１０２へ行く。ステップＳ６１０２では、アクセサリインターフェース部１２７からの位置指令値および速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄを呼び出す。そしてステップＳ６１０３へ行く。ステップＳ６１０３では、フォーカス制御指令値の優先を調べるために、ＦｏｃｕｓＤｉｆｆＣｏｕｎｔの値を調べる。ＦｏｃｕｓＤｉｆｆＣｏｕｎｔ＝０が成立しなかった場合は、フォーカス電子リング部１２６の操作があったとして、フォーカス電子リング部１２６からの指令値を使用するためにステップＳ６１０４へ行く。ステップＳ６１０４では、フォーカス電子リング部１２６の速度指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＩｎｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
【０１１４】
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ４を終了する。またステップＳ６１０３でＦｏｃｕｓＤｉｆｆＣｏｕｎｔ＝０が成立した場合、フォーカスデマンド４７０３の操作によるアクセサリインターフェース部１２７からの指令値をフォーカス速度指令値とするためにステップＳ６１０５へ行く。ステップＳ６１０５ではフォーカスデマンド４７０３の速度指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＥｘｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ４を終了する。ここでＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ４は、タイマ割り込みによる周期的な処理となるため、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄは周期的なカウンタ値あるいはＡ／Ｄ変換値の差分データとなる。したがって単位は［ｐｕｌｓｅ／ｓｅｃ］となり、速度指令となる。
【実施例５】
【０１１５】
図６４を用いて、フォーカス指令入力用サブルーチンであるＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ５の説明をする。このサブルーチンは図２５のＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄの代わりをするものであり、ＡＦモードでは使用していないマニュアルフォーカスモードにおける位置制御モードと速度制御モードの選択ＳＷを利用して、ＡＦモードにおけるフォーカスデマンド４７０３からの指令値とフォーカス電子リング１２６からの指令値を選択するものである。ステップＳ６４０１では、フォーカス電子リング部１２６からの速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄを呼び出す。そしてステップＳ６４０２へ行く。ステップＳ６４０２では、アクセサリインターフェース部１２７からの位置指令値および速度指令値を入力するためにサブルーチンＩｎｐｕｔＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｍｍａｎｄを呼び出す。そしてステップＳ６４０３へ行く。ステップＳ６４０３では、フォーカス制御指令値の優先を調べるために、フォーカス制御モードＳＷ４８０１の状態であるＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅを調べる。ＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ  ＝  ＦｏｃｕｓＳｐｅｅｄＣｏｎｔＭｏｄｅの場合、フォーカス電子リング部１２６の操作データを優先するために、ステップＳ６４０４へ行く。ステップＳ６４０４では、フォーカス電子リング部１２６の速度指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＩｎｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
【０１１６】
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ５を終了する。またステップＳ６４０３でＭａｎｕａｌＦｏｃｕｓＣｏｎｔＭｏｄｅ＝ＦｏｃｕｓＰｏｓｉｔｉｏｎＣｏｎｔＭｏｄｅの場合は、アクセサリインターフェース部１２７からの指令値を使用するためにステップＳ６４０５へ行く。ステップＳ６４０５では、アクセサリインターフェース部１２７の指令値をフォーカス速度指令値とする。 
ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｄ＝ＥｘｔｅｒＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄ
そして本サブルーチンＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ５を終了する。ここでＩｎｐｕｔＦｏｃｕｓＣｏｍｍａｎｄ５は、タイマ割り込みによる周期的な処理となるため、ＦｏｃｕｓＳｐｅｅｄＣｏｍｍａｎｄは周期的なカウンタ値あるいはＡ／Ｄ変換値の差分データとなる。したがって単位は［ｐｕｌｓｅ／ｓｅｃ］となり、速度指令となる。
【実施例６】
【０１１７】
図３１におけるステップＳ３１０１でＦｏｃｕｓＭｏｄｅ＝ＡｕｔｏＦｏｃｕｓが成立した場合には、ステップＳ３１０２を実行せずに、ステップＳ３１０３に行くようにしてもよい。これにより、強制フォーカスマニュアルモードには入らずにＡＦモードを維持し、フォーカス電子リング１２６あるいはフォーカスデマンド４７０３の操作終了後、すなわちフォーカス指令の変化を検出し、その後その指令値の変化が終了したことを検出した場合に、フォーカスレンズ群１０４を移動させてＡＦ評価値のピークが検出された位置で停止させることが可能となる。このときのフォーカスレンズ群の移動方法は、フォーカス位置変更指令によるフォーカスレンズ群の移動方向の指示に従いフォーカスレンズ群をＡＦ評価値のピーク位置まで進ませる場合（請求項６）、ＡＦ評価値のピーク位置のうち最後のピーク位置までフォーカスレンズ群を戻す場合（請求項８）、ＡＦ評価値のピーク位置のうちＡＦ評価値が最大となったピーク位置までフォーカスレンズ群を戻す場合（請求項１０）のいずれかであるのがよい。
【実施例７】
【０１１８】
図５６において、ステップＳ５６０３のＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｔｒｕｅが成立した場合、ステップＳ５６０４に行かずステップＳ５６０７に行き、ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅを実行し、さらにステップＳ５６０７を実行後にＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌＭｏｄｅＦｌａｇ＝Ｆａｌｓｅを実行したのち、サブルーチンＳｅｔＦｏｃｕｓＳｅａｒｃｈＭｏｄｅ２を終了することとしてもよい。また、図５３において、ステップＳ５３０１を実行する前に、ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅが成立しているかどうかをチェックし、成立していない場合は、ステップＳ５３０１に行く。また、ＦｏｃｕｓＳｅａｒｃｈＭｏｄｅＦｌａｇ＝Ｔｒｕｅが成立している場合は、サブルーチンＳｅｔＦｏｒｃｅｄＦｏｃｕｓＭａｎｕａｌを終了する。このような処理を行うと、フォーカス電子リング１２６あるいはフォーカスデマンド４７０３の操作が開始された場合に、フォーカスレンズ群１０４を移動させてＡＦ評価値のピークを探し、検出したピーク位置で停止することが可能となる。
【０１１９】
ここで、個々のＡ／Ｄ変換器やＤ／Ａ変換器のビット数を１６ビットや８ビットなどに固定したが、このビット数以外でも構成可能であることは言うまでも無い。
【０１２０】
また、さまざまな基準値にある固定値を設定しているが、その値が他の値であっても構成可能であることは言うまでも無い。例えば、基準時間では「０」を用いることで、タイムラグなしで操作可能となる。
【０１２１】
ここで、光学系において、フォーカス光学系はコンペンセータの機能を有していてもかまわない。
【図面の簡単な説明】
【０１２２】
【図１】本発明のレンズ装置の基本構成図
【図２】ズーム制御部の構成図
【図３】ＩＲＩＳ制御部の構成図
【図４】フォーカス制御部の構成図
【図５】エクステンダ制御部の構成図
【図６】フォーカスモードＳＷ部の構成図
【図７】ズームシーソーＳＷ部の構成図
【図８】ＩＲＩＳ指令部の構成図
【図９】フォーカス電子リング部の構成図
【図１０】２相パルス発生器の出力の説明図
【図１１】メインルーチンのフローチャート
【図１２】初期化処理のフローチャート
【図１３】レンズ情報の初期化処理のフローチャート
【図１４】タイマ割り込み処理のフローチャート
【図１５】レンズモード入力処理のフローチャート
【図１６】レンズ位置入力のフローチャート
【図１７】レンズ指令入力処理のフローチャート
【図１８】フォーカス制御モード入力処理のフローチャート
【図１９】ズームモード入力処理のフローチャート
【図２０】ＩＲＩＳモード入力処理のフローチャート
【図２１】ズーム指令値入力処理のフローチャート
【図２２】ズーム指令作成演算処理のフローチャート
【図２３】ズーム指令値変換処理のフローチャート
【図２４】ＩＲＩＳ指令値入力処理のフローチャート
【図２５】フォーカス指令値入力処理のフローチャート
【図２６】ズーム位置算出のフローチャート
【図２７】ＩＲＩＳ位置検出処理のフローチャート
【図２８】エクステンダ倍率検出処理のフローチャート
【図２９】ＩＲＩＳ位置制御処理のフローチャート
【図３０】ズーム速度制御処理のフローチャート
【図３１】フォーカス制御処理のフローチャート
【図３２】ＡＦ制御処理のフローチャート
【図３３】ＡＦ評価値レンズ駆動処理のフローチャート
【図３４】フォーカスサーボ制御選択のフローチャート
【図３５】フォーカス速度制御処理のフローチャート
【図３６】ＡＦ評価値のピークサーチ処理のフローチャート
【図３７】フォーカスサーチ用データの初期化処理のフローチャート
【図３８】フォーカス速度指令のピークホールド処理のフローチャート
【図３９】フォーカスサーチモード設定処理のフローチャート
【図４０】フォーカスサーチ制御処理のフローチャート
【図４１】フォーカスサーチモード解除処理のフローチャート
【図４２】サーチモードの光学端検出処理のフローチャート
【図４３】レンズ制御用データの初期化処理のフローチャート
【図４４】マニュアルフォーカスモード制御処理のフローチャート
【図４５】フォーカス位置制御処理のフローチャート
【図４６】オートフォーカス及びピークサーチモード制御処理のフローチャート
【図４７】アクセサリインターフェース部の構成図
【図４８】フォーカス制御切替えＳＷの構成図
【図４９】フォーカスデマンド端および逆操作検出処理のフローチャート
【図５０】フォーカスデマンド端検出後の反転操作検出処理のフローチャート
【図５１】デマンド反転終了検出処理のフローチャート
【図５２】フォーカスデマンド端検出処理のフローチャート
【図５３】フォーカス強制マニュアル設定処理のフローチャート
【図５４】オートフォーカス及びピークサーチモード制御処理のフローチャート
【図５５】フォーカスサーボ制御選択のフローチャート
【図５６】フォーカスサーチモード設定処理のフローチャート
【図５７】オートフォーカスおよびピークサーチモード設定処理のフローチャート
【図５８】強制マニュアル終了後のＡＦピーク位置移動要求設定処理のフローチャート
【図５９】フォーカスサーボ制御選択のフローチャート
【図６０】ＡＦピーク位置へのフォーカス移動処理のフローチャート
【図６１】フォーカス指令値入力処理のフローチャート
【図６２】フォーカス速度指令値入力処理のフローチャート
【図６３】フォーカス指令値入力処理のフローチャート
【図６４】フォーカス指令値入力処理のフローチャート
【符号の説明】
【０１２３】
１０１  固定前玉
１０２  ズームレンズ群
１０３  フォーカスレンズ群
１０４  ＩＲＩＳレンズ群
１０５  エクステンダ
１０６  ＣＣＤ
１０７  ズームリング
１０８  ＩＲＩＳリング
１１０  ズーム制御部
１１１  ＩＲＩＳ制御部
１１２  フォーカス制御部
１１３  エクステンダ制御部
１１４  ＡＦ評価値部
１２０  ＣＰＵ
１２１  タイマ
１２２  メモリ
１２３  フォーカスモードＳＷ部
１２４  ズームシーソーＳＷ部
１２５  ＩＲＩＳ指令部
１２６  フォーカス電子リング部
１２７  アクセサリインターフェース部
１２８  フォーカス制御切替ＳＷ部
【図１】
2006030475.tif 000003
【図２】
2006030475.tif 000004
【図３】
2006030475.tif 000005
【図４】
2006030475.tif 000006
【図５】
2006030475.tif 000007
【図６】
2006030475.tif 000008
【図７】
2006030475.tif 000009
【図８】
2006030475.tif 000010
【図９】
2006030475.tif 000011
【図１０】
2006030475.tif 000012
【図１１】
2006030475.tif 000013
【図１２】
2006030475.tif 000014
【図１３】
2006030475.tif 000015
【図１４】
2006030475.tif 000016
【図１５】
2006030475.tif 000017
【図１６】
2006030475.tif 000018
【図１７】
2006030475.tif 000019
【図１８】
2006030475.tif 000020
【図１９】
2006030475.tif 000021
【図２０】
2006030475.tif 000022
【図２１】
2006030475.tif 000023
【図２２】
2006030475.tif 000024
【図２３】
2006030475.tif 000025
【図２４】
2006030475.tif 000026
【図２５】
2006030475.tif 000027
【図２６】
2006030475.tif 000028
【図２７】
2006030475.tif 000029
【図２８】
2006030475.tif 000030
【図２９】
2006030475.tif 000031
【図３０】
2006030475.tif 000032
【図３１】
2006030475.tif 000033
【図３２】
2006030475.tif 000034
【図３３】
2006030475.tif 000035
【図３４】
2006030475.tif 000036
【図３５】
2006030475.tif 000037
【図３６】
2006030475.tif 000038
【図３７】
2006030475.tif 000039
【図３８】
2006030475.tif 000040
【図３９】
2006030475.tif 000041
【図４０】
2006030475.tif 000042
【図４１】
2006030475.tif 000043
【図４２】
2006030475.tif 000044
【図４３】
2006030475.tif 000045
【図４４】
2006030475.tif 000046
【図４５】
2006030475.tif 000047
【図４６】
2006030475.tif 000048
【図４７】
2006030475.tif 000049
【図４８】
2006030475.tif 000050
【図４９】
2006030475.tif 000051
【図５０】
2006030475.tif 000052
【図５１】
2006030475.tif 000053
【図５２】
2006030475.tif 000054
【図５３】
2006030475.tif 000055
【図５４】
2006030475.tif 000056
【図５５】
2006030475.tif 000057
【図５６】
2006030475.tif 000058
【図５７】
2006030475.tif 000059
【図５８】
2006030475.tif 000060
【図５９】
2006030475.tif 000061
【図６０】
2006030475.tif 000062
【図６１】
2006030475.tif 000063
【図６２】
2006030475.tif 000064
【図６３】
2006030475.tif 000065
【図６４】
2006030475.tif 000066