JP4200350B2 - 測距装置 - Google Patents
測距装置 Download PDFInfo
- Publication number
- JP4200350B2 JP4200350B2 JP2001373989A JP2001373989A JP4200350B2 JP 4200350 B2 JP4200350 B2 JP 4200350B2 JP 2001373989 A JP2001373989 A JP 2001373989A JP 2001373989 A JP2001373989 A JP 2001373989A JP 4200350 B2 JP4200350 B2 JP 4200350B2
- Authority
- JP
- Japan
- Prior art keywords
- sensor
- data
- value
- shift amount
- correlation value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Automatic Focus Adjustment (AREA)
- Measurement Of Optical Distance (AREA)
- Focusing (AREA)
Description
【発明の属する技術分野】
本発明は測距装置に係り、特にパッシブ方式のAFセンサを用いた例えばカメラの測距装置に関する。
【0002】
【従来の技術】
パッシブ方式のAFセンサを用いたカメラの測距装置は、例えば左右一対のラインセンサにより測距対象物を撮像し、左右のセンサ像(AFデータ)を取得する。この左右一対のラインセンサから得られるAFデータのうち、相関値演算に使用する一対のAFデータを取得するための一対のウインドウ範囲を決定し、この一対のウインドウ範囲を一対の所定のセンサ領域(採用センサ)内で互いに逆方向にシフトさせながら順次相関値演算に使用する一対のAFデータを取得する。又は、一方のウインドウ範囲を固定し、他方のウインドウ範囲をシフトさせながら順次相関値演算に使用する一対のAFデータを取得する。このようにして得られる一対のAFデータの相関を求め、最大相関が得られるとき(一対の採用センサ内の左右のセンサ像が一致するとき)のウインドウ範囲のシフト量に基づいて測距対象物距離を算出している。
【0003】
上記のようにAFデータの相関値演算によって最大相関を求める場合、AFデータの画素数が多くなると、相関演算の回数が増加し、測距時間が増加するという問題がある。
【0004】
従来、この問題を解決するためにAFデータから離散的に分布した演算対象画素を選択し、選択された演算対象画素についてのみ相関値演算(一画素相関値演算)を行い、各演算対象画素の相関値をシフト量ごとに加え合わせ、その合計相関値に基づいてシフト量を求める測距方法が提案されている(特開平10−26525号公報)。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の測距方法では、測距時間は短縮されるが、測距精度が低減するという問題がある。更に、各演算対象画素の一画素相関演算後に、各相関値をシフト量ごとに加え合わせるため、一画素相関結果全てを保存しておく必要があるという問題がある。
【0006】
本発明はこのような事情に鑑みてなされたもので、測距精度を低下させずに測距時間の短縮を図ることができる測距装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
前記目的を達成するために請求項1に係る測距装置は、複数の受光素子からなる一対のラインセンサに測距対象物からの光を結像させ、各受光素子から得られた信号に基づいて相関値演算用の一対のAFデータを生成するAFデータ生成手段と、前記一対のラインセンサのうちの測距に使用する一対の採用センサ範囲から一対のAFデータを取得するAFデータ取得手段と、前記一対の採用センサ範囲内において、相関値演算に使用する一対のAFデータを取得するための一対のウインドウ範囲を決定し、該一対のウインドウ範囲を前記一対の採用センサ範囲内の最高相関を得るためにシフトさせながら順次相関値演算する第1の相関値演算手段であって、前記一対のウインドウ範囲内のAFデータのうちの所定間隔置きの画素から生成されるAFデータを用いて相関値演算する第1の相関値演算手段と、前記第1の相関値演算手段により得られた相関値のうちの最高相関値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内で、前記一対のウインドウ範囲をシフトさせながら順次相関値演算する第2の相関値演算手段であって、前記一対のウインドウ範囲内の全てのAFデータを用いて相関値演算する第2の相関値演算手段と、前記第2の相関値演算手段により得られた相関値のうちの最高相関値が得られたときの前記ウインドウ範囲のシフト量に基づいて測距対象物の距離を算出する測距対象物距離算出手段と、を備え、前記第1の相関値演算手段は、前記採用センサ内の相関値演算により高い相関を示す極値が複数ある場合には、最も相関の高い極値を暫定第1極値とし、次に相関の高い極値を暫定第2極値として求め、前記第2の相関値演算手段は、前記暫定第1極値と暫定第2極値との差が所定の基準値内の場合には、前記暫定第1極値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内と、前記暫定第2極値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内とでそれぞれ相関値演算を行うことを特徴としている。
【0008】
即ち、第1の相関演算手段は、一対のウインドウ範囲内のAFデータのうちの所定間隔置きのAFデータを用いて相関値演算を行なうため、演算量を低減することができ、一方、第2の相関演算手段は、第1の相関値演算手段により得られた相関値のうちの最高相関値が得られたときのウインドウ範囲のシフト量を基準とする前後の所定の範囲内で、一対のウインドウ範囲内の全てのAFデータを用いて相関値演算するため、測距精度が低下することがない。
【0013】
請求項2に示すように、前記第1の相関値演算手段により暫定第1極値が得られたときの前記ウインドウ範囲の第1のシフト量及び暫定第2極値が得られたときの前記ウインドウ範囲の第2のシフト量と、前記第2の相関値演算手段により最高相関値が得られるときの前記ウインドウ範囲の第3のシフト量との差をそれぞれ求める手段と、前記求めた差のうちの小さい方の差が所定のシフト量以上の場合には測距不能とする判定手段と、を有することを特徴としている。
【0014】
即ち、前記第1極値の第1のシフト量と第2極値の第2のシフト量のうち、最高相関値のシフト量(第3のシフト量)に近い方のシフト量と、第3のシフト量との差の大きさによって測距不能か否かを判定するようにしている。
【0016】
請求項3に示すように、前記測距対象物距離算出手段は、前記第2の相関値演算手段により得られた相関値のうちの最高相関値と、その前後の前記所定の範囲の相関値とに基づいて補間値演算によって真の最高相関値が得られるシフト量を求め、該シフト量に基づいて測距対象物距離を算出することを特徴としている。前記第2の相関値演算手段により得られる最高相関値は、離散的な相関値のなかの最高相関値であるが、請求項3によれば、離散的でない真の最高相関値のシフト量を求めることができる。
【0017】
請求項4に示すように、前記第1の相関値演算手段により最高相関値が得られたときの前記ウインドウ範囲のシフト量が、近距離警告範囲内か否かを判断する判断手段と、前記判断手段によって近距離警告範囲内と判断されると、前記第2の相関値演算手段による相関値演算を中止させると共に近距離警告を発生させる手段と、を有することを特徴としている。
【0018】
請求項5に示すように前記一対の採用センサは、前記一対のラインセンサの全測距エリアのセンサ、又は前記一対のラインセンサの全測距エリアを複数の分割エリアに分割した各分割エリアのセンサである。後者の場合には、ある採用センサでの測距が不能となる場合でも、他の採用センサでの測距が可能となる場合がある。
【0019】
【発明の実施の形態】
以下添付図面に従って、本発明に係る測距装置を例えばカメラに適用した場合の好ましい実施の形態について詳説する。
【0020】
図1は、本発明が適用されたカメラの正面斜視図である。同図に示すようにカメラ10には、被写体像を銀塩フイルムに結像する撮影レンズを備えたズームレンズ鏡胴12と、ストロボ光が発光されるストロボ発光窓16と、撮影者が被写体を確認するファインダ窓18と、被写体距離を測定するパッシブタイプのAFセンサが内蔵されているAF窓22と、被写体の明るさを測定する測光センサが内蔵されている測光窓25と、撮影者がシャッタレリーズを指示する際に操作するシャッタボタン34等が設けられている。
【0021】
図2は、カメラ10の背面斜視図である。同図に示すようにカメラ10には、設定されている撮影モード等や日付情報等を表示するLCD表示パネル38と、ストロボの発光モードを設定するフラッシュボタン42と、セルフタイマーのモードを設定するセルフタイマーボタン44と、フォーカスのモードを設定するフォーカスボタン46と、日付や時刻を設定する日付ボタン48と、撮影画角をワイド方向又はテレ方向に指示するズームボタン50とが設けられている。
【0022】
例えば、フラッシュボタン42を操作すると、フラッシュ(ストロボ)に関するモードを切り替えることができ、フラッシュボタン42で選択可能なモードとして、被写体が暗い場合にストロボ光を自動発光するオートモード、本発光前にプレ発光を行い赤目を軽減する赤目軽減モード、ストロボ光を強制発光する強制発光モード、ストロボを発光しない発光禁止モード、ストロボを発光して人物と夜景とを撮影する夜景ポートレートモード等がある。また、フォーカスボタン46を操作すると、フォーカスに関するモードを切り替えることができ、フォーカスボタン46で選択可能なモードとして、自動でピント合わせを行うオートフォーカスモード、遠景を撮影するための遠景モード、マクロ撮影のためのマクロモード等のモードがある。
【0023】
図3は、上記カメラ10の制御部を示したブロック図である。同図に示すようにカメラ10には、カメラ10の全体を制御するCPU60(情報処理手段)が設けられており、以下に示す各部から情報を取得するとともに、CPU60からの指示によって以下に示す各部を制御することが可能となっている。尚、図3に示すCPU60は、CPUコア部とI/O、ウォッチドグタイマ、A/D変換器等の周辺回路から構成されるASICであってもよい。
【0024】
また、同図に示すようにカメラ10には、電池の電圧を昇圧させるとともに安定化させてCPU60及びその他の各周辺回路に電源を供給するレギュレータ62と、ズームレンズ鏡胴12をモータ駆動してズーム位置やフォーカス位置を変更するとともにズーム位置やフォーカス位置の位置情報をCPU60に出力する鏡胴駆動部64と、フイルム給送モータを駆動してフイルムを給送するフイルム給送駆動部66とが設けられている。
【0025】
またカメラ10には、露光時にシャッタを開閉してフイルムを露光するシャッタ駆動部68と、図1の測光窓25を介して取り込んだ外光に基づいて被写体の光量を測定する測光センサ70と、メインコンデンサを充電し、また、メイコンデンサに充電した発光エネルギーによりストロボを発光させるストロボ装置72と、図1のAF窓22から取り込んだ被写体光からオートフォーカスにおける測距に必要なデータを取得するパッシブタイプのAFセンサ74とが設けられている。
【0026】
またカメラ10には、カメラ10の制御に関するパラメータやデータ、処理プログラム、測距に関する情報等の各種情報を書き換え自在に記録するプログラマブルROM82(EEPROM等の記録手段)と、CPU60からの指示に基づいてLCD表示パネル38に対して各モードに応じた図形、文字、数字等を表示するための信号を出力するLCD駆動部84とが設けられている。
【0027】
図2に示したシャッタボタン34、フラッシュボタン42、セルフタイマーボタン44、フォーカスボタン46、日付ボタン48、ズームボタン50等の各種ボタンの操作は各ボタンに対応して設けられたスイッチからのオン/オフ信号としてCPU60に与えられる。これらのスイッチは、図3においてスイッチ部86として示されている。尚、シャッタボタン34については半押しの状態(SP1がONの状態)と全押しの状態(SP2がONの状態)とが区別して検出される。
【0028】
尚、図3に示すドライバ88は、CPU60からの指令に基づいて鏡胴駆動部64に設けられているズーム駆動モータやフォーカス駆動モータを制御し、フイルム給送駆動部66に設けられているフイルム給送モータを駆動することが可能となっている。また、ドライバ88は、CPU60からの指令に基づいて基準電圧や駆動電力をA/D変換回路や測光センサ70に出力することが可能となっている。また、ドライバ88は、CPU60からの指令に基づいてフイルム露光時に開閉するシャッタの制御信号をシャッタ駆動部68に出力するとともに、ストロボの発光/停止を指示する信号をストロボ装置72に出力することが可能となっている。
【0029】
図4は、パッシブ方式によるAFセンサ74の構成を示した図である。同図に示すようにAFセンサ74には、例えば白と黒の2つの色から構成されている被写体90の像を左右の各センサの受光面に結像するレンズ92と、受光面に結像した像を光電変換して輝度信号として出力する右側のR(右)センサ94及び左側のL(左)センサ96と、CPU60と間で各種データの送受信を行うとともにRセンサ94及びLセンサ96の制御とデータ処理を行う処理回路99とが設けられている。尚、Rセンサ94、Lセンサ96、及び、処理回路99は、例えば、同一基板上に実装される。
【0030】
Rセンサ94及びLセンサ96は例えばCMOSラインセンサであり、直線上に配列された複数のセル(受光素子)から構成される。尚、Rセンサ94とLセンサ96のそれぞれのセルには図中左側から順にセンサ番号1、2、3…233、234が付されるものとする。ただし、Rセンサ94及びLセンサ96の左右両側の5つずつのセルは、ダミーのセルとして実際には使用されていないため、有効なセンサ領域は、センサ番号6から229までとなっている。これらのRセンサ94及びLセンサ96の各セルからは受光した光量に応じた輝度信号がセンサ番号と関連付けて処理回路99に順次出力される。
【0031】
処理回路99は、CPU60から指示信号によってAFセンサ74の動作状態と非動作状態の切替えを行い、動作状態においてCPU60から動作内容に関する制御データを取得すると、その制御データに基づいて積分処理等の処理を開始する。詳細は後述するが積分処理は各Rセンサ94及びLセンサ96から得た各セルの輝度信号を各セル毎に積分(加算)し、各セル毎の輝度信号の積分値(光量の積分値)を生成する処理である。尚、各セル毎の輝度信号の積分値を示す値としてAFセンサ74の受光セルから出力されるデータをセンサデータというものとすると、処理回路99がセンサデータとして実際に生成する値は、各セルの輝度信号の積分値を所定の基準値(基準電圧VREF)から減算した値であり、以下の説明においてセンサデータという場合には、この値をいうものとする。従って、センサデータは受光した光量が多い程、低い値を示す。但し、AFセンサ74から出力されるセンサデータは、各セルからの出力を各セルごとに積分した信号に基づく値であって、AFセンサ74で撮像した被写体の特徴を示すデータ(例えば、被写体のコントラストを示すデータ)であれば、少なくとも以下で説明する処理を同様に適用できる。また、以下の説明において、単に積分又は積分処理という場合にはセンサデータ(輝度信号の積分値)を得るための積分又は積分処理を示すものとする。
【0032】
また、積分処理は、例えば、Rセンサ94とLセンサ96のそれぞれのセンサ領域内(有効なセル内)のうちCPU60によって指定された後述するピーク選択領域内のいずれかのセルのセンサデータが所定の積分終了値に達すると、即ち、ピーク選択領域内のセンサデータのピーク値(最小値)が積分終了値に達すると、測距を行うのに十分なセンサデータが得られたと判断して終了する。このとき、処理回路99は、CPU60に積分終了を示す信号(積分終了信号)を出力する。尚、上述のようにセンサデータのピーク値が積分終了値に達した場合をAFセンサ74における積分終了条件とするのではなく、例えば、ピーク選択領域内におけるセンサデータの平均値が所定値に達した場合を積分終了条件としてもよく、また、他の条件を積分終了条件としてもよい。
【0033】
CPU60は、積分終了信号を受けて処理回路99から積分処理によって得られた各セルのセンサデータをセンサ番号と対応付けて取得する。これによって、CPU60はRセンサ94及びLセンサ96で撮像された画像(以下、センサ像という)を認識する。そして、詳細を後述するようにRセンサ94とLセンサ96のそれぞれのセンサ像の間(又は、センサ像のコントラスト抽出処理を実施した後)で相関値演算を行い、相関が最も高くなるときのセンサ像のズレ量を求め、被写体90までの距離を算出する(三角測量の原理)。図5、図6は、それぞれAFセンサ74から被写体90までの距離が近い場合と遠い場合のセンサ像(センサデータ)を例示した図である。被写体90までの距離が近い場合、図5に示すようにLセンサ96のセンサ番号87〜101までのセンサデータは明るい値(50)となり、センサ番号101〜150までは暗い値(200)となる。Rセンサ94についてはLセンサ96と異なる位置に設けられているため、センサ番号85〜133までのセンサデータは明るい値(50)となり、センサ番号133〜148までは暗い値(200)となる。
【0034】
これに対して、被写体90までの距離が遠い場合(例えば略無限遠の場合)には、図6に示すように、Lセンサ96のセンサ番号87〜117までのセンサデータは明るい値(50)となり、センサ番号118〜150までは暗い値(200)となる。一方、Rセンサ94は、Lセンサ96とは異なる位置に設けられているものの被写体位置が遠距離に存在するために、センサ番号85〜116までのセンサデータは明るい値(50)となり、センサ番号117〜148までは暗い値(200)となる。この場合にCPU60は、Rセンサ94とLセンサ96のセンサ像のズレ量がほとんどなく、被写体が略無限遠に存在すると判断することができる。これに対して、図5に示したように被写体が近距離に存在する場合には、センサ像のズレ量が大きくなる。
【0035】
定量的には、被写体距離は、Rセンサ94とLセンサ96との間隔及び各センサからレンズ92までの距離、Rセンサ94及びLセンサ96の各セルのピッチ(例えば12μm)等を考慮して、センサ像のズレ量から算出することができる。センサ像のズレ量は、Rセンサ94とLセンサ96のそれぞれのセンサ像の間で相関値演算を行うことにより求めることができ、詳細については後述する。
【0036】
次に、上記構成のAFセンサ74を使用して被写体の距離を測距し、その被写体にピントを合わせるAF測距の処理内容について説明する。
【0037】
カメラ10の処理モードを撮像のモードに設定して利用者がシャッタボタン34を半押しすると、CPU60はスイッチ部86からシャッタボタン34が半押しされたことを示すSP1のオン信号を取得する。SP1のオン信号を取得した場合、CPU60は、被写体を撮像するために被写体の輝度に応じたAEを設定するとともに、被写体を特定してピントを合わせるAF測距処理を開始する。
【0038】
図7は、上記CPU60におけるAF測距の処理手順の概要を示すフローチャートである。
[ステップS10(測距エリア設定処理)]
撮影レンズは、ズームレンズ鏡胴12を駆動することにより焦点距離を可変できるのに対し、AFセンサ74にセンサ像を結像させるレンズ92は、固定焦点レンズである。そこで、撮影レンズのレンズ位置(画角)に対応して測距エリアを変更するようにしている。即ち、撮影レンズがテレ位置の場合には、測距エリアを狭くする。
【0039】
ここで、図8に示すようにRセンサ94及びLセンサ96のセンサ領域は、それぞれ5分割したエリア単位で相関値演算等の処理が行われ、各エリア毎に被写体距離が算出されるようになっている。これらの分割されたエリアを以下分割エリアというものとすると、分割エリアは、同図に示すように「右エリア」、「右中エリア」、「中央エリア」、「左中エリア」、「左エリア」から構成される。また、各分割エリアは、隣接する分割エリアと一部領域(セル)を共有している。相関値演算等の際には、Rセンサ94とLセンサ96の対応する各分割エリア間(同一名の分割エリア間)でそれぞれ個別に相関値演算が行われることになる。尚、本実施の形態では分割エリアはセンサ領域を5分割したものであるが5分割以外の分割数であってもよい。
【0040】
測距エリアは、Rセンサ94とLセンサ96のそれぞれのセンサ領域のうち測距に使用する領域であり、その領域を決めるのに上記分割エリアが使用される。この測距エリア設定処理の詳細について、図9のフローチャートを用いて説明する。
【0041】
まず、CPU60は、現在設定されているズーム位置(画角の設定角度)に関する情報を鏡胴駆動部64から取得して、現在のズーム位置が所定のズーム位置よりテレ側かワイド側(テレ以外)かを判定する(ステップS10A)。例えばズーム可変範囲をZ1〜Z6の6つの範囲に分けた場合に、現在のズーム位置がテレ端側の範囲Z6に設定されているときにはテレ側と判定し、それ以外の範囲Z1〜Z5に設定されているときには、テレ以外と判定する。尚、マクロモードに設定されているときにはテレ以外と判定する。
【0042】
もし、テレ側と判定した場合には、図10に示すようにRセンサ94及びLセンサ96のセンサ領域(画角が±6.5°の範囲)のうち、測距に使用する測距エリアを撮影レンズの画角に対応した範囲(画角が±3.9°の範囲)に制限する。即ち、テレと判定した場合には、Rセンサ94及びLセンサ96の全センサ領域(5エリア)のうちの中央部の「右中エリア」、「中央エリア」、及び「左中エリア」の3つの分割エリアで構成される領域▲1▼を測距エリアとして設定する(3エリア設定)(ステップS10B)。一方、テレ以外と判定した場合には、「右エリア」、「右中エリア」、「中央エリア」、「左中エリア」、「左エリア」の5つの分割エリアで構成される領域▲2▼を測距エリアとして設定する(5エリア設定)(ステップS10C)。
[ステップS12(AFデータ取得処理)]
ステップS12では、被写体の明るさに応じてAFデータ(後に記述)の取得方法を切り替えている。
【0043】
即ち、被写体の輝度が超高輝度又は高輝度の場合には、AFセンサ74のセンサ感度(輝度信号のゲイン)を低感度に設定し、かつ測距エリアが3エリア設定の場合には、測距エリア(図10の領域▲1▼参照)を構成する「中央エリア」、「左中エリア」、及び「右中エリア」における積分処理を個別に行い、測距エリアが5エリア設定の場合には、測距エリア(図10の領域▲2▼参照)を構成する「中央エリア」、「左中及び左エリア」、及び「右中及び右エリア」における積分処理を個別に行う。尚、「左中及び左エリア」は「左中エリア」及び「左エリア」から構成される領域を示し、「右中及び右エリア」は「右中エリア」及び「右エリア」から構成される領域を示す。また、AFセンサ74のセンサ感度は、高感度と低感度の2段階に切り替えることができるようになっている。
【0044】
ここで、上記測距エリアを構成する「中央エリア」、「左中エリア」(又は「左中及び左エリア」)、及び「右中エリア」(又は「右中及び右エリア」)における積分処理を個別に行うとは、「中央エリア」内のいずれかのセンサデータが積分終了値に達すると、その「中央エリア」のセンサデータを取得し、続いてセンサデータをリセットして積分を開始し、「左中エリア」(又は「左中及び左エリア」)内のいずれかのセルのセンサデータが積分終了値に達すると、その「左中エリア」(又は「左中及び左エリア」)のセンサデータを取得し、次にセンサデータをリセットして積分を開始し、「右中エリア」(又は「右中及び右エリア」)内のいずれかのセルのセンサデータが積分終了値に達すると、その「右中エリア」(又は「右中及び右エリア」)のセンサデータを取得することをいう。このようにして、複数の領域の積分処理を個別に行うことにより、いずれかの領域に高輝度のライトなどが入射し、その領域のセンサデータが不適当な場合でも他の領域から有効なセンサデータを取得することができる。例えば、測距エリアが5エリア設定の場合において、測距エリア内に図11(A)、(B)に示すような主要被写体である人物と、人物後方の高輝度のライトが存在するものとする。このとき、例えば、測距エリアの全領域を選択領域(ピーク選択領域)として積分処理を行うと、図11(A)に示すように高輝度のライトに対応する右エリアにおけるセンサデータの信号レベルが適切なものとなり、主要被写体である人物に対応する中央エリアにおけるセンサデータの信号レベルが小さくなる。このため、各分割エリアごとに被写体距離を求めようとすると、中央エリアに関しては測距不能と判断され、結果的に後方のライトに合焦してしまう不具合が生じる。これに対して、上述のように測距エリアを複数の領域に分けて個別に積分処理を行うと、図11(B)に示すように中央エリアの積分処理において主要被写体である人物に対応するのセンサデータの信号レベルが適切なものとなり、結果的に人物に合焦させることができるようになる。
【0045】
また、被写体の輝度が中輝度の場合には、AFセンサ74のセンサ感度を低感度に設定し、かつ3エリア設定又は5エリア設定された測距エリアにおける積分処理を一括して行う。例えば、3エリア設定の場合には、測距エリア(図10の領域▲1▼参照)を構成する「中央エリア」、「左中エリア」、及び「右中エリア」の積分処理を同時に行い、これらの「中央エリア」、「左中エリア」、及び「右中エリア」内のいずれかのセルのセンサデータが積分終了値に達すると、「中央エリア」、「左中エリア」、及び「右中エリア」のセンサデータを一括して取得する。
【0046】
更に、被写体の輝度が低輝度の場合には、AFセンサ74のセンサ感度を高感度に設定し、かつ3エリア設定又は5エリア設定された測距エリアにおける積分処理を一括して行う。尚、積分時間が所定の時間経過しても測距エリア内のセルのセンサデータが積分終了値に達しない場合には、積分を終了させた後、AFセンサ74のセンサ感度を低感度に切り替えて積分を開始すると共に、オートフォーカス用の補助光をストロボ装置72から発光させる(AFプレ発光)。この場合には、3エリア設定又は5エリア設定された測距エリアにおける積分処理を一括して行う。
【0047】
尚、ここでは、AFセンサ74の受光セルより出力されるデータをセンサデータとしており、下記コントラスト検出処理1以降に使用される画像データとしては、センサデータ自体とする場合の他に、センサデータにコントラスト抽出処理等を施したものとする場合もあるため、コントラスト検出処理1以降の処理では、センサデータをそのまま処理に用いたもの、及び、センサデータにコントラスト抽出処理等を施したものを総称してAFデータと記載する。
[ステップS14(コントラスト検出処理1)]
ステップS14では、ステップS12で取得したAFデータが測距に必要なコントラストがあるか否かを判定する。そして、AFデータが測距に必要なコントラストがないと判定(低コントラスト判定)されると、測距不能とする。
【0048】
ここで、ステップS10の測距エリア設定処理において、測距エリアとして3エリア設定がされている場合には、右中エリア、中央エリア、及び左中エリアの各分割エリアごとに上記コントラスト判定を行い、低コントラスト判定された分割エリアのAFデータを使用した相関値演算等の処理は行わないようにしている。同様に、測距エリアとして5エリア設定がされている場合には、右エリア、右中エリア、中央エリア、左中エリア、左エリアの各分割エリアごとに上記コントラスト判定を行い、低コントラスト判定された分割エリアのAFデータを使用した相関値演算等の処理は行わないようにしている。
[ステップS16(相関値演算処理)]
ステップS16では、AFセンサ74のRセンサ94及びLセンサ96からそれぞれ取り込んだセンサ像(AFデータ)の間で相関値演算を行い、相関が最も高くなるときのセンサ像のズレ量(左右のAFデータ間のシフト量)を求める。この左右のAFデータ間のシフト量から被写体の距離を求めることができる。
【0049】
尚、測距エリアとして3エリア設定がされている場合には、右中エリア、中央エリア、及び左中エリアの各分割エリアごとに相関値演算を行い、測距エリアとして5エリア設定がされている場合には、右エリア、右中エリア、中央エリア、左中エリア、左エリアの各分割エリアごとに相関値演算を行うが、上記ステップS14で低コントラスト(測距不能)の判定が行われた分割エリアでの相関値演算は行わない。
【0050】
次に、上記相関値演算について図12を参照しながら説明する。
【0051】
図12において、94A及び96Aは、それぞれRセンサ94及びLセンサ96のうちのある分割エリアのセンサ(以下「採用センサ」という)である。また、94B及び96Bは、それぞれ採用センサ94A及び96AのAFデータから相関値演算に使用するAFデータを抽出するためのRウインドウ及びLウインドウである。
【0052】
ここで、Rウインドウ94BとLウインドウ96Bとのシフト量をn(n=−2,−1,0,1,…,MAX(=38))とすると、n=−2のときにRウインドウ94Bは採用センサ94Aの左端に位置し、Lウインドウ96Bは採用センサ96Aの右端に位置している。そして、n=−1のときにLウインドウ96Bは採用センサ96Aの右端から1セル分だけ左にシフトし、n=0のときにRウインドウ94Bは採用センサ94Aの左端から1セル分だけ右にシフトし、同様にしてnが1増加するごとにRウインドウ94BとLウインドウ96Bとは交互に1セルずつ移動する。そして、n=MAXのときにRウインドウ94Bは採用センサ94Aの右端に位置し、Lウインドウ96Bは採用センサ96Aの左端に位置する。
【0053】
いま、Rウインドウ94BとLウインドウ96Bとのあるシフト量nのときの相関値をf(n)とすると、相関値f(n)は、次式、
【0054】
【数1】
wo
f(n) =Σ|L(i)−R(i)| …(1)
i=1
で表すことができる。尚、式(1)において、iはウインドウ内のセルの位置(i=1,2,…wo(=42))を示す番号であり、R(i)及びL(i)は、それぞれRウインドウ94B及びLウインドウ96Bの同じセル位置iのセルから得られたAFデータである。即ち、式(1)に示すように相関値f(n)は、Rウインドウ94B及びLウインドウ96Bの同じセル位置のセルから得られたAFデータの差分の絶対値の総和であり、相関が高い程、ゼロに近づく。
【0055】
従って、シフト量nを変えて相関値f(n)を求め、相関値f(n)が最も小さくなるとき(相関が最も高くなるとき)のシフト量nから被写体の距離を求めることができる。尚、被写体距離が無限遠のときに、シフト量n=0で相関が最も高くなり、被写体距離が至近端のときに、シフト量n=MAXで相関が最も高くなるように被写体像がRセンサ94及びLセンサ96に結像するようになっている。また、相関を求める演算式は、上式(1)に限らず、他の演算式を用いることができる。その場合において、相関が高いほど相関値が大きくなる場合があり、このときには、以下の説明における相関値についての大小関係を反転してその演算式において本実施の形態を適用する。例えば、上式(1)により算出した相関値の極小値は、極大値となり、また、上式(1)により算出した相関値について小さい又は大きいなどの文言は、大きい又は小さいなどの文言に反転して適用することができる。
[ステップS18(コントラスト検出処理2)]
ステップS14では、分割エリア内のAFデータが、測距に必要なコントラストがあるか否かを判定しているのに対し、ステップS18では相関が最大となるシフト量nのときのウインドウ範囲内のAFデータが、測距に必要なコントラストがあるか否かを判定する。そして、低コントラストと判定すると、測距不能とし、そのときのシフト量nに基づく測距は行わない。
[ステップS20(L、Rチャンネル差補正処理)]
ステップS20では、AFセンサ74から得られた左右のAFデータであって、相関が最大となるウインドウ範囲内の左右のAFデータの最小値を比較する。そして、左右のAFデータの最小値の差の絶対値が第1の基準値以上かつ第2の基準値以下の場合に、ダイナミックレンジを越えない方のチャンネルのAFデータを補正する。尚、相関が最大となったときの相関値が小さい場合には、AFデータを補正しなくても相関値演算の結果は信頼性が高いと判断できるため、相関が最大となったときの相関値が第3の基準値以上の場合にのみAFデータの補正を行うようにしてもよい。
【0056】
また、AFデータを補正した場合には、再度相関値演算を行い、最小の相関値を求める。そして、補正後の最小の相関値と補正前の最小の相関値とを比較し、一致度の高い方の相関値のシフト量を採用する。
[ステップS22(補間値演算処理)]
ステップS22では、相関が最も高くなるときの相関値f(n)(最小極小値)を求めた後、その最小極小値と前後の相関値とを使用し、シフト量が1以内(AFセンサ74のセルの1ピッチ以内)の補間値を算出する。
【0057】
前記補間値は、最小極小値が得られたシフト量をnとすると、その最小極小値と、そのシフト量nの前後の複数のシフト量における相関値(最低3つの相関値)とに基づいて、これらの相関値を通りV字状に交わる2本の直線の交点を求め、その交点の位置と前記シフト量nとの差分値として算出される。
[ステップS24(AFエラー処理)]
ステップS24では、3エリア設定又は5エリア設定された測距エリアの全ての測距エリアで測距不能と判定されると、予め設定した被写体距離にピントを合わせるように撮影レンズをセットする。
【0058】
即ち、オートフォーカス用の補助光を発光し、かつ全ての測距エリアのAFデータ量不足によりエラーと判断された場合、無限遠にピントが合うように撮影レンズをセットする。
【0059】
また、オートフォーカス用の補助光を発光し、かつ全ての測距エリアのAFデータ量不足によりエラーと判断された場合、フイルム感度に応じてストロボ到達可能な固定焦点セット距離に切り替える。例えば、ISO400以上の場合には、固定焦点セット距離を6mとし、ISO400未満の場合には、固定焦点セット距離を3mとする。更に、エラーの種類によってピントを合わせる固定焦点セット距離を切り替えるようにしてもよい。
[ステップS26(距離算出処理)]
ステップS26では、ステップS16での相関値演算により最小極小値の相関値が得られるときのシフト量nと、ステップS22で演算した補間値とに基づいて被写体距離を算出する。尚、3エリア設定又は5エリア設定された測距エリアの全ての測距エリアごとに被写体距離を算出する。
[ステップS28(エリア選択処理)]
AF測距処理中にエラーが発生しない場合には、3エリア設定時には3つの被写体距離が算出され、5エリア設定時には5つの被写体距離が算出される。複数の被写体距離が算出されると、基本的には最も近距離の被写体距離を採用する。
【0060】
尚、5エリア設定時に5つの被写体距離が算出され、これらの被写体距離のうち、左エリア又は右エリアのうちの何れか一方のエリアに対応する被写体距離が超至近距離となり、それ以外のエリアに対応する被写体距離が全て中間距離以遠となる場合には、超至近の結果を採用せず、中間距離以遠の被写体距離のうちの最も近距離の被写体距離を採用する。
{AFデータ取得処理(図7ステップS12)の詳細}
次に、上記図7のステップS12におけるAFデータ取得処理について詳説する。
【0061】
まず、ピーク選択領域について説明すると、ピーク選択領域とは、AFセンサ74の積分処理において、センサデータのピーク値(最小値)が積分終了値に達したか否かを監視するセルの範囲をいう。図13は、以下で説明するAFデータ取得処理において設定されるピーク選択領域の態様を示した図である。ピーク選択領域は、上記図8で説明した分割エリアを単位として構成され、図13(A)には、Rセンサ94及びLセンサ96の分割エリアが示されている。これに対して、同図(B)〜同図(H)にはピーク選択領域が示されており、ピーク選択領域は領域▲1▼〜▲7▼の7通りに切り替えられる。
【0062】
同図(B)に示す領域▲1▼は、Rセンサ94及びLセンサ96における「中央エリア」、「右中エリア」、及び「左中エリア」の3つの分割エリアから構成され、同図(C)に示す領域▲2▼は、Rセンサ94及びLセンサ96における「中央エリア」、「右中エリア」、「右エリア」、「左中エリア」、及び「左エリア」の5つの分割エリアから構成される。尚、領域▲1▼は、図10で示した3エリア設定時の領域▲1▼に等しく、領域▲2▼は、図10で示した5エリア設定時の領域▲2▼に等しい。同図(D)、(E)、(F)に示す領域▲3▼、▲4▼、▲5▼はそれぞれ、Rセンサ94及びLセンサ96における「中央エリア」、「左中エリア」、「右中エリア」であり、同図(G)に示す領域▲6▼は、Rセンサ94及びLセンサ96における左中エリア及び左エリアから構成され、同図(H)に示す領域▲7▼は、Rセンサ94及びLセンサ96における右中エリア及び右エリアから構成される。
【0063】
図14は、AFデータ取得処理の手順を示したフローチャートである。まず、CPU60は、測光センサ70が出力する光量の信号出力を参照して、被写体から得た光量が超高輝度と判断する所定の閾値以上であるか否かを判定する(ステップS50)。NOと判定した場合、CPU60は、AFセンサ74(AFセンサ74の処理回路99)に対して一括ゲイン高積分の処理を開始させる(ステップS52)。尚、以下の説明では、AFセンサ74の処理回路99が行う処理であっても処理回路99とは明記せず、単にAFセンサ74と記述する。
【0064】
一括ゲイン高積分は、上記図7に示したステップS10の測距エリア設定処理により設定した測距エリアと同一範囲の領域をピーク選択領域とし、また、AFセンサ74のセンサ感度を高感度とし、測距エリア内の各セルのセンサデータを一括して取得する処理である。上記測距エリア設定処理において測距エリアを3エリア設定とした場合(ズーム位置がテレの場合)には、ピーク選択領域は、図13(B)に示した領域▲1▼に設定される。一方、測距エリアを5エリア設定とした場合(ズーム位置がテレ以外の場合)には、ピーク選択領域は、図13(C)に示したピーク選択領域▲2▼に設定される。尚、一括ゲイン高積分は、被写体輝度が低輝度の場合のセンサデータを取得するための積分処理であるが、後述の記載からも分かるように被写体輝度が高輝度、中輝度、低輝度のどの状態にあるかを判別するための処理でもある。このステップS52の一括ゲイン高積分の処理の代わりに被写体輝度を判別するための他の方法を採用してもよい。
【0065】
AFセンサ74による一括ゲイン高積分の開始後、CPU60は、AFセンサ74から積分処理の終了を示す積分終了信号が出力されるのを待機する。そして、積分処理の開始後、積分処理が終了するまでに要した時間(積分時間)が2ms未満か、2ms以上4ms未満か、又は、4ms以上か(4ms経過しても積分処理が終了しないか)を判定する(ステップS54)。
【0066】
もし、積分時間が2ms未満であった場合には、被写体が高輝度であると判断してAFセンサ74のセンサデータをリセットし、詳細を後述する3分割ゲイン低積分の処理に切り替える(ステップS56)。積分時間が2ms以上4ms未満であった場合には、被写体が中輝度であると判断してAFセンサ74のセンサデータをリセットし、詳細を後述する一括ゲイン低積分の処理に切り替える(ステップS58)。積分時間が4ms以上であった場合には、被写体が低輝度であると判断して詳細を後述する低輝度時処理を実行する(ステップS60)。
【0067】
ここで、上記ステップS50においてYES、即ち、被写体が超高輝度と判定した場合には、2ms未満で終了した場合と同様に3分割ゲイン低積分の処理を実行する(ステップS56)。
【0068】
ステップS56の3分割ゲイン低積分の処理は、AFセンサ74のセンサ感度を低感度に設定し、また、上記測距エリア設定処理において設定した測距エリアを3分割し、分割した各エリアをそれぞれ順にピーク選択領域としてAFセンサ74に積分処理を実行させるCPU60の処理である。
【0069】
即ち、上記図7ステップS10の測距エリア設定処理において測距エリアを3エリア設定として場合(ズーム位置がテレの場合)、測距エリアは「中央エリア」、「左中エリア」及び「右中エリア」から構成される。この測距エリアを「中央エリア」、「左中エリア」、及び、「右中エリア」の各分割エリアに3分割して、各分割エリアを順にピーク選択領域として積分処理を実行する。図13で示したピーク選択領域の態様においては、同図(D)、(E)、(F)の領域▲3▼、▲4▼、▲5▼が順にピーク選択領域として設定される。具体的には、図15のフローチャートに示すように、まず、中央エリア(領域▲3▼)をピーク選択領域とし(ステップS80)、また、AFセンサ74のセンサ感度を低感度として(ステップS82)積分処理を開始する(ステップS84)。この積分処理が終了し、CPU60が領域▲3▼のセンサデータを取得すると(ステップS86)、測距エリアが3エリア設定であるため(ステップS88)、続いて、左中エリア(領域▲4▼)をピーク選択領域とし(ステップS90)、また、AFセンサ74のセンサ感度を低感度として(ステップS92)積分処理を開始する(ステップS94)。この積分処理が終了し、CPU60が領域▲4▼のセンサデータを取得すると(ステップS96)、続いて、右中エリア(領域▲5▼)をピーク選択領域とし(ステップS98)、また、AFセンサ74のセンサ感度を低感度として(ステップS100)積分処理を開始する(ステップS102)。この積分処理が終了し、CPU60が領域▲5▼のセンサデータを取得すると(ステップS104)、3分割ゲイン低積分の処理を終了する。これによって以後の測距演算に必要な測距エリア内の各分割エリアのセンサデータが取得される。
【0070】
一方、上記測距エリア設定処理において5エリア設定とした場合(ズーム位置がテレ以外の場合)、測距エリアは、「中央エリア」、「左中エリア」、「左エリア」、「右中エリア」、「右エリア」から構成される。この測距エリアを図13(D)、(G)、(H)の領域▲3▼、▲6▼、▲7▼に3分割して、各領域▲3▼、▲6▼、▲7▼を順にピーク選択領域として積分処理を実行する。具体的には、図15のフローチャートで説明すると、上述の3エリア設定の場合と同様に、まず、中央エリア (領域▲3▼)をピーク選択領域とし(ステップS80)、また、AFセンサ74のセンサ感度を低感度として(ステップS82)積分処理を開始する(ステップS84)。この積分処理が終了し、CPU60が領域▲3▼のセンサデータを取得すると(ステップS86)、測距エリアが5エリア設定であるため(ステップS88)、続いて、左中エリア及び左エリア(領域▲6▼)をピーク選択領域とし(ステップS106)、また、AFセンサ74のセンサ感度を低感度として(ステップS108)積分処理を開始する(ステップS110)。この積分処理が終了し、CPU60が領域▲6▼のセンサデータを取得すると(ステップS112)、続いて、右中エリア及び右エリア(領域▲7▼)をピーク選択領域とし(ステップS114)、また、AFセンサ74のセンサ感度を低感度として(ステップS116)積分処理を開始する(ステップS118)。この積分処理が終了し、CPU60が領域▲7▼のセンサデータを取得すると(ステップS120)、3分割ゲイン低積分の処理を終了する。これによって以後の測距演算に必要な測距エリア内の各分割エリアのセンサデータが取得される。
【0071】
尚、上記説明では測距エリアが5エリア設定の場合には、測距エリアを領域▲3▼、▲6▼、▲7▼に3分割するようにしたが、これに限らず、各分割エリアに5分割してそれぞれの分割エリアを順にピーク選択領域として積分処理を実行しセンサデータを取得するようにしてもよい。即ち、測距エリアを分割する領域の数は本実施の形態の場合に限らず任意に設定変更できる。
【0072】
図14のステップS58における一括ゲイン低積分の処理は、ステップS52の一括ゲイン高積分において採用したピーク選択領域を変更せず、AFセンサ74のセンサ感度を高感度から低感度に切り替えてAFセンサ74に積分処理を実行させるCPU60の処理である。
【0073】
即ち、上記測距エリア設定処理において測距エリアを3エリア設定とした場合(ズーム位置がテレの場合)には、ピーク選択領域を、図13(B)に示した領域▲1▼とし、また、AFセンサ74のセンサ感度を低感度としてAFセンサ74に積分処理を実行させる。一方、上記測距エリア設定処理において測距エリアを5エリア設定とした場合(ズーム位置がテレ以外の場合)には、ピーク選択領域を、図13(C)に示した領域▲2▼とし、また、AFセンサ74のセンサ感度を低感度としてAFセンサ74に積分処理を実行させる。
【0074】
以上の積分処理が終了するとCPU60は、AFセンサ74から測距エリア内のセンサデータを取得する。これによって、測距演算に必要な測距エリア内の各分割エリアのセンサデータが取得される。
【0075】
図14のステップS60における低輝度時処理は、ステップS52における一括ゲイン高積分の処理を、最大許容積分時間を限度として積分処理が終了するまで継続させる処理である。
【0076】
最大許容積分時間は、撮影モードにより異なり、撮影モードが発光禁止モードに設定されている場合には、上記ステップS52の一括ゲイン高積分の積分時間が4ms以上経過した後も200ms(最大許容積分時間)を限度としてそのまま積分処理を継続させる。もし、積分処理が200ms以内で正常に終了した場合(ピーク選択領域内のセンサデータのピーク値が積分終了値に達したことにより積分を終了した場合(以下同様))には、その時点のセンサデータをAFセンサ74から取得する。一方、200msが経過しても積分処理が正常に終了しない場合には、CPU60からの指示信号により強制的に積分処理を終了させ、その時点でのセンサデータをAFセンサ74から取得する。
【0077】
また、撮影モードが発光禁止モードでない場合には、まず、上記ステップS52の一括ゲイン高積分の積分時間が4ms以上経過した後も100msを限度 (最大許容積分時間)としてそのまま積分処理を継続させる。もし、積分処理が100ms以内で正常に終了した場合には、その時点でセンサデータをAFセンサ74から取得する。一方、積分時間が100msに達しても積分処理が終了しない場合には、CPU60からの指示信号により強制的に積分処理を終了させる。そして、ストロボ装置AF72による補助光の発光によりAFプレ発光させながら積分処理を再度開始させる。尚、夜景ポートレートモードのように夜景と手前の人物とを同時に撮影するようなモードに設定されている場合には、夜景にピントが合う不具合を防止するために、一括ゲイン高積分の積分時間は、100msの替わりに25msを限度とし、積分時間が25msに達しても積分処理が正常に終了しない場合には、積分処理を強制的に終了させて、AFプレ発光と共に積分処理を開始させる。尚、以下、AFプレ発光させながら積分を行う処理をプレ発光処理という。
【0078】
プレ発光処理による積分処理を開始する場合、ステップS52の一括ゲイン高積分において採用したピーク選択領域を変更せず、AFセンサ74のセンサ感度を高感度から低感度に切り替えてAFセンサ74に積分処理を開始させる。また、AFプレ発光は、断続的なパルス発光により所定の上限回数を設定して行う。これにより、プレ発光が上限回数に達する前に積分処理が正常に終了した場合には、そのときのセンサデータをAFセンサ74から取得する。一方、プレ発光が上限回数に達しても積分処理が正常に終了しない場合には、積分処理を強制的に終了させて、その時点でのセンサデータをAFセンサ74から取得する。
【0079】
尚、上記実施の形態では被写体輝度が高輝度又は超高輝度の場合だけ測距エリアを複数の領域(ピーク選択領域)に分割して各領域ごとにセンサデータを取得するようにしたが、被写体輝度が中輝度や低輝度の場合であっても高輝度等の場合と同様に測距エリアを複数の領域に分割して各領域ごとにセンサデータを取得するようにしてもよい。
【0080】
また、上記実施の形態では、被写体輝度が超高輝度、高輝度、中輝度、低輝度の場合に場合分けしてそれぞれの場合に対応したセンサデータの取得処理を行うようにしたが、これに限らず、被写体輝度のレベルを上記実施の形態よりも細かく又は粗く場合分けしてそれぞれの被写体輝度のレベルに対応したセンサデータの取得処理を行うようにしてもよい。
【0081】
次に、上記AFデータ取得処理を実行する際のCPU60とAFセンサ74 (処理回路99)の処理動作について詳説する。図16に示すようにCPU60とAFセンサ74との間では、複数の信号ラインにより各種信号の送受信が行われる。CPU60からAFセンサ74に送信される信号の信号ラインとしては、AFセンサ74を動作状態又は非動作状態に切り替える信号が送信される/AFCEN、制御データの設定を指示する信号が送信される/AFRST、制御データの内容を示す信号が送信されるAFAD、READ/WRIGHT−クロックパルスが送信されるAFCLK等がある。AFセンサ74からCPU60に送信される信号の信号ラインとしては、積分処理が終了したことを示す信号が送信される/AFEND、ピーク選択領域におけるセンサデータのピーク値(最小値)がアナログデータとして送信されるMDATA、Rセンサ94及びLセンサ96の各セルのセンサデータがアナログデータとして送信されるAFDATAP等がある。尚、以下、各信号ラインから送信される信号の種類を信号ラインの名称により識別する(/AFCEN信号、/AFRST信号等)。
【0082】
CPU60及びAFセンサ74における上記各信号の送受信の動作タイミングについて図17の動作タイミングチャートを用いて説明する。CPU60が/AFCEN信号を1(Highレベル)に設定している場合、AFセンサ74は非動作状態にあり、CPU60が/AFCEN信号を0(Lowレベル)に切り替えるとAFセンサ74が動作状態に切り替わる(時刻T10参照)。
【0083】
AFセンサ74を動作状態に切り替えた後、所定時間(10ms)が経過すると、CPU60は/AFRST信号を1から0に切り替えてAFセンサ74に対して制御データの設定を指示する(時刻T20参照)。そして、CPU60は、AFセンサ74に対して、AFAD信号により制御データを送信すると共に、AFCLK信号によりクロックパルスを送信する(時刻T20〜T30の期間参照)。AFセンサ74は、/AFRST信号が1から0に切り替えられると、AFCLK信号により与えられるクロックパルスに同期してAFAD信号の信号レベルを読み込む。これによって、ピーク選択領域、センサ感度等の積分処理に必要なデータがAFセンサ74にセットされる。尚、制御データとして、D0からD127までの128個の1又は0で示されるデータが時系列で送信されるが、制御データの内容については後述する。
【0084】
AFAD信号により最後のデータ(D127)が送信され(時刻T30参照)、100μsが経過すると(時刻T40参照)、CPU60は/AFRST信号を0から1に切り替え、積分処理の開始を指示する。これにより、AFセンサ74は、センサ感度を高感度に設定した場合には150μs後に、センサ感度を低感度に設定した場合には30μs後に、Rセンサ94及びLセンサ96の各セルによる受光を開始すると共に、各セルから逐次出力される輝度信号の積分を開始する(時刻T50参照)。同時に、AFセンサ74は、/AFEND信号を1から0に切り替え、積分を開始したことをCPU60に送信する。また、MDATA信号によりピーク選択領域内のセンサデータのピーク値をアナログデータとして出力する。
【0085】
積分処理の開始後、センサデータのピーク値が所定の積分終了値VEND(例えば、0.5V)に達すると、AFセンサ74は、輝度信号の積分を終了すると共に、/AFEND信号を0から1に切り替える(時刻T60参照)。尚、/AFEND信号の0から1への切替りが積分終了信号となる。
【0086】
CPU60は、/AFEND信号が0に設定されていた時間(時刻T50〜T60の期間)を検出することより、積分時間を検出すると共に、/AFEND信号が0から1に切り替えられたことにより積分が終了したことを検出する。
【0087】
積分が終了すると、CPU60は、AFセンサ74に対してAFCLK信号によりクロックパルスを送信し、センサデータの読出しを指示する(時刻T70参照)。尚、ピーク選択領域内におけるセンサデータのピーク値が積分終了値に達した場合にAFセンサ74が積分を自動的に終了する自動終了モードと、センサデータのピーク値が積分終了値に達したか否かとは無関係に外部(CPU60)からの指示により積分を終了する外部終了モードとがあり、CPU60は、前者の場合にはAFAD信号を1に設定した状態を維持して上記クロックパルスを送信し、後者の場合にはAFAD信号を0に切り替えてAFセンサ74の積分を終了させた後、上記クロックパルスを送信する。また、前者の場合であってもCPU60がAFAD信号を1から0に切り替えることにより強制的にAFセンサ74における積分を終了させることができるようになっている。
【0088】
AFセンサ74は、AFCLK信号により与えられるクロックパルスに同期して各セルごとに積分して得たセンサデータをアナログデータとしてLセンサ96とRセンサ94のセンサ番号1からセンサ番号234まで交互にCPU60に送信する。これによってCPU60はセンサデータをAFセンサ74から取得する。
【0089】
次に、上記AFAD信号により送受信される制御データの内容について説明する。上述のように制御データは、D0からD127までの128個の1又は0のデータから構成される(図17時刻T20〜T30の期間参照)。このうち、D0〜D111は、AFセンサ74において設定すべきピーク選択領域を示すピーク選択領域設定データであり、D112〜D118は、ピーク選択領域数を示すピーク選択領域数データである。尚、ピーク選択領域設定データ及びピーク選択領域数データの詳細は後述する。
【0090】
また、D119〜D120はダミーデータ(0)であり、D121は設定すべきセンサ感度を示す感度データである。本実施の形態においてセンサ感度は、高又は低の2段階で切替可能であり、D121が1の場合には高感度、D121が0の場合には低感度の設定を示す。
【0091】
D122は、積分の終了に関するモードを示す積分モードデータであり、D122が1のときは外部からの指示によって積分を終了する外部終了モードの設定を示し、D122が0のときは、ピーク選択領域内のセンサデータが所定の積分終了値(積分終了電圧)VENDに達したときにAFセンサ74が自動で積分処理を終了する自動終了モードの設定を示す。
【0092】
D123は、自動終了モードの場合に積分終了値VENDを設定する自動積分終了電圧設定データであり、本実施の形態では、D123が1の場合には電圧Lの設定を示し、D123が0の場合には電圧Hの設定を示す。
【0093】
D124〜D126は、基準電圧VREFを設定するVREF選択データである。3ビットのデータによって8種類の基準電圧を設定することができる。D127は、制御データの終了を示す終了データであり、常に1に設定される。
【0094】
次に、ピーク選択領域設定データD0〜D111及びピーク選択領域数データD112〜D118について詳説する。Rセンサ94及びLセンサ96は、それぞれ図18に示すようにセンサ番号1から234までの234個のセルによって構成されている。各センサ94、96の左右5つのセル(センサ番号1〜5、及び、センサ番号230〜234)はダミーセルであり、実際に有効なセル(有効画素)はセンサ番号6〜229までの224個となっている。
【0095】
CPU60及びAFセンサ74の処理上において、有効画素範囲のセンサ番号6〜229のセルは、隣接する4つずつセルを1ブロックとしてブロック単位で管理されており、同図に示すようにLセンサ96のセンサ番号229からセンサ番号6まで順に4つ単位でブロック番号D0、D1、…、D55(ブロック数56)が割り当てられ、Rセンサ94のセンサ番号229からセンサ番号6まで順に4つ単位でブロック番号D56、D57、…、D111(ブロック数56)が割り当てられている。
【0096】
CPU60とAFセンサ74との間で制御データとして送受信されるD0〜D111のデータは、このようにして割り当てられたブロック番号に対応しており、ピーク選択領域設定データD0〜D111を図19のように配列して示すと、Lセンサ96についての設定データは、点線で囲まれていないD0〜D55であり、Rセンサ94についての設定データは、点線で囲まれたD56〜D111である。例えば、設定データD0、D56は、それぞれLセンサ96、Rセンサ94のセンサ番号226〜229についての設定データを示し、設定データD55、D111は、それぞれLセンサ96、Rセンサ94のセンサ番号6〜9についての設定データを示す。
【0097】
ピーク選択領域設定データD0〜D111は、その設定データに対応するブロック番号の4つのセルをピーク選択領域内のセルとして設定するか否かを示しており、設定データが1のときは、その設定データに対応するブロック番号の4つのセルはピーク選択領域内のセルとして設定され、設定データが0のときは、その設定データに対応するブロック番号の4つのセルはピーク選択領域外のセルとして設定される。例えば、設定データD0が1の場合、Lセンサ96のセル229、228、227、226は、ピーク選択領域内のセルとして設定される。
【0098】
また、ピーク選択領域設定データと共に制御データとして送受信されるピーク選択領域数データD112〜D118は、ピーク選択領域設定データによりピーク選択領域として設定するブロック数を2進数で示したものであり、図20に示すように、D112を最上位ビット、D118を最下位ビットとした7ビットデータにより、ピーク選択領域として設定するブロック数が表される。同図(A)に示すようにD115のみが1の場合にはピーク選択領域として設定するブロック数は8であり、同図(B)に示すようにD112〜D114が1、D115〜D118が0の場合にはピーク選択領域として設定するブロック数は112である。
【0099】
次に、ピーク選択領域設定データの生成手順について説明する。ピーク選択領域は、図13に示したように領域▲1▼〜▲7▼のいずれかに設定される。各領域▲1▼〜▲7▼をピーク選択領域として設定する際のピーク選択領域設定データは、以下のように生成される。
【0100】
例えば、図21に示すようにRセンサ94又はLセンサ96のセンサ領域Sにおいて領域P(斜線部分)をピーク選択領域として設定する場合、領域Pの右端と左端のセルのセンサ番号を求め、センサ番号が領域Pの右端と左端のセルのセンサ番号の間にあるセルをピーク選択領域内のセルとする。
【0101】
ここで、各セルのセンサ番号が各セルのアドレスを示すものとし、特に領域Pの右端のアドレスをピーク選択開始アドレスPS、左端のアドレスをピーク選択終了アドレスPEとする。
【0102】
一方、領域Pを特定する情報として領域Pの右端のアドレスS1と、領域P内の所定セルのアドレスS2と、アドレスS2のセルから領域Pの左端のセルまでのセル数(センサ数)Dが予め参照データとして与えられているとする。このとき、領域Pのピーク選択領域開始アドレスPSとピーク選択領域終了アドレスPEは、次式、
【0103】
【数2】
PS=S1 …(2)
PE=S2+D−1…(3)
により求めることができる。尚、Rセンサ94においてピーク選択領域とする領域に対する上記ピーク選択開始アドレスPS、ピーク選択終了アドレスPE、参照データS1、S2、Dを、それぞれPSR、PER、SR1、SR2、DRとし、Lセンサ96においてピーク選択領域とする領域に対する上記ピーク選択開始アドレスPS、ピーク選択終了アドレスPE、参照データS1、S2、Dを、それぞれPSL、PEL、SL1、SL2、DLとして識別する。
【0104】
図13に示した各領域▲1▼〜▲7▼をピーク選択領域として設定する場合について具体的に説明すると、各領域▲1▼〜▲7▼をピーク選択領域として設定する際の参照データとして、Rセンサ94及びLセンサ96の各分割エリアの右端のセルのアドレスと、各分割エリアの採用センサ数(セル数)が用いられる。
【0105】
本実施の形態においてRセンサ94及びLセンサ96に対して採用される各分割エリアの右端のセルのアドレス及び各分割エリアの採用センサ数の具体的数値例を図22に示す。尚、Rセンサ94については括弧なしの数値で示し、Lセンサ96については括弧付きの数値で示している。
【0106】
例えば、領域▲1▼をピーク選択領域とする場合、Rセンサ94についての参照データSR1、SR2、DRは、それぞれ左中エリアの右端のセルのアドレス46、右中エリアの右端のセルのアドレス126、右中エリアの採用センサ数62である。同様にLセンサ96にについての参照データSL1、SL2、DLは、それぞれ左中エリアの右端のセルのアドレス48、右中エリアの右端のセルのアドレス128、右中エリアの採用センサ数62である。これらの参照データを上式(2)、(3)に代入すると、Rセンサ94及びLセンサ96における領域▲1▼のピーク選択開始アドレスPSR、PSL、ピーク選択終了アドレスPER、PELが算出される。即ち、
【0107】
【数3】
PSR=46
PER=126+62−1=187
PSL=48
PEL=128+62−1=189
が算出される。従って、領域▲1▼をピーク選択領域とする場合にはRセンサ94についてはセンサ番号46〜187のセルがピーク選択領域内のセルとすることが求まり、Lセンサ96についてはセンサ番号48〜189のセルがピーク選択領域内のセルとすることが求まる。
【0108】
領域▲1▼以外の領域▲2▼〜▲7▼をピーク選択領域とする場合についても上述と同様にしてピーク選択開始アドレスPSR、PSL、ピーク選択終了アドレスPER、PELを算出することができる。即ち、設定しようとするピーク選択領域内において、右端にある分割エリア内の右端のアドレスを参照データSR1、SL1とし、左端にある分割エリア内の右端のアドレスを参照データSR2、SL2とする。また、その左端にある分割エリアの採用センサ数をDR、DLとする。そして、上式(2)、(3)にそれらの値を代入することによって、各領域▲2▼〜▲7▼をピーク選択領域として設定する場合のピーク選択開始アドレスPSR、PSL及びピーク選択終了アドレスPER、PELを算出することができる。図22にも示されているように、領域▲2▼の場合には、PSR=6、PER=227、PSL=8、PEL=229、領域▲3▼の場合には、PSR=86、PER=147、PSL=88、PEL=149、領域▲4▼の場合には、PSR=46、PER=107、PSL=48、PEL=109、領域▲5▼の場合には、PSR=126、PER=187、PSL=128、PEL=189、領域▲6▼の場合には、PSR=6、PER=107、PSL=8、PEL=109、領域▲7▼の場合には、PSR=126、PER=227、PSL=128、PEL=229となる。
【0109】
尚、右エリア、右中エリア、中央エリア、左中エリア、左エリアの順に、Rセンサ94における各分割エリアの右端のセルのアドレスをRSR、RMSR、MSR、LMSR、LSR、各エリアの採用センサ数をRWR、RMWR、MWR、LMWR、LWRとし、また、Lセンサ96における各分割エリアの右端のセルのアドレスをRSL、RMSL、SL、LMSL、LSL、各エリアの採用センサ数をRWL、RMWL、MWL、LMWL、LWLとすると、図23に示すように各領域▲1▼〜▲7▼をピーク選択領域とする場合に上記SR1、SR2、SL1、SL2、DR、DLに代入するアドレス及びセンサ数が対応する。
【0110】
以上のようにして、ピーク選択領域とする領域のピーク選択開始アドレスPSとピーク選択終了アドレスPEを得ると、次に図18のように4つのセルを1ブロックとしたブロック番号D0〜D55、D56〜D111によりピーク選択領域の範囲を求める。このとき、ピーク選択開始アドレスPSとピーク選択終了アドレスPEを含むブロック番号の4つのセルは、ピーク選択領域内のセルとする。
【0111】
そこで、Lセンサ96とRセンサ94のそれぞれについてピーク選択領域の左端のブロック番号をピーク選択開始ブロック番号DSL、DSRとし、ピーク選択領域の右端のブロック番号をピーク選択終了ブロック番号DEL、DERとすると、次式、
【0112】
【数4】
DSL=INT((229−PEL)/4) …(4)
DEL=55−INT((PSL−6)/4) …(5)
DSR=56+INT((229−PER)/4) …(6)
DER=111−INT((PSR−6)/4) …(7)
によりDSL、DEL、DSR、DERが得られる。ただし、DSL<0の場合は、DSL=0とし、DEL>55の場合は、DEL=55とし、DSR<56の場合は、DSR=56とし、DER>111の場合は、DER=111とする。
【0113】
ピーク選択領域は、Rセンサ94については、ブロック番号DSRからDERまでの範囲となり、Lセンサ96については、ブロック番号DSLからDELまでの範囲となるため、ピーク選択領域設定データD0〜D111は、それらの範囲において1に設定され、他の範囲で0に設定される。
【0114】
また、このとき、ピーク選択領域数をDPSとすると、ピーク選択領域数DPSは、次式、
【0115】
【数5】
DPS=DEL−DSL+1+DER−DSR+1 …(8)
により得られる。ピーク選択領域数データD112〜D118は、DPSを二進数により表すことで得られる。
【0116】
図24は、図13の各領域▲1▼〜▲7▼をピーク選択領域とする場合に、図22に示した数値例から上式(4)〜(8)により生成されるピーク選択領域設定データD0〜D111及びピーク選択領域数データD112〜D118を示した図である。例えば、領域▲1▼をピーク選択領域とする場合、ピーク選択開始アドレスPSR、PSLはそれぞれ46、48であり、ピーク選択終了アドレスPER、PELはそれぞれ187、189であるから、これらの数値を上式(4)〜(7)に代入すると、ピーク選択開始ブロック番号DSL、DSRは、それぞれ10、66となり、ピーク選択終了ブロック番号DEL、DERは、それぞれ45、101となる。従って、図24の領域▲1▼についてのピーク選択領域設定データD0〜D111に示すように、D0〜D9が0、D10〜D45が1、D46〜D55が0、D56〜D65が0、D66〜D101が1、D102〜D111が0となる。また、上式(8)により、領域▲1▼のピーク選択領域数は112となり、図24の領域▲1▼についてのピーク選択領域数データD112〜D118に示すように、各データ値は、順に1001000となる。
【0117】
以上のように各領域▲1▼〜▲7▼をピーク選択領域として設定する際に、ピーク選択領域設定データD0〜D111やピーク選択領域数データD112〜D118を、各分割エリアの範囲を示すアドレス情報を参照データとして生成するようにしているため、予め図24に示したような膨大なデータをメモリに登録しておく必要がなく、メモリを節約することができる。尚、上記実施の形態では、各分割エリアの範囲を示すアドレス情報として各分割エリアの右端のアドレスと採用センサ数を参照する場合について説明したが、各分割エリアの範囲を示すアドレス情報として各分割エリアの右端と左端のアドレスを参照データとしてピーク選択領域設定データD0〜D111やピーク選択領域数データD112〜D118を生成することもできる。また、各分割エリアの範囲を示すアドレス情報であれば、上記以外のアドレス情報であってもピーク選択領域設定データD0〜D111やピーク選択領域数データD112〜D118を生成することができる。
【0118】
次に、AFセンサ74から/AFEND信号が正常に出力されない場合における処理について説明する。例えば、図14のステップS52、ステップS56、ステップS58における各積分処理において、通常は、図17に示したように/AFRST信号が0から1に切り替わった後(時刻T40参照)、所定時間経過後(センサ感度が高感度の場合には150μs後、低感度の場合には30μs後)に積分が開始されて/AFEND信号が1から0に切り替わる(時刻T50参照)。そして、ピーク選択領域内のセンサデータのピーク値が積分終了値に達すると、/AFEND信号が0から1に切り替わる(時刻T60参照)。CPU60はこの/AFEND信号の0から1への切り替わりを積分終了信号として検知し、積分終了を認識する。
【0119】
これに対して、被写体輝度が低い場合や、被写体輝度が一定輝度を超えている場合、又は、/AFEND信号の接続エラーの場合には、最大許容積分時間が経過しても/AFEND信号が正常に出力されない場合がある。
【0120】
被写体輝度が低い場合に/AFEND信号が正常に出力されない(/AFEND信号が0から1へ切り替わらない)のは、センサデータのピーク値が積分終了値に達しないためである。例えば、被写体が明るい場合には、図26(A)に示すように/AFEND信号が1から0に切り替わった後(積分処理が開始された後)、最大許容積分時間が経過する前に、ピーク選択領域におけるセンサデータのピーク値が積分終了値に達するため(同図MDATA信号参照)、/AFEND信号が0から1に切り替わる(積分終了信号が出力される)。これに対して、被写体が暗い場合には、図26(C)に示すように/AFEND信号が1から0に切り替わった後、最大許容積分時間が経過する前に、ピーク選択領域におけるセンサデータのピーク値が積分終了値に達しないため(同図MDATA信号参照)、最大許容積分時間が経過するまでに/AFEND信号は0から1に切り替わらず、積分終了信号は出力されない。尚、最大許容積分時間に達するとCPU60からAFセンサ74に強制的に積分処理を終了させる信号(図26(B)のAFAD=“L”にする)が与えられるため、その信号により最大許容積分時間経過時に積分処理が終了し、/AFEND信号が0から1に切り替わる。
【0121】
一方、被写体輝度が一定輝度を超えている場合に/AFEND信号が正常に出力されない(/AFEND信号が1から0へ切り替わらない、及び、/AFEND信号が0から1へ切り替わらない)のは、AFセンサ74の特性上の問題である。即ち、正常に積分処理が行われ、センサデータのピーク値が積分終了値に達していても被写体輝度が極めて高い場合にはAFセンサ74の特性上、/AFEND信号が正常に出力されない場合があり、例えば、/AFEND信号が次のような出力形態となることがある(特に、図14ステップS32のゲイン高感度積分時に生じやすい)。被写体輝度がある一定輝度を超えた場合、図25に示すように/AFRST信号が0から1に切り替わってから所定時間経過後の積分開始時に本来0に切り替わるべき/AFEND信号が0に切り替わらなくなる(同図(A)の場合)。この場合には当然に積分処理の終了時においても/AFEND信号は0から1に切り替わることがなく積分終了信号は出力されない。一方、これよりも被写体輝度が高くなると、/AFEND信号が正常に出力されるようになるが(同図(B)の場合)、積分時間が極めて短いために/AFEND信号の1から0への切替わり及び0から1への切替わりを正常に認識できない場合がある。更に被写体輝度が高くなりセンサの動作限界を超えると、/AFEND信号が1から0に切り替わったまま積分が終了しても1に切り替わらなくなり(同図(C)の場合)、この場合も積分終了信号が出力されない。
【0122】
このように被写体輝度が一定輝度を超えると(特に感度高で積分を実行した場合(S52))、輝度が高くなるに従って、
(a) /AFEND信号が1から0に切り替わらない場合。
(b) /AFEND信号が1から0に切り替わった後、/AFEND信号が0から1へとの切り替わりが非常に短い場合。
(c) /AFDEN信号が1から0となるが、その後/AFEND信号が0から1へと切り替わらない場合。
の3通り、/AFEND信号が正常に出力されない場合がある。
【0123】
/AFEND信号が1から0に切り替わらない場合は、ある一定輝度を超えた場合(この場合は/AFEND信号の接続エラーの場合も考えられる)と想定し、後に示すMDATAにより、実際にある一定輝度を超えていたかを判断する。
【0124】
また、ある一定輝度よりも被写体輝度が高くなり、/AFEND信号が1から0に切り替わった後、/AFEND信号が0から1へとの切り替わりが非常に短く、CPUに於いて正常に/AFEND信号を認識できない場合も、CPU側から見ると上記の/AFEND信号が1から0に切り替わらないと認識するため、ある一定輝度を超えた場合と推定し、後に示すMDATAにより、実際にある一定輝度を超えていたかを判断する。
【0125】
更に被写体輝度が高くなり、/AFEND信号が1から0となり、その後/AFEND信号が0から1へと切り替わらない場合は被写体輝度が低い場合で丁度最大許容積分時間で積分が終了した場合と、超高輝度の場合で/AFEND信号が0から1へと切り替わらない場合との判断ができなくなる(センサピーク(後に示すMDATAの値)が共に最小値のため)。
【0126】
そこで、図14のステップS50において測距対象物が測光センサにより超高輝度と判定された場合は、図14のステップS52(感度高積分)を実施せず、ステップS56の3分割ゲイン低積分を実施し上記誤判断を防ぐこととしている。
【0127】
ところで、回路の不具合により/AFEND信号が1から0に切り替わらない場合も想定される。
【0128】
ここで、
(a)/AFEND信号のみの接続エラーの場合(正常に積分は実施されるが、積分開始及び積分終了が判断できない場合)
及び
(b)回路の積分動作エラーの場合(/AFEND信号以外の接続エラーであり、VCC、GND、/AFCEN、/AFRST、AFCLKのいずれかの接続エラーにより積分が実施されない場合、及び、AFセンサ破損等により積分が実施されない場合)
が考えられる。
【0129】
/AFEND信号の接続エラーの場合も、/AFEND信号が1から0に切り替わらず、/AFEND信号が正常に出力されない。このため、/AFEND信号が1から0に切り替わらない場合には、上述のように被写体輝度が一定輝度を超えている場合を想定するだけでなく、/AFEND信号の接続エラーの場合も想定する。そして、後に示すMDATAによりセンサデータが積分終了条件を満たすか否かを判断する。/AFEND信号の接続エラーの場合で、MDATAの値が、図26(B)のMC_JDG以上(ほぼ初期値(VREF))となる場合(被写体輝度が極端に低く信号蓄積がほとんど行われていない場合)は、測距不能と判断する。
【0130】
また、/AFEND信号の接続エラーの場合で、MDATAの値が、図26(B)のMC_JDG未満の場合(被写体輝度が極端に低くなく、ある程度信号蓄積が行われている場合)は、測距を継続する。
【0131】
また、回路の積分動作エラーの場合も、/AFEND信号が1から0に切り替わらず、/AFEND信号が正常に出力されない。このため、/AFEND信号が1から0に切り替わらない場合には、上述のように被写体輝度が一定輝度を超えている場合を想定するだけでなく、回路の積分動作エラーの場合も想定する。そして、後に示すMDATAによりセンサデータが積分終了条件を満たすか否かを判断する。回路の積分動作エラーの場合は、MDATAの値が、ほぼ初期値(VREF)となる(積分が実施されていない)。この場合は、測距不能と判断する。
【0132】
一方、被写体輝度がある一定輝度を超えていることに起因する場合にはMDATAの値が、約0.6Vとなり(積分が終了している)、この場合は、測距を継続する。
【0133】
尚、表現上、被写体輝度が低いためにセンサデータが信号量不足となるような場合も積分処理が正常に行われていない場合の範疇に属するものとする。また、信号量不足のため測距不能と判断するのは、実際には、積分処理の開始からセンサデータのピーク値に全く変化が生じなかった場合か、又は、極めて少ない変化しか生じなかった場合であり、それ以外では測距可能な場合もあるため積分処理は正常に行われていると判断し、測距不能とは判断しないものとしている。
【0134】
以上のように、積分時間が一定時間を経過しても/AFEND信号から積分開始信号又は積分終了信号が正常に出力されない場合には、積分処理が正常に行われているか否かをMDATA信号により判定することとする。MDATA信号はピーク選択領域におけるセンサデータのピーク値をアナログデータとして出力するものであるから、積分処理が行われていれば、図25に示すように/AFEND信号が正常に出力されていなくてもMDATA信号からピーク選択領域におけるセンサデータのピーク値が正常に出力され、積分処理が正常に行われているか否が容易に判断できる。
【0135】
CPU60の処理内容を具体的に説明すると、図14のステップS52における一括ゲイン高積分の実行時において、CPU60は、/AFRST信号を0から1に切り替えた後(図17時刻T40参照)、一定時間(例えば500μs)経過するまでに、AFセンサ74から積分開始を示す/AFEND信号の1から0への切り替わりを検出しなかった場合には、MDATA信号を読み取る。そして、そのMDATA信号の値が積分終了値に達していれば、/AFEND信号の1から0への切り替わりが検出されなかった理由が被写体輝度が高輝度(超高輝度)であることに起因するものと判断して、積分時間が2ms未満であった場合と同様に3分割ゲイン低積分の処理(図14ステップS54、S56参照)に移行する。一方、MDATA信号の値が所定値以上の場合、即ち、積分開始時の値から全く変化していない場合(上記基準電圧VREFの値の場合)、又は、全く変化がないのと同等とみなせる値の場合には、回路の積分動作エラーとして測距不能とする。上述以外の場合には通常通り積分処理を継続する。この後の処理は、図14のフローチャートで説明したので省略する。
【0136】
図14のステップS56における3分割ゲイン低積分の実行時において(図15のステップS84、S94、S102、S110、S118の各積分処理の実行時において)、上述と同様にCPU60は、/AFRST信号を0から1に切り替えた後、一定時間(例えば500μs)経過するまでに、AFセンサ74から積分開始を示す/AFEND信号の1から0への切り替わりを検出しなかった場合には、MDATA信号を読み取る。このときMDATA信号の値が所定値(図26(B)のMC_JDG)以上の場合、即ち、積分開始時の値から全く変化していない場合(上記基準電圧VREFの値の場合)、又は、全く変化がないのと同等とみなせる値の場合には、そのときの積分処理におけるピーク選択領域を構成する分割エリアについて測距不能とする(回路の積分動作エラー)。一方、前記一定時間が経過するまでに、AFセンサ74から積分開始を示す/AFEND信号の1から0への切り替わりを検出した場合には、最大許容積分時間を限度として積分処理を継続する。もし、最大許容積分時間が経過するまでにAFセンサ74から積分終了を示す/AFEND信号の0から1への切り替わりを検出しなかった場合には、最大許容積分時間に達した時点でMDATA信号を読み取る。このときMDATA信号の値が所定値(図26(B)のMC_JDG)以上の場合、即ち、積分開始時の値から全く変化していない場合(上記基準電圧VREFの値の場合)、又は、全く変化がないのと同等とみなせる値の場合には、そのときの積分処理におけるピーク選択領域を構成する分割エリアについてセンサデータの信号量不足として測距不能とする(センサデータを無効とする)。これ以外の場合は、正常に積分処理が行われたと判定し、それまでCPU60に蓄積されたセンサデータを有効として、その時点におけるセンサデータの読み出しを行う。尚、最大許容積分時間が経過してもMDATA信号の値が積分終了値に達していない場合には積分処理が継続しているため、CPU60は、強制的にAFセンサ74の積分処理を停止させてから(AFAD信号を1から0に切り替えてから)、センサデータの読出しを行う。
【0137】
図14のステップS58における一括ゲイン低積分の実行時において、上述と同様にCPU60は、/AFRST信号を0から1に切り替えた後、一定時間 (例えば500μs)経過するまでに、AFセンサ74から積分終了を示す/AFEND信号の0から1への切り替わりを検出しなかった場合には、MDATA信号を読み取る。このとき、MDATA信号の値が所定値以上の場合、即ち、積分開始時の値から全く変化していない場合(上記基準電圧VREFの値の場合)、又は、全く変化がないのと同等とみなせる値の場合には、測距不能と判定する(回路の積分動作エラー)。尚、一括ゲイン低積分ではピーク選択領域は測距エリア全域に設定されているため、測距エリアを構成する全ての分割エリアにおいて測距不能(測距自体が不能)となる。一方、前記一定時間が経過するまでに、AFセンサ74から積分開始を示す/AFEND信号の1から0への切り替わりを検出した場合には、最大許容積分時間を限度として積分処理を継続する。もし、最大許容積分時間が経過するまでにAFセンサ74から積分終了を示す/AFEND信号の0から1への切り替わりを検出しなかった場合には、最大許容積分時間に達した時点でMDATA信号を読み取る。このときMDATA信号の値が所定値以上の場合、即ち、積分開始時の値から全く変化していない場合(上記基準電圧VREFの値の場合)、又は、全く変化がないのと同等とみなせる値の場合には、センサデータの信号量不足として測距不能とする(センサデータを無効とする)。これ以外の場合は、正常に積分処理が行われたと判定し、それまでCPU60に蓄積されたセンサデータを有効として、その時点におけるセンサデータの読み出しを行う。尚、この場合も上述と同様に最大許容積分時間が経過してもMDATA信号の値が積分終了値に達していない場合には積分処理が継続しているため、CPU60は、強制的にAFセンサ74の積分処理を停止させてから(AFAD信号を1から0に切り替えてから)、センサデータの読出しを行う。
【0138】
次に、CPU60によるセンサデータの読出し処理について説明する。図17のタイミングチャートに示したように、CPU60は、例えば、AFセンサ74から送信される/AFEND信号が0から1に切り替えられ、積分が終了したことを検出すると、AFセンサ74に対してAFCLK信号によりクロックパルスを送信し、センサデータの読出しを開始する。AFセンサ74からは、クロックパルスに同期して各セルごとのセンサデータがアナログデータとして順次AFDATAP信号により出力され、A/D変換された後、CPU60に入力される。
【0139】
具体的には、AFDATAP信号によりLセンサ96とRセンサ94の各セルのセンサデータが交互にセンサ番号1からセンサ番号234まで順に出力されCPU60のA/D変換回路により読み出される。尚、Lセンサ96とRセンサ94のすべてのセルのセンサデータが送信された後、数個のダミーデータが送信される。
【0140】
ここで、クロックパルスによるセンサデータの読出し速度について説明する。上述のようにあるピーク選択領域をAFセンサ74に対して設定して上記積分処理を実行させた場合に、その積分処理によってAFセンサ74で蓄積された各セルのセンサデータのうち、CPU60が以後の測距演算の処理において実際に使用するセンサデータは、1又は複数の分割エリアにより構成されるピーク選択領域の範囲内における各セルのセンサデータに限られ、それ以外の範囲における各セルのセンサデータは不要である。また、上述のようにピーク選択領域の範囲内であっても、AFセンサ74に対するピーク選択領域の設定は、隣接する4つのセルを1ブロックとしたブロック単位(上記ブロック番号D0、D1、…、D55、ブロック番号D56、D57、…、D111についての記載事項参照)で行われるため、実際には、ピーク選択領域の両端のブロック内においてもセンサデータを取得する必要のないセルが存在する。更に、本実施の形態では、必要なセンサデータはピーク選択領域内に限られるが、測距演算の態様によってはピーク選択領域内に限らず、ピーク選択領域外のセルのセンサデータも必要な場合がある。そこで、CPU60の以後の処理において必要なセンサデータを生成するセルの範囲をデータ取得範囲といい、CPU60の以後の処理において不要なセンサデータを生成するセルの範囲をデータ非取得範囲というものとすると、CPU60は、一定周期のクロックパルスを出力するのではなく、図27に示すようにデータ取得範囲のセルのセンサデータを搬送する期間T2のクロック周期よりも、データ非取得範囲のセルのセンサデータを搬送する期間T1のクロック周期を短くし、不要なセンサデータの読出し時間を短縮している。
【0141】
例えば、データ取得範囲のセルのセンサデータを搬送する際、AFDATAP信号の安定期間の周期(“H”)を16μs、A/D変換を実施する期間の周期を18μs(“L”)とすると、データ非取得範囲のセルのセンサデータを搬送する際はクロック周期を(“H”)2μs、(“L”)2μsとしている。(“H”)16μs、(“L”)18μs周期のクロックパルスでは、各セルのセンサデータの値をA/D変換回路により適切に取得することができるが、2μs周期のクロックパルスでは、各セルのセンサデータの値を適切に取得することができない可能性がある。しかしながら、データ非取得範囲のセンサデータは不要であるため、データ非取得範囲のセンサデータを(“H”)2μs、(“L”)2μs周期のクロックパルスで搬送することに不具合は生じない。
【0142】
また、図27に示すようにデータ取得範囲の全てのセンサデータの搬送が終了した場合には、データ非取得範囲のセンサデータの搬送が残っているときでも、AFCLK信号(クロックパルス)の出力を停止させ、データ取得範囲後のデータ非取得範囲のセンサデータの読み出しを実施しないようにすることで、更に、センサデータの読出し時間を短縮することができる。
【0143】
尚、データ非取得範囲のセンサデータの搬送からデータ取得範囲のセンサデータの搬送に移行する場合には、クロックパルスの安定等を考慮してデータ取得範囲ののセンサデータの搬送を開始する1つ前のセルからクロック周期を(“H”)16μs、(“L”)18μsに切り替えるようにしている。但し、このようにデータ取得範囲のセンサデータの搬送時におけるクロック周期への移行を、データ取得範囲のセンサデータの搬送を開始する1つ前のセルから行うのではなく、データ取得範囲のセンサデータの搬送を開始するのと同時に行うようにしてもよいし、また、2つ以上前のセルから行うようにしてもよい。
【0144】
次に、センサデータからAFデータを生成する処理について説明する。上述のようにAFセンサ74の受光セルより出力されるデータをセンサデータとすると、AFセンサ74から出力された各センサデータをA/D変換回路により取得し、取得したセンサデータのA/D変換値そのものをCPU60における以後の各処理で使用するAFデータとする場合と、測距精度向上のためセンサデータに所定の処理を施したものをAFデータとする場合とが考えられる。前者の場合にはCPU60においてAFデータを生成するための特別の処理を行う必要はなく、センサデータの取得処理がAFデータの取得処理となるが、後者の場合にはセンサデータの取得後、CPU60においてAFデータを生成するための特別の処理が行われることになる。後者の場合の例として、センサデータにコントラスト抽出処理を施したものを以後の各処理で使用するAFデータとすることができ、以下、センサデータにコントラスト抽出処理を施してAFデータを生成する場合の処理について説明する。
【0145】
コントラスト抽出処理は、例えば、あるセンサ番号(アドレスi)のセルに着目したときに、その着目したセルのセンサデータと、着目したセルに対してmセル分(m画素分)離間したセンサ番号(i+m)のセルのセンサデータとの差分を算出する演算処理である。言い換えると、Rセンサ94とLセンサ96から得たセンサデータのそれぞれについて、センサデータとそのセンサデータをm画素分シフトしたものとの差分を算出する処理である。即ち、Rセンサ94におけるセンサ番号(i)のセルのセンサデータをR(i)、Lセンサ96におけるセンサ番号(i)のセルのセンサデータをL(i)とすると、Rセンサ94のセンサデータに対しては、次式、
【0146】
【数6】
R(i)−R(i+m) …(9)
の演算が行われ、Lセンサ96のセンサデータに対しては、次式、
【0147】
【数7】
L(i)−L(i+m) …(10)
の演算が行われる。これによって得られた差分データはAFセンサ74の各セルによって撮像されたセンサ像のコントラストを示す。尚、本明細書では、2画素分のセンサデータの差分によりコントラストを示すデータを算出する演算処理を2画素差分演算という。
【0148】
差分をとる2つのセンサデータの上記セル間隔mの値は、所望の設定値とすることができるが、以下の説明ではm=2とする。但し、AFセンサ74においてセンサ番号が偶数のセルで蓄積された電荷と奇数のセルで蓄積された電荷は、異なるチャンネルにより伝送され、処理されるため、上記差分データも同一チャンネル同士のセルのセンサデータから求めるのが好ましく、mの値としては偶数であることが望ましい。尚、上式(9)、(10)により求めたデータは、CPU60でAFセンサ74から取得したセンサデータの数に比べてm個分減少するが、予めm個分減少することを考慮して上記データ取得範囲を拡大しておくことによって必要なAFデータ数を確保することができる。
【0149】
従来においては、上式(9)、(10)により得られた差分データをAFデータとしているが本実施の形態では、その差分データに対して更に+255を加算する処理と、2で割る処理とを加えたものをAFデータとする。即ち、Rセンサ94のセンサ番号iに対応するAFデータをAFR(i)とし、Lセンサ96のセンサ番号iに対応するAFデータをAFL(i)とすると、m=2の場合、次式、
【0150】
【数8】
AFR(i)=(255+R(i−1)−R(i+1))/2 …(11)
AFL(i)=(255+L(i−1)−L(i+1))/2 …(12)
により得られた値をAFデータとする。
【0151】
ここで、AFデータを単に上式(9)、(10)により得られた差分データとするのではなく、上式(11)、(12)としたのは、RAM使用量の増加と相関値演算等の演算時間の増加を抑止するためである。例えば、各セルのセンサデータは8ビットのデータとして得られるとする。この場合、センサデータR(i)、L(i)の値は図28(A)に示すように0〜+255の範囲にある。これに対して上式(9)、(10)により得られた差分データをAFデータとした場合(この場合を従来方式という)、図28(B)に示すようにAFデータの値は−255〜+255の範囲にあり、9ビットのデータとなる。RAMの使用及び演算においてはバイト単位で処理されるため、9ビットのデータは、16ビット(2バイト)のデータとして処理されることになる。
【0152】
一方、上式(11)、(12)により得られた差分データをAFデータとした場合には(この場合を新方式という)、図28(C)に示すようにAFデータの値は0〜+255の範囲にあり、8ビットのデータとなる。従って、RAMの使用及び演算においては1バイトのデータとして処理されることになる。図29(A)、(B)に、それぞれ同一のセンサデータに基づいて新方式により生成されたAFデータの値と、従来方式により生成されたAFデータの値とを例示しておく。
【0153】
新方式のようにAFデータをセンサデータと同じビット数のデータとなるように生成することにより、RAM使用量が低減すると共に、相関値演算等の以後の各処理における処理時間が低減する。尚、上式(11)、(12)による新方式では、上式(9)、(10)による従来方式の差分演算結果を半分にしているため、測距精度の低下が考えられるが、実質的な不具合は生じないことを確認している。
【0154】
次に、上記新方式によりAFデータを生成する際の具体的処理内容について説明する。従来では、測距エリアの各セルのセンサデータがAFセンサから読み出されると、その読み出されたセンサデータはそのままRAMに格納される。そして、AFデータ(画像)を用いた相関値演算等の処理が開始されると、その処理の実行中においてRAMからAFデータ(画像)が読み出されて上式(9)、(10)の演算により必要な差分データが逐次生成されるようになっている。例えば、AFデータ(画像)が使用される相関値演算処理では、図12に示したようにRウインドウ94BとLウインドウ96Bとを1セルずつシフトさせながら、各シフト量n(採用センサ数62、ウインドウサイズ42の場合、n=−2,−1,0,1,…,MAX(=38))ごとに各ウインドウ範囲内のAFデータ(画像)により相関値が算出される。このため、同じセルのAFデータ(画像)が繰り返し使用されることになり、その都度、AFデータ(画像)がRAMから読み出され、2画素差分演算により差分データが生成されることになる。このように相関値演算の実行時(実行中)において差分データを生成する場合における各シフト量n(n=−2,−1,0,1,…,MAX(=38))ごとの相関値演算の処理手順を図30に示す。まず、i=1としてRAMからセンサデータL(i+1)とL(i−1)を読み出す(ステップS600、S602)。尚、ここで示すiは、上記Rウインドウ94B、Lウインドウ96Bにおけるセル位置iを示す。そして、上式(12)により、差分データAFL(i)=(255+L(i−1)−L(i+1))/2を算出する(ステップS604)。同様に、RAMからセンサデータR(i+1)とR(i−1)を読み出す(ステップS606、S608)。そして、上式(11)により、差分データAFR(i)=(255+R(i−1)−R(i+1))/2を算出する(ステップS610)。次に、相関値f(n)を求めるための上式(1)における右辺の|L(i)−R(i)|をf(ni)として、AFL(i)>AFR(i)か否かを判定する(ステップS612)。YESと判定した場合、f(ni)=L(i)−R(i)とし(ステップS614)、NOと判定した場合、f(ni)=R(i)−L(i)とする(ステップS616)。続いて、上式(1)の左辺f(n)の値(初期値0)に対してf(ni)を加算してその値をf(n)の新たな値とする。即ち、f(n)=f(n)+f(ni)とする(ステップS618)。
【0155】
次に、i=(ウインドウサイズwo(=42))となったか否かを判定し(ステップS620)、YESと判定した場合にはこの処理を終了する(ステップS622)。一方、NOと判定した場合には、i=i+1とし(ステップS624)、上記ステップS600の処理に戻り、ステップS600の処理から繰り返す。上記が各シフト量nごとの演算であり、さらに各シフト量n(n=−2〜38)ごとにi=1からi=woまで演算処理を繰り返す。
【0156】
このようにAFデータ(画像)を用いた相関値演算処理の実行時に差分データを生成する場合では、図12に示したように同じセルのAFデータ(画像)を繰り返し使用するため重複して2画素差分演算を実行する必要がある。従って、その演算に時間を要し、結果的に測距演算に要する時間が長くなるという問題が生じることとなる。
【0157】
上記不具合を解消するため、本実施の形態では、差分データを用いた処理を開始する前に予めAFデータ(差分)を生成しておき、その生成したAFデータ(差分)をRAMに格納しておくようにする。図31に、相関値演算の実行前に予めAFデータ(差分)を生成してRAMに格納しておいた場合における相関値演算の処理手順を示す。まず、i=1としてRAMからAFデータ(差分)AFL(i)とAFR(i)を読み出す(ステップS650、S652)。尚、ここで示すiは、上記Rウインドウ94B、Lウインドウ96Bにおけるセル位置iを示す。次に、相関値f(n)を求めるための上式(1)における右辺の|L(i)−R(i)|をf(ni)として、AFL(i)>AFR(i)か否かを判定する(ステップS654)。YESと判定した場合、f(ni)=L(i)−R(i)とし(ステップS656)、NOと判定した場合、f(ni)=R(i)−L(i)とする(ステップS658)。続いて、上式(1)の左辺f(n)の値(初期値0)に対してf(ni)を加算してその値をf(n)の新たな値とする。即ち、f(n)=f(n)+f(ni)とする(ステップS660)。
【0158】
次に、i=(ウインドウサイズwo(=42))となったか否かを判定し(ステップS662)、YESと判定した場合にはこの処理を終了する(ステップS664)。一方、NOと判定した場合には、i=i+1とし(ステップS666)、上記ステップS650の処理に戻り、ステップS650の処理から繰り返す。
【0159】
このようにAFデータ(差分)を予め生成してRAMに格納しておくことによって、AFデータ(差分)を用いた各処理の実行時には、必要なAFデータ(差分)をRAMから読み出すだけでよく、差分データを生成するための処理に要する時間が大幅に削減される。図30と図31に示した相関値演算における処理時間を比較すると、図31の処理では、図30のステップS602、S604と、ステップS608、S610の処理に要する時間分(2×21μs)だけ相関値演算に要する時間を短縮することができる。上記iの演算回数は、採用センサ数62、ウインドウサイズ42の設定で5エリアの場合、(i=1〜42→42回)×(n=−2〜38→41回)×5エリア=42×41×5=8610回となる。従って、総合測距時間は、8610回×(2×21μs)≒362ms短縮することができる。尚、AFデータ(差分)を予め生成してRAMに格納しておく場合には、センサデータからAFデータ(差分)を生成するための処理時間が相関値演算の時間とは別に必要であるが、これについては後述する。
【0160】
ところで、2画素差分演算を実施する場合の態様については2通りの態様が考えられる。第1の態様は、AFセンサ74から読み出したセンサデータを一旦、RAMに格納し(AFデータ(画像))、その後、RAMからAFデータ(画像)を読み出して差分データを上式(11)、(12)により生成して2画素差分演算を実施するというものである。第2の態様は、AFセンサ74からセンサデータを順次読み出している際に、各センサ番号iのセンサデータについて上式(11)、(12)の演算に必要なセンサデータが得られた時点でその差分演算(11)、(12)を実施し、順次生成した差分演算結果をRAMに格納する(AFデータ(差分))というものである。第1の態様におけるセンサデータの読出し処理については、差分データの生成処理と独立して行われるため2画素差分演算を行わない場合や相関値演算等の各処理の実行時においてAFデータ(画像)を生成する場合のセンサデータの読出し処理と同じである。一方、第2の態様のセンサデータの読出し処理については、センサデータを読出しながら2画素差分演算を行っているため、その分センサデータの読出しに要する時間が長くなる。但し、第1の態様においても2画素差分演算を行うことを考慮すると、第1の態様の方が第2の態様よりも有利ということではない。
【0161】
ここで、相関値演算等の実行時に差分データを生成する場合(以下、この場合を従来方式という)のデータの流れを図32に示し、AFデータ(差分)を予め生成してRAMに格納しておく場合(以下、この場合を新方式という)として上記第2の態様を採用した場合のデータの流れを図33に示す。図32に示すように従来方式ではAFセンサから順次読み出された各セルのセンサデータはRAMに格納される。そして、相関値演算の実行時においてRAMからAFデータ(画像)が読み出されて上式(11)又は(12)により差分データが生成され、相関値f(n)が算出される。一方、図33に示すように新方式の第2の態様では、AFセンサから順次読み出された各セルのセンサデータは上式(11)又は(12)により差分演算処理が実施されAFデータ(差分)としてRAMに格納される。そして、相関値演算の実行時にはRAMに格納されたAFデータ(差分)が読出されて相関値f(n)が算出される。図には示していないが新方式において上式(11)又は(12)によりセンサデータをAFデータ(差分)に変換する際には2つのセンサデータが必要であるため、2つのセンサデータが読み出されるまでAFセンサから先に読み出されたセンサデータを保持しておくメモリ(RAM)が必要である。しかしながら全てのセンサデータを格納するためのメモリ容量を必要としない。具体的には、センサデータはL(i−1)、R(i−1)、L(i)、R(i)、L(i+1)、R(i+1)、…の順に読み出されるため、2つのセンサデータのセル間隔mが2の場合には、5つのセンサデータを格納するRAMがあれば十分である。例えば、L(i−1)、R(i−1)、L(i)、R(i)、L(i+1)を格納した時点で、上式(12)のAFL(i)をRAMに格納されたL(i−1)、L(i+1)から求めることができる。そして、AFL(i)を求めた際には、L(i−1)のセンサデータは以後不要となるため、そのデータを消去して、次いでAFセンサ74から読み出されるセンサデータR(i+1)をその消去したアドレスに格納することによって、上式(11)のAFR(i)をR(i−1)、R(i+1)から求めることができる。このようにして、AFセンサ74から読み出した5つのセンサデータをRAMに格納すると共に、新たなセンサデータを読み出した際にはRAMに格納されているセンサデータのうち最も先に読み出したセンサデータを消去してその新たなセンサデータをRAMに格納することによって少ないメモリ容量のRAMでAFデータ(差分)を順次作成することができる。
【0162】
続いて、センサデータの読出し処理に関して、上記従来方式を採用した場合と、新方式として上記第2の態様を採用した場合とを比較する。図34は、従来方式におけるセンサデータの読出し処理を示したフローチャートであり、図35は、従来方式におけるセンサデータ読出し時の上記AFCLK信号及びAFDATAP信号を示したタイミングチャートである。これらの図を参照して従来方式におけるセンサデータの読出し処理について説明すると、まず、AFCLK信号を“H”から“L”に切り替え(ステップS700)、センサデータを示すAFDATAP信号をA/D変換する(ステップS702)。そして、AFCLK信号を“L”から“H”に切り替え(ステップS704)、A/D変換により取得したセンサデータR(i)又はL(i)をRAMに格納する(ステップS706)。以上の処理を繰り返す。尚、AFCLK信号の“H”、“L”の期間はそれぞれ例えば16μs、18μsである。
【0163】
一方、図36は、新方式(第2の態様)におけるセンサデータの読出し処理のフローチャートであり、図37は、新方式におけるセンサデータ読出し時の上記AFCLK信号及びAFDATAP信号を示した図である。これらの図を参照して新方式におけるセンサデータの読出し処理について説明すると、まず、AFCLK信号を“H”から“L”に切り替え(ステップS750)、センサデータを示すAFDATAP信号をA/D変換する(ステップS752)。そして、AFCLK信号を“L”から“H”に切り替え(ステップS754)、A/D変換により取得したセンサデータR(i)又はL(i)をRAMに格納する(ステップS756)。次にRAMからセンサデータR(i−2)又はL(i−2)を読み出し(ステップS6−5)、上式(11)又は(12)によりAFデータ(差分)AFR(i−1)又はAFL(i−1)を算出する(ステップS760)、そして、算出したAFデータ(差分)AFR(i−1)又はAFL(i−1)をRAMに格納する(ステップS762)。以上の処理を繰り返す。
【0164】
以上の新方式と従来方式のセンサデータ読出し処理手順から分かるように新方式ではステップS758、S760、S762の動作時間分(21μs)だけ従来方式よりも1つのセンサデータの読出しに時間を要する。尚、ステップS758、S760、S762の処理は、AFCLK信号が“H”の際に行われるため、図37に示すようにAFCLK信号の“H”の期間が従来方式に比べてセンサデータの読出し時間が長く、37μsとなっている。即ち、センサデータの読出し時間だけを考慮すると、新方式は、従来方式よりも不利である。しかしながら、センサデータの読出しと、例えば相関値演算を含む処理全体の時間を比較すると新方式の方が短時間で処理を終了させることができる。具体的に計算した例を図38の表に示す。表には新方式、従来方式、及び、参考として2画素差分演算を行わない場合(従来▲2▼方式)のそれぞれにおいて、センサデータの読出し時間、1回当たりの相関値演算時間、相関値総演算時間(41回、5エリア設定)、合計(センサデータ読出し時間+相関値総演算時間)が示されており、また、新方式と従来方式との差Δ▲1▼と、新方式と従来▲2▼方式との差Δ▲2▼が示されている。
【0165】
センサデータの読出し時間は、{AFCLK信号の(“H”の時間+“L”の時間)}×セル数×2(Rセンサ94とLセンサ96)であり、新方式の場合には、はじめの5セル分のセンサデータ読出し期間では2画素差分演算ができないので、(従来方式による5セル分のセンサデータの読出し時間)+(新方式による残りセル分のセンサデータの読出し時間)となる。上記説明で使用した数値を当てはめると、(16+18)×5+(37+18)×((229−6+1)×2−5)=24535μsとなる。
【0166】
一方、1回当たりの相関値演算時間は、新方式の場合には実測値を用いており、従来方式の場合には、実測値+演算時間増加分としている。演算時間増加分は図30に示したように21μs×2としている。尚、従来方式の1回当たりの相関値演算時間は、1.2×0.021×2×42=2.964msである。
【0167】
この表から分かるように新方式では、従来方式に比べて全センサデータの読出し時間が9ms程度長くなる。しかしながら、相関値演算に関しては、新方式では従来方式に対して約361msも処理時間が短縮されるため、その他の判断処理等に要する時間が同じだとすると、新方式では測距時間が352msも短縮されることになる。
【0168】
以上、センサデータに所要の処理を施してAFデータを生成する場合、そのAFデータの生成はCPU60において行うようにしたが、必ずしもCPU60において行う必要はなく、AFセンサ74においてセンサデータに所要の処理を施してAFデータを生成し、CPU60にその生成したAFデータを与えるようにしてもよい。更に、後述の相関値演算処理についてもCPU60において行うのではなく、AFセンサ74において行い、その結果得られた距離信号をCPU60に与えるようにしてもよい。
{相関値演算処理(図7ステップS16)の詳細}
次に、上記図7のステップS16における相関値演算処理について詳説する。図12を用いて上述したように相関値演算処理においてCPU60は、AFセンサ74のRセンサ94及びLセンサ96の測距エリアを構成する各分割エリアごとに、図7のステップS14のAFデータ取得処理により取得したAFデータに基づいて上式(1)により相関値f(n)(n=−2,−1,0,1,…,MAX(=38))を算出する。そして、算出した相関値f(n)に基づいて各分割エリアごとに相関が最も高くなるシフト量nを検出する。尚、ステップS14のコントラスト検出処理1において測距に必要なコントラストがないと判定された分割エリアについては、相関値演算処理は行わない。
【0169】
ここで、CPU60は、極小値を求めるためf(n−1)≧f(n)<f(n+1)の判断を実施し、相関が最も高くなる(最高相関の)シフト量として、相関値f(n)が最小極小値となるシフト量nを検出する。多くの場合には相関値の極小値は1つであり、最高相関のシフト量は、その極小値が得られるシフト量nとなる。
【0170】
一方、相関値f(n)の分布(f(n−1)≧f(n)<f(n+1)の判断)において極小値が複数存在する場合もあり、その場合には、最高相関のシフト量は、原則として、複数の極小値のうち最小の極小値(最小極小値)が得られるシフト量nとなる。ただし、極小値が複数存在する場合には、誤測距となる可能性があるため、以下で説明する極小値判断処理において、最小極小値のシフト量nを最高相関のシフト量として採用することが妥当であるか否かを判断する。尚、極小値が1つの場合の極小値とそのシフト量、又は、極小値が複数存在する場合の最小極小値とそのシフト量をいずれも最小極小値fmin1(又は、最小極小値f(nmin1))とシフト量nmin1で表す。
【0171】
次に、極小値判断処理について説明する。ある分割エリアにおいて相関値f(n)の極小値が2つ以上存在した場合、CPU60は、最小極小値fmin1と2番目に小さい極小値(第2極小値という)とを検出し、それらの差(極小値差)を求める。尚、第2極小値をfmin2、極小値差をΔfmin(=fmin2−fmin1)で表す。極小値判断の処理概略としては、その極小値差Δfminが大きい場合には、最小極小値fmin1のシフト量nmin1を最高相関のシフト量nとして採用する。一方、極小値差Δfminが小さい場合には、誤測距となる可能性が高いため測距不能とする。尚、以下、最高相関のシフト量をnmin、最高相関における相関値(最高相関値)をfmin又はf(nmin)で表す。
【0172】
ところで、相関値f(n)の極小値が複数存在した場合に、測距可能か又は測距不能かの判断を、一定の基準値に対して極小値差Δfminが大きいか又は小さいかで判断するのは次のような態様を考慮すると必要以上に測距不能となるか、又は、誤測距の可能性が高くなる不具合がある。即ち、極小値差Δfminがある程度小さくても測距可能とすべき場合と、極小値差Δfminがある程度大きくても測距不能とすべき場合とがある。
【0173】
例えば、前者の場合の態様を図39に示し、後者の場合の態様を図40に示す。図39(A)、(B)にはAFセンサ74の各Rセンサ94及びLセンサ96における中央エリアの各セルから得られたAFデータの例が示されており、同図に示すように中央エリアの各セルから得られたAFデータが低コントラストであったとする。尚、以下の説明において、同様の処理が行われる分割エリア(測距エリアを構成する各分割エリア)のうち説明上着目している分割エリア又はそのセンサ(各セル)を採用センサというものとする。このような場合、相関値演算によって算出される相関値f(n)は、同図(C)に示すように全体的に小さな値(後述の図40との比較による)となる。また、同図(C)では、シフト量n=8のところで最小極小値fmin1が検出され、シフト量n=18のところで第2極小値fmin2が検出されているが、これらの極小値差Δfminも後述の図40の場合に比べて小さい。しかしながら、この図39の態様の場合、最小極小値fmin1のシフト量nmin1(=8)は被写体距離に適切に対応した値であり、測距可能と判断すべきである。
【0174】
一方、図40(A)、(B)には、Rセンサ94及びLセンサ96の採用センサ(中央エリア)から得られたAFデータが周期的に変化する例が示されている。このようなAFデータが得られるのは、例えば、縞模様の被写体を撮像した場合である。この場合に、相関値演算によって算出される相関値f(n)も同図(C)に示すように周期的に変化し、全体的に大きな値(前述の図39との比較による)となる。また、同図(D)の拡大図に示すようにシフト量n=14のところで最小極小値fmin1が検出され、シフト量n=20のところで第2極小値fmin2が検出されているが、これらの極小値差Δfminも前述の図39の場合に比べて大きい。しかしながら、この図40の態様の場合、最小極小値fmin1のシフト量nmin1(=14)は被写体距離に適切に対応していない可能性が高く、この採用センサについては測距不能とすべきである。
【0175】
CPU60は、図39のように測距可能とすべき場合と図40のように測距不能とすべき場合とを適切に判断するため、具体的、以下のように判断処理を行う。
【0176】
まず、採用センサの相関値f(n)の分布において複数検出された極小値のうち最小極小値fmin1と第2極小値fmin2を検出する。そして、次式、
【0177】
【数9】
fmin1<基準値R3 …(13)
が成り立つか否かを判断する。この判断は、図39と図40の場合を分けるための判断であり、基準値R3はこれらの場合を分けるために適切な値に設定される。もし、式(13)が成り立つ場合、即ち、図39の場合、次いで、極小値差Δfmin(=fmin2−fmin1)を求め、次式、
【0178】
【数10】
Δfmin<基準値R2 …(14)
が成り立つか否かを判断する。基準値R2は、図39の場合を考慮して少なくとも後述の基準値R1よりも小さい値に設定される。もし、式(14)が成り立つ場合には、極小値差Δfminが小さいとして、この採用センサについて測距不能とする。式(14)が成り立たない場合には、測距可能とし、最小極小値fmin1のシフト量nmin1を最高相関値fminのシフト量nminとして採用する。
【0179】
一方、上式(13)が成り立たない場合、即ち、図40の場合には、次式、
【0180】
【数11】
Δfmin<基準値R1 …(15)
が成り立つか否かを判断する。基準値R1は、図40の場合を考慮して少なくとも基準値R2よりも大きい値に設定される。もし、式(15)が成り立つ場合には、図40のように縞模様の被写体等である可能性が高いと判断してこの採用センサでの測距を不能とする。式(15)が成り立たない場合には、測距可能とし、最小極小値fmin1のシフト量nmin1を最高相関値fminのシフト量nminとして採用する。
【0181】
以上のような極小値判断処理を行うことにより誤測距等の不具合の発生頻度が削減される。
【0182】
次に、相関値演算処理において測距時間の短縮を図るための複数の他の態様について説明する。まず、測距時間の短縮を図る第1の実施の形態について説明する。図7ステップS16の説明では(式(1)参照)、相関値f(n)(n=−2,−1,0,1,…,MAX(=38))は、Rウインドウ94BとLウインドウ96Bの同一セル位置i(i=1,2,…wo(=42))におけるAFデータの差分の絶対値 (以下、単にAFデータの差分という)を全てのセル位置iについて加算したものである。本第1の実施の形態では、各シフト量nの相関値f(n)を求める際に、全てのセル位置iについてAFデータの差分を加算するのではなく、セル位置iを一定間隔おきにとって加算するものとする。例えば、セル位置iを3つおきにとって、AFデータの差分を加算する。尚、以下の説明において、相関値f(n)の算出においてAFデータの差分を加算する演算対象のセルを採用セルという。また、3つおきのセル位置iのセルを採用セルとする場合の相関値演算を以下、「i3つおき演算」といい、これに対して、式(1)のように全てのセル位置iのセルを採用セルとする場合の相関値演算を以下、「通常演算」という。
【0183】
図41は、i3つおき演算におけるRウインドウ94B及びLウインドウ96B内の採用セルのセル位置iを示した図である。同図に示すようにi3つおき演算では、Rウインドウ94B及びLウインドウ96Bともにセル位置1から順に3つおきのセル位置i(=1、5、9、13、…)のセルが採用セルとして採用される。ウインドウサイズが42の場合(wo=42の場合)には採用セルの最終のセル位置iは41となる。この場合の相関値f(n)の演算式は、上式(1)と同様に次式、
【0184】
【数12】
wo
f(n) =Σ|L(i)−R(i)|×4 …(16)
i=1
により表されるが、iはi=1、5,9、13,17、21,25,29,33、37,41のように3つおきにとられる。尚、採用セルのセル位置iは3つおきでなくてもよく、また、セル位置i=1からでなくてもよい。また、上式(16)では上式(1)に対して4倍の因子が加えられているが、i3つおき演算では通常演算に対してデータ数が1/4となるため通常演算と数値を合わせたためである。
【0185】
ここで、採用センサの各セルで得られたAFデータに基づいて、通常演算とi3つおき演算とにより相関値f(n)を求めた場合の算出結果の例をそれぞれ図42、図43に示す。これらの図から分かるように、相関値f(n)の分布の大要は、i3つおき演算の場合でも通常演算と大きくは変わらず、この例ではi3つおき演算の場合でも通常演算と同じシフト量n(=10)で最小極小値が得られている。
【0186】
CPU60は、上述のようにi3つおき演算により各シフト量nについての相関値f(n)を算出した場合、通常演算による場合と同様に相関値f(n)が極小値となるシフト量nを検出する。このとき、図42、図43から分かるようにi3つおき演算により求めた相関値f(n)は通常演算により求めた相関値f(n)に比べて変動が大きく、精度が低い。従って、i3つおき演算での極小値の位置は通常演算での極小値の位置と異なる可能性がある。そこで、i3つおき演算を行う場合には、検出された極小値が1つの場合にはその極小値を暫定最小極小値とし、検出された極小値が複数の場合にはそのうちの最小の極小値を暫定最小極小値とし、その暫定最小極小値のシフト量付近において再度、通常演算により相関値f(n)を算出する。尚、検出された極小値が複数の場合において、2番目に小さい極小値(暫定第2極小値)と暫定最小極小値との差が小さい場合には、暫定第2極小値のシフト量付近においても通常演算により相関値f(n)の算出を行うが、この場合の詳細については後述する。また、以下、暫定最小極小値をTfmin1、そのときのシフト量をTnmin1で表す。また、通常演算により相関値f(n)を再演算する範囲を再演算範囲という。
【0187】
CPU60は、通常演算によりシフト量Tnmin1付近の再演算範囲の相関値f(n)を再演算すると、その再演算範囲における相関値f(n)の極小値及びそのシフト量を、通常演算により算出した相関値f(n)に基づいて検出する。この再演算により検出される極小値及びシフト量は、測距不能と判断される場合(後述)を除き、採用センサにおける全ての相関値f(n)を通常演算により求めた場合に検出される上述の最小極小値fmin1及びそのシフト量nmin1に相当するため、それぞれ最小極小値fmin1、シフト量nmin1で表す。尚、再演算により検出したことを強調する場合には再演算最小極小値fmin1という。この再演算の処理によって検出される再演算最小極小値fmin1及びシフト量nmin1は、測距不能と判定される場合を除き、相関値演算処理によって検出すべき最高相関値fminとそのシフト量nminとなる。
【0188】
再演算範囲は、例えば、暫定最小極小値Tfmin1が得られたシフト量Tnmin1に対して±5のシフト量の範囲とする。例えば、図43の場合に暫定最小極小値Tfmin1が得られたシフト量Tnmin1は10であるから、再演算範囲は、図44に示すようにシフト量n=5〜15となる。この再演算範囲で再演算を行うと、同図に示すように再演算範囲において図42と同一の相関値f(n)が算出されるため、本来検出されるべき最小極小値fmin1のシフト量nmin1が再演算により検出される。尚、この例では暫定最小極小値Tfmin1のシフト量Tnmin1と再演算最小極小値fmin1のシフト量nmin1とは一致している。
【0189】
ここで、i3つおき演算により検出された暫定最小極小値Tfmin1のシフト量Tnmin1が図45に示すように近距離警告範囲内であった場合、上述の通常演算による再演算は行わず、Tnmin1=nmin1として近距離警告とする。近距離警告範囲とは、オートフォーカスにおいてピント合わせができない近距離の範囲をいい、上述の再演算は、暫定最小極小値Tfmin1のシフト量Tnmin1が近距離警告範囲外のときのみ行うものとする。
【0190】
CPU60は、上述のように再演算により算出した相関値f(n)により再演算最小極小値fmin1のシフト量nmin1を検出すると、そのシフト量nmin1とi3つおき演算により検出された暫定最小極小値Tfmin1のシフト量Tnmin1とを比較する。通常、これらのシフト量は一致するが、場合によっては一致しないことがある。この場合、図7ステップS22の補間値演算処理等、この後の処理において必要な範囲の相関値f(n)(通常演算による相関値)が不足するため、不足しているシフト量nにおける相関値f(n)の再演算を追加で行う。即ち、再演算最小極小値fmin1のシフト量nmin1(最高相関のシフト量nmin)に対し、少なくとも一定のシフト量範囲(例えば、±5の範囲)で通常演算による相関値f(n)を算出しておく必要があり、暫定最小極小値Tfmin1のシフト量Tnmin1と再演算最小極小値fmin1のシフト量nmin1とが一致していない場合には、再演算最小極小値fmin1のシフト量nmin1に対して必要なシフト量範囲の相関値f(n)が不足する。本実施の形態では、再演算最小極小値fmin1のシフト量nmin1に対して通常演算による相関値f(n)が必要なシフト量範囲は再演算範囲と同じ範囲(±5の範囲)とする。
【0191】
そこで、再演算最小極小値fmin1のシフト量nmin1に対して必要なシフト量範囲のうち、既に通常演算による相関値f(n)が算出された再演算範囲以外のシフト量について、通常演算による相関値f(n)の再演算を追加で行う。但し、暫定最小極小値Tfmin1のシフト量Tnmin1と再演算最小極小値fmin1のシフト量nmin1との差(シフト量差nSA)が所定の値(例えば3)以上の場合には、再演算最小極小値fmin1が本来検出されるべき最小極小値でない可能性が高くなるため、測距不能とする。尚、再演算の結果、極小値が検出されなくなった場合もこの場合に相当し測距不能とする。また、不足分の相関値f(n)を再演算するための処理を不足分相関値再演算処理といい、その詳細については後述する。
【0192】
次に、i3つおき演算により求めた相関値f(n)において極小値が複数存在し、そのうちの最小極小値(暫定最小極小値Tfmin1)と第2極小値(暫定第2極小値)との差が小さい場合について説明する。例えば、採用センサにおける全てのシフト量n(n=−2〜MAX(=38))について通常演算により相関値f(n)を算出した場合、図46に示すように極小値が複数存在し、最小極小値fmin1のシフト量nmin1がシフト量n=7で検出され、第2極小値fmin2のシフト量nmin2がシフト量n=32で検出されるものとする。そして、このようなAFデータに対してi3つおき演算により相関値f(n)を算出すると、図47に示すような相関値分布が得られたとする。この場合、CPU60は、まず、図47のようにi3つおき演算により算出した相関値f(n)の分布において最小極小値と第2極小値とを検出する。尚、i3つおき演算における最小極小値を上述のように暫定最小極小値Tfmin1、そのシフト量をTnmin1で表し、第2極小値を暫定第2極小値Tfmin2、そのシフト量をTnmin2で表す。また、図47では、暫定最小極小値Tfmin1のシフト量Tnmin1は32、暫定第2極小値Tfmin2のシフト量Tnmin2は6で検出されている。
【0193】
もし、i3つおき演算により検出された暫定最小極小値Tfmin1と暫定第2極小値Tfmin2との差(極小値差ΔTfmin=Tfmin2−Tfmin1)が所定の基準値以上の場合には、上述のようにCPU60は、暫定最小極小値Tfmin1のシフト量Tnmin1に対する再演算範囲のみで再演算(通常演算)を行う。一方、極小値差ΔTfminが上記基準値よりも小さい場合には、暫定最小極小値Tfmin1のシフト量Tnmin1に対する再演算範囲と、暫定第2極小値Tfmin2のシフト量Tnmin2に対する再演算範囲とで再演算を行う。但し、極小値差ΔTfminが上記基準値よりも小さい場合において、暫定最小極小値Tfmin1のシフト量Tnmin1と暫定第2極小値Tfmin2シフト量Tnmin2のいずれもが近距離警告範囲内であった場合には、再演算は行わずに近距離警告とする。いずれか一方でも近距離警告範囲内でない場合には上述の通り、両方のシフト量の近傍で再演算を行う。
【0194】
図48は、図47における極小値差ΔTfminが上記基準値よりも小さいと判断された場合における再演算の結果を示した図である。同図に示すように暫定最小極小値Tfmin1のシフト量Tnmin1(=32)に対して±5のシフト量範囲(シフト量n=27〜37)が再演算範囲として再演算され、その再演算範囲において通常演算による相関値f(n)が算出される。また、暫定第2極小値Tfmin2のシフト量Tnmin2(=6)に対しても±5のシフト量範囲(シフト量n=1〜11)が再演算範囲として再演算され、その再演算範囲において通常演算による相関値f(n)が算出される。これらの再演算範囲で再演算された相関値f(n)は図46の対応するシフト量範囲の相関値f(n)の値に等しい。
【0195】
CPU60は、このように暫定最小極小値Tfmin1のシフト量Tnmin1付近と暫定第2極小値Tfmin2のシフト量Tnmin2付近で再演算を行うと、それらの再演算範囲において、再演算(通常演算)による相関値f(n)に基づいて極小値及びそのシフト量を検出する。これによって検出された最小極小値と第2極小値をそれぞれ再演算最小極小値fmin1、再演算第2極小値fmin2で表し、それらのシフト量をそれぞれシフト量fmin1、シフト量fmin2で表す。再演算最小極小値fmin1及びそのシフト量fmin1と、再演算第2極小値fmin2及びそのシフト量nmin2は、測距不能と判断される場合(後述)を除き、採用センサにおける全ての相関値f(n)を通常演算により求めた場合に検出される上述の最小極小値fmin1及びそのシフト量nmin1と、第2極小値fmin2及びそのシフト量nmin2に相当し、最小極小値fmin1のシフト量nmin1が相関値演算処理により検出すべき最高相関値fminのシフト量nminとなる。
【0196】
次に、暫定最小極小値が複数存在する場合において、i3つおき演算により検出された暫定最小極小値Tfmin1のシフト量Tnmin1と再演算により検出された再演算最小極小値fmin1のシフト量nmin1とが一致しない場合について説明する。この場合、上述したのと同様に、再演算最小極小値fmin1のシフト量nmin1に対して、少なくとも一定のシフト量範囲(例えば、±5の範囲)で通常演算による相関値f(n)が必要となるため、不足分の相関値f(n)の再演算(通常演算)を追加で行う。
【0197】
また、シフト量差nSAが所定の基準値以上の場合には測距不能とするが、この場合のシフト量差nSAは、再演算最小極小値fmin1のシフト量nmin1が暫定最小極小値Tfmin1のシフト量Tnmin1に対する再演算に起因して検出されたものであれば、それらのシフト量差とするのが適切であるが、再演算最小極小値fmin1のシフト量nmin1が暫定第2極小値Tfmin2のシフト量Tnmin2に対する再演算に起因して検出された場合には、暫定第2極小値Tfmin2のシフト量Tnmin2と再演算最小極小値fmin1のシフト量nmin1とのシフト量差とするのが適切である。
【0198】
そこで、暫定最小極小値Tfmin1のシフト量Tnmin1と再演算最小極小値fmin1のシフト量nmin1とのシフト量差DIS1(=|Tnmin1−nmin1|)と、暫定最小極小値Tfmin2のシフト量Tnmin2と再演算最小極小値fmin1のシフト量nmin1とのシフト量差DIS2(=|Tnmin2−nmin1|)を求め、そのうち小さい方の値をシフト量差nSAとしてシフト量差nSAにより測距可能か否かを判断する。
【0199】
図48に示した場合、再演算最小極小値fmin1のシフト量nmin1は7であるから、シフト量差DIS1は図中▲1▼で示す1の値となり、シフト量差DIS2は図中▲2▼で示す25となる。従って、測距可能か否かは、シフト量差DIS1の大きさで判断する。
【0200】
図49は、不足分再演算処理の処理手順を示したフローチャートである。不足分再演算処理を実施する前において、CPU60は、i3つおき演算により相関値f(n)を算出し、暫定最小極小値Tfmin1のシフト量Tnmin1を検出する。また、暫定最小最小極Tfmin1以外に暫定第2極小値Tfmin2が存在する場合には、そのシフト量Tnmin2を検出する。そして、再演算範囲で通常演算による再演算を行い、再演算範囲において再演算最小極小値fmin1のシフト量nmin1を検出する。
【0201】
続いて図49の不足分再演算処理に移行する。まず、暫定第2極小値Tfmin2のシフト量Tnmin2が存在するか否か、即ち、暫定第2極小値Tfmin2が存在するか否かを判定する(ステップS150)。NOであれば、後述のステップS168に移行する。一方、YESであれば、次に、暫定第2極小値Tfmin2のシフト量Tnmin2に対して±5のシフト量nの範囲を再演算範囲として再演算を実施したか否かを判定する(ステップS152)。もし、NOと判定した場合には、後述のステップS168に移行する。一方、YESと判定した場合には、(シフト量nmin1≧シフト量Tnmin1)か否かを判定する(ステップS154)。YESであれば、暫定最小極小値Tfmin1と再演算最小極小値fmin1とのシフト量差の大きさを示す値DIS1を(DIS1=nmin1−Tnmin1)とし(ステップS156)、NOであれば、シフト量差DIS1を(DIS1=Tnmin1−nmin1)とする(ステップS158)。
【0202】
次に、CPU60は、(シフト量nmin1≧シフト量Tnmin2)か否かを判定する(ステップS160)。YESであれば、暫定第2極小値Tfmin2と再演算最小極小値fmin1とのシフト量差の大きさを示す値DIS2を(DIS1=nmin1−Tnmin2)とし(ステップS162)、NOであれば、シフト量差DIS2を(DIS2=Tnmin2−nmin1)とする(ステップS164)。
【0203】
次に、(DIS1≦DIS2)か否かを判定し(ステップS166)、YES、即ち、再演算最小極小値fmin1が暫定第2極小値Tfmin2よりも暫定最小極小値Tfmin1に近い位置にあると判定した場合には、暫定値ZANTEI=シフト量Tnmin1とする(ステップS168)。NO、即ち、再演算最小極小値fmin1が暫定最小極小値Tfmin1よりも暫定第2極小値Tfmin2に近い位置にあると判定した場合には、暫定値ZANTEI=シフト量Tnmin2とする(ステップS170)。尚、ステップS150、又は、ステップS152においてNOと判定した場合には、ステップS168に移行して、暫定値ZANTEI=シフト量Tnmin1とする。
【0204】
次に、CPU60は、(ZANTEI≧nmin1)か否か、即ち、再演算最小極小値fmin1のシフト量nmin1が暫定値ZANTEIに対して+側又は−側のいずれにあるかを判定する(ステップS172)。YESと判定した場合、シフト量差nSAを(nSA=ZANTEI−nmin1)とする(ステップS174)。
【0205】
そして、まず、(nSA≧3)か否かを判定する(ステップS176)。YESと判定した場合には、測距不能として(ステップS178)、この不足分再演算処理を終了する。
【0206】
ステップS176においてNOと判定した場合には、続いて、(nSA=2)か否かを判定する(ステップS180)。ここでYESと判定した場合には、シフト量n=nmin1−4及びnmin1−5における相関値f(nmin1−4)と、相関値f(nmin1−5)を通常演算により再演算する(ステップS182)。
【0207】
ステップS180においてNOと判定した場合には、次に(nSA=1)か否かを判定する(ステップS184)。YESと判定した場合には、シフト量nmin1−5における相関値f(nmin1−5)を通常演算により再演算する(ステップS186)。
【0208】
ステップS184においてNOと判定した場合には再演算(不足分の再演算)を行わず(ステップS188)、不足分再演算の処理を終了する。
【0209】
上記ステップS172においてNOと判定した場合には、シフト量差nSA=nmin1−ZANTEIとする(ステップS190)。
【0210】
そして、まず、(nSA≧3)か否かを判定する(ステップS192)。YESと判定した場合には、測距不能として(ステップS194)、この不足分再演算処理を終了する。
【0211】
ステップS192においてNOと判定した場合には、続いて、(nSA=2)か否かを判定する(ステップS196)。ここでYESと判定した場合には、シフト量n=nmin1−4及びnmin1−5における相関値f(nmin1−4)と、相関値f(nmin1−5)を通常演算により再演算する(ステップS198)。
【0212】
ステップS196においてNOと判定した場合には、次に(nSA=1)か否かを判定する(ステップS200)。YESと判定した場合には、シフト量n=nmin1−5における相関値f(nmin1−5)を通常演算により再演算する(ステップS202)。
【0213】
ステップS196においてNOと判定した場合には再演算(不足分の再演算)を行わず(ステップS188)、不足分再演算の処理を終了する。
【0214】
尚、不足分再演算範囲がnの最小値(−2)未満、又は、nの最大値(38)を超えた場合は再演算を実施しないこととする。
【0215】
以上の不足分再演算処理により最高相関値fminのシフト量nminに対して必要なシフト量範囲の通常演算による相関値f(n)が得られる。
【0216】
次に、以上のi3つおき演算に特有の誤測距及びその防止について説明する。i3つおき演算に特有の誤測距は、上記「AFデータの取得処理」の欄で説明したようにセンサデータにコントラスト抽出処理(2画素差分演算)を施したものをAFデータとする場合において特に問題となる。図50(A)、(B)は2画素差分演算により得たRセンサ94とLセンサ96のAFデータのうち、シフト量n=0におけるi3つおき演算で使用するAFデータを例示した図である。この場合、相関値演算は3つおきにデータを使用しているため、コントラストの有る部分を捉えることができない。一方、この前後の前後のシフト量ではコントラストの有る部分を捉えることができるので、シフト量n=0で極小値となる可能性が高い。この状態からシフト量nが8ずれた場合(n=8)は、i3つおき演算で使用するAFデータのセンサ番号は4つシフトすることになるため、端の1つ以外は全てn=0のときと同じAFデータが使用されることになる。このとき新たに加わった端のAFデータにコントラストがなかった場合には、再びこのシフト量n=8においても極小値となる可能性が高い。
【0217】
このような現象はシフト量が8ずつシフトするごとに繰り返される。図51は、図50(A)、(B)のAFデータの例でi3つおき演算を行って相関値f(n)を算出した結果を示したものであり、同図に示すようにシフト量n=0、8、16、…において極小値が検出される。尚、図50(A)、(B)のAFデータの例で通常演算を行った場合の相関値分布を図52に示す。このように通常演算において検出される真の極小値とは無関係の位置で極小値が検出されるため、誤測距を招くおそれがある。
【0218】
また、図50のようなセンサデータの態様が実測で得られた場合にi3つおき演算で求めた相関値f(n)を図53に示す。この場合、暫定最小極小値Tfmin1はシフト量Tnmin1=33で検出され、暫定第2極小値Tfmin2はシフト量Tnmin2=26で検出されている。このような実測においては、図50(A)、(B)のようにあるシフト量nの相関値を算出する際に使用する全てのセンサデータにコントラストがないということはほとんど無く、多少のコントラストが存在しており、その影響で極小値が8ごとのシフト量間隔で繰り返されずに、±1ずれて7や9のシフト量間隔で観測される場合がある。
【0219】
以上のことから、暫定最小極小値Tfmin1と暫定第2極小値Tfmin2との差が所定の調整値aより小さい場合であって、暫定最小極小値のシフト量Tnmin1と暫定第2極小値のシフト量Tnmin2との差が8の倍数であるか、又は、8の倍数の±1である場合にはi3つおき演算ではなく上記通常演算により相関値演算を行うようにする。即ち、
【0220】
【数13】
Tfmin2−Tfmin1<調整値a
かつ、
【0221】
【数14】
|Tnmin1−Tnmin2|=(8の倍数)又は(8の倍数の±1)
の場合には通常演算に切り替える。通常演算に切り替えることによってi3つおき演算に特有の誤測距を防止することができる。尚、i3つおき演算ではなく通常演算により相関値演算を行う場合、暫定最小極小値のシフト量Tnmin1と暫定第2極小値のシフト量Tnmin2との差が、8の倍数であるか、又は、8の倍数の±1であることを条件の一つとしたが、i3つおき演算の場合に限らず、この条件を一般化すると、任意の値xに対してセル位置iがxつおきのixつおき演算の場合には、暫定最小極小値のシフト量Tnmin1と暫定第2極小値のシフト量Tnmin2との差が、(x+1)×2の倍数であるか、又は、(x+1)×2の倍数の±1であることという条件となる。
【0222】
次に、相関値演算処理において測距時間の短縮を図る第2の実施の形態について説明する。上述の通常演算、i3つおき演算のいずれの場合においても採用センサにおける全てのシフト量n(n=−2,−1,0,1,…,MAX(=38))について、相関値f(n)を算出するようにしたが、本第2の実施の形態においては、全てのシフト量nについての相関値f(n)は算出せず、一定間隔おきのシフト量nについての相関値f(n)を算出する。例えば、シフト量nを3つおきに算出する。尚、シフト量nを3つおきにとる場合の相関値演算を以下、「n3つおき演算」といい、これに対して、全てのシフト量nについ相関値f(n)を求める場合の相関値演算を本第2の実施の形態の説明では「通常演算」という(第1の実施の形態における「通常演算」の意味とは異なる)。また、n3つおき演算において相関値f(n)を算出するシフト量nを、採用シフト量nという。
【0223】
図54(A)は、採用センサのセンサ数(即ち、採用センサ数)が62、ウインドウサイズが42の場合に、n3つおき演算における採用シフト量nの例を示しており、採用シフト量nは、シフト量n=−2から3つおきのn=2、6、10、14、…、38に設定される。尚、同図のN1は、図12を参照すると、採用センサ96Aの右端に対する各採用シフト量n=−2、2、6、…におけるLウインドウ96Bのシフト量を示し、N2は、採用センサ94Aの左端に対する各採用シフト量におけるRウインドウ94Bのシフト量を示す。
【0224】
但し、n3つおき演算においても図54(A)に示す採用シフト量以外に図54(B)に示すシフト量n=−1、0、36、37については採用シフト量として相関値f(n)を算出することが望ましい。図55、図56、図57は、通常演算により全てのシフト量nについて相関値f(n)を求めた場合において、最小極小値fmin1が遠距離、中距離、近距離のそれぞれに得られる場合を仮定して、図54(A)に示した採用シフト量n(=2、6、10、14、…、38)のみで相関値f(n)を算出した場合の相関値分布と、図54(A)に示した採用シフト量nと併せて図54(B)に示した採用シフト量n(=−1、0、36、37)で相関値f(n)を算出した場合の相関値分布を示したグラフである。尚、図54(A)の採用シフト量nのみの相関値分布は、図中「□」記号の点を結ぶ分布により示し、図54(A)及び図54(B)の採用シフト量nの相関値分布は、図中「▲」記号の点を結ぶ分布により示す。
【0225】
まず、通常演算により本来検出される最小極小値fmin1が遠距離のシフト量に存在する場合であって、その最小極小値fmin1が図54(A)の採用シフト量nと異なるシフト量n=−1にあるとする。この場合に図54(A)の採用シフト量nのみで相関値f(n)を算出すると、図55の「□」記号を結ぶ相関値分布に示すように、これによって算出された相関値分布からは、そのシフト量n=−1付近において極小値が検出されない事態が生じる。これに対して、図54(B)の採用シフト量n(=−1、0)において相関値f(n)を算出すれば、図55の「▲」記号を結ぶ相関値分布に示すようにシフト量n=−1において最小極小値が検出され、遠距離側において本来検出されるべき最小極小値fmin1が検出されない不具合が解消される。
【0226】
これと同様に、通常演算により本来検出される最小極小値fmin1が近距離のシフト量に存在する場合であって、その最小極小値fmin1が図54(A)の採用シフト量nと異なるシフト量n=−37にあるとする。この場合に図54(A)の採用シフト量nのみで相関値f(n)を算出すると、図57の「□」記号を結ぶ相関値分布に示すように、これによって算出された相関値分布からは、そのシフト量n=−37付近において極小値が検出されない事態が生じる。これに対して、図54(B)の採用シフト量n(=36、37)において相関値f(n)を算出すれば、図57の「▲」記号を結ぶ相関値分布に示すようにシフト量n=−37において最小極小値が検出され、近距離側において本来検出されるべき最小極小値fmin1が検出されない不具合が解消される。
【0227】
一方、通常演算により本来検出される最小極小値fmin1が中距離に存在する場合においては、上述のような不具合はほとんど生じない。例えば、図56の細線で示すように通常演算による最小極小値fmin1が図54(A)の採用シフト量nと異なるシフト量n=16にあるとする。このような場合に図54(A)の採用シフト量nのみで相関値f(n)を算出したとすると、図56の「□」記号を結ぶ相関値分布に示すようにシフト量n=16の近傍の例えばシフト量n=18において極小値が検出される。一般に、最小極小値fmin1のシフト量nmin1が中距離に存在する場合には、そのシフト量nに向かって両側から相関値が小さくなる相関値分布を示すため、図54(A)の採用シフト量nのみで相関値f(n)を算出した場合であっても最小極小値fmin1のシフト量nに対して、少なくともその近傍で極小値が検出される。極小値の存在が分かれば、通常演算により検出される最小極小値fmi1の正確なシフト量nmin1は、後述の再演算によって検出できるため、このn3つおき演算の処理としては十分である。
【0228】
以上のことから、n3つおき演算では図54(A)に示した採用シフト量nのみでなく、図54(B)に示した採用シフト量nについても相関値f(n)を算出するのが好適である。以下、図54(A)のように3つおきの採用シフト量nと、図54(B)のように遠距離側及び近距離側の特定の採用シフト量nとにおいて相関値f(n)を算出することをn3つおき演算というものとする。但し、図54(A)の採用シフト量nのみで相関値演算を行うようにしてもよく、また、この場合に図55や図57に示すような極小値の存在しない相関値分布が得られたときには、遠距離又は近距離に極小値が存在すると仮定して後述の再演算を行うようにしてもよい。
【0229】
CPU60は、上述のようにn3つおき演算により採用シフト量nにおける相関値f(n)を算出した場合、採用シフト量nで得られた相関値f(n)の分布から相関値f(n)が極小値となるシフト量nを検出する。このとき検出された極小値が1つの場合にはその極小値を暫定最小極小値Tfmin1とし、検出された極小値が複数の場合にはそのうちの最小の極小値を暫定最小極小値とし、その暫定最小極小値のシフト量付近において再度、通常演算により相関値f(n)を再演算する。尚、この再演算の処理は、上述のi3つおき演算における再演算と全く同様の方法を用いることができ、再演算の範囲、検出された極小値が複数の場合の処理方法、不足分相関値演算等の詳細な説明については省略する。また、用語の定義もi3つおき演算の説明で使用したものと同様とする。
【0230】
再演算範囲は、暫定最小極小値Tfmin1のシフト量Tnmin1に対して例えば±5のシフト量の範囲とし、図56の例では、暫定最小極小値Tfmin1が得られたシフト量Tnmin1は18であるから、再演算範囲は、図58に示すようにシフト量n=13〜23となる。但し、n3つおき演算において既に相関値f(n)を算出している採用シフト量nついては再演算で改めて相関値f(n)を算出する必要はなく、図58に示すように再演算範囲に含まれる採用シフト量n=14、18、22については、再演算において相関値f(n)の算出は行わない。
【0231】
CPU60は、以上の再演算によって再演算範囲の相関値f(n)を算出すると、その再演算範囲の相関値f(n)に基づいて最小極小値fmin1のシフト量nmin1を検出し、そのシフト量nmin1を相関値演算において検出すべき最高相関のシフト量nminとする。
【0232】
ここで、i3つおき演算、又は、n3つおき演算を採用した場合における演算数について示しておくと、例えば、上述の採用センサ数62、ウインドウサイズ42の場合、i3つおき演算においては、演算数は41/4=10.25であり、再演算数11を合わせて合計21.25個である。n3つおき演算においては、演算数は15であり、再演算数8を合わせて合計23個である。これに対して、通常演算の場合には、41個であるから、i3つおき演算、n3つおき演算では、演算数が十分削減され、測距時間の短縮が図られるのが分かる。
【0233】
以上説明した第1の実施の形態におけるi3つおき演算において、暫定最小極小値Tfmin1のシフト量nmin1と、通常演算の最小極小値fmin1のシフト量nmin1とが一致しない場合、それらのシフト量差が大きいと不足分相関値演算における演算数が増加するため時間短縮の効果が少なくなる。また、i3つおき演算では、データ数が通常演算の1/4になるため精度が低下し暫定極小値が現れない場合がある。このような現象はAFデータのコントラストが低い場合に多くみられる。
【0234】
そこで、採用センサにおけるAFデータのコントラストが所定の基準値より大きい場合には、i3つおき演算を行い、低い場合には、通常演算を行うようにすれば、このような現象の多くは生じなくなる。また、コントラストが低い場合には、第2の実施の形態におけるn3つおき演算を行うようにしてもよい。
{コントラスト検出処理(図7ステップS14、ステップS18)の詳細}
次に、図7のステップS14におけるコントラス検出処理1及びステップS18におけるコントラス検出処理2について詳説する。コントラスト検出は、AFセンサ74の所定範囲内のセル(センサデータ)から得られたAFデータの最大値と最小値に基づいてセンサ像(AFデータ)のコントラストの有無を検出する処理である。コントラストの評価値として本実施の形態では、AFデータの最大値と最小値との差を用い、コントラストが所定の基準値以上であればコントラスト有りと判定し、前記基準値より小さければコントラスト無しと判定する。
【0235】
図7のステップS14におけるコントラスト検出処理1は、測距エリアを構成する各分割エリアごとに分割エリアの全セル、即ち、採用センサの全セルを対象範囲としてコントラスト検出を行う一方、ステップS16におけるコントラスト検出処理2は、各分割エリアにおいて、相関値演算により検出された最小極小値fmin1のシフト量nmin1、即ち、最高相関値fminのシフト量nminにおけるウインドウ範囲内の全セルを対象範囲としてコントラスト検出を行う。
【0236】
図59は、コントラスト検出処理1とコントラスト検出処理2による一連のコントラスト検出処理の全体手順を示したフローチャートである。CPU60は、図7のステップS12におけるのAFデータ取得処理によりAFデータを取得すると、図7のステップS14におけるコントラスト検出処理1の一処理として、測距エリアを構成するRセンサ94及びLセンサ96の各分割エリアを個別の対象範囲としたコントラスト検出1の処理を行う(ステップS250)。今、Rセンサ94及びLセンサ96の対応するある分割エリアに着目し、そのRセンサ94の分割エリアとLセンサ96の分割エリアをそれぞれRセンサ94の採用センサ、Lセンサ96の採用センサというものとする。そして、それらの採用センサについてコントラスト検出1を行うとすると、CPU60は、Rセンサ94の採用センサの全セルのAFデータのうち最大値及び最小値を検出する。このとき検出されたAFデータの最大値をRMAX、最小値をRMINとする。同様にLセンサ96の採用センサの全セルのAFデータのうち最大値及び最小値を検出する。このとき検出されたAFデータの最大値をLMAX、最小値をLMINとする。
【0237】
次いで、CPU60は、Rセンサ94の採用センサにおけるコントラストを次式、
【0238】
【数15】
RMAX−RMIN …(17)
により求め、Lセンサ96の採用センサにおけるコントラストを次式、
【0239】
【数16】
LMAX−LMIN …(18)
により求める。 次に、CPU60は、図7のステップS14におけるコントラスト検出処理1の一処理として、ステップS250のコントラスト検出1により検出したコントラストによりコントラスト判定1を行う(ステップS252)。即ち、Rセンサ94の採用センサにおける上式(17)のコントラストRMAX−RMIN、及び、Lセンサ96の採用センサにおける上式(18)のコントラストLMAX−LMINが所定の基準値R4に対してそれぞれ、
【0240】
【数17】
RMAX−RMIN<R4 …(19)
LMAX−LMIN<R4 …(20)
が成り立つか否かを判定する。もし、上式(19)と(20)のうちいずれか一方でも成り立つ場合にはコントラスト無しとしてそれらの採用センサ(着目している分割エリア)における測距を不能とする(ステップS254)。上式(19)と(20)の両方とも成り立たない場合には、それらの採用センサにおけるコントラストを有りとする。
【0241】
次に、CPU60は、ステップS252においてコントラスト有りと判定した分割エリアについて、上記図7のステップS16における相関値演算処理を行う(ステップS256)。
【0242】
次に、CPU60は、上記図7のステップS18におけるコントラスト検出処理2の一処理として、相関値演算により検出された最高相関のシフト量nminにおけるRウインドウ94B及びLウインドウ96Bを対象範囲としたコントラスト検出2を行う(ステップS258)。今、Rセンサ94及びLセンサ96のある対応する分割エリアに着目し、そのRセンサ94の分割エリアとLセンサ96の分割エリアをそれぞれRセンサ94の採用センサ、Lセンサ96の採用センサというものとする。そして、それらの採用センサについてコントラスト検出2を行うとすると、CPU60は、そのRセンサ94の採用センサにおいて最高相関のシフト量nminが得られたときのRウインドウ94Bの範囲でAFデータの最大値と最小値を検出する。このとき検出された最大値をRWMAX、最小値をRWMINとする。同様にLセンサ96の採用センサにおいて最高相関のシフト量nminが得られたときのLウインドウ96Bの範囲でAFデータの最大値と最小値を検出する。このとき検出された最大値をLWMAX、最小値をLWMINとする。そして、CPU60は、前記Rウインドウ94Bにおけるコントラストを次式、
【0243】
【数18】
RWMAX−RWMIN …(21)
により求める。また、Lウインドウ96Bにおけるコントラストを次式、
【0244】
【数19】
LWMAX−LWMIN …(22)
により求める。
【0245】
続いて、CPU60は、上記図7のステップS18におけるコントラスト検出処理2の一処理として、上式(21)、(22)により求めたコントラストによりコントラスト判定2を行う(ステップS260)。即ち、Rウインドウ94Bにおける上式(21)のコントラストRWMAX−RWMIN、及び、Lウインドウ96Bにおける上式(22)のコントラストLWMAX−LWMINが上述の基準値R4に対してそれぞれ、
【0246】
【数20】
RWMAX−RWMIN<R4 …(23)
LWMAX−LWMIN<R4 …(24)
が成り立つか否かを判定する。もし、上式(23)と(24)のうちいずれか一方でも成り立つ場合にはコントラスト無しとしてそれらの採用センサ(着目している分割エリア)における測距を不能とする(ステップS254)。上式(23)と(24)の両方とも成り立たない場合には、それらのウインドウにおけるコントラストを有りとする。コントラスト有りとした場合には次の処理に移行する。
【0247】
以上のコントラスト検出処理1及びコントラスト検出処理2により測距不能と判定される場合の具体例について説明する。例えば、Rセンサ94及びLセンサ96の中央エリアを採用センサとして着目した場合に、それら採用センサの全セル範囲のAFデータが図60(A)、(B)に示すように低コントラストを示していたとする。この場合に、相関値演算により相関値f(n)を算出すると、同図(C)に示すように最小極小値fmin1のシフト量nmin1、即ち、最高相関値fminのシフト量nminがシフト量n=12で検出される。このような場合、同図(A)、(B)に示しているようにRセンサ94の採用センサ及びLセンサ96の採用センサにおいて、シフト量nminにおけるウインドウ範囲(最高相関値となったウインドウ範囲)のAFデータも低コントラストを示し、シフト量n=12を最高相関のシフト量nminとすると誤測距となる可能性が高い。
【0248】
このように採用センサの全セル範囲においてAFデータが低コントラストを示す場合、実際にはこの採用センサに対して相関値演算処理は行われることなく、コントラスト検出処理1におけるコントラスト判定1(図59のステップS252)において測距不能と判定される。従って、明らかに測距不能なAFデータを示す採用センサについては相関値演算が行われないため、測距時間が短縮される。
【0249】
一方、図61(A)、(B)に示すようにRセンサ94及びLセンサ96の採用センサの全セル範囲においては、AFデータが高コントラストを示していたとする。この場合に、相関値演算により相関値f(n)を算出したとすると、同図(C)に示すように最高相関値fminのシフト量nminがシフト量n=12で検出される。しかしながら、この場合において、同図(A)、(B)に示しているようにRセンサ94の採用センサ及びLセンサ96の採用センサにおいて、最高相関値となったウインドウ範囲のAFデータは低コントラストを示しており、シフト量n=12を最高相関のシフト量nminとすると誤測距となる可能性が高い。
【0250】
このように、採用センサの全セルを対象範囲としてコントラスト検出処理1ではコントラスト有りと判定されるような場合であっても、相関値演算により検出された最高相関のシフト量nminにおけるウインドウ範囲ではAFデータが低コントラストを示す場合には、コントラスト検出処理2におけるコントラスト判定2(図59のステップS260)において測距不能と判定される。従って、コントラスト検出処理1において測距可能とされた場合でも誤測距となる可能性が高い図61のような場合にはコントラスト検出処理2によって適切に測距不能と判定される。
【0251】
以上説明したコントラスト検出処理では、相関値演算処理(図59のステップS256)を行った後、最高相関のシフト量nminにおけるウインドウ範囲についてコントラスト検出処理2を行うようにしたが(同図ステップS258、260)、相関値演算処理を行った後にコントラスト検出処理2を行う代わりに、相関値演算処理を行う前において上述のコントラスト検出処理2と同様の処理を行うようにすることもできる。例えば、コントラスト検出処理1によりある分割エリアの全セルのAFデータを対象としてコントラスト有りと判定されたとする。この場合、次に、その分割エリアの全てのシフト量nにおけるウインドウ範囲を対象として、各ウインドウ範囲ごとにコントラストの有無を検出する。この結果、コントラスト無しと判定したウインドウ範囲のシフト量nについては相関値演算を行わず、コントラスト有りと判定したウインドウ範囲のシフト量nについてのみ相関値演算を行い、相関値f(n)を算出する。そして、相関値f(n)を算出したシフト量nの範囲で最高相関値fminのシフト量nminを検出する。この場合、相関値演算における演算数を削減することができ、測距時間の短縮が図れる。尚、この場合におけるコントラスト検出処理は行わなくても良い。また、全てのシフト量nにおけるウインドウ範囲においてコントラスト無しと判定された場合には、一度も相関値演算が行われず、測距不能と判定される。
【0252】
更に、一箇所でもコントラストがあるウインドウがあった場合は、全ての相関値演算を実施するようにしてもよい。
{L、Rチャンネル差補正処理(図7ステップS20)の詳細}
次に、図7のステップS20におけるL、Rチャンネル差補正処理について説明する。L、Rチャンネル差補正処理は、AFセンサ74のRセンサ94から取得したAFデータと、AFセンサ74のLセンサ96から取得したAFデータとの信号量を一致させる処理である。本処理では、上記コントラスト検出処理2のコントラスト判定2(図59参照)においてコントラスト有りと判定した分割エリアにおいて、最高相関値が得られたRウインドウ94B及びLウインドウ96Bの範囲付近(±5n)のAFデータに対して行う。
【0253】
まず、CPU60におけるL、Rチャンネル差補正処理の手順について図62のフローチャートを用いて説明する。同図のステップS300で示しているコントラスト判定2の処理は、上記図59ステップS260のコントラスト判定2に相当し、この判定処理において、コントラスト無しと判定された分割エリアについては、測距不能とされ、コントラスト有りと判定された分割エリアについては、以下のL、Rチャンネル差補正処理に移行する。そこで、コントラスト有りと判定したある分割エリアを採用センサとして着目して以下説明すると、CPU60は、まず、補正が必要か否かを判定するために、その採用センサにおいて最高相関値が得られたRウインドウ94Bの範囲とLウインドウ96Bの範囲でそれぞれAFデータの最小値を検出して比較し、その差の絶対値(左右最小値差ΔDMIN)が大きいか小さいか、又は、大きすぎるかを判定する(ステップS302)。尚、この判定の前又は後(ステップS300とステップS302の間、又は、ステップS302とステップS304の間)において、前記採用センサにおける最高相関値が所定の基準値以上か否かの判断を行い、最高相関値がその基準値以上の場合にのみ本補正が必要であると判断し、最高相関値が基準値より小さい場合には本補正を行わないようにしてもよい。ここで、最高相関値が得られたRウインドウ94BにおけるAFデータの最小値をRWMIN、Lウインドウ96におけるAFデータの最小値をLWMINとすると、左右最小値差ΔDMINは、次式、
【0254】
【数21】
ΔDMIN=|LWMIN−RWMIN| …(25)
により算出される。そして、所定の基準値R5、R6(R5<R6)に対して、
【0255】
【数22】
ΔDMIN<R5 …(26)
が成り立つ場合には左右最小値差ΔDMINが小さいと判定し、
【0256】
【数23】
R6≧ΔDMIN≧R5 …(27)
が成り立つ場合には左右最小値差ΔDMINが大きいと判定する。
【0257】
【数24】
ΔDMIN>R6 …(28)
が成り立つ場合には左右最小値差ΔDMINが大きすぎると判定する。
【0258】
以上の判定処理により、左右最小値差ΔDMINが小さいと判定した場合には、本補正を行わずに次の処理に移行し、左右最小値差ΔDMINが大きい(補正に適正)と判定した場合には、本補正を行うため、次のステップS304の処理に移行する。左右最小値差ΔDMINが大きすぎると判定した場合には、測距不能とする(ステップS306)。
【0259】
左右最小値差ΔDMINが大きいと判定した場合、次に、CPU60は、Rセンサ94及びLセンサ96の採用センサにおける補正範囲のAFデータを補正する(ステップS304)。AFデータの補正は、例えば、Rセンサ94の採用センサにおけるAFデータの最小値とLセンサ96の採用センサにおけるAFデータの最小値との差分量を求め、その差分量が減少するように一方のセンサのAFデータに対して他方のセンサのAFデータの信号量を加減する。尚、AFデータの補正についての詳細は後述する。また、AFデータの補正範囲は、次のステップS308の処理における補正後のAFデータに基づく相関値演算において所定シフト量範囲の相関値f(n)を算出する際に必要なAFデータの範囲である。
【0260】
AFデータを補正すると、その補正後のAFデータを使用して再度相関値演算(補正後の相関値演算)を行い、相関値f(n)′を求める(ステップS308)。AFデータ補正後の相関値演算は、全てのシフト量nについて行うようにしてもよいが、本実施の形態では、AFデータ補正前の相関値演算において最高相関が得られたシフト量nminの付近、例えば、シフト量nminに対して±5の範囲についてのみ行うものとする。
【0261】
次に、CPU60は、AFデータ補正後の相関値演算によって得られた相関値f(n)′に基づいて、AFデータ補正後の相関値演算により相関値f(n)′を行ったシフト量の範囲で最小極小値fmin′及びそのシフト量nmin′を検出する。そして、最小極小値fmin′に基づいて、補正後におけるRセンサ94のAFデータとLセンサ96のAFデータについて、一致度が低いか高いか、又は一致度が低すぎるかを判定する(ステップS310)。具体的には、例えば、AFデータ補正後の最小極小値fmin′が所定の基準値R7に対して、次式、
【0262】
【数25】
fmin′>基準値R7 …(29)
を満たす場合には、一致度が低すぎると判定する。一方、式(29)が成り立たない場合において、AFデータ補正後の最小極小値fmin′と補正前の最高相関値fminとが、次式、
【0263】
【数26】
fmin≦fmin′ …(30)
を満たす場合には、一致度が低いと判定する。式(30)が成り立たず、次式、
【0264】
【数27】
fmin>fmin′ …(31)
が成り立つ場合には、一致度が高いと判定する。
【0265】
この判定処理により、一致度が低すぎると判定した場合には、この採用センサについて測距不能とする(ステップS306)。一致度が低いと判定した場合には、以後の処理においてAFデータ補正後の相関値演算の結果ではなく、AFデータ補正前の相関値演算の結果を採用することとする(ステップS312)。一方、一致度が高いと判定した場合には、AFデータ補正後の相関値演算の結果を採用することとする(ステップS314)。AFデータ補正後の相関値演算の結果を採用することとした場合において、以後の処理の説明で使用する相関値f(n)、最高相関値fmin及びそのシフト量nminの用語は、AFデータ補正後の相関値f(n)′、最小極小値fmin′及びそのシフト量nnmin′を示す。
【0266】
ここで、上記ステップS304のAFデータの補正について一実施例を説明する。図63は、AFデータの補正をRセンサ94のAFデータとLセンサ96のAFデータの信号量差を補正して行う場合の処理手順を示したフローチャートである。まず、CPU60は、Rセンサ94とLセンサ96のうち、AFデータを補正するセンサ(補正センサ)を判定する(ステップS330)。
【0267】
具体的には、最高相関が得られたRウインドウ内におけるAFデータの最小値RMINと最高相関が得られたLウインドウ内における最小値LMINを比較し、RMIN>LMINの場合には、Rセンサ94を補正センサとし、RMIN<LMINの場合には、Lセンサ96を補正センサとする。
【0268】
Lセンサ96を補正センサとする場合、Rセンサ94及びLセンサ96の補正前のAFデータをR及びL、補正後のAFデータをRH及びLHとすると、次式、
【0269】
【数28】
LH=L−信号量差
RH=R
により求める(ステップS332)。ここで、信号量差は、LMIN−RMINとする。
【0270】
一方、Rセンサ94を補正センサとする場合には、次式、
【0271】
【数29】
LH=L
RH=R−信号量差
により求める(ステップS334)。ここで、信号量差は、RMIN−LMINとする。
【0272】
以上のL、Rチャンネル差補正処理による効果について説明する。図64は、上記図62に示したL、Rチャンネル差補正処理を新方式としてその効果を従来方式と比較して示した図である。新方式は、従来方式と比べると、特に、図62のステップS302における補正を行うか否かの判定処理の内容が相違しており、1つ目の従来方式の例(この方式を従来方式▲1▼とする)としては、新方式のように最高相関値が得られたRウインドウ94BとLウインドウ96Bの範囲内におけるAFデータの最小値を比較するのではなく、Rセンサ94の採用センサ内における全てのAFデータに対する最小値RMINと、Lセンサ96の採用センサ内における全てのAFデータに対する最小値LMINとを比較し、その最小値差が所定値よりも大きい場合にAFデータを補正する方式をいうものとする。
【0273】
2つ目の従来方式の例(この方式を従来方式▲2▼とする)としては、Rセンサ94とLセンサ96のそれぞれの採用センサ内におけるAFデータの平均値を求め、その差が所定値よりも大きい場合にAFデータを補正する方式がある。平均値が一致するように一方のセンサのAFデータを補正する方式をいうものとする。
【0274】
例えば、Rセンサ94及びLセンサ96の採用センサ(例えば中央エリア)内において図64(A)、(B)に示すようなAFデータが得られたとする。このAFデータの例は本来補正が不要な場合を示したものである。そして、この採用センサにおけるAFデータに対して相関値演算を行った結果、AFデータ補正前(補正無し)の相関値分布が同図(C)の「・」記号で結ばれた分布を示したとする。尚、この補正無しの相関値分布では、最高相関のシフト量nminはシフト量n=10において検出されており、そのときのRウインドウ94BとLウインドウ96Bの範囲は、それぞれ同図(A)、(B)においてAFデータの分布が太線で示されている範囲である。
【0275】
このような場合に、従来方式▲1▼によりAFデータの補正を行うか否かを判定すると、同図(A)、(B)の比較から明らかなようにRセンサ94とLセンサ96のそれぞれの採用センサ内におけるAFデータの最小値に差(図中「従来▲1▼」で示されている差)が生じているため、AFデータの補正(上記信号量差の補正)が行われることになり、その補正後のAFデータに基づいて相関値演算を行うと、その相関値分布は、同図(C)の「△」記号で結ばれた分布を示す。このAFデータ補正後に得られた相関値分布では、最小極小値が大きいため、Rセンサ94のAFデータとLセンサ96のAFデータの信号量の一致度が低いと判定され、測距不能と判定される結果となる。尚、従来では、新方式のようにAFデータ補正前に相関値演算を行うことはしていないため、一致度が低いと判定した場合に、新方式のようにAFデータ補正前の相関値演算の結果を採用するという処置は行われていない。このように、従来方式▲1▼では、本来測距不能とすべきでないAFデータが得られているにもかかわらず、補正を行うことによって測距不能となる不具合が生じる場合がある。
【0276】
また、従来方式▲2▼によりAFデータの補正を行うか否かを判定すると、Rセンサ94とLセンサ96のそれぞれの採用センサ内におけるAFデータの平均値に差(同図(A)、(B)の比較において「従来▲2▼」で示されている差)が生じているため、AFデータの補正(上記信号量差の補正)が行われることになり、その補正後のAFデータに基づいて相関値演算を行うと、その相関値分布は、同図(C)の「×」記号で結ばれた相関値分布を示す。このAFデータ補正後に得られた相関値分布では、従来方式▲1▼と同様に最小極小値が大きいため、Rセンサ94のAFデータとLセンサ96のAFデータの信号量の一致度が低いと判定され、測距不能と判定される結果となる。このように、従来方式▲2▼においても、本来測距不能とすべきでないAFデータが得られているにもかかわらず、補正を行うことによって測距不能となる不具合が生じる場合がある。
【0277】
以上のような従来方式▲1▼、▲2▼に対して、新方式によりAFデータの補正を行うか否かを判定すると、採用センサにおいて最高相関値が得られたRウインドウ94BとLウインドウ96Bの範囲内ではAFデータの最小値に差がないため、補正は行われず、余分な相関値演算を実施する必要がない。従って、従来方式▲1▼、▲2▼のような不具合は生じない。仮に補正を行ったとすると、その相関値分布は、同図(C)の「□」記号で結ばれた分布を示し、従来方式▲1▼、▲2▼と同様に一致度が低いと判定される。しかし、この場合においても新方式の場合には、測距不能ではなく、AFデータ補正前の相関値演算の結果を採用するという判断となるため、補正前のAFデータが補正無しで測距可能なものである場合には、AFデータを補正することが適切でなかった場合であっても測距不能となる不具合を回避することができる。
【0278】
次に、上記ステップS304におけるAFデータ補正において、図63のフローチャートで示した信号量差補正の代わりに他の補正手段を採用する場合について説明する。ここで説明するAFデータの補正は、Rセンサ94及びLセンサ96の採用センサにおけるAFデータの信号量差のみではなく、コントラスト比の補正も行うものである。補正はRセンサ94のAFデータとLセンサ96のAFデータのうち、ダイナミックレンジを超えない方のセンサのAFデータに対して行う。以下、具体的に補正処理の内容を説明する。
【0279】
まず、AFデータの補正式において使用するコントラスト補正量とオフセット補正量について説明する。尚、オフセット補正量は、上記信号量差を補正するための補正量に相当するものである。ここで、コントラスト補正量をDLVCOMPA、オフセット補正量をDLVCOMPB、Rセンサ94の採用センサにおけるAFデータの最大値及び最小値をそれぞれR1MAX及びR1MIN、Lセンサ96の採用センサにおけるAFデータの最大値及び最小値をそれぞれL1MAX及びL1MIN、最高相関が得られたRウインドウ94B及びLウインドウ96BにおけるAFデータの最小値をそれぞれR2MIN及びL2MINとする。
【0280】
コントラスト補正量DLVCOMPAとオフセット補正量DLVCOMPBを求める式は、最高相関が得られたRウインドウ94BにおけるAFデータの最小値R2MINとRウインドウ94BにおけるAFデータの最小値R2MINとの大小関係によって異なる。次式、
【0281】
【数30】
L2MIN≦R2MIN …(32)
が成り立つ場合、コントラスト補正量DLVCOMPAとオフセット補正量DLVCOMPBは、次式、
【0282】
【数31】
DLVCOMPA=(R1MAX−R1MIN)/(L1MAX−L1MIN) …(33)
DLVCOMPB=R1MIN−{(R1MAX−R1MIN)/(L1MAX−L1MIN)}×L1MIN …(34)
により求められる。
【0283】
一方、次式、
【0284】
【数32】
L2MIN>R2MIN …(35)
が成り立つ場合、コントラスト補正量DLVCOMPAとオフセット補正量DLVCOMPBは、次式、
【0285】
【数33】
DLVCOMPA=(L1MAX−L1MIN)/(R1MAX−R1MIN) …(36)
DLVCOMPB=L1MIN−{(L1MAX−L1MIN)/(R1MAX−R1MIN)}×R1MIN …(37)
により求められる。
【0286】
上式によりコントラスト補正量DLVCOMPA及びオフセット補正量DLVCOMPBを求めると、次にコントラスト補正量DLVCOMPA及びオフセット補正量DLVCOMPBに基づいて採用センサにおける補正範囲のAFデータを補正する演算処理について説明する。ここで、Rセンサ94及びLセンサ96の補正前のAFデータをR及びL、補正後のAFデータをRH及びLHとする。
【0287】
次式、
【0288】
【数34】
L2MIN≦R2MIN …(38)
が成り立つ場合、補正後のAFデータRH、LHは、上式(33)、(34)により求めたコントラスト補正量DLVCOMPAとオフセット補正量DLVCOMPBを用いて、次の補正式、
【0289】
【数35】
LH=DLVCOMPA×L+DLVCOMPB …(39)
RH=R …(40)
により算出される。
【0290】
一方、次式、
【0291】
【数36】
L2MIN>R2MIN …(41)
の場合、補正後のAFデータRH、LHは、上式(36)、(37)により求めたコントラスト補正量DLVCOMPAとオフセット補正量DLVCOMPBを用いて、次の補正式、
【0292】
【数37】
LH=L …(42)
RH=DLVCOMPA×R+DLVCOMPB …(43)
により算出される。
【0293】
以上のAFデータ補正の処理手順を図65のフローチャートに示す。CPU60は、上記図7ステップS16の相関値演算処理により最高相関が得られたRウインドウ94B及びLウインドウ96BにおけるAFデータの最小値R2MIN、L2MINについて、上式(32)、即ち、
【0294】
【数38】
L2MIN≦R2MIN …(32)
が成り立つか否かを判定する(ステップS350)。YESと判定した場合、次に、コントラスト補正量DLVCOMPAを上式(33)、即ち、
【0295】
【数39】
DLVCOMPA=(R1MAX−R1MIN)/(L1MAX−L1MIN) …(33)
により算出する(ステップS352)。また、オフセット補正量DLVCOMPBを上式(34)、即ち、
【0296】
【数40】
DLVCOMPB=R1MIN−{(R1MAX−R1MIN)/(L1MAX−L1MIN)}×L1MIN …(34)
により算出する(ステップS354)。
【0297】
そして、補正後のAFデータRH、LHを上式(39)、(40)、即ち、
【0298】
【数41】
LH=DLVCOMPA×L+DLVCOMPB …(39)
RH=R …(40)
により算出する(ステップS356)。
【0299】
一方、上記ステップS350においてNOと判定した場合には、コントラスト補正量DLVCOMPAを上式(36)、即ち、
【0300】
【数42】
DLVCOMPA=(L1MAX−L1MIN)/(R1MAX−R1MIN) …(36)
により算出する(ステップS358)。また、オフセット補正量DLVCOMPBを、上式(37)、即ち、
【0301】
【数43】
DLVCOMPB=L1MIN−{(L1MAX−L1MIN)/(R1MAX−R1MIN)}×R1MIN …(37)
により算出する(ステップS360)。
【0302】
そして、補正後のAFデータLH、RHを上式(42)、(43)、即ち、
【0303】
【数44】
LH=L …(42)
RH=DLVCOMPA×R+DLVCOMPB …(43)
により算出する(ステップS362)。
【0304】
次に、ここで説明したコントラスト補正とオフセット補正(信号量差補正)を行う場合のAFデータ補正処理の効果について上述の信号量差補正のみ行うAFデータ補正処理(図63参照)と比較して説明する。尚、前者を新方式、後者を従来方式(実施例1)という。
【0305】
まず、Rセンサ94とLセンサ96のうち一方のセンサが明るい場合(太陽光等が片側のセンサに多く照射された場合→信号量差有り、コントラスト差無しの場合)における補正結果を例示する。図66(A)、(B)は、Rセンサ94及びLセンサ96の採用センサ(図では中央エリア)における補正前(補正無し)のAFデータの分布と従来方式による補正後のAFデータの分布を示しており、補正は、Rセンサ94のAFデータに対して行われている。
【0306】
一方、図67(A)、(B)は、図66と同じ補正前(補正無し)のAFデータの分布と新方式による補正後のAFデータの分布を示しており、補正は、Lセンサ96のAFデータに対して行われている。
【0307】
そして、図68は、図66及び図67における補正前のAFデータと、新方式及び従来方式による補正後のAFデータに基づいてそれぞれ相関値f(n)を算出した場合の相関値分布を示している。
【0308】
図68の相関値分布から分かるように、補正前におけるRセンサ94のAFデータとLセンサ96のAFデータとにコントラスト差が無い場合には、従来方式と新方式のいずれのAFデータ補正でも同じ結果を示し、補正無しの場合に比べてRセンサ94のAFデータとLセンサ96のAFデータの信号量の一致度が向上している。図69は、実際に被写体を至近から無限遠までの距離に配置し、その距離(横軸)に対して、オートフォーカスにより設定される撮影レンズの設定距離(縦軸)を、AFデータの補正を行わない場合(補正無しの場合)、新方式によりAFデータを補正した場合、従来方式によりAFデータを補正した場合、及び、設計値の場合について示したものである。この図から明らかなように、補正無しの場合には、設計値とのずれを生じているが、従来方式及び新方式による場合には撮影レンズの設定距離が設計値とほぼ一致していることが分かる。以上のことからRセンサ94とLセンサ96とにコントラスト差が無い場合には、従来方式と新方式のいずれのAFデータ補正処理でも適切な結果が得られる。
【0309】
しかしながら、Rセンサ94とLセンサ96のうち一方のセンサが暗い場合 (片側のセンサを指等で隠してしまった場合→信号量差及びコントラスト差有りの場合)には、新方式の方が従来方式に比べてより有利な結果が得られる。次に、この場合における補正結果を例示する。図70(A)、(B)は、Rセンサ94及びLセンサ96の採用センサ(図では中央エリア)における補正前(補正無し)のAFデータの分布と従来方式による補正後のAFデータの分布を示しており、補正は、Rセンサ94のAFデータに対して行われている。
【0310】
一方、図71(A)、(B)は、図70と同じ補正前(補正無し)のAFデータの分布と新方式による補正後のAFデータの分布を示しており、補正は、Lセンサ96のAFデータに対して行われている。
【0311】
そして、図72は、図70及び図71における補正前のAFデータ、新方式及び従来方式による補正後のAFデータに基づいてそれぞれ相関値f(n)を算出した場合の相関値分布を示している。
【0312】
図72の相関値分布から分かるように従来方式に比べて新方式によるAFデータ補正の方が最小極小値が小さな値を示し、Rセンサ94のAFデータとLセンサ96のAFデータの信号量の一致度がより向上している。図73は、実際に被写体を至近から無限遠までの距離に配置し、その距離(横軸)に対して、AFにより設定される撮影レンズの設定距離(縦軸)を、AFデータの補正を行わない場合(補正無しの場合)、新方式によりAFデータを補正した場合、従来方式によりAFデータを補正した場合、及び、設計値の場合について示したものである。この図から明らかなように、補正無しの場合及び従来方式による場合には撮影レンズの設定距離が設計値とのずれを生じているが、新方式による場合には、撮影レンズの設定距離が設計値とほぼ一致していることが分かる。以上のことからRセンサ94とLセンサ96とにコントラスト差が有る場合には、従来方式よりも新方式によるAFデータ補正処理の方が適切な結果が得られる。従って、コントラスト差の有無に関係なく適切な結果が得られる新方式は従来方式に比べてより好適である。
【0313】
尚、上記コントラスト補正量DLVCOMPAやオフセット補正量DLVCOMPBを算出する際におけるR1MAX及びR1MIN、L1MAX及びL1MINはそれぞれRセンサ94、Lセンサ96の採用センサにおけるAFデータの最大値及び最小値としたが、これに限らず、Rセンサ94、Lセンサ96のAFデータを補正する範囲におけるAFデータの最大値及び最小値としてもよい。さらに、R1MAX、R1MIN、L1MAX、L1MINの代わりにR2MAX、R2MIN、L2MAX、L2MINを用いてもよい。また、上式(32)、(35)、(38)、(41)におけるR2MIN、L2MINは、それぞれ最高相関が得られたRウインドウ94B及びLウインドウ96BにおけるAFデータの最小値としたが、R2MIN、L2MINの代わりにAFデータを補正する範囲におけるAFデータの最小値を用いてもよい。
{極小値判定処理}
次に、極小値判定の処理について説明する。上記図7ステップS16の相関値演算処理や、図7ステップS20のL、Rチャンネル差補正処理には、相関値分布から相関値f(n)の極小値を検出する処理が含まれるが、その際に、ここで説明する極小値判定の処理により極小値が存在するか否かの判断が行われる。基本的に、極小値と判断される相関値は、そのシフト量の両側に隣接するシフト量におけるいずれの相関値よりも小さくなるものであり、極小値のうち最小のものが最小極小値となる。
【0314】
ところで、被写体が測距可能な至近よりも近距離に存在する場合、相関値の極小値は本来存在しない。図74は、この場合において、相関値f(n)をシフト量nの最大値である38よりも更に近距離側のシフト量まで求めたと仮定した場合の相関値分布の一例を示した図である。このような相関値分布においてはシフト量n=−2〜38の範囲に極小値が存在しないため、この採用センサでは測距不能と判定される。この判定は適切である。
【0315】
しかしながら、このように被写体が至近よりも近距離に存在する場合においても実際には図75や図76に示すように極小値が存在してしまう場合がある。尚、図75は高コントラストの場合、図76は低コントラストの場合を示している。
【0316】
これに対して極小値判定の基本的判定内容として、極小値が所定値よりも大きい場合には極小値でないと判定することとしているため、例えばその所定値を1000とした場合、図75の場合には極小値は存在せず、適切に測距不能と判定される。
【0317】
一方、図76の場合には、極小値が1000より小さい値で存在するため、上記判定内容では極小値が存在すると判定される不具合が生じる。
【0318】
そこで、本極小値判定では、次のような判定を行い、上記不具合を解消する。被写体が測距可能な範囲内に存在する場合、通常、相関値f(n)の最小極小値は最小値でもある。これに対して、最小極小値のシフト量よりも至近側で最小値が検出された場合には、至近よりもさらに近距離側に被写体があると予想できる。従って、最小極小値のシフト量よりも至近側(シフト量が小さい程、至近側)に最小極小値より小さい相関値が存在する場合には、近距離警告又は測距不能とする。
【0319】
一方、最小極小値のシフト量よりも遠距離側に最小値があった場合は、何らかの異常(シフト量n=0で無限遠となるので、無限遠より更に無限遠はありえない)であると判断できるため、測距不能とする。
{補間値演算処理(図7ステップS22)の詳細}
次に、図7のステップS22における補間値演算処理について説明する。補間値演算処理は、各分割エリアにおいて最高相関(最高相関値fmin)が得られたシフト量nminに対して周辺の相関値f(n)から更に精度の高い最高相関のシフト量を検出する処理である。尚、以下の説明において補間値演算処理によって検出する最高相関のシフト量を真の最高相関のシフト量といい、その値をxで示す。
【0320】
CPU60は、この補間値演算処理において次のような処理を行う。図77に示すように採用センサにおいて最高相関(最高相関値fmin(f(nmin))が得られたシフト量nminに対して、−1のシフト量nmin−1の相関値f(nmin−1)と+1のシフト量nmin+1の相関値f(nmin+1)とが、次式、
【0321】
【数45】
f(nmin−1)>f(nmin+1) …(44)
の関係を満たしたとする。この場合、CPU60は、シフト量nminとシフト量nmin−1の相関値f(nmin)及びf(nmin−1)を通る直線L1と、シフト量nmin+1とシフト量nmin+2の相関値f(nmin+1)及びf(nmin+2)を通る直線L2との交点を求める。そして、その交点を真の最高相関のシフト量xとする。
【0322】
一方、図78に示すように最高相関が得られたシフト量nminに対して−1のシフト量nmin−1の相関値f(nmin−1)と+1のシフト量nmin+1の相関値f(nmin+1)とが、次式、
【0323】
【数46】
f(nmin−1)≦f(nmin+1) …(45)
の関係を満たしたとする。この場合、CPU60は、シフト量nmin−1とシフト量nmin−2の相関値f(nmin−1)及びf(nmin−2)を通る直線L1と、シフト量nminとシフト量nmin+1の相関値f(nmin)及びf(nmin+1)を通る直線L2との交点を求める。そして、その交点を真の最高相関のシフト量xとする。
【0324】
ただし、図79に示すようにシフト量nの最小値(シフト量n=−2)が相関値f(n)の最小値、又は、図80に示すようにシフト量nの最大値(シフト量n=38)が相関値f(n)の最小値であった場合、これらの最小値は極小値とはならないため、シフト量nの最小値(シフト量n=−2)又は最大値(シフト量n=38)を最高相関のシフト量nminとして補間値演算を行う場合はない。この場合には測距不能となる。
【0325】
また、図81(A)、(B)に示すようにシフト量nの最小値(シフト量n=−2)に対して+1のシフト量(シフト量n=−1)が最高相関のシフト量nminであった場合において、図81(A)のように上式(44)の関係が成り立つ場合(図77の場合)には、補間値演算を行うことができる。しかし、図81(B)のように上式(45)の関係が成り立つ場合(図78の場合)には、上記直線L1が定まらないため補間値演算を行うことなく測距不能とする。
【0326】
また、図82(A)、(B)に示すようにシフト量nの最大値−1(シフト量n=37)が最高相関のシフト量nminであった場合において、図82(B)のように上式(45)の関係が成り立つ場合(図78の場合)には、補間値演算を行うことができる。しかし、図82(A)のように上式(44)の関係が成り立つ場合(図77の場合)には、上記直線L2が定まらないため補間値演算を行うことなく測距不能とする。
【0327】
以上の処理は、原則的な処理であり、次の場合には他の処理により真の最高相関のシフト量xを求める。例えば、最高相関が得られたシフト量nminに対して、±2の範囲のシフト量nmin−2、nmin−1、nmin+1、nmin+2の相関値f(n)を比較した場合に、シフト量nminを含めて連続する3点のシフト量nのみで相関値f(n)が近い値を示したとする。この場合には、その3点の中央点における相関値がシフトしていると考えられる。
【0328】
そこで、この場合には、上述の補間値演算処理の代わりに、次に説明する補間値演算処理により真の最高相関のシフト量xを検出する。尚、上述した補間値演算処理を補間値通常演算処理といい、以下で説明する補間値演算処理を補間値別演算処理という。また、相関値f(n)が近い値か否かの具体的判断については後述する。
【0329】
上述のように連続する3点のシフト量nにおいてのみ相関値f(n)が近い値を示す場合、その3点のシフト量nのうち中央点の相関値が、本来、最高相関値fminとして検出されるべきものであったと考えられる。そこで、CPU60は、3点のシフト量nのうち最小のシフト量nsと、そのシフト量nsに対して−1のシフト量ns−1との相関値f(ns)及びf(ns−1)を通る直線L1と、3点のシフト量nのうち最大のシフト量nlとそのシフト量nlに対して+1のシフト量nl+1との相関値f(nl)及びf(nl+1)を通る直線L2との交点を求める。そして、その交点を真の最高相関のシフト量xとする。
【0330】
例えば、図83に示すように最高相関のシフト量nminが0で検出され、最高相関値f(0)とそのシフト量nminに対して+1と+2のシフト量1、2における相関値f(1)、f(2)が近い値になったとする。この場合、シフト量n=−1と0の相関値を通る直線L1と、シフト量n=2と3の相関値を通る直線L2との交点を求め、その交点をシフト量xとする。尚、この例のように最高相関のシフト量nminに対して+1と+2のシフト量における相関値が最高相関値に近い値となった場合の処理を処理タイプ1という。
【0331】
また、図84に示すように最高相関のシフト量nminが0で検出され、最高相関値f(0)とそのシフト量nminに対して−1と+1のシフト量−1、1における相関値f(−1)、f(1)が近い値になったとする。この場合、シフト量n=−2と−1の相関値を通る直線L1と、シフト量n=1と2の相関値を通る直線L2との交点を求め、その交点をシフト量xとする。尚、この例のように最高相関のシフト量nminに対して−1と+1のシフト量における相関値が最高相関値に近い値となった場合の処理を処理タイプ2という。
【0332】
また、図85に示すように最高相関のシフト量nminが0で検出され、最高相関値f(0)とそのシフト量nminに対して−2と−1のシフト量−2、−1における相関値f(−2)、f(−1)が近い値になったとする。この場合、シフト量n=−3と−2の相関値を通る直線L1と、シフト量n=0と1の相関値を通る直線L2との交点を求め、その交点をシフト量xとする。尚、この例のように最高相関のシフト量nminに対して−2と−1のシフト量において相関値が最高相関値に近い値となった場合の処理を処理タイプ3という。
【0333】
図86は、補間値演算処理において上記補間値通常演算及び補間値別演算の処理タイプ1〜3を判別する手順を示したフローチャートである。まず、CPU60は、最高相関値f(nmin)と、最高相関のシフト量nminに対して+1のシフト量nmin+1における相関値f(nmin+1)との相関値差f(nmin+1)−f(nmin)が基準値R7に対して、次式、
【0334】
【数47】
f(nmin+1)−f(nmin)<R7
を満たすか否かを判定する(ステップS400)。尚、基準値R7は、2つの相関値が近い値であると判定できる上限値である。もし、NOと判定した場合には、次に、最高相関値f(nmin)と、シフト量nminに対して−1のシフト量nmin−1における相関値f(nmin−1)との相関値差f(nmin−1)−f(nmin)が基準値R7に対して、次式、
【0335】
【数48】
f(nmin−1)−f(nmin)<R7
を満たすか否かを判定する(ステップS402)。もし、この判定処理においてもNOと判定した場合には、補間値通常演算処理を行い(ステップS432)、真の最高相関のシフト量xを検出してこの補間値演算処理を終了する。
【0336】
一方、ステップS402においてYESと判定した場合、次に、最高相関のシフト量nminに対して−3のシフト量nmin−3における相関値f(nmin−3)が存在するか否かを判定する(ステップS404)。NOと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、YESと判定した場合には、シフト量nmin−1における相関値f(nmin−1)と、シフト量nmin−2における相関値f(nmin−2)との相関値差f(nmin−2)−f(nmin−1)が基準値R7に対して、次式、
【0337】
【数49】
f(nmin−2)−f(nmin−1)<R7
を満たすか否かを判定する(ステップS406)。もし、この判定処理においてNOと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、YESと判定した場合には、シフト量nmin−2における相関値f(nmin−2)とシフト量nmin−3における相関値f(nmin−3)との相関値差f(nmin−3)−f(nmin−2)が基準値R7に対して、次式、
【0338】
【数50】
f(nmin−3)−f(nmin−2)<R7
を満たすか否かを判定する(ステップS408)。もし、この判定処理においてYESと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、NOと判定した場合には、シフト量nmin+1における相関値f(nmin+1)とシフト量nmin−2における相関値f(nmin−2)との相関値差f(nmin+1)−f(nmin−2)が基準値R7に対して、次式、
【0339】
【数51】
f(nmin+1)−f(nmin−2)<R7
を満たすか否かを判定する(ステップS410)。もし、この判定処理においてNOと判定した場合には、処理タイプ3の補間値別演算処理を行う(ステップS412)。即ち、図85に示したように相関値f(nmin−1)付近に極小値 (真の最高相関値)が存在すると想定し、相関値f(nmin−3)、f(nmin−2)、f(nmin)、f(nmin+1)に基づいてシフト量xを求める。
【0340】
一方、ステップS410においてYESと判定した場合には、処理タイプ2の補間値別演算処理を行う(ステップS420)。即ち、図84に示したように相関値f(nmin)付近に極小値(真の最高相関値)が存在すると想定し、相関値f(nmin−2)、f(nmin−1)、f(nmin+1)、f(nmin+2)に基づいてシフト量xを求める。
【0341】
上記ステップS400においてYESと判定した場合には、CPU60は、最高相関値f(nmin)と、最高相関のシフト量nminに対して−1のシフト量nmin−1における相関値差f(nmin−1)との相関値差f(nmin−1)−f(nmin)が基準値R7に対して、次式、
【0342】
【数52】
f(nmin−1)−f(nmin)<R7
を満たすか否かを判定する(ステップS414)。YESと判定した場合、次に、シフト量nmin−1における相関値f(nmin−1)と、シフト量nmin−2における相関値f(nmin−2)との相関値差f(nmin−2)−f(nmin−1)が基準値R7に対して、次式、
【0343】
【数53】
f(nmin−2)−f(nmin−1)<R7
を満たすか否かを判定する(ステップS416)。もし、この判定処理においてYESと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、NOと判定した場合には、次に、シフト量nmin+1における相関値f(nmin+1)と、シフト量nmin+2における相関値f(nmin+2)との相関値差f(nmin+2)−f(nmin+1)が基準値R7に対して、次式、
【0344】
【数54】
f(nmin+2)−f(nmin+1)<R7
を満たすか否かを判定する(ステップS418)。もし、この判定処理においてYESと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、NOと判定した場合には、処理タイプ2の補間値別演算処理を行う(ステップS420)。
【0345】
上記ステップS414においてNOと判定した場合、CPU60は、最高相関のシフト量nminに対して−3のシフト量nmin−3における相関値f(nmin−3)が存在するか否かを判定する(ステップS422)。NOと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、YESと判定した場合には、シフト量nmin+1における相関値f(nmin+1)と、シフト量nmin+2における相関値f(nmin+2)との相関値差f(nmin+2)−f(nmin+1)が基準値R7に対して、次式、
【0346】
【数55】
f(nmin+2)−f(nmin+1)<R7
を満たすか否かを判定する(ステップS424)。NOと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、YESと判定した場合には、シフト量nmin+2における相関値f(nmin+2)と、シフト量nmin+3における相関値f(nmin+3)との相関値差f(nmin+3)−f(nmin+2)が基準値R7に対して、次式、
【0347】
【数56】
f(nmin+3)−f(nmin+2)<R7
を満たすか否かを判定する(ステップS426)。もし、YESと判定した場合には、補間値通常演算処理を行う(ステップS432)。一方、NOと判定した場合には、次に、シフト量nmin−1における相関値f(nmin−2)と、シフト量nmin+2における相関値f(nmin+2)との相関値差f(nmin−1)−f(nmin+2)が基準値R7に対して、次式、
【0348】
【数57】
f(nmin−1)−f(nmin+2)<R7
を満たすか否かを判定する(ステップS428)。もし、NOと判定した場合には、処理タイプ2の補間値別演算処理を行う(ステップS420)。一方、YESと判定した場合には、処理タイプ1の補間値別演算処理を行う(ステップS430)。即ち、図83に示したように相関値f(nmin+1)付近に極小値(真の最高相関値)が存在すると想定し、相関値f(nmin−1)、f(nmin)、f(nmin+2)、f(nmin+3)に基づいてシフト量xを求める。
{AFエラー処理(図7ステップS24)の詳細}
次に、図7のステップS24におけるAFエラー処理について説明する。AFエラー処理は、測距エリア設定処理(図7ステップS10参照)において3エリア設定又は5エリア設定された測距エリアの全ての分割エリアで測距不能と判定されると、予め設定した被写体距離にピントを合わせるように撮影レンズを固定焦点にセットする処理である。尚、撮影レンズを固定焦点にセットするCPU60の処理を固定焦点処理といい、以下、この固定焦点処理について説明する。
【0349】
測距エリアの全ての分割エリアで測距不能と判定された場合、CPU60は測距不能と判定された原因やフイルム感度等に応じて図87及び図88のフローチャートに示すように予め決められた固定焦点に撮影レンズを設定する。
【0350】
まず、CPU60は、測距エリアの全ての分割エリアにおいて測距不能と判定された場合、AFプレ発光を行ったか否かを判定する(ステップS450)。NOと判定した場合には、センサ感度を高感度と低感度のいずれに設定していたかを判定する(ステップS452)。低感度に設定していたと判定した場合には、撮影レンズを固定焦点6mに設定する(ステップS454)
一方、ステップS452においてセンサ感度を高感度に設定していたと判定した場合には、図88のフローチャートに移行し、フイルム感度がISO400未満かISO400以上かを判定する(ステップS464)。ISO400未満と判定した場合には、撮影レンズを固定焦点3mに設定する(ステップS466)。一方、ISO400以上と判定した場合には、撮影レンズを固定焦点6mに設定する(ステップS468)。
【0351】
上記ステップS450においてYESと判定した場合、CPU60は、次に測距エリアが5エリア設定か3エリア設定かを判定する(ステップS456)。5エリア設定と判定した場合には、それら全ての分割エリアにおいて測距不能と判定された原因が信号量不足(被写体が暗いこと)であったか否かを判定する(ステップS458)。YESと判定した場合には、撮影レンズを無限遠位置に設定する(ステップS460)。一方、NOと判定した場合には、上記図88のフローチャートの処理に移行し、フイルム感度に応じた固定焦点に撮影レンズを設定する(詳細は省略)。
【0352】
上記ステップS456において3エリア設定と判定した場合も5エリア設定の場合と同様にそれら全ての分割エリアにおいて測距不能と判定された原因が信号量不足であったか否かを判定する(ステップS462)。YESと判定した場合には、撮影レンズを無限遠位置に設定する(ステップS460)。一方、NOと判定した場合には、上記図88のフローチャートの処理に移行し、フイルム感度に応じた固定焦点に撮影レンズを設定する(詳細は省略)。
{エリア選択処理(図7ステップS28)の詳細}
次に、図7のステップS28におけるエリア選択処理について説明する。エリア選択処理は、測距エリアの各分割エリアごとに算出された被写体距離のうち、どの分割エリアの被写体距離を撮影レンズのピント合わせに採用するかを選択する処理である。原則的には、測距不能と判定された分割エリア以外の分割エリアで算出された被写体距離のうち最も近いものが採用される。尚、各分割エリアにおける被写体距離は、図7のステップS22における補間値演算処理により求められた真の最高相関のシフト量xに基づいて、図7のステップS26における距離算出処理により求められる。
【0353】
一方、例外として、他の分割エリアと比較して左エリア又は右エリアのいずれか一方の被写体距離だけが極めて近距離となった場合には、その被写体距離は採用せず、他の分割エリアの被写体距離のうち最も近いものを採用する。
【0354】
具体的に説明すると、被写体距離を超至近距離、近距離、中距離以遠の3区分に分割する基準値1、2を予め設定しておく。尚、基準値1は例えば50cm (近距離警告が発生する距離)、基準値2は例えば4mに設定される。今、測距エリアが5エリア設定となっている場合において、中央エリア、左中エリア、左エリア、右中エリア、右エリアのそれぞれにおいて被写体距離が算出されたとする。そして、左エリア又は右エリアのいずれか一方のみの被写体距離が基準値1より近い超至近距離となり、それ以外の分割エリア(左エリアと右エリアのうち被写体距離が超至近距離でない方の分割エリアも含む)の被写体距離が基準値2よりも遠い中距離以遠となったとする。この場合、超至近距離となった左エリア又は右エリアの被写体距離を採用せず、それ以外の分割エリアの被写体距離のうち最も近いものを採用する。もし、超至近距離となった左エリア又は右エリア以外の分割エリアにおいて1つでも超至近距離、又は、近距離となった被写体距離がある場合には、原則通り、全ての分割エリアの被写体距離のうち最も近い被写体距離を採用する。
【0355】
具体例を挙げると、各分割エリアごとの被写体距離が、図89(A)に示すように左エリアの被写体距離のみが基準値1より近い超至近距離となり、それ以外の分割エリアでは基準値2よりも遠い中距離以遠になったとする。この場合、左エリア以外の分割エリアで得られた被写体距離のうち最も近い中央エリアの被写体距離を採用する。
【0356】
一方、図89(B)に示すように左エリアの被写体距離が基準値1より近い超至近距離となり、中央エリアの被写体距離が基準値1より遠く、基準値2より近い近距離となり、それ以外の分割エリアの被写体距離が基準値2よりも遠い中距離以遠になったとする。この場合には、原則通り、最も近距離にある左エリアの被写体距離を採用する
図89(C)に示すように左エリアの被写体距離が基準値1よりも遠く、基準値2より近い近距離となり、それ以外の分割エリアの被写体距離が基準値2よりも遠い中距離以遠になったとする。この場合にも原則通り、最も近距離にある左エリアの被写体距離を採用する。
【0357】
右エリアに関しても全く同様であり、図89(D)に示すように右エリアの被写体距離のみが基準値1より近い超至近距離となり、それ以外の分割エリアでは基準値2よりも遠い中距離以遠になったとする。この場合、右エリア以外の分割エリアで得られた被写体距離のうち最も近い左エリアの被写体距離を採用する。
【0358】
一方、図89(E)に示すように右エリアの被写体距離が基準値1より近い超至近距離となり、左エリアの被写体距離が基準値1より遠く、基準値2より近い近距離となり、それ以外の分割エリアの被写体距離が基準値2よりも遠い中距離以遠になったとする。この場合には、原則通り、全ての分割エリアの被写体距離のうち最も近距離にある右エリアの被写体距離を採用する。
【0359】
また、図89(F)に示すように右エリアの被写体距離が基準値1よりも遠く、基準値2より近い近距離となり、それ以外の分割エリアの被写体距離が基準値2よりも遠い中距離以遠になったとする。この場合にも原則通り、全ての分割エリアの被写体距離のうち最も近距離にある右エリアの被写体距離を採用する。
【0360】
以上の例外的処理は、測距エリアが3エリア設定の場合にも同様に適用できる。即ち、3エリア設定の場合に測距エリアを構成する中央エリア、右中エリア、左中エリアのうち両端の右中エリア又は左中エリアのいずれか一方のみで被写体距離が超至近距離となり、それ以外の分割エリアで被写体距離が中距離以遠になった場合には、超至近距離以外の被写体距離のうち最も近い被写体距離を採用するようにしてもよい。
【0361】
以上、上記実施の形態は、AFセンサ74よりセンサデータを出力し、CPU60によりAFデータに変換し、相関値演算処理を実施する形態であったが、これに限らず、AFセンサ74において、センサデータをAFデータに変換した後、AFデータを出力し、CPU60にて相関値演算処理を実施する形態、及び、AFセンサ74において、センサデータをAFデータに変換し、相関値演算処理を実施した後,CPU60へ距離信号を出力する形態であってもよい。
【0362】
また、上記実施の形態は、外光パッシブ方式の測距装置を例としたものであるが、本発明は、TTLのパッシブ位相差方式等にも適用できる。
【0363】
更に、上記実施の形態におけるカメラの測距装置は、カメラに限らず他の用途に使用される測距装置にも適用できる。
【0364】
【発明の効果】
以上説明したように本発明に係る測距装置によれば、一対のウインドウ範囲内のAFデータのうちの所定間隔置きのAFデータを用いて相関値演算を行なうようにしたため、演算量を低減することができ、一方、このようにして求めた相関値のうちの最高相関値が得られたときのウインドウ範囲のシフト量を基準とする前後の所定の範囲に絞って、一対のウインドウ範囲内の全てのAFデータを用いて相関値演算を行なうようにしたため、測距精度が低下することがない。
【図面の簡単な説明】
【図1】図1は、本発明が適用されたカメラの正面斜視図である。
【図2】図2は、本発明が適用されたカメラの背面斜視図である。
【図3】図3は、本発明が適用されたカメラの制御部を示したブロック図である。
【図4】図4は、パッシブ方式によるAFセンサの構成を示した図である。
【図5】図5、AFセンサから被写体までの距離が近い場合のセンサ像(AFデータ)を例示した図である。
【図6】図6は、AFセンサから被写体までの距離が遠い場合のセンサ像(AFデータ)を例示した図である。
【図7】図7は、CPUにおけるAF測距の処理手順の概要を示すフローチャートである。
【図8】図8は、Rセンサ及びLセンサのセンサ領域における分割エリアを示した図である。
【図9】図9は、測距エリア設定処理の手順を示したフローチャートである。
【図10】図10は、3エリア設定と5エリア設定の測距エリアを示した図である。
【図11】図11は、測距エリアを分けて個別に積分処理を行う場合の効果の説明に使用した説明図である。
【図12】図12は、相関値演算の説明に使用した説明図である。
【図13】図13は、AFデータ取得処理において設定されるピーク選択領域の態様を示した図である。
【図14】図14は、AFデータ取得処理の手順を示したフローチャートである。
【図15】図15は、3分割ゲイン高積分の処理手順を示したフローチャートである。
【図16】図16は、CPUとAFセンサとの間の信号ラインを示した図である。
【図17】図17は、CPUとAFセンサとの信号送受信に関する動作タイミングを示した動作タイミングチャートである。
【図18】図18は、ピーク選択領域設定データの説明に使用した説明図である。
【図19】図19は、ピーク選択領域設定データの説明に使用した説明図である。
【図20】図20は、ピーク選択領域数データの説明に使用した説明図である。
【図21】図21は、ピーク選択領域設定データの生成手順の説明に使用した説明図である。
【図22】図22は、ピーク選択領域設定データの生成手順の説明に使用した説明図である。
【図23】図23は、ピーク選択領域設定データの生成手順の説明に使用した説明図である。
【図24】図24は、ピーク選択領域設定データ及びピーク選択領域数データを示した説明図である。
【図25】図25は、/AFEND信号が正常に出力されない場合の出力形態を示した図である。
【図26】図26は、被写体が明るい場合と暗い場合における/AFEND信号とMDATA信号の状態を例示した図である。
【図27】図27は、AFデータの読出し処理の説明に使用した説明図である。
【図28】図28は、2画素差分データについて従来方式と新方式との説明に使用した説明図である。
【図29】図29は、従来方式と新方式とで得た2画素差分データ(AFデータ)を例示した図である。
【図30】図30は、相関値演算の実行時(実行中)においてAFデータを生成する場合における相関値演算の処理手順を示したフローチャートである。
【図31】図31は、相関値演算の実行前において予めAFデータを生成してRAMに格納しておいた場合における相関値演算の処理手順を示したフローチャートである。
【図32】図31は、相関値演算の実行時(実行中)においてAFデータを生成する場合のデータの流れを示した図である。
【図33】図33は、相関値演算の実行前において予めAFデータを生成してRAMに格納しておく場合のデータの流れを示した図である。
【図34】図34は、従来方式におけるセンサデータの読出し処理を示したフローチャートである。
【図35】図35は、従来方式におけるセンサデータの読出し時のAFCLK信号及びAFDATAP信号を示したタイミングチャートである。
【図36】図36は、新方式(本発明)におけるセンサデータの読出し処理を示したフローチャートである。
【図37】図37は、新方式(本発明)におけるセンサデータの読出し時のAFCLK信号及びAFDATAP信号を示したタイミングチャートである。
【図38】図38は、新方式(本発明)と従来方式との測距時間を比較して示した図である。
【図39】図39は、極小値判断処理の説明に使用した説明図である。
【図40】図40は、極小値判断処理の説明に使用した説明図である。
【図41】図41は、i3つおき演算におけるRウインドウ94B及びLウインドウ96B内の採用セルのセル位置iを示した図である。
【図42】図42は、通常演算により算出された相関値分布の例を示した図である。
【図43】図43は、i3つおき演算により算出された相関値分布の例を示した図である。
【図44】図44は、i3つおき演算における再演算範囲を示した図である。
【図45】図45は、i3つおき演算により検出された暫定最小極小値が近距離警告範囲内であった場合の相関値分布の例を示した図である。
【図46】図46は、通常演算により複数の極小値が検出される場合の相関値分布の例を示した図である。
【図47】図47は、図46と同じAFデータに基づいてi3つおき演算を行った場合に得られる相関値分布を示した図である。
【図48】図48は、図47の相関値分布に対して再演算を行った結果を示した図である。
【図49】図49は、不足分再演算処理の処理手順を示したフローチャートである。
【図50】図50(A)、(B)は、2画素差分演算により得たRセンサとLセンサのAFデータのうち、シフト量n=0におけるi3つおき演算で使用するAFデータを例示した図である。
【図51】図51は、図50(A)、(B)のAFデータの例でi3つおき演算を行って相関値f(n)を算出した結果を示した図である。
【図52】図52は、図50(A)、(B)のAFデータの例で通常演算を行って相関値f(n)を算出した結果を示した図である。
【図53】図53は、図50のようなセンサデータの態様が実測で得られた場合にi3つおき演算で求めた相関値f(n)を示した図である。
【図54】図54は、n3つおき演算における採用シフト量nの例を示した説明図である。
【図55】図55は、n3つおき演算における採用シフト量nのとり方に関する説明に使用した説明図である。
【図56】図56は、n3つおき演算における採用シフト量nのとり方に関する説明に使用した説明図である。
【図57】図57は、n3つおき演算における採用シフト量nのとり方に関する説明に使用した説明図である。
【図58】図58は、図56に示したn3つおき演算における再演算範囲の例を示した図である。
【図59】図59は、コントラスト検出処理1とコントラスト検出処理2による一連のコントラスト検出処理の全体手順を示したフローチャートである。
【図60】図60は、コントラスト検出処理により測距不能と判定される場合のAFデータ及び相関値分布の例を示した図である。
【図61】図61は、コントラスト検出処理により測距不能と判定される場合のAFデータ及び相関値分布の例を示した図である。
【図62】図62は、CPUにおけるL、Rチャンネル差補正処理の手順を示したフローチャートである。
【図63】図63は、AFデータの補正をRセンサのAFデータとLセンサのAFデータの信号量差を補正して行う場合の処理手順を示したフローチャートである。
【図64】図64は、L、Rチャンネル差補正処理による効果の説明に使用した説明図である。
【図65】図65は、L、Rチャンネル差補正処理におけるAFデータの補正を信号量差及びコントラスト比を補正して行うAFデータ補正処理の処理手順を示したフローチャートである。
【図66】図66は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図67】図67は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図68】図68は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図69】図69は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図70】図70は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図71】図71は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図72】図72は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図73】図73は、図65におけるAFデータ補正処理の効果の説明に使用した説明図である。
【図74】図74は、極小値判定の処理の説明に使用した説明図である。
【図75】図75は、極小値判定の処理の説明に使用した説明図である。
【図76】図76は、極小値判定の処理の説明に使用した説明図である。
【図77】図77は、補間値演算処理の説明に使用した説明図である。
【図78】図78は、補間値演算処理の説明に使用した説明図である。
【図79】図79は、補間値演算処理の説明に使用した説明図である。
【図80】図80は、補間値演算処理の説明に使用した説明図である。
【図81】図81は、補間値演算処理の説明に使用した説明図である。
【図82】図82は、補間値演算処理の説明に使用した説明図である。
【図83】図83は、補間値別演算処理の説明に使用した説明図である。
【図84】図84は、補間値別演算処理の説明に使用した説明図である。
【図85】図85は、補間値別演算処理の説明に使用した説明図である。
【図86】図86は、補間値演算処理において補間値通常演算及び補間値別演算の処理タイプ1〜3を判別する手順を示したフローチャートである。
【図87】図87は、固定焦点処理の手順を示したフローチャートである。
【図88】図88は、固定焦点処理の手順を示したフローチャートである。
【図89】図89は、エリア選択処理の説明に使用した説明図である。
【符号の説明】
10…カメラ、34…シャッタボタン、60…CPU、72…ストロボ装置、74…AFセンサ、94…Rセンサ、96…Lセンサ、99…処理回路
Claims (5)
- 複数の受光素子からなる一対のラインセンサに測距対象物からの光を結像させ、各受光素子から得られた信号に基づいて相関値演算用の一対のAFデータを生成するAFデータ生成手段と、
前記一対のラインセンサのうちの測距に使用する一対の採用センサ範囲から一対のAFデータを取得するAFデータ取得手段と、
前記一対の採用センサ範囲内において、相関値演算に使用する一対のAFデータを取得するための一対のウインドウ範囲を決定し、該一対のウインドウ範囲を前記一対の採用センサ範囲内の最高相関を得るためにシフトさせながら順次相関値演算する第1の相関値演算手段であって、前記一対のウインドウ範囲内のAFデータのうちの所定間隔置きの画素から生成されるAFデータを用いて相関値演算する第1の相関値演算手段と、
前記第1の相関値演算手段により得られた相関値のうちの最高相関値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内で、前記一対のウインドウ範囲をシフトさせながら順次相関値演算する第2の相関値演算手段であって、前記一対のウインドウ範囲内の全てのAFデータを用いて相関値演算する第2の相関値演算手段と、
前記第2の相関値演算手段により得られた相関値のうちの最高相関値が得られたときの前記ウインドウ範囲のシフト量に基づいて測距対象物の距離を算出する測距対象物距離算出手段と、を備え、
前記第1の相関値演算手段は、前記採用センサ内の相関値演算により高い相関を示す極値が複数ある場合には、最も相関の高い極値を暫定第1極値とし、次に相関の高い極値を暫定第2極値として求め、
前記第2の相関値演算手段は、前記暫定第1極値と暫定第2極値との差が所定の基準値内の場合には、前記暫定第1極値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内と、前記暫定第2極値が得られたときの前記ウインドウ範囲のシフト量を基準とする前後の所定の範囲内とでそれぞれ相関値演算を行うことを特徴とする測距装置。 - 前記第1の相関値演算手段により暫定第1極値が得られたときの前記ウインドウ範囲の第1のシフト量及び暫定第2極値が得られたときの前記ウインドウ範囲の第2のシフト量と、前記第2の相関値演算手段により最高相関値が得られるときの前記ウインドウ範囲の第3のシフト量との差をそれぞれ求める手段と、前記求めた差のうちの小さい方の差が所定のシフト量以上の場合には測距不能とする判定手段と、を有することを特徴とする請求項1の測距装置。
- 前記測距対象物距離算出手段は、前記第2の相関値演算手段により得られた相関値のうちの最高相関値と、その前後の前記所定の範囲の相関値とに基づいて補間値演算によって真の最高相関値が得られるシフト量を求め、該シフト量に基づいて測距対象物の距離を算出することを特徴とする請求項1、又は、2に記載の測距装置。
- 前記第1の相関値演算手段により最高相関値が得られたときの前記ウインドウ範囲のシフト量が、近距離警告範囲内か否かを判断する判断手段と、前記判断手段によって近距離警告範囲内と判断されると、前記第2の相関値演算手段による相関値演算を中止させると共に近距離警告を発生させる手段と、を有することを特徴とする請求項1乃至3のいずれかに記載の測距装置。
- 前記一対の採用センサは、前記一対のラインセンサの全測距エリアのセンサ、又は前記一対のラインセンサの全測距エリアを複数の分割エリアに分割した各分割エリアのセンサであることを特徴とする請求項1乃至4のいずれかに記載の測距装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001373989A JP4200350B2 (ja) | 2001-12-07 | 2001-12-07 | 測距装置 |
US10/314,284 US6701074B2 (en) | 2001-12-07 | 2002-12-09 | Distance measuring apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001373989A JP4200350B2 (ja) | 2001-12-07 | 2001-12-07 | 測距装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008192675A Division JP4802223B2 (ja) | 2008-07-25 | 2008-07-25 | 測距装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003172872A JP2003172872A (ja) | 2003-06-20 |
JP4200350B2 true JP4200350B2 (ja) | 2008-12-24 |
Family
ID=19182619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001373989A Expired - Fee Related JP4200350B2 (ja) | 2001-12-07 | 2001-12-07 | 測距装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4200350B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6592967B2 (ja) * | 2015-05-28 | 2019-10-23 | 株式会社ニコン | 焦点検出装置および撮像装置 |
JP6592968B2 (ja) * | 2015-05-28 | 2019-10-23 | 株式会社ニコン | 焦点検出装置および撮像装置 |
-
2001
- 2001-12-07 JP JP2001373989A patent/JP4200350B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003172872A (ja) | 2003-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4802223B2 (ja) | 測距装置 | |
JP4470065B2 (ja) | 測距装置 | |
JP4580603B2 (ja) | 測距装置 | |
JP4023778B2 (ja) | 測距装置 | |
JP4612256B2 (ja) | 測距装置 | |
JP4200350B2 (ja) | 測距装置 | |
JP3856295B2 (ja) | 測距装置 | |
JP4231221B2 (ja) | 測距装置 | |
JP4000402B2 (ja) | 測距装置 | |
JP3988159B2 (ja) | 測距装置 | |
JP4196560B2 (ja) | 測距装置 | |
JP3972290B2 (ja) | 測距装置 | |
JP2003232627A (ja) | 測距装置 | |
JP2006343348A (ja) | 測距装置 | |
JP2007086084A (ja) | 測距装置 | |
US6701074B2 (en) | Distance measuring apparatus | |
JP2003177302A (ja) | 測距装置 | |
JP2003232983A (ja) | 測距装置 | |
JP2003177301A (ja) | 測距装置 | |
JP2003232628A (ja) | 測距装置 | |
JP4109066B2 (ja) | 測距装置及びこれを備えたカメラ | |
JP2003227995A (ja) | カメラ | |
JP2003232982A (ja) | 測距装置 | |
JP6234094B2 (ja) | 焦点検出装置および撮像装置 | |
US6829434B2 (en) | Distance measuring apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080530 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080725 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080910 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080923 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121017 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |