(57)【要約】【課題】状況に応じてメモリリソースを効率的に利用する。【解決手段】実施形態に係る測距装置は、画素モードを保持する制御レジスタと、フォトンの入射を検出する複数の受光素子が配列するアレイ部と、前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、前記複数の受光素子から読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリとを備え、前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズの領域が各画素に割り当てられ、前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズの領域が各画素に割り当てられる。【選択図】図６
2020091117.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、
それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、
前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、
前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、
前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリと、
を備え、
各画素は、前記複数の受光素子のうちの１つ以上の受光素子で構成され、
前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズの領域が各画素に対して割り当てられ、
前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズの領域が各画素に対して割り当てられる
測距装置。
【請求項２】
前記画素値生成部は、
前記複数の受光素子それぞれから出力された前記検出信号の数を第１所定数の前記受光素子ごとに集計して第１画素値を出力する加算部と、
前記加算部から出力された前記第１画素値に基づいて各画素の前記画素値を出力する可変並列加算部と、
を含み、
前記可変並列加算部は、前記制御レジスタに前記第１画素モードが保持されている場合、前記第１画素値をそのまま各画素の前記画素値として出力し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記第１画素値を加算した値を各画素の前記画素値として出力する
請求項１に記載の測距装置。
【請求項３】
前記アレイ部における前記複数の受光素子は、それぞれ前記第１所定数の受光素子で構成された複数のマクロ画素にグループ化されており、
前記複数のマクロ画素は、それぞれ第２所定数の前記マクロ画素で構成された第３所定数の画素グループにグループ化されており、
前記可変並列加算部は、前記制御レジスタに前記第２画素モードが保持されている場合、同一の前記画素グループに属する少なくとも２つのマクロ画素から取得された前記少なくとも２つの第１画素値を加算して各画素の前記画素値を算出する
請求項２に記載の測距装置。
【請求項４】
前記可変並列加算部は、前記制御レジスタに前記第２画素モードが保持されている場合、前記第１画素値を加算して得られた前記画素値を、当該加算の対象とした前記第１画素値の数と同じ数、出力する請求項３に記載の測距装置。
【請求項５】
前記メモリは、前記第１所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
前記制御レジスタに前記第１画素モードが保持されている場合、１つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納する
請求項２に記載の測距装置。
【請求項６】
前記メモリは、前記第１所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
前記制御レジスタに前記第１画素モードが保持されている場合、１つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、
前記可変並列加算部から出力された同じ値を持つ前記画素値は、１つの前記画素の前記ヒストグラムを格納する前記少なくとも２つの前記メモリ領域のうち、互いに異なる前記メモリ領域に格納される
請求項４に記載の測距装置。
【請求項７】
前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第３所定数とし、列方向を前記第２所定数とした画素値行列として出力し、
前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
請求項３に記載の測距装置。
【請求項８】
前記メモリは、前記第３所定数の第１メモリよりなり、
各第１メモリは、前記第２所定数の前記メモリ領域を含み、
前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第３所定数とし、列方向を前記第２所定数とした画素値行列として出力し、
前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
請求項６に記載の測距装置。
【請求項９】
前記メモリの１つのメモリアドレスは、前記ヒストグラムの１つのＢＩＮに対応し、
前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を前記メモリのメモリアドレス順に当該メモリに書き込むことで前記ヒストグラムを作成するヒストグラム生成部をさらに備える請求項１に記載の測距装置。
【請求項１０】
前記ヒストグラム生成部は、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を、書込み先となる前記メモリアドレスに既に格納されている値に加算する請求項９に記載の測距装置。
【請求項１１】
前記アレイ部の画角の少なくとも一部を含む範囲にパルス状のレーザ光を出射する発光部をさらに備え、
前記ヒストグラム生成部は、前記制御レジスタに第１画素モードが保持されている場合、第１サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成し、前記制御レジスタに第２画素モードが保持されている場合、前記第１サンプリング回数とは異なる第２サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成する
請求項９に記載の測距装置。
【請求項１２】
前記メモリに格納されている前記ヒストグラムに基づいて物体までの距離を推定又は算出する距離推定／算出部をさらに備える請求項１に記載の測距装置。
【請求項１３】
前記受光素子は、ＳＰＡＤ（Single Photon Avalanche Diode）である請求項１に記載の測距装置。
【請求項１４】
前記第２画素モードの測距範囲は、前記第１画素モードの測距範囲よりも長く、
前記第１画素モードの解像度は、前記第１画素モードの解像度よりも高い
請求項１に記載の測距装置。
【請求項１５】
前記複数の受光素子が２次元格子状に配列するフラッシュ型である請求項１に記載の測距装置。
【請求項１６】
前記アレイ部に入射する光を走査する走査部をさらに備える請求項１に記載の測距装置。
【請求項１７】
複数の画素モードのうちの何れかを設定値として制御レジスタに保持させ、
複数の受光素子それぞれから所定のサンプリング周期で読み出された検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成し、
前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとにメモリに格納する
ことを含み、
各画素は、前記複数の受光素子のうちの１つ以上の受光素子で構成され、
前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズの領域が各画素に対して割り当てられ、
前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズの領域が各画素に対して割り当てられる
測距方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、測距装置及び測距方法に関する。
【背景技術】
【０００２】
近年、ＴｏＦ（Time-of-Flight）法により距離計測を行う距離画像センサ（以下、ＴｏＦセンサという）が注目されている。例えば、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）半導体集積回路技術を用いて作成された、平面的に配置する複数のＳＰＡＤ（Single Photon Avalanche Diode）を利用して対象物までの距離を計測するＴｏＦセンサが存在する。
【０００３】
ＳＰＡＤを利用したＴｏＦセンサでは、光源が発光してからその反射光がＳＰＡＤに入射までの時間（以下、飛行時間という）を物理量として複数回計測し、その計測結果から生成された物理量のヒストグラムに基づいて、対象物までの距離が特定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０９１３７８号公報
【特許文献２】特開２０１６−１７６７５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ヒストグラムのＢＩＮ数は、光速度一定の法則から、対象物までの距離に相当する。そのため、近くを測距対象とする場合と遠くまでを測距対象とする場合とでは、必要十分なヒストグラムのＢＩＮ数が異なる。すなわち、近くを測距対象とする場合には少ないＢＩＮ数で十分である一方、より遠くの物体までを測距する場合には、より多くのＢＩＮ数が必要となる。
【０００６】
また、ヒストグラムのＢＩＮ数は、ヒストグラムを格納するメモリ領域のサイズ（深さともいう）に対応している。したがって、近くを測距対象とする場合には浅いメモリ領域で十分である一方、より遠くまでを測距する場合には、より深いメモリ領域が要求される。
【０００７】
しかしながら、従来では、測距対象の範囲に関わらず、一定のサイズのメモリ領域が使用されていた。そのため、近くを測距する場合など、深いメモリ領域を必要としない場合には、実質的に使用していないメモリ領域が発生し、メモリリソースの効率的な利用がなされていないという課題が存在した。
【０００８】
そこで本開示では、状況に応じてメモリリソースを効率的に利用することが可能な測距装置及び測距方法を提案する。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本開示に係る一形態の測距装置は、複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリとを備え、各画素は、前記複数の受光素子のうちの１つ以上の受光素子で構成され、前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズの領域が各画素に対して割り当てられ、前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズの領域が各画素に対して割り当てられる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る測距装置としてのＴｏＦセンサの概略構成例を示すブロック図である。
【図２】第１の実施形態に係る受光部の概略構成例を示すブロック図である。
【図３】第１の実施形態に係るＳＰＡＤアレイの概略構成例を示す模式図である。
【図４】第１の実施形態に係るＳＰＡＤ画素の概略構成例を示す回路図である。
【図５】第１の実施形態に係る加算部のより詳細な構成例を示すブロック図である。
【図６】第１の実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。
【図７】第１の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である（第１画素モード）。
【図８】第１の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である（第２画素モード）。
【図９】第１の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である（第３画素モード）。
【図１０】第１の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である（第４画素モード）。
【図１１】第１の実施形態に係る行列転置部の概略構成例を示すブロック図である。
【図１２】第１の実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を説明するためのブロック図である。
【図１３】第１の実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を１つのヒストグラム生成部に着目して説明するためのブロック図である（第１画素モード）。
【図１４】第１の実施形態に係る発光部の１回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである（第１画素モード）。
【図１５】第１の実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を説明するためのブロック図である（第２画素モード）。
【図１６】第１の実施形態に係る発光部の１回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである（第２画素モード）。
【図１７】第１の実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を説明するためのブロック図である（第３画素モード）。
【図１８】第１の実施形態に係る発光部の１回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである（第３画素モード）。
【図１９】第１の実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を説明するためのブロック図である（第４画素モード）。
【図２０】第１の実施形態に係る発光部の１回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである（第４画素モード）。
【図２１】第１の実施形態に係るヒストグラム生成部の動作を説明するための図である。
【図２２】第１の実施形態に係るＴｏＦセンサの概略動作例を示すフローチャートである。
【図２３】図２２のステップＳ１５に示す第１ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
【図２４】図２２のステップＳ１９に示す第２ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
【図２５】図２２のステップＳ２３に示す第３ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
【図２６】図２２のステップＳ２６に示す第４ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
【図２７】第１の実施形態に係る発光部の１回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
【図２８】第１の実施形態に係る発光部の２回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。
【図２９】第１の実施形態に係る発光部の２回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
【図３０】第１の実施形態に係る発光部の３回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。
【図３１】第１の実施形態に係る発光部の３回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
【図３２】第２の実施形態に係る測距装置としてのＴｏＦセンサの概略構成例を示す模式図である。
【図３３】車両制御システムの概略的な構成の一例を示すブロック図である。
【図３４】車外情報検出部及び撮像部の設置位置の一例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に、本開示の一実施形態について図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
【００１２】
また、以下に示す項目順序に従って本開示を説明する。
１．はじめに
２．第１の実施形態
２．１  測距装置（ＴｏＦセンサ）
２．２  受光部
２．３  ＳＰＡＤアレイ
２．４  ＳＰＡＤ画素
２．５  ＳＰＡＤ画素の概略動作例
２．６  加算部
２．７  サンプリング周期
２．８  ヒストグラム処理部
２．８．１  画素数可変並列加算部
２．８．１．１  画素モード＝０（第１画素モード）
２．８．１．２  画素モード＝１（第２画素モード）
２．８．１．３  画素モード＝２（第３画素モード）
２．８．１．４  画素モード＝３（第４画素モード）
２．８．２  行列転置部
２．８．３  ヒストグラム生成部の概略構成例
２．８．３．１  第１画素モード（画素モード＝０）
２．８．３．１．１  １回のサンプリングに実行する動作
２．８．３．１．２  １回の発光に対して実行する動作
２．８．３．２  第２画素モード（画素モード＝１）
２．８．３．２．１  １回のサンプリングに実行する動作
２．８．３．２．２  １回の発光に対して実行する動作
２．８．３．３  第３画素モード（画素モード＝２）
２．８．３．３．１  １回のサンプリングに実行する動作
２．８．３．３．２  １回の発光に対して実行する動作
２．８．３．４  第４画素モード（画素モード＝３）
２．８．３．４．１  １回のサンプリングに実行する動作
２．８．３．４．２  １回の発光に対して実行する動作
２．９  ヒストグラム処理の回路例
２．１０  動作例
２．１０．１  第１ヒストグラム生成処理
２．１０．２  第２ヒストグラム生成処理
２．１０．３  第３ヒストグラム生成処理
２．１０．４  第４ヒストグラム生成処理
２．１１  ヒストグラム作成の具体例
２．１２  距離推定／算出部
２．１３  作用・効果
３．第２の実施形態
３．１  測距装置（ＴｏＦセンサ）
３．２  作用・効果
４．応用例
【００１３】
１．はじめに
上述したように、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、要求されるメモリ領域の深さが異なるという課題が存在する。
【００１４】
また、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、ＴｏＦセンサで取得した測距画像に対して求められる必要十分な解像度が異なるという課題も存在する。
【００１５】
例えば、ＳＰＡＤを利用したＴｏＦセンサは、複数のＳＰＡＤが２次元格子状に配列するＳＰＡＤアレイを備えている。ＳＰＡＤアレイの複数のＳＰＡＤは、それぞれが１つ以上のＳＰＡＤよりなる複数のマクロ画素にグループ化される。１つのマクロ画素は、測距画像における１つの画素に対応する。したがって、１つのマクロ画素を構成するＳＰＡＤの数とその領域の形状とを決めると、ＴｏＦセンサ全体のマクロ画素数が決定され、それにより、測距画像の解像度が決定されることとなる。そこで例えば、１マクロ画素のＳＰＡＤ数を小さい値とすることで、ＴｏＦセンサが取得する距離画像の解像度を上げることが可能となる。
【００１６】
しかしながら、１マクロ画素のＳＰＡＤ数を小さい値とすると、１マクロ画素から得られる画素値のダイナミックレンジが狭くなり、遠くの物体からの弱い反射光が略一定の強度の外乱光（背景光ともいう）に埋もれ、反射光と外乱光との弁別が困難になるという課題が発生する。
【００１７】
そのため、遠方に存在する物体や反射率の低い物体の検出性能を高めるためには、１マクロ画素のＳＰＡＤ数を大きくして画素値のダイナミックレンジを広げることが求められる。
【００１８】
このように、ＳＰＡＤを利用したＴｏＦセンサに対しては、１マクロ画素のＳＰＡＤ数を小さくして高解像度を実現しつつ、小さいＢＩＮ数でメモリを使用する使用形態と、１マクロ画素のＳＰＡＤ数を大きくして広いダイナミックレンジを実現しつつ、大きいＢＩＮ数でメモリを使用する使用形態との、相反する使用形態を単一のＳＰＡＤアレイで実現させたいという要望が存在する。
【００１９】
そこで以下の実施形態では、解像度とＢＩＮ数とを変更可能とすることで、状況に応じたメモリリソースの効率的な利用を実現するとともに、状況に応じた解像度とダイナミックレンジとのリバランスを取ることが可能な測距装置及び測距方法について、具体例を挙げて説明する。
【００２０】
２．第１の実施形態
まず、第１の実施形態について、以下に図面を参照して詳細に説明する。なお、本実施形態では、ＳＰＡＤ画素が２次元格子状に配列して一度に広角の測距画像を取得する、フラッシュ型と称される測距装置について、例を挙げて説明する。
【００２１】
２．１  測距装置（ＴｏＦセンサ）
図１は、本実施形態に係る測距装置としてのＴｏＦセンサの概略構成例を示すブロック図である。図１に示すように、ＴｏＦセンサ１は、制御部１１と、制御レジスタ１２と、発光部１３と、受光部１４と、加算部１５と、ヒストグラム処理部１６と、距離推定／算出部１８と、外部インタフェース（Ｉ／Ｆ）１９とを備える。
【００２２】
制御部１１は、例えば、ＣＰＵ（Central Processing Unit）などの情報処理装置で構成され、ＴｏＦセンサ１の各部を制御する。その際、制御部１１は、制御レジスタ１２に設定値として格納されている画素モードに応じて、ＴｏＦセンサ１の各部を制御する。
【００２３】
ＴｏＦセンサ１は、ＴｏＦセンサ１の解像度や測距範囲等が異なる複数の画素モードを備えており、外部のホスト８０等からの指示や制御部１１の判断に基づき、画素モードが切り替えられてよい。この画素モードは、例えば、外部Ｉ／Ｆ１９を介してホスト８０等から入力された値を制御部１１が制御レジスタ１２に画素モードに対応した設定値を登録することで設定されてもよいし、制御部１１が適宜判断して制御レジスタ１２内の画素モードの設定値を変更することで設定されてもよい。
【００２４】
ホスト８０は、例えば、ＴｏＦセンサ１が自動車等に実装される場合には、自動車等に搭載されているＥＣＵ（Engine Control Unit）などであってよい。また、ＴｏＦセンサ１が家庭内ペットロボットなどの自律移動ロボットやロボット掃除機や無人航空機や追従運搬ロボットなどの自律移動体に搭載されている場合には、ホスト８０は、その自律移動体を制御する制御装置等であってよい。
【００２５】
制御レジスタ１２は、例えば、ＴｏＦセンサ１の画素モードを設定値として保持する。ＴｏＦセンサ１の画素モードには、その詳細については後述において例を挙げて説明するが、本説明では、画素モード０から画素モード３が存在する場合を例示する。例えば、画素モード０は、画素モード０〜３のうちで最も解像度が高い一方、測距範囲が狭い画素モードであり、画素モード３は、画素モード０〜３のうちで最も測距範囲が広い一方、解像度が低い画素モードであり、画素モード１及び２は、画素モード０と画素モード３との間の解像度及び測距範囲の画素モードであるとする。
【００２６】
発光部１３は、例えば、１つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光Ｌ１を所定周期（発光周期ともいう）で出射する。発光部１３は、少なくとも、受光部１４の画角以上の角度範囲に向けてレーザ光Ｌ１を出射する。また、発光部１３は、例えば、１ＧＨｚ（ギガヘルツ）の周期で、１ｎｓ（ナノ秒）の時間幅のレーザ光Ｌ１を出射する。発光部１３から出射したレーザ光Ｌ１は、例えば、測距範囲内に物体９０が存在する場合には、この物体９０で反射して、反射光Ｌ２として、受光部１４に入射する。
【００２７】
受光部１４は、その詳細については後述するが、例えば、２次元格子状に配列した複数のＳＰＡＤ画素を備え、発光部１３の発光後にフォトンの入射を検出したＳＰＡＤ画素の数（以下、検出数という）に関する情報（例えば、後述における検出信号の数に相当）を出力する。受光部１４は、例えば、発光部１３の１回の発光に対し、所定のサンプリング周期でフォトンの入射を検出してその検出数を出力する。
【００２８】
加算部１５は、受光部１４から出力された検出数を複数のＳＰＡＤ画素（例えば、後述する１又は複数のマクロ画素に相当）ごとに集計し、その集計値を画素値としてヒストグラム処理部１６へ出力する。
【００２９】
ヒストグラム処理部１６は、１又は複数のマクロ画素ごとに得られた画素値から、横軸を飛行時間（例えば、サンプリングの順序を示す番号（以下、サンプリング番号という）に相当）とし、縦軸を累積画素値としたヒストグラムを作成する。ヒストグラムは、例えば、ヒストグラム処理部１６内のメモリ１７に作成される。このメモリ１７には、例えば、ＳＲＡＭ（Static Random Access Memory）等を用いることができる。ただし、これに限定されず、ＤＲＡＭ（Dynamic RAM）など、種々のメモリをメモリ１７として使用することが可能である。
【００３０】
距離推定／算出部１８は、ヒストグラム処理部１６が作成したヒストグラムから累積画素値がピークとなる際の飛行時間を特定する。また、距離推定／算出部１８は、特定した飛行時間に基づいて、ＴｏＦセンサ１又はこれを搭載するデバイスから測距範囲内に存在する物体９０までの距離を推定又は算出する。そして、距離推定／算出部１８は、推定又は算出した距離の情報を、例えば、外部Ｉ／Ｆ１９を介してホスト８０等に出力する。
【００３１】
２．２  受光部
図２は、本実施形態に係る受光部の概略構成例を示すブロック図である。図２に示すように、受光部１４は、タイミング制御回路１４１と、駆動回路１４２と、ＳＰＡＤアレイ１４３と、出力回路１４４とを備える。
【００３２】
ＳＰＡＤアレイ１４３は、２次元格子状に配列する複数のＳＰＡＤ画素２０を備える。複数のＳＰＡＤ画素２０に対しては、列ごとに画素駆動線ＬＤ（図面中の上下方向）が接続され、行ごとに出力信号線ＬＳ（図面中の左右方向）が接続される。画素駆動線ＬＤの一端は、駆動回路１４２の各列に対応した出力端に接続され、出力信号線ＬＳの一端は、出力回路１４４の各行に対応した入力端に接続される。
【００３３】
駆動回路１４２は、シフトレジスタやアドレスデコーダなどを含み、ＳＰＡＤアレイ１４３の各ＳＰＡＤ画素２０を、全画素同時や列単位等で駆動する。そこで、駆動回路１４２は、少なくとも、ＳＰＡＤアレイ１４３内の選択列における各ＳＰＡＤ画素２０に、後述するクエンチ電圧Ｖ＿ＱＣＨを印加する回路と、選択列における各ＳＰＡＤ画素２０に、後述する選択制御電圧Ｖ＿ＳＥＬを印加する回路とを含む。そして、駆動回路１４２は、読出し対象の列に対応する画素駆動線ＬＤに選択制御電圧Ｖ＿ＳＥＬを印加することで、フォトンの入射を検出するために用いるＳＰＡＤ画素２０を列単位で選択する。
【００３４】
駆動回路１４２によって選択走査された列の各ＳＰＡＤ画素２０から出力される信号（検出信号という）Ｖ＿ＯＵＴは、出力信号線ＬＳの各々を通して出力回路１４４に入力される。出力回路１４４は、各ＳＰＡＤ画素２０から入力された検出信号Ｖ＿ＯＵＴを、後述するマクロ画素ごとに設けられた加算部１５（図１参照）へ出力する。
【００３５】
タイミング制御回路１４１は、各種のタイミング信号を生成するタイミングジェネレータ等を含み、タイミングジェネレータで生成された各種のタイミング信号を基に、駆動回路１４２及び出力回路１４４を制御する。
【００３６】
２．３  ＳＰＡＤアレイ
図３は、本実施形態に係るＳＰＡＤアレイの概略構成例を示す模式図である。図３に示すように、ＳＰＡＤアレイ１４３は、例えば、複数のＳＰＡＤ画素２０が２次元格子状に配列した構成を備える。複数のＳＰＡＤ画素２０は、行及び／又は列方向に配列する所定数ずつのＳＰＡＤ画素２０で構成された複数のマクロ画素３０にグループ化されている。各マクロ画素３０の最外周に位置するＳＰＡＤ画素４０の外側の縁を結んだ領域の形状は、所定の形状（例えば、矩形）をなしている。
【００３７】
また、列方向に配列する複数のマクロ画素３０は、所定数ずつの複数の画素グループ３１に区切られている。図３に示す例では、列方向に配列する＃０〜＃４７の計４８つのマクロ画素３０が、ｊ＝０〜６の計６つの画素グループ３１に区切られている。したがって、各画素グループ３１には、ｉ＝０〜７の計８つのマクロ画素３０が属している。
【００３８】
２．４  ＳＰＡＤ画素
図４は、本実施形態に係るＳＰＡＤ画素の概略構成例を示す回路図である。図４に示すように、ＳＰＡＤ画素２０は、受光素子としてのフォトダイオード２１と、フォトダイオード２１にフォトンが入射したことを検出する読出し回路２２とを備える。フォトダイオード２１は、そのアノードとカソードとの間に降伏電圧（ブレークダウン電圧）以上の逆バイアス電圧Ｖ＿ＳＰＡＤが印加されている状態でフォトンが入射すると、アバランシェ電流を発生する。
【００３９】
読出し回路２２は、クエンチ抵抗２３と、デジタル変換器２５と、インバータ２６と、バッファ２７と、選択トランジスタ２４とを備える。クエンチ抵抗２３は、例えば、Ｎ型のＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor。以下、ＮＭＯＳトランジスタという）で構成され、そのドレインがフォトダイオード２１のアノードに接続され、そのソースが選択トランジスタ２４を介して接地されている。また、クエンチ抵抗２３を構成するＮＭＯＳトランジスタのゲートには、当該ＮＭＯＳトランジスタをクエンチ抵抗として作用させるために予め設定されているクエンチ電圧Ｖ＿ＱＣＨが、駆動回路１４２から画素駆動線ＬＤを介して印加される。
【００４０】
本実施形態において、フォトダイオード２１はＳＰＡＤである。ＳＰＡＤは、そのアノードとカソードとの間に降伏電圧（ブレークダウン電圧）以上の逆バイアス電圧が印加されるとガイガーモードで動作するアバランシェフォトダイオードであり、１つのフォトンの入射を検出可能である。
【００４１】
デジタル変換器２５は、抵抗２５１とＮＭＯＳトランジスタ２５２とを備える。ＮＭＯＳトランジスタ２５２は、そのドレインが抵抗２５１を介して電源電圧ＶＤＤに接続され、そのソースが接地されている。また、ＮＭＯＳトランジスタ２５２のゲートには、フォトダイオード２１のアノードとクエンチ抵抗２３との接続点Ｎ１の電圧が印加される。
【００４２】
インバータ２６は、Ｐ型のＭＯＳＦＥＴ（以下、ＰＭＯＳトランジスタという）２６１とＮＭＯＳトランジスタ２６２とを備える。ＰＭＯＳトランジスタ２６１は、そのドレインが電源電圧ＶＤＤに接続され、そのソースがＮＭＯＳトランジスタ２６２のドレインに接続されている。ＮＭＯＳトランジスタ２６２は、そのドレインがＰＭＯＳトランジスタ２６１のソースに接続され、そのソースが接地されている。ＰＭＯＳトランジスタ２６１のゲート及びＮＭＯＳトランジスタ２６２のゲートには、それぞれ抵抗２５１とＮＭＯＳトランジスタ２５２のドレインとの接続点Ｎ２の電圧が印加される。インバータ２６の出力は、バッファ２７に入力される。
【００４３】
バッファ２７は、インピーダンス変換のための回路であり、インバータ２６から出力信号を入力すると、その入力した出力信号をインピーダンス変換し、検出信号Ｖ＿ＯＵＴとして出力する。
【００４４】
選択トランジスタ２４は、例えば、ＮＭＯＳトランジスタであり、そのドレインがクエンチ抵抗２３を構成するＮＭＯＳトランジスタのソースに接続され、そのソースが接地されている。選択トランジスタ２４は、駆動回路１４２に接続されており、選択トランジスタ２４のゲートに駆動回路１４２からの選択制御電圧Ｖ＿ＳＥＬが画素駆動線ＬＤを介して印加されると、オフ状態からオン状態に変化する。
【００４５】
２．５  ＳＰＡＤ画素の概略動作例
図４に例示した読出し回路２２は、例えば、以下のように動作する。すなわち、まず、駆動回路１４２から選択トランジスタ２４に選択制御電圧Ｖ＿ＳＥＬが印加されて選択トランジスタ２４がオン状態となっている期間、フォトダイオード２１には降伏電圧（ブレークダウン電圧）以上の逆バイアス電圧Ｖ＿ＳＰＡＤが印加される。これにより、フォトダイオード２１の動作が許可される。
【００４６】
一方、駆動回路１４２から選択トランジスタ２４に選択制御電圧Ｖ＿ＳＥＬが印加されておらず、選択トランジスタ２４がオフ状態となっている期間、逆バイアス電圧Ｖ＿ＳＰＡＤがフォトダイオード２１に印加されないことから、フォトダイオード２１の動作が禁止される。
【００４７】
選択トランジスタ２４がオン状態であるときにフォトダイオード２１にフォトンが入射すると、フォトダイオード２１においてアバランシェ電流が発生する。それにより、クエンチ抵抗２３にアバランシェ電流が流れ、接続点Ｎ１の電圧が上昇する。接続点Ｎ１の電圧がＮＭＯＳトランジスタ２５２のオン電圧よりも高くなると、ＮＭＯＳトランジスタ２５２がオン状態になり、接続点Ｎ２の電圧が電源電圧ＶＤＤから０Ｖに変化する。そして、接続点Ｎ２の電圧が電源電圧ＶＤＤから０Ｖに変化すると、ＰＭＯＳトランジスタ２６１がオフ状態からオン状態に変化すると共にＮＭＯＳトランジスタ２６２がオン状態からオフ状態に変化し、接続点Ｎ３の電圧が０Ｖから電源電圧ＶＤＤに変化する。その結果、バッファ２７からハイレベルの検出信号Ｖ＿ＯＵＴが出力される。
【００４８】
その後、接続点Ｎ１の電圧が上昇し続けると、フォトダイオード２１のアノードとカソードとの間に印加されている電圧が降伏電圧よりも小さくなり、それにより、アバランシェ電流が止まって、接続点Ｎ１の電圧が低下する。そして、接続点Ｎ１の電圧がＮＭＯＳトランジスタ４５２のオン電圧よりも低くなると、ＮＭＯＳトランジスタ４５２がオフ状態になり、バッファ２７からの検出信号Ｖ＿ＯＵＴの出力が停止する（ローレベル）。
【００４９】
このように、読出し回路２２は、フォトダイオード２１にフォトンが入射してアバランシェ電流が発生し、これによりＮＭＯＳトランジスタ４５２がオン状態になったタイミングから、アバランシェ電流が止まってＮＭＯＳトランジスタ４５２がオフ状態になるタイミングまでの期間、ハイレベルの検出信号Ｖ＿ＯＵＴを出力する。出力された検出信号Ｖ＿ＯＵＴは、出力回路１４４を介して、マクロ画素３０ごとの加算部１５（図１参照）に入力される。したがって、各加算部１５には、１つのマクロ画素３０を構成する複数のＳＰＡＤ画素２０のうちでフォトンの入射が検出されたＳＰＡＤ画素２０の数（検出数）の検出信号Ｖ＿ＯＵＴが入力される。
【００５０】
２．６  加算部
図５は、本実施形態に係る加算部のより詳細な構成例を示すブロック図である。図５に示すように、加算部１５は、例えば、パルス整形部１５１と、受光数カウント部１５２とを備える。
【００５１】
パルス整形部１５１は、ＳＰＡＤアレイ１４３から出力回路１４４を介して入力した検出信号Ｖ＿ＯＵＴのパルス波形を、加算部１５の動作クロックに応じた時間幅のパルス波形に整形する。
【００５２】
受光数カウント部１５２は、対応するマクロ画素３０からサンプリング周期ごとに入力された検出信号Ｖ＿ＯＵＴをカウントすることで、フォトンの入射が検出されたＳＰＡＤ画素２０の個数（検出数）をサンプリング周期ごとに計数し、この計数値をマクロ画素３０の画素値ｄとして出力する。
【００５３】
なお、図５における画素値ｄ［ｉ］［ｊ］［８：０］のうち、［ｉ］は、各画素グループ３１におけるマクロ画素３０を特定する識別子であり、本例では‘０’から‘７’までの値（図３参照）である。また、［ｊ］は、画素グループ３１を特定するための識別子であり、本例では‘０’から‘５’までの値（図３参照）である。さらに、［８：０］は、画素値ｄ［ｉ］［ｊ］のビット数を示している。これは、後述する画素値Ｄ［ｉ］［ｊ］においても同様である。したがって、図５には、加算部１５が、識別子ｉ及びｊで特定されるマクロ画素３０から入力された検出信号Ｖ＿ＯＵＴに基づき、‘０’〜‘５１１’の値を取り得る９ビットの画素値ｄを生成することが例示されている。
【００５４】
２．７  サンプリング周期
ここで、サンプリング周期とは、発光部１３がレーザ光Ｌ１を出射してから受光部１４でフォトンの入射が検出されるまでの時間（飛行時間）を計測する周期である。このサンプリング周期には、発光部１３の発光周期よりも短い周期が設定される。例えば、サンプリング周期をより短くすることで、より高い時間分解能で、発光部１３から出射して物体９０で反射したフォトンの飛行時間を推定又は算出することが可能となる。これは、サンプリング周波数をより高くすることで、より高い測距分解能で物体９０までの距離を推定又は算出することが可能となることを意味している。
【００５５】
例えば、発光部１３がレーザ光Ｌ１を出射して、このレーザ光Ｌ１が物体９０で反射し、この反射光Ｌ２が受光部１４に入射するまでの飛行時間をｔとすると、光速Ｃが一定（Ｃ≒３００，０００，０００ｍ（メートル）／ｓ（秒）であることから、物体９０までの距離Ｌは、以下の式（１）ように推定又は算出することができる。
Ｌ＝Ｃ×ｔ／２    （１）
【００５６】
そこで、サンプリング周波数を１ＧＨｚとすると、サンプリング周期は１ｎｓ（ナノ秒）となる。その場合、１つのサンプリング周期は、１５ｃｍ（センチメートル）に相当する。これは、サンプリング周波数を１ＧＨｚとした場合の測距分解能が１５ｃｍであることを示している。また、サンプリング周波数を２倍の２ＧＨｚとすると、サンプリング周期は０．５ｎｓ（ナノ秒）となるため、１つのサンプリング周期は、７．５ｃｍ（センチメートル）に相当する。これは、サンプリング周波数を２倍とした場合、測距分解能を１／２にすることができることを示している。このように、サンプリング周波数を高くしてサンプリング周期を短くすることで、より精度良く、物体９０までの距離を推定又は算出することが可能となる。
【００５７】
２．８  ヒストグラム処理部
つづいて、本実施形態に係るヒストグラム処理部１６について、以下に図面を参照して詳細に説明する。
【００５８】
図６は、本実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。なお、図６では、明確化のため、ＳＰＡＤアレイ１４３の構成及び加算部１５も図示されている。また、図６では、説明の都合上、メモリ１７が省略されているが、各ヒストグラム生成部１６３０〜１６３７内に含まれているものとする。
【００５９】
図６に示すように、ＳＰＡＤアレイ１４３における複数のマクロ画素３０に対しては、一対一に加算部１５が設けられている。また、図１におけるヒストグラム処理部１６は、ＳＰＡＤアレイ１４３における画素グループ３１に対して一対一に設けられた画素数可変並列加算部１６１と、複数の画素数可変並列加算部１６１に対して共通に設けられた行列転置部１６２と、ヒストグラム生成部１６３０〜１６３７（以下、ヒストグラム生成部１６３０〜１６３７を区別しない場合、その符号を１６３とする）とを備える。加算部１５と、画素数可変並列加算部１６１と、行列転置部１６２とは、例えば、特許請求の範囲における画素値生成部に相当する。
【００６０】
２．８．１  画素数可変並列加算部
図７〜図１０は、本実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である。なお、図７は、画素モードが‘０’である場合の画素数可変並列加算部１６１の概略構成例を示し、図８は、画素モードが‘１’である場合の画素数可変並列加算部１６１の概略構成例を示し、図９は、画素モードが‘２’である場合の画素数可変並列加算部１６１の概略構成例を示し、図１０は、画素モードが‘３’である場合の画素数可変並列加算部１６１の概略構成例を示している。
【００６１】
２．８．１．１  画素モード＝０（第１画素モード）
まず、図７に示すように、制御部１１から画素モード‘０’が設定された場合、言い換えれば、全ての画素モードの中で最も解像度が高く且つ最も測距範囲が狭い画素モード（以下、第１画素モードという）が設定された場合、画素数可変並列加算部１６１は、加算部１５から入力された計８つの８ビットの画素値ｄ［ｉ］［ｊ］［８：０］（ｉ＝０〜７）を、それぞれの値を代えずに、計８つの１２ビットの画素値Ｄ［ｉ］［ｊ］［１１：０］（ｉ＝０〜７）として出力する。したがって、画素数可変並列加算部１６１からは、計８つの１２ビットの画素値Ｄ［ｉ］［ｊ］［１１：０］（ｉ＝０〜７）が並列に出力される。この場合、１つのマクロ画素が測距画像における１つの画素に相当する。したがって、ＴｏＦセンサ１の解像度は、単位面積あたりのマクロ画素３０の数となる。
【００６２】
２．８．１．２  画素モード＝１（第２画素モード）
次に、図８に示すように、制御部１１から画素モード‘１’が設定された場合、言い換えれば、全ての画素モードの中で２番目に解像度が高く且つ２番目に測距範囲が狭い画素モード（以下、第２画素モードという）が設定された場合、画素数可変並列加算部１６１には、ｉ＝２ｋ（ｋは０以上３以下の整数）の画素値ｄ［２ｋ］［ｊ］［８：０］と、ｉ＝２ｋ＋１の画素値ｄ［ｊ］［２ｋ＋１］［８：０］とを加算する４つの加算器４１が実装される。なお、加算器４１の実装は、例えば、所定のプログラムを実行することで実現されてよい。
【００６３】
ｉ＝０の画素値ｄ［０］［ｊ］［８：０］とｉ＝１の画素値ｄ［１］［ｊ］［８：０］とが入力される加算器４１は、これら８ビットの画素値を加算して１２ビットの画素値Ｄを生成する。生成された１２ビットの画素値Ｄは、ｉ＝０の画素値Ｄ［０］［ｊ］［１１：０］及びｉ＝１の画素値Ｄ［１］［ｊ］［１１：０］として、画素数可変並列加算部１６１から出力される。したがって、画素値Ｄ［０］［ｊ］［１１：０］と画素値Ｄ［１］［ｊ］［１１：０］とは、同じ値を持つ。
【００６４】
同様に、ｉ＝２の画素値ｄ［２］［ｊ］［８：０］とｉ＝３の画素値ｄ［３］［ｊ］［８：０］とが入力される加算器４１は、これらを加算して１２ビットの画素値Ｄを生成し、生成された１２ビットの画素値Ｄは、同じ値を持つ画素値Ｄ［２］［ｊ］［１１：０］及び画素値Ｄ［３］［ｊ］［１１：０］として出力される。ｉ＝４の画素値ｄ［４］［ｊ］［８：０］とｉ＝５の画素値ｄ［５］［ｊ］［８：０］とが入力される加算器４１は、これらを加算して１２ビットの画素値Ｄを生成し、生成された１２ビットの画素値Ｄは、同じ値を持つ画素値Ｄ［４］［ｊ］［１１：０］及び画素値Ｄ［５］［ｊ］［１１：０］として出力される。ｉ＝６の画素値ｄ［６］［ｊ］［８：０］とｉ＝７の画素値ｄ［７］［ｊ］［８：０］とが入力される加算器４１は、これらを加算して１２ビットの画素値Ｄを生成し、生成された１２ビットの画素値Ｄは、同じ値を持つ画素値Ｄ［６］［ｊ］［１１：０］及び画素値Ｄ［７］［ｊ］［１１：０］として出力される。
【００６５】
このように、第２画素モードでは、２つのマクロ画素３０から得られた値を加算して、同じ値を持つ２つの画素値Ｄ［２ｋ］［ｊ］［１１：０］及びＤ［２ｋ＋１］［ｊ］［１１：０］を生成している。これは、第２画素モードでは、２つのマクロ画素３０が測距画像における１つの画素に対応することを示している。したがって、第２画素モードでは、ＴｏＦセンサ１の解像度が、例えば、第１画素モードの１／２となる。
【００６６】
なお、この場合でも、画素数可変並列加算部１６１からは、計８つの１２ビットの画素値Ｄ［ｉ］［ｊ］［１１：０］（ｉ＝０〜７）が並列に出力される。
【００６７】
２．８．１．３  画素モード＝２（第３画素モード）
次に、図９に示すように、制御部１１から画素モード‘２’が設定された場合、言い換えれば、全ての画素モードの中で３番目に解像度が高く且つ３番目に測距範囲が狭い画素モード（以下、第３画素モードという）が設定された場合、画素数可変並列加算部１６１には、ｉ＝４ｋ（ｋは０又は１）の画素値ｄ［４ｋ］［ｊ］［８：０］と、ｉ＝４ｋ＋１の画素値ｄ［４ｋ＋１］［ｊ］［８：０］と、ｉ＝４ｋ＋２の画素値ｄ［４ｋ＋２］［ｊ］［８：０］と、ｉ＝４ｋ＋３の画素値ｄ［４ｋ＋３］［ｊ］［８：０］とを加算する２つの加算器４５が実装される。
【００６８】
各加算器４５は、例えば、第２画素モードが設定された際に実装された４つの加算器４１の出力を２つずつ加算する２つの加算器４２をさらに実装することで実現することができる。加算器４２の実装は、例えば、加算器４１と同様に、所定のプログラムを実行することで実現されてよい。
【００６９】
ｉ＝０〜３の画素値ｄ［０］［ｊ］［８：０］〜ｄ［３］［ｊ］［８：０］が入力される加算器４５は、これら８ビットの画素値を加算して１２ビットの画素値Ｄを生成する。生成された１２ビットの画素値Ｄは、ｉ＝０〜３の画素値Ｄ［０］［ｊ］［１１：０］〜Ｄ［３］［ｊ］［１１：０］として、画素数可変並列加算部１６１から出力される。したがって、画素値Ｄ［０］［ｊ］［１１：０］〜Ｄ［３］［ｊ］［１１：０］は、それぞれ同じ値を持つ。
【００７０】
同様に、ｉ＝４〜７の画素値ｄ［４］［ｊ］［８：０］〜ｄ［７］［ｊ］［８：０］が入力される加算器４５は、これらを加算して１２ビットの画素値Ｄを生成する。生成された１２ビットの画素値Ｄは、同じ値を持つ画素値Ｄ［４］［ｊ］［１１：０］〜Ｄ［７］［ｊ］［１１：０］として出力される。
【００７１】
このように、第３画素モードでは、４つのマクロ画素３０から得られた値を加算して、同じ値を持つ４つの画素値Ｄ［４ｋ］［ｊ］［１１：０］、Ｄ［４ｋ＋１］［ｊ］［１１：０］、Ｄ［４ｋ＋２］［ｊ］［１１：０］及びＤ［４ｋ＋３］［ｊ］［１１：０］を生成している。これは、第３画素モードでは、４つのマクロ画素３０が測距画像における１つの画素に対応することを示している。したがって、第３画素モードでは、ＴｏＦセンサ１の解像度が、例えば、第１画素モードの１／４となる。
【００７２】
なお、この場合でも、画素数可変並列加算部１６１からは、計８つの１２ビットの画素値Ｄ［ｉ］［ｊ］［１０：０］（ｉ＝０〜７）が並列に出力される。
【００７３】
２．８．１．４  画素モード＝３（第４画素モード）
次に、図１０に示すように、制御部１１から画素モード‘３’が設定された場合、言い換えれば、全ての画素モードの中で最も解像度が低く且つ最も測距範囲が広い画素モード（以下、第４画素モードという）が設定された場合、画素数可変並列加算部１６１には、全ての画素値ｄ［ｉ］［ｊ］［８：０］（ｉ＝０〜７）を加算する加算器４６が実装される。
【００７４】
加算器４６は、例えば、第３画素モードが設定された際に追加実装された２つの加算器４２の出力を加算する加算器４３をさらに実装することで実現することができる。加算器４３の実装は、例えば、加算器４１及び４２と同様に、所定のプログラムを実行することで実現されてよい。
【００７５】
加算器４６は、入力された全ての画素値ｄ［ｉ］［ｊ］［８：０］（ｉ＝０〜７）を加算して１２ビットの画素値Ｄを生成する。生成された１２ビットの画素値Ｄは、ｉ＝０〜７の画素値Ｄ［０］［ｊ］［１１：０］〜Ｄ［７］［ｊ］［１１：０］として、画素数可変並列加算部１６１から出力される。したがって、画素値Ｄ［０］［ｊ］［１１：０］〜Ｄ［７］［ｊ］［１１：０］は、それぞれ同じ値を持つ。
【００７６】
このように、第４画素モードでは、８つのマクロ画素３０から得られた値を加算して、同じ値を持つ８つの画素値Ｄ［ｉ］［ｊ］［１１：０］（ｉ＝０〜７）を生成している。これは、第４画素モードでは、８つのマクロ画素３０が測距画像における１つの画素に対応することを示している。したがって、第４画素モードでは、ＴｏＦセンサ１の解像度が、例えば、第１画素モードの１／８となる。
【００７７】
なお、この場合でも、画素数可変並列加算部１６１からは、計８つの１２ビットの画素値Ｄ［ｉ］［ｊ］［１１：０］（ｉ＝０〜７）が並列に出力される。
【００７８】
このように、本実施形態では、画素モードに応じて、画素数可変並列加算部１６１が加算する画素値ｄの数が変更される。
【００７９】
２．８．２  行列転置部
図１１は、本実施形態に係る行列転置部の概略構成例を示すブロック図である。図１１に示すように、行列転置部１６２には、ｊ＝０〜７の画素グループ３１それぞれに対して一対一に対応する６つの画素数可変並列加算部１６１それぞれから、８つの画素値Ｄ［ｉ］［ｊ］（ｉ＝０〜７、ｊ＝０〜５）（以下、画素値列４８０〜４８５という）が入力される。すなわち、行列転置部１６２には、６つの画素数可変並列加算部１６１から、８行６列に配列した合計４８つの画素値Ｄ［ｉ］［ｊ］（以下、画素値行列という）が入力される。行列転置部１６２は、この入力された８行６列の画素値行列の行列を転置することで、６行８列の画素値行列を生成する。
【００８０】
そして行列転置部１６２は、行列転置後の画素値行列を、列ごとに、後段のヒストグラム生成部１６３に入力する。行列転置後の画素値列４９０〜４９７に対しては、列に対して一対一に、ヒストグラム生成部１６３０〜１６３７が設けられている。したがって、画素値列４９０はヒストグラム生成部１６３０に入力され、画素値列４９１はヒストグラム生成部１６３１に入力され、画素値列４９２はヒストグラム生成部１６３２に入力され、画素値列４９３はヒストグラム生成部１６３３に入力され、画素値列４９４はヒストグラム生成部１６３４に入力され、画素値列４９５はヒストグラム生成部１６３５に入力され、画素値列４９６はヒストグラム生成部１６３６に入力され、画素値列４９７はヒストグラム生成部１６３７に入力される。以下、画素値列４９０〜４９７を区別しない場合、その符号を４９とする。
【００８１】
２．８．３  ヒストグラム生成部の概略構成例
図１２及び図１３、図１５、図１７、並びに、図１９は、本実施形態に係るヒストグラム生成部が１回のサンプリングで実行する動作を説明するためのブロック図である。また、図１４、図１６、図１８及び図２０は、本実施形態に係る発光部の１回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである。なお、図１２、図１３及び図１４は、画素モードが‘０’である場合のヒストグラム生成部を説明するための図であり、図１５及び図１６は、画素モードが‘１’である場合のヒストグラム生成部を説明するための図であり、図１７及び図１８は、画素モードが‘２’である場合のヒストグラム生成部を説明するための図であり、図１９及び図２０は、画素モードが‘３’である場合のヒストグラム生成部を説明するための図である。
【００８２】
２．８．３．１  第１画素モード（画素モード＝０）
まず、ヒストグラム生成部１６３に第１画素モード（画素モード＝０）が設定された場合について説明する。
【００８３】
２．８．３．１．１  １回のサンプリングに実行する動作
図１２に示すように、制御部１１から画素モード＝０、すなわち、第１画素モードが設定された場合、ヒストグラム生成部１６３０〜１６３７それぞれは、行列転置部１６２から入力された画素値列４９の値を、それぞれに対応するメモリ１７０〜１７７に格納されている各ヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。
【００８４】
この動作を、ヒストグラム生成部１６３０に着目してより詳細に説明すると、図１３に示すように、ヒストグラム生成部１６３０内のメモリ１７０には、画素グループ３１と同数のメモリ１７００〜１７０５が含まれている。各メモリ１７００〜１７０５は、ｊ＝０〜５の画素グループ３１と一対一に対応付けられており、それぞれが対応する画素グループ３１におけるマクロ画素３０から得られた画素値に基づくヒストグラムを格納する。
【００８５】
各メモリ１７００〜１７０５内のヒストグラムのＢＩＮ番号（ＢＩＮＩＤＸとも記す）は、例えば、メモリ１７００〜１７０５それぞれのメモリアドレスに対応している。また、各ヒストグラムの１つのＢＩＮは、１つのサンプリング周期に対応している。したがって、本例では、小さいＢＩＮ番号であるほど、発光部１３の発光から初期のタイミングで実行されたサンプリング、すなわち、若いサンプリング番号のサンプリングに対応している。なお、図１３には、発光部１３の１回の発光に対して２５６回のサンプリングを実行する場合が例示されている。
【００８６】
ヒストグラム生成部１６３０は、入力された画素値列４９０（マクロ画素３０の識別子ｉは‘０’）のうち、画素グループ３１の識別子ｊが‘０’である画素値Ｄ［０］［０］を、ｊ＝０に対応する画素グループ３１用のメモリ（以下、ｊ＝０のメモリという）１７００内のヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。例えば、現在のサンプリング番号がＢＩＮＩＤＸ＝５０に対応する場合、ヒストグラム生成部１６３０は、画素値Ｄ［０］［０］を、メモリ１７００内のヒストグラムにおけるＢＩＮＩＤＸ＝５０のＢＩＮに格納されている値に加算する。
【００８７】
同様に、ヒストグラム生成部１６３０は、ｊ＝１〜５の画素グループ３１におけるマクロ画素３０から取得された画素値Ｄ［０］［１］〜Ｄ［０］［５］を、ｊ＝１〜５のメモリ１７０１〜１７０５内のヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。
【００８８】
以上の動作をヒストグラム生成部１６３０〜１６３７それぞれにおいて実行することで、現在のサンプリング番号で取得された画素値Ｄ［ｉ］［ｊ］（ｉ＝０〜７、ｊ＝０〜５）が各メモリ１７００〜１７０５内のヒストグラムにおける対応するＢＩＮの値に加算される。その結果、第１画素モードでは、１つの画素グループ３１に含まれるマクロ画素３０の数Ｓｍａｘ（本例では８つ）に、画素グループ３１の数Ｎｃ（本例では６つ）をかけた数（本例では４８つ）のヒストグラムが、メモリ１７内に作成される。
【００８９】
なお、現在のサンプリング番号がどのＢＩＮに対応するかの情報は、例えば、制御部１１等からヒストグラム処理部１６に入力されてもよいし、ヒストグラム処理部１６や加算部１５の内部で現在のサンプリング番号が何番目であるかや、発光部１３の発光からの経過時間を管理しておき、その管理値に基づいてヒストグラム生成部１６３が特定してもよい。
【００９０】
２．８．３．１．２  １回の発光に対して実行する動作
また、図１４に示すように、図１２及び図１３を用いて説明したサンプリング動作は、所定のサンプリング回数（本例では、２５６回）、繰返し実行される。所定回数のサンプリングが実行される期間（図１４におけるサンプリング番号Ｐ０〜Ｐ２５５の期間）中、メモリ１７０〜１７７に対する書込みを許可又は禁止するイネーブル信号ＥＮ０〜ＥＮ７は、ハイレベル（許可レベル）に維持される。それにより、各メモリ１７０〜１７７内のＮｃ個のメモリ（図１３に示す例では、メモリ１７００〜１７０５）に対する書込みが許可され、最終的に、発光部１３の１回の発光に対して計４８つのヒストグラムがメモリ１７内に作成される。
【００９１】
２．８．３．２  第２画素モード（画素モード＝１）
次に、ヒストグラム生成部１６３に第２画素モード（画素モード＝１）が設定された場合について説明する。
【００９２】
２．８．３．２．１  １回のサンプリングに実行する動作
図１５に示すように、制御部１１から画素モード‘１’、すなわち、第２画素モードが設定された場合、画素数可変並列加算部１６１による画素値Ｄの加算（図８参照）により、画素値列４９における、ｉ＝０及び１の画素値Ｄ［０］［ｊ］及びＤ［１］［ｊ］は同じ値となり、ｉ＝２及び３の画素値Ｄ［２］［ｊ］及びＤ［３］［ｊ］は同じ値となり、ｉ＝４及び５の画素値Ｄ［４］［ｊ］及びＤ［５］［ｊ］は同じ値となり、ｉ＝６及び７の画素値Ｄ［６］［ｊ］及びＤ［７］［ｊ］は同じ値となる。
【００９３】
そこで、第２画素モードでは、ヒストグラム生成部１６３は、同じ値を持つ２つの画素値Ｄを用いて１つのヒストグラムを作成する。具体的には、画素値Ｄ［０］［ｊ］及びＤ［１］［ｊ］を用いて１つのヒストグラムを作成し、画素値Ｄ［２］［ｊ］及びＤ［３］［ｊ］を用いて１つのヒストグラムを作成し、画素値Ｄ［４］［ｊ］及びＤ［５］［ｊ］を用いて１つのヒストグラムを作成し、画素値Ｄ［６］［ｊ］及びＤ［７］［ｊ］を用いて１つのヒストグラムを作成する。
【００９４】
言い換えれば、第２画素モードでは、ヒストグラム生成部１６３は、同じ値を持つ２つの画素値Ｄの格納先となる２つのメモリ１７０及び１７１、１７２及び１７３、１７４及び１７５、並びに、１７６及び１７７を用いて、それぞれ１つのヒストグラムを作成する。その際、一方のメモリ１７０、１７２、１７４及び１７６をヒストグラムの前半のＢＩＮに割り当て、他方のメモリ１７１、１７３、１７５及び１７７をヒストグラムの後半のＢＩＮに割り当てる。例えば、一方のメモリ１７０、１７２、１７４及び１７６をヒストグラムのＢＩＮＩＤＸ＝０〜２５５のＢＩＮに割り当て、他方のメモリ１７１、１７３、１７５及び１７７をヒストグラムのＢＩＮＩＤＸ＝２５６〜５１１のＢＩＮに割り当てる。これにより、ヒストグラムのＢＩＮ数を２倍に増加させることが可能となるため、測距範囲を広げることが可能となる。
【００９５】
具体的には、まず、ヒストグラム生成部１６３のうちのヒストグラム生成部１６３０、１６３２、１６３４及び１６３６が、行列転置部１６２から入力された画素値列４９のうち、ｉ＝２ｋ（ｋは０以上３以下の整数）の画素値Ｄ［２ｋ］［ｊ］（ｊ＝０〜５）の値を、メモリ１７０、１７２、１７４及び１７６に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算し、次に、残りのヒストグラム生成部１６３１、１６３３、１６３５及び１６３７が、ｉ＝２ｋ＋１の画素値Ｄ［２ｋ＋１］［ｊ］（ｊ＝０〜５）の値を、メモリ１７１、１７３、１７５及び１７７に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。
【００９６】
それにより、メモリ１７０及び１７１でＢＩＮ数が２倍のＮｃ個（本例では６つ）のヒストグラムが作成され、メモリ１７２及び１７３でＢＩＮ数が２倍のＮｃ個（本例では６つ）のヒストグラムが作成され、メモリ１７４及び１７５でＢＩＮ数が２倍のＮｃ個（本例では６つ）のヒストグラムが作成され、メモリ１７６及び１７７でＢＩＮ数が２倍のＮｃ個（本例では６つ）のヒストグラムが作成される。
【００９７】
２．８．３．２．２  １回の発光に対して実行する動作
また、図１６に示すように、図１５を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第１画素モードのサンプリング回数の２倍のサンプリング回数（本例では、５１２回）、繰返し実行される。その際、第２画素モードでは、第２画素モードヒストグラムの前半部分を作成する期間（例えば、サンプリング番号Ｐ０〜Ｐ２５５の期間）には、前半部分用のメモリ１７０、１７２、１７４及び１７６にのみ、書込みを許可するハイレベルのイネーブル信号ＥＮ０、ＥＮ２、ＥＮ４及びＥＮ６を与え、後半部分用のメモリ１７１、１７３、１７５及び１７７には、書込みを禁止するローレベルのイネーブル信号ＥＮ１、ＥＮ３、ＥＮ５及びＥＮ７を与える。それにより、サンプリング番号Ｐ０〜Ｐ２５５の期間には、ｉ＝０、２、４及び６の画素値Ｄを用いて、ヒストグラムの前半部分（例えば、ＢＩＮＩＤＸ＝０〜２５５のＢＩＮに相当）がメモリ１７０、７２、１７４及び１７６に作成される。
【００９８】
一方、ヒストグラムの後半部分を作成する期間（例えば、サンプリング番号Ｐ２５６〜Ｐ５１１の期間）には、前半部分用のメモリ１７０、１７２、１７４及び１７６には、書込みを禁止するローレベルのイネーブル信号ＥＮ０、ＥＮ２、ＥＮ４及びＥＮ６を与え、後半部分用のメモリ１７１、１７３、１７５及び１７７には、書込みを許可するハイレベルのイネーブル信号ＥＮ１、ＥＮ３、ＥＮ５及びＥＮ７を与える。それにより、サンプリング番号Ｐ０〜Ｐ２５５の期間には、ｉ＝１、３、５及び７の画素値Ｄを用いて、ヒストグラムの後半部分（例えば、ＢＩＮＩＤＸ＝２５６〜５１１のＢＩＮに相当）がメモリ１７１、１７３、１７５及び１７７に作成される。
【００９９】
その結果、ｉ＝０及び１の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７０及び１７１に作成され、ｉ＝２及び３の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７２及び１７３に作成され、ｉ＝４及び５の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７４及び１７５に作成され、ｉ＝６及び７の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７６及び１７７に作成される。それにより、本例では、最終的に、発光部１３の１回の発光に対してＳｍａｘ／２×Ｎｃ個（本例では２４つ）のヒストグラムが作成される。
【０１００】
２．８．３．３  第３画素モード（画素モード＝２）
次に、ヒストグラム生成部１６３に第３画素モード（画素モード＝２）が設定された場合について説明する。
【０１０１】
２．８．３．３．１  １回のサンプリングに実行する動作
図１７に示すように、制御部１１から画素モード‘２’、すなわち、第３画素モードが設定された場合、画素数可変並列加算部１６１による画素値Ｄの加算（図９参照）により、画素値列４９における、ｉ＝０〜３の画素値Ｄ［０］［ｊ］〜Ｄ［３］［ｊ］は同じ値となり、ｉ＝４〜７の画素値Ｄ［４］［ｊ］〜Ｄ［７］［ｊ］は同じ値となる。
【０１０２】
そこで、第３画素モードでは、ヒストグラム生成部１６３は、同じ値を持つ４つの画素値Ｄを用いて１つのヒストグラムを作成する。具体的には、画素値Ｄ［０］［ｊ］〜Ｄ［３］［ｊ］を用いて１つのヒストグラムを作成し、画素値Ｄ［４］［ｊ］〜Ｄ［７］［ｊ］を用いて１つのヒストグラムを作成する。
【０１０３】
言い換えれば、第３画素モードでは、ヒストグラム生成部１６３は、同じ値を持つ４つの画素値Ｄの格納先となる４つのメモリ１７０〜１７３並びに１７４〜１７７を用いて、それぞれ１つのヒストグラムを作成する。その際、最初のメモリ１７０及び１７４をヒストグラムの最初の１／４のＢＩＮに割り当て、２番目のメモリ１７１及び１７５をヒストグラムの２番目の１／４のＢＩＮに割り当て、３番目のメモリ１７２及び１７６をヒストグラムの３番目の１／４のＢＩＮに割り当て、最後のメモリ１７３及び１７７をヒストグラムの残りの１／４のＢＩＮに割り当てる。これにより、ヒストグラムのＢＩＮ数を４倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
【０１０４】
具体的には、まず、ヒストグラム生成部１６３のうちのヒストグラム生成部１６３０及び１６３４が、行列転置部１６２から入力された画素値列４９のうち、ｉ＝４ｋ（ｋは０又は１）の画素値Ｄ［４ｋ］［ｊ］の値を、メモリ１７０及び１７４に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算し、次に、ヒストグラム生成部１６３１及び１６３５が、ｉ＝４ｋ＋１の画素値Ｄ［４ｋ＋１］［ｊ］の値を、メモリ１７１及び１７５に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算し、次に、ヒストグラム生成部１６３２及び１６３６が、ｉ＝４ｋ＋２の画素値Ｄ［４ｋ＋２］［ｊ］の値を、メモリ１７２及び１７６に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算し、最後にヒストグラム生成部１６３３及び１６３７が、ｉ＝４ｋ＋３の画素値Ｄ［４ｋ＋３］［ｊ］の値を、メモリ１７３及び１７７に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。
【０１０５】
それにより、メモリ１７０〜１７３でＢＩＮ数が４倍のＮｃ個（本例では６つ）のヒストグラムが作成され、メモリ１７４及び１７７でＢＩＮ数が４倍のＮｃ個（本例では６つ）のヒストグラムが作成される。
【０１０６】
２．８．３．３．２  １回の発光に対して実行する動作
また、図１８に示すように、図１７を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第１画素モードのサンプリング回数の４倍のサンプリング回数（本例では、１０２４回）、繰返し実行される。その際、第３画素モードでは、ヒストグラムの最初の１／４を作成する期間（例えば、サンプリング番号Ｐ０〜Ｐ２５５の期間）には、最初の１／４の部分用のメモリ１７０及び１７４にのみ、書込みを許可するハイレベルのイネーブル信号ＥＮ０及びＥＮ４を与え、他のメモリ１７１、１７２、１７３、１７５、１７６及び１７７には、書込みを禁止するローレベルのイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ５、ＥＮ６及びＥＮ７を与える。それにより、サンプリング番号Ｐ０〜Ｐ２５５の期間には、ｉ＝０及び４の画素値Ｄを用いて、ヒストグラムの最初の１／４部分（例えば、ＢＩＮＩＤＸ＝０〜２５５のＢＩＮに相当）がメモリ１７０及び１７４に作成される。
【０１０７】
次に、ヒストグラムの２番目の１／４を作成する期間（例えば、サンプリング番号Ｐ２５６〜Ｐ５１１の期間）には、２番目の１／４の部分用のメモリ１７１及び１７５にのみ、書込みを許可するハイレベルのイネーブル信号ＥＮ１及びＥＮ５を与え、他のメモリ１７０、１７２、１７３、１７４、１７６及び１７７には、書込みを禁止するローレベルのイネーブル信号ＥＮ０、ＥＮ２、ＥＮ３、ＥＮ４、ＥＮ６及びＥＮ７を与える。それにより、サンプリング番号Ｐ２５６〜Ｐ５１１の期間には、ｉ＝１及び５の画素値Ｄを用いて、ヒストグラムの２番目の１／４部分（例えば、ＢＩＮＩＤＸ＝２５６〜５１１のＢＩＮに相当）がメモリ１７１及び１７５に作成される。
【０１０８】
次に、ヒストグラムの３番目の１／４を作成する期間（例えば、サンプリング番号Ｐ５１２〜Ｐ７６７の期間）には、３番目の１／４の部分用のメモリ１７２及び１７６にのみ、書込みを許可するハイレベルのイネーブル信号ＥＮ２及びＥＮ６を与え、他のメモリ１７０、１７１、１７３、１７４、１７５及び１７７には、書込みを禁止するローレベルのイネーブル信号ＥＮ０、ＥＮ１、ＥＮ３、ＥＮ４、ＥＮ５及びＥＮ７を与える。それにより、サンプリング番号Ｐ５１２〜Ｐ７６７の期間には、ｉ＝２及び６の画素値Ｄを用いて、ヒストグラムの３番目の１／４部分（例えば、ＢＩＮＩＤＸ＝５１２〜７６７のＢＩＮに相当）がメモリ１７２及び１７６に作成される。
【０１０９】
そして、ヒストグラムの残りの１／４を作成する期間（例えば、サンプリング番号Ｐ７６８〜Ｐ１０２３の期間）には、最後の１／４の部分用のメモリ１７３及び１７７にのみ、書込みを許可するハイレベルのイネーブル信号ＥＮ３及びＥＮ７を与え、他のメモリ１７０、１７１、１７２、１７４、１７５及び１７６には、書込みを禁止するローレベルのイネーブル信号ＥＮ０、ＥＮ１、ＥＮ２、ＥＮ４、ＥＮ５及びＥＮ６を与える。それにより、サンプリング番号Ｐ７６８〜Ｐ１０２３の期間には、ｉ＝３及び７の画素値Ｄを用いて、ヒストグラムの最後の１／４部分（例えば、ＢＩＮＩＤＸ＝７６８〜１０２３のＢＩＮに相当）がメモリ１７３及び１７７に作成される。
【０１１０】
その結果、ｉ＝０〜３の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７０〜１７３に作成され、ｉ＝４〜７の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７４〜１７７に作成される。それにより、本例では、最終的に、発光部１３の１回の発光に対してＳｍａｘ／４×Ｎｃ個（本例では１２つ）のヒストグラムが作成される。
【０１１１】
２．８．３．４  第４画素モード（画素モード＝３）
次に、ヒストグラム生成部１６３に第４画素モード（画素モード＝３）が設定された場合について説明する。
【０１１２】
２．８．３．４．１  １回のサンプリングに実行する動作
図１９に示すように、制御部１１から画素モード‘３’、すなわち、第４画素モードが設定された場合、画素数可変並列加算部１６１による画素値Ｄの加算（図９参照）により、画素値列４９における、ｉ＝０〜７の全ての画素値Ｄ［０］［ｊ］〜Ｄ［７］［ｊ］は同じ値となる。
【０１１３】
そこで、第４画素モードでは、ヒストグラム生成部１６３は、同じ値である全て（８つ）の画素値Ｄを用いて１つのヒストグラムを作成する。言い換えれば、第４画素モードでは、ヒストグラム生成部１６３は、８つの画素値Ｄの格納先となる８つのメモリ１７０〜１７７を用いて、１つのヒストグラムを作成する。その際、最初のメモリ１７０をヒストグラムの最初の１／８のＢＩＮに割り当て、２番目のメモリ１７１をヒストグラムの２番目の１／８のＢＩＮに割り当て、３番目のメモリ１７２をヒストグラムの３番目の１／８のＢＩＮに割り当て、４番目のメモリ１７３をヒストグラムの４番目の１／８のＢＩＮに割り当て、５番目のメモリ１７４をヒストグラムの５番目の１／８のＢＩＮに割り当て、６番目のメモリ１７５をヒストグラムの６番目の１／８のＢＩＮに割り当て、７番目のメモリ１７６をヒストグラムの７番目の１／８のＢＩＮに割り当て、最後のメモリ１７７をヒストグラムの残りの１／８のＢＩＮに割り当てる。これにより、ヒストグラムのＢＩＮ数を８倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
【０１１４】
具体的には、まず、ヒストグラム生成部１６３のうちのヒストグラム生成部１６３０が、行列転置部１６２から入力された画素値列４９のうち、ｉ＝０の画素値Ｄ［０］［ｊ］の値を、メモリ１７０に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。以降も同様に、ヒストグラム生成部１６３１〜１６３７が順次、ｉ＝１〜７の画素値Ｄ［１］［ｊ］〜Ｄ［７］［ｊ］の値を、メモリ１７１〜１７７に格納されているヒストグラムにおける、現在のサンプリング番号に対応するＢＩＮの値に加算する。
【０１１５】
それにより、メモリ１７０〜１７７でＢＩＮ数が８倍のＮｃ個（本例では６つ）のヒストグラムが作成される。
【０１１６】
２．８．３．４．２  １回の発光に対して実行する動作
また、図２０に示すように、図１９を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第１画素モードのサンプリング回数の８倍のサンプリング回数（本例では、２０４８回）、繰返し実行される。その際、第４画素モードでは、書込みを許可するハイレベルのイネーブル信号ＥＮ０〜ＥＮ７を与える期間が、メモリ１７０〜１７７の順番で順次切り替えられる。
【０１１７】
それにより、サンプリング番号Ｐ０〜Ｐ２５５の期間には、ｉ＝０の画素値Ｄを用いて、ヒストグラムの最初の１／８部分（例えば、ＢＩＮＩＤＸ＝０〜２５５のＢＩＮに相当）がメモリ１７０に作成され、サンプリング番号Ｐ２５６〜Ｐ５１１の期間には、ｉ＝１の画素値Ｄを用いて、ヒストグラムの２番目の１／８部分（例えば、ＢＩＮＩＤＸ＝２５６〜５１１のＢＩＮに相当）がメモリ１７１に作成され、サンプリング番号Ｐ５１２〜Ｐ７６７の期間には、ｉ＝２の画素値Ｄを用いて、ヒストグラムの３番目の１／８部分（例えば、ＢＩＮＩＤＸ＝５１２〜７６７のＢＩＮに相当）がメモリ１７２に作成され、サンプリング番号Ｐ７６８〜Ｐ１０２３の期間には、ｉ＝３の画素値Ｄを用いて、ヒストグラムの４番目の１／８部分（例えば、ＢＩＮＩＤＸ＝７６８〜１０２３のＢＩＮに相当）がメモリ１７３に作成され、サンプリング番号Ｐ１０２４〜Ｐ１２７９の期間には、ｉ＝４の画素値Ｄを用いて、ヒストグラムの５番目の１／８部分（例えば、ＢＩＮＩＤＸ＝１０２４〜１２７９のＢＩＮに相当）がメモリ１７４に作成され、サンプリング番号Ｐ１２８０〜Ｐ１５３５の期間には、ｉ＝５の画素値Ｄを用いて、ヒストグラムの６番目の１／８部分（例えば、ＢＩＮＩＤＸ＝１２８０〜１５３５のＢＩＮに相当）がメモリ１７５に作成され、サンプリング番号Ｐ１５３６〜Ｐ１７９１の期間には、ｉ＝６の画素値Ｄを用いて、ヒストグラムの７番目の１／８部分（例えば、ＢＩＮＩＤＸ＝１５３６〜１７９１のＢＩＮに相当）がメモリ１７６に作成され、サンプリング番号Ｐ１７９２〜Ｐ２０４７の期間には、ｉ＝７の画素値Ｄを用いて、ヒストグラムの最後の１／８部分（例えば、ＢＩＮＩＤＸ＝１７９２〜２０４７のＢＩＮに相当）がメモリ１７７に作成され、その結果、ｉ＝０〜７の画素値Ｄを用いてＮｃ個（本例では６つ）のヒストグラムがメモリ１７０〜１７７に作成される。それにより、本例では、最終的に、発光部１３の１回の発光に対してＳｍａｘ／８×Ｎｃ個（本例では６つ）のヒストグラムが作成される。
【０１１８】
２．９  ヒストグラム処理の回路例
図２１は、本実施形態に係るヒストグラム生成部の動作を説明するための図である。なお、図２１には、例として、図１３に示すヒストグラム生成部１６３０がメモリ１７００内にヒストグラムを作成する際の流れを例示するが、他のメモリ１７０１〜１７０５、並びに、他のヒストグラム生成部１６３１〜１６３７に対しても、同様に適用することが可能である。すなわち、図２１に示す構成は、個々のヒストグラムを個別に格納するメモリ（図１３に示す例では、メモリ１７００〜１７０５）ごとに設けられている。例えば、ヒストグラム生成部１６３０は、図２１に示す構成を、メモリ１７００〜１７０５それぞれに一対一に対応するように、計６つ備えている。
【０１１９】
図２１に示すように、ヒストグラム生成部１６３０は、セレクタ５１及び６４と、加算器（＋１）５２と、同期回路としてのＤ−フリップフロップ（ＦＦ）５３、５４、５６、６１、６２及び６５と、加算器６３と、メモリ１７００としてのＳＲＡＭ５５とを備える。なお、読出しアドレスＲＥＡＤ＿ＡＤＤＲが入力されるＳＲＡＭ５５と、ＷＲＩＴＥ＿ＡＤＤＲが入力されるＳＲＡＭ５５とは同じＳＲＡＭ（メモリ１７００）である。
【０１２０】
このような構成において、破線で囲まれたＤ−ＦＦ６１及び６２と、加算器６３と、セレクタ６４と、Ｄ−ＦＦ６５とは、累積画素値を算出する加算回路６０として動作する。
【０１２１】
１回目のサンプリングに対するヒストグラム生成処理では、まず、セレクタ５１に、ヒストグラムの最初のＢＩＮ番号に相当するＳＲＡＭ５５の先頭アドレス（これを‘０’とする）が入力される。また、１回目のサンプリングに対するヒストグラム生成処理では、セレクタ５１に、不図示の制御線を介して、入力された先頭アドレス‘０’を出力させる制御信号が入力されている。したがって、セレクタ５１からは、入力された先頭アドレス‘０’がアドレスＡＤＤＲとして出力される。出力されたアドレスＡＤＤＲは、Ｄ−ＦＦ５３と加算器（＋１）５２とにそれぞれ入力される。
【０１２２】
一方、加算回路６０の初段のＤ−ＦＦ６１には、最初のサンプリング（例えば、サンプリング番号Ｐ０）により得られた画素値Ｄ［ｉ］［ｊ］（ただし、本説明では、ｉ＝０及びｊ＝０）が入力される。
【０１２３】
Ｄ−ＦＦ５３とＤ−ＦＦ６１との出力は同期される。したがって、Ｄ−ＦＦ５３がアドレスＡＤＤＲを出力するタイミングで、Ｄ−ＦＦ６１が画素値Ｄ［ｉ］［ｊ］を出力する。
【０１２４】
Ｄ−ＦＦ５３から出力されたアドレスＡＤＤＲは、Ｄ−ＦＦ５４に入力されるとともに、読出しアドレスＲＥＡＤ＿ＡＤＤＲとしてＳＲＡＭ５５に入力される。一方、Ｄ−ＦＦ６１から出力された画素値Ｄ［ｉ］［ｊ］は、Ｄ−ＦＦ６２に入力される。
【０１２５】
Ｄ−ＦＦ５４とＳＲＡＭ５５とＤ−ＦＦ６２との出力は同期される。したがって、Ｄ−ＦＦ５４がアドレスＡＤＤＲを出力するタイミングで、ＳＲＡＭ５５から読出しアドレスＲＥＡＤ＿ＡＤＤＲに対応するＢＩＮに格納されている累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］が出力されるとともに、Ｄ−ＦＦ６２から画素値Ｄ［ｉ］［ｊ］が出力される。
【０１２６】
Ｄ−ＦＦ５４から出力されたアドレスＡＤＤＲは、Ｄ−ＦＦ５６に入力される。一方、ＳＲＡＭ５５から読み出された累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］は、加算器６３に入力される。また、Ｄ−ＦＦ６２から出力された画素値Ｄ［ｉ］［ｊ］は、加算器６３に入力されるとともに、セレクタ６４に入力される。
【０１２７】
１回目のサンプリングに対するヒストグラム生成処理では、セレクタ６４には、不図示の制御線を介して、入力された画素値Ｄ［ｉ］［ｊ］を出力させる制御信号が入力されている。したがって、セレクタ６４からは、入力された画素値Ｄ［ｉ］［ｊ］が書込みデータＢＩＮ＿ＤＡＴＡ［ｊ］としてＤ−ＦＦ６５に出力される。
【０１２８】
Ｄ−ＦＦ５６とＤ−ＦＦ６５との出力は同期される。したがって、Ｄ−ＦＦ５６がアドレスＡＤＤＲを出力するタイミングで、Ｄ−ＦＦ６５が書込みデータＢＩＮ＿ＤＡＴＡ［ｊ］を出力する。
【０１２９】
Ｄ−ＦＦ５６から出力されたアドレスＡＤＤＲは、書込みアドレスＷＲＩＴＥ＿ＡＤＤＲとして、ＳＲＡＭ５５に入力される。また、ＳＲＡＭ５５には、書込みアドレスＷＲＩＴＥ＿ＡＤＤＲの入力と同期して、書込みデータＢＩＮ＿ＤＡＴＡ［ｊ］も入力される。したがって、ＳＲＡＭ５５に入力された書込みデータＢＩＮ＿ＤＡＴＡ［ｊ］は、書込みアドレスＷＲＩＴＥ＿ＡＤＤＲで指定されたＢＩＮに累積画素値として格納される。
【０１３０】
次に、２回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ５１には、加算器（＋１）５２から入力された値を出力させる制御信号が入力されている。加算器（＋１）５２は、セレクタ５１から出力されたアドレスＡＤＤＲを１インクリメントした値を出力する。したがって、２回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ５１からは、前回のアドレスＡＤＤＲを１インクリメントすることで得られた次のアドレスＡＤＤＲが出力される。出力されたアドレスＡＤＤＲは、Ｄ−ＦＦ５３と加算器（＋１）５２とにそれぞれ入力される。
【０１３１】
一方、加算回路６０の初段のＤ−ＦＦ６１には、２回目以降のサンプリング（例えば、サンプリング番号Ｐ１以降）により得られた画素値Ｄ［ｉ］［ｊ］（ただし、本説明では、ｉ＝０及びｊ＝０）が入力される。
【０１３２】
Ｄ−ＦＦ５３とＤ−ＦＦ６１との出力は同期されていることから、Ｄ−ＦＦ５３がアドレスＡＤＤＲを出力するタイミングで、Ｄ−ＦＦ６１が画素値Ｄ［ｉ］［ｊ］を出力する。
【０１３３】
そして、Ｄ−ＦＦ５４とＳＲＡＭ５５とＤ−ＦＦ６２との出力は同期されていることから、Ｄ−ＦＦ５４がアドレスＡＤＤＲを出力するタイミングで、ＳＲＡＭ５５から読出しアドレスＲＥＡＤ＿ＡＤＤＲに対応するＢＩＮに格納されている累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］が出力されるとともに、Ｄ−ＦＦ６２から画素値Ｄ［ｉ］［ｊ］が出力される。
【０１３４】
２回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ６４には、加算器６３から入力された値を出力させる制御信号が入力されている。加算器６３は、ＳＲＡＭ５５から読み出された累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］と、Ｄ−ＦＦ６２から出力された画素値Ｄ［ｉ］［ｊ］とを加算した値を出力する。したがって、２回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ６４からは、これまでの累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］に今回分の画素値Ｄ［ｉ］［ｊ］を加算した値が書込みデータＢＩＮ＿ＤＡＴＡ［ｊ］として出力される。これにより、ＳＲＡＭ５５における今回のサンプリング（サンプリング番号）に対応するＢＩＮには、累積画素値ＲＥＡＤ＿ＤＡＴＡ［ｉ］に今回分の画素値Ｄ［ｉ］［ｊ］を加算することで得られた累積画素値が格納される。
【０１３５】
以上の動作を所定のサンプリング回数繰返し実行することで、発光部１３の１回の発光に対するヒストグラムがメモリ１７内に作成される。そして、この動作を所定の発光回数分繰返し実行することで、測距範囲内に存在する物体９０までの距離を推定又は算出するためのヒストグラムが作成される。
【０１３６】
２．１０  動作例
図２２は、本実施形態に係るＴｏＦセンサの概略動作例を示すフローチャートである。なお、図２２では、制御部１１（図１参照）の動作に着目して説明する。
【０１３７】
図２２に示すように、本動作では、まず、制御部１１は、制御レジスタ１２に設定されている画素モードを取得し（ステップＳ１１）、つづいて、画素モードが‘０’であるか否か、すなわち、第１画素モードが設定されているか否かを判定する（ステップＳ１２）。画素モードが‘０’である場合（ステップＳ１２のＹＥＳ）、制御部１１は、発光部１３の１回の発光に対して実行するサンプリングの回数（サンプリング回数）ＮｍａｘにＮを設定し（ステップＳ１３）、つづいて、画素数可変並列加算部１６１及びヒストグラム生成部１６３に、画素モード＝０を設定する（ステップＳ１４）。その後、制御部１１は、ヒストグラム処理部１６に第１ヒストグラム処理（例えば、図７、図１１、図１２、図１３及び図１４参照）を実行させ（ステップＳ１５）、ステップＳ２７へ進む。
【０１３８】
また、画素モードが‘０’でない場合（ステップＳ１２のＮＯ）、制御部１１は、画素モードが‘１’であるか否か、すなわち、第２画素モードが設定されているか否かを判定する（ステップＳ１６）。画素モードが‘１’である場合（ステップＳ１６のＹＥＳ）、制御部１１は、サンプリング回数Ｎｍａｘに２Ｎを設定し（ステップＳ１７）、つづいて、画素数可変並列加算部１６１及びヒストグラム生成部１６３に、画素モード＝１を設定する（ステップＳ１８）。その後、制御部１１は、ヒストグラム処理部１６に第２ヒストグラム処理（例えば、図８、図１１、図１５及び図１６参照）を実行させ（ステップＳ１９）、ステップＳ２７へ進む。
【０１３９】
さらに、画素モードが‘１’でない場合（ステップＳ１６のＮＯ）、制御部１１は、画素モードが‘２’であるか否か、すなわち、第３画素モードが設定されているか否かを判定する（ステップＳ２０）。画素モードが‘２’である場合（ステップＳ２０のＹＥＳ）、制御部１１は、サンプリング回数Ｎｍａｘに４Ｎを設定し（ステップＳ２１）、つづいて、画素数可変並列加算部１６１及びヒストグラム生成部１６３に、画素モード＝２を設定する（ステップＳ２２）。その後、制御部１１は、ヒストグラム処理部１６に第３ヒストグラム処理（例えば、図９、図１１、図１７及び図１８参照）を実行させ（ステップＳ２３）、ステップＳ２７へ進む。
【０１４０】
さらにまた、画素モードが‘２’でない場合（ステップＳ２０のＮＯ）、制御部１１は、画素モードが‘３’であると判断して、サンプリング回数Ｎｍａｘに８Ｎを設定し（ステップＳ２４）、つづいて、画素数可変並列加算部１６１及びヒストグラム生成部１６３に、画素モード＝３を設定する（ステップＳ２５）。その後、制御部１１は、ヒストグラム処理部１６に第４ヒストグラム処理（例えば、図１０、図１１、図１９及び図２０参照）を実行させ（ステップＳ２６）、ステップＳ２７へ進む。
【０１４１】
ステップＳ２７では、制御部１１は、第１〜第４ヒストグラム処理のいずれか（ステップＳ１５、Ｓ１９、Ｓ２３又はＳ２６）で生成されたヒストグラムに基づき、測距範囲内に存在する物体９０までの距離を推定又は算出する。その後、制御部１１は、本動作を終了するか否かを判定し（ステップＳ２８）、終了する場合（ステップＳ２８のＹＥＳ）、本動作を終了する。一方、終了しない場合（ステップＳ２８のＮＯ）、制御部１１は、ステップＳ１１へリターンし、以降の動作を実行する。
【０１４２】
２．１０．１  第１ヒストグラム生成処理
図２３は、図２２のステップＳ１５に示す第１ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部１６３におけるヒストグラム生成部１６３０に着目するが、他のヒストグラム生成部１６３１〜１６３７に対しても同様の適用することが可能である。また、以下の説明では、明確化のため、ＢＩＮ番号（ＢＩＮＩＤＸ）とサンプリング番号（Ｎ）とが一致しているものとする。
【０１４３】
図２３に示すように、第１ヒストグラム生成処理では、ヒストグラム生成部１６３０は、まず、現在の発光部１３による発光が何回目の発光であるかを特定するための発光回数Ｍに‘１’を設定する（ステップＳ１０１）とともに、現在のサンプリングが何番目であるかを特定するためのサンプリング番号Ｎを‘０’にリセットする（ステップＳ１０２）。次に、ヒストグラム生成部１６３０は、全てのメモリ１７０〜１７７に対して、許可レベルのイネーブル信号ＥＮ０〜ＥＮ７を入力することで、全てのメモリ１７０〜１７７に対する書込みを許可する（ステップＳ１０３）。なお、サンプリング番号Ｎは、ヒストグラム生成部１６３内の不図示のカウンタにより管理されているものとする。
【０１４４】
次に、ヒストグラム生成部１６３０は、ＳＰＡＤアレイ１４３のＳＰＡＤ画素２０から読み出された検出信号に基づいて算出された画素値Ｄの列（画素値列４９）を行列転置部１６２から入力し（ステップＳ１０４）、入力した画素値列４９における各画素値Ｄ［ｉ］［ｊ］＝Ｄ［０］［０］〜Ｄ［０］［５］を、メモリ１７０に格納された‘ｊ’毎のヒストグラムにおけるＢＩＮＩＤＸ＝ＮのＢＩＮの値に加算する（ステップＳ１０５）。なお、ＳＰＡＤ画素２０からの検出信号の読出しは、上述したように、所定のサンプリング周期で繰返し実行されているものとする。
【０１４５】
次に、ヒストグラム生成部１６３０は、サンプリング番号Ｎが最大値であるサンプリング回数Ｎｍａｘに達しているか否かを判定し（ステップＳ１０６）、達している場合（ステップＳ１０６のＹＥＳ）、ステップＳ１０８へ進む。一方、サンプリング番号Ｎがサンプリング回数Ｎｍａｘに達していない場合（ステップＳ１０６のＮＯ）、ヒストグラム生成部１６３０は、サンプリング番号Ｎを１インクリメントし（ステップＳ１０７）、その後、ステップＳ１０４へリターンして、以降の動作を繰返し実行する。
【０１４６】
ステップＳ１０８では、ヒストグラム生成部１６３０は、例えば、発光部１３の発光が予め定められた所定回数Ｍｍａｘに達しているか否かを判定し、達している場合（ステップＳ１０８のＹＥＳ）、第１ヒストグラム生成処理を終了する。一方、所定回数Ｍｍａｘに達していない場合（ステップＳ１０８のＮＯ）、ヒストグラム生成部１６３０は、発光部１３の発光回数Ｍを１インクリメントし（ステップＳ１０９）、その後、ステップＳ１０１へリターンして、以降の動作を実行する。これにより、発光部１３のＭ回の発光に基づいてヒストグラムを作成することが可能となるため、より正確に物体９０までの距離を推定又は算出することが可能となる。
【０１４７】
２．１０．２  第２ヒストグラム生成処理
図２４は、図２２のステップＳ１９に示す第２ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部１６３におけるヒストグラム生成部１６３０に着目するが、他のヒストグラム生成部１６３１〜１６３７に対しても同様の適用することが可能である。また、図２４に示す動作において、図２３に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
【０１４８】
図２４に示すように、第２ヒストグラム生成処理では、ヒストグラム生成部１６３０は、まず、現在の発光部１３による発光が何回目の発光であるかを特定するための発光回数Ｍに‘１’を設定し（ステップＳ１０１）、変数Ｑの最大値であるＱｍａｘを‘１’に設定する（ステップＳ２０１）とともに、変数Ｑを‘０’にリセットする（ステップＳ２０２）。つづいて、ヒストグラム生成部１６３０は、図２３におけるステップＳ１０２と同様に、サンプリング番号Ｎを‘０’にリセットする（ステップＳ１０２）。
【０１４９】
次に、ヒストグラム生成部１６３０は、メモリ１７０〜１７７のうち、２ｋ＋Ｑ番目のメモリ（図１５に示す例では、メモリ１７０、１７２、１７４及び１７６、又は、メモリ１７１、１７３、１７５及び１７７）に対して、許可レベルのイネーブル信号（図１６に示す例では、イネーブル信号ＥＮ０、ＥＮ２、ＥＮ４及びＥＮ６、又は、イネーブル信号ＥＮ１、ＥＮ３、ＥＮ５及びＥＮ７）を入力することで、２ｋ＋Ｑ番目のメモリに対する書込みを許可する（ステップＳ２０３）。
【０１５０】
次に、ヒストグラム生成部１６３０は、サンプリング番号ＮがＮｍａｘに達するまで、図２３におけるステップＳ１０４〜Ｓ１０７に示す動作と同様の動作を実行することで、各ヒストグラムの前半部分又は後半部分を作成する。
【０１５１】
次に、ヒストグラム生成部１６３０は、変数ＱがＱｍａｘに達しているか否かを判定し（ステップＳ２０４）、達している場合（ステップＳ２０４のＹＥＳ）、ステップＳ１０８へ進む。一方、変数ＱがＱｍａｘに達していない場合（ステップＳ２０４のＮＯ）、ヒストグラム生成部１６３０は、変数Ｑを１インクリメントし（ステップＳ２０５）、その後、ステップＳ１０２へリターンして以降の動作を実行することで、各ヒストグラムの残りの半分を作成する。
【０１５２】
２．１０．３  第３ヒストグラム生成処理
図２５は、図２２のステップＳ２３に示す第３ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部１６３におけるヒストグラム生成部１６３０に着目するが、他のヒストグラム生成部１６３１〜１６３７に対しても同様の適用することが可能である。また、図２５に示す動作において、図２３又は図２４に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
【０１５３】
図２５に示す第３ヒストグラム生成処理は、図２４に示した第２ヒストグラム生成処理と同様の動作において、図２４のステップＳ２０１及びＳ２０３が、それぞれ図２５のステップＳ３０１及びＳ３０２に置き換えられている。
【０１５４】
ステップＳ３０１では、ヒストグラム生成部１６３０は、変数Ｑの最大値であるＱｍａｘを‘３’に設定する。
【０１５５】
ステップＳ３０２では、ヒストグラム生成部１６３０は、メモリ１７０〜１７７のうち、４ｋ＋Ｑ番目のメモリ（図１７に示す例では、メモリ１７０及び１７４、メモリ１７１及び１７５、メモリ１７２及び１７６、又は、メモリ１７３及び１７７）に対して、許可レベルのイネーブル信号（図１８に示す例では、イネーブル信号ＥＮ０及びＥＮ４、イネーブル信号ＥＮ１及びＥＮ５、イネーブル信号ＥＮ２及びＥＮ６、又は、イネーブル信号ＥＮ３及びＥＮ７）を入力することで、４ｋ＋Ｑ番目のメモリに対する書込みを許可する。
【０１５６】
次に、ヒストグラム生成部１６３０は、図２４におけるステップＳ１０４〜Ｓ２０５と同様に、変数Ｑの値ごとに、サンプリング番号Ｎが０からＮｍａｘに達するまで、ステップＳ１０２〜Ｓ１０７に示す動作と同様の動作を実行することで、各ヒストグラムを１／４ずつ作成する。
【０１５７】
その後、ヒストグラム生成部１６３０は、ステップＳ１０８へ進み、発光部１３の発光回数Ｍが所定回数Ｍｍａｘに達するまで、上述した動作を繰返し実行する。
【０１５８】
２．１０．４  第４ヒストグラム生成処理
図２６は、図２２のステップＳ２６に示す第４ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部１６３におけるヒストグラム生成部１６３０に着目するが、他のヒストグラム生成部１６３１〜１６３７に対しても同様の適用することが可能である。また、図２６に示す動作において、図２３〜図２５のいずれかに示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
【０１５９】
図２６に示す第４ヒストグラム生成処理は、図２４に示した第２ヒストグラム生成処理又は図２５に示した第３ヒストグラム生成処理と同様の動作において、図２４のステップＳ２０１及びＳ２０３又は図２５のステップＳ３０１及びＳ３０２が、それぞれ図２６のステップＳ４０１及びＳ４０２に置き換えられている。
【０１６０】
ステップＳ４０１では、ヒストグラム生成部１６３０は、変数Ｑの最大値であるＱｍａｘを‘７’に設定する。
【０１６１】
ステップＳ４０２では、ヒストグラム生成部１６３０は、メモリ１７０〜１７７のうち、８ｋ＋Ｑ番目のメモリ（図１９に示す例では、メモリ１７０、１７１、１７２、１７３、１７４、１７５、１７６、又は、１７７）に対して、許可レベルのイネーブル信号（図２０に示す例では、イネーブル信号ＥＮ０、ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４、ＥＮ５、ＥＮ６、又は、ＥＮ７）を入力することで、８ｋ＋Ｑ番目のメモリに対する書込みを許可する。
【０１６２】
次に、ヒストグラム生成部１６３０は、図２４におけるステップＳ１０４〜Ｓ２０５と同様に、変数Ｑの値ごとに、サンプリング番号Ｎが０からＮｍａｘに達するまで、ステップＳ１０２〜Ｓ１０７に示す動作と同様の動作を実行することで、各ヒストグラムを１／８ずつ作成する。
【０１６３】
その後、ヒストグラム生成部１６３０は、ステップＳ１０８へ進み、発光部１３の発光回数Ｍが所定回数Ｍｍａｘに達するまで、上述した動作を繰返し実行する。
【０１６４】
２．１１  ヒストグラム作成の具体例
つづいて、以上のような構成及び動作に基づいたヒストグラムの作成について、具体例を挙げて説明するなお、以下の説明では、画素モード＝２、すなわち、第３画素モードが設定されている場合を例示するが、他の画素モードに対しても、同様に適用することが可能である。
【０１６５】
図２７は、発光部の１回目の発光（Ｍ＝１）に対してメモリ内に作成されるヒストグラムの一例を示す図である。図２８は、発光部の２回目の発光（Ｍ＝２）に対して得られた各サンプリング番号での画素値の一例を示す図である。図２９は、発光部の２回目の発光（Ｍ＝２）に対してメモリ内に作成されるヒストグラムの一例を示す図である。図３０は、発光部の３回目の発光（Ｍ＝３）に対して得られた各サンプリング番号での画素値の一例を示す図である。図３１は、発光部の３回目の発光（Ｍ＝３）に対してメモリ内に作成されるヒストグラムの一例を示す図である。なお、図２７から図３１に示すヒストグラムは、ｉ及びｊが同じ値の画素値Ｄ［ｉ］［ｊ］〜Ｄ［ｉ＋３］［ｊ］を用いて作成されているものとする。
【０１６６】
まず、図２７に示すように、発光部１３の１回目の発光（Ｍ＝１）に対しては、メモリ１７内には、１回の発光に対するサンプリングによって得られたサンプリング番号Ｎ毎の画素値Ｄが対応するＢＩＮに格納されたヒストグラムが作成される。
【０１６７】
そこで、発光部１３の２回目の発光（Ｍ＝２）に対し、図２８に例示するようなヒストグラムが得られた場合、メモリ１７内には、図２９に示すように、１回目の発光（Ｍ＝１）に対して得られたヒストグラムの各ＢＩＮの値に、２回目の発光（Ｍ＝２）に対して得られたヒストグラムの各ＢＩＮの値が加算されたヒストグラムが作成される。
【０１６８】
同様に、発光部１３の３回目の発光（Ｍ＝３）に対し、図３０に例示するようなヒストグラムが得られた場合、図３１に示すように、メモリ１７内のヒストグラムにおける各ＢＩＮには、１回目の発光（Ｍ＝１）から３回目の発光（Ｍ＝３）までに得られた画素値の累積値（累積画素値）が格納される。
【０１６９】
このように、発光部１３の複数回の発光に対して得られた画素値Ｄを累積することで、反射光Ｌ２を検出した画素値の累積画素値と、外乱光Ｌ０などのノイズに起因した累積画素値との差を大きくすることが可能となる。それにより、反射光Ｌ２とノイズとの弁別の信頼性を高めることが可能となるため、より正確に物体９０までの距離を推定又は算出することが可能となる。
【０１７０】
２．１２  距離推定／算出部
次に、本実施形態に係る距離推定／算出部１８について、以下に説明する。距離推定／算出部１８は、ヒストグラム処理部１６により作成されたメモリ１７内のヒストグラムに基づいて、物体９０までの距離を推定又は算出する。例えば、距離推定／算出部１８は、各ヒストグラムにおいて累積画素値がピーク値となるＢＩＮ番号を特定し、特定したＢＩＮ番号を飛行時間又は距離情報に換算することで、物体９０までの距離を推定又は算出する。
【０１７１】
例えば、第１画素モードである場合には、メモリ１７０〜１７７それぞれに格納されたヒストグラムにおいて累積画素値がピークとなるＢＩＮ番号を特定し、特定されたＢＩＮ番号に基づいて物体９０までの距離を推定又は算出する。また、第２画素モードである場合には、メモリ１７０及び１７１、１７２及び１７３、１７４及び１７５、又は、１７６及び１７７で構成されるヒストグラムそれぞれにおいて累積画素値がピークとなるＢＩＮ番号を特定し、特定されたＢＩＮ番号に基づいて物体９０までの距離を推定又は算出し、第３画素モードである場合には、メモリ１７０〜１７３、又は、１７４〜１７７で構成されるヒストグラムそれぞれにおいて累積画素値がピークとなるＢＩＮ番号を特定し、特定されたＢＩＮ番号に基づいて物体９０までの距離を推定又は算出し、第４画素モードである場合には、メモリ１７０〜１７７で構成されるヒストグラムにおいて累積画素値がピークとなるＢＩＮ番号を特定し、特定されたＢＩＮ番号に基づいて物体９０までの距離を推定又は算出する。
【０１７２】
なお、ＢＩＮ番号から飛行時間又は距離情報への換算は、予め所定のメモリ内に格納されている換算テーブルを用いて実行されてもよいし、ＢＩＮ番号を飛行時間又は距離情報に変換する変換式を予め保持しておき、この変換式を用いて換算されてもよい。
【０１７３】
また、累積画素値のピークとなるＢＩＮ番号の特定では、最も値が大きいＢＩＮのＢＩＮ番号を特定する方法や、ヒストグラムに対してフィッティングをし、それにより得られた関数曲線から累積画素値がピークとなるＢＩＮ番号を特定する方法など、種々の方法を用いることが可能である。
【０１７４】
２．１３  作用・効果
以上のように、本実施形態によれば、画素モードに応じてメモリ１７０〜１７７の使用形態が切り替えられる。例えば、第１画素モードでは、メモリ１７０〜１７７それぞれで計４８つのヒストグラムが作成され、第２画素モードでは、メモリ１７０〜１７７のうちの２つずつを組み合わせて計２４つのヒストグラムが作成され、第３画素モードでは、メモリ１７０〜１７７のうちの４つずつを組み合わせて計１２つのヒストグラムが作成され、第４画素モードでは、メモリ１７０〜１７７の全てを組み合わせて計６つのヒストグラムが作成される。それにより、深いメモリ領域を必要としない場合（例えば、近くを測距する場合）と、深いメモリ領域を必要とする場合（例えば、遠くまでを測距する場合）とで、メモリ１７の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
【０１７５】
また、本実施形態によれば、書込みが行なわれないメモリ１７０〜１７７に対しては、書込みを禁止するイネーブル信号ＥＮ０〜ＥＮ７を供給してメモリを休止状態にすることが可能となるため、消費電力を低減することも可能となる。
【０１７６】
さらに、本実施形態によれば、測距画像における１つの画素に対応するマクロ画素３０の数が画素モードに応じて切り替えられる。それにより、状況に応じてＴｏＦセンサ１の解像度を変更する変更することも可能となる。例えば、近い範囲を測距する場合のような広いダイナミックレンジを必要としない場合には、解像度を高めてきめ細かい測距画像を取得し、遠くまで測距するような広いダイナミックレンジを必要とする場合には、解像度を落として広いダイナミックレンジで測距画像を取得するというように、状況に応じて解像度を効果的に変更することが可能となる。
【０１７７】
３．第２の実施形態
第１の実施形態では、フラッシュ型と称される測距装置について、例を挙げて説明した。これに対し、第２の実施形態では、スキャン型と称される測距装置について、例を挙げて説明する。なお、以下の説明において、第１の実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
【０１７８】
３．１  測距装置（ＴｏＦセンサ）
図３２は、本実施形態に係る測距装置としてのＴｏＦセンサの概略構成例を示す模式図である。図１に示すように、ＴｏＦセンサ２は、制御装置２００と、集光レンズ２０１と、ハーフミラー２０２と、マイクロミラー２０３と、受光レンズ２０４と、スキャン部２０５と、発光部２１３と、受光部２１４とを備える。マイクロミラー２０３と、スキャン部２０５とは、例えば、特許請求の範囲における、アレイ部（例えば、ＳＰＡＤアレイ１４３に相当）に入射する光を走査する走査部に相当する。なお、この走査部には、他にも、集光レンズ２０１、ハーフミラー２０２及び受光レンズ２０４のうちの少なくとも１つが含まれてもよい。
【０１７９】
受光部２１４は、例えば、第１の実施形態で例示したマクロ画素３０が垂直方向（列方向に対応）に配列した構造を備える。すなわち、受光部２１４は、例えば、図３で例示したＳＰＡＤアレイ１４３の一部の列（１列又は数列）で構成することができる。以下、このＳＰＡＤアレイ１４３の一部の列を、マクロ画素列２４３と称する。そこで、図３に例示したＳＰＡＤアレイ１４３を引用すると、本実施形態に係るマクロ画素列２４３は、例えば、列方向に配列する＃０〜＃４７の計４８つのマクロ画素３０が、ｊ＝０〜６の計６つの画素グループ３１に区切られた構造を有する。
【０１８０】
発光部２１３は、例えば、第１の実施形態にかかる発光部１３と同様に、１つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光Ｌ１を所定周期（発光周期）で出射する。また、発光部１３は、例えば、１ＧＨｚ（ギガヘルツ）の周期で、１ｎｓ（ナノ秒）の時間幅のレーザ光Ｌ１を出射する。
【０１８１】
集光レンズ２０１は、発光部２１３から出射したレーザ光Ｌ１を集光する。例えば、集光レンズ２０１は、レーザ光Ｌ１の広がりが受光部２１４の画角分程度となるように、レーザ光Ｌ１を集光する。
【０１８２】
ハーフミラー２０２は、入射したレーザ光Ｌ１の少なくとも一部を、マイクロミラー２０３へ向けて反射する。なお、ハーフミラー２０２に代えて、偏光ミラーなど、一部の光を反射し、他の一部の光を透過する光学素子を用いることも可能である。
【０１８３】
マイクロミラー２０３は、反射面の中心を軸として角度を変化させることができるように、スキャン部２０５に取り付けられている。スキャン部２０５は、例えば、マイクロミラー２０３で反射したレーザ光Ｌ１の像ＳＡが所定の走査エリアＡＲを水平方向に往復するように、マイクロミラー２０３を水平方向に揺動又は振動させる。例えば、スキャン部２０５は、レーザ光Ｌ１の像ＳＡが所定の走査エリアＡＲを１ｍｓ（ミリ秒）で往復するように、マイクロミラー２０３を水平方向に揺動又は振動させる。なお、マイクロミラー２０３の揺動又は振動には、ステッピングモータやピエゾ素子などを利用することができる。
【０１８４】
測距範囲内に存在する物体９０で反射したレーザ光Ｌ１の反射光Ｌ２は、レーザ光Ｌ１の出射軸と同じ光軸を入射軸として、レーザ光Ｌ１とは反対方向からマイクロミラー２０３に入射する。マイクロミラー２０３に入射した反射光Ｌ２は、レーザ光Ｌ１と同じ光軸でハーフミラー２０２に入射し、その一部がハーフミラー２０２を透過する。
【０１８５】
ハーフミラー２０２を透過した反射光Ｌ２の像は、受光レンズ２０４を介することで、受光部２１４におけるマクロ画素列２４３に結像される。
【０１８６】
制御装置２００は、例えば、制御部１１と、制御レジスタ１２と、加算部１５と、ヒストグラム処理部１６と、メモリ１７と、距離推定／算出部１８と外部Ｉ／Ｆ１９とを備える。これらは、例えば、第１の実施形態において例示したものと同様であってよい。ただし、本実施形態に係る制御部１１は、図１に例示した各部に加え、スキャン部２０５も制御する。
【０１８７】
以上のような構成において、加算部１５には、第１の実施形態と同様に、マクロ画素列２４３の各マクロ画素３０における各ＳＰＡＤ画素２０から出力された検出信号Ｖ＿ＯＵＴが、所定のサンプリング周期で入力される。加算部１５は、第１の実施形態と同様に、受光部２１４から出力された検出信号Ｖ＿ＯＵＴの数を１又は複数のマクロ画素ごとに集計し、その集計値を画素値としてヒストグラム処理部１６へ出力する。
【０１８８】
ヒストグラム処理部１６は、第１の実施形態と同様に、画素モードに応じたヒストグラムを、メモリ１７内に作成する。そして、距離推定／算出部１８は、第１の実施形態と同様に、メモリ１７内に作成されたヒストグラムに基づき、物体９０までの距離を推定又は算出する。
【０１８９】
３．２  作用・効果
以上のように、フラッシュ型のＴＯＦセンサ１に限らず、スキャン型のＴＯＦセンサ２においても、画素モードに応じてメモリ１７０〜１７７の使用形態を切り替えることが可能である。それにより、深いメモリ領域を必要としない場合（例えば、近くを測距する場合）と、深いメモリ領域を必要とする場合（例えば、遠くまでを測距する場合）とで、メモリ１７の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
【０１９０】
その他の構成、動作及び効果は、第１の実施形態と同様であってよいため、ここでは詳細な説明を省略する。
【０１９１】
４．応用例
本開示に係る技術は、様々な製品へ応用することができる。例えば、本開示に係る技術は、自動車、電気自動車、ハイブリッド電気自動車、自動二輪車、自転車、パーソナルモビリティ、飛行機、ドローン、船舶、ロボット、建設機械、農業機械（トラクター）などのいずれかの種類の移動体に搭載される装置として実現されてもよい。
【０１９２】
図３３は、本開示に係る技術が適用され得る移動体制御システムの一例である車両制御システム７０００の概略的な構成例を示すブロック図である。車両制御システム７０００は、通信ネットワーク７０１０を介して接続された複数の電子制御ユニットを備える。図３３に示した例では、車両制御システム７０００は、駆動系制御ユニット７１００、ボディ系制御ユニット７２００、バッテリ制御ユニット７３００、車外情報検出ユニット７４００、車内情報検出ユニット７５００、及び統合制御ユニット７６００を備える。これらの複数の制御ユニットを接続する通信ネットワーク７０１０は、例えば、ＣＡＮ（Controller Area Network）、ＬＩＮ（Local Interconnect Network）、ＬＡＮ（Local Area Network）又はＦｌｅｘＲａｙ（登録商標）等の任意の規格に準拠した車載通信ネットワークであってよい。
【０１９３】
各制御ユニットは、各種プログラムにしたがって演算処理を行うマイクロコンピュータと、マイクロコンピュータにより実行されるプログラム又は各種演算に用いられるパラメータ等を記憶する記憶部と、各種制御対象の装置を駆動する駆動回路とを備える。各制御ユニットは、通信ネットワーク７０１０を介して他の制御ユニットとの間で通信を行うためのネットワークＩ／Ｆを備えるとともに、車内外の装置又はセンサ等との間で、有線通信又は無線通信により通信を行うための通信Ｉ／Ｆを備える。図３３では、統合制御ユニット７６００の機能構成として、マイクロコンピュータ７６１０、汎用通信Ｉ／Ｆ７６２０、専用通信Ｉ／Ｆ７６３０、測位部７６４０、ビーコン受信部７６５０、車内機器Ｉ／Ｆ７６６０、音声画像出力部７６７０、車載ネットワークＩ／Ｆ７６８０及び記憶部７６９０が図示されている。他の制御ユニットも同様に、マイクロコンピュータ、通信Ｉ／Ｆ及び記憶部等を備える。
【０１９４】
駆動系制御ユニット７１００は、各種プログラムにしたがって車両の駆動系に関連する装置の動作を制御する。例えば、駆動系制御ユニット７１００は、内燃機関又は駆動用モータ等の車両の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構、車両の舵角を調節するステアリング機構、及び、車両の制動力を発生させる制動装置等の制御装置として機能する。駆動系制御ユニット７１００は、ＡＢＳ（Antilock Brake System）又はＥＳＣ（Electronic Stability Control）等の制御装置としての機能を有してもよい。
【０１９５】
駆動系制御ユニット７１００には、車両状態検出部７１１０が接続される。車両状態検出部７１１０には、例えば、車体の軸回転運動の角速度を検出するジャイロセンサ、車両の加速度を検出する加速度センサ、あるいは、アクセルペダルの操作量、ブレーキペダルの操作量、ステアリングホイールの操舵角、エンジン回転数又は車輪の回転速度等を検出するためのセンサのうちの少なくとも一つが含まれる。駆動系制御ユニット７１００は、車両状態検出部７１１０から入力される信号を用いて演算処理を行い、内燃機関、駆動用モータ、電動パワーステアリング装置又はブレーキ装置等を制御する。
【０１９６】
ボディ系制御ユニット７２００は、各種プログラムにしたがって車体に装備された各種装置の動作を制御する。例えば、ボディ系制御ユニット７２００は、キーレスエントリシステム、スマートキーシステム、パワーウィンドウ装置、あるいは、ヘッドランプ、バックランプ、ブレーキランプ、ウィンカー又はフォグランプ等の各種ランプの制御装置として機能する。この場合、ボディ系制御ユニット７２００には、鍵を代替する携帯機から発信される電波又は各種スイッチの信号が入力され得る。ボディ系制御ユニット７２００は、これらの電波又は信号の入力を受け付け、車両のドアロック装置、パワーウィンドウ装置、ランプ等を制御する。
【０１９７】
バッテリ制御ユニット７３００は、各種プログラムにしたがって駆動用モータの電力供給源である二次電池７３１０を制御する。例えば、バッテリ制御ユニット７３００には、二次電池７３１０を備えたバッテリ装置から、バッテリ温度、バッテリ出力電圧又はバッテリの残存容量等の情報が入力される。バッテリ制御ユニット７３００は、これらの信号を用いて演算処理を行い、二次電池７３１０の温度調節制御又はバッテリ装置に備えられた冷却装置等の制御を行う。
【０１９８】
車外情報検出ユニット７４００は、車両制御システム７０００を搭載した車両の外部の情報を検出する。例えば、車外情報検出ユニット７４００には、撮像部７４１０及び車外情報検出部７４２０のうちの少なくとも一方が接続される。撮像部７４１０には、ＴｏＦ（Time Of Flight）カメラ、ステレオカメラ、単眼カメラ、赤外線カメラ及びその他のカメラのうちの少なくとも一つが含まれる。車外情報検出部７４２０には、例えば、現在の天候又は気象を検出するための環境センサ、あるいは、車両制御システム７０００を搭載した車両の周囲の他の車両、障害物又は歩行者等を検出するための周囲情報検出センサのうちの少なくとも一つが含まれる。
【０１９９】
環境センサは、例えば、雨天を検出する雨滴センサ、霧を検出する霧センサ、日照度合いを検出する日照センサ、及び降雪を検出する雪センサのうちの少なくとも一つであってよい。周囲情報検出センサは、超音波センサ、レーダ装置及びＬＩＤＡＲ（Light Detection and Ranging、Laser Imaging Detection and Ranging）装置のうちの少なくとも一つであってよい。これらの撮像部７４１０及び車外情報検出部７４２０は、それぞれ独立したセンサないし装置として備えられてもよいし、複数のセンサないし装置が統合された装置として備えられてもよい。
【０２００】
ここで、図３４は、撮像部７４１０及び車外情報検出部７４２０の設置位置の例を示す。撮像部７９１０，７９１２，７９１４，７９１６，７９１８は、例えば、車両７９００のフロントノーズ、サイドミラー、リアバンパ、バックドア及び車室内のフロントガラスの上部のうちの少なくとも一つの位置に設けられる。フロントノーズに備えられる撮像部７９１０及び車室内のフロントガラスの上部に備えられる撮像部７９１８は、主として車両７９００の前方の画像を取得する。サイドミラーに備えられる撮像部７９１２，７９１４は、主として車両７９００の側方の画像を取得する。リアバンパ又はバックドアに備えられる撮像部７９１６は、主として車両７９００の後方の画像を取得する。車室内のフロントガラスの上部に備えられる撮像部７９１８は、主として先行車両又は、歩行者、障害物、信号機、交通標識又は車線等の検出に用いられる。
【０２０１】
なお、図３４には、それぞれの撮像部７９１０，７９１２，７９１４，７９１６の撮影範囲の一例が示されている。撮像範囲ａは、フロントノーズに設けられた撮像部７９１０の撮像範囲を示し、撮像範囲ｂ，ｃは、それぞれサイドミラーに設けられた撮像部７９１２，７９１４の撮像範囲を示し、撮像範囲ｄは、リアバンパ又はバックドアに設けられた撮像部７９１６の撮像範囲を示す。例えば、撮像部７９１０，７９１２，７９１４，７９１６で撮像された画像データが重ね合わせられることにより、車両７９００を上方から見た俯瞰画像が得られる。
【０２０２】
車両７９００のフロント、リア、サイド、コーナ及び車室内のフロントガラスの上部に設けられる車外情報検出部７９２０，７９２２，７９２４，７９２６，７９２８，７９３０は、例えば超音波センサ又はレーダ装置であってよい。車両７９００のフロントノーズ、リアバンパ、バックドア及び車室内のフロントガラスの上部に設けられる車外情報検出部７９２０，７９２６，７９３０は、例えばＬＩＤＡＲ装置であってよい。これらの車外情報検出部７９２０〜７９３０は、主として先行車両、歩行者又は障害物等の検出に用いられる。
【０２０３】
図３３に戻って説明を続ける。車外情報検出ユニット７４００は、撮像部７４１０に車外の画像を撮像させるとともに、撮像された画像データを受信する。また、車外情報検出ユニット７４００は、接続されている車外情報検出部７４２０から検出情報を受信する。車外情報検出部７４２０が超音波センサ、レーダ装置又はＬＩＤＡＲ装置である場合には、車外情報検出ユニット７４００は、超音波又は電磁波等を発信させるとともに、受信された反射波の情報を受信する。車外情報検出ユニット７４００は、受信した情報に基づいて、人、車、障害物、標識又は路面上の文字等の物体検出処理又は距離検出処理を行ってもよい。車外情報検出ユニット７４００は、受信した情報に基づいて、降雨、霧又は路面状況等を認識する環境認識処理を行ってもよい。車外情報検出ユニット７４００は、受信した情報に基づいて、車外の物体までの距離を算出してもよい。
【０２０４】
また、車外情報検出ユニット７４００は、受信した画像データに基づいて、人、車、障害物、標識又は路面上の文字等を認識する画像認識処理又は距離検出処理を行ってもよい。車外情報検出ユニット７４００は、受信した画像データに対して歪補正又は位置合わせ等の処理を行うとともに、異なる撮像部７４１０により撮像された画像データを合成して、俯瞰画像又はパノラマ画像を生成してもよい。車外情報検出ユニット７４００は、異なる撮像部７４１０により撮像された画像データを用いて、視点変換処理を行ってもよい。
【０２０５】
車内情報検出ユニット７５００は、車内の情報を検出する。車内情報検出ユニット７５００には、例えば、運転者の状態を検出する運転者状態検出部７５１０が接続される。運転者状態検出部７５１０は、運転者を撮像するカメラ、運転者の生体情報を検出する生体センサ又は車室内の音声を集音するマイク等を含んでもよい。生体センサは、例えば、座面又はステアリングホイール等に設けられ、座席に座った搭乗者又はステアリングホイールを握る運転者の生体情報を検出する。車内情報検出ユニット７５００は、運転者状態検出部７５１０から入力される検出情報に基づいて、運転者の疲労度合い又は集中度合いを算出してもよいし、運転者が居眠りをしていないかを判別してもよい。車内情報検出ユニット７５００は、集音された音声信号に対してノイズキャンセリング処理等の処理を行ってもよい。
【０２０６】
統合制御ユニット７６００は、各種プログラムにしたがって車両制御システム７０００内の動作全般を制御する。統合制御ユニット７６００には、入力部７８００が接続されている。入力部７８００は、例えば、タッチパネル、ボタン、マイクロフォン、スイッチ又はレバー等、搭乗者によって入力操作され得る装置によって実現される。統合制御ユニット７６００には、マイクロフォンにより入力される音声を音声認識することにより得たデータが入力されてもよい。入力部７８００は、例えば、赤外線又はその他の電波を利用したリモートコントロール装置であってもよいし、車両制御システム７０００の操作に対応した携帯電話又はＰＤＡ（Personal Digital Assistant）等の外部接続機器であってもよい。入力部７８００は、例えばカメラであってもよく、その場合搭乗者はジェスチャにより情報を入力することができる。あるいは、搭乗者が装着したウェアラブル装置の動きを検出することで得られたデータが入力されてもよい。さらに、入力部７８００は、例えば、上記の入力部７８００を用いて搭乗者等により入力された情報に基づいて入力信号を生成し、統合制御ユニット７６００に出力する入力制御回路などを含んでもよい。搭乗者等は、この入力部７８００を操作することにより、車両制御システム７０００に対して各種のデータを入力したり処理動作を指示したりする。
【０２０７】
記憶部７６９０は、マイクロコンピュータにより実行される各種プログラムを記憶するＲＯＭ（Read Only Memory）、及び各種パラメータ、演算結果又はセンサ値等を記憶するＲＡＭ（Random Access Memory）を含んでいてもよい。また、記憶部７６９０は、ＨＤＤ（Hard Disc Drive）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等によって実現してもよい。
【０２０８】
汎用通信Ｉ／Ｆ７６２０は、外部環境７７５０に存在する様々な機器との間の通信を仲介する汎用的な通信Ｉ／Ｆである。汎用通信Ｉ／Ｆ７６２０は、ＧＳＭ（登録商標）（Global System of Mobile communications）、ＷｉＭＡＸ（登録商標）、ＬＴＥ（登録商標）（Long Term Evolution）若しくはＬＴＥ−Ａ（LTE−Advanced）などのセルラー通信プロトコル、又は無線ＬＡＮ（Ｗｉ−Ｆｉ（登録商標）ともいう）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などのその他の無線通信プロトコルを実装してよい。汎用通信Ｉ／Ｆ７６２０は、例えば、基地局又はアクセスポイントを介して、外部ネットワーク（例えば、インターネット、クラウドネットワーク又は事業者固有のネットワーク）上に存在する機器（例えば、アプリケーションサーバ又は制御サーバ）へ接続してもよい。また、汎用通信Ｉ／Ｆ７６２０は、例えばＰ２Ｐ（Peer To Peer）技術を用いて、車両の近傍に存在する端末（例えば、運転者、歩行者若しくは店舗の端末、又はＭＴＣ（Machine Type Communication）端末）と接続してもよい。
【０２０９】
専用通信Ｉ／Ｆ７６３０は、車両における使用を目的として策定された通信プロトコルをサポートする通信Ｉ／Ｆである。専用通信Ｉ／Ｆ７６３０は、例えば、下位レイヤのＩＥＥＥ８０２．１１ｐと上位レイヤのＩＥＥＥ１６０９との組合せであるＷＡＶＥ（Wireless Access in Vehicle Environment）、ＤＳＲＣ（Dedicated Short Range Communications）、又はセルラー通信プロトコルといった標準プロトコルを実装してよい。専用通信Ｉ／Ｆ７６３０は、典型的には、車車間（Vehicle to Vehicle）通信、路車間（Vehicle to Infrastructure）通信、車両と家との間（Vehicle to Home）の通信及び歩車間（Vehicle to Pedestrian）通信のうちの１つ以上を含む概念であるＶ２Ｘ通信を遂行する。
【０２１０】
測位部７６４０は、例えば、ＧＮＳＳ（Global Navigation Satellite System）衛星からのＧＮＳＳ信号（例えば、ＧＰＳ（Global Positioning System）衛星からのＧＰＳ信号）を受信して測位を実行し、車両の緯度、経度及び高度を含む位置情報を生成する。なお、測位部７６４０は、無線アクセスポイントとの信号の交換により現在位置を特定してもよく、又は測位機能を有する携帯電話、ＰＨＳ若しくはスマートフォンといった端末から位置情報を取得してもよい。
【０２１１】
ビーコン受信部７６５０は、例えば、道路上に設置された無線局等から発信される電波あるいは電磁波を受信し、現在位置、渋滞、通行止め又は所要時間等の情報を取得する。なお、ビーコン受信部７６５０の機能は、上述した専用通信Ｉ／Ｆ７６３０に含まれてもよい。
【０２１２】
車内機器Ｉ／Ｆ７６６０は、マイクロコンピュータ７６１０と車内に存在する様々な車内機器７７６０との間の接続を仲介する通信インタフェースである。車内機器Ｉ／Ｆ７６６０は、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near Field Communication）又はＷＵＳＢ（Wireless USB）といった無線通信プロトコルを用いて無線接続を確立してもよい。また、車内機器Ｉ／Ｆ７６６０は、図示しない接続端子（及び、必要であればケーブル）を介して、ＵＳＢ（Universal Serial Bus）、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface、又はＭＨＬ（Mobile High-definition Link）等の有線接続を確立してもよい。車内機器７７６０は、例えば、搭乗者が有するモバイル機器若しくはウェアラブル機器、又は車両に搬入され若しくは取り付けられる情報機器のうちの少なくとも１つを含んでいてもよい。また、車内機器７７６０は、任意の目的地までの経路探索を行うナビゲーション装置を含んでいてもよい。車内機器Ｉ／Ｆ７６６０は、これらの車内機器７７６０との間で、制御信号又はデータ信号を交換する。
【０２１３】
車載ネットワークＩ／Ｆ７６８０は、マイクロコンピュータ７６１０と通信ネットワーク７０１０との間の通信を仲介するインタフェースである。車載ネットワークＩ／Ｆ７６８０は、通信ネットワーク７０１０によりサポートされる所定のプロトコルに則して、信号等を送受信する。
【０２１４】
統合制御ユニット７６００のマイクロコンピュータ７６１０は、汎用通信Ｉ／Ｆ７６２０、専用通信Ｉ／Ｆ７６３０、測位部７６４０、ビーコン受信部７６５０、車内機器Ｉ／Ｆ７６６０及び車載ネットワークＩ／Ｆ７６８０のうちの少なくとも一つを介して取得される情報に基づき、各種プログラムにしたがって、車両制御システム７０００を制御する。例えば、マイクロコンピュータ７６１０は、取得される車内外の情報に基づいて、駆動力発生装置、ステアリング機構又は制動装置の制御目標値を演算し、駆動系制御ユニット７１００に対して制御指令を出力してもよい。例えば、マイクロコンピュータ７６１０は、車両の衝突回避あるいは衝撃緩和、車間距離に基づく追従走行、車速維持走行、車両の衝突警告、又は車両のレーン逸脱警告等を含むＡＤＡＳ（Advanced Driver Assistance System）の機能実現を目的とした協調制御を行ってもよい。また、マイクロコンピュータ７６１０は、取得される車両の周囲の情報に基づいて駆動力発生装置、ステアリング機構又は制動装置等を制御することにより、運転者の操作に拠らずに自律的に走行する自動運転等を目的とした協調制御を行ってもよい。
【０２１５】
マイクロコンピュータ７６１０は、汎用通信Ｉ／Ｆ７６２０、専用通信Ｉ／Ｆ７６３０、測位部７６４０、ビーコン受信部７６５０、車内機器Ｉ／Ｆ７６６０及び車載ネットワークＩ／Ｆ７６８０のうちの少なくとも一つを介して取得される情報に基づき、車両と周辺の構造物や人物等の物体との間の３次元距離情報を生成し、車両の現在位置の周辺情報を含むローカル地図情報を作成してもよい。また、マイクロコンピュータ７６１０は、取得される情報に基づき、車両の衝突、歩行者等の近接又は通行止めの道路への進入等の危険を予測し、警告用信号を生成してもよい。警告用信号は、例えば、警告音を発生させたり、警告ランプを点灯させたりするための信号であってよい。
【０２１６】
音声画像出力部７６７０は、車両の搭乗者又は車外に対して、視覚的又は聴覚的に情報を通知することが可能な出力装置へ音声及び画像のうちの少なくとも一方の出力信号を送信する。図３３の例では、出力装置として、オーディオスピーカ７７１０、表示部７７２０及びインストルメントパネル７７３０が例示されている。表示部７７２０は、例えば、オンボードディスプレイ及びヘッドアップディスプレイの少なくとも一つを含んでいてもよい。表示部７７２０は、ＡＲ（Augmented Reality）表示機能を有していてもよい。出力装置は、これらの装置以外の、ヘッドホン、搭乗者が装着する眼鏡型ディスプレイ等のウェアラブルデバイス、プロジェクタ又はランプ等の他の装置であってもよい。出力装置が表示装置の場合、表示装置は、マイクロコンピュータ７６１０が行った各種処理により得られた結果又は他の制御ユニットから受信された情報を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。また、出力装置が音声出力装置の場合、音声出力装置は、再生された音声データ又は音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
【０２１７】
なお、図３３に示した例において、通信ネットワーク７０１０を介して接続された少なくとも二つの制御ユニットが一つの制御ユニットとして一体化されてもよい。あるいは、個々の制御ユニットが、複数の制御ユニットにより構成されてもよい。さらに、車両制御システム７０００が、図示されていない別の制御ユニットを備えてもよい。また、上記の説明において、いずれかの制御ユニットが担う機能の一部又は全部を、他の制御ユニットに持たせてもよい。つまり、通信ネットワーク７０１０を介して情報の送受信がされるようになっていれば、所定の演算処理が、いずれかの制御ユニットで行われるようになってもよい。同様に、いずれかの制御ユニットに接続されているセンサ又は装置が、他の制御ユニットに接続されるとともに、複数の制御ユニットが、通信ネットワーク７０１０を介して相互に検出情報を送受信してもよい。
【０２１８】
なお、図１又は図３２を用いて説明した本実施形態に係るＴｏＦセンサ１又は２の各機能を実現するためのコンピュータプログラムを、いずれかの制御ユニット等に実装することができる。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体を提供することもできる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
【０２１９】
以上説明した車両制御システム７０００において、図１又は図３２を用いて説明した本実施形態に係るＴｏＦセンサ１又は２は、図３３に示した応用例の統合制御ユニット７６００に適用することができる。例えば、ＴｏＦセンサ１又は２の制御部１１、制御レジスタ１２、加算部１５、ヒストグラム処理部１６、メモリ１７、距離推定／算出部１８及び外部Ｉ／Ｆ１９は、統合制御ユニット７６００のマイクロコンピュータ７６１０、記憶部７６９０、車載ネットワークＩ／Ｆ７６８０に相当する。ただし、これに限定されず、車両制御システム７０００が図１におけるホスト８０に相当してもよい。
【０２２０】
また、図１又は図３２を用いて説明した本実施形態に係るＴｏＦセンサ１又は２の少なくとも一部の構成要素は、図３３に示した統合制御ユニット７６００のためのモジュール（例えば、一つのダイで構成される集積回路モジュール）において実現されてもよい。あるいは、図１又は図３２を用いて説明した本実施形態に係るＴｏＦセンサ１又は２が、図３３に示した車両制御システム７０００の複数の制御ユニットによって実現されてもよい。
【０２２１】
以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
【０２２２】
また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
【０２２３】
なお、本技術は以下のような構成も取ることができる。
（１）
複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、
それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、
前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、
前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、
前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリと、
を備え、
各画素は、前記複数の受光素子のうちの１つ以上の受光素子で構成され、
前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズのメモリ領域が各画素に対して割り当てられ、
前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズのメモリ領域が各画素に対して割り当てられる
測距装置。
（２）
前記画素値生成部は、
前記複数の受光素子それぞれから出力された前記検出信号の数を第１所定数の前記受光素子ごとに集計して第１画素値を出力する加算部と、
前記加算部から出力された前記第１画素値に基づいて各画素の前記画素値を出力する可変並列加算部と、
を含み、
前記可変並列加算部は、前記制御レジスタに前記第１画素モードが保持されている場合、前記第１画素値をそのまま各画素の前記画素値として出力し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記第１画素値を加算した値を各画素の前記画素値として出力する
前記（１）に記載の測距装置。
（３）
前記アレイ部における前記複数の受光素子は、それぞれ前記第１所定数の受光素子で構成された複数のマクロ画素にグループ化されており、
前記複数のマクロ画素は、それぞれ第２所定数の前記マクロ画素で構成された第３所定数の画素グループにグループ化されており、
前記可変並列加算部は、前記制御レジスタに前記第２画素モードが保持されている場合、同一の前記画素グループに属する少なくとも２つのマクロ画素から取得された前記少なくとも２つの第１画素値を加算して各画素の前記画素値を算出する
前記（２）に記載の測距装置。
（４）
前記可変並列加算部は、前記制御レジスタに前記第２画素モードが保持されている場合、前記第１画素値を加算して得られた前記画素値を、当該加算の対象とした前記第１画素値の数と同じ数、出力する前記（３）に記載の測距装置。
（５）
前記メモリは、前記第１所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
前記制御レジスタに前記第１画素モードが保持されている場合、１つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納する
前記（２）〜（４）の何れか１項に記載の測距装置。
（６）
前記メモリは、前記第１所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
前記制御レジスタに前記第１画素モードが保持されている場合、１つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第２画素モードが保持されている場合、少なくとも２つの前記メモリ領域で１つの前記画素の前記ヒストグラムを格納し、
前記可変並列加算部から出力された同じ値を持つ前記画素値は、１つの前記画素の前記ヒストグラムを格納する前記少なくとも２つの前記メモリ領域のうち、互いに異なる前記メモリ領域に格納される
前記（４）に記載の測距装置。
（７）
前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第３所定数とし、列方向を前記第２所定数とした画素値行列として出力し、
前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
前記（３）又は（４）に記載の測距装置。
（８）
前記メモリは、前記第３所定数の第１メモリよりなり、
各第１メモリは、前記第２所定数の前記メモリ領域を含み、
前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第３所定数とし、列方向を前記第２所定数とした画素値行列として出力し、
前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
前記（６）に記載の測距装置。
（９）
前記メモリの１つのメモリアドレスは、前記ヒストグラムの１つのＢＩＮに対応し、
前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を前記メモリのメモリアドレス順に当該メモリに書き込むことで前記ヒストグラムを作成するヒストグラム生成部をさらに備える前記（１）〜（８）の何れか１項に記載の測距装置。
（１０）
前記ヒストグラム生成部は、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を、書込み先となる前記メモリアドレスに既に格納されている値に加算する前記（９）に記載の測距装置。
（１１）
前記アレイ部の画角の少なくとも一部を含む範囲にパルス状のレーザ光を出射する発光部をさらに備え、
前記ヒストグラム生成部は、前記制御レジスタに第１画素モードが保持されている場合、第１サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成し、前記制御レジスタに第２画素モードが保持されている場合、前記第１サンプリング回数とは異なる第２サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成する
前記（９）又は（１０）に記載の測距装置。
（１２）
前記メモリに格納されている前記ヒストグラムに基づいて物体までの距離を推定又は算出する距離推定／算出部をさらに備える前記（１）〜（１１）の何れか１項に記載の測距装置。
（１３）
前記受光素子は、ＳＰＡＤ（Single Photon Avalanche Diode）である前記（１）〜（１２）の何れか１項に記載の測距装置。
（１４）
前記第２画素モードの測距範囲は、前記第１画素モードの測距範囲よりも長く、
前記第１画素モードの解像度は、前記第１画素モードの解像度よりも高い
前記（１）〜（１３）の何れか１項に記載の測距装置。
（１５）
前記複数の受光素子が２次元格子状に配列するフラッシュ型である前記（１）〜（１４）の何れか１項に記載の測距装置。
（１６）
前記アレイ部に入射する光を走査する走査部をさらに備える前記（１）〜（１５）の何れか１項に記載の測距装置。
（１７）
複数の画素モードのうちの何れかを設定値として制御レジスタに保持させ、
複数の受光素子それぞれから所定のサンプリング周期で読み出された検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成し、
前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとにメモリに格納する
ことを含み、
各画素は、前記複数の受光素子のうちの１つ以上の受光素子で構成され、
前記制御レジスタに第１画素モードが保持されている場合、前記メモリにおける第１サイズのメモリ領域が各画素に対して割り当てられ、
前記制御レジスタに第２画素モードが保持されている場合、前記メモリにおける前記第１サイズとは異なる第２サイズのメモリ領域が各画素に対して割り当てられる
測距方法。
【符号の説明】
【０２２４】
１、２  ＴｏＦセンサ
１１  制御部
１２  制御レジスタ
１３、２１３  発光部
１４、２１４  受光部
１５  加算部
１６  ヒストグラム処理部
１７  メモリ
１８  距離推定／算出部
１９  外部Ｉ／Ｆ
２０  ＳＰＡＤ画素
２１  フォトダイオード
２２  読出し回路
２３  クエンチ抵抗
２４  選択トランジスタ
２５  デジタル変換器
２６  インバータ
２７  バッファ
３０  マクロ画素
３１  画素グループ
４８０〜４８５、４９０〜４９７  画素値列
５１、６４  セレクタ
５２  加算器（＋１）
５３、５４、５６、６１、６２、６５  Ｄ−ＦＦ
５５  ＳＲＡＭ
６３  加算器
８０  ホスト
９０  物体
１４１  タイミング制御回路
１４２  駆動回路
１４３  ＳＰＡＤアレイ
１４４  出力回路
１５１  パルス整形部
１５２  受光数カウント部
１６１  画素数可変並列加算部
１６２  行列転置部
１６３、１６３０〜１６３７  ヒストグラム生成部
１７０〜１７７、１７００〜１７０５  メモリ
２００  制御装置
２０１  集光レンズ
２０２  ハーフミラー
２０３  マイクロミラー
２０４  受光レンズ
２０５  スキャン部
２４３  マクロ画素列
２５１  抵抗
２５２、２６２  ＮＭＯＳトランジスタ
２６１  ＰＭＯＳトランジスタ
ＡＲ  走査エリア
ＳＡ  像
Ｌ０  外乱光
Ｌ１  レーザ光
Ｌ２  反射光
ＬＤ  画素駆動線
ＬＳ  出力信号線
Ｐ０〜Ｐ２０４７  サンプリング番号
【図１】
2020091117.tif 000003
【図２】
2020091117.tif 000004
【図３】
2020091117.tif 000005
【図４】
2020091117.tif 000006
【図５】
2020091117.tif 000007
【図６】
2020091117.tif 000008
【図７】
2020091117.tif 000009
【図８】
2020091117.tif 000010
【図９】
2020091117.tif 000011
【図１０】
2020091117.tif 000012
【図１１】
2020091117.tif 000013
【図１２】
2020091117.tif 000014
【図１３】
2020091117.tif 000015
【図１４】
2020091117.tif 000016
【図１５】
2020091117.tif 000017
【図１６】
2020091117.tif 000018
【図１７】
2020091117.tif 000019
【図１８】
2020091117.tif 000020
【図１９】
2020091117.tif 000021
【図２０】
2020091117.tif 000022
【図２１】
2020091117.tif 000023
【図２２】
2020091117.tif 000024
【図２３】
2020091117.tif 000025
【図２４】
2020091117.tif 000026
【図２５】
2020091117.tif 000027
【図２６】
2020091117.tif 000028
【図２７】
2020091117.tif 000029
【図２８】
2020091117.tif 000030
【図２９】
2020091117.tif 000031
【図３０】
2020091117.tif 000032
【図３１】
2020091117.tif 000033
【図３２】
2020091117.tif 000034
【図３３】
2020091117.tif 000035
【図３４】
2020091117.tif 000036