処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020116039 - 測距装置及び測距方法

Document

明 細 書

発明の名称 測距装置及び測距方法

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006   0007   0008  

課題を解決するための手段

0009  

図面の簡単な説明

0010  

発明を実施するための形態

0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223  

符号の説明

0224  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34  

明 細 書

発明の名称 : 測距装置及び測距方法

技術分野

[0001]
 本開示は、測距装置及び測距方法に関する。

背景技術

[0002]
 近年、ToF(Time-of-Flight)法により距離計測を行う距離画像センサ(以下、ToFセンサという)が注目されている。例えば、CMOS(Complementary Metal Oxide Semiconductor)半導体集積回路技術を用いて作成された、平面的に配置する複数のSPAD(Single Photon Avalanche Diode)を利用して対象物までの距離を計測するToFセンサが存在する。
[0003]
 SPADを利用したToFセンサでは、光源が発光してからその反射光がSPADに入射までの時間(以下、飛行時間という)を物理量として複数回計測し、その計測結果から生成された物理量のヒストグラムに基づいて、対象物までの距離が特定される。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2010-091378号公報
特許文献2 : 特開2016-176750号公報

発明の概要

発明が解決しようとする課題

[0005]
 ここで、ヒストグラムのBIN数は、光速度一定の法則から、対象物までの距離に相当する。そのため、近くを測距対象とする場合と遠くまでを測距対象とする場合とでは、必要十分なヒストグラムのBIN数が異なる。すなわち、近くを測距対象とする場合には少ないBIN数で十分である一方、より遠くの物体までを測距する場合には、より多くのBIN数が必要となる。
[0006]
 また、ヒストグラムのBIN数は、ヒストグラムを格納するメモリ領域のサイズ(深さともいう)に対応している。したがって、近くを測距対象とする場合には浅いメモリ領域で十分である一方、より遠くまでを測距する場合には、より深いメモリ領域が要求される。
[0007]
 しかしながら、従来では、測距対象の範囲に関わらず、一定のサイズのメモリ領域が使用されていた。そのため、近くを測距する場合など、深いメモリ領域を必要としない場合には、実質的に使用していないメモリ領域が発生し、メモリリソースの効率的な利用がなされていないという課題が存在した。
[0008]
 そこで本開示では、状況に応じてメモリリソースを効率的に利用することが可能な測距装置及び測距方法を提案する。

課題を解決するための手段

[0009]
 上記の課題を解決するために、本開示に係る一形態の測距装置は、複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリとを備え、各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズの領域が各画素に対して割り当てられ、前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズの領域が各画素に対して割り当てられる。

図面の簡単な説明

[0010]
[図1] 第1の実施形態に係る測距装置としてのToFセンサの概略構成例を示すブロック図である。
[図2] 第1の実施形態に係る受光部の概略構成例を示すブロック図である。
[図3] 第1の実施形態に係るSPADアレイの概略構成例を示す模式図である。
[図4] 第1の実施形態に係るSPAD画素の概略構成例を示す回路図である。
[図5] 第1の実施形態に係る加算部のより詳細な構成例を示すブロック図である。
[図6] 第1の実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。
[図7] 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第1画素モード)。
[図8] 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第2画素モード)。
[図9] 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第3画素モード)。
[図10] 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第4画素モード)。
[図11] 第1の実施形態に係る行列転置部の概略構成例を示すブロック図である。
[図12] 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である。
[図13] 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を1つのヒストグラム生成部に着目して説明するためのブロック図である(第1画素モード)。
[図14] 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第1画素モード)。
[図15] 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第2画素モード)。
[図16] 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第2画素モード)。
[図17] 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第3画素モード)。
[図18] 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第3画素モード)。
[図19] 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第4画素モード)。
[図20] 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第4画素モード)。
[図21] 第1の実施形態に係るヒストグラム生成部の動作を説明するための図である。
[図22] 第1の実施形態に係るToFセンサの概略動作例を示すフローチャートである。
[図23] 図22のステップS15に示す第1ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
[図24] 図22のステップS19に示す第2ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
[図25] 図22のステップS23に示す第3ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
[図26] 図22のステップS26に示す第4ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。
[図27] 第1の実施形態に係る発光部の1回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
[図28] 第1の実施形態に係る発光部の2回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。
[図29] 第1の実施形態に係る発光部の2回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
[図30] 第1の実施形態に係る発光部の3回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。
[図31] 第1の実施形態に係る発光部の3回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。
[図32] 第2の実施形態に係る測距装置としてのToFセンサの概略構成例を示す模式図である。
[図33] 車両制御システムの概略的な構成の一例を示すブロック図である。
[図34] 車外情報検出部及び撮像部の設置位置の一例を示す説明図である。

発明を実施するための形態

[0011]
 以下に、本開示の一実施形態について図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
[0012]
 また、以下に示す項目順序に従って本開示を説明する。
  1.はじめに
  2.第1の実施形態
   2.1 測距装置(ToFセンサ)
   2.2 受光部
   2.3 SPADアレイ
   2.4 SPAD画素
   2.5 SPAD画素の概略動作例
   2.6 加算部
   2.7 サンプリング周期
   2.8 ヒストグラム処理部
    2.8.1 画素数可変並列加算部
     2.8.1.1 画素モード=0(第1画素モード)
     2.8.1.2 画素モード=1(第2画素モード)
     2.8.1.3 画素モード=2(第3画素モード)
     2.8.1.4 画素モード=3(第4画素モード)
    2.8.2 行列転置部
    2.8.3 ヒストグラム生成部の概略構成例
     2.8.3.1 第1画素モード(画素モード=0)
      2.8.3.1.1 1回のサンプリングに実行する動作
      2.8.3.1.2 1回の発光に対して実行する動作
     2.8.3.2 第2画素モード(画素モード=1)
      2.8.3.2.1 1回のサンプリングに実行する動作
      2.8.3.2.2 1回の発光に対して実行する動作
     2.8.3.3 第3画素モード(画素モード=2)
      2.8.3.3.1 1回のサンプリングに実行する動作
      2.8.3.3.2 1回の発光に対して実行する動作
     2.8.3.4 第4画素モード(画素モード=3)
      2.8.3.4.1 1回のサンプリングに実行する動作
      2.8.3.4.2 1回の発光に対して実行する動作
   2.9 ヒストグラム処理の回路例
   2.10 動作例
    2.10.1 第1ヒストグラム生成処理
    2.10.2 第2ヒストグラム生成処理
    2.10.3 第3ヒストグラム生成処理
    2.10.4 第4ヒストグラム生成処理
   2.11 ヒストグラム作成の具体例
   2.12 距離推定/算出部
   2.13 作用・効果
  3.第2の実施形態
   3.1 測距装置(ToFセンサ)
   3.2 作用・効果
  4.応用例
[0013]
 1.はじめに
 上述したように、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、要求されるメモリ領域の深さが異なるという課題が存在する。
[0014]
 また、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、ToFセンサで取得した測距画像に対して求められる必要十分な解像度が異なるという課題も存在する。
[0015]
 例えば、SPADを利用したToFセンサは、複数のSPADが2次元格子状に配列するSPADアレイを備えている。SPADアレイの複数のSPADは、それぞれが1つ以上のSPADよりなる複数のマクロ画素にグループ化される。1つのマクロ画素は、測距画像における1つの画素に対応する。したがって、1つのマクロ画素を構成するSPADの数とその領域の形状とを決めると、ToFセンサ全体のマクロ画素数が決定され、それにより、測距画像の解像度が決定されることとなる。そこで例えば、1マクロ画素のSPAD数を小さい値とすることで、ToFセンサが取得する距離画像の解像度を上げることが可能となる。
[0016]
 しかしながら、1マクロ画素のSPAD数を小さい値とすると、1マクロ画素から得られる画素値のダイナミックレンジが狭くなり、遠くの物体からの弱い反射光が略一定の強度の外乱光(背景光ともいう)に埋もれ、反射光と外乱光との弁別が困難になるという課題が発生する。
[0017]
 そのため、遠方に存在する物体や反射率の低い物体の検出性能を高めるためには、1マクロ画素のSPAD数を大きくして画素値のダイナミックレンジを広げることが求められる。
[0018]
 このように、SPADを利用したToFセンサに対しては、1マクロ画素のSPAD数を小さくして高解像度を実現しつつ、小さいBIN数でメモリを使用する使用形態と、1マクロ画素のSPAD数を大きくして広いダイナミックレンジを実現しつつ、大きいBIN数でメモリを使用する使用形態との、相反する使用形態を単一のSPADアレイで実現させたいという要望が存在する。
[0019]
 そこで以下の実施形態では、解像度とBIN数とを変更可能とすることで、状況に応じたメモリリソースの効率的な利用を実現するとともに、状況に応じた解像度とダイナミックレンジとのリバランスを取ることが可能な測距装置及び測距方法について、具体例を挙げて説明する。
[0020]
 2.第1の実施形態
 まず、第1の実施形態について、以下に図面を参照して詳細に説明する。なお、本実施形態では、SPAD画素が2次元格子状に配列して一度に広角の測距画像を取得する、フラッシュ型と称される測距装置について、例を挙げて説明する。
[0021]
 2.1 測距装置(ToFセンサ)
 図1は、本実施形態に係る測距装置としてのToFセンサの概略構成例を示すブロック図である。図1に示すように、ToFセンサ1は、制御部11と、制御レジスタ12と、発光部13と、受光部14と、加算部15と、ヒストグラム処理部16と、距離推定/算出部18と、外部インタフェース(I/F)19とを備える。
[0022]
 制御部11は、例えば、CPU(Central Processing Unit)などの情報処理装置で構成され、ToFセンサ1の各部を制御する。その際、制御部11は、制御レジスタ12に設定値として格納されている画素モードに応じて、ToFセンサ1の各部を制御する。
[0023]
 ToFセンサ1は、ToFセンサ1の解像度や測距範囲等が異なる複数の画素モードを備えており、外部のホスト80等からの指示や制御部11の判断に基づき、画素モードが切り替えられてよい。この画素モードは、例えば、外部I/F19を介してホスト80等から入力された値を制御部11が制御レジスタ12に画素モードに対応した設定値を登録することで設定されてもよいし、制御部11が適宜判断して制御レジスタ12内の画素モードの設定値を変更することで設定されてもよい。
[0024]
 ホスト80は、例えば、ToFセンサ1が自動車等に実装される場合には、自動車等に搭載されているECU(Engine Control Unit)などであってよい。また、ToFセンサ1が家庭内ペットロボットなどの自律移動ロボットやロボット掃除機や無人航空機や追従運搬ロボットなどの自律移動体に搭載されている場合には、ホスト80は、その自律移動体を制御する制御装置等であってよい。
[0025]
 制御レジスタ12は、例えば、ToFセンサ1の画素モードを設定値として保持する。ToFセンサ1の画素モードには、その詳細については後述において例を挙げて説明するが、本説明では、画素モード0から画素モード3が存在する場合を例示する。例えば、画素モード0は、画素モード0~3のうちで最も解像度が高い一方、測距範囲が狭い画素モードであり、画素モード3は、画素モード0~3のうちで最も測距範囲が広い一方、解像度が低い画素モードであり、画素モード1及び2は、画素モード0と画素モード3との間の解像度及び測距範囲の画素モードであるとする。
[0026]
 発光部13は、例えば、1つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光L1を所定周期(発光周期ともいう)で出射する。発光部13は、少なくとも、受光部14の画角以上の角度範囲に向けてレーザ光L1を出射する。また、発光部13は、例えば、1GHz(ギガヘルツ)の周期で、1ns(ナノ秒)の時間幅のレーザ光L1を出射する。発光部13から出射したレーザ光L1は、例えば、測距範囲内に物体90が存在する場合には、この物体90で反射して、反射光L2として、受光部14に入射する。
[0027]
 受光部14は、その詳細については後述するが、例えば、2次元格子状に配列した複数のSPAD画素を備え、発光部13の発光後にフォトンの入射を検出したSPAD画素の数(以下、検出数という)に関する情報(例えば、後述における検出信号の数に相当)を出力する。受光部14は、例えば、発光部13の1回の発光に対し、所定のサンプリング周期でフォトンの入射を検出してその検出数を出力する。
[0028]
 加算部15は、受光部14から出力された検出数を複数のSPAD画素(例えば、後述する1又は複数のマクロ画素に相当)ごとに集計し、その集計値を画素値としてヒストグラム処理部16へ出力する。
[0029]
 ヒストグラム処理部16は、1又は複数のマクロ画素ごとに得られた画素値から、横軸を飛行時間(例えば、サンプリングの順序を示す番号(以下、サンプリング番号という)に相当)とし、縦軸を累積画素値としたヒストグラムを作成する。ヒストグラムは、例えば、ヒストグラム処理部16内のメモリ17に作成される。このメモリ17には、例えば、SRAM(Static Random Access Memory)等を用いることができる。ただし、これに限定されず、DRAM(Dynamic RAM)など、種々のメモリをメモリ17として使用することが可能である。
[0030]
 距離推定/算出部18は、ヒストグラム処理部16が作成したヒストグラムから累積画素値がピークとなる際の飛行時間を特定する。また、距離推定/算出部18は、特定した飛行時間に基づいて、ToFセンサ1又はこれを搭載するデバイスから測距範囲内に存在する物体90までの距離を推定又は算出する。そして、距離推定/算出部18は、推定又は算出した距離の情報を、例えば、外部I/F19を介してホスト80等に出力する。
[0031]
 2.2 受光部
 図2は、本実施形態に係る受光部の概略構成例を示すブロック図である。図2に示すように、受光部14は、タイミング制御回路141と、駆動回路142と、SPADアレイ143と、出力回路144とを備える。
[0032]
 SPADアレイ143は、2次元格子状に配列する複数のSPAD画素20を備える。複数のSPAD画素20に対しては、列ごとに画素駆動線LD(図面中の上下方向)が接続され、行ごとに出力信号線LS(図面中の左右方向)が接続される。画素駆動線LDの一端は、駆動回路142の各列に対応した出力端に接続され、出力信号線LSの一端は、出力回路144の各行に対応した入力端に接続される。
[0033]
 駆動回路142は、シフトレジスタやアドレスデコーダなどを含み、SPADアレイ143の各SPAD画素20を、全画素同時や列単位等で駆動する。そこで、駆動回路142は、少なくとも、SPADアレイ143内の選択列における各SPAD画素20に、後述するクエンチ電圧V_QCHを印加する回路と、選択列における各SPAD画素20に、後述する選択制御電圧V_SELを印加する回路とを含む。そして、駆動回路142は、読出し対象の列に対応する画素駆動線LDに選択制御電圧V_SELを印加することで、フォトンの入射を検出するために用いるSPAD画素20を列単位で選択する。
[0034]
 駆動回路142によって選択走査された列の各SPAD画素20から出力される信号(検出信号という)V_OUTは、出力信号線LSの各々を通して出力回路144に入力される。出力回路144は、各SPAD画素20から入力された検出信号V_OUTを、後述するマクロ画素ごとに設けられた加算部15(図1参照)へ出力する。
[0035]
 タイミング制御回路141は、各種のタイミング信号を生成するタイミングジェネレータ等を含み、タイミングジェネレータで生成された各種のタイミング信号を基に、駆動回路142及び出力回路144を制御する。
[0036]
 2.3 SPADアレイ
 図3は、本実施形態に係るSPADアレイの概略構成例を示す模式図である。図3に示すように、SPADアレイ143は、例えば、複数のSPAD画素20が2次元格子状に配列した構成を備える。複数のSPAD画素20は、行及び/又は列方向に配列する所定数ずつのSPAD画素20で構成された複数のマクロ画素30にグループ化されている。各マクロ画素30の最外周に位置するSPAD画素40の外側の縁を結んだ領域の形状は、所定の形状(例えば、矩形)をなしている。
[0037]
 また、列方向に配列する複数のマクロ画素30は、所定数ずつの複数の画素グループ31に区切られている。図3に示す例では、列方向に配列する#0~#47の計48つのマクロ画素30が、j=0~6の計6つの画素グループ31に区切られている。したがって、各画素グループ31には、i=0~7の計8つのマクロ画素30が属している。
[0038]
 2.4 SPAD画素
 図4は、本実施形態に係るSPAD画素の概略構成例を示す回路図である。図4に示すように、SPAD画素20は、受光素子としてのフォトダイオード21と、フォトダイオード21にフォトンが入射したことを検出する読出し回路22とを備える。フォトダイオード21は、そのアノードとカソードとの間に降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧V_SPADが印加されている状態でフォトンが入射すると、アバランシェ電流を発生する。
[0039]
 読出し回路22は、クエンチ抵抗23と、デジタル変換器25と、インバータ26と、バッファ27と、選択トランジスタ24とを備える。クエンチ抵抗23は、例えば、N型のMOSFET(Metal Oxide Semiconductor Field Effect Transistor。以下、NMOSトランジスタという)で構成され、そのドレインがフォトダイオード21のアノードに接続され、そのソースが選択トランジスタ24を介して接地されている。また、クエンチ抵抗23を構成するNMOSトランジスタのゲートには、当該NMOSトランジスタをクエンチ抵抗として作用させるために予め設定されているクエンチ電圧V_QCHが、駆動回路142から画素駆動線LDを介して印加される。
[0040]
 本実施形態において、フォトダイオード21はSPADである。SPADは、そのアノードとカソードとの間に降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧が印加されるとガイガーモードで動作するアバランシェフォトダイオードであり、1つのフォトンの入射を検出可能である。
[0041]
 デジタル変換器25は、抵抗251とNMOSトランジスタ252とを備える。NMOSトランジスタ252は、そのドレインが抵抗251を介して電源電圧VDDに接続され、そのソースが接地されている。また、NMOSトランジスタ252のゲートには、フォトダイオード21のアノードとクエンチ抵抗23との接続点N1の電圧が印加される。
[0042]
 インバータ26は、P型のMOSFET(以下、PMOSトランジスタという)261とNMOSトランジスタ262とを備える。PMOSトランジスタ261は、そのドレインが電源電圧VDDに接続され、そのソースがNMOSトランジスタ262のドレインに接続されている。NMOSトランジスタ262は、そのドレインがPMOSトランジスタ261のソースに接続され、そのソースが接地されている。PMOSトランジスタ261のゲート及びNMOSトランジスタ262のゲートには、それぞれ抵抗251とNMOSトランジスタ252のドレインとの接続点N2の電圧が印加される。インバータ26の出力は、バッファ27に入力される。
[0043]
 バッファ27は、インピーダンス変換のための回路であり、インバータ26から出力信号を入力すると、その入力した出力信号をインピーダンス変換し、検出信号V_OUTとして出力する。
[0044]
 選択トランジスタ24は、例えば、NMOSトランジスタであり、そのドレインがクエンチ抵抗23を構成するNMOSトランジスタのソースに接続され、そのソースが接地されている。選択トランジスタ24は、駆動回路142に接続されており、選択トランジスタ24のゲートに駆動回路142からの選択制御電圧V_SELが画素駆動線LDを介して印加されると、オフ状態からオン状態に変化する。
[0045]
 2.5 SPAD画素の概略動作例
 図4に例示した読出し回路22は、例えば、以下のように動作する。すなわち、まず、駆動回路142から選択トランジスタ24に選択制御電圧V_SELが印加されて選択トランジスタ24がオン状態となっている期間、フォトダイオード21には降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧V_SPADが印加される。これにより、フォトダイオード21の動作が許可される。
[0046]
 一方、駆動回路142から選択トランジスタ24に選択制御電圧V_SELが印加されておらず、選択トランジスタ24がオフ状態となっている期間、逆バイアス電圧V_SPADがフォトダイオード21に印加されないことから、フォトダイオード21の動作が禁止される。
[0047]
 選択トランジスタ24がオン状態であるときにフォトダイオード21にフォトンが入射すると、フォトダイオード21においてアバランシェ電流が発生する。それにより、クエンチ抵抗23にアバランシェ電流が流れ、接続点N1の電圧が上昇する。接続点N1の電圧がNMOSトランジスタ252のオン電圧よりも高くなると、NMOSトランジスタ252がオン状態になり、接続点N2の電圧が電源電圧VDDから0Vに変化する。そして、接続点N2の電圧が電源電圧VDDから0Vに変化すると、PMOSトランジスタ261がオフ状態からオン状態に変化すると共にNMOSトランジスタ262がオン状態からオフ状態に変化し、接続点N3の電圧が0Vから電源電圧VDDに変化する。その結果、バッファ27からハイレベルの検出信号V_OUTが出力される。
[0048]
 その後、接続点N1の電圧が上昇し続けると、フォトダイオード21のアノードとカソードとの間に印加されている電圧が降伏電圧よりも小さくなり、それにより、アバランシェ電流が止まって、接続点N1の電圧が低下する。そして、接続点N1の電圧がNMOSトランジスタ452のオン電圧よりも低くなると、NMOSトランジスタ452がオフ状態になり、バッファ27からの検出信号V_OUTの出力が停止する(ローレベル)。
[0049]
 このように、読出し回路22は、フォトダイオード21にフォトンが入射してアバランシェ電流が発生し、これによりNMOSトランジスタ452がオン状態になったタイミングから、アバランシェ電流が止まってNMOSトランジスタ452がオフ状態になるタイミングまでの期間、ハイレベルの検出信号V_OUTを出力する。出力された検出信号V_OUTは、出力回路144を介して、マクロ画素30ごとの加算部15(図1参照)に入力される。したがって、各加算部15には、1つのマクロ画素30を構成する複数のSPAD画素20のうちでフォトンの入射が検出されたSPAD画素20の数(検出数)の検出信号V_OUTが入力される。
[0050]
 2.6 加算部
 図5は、本実施形態に係る加算部のより詳細な構成例を示すブロック図である。図5に示すように、加算部15は、例えば、パルス整形部151と、受光数カウント部152とを備える。
[0051]
 パルス整形部151は、SPADアレイ143から出力回路144を介して入力した検出信号V_OUTのパルス波形を、加算部15の動作クロックに応じた時間幅のパルス波形に整形する。
[0052]
 受光数カウント部152は、対応するマクロ画素30からサンプリング周期ごとに入力された検出信号V_OUTをカウントすることで、フォトンの入射が検出されたSPAD画素20の個数(検出数)をサンプリング周期ごとに計数し、この計数値をマクロ画素30の画素値dとして出力する。
[0053]
 なお、図5における画素値d[i][j][8:0]のうち、[i]は、各画素グループ31におけるマクロ画素30を特定する識別子であり、本例では‘0’から‘7’までの値(図3参照)である。また、[j]は、画素グループ31を特定するための識別子であり、本例では‘0’から‘5’までの値(図3参照)である。さらに、[8:0]は、画素値d[i][j]のビット数を示している。これは、後述する画素値D[i][j]においても同様である。したがって、図5には、加算部15が、識別子i及びjで特定されるマクロ画素30から入力された検出信号V_OUTに基づき、‘0’~‘511’の値を取り得る9ビットの画素値dを生成することが例示されている。
[0054]
 2.7 サンプリング周期
 ここで、サンプリング周期とは、発光部13がレーザ光L1を出射してから受光部14でフォトンの入射が検出されるまでの時間(飛行時間)を計測する周期である。このサンプリング周期には、発光部13の発光周期よりも短い周期が設定される。例えば、サンプリング周期をより短くすることで、より高い時間分解能で、発光部13から出射して物体90で反射したフォトンの飛行時間を推定又は算出することが可能となる。これは、サンプリング周波数をより高くすることで、より高い測距分解能で物体90までの距離を推定又は算出することが可能となることを意味している。
[0055]
 例えば、発光部13がレーザ光L1を出射して、このレーザ光L1が物体90で反射し、この反射光L2が受光部14に入射するまでの飛行時間をtとすると、光速Cが一定(C≒300,000,000m(メートル)/s(秒)であることから、物体90までの距離Lは、以下の式(1)のように推定又は算出することができる。
L=C×t/2  (1)
[0056]
 そこで、サンプリング周波数を1GHzとすると、サンプリング周期は1ns(ナノ秒)となる。その場合、1つのサンプリング周期は、15cm(センチメートル)に相当する。これは、サンプリング周波数を1GHzとした場合の測距分解能が15cmであることを示している。また、サンプリング周波数を2倍の2GHzとすると、サンプリング周期は0.5ns(ナノ秒)となるため、1つのサンプリング周期は、7.5cm(センチメートル)に相当する。これは、サンプリング周波数を2倍とした場合、測距分解能を1/2にすることができることを示している。このように、サンプリング周波数を高くしてサンプリング周期を短くすることで、より精度良く、物体90までの距離を推定又は算出することが可能となる。
[0057]
 2.8 ヒストグラム処理部
 つづいて、本実施形態に係るヒストグラム処理部16について、以下に図面を参照して詳細に説明する。
[0058]
 図6は、本実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。なお、図6では、明確化のため、SPADアレイ143の構成及び加算部15も図示されている。また、図6では、説明の都合上、メモリ17が省略されているが、各ヒストグラム生成部1630~1637内に含まれているものとする。
[0059]
 図6に示すように、SPADアレイ143における複数のマクロ画素30に対しては、一対一に加算部15が設けられている。また、図1におけるヒストグラム処理部16は、SPADアレイ143における画素グループ31に対して一対一に設けられた画素数可変並列加算部161と、複数の画素数可変並列加算部161に対して共通に設けられた行列転置部162と、ヒストグラム生成部1630~1637(以下、ヒストグラム生成部1630~1637を区別しない場合、その符号を163とする)とを備える。加算部15と、画素数可変並列加算部161と、行列転置部162とは、例えば、請求の範囲における画素値生成部に相当する。
[0060]
 2.8.1 画素数可変並列加算部
 図7~図10は、本実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である。なお、図7は、画素モードが‘0’である場合の画素数可変並列加算部161の概略構成例を示し、図8は、画素モードが‘1’である場合の画素数可変並列加算部161の概略構成例を示し、図9は、画素モードが‘2’である場合の画素数可変並列加算部161の概略構成例を示し、図10は、画素モードが‘3’である場合の画素数可変並列加算部161の概略構成例を示している。
[0061]
 2.8.1.1 画素モード=0(第1画素モード)
 まず、図7に示すように、制御部11から画素モード‘0’が設定された場合、言い換えれば、全ての画素モードの中で最も解像度が高く且つ最も測距範囲が狭い画素モード(以下、第1画素モードという)が設定された場合、画素数可変並列加算部161は、加算部15から入力された計8つの8ビットの画素値d[i][j][8:0](i=0~7)を、それぞれの値を代えずに、計8つの12ビットの画素値D[i][j][11:0](i=0~7)として出力する。したがって、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][11:0](i=0~7)が並列に出力される。この場合、1つのマクロ画素が測距画像における1つの画素に相当する。したがって、ToFセンサ1の解像度は、単位面積あたりのマクロ画素30の数となる。
[0062]
 2.8.1.2 画素モード=1(第2画素モード)
 次に、図8に示すように、制御部11から画素モード‘1’が設定された場合、言い換えれば、全ての画素モードの中で2番目に解像度が高く且つ2番目に測距範囲が狭い画素モード(以下、第2画素モードという)が設定された場合、画素数可変並列加算部161には、i=2k(kは0以上3以下の整数)の画素値d[2k][j][8:0]と、i=2k+1の画素値d[j][2k+1][8:0]とを加算する4つの加算器41が実装される。なお、加算器41の実装は、例えば、所定のプログラムを実行することで実現されてよい。
[0063]
 i=0の画素値d[0][j][8:0]とi=1の画素値d[1][j][8:0]とが入力される加算器41は、これら8ビットの画素値を加算して12ビットの画素値Dを生成する。生成された12ビットの画素値Dは、i=0の画素値D[0][j][11:0]及びi=1の画素値D[1][j][11:0]として、画素数可変並列加算部161から出力される。したがって、画素値D[0][j][11:0]と画素値D[1][j][11:0]とは、同じ値を持つ。
[0064]
 同様に、i=2の画素値d[2][j][8:0]とi=3の画素値d[3][j][8:0]とが入力される加算器41は、これらを加算して12ビットの画素値Dを生成し、生成された12ビットの画素値Dは、同じ値を持つ画素値D[2][j][11:0]及び画素値D[3][j][11:0]として出力される。i=4の画素値d[4][j][8:0]とi=5の画素値d[5][j][8:0]とが入力される加算器41は、これらを加算して12ビットの画素値Dを生成し、生成された12ビットの画素値Dは、同じ値を持つ画素値D[4][j][11:0]及び画素値D[5][j][11:0]として出力される。i=6の画素値d[6][j][8:0]とi=7の画素値d[7][j][8:0]とが入力される加算器41は、これらを加算して12ビットの画素値Dを生成し、生成された12ビットの画素値Dは、同じ値を持つ画素値D[6][j][11:0]及び画素値D[7][j][11:0]として出力される。
[0065]
 このように、第2画素モードでは、2つのマクロ画素30から得られた値を加算して、同じ値を持つ2つの画素値D[2k][j][11:0]及びD[2k+1][j][11:0]を生成している。これは、第2画素モードでは、2つのマクロ画素30が測距画像における1つの画素に対応することを示している。したがって、第2画素モードでは、ToFセンサ1の解像度が、例えば、第1画素モードの1/2となる。
[0066]
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][11:0](i=0~7)が並列に出力される。
[0067]
 2.8.1.3 画素モード=2(第3画素モード)
 次に、図9に示すように、制御部11から画素モード‘2’が設定された場合、言い換えれば、全ての画素モードの中で3番目に解像度が高く且つ3番目に測距範囲が狭い画素モード(以下、第3画素モードという)が設定された場合、画素数可変並列加算部161には、i=4k(kは0又は1)の画素値d[4k][j][8:0]と、i=4k+1の画素値d[4k+1][j][8:0]と、i=4k+2の画素値d[4k+2][j][8:0]と、i=4k+3の画素値d[4k+3][j][8:0]とを加算する2つの加算器45が実装される。
[0068]
 各加算器45は、例えば、第2画素モードが設定された際に実装された4つの加算器41の出力を2つずつ加算する2つの加算器42をさらに実装することで実現することができる。加算器42の実装は、例えば、加算器41と同様に、所定のプログラムを実行することで実現されてよい。
[0069]
 i=0~3の画素値d[0][j][8:0]~d[3][j][8:0]が入力される加算器45は、これら8ビットの画素値を加算して12ビットの画素値Dを生成する。生成された12ビットの画素値Dは、i=0~3の画素値D[0][j][11:0]~D[3][j][11:0]として、画素数可変並列加算部161から出力される。したがって、画素値D[0][j][11:0]~D[3][j][11:0]は、それぞれ同じ値を持つ。
[0070]
 同様に、i=4~7の画素値d[4][j][8:0]~d[7][j][8:0]が入力される加算器45は、これらを加算して12ビットの画素値Dを生成する。生成された12ビットの画素値Dは、同じ値を持つ画素値D[4][j][11:0]~D[7][j][11:0]として出力される。
[0071]
 このように、第3画素モードでは、4つのマクロ画素30から得られた値を加算して、同じ値を持つ4つの画素値D[4k][j][11:0]、D[4k+1][j][11:0]、D[4k+2][j][11:0]及びD[4k+3][j][11:0]を生成している。これは、第3画素モードでは、4つのマクロ画素30が測距画像における1つの画素に対応することを示している。したがって、第3画素モードでは、ToFセンサ1の解像度が、例えば、第1画素モードの1/4となる。
[0072]
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][10:0](i=0~7)が並列に出力される。
[0073]
 2.8.1.4 画素モード=3(第4画素モード)
 次に、図10に示すように、制御部11から画素モード‘3’が設定された場合、言い換えれば、全ての画素モードの中で最も解像度が低く且つ最も測距範囲が広い画素モード(以下、第4画素モードという)が設定された場合、画素数可変並列加算部161には、全ての画素値d[i][j][8:0](i=0~7)を加算する加算器46が実装される。
[0074]
 加算器46は、例えば、第3画素モードが設定された際に追加実装された2つの加算器42の出力を加算する加算器43をさらに実装することで実現することができる。加算器43の実装は、例えば、加算器41及び42と同様に、所定のプログラムを実行することで実現されてよい。
[0075]
 加算器46は、入力された全ての画素値d[i][j][8:0](i=0~7)を加算して12ビットの画素値Dを生成する。生成された12ビットの画素値Dは、i=0~7の画素値D[0][j][11:0]~D[7][j][11:0]として、画素数可変並列加算部161から出力される。したがって、画素値D[0][j][11:0]~D[7][j][11:0]は、それぞれ同じ値を持つ。
[0076]
 このように、第4画素モードでは、8つのマクロ画素30から得られた値を加算して、同じ値を持つ8つの画素値D[i][j][11:0](i=0~7)を生成している。これは、第4画素モードでは、8つのマクロ画素30が測距画像における1つの画素に対応することを示している。したがって、第4画素モードでは、ToFセンサ1の解像度が、例えば、第1画素モードの1/8となる。
[0077]
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][11:0](i=0~7)が並列に出力される。
[0078]
 このように、本実施形態では、画素モードに応じて、画素数可変並列加算部161が加算する画素値dの数が変更される。
[0079]
 2.8.2 行列転置部
 図11は、本実施形態に係る行列転置部の概略構成例を示すブロック図である。図11に示すように、行列転置部162には、j=0~7の画素グループ31それぞれに対して一対一に対応する6つの画素数可変並列加算部161それぞれから、8つの画素値D[i][j](i=0~7、j=0~5)(以下、画素値列480~485という)が入力される。すなわち、行列転置部162には、6つの画素数可変並列加算部161から、8行6列に配列した合計48つの画素値D[i][j](以下、画素値行列という)が入力される。行列転置部162は、この入力された8行6列の画素値行列の行列を転置することで、6行8列の画素値行列を生成する。
[0080]
 そして行列転置部162は、行列転置後の画素値行列を、列ごとに、後段のヒストグラム生成部163に入力する。行列転置後の画素値列490~497に対しては、列に対して一対一に、ヒストグラム生成部1630~1637が設けられている。したがって、画素値列490はヒストグラム生成部1630に入力され、画素値列491はヒストグラム生成部1631に入力され、画素値列492はヒストグラム生成部1632に入力され、画素値列493はヒストグラム生成部1633に入力され、画素値列494はヒストグラム生成部1634に入力され、画素値列495はヒストグラム生成部1635に入力され、画素値列496はヒストグラム生成部1636に入力され、画素値列497はヒストグラム生成部1637に入力される。以下、画素値列490~497を区別しない場合、その符号を49とする。
[0081]
 2.8.3 ヒストグラム生成部の概略構成例
 図12及び図13、図15、図17、並びに、図19は、本実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である。また、図14、図16、図18及び図20は、本実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである。なお、図12、図13及び図14は、画素モードが‘0’である場合のヒストグラム生成部を説明するための図であり、図15及び図16は、画素モードが‘1’である場合のヒストグラム生成部を説明するための図であり、図17及び図18は、画素モードが‘2’である場合のヒストグラム生成部を説明するための図であり、図19及び図20は、画素モードが‘3’である場合のヒストグラム生成部を説明するための図である。
[0082]
 2.8.3.1 第1画素モード(画素モード=0)
 まず、ヒストグラム生成部163に第1画素モード(画素モード=0)が設定された場合について説明する。
[0083]
 2.8.3.1.1 1回のサンプリングに実行する動作
 図12に示すように、制御部11から画素モード=0、すなわち、第1画素モードが設定された場合、ヒストグラム生成部1630~1637それぞれは、行列転置部162から入力された画素値列49の値を、それぞれに対応するメモリ170~177に格納されている各ヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
[0084]
 この動作を、ヒストグラム生成部1630に着目してより詳細に説明すると、図13に示すように、ヒストグラム生成部1630内のメモリ170には、画素グループ31と同数のメモリ1700~1705が含まれている。各メモリ1700~1705は、j=0~5の画素グループ31と一対一に対応付けられており、それぞれが対応する画素グループ31におけるマクロ画素30から得られた画素値に基づくヒストグラムを格納する。
[0085]
 各メモリ1700~1705内のヒストグラムのBIN番号(BINIDXとも記す)は、例えば、メモリ1700~1705それぞれのメモリアドレスに対応している。また、各ヒストグラムの1つのBINは、1つのサンプリング周期に対応している。したがって、本例では、小さいBIN番号であるほど、発光部13の発光から初期のタイミングで実行されたサンプリング、すなわち、若いサンプリング番号のサンプリングに対応している。なお、図13には、発光部13の1回の発光に対して256回のサンプリングを実行する場合が例示されている。
[0086]
 ヒストグラム生成部1630は、入力された画素値列490(マクロ画素30の識別子iは‘0’)のうち、画素グループ31の識別子jが‘0’である画素値D[0][0]を、j=0に対応する画素グループ31用のメモリ(以下、j=0のメモリという)1700内のヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。例えば、現在のサンプリング番号がBINIDX=50に対応する場合、ヒストグラム生成部1630は、画素値D[0][0]を、メモリ1700内のヒストグラムにおけるBINIDX=50のBINに格納されている値に加算する。
[0087]
 同様に、ヒストグラム生成部1630は、j=1~5の画素グループ31におけるマクロ画素30から取得された画素値D[0][1]~D[0][5]を、j=1~5のメモリ1701~1705内のヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
[0088]
 以上の動作をヒストグラム生成部1630~1637それぞれにおいて実行することで、現在のサンプリング番号で取得された画素値D[i][j](i=0~7、j=0~5)が各メモリ1700~1705内のヒストグラムにおける対応するBINの値に加算される。その結果、第1画素モードでは、1つの画素グループ31に含まれるマクロ画素30の数Smax(本例では8つ)に、画素グループ31の数Nc(本例では6つ)をかけた数(本例では48つ)のヒストグラムが、メモリ17内に作成される。
[0089]
 なお、現在のサンプリング番号がどのBINに対応するかの情報は、例えば、制御部11等からヒストグラム処理部16に入力されてもよいし、ヒストグラム処理部16や加算部15の内部で現在のサンプリング番号が何番目であるかや、発光部13の発光からの経過時間を管理しておき、その管理値に基づいてヒストグラム生成部163が特定してもよい。
[0090]
 2.8.3.1.2 1回の発光に対して実行する動作
 また、図14に示すように、図12及び図13を用いて説明したサンプリング動作は、所定のサンプリング回数(本例では、256回)、繰返し実行される。所定回数のサンプリングが実行される期間(図14におけるサンプリング番号P0~P255の期間)中、メモリ170~177に対する書込みを許可又は禁止するイネーブル信号EN0~EN7は、ハイレベル(許可レベル)に維持される。それにより、各メモリ170~177内のNc個のメモリ(図13に示す例では、メモリ1700~1705)に対する書込みが許可され、最終的に、発光部13の1回の発光に対して計48つのヒストグラムがメモリ17内に作成される。
[0091]
 2.8.3.2 第2画素モード(画素モード=1)
 次に、ヒストグラム生成部163に第2画素モード(画素モード=1)が設定された場合について説明する。
[0092]
 2.8.3.2.1 1回のサンプリングに実行する動作
 図15に示すように、制御部11から画素モード‘1’、すなわち、第2画素モードが設定された場合、画素数可変並列加算部161による画素値Dの加算(図8参照)により、画素値列49における、i=0及び1の画素値D[0][j]及びD[1][j]は同じ値となり、i=2及び3の画素値D[2][j]及びD[3][j]は同じ値となり、i=4及び5の画素値D[4][j]及びD[5][j]は同じ値となり、i=6及び7の画素値D[6][j]及びD[7][j]は同じ値となる。
[0093]
 そこで、第2画素モードでは、ヒストグラム生成部163は、同じ値を持つ2つの画素値Dを用いて1つのヒストグラムを作成する。具体的には、画素値D[0][j]及びD[1][j]を用いて1つのヒストグラムを作成し、画素値D[2][j]及びD[3][j]を用いて1つのヒストグラムを作成し、画素値D[4][j]及びD[5][j]を用いて1つのヒストグラムを作成し、画素値D[6][j]及びD[7][j]を用いて1つのヒストグラムを作成する。
[0094]
 言い換えれば、第2画素モードでは、ヒストグラム生成部163は、同じ値を持つ2つの画素値Dの格納先となる2つのメモリ170及び171、172及び173、174及び175、並びに、176及び177を用いて、それぞれ1つのヒストグラムを作成する。その際、一方のメモリ170、172、174及び176をヒストグラムの前半のBINに割り当て、他方のメモリ171、173、175及び177をヒストグラムの後半のBINに割り当てる。例えば、一方のメモリ170、172、174及び176をヒストグラムのBINIDX=0~255のBINに割り当て、他方のメモリ171、173、175及び177をヒストグラムのBINIDX=256~511のBINに割り当てる。これにより、ヒストグラムのBIN数を2倍に増加させることが可能となるため、測距範囲を広げることが可能となる。
[0095]
 具体的には、まず、ヒストグラム生成部163のうちのヒストグラム生成部1630、1632、1634及び1636が、行列転置部162から入力された画素値列49のうち、i=2k(kは0以上3以下の整数)の画素値D[2k][j](j=0~5)の値を、メモリ170、172、174及び176に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算し、次に、残りのヒストグラム生成部1631、1633、1635及び1637が、i=2k+1の画素値D[2k+1][j](j=0~5)の値を、メモリ171、173、175及び177に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
[0096]
 それにより、メモリ170及び171でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ172及び173でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ174及び175でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ176及び177でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成される。
[0097]
 2.8.3.2.2 1回の発光に対して実行する動作
 また、図16に示すように、図15を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第1画素モードのサンプリング回数の2倍のサンプリング回数(本例では、512回)、繰返し実行される。その際、第2画素モードでは、第2画素モードヒストグラムの前半部分を作成する期間(例えば、サンプリング番号P0~P255の期間)には、前半部分用のメモリ170、172、174及び176にのみ、書込みを許可するハイレベルのイネーブル信号EN0、EN2、EN4及びEN6を与え、後半部分用のメモリ171、173、175及び177には、書込みを禁止するローレベルのイネーブル信号EN1、EN3、EN5及びEN7を与える。それにより、サンプリング番号P0~P255の期間には、i=0、2、4及び6の画素値Dを用いて、ヒストグラムの前半部分(例えば、BINIDX=0~255のBINに相当)がメモリ170、72、174及び176に作成される。
[0098]
 一方、ヒストグラムの後半部分を作成する期間(例えば、サンプリング番号P256~P511の期間)には、前半部分用のメモリ170、172、174及び176には、書込みを禁止するローレベルのイネーブル信号EN0、EN2、EN4及びEN6を与え、後半部分用のメモリ171、173、175及び177には、書込みを許可するハイレベルのイネーブル信号EN1、EN3、EN5及びEN7を与える。それにより、サンプリング番号P0~P255の期間には、i=1、3、5及び7の画素値Dを用いて、ヒストグラムの後半部分(例えば、BINIDX=256~511のBINに相当)がメモリ171、173、175及び177に作成される。
[0099]
 その結果、i=0及び1の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ170及び171に作成され、i=2及び3の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ172及び173に作成され、i=4及び5の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ174及び175に作成され、i=6及び7の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ176及び177に作成される。それにより、本例では、最終的に、発光部13の1回の発光に対してSmax/2×Nc個(本例では24つ)のヒストグラムが作成される。
[0100]
 2.8.3.3 第3画素モード(画素モード=2)
 次に、ヒストグラム生成部163に第3画素モード(画素モード=2)が設定された場合について説明する。
[0101]
 2.8.3.3.1 1回のサンプリングに実行する動作
 図17に示すように、制御部11から画素モード‘2’、すなわち、第3画素モードが設定された場合、画素数可変並列加算部161による画素値Dの加算(図9参照)により、画素値列49における、i=0~3の画素値D[0][j]~D[3][j]は同じ値となり、i=4~7の画素値D[4][j]~D[7][j]は同じ値となる。
[0102]
 そこで、第3画素モードでは、ヒストグラム生成部163は、同じ値を持つ4つの画素値Dを用いて1つのヒストグラムを作成する。具体的には、画素値D[0][j]~D[3][j]を用いて1つのヒストグラムを作成し、画素値D[4][j]~D[7][j]を用いて1つのヒストグラムを作成する。
[0103]
 言い換えれば、第3画素モードでは、ヒストグラム生成部163は、同じ値を持つ4つの画素値Dの格納先となる4つのメモリ170~173並びに174~177を用いて、それぞれ1つのヒストグラムを作成する。その際、最初のメモリ170及び174をヒストグラムの最初の1/4のBINに割り当て、2番目のメモリ171及び175をヒストグラムの2番目の1/4のBINに割り当て、3番目のメモリ172及び176をヒストグラムの3番目の1/4のBINに割り当て、最後のメモリ173及び177をヒストグラムの残りの1/4のBINに割り当てる。これにより、ヒストグラムのBIN数を4倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
[0104]
 具体的には、まず、ヒストグラム生成部163のうちのヒストグラム生成部1630及び1634が、行列転置部162から入力された画素値列49のうち、i=4k(kは0又は1)の画素値D[4k][j]の値を、メモリ170及び174に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算し、次に、ヒストグラム生成部1631及び1635が、i=4k+1の画素値D[4k+1][j]の値を、メモリ171及び175に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算し、次に、ヒストグラム生成部1632及び1636が、i=4k+2の画素値D[4k+2][j]の値を、メモリ172及び176に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算し、最後にヒストグラム生成部1633及び1637が、i=4k+3の画素値D[4k+3][j]の値を、メモリ173及び177に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
[0105]
 それにより、メモリ170~173でBIN数が4倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ174及び177でBIN数が4倍のNc個(本例では6つ)のヒストグラムが作成される。
[0106]
 2.8.3.3.2 1回の発光に対して実行する動作
 また、図18に示すように、図17を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第1画素モードのサンプリング回数の4倍のサンプリング回数(本例では、1024回)、繰返し実行される。その際、第3画素モードでは、ヒストグラムの最初の1/4を作成する期間(例えば、サンプリング番号P0~P255の期間)には、最初の1/4の部分用のメモリ170及び174にのみ、書込みを許可するハイレベルのイネーブル信号EN0及びEN4を与え、他のメモリ171、172、173、175、176及び177には、書込みを禁止するローレベルのイネーブル信号EN1、EN2、EN3、EN5、EN6及びEN7を与える。それにより、サンプリング番号P0~P255の期間には、i=0及び4の画素値Dを用いて、ヒストグラムの最初の1/4部分(例えば、BINIDX=0~255のBINに相当)がメモリ170及び174に作成される。
[0107]
 次に、ヒストグラムの2番目の1/4を作成する期間(例えば、サンプリング番号P256~P511の期間)には、2番目の1/4の部分用のメモリ171及び175にのみ、書込みを許可するハイレベルのイネーブル信号EN1及びEN5を与え、他のメモリ170、172、173、174、176及び177には、書込みを禁止するローレベルのイネーブル信号EN0、EN2、EN3、EN4、EN6及びEN7を与える。それにより、サンプリング番号P256~P511の期間には、i=1及び5の画素値Dを用いて、ヒストグラムの2番目の1/4部分(例えば、BINIDX=256~511のBINに相当)がメモリ171及び175に作成される。
[0108]
 次に、ヒストグラムの3番目の1/4を作成する期間(例えば、サンプリング番号P512~P767の期間)には、3番目の1/4の部分用のメモリ172及び176にのみ、書込みを許可するハイレベルのイネーブル信号EN2及びEN6を与え、他のメモリ170、171、173、174、175及び177には、書込みを禁止するローレベルのイネーブル信号EN0、EN1、EN3、EN4、EN5及びEN7を与える。それにより、サンプリング番号P512~P767の期間には、i=2及び6の画素値Dを用いて、ヒストグラムの3番目の1/4部分(例えば、BINIDX=512~767のBINに相当)がメモリ172及び176に作成される。
[0109]
 そして、ヒストグラムの残りの1/4を作成する期間(例えば、サンプリング番号P768~P1023の期間)には、最後の1/4の部分用のメモリ173及び177にのみ、書込みを許可するハイレベルのイネーブル信号EN3及びEN7を与え、他のメモリ170、171、172、174、175及び176には、書込みを禁止するローレベルのイネーブル信号EN0、EN1、EN2、EN4、EN5及びEN6を与える。それにより、サンプリング番号P768~P1023の期間には、i=3及び7の画素値Dを用いて、ヒストグラムの最後の1/4部分(例えば、BINIDX=768~1023のBINに相当)がメモリ173及び177に作成される。
[0110]
 その結果、i=0~3の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ170~173に作成され、i=4~7の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ174~177に作成される。それにより、本例では、最終的に、発光部13の1回の発光に対してSmax/4×Nc個(本例では12つ)のヒストグラムが作成される。
[0111]
 2.8.3.4 第4画素モード(画素モード=3)
 次に、ヒストグラム生成部163に第4画素モード(画素モード=3)が設定された場合について説明する。
[0112]
 2.8.3.4.1 1回のサンプリングに実行する動作
 図19に示すように、制御部11から画素モード‘3’、すなわち、第4画素モードが設定された場合、画素数可変並列加算部161による画素値Dの加算(図9参照)により、画素値列49における、i=0~7の全ての画素値D[0][j]~D[7][j]は同じ値となる。
[0113]
 そこで、第4画素モードでは、ヒストグラム生成部163は、同じ値である全て(8つ)の画素値Dを用いて1つのヒストグラムを作成する。言い換えれば、第4画素モードでは、ヒストグラム生成部163は、8つの画素値Dの格納先となる8つのメモリ170~177を用いて、1つのヒストグラムを作成する。その際、最初のメモリ170をヒストグラムの最初の1/8のBINに割り当て、2番目のメモリ171をヒストグラムの2番目の1/8のBINに割り当て、3番目のメモリ172をヒストグラムの3番目の1/8のBINに割り当て、4番目のメモリ173をヒストグラムの4番目の1/8のBINに割り当て、5番目のメモリ174をヒストグラムの5番目の1/8のBINに割り当て、6番目のメモリ175をヒストグラムの6番目の1/8のBINに割り当て、7番目のメモリ176をヒストグラムの7番目の1/8のBINに割り当て、最後のメモリ177をヒストグラムの残りの1/8のBINに割り当てる。これにより、ヒストグラムのBIN数を8倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
[0114]
 具体的には、まず、ヒストグラム生成部163のうちのヒストグラム生成部1630が、行列転置部162から入力された画素値列49のうち、i=0の画素値D[0][j]の値を、メモリ170に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。以降も同様に、ヒストグラム生成部1631~1637が順次、i=1~7の画素値D[1][j]~D[7][j]の値を、メモリ171~177に格納されているヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
[0115]
 それにより、メモリ170~177でBIN数が8倍のNc個(本例では6つ)のヒストグラムが作成される。
[0116]
 2.8.3.4.2 1回の発光に対して実行する動作
 また、図20に示すように、図19を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第1画素モードのサンプリング回数の8倍のサンプリング回数(本例では、2048回)、繰返し実行される。その際、第4画素モードでは、書込みを許可するハイレベルのイネーブル信号EN0~EN7を与える期間が、メモリ170~177の順番で順次切り替えられる。
[0117]
 それにより、サンプリング番号P0~P255の期間には、i=0の画素値Dを用いて、ヒストグラムの最初の1/8部分(例えば、BINIDX=0~255のBINに相当)がメモリ170に作成され、サンプリング番号P256~P511の期間には、i=1の画素値Dを用いて、ヒストグラムの2番目の1/8部分(例えば、BINIDX=256~511のBINに相当)がメモリ171に作成され、サンプリング番号P512~P767の期間には、i=2の画素値Dを用いて、ヒストグラムの3番目の1/8部分(例えば、BINIDX=512~767のBINに相当)がメモリ172に作成され、サンプリング番号P768~P1023の期間には、i=3の画素値Dを用いて、ヒストグラムの4番目の1/8部分(例えば、BINIDX=768~1023のBINに相当)がメモリ173に作成され、サンプリング番号P1024~P1279の期間には、i=4の画素値Dを用いて、ヒストグラムの5番目の1/8部分(例えば、BINIDX=1024~1279のBINに相当)がメモリ174に作成され、サンプリング番号P1280~P1535の期間には、i=5の画素値Dを用いて、ヒストグラムの6番目の1/8部分(例えば、BINIDX=1280~1535のBINに相当)がメモリ175に作成され、サンプリング番号P1536~P1791の期間には、i=6の画素値Dを用いて、ヒストグラムの7番目の1/8部分(例えば、BINIDX=1536~1791のBINに相当)がメモリ176に作成され、サンプリング番号P1792~P2047の期間には、i=7の画素値Dを用いて、ヒストグラムの最後の1/8部分(例えば、BINIDX=1792~2047のBINに相当)がメモリ177に作成され、その結果、i=0~7の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ170~177に作成される。それにより、本例では、最終的に、発光部13の1回の発光に対してSmax/8×Nc個(本例では6つ)のヒストグラムが作成される。
[0118]
 2.9 ヒストグラム処理の回路例
 図21は、本実施形態に係るヒストグラム生成部の動作を説明するための図である。なお、図21には、例として、図13に示すヒストグラム生成部1630がメモリ1700内にヒストグラムを作成する際の流れを例示するが、他のメモリ1701~1705、並びに、他のヒストグラム生成部1631~1637に対しても、同様に適用することが可能である。すなわち、図21に示す構成は、個々のヒストグラムを個別に格納するメモリ(図13に示す例では、メモリ1700~1705)ごとに設けられている。例えば、ヒストグラム生成部1630は、図21に示す構成を、メモリ1700~1705それぞれに一対一に対応するように、計6つ備えている。
[0119]
 図21に示すように、ヒストグラム生成部1630は、セレクタ51及び64と、加算器(+1)52と、同期回路としてのD-フリップフロップ(FF)53、54、56、61、62及び65と、加算器63と、メモリ1700としてのSRAM55とを備える。なお、読出しアドレスREAD_ADDRが入力されるSRAM55と、WRITE_ADDRが入力されるSRAM55とは同じSRAM(メモリ1700)である。
[0120]
 このような構成において、破線で囲まれたD-FF61及び62と、加算器63と、セレクタ64と、D-FF65とは、累積画素値を算出する加算回路60として動作する。
[0121]
 1回目のサンプリングに対するヒストグラム生成処理では、まず、セレクタ51に、ヒストグラムの最初のBIN番号に相当するSRAM55の先頭アドレス(これを‘0’とする)が入力される。また、1回目のサンプリングに対するヒストグラム生成処理では、セレクタ51に、不図示の制御線を介して、入力された先頭アドレス‘0’を出力させる制御信号が入力されている。したがって、セレクタ51からは、入力された先頭アドレス‘0’がアドレスADDRとして出力される。出力されたアドレスADDRは、D-FF53と加算器(+1)52とにそれぞれ入力される。
[0122]
 一方、加算回路60の初段のD-FF61には、最初のサンプリング(例えば、サンプリング番号P0)により得られた画素値D[i][j](ただし、本説明では、i=0及びj=0)が入力される。
[0123]
 D-FF53とD-FF61との出力は同期される。したがって、D-FF53がアドレスADDRを出力するタイミングで、D-FF61が画素値D[i][j]を出力する。
[0124]
 D-FF53から出力されたアドレスADDRは、D-FF54に入力されるとともに、読出しアドレスREAD_ADDRとしてSRAM55に入力される。一方、D-FF61から出力された画素値D[i][j]は、D-FF62に入力される。
[0125]
 D-FF54とSRAM55とD-FF62との出力は同期される。したがって、D-FF54がアドレスADDRを出力するタイミングで、SRAM55から読出しアドレスREAD_ADDRに対応するBINに格納されている累積画素値READ_DATA[i]が出力されるとともに、D-FF62から画素値D[i][j]が出力される。
[0126]
 D-FF54から出力されたアドレスADDRは、D-FF56に入力される。一方、SRAM55から読み出された累積画素値READ_DATA[i]は、加算器63に入力される。また、D-FF62から出力された画素値D[i][j]は、加算器63に入力されるとともに、セレクタ64に入力される。
[0127]
 1回目のサンプリングに対するヒストグラム生成処理では、セレクタ64には、不図示の制御線を介して、入力された画素値D[i][j]を出力させる制御信号が入力されている。したがって、セレクタ64からは、入力された画素値D[i][j]が書込みデータBIN_DATA[j]としてD-FF65に出力される。
[0128]
 D-FF56とD-FF65との出力は同期される。したがって、D-FF56がアドレスADDRを出力するタイミングで、D-FF65が書込みデータBIN_DATA[j]を出力する。
[0129]
 D-FF56から出力されたアドレスADDRは、書込みアドレスWRITE_ADDRとして、SRAM55に入力される。また、SRAM55には、書込みアドレスWRITE_ADDRの入力と同期して、書込みデータBIN_DATA[j]も入力される。したがって、SRAM55に入力された書込みデータBIN_DATA[j]は、書込みアドレスWRITE_ADDRで指定されたBINに累積画素値として格納される。
[0130]
 次に、2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ51には、加算器(+1)52から入力された値を出力させる制御信号が入力されている。加算器(+1)52は、セレクタ51から出力されたアドレスADDRを1インクリメントした値を出力する。したがって、2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ51からは、前回のアドレスADDRを1インクリメントすることで得られた次のアドレスADDRが出力される。出力されたアドレスADDRは、D-FF53と加算器(+1)52とにそれぞれ入力される。
[0131]
 一方、加算回路60の初段のD-FF61には、2回目以降のサンプリング(例えば、サンプリング番号P1以降)により得られた画素値D[i][j](ただし、本説明では、i=0及びj=0)が入力される。
[0132]
 D-FF53とD-FF61との出力は同期されていることから、D-FF53がアドレスADDRを出力するタイミングで、D-FF61が画素値D[i][j]を出力する。
[0133]
 そして、D-FF54とSRAM55とD-FF62との出力は同期されていることから、D-FF54がアドレスADDRを出力するタイミングで、SRAM55から読出しアドレスREAD_ADDRに対応するBINに格納されている累積画素値READ_DATA[i]が出力されるとともに、D-FF62から画素値D[i][j]が出力される。
[0134]
 2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ64には、加算器63から入力された値を出力させる制御信号が入力されている。加算器63は、SRAM55から読み出された累積画素値READ_DATA[i]と、D-FF62から出力された画素値D[i][j]とを加算した値を出力する。したがって、2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ64からは、これまでの累積画素値READ_DATA[i]に今回分の画素値D[i][j]を加算した値が書込みデータBIN_DATA[j]として出力される。これにより、SRAM55における今回のサンプリング(サンプリング番号)に対応するBINには、累積画素値READ_DATA[i]に今回分の画素値D[i][j]を加算することで得られた累積画素値が格納される。
[0135]
 以上の動作を所定のサンプリング回数繰返し実行することで、発光部13の1回の発光に対するヒストグラムがメモリ17内に作成される。そして、この動作を所定の発光回数分繰返し実行することで、測距範囲内に存在する物体90までの距離を推定又は算出するためのヒストグラムが作成される。
[0136]
 2.10 動作例
 図22は、本実施形態に係るToFセンサの概略動作例を示すフローチャートである。なお、図22では、制御部11(図1参照)の動作に着目して説明する。
[0137]
 図22に示すように、本動作では、まず、制御部11は、制御レジスタ12に設定されている画素モードを取得し(ステップS11)、つづいて、画素モードが‘0’であるか否か、すなわち、第1画素モードが設定されているか否かを判定する(ステップS12)。画素モードが‘0’である場合(ステップS12のYES)、制御部11は、発光部13の1回の発光に対して実行するサンプリングの回数(サンプリング回数)NmaxにNを設定し(ステップS13)、つづいて、画素数可変並列加算部161及びヒストグラム生成部163に、画素モード=0を設定する(ステップS14)。その後、制御部11は、ヒストグラム処理部16に第1ヒストグラム処理(例えば、図7、図11、図12、図13及び図14参照)を実行させ(ステップS15)、ステップS27へ進む。
[0138]
 また、画素モードが‘0’でない場合(ステップS12のNO)、制御部11は、画素モードが‘1’であるか否か、すなわち、第2画素モードが設定されているか否かを判定する(ステップS16)。画素モードが‘1’である場合(ステップS16のYES)、制御部11は、サンプリング回数Nmaxに2Nを設定し(ステップS17)、つづいて、画素数可変並列加算部161及びヒストグラム生成部163に、画素モード=1を設定する(ステップS18)。その後、制御部11は、ヒストグラム処理部16に第2ヒストグラム処理(例えば、図8、図11、図15及び図16参照)を実行させ(ステップS19)、ステップS27へ進む。
[0139]
 さらに、画素モードが‘1’でない場合(ステップS16のNO)、制御部11は、画素モードが‘2’であるか否か、すなわち、第3画素モードが設定されているか否かを判定する(ステップS20)。画素モードが‘2’である場合(ステップS20のYES)、制御部11は、サンプリング回数Nmaxに4Nを設定し(ステップS21)、つづいて、画素数可変並列加算部161及びヒストグラム生成部163に、画素モード=2を設定する(ステップS22)。その後、制御部11は、ヒストグラム処理部16に第3ヒストグラム処理(例えば、図9、図11、図17及び図18参照)を実行させ(ステップS23)、ステップS27へ進む。
[0140]
 さらにまた、画素モードが‘2’でない場合(ステップS20のNO)、制御部11は、画素モードが‘3’であると判断して、サンプリング回数Nmaxに8Nを設定し(ステップS24)、つづいて、画素数可変並列加算部161及びヒストグラム生成部163に、画素モード=3を設定する(ステップS25)。その後、制御部11は、ヒストグラム処理部16に第4ヒストグラム処理(例えば、図10、図11、図19及び図20参照)を実行させ(ステップS26)、ステップS27へ進む。
[0141]
 ステップS27では、制御部11は、第1~第4ヒストグラム処理のいずれか(ステップS15、S19、S23又はS26)で生成されたヒストグラムに基づき、測距範囲内に存在する物体90までの距離を推定又は算出する。その後、制御部11は、本動作を終了するか否かを判定し(ステップS28)、終了する場合(ステップS28のYES)、本動作を終了する。一方、終了しない場合(ステップS28のNO)、制御部11は、ステップS11へリターンし、以降の動作を実行する。
[0142]
 2.10.1 第1ヒストグラム生成処理
 図23は、図22のステップS15に示す第1ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、以下の説明では、明確化のため、BIN番号(BINIDX)とサンプリング番号(N)とが一致しているものとする。
[0143]
 図23に示すように、第1ヒストグラム生成処理では、ヒストグラム生成部1630は、まず、現在の発光部13による発光が何回目の発光であるかを特定するための発光回数Mに‘1’を設定する(ステップS101)とともに、現在のサンプリングが何番目であるかを特定するためのサンプリング番号Nを‘0’にリセットする(ステップS102)。次に、ヒストグラム生成部1630は、全てのメモリ170~177に対して、許可レベルのイネーブル信号EN0~EN7を入力することで、全てのメモリ170~177に対する書込みを許可する(ステップS103)。なお、サンプリング番号Nは、ヒストグラム生成部163内の不図示のカウンタにより管理されているものとする。
[0144]
 次に、ヒストグラム生成部1630は、SPADアレイ143のSPAD画素20から読み出された検出信号に基づいて算出された画素値Dの列(画素値列49)を行列転置部162から入力し(ステップS104)、入力した画素値列49における各画素値D[i][j]=D[0][0]~D[0][5]を、メモリ170に格納された‘j’毎のヒストグラムにおけるBINIDX=NのBINの値に加算する(ステップS105)。なお、SPAD画素20からの検出信号の読出しは、上述したように、所定のサンプリング周期で繰返し実行されているものとする。
[0145]
 次に、ヒストグラム生成部1630は、サンプリング番号Nが最大値であるサンプリング回数Nmaxに達しているか否かを判定し(ステップS106)、達している場合(ステップS106のYES)、ステップS108へ進む。一方、サンプリング番号Nがサンプリング回数Nmaxに達していない場合(ステップS106のNO)、ヒストグラム生成部1630は、サンプリング番号Nを1インクリメントし(ステップS107)、その後、ステップS104へリターンして、以降の動作を繰返し実行する。
[0146]
 ステップS108では、ヒストグラム生成部1630は、例えば、発光部13の発光が予め定められた所定回数Mmaxに達しているか否かを判定し、達している場合(ステップS108のYES)、第1ヒストグラム生成処理を終了する。一方、所定回数Mmaxに達していない場合(ステップS108のNO)、ヒストグラム生成部1630は、発光部13の発光回数Mを1インクリメントし(ステップS109)、その後、ステップS101へリターンして、以降の動作を実行する。これにより、発光部13のM回の発光に基づいてヒストグラムを作成することが可能となるため、より正確に物体90までの距離を推定又は算出することが可能となる。
[0147]
 2.10.2 第2ヒストグラム生成処理
 図24は、図22のステップS19に示す第2ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図24に示す動作において、図23に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
[0148]
 図24に示すように、第2ヒストグラム生成処理では、ヒストグラム生成部1630は、まず、現在の発光部13による発光が何回目の発光であるかを特定するための発光回数Mに‘1’を設定し(ステップS101)、変数Qの最大値であるQmaxを‘1’に設定する(ステップS201)とともに、変数Qを‘0’にリセットする(ステップS202)。つづいて、ヒストグラム生成部1630は、図23におけるステップS102と同様に、サンプリング番号Nを‘0’にリセットする(ステップS102)。
[0149]
 次に、ヒストグラム生成部1630は、メモリ170~177のうち、2k+Q番目のメモリ(図15に示す例では、メモリ170、172、174及び176、又は、メモリ171、173、175及び177)に対して、許可レベルのイネーブル信号(図16に示す例では、イネーブル信号EN0、EN2、EN4及びEN6、又は、イネーブル信号EN1、EN3、EN5及びEN7)を入力することで、2k+Q番目のメモリに対する書込みを許可する(ステップS203)。
[0150]
 次に、ヒストグラム生成部1630は、サンプリング番号NがNmaxに達するまで、図23におけるステップS104~S107に示す動作と同様の動作を実行することで、各ヒストグラムの前半部分又は後半部分を作成する。
[0151]
 次に、ヒストグラム生成部1630は、変数QがQmaxに達しているか否かを判定し(ステップS204)、達している場合(ステップS204のYES)、ステップS108へ進む。一方、変数QがQmaxに達していない場合(ステップS204のNO)、ヒストグラム生成部1630は、変数Qを1インクリメントし(ステップS205)、その後、ステップS102へリターンして以降の動作を実行することで、各ヒストグラムの残りの半分を作成する。
[0152]
 2.10.3 第3ヒストグラム生成処理
 図25は、図22のステップS23に示す第3ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図25に示す動作において、図23又は図24に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
[0153]
 図25に示す第3ヒストグラム生成処理は、図24に示した第2ヒストグラム生成処理と同様の動作において、図24のステップS201及びS203が、それぞれ図25のステップS301及びS302に置き換えられている。
[0154]
 ステップS301では、ヒストグラム生成部1630は、変数Qの最大値であるQmaxを‘3’に設定する。
[0155]
 ステップS302では、ヒストグラム生成部1630は、メモリ170~177のうち、4k+Q番目のメモリ(図17に示す例では、メモリ170及び174、メモリ171及び175、メモリ172及び176、又は、メモリ173及び177)に対して、許可レベルのイネーブル信号(図18に示す例では、イネーブル信号EN0及びEN4、イネーブル信号EN1及びEN5、イネーブル信号EN2及びEN6、又は、イネーブル信号EN3及びEN7)を入力することで、4k+Q番目のメモリに対する書込みを許可する。
[0156]
 次に、ヒストグラム生成部1630は、図24におけるステップS104~S205と同様に、変数Qの値ごとに、サンプリング番号Nが0からNmaxに達するまで、ステップS102~S107に示す動作と同様の動作を実行することで、各ヒストグラムを1/4ずつ作成する。
[0157]
 その後、ヒストグラム生成部1630は、ステップS108へ進み、発光部13の発光回数Mが所定回数Mmaxに達するまで、上述した動作を繰返し実行する。
[0158]
 2.10.4 第4ヒストグラム生成処理
 図26は、図22のステップS26に示す第4ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図26に示す動作において、図23~図25のいずれかに示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
[0159]
 図26に示す第4ヒストグラム生成処理は、図24に示した第2ヒストグラム生成処理又は図25に示した第3ヒストグラム生成処理と同様の動作において、図24のステップS201及びS203又は図25のステップS301及びS302が、それぞれ図26のステップS401及びS402に置き換えられている。
[0160]
 ステップS401では、ヒストグラム生成部1630は、変数Qの最大値であるQmaxを‘7’に設定する。
[0161]
 ステップS402では、ヒストグラム生成部1630は、メモリ170~177のうち、8k+Q番目のメモリ(図19に示す例では、メモリ170、171、172、173、174、175、176、又は、177)に対して、許可レベルのイネーブル信号(図20に示す例では、イネーブル信号EN0、EN1、EN2、EN3、EN4、EN5、EN6、又は、EN7)を入力することで、8k+Q番目のメモリに対する書込みを許可する。
[0162]
 次に、ヒストグラム生成部1630は、図24におけるステップS104~S205と同様に、変数Qの値ごとに、サンプリング番号Nが0からNmaxに達するまで、ステップS102~S107に示す動作と同様の動作を実行することで、各ヒストグラムを1/8ずつ作成する。
[0163]
 その後、ヒストグラム生成部1630は、ステップS108へ進み、発光部13の発光回数Mが所定回数Mmaxに達するまで、上述した動作を繰返し実行する。
[0164]
 2.11 ヒストグラム作成の具体例
 つづいて、以上のような構成及び動作に基づいたヒストグラムの作成について、具体例を挙げて説明するなお、以下の説明では、画素モード=2、すなわち、第3画素モードが設定されている場合を例示するが、他の画素モードに対しても、同様に適用することが可能である。
[0165]
 図27は、発光部の1回目の発光(M=1)に対してメモリ内に作成されるヒストグラムの一例を示す図である。図28は、発光部の2回目の発光(M=2)に対して得られた各サンプリング番号での画素値の一例を示す図である。図29は、発光部の2回目の発光(M=2)に対してメモリ内に作成されるヒストグラムの一例を示す図である。図30は、発光部の3回目の発光(M=3)に対して得られた各サンプリング番号での画素値の一例を示す図である。図31は、発光部の3回目の発光(M=3)に対してメモリ内に作成されるヒストグラムの一例を示す図である。なお、図27から図31に示すヒストグラムは、i及びjが同じ値の画素値D[i][j]~D[i+3][j]を用いて作成されているものとする。
[0166]
 まず、図27に示すように、発光部13の1回目の発光(M=1)に対しては、メモリ17内には、1回の発光に対するサンプリングによって得られたサンプリング番号N毎の画素値Dが対応するBINに格納されたヒストグラムが作成される。
[0167]
 そこで、発光部13の2回目の発光(M=2)に対し、図28に例示するようなヒストグラムが得られた場合、メモリ17内には、図29に示すように、1回目の発光(M=1)に対して得られたヒストグラムの各BINの値に、2回目の発光(M=2)に対して得られたヒストグラムの各BINの値が加算されたヒストグラムが作成される。
[0168]
 同様に、発光部13の3回目の発光(M=3)に対し、図30に例示するようなヒストグラムが得られた場合、図31に示すように、メモリ17内のヒストグラムにおける各BINには、1回目の発光(M=1)から3回目の発光(M=3)までに得られた画素値の累積値(累積画素値)が格納される。
[0169]
 このように、発光部13の複数回の発光に対して得られた画素値Dを累積することで、反射光L2を検出した画素値の累積画素値と、外乱光L0などのノイズに起因した累積画素値との差を大きくすることが可能となる。それにより、反射光L2とノイズとの弁別の信頼性を高めることが可能となるため、より正確に物体90までの距離を推定又は算出することが可能となる。
[0170]
 2.12 距離推定/算出部
 次に、本実施形態に係る距離推定/算出部18について、以下に説明する。距離推定/算出部18は、ヒストグラム処理部16により作成されたメモリ17内のヒストグラムに基づいて、物体90までの距離を推定又は算出する。例えば、距離推定/算出部18は、各ヒストグラムにおいて累積画素値がピーク値となるBIN番号を特定し、特定したBIN番号を飛行時間又は距離情報に換算することで、物体90までの距離を推定又は算出する。
[0171]
 例えば、第1画素モードである場合には、メモリ170~177それぞれに格納されたヒストグラムにおいて累積画素値がピークとなるBIN番号を特定し、特定されたBIN番号に基づいて物体90までの距離を推定又は算出する。また、第2画素モードである場合には、メモリ170及び171、172及び173、174及び175、又は、176及び177で構成されるヒストグラムそれぞれにおいて累積画素値がピークとなるBIN番号を特定し、特定されたBIN番号に基づいて物体90までの距離を推定又は算出し、第3画素モードである場合には、メモリ170~173、又は、174~177で構成されるヒストグラムそれぞれにおいて累積画素値がピークとなるBIN番号を特定し、特定されたBIN番号に基づいて物体90までの距離を推定又は算出し、第4画素モードである場合には、メモリ170~177で構成されるヒストグラムにおいて累積画素値がピークとなるBIN番号を特定し、特定されたBIN番号に基づいて物体90までの距離を推定又は算出する。
[0172]
 なお、BIN番号から飛行時間又は距離情報への換算は、予め所定のメモリ内に格納されている換算テーブルを用いて実行されてもよいし、BIN番号を飛行時間又は距離情報に変換する変換式を予め保持しておき、この変換式を用いて換算されてもよい。
[0173]
 また、累積画素値のピークとなるBIN番号の特定では、最も値が大きいBINのBIN番号を特定する方法や、ヒストグラムに対してフィッティングをし、それにより得られた関数曲線から累積画素値がピークとなるBIN番号を特定する方法など、種々の方法を用いることが可能である。
[0174]
 2.13 作用・効果
 以上のように、本実施形態によれば、画素モードに応じてメモリ170~177の使用形態が切り替えられる。例えば、第1画素モードでは、メモリ170~177それぞれで計48つのヒストグラムが作成され、第2画素モードでは、メモリ170~177のうちの2つずつを組み合わせて計24つのヒストグラムが作成され、第3画素モードでは、メモリ170~177のうちの4つずつを組み合わせて計12つのヒストグラムが作成され、第4画素モードでは、メモリ170~177の全てを組み合わせて計6つのヒストグラムが作成される。それにより、深いメモリ領域を必要としない場合(例えば、近くを測距する場合)と、深いメモリ領域を必要とする場合(例えば、遠くまでを測距する場合)とで、メモリ17の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
[0175]
 また、本実施形態によれば、書込みが行なわれないメモリ170~177に対しては、書込みを禁止するイネーブル信号EN0~EN7を供給してメモリを休止状態にすることが可能となるため、消費電力を低減することも可能となる。
[0176]
 さらに、本実施形態によれば、測距画像における1つの画素に対応するマクロ画素30の数が画素モードに応じて切り替えられる。それにより、状況に応じてToFセンサ1の解像度を変更する変更することも可能となる。例えば、近い範囲を測距する場合のような広いダイナミックレンジを必要としない場合には、解像度を高めてきめ細かい測距画像を取得し、遠くまで測距するような広いダイナミックレンジを必要とする場合には、解像度を落として広いダイナミックレンジで測距画像を取得するというように、状況に応じて解像度を効果的に変更することが可能となる。
[0177]
 3.第2の実施形態
 第1の実施形態では、フラッシュ型と称される測距装置について、例を挙げて説明した。これに対し、第2の実施形態では、スキャン型と称される測距装置について、例を挙げて説明する。なお、以下の説明において、第1の実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
[0178]
 3.1 測距装置(ToFセンサ)
 図32は、本実施形態に係る測距装置としてのToFセンサの概略構成例を示す模式図である。図1に示すように、ToFセンサ2は、制御装置200と、集光レンズ201と、ハーフミラー202と、マイクロミラー203と、受光レンズ204と、スキャン部205と、発光部213と、受光部214とを備える。マイクロミラー203と、スキャン部205とは、例えば、請求の範囲における、アレイ部(例えば、SPADアレイ143に相当)に入射する光を走査する走査部に相当する。なお、この走査部には、他にも、集光レンズ201、ハーフミラー202及び受光レンズ204のうちの少なくとも1つが含まれてもよい。
[0179]
 受光部214は、例えば、第1の実施形態で例示したマクロ画素30が垂直方向(列方向に対応)に配列した構造を備える。すなわち、受光部214は、例えば、図3で例示したSPADアレイ143の一部の列(1列又は数列)で構成することができる。以下、このSPADアレイ143の一部の列を、マクロ画素列243と称する。そこで、図3に例示したSPADアレイ143を引用すると、本実施形態に係るマクロ画素列243は、例えば、列方向に配列する#0~#47の計48つのマクロ画素30が、j=0~6の計6つの画素グループ31に区切られた構造を有する。
[0180]
 発光部213は、例えば、第1の実施形態にかかる発光部13と同様に、1つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光L1を所定周期(発光周期)で出射する。また、発光部13は、例えば、1GHz(ギガヘルツ)の周期で、1ns(ナノ秒)の時間幅のレーザ光L1を出射する。
[0181]
 集光レンズ201は、発光部213から出射したレーザ光L1を集光する。例えば、集光レンズ201は、レーザ光L1の広がりが受光部214の画角分程度となるように、レーザ光L1を集光する。
[0182]
 ハーフミラー202は、入射したレーザ光L1の少なくとも一部を、マイクロミラー203へ向けて反射する。なお、ハーフミラー202に代えて、偏光ミラーなど、一部の光を反射し、他の一部の光を透過する光学素子を用いることも可能である。
[0183]
 マイクロミラー203は、反射面の中心を軸として角度を変化させることができるように、スキャン部205に取り付けられている。スキャン部205は、例えば、マイクロミラー203で反射したレーザ光L1の像SAが所定の走査エリアARを水平方向に往復するように、マイクロミラー203を水平方向に揺動又は振動させる。例えば、スキャン部205は、レーザ光L1の像SAが所定の走査エリアARを1ms(ミリ秒)で往復するように、マイクロミラー203を水平方向に揺動又は振動させる。なお、マイクロミラー203の揺動又は振動には、ステッピングモータやピエゾ素子などを利用することができる。
[0184]
 測距範囲内に存在する物体90で反射したレーザ光L1の反射光L2は、レーザ光L1の出射軸と同じ光軸を入射軸として、レーザ光L1とは反対方向からマイクロミラー203に入射する。マイクロミラー203に入射した反射光L2は、レーザ光L1と同じ光軸でハーフミラー202に入射し、その一部がハーフミラー202を透過する。
[0185]
 ハーフミラー202を透過した反射光L2の像は、受光レンズ204を介することで、受光部214におけるマクロ画素列243に結像される。
[0186]
 制御装置200は、例えば、制御部11と、制御レジスタ12と、加算部15と、ヒストグラム処理部16と、メモリ17と、距離推定/算出部18と外部I/F19とを備える。これらは、例えば、第1の実施形態において例示したものと同様であってよい。ただし、本実施形態に係る制御部11は、図1に例示した各部に加え、スキャン部205も制御する。
[0187]
 以上のような構成において、加算部15には、第1の実施形態と同様に、マクロ画素列243の各マクロ画素30における各SPAD画素20から出力された検出信号V_OUTが、所定のサンプリング周期で入力される。加算部15は、第1の実施形態と同様に、受光部214から出力された検出信号V_OUTの数を1又は複数のマクロ画素ごとに集計し、その集計値を画素値としてヒストグラム処理部16へ出力する。
[0188]
 ヒストグラム処理部16は、第1の実施形態と同様に、画素モードに応じたヒストグラムを、メモリ17内に作成する。そして、距離推定/算出部18は、第1の実施形態と同様に、メモリ17内に作成されたヒストグラムに基づき、物体90までの距離を推定又は算出する。
[0189]
 3.2 作用・効果
 以上のように、フラッシュ型のTOFセンサ1に限らず、スキャン型のTOFセンサ2においても、画素モードに応じてメモリ170~177の使用形態を切り替えることが可能である。それにより、深いメモリ領域を必要としない場合(例えば、近くを測距する場合)と、深いメモリ領域を必要とする場合(例えば、遠くまでを測距する場合)とで、メモリ17の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
[0190]
 その他の構成、動作及び効果は、第1の実施形態と同様であってよいため、ここでは詳細な説明を省略する。
[0191]
 4.応用例
 本開示に係る技術は、様々な製品へ応用することができる。例えば、本開示に係る技術は、自動車、電気自動車、ハイブリッド電気自動車、自動二輪車、自転車、パーソナルモビリティ、飛行機、ドローン、船舶、ロボット、建設機械、農業機械(トラクター)などのいずれかの種類の移動体に搭載される装置として実現されてもよい。
[0192]
 図33は、本開示に係る技術が適用され得る移動体制御システムの一例である車両制御システム7000の概略的な構成例を示すブロック図である。車両制御システム7000は、通信ネットワーク7010を介して接続された複数の電子制御ユニットを備える。図33に示した例では、車両制御システム7000は、駆動系制御ユニット7100、ボディ系制御ユニット7200、バッテリ制御ユニット7300、車外情報検出ユニット7400、車内情報検出ユニット7500、及び統合制御ユニット7600を備える。これらの複数の制御ユニットを接続する通信ネットワーク7010は、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)、LAN(Local Area Network)又はFlexRay(登録商標)等の任意の規格に準拠した車載通信ネットワークであってよい。
[0193]
 各制御ユニットは、各種プログラムにしたがって演算処理を行うマイクロコンピュータと、マイクロコンピュータにより実行されるプログラム又は各種演算に用いられるパラメータ等を記憶する記憶部と、各種制御対象の装置を駆動する駆動回路とを備える。各制御ユニットは、通信ネットワーク7010を介して他の制御ユニットとの間で通信を行うためのネットワークI/Fを備えるとともに、車内外の装置又はセンサ等との間で、有線通信又は無線通信により通信を行うための通信I/Fを備える。図33では、統合制御ユニット7600の機能構成として、マイクロコンピュータ7610、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660、音声画像出力部7670、車載ネットワークI/F7680及び記憶部7690が図示されている。他の制御ユニットも同様に、マイクロコンピュータ、通信I/F及び記憶部等を備える。
[0194]
 駆動系制御ユニット7100は、各種プログラムにしたがって車両の駆動系に関連する装置の動作を制御する。例えば、駆動系制御ユニット7100は、内燃機関又は駆動用モータ等の車両の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構、車両の舵角を調節するステアリング機構、及び、車両の制動力を発生させる制動装置等の制御装置として機能する。駆動系制御ユニット7100は、ABS(Antilock Brake System)又はESC(Electronic Stability Control)等の制御装置としての機能を有してもよい。
[0195]
 駆動系制御ユニット7100には、車両状態検出部7110が接続される。車両状態検出部7110には、例えば、車体の軸回転運動の角速度を検出するジャイロセンサ、車両の加速度を検出する加速度センサ、あるいは、アクセルペダルの操作量、ブレーキペダルの操作量、ステアリングホイールの操舵角、エンジン回転数又は車輪の回転速度等を検出するためのセンサのうちの少なくとも一つが含まれる。駆動系制御ユニット7100は、車両状態検出部7110から入力される信号を用いて演算処理を行い、内燃機関、駆動用モータ、電動パワーステアリング装置又はブレーキ装置等を制御する。
[0196]
 ボディ系制御ユニット7200は、各種プログラムにしたがって車体に装備された各種装置の動作を制御する。例えば、ボディ系制御ユニット7200は、キーレスエントリシステム、スマートキーシステム、パワーウィンドウ装置、あるいは、ヘッドランプ、バックランプ、ブレーキランプ、ウィンカー又はフォグランプ等の各種ランプの制御装置として機能する。この場合、ボディ系制御ユニット7200には、鍵を代替する携帯機から発信される電波又は各種スイッチの信号が入力され得る。ボディ系制御ユニット7200は、これらの電波又は信号の入力を受け付け、車両のドアロック装置、パワーウィンドウ装置、ランプ等を制御する。
[0197]
 バッテリ制御ユニット7300は、各種プログラムにしたがって駆動用モータの電力供給源である二次電池7310を制御する。例えば、バッテリ制御ユニット7300には、二次電池7310を備えたバッテリ装置から、バッテリ温度、バッテリ出力電圧又はバッテリの残存容量等の情報が入力される。バッテリ制御ユニット7300は、これらの信号を用いて演算処理を行い、二次電池7310の温度調節制御又はバッテリ装置に備えられた冷却装置等の制御を行う。
[0198]
 車外情報検出ユニット7400は、車両制御システム7000を搭載した車両の外部の情報を検出する。例えば、車外情報検出ユニット7400には、撮像部7410及び車外情報検出部7420のうちの少なくとも一方が接続される。撮像部7410には、ToF(Time Of Flight)カメラ、ステレオカメラ、単眼カメラ、赤外線カメラ及びその他のカメラのうちの少なくとも一つが含まれる。車外情報検出部7420には、例えば、現在の天候又は気象を検出するための環境センサ、あるいは、車両制御システム7000を搭載した車両の周囲の他の車両、障害物又は歩行者等を検出するための周囲情報検出センサのうちの少なくとも一つが含まれる。
[0199]
 環境センサは、例えば、雨天を検出する雨滴センサ、霧を検出する霧センサ、日照度合いを検出する日照センサ、及び降雪を検出する雪センサのうちの少なくとも一つであってよい。周囲情報検出センサは、超音波センサ、レーダ装置及びLIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)装置のうちの少なくとも一つであってよい。これらの撮像部7410及び車外情報検出部7420は、それぞれ独立したセンサないし装置として備えられてもよいし、複数のセンサないし装置が統合された装置として備えられてもよい。
[0200]
 ここで、図34は、撮像部7410及び車外情報検出部7420の設置位置の例を示す。撮像部7910,7912,7914,7916,7918は、例えば、車両7900のフロントノーズ、サイドミラー、リアバンパ、バックドア及び車室内のフロントガラスの上部のうちの少なくとも一つの位置に設けられる。フロントノーズに備えられる撮像部7910及び車室内のフロントガラスの上部に備えられる撮像部7918は、主として車両7900の前方の画像を取得する。サイドミラーに備えられる撮像部7912,7914は、主として車両7900の側方の画像を取得する。リアバンパ又はバックドアに備えられる撮像部7916は、主として車両7900の後方の画像を取得する。車室内のフロントガラスの上部に備えられる撮像部7918は、主として先行車両又は、歩行者、障害物、信号機、交通標識又は車線等の検出に用いられる。
[0201]
 なお、図34には、それぞれの撮像部7910,7912,7914,7916の撮影範囲の一例が示されている。撮像範囲aは、フロントノーズに設けられた撮像部7910の撮像範囲を示し、撮像範囲b,cは、それぞれサイドミラーに設けられた撮像部7912,7914の撮像範囲を示し、撮像範囲dは、リアバンパ又はバックドアに設けられた撮像部7916の撮像範囲を示す。例えば、撮像部7910,7912,7914,7916で撮像された画像データが重ね合わせられることにより、車両7900を上方から見た俯瞰画像が得られる。
[0202]
 車両7900のフロント、リア、サイド、コーナ及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7922,7924,7926,7928,7930は、例えば超音波センサ又はレーダ装置であってよい。車両7900のフロントノーズ、リアバンパ、バックドア及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7926,7930は、例えばLIDAR装置であってよい。これらの車外情報検出部7920~7930は、主として先行車両、歩行者又は障害物等の検出に用いられる。
[0203]
 図33に戻って説明を続ける。車外情報検出ユニット7400は、撮像部7410に車外の画像を撮像させるとともに、撮像された画像データを受信する。また、車外情報検出ユニット7400は、接続されている車外情報検出部7420から検出情報を受信する。車外情報検出部7420が超音波センサ、レーダ装置又はLIDAR装置である場合には、車外情報検出ユニット7400は、超音波又は電磁波等を発信させるとともに、受信された反射波の情報を受信する。車外情報検出ユニット7400は、受信した情報に基づいて、人、車、障害物、標識又は路面上の文字等の物体検出処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、降雨、霧又は路面状況等を認識する環境認識処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、車外の物体までの距離を算出してもよい。
[0204]
 また、車外情報検出ユニット7400は、受信した画像データに基づいて、人、車、障害物、標識又は路面上の文字等を認識する画像認識処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した画像データに対して歪補正又は位置合わせ等の処理を行うとともに、異なる撮像部7410により撮像された画像データを合成して、俯瞰画像又はパノラマ画像を生成してもよい。車外情報検出ユニット7400は、異なる撮像部7410により撮像された画像データを用いて、視点変換処理を行ってもよい。
[0205]
 車内情報検出ユニット7500は、車内の情報を検出する。車内情報検出ユニット7500には、例えば、運転者の状態を検出する運転者状態検出部7510が接続される。運転者状態検出部7510は、運転者を撮像するカメラ、運転者の生体情報を検出する生体センサ又は車室内の音声を集音するマイク等を含んでもよい。生体センサは、例えば、座面又はステアリングホイール等に設けられ、座席に座った搭乗者又はステアリングホイールを握る運転者の生体情報を検出する。車内情報検出ユニット7500は、運転者状態検出部7510から入力される検出情報に基づいて、運転者の疲労度合い又は集中度合いを算出してもよいし、運転者が居眠りをしていないかを判別してもよい。車内情報検出ユニット7500は、集音された音声信号に対してノイズキャンセリング処理等の処理を行ってもよい。
[0206]
 統合制御ユニット7600は、各種プログラムにしたがって車両制御システム7000内の動作全般を制御する。統合制御ユニット7600には、入力部7800が接続されている。入力部7800は、例えば、タッチパネル、ボタン、マイクロフォン、スイッチ又はレバー等、搭乗者によって入力操作され得る装置によって実現される。統合制御ユニット7600には、マイクロフォンにより入力される音声を音声認識することにより得たデータが入力されてもよい。入力部7800は、例えば、赤外線又はその他の電波を利用したリモートコントロール装置であってもよいし、車両制御システム7000の操作に対応した携帯電話又はPDA(Personal Digital Assistant)等の外部接続機器であってもよい。入力部7800は、例えばカメラであってもよく、その場合搭乗者はジェスチャにより情報を入力することができる。あるいは、搭乗者が装着したウェアラブル装置の動きを検出することで得られたデータが入力されてもよい。さらに、入力部7800は、例えば、上記の入力部7800を用いて搭乗者等により入力された情報に基づいて入力信号を生成し、統合制御ユニット7600に出力する入力制御回路などを含んでもよい。搭乗者等は、この入力部7800を操作することにより、車両制御システム7000に対して各種のデータを入力したり処理動作を指示したりする。
[0207]
 記憶部7690は、マイクロコンピュータにより実行される各種プログラムを記憶するROM(Read Only Memory)、及び各種パラメータ、演算結果又はセンサ値等を記憶するRAM(Random Access Memory)を含んでいてもよい。また、記憶部7690は、HDD(Hard Disc Drive)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等によって実現してもよい。
[0208]
 汎用通信I/F7620は、外部環境7750に存在する様々な機器との間の通信を仲介する汎用的な通信I/Fである。汎用通信I/F7620は、GSM(登録商標)(Global System of Mobile communications)、WiMAX(登録商標)、LTE(登録商標)(Long Term Evolution)若しくはLTE-A(LTE-Advanced)などのセルラー通信プロトコル、又は無線LAN(Wi-Fi(登録商標)ともいう)、Bluetooth(登録商標)などのその他の無線通信プロトコルを実装してよい。汎用通信I/F7620は、例えば、基地局又はアクセスポイントを介して、外部ネットワーク(例えば、インターネット、クラウドネットワーク又は事業者固有のネットワーク)上に存在する機器(例えば、アプリケーションサーバ又は制御サーバ)へ接続してもよい。また、汎用通信I/F7620は、例えばP2P(Peer To Peer)技術を用いて、車両の近傍に存在する端末(例えば、運転者、歩行者若しくは店舗の端末、又はMTC(Machine Type Communication)端末)と接続してもよい。
[0209]
 専用通信I/F7630は、車両における使用を目的として策定された通信プロトコルをサポートする通信I/Fである。専用通信I/F7630は、例えば、下位レイヤのIEEE802.11pと上位レイヤのIEEE1609との組合せであるWAVE(Wireless Access in Vehicle Environment)、DSRC(Dedicated Short Range Communications)、又はセルラー通信プロトコルといった標準プロトコルを実装してよい。専用通信I/F7630は、典型的には、車車間(Vehicle to Vehicle)通信、路車間(Vehicle to Infrastructure)通信、車両と家との間(Vehicle to Home)の通信及び歩車間(Vehicle to Pedestrian)通信のうちの1つ以上を含む概念であるV2X通信を遂行する。
[0210]
 測位部7640は、例えば、GNSS(Global Navigation Satellite System)衛星からのGNSS信号(例えば、GPS(Global Positioning System)衛星からのGPS信号)を受信して測位を実行し、車両の緯度、経度及び高度を含む位置情報を生成する。なお、測位部7640は、無線アクセスポイントとの信号の交換により現在位置を特定してもよく、又は測位機能を有する携帯電話、PHS若しくはスマートフォンといった端末から位置情報を取得してもよい。
[0211]
 ビーコン受信部7650は、例えば、道路上に設置された無線局等から発信される電波あるいは電磁波を受信し、現在位置、渋滞、通行止め又は所要時間等の情報を取得する。なお、ビーコン受信部7650の機能は、上述した専用通信I/F7630に含まれてもよい。
[0212]
 車内機器I/F7660は、マイクロコンピュータ7610と車内に存在する様々な車内機器7760との間の接続を仲介する通信インタフェースである。車内機器I/F7660は、無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)又はWUSB(Wireless USB)といった無線通信プロトコルを用いて無線接続を確立してもよい。また、車内機器I/F7660は、図示しない接続端子(及び、必要であればケーブル)を介して、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface、又はMHL(Mobile High-definition Link))等の有線接続を確立してもよい。車内機器7760は、例えば、搭乗者が有するモバイル機器若しくはウェアラブル機器、又は車両に搬入され若しくは取り付けられる情報機器のうちの少なくとも1つを含んでいてもよい。また、車内機器7760は、任意の目的地までの経路探索を行うナビゲーション装置を含んでいてもよい。車内機器I/F7660は、これらの車内機器7760との間で、制御信号又はデータ信号を交換する。
[0213]
 車載ネットワークI/F7680は、マイクロコンピュータ7610と通信ネットワーク7010との間の通信を仲介するインタフェースである。車載ネットワークI/F7680は、通信ネットワーク7010によりサポートされる所定のプロトコルに則して、信号等を送受信する。
[0214]
 統合制御ユニット7600のマイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、各種プログラムにしたがって、車両制御システム7000を制御する。例えば、マイクロコンピュータ7610は、取得される車内外の情報に基づいて、駆動力発生装置、ステアリング機構又は制動装置の制御目標値を演算し、駆動系制御ユニット7100に対して制御指令を出力してもよい。例えば、マイクロコンピュータ7610は、車両の衝突回避あるいは衝撃緩和、車間距離に基づく追従走行、車速維持走行、車両の衝突警告、又は車両のレーン逸脱警告等を含むADAS(Advanced Driver Assistance System)の機能実現を目的とした協調制御を行ってもよい。また、マイクロコンピュータ7610は、取得される車両の周囲の情報に基づいて駆動力発生装置、ステアリング機構又は制動装置等を制御することにより、運転者の操作に拠らずに自律的に走行する自動運転等を目的とした協調制御を行ってもよい。
[0215]
 マイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、車両と周辺の構造物や人物等の物体との間の3次元距離情報を生成し、車両の現在位置の周辺情報を含むローカル地図情報を作成してもよい。また、マイクロコンピュータ7610は、取得される情報に基づき、車両の衝突、歩行者等の近接又は通行止めの道路への進入等の危険を予測し、警告用信号を生成してもよい。警告用信号は、例えば、警告音を発生させたり、警告ランプを点灯させたりするための信号であってよい。
[0216]
 音声画像出力部7670は、車両の搭乗者又は車外に対して、視覚的又は聴覚的に情報を通知することが可能な出力装置へ音声及び画像のうちの少なくとも一方の出力信号を送信する。図33の例では、出力装置として、オーディオスピーカ7710、表示部7720及びインストルメントパネル7730が例示されている。表示部7720は、例えば、オンボードディスプレイ及びヘッドアップディスプレイの少なくとも一つを含んでいてもよい。表示部7720は、AR(Augmented Reality)表示機能を有していてもよい。出力装置は、これらの装置以外の、ヘッドホン、搭乗者が装着する眼鏡型ディスプレイ等のウェアラブルデバイス、プロジェクタ又はランプ等の他の装置であってもよい。出力装置が表示装置の場合、表示装置は、マイクロコンピュータ7610が行った各種処理により得られた結果又は他の制御ユニットから受信された情報を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。また、出力装置が音声出力装置の場合、音声出力装置は、再生された音声データ又は音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
[0217]
 なお、図33に示した例において、通信ネットワーク7010を介して接続された少なくとも二つの制御ユニットが一つの制御ユニットとして一体化されてもよい。あるいは、個々の制御ユニットが、複数の制御ユニットにより構成されてもよい。さらに、車両制御システム7000が、図示されていない別の制御ユニットを備えてもよい。また、上記の説明において、いずれかの制御ユニットが担う機能の一部又は全部を、他の制御ユニットに持たせてもよい。つまり、通信ネットワーク7010を介して情報の送受信がされるようになっていれば、所定の演算処理が、いずれかの制御ユニットで行われるようになってもよい。同様に、いずれかの制御ユニットに接続されているセンサ又は装置が、他の制御ユニットに接続されるとともに、複数の制御ユニットが、通信ネットワーク7010を介して相互に検出情報を送受信してもよい。
[0218]
 なお、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2の各機能を実現するためのコンピュータプログラムを、いずれかの制御ユニット等に実装することができる。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体を提供することもできる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
[0219]
 以上説明した車両制御システム7000において、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2は、図33に示した応用例の統合制御ユニット7600に適用することができる。例えば、ToFセンサ1又は2の制御部11、制御レジスタ12、加算部15、ヒストグラム処理部16、メモリ17、距離推定/算出部18及び外部I/F19は、統合制御ユニット7600のマイクロコンピュータ7610、記憶部7690、車載ネットワークI/F7680に相当する。ただし、これに限定されず、車両制御システム7000が図1におけるホスト80に相当してもよい。
[0220]
 また、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2の少なくとも一部の構成要素は、図33に示した統合制御ユニット7600のためのモジュール(例えば、一つのダイで構成される集積回路モジュール)において実現されてもよい。あるいは、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2が、図33に示した車両制御システム7000の複数の制御ユニットによって実現されてもよい。
[0221]
 以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
[0222]
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
[0223]
 なお、本技術は以下のような構成も取ることができる。
(1)
 複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、
 それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、
 前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、
 前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、
 前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリと、
 を備え、
 各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、
 前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズのメモリ領域が各画素に対して割り当てられ、
 前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズのメモリ領域が各画素に対して割り当てられる
 測距装置。
(2)
 前記画素値生成部は、
  前記複数の受光素子それぞれから出力された前記検出信号の数を第1所定数の前記受光素子ごとに集計して第1画素値を出力する加算部と、
  前記加算部から出力された前記第1画素値に基づいて各画素の前記画素値を出力する可変並列加算部と、
 を含み、
 前記可変並列加算部は、前記制御レジスタに前記第1画素モードが保持されている場合、前記第1画素値をそのまま各画素の前記画素値として出力し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記第1画素値を加算した値を各画素の前記画素値として出力する
 前記(1)に記載の測距装置。
(3)
 前記アレイ部における前記複数の受光素子は、それぞれ前記第1所定数の受光素子で構成された複数のマクロ画素にグループ化されており、
 前記複数のマクロ画素は、それぞれ第2所定数の前記マクロ画素で構成された第3所定数の画素グループにグループ化されており、
 前記可変並列加算部は、前記制御レジスタに前記第2画素モードが保持されている場合、同一の前記画素グループに属する少なくとも2つのマクロ画素から取得された前記少なくとも2つの第1画素値を加算して各画素の前記画素値を算出する
 前記(2)に記載の測距装置。
(4)
 前記可変並列加算部は、前記制御レジスタに前記第2画素モードが保持されている場合、前記第1画素値を加算して得られた前記画素値を、当該加算の対象とした前記第1画素値の数と同じ数、出力する前記(3)に記載の測距装置。
(5)
 前記メモリは、前記第1所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
 前記制御レジスタに前記第1画素モードが保持されている場合、1つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納する
 前記(2)~(4)の何れか1項に記載の測距装置。
(6)
 前記メモリは、前記第1所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
 前記制御レジスタに前記第1画素モードが保持されている場合、1つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、
 前記可変並列加算部から出力された同じ値を持つ前記画素値は、1つの前記画素の前記ヒストグラムを格納する前記少なくとも2つの前記メモリ領域のうち、互いに異なる前記メモリ領域に格納される
 前記(4)に記載の測距装置。
(7)
 前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第3所定数とし、列方向を前記第2所定数とした画素値行列として出力し、
 前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
 前記(3)又は(4)に記載の測距装置。
(8)
 前記メモリは、前記第3所定数の第1メモリよりなり、
 各第1メモリは、前記第2所定数の前記メモリ領域を含み、
 前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第3所定数とし、列方向を前記第2所定数とした画素値行列として出力し、
 前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
 前記(6)に記載の測距装置。
(9)
 前記メモリの1つのメモリアドレスは、前記ヒストグラムの1つのBINに対応し、
 前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を前記メモリのメモリアドレス順に当該メモリに書き込むことで前記ヒストグラムを作成するヒストグラム生成部をさらに備える前記(1)~(8)の何れか1項に記載の測距装置。
(10)
 前記ヒストグラム生成部は、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を、書込み先となる前記メモリアドレスに既に格納されている値に加算する前記(9)に記載の測距装置。
(11)
 前記アレイ部の画角の少なくとも一部を含む範囲にパルス状のレーザ光を出射する発光部をさらに備え、
 前記ヒストグラム生成部は、前記制御レジスタに第1画素モードが保持されている場合、第1サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成し、前記制御レジスタに第2画素モードが保持されている場合、前記第1サンプリング回数とは異なる第2サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成する
 前記(9)又は(10)に記載の測距装置。
(12)
 前記メモリに格納されている前記ヒストグラムに基づいて物体までの距離を推定又は算出する距離推定/算出部をさらに備える前記(1)~(11)の何れか1項に記載の測距装置。
(13)
 前記受光素子は、SPAD(Single Photon Avalanche Diode)である前記(1)~(12)の何れか1項に記載の測距装置。
(14)
 前記第2画素モードの測距範囲は、前記第1画素モードの測距範囲よりも長く、
 前記第1画素モードの解像度は、前記第1画素モードの解像度よりも高い
 前記(1)~(13)の何れか1項に記載の測距装置。
(15)
 前記複数の受光素子が2次元格子状に配列するフラッシュ型である前記(1)~(14)の何れか1項に記載の測距装置。
(16)
 前記アレイ部に入射する光を走査する走査部をさらに備える前記(1)~(15)の何れか1項に記載の測距装置。
(17)
 複数の画素モードのうちの何れかを設定値として制御レジスタに保持させ、
 複数の受光素子それぞれから所定のサンプリング周期で読み出された検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成し、
 前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとにメモリに格納する
 ことを含み、
 各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、
 前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズのメモリ領域が各画素に対して割り当てられ、
 前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズのメモリ領域が各画素に対して割り当てられる
 測距方法。

符号の説明

[0224]
 1、2 ToFセンサ
 11 制御部
 12 制御レジスタ
 13、213 発光部
 14、214 受光部
 15 加算部
 16 ヒストグラム処理部
 17 メモリ
 18 距離推定/算出部
 19 外部I/F
 20 SPAD画素
 21 フォトダイオード
 22 読出し回路
 23 クエンチ抵抗
 24 選択トランジスタ
 25 デジタル変換器
 26 インバータ
 27 バッファ
 30 マクロ画素
 31 画素グループ
 480~485、490~497 画素値列
 51、64 セレクタ
 52 加算器(+1)
 53、54、56、61、62、65 D-FF
 55 SRAM
 63 加算器
 80 ホスト
 90 物体
 141 タイミング制御回路
 142 駆動回路
 143 SPADアレイ
 144 出力回路
 151 パルス整形部
 152 受光数カウント部
 161 画素数可変並列加算部
 162 行列転置部
 163、1630~1637 ヒストグラム生成部
 170~177、1700~1705 メモリ
 200 制御装置
 201 集光レンズ
 202 ハーフミラー
 203 マイクロミラー
 204 受光レンズ
 205 スキャン部
 243 マクロ画素列
 251 抵抗
 252、262 NMOSトランジスタ
 261 PMOSトランジスタ
 AR 走査エリア
 SA 像
 L0 外乱光
 L1 レーザ光
 L2 反射光
 LD 画素駆動線
 LS 出力信号線
 P0~P2047 サンプリング番号

請求の範囲

[請求項1]
 複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、
 それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、
 前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、
 前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、
 前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリと、
 を備え、
 各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、
 前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズの領域が各画素に対して割り当てられ、
 前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズの領域が各画素に対して割り当てられる
 測距装置。
[請求項2]
 前記画素値生成部は、
  前記複数の受光素子それぞれから出力された前記検出信号の数を第1所定数の前記受光素子ごとに集計して第1画素値を出力する加算部と、
  前記加算部から出力された前記第1画素値に基づいて各画素の前記画素値を出力する可変並列加算部と、
 を含み、
 前記可変並列加算部は、前記制御レジスタに前記第1画素モードが保持されている場合、前記第1画素値をそのまま各画素の前記画素値として出力し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記第1画素値を加算した値を各画素の前記画素値として出力する
 請求項1に記載の測距装置。
[請求項3]
 前記アレイ部における前記複数の受光素子は、それぞれ前記第1所定数の受光素子で構成された複数のマクロ画素にグループ化されており、
 前記複数のマクロ画素は、それぞれ第2所定数の前記マクロ画素で構成された第3所定数の画素グループにグループ化されており、
 前記可変並列加算部は、前記制御レジスタに前記第2画素モードが保持されている場合、同一の前記画素グループに属する少なくとも2つのマクロ画素から取得された前記少なくとも2つの第1画素値を加算して各画素の前記画素値を算出する
 請求項2に記載の測距装置。
[請求項4]
 前記可変並列加算部は、前記制御レジスタに前記第2画素モードが保持されている場合、前記第1画素値を加算して得られた前記画素値を、当該加算の対象とした前記第1画素値の数と同じ数、出力する請求項3に記載の測距装置。
[請求項5]
 前記メモリは、前記第1所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
 前記制御レジスタに前記第1画素モードが保持されている場合、1つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納する
 請求項2に記載の測距装置。
[請求項6]
 前記メモリは、前記第1所定数の受光素子それぞれに対して一対一に対応するメモリ領域を含み、
 前記制御レジスタに前記第1画素モードが保持されている場合、1つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、前記制御レジスタに前記第2画素モードが保持されている場合、少なくとも2つの前記メモリ領域で1つの前記画素の前記ヒストグラムを格納し、
 前記可変並列加算部から出力された同じ値を持つ前記画素値は、1つの前記画素の前記ヒストグラムを格納する前記少なくとも2つの前記メモリ領域のうち、互いに異なる前記メモリ領域に格納される
 請求項4に記載の測距装置。
[請求項7]
 前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第3所定数とし、列方向を前記第2所定数とした画素値行列として出力し、
 前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
 請求項3に記載の測距装置。
[請求項8]
 前記メモリは、前記第3所定数の第1メモリよりなり、
 各第1メモリは、前記第2所定数の前記メモリ領域を含み、
 前記画素値生成部は、前記画素ごとの前記画素値を、行方向の要素を前記第3所定数とし、列方向を前記第2所定数とした画素値行列として出力し、
 前記画素値生成部は、前記画素値行列の行列を転置する行列転置部をさらに含む
 請求項6に記載の測距装置。
[請求項9]
 前記メモリの1つのメモリアドレスは、前記ヒストグラムの1つのBINに対応し、
 前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を前記メモリのメモリアドレス順に当該メモリに書き込むことで前記ヒストグラムを作成するヒストグラム生成部をさらに備える請求項1に記載の測距装置。
[請求項10]
 前記ヒストグラム生成部は、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値を、書込み先となる前記メモリアドレスに既に格納されている値に加算する請求項9に記載の測距装置。
[請求項11]
 前記アレイ部の画角の少なくとも一部を含む範囲にパルス状のレーザ光を出射する発光部をさらに備え、
 前記ヒストグラム生成部は、前記制御レジスタに第1画素モードが保持されている場合、第1サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成し、前記制御レジスタに第2画素モードが保持されている場合、前記第1サンプリング回数とは異なる第2サンプリング回数分の前記画素値を用いて前記ヒストグラムを作成する
 請求項9に記載の測距装置。
[請求項12]
 前記メモリに格納されている前記ヒストグラムに基づいて物体までの距離を推定又は算出する距離推定/算出部をさらに備える請求項1に記載の測距装置。
[請求項13]
 前記受光素子は、SPAD(Single Photon Avalanche Diode)である請求項1に記載の測距装置。
[請求項14]
 前記第2画素モードの測距範囲は、前記第1画素モードの測距範囲よりも長く、
 前記第1画素モードの解像度は、前記第1画素モードの解像度よりも高い
 請求項1に記載の測距装置。
[請求項15]
 前記複数の受光素子が2次元格子状に配列するフラッシュ型である請求項1に記載の測距装置。
[請求項16]
 前記アレイ部に入射する光を走査する走査部をさらに備える請求項1に記載の測距装置。
[請求項17]
 複数の画素モードのうちの何れかを設定値として制御レジスタに保持させ、
 複数の受光素子それぞれから所定のサンプリング周期で読み出された検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成し、
 前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとにメモリに格納する
 ことを含み、
 各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、
 前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズの領域が各画素に対して割り当てられ、
 前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズの領域が各画素に対して割り当てられる
 測距方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]

[ 図 20]

[ 図 21]

[ 図 22]

[ 図 23]

[ 図 24]

[ 図 25]

[ 図 26]

[ 図 27]

[ 図 28]

[ 図 29]

[ 図 30]

[ 図 31]

[ 図 32]

[ 図 33]

[ 図 34]