(57)【要約】【課題】  焦点演算専用ハードウェアの規模を最小にしつつ、演算時間を短縮することができ、これによりタイムラグが小さくかつ検出能力の非常に高い焦点検出装置およびその制御方法を提供する。【解決手段】  被写体からの反射光を複数の受光部で受光して光電変換するオートフォーカスセンサ３と、このオートフォーカスセンサ３の出力をデジタル信号に変換するＡ／Ｄ変換部８と、このＡ／Ｄ変換部８の出力を記憶するメモリ部１０，１４と、メモリ部１４内のデータに基づいて焦点検出演算を実行する第２ＡＦ演算部１１と、メモリ部１０内のデータを上記第２ＡＦ演算部１１の演算用に加工して上記メモリ部１４に再記憶するＡＦ制御回路１と、を備えている。【選択図】      図３
2006145984.tif 000002
【特許請求の範囲】
【請求項１】
被写体からの反射光を複数の受光部で受光して光電変換するオートフォーカスセンサと、
前記オートフォーカスセンサの出力をデジタル信号に変換する変換手段と、
前記変換手段の出力を記憶する記憶手段と、
前記記憶手段の記憶内容に基づいて焦点検出演算を実行する演算手段と、
前記記憶手段の記憶内容を前記演算手段の演算用に加工して前記記憶手段に再記憶する制御手段と、
を備えたことを特徴とする焦点検出装置。
【請求項２】
前記記憶手段は、前記変換手段の出力を前記演算手段の演算用として記憶するとともに前記制御手段による加工後のデータを前記演算手段の再演算用として再記憶する第１記憶手段、および前記変換手段の出力を前記制御手段による加工用として記憶する第２記憶手段を有することを特徴とする請求項１に記載の焦点検出装置。
【請求項３】
前記第１記憶手段はフリップフロップであり、第２記憶手段はランダム・アクセス・メモリであることを特徴とする請求項２に記載の焦点検出装置。
【請求項４】
被写体からの反射光を複数の受光部で受光して光電変換するオートフォーカスセンサを備えた焦点検出装置において、
前記オートフォーカスセンサの出力をデジタル信号に変換するステップと、
前記変換出力を記憶するステップと、
前記記憶内容に基づいて焦点検出演算を実行するステップと、
前記記憶内容を前記演算用に加工して再記憶するステップと、
を備えたことを特徴とする焦点検出装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラの焦点検出演算を高速で行う焦点検出装置およびその制御方法に関する。
【背景技術】
【０００２】
撮影レンズを通過した光束を一対の光電変換素子上に導いて、その各光電変換素子の出力に基づく焦点検出演算を実行することにより、撮影レンズのデフォーカス量を検出するＴＴＬ位相差自動焦点検出（ＡＦ）方式がある。この方式は、一般的に一眼レフレックスカメラにおいて多く採用されている。
【０００３】
また、最近の一眼レフレックスカメラには、複数の焦点検出エリアを持つマルチＡＦが多く採用されており、その測距ポイント数も数多くなっている。
【０００４】
したがって、焦点検出演算は演算時間がかかる上に、測距ポイントが多くなっていることから、全ての焦点検出エリアについて演算を完了するには数十ｍｓ単位の時間を要し、合焦までのタイムラグの増加につながっている。
【０００５】
焦点検出演算はマイクロコンピュータの種々の演算命令（コンピュータプログラム）を使って焦点検出アルゴリズムを構成し、焦点検出演算を行うのが一般的であり、演算時間を短縮するためにマイクロコンピュータの動作クロックを高速化したり、高性能なマイクロコンピュータを使用したりしているが、このような高速化にはおのずと限界がある。
【０００６】
そこで、マイクロコンピュータによる演算をやめて、演算専用ハードウェアによって焦点検出演算を行う技術がある。
【０００７】
例えば、繰り返し行われる演算処理を専用のハードウェアに行わせ、焦点ずれ量を演算する技術がある（例えば特許文献１）。さらに、演算時間短縮を目的に、像ずれ演算のために焦点検出センサデータの相関結果の極値を求める回路を持つ技術がある（例えば特許文献２）。
【０００８】
このように、演算時間短縮のために焦点検出演算をハードウェアによって行う技術が知られている。
【特許文献１】特開平５−８８０７６号公報
【特許文献２】特許３０８５０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記従来技術には以下のような問題点がある。  
焦点検出演算で最も演算時間を要するのは、一対の光電変換素子の出力の相関を演算する相関演算部分であり、特許文献１に開示の技術のように、繰り返し所定の演算を行う相関演算を専用のハードウェアで演算することには、大きな短縮効果がある。しかし、相関演算をハードウェアで演算することは示唆されているが、それ以外の演算処理について、マイクロコンピュータとハードウェアの演算の分担については示唆されていない。
【００１０】
また、相関演算結果に基づいて像ずれ量を演算することが開示されているが、相関演算結果から像ずれ量を演算するには複雑な判断処理が必要であり、ハードウェアで像ずれ量を演算することはハードウェア設計上困難である。
【００１１】
さらに、特許文献２に開示の技術では、相関値の極値までを判定することもハードウェア設計上困難である。
【００１２】
すなわち、ハードウェアが得意とする演算処理は、特許文献１に示唆されているように繰り返し演算であり、また、アルゴリズムをハードウェア化するからには、後で設計変更のない単純演算処理でなくてはならない。逆に、マイクロコンピュータが得意とする演算処理は、ハードウェアで実現しようとすると回路規模が大きくなるような複雑な演算部分である。また、処理速度はハードウェアで演算した方がはるかに高速である。
【００１３】
このように、焦点演算をハードウェア化するには全ての演算アルゴリズムをハードウェア化することは困難であり、演算時間と演算処理内容を加味してどこまでをハードウェア化すればよいかを切り分ける必要がある。
【００１４】
しかし、そのような切り分けを示唆した従来技術は見当たらない。
【００１５】
本発明は、従来技術の上記問題点に鑑みて成されたものであり、焦点検出演算の一部をハードウェア化したカメラの焦点検出装置において、焦点演算専用ハードウェアの規模を最小にしつつ、演算時間を短縮することを目的とし、より具体的には、演算時間短縮効果の大きい演算部、あるいは、少ない回路規模で演算できる演算部、あるいは、後で演算仕様変更の可能性のない演算部のみをハードウェア化して演算時間を短縮し、それ以外の演算部は制御手段であるマイクロコンピュータで演算するとともに、ハードウェア演算部への入力である焦点検出センサデータとして、一対の光電変換素子出力と、この一対の光電変換素子出力をマイクロコンピュータで加工処理したデータとを切り換えて使用することにより、ハードウェアの回路規模を最小にすることである。
【００１６】
上記加工処理をハードウェアにて構成すると、回路規模が増大化してコストアップとなってしまう。
【課題を解決するための手段】
【００１７】
請求項１に係る発明の焦点検出装置は、被写体からの反射光を複数の受光部で受光して光電変換するオートフォーカスセンサと、このオートフォーカスセンサの出力をデジタル信号に変換する変換手段と、この変換手段の出力を記憶する記憶手段と、この記憶手段の記憶内容に基づいて焦点検出演算を実行する演算手段と、上記記憶手段の記憶内容を上記演算手段の演算用に加工して上記記憶手段に再記憶する制御手段と、を備えている。
【００１８】
請求項４に係る発明の焦点検出装置の制御方法は、被写体からの反射光を複数の受光部で受光して光電変換するオートフォーカスセンサを備えた焦点検出装置において、上記オートフォーカスセンサの出力をデジタル信号に変換するステップと、この変換出力を記憶するステップと、この記憶内容に基づいて焦点検出演算を実行するステップと、上記記憶内容を前記演算用に加工して再記憶するステップと、を備えている。
【発明の効果】
【００１９】
焦点演算専用ハードウェアの規模を最小にしつつ、演算時間を短縮することができ、これによりタイムラグが小さくかつ検出能力の非常に高い焦点検出装置およびその制御方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００２０】
［１］以下、本発明の第１の実施形態について、図面を参照して説明する。
【００２１】
まず、本発明の概念を図１に示している。  
２０１は制御部である外部コントローラ、２０２は演算集積回路（演算ＩＣという）、２０３はオートフォーカスセンサ（ＡＦセンサという）である。演算ＩＣ２０２は、アナログ／デジタル変換部（Ａ／Ｄ変換部という）２０４、メモリ部２０５、演算部２０６を有している。外部コントローラ２０１は、演算ＩＣ２０２およびＡＦセンサ２０３の動作を制御する。
【００２２】
以下、動作を説明する。
【００２３】
ＡＦセンサ２０３より出力されるセンサデータ（アナログ信号）は、Ａ／Ｄ変換部２０４によりデジタル信号に変換される。このＡ／Ｄ変換されたセンサデータは、メモリ部２０５に記憶される。演算部２０６は、メモリ部２０５に記憶されているセンサデータを読み出して焦点検出演算を実行する。
【００２４】
演算部２０６の演算結果は、外部コントローラ２０１に供給される。外部コントローラ２０１は、演算部２０６の演算結果に基づいて、焦点調節動作を実行する。
【００２５】
とくに、外部コントローラ２０１は、演算部２０６の演算結果の信頼性が低い場合や検出不能（演算不能）の場合に、メモリ部２０５に記憶されているセンサデータを読み出して加工を施す。この加工には、さまざまな処理があり、ノイズを除去するために複数回の平均値を求めたり、特定の周波数成分を抽出するフィルタ処理等がある。
【００２６】
そして、外部コントローラ２０１は、読み出したセンサデータを加工した後、その加工したデータをメモリ部２０５に記憶する。演算部２０６は、メモリ部２０５に記憶されている上記加工されたセンサデータを読み出して、再度、焦点検出演算を実行する。外部コントローラ２０１は、演算部２０６の再演算結果に基づいて、焦点調節動作を実行する。
【００２７】
本発明に関し、図１よりも詳細な本発明の概念を図２に示している。  
演算ＩＣ２０２は、アナログ／デジタル変換部（Ａ／Ｄ変換部という）２０４、第１メモリ部２０５、演算部２０６、第２メモリ部２０７を有している。他の構成は図１と同じであり、その説明は省略する。
【００２８】
Ａ／Ｄ変換部２０４でＡ／Ｄ変換されたセンサデータは、第１メモリ部２０５と第２メモリ部２０７に記憶される。演算部２０６は、第１メモリ部２０５に記憶されているセンサデータを読み出して焦点検出演算を実行する。
【００２９】
演算部２０６の演算結果は、外部コントローラ２０１に供給される。外部コントローラ２０１は、演算部２０６の演算結果に基づいて焦点調節動作を実行する。
【００３０】
とくに、外部コントローラ２０１は、演算部２０６の演算結果の信頼性が低い場合や検出不能（演算不能）の場合に、第２メモリ部２０７に記憶されているセンサデータを読み出して加工を施す。この加工には、さまざまな処理があり、ノイズを除去するために複数回の平均値を求めたり、特定の周波数成分を抽出するフィルタ処理等がある。
【００３１】
そして、外部コントローラ２０１は、読み出したセンサデータを加工した後、その加工したデータを第１メモリ部２０５に記憶する。演算部２０６は、第１メモリ部２０５に記憶された上記加工後のセンサデータを読み出して、再度、焦点検出演算を実行する。外部コントローラ２０１は、演算部２０６の再演算結果に基づいて、焦点調節動作を実行する。
【００３２】
以下、本発明の具体的な構成を図３により説明する。  
１はＡＦ制御全体を司るＡＦ制御部で、マイクロコンピュータ（ＣＰＵ）を搭載し、上記外部コントローラ２０１に相当する。２は演算集積回路（演算ＩＣという）で、ＡＦ制御部１により制御されることにより、マルチＡＦセンサ３の制御およびＡＦ演算の一部を行うもので、上記演算ＩＣ２０２に相当する。３は複数の焦点検出エリアを持つマルチオートフォーカスセンサ（マルチＡＦセンサという）で、上記ＡＦセンサ２０３に相当する。
【００３３】
以下、焦点検出結果が算出されるまでの流れを説明する。
【００３４】
ＡＦ制御部１は、シリアル通信部４を介してレジスタ部５の値を設定する。このレジスタ部５は、マルチＡＦセンサ３の制御およびＡＦ演算に関わる各種パラメータを設定するものである。
【００３５】
レジスタ部５に設定された周波数値のクロックが、クロック発生部６からマルチＡＦセンサ３に供給される。このクロック発生部６はマルチＡＦセンサ３を駆動するための源振クロックを発生する。
【００３６】
マルチＡＦセンサ３は、複数の光電変換素子から構成されている。ＡＦセンサ制御部７は、レジスタ部５の設定パラメータ値に従って、マルチＡＦセンサ３における各光電変換素子の電荷蓄積動作（積分動作）の制御や電荷蓄積状態の読み出し制御を司る。すなわち、ＡＦセンサ制御部７は、マルチＡＦセンサ３を制御するための所定のパルスを発生させるシーケンサである。
【００３７】
マルチＡＦセンサ３は、ＡＦセンサ制御部７の制御に従って、積分動作終了後に、積分結果（アナログ値）をセンサデータとして出力する。このセンサデータが、Ａ／Ｄ変換部８へ、１画素毎に出力される。Ａ／Ｄ変換部８は、順に１画素毎に出力されるセンサデータをデジタル値に変換して、後段の第１ＡＦ演算部９へ供給する。
【００３８】
ＡＦ演算は、以下の第１ＡＦ演算部９、第２ＡＦ演算部１１、第３ＡＦ演算部１３の３つに分かれている。
【００３９】
まず、第１ＡＦ演算部９は、１画素毎のセンサデータに後述する演算を実行する。この演算は、Ａ／Ｄ変換部８がセンサデータを１画素出力するたびに、その画素出力に対して実行される。したがって、Ａ／Ｄ変換しながら演算するので、第１ＡＦ演算部９の演算を行うことによるカメラ全体に及ぼすタイムラグの増加は、非常に微々たるものである。第１ＡＦ演算部９の演算結果は、第２メモリ部（図２の第２メモリ部２０７に相当する）１０に格納されるとともに、第１メモリ部（図２の第１メモリ部２０５に相当する）１４にも供給される。
【００４０】
第２メモリ部１０には、ＡＦセンサ制御およびＡＦ演算用ＩＣ２の全ての演算結果が格納される。この第２メモリ部１０内の演算結果を、シリアル通信部４を介して、ＡＦ制御部１に読み出しできる。
【００４１】
そして、第２ＡＦ演算部１１は、第１ＡＦ演算部９の出力を演算するものであり、後述するがマルチＡＦセンサ３内の一対の光電変換素子の出力の相関を演算する相関演算を主たる演算とする。この相関演算は、ＡＦ制御部１内で演算すると演算時間が長くなるので、カメラ全体に及ぼすタイムラグ短縮のためにハードウェアで構成される第２ＡＦ演算部１１で実行される。すなわち、第１ＡＦ演算部９及び第２演算部１１は、足し算器や引き算器や掛け算器などから構成されるハードウェアである。第２ＡＦ演算部の演算結果は、第２メモリ部１０へ格納される。
【００４２】
第２ＡＦ演算部１１は、上記相関演算の他にも被写体のコントラストや単調変化性を判断するための演算も行う。これについても後述する。
【００４３】
さらに、合焦点検出エリアにおける第２ＡＦ演算部１１の演算が終了すると、割り込み発生部１２からＡＦ制御部１へ所定の割り込み信号が供給され、演算が終了したことが報知される。
【００４４】
最後に、ＡＦ制御部１が上記割り込み信号を受信すると、第２メモリ部１０から演算結果が読み出されて、ＡＦ制御部１内の第３ＡＦ演算部１３によってＡＦの最終演算が実行される。
【００４５】
第３ＡＦ演算部１３は、第２ＡＦ演算部１１の相関演算結果の信頼性を演算する演算から始まって、不図示の撮影レンズのデフォーカス量を演算するまでを行う。この第３ＡＦ演算部１３の演算は、繰り返し部分の演算部分が少なく、かつ、演算アルゴリズムが複雑で、かつ、変更の可能性もある演算であるのでハードウェアで実行するのは不向きである。また、相関演算のように長い演算時間を要しないので、マイクロコンピュータによる演算の方が向いている。
【００４６】
以上のような流れによって、マルチＡＦセンサ３を制御して最終的な出力である撮影レンズのデフォーカス量を演算する。
【００４７】
図４はカメラシステムに搭載されるＡＦ機構を示している。ＴＴＬ位相差ＡＦ方式を一眼レフレックスカメラに適用した場合の例で示す。
【００４８】
３０は交換レンズで、フォーカスレンズ３１を有している。フォーカスレンズ３１は、光軸方向に駆動されることによって合焦状態を得る。３２はフォーカスレンズ３１を駆動するモータードライバである。３３はレンズＣＰＵで、カメラ本体からデフォーカス量を受信して、フォーカスレンズ３１の駆動量を演算し、その駆動量だけフォーカスレンズ３１を駆動制御する。３４はメインミラーで、ＡＦ時は図示のようにダウンして、光束をＡＦ光学系３８とファインダ光学系３６に分割するが、撮影時は上方へアップして、全光束を撮像素子４４へ導く。３５はファインダ用スクリーン、３６はファインダ光学系、３７はファインダ接眼レンズである。３８はサブミラーで、メインミラー３４がダウンしているときには光束をＡＦ光学系３９へ全反射し、メインミラー３４がアップしているときには撮像素子４４への光束を遮らない位置まで一緒にアップする。３９はＡＦ光学系で、これについては図５で詳細に説明する。
【００４９】
４０はＡＦセンサで、ＡＦ光学系で分割された光束を内部の一対の光電変換素子列に入射して焦点検出のための信号を発生するもので、たとえば一対の光電変換素子列を複数もつマルチＡＦセンサであり、図３のマルチＡＦセンサ３に相当する。これについては、図５と図６で詳細に説明する。４１はＡＦ制御を司るＣＰＵで、演算に先立ってレンズＣＰＵ３３から演算に必要なレンズデータを受信し、演算結果であるデフォーカス量をレンズＣＰＵ３３へ送信するもので、図３のＡＦ制御部１に相当する。４２はＡＦセンサ制御用およびＡＦ演算用の演算集積回路（演算ＩＣという）で、ＣＰＵ４１によって制御されることにより、ＡＦセンサ４０の制御およびＡＦ演算の一部を司るもので、図３の演算ＩＣ２に相当する。
【００５０】
４３はフォーカルプレーンシャッター、４４は撮像素子（ＣＣＤ）で、銀塩カメラであればフィルムに該当する。４５は補助光回路で、被写体が低輝度で焦点検出が不能の場合に、焦点検出を補助する補助光を被写体へ向けて発光する。４６は補助光投光用の投光レンズである。
【００５１】
図５に、ＡＦ光学系３９およびＡＦセンサ４０の構成を示している。公知のＴＴＬ位相差ＡＦ光学系の構成であるので、簡単に説明する。
【００５２】
撮影レンズ５０が合焦状態にあるときには、撮影レンズ５０を透過した光束は、ＡＦ光学系３９の前面の仮想面である撮像等価面で合焦し、コンデンサレンズ５２で集光および分割されてセパレータ絞り５３で光束が絞られ、セパレータレンズ５４でＡＦセンサ４０内の受光部（光電変換素子）であるセンサアレイ５５Ａ上およびセンサアレイ５５Ｂ上にそれぞれ結像される。
【００５３】
センサアレイ５５Ａとセンサアレイ５５Ｂの結像間隔を測定することによって撮影レンズのデフォーカス量を測定する公知のＴＴＬ位相差ＡＦ方式が構築される。
【００５４】
図６は、ＡＦセンサ４０が４ライン３点式のマルチＡＦセンサである場合のセンサ構成を示している。中央点が縦ライン６１と横ライン６０のクロスセンサであり、左右の２点が縦ライン６２，６３のラインセンサである。すなわち、図５で示したような一対の光電変換素子列（センサアレイ５５Ａ，５５Ｂ）が４ライン存在する構成となっている。
【００５５】
図７に、ＡＦセンサ制御用およびＡＦ演算用の演算ＩＣ４２における第１ＡＦ演算部９および第２ＡＦ演算部１１および第２メモリ部１０内のデータの流れを示している。
【００５６】
図３に示したように、マルチＡＦセンサ３の出力は１画素毎にＡＤ変換回路８によってアナログ信号からデジタル信号へ変換され、１画素の変換が完了するたびに第１ＡＦ演算部９へ送信される。第１ＡＦ演算部９は、オフセット補正演算回路１５、照度補正演算回路１６、微分フィルタ演算回路１７で構成される。
【００５７】
Ａ／Ｄ変換回路８の出力は、上記オフセット補正演算回路１５へ入力される。オフセット補正演算回路１５は、光電変換素子の各画素のオフセット出力（積分時間＝０の場合に出力されるオフセット成分）を補正するものである。演算の詳細は後述する。
【００５８】
オフセット補正回路１５の出力は、上記照度補正演算回路１６へ入力される。照度補正演算回路１６は、マルチＡＦセンサ３の前面に配置されているＡＦ光学系３９内のコンデンサレンズ５２とセパレータレンズ５４の周辺光量低下による照度不均一性を補正し、かつ、光電変換素子の各画素の感度ばらつきを補正するものである。演算の詳細は後述する。
【００５９】
照度補正演算回路１６の出力は、上記微分フィルタ演算回路１７へ入力される。微分フィルタ演算回路１７は、微分処理を行ってＤＣ成分を除去する演算を行う。演算の詳細は後述する。
【００６０】
オフセット補正演算回路１５および照度補正演算回路１６の演算時は、メモリ部１０のオフセット補正・照度補正用データメモリ５６に格納されている補正データを使用して補正演算を行う。
【００６１】
第１ＡＦ演算部９の出力は、センサデータとして第２メモリ部１０内のセンサデータメモリ１８へ格納される。センサデータメモリ１８は、４ライン中の３ラインの画素の出力を格納する領域を持つ。センサデータメモリ１８の内容は、ＡＦ制御回路１から読み出せるようになっている。
【００６２】
また、第１ＡＦ演算部９の出力は、センサデータとしてセンサデータフリップフロップ（ＦＦ）２９に供給され、格納される。センサデータフリップフロップ２９は、図３の第１メモリ部１４に相当するもので、ＡＦ制御回路１による書き込みが可能となっている。
【００６３】
センサデータフリップフロップ２９は、第２ＡＦ演算部１１の各回路に対して並列にセンサデータを出力する。これに対し、センサデータメモリ１８として、ＲＡＭ（リード・オンリ・メモリ）が採用されている。一般にフリップフロップは、同一メモリ容量の場合にＲＡＭに比較して回路規模が大きくなる。このため、センサデータフリップフロップ２９は、４個のライン全ての容量を有さず、１個のラインに対応する画素出力を格納する領域を有する。このようにして回路規模が増大することを防止している。
【００６４】
従って、４個のラインのセンサデータは、読み出し順に、センサデータフリップフロップ２９に上書きされるようになっている。つまり、４個のラインを読み出した場合は、最後に読み出したラインのセンサデータがセンサデータフリップフロップ２９に格納されている。
【００６５】
また、センサデータメモリ１８は、３個のライン分のメモリ容量を有しており、４個のラインが読み出された場合は最初の３個のラインのセンサデータが格納されるように構成されている。
【００６６】
このように、４個のラインのセンサデータに対して３個分をセンサデータメモリ１８に、１個分をセンサデータフリップフロップ２９に格納することにより、無駄なメモリ領域を持たず回路規模を小さくするようにしている。
【００６７】
ここで、センサデータフリップフロップ２９およびセンサデータメモリ１８には次の機能がある。まず、センサデータフリップフロップ２９は、第１ＡＦ演算部９の出力を演算用として記憶するとともに、ＡＦ制御回路１による加工後のデータを再演算用として再記憶（更新記憶）する第１記憶手段として機能する。センサデータメモリ１８は、第１ＡＦ演算部９の出力をＡＦ制御回路１による加工用として記憶する第２記憶手段として機能する。
【００６８】
第２ＡＦ演算部１１は、相関演算回路１９、単調判定回路２０、コントラスト判定回路２１を有し、これら回路に対し、センサデータフリップフロップ２９からそれぞれ独立してセンサデータを入力する。
【００６９】
上記相関演算回路１９は、センサアレイ５５Ａのセンサデータとセンサアレイ５５Ｂのセンサデータとの相関度合を演算する。この演算は、センサアレイ５５Ａとセンサアレイ５５Ｂの結像間隔を演算するための最も重要な演算である。また、相関演算は、全ＡＦ演算の中で最も演算時間を要する演算個所であり、単純な演算の繰り返しなので、最もハードウェアでの演算に適するとともに、タイムラグの短縮効果も大きい演算個所である。相関演算結果は、メモリ部１０内の相関演算結果メモリ２２に格納され、ＡＦ制御回路１から読み出しできるようになっている。演算の詳細は後述する。
【００７０】
上記単調判定回路２０は、相関演算回路１９で相関演算を行うセンサデータが単調的に増減しているか否かを判定する回路である。この単調判定結果は、メモリ部１０内の単調判定結果メモリ２３に格納され、ＡＦ制御回路１から読み出しできるようになっている。ハードウェアの構成を簡単にするために、単に判定結果をメモリに残すように構成し、実際に判定結果を演算に反映するのはＡＦ制御回路１内の第３ＡＦ演算部１３が行う。演算の詳細は後述する。
【００７１】
上記コントラスト判定回路２１は、相関演算回路１９で相関演算を行うセンサデータのコントラストが有るか否かを判定する回路である。このコントラスト判定結果は、第２メモリ部１０内のコントラスト判定結果メモリ２４に格納され、ＡＦ制御回路１から読み出しできるようになっている。ハードウェアの構成を簡単にするために、単に判定結果をメモリに残すように構成し、実際に判定結果を演算に反映するのはＡＦ制御回路１内の第３ＡＦ演算部１３が行う。演算の詳細は後述する。
【００７２】
以上の第１ＡＦ演算部９および第２演算部１１における各演算回路は、繰り返し演算が多く、また、既に確立した演算技術なので後に演算仕様の変更の可能性もなく、また、特に相関演算回路１９は仮にマイクロコンピュータで演算すると多大な演算時間を必要とする回路である。したがって、ハードウェアでの演算に適する。
【００７３】
ＡＦ制御回路１は、不図示のフラッシュＲＯＭに格納されているＡＦ演算アルゴリズムのプログラムにしたがってＡＦの演算を行う第３ＡＦ演算部１３を含み、メモリ部１０の各メモリ領域からデータを読み出して、以下のような演算を行って撮影レンズ５０のデフォーカス量を演算する。すなわち、第３ＡＦ演算部１３は、最小値／極値判定回路２５、信頼性判定回路２６、デフォーカス量演算回路２７、デフォーカス量補正演算回路２８、センサデータ加工回路５７を有している。
【００７４】
上記最小値／極値判定回路２５は、相関演算結果メモリ２２、単調判定結果メモリ２３、およびコントラスト判定結果メモリ２４のデータから相関演算結果の極小値を選択していき、その最小値などを選択する回路である。演算の詳細は後述する。
【００７５】
上記信頼性判定回路２６は、最小値／極値判定回路２５の判定結果（選択結果）に基づいて、相関演算の信頼性を判定する回路である。演算の詳細は後述する。
【００７６】
上記デフォーカス量演算回路２７は、最小値／極値判定回路２５および信頼性判定回路２６の判定結果に基づいて、センサアレイ５５Ａとセンサアレイ５５Ｂの結像位置の像間隔（２像間隔）を演算し、その像間隔に基づいて撮影レンズ５０のデフォーカス量を演算する回路である。演算の詳細は後述する。
【００７７】
上記デフォーカス量補正演算回路２８は、デフォーカス量演算回路２７で演算したデフォーカス量を補正するものであり、温度や収差などに関するデフォーカス量の補正を行って、最終的にレンズＣＰＵ３３に送信するデフォーカス量を演算する回路である。演算の詳細は後述する。
【００７８】
上記センサデータ加工回路５７は、演算が不能の場合や演算の信頼性が低く採用できない場合に、センサデータメモリ１８またはセンサデータフリップフロップ２９より読み出したセンサデータを加工処理する回路である。加工したセンサデータは、センサデータフリップフロップ２９に出力して書込まれる。
【００７９】
演算ＩＣ２は、ＡＦ制御回路１からのレジスタ設定により、第２ＡＦ演算部１１のみの動作が可能なように構成されている。ＡＦ制御回路１からのレジスタ設定により、加工したセンサデータに基づいて第２ＡＦ演算部１１にて再度演算が行われる。上記加工処理の詳細は後述する。
【００８０】
以上の第３ＡＦ演算部１３内部の各演算は、繰り返し演算が少なく、また、後に演算仕様の変更の可能性もある、また、マイクロコンピュータで演算しても多大な演算時間を必要とするブロックではない。したがって、マイクロコンピュータでの演算に適する。
【００８１】
図８は演算ＩＣ２におけるＡＦセンサ制御と演算のタイムチャートである。
【００８２】
図６で説明したように、ＡＦセンサ４０は４つの独立したエリア（光電変換素子列が４ライン存在する構成）を持っている。まず、ＣＰＵ４１は積分条件（感度等の積分に必要な条件）をレジスタ部５へ設定する。さらに、ＡＦセンサ制御部７をレジスタ部５を介して動作させ、４エリア一斉にＡＦセンサ４０の積分動作を開始する。
【００８３】
積分動作の開始後、ＡＦセンサ４０は適正な電荷蓄積量になると不図示の内部回路が動作して積分を停止する。各エリアに当っている光の量がそれぞれ異なるので、積分終了時は各エリアでばらばらになる。
【００８４】
最も積分時間の長い（最も暗い）エリアの積分が終了すると、ＡＦセンサ制御部７をレジスタ部５を介して動作させてＡ／Ｄ変換部８を制御し、ＡＦセンサ４０が出力する１画素毎のアナログ出力をデジタル信号に変換する。この各画素出力は、例えばＡＦセンサ４０が出力する十数μｓ周期のパルス波形に同期して、アナログ信号で出力されるものであり、Ａ／Ｄ変換部８はこのパルス波形に同期してデジタル信号に変換する。
【００８５】
エリア１〜４の順で画素出力が読み出されていき、画素信号が１画素分読み出されるたびに、その画素出力に対応する第１ＡＦ演算部９の演算を行う。すなわち、第１ＡＦ演算部９は、十数μｓ以内にその画素の演算処理を終了させればよく、ハードウェア演算器にとっては十分処理可能な時間である。したがって、第１ＡＦ演算部９を実行することによるタイムラグの増加はほとんど無いように構成される。
【００８６】
エリア１の最終画素出力が終了すると、引き続いてＡ／Ｄ変換部８はエリア２の読み出しを開始する。第１ＡＦ演算部９は、エリア１の最終画素出力に対する演算処理を行った後に、第２ＡＦ演算部１１の演算処理を行う。
【００８７】
エリア１に対する第２ＡＦ演算部の処理は、エリア２のＡ／Ｄ変換中（すなわち、エリア２の第１ＡＦ演算部の処理中）に並行して実行する。すなわち、第２ＡＦ演算部１１は、（十数μｓ×エリア１の画素数）以内にその画素の演算処理を終了させればよく、それが達成できるようなハードウェア演算器の構成にする必要がある。したがって、第２ＡＦ演算部１１を実行することによるタイムラグの増加がほとんど無いように構成される。
【００８８】
以上説明したようなエリア１の読み出しおよび演算処理を、全エリアについて行う。エリア４の第２ＡＦ演算部１１の演算終了すると、割り込み発生部１２はＣＰＵ４１へ割り込み信号を出力して、演算が終了したことを知らせる。
【００８９】
そして、ＣＰＵ４１は割り込み信号を受信するとメモリ部１０から演算結果をシリアル通信部４を介して読み出し、第３ＡＦ演算部１３でマイクロコンピュータによる演算を行う。
【００９０】
この第３ＡＦ演算部１３での演算が終了すると、焦点検出演算の最終演算結果である撮影レンズのデフォーカス量が演算される。
【００９１】
図９は、演算の順序を示すラフなタイムチャートである。
【００９２】
第１ＡＦ演算部９は、Ａ／Ｄ変換部８の出力を受けて、まずオフセット補正演算を行い、引き続いて照度補正演算を行い、最後に微分フィルタ演算を行う（図８および図９の演算１）。
【００９３】
さらに、第２ＡＦ演算部１１は、第１ＡＦ演算部９の出力を受けて、コントラスト判定と単調判定と相関演算の３つを並行して行う（図８および図９の演算２）。  
また、第２ＡＦ演算部１１は、後述するように、ＡＦセンサの１ラインに相当する測距エリアを３分割（中央測距枠、左測距枠、右測距枠）した検出回路にてそれぞれ演算を行う。図９に示すように、コントラスト判定、単調判定、相関演算の各演算に対して、それぞれ上記３回路（中央測距枠、左測距枠、右測距枠）の演算を並列に実行する。
【００９４】
このようにして、上記３回路を時分割（直列）で演算するのに対して、演算時間を約１／３に短縮し高速化している。
【００９５】
さらに、第３ＡＦ演算部１３は、第２ＡＦ演算部１１の出力を受けて、まず最小値／極値判定を行い、引き続いて信頼性判定を行い、引き続いてデフォーカス量演算を行い、引き続いてデフォーカス量補正演算を行う。
【００９６】
まず、第１ＡＦ演算部９内のハードウェアによる演算構成を説明する。
【００９７】
以下に各演算ブロックの詳細を説明する。
【００９８】
理想的に均一輝度面を撮像しても、実際にはＡＦ光学系レンズ（コンデンサレンズ５２、セパレータレンズ５４）の周辺光量低下、および、画素個々の感度ばらつき（傾き成分、オフセット成分）によってフラットなセンサ出力にはならない。
【００９９】
このようにＡＦ光学系およびセンサ画素特性に関わるノイズ成分を補正する補正を総称してここではフラットネス補正といい、理想的な均一輝度面を撮像した場合にセンサ出力がフラットになるように補正を行う。
【０１００】
フラットネス補正には、オフセット補正と照度補正があり、画素個々のオフセット成分（固定パターンノイズ除去）を補正することをここではオフセット補正と呼び、ＡＦ光学系の周辺光量低下と各画素の感度ばらつきを補正することをここでは照度補正と呼ぶ。
【０１０１】
図１０は、オフセット補正の概念図である。
【０１０２】
光電変換素子は電荷蓄積時間（積分時間）とその出力（センサデータ）がほぼ比例するので、各画素毎に傾きがやや異なるが、図１０のような出力特性となる。この原点付近（図示破線で囲んだ部分）を拡大すると、図１１に示すように、積分時間＝０でも各画素によってわずかな出力差が生じる。この成分がオフセット成分（固定パターン成分）であり、オフセット補正とはこのオフセット量をあらかじめ測定しておき、センサデータにその量を補正して各画素で同図原点を通るようにするものである。
【０１０３】
図１２に、オフセット補正演算回路１５のハードウェア動作を示している。
【０１０４】
入力、出力として以下がある。
【０１０５】
入力：Ａ／Ｄ変換回路８の出力Ｄ（ｉ）［Ａ／Ｄ変換回路８の出力値］  
センサ感度データ（ＫＡＮＤ、１ビット）［レジスタ部５の設定値］  
オフセット補正データＯ１（ｉ）、Ｏ２（ｉ）［オフセット補正・照度補正用データメモリ］  
画素セレクトデータ（１ビット）［レジスタ部５の設定値］  
出力：補正後のデータＤ’(ｉ）
ここで、Ａ／Ｄ変換回路８の出力Ｄ（ｉ）は、画素出力そのものである。
【０１０６】
センサ感度データ（ＫＡＮＤ）は、ＡＦセンサ４０の感度を示している。ＡＦセンサ４０には低感度モードと高感度モードがあり、感度によってオフセット成分が異なるためである。
【０１０７】
オフセット補正データＯ１（ｉ）およびＯ２（ｉ）は、各感度毎のオフセット補正データ（Ｏ１（ｉ）は低感度モードでの補正データ、Ｏ２（ｉ）は高感度モードでの補正データ）である。これらの補正データは工場での製造工程において各ボディー毎に測定され、ＡＦ制御回路１内の不図示のＦＲＯＭ内に格納されている。オフセット補正開始に先立って、オフセット補正・照度補正用データメモリ５６にあらかじめ補正データが設定されている。
【０１０８】
また、オフセット補正は最初の演算であるので、レジスタ５に設定された画素セレクト情報によって有効画素の演算のみを行うようにしている。すなわち、Ａ／Ｄ変換回路８の出力は遮光画素やダミー画素の出力も含んでいるので、有効画素のみをセレクトして以後の演算部に出力する。
【０１０９】
まず、高感度用オフセット補正データ７０と低感度用オフセット補正データ７１（例えば、８ビットデータ）のどちらかを補正値として使用するかを、センサ感度データ（ＫＡＮＤ）７２にしたがってセレクタ７３で補正値として選択し、後段のレジスタ（１６ビット）７４へ送信する。
【０１１０】
一方、ＡＤ変換回路出力７５（例えば１０ビットセンサデータ）がＡＤ変換終了のたびに１画素毎にセレクタ７６（例えば、１６ビット単位で演算）に出力される。
【０１１１】
画素セレクト情報（１ビット、“１”は補正する（有効画素）、“０”は補正しない（無効画素））７７から今回何画素目の画素データを読み出しているのかをセレクタ７８で選択し、セレクタ７６はセレクタ７８が“１”のときのみ後段のレジスタ（１６ビット、上位６ビット＝０）７９にＡＤ変換回路出力７５の出力を送信する。
【０１１２】
引き算器８０は、レジスタ７９の出力（例えば、１６ビット）Ｄ（ｉ）からレジスタ７４の出力（例えば、８ビット）Ｏ（ｉ）を引き算し、その結果Ｄ’（ｉ）をレジスタ（１６ビット、上位６ビット＝０）８１へ出力する。  
Ｄ’（ｉ）＝Ｄ（ｉ）−Ｏ（ｉ）
最後に、レジスタ８１に格納された結果（例えば、１６ビット中に有効１０ビットで上位６ビットは０）Ｄ’（ｉ）は、次の照度補正回路１６へ送信される。
【０１１３】
図１３は、照度補正の概念図である。
【０１１４】
図１０でも説明したように、積分時間とセンサ出力（センサデータ）とがほぼ比例する。各画素毎に感度ばらつきがあるので図１０のように各画素毎に傾きがやや異なる。照度補正は、この感度ばらつきと光学系の周辺光量低下を補正するものであり、全画素である特定感度（ここでは、中間感度）の画素に出力を合わせるように補正する。
【０１１５】
すなわち、感度が低い画素には、“１”以上の係数を掛け算して出力を増大させ、逆に感度が高い画素には、“１”未満の係数を掛け算して出力を低下させる。
【０１１６】
図１４および図１５は、均一輝度面を撮像したときの照度補正前後の出力を示している。横軸には各画素の並びをとっていて、隣り合う画素の出力を結んだものである。
【０１１７】
補正前のデータは光学系の周辺光量低下と各画素の感度ばらつきによって、おわん型にぎざぎざした出力になるが、補正後のデータはフラットな出力になる。
【０１１８】
各画素の補正係数をあらかじめ測定しておき、補正前のセンサデータにその量を掛け算し、均一輝度面の出力が各画素で同じになるようにするものである。
【０１１９】
図１６は、照度補正回路１６のハードウェア動作を示す図である。
【０１２０】
入力、出力として以下がある。
【０１２１】
入力：オフセット補正演算回路の出力Ｄ’（ｉ）［レジスタ８１の出力値］  
センサ感度データ（ＫＡＮＤ、１ビット）［レジスタ７２の値、オフセット補正と同じ］  
照度補正データＨ１（ｉ）、Ｈ２（ｉ）［オフセット補正・照度補正用データメモリ５６］  
出力：補正後のデータＤ’’（ｉ）  
照度補正データＨ１（ｉ）およびＨ２（ｉ）は、各感度毎の照度補正データ（Ｈ１（ｉ）は低感度モードでの補正データ、Ｈ２（ｉ）は高感度モードでの補正データ）である。これらの補正データは工場での製造工程において各ボディー毎に測定され、ＡＦ制御回路１内の不図示のＦＲＯＭ内に格納されている。照度補正開始に先立って、オフセット補正・照度補正用データメモリ５６にあらかじめ補正データが設定されている。
【０１２２】
照度補正データは前述の補正係数であり、“１”前後の値であるので、例えば整数部が１ビット、小数部が８ビットの合計９ビットで構成されている。
【０１２３】
まず、高感度用照度補正データ（９ビット）８２と低感度用照度補正データ（９ビット）８３のどちらかを補正値として使用するかを、センサ感度データ（ＫＡＮＤ）７２にしたがってセレクタ８４で補正値として選択し、後段のレジスタ８５（１６ビット、上位７ビット＝０）へ補正データＨ（ｉ）として送信する。
【０１２４】
掛け算器８６は、オフセット補正結果のレジスタ８１の出力Ｄ’（ｉ）とレジスタ８５の出力Ｈ（ｉ）を掛け算し、その結果Ｄ’’（ｉ）をレジスタ８７へ出力する。  
Ｄ’’（ｉ）＝Ｄ’（ｉ）×Ｈ（ｉ）
最後に、レジスタ８７に格納された結果（例えば１６ビット中に有効１０ビットで上位６ビットは０）は、次の微分フィルタ演算回路１７へ送信される。
【０１２５】
図１７は、微分フィルタ演算の概念図である。
【０１２６】
照度補正演算の結果を、例えば４画素隣の画素との変化分をとると、微分処理を行ったことになる。この微分処理を行ったセンサデータを、後段の相関演算などを行う演算対象センサデータとする。
【０１２７】
これにより低周波成分が除去できる。特にローコン気味の被写体において検出精度向上が期待できる。
【０１２８】
また、センサアレイ５５Ａのセンサデータと、センサアレイ５５Ｂのセンサデータとのレベル差が除去されるので、レベル差の影響による相関演算の信頼性低下がなくなる。
【０１２９】
図１８は、微分フィルタ演算回路１７のハードウェア動作を示す図である。
【０１３０】
入力、出力として以下がある。  
入力：照度補正回路の出力Ｄ’’（ｉ）［レジスタ８７の出力値］  
微分演算のオフセット値［レジスタ部５の設定値］  
微分フィルタ演算を実行するか否かのオン／オフレジスタ［レジスタ部５の設定値］
出力：微分フィルタ演算後のデータＤ’’’(ｉ)
すでに説明したように、Ａ／Ｄ変換回路８が１画素変換終了する毎に照度補正演算が実行され、その結果がレジスタ８７に順次格納されていく。微分演算フィルタは、例えば４画素隣の画素との差分を出力とするので、４画素隣の画素の照度補正演算の終了を待って順次演算を行う。
【０１３１】
まず、レジスタ８８に演算を行う対象の照度補正回路出力を格納し、４画素隣の相手画素の照度補正演算回路出力がレジスタ８９に出力完了となるのを待つ。
【０１３２】
そして、レジスタ９０に格納された微分演算のオフセット値（ＯＦＦＳＥＴ）と、レジスタ（１６ビット（上位６ビット＝０））８８の値を足し算器９１で足し算する。このオフセット値の役割は、微分フィルタ演算の結果が負の数になると後段の相関演算の演算器が複雑になるので、そのようにならないようにするものである。また、引き算演算よりも先にオフセット値を足す理由は、途中で負の数が出ないようにして演算器の構成を簡単にするためである。
【０１３３】
そして、その足し算結果から、レジスタ８９に出力された４画素隣の結果を引き算器９２で引き算し、結果をレジスタ（１６ビット（上位６ビット＝０））９３に格納する。
【０１３４】
また、フィルタ演算を実行するか否かを決定するフィルタ演算オン／オフレジスタ９４にしたがって、セレクタ９５はレジスタ８８かレジスタ９３のいずれかの値を後段のセレクタ９６へ出力する。セレクタ９６は、現在何番目の画素の処理を行っているかによって、メモリに格納するアドレスを選択する。
【０１３５】
最後に、セレクタ９６で選択されたアドレスのセンサデータメモリ１８に微分フィルタ演算結果を格納する。フィルタ演算オン／オフレジスタ９４にフィルタ演算を実行すると設定されている場合には、センサデータメモリ１８の最後の４画素分のデータは存在しない。それは４画素隣の画素が存在しないからである。
【０１３６】
以上説明したようにハードウェアを構成すれば、ハードウェアによって演算の高速化が実現できるので、ＡＤ変換回路８の変換動作とほぼ並行して３つの演算処理（オフセット補正、照度補正、微分フィルタ演算）を行うことができ、演算処理を行うことによるタイムラグの増加はなくなる。
【０１３７】
次に、第２ＡＦ演算部１１内のハードウェアによる演算構成を説明する。まず、相関演算回路１９について説明する。
【０１３８】
図１９は、１エリアを３つに分割して相関演算を行うイメージ図である。
【０１３９】
１つの測距エリア１００を、左測距枠（１枠）１０１、中央測距枠（２枠）１０２、右測距枠（３枠）１０３の３つに分割して相関演算を行う。分割する理由としては、被写体が測距エリア１００の端部に位置していても検出可能にするためである。
【０１４０】
すなわち、１つの測距エリアにつき３枠の相関演算とコントラスト判定と単調判定を行うことになる。
【０１４１】
図２０は、中央測距枠１０２内の相関演算のシフトを説明する図である。
【０１４２】
ある１つの測距エリア内のセンサアレイ５５Ａの出力（微分フィルタ演算結果、センサデータメモリ１８）が６０画素、同じくセンサアレイ５５Ｂの出力が６０画素、それぞれ存在する例である。ここでは、センサアレイ５５Ａの出力をＬ（左）センサデータ（１６ビット）、センサアレイ５５Ｂの出力をＲ（右）センサデータ（１６ビット）と定義し、全“１２０”画素を左の先頭画素から通し番号を付して描いている。
【０１４３】
一番上の２８画素の相関ブロック（図の点々部）についてみると、右の先頭画素の番号が“９３”で左の先頭画素の番号が“１”なので、右−左のずれ量は９２画素になる。
【０１４４】
以下、図２０のように左右を千鳥配置に６４画素分シフトすると、中央測距枠１０２内の相関演算のシフトが構成され、ずれ量２９画素〜９２画素の検出能力を持つ。
【０１４５】
各シフト位置において、左右の相関ブロックについて以下の演算を行う。
【０１４６】
Ｆ＝Σ｜ＤＬ（ｉ）−ＤＲ（ｉ）｜（ｉ＝１〜２８）
ここで、ＤＬ（ｉ）：左の相関ブロック内ｉ番目の出力  
ＤＲ（ｉ）：右の相関ブロック内ｉ番目の出力  
Ｆ：相関値
このＦの値が相関値であり、左右の相関ブロック内の出力が似ている（相関が高い）ほどＦ値は小さい値になる。ここではＦの値をハードウェアで演算を行う。
【０１４７】
各シフトにおいて、相関値Ｆの演算結果を相関演算結果メモリ２２に格納していく。
【０１４８】
後述する単調判定結果も、左と右それぞれに単調判定結果メモリ２３に相当するに格納する。また、コントラスト判定結果も、左と右それぞれにコントラスト判定結果メモリ２４に格納する。
【０１４９】
ここでは相関値Ｆの演算と単調判定とコントラスト判定を行うのみであり、この結果を使用してデフォーカス量の演算を行うのは第３ＡＦ演算部１３である。このように単純な演算のみハードウェアに実行させることによって、ハードウェアの構成を簡単にできる。
【０１５０】
図２１は、左測距枠１０１内の相関演算のシフトを説明する図である。
【０１５１】
左測距枠１０１では図のように相関ブロックを配置する。中央測距枠１０２はブロック内が２８画素であったが、ここでは２０画素とする。
【０１５２】
一番上の２０画素の相関ブロック（図の点々部）についてみると、右の先頭画素の番号が“６９”で左の先頭画素の番号が“１”なので、右−左のずれ量は６８画素になる。
【０１５３】
以下、図２１のように左右を４３画素分シフトすると、左測距枠１０１内の相関演算のシフトが構成され、ずれ量２６画素〜６８画素の検出能力を持つ。
【０１５４】
各シフト位置において、中央測距枠と同様の相関演算を行う。演算結果のメモリについては、中央測距枠と同様である。
【０１５５】
図２２は、右測距枠１０３内の相関演算のシフトを説明する図である。
【０１５６】
右測距枠１０３では図のように相関ブロックを配置する。左測距枠１０１と同様にブロック内は２０画素とする。
【０１５７】
一番上の２０画素の相関ブロック（図の灰色部）についてみると、右の先頭画素の番号が“１００”で左の先頭画素の番号が“３２”なので、右−左のずれ量は６８画素になる。
【０１５８】
以下、図２２のように左右を４３画素分シフトすると、右測距枠１０３内の相関演算のシフトが構成され、ずれ量３３画素〜６８画素の検出能力を持つ。
【０１５９】
各シフト位置において、中央測距枠と同様の相関演算を行う。演算結果のメモリについては、中央測距枠と同様である。
【０１６０】
図２３は、相関演算回路１９のハードウェア動作を示す図である。
【０１６１】
入力、出力として以下がある。  
入力：左センサデータＤＬ（ｉ）  
右センサデータＤＲ（ｉ）［微分フィルタ演算回路１７の出力であり、センサデータメモリ１８の格納値］  
シフト数の値ＳＦＴ（今回の演算が図１５〜図１７の何番目のシフト番号の演算であるかを示す）  
エリア番号ＥＲＥＡ（今回の演算が１〜４のどのエリアの演算であるかを示す）  
枠番号ＷＡＫＵ（今回の演算が中央左右のどの枠内の演算であるかを示す）
出力：相関演算結果Ｆ（ｋ）（ｋ＝１〜ＳＦＴ）
図２１で説明した中央測距枠１０２の場合で説明する（ＥＲＥＡとＷＡＫＵはしかるべき値に設定されているとする）。
【０１６２】
まず、ＳＦＴ＝“１”となり、図２０のシフト図の一番上の相関ブロック内の相関演算が行われる。セレクタ１０９と１１０は、左右それぞれのセンサデータメモリ１８の中から、そのブロックのみを抽出する（左は第１番目の画素を先頭とする２８画素、右は第９３番目の画素を先頭とする２８画素）。
【０１６３】
そして、セレクタ１０９が抽出した左センサデータ領域１１１の中から、セレクタ１１２は１つの画素をセレクトし（レジスタ１１３）、セレクタ１１０が抽出した右センサデータ領域１１４の中から、セレクタ１１５は１つの画素をセレクトする（レジスタ１１６）。
【０１６４】
そして、引き算器１１７はレジスタ１１３とレジスタ１１６の値を引き算し、絶対値演算器１１８は引き算器１１７の結果の絶対値を演算する。積算演算器１１９は絶対値演算器１１８の結果を積算していく。
【０１６５】
セレクタ１１２とセレクタ１１５の動作から積算演算器１１９の動作を所定回数（中央測距枠なら２８回、左右測距枠なら２０回）繰り返す。
【０１６６】
すなわち、Ｆ＝Σ｜ＤＬ（ｉ）−ＤＲ（ｉ）｜（ｉ＝１〜２８）の演算が行われて、１つの相関ブロックの相関値Ｆが算出されるので、セレクタ１２０によって指定されるアドレスの相関演算結果メモリ２２に格納する。セレクタ１２０は今回のＳＦＴ値によって格納するアドレスをセレクトする。
【０１６７】
上記の演算を図２０の全ての相関ブロックによって行い、全相関ブロックについて相関値Ｆが相関演算結果メモリ２２に格納される。
【０１６８】
そのためにセレクタ１０９とセレクタ１１０は、千鳥配置の図２０のシフトにしたがってセンサデータをセレクトできるように構成される。
【０１６９】
図２１で説明した左測距枠１０１の場合と図２２で説明した右測距枠１０３の場合も同様に相関演算回路１９が構成される。
【０１７０】
図２４は、コントラスト判定の概念図である。
【０１７１】
相関ブロック内のコントラストが十分であるか否かを判定する必要がある。コントラストの低い相関ブロックは十分なＡＦ信頼性が無いからである。
【０１７２】
図２４のように、相関演算を行う相関ブロック内の最大出力値と最小出力値の差をコントラスト値として定義する。ここで、相関ブロック画素の両端２画素はコントラストチェックの対象から除外する。その理由は、端のみでコントラストがあっても相関演算に支障をきたすからである。  
ＣＯＮＴＲＡＳＴ＝ＭＡＸ−ＭＩＮ
このＣＯＮＴＲＡＳＴ値を所定値と比較し、所定値以上のコントラストがあればコントラスト判定結果ＯＫ、所定値未満であればコントラスト判定結果ＮＧとなる。
【０１７３】
図２５は、コントラスト判定回路２１のハードウェア動作を示す図である。
【０１７４】
入力、出力として以下がある。  
入力：左センサデータＤＬ（ｉ）  
右センサデータＤＲ（ｉ）  
シフト数の値ＳＦＴ、エリア番号ＥＲＥＡ、枠番号ＷＡＫＵ［以上、相関演算回路１９の入力と同じ］  
コントラスト判定値ＣＭＩＮ［レジスタ部５の設定値］
出力：左測距枠（１枠）左のコントラスト判定結果ＣＬ１（ｋ）（ｋ＝１〜ＳＦＴ）  
中央測距枠（２枠）左のコントラスト判定結果ＣＬ２（ｋ）（ｋ＝１〜ＳＦＴ）  
右測距枠（３枠）左のコントラスト判定結果ＣＬ３（ｋ）（ｋ＝１〜ＳＦＴ）  
左測距枠（１枠）右のコントラスト判定結果ＣＲ１（ｋ）（ｋ＝１〜ＳＦＴ）  
中央測距枠（２枠）右のコントラスト判定結果ＣＲ２（ｋ）（ｋ＝１〜ＳＦＴ）  
右測距枠（３枠）右のコントラスト判定結果ＣＲ３（ｋ）（ｋ＝１〜ＳＦＴ）  
現在コントラスト判定中の左ブロックのコントラスト値ＣｏｎｔＬ  
現在コントラスト判定中の右ブロックのコントラスト値ＣｏｎｔＲ
左のセンサデータに対するコントラスト判定動作と、右のセンサデータに対するそれは同じであるので、左のセンサデータに対する動作のみ説明する。
【０１７５】
セレクタ１０９の動作は、図２３の相関演算回路１９のハードウェア動作を示す図と同じである。セレクタ１０９が抽出した左センサデータ領域１１１（図２３と同じ）の中で、端部の２画素を除外した領域１２１から最大値を示す値を最大値検出器１２３で抽出し、領域１２１から最小値を示す値を最小値検出器１２４で抽出する。
【０１７６】
そして、引き算器１２５によって最大値検出器１２３の結果から最小値検出器１２４の結果を引き算し、その結果を相関ブロック内のコントラスト値としてレジスタ１２６（右の演算の場合にはレジスタ１２７）へ格納する。レジスタ１２６の値は、続く単調判定回路２０で使用する。
【０１７７】
さらに、引き算器１２８はコントラスト値である引き算器１２５の結果から、レジスタ１２９に格納されているコントラスト判定値を引き算する。その引き算結果の符号情報（キャリー、ボロー）１３０はコントラスト判定回路２１の結果である。セレクタ１３１によって指定されるアドレスのコントラスト判定結果メモリ２４に格納する。セレクタ１３１は今回のＳＦＴ値によって格納するアドレスをセレクトする。左右別、枠番号別に異なるメモリ領域に格納する。
【０１７８】
以上のコントラスト判定動作を、相関演算動作と並行して実行する。コントラスト判定動作の実行時間の方が相関演算動作のそれよりも短く、コントラスト判定を実行することによるタイムラグの増加はない。
【０１７９】
図２６は単調判定の概念図である。
【０１８０】
相関ブロック内のセンサデータが単調増加あるいは単調減少しているか否かを判定する必要がある。単調性のセンサデータでは十分なＡＦ信頼性が無いからである。
【０１８１】
単調変化チェックする範囲はコントラストチェックする範囲と同じ（端部２画素を除く）である。
【０１８２】
チェック対象範囲内で隣合う画素との出力差の絶対値の和：Σ｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜を演算し以下のように判定する。  
Σ｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜≦（コントラスト値×係数）  
かつ  
｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜の最大値≦最大判定値  
ならば、単調変化していると判断する。
【０１８３】
すなわち、完全に単調変化していれば、Σ｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜＝コントラスト値であるので、ある程度の幅をとるために係数を掛ける。また、単調性があっても｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜の最大値がある程度のコントラストを持っていれば精度が高くＡＦできるので、このような場合には単調性があると判断しないようにする。
【０１８４】
図２７は、単調判定回路２０のハードウェア動作を示す図である。
【０１８５】
入力、出力として以下がある。  
入力：左センサデータＤＬ（ｉ）  
右センサデータＤＲ（ｉ）  
シフト数の値ＳＦＴ、エリア番号ＥＲＥＡ、枠番号ＷＡＫＵ［以上、相関演算回路１９の入力と同じ］  
単調判定値ＬＩＭＩＴ１［レジスタ部５の設定値］  
単調判定係数ＣＯＥＦＦ［レジスタ部５の設定値］  
相関ブロック内コントラスト値ＣｏｎｔＬ、ＣｏｎｔＲ［コントラスト判定回路の出力でレジスタ１２６と１２７］
出力：左測距枠（１枠）の単調判定結果ＳＬ１（ｋ）  
中央測距枠（２枠）の単調判定結果ＳＬ２（ｋ）  
右測距枠（３枠）の単調判定結果ＳＬ３（ｋ）  
左測距枠（１枠）の単調判定結果ＳＲ１（ｋ）  
中央測距枠（２枠）の単調判定結果ＳＲ２（ｋ）  
右測距枠（３枠）の単調判定結果ＳＲ３（ｋ）  
（ｋ＝１〜ＳＦＴ）
左のセンサデータに対する単調判定動作と、右のセンサデータに対するそれは同じであるので、左のセンサデータに対する動作のみ説明する。
【０１８６】
セレクタ１０９の動作は、図２３の相関演算回路１９のハードウェア動作を示す図と同じである。セレクタ１０９が抽出した左センサデータ領域１１１（図２３と同じ）の中で、端部の２画素を除外した領域１２１内のセンサデータに対して単調判定を行う。ここまでは、コントラスト判定回路２１と同じである。
【０１８７】
セレクタ１３２は、領域１２１内から１画素データをセレクトし（レジスタ１３３）、さらにその隣の画素データをセレクトし（レジスタ１３４）、引き算器１３５はその引き算を行う。絶対値演算器１３６は引き算器１３５の結果の絶対値を演算し、積算演算器１３７は絶対値演算器１３６の結果を積算していく。
【０１８８】
セレクタ１３２の動作〜積算演算器１３７の動作を所定回数（中央枠なら２３回、左右枠なら１５回）繰り返す。すなわち、Σ｜ＤＬ（ｉ）−ＤＬ（ｉ＋１）｜の演算が行われて、その結果は引き算器１３８での演算に使用される。
【０１８９】
そして、コントラスト判定回路２１の出力であるコントラスト値結果格納レジスタ１２６の値と、判定係数格納レジスタ１３９の結果を掛け算器１４０で掛け算する。このレジスタ１３９の係数は、整数部１ビットおよび小数部８ビットであり、レジスタ１２６の値を所定倍する。掛け算器１４０の結果を判定値としてレジスタ１４１に格納する。
【０１９０】
さらに、引き算器１３８は積算演算器１３７の結果から、レジスタ１４１に格納されている判定値を引き算する。その引き算結果の符号情報（キャリー、ボロー）１４２は単調判定回路２０の結果の１つであり、アンド演算器１４８に送信される。
【０１９１】
また、絶対値演算器１３６の最大値を最大値検出器１４４で検出し、続く引き算器１４５は最大値検出器１４４の結果から、レジスタ１４６に格納されているもう１つの判定値を引き算する。その引き算結果の符号情報（キャリー、ボロー）１４７は単調判定回路２０の結果の１つであり、アンド演算器１４８に送信される。
【０１９２】
アンド演算器１４８は、符号情報１４２と符号情報１４７の値のアンドを演算し、これが最終的な結果となる。
【０１９３】
このように構成して、Σ｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜≦（コントラスト値×係数）、かつ、｜Ｄ（ｉ＋１）−Ｄ（ｉ）｜の最大値≦最大判定値ならば、単調変化していると判定される。
【０１９４】
セレクタ１４９によって指定されるアドレスのコントラスト判定結果メモリ２４に格納する。セレクタ１４９は今回のＳＦＴ値によって格納するアドレスをセレクトする。左右別、枠番号別に異なるメモリ領域に格納する。
【０１９５】
以上の単調判定動作を、相関演算動作と並行して実行する。単調判定動作の実行時間の方が相関演算動作のそれよりも短く、単調判定を実行することによるタイムラグの増加はない。
【０１９６】
以上でハードウェアによる全演算を終了し、図８で説明したようにＡＦ制御回路１へ演算終了を知らせる割り込み信号を送信し、ＡＦ制御回路１はその信号を受信すると以下のような第３ＡＦ演算部１３の演算を行う。
【０１９７】
図２８は、第３ＡＦ演算部１３の演算を示すフローチャートである。
【０１９８】
ステップＳ１は、図８で説明したように、メモリ１０に格納されている演算結果情報をシリアル通信部４を介してＡＦ制御回路１の第３ＡＦ演算部１３内のメモリ（不図示）に転送するステップである。
【０１９９】
次に、ステップＳ２〜Ｓ７の繰り返しで、図２９〜図３３で説明するが、シフト数と相関値Ｆとの関係を求める。図２０〜図２２で説明した初期位置の相関ブロック（図２０〜図２２のシフト図の一番上の相関ブロック）からスタートし、同図一番下の相関ブロックまで全シフトにおいて、ステップＳ２〜Ｓ７を繰り返してシフト数と相関値Ｆの特性を求める。
【０２００】
ステップＳ２，Ｓ３は、相関ブロック内のコントラストが有るか否かを、第３ＡＦ演算部１３内のメモリ（不図示）に転送されたコントラスト判定結果から判断するステップであり、左右相関ブロックの両方ともコントラストがあると判定されているかを判断する。コントラストが無い場合には、相関値Ｆを参照する相関ブロックの対象外なのでステップＳ７へ移行して、次の相関ブロックへシフトする。
【０２０１】
ステップＳ４，Ｓ５は、相関ブロック内の単調性が有るか否かを、第３ＡＦ演算部１３内のメモリ（不図示）に転送された単調判定結果から判断するステップであり、左右相関ブロックの両方とも単調性が無いと判定されているかを判断する。単調性が有る場合には、相関値Ｆを参照する相関ブロックの対象外なのでステップＳ７へ移行して、次の相関ブロックへシフトする。
【０２０２】
ステップＳ６は、コントラストが有って、かつ単調性が無い相関ブロックについて、相関演算結果２２の相関値の極値（最小値）とそのポイントを求める。これについて、図２９〜図３３で説明する。
【０２０３】
ステップＳ７は、図２０〜図２２で説明した初期位置の相関ブロック（図２０〜図２２のシフト図の一番上の相関ブロック）の一番下の相関ブロックまでステップＳ２〜Ｓ７を繰り返したかを判定し、まだ次のブロックがある場合にはステップＳ２に移行する。
【０２０４】
以上が最小値／極値判定回路２５の動作に相当する。
【０２０５】
以上、ステップＳ２〜Ｓ７によって、相関値Ｆとシフト数の関係が得られている。これについて図２９〜図３３で説明する。図２９〜図３３は、相関値Ｆとシフト数の関係を示している。
【０２０６】
図２９〜図３３は、縦軸に相関演算結果２２に格納されている相関値Ｆを、横軸に図２０で説明した起点からのシフト数をとっている。
【０２０７】
図２９のように、通常はある１点の極小値（最小値）が存在して、このポイント付近で相関値Ｆが最も小さくなる。図２８のステップＳ６は、この極小値の値とそのポイントをサーチするステップである。また、図３０のように極小値と最小値が異なるケースもあるが、このような場合には極小値の方をサーチする。
【０２０８】
また、図３１のように、繰り返し模様の被写体などの場合には極小値が複数存在する場合もあるが、最小値と２番目に小さい極小値の２つをサーチして、その差があるスレッシュ値Ｄ＿ＴＨ以下の場合には、ＡＦ不能と判断される。スレッシュ値Ｄ＿ＴＨより大きい場合には、ＡＦ可能と判断される。
【０２０９】
さらに、図３２および図３３のように、極小値が存在しない場合にもＡＦ不能と判断される。
【０２１０】
図２８の説明に戻って、
ステップＳ８は、極小数＝０かを判断をするステップであり、極小数＝０ということは図３２および図３３で説明したような相関値の特性ということであり、このような場合にはＡＦ不能なのでステップＳ２５に移行して所定のＡＦ演算可能フラグをクリアする。
【０２１１】
ステップＳ９は、極小数＝１かを判断をするステップであり、図２９で説明したように通常は極小数＝１であり、１個の極小数の場合にはステップＳ１２に移行する。
【０２１２】
ステップＳ１０は、極小数≧２の場合に、図３１で説明したように２番目に小さい極小相関値と最小相関値の差Ｄを演算するステップである。
【０２１３】
ステップＳ１１は、この差Ｄがあるスレッシュ値Ｄ＿ＴＨ以下かを判断するステップであり、スレッシュ以下の場合にはＡＦ不能なのでステップＳ２５に移行する。
【０２１４】
次に、ここまででＡＦ不能と判断されていない場合には、信頼性係数の演算とその判定を行う。それに先立って、最小相関値を呈する相関ブロックポイントの両隣の相関ブロックの相関値を求める。
【０２１５】
ステップＳ１２は、最小相関ブロックより１つずれ量が大きい相関ブロック（図２０〜図２２でいえば、１つ上の相関ブロックにおける相関値）での相関値をメモリから読み出す。その結果をＦＰとする。
【０２１６】
ステップＳ１３は、最小相関ブロックより１つずれ量が小さい相関ブロック（図２０〜図２２でいえば、１つ下の相関ブロックにおける相関値）での相関値をメモリから読み出す。その結果をＦＭとする。
【０２１７】
ステップＳ１４は、ステップＳ１２とステップＳ１３の結果より、第１信頼性係数ＳＫ１を次式で演算する。
【０２１８】
（１）ＦＭ＞ＦＰのとき  
第１信頼性係数ＳＫ１＝ＦＭ−ＦＭＩＮ  
（２）ＦＭ≦ＦＰのとき  
第１信頼性係数ＳＫ１＝ＦＰ−ＦＭＩＮ  
ここで、ＦＭＩＮは最小相関値である。
【０２１９】
ステップＳ１５は、ステップＳ１２とステップＳ１３とステップＳ１４の結果より、第２信頼性係数ＳＫ２を次式で演算する。  
（１）ＦＭ＞ＦＰのとき  
ＳＫ２＝（ＦＭＩＮ＋ＦＰ）／ＳＫ１
（２）ＦＭ≦ＦＰのとき  
ＳＫ２＝（ＦＭＩＮ＋ＦＭ）／ＳＫ１
ステップＳ１６は、ＳＫ１がある信頼性スレッシュＳＫ１＿ＴＨ（不図示のメモリに格納）よりも大きいかを判断するステップであり、ＳＫ１＿ＴＨより大きい場合にはデータに信頼性が無いのでＡＦ不能と判断され、ステップＳ２５に移行する。
【０２２０】
ステップＳ１７は、ＳＫ２がある信頼性スレッシュＳＫ２＿ＴＨ（不図示のメモリに格納）よりも小さいかを判断するステップであり、ＳＫ２＿ＴＨより小さい場合にはデータに信頼性が無いのでＡＦ不能と判断され、Ｓ２７に移行する。
【０２２１】
以上、ステップＳ８〜Ｓ１７が信頼性判定回路２６の動作に相当する。
【０２２２】
ステップＳ１８は、ここまで実行されるとＡＦ演算が可能であるので、所定のＡＦ演算可能フラグをセットする。このフラグはＡＦ演算の可否を示すものであり、全エリアについて存在する。
【０２２３】
ステップＳ１９は、ＦＭＩＮ、ＦＰ、ＦＭのデータより２像間隔ＺＲを次式で演算する。２像間隔とは図５で説明したように、センサアレイ５５Ａとセンサアレイ５５Ｂの結像間隔のことである。  
（１）ＦＭ＞ＦＰのとき  
２像間隔  ＺＲ＝（右−左ずれ量）＋（（ＦＭ−ＦＰ）／ＳＫ１）／２  
（２）ＦＭ≦ＦＰのとき  
２像間隔  ＺＲ＝（右−左ずれ量）−（（ＦＰ−ＦＭ）／ＳＫ１）／２  
ここで、（右−左ずれ量）は図２０〜図２２に記している左右のずれ量であり、どのシフトポイントで最小相関値となったかによって決まる。
【０２２４】
すなわち、この演算を行うことによって、これまで１画素ピッチの離散的な相関データから、補間された真の最小値となるシフト数が求まることになる（図３４を参照）。
【０２２５】
ステップＳ２０，Ｓ１９で求めた２像間隔から撮影レンズのデフォーカス量ＤＦを求める。
【０２２６】
センサ面ずれ量＝２像間隔ＺＲ−基準２像間隔ＺＲ０
ＤＦ＝係数Ｂ／（係数Ａ−センサ面ずれ量）−係数Ｃ
ここで、基準２像間隔ＺＲ０とは、撮影レンズが合焦となった状態での２像間隔のことであり、カメラボディー１台ごと固有の値となるので、工場での製造工程で調整されて、不図示のメモリに格納されている値である。
【０２２７】
また、係数Ａ〜ＣとはＡＦ光学系３９の特性によって光学的に決まる定数であり、合焦近辺が精度よく近似できるような係数である（不図示のメモリに格納）。
【０２２８】
以上、ステップＳ１８〜Ｓ２０がデフォーカス量演算回路２７の動作に相当する。
【０２２９】
ステップＳ２１は、デフォーカス量の温度による変化を補正する。一般にＡＦ光学系３９は温度によって変化するので、検出されるデフォーカス量も温度によって変化する。不図示の温度センサがＡＦ光学系３９の近傍に配置されており、温度出力に基づいて基準温度（２像間隔調整時の温度）との差に相当する補正量をデフォーカス量に補正する。
【０２３０】
ステップＳ２２は、像高誤差成分を補正する。像高誤差とはセンサアレイ上の位置によって検出デフォーカス量の差がわずかにあるので、それを補正する。
【０２３１】
具体的には、図１９で説明した中央測距枠１０２で検出されたデフォーカス量に対して、端部の左測距枠１０１あるいは右測距枠１０３で検出されたデフォーカス量がどれだけ差があるかを補正する。
【０２３２】
ステップＳ２３は、光源によるデフォーカス量の差（色収差）を補正する。不図示の光源センサの出力に基づいて、光源別に補正値を求めて補正する。
【０２３３】
ステップＳ２４は、撮影レンズの焦点距離によって検出デフォーカス量が異なるのでこれを補正する。工場での基準２像間隔の調整はある焦点距離での基準２像間隔であり、各焦点距離によって基準２像間隔がわずかに異なるので、この補正が必要である。焦点距離毎に補正値がレンズＣＰＵ３３からＣＰＵ４１にレンズデータとして送信されており、このレンズデータに基づいて補正値を求めて補正する。
【０２３４】
以上、ステップＳ２１〜Ｓ２４がデフォーカス量補正回路２８の動作に相当する。第３ＡＦ演算部１３での演算は、繰り返し演算部分が少なく、あるいは、判断分岐などが多くてハードウェアでの演算に不向きであり、また、特にデフォーカス補正回路２８はレンズデータも絡んで補正仕様が後に変更になることが多い。よって、第３ＡＦ演算部１３での演算はマイクロコンピュータでの演算に向いている。
【０２３５】
ステップＳ２５は、すでに説明したように、ＡＦ検出不能の場合に所定のＡＦ演算可能フラグをクリアし、ステップＳ２６に移行する。
【０２３６】
ステップＳ２６は、以上の演算を全エリアについて行うので、未演算エリアがある場合にはステップＳ２に戻る。
【０２３７】
一方、ステップＳ１７で信頼性なしと判定された場合は、ステップＳ２７に移行する。ここでは、センサデータに加工処理を施して再度ＡＦ演算を実行することにより、検出不能（信頼性なし）であったものが検出可能（信頼性あり）に改善されるのを目的とした処理が行われる。
【０２３８】
ステップＳ２７は、センサデータの加工処理を実行しているか否かを判別する。すでに加工済みの場合は、ステップＳ２５に移行する。未加工の場合はステップＳ２８に移行する。
【０２３９】
ステップＳ２８は、対象となるセンサデータを、センサデータメモリ１８またはセンサデータフリップフロップ２９から読み出す。
【０２４０】
ステップＳ２９は、センサデータに対して加工処理を施す。
【０２４１】
ステップＳ３０は、加工処理したセンサデータをセンサデータフリップフロップ２９に書き込む。
【０２４２】
ステップＳ３１は、ＡＦ演算ＩＣ２のレジスタ設定を行い、ＡＦ演算ＩＣ２内の第２ＡＦ演算部１１によるハードウェア演算である演算２を実行させる。その後は、ステップＳ１よりの処理を繰り返して実行する。
【０２４３】
加工処理後のセンサデータに演算２を実行することにより、検出不能であったものが検出可能となり、ステップＳ１７においてステップＳ１８に移行することが可能となる。
【０２４４】
以上によって第３ＡＦ演算部１３の演算が終了し、出力として各エリア毎にＡＦ検出可能フラグと、検出可能の場合には補正後のデフォーカス量が求まっている。
【０２４５】
ＡＦ制御回路１は、これらの情報から最終的に選択するエリアを所定のアルゴリズムによって決定し、このエリアの補正後のデフォーカス量をレンズＣＰＵ３３へ送信して、レンズＣＰＵ３３は送信されたデフォーカス量に基づいてフォーカスレンズ３１を駆動制御して合焦状態を得る。
【０２４６】
次に、図２８のステップＳ２９において、センサデータ加工回路５７がセンサデータに施す加工の例について詳細に説明する。
【０２４７】
被写体が逆光の状態でＡＦ動作を行った場合に発生するフレアー光の影響について説明する。
【０２４８】
交換レンズ３０を介して入射したフレアー光が、さらにＡＦ光学系３９を介してＡＦセンサ４０の受光部に入射した場合に、図３５に示すようなセンサデータの変形が発生する。
【０２４９】
つまり、一対のセンサアレイ５５Ａ，５５Ｂの一方にのみフレアー光が入射するために、一方のセンサデータのみ一定レベル分増加したアンバランスなセンサデータとなってしまう。位相差検出方式は原理的に一対のセンサデータ（像）の相似性を利用するので、このような場合は検出不能となってしまう。
【０２５０】
このような問題を解決するために、フレアーが発生しているか否かを判定し（フレアー判定）、フレアーが発生している場合は、これを加工して（フレアー補正して）正しく検出可能な状態とする処理を行う。
【０２５１】
図３５と、図３６のフローチャートに基づいて説明する。
【０２５２】
ステップＳ２００は、フレアー判定であり、センサアレイの全体画素数のうち、所定のフレアー判定画素数の左中央部の総和ΣＤＬ、右中央部の総和ΣＤＲの差の絶対値を予め決められたフレアー判定スレッシュＦＲ＿ＴＨと比較する。
【０２５３】
｜ΣＤＬ−ΣＤＲ｜≦ＦＲ＿ＴＨの場合は、フレアー判定フラグをクリアする。
【０２５４】
｜ΣＤＬ−ΣＤＲ｜＞ＦＲ＿ＴＨの場合は、フレアー判定フラグをセットする。
【０２５５】
ステップＳ２０１は、フレアー判定フラグが０の場合は、フレアーではないのでリターンする。フレアー判定フラグが１の場合は、フレアーと判定してＳ２０２に移行する。
【０２５６】
ステップＳ２０２は、フレアー補正であり、フレアーと判定されると、左右のうち出力が小さい方のセンサデータに左右のアンバランス分を加算してアンバランスを除去する。具体的には、以下の場合分けと計算を行う。フレアー判定画素数は、図３５に示すように、全画素中で所定数の画素出力に基づいてアンバランス量を測定するための画素数である。
【０２５７】
ΣＤＬ＜ΣＤＲの時、  
ＤＬ’(ｉ)＝ＤＬ（ｉ）＋｜ΣＤＬ−ΣＤＲ｜／フレアー判定画素数  
ΣＤＬ＞ΣＤＲの時、  
ＤＲ’(ｉ)＝ＤＲ（ｉ）＋｜ΣＤＬ−ΣＤＲ｜／フレアー判定画素数  
（ＤＬ’，ＤＲ’：補正後センサデータ、ｉ＝１〜センサアレイ全体画素数）
ステップＳ２０２の後、リターンとなる。
【０２５８】
以上が図２８のステップＳ２９における処理の説明である。
【０２５９】
このように、センサデータの左右のアンバランスを除去した後の加工処理されたセンサデータに基づいて、第２ＡＦ演算部１１による演算を実行すれば、信頼性が高まり検出可能となる効果が得られる。
【０２６０】
［２］第２の実施形態について説明する。  
図２８のステップＳ２９において、センサデータ加工回路５７がセンサデータに施す加工の別の例を、第２の実施形態として説明する。
【０２６１】
第１の実施形態と同様に、左右一対のセンサデータのアンバランスを補正するための加工処理として、下記の計算を行う。
【０２６２】
ＤＬ’[ｉ]＝−ＤＬ［ｉ］＋２・ＤＬ［ｉ＋ｓ］−ＤＬ［ｉ＋２ｓ］  
ＤＲ’[ｉ]＝−ＤＲ［ｉ］＋２・ＤＲ［ｉ＋ｓ］−ＤＲ［ｉ＋２ｓ］  
ｉ＝１〜ｎ−２−２ｓ
ｓは“１”から“１０”程度の整数であり、数値が大きいほど被写体パターンに含まれる低周波数成分を抽出し、数値が小さいほど被写体パターンに含まれる高周波数成分を抽出する。
【０２６３】
以上の処理を行うことにより、一対のセンサデータのアンバランスが補正されたセンサデータが得られるので、第１の実施形態で述べた第２ＡＦ演算部１１による演算処理である演算２を再度実行することにより検出可能となる。
【０２６４】
［３］第３の実施形態について説明する。  
図２８のステップＳ２９において、センサデータ加工回路５７がセンサデータに施す加工の別の例を、第３の実施形態として説明する。
【０２６５】
センサデータに高周波ノイズがのっている場合には、低域通過型フィルタ演算を使用することが有効なことは、一般的に知られている。
【０２６６】
詳細は特開平８−９４９１６に記載されているので説明は省略する。このような低域通過型フィルタ演算の処理を適用した場合について、以下に説明する。具体的にはセンサデータに対して下記の計算を行う。
【０２６７】
ＤＬ’(ｉ)＝｛ＤＬ（ｉ−１）＋２ＤＬ（ｉ）＋ＤＬ（ｉ＋１）｝／４  
ＤＲ’(ｉ)＝｛ＤＲ（ｉ−１）＋２ＤＲ（ｉ）＋ＤＲ（ｉ＋１）｝／４  
以上の処理を行うことにより、高周波ノイズが除去されたセンサデータが得られるので、第１の実施形態で述べた第２ＡＦ演算部１１による演算である演算２を再度実行することにより検出可能となる。
【０２６８】
［４］他の実施形態  
図２８のステップＳ２９において、センサデータ加工回路５７がセンサデータに施す加工処理については、その他、種々の加工方法がある。例えば、所定の周波数を通過させる帯域通過フィルタ処理や、第１の実施形態で述べた微分フィルタ（高域通過フィルタ）のカットオフ周波数を変更した微分フィルタ処理等がある。
【０２６９】
その他、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０２７０】
【図１】本発明の概念を示す図。
【図２】図１よりも詳細な本発明の概念を示す図。
【図３】各実施形態の具体的な構成を示す図。
【図４】各実施形態に関わるカメラシステムに搭載されるＡＦ機構の構成を示す図。
【図５】図４におけるＡＦ光学系およびＡＦセンサの構成を示す図。
【図６】各実施形態におけるマルチＡＦセンサのセンサ構成を示す図。
【図７】各実施形態における第１ＡＦ演算部、第２ＡＦ演算部、メモリ部内のデータの流れを示す図。
【図８】各実施形態における演算ＩＣのＡＦセンサ制御と演算を説明するためのタイムチャート。
【図９】各実施形態における演算の順序を説明するためのラフなタイムチャート。
【図１０】各実施形態におけるオフセット補正の概念を示す図。
【図１１】図１０における原点付近を拡大して示す図。
【図１２】各実施形態におけるオフセット補正演算回路のハードウェア動作を示す図。
【図１３】各実施形態における照度補正の概念を示す図。
【図１４】各実施形態における均一輝度面を撮像したときの照度補正前の出力を示す図。
【図１５】各実施形態における均一輝度面を撮像したときの照度補正後の出力を示す図。
【図１６】各実施形態における照度補正回路のハードウェア動作を示す図。
【図１７】各実施形態における微分フィルタ演算の概念を示す図。
【図１８】各実施形態における微分フィルタ演算回路のハードウェア動作を示す図。
【図１９】各実施形態における相関演算回路の相関演算を説明するための図。
【図２０】各実施形態における中央測距枠内の相関演算のシフトを説明するための図。
【図２１】各実施形態における左測距枠内の相関演算のシフトを説明するための図。
【図２２】各実施形態における右測距枠内の相関演算のシフトを説明するための図。
【図２３】各実施形態における相関演算回路のハードウェア動作を示す図。
【図２４】各実施形態におけるコントラスト判定の概念を示す図。
【図２５】各実施形態における  図２５は、コントラスト判定回路のハードウェア動作を示す図。
【図２６】各実施形態における単調判定の概念を示す図。
【図２７】各実施形態における単調判定回路のハードウェア動作を示す図。
【図２８】各実施形態における第３ＡＦ演算部の演算を示すフローチャート。
【図２９】各実施形態における相関演算結果の相関値の極値（最小値）とそのポイントの求め方を示す図。
【図３０】各実施形態における相関演算結果の相関値の極値（最小値）とそのポイントの求め方を示す図。
【図３１】各実施形態における相関演算結果の相関値の極値（最小値）とそのポイントの求め方を示す図。
【図３２】各実施形態における相関演算結果の相関値の極値（最小値）とそのポイントの求め方を示す図。
【図３３】各実施形態における相関演算結果の相関値の極値（最小値）とそのポイントの求め方を示す図。
【図３４】各実施形態において求められる真の最小値となるシフト数を示す図。
【図３５】各実施形態におけるＡＦセンサにフレアー光が入射した場合のセンサデータの変形を説明するための図。
【図３６】各実施形態におけるフレアー補正を説明するためのフローチャート。
【符号の説明】
【０２７１】
１…ＡＦ制御部（制御手段）、２…演算ＩＣ、３…マルチＡＦセンサ、５…レジスタ部、７…ＡＦセンサ制御部、８…Ａ／Ｄ変換部、９…第１ＡＦ演算部、１０…第２メモリ部（第２制御手段）、１１…第２ＡＦ演算部、１３…第３ＡＦ演算部、１４…第１メモリ部（第１制御手段）、１５…オフセット補正演算回路、１６…照度補正演算回路、１７…微分フィルタ演算回路、１８…センサデータメモリ、１９…相関演算回路、２０…単調判定回路、２１…コントラスト判定回路、２２…相関演算結果メモリ、２３…単調判定結果メモリ、２４…コントラスト判定結果メモリ、２５…最小値／極値判定回路、２６…信頼性判定回路、２７…デフォーカス量演算回路、２８…デフォーカス量補正演算回路、２９…センサデータフリップフロップ、３０…交換レンズ、３３…レンズＣＰＵ、３９…ＡＦ光学系、４０…ＡＦセンサ、４１…ＣＰＵ、４２…演算ＩＣ、５５Ａ，５５Ｂ…センサアレイ、５６…オフセット・照度補正用データメモリ、５７…センサデータ加工回路
【図１】
2006145984.tif 000003
【図２】
2006145984.tif 000004
【図３】
2006145984.tif 000005
【図４】
2006145984.tif 000006
【図５】
2006145984.tif 000007
【図６】
2006145984.tif 000008
【図７】
2006145984.tif 000009
【図８】
2006145984.tif 000010
【図９】
2006145984.tif 000011
【図１０】
2006145984.tif 000012
【図１１】
2006145984.tif 000013
【図１２】
2006145984.tif 000014
【図１３】
2006145984.tif 000015
【図１４】
2006145984.tif 000016
【図１５】
2006145984.tif 000017
【図１６】
2006145984.tif 000018
【図１７】
2006145984.tif 000019
【図１８】
2006145984.tif 000020
【図１９】
2006145984.tif 000021
【図２０】
2006145984.tif 000022
【図２１】
2006145984.tif 000023
【図２２】
2006145984.tif 000024
【図２３】
2006145984.tif 000025
【図２４】
2006145984.tif 000026
【図２５】
2006145984.tif 000027
【図２６】
2006145984.tif 000028
【図２７】
2006145984.tif 000029
【図２８】
2006145984.tif 000030
【図２９】
2006145984.tif 000031
【図３０】
2006145984.tif 000032
【図３１】
2006145984.tif 000033
【図３２】
2006145984.tif 000034
【図３３】
2006145984.tif 000035
【図３４】
2006145984.tif 000036
【図３５】
2006145984.tif 000037
【図３６】
2006145984.tif 000038