(57)【特許請求の範囲】
【請求項１】
所定周期にて強度が時間的に変化するように変調された第１の測距光、および前記所定周期にて強度が一定のパルス波状に変調された第２の測距光を切換可能に発光する測距光発光手段と、
受光光量に応じた受光信号を出力する複数の受光素子を有する撮像手段と、
前記撮像手段の受光期間を制御する受光制御手段と、
前記受光信号に基づいて、被写体までの距離を表す距離情報を前記受光素子毎に算出する距離情報算出手段と、
前記第１の測距光を発光し、該第１の測距光の変調周期における位相が異なる複数の受光期間において複数の第１の受光信号を取得し、前記複数の第１の受光信号に基づいて、前記第１の測距光と該第１の測距光の反射光との位相差を前記受光素子毎に算出し、該位相差に基づいて前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相とは異なるように変更して該第２の測距光を発光し、該第２の測距光の変調周期における前記位相差に応じた複数の受光期間において複数の第２の受光信号を取得し、前記複数の第１の受光信号に基づいて、前記距離情報の算出に使用する第２の受光信号を選択するよう、前記測距光発光手段、前記撮像手段、前記受光制御手段および前記距離情報算出手段を制御する制御手段とを備えたことを特徴とする測距装置。
【請求項２】
前記測距光発光手段は、前記複数の受光素子について算出した複数の位相差のうち、最小位相差分前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相から早めて、前記第２の測距光を発光する手段であり、
前記受光制御手段は、前記複数の位相差のうち、最大位相差と前記最小位相差との差分位相差が大きいほど、より多くの受光期間において前記第２の受光信号を取得する手段であることを特徴とする請求項１記載の測距装置。
【請求項３】
前記距離情報算出手段は、前記位相差と前記最小位相差との差分位相差に基づいて、前記複数の第２の受光信号のうち、前記距離情報の算出に使用する第２の受光信号を選択する手段であることを特徴とする請求項１または２記載の測距装置。
【請求項４】
前記測距光発光手段は、前記第２の測距光を、前記第１の測距光の変調周期と同一周期にて、該第１の測距光の変調周期よりも短い期間発光する手段であることを特徴とする請求項１から３のいずれか１項記載の測距装置。
【請求項５】
前記測距光発光手段は、前記第２の測距光を、前記第１の測距光の変調周期の１／４の期間発光する手段であり、
前記受光制御手段は、前記第２の測距光の反射光の受光期間を、前記第１の測距光の変調周期の１／４期間または１／２期間となるように制御する手段であることを特徴とする請求項１から４のいずれか１項記載の測距装置。
【請求項６】
前記距離情報算出手段は、前記選択した第２の受光信号が複数の受光期間に跨る場合、信号レベルが大きい受光期間側の第２の受光信号を前記距離情報の算出に使用する手段であることを特徴とする請求項１から５のいずれか１項記載の測距装置。
【請求項７】
前記距離情報算出手段は、前記複数の第１の受光信号に基づいて外光成分を表す外光信号を算出し、該外光信号により、前記選択した第２の受光信号を補正する手段であることを特徴とする請求項１から６のいずれか１項記載の測距装置。
【請求項８】
所定周期にて強度が時間的に変化するように変調された第１の測距光、および前記所定周期にて強度が一定のパルス波状に変調された第２の測距光を切換可能に発光する測距光発光手段と、
受光光量に応じた受光信号を出力する複数の受光素子を有する撮像手段と、
前記撮像手段の受光期間を制御する受光制御手段と、
前記受光信号に基づいて、被写体までの距離を表す距離情報を前記受光素子毎に算出する距離情報算出手段とを備えた測距装置における測距方法であって、
前記第１の測距光を発光し、
該第１の測距光の変調周期における位相が異なる複数の受光期間において複数の第１の受光信号を取得し、
前記複数の第１の受光信号に基づいて、前記第１の測距光と該第１の測距光の反射光との位相差を前記受光素子毎に算出し、
該位相差に基づいて前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相とは異なるように変更して該第２の測距光を発光し、
該第２の測距光の変調周期における前記位相差に応じた複数の受光期間において複数の第２の受光信号を取得し、
前記複数の第１の受光信号に基づいて、前記距離情報の算出に使用する第２の受光信号を選択することを特徴とする測距方法。
【請求項９】
所定周期にて強度が時間的に変化するように変調された第１の測距光、および前記所定周期にて強度が一定のパルス波状に変調された第２の測距光を切換可能に発光する測距光発光手段と、
受光光量に応じた受光信号を出力する複数の受光素子を有する撮像手段と、
前記撮像手段の受光期間を制御する受光制御手段と、
前記受光信号に基づいて、被写体までの距離を表す距離情報を前記受光素子毎に算出する距離情報算出手段とを備えた測距装置における測距方法をコンピュータに実行させるためのプログラムであって、
前記第１の測距光を発光する手順と、
該第１の測距光の変調周期における位相が異なる複数の受光期間において複数の第１の受光信号を取得する手順と、
前記複数の第１の受光信号に基づいて、前記第１の測距光と該第１の測距光の反射光との位相差を前記受光素子毎に算出する手順と、
該位相差に基づいて前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相とは異なるように変更して該第２の測距光を発光する手順と、
該第２の測距光の変調周期における前記位相差に応じた複数の受光期間において複数の第２の受光信号を取得する手順と、
前記複数の第１の受光信号に基づいて、前記距離情報の算出に使用する第２の受光信号を選択する手順とを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の立体形状を表す距離画像を生成するための測距装置および方法並びに測距方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
光の反射を用いて被写体までの距離の測定（測距）を行うＴＯＦ（Time Of Flight）方式の測距方法を用いて、撮影装置から被写体までの距離を測定して、被写体の立体形状を表す距離画像を生成することが行われている（特許文献１参照）。ＴＯＦ方式を用いた測距は、具体的には強度変調された測距光を被写体に向けて照射し、この変調周期における０、π／２、π、３π／２の４つの位相において反射光を受光して受光光量に応じた受光信号を得、受光信号に基づいて測距光と反射光との位相の遅れ（位相差）を、撮影装置に設けられた撮像素子の受光素子毎に検出して距離情報を算出し、この距離情報を各画素の画素値とする被写体の立体形状を表す距離画像を生成するものである。
【０００３】
また、ＴＯＦ方式により測距を行う際に、強度が時間的に変化する正弦波、三角波あるいは鋸波状に強度変調された第１の測距光と、強度が一定のパルス状に強度変調された第２の測距光を使用して測距精度を向上させる手法も提案されている（特許文献２参照）。特許文献２に記載された手法は、第１の測距光により得られる第１の受光信号を第２の測距光により得られる第２の受光信号により除算することにより、距離情報を算出するものである。
【特許文献１】特開２００６−８４４２９号公報
【特許文献１】特開２００１−３１３９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、強度が時間的に変化するように強度変調された測距光を使用する場合、その変調周期の長さを最大値とする位相差を算出することができるため、比較的長いレンジにより測距を行うことができるが、測距光の変調の位相によっては、反射光の強度が小さくなる。このため、外光の影響により得られる受光信号のＳ／Ｎが低下してしまうことから、測距の精度はそれほど高いものではない。一方、パルス状に強度変調された測距光を使用する場合、反射光の強度は一定となるためＳ／Ｎの低下が少なく、精度良く測距を行うことができる。しかしながら、パルス光を使用する場合、パルス光が発光している期間を最大値とする位相差しか算出することができないため、測距を行うことができるレンジが狭く、ある限られた範囲のみしか測距を行うことができない。
【０００５】
ここで、上記特許文献２に記載された手法においては、第１の測距光により得られる受光信号を第２の測距光により得られる受光信号により除算して距離情報を算出しているため、強度が時間的に変化するように強度変調された第１の測距光による第１の受光信号により測距が行われることとなる。このため、特許文献２に記載された手法では測距の精度はそれほど高いものではない。
【０００６】
本発明は上記事情に鑑みなされたものであり、精度良くかつ高速に測距を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明による測距装置は、所定周期にて強度が時間的に変化するように変調された第１の測距光、および前記所定周期にて強度が一定のパルス波状に変調された第２の測距光を切換可能に発光する測距光発光手段と、
受光光量に応じた受光信号を出力する複数の受光素子を有する撮像手段と、
前記撮像手段の受光期間を制御する受光制御手段と、
前記受光信号に基づいて、被写体までの距離を表す距離情報を前記受光素子毎に算出する距離情報算出手段と、
前記第１の測距光を発光し、該第１の測距光の変調周期における位相が異なる複数の受光期間において複数の第１の受光信号を取得し、前記複数の第１の受光信号に基づいて、前記第１の測距光と該第１の測距光の反射光との位相差を前記受光素子毎に算出し、該位相差に基づいて前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相とは異なるように変更して該第２の測距光を発光し、該第２の測距光の変調周期における前記位相差に応じた複数の受光期間において複数の第２の受光信号を取得し、前記複数の第１の受光信号に基づいて、前記距離情報の算出に使用する第２の受光信号を選択するよう、前記測距光発光手段、前記撮像手段、前記受光制御手段および前記距離情報算出手段を制御する制御手段とを備えたことを特徴とするものである。
【０００８】
「強度が時間的に変化するように強度変調」するとは、時間の経過とともに強度が連続して変化するように第１の測距光を変調することを意味する。具体的には、正弦波状、三角波状、鋸波状に強度を変調することにより、強度が時間的に変化するように強度変調することができる。
【０００９】
ここで、強度が時間的に変化するように変調された第１の測距光を使用する場合、比較的長いレンジにより測距を行うことができるが、変調の位相によっては反射光の強度が小さくなる。このため、外光の影響により得られる受光信号のＳ／Ｎが低下してしまうことから、測距の精度はそれほど高いものではない。一方、強度が一定のパルス状に強度変調された第２の測距光を使用する場合、反射光の強度は一定となるためＳ／Ｎの低下が少なく、精度良く測距を行うことができる。しかしながら、測距を行うことができるレンジがパルス幅により制限されてしまうため、ある限られた範囲のみしか測距を行うことができない。
【００１０】
本発明によれば、第１の測距光の反射光から得られる複数の第１の受光信号に基づいて、第２の測距光の反射光から得られる複数の第２の受光信号のうち、距離情報の算出に使用する受光信号を選択するようにしたものである。ここで、複数の第１の受光信号により第１の測距光と第１の測距光の反射光との位相差を算出でき、この位相差により被写体までの大まかな距離情報を算出できるものである。このため、第１の受光信号に基づいて選択した第２の受光信号により、第１の受光信号を用いて算出できる距離情報と同一の距離レンジにおいて、より正確に位相差を算出できるため、より正確な距離を表す距離情報を算出することができることとなる。
【００１１】
また、第１の測距光と反射光との位相差に基づいて、第２の測距光の位相を第１の測距光の位相とは異なるように変更して第２の測距光を発光し、位相差に応じた複数の受光期間において第２の受光信号を取得しているため、第１の受光信号を取得した受光期間のすべてにおいて第２の受光信号を取得する必要がなくなる。このため、距離情報の算出を迅速に行うことができる。したがって、本発明によれば、被写体までの距離に拘わらず正確かつ高速に測距を行うことができる。
【００１２】
なお、本発明による測距装置においては、前記測距光発光手段を、前記複数の受光素子について算出した複数の位相差のうち、最小位相差分前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相から早めて、前記第２の測距光を発光する手段とし、
前記受光制御手段を、前記複数の位相差のうち、最大位相差と前記最小位相差との差分が大きいほど、より多くの受光期間において前記第２の受光信号を取得する手段としてもよい。
【００１３】
これにより、位相差が最小となる第２の測距光の反射光の位相を第１の測距光の変調の位相と一致させることができるため、差分位相差に応じた第２の受光信号を取得する受光期間の設定を容易に行うことができる。
【００１４】
また、本発明による測距装置においては、前記距離情報算出手段を、前記位相差と前記最小位相差との差分位相差に基づいて、前記複数の第２の受光信号のうち、前記距離情報の算出に使用する第２の受光信号を選択する手段としてもよい。
【００１５】
これにより、差分位相差に応じて、より容易に第２の受光信号を取得する期間を設定することができる。
【００１６】
また、本発明による測距装置においては、前記測距光発光手段を、前記第２の測距光を、前記第１の測距光の変調周期と同一周期にて、該第１の測距光の変調周期よりも短い期間発光する手段としてもよい。
【００１７】
これにより、第１および第２の測距光の発光の制御を容易に行うことができる。
【００１８】
また、本発明による測距装置においては、前記測距光発光手段を、前記第２の測距光を前記第１の測距光の変調周期の１／４の期間発光する手段とし、
前記受光制御手段を、前記撮像手段の受光期間を、前記第１の測距光の変調周期の１／４期間または１／２期間となるように制御する手段としてもよい。
【００１９】
これにより、第１および第２の測距光の発光の制御、並びに第１および第２の測距光の反射光の受光の制御をより容易に行うことができる。
【００２０】
また、本発明による測距装置においては、前記距離情報算出手段を、前記選択した前記第２の受光信号が複数の受光期間に跨る場合、信号レベルが大きい受光期間側の第２の受光信号を前記距離情報の算出に使用する手段としてもよい。
【００２１】
ここで、信号レベルが大きいということは外光によるノイズの影響が小さいことを意味する。したがって、信号レベルが大きい側の第２の受光信号を距離情報の算出に使用することにより、より正確に距離情報を算出することができる。
【００２２】
また、本発明による測距装置においては、前記距離情報算出手段を、前記複数の第１の受光信号に基づいて外光成分を表す外光信号を算出し、該外光信号により、前記選択した第２の受光信号を補正する手段としてもよい。
【００２３】
これにより、より正確に距離情報を算出することができる。
【００２４】
本発明による測距方法は、所定周期にて強度が時間的に変化するように変調された第１の測距光、および前記所定周期にて強度が一定のパルス波状に変調された第２の測距光を切換可能に発光する測距光発光手段と、
受光光量に応じた受光信号を出力する複数の受光素子を有する撮像手段と、
前記撮像手段の受光期間を制御する受光制御手段と、
前記受光信号に基づいて、被写体までの距離を表す距離情報を前記受光素子毎に算出する距離情報算出手段とを備えた測距装置における測距方法であって、
前記第１の測距光を発光し、
該第１の測距光の変調周期における位相が異なる複数の受光期間において複数の第１の受光信号を取得し、
前記複数の第１の受光信号に基づいて、前記第１の測距光と該第１の測距光の反射光との位相差を前記受光素子毎に算出し、
該位相差に基づいて前記第２の測距光の発光開始位相を前記第１の測距光の発光開始位相とは異なるように変更して該第２の測距光を発光し、
該第２の測距光の変調周期における前記位相差に応じた複数の受光期間において複数の第２の受光信号を取得し、
前記複数の第１の受光信号に基づいて、前記距離情報の算出に使用する第２の受光信号を選択することを特徴とするものである。
【００２５】
なお、本発明による測距方法をコンピュータに実行させるためのプログラムとして提供してもよい。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の第１の実施形態による測距装置の構成を示す概略ブロック図である。図１に示すように第１の実施形態による測距装置１は撮像部２を備える。
【００２７】
撮像部２は、レンズ１０、絞り１１、シャッタ１２、ＣＣＤ１３、アナログフロントエンド（ＡＦＥ）１４およびＡ／Ｄ変換部１５を備える。
【００２８】
レンズ１０は、被写体にピントを合わせるためのフォーカスレンズ、ズーム機能を実現するためのズームレンズ等の複数の機能別レンズにより構成され、不図示のレンズ駆動部によりその位置が調整される。
【００２９】
絞り１１は、不図示の絞り駆動部により、予め定められた絞り値データに基づいて絞り径の調整が行われる。
【００３０】
シャッタ１２はメカニカルシャッタであり、予め定められたシャッタスピードに応じて駆動される。
【００３１】
ＣＣＤ１３は、多数の受光素子を２次元的に配列した光電面を有する撮像素子であり、被写体光がこの光電面に結像して光電変換されてアナログ撮像信号である受光信号が取得される。なお、ＣＣＤ１３は、後述する撮像制御部１９から与えられる電子シャッタ駆動信号によって受光期間が制御される。また、ＣＣＤ１３の前面には、後述する測距光の波長域の光を透過するフィルタ１３Ａが配設されているため、ＣＣＤ１３の受光素子は測距光の反射光のみを受光することができる。ここで、本実施形態においては、測距光として赤外光を用いるものとする。
【００３２】
ＡＦＥ１４は、ＣＣＤ１３から出力される受光信号に対して、受光信号のノイズを除去する処理、および受光信号のゲインを調節する処理（以下アナログ処理とする）を施す。
【００３３】
Ａ／Ｄ変換部１５は、ＡＦＥ１４によりアナログ処理が施された受光信号をデジタル信号に変換する。
【００３４】
また、撮像部２は、被写体に向けて赤外光からなる測距光を照射するための測距光源１６を備える。
【００３５】
図２は測距光源の構成を示す概略ブロック図である。図２に示すように測距光源１６は、赤外光からなる測距光を発光するＬＥＤが２次元状に複数配設された面光源１６Ａ、面光源１６Ａから発せられる測距光を強度変調する変調部１６Ｂ、測距光を変調するための波形データを記憶するメモリ１６Ｃ、およびメモリ１６Ｃから波形データを読み出し、波形データをＤ／Ａ変換して変調部１６Ｂに入力するメモリ制御部１６Ｄを備える。
【００３６】
メモリ制御部１６Ｄは、後述する撮像制御部１９からの指示により、所定の波形データを読み出してＤ／Ａ変換して変調部１６Ｂに入力する。変調部１６Ｂは入力された波形データにより表される波形と一致するように面光源１６Ａから発光される測距光の強度を変調する。
【００３７】
ここで、本実施形態においては、メモリ１６Ｃには測距光を正弦波状に強度変調するための正弦波データ、および測距光をパルス波状に強度変調するためのパルス波データが記憶されている。なお、正弦波データおよびパルス波データは周期が同一であり、パルスの期間は正弦波の周期の１／４の期間であるものとする。また、正弦波データにより強度変調される測距光を第１の測距光、パルス波データにより強度変調される測距光を第２の測距光と称するものとする。
【００３８】
また、撮像部２は、ＣＣＤ１３、ＡＦＥ１４および測距光源１６の駆動を制御するための撮像制御部１９を備える。具体的には、撮像制御部１９は、ＣＰＵ３２からの指示により、変調部１８に変調の指示を行って測距光照射部３から第１および第２の測距光を発光させ、これとタイミングを合わせて被写体による測距光の反射光を受光し、受光光量に応じた受光信号を出力するよう撮像部２の各部を制御する。なお、第１および第２の測距光の発光、並びにＣＣＤ１３の各受光素子からの受光信号の取得の詳細な制御については後述する。
【００３９】
また、測距装置１は、撮影条件設定部２２、画像処理部２３、圧縮／伸長処理部２４、フレームメモリ２５、メディア制御部２６、内部メモリ２７、および表示制御部２８を備える。
【００４０】
撮影条件設定部２２は、予め定められた焦点距離、絞り値およびシャッタ速度を記憶しており、撮影を行う際に、焦点距離、絞り値およびシャッタ速度を撮像部２に出力する。
【００４１】
画像処理部２３は、後述するように生成された距離画像の画像データに対して、階調補正、シャープネス補正等の画像処理を施す。
【００４２】
圧縮／伸長処理部２４は、画像処理部２３によって画像処理が施された距離画像の画像データに対して、例えば、ＪＰＥＧ等の圧縮形式で圧縮処理を行い、画像ファイルを生成する。この画像ファイルには、Ｅｘｉｆフォーマット等に基づいて、撮影日時等の付帯情報が格納されたタグが付加される。
【００４３】
フレームメモリ２５は、撮像部２が取得した受光信号に対して、前述の画像処理を含む各種処理を行う際に使用する作業用メモリである。
【００４４】
メディア制御部２６は、記録メディア２９にアクセスして距離画像の画像ファイルの書き込みと読み込みの制御を行う。
【００４５】
内部メモリ２７は、測距装置１において設定される各種定数、およびＣＰＵ３２が実行するプログラム等を記憶する。
【００４６】
表示制御部２８は、フレームメモリ２５に格納された画像データをモニタ３０に表示させたり、記録メディア２９に記録されている画像をモニタ３０に表示させたりするためのものである。
【００４７】
また、測距装置１は、距離画像生成部３１およびＣＰＵ３２を備える。
【００４８】
距離画像生成部３１は、撮像部２が取得した受光信号を用いて被写体上の各点の測距装置１からの距離情報Ｄ１を、ＣＣＤ１３上における受光素子毎に算出する。以下、距離情報Ｄ１の算出について説明する。
【００４９】
距離画像生成部３１は、強度変調された第１の測距光が発光されてから被写体により反射された反射光を受光するまでの時間（すなわち光の飛行時間）に基づいて、距離情報Ｄ１を算出する。
【００５０】
図３は距離情報を算出するための位相差の算出を説明するための図である。図３に示すように、測距光源１６から発光される第１の測距光の強度は曲線Ｋ１に示すように正弦波状に変化するため、ＣＣＤ１３のある受光素子により受光した反射光の受光光量も曲線Ｋ２のように正弦波状に変化するが、光の飛行時間に相当する位相差ｔｄａが発生する。
【００５１】
位相差ｔｄａは、第１の測距光の複数のタイミングで求めた反射光の受光光量を用いて計算することができる。本実施形態においては、第１の測距光における０、π／２、π、３π／２の位相において、第１の測距光の１／４周期に相当する受光期間Ｔｗ、パルス状に受光した反射光の受光光量を用いて位相差ｔｄａを算出する。
【００５２】
ここで、第１の測距光における連続した０、π／２、π、３π／２の位相において受光した反射光の受光光量がそれぞれＦ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａであるとする。なお、受光光量Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａを求める間に位相差ｔｄａは変化せず、かつ被写体の反射率にも変化がないものとし、時刻ｔにおいてＣＣＤ１３の各受光素子で受光される光の強度がＡ・ｓｉｎ（ωｔ＋δ）＋Ｂで表されるものとする。ここで、Ａは振幅、Ｂは外光成分、ωは角振動数、δは位相である。これにより、受光素子で受光する受光光量Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａは、次のように表すことができる。なお、受光光量は測距光における０、π／２、π、３π／２の位相において各受光素子から出力される受光信号に相当する。また、位相差ｔｄａの算出には、上述した４つの受光光量すなわち４つの受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａをＣＣＤ１３から取得することが必要であるため、すべての受光素子が４つの受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａを取得するまで、第１の測距光の発光およびＣＣＤ１３による反射光の受光が行われる。
【００５３】
Ｆ１ａ＝Ａ・ｓｉｎ（δ）＋Ｂ
Ｆ２ａ＝Ａ・ｓｉｎ（π／２＋δ）＋Ｂ
Ｆ３ａ＝Ａ・ｓｉｎ（π＋δ）＋Ｂ
Ｆ４ａ＝Ａ・ｓｉｎ（３π／２＋δ）＋Ｂ
ここで、δ＝−ｔｄａであるから、Ｆ１ａ＝−Ａ・ｓｉｎ（ｔｄａ）＋Ｂ、Ｆ２ａ＝Ａ・ｃｏｓ（ｔｄａ）＋Ｂ、Ｆ３ａ＝Ａ・ｓｉｎ（ｔｄａ）＋Ｂ、Ｆ４ａ＝−Ａ・ｃｏｓ（ｔｄａ）＋Ｂであるため、各受光光量（受光信号）Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａと位相差ｔｄａとの関係は、次式のようになる。
【００５４】
ｔｄａ＝ｔａｎ-1｛（Ｆ３ａ−Ｆ１ａ）／（Ｆ２ａ−Ｆ４ａ）｝   （１）
なお、位相差ｔｄａを使用することにより、距離情報Ｄを下記の式（２）により算出することができる。
【００５５】
Ｄ＝ｃ・ｔｄａ／（４πＦ）      （２）
ｃは光速、Ｆは周波数（＝ω／２π）である。
【００５６】
ここで、４つの受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａは各受光素子において、第１の測距光における０、π／２、π、３π／２の位相にてそれぞれ受光期間を区切って取得すればよいが、ＣＣＤ１３の各受光素子に４つの電荷蓄積部を設け、第１の測距光の１周期に相当する１つの受光期間において、４つの電荷蓄積部のそれぞれにより４つの受光信号を取得するようにしてもよい。
【００５７】
また、第１の実施形態においては、距離画像生成部３１は、位相差ｔｄａを算出した後、第１の測距光に代えて第２の測距光を発光する。ここで、第２の測距光は第１の測距光と周期が同一であり、発光期間は第１の測距光の１／４、すなわちＴｗであるため、反射光も期間Ｔｗのパルス状の光となる。なお、第２の測距光の反射光についても、第１の測距光の反射光と同様に位相差が発生する。
【００５８】
なお、距離画像生成部３１は、すべての受光素子について算出した位相差ｔｄａのうち最小位相差ｔ１を算出し、撮像部２に出力する。撮像部２の撮像制御部１９は、発光開始位相を最小位相差ｔ１分早めて、測距光源１６から第２の測距光を発光する。すなわち、発光開始位相を変更しない場合には、第２の測距光は図３の破線に示すように、第１の測距光の発光開始位相と同一の発光開始位相にて発光するが、最小位相差ｔ１分発光開始位相を早めることにより、図３の実線に示すように第２の測距光を発光する。
【００５９】
さらに、距離画像生成部３１は、位相差ｔｄａの最大位相差ｔ２を求め、最大位相差ｔ２と最小位相差ｔ１との差分位相差ｔｒ（＝ｔ２−ｔ１）を算出し、撮像部２に出力する。撮像部２の撮像制御部１９は、差分位相差ｔｒに応じて、第２の測距光の発光の１周期において、第１の測距光の反射光と同一の受光期間（すなわち第１の測距光の変調周期の０、π／２、π、３π／２の位相に相当する受光期間Ｔｗ）のうち、いずれの受光期間において反射光を受光するかを設定する。
【００６０】
図４は受光期間の設定を説明するための図である。第２の測距光は第１の測距光を用いて算出した最小位相差ｔ１分、第１の測距光よりも発光開始位相が早い。このため、最も早く受光される反射光は、第２の測距光と位相が最小位相差ｔ１ずれることから、反射光の位相は、図４に示すように０の位相における第１の測距光の１／４周期に相当する期間Ｔｗに相当するものとなる。
【００６１】
一方、差分位相差ｔｒは第１の測距光の１変調周期未満の値となるため、第２の測距光の反射光は、第１の測距光の１の変調周期に相当する期間において受光すればよいこととなる。したがって、差分位相差ｔｒに応じて第１の測距光の変調周期の０、π／２、π、３π／２のうちのいずれの位相に対応する受光期間Ｔｗにおいて受光をすればよいかが分かることとなる。
【００６２】
具体的には、ｔｒ≦Ｔ／４（Ｔは第１の測距光の１変調周期）の場合は、第２の測距光の反射光の位相は０〜πにあるものとなるため、０およびπ／２の２つの受光期間Ｔｗにおいて反射光を受光すればよいこととなる。また、Ｔ／４＜ｔｒ≦Ｔ／２の場合は、第２の測距光の反射光の位相は図４の差分位相差ｔｒ１の場合に示すように、０〜３π／２にあるものとなるため、０、π／２およびπの３つの受光期間Ｔｗにおいて反射光を受光すればよいこととなる。また、Ｔ／２＜ｔｒ≦Ｔの場合は、図４の差分位相差ｔｒ２の場合に示すように第２の測距光の反射光の位相は、０〜２πにあるものとなるため、０、π／２、π、３π／２のすべての受光期間Ｔｗにおいて反射光を受光すればよいこととなる。
【００６３】
なお、第１の測距光の変調周期の０、π／２、π、３π／２の位相に相当する受光期間Ｔｗにおいて、第２の測距光の反射光を受光することにより得られる受光信号を受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂとする。
【００６４】
また、距離画像生成部３１は、受光素子毎に位相差ｔｄａと最小位相差ｔ１との差分位相差ｔｓ（ｔｓ＝ｔｄａ−１）を算出し、差分位相差ｔｓに基づいて、受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂのうち、位相差ｔｄｂの算出に使用する受光信号を選択する。すなわち、位相差ｔｄａがＴｗ以内であれば、第２の測距光の反射光は第１の測距光の０〜πの位相の間に存在することから、受光信号Ｆ１ｂ、Ｆ２ｂを選択する。そして下記の式（３）により位相差ｔｄｂを算出する。
【００６５】
ｔｄｂ＝Ｔｗ×Ｆ２ｂ／（Ｆ１ｂ＋Ｆ２ｂ）            （３）
差分位相差ｔｓがＴｗより大きく２Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光のπ／２〜３π／２の位相の間に存在することから、距離画像生成部３１は受光信号Ｆ２ｂ、Ｆ３ｂを選択する。そして下記の式（４）により位相差ｔｄｂを算出する。
【００６６】
ｔｄｂ＝Ｔｗ＋Ｔｗ×Ｆ３ｂ／（Ｆ２ｂ＋Ｆ３ｂ）      （４）
差分位相差ｔｓが２Ｔｗより大きく３Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光のπ〜２π（すなわち０）の位相の間に存在することから、距離画像生成部３１は受光信号Ｆ３ｂ、Ｆ４ｂを選択する。そして下記の式（５）により位相差ｔｄｂを算出する。
【００６７】
ｔｄｂ＝２Ｔｗ＋Ｔｗ×Ｆ４ｂ／（Ｆ３ｂ＋Ｆ４ｂ）    （５）
さらに、差分位相差ｔｓが３Ｔｗより大きく４Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光の３π／２〜π／２（次の周期）の位相の間に存在することから、距離画像生成部３１は受光信号Ｆ４ｂ、Ｆ１ｂを選択する。そして下記の式（６）により位相差ｔｄｂを算出する。
【００６８】
ｔｄｂ＝３Ｔｗ＋Ｔｗ×Ｆ１ｂ／（Ｆ４ｂ＋Ｆ１ｂ）    （６）
そして、位相差ｔｄｂを用いて下記の式（７）により受光素子毎に被写体までの距離を表す距離情報Ｄ１を算出する。
【００６９】
Ｄ１＝ｃ×（ｔｄｂ＋ｔ１）／２      （７）
なお、ｃは光速である。
【００７０】
さらに、距離画像生成部３１は、上述したように受光素子単位で算出した距離情報Ｄ１を各画素の画素値とする距離画像Ｓ１を生成する。
【００７１】
なお、差分位相差がｔｒ≦Ｔ／４の場合には、２つの受光信号Ｆ１ｂ、Ｆ２ｂのみしか取得されないが、ｔｓ≦Ｔｗとなるため、必ず式（３）により位相差ｔｄｂが算出される。また、差分位相差がＴ／４＜ｔｒ≦Ｔ／２の場合は、３つの受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂのみしか取得されないが、ｔｓ≦２Ｔｗとなるため、必ず式（３）、（４）により位相差ｔｄｂが算出される。
【００７２】
ＣＰＵ３２は、入出力部３３からの信号に応じて測距装置１の各部を制御する。
【００７３】
データバス３４は、測距装置１を構成する各部およびＣＰＵ３２に接続されており、測距装置１における各種データおよび各種情報のやり取りを行う。
【００７４】
次いで、第１の実施形態において行われる処理について説明する。図５および図６は第１の実施形態において行われる処理を示すフローチャートである。
【００７５】
撮影指示が行われることによりＣＰＵ３２が処理を開始し、撮像部２がＣＰＵ３２からの指示により、測距光源１６から第１の測距光を被写体に向けて発光し（ステップＳＴ１）、さらに第１の測距光の被写体による反射光を第１の測距光における連続した０、π／２、π、３π／２の位相において受光して、４つの受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａを取得する（ステップＳＴ２）。次いで、距離画像生成部３１が、４つの受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａから上記式（１）により、位相差ｔｄａを受光素子単位で算出する（ステップＳＴ３）。さらに、距離画像生成部３１は位相差ｔｄａの最大位相差ｔ２と最小位相差ｔ１との差分位相差ｔｒを算出する（ステップＳＴ４）。
【００７６】
そして、撮像部２の撮像制御部１９が、第２の測距光の発光開始位相を第１の測距光よりも最小位相差ｔ１分早くなるように設定し（ステップＳＴ５）、差分位相差ｔｒの範囲を判定する（ステップＳＴ６）。
【００７７】
ｔｒ≦Ｔ／４の場合は、撮像制御部１９は、位相が０およびπ／２の受光期間Ｔｗにおいて反射光を受光するよう、ＣＣＤ１３の各受光素子の受光期間を設定する（ステップＳＴ７）。そして、測距光源１６から第２の測距光を被写体に向けて発光し（ステップＳＴ８）、さらに第２の測距光の被写体による反射光を、設定した受光期間に対応する０、π／２の位相において受光して、２つの受光信号Ｆ１ｂ、Ｆ２ｂを取得する（ステップＳＴ９）。
【００７８】
また、Ｔ／４＜ｔｒ≦Ｔ／２の場合は、撮像制御部１９は、位相が０、π／２およびπの受光期間Ｔｗにおいて反射光を受光するよう、ＣＣＤ１３の各受光素子の受光期間を設定する（ステップＳＴ１０）。そして、測距光源１６から第２の測距光を被写体に向けて発光し（ステップＳＴ８）、さらに第２の測距光の被写体による反射光を、設定した受光期間に対応する０、π／２、πの位相において受光して、３つの受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂを取得する（ステップＳＴ１１）。
【００７９】
また、Ｔ／２＜ｔｒ≦Ｔの場合は、撮像制御部１９は、位相が０、π／２、π、３π／２のすべての受光期間Ｔｗにおいて反射光を受光するよう、ＣＣＤ１３の各受光素子の受光期間を設定する（ステップＳＴ１２）。そして、測距光源１６から第２の測距光を被写体に向けて発光し（ステップＳＴ８）、さらに第２の測距光の被写体による反射光を、設定した受光期間に対応する０、π／２、π、３π／２の位相において受光して、４つの受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂを取得する（ステップＳＴ１３）。
【００８０】
続いて、距離画像生成部３１が、各受光素子について位相差ｔｄａと最小位相差ｔ１との差分位相差ｔｓを算出し（ステップＳＴ１４）、差分位相差ｔｓの範囲を判定する（ステップＳＴ１５）。
【００８１】
ｔｓ≦Ｔｗの場合は上記式（３）により位相差ｔｄｂを算出する（ステップＳＴ１６）。Ｔｗ＜ｔｓ≦２Ｔｗの場合は上記式（４）により位相差ｔｄｂを算出する（ステップＳＴ１７）。２Ｔｗ＜ｔｓ≦３Ｔｗの場合は上記式（５）により位相差ｔｄｂを算出する（ステップＳＴ１８）。そして、３Ｔｗ＜ｔｓ≦４Ｔｗの場合は上記式（６）により位相差ｔｄｂを算出する（ステップＳＴ１９）。
【００８２】
次いで、距離画像生成部３１は上記式（７）により距離情報Ｄ１を算出し（ステップＳＴ２０）、距離情報Ｄ１を各画素の画素値とする距離画像Ｓ１を生成する（ステップＳＴ２１）。そして、メディア制御部２６が距離画像Ｓ１の画像データを記録メディア２９に記録し（ステップＳＴ２２）、処理を終了する。
【００８３】
ここで、正弦波のように強度が時間的に変化するように変調された第１の測距光を使用する場合、比較的長いレンジにより測距を行うことができるが、変調の位相によっては反射光の強度が小さくなる。例えば図３に示すπ／２の位相においては、反射光の強度は非常に小さくなる。このため、第１の測距光を使用する場合、得られる受光信号のＳ／Ｎが外光の影響により低下してしまうことから、測距の精度はそれほど高いものではない。
【００８４】
一方、強度が一定のパルス状に強度変調された第２の測距光を使用する場合、反射光の強度は一定となるためＳ／Ｎの低下が少なく、精度良く測距を行うことができる。しかしながら、測距を行うことができるレンジがパルス幅により制限されてしまうため、ある限られた範囲のみしか測距を行うことができない。
【００８５】
第１の実施形態によれば、第１の測距光の反射光から得られる複数の受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａに基づいて、第２の測距光の反射光から得られる複数の第２の受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂのうち、距離情報Ｄ１の算出に使用する受光信号を選択するようにしたものである。ここで、複数の第１の受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａにより第１の測距光と第１の測距光の反射光との位相差ｔｄａが分かることとなる。位相差ｔｄａは被写体までの大まかな距離情報を算出できるものであり、位相差ｔｄａから求めた差分位相差ｔｓにより距離情報Ｄ１の算出に使用する第２の受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂを選択することにより、位相差ｔｄａにより求められる距離情報と同様の距離レンジにおいて、より正確に距離情報を算出することができる。したがって、第１の実施形態によれば、被写体までの距離に拘わらず正確に測距を行うことができる。
【００８６】
また、第１の測距光の反射光から最小位相差ｔ１を算出し、第２の測距光の発光開始位相を第１の測距光から最小位相差ｔ１早めて第２の測距光を発光し、最大位相差ｔ２と最小位相差ｔ１との差分位相差ｔｒに応じた複数の受光期間において第２の受光信号を取得しているため、第１の受光信号を取得した受光期間のすべてにおいて第２の受光信号を取得する必要がなくなる。例えば、第２の測距光の反射光をすべての位相において受光した場合、第１の測距光の受光と併せて８位相分、受光信号を取得する必要があるが、ｔｓ≦Ｔｗの場合およびＴｗ＜ｔｓ≦２Ｔｗの場合には、それぞれ６位相分および７位相分の受光信号のみを取得すればよいこととなる。
【００８７】
したがって、本実施形態によれば、被写体までの距離に拘わらず正確かつ高速に測距を行うことができる。
【００８８】
次いで、本発明の第２の実施形態について説明する。なお、第２の実施形態においては、第１の実施形態と行われる処理のみが異なり、装置の構成は第１の実施形態と同一であるため、構成についての詳細な説明は省略する。ここで、第２の測距光の反射光から得られる受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂは、２つの受光期間に跨るものであるが、反射光はパルス光であるため各受光期間における信号のレベルが異なるものとなる。例えば、図７に示すように、受光信号Ｆ１ｂ、Ｆ２ｂが２つの受光期間に跨る場合、受光信号Ｆ１ｂの方が信号レベルが大きくなる。第２の実施形態においては、信号レベルが大きい側の受光期間の受光信号を用いて位相差ｔｄｂを算出するようにした点が第１の実施形態と異なる。
【００８９】
図８は第２の実施形態において行われる処理を示すフローチャートである。なお、第２の実施形態においては、第１の実施形態におけるステップＳＴ１４以降の処理のみが異なるため、ここでは第１の実施形態におけるステップＳＴ１４以降の処理についてのみ説明する。ステップＳＴ１４に続いて、距離画像生成部３１が差分位相差ｔｓの範囲を判定する（ステップＳＴ３１）。
【００９０】
ｔｓ≦Ｔｗの場合、さらにＦ１ｂ≦Ｆ２ｂであるか否かを判定し（ステップＳＴ３２）、ステップＳＴ３２が肯定されると上記式（３）により位相差ｔｄｂを算出する（ステップＳＴ３３）。ステップＳＴ３２が否定されると、下記の式（８）により位相差ｔｄｂを算出する（ステップＳＴ３４）。
【００９１】
ｔｄｂ＝Ｔｗ×｛１−Ｆ１ｂ／（Ｆ１ｂ＋Ｆ２ｂ）｝            （８）
Ｔｗ＜ｔｓ≦２Ｔｗの場合、さらにＦ２ｂ≦Ｆ３ｂであるか否かを判定し（ステップＳＴ３５）、ステップＳＴ３５が肯定されると上記式（４）により位相差ｔｄｂを算出する（ステップＳＴ３６）。ステップＳＴ３５が否定されると、下記の式（９）により位相差ｔｄｂを算出する（ステップＳＴ３７）。
【００９２】
ｔｄｂ＝Ｔｗ＋Ｔｗ×｛１−Ｆ２ｂ／（Ｆ２ｂ＋Ｆ３ｂ）｝      （９）
２Ｔｗ＜ｔｓ≦３Ｔｗの場合、さらにＦ３ｂ≦Ｆ４ｂであるか否かを判定し（ステップＳＴ３８）、ステップＳＴ３８が肯定されると上記式（５）により位相差ｔｄｂを算出する（ステップＳＴ３９）。ステップＳＴ３８が否定されると、下記の式（１０）により位相差ｔｄｂを算出する（ステップＳＴ４０）。
【００９３】
ｔｄｂ＝２Ｔｗ＋Ｔｗ×｛１−Ｆ３ｂ／（Ｆ３ｂ＋Ｆ４ｂ）｝    （１０）
そして、３Ｔｗ＜ｔｓ≦４Ｔｗの場合、さらにＦ４ｂ≦Ｆ１ｂであるか否かを判定し（ステップＳＴ４１）、ステップＳＴ４１が肯定されると上記式（６）により位相差ｔｄｂを算出する（ステップＳＴ４２）。ステップＳＴ４２が否定されると、下記の式（１１）により位相差ｔｄｂを算出する（ステップＳＴ４３）。
【００９４】
ｔｄｂ＝３Ｔｗ＋Ｔｗ×｛１−Ｆ４ｂ／（Ｆ４ｂ＋Ｆ１ｂ）｝    （１１）
次いで、距離画像生成部３１は第１の実施形態におけるステップＳＴ２０以降の処理を行い、処理を終了する。
【００９５】
ここで、信号レベルが大きいということは外光によるノイズの影響が小さいことを意味する。したがって、信号レベルが大きい側の第２の受光信号を距離情報Ｄ１の算出に使用することにより、より正確に距離情報Ｄ１を算出することができる。
【００９６】
次いで、本発明の第３の実施形態について説明する。なお、第３の実施形態においては、第１の実施形態と行われる処理のみが異なり、装置の構成は第１の実施形態と同一であるため、構成についての詳細な説明は省略する。ここで、第１および第２の測距光の反射光には外光成分が含まれる。外光成分は図９（ａ），（ｂ）の斜線に示すように反射光に重畳されるため、受光信号は外光成分をも含むものとなっている。
【００９７】
第１の測距光の反射光の受光信号からの位相差ｔｄａの算出は、上記式（１）により行われるため、外光成分の影響は除去される。しかしながら、第２の測距光の反射光の受光信号からの位相差ｔｄｂの算出は、上記式（３）〜（６）により行われるため、外光成分の影響が含まれたものとなっている。第３の実施形態は外光成分の影響を除去して位相差ｔｄｂを算出するようにしたものである。
【００９８】
ここで、第１の測距光の反射光の１周期分の受光信号は、Ｆ１ａ＋Ｆ２ａ＋Ｆ３ａ＋Ｆ４ａである。また、第１の測距光の反射光の振幅Ａは、Ａ＝√｛（Ｆ１ａ−Ｆ３ａ）2＋（Ｆ２ａ−Ｆ４ａ）2｝により算出される。振幅Ａは、図９（ａ）に示すように、第１の測距光の反射光の１／４周期を一辺、外光成分を除く反射光の輝度の最大値を他の一辺とする長方形の積算値となるため、第１の測距光の反射光の１周期分の振幅Ａの平均値Ａｍは、Ａｍ＝（Ａ×４）／２となる。したがって、第１の測距光の反射光の１周期分の外光成分ｋ′は、ｋ′＝（Ｆ１ａ＋Ｆ２ａ＋Ｆ３ａ＋Ｆ４ａ）−（Ａ×４）／２により算出される。一方、各受光信号の位相は反射光の１／４周期であるため、外光成分ｋ′を１／４とすることにより、下記の式（１２）に示すように外光成分ｋを算出できる。
【００９９】
ｋ＝｛（Ｆ１ａ＋Ｆ２ａ＋Ｆ３ａ＋Ｆ４ａ）−（Ａ×４）／２｝／４    （１２）
距離画像生成部３１は、上記式（１２）により外光成分ｋを算出し、第２の測距光の反射光の受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂから外光成分ｋを減算し、これにより取得した受光信号Ｆ１ｂ′、Ｆ２ｂ′、Ｆ３ｂ′、Ｆ４ｂ′を用いて位相差ｔｄｂを算出する。
【０１００】
図１０は第３の実施形態において行われる処理を示すフローチャートである。なお、第３の実施形態においては、第１の実施形態におけるステップＳＴ９，ＳＴ１１，ＳＴ１３とステップＳＴ１４との間の処理のみが異なるため、ここでは第１の実施形態におけるステップＳＴ９，ＳＴ１１，ＳＴ１３とステップＳＴ１４との間の処理についてのみ説明する。
【０１０１】
ステップＳＴＳＴ９，ＳＴ１１，ＳＴ１３に続いて、距離画像生成部３１が上記式（１２）により、外光成分ｋを算出する（ステップＳＴ４１）。そして、受光信号Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂを外光成分ｋにより補正し（ステップＳＴ４２）、ステップＳＴ１４の処理に進む。
【０１０２】
なお、第３の実施形態においては、第１の実施形態におけるステップＳＴ１６，ＳＴ１７，ＳＴ１８，ＳＴ１９の処理は、外光成分ｋにより補正された受光信号Ｆ１ｂ′、Ｆ２ｂ′、Ｆ３ｂ′、Ｆ４ｂ′により行われることとなる。
【０１０３】
これにより、外光成分の影響を除去して、より精度良く距離画像を生成することができる。
【０１０４】
なお、上記第３の実施形態においては、第１の実施形態において外光成分を除去しているが、第２の実施形態においても同様に外光成分を除去することができることはもちろんである。
【０１０５】
また、上記第１から第３の実施形態においては、第１の測距光の変調周期における０の位相を基準としているが、０でない位相を基準として基準位相、基準位相からπ／２ずれた位相、基準位相からπずれた位相および基準位相から３π／２ずれた位相において反射光をそれぞれ受光するようにしてもよい。また、受光信号を取得する位相のずれは、π／２に限定されるものではない。
【０１０６】
また、上記第１から第３の実施形態においては、第１の測距光の変調周期における０、π／２、π、３π／２の４つの位相に対応する、第１の測距光の１周期の１／４の４つの受光期間Ｔｗにおいて受光信号Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａ、Ｆ１ｂ、Ｆ２ｂ、Ｆ３ｂ、Ｆ４ｂを取得しているが、測距光の変調周期における０、π／２、πの３つの位相に対応する、第１の測距光の１周期の１／２の３つの受光期間２Ｔｗにおいて受光信号を取得することによっても、位相差を算出することができる。以下、これを第４の実施形態として説明する。
【０１０７】
図１１は第４の実施形態における位相差の算出を説明するための図である。図１１に示すように、第４の実施形態においては、第１の測距光の変調周期における０、π／２、πの３つの位相において、変調周期の半分の受光期間２Ｔｗ反射光を受光するように受光素子の受光タイミングを制御する。なお、これにより取得される受光光量をＦ１ｃ、Ｆ２ｃ、Ｆ３ｃとする。
【０１０８】
なお、受光光量Ｆ１ｃは、測距光の変調周期の０〜πの期間の受光信号に、受光光量Ｆ２ｃはπ／２〜３π／２の期間の受光信号に、受光光量Ｆ３ｃはπ〜２πの期間の受光信号にそれぞれ対応するため、受光信号についても参照符号としてＦ１ｃ、Ｆ２ｃ、Ｆ３ｃを用いる。
【０１０９】
また、曲線Ｋ１における０〜π／２、π／２〜π、π〜３π／２、３π／２〜２πの位相において求めた曲線Ｋ２の受光光量は、上記第１の実施形態における受光光量Ｆ１ａ、Ｆ２ａ、Ｆ３ａ、Ｆ４ａに相当する。したがって、Ｆ１ｃ＝Ｆ１ａ＋Ｆ２ａ、Ｆ２ｃ＝Ｆ２ａ＋Ｆ３ａ、Ｆ３ｃ＝Ｆ３ａ＋Ｆ４ａとなるため、下記の関係が成立する。
【０１１０】
Ｆ２ｃ−Ｆ１ｃ＝Ｆ３ａ−Ｆ１ａ
Ｆ２ｃ−Ｆ３ｃ＝Ｆ２ａ−Ｆ４ａ
ここで位相差ｔｄａに相当する位相差ｔｄｃは上記式（１）により算出することができるため、上記関係を式（１）に代入すると、
ｔｄｃ＝ｔａｎ-1｛（Ｆ２ｃ−Ｆ１ｃ）／（Ｆ２ｃ−Ｆ３ｃ）｝   （１３）
となる。したがって、３つの位相において取得した受光信号Ｆ１ｃ、Ｆ２ｃ、Ｆ３ｃからも、式（１３）により位相差ｔｄａに相当する位相差ｔｄｃを算出することができる。
【０１１１】
なお、第４の実施形態において、差分位相差ｔｒの算出、第２の測距光の発光開始位相の設定は第１の実施形態と同様に行う。
【０１１２】
第２の受光素子の受光期間については、差分位相差ｔｒは第１の測距光の１周期未満の値となるため、第２の測距光の反射光は、第１の測距光の１周期に相当する期間において受光すればよいこととなる。したがって、差分位相差ｔｒに応じて第１の測距光の変調周期の０、π／２、πの位相のいずれの位相に相当する受光期間２Ｔｗにおいて受光をすればよいかが分かることとなる。
【０１１３】
すなわち、ｔｒ≦Ｔ／２（Ｔは第１の測距光の１周期）の場合は、第２の測距光の反射光の位相は０〜πにあるものとなるため、０およびπ／２の受光期間２Ｔｗにおいて反射光を受光すればよいこととなる。また、Ｔ／２＜ｔｒの場合は、第２の測距光の反射光の位相は０〜２πにあるものとなるため、０，π／２およびπのすべての受光期間２Ｔｗにおいて反射光を受光すればよいこととなる。
【０１１４】
撮像部２の撮像制御部１９は、このようにして差分位相差ｔｒに応じて、第２の測距光の反射光の受光期間２Ｔｗを決定する。なお、第１の測距光の変調周期の０、π／２、πの位相に相当する受光期間２Ｔｗにおいて、第２の測距光の反射光を受光することにより得られる受光信号を受光信号Ｆ１ｄ、Ｆ２ｄ、Ｆ３ｄとする。
【０１１５】
また、距離画像生成部３１は、位相差ｔｄｃと最小位相差ｔ１との差分位相差ｔｓ（ｔｓ＝ｔｄｃ−１）を算出し、差分位相差ｔｓに基づいて、受光信号Ｆ１ｄ、Ｆ２ｄ、Ｆ３ｂｄのうち、位相差ｔｄｄの算出に使用する受光信号を選択する。すなわち、差分位相差ｔｓがＴｗ以内であれば、第２の測距光の反射光は第１の測距光の０〜πの位相の間に存在することから、受光信号Ｆ１ｄ、Ｆ２ｄを選択する。そして下記の式（１４）により位相差ｔｄｄを算出する。
【０１１６】
ｔｄｄ＝Ｔｗ×Ｆ２ｄ／Ｆ１ｄ                        （１４）
差分位相差ｔｓがＴｗより大きく２Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光のπ／２〜３π／２の位相の間に存在することから、受光信号Ｆ１ｄ、Ｆ２ｄを選択する。そして下記の式（１５）により位相差ｔｄｄを算出する。
【０１１７】
ｔｄｄ＝Ｔｗ＋Ｔｗ×（１−Ｆ１ｄ／Ｆ２ｄ）          （１５）
差分位相差ｔｓが２Ｔｗより大きく３Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光のπ〜２π（すなわち０）の位相の間に存在することから、受光信号Ｆ２ｄ、Ｆ３ｄを選択する。そして下記の式（１６）により位相差ｔｄｄを算出する。
【０１１８】
ｔｄｄ＝２Ｔｗ＋Ｔｗ×（１−Ｆ２ｄ／Ｆ３ｄ）        （１６）
さらに、差分位相差ｔｓが３Ｔｗより大きく４Ｔｗ以内であれば、第２の測距光の反射光は第１の測距光の３π／２〜π／２（次の周期）の位相の間に存在することから、受光信号Ｆ３ｄ、Ｆ１ｄを選択する。そして下記の式（１７）により位相差ｔｄｄを算出する。
【０１１９】
ｔｄｄ＝３Ｔｗ＋Ｔｗ×Ｆ１ｄ／（Ｆ３ｄ＋Ｆ１ｄ）    （１７）
そして、位相差ｔｄｄを用いて上記式（７）により受光素子毎に被写体までの距離を表す距離情報Ｄ１を算出する。
【０１２０】
なお、差分位相差がｔｒ≦Ｔ／２の場合には、２つの受光信号Ｆ１ｄ、Ｆ２ｄのみしか取得されないが、ｔｓ≦２Ｔｗとなるため、必ず式（１４）、（１５）により位相差ｔｄｄが算出される。
【０１２１】
次いで、第４の実施形態において行われる処理について説明する。図１２および図１３は第４の実施形態において行われる処理を示すフローチャートである。撮影指示が行われることによりＣＰＵ３２が処理を開始し、撮像部２がＣＰＵ３２からの指示により、測距光源１６から第１の測距光を被写体に向けて発光し（ステップＳＴ５１）、さらに第１の測距光の被写体による反射光を第１の測距光における連続した０、π／２、πの位相において受光して、３つの受光信号Ｆ１ｃ、Ｆ２ｃ、Ｆ３ｃを取得する（ステップＳＴ５２）。次いで、距離画像生成部３１が、３つの受光信号Ｆ１ｃ、Ｆ２ｃ、Ｆ３ｃから上記式（１３）により、位相差ｔｄｃを受光素子単位で算出する（ステップＳＴ５３）。さらに、距離画像生成部３１は位相差ｔｄｃの最大位相差ｔ２と最小位相差ｔ１との差分位相差ｔｒを算出する（ステップＳＴ５４）。
【０１２２】
そして、撮像部２の撮像制御部１９が、第２の測距光の発光開始位相を第１の測距光よりも最小位相差ｔ１分早くなるように設定し（ステップＳＴ５５）、差分位相差ｔｒの範囲を判定する（ステップＳＴ５６）。
【０１２３】
ｔｒ≦Ｔ／２の場合は、撮像制御部１９は、位相が０およびπ／２の受光期間２Ｔｗにおいて反射光を受光するよう、ＣＣＤ１３の各受光素子の受光期間を設定する（ステップＳＴ５７）。そして、測距光源１６から第２の測距光を被写体に向けて発光し（ステップＳＴ５８）、さらに第２の測距光の被写体による反射光を、設定した受光期間に対応する０、π／２の位相において受光して、２つの受光信号Ｆ１ｄ、Ｆ２ｄを取得する（ステップＳＴ５９）。
【０１２４】
また、Ｔ／２＜ｔｒの場合は、撮像制御部１９は、位相が０、π／２およびπの受光期間２Ｔｗにおいて反射光を受光するよう、ＣＣＤ１３の各受光素子の受光期間を設定する（ステップＳＴ６０）。そして、測距光源１６から第２の測距光を被写体に向けて発光し（ステップＳＴ５８）、さらに第２の測距光の被写体による反射光を、設定した受光期間に対応する０、π／２、πの位相において受光して、３つの受光信号Ｆ１ｄ、Ｆ２ｄ、Ｆ３ｄを取得する（ステップＳＴ６１）。
【０１２５】
続いて、距離画像生成部３１が、位相差ｔｄｃと最小位相差ｔ１との差分位相差ｔｓを算出し（ステップＳＴ６２）、差分位相差ｔｓの範囲を判定する（ステップＳＴ６３）。
【０１２６】
ｔｓ≦Ｔｗの場合は上記式（１４）により位相差ｔｄｄを算出する（ステップＳＴ６４）。Ｔｗ＜ｔｓ≦２Ｔｗの場合は上記式（１５）により位相差ｔｄｄを算出する（ステップＳＴ６５）。２Ｔｗ＜ｔｓ≦３Ｔｗの場合は上記式（１６）により位相差ｔｄｄを算出する（ステップＳＴ６６）。そして、３Ｔｗ＜ｔｓ≦４Ｔｗの場合は上記式（１７）により位相差ｔｄｄを算出する（ステップＳＴ６７）。
【０１２７】
次いで、距離画像生成部３１は上記式（７）により距離情報Ｄ１を算出し（ステップＳＴ６８）、距離情報Ｄ１を各画素の画素値とする距離画像Ｓ１を生成する（ステップＳＴ６９）。そして、メディア制御部２６が距離画像Ｓ１の画像データを記録メディア２９に記録し（ステップＳＴ７０）、処理を終了する。
【０１２８】
なお、上記第４の実施形態においては、第３の実施形態と同様に、受光信号Ｆ１ｃ、Ｆ２ｃ、Ｆ３ｃから外光成分ｋを算出し、受光信号Ｆ１ｄ，Ｆ２ｄ，Ｆ３ｄを外光成分ｋにより補正して位相差ｔｄｄを算出するようにしてもよい。この場合、外光成分ｋは下記の式（１８）により算出される。
【０１２９】
ｋ＝（Ｆ１ｃ＋Ｆ３ｃ）／２
−√｛（Ｆ１ｃ−Ｆ２ｃ）2＋（Ｆ２ｃ−Ｆ３ｃ）2｝        （１８）
なお、上記各実施形態においては、第１の測距光を正弦波により変調しているが、三角波、パルス波等、一定の周期で変調するものであれば、どのように変調を行ってもよい。
【０１３０】
また、上記各実施形態においては、測距装置１内において距離画像を生成しているが、距離画像生成部３１を装置１外に設け、入出力部３３から受光信号を外部の距離画像生成部３１に出力して距離画像を生成するようにしてもよい。
【０１３１】
以上、本発明の実施形態に係る測距装置について説明したが、コンピュータを、上記の距離画像生成部３１に対応する手段として機能させ、図５，６，８，１０，１２，１３に示すような処理を行わせるプログラムも、本発明の実施形態の１つである。また、そのようなプログラムを記録したコンピュータ読取り可能な記録媒体も、本発明の実施形態の１つである。
【図面の簡単な説明】
【０１３２】
【図１】第１の実施形態による測距装置の構成を示す概略ブロック図
【図２】測距光源の構成の構成を示す概略ブロック図
【図３】第１の実施形態における位相差の算出を説明するための図
【図４】受光期間の設定を説明するための図
【図５】第１の実施形態において行われる処理を示すフローチャート（その１）
【図６】第１の実施形態において行われる処理を示すフローチャート（その２）
【図７】２つの受光期間に跨る受光信号を示す図
【図８】第２の実施形態において行われる処理を示すフローチャート
【図９】外光成分を説明するための図
【図１０】第３の実施形態において行われる処理を示すフローチャート
【図１１】第４の実施形態における位相差の算出を説明するための図
【図１２】第４の実施形態において行われる処理を示すフローチャート（その１）
【図１３】第４の実施形態において行われる処理を示すフローチャート（その２）
【符号の説明】
【０１３３】
１    測距装置
２    撮像部
１３    ＣＣＤ
１６    測距光源
１９    撮像制御部
３１    距離画像生成部
３２    ＣＰＵ
【図１】
0004955508.tif 000002
【図２】
0004955508.tif 000003
【図３】
0004955508.tif 000004
【図４】
0004955508.tif 000005
【図５】
0004955508.tif 000006
【図６】
0004955508.tif 000007
【図７】
0004955508.tif 000008
【図８】
0004955508.tif 000009
【図９】
0004955508.tif 000010
【図１０】
0004955508.tif 000011
【図１１】
0004955508.tif 000012
【図１２】
0004955508.tif 000013
【図１３】
0004955508.tif 000014