WO2020116039A1 - 測距装置及び測距方法 - Google Patents

測距装置及び測距方法 Download PDF

Info

Publication number
WO2020116039A1
WO2020116039A1 PCT/JP2019/041034 JP2019041034W WO2020116039A1 WO 2020116039 A1 WO2020116039 A1 WO 2020116039A1 JP 2019041034 W JP2019041034 W JP 2019041034W WO 2020116039 A1 WO2020116039 A1 WO 2020116039A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
histogram
memory
unit
pixel value
Prior art date
Application number
PCT/JP2019/041034
Other languages
English (en)
French (fr)
Inventor
坂口 浩章
長谷川 浩一
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Priority to CN201980009616.6A priority Critical patent/CN111630409A/zh
Priority to DE112019000310.0T priority patent/DE112019000310T5/de
Priority to US16/964,673 priority patent/US20200348416A1/en
Publication of WO2020116039A1 publication Critical patent/WO2020116039A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/08Systems determining position data of a target for measuring distance only
    • G01S17/10Systems determining position data of a target for measuring distance only using transmission of interrupted, pulse-modulated waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G01S17/8943D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/483Details of pulse systems
    • G01S7/486Receivers
    • G01S7/4865Time delay measurement, e.g. time-of-flight measurement, time of arrival measurement or determining the exact position of a peak

Definitions

  • the present disclosure relates to a distance measuring device and a distance measuring method.
  • ToF sensors distance image sensors
  • SPADs Single Photon Avalanche Diodes
  • CMOS Complementary Metal Oxide Semiconductor
  • the time from the light source emitting light to the reflected light entering the SPAD (hereinafter referred to as flight time) is measured as a physical quantity multiple times, and a histogram of the physical quantity generated from the measurement result is obtained. Based on this, the distance to the object is specified.
  • the BIN number in the histogram corresponds to the distance to the object from the law of constant light speed. Therefore, the necessary and sufficient histogram BIN number is different between the case where the distance measurement target is near and the case where the distance measurement target is far. That is, a small number of BINs is sufficient when the distance is to be measured in the vicinity, and a large number of BINs is required when the distance to a farther object is measured.
  • the number of BINs in the histogram corresponds to the size (also called depth) of the memory area that stores the histogram. Therefore, a shallow memory area is sufficient when the distance is to be measured in the near range, and a deeper memory area is required when the distance is to be measured farther.
  • the present disclosure proposes a distance measuring device and a distance measuring method capable of efficiently using memory resources depending on the situation.
  • a distance measuring device includes a control register that holds any one of a plurality of pixel modes as a set value, and a plurality of light receiving devices that detect incidence of photons, respectively.
  • a pixel value generation unit that generates a pixel value of each pixel for each sampling period by totaling, and a memory that stores, for each pixel, a histogram of the pixel values calculated by the pixel value generation unit for each sampling period.
  • each pixel is composed of one or more light receiving elements of the plurality of light receiving elements, and when the first pixel mode is held in the control register, the area of the first size in the memory is If the second pixel mode is allocated to each pixel and the control register holds the second pixel mode, a region of the second size different from the first size in the memory is allocated to each pixel.
  • FIG. 3 is a circuit diagram showing a schematic configuration example of a SPAD pixel according to the first embodiment.
  • FIG. 3 It is a block diagram which shows the more detailed structural example of the addition part which concerns on 1st Embodiment.
  • FIG. 3 is a block diagram showing a schematic configuration example of a histogram processing unit according to the first embodiment.
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit according to the first embodiment in one sampling.
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit according to the first embodiment in one sampling, focusing on one histogram generation unit (first pixel mode).
  • 6 is a timing chart for explaining an operation performed by the histogram generation unit for one light emission of the light emitting unit according to the first embodiment (first pixel mode).
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit according to the first embodiment in one sampling (second pixel mode).
  • 6 is a timing chart for explaining an operation performed by the histogram generation unit for one light emission of the light emitting unit according to the first embodiment (second pixel mode).
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit for one light emission of the light emitting unit according to the first embodiment in one sampling.
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit according to the first embodiment in one sampling (third pixel mode).
  • 6 is a timing chart for explaining an operation performed by the histogram generation unit for one light emission of the light emitting unit according to the first embodiment (third pixel mode).
  • FIG. 6 is a block diagram for explaining an operation performed by the histogram generation unit according to the first embodiment in one sampling (fourth pixel mode).
  • 7 is a timing chart for explaining an operation performed by the histogram generation unit for one light emission of the light emitting unit according to the first embodiment (fourth pixel mode).
  • FIG. 6 is a diagram for explaining the operation of the histogram generation unit according to the first embodiment.
  • FIG. 3 is a flowchart showing a schematic operation example of the ToF sensor according to the first embodiment.
  • FIG. 1 It is a figure which shows an example of the histogram produced in the memory with respect to the 3rd light emission of the light emission part which concerns on 1st Embodiment.
  • FIG. 1 It is a schematic diagram which shows the schematic structural example of the ToF sensor as a distance measuring device which concerns on 2nd Embodiment.
  • a ToF sensor using SPAD has a SPAD array in which a plurality of SPADs are arranged in a two-dimensional lattice.
  • the SPADs of the SPAD array are grouped into macropixels, each macropixel consisting of one or more SPADs.
  • One macro pixel corresponds to one pixel in the ranging image. Therefore, when the number of SPADs forming one macro pixel and the shape of the area are determined, the number of macro pixels of the entire ToF sensor is determined, and thereby the resolution of the ranging image is determined. Therefore, for example, by setting the SPAD number of one macro pixel to a small value, it is possible to increase the resolution of the range image acquired by the ToF sensor.
  • the SPAD number of one macro pixel is set to a small value, the dynamic range of the pixel value obtained from one macro pixel becomes narrow, and weak reflected light from a distant object has disturbance light of a substantially constant intensity (also called background light). ), it becomes difficult to distinguish reflected light from ambient light.
  • the resolution and the number of BINs can be changed to realize efficient use of memory resources according to the situation and rebalance the resolution and the dynamic range according to the situation.
  • a range-finding device and a range-finding method capable of performing the above will be described with specific examples.
  • FIG. 1 is a block diagram showing a schematic configuration example of a ToF sensor as a distance measuring device according to this embodiment.
  • the ToF sensor 1 includes a control unit 11, a control register 12, a light emitting unit 13, a light receiving unit 14, an adding unit 15, a histogram processing unit 16, and a distance estimating/calculating unit 18. , And an external interface (I/F) 19.
  • I/F external interface
  • the control unit 11 is configured by an information processing device such as a CPU (Central Processing Unit), and controls each unit of the ToF sensor 1. At that time, the control unit 11 controls each unit of the ToF sensor 1 according to the pixel mode stored as a set value in the control register 12.
  • an information processing device such as a CPU (Central Processing Unit)
  • CPU Central Processing Unit
  • the ToF sensor 1 has a plurality of pixel modes in which the resolution, the distance measuring range, and the like of the ToF sensor 1 are different, and the pixel mode may be switched based on an instruction from the external host 80 or the like or a judgment of the control unit 11. ..
  • the pixel mode may be set, for example, by the control unit 11 registering a value input from the host 80 or the like via the external I/F 19 in the control register 12 corresponding to the pixel mode. It may be set by the control unit 11 making an appropriate judgment and changing the set value of the pixel mode in the control register 12.
  • the host 80 may be, for example, an ECU (Engine Control Unit) mounted in an automobile or the like when the ToF sensor 1 is mounted in the automobile or the like.
  • an autonomous mobile robot such as a domestic pet robot, an autonomous mobile body such as a robot cleaner, an unmanned aerial vehicle, or a follow-up transport robot
  • the host 80 controls the autonomous mobile body. It may be a control device or the like.
  • the control register 12 holds, for example, the pixel mode of the ToF sensor 1 as a set value.
  • the details of the pixel mode of the ToF sensor 1 will be described later with reference to an example, but in the present description, the case where the pixel modes 0 to 3 exist is illustrated.
  • the pixel mode 0 is a pixel mode having the highest resolution among the pixel modes 0 to 3 and a narrow ranging range
  • the pixel mode 3 is the widest ranging range among the pixel modes 0 to 3.
  • the pixel mode has a low resolution
  • the pixel modes 1 and 2 are the pixel modes of the resolution and the ranging range between the pixel mode 0 and the pixel mode 3.
  • the light emitting unit 13 is composed of, for example, one or a plurality of semiconductor laser diodes, and emits a pulsed laser beam L1 having a predetermined time width at a predetermined cycle (also referred to as a light emitting cycle).
  • the light emitting unit 13 emits the laser light L1 toward at least an angle range equal to or larger than the angle of view of the light receiving unit 14. Further, the light emitting unit 13 emits the laser light L1 having a time width of 1 ns (nanosecond) at a period of 1 GHz (gigahertz), for example.
  • the laser light L1 emitted from the light emitting unit 13 is reflected by the object 90, for example, when the object 90 is present within the range, and enters the light receiving unit 14 as reflected light L2.
  • the light receiving unit 14 will be described in detail later, but includes, for example, a plurality of SPAD pixels arranged in a two-dimensional lattice, and the number of SPAD pixels that detect the incidence of photons after the light emitting unit 13 emits light (hereinafter, the number of detected SPAD pixels). (For example, the number of detection signals described later) is output.
  • the light receiving unit 14 detects the incidence of photons at a predetermined sampling period for each light emission of the light emitting unit 13, and outputs the detected number.
  • the adding unit 15 totalizes the detection numbers output from the light receiving unit 14 for each of a plurality of SPAD pixels (e.g., corresponding to one or a plurality of macro pixels described later), and sends the totalized value to the histogram processing unit 16 as a pixel value. Output.
  • the histogram processing unit 16 uses the pixel value obtained for each one or a plurality of macro pixels as the flight time on the horizontal axis (e.g., corresponding to the number indicating the sampling order (hereinafter referred to as the sampling number)) and the vertical axis on the vertical axis. Create a histogram of cumulative pixel values.
  • the histogram is created in the memory 17 in the histogram processing unit 16, for example.
  • SRAM Static Random Access Memory
  • the memory 17 is not limited to this, and various memories such as DRAM (Dynamic RAM) can be used as the memory 17.
  • the distance estimation/calculation unit 18 specifies the flight time when the cumulative pixel value reaches a peak from the histogram created by the histogram processing unit 16. In addition, the distance estimation/calculation unit 18 estimates or calculates the distance from the ToF sensor 1 or a device equipped with the same to the object 90 existing in the distance measurement range based on the specified flight time. Then, the distance estimation/calculation unit 18 outputs the estimated or calculated distance information to the host 80 or the like via the external I/F 19, for example.
  • Light receiving unit Fig. 2 is a block diagram showing a schematic configuration example of the light receiving unit according to the present embodiment.
  • the light receiving unit 14 includes a timing control circuit 141, a drive circuit 142, a SPAD array 143, and an output circuit 144.
  • the SPAD array 143 includes a plurality of SPAD pixels 20 arranged in a two-dimensional lattice.
  • pixel drive lines LD vertical direction in the drawing
  • output signal lines LS horizontal direction in the drawing
  • One end of the pixel drive line LD is connected to the output end corresponding to each column of the drive circuit 142
  • one end of the output signal line LS is connected to the input end corresponding to each row of the output circuit 144.
  • the drive circuit 142 includes a shift register, an address decoder, and the like, and drives each SPAD pixel 20 of the SPAD array 143 simultaneously with all pixels or in column units. Therefore, the drive circuit 142 applies a quench voltage V_QCH described later to at least each SPAD pixel 20 in the selected column in the SPAD array 143 and a selection control voltage V_SEL described below to each SPAD pixel 20 in the selected column. And a circuit for applying the voltage. Then, the drive circuit 142 applies the selection control voltage V_SEL to the pixel drive line LD corresponding to the column to be read, thereby selecting the SPAD pixel 20 used for detecting the incidence of photons in column units.
  • a signal (referred to as a detection signal) V_OUT output from each SPAD pixel 20 in the column selectively scanned by the drive circuit 142 is input to the output circuit 144 through each of the output signal lines LS.
  • the output circuit 144 outputs the detection signal V_OUT input from each SPAD pixel 20 to the adder 15 (see FIG. 1) provided for each macro pixel described later.
  • the timing control circuit 141 includes a timing generator that generates various timing signals, and controls the drive circuit 142 and the output circuit 144 based on the various timing signals generated by the timing generator.
  • FIG. 3 is a schematic diagram showing a schematic configuration example of the SPAD array according to the present embodiment.
  • the SPAD array 143 has a configuration in which a plurality of SPAD pixels 20 are arranged in a two-dimensional lattice pattern, for example.
  • the plurality of SPAD pixels 20 are grouped into a plurality of macro pixels 30 each including a predetermined number of SPAD pixels 20 arranged in the row and/or column direction.
  • the shape of the region connecting the outer edges of the SPAD pixels 40 located at the outermost periphery of each macro pixel 30 is a predetermined shape (for example, a rectangle).
  • the plurality of macro pixels 30 arranged in the column direction are divided into a plurality of pixel groups 31 each having a predetermined number.
  • FIG. 4 is a circuit diagram showing a schematic configuration example of the SPAD pixel according to the present embodiment.
  • the SPAD pixel 20 includes a photodiode 21 as a light receiving element and a readout circuit 22 that detects that photons are incident on the photodiode 21.
  • the photodiode 21 generates an avalanche current when a photon is incident while a reverse bias voltage V_SPAD of a breakdown voltage (breakdown voltage) or more is applied between its anode and cathode.
  • the read circuit 22 includes a quench resistor 23, a digital converter 25, an inverter 26, a buffer 27, and a selection transistor 24.
  • the quench resistor 23 is composed of, for example, an N-type MOSFET (Metal Oxide Semiconductor Field Effect Transistor; hereinafter referred to as an NMOS transistor), its drain is connected to the anode of the photodiode 21, and its source is connected via the selection transistor 24. It is grounded. Further, a quench voltage V_QCH that is set in advance for causing the NMOS transistor to act as a quench resistor is applied to the gate of the NMOS transistor that constitutes the quench resistor 23 from the drive circuit 142 via the pixel drive line LD. ..
  • the photodiode 21 is SPAD.
  • the SPAD is an avalanche photodiode that operates in the Geiger mode when a reverse bias voltage equal to or higher than the breakdown voltage (breakdown voltage) is applied between its anode and cathode, and can detect the incidence of one photon.
  • the digital converter 25 includes a resistor 251 and an NMOS transistor 252.
  • the NMOS transistor 252 has its drain connected to the power supply voltage VDD via the resistor 251, and its source grounded. Further, the voltage of the connection point N1 between the anode of the photodiode 21 and the quench resistor 23 is applied to the gate of the NMOS transistor 252.
  • the inverter 26 includes a P-type MOSFET (hereinafter referred to as a PMOS transistor) 261 and an NMOS transistor 262.
  • the drain of the PMOS transistor 261 is connected to the power supply voltage VDD, and the source thereof is connected to the drain of the NMOS transistor 262.
  • the NMOS transistor 262 has its drain connected to the source of the PMOS transistor 261, and its source grounded.
  • the voltage of the connection point N2 between the resistor 251 and the drain of the NMOS transistor 252 is applied to the gate of the PMOS transistor 261 and the gate of the NMOS transistor 262, respectively.
  • the output of the inverter 26 is input to the buffer 27.
  • the buffer 27 is a circuit for impedance conversion. When an output signal is input from the inverter 26, the buffer 27 impedance-converts the input output signal and outputs it as a detection signal V_OUT.
  • the selection transistor 24 is, for example, an NMOS transistor, the drain of which is connected to the source of the NMOS transistor that constitutes the quench resistor 23, and the source of which is grounded.
  • the selection transistor 24 is connected to the drive circuit 142, and when the selection control voltage V_SEL from the drive circuit 142 is applied to the gate of the selection transistor 24 via the pixel drive line LD, the off state is changed to the on state. ..
  • the readout circuit 22 illustrated in FIG. 4 operates as follows, for example. That is, first, while the selection control voltage V_SEL is applied from the drive circuit 142 to the selection transistor 24 and the selection transistor 24 is in the ON state, the photodiode 21 has a reverse bias voltage V_SPAD equal to or higher than the breakdown voltage (breakdown voltage). Is applied. As a result, the operation of the photodiode 21 is permitted.
  • the selection control voltage V_SEL is not applied from the drive circuit 142 to the selection transistor 24, and the reverse bias voltage V_SPAD is not applied to the photodiode 21 while the selection transistor 24 is in the OFF state. Is prohibited.
  • the high level detection signal V_OUT is output from the buffer 27.
  • the voltage applied between the anode and the cathode of the photodiode 21 becomes smaller than the breakdown voltage, whereby the avalanche current stops and the voltage at the connection point N1 is stopped.
  • the NMOS transistor 452 is turned off and the output of the detection signal V_OUT from the buffer 27 is stopped (low level).
  • the avalanche current is stopped and the NMOS transistor 452 is turned off from the timing when the photon is incident on the photodiode 21 and the avalanche current is generated, which causes the NMOS transistor 452 to be turned on.
  • the high-level detection signal V_OUT is output for the period until the timing.
  • the output detection signal V_OUT is input to the addition unit 15 (see FIG. 1) for each macro pixel 30 via the output circuit 144. Therefore, the detection signals V_OUT corresponding to the number (detection number) of the SPAD pixels 20 in which the photon incidence is detected among the plurality of SPAD pixels 20 configuring one macro pixel 30 are input to each addition unit 15.
  • FIG. 5 is a block diagram showing a more detailed configuration example of the adder unit according to the present embodiment.
  • the addition unit 15 includes, for example, a pulse shaping unit 151 and a received light number counting unit 152.
  • the pulse shaping unit 151 shapes the pulse waveform of the detection signal V_OUT input from the SPAD array 143 via the output circuit 144 into a pulse waveform having a time width according to the operation clock of the addition unit 15.
  • the received light number counting unit 152 counts the detection signal V_OUT input from the corresponding macro pixel 30 in each sampling period, thereby determining the number (detection number) of the SPAD pixels 20 in which photon incidence is detected in each sampling period. It counts and outputs this count value as the pixel value d of the macro pixel 30.
  • [i] is an identifier for identifying the macro pixel 30 in each pixel group 31, and in the present example, from “0” to “0”. Values up to 7'(see FIG. 3).
  • [j] is an identifier for specifying the pixel group 31, and is a value from “0” to “5” (see FIG. 3) in this example.
  • [8:0] indicates the number of bits of the pixel value d[i][j]. This also applies to pixel values D[i][j] described later. Therefore, in FIG.
  • the addition unit 15 is a 9-bit pixel value that can take a value of “0” to “511” based on the detection signal V_OUT input from the macro pixel 30 specified by the identifiers i and j. Generating d is illustrated.
  • the sampling cycle is a cycle for measuring the time (flying time) from the emission of the laser light L1 by the light emitting unit 13 to the detection of incidence of photons by the light receiving unit 14.
  • the sampling cycle is set to a cycle shorter than the light emitting cycle of the light emitting unit 13. For example, by shortening the sampling cycle, it is possible to estimate or calculate the flight time of photons emitted from the light emitting unit 13 and reflected by the object 90 with higher time resolution. This means that by increasing the sampling frequency, it is possible to estimate or calculate the distance to the object 90 with higher distance measurement resolution.
  • the speed of light C is constant ( Since C ⁇ 300,000,000 m (meter)/s (second), the distance L to the object 90 can be estimated or calculated by the following formula (1).
  • L C ⁇ t/2 (1)
  • the sampling period will be 1 ns (nanosecond). In that case, one sampling period corresponds to 15 cm (centimeter). This indicates that the distance measurement resolution is 15 cm when the sampling frequency is 1 GHz.
  • the sampling cycle is 0.5 ns (nanosecond), and thus one sampling cycle corresponds to 7.5 cm (centimeter). This indicates that the distance measurement resolution can be halved when the sampling frequency is doubled. As described above, by increasing the sampling frequency and shortening the sampling cycle, it is possible to more accurately estimate or calculate the distance to the object 90.
  • FIG. 6 is a block diagram showing a schematic configuration example of the histogram processing unit according to the present embodiment. Note that, in FIG. 6, the configuration of the SPAD array 143 and the addition unit 15 are also illustrated for the sake of clarity. Although the memory 17 is omitted in FIG. 6 for convenience of description, it is assumed that the memory 17 is included in each of the histogram generation units 1630 to 1637.
  • the adders 15 are provided in a one-to-one correspondence.
  • the histogram processing unit 16 in FIG. 1 is commonly used for the pixel number variable parallel addition unit 161 provided in a one-to-one relationship with the pixel group 31 in the SPAD array 143 and for the plurality of pixel number variable parallel addition units 161.
  • the matrix transposing unit 162 is provided, and the histogram generating units 1630 to 1637 (hereinafter, when the histogram generating units 1630 to 1637 are not distinguished, the reference numeral is 163).
  • the addition unit 15, the pixel number variable parallel addition unit 161, and the matrix transposition unit 162 correspond to, for example, a pixel value generation unit in the claims.
  • FIG. 7 to FIG. 10 are block diagrams showing more detailed configuration examples of the pixel variable parallel adder according to the present embodiment.
  • FIG. 7 shows a schematic configuration example of the pixel number variable parallel addition unit 161 when the pixel mode is “0”, and
  • FIG. 8 shows the pixel number variable parallel addition unit when the pixel mode is “1”.
  • 9 shows a schematic configuration example of 161.
  • FIG. 9 shows a schematic configuration example of the pixel number variable parallel addition unit 161 when the pixel mode is “2”.
  • FIG. 10 shows a schematic configuration example when the pixel mode is “3”. The example of schematic structure of the pixel number variable parallel addition part 161 is shown.
  • Pixel mode 0 (first pixel mode)
  • the pixel mode “0” is set from the control unit 11, in other words, the pixel mode with the highest resolution and the narrowest ranging range among all the pixel modes (hereinafter,
  • one macro pixel corresponds to one pixel in the ranging image. Therefore, the resolution of the ToF sensor 1 is the number of macro pixels 30 per unit area.
  • the pixel mode “1” is set by the control unit 11, in other words, the resolution is second highest among all pixel modes and the range-finding range is second narrowest.
  • the pixel mode hereinafter, referred to as the second pixel mode
  • the implementation of the adder 41 may be realized by executing a predetermined program, for example.
  • the pixel values of are added to generate a 12-bit pixel value D.
  • the adder 41 To generate a 12-bit pixel value D, and the generated 12-bit pixel value D has the same pixel value D[4][j][11:0] and pixel value D[5][j ] [11:0] are output.
  • To generate a 12-bit pixel value D and the generated 12-bit pixel value D has the same pixel value D[6][j][11:0] and pixel value D[7][j ] [11:0] are output.
  • the values obtained from the two macro pixels 30 are added, and two pixel values D[2k][j][11:0] and D[2k+1] having the same value are added. [J][11:0] are generated.
  • the two macro pixels 30 correspond to one pixel in the ranging image. Therefore, in the second pixel mode, the resolution of the ToF sensor 1 is, for example, half that of the first pixel mode.
  • Pixel mode 2 (third pixel mode)
  • the control unit 11 when the pixel mode “2” is set by the control unit 11, in other words, the resolution is the third highest and the distance measuring range is the third narrowest in all the pixel modes.
  • the pixel mode hereinafter referred to as the third pixel mode
  • Each adder 45 can be realized by, for example, further mounting two adders 42 that add two outputs of the four adders 41 that are mounted when the second pixel mode is set. ..
  • the implementation of the adder 42 may be realized by executing a predetermined program, like the adder 41, for example.
  • a 12-bit pixel value D is generated.
  • the generated 12-bit pixel value D is output as pixel values D[4][j][11:0] to D[7][j][11:0] having the same value.
  • the values obtained from the four macro pixels 30 are added, and four pixel values D[4k][j][11:0] and D[4k+1] having the same value are added. [J][11:0], D[4k+2][j][11:0], and D[4k+3][j][11:0] are generated.
  • the four macro pixels 30 correspond to one pixel in the ranging image. Therefore, in the third pixel mode, the resolution of the ToF sensor 1 is, for example, 1/4 of that in the first pixel mode.
  • the adder 46 can be realized, for example, by further mounting the adder 43 that adds the outputs of the two adders 42 that are additionally mounted when the third pixel mode is set.
  • the implementation of the adder 43 may be realized by executing a predetermined program, like the adders 41 and 42, for example.
  • eight macro pixels 30 correspond to one pixel in the ranging image. Therefore, in the fourth pixel mode, the resolution of the ToF sensor 1 is, for example, 1/8 of that in the first pixel mode.
  • the number of pixel values d added by the pixel number variable parallel addition unit 161 is changed according to the pixel mode.
  • FIG. 11 is a block diagram showing a schematic configuration example of the matrix transposing unit according to the present embodiment.
  • the matrix transposing unit 162 receives a total of 48 pixel values D[i][j] (hereinafter, referred to as a pixel value matrix) arranged in 8 rows and 6 columns from the 6 pixel number variable parallel adding unit 161. It The matrix transposition unit 162 transposes the input matrix of the pixel value matrix of 8 rows and 6 columns to generate a pixel value matrix of 6 rows and 8 columns.
  • the matrix transposing unit 162 inputs the pixel value matrix after the matrix transposition for each column to the histogram generating unit 163 in the subsequent stage.
  • histogram generating units 1630 to 1637 are provided one-to-one with respect to the columns. Therefore, the pixel value column 490 is input to the histogram generation unit 1630, the pixel value column 491 is input to the histogram generation unit 1631, the pixel value column 492 is input to the histogram generation unit 1632, and the pixel value column 493 is input to the histogram generation unit 1633.
  • the pixel value sequence 494 is input to the histogram generation unit 1634, the pixel value sequence 495 is input to the histogram generation unit 1635, the pixel value sequence 496 is input to the histogram generation unit 1636, and the pixel value sequence 497 is input to the histogram generation unit 1636. It is input to the unit 1637.
  • the reference numeral is 49.
  • FIGS. 12, 13, 15, 17, and 19 illustrate operations performed by the histogram generating section according to the present embodiment in one sampling.
  • FIG. 14, FIG. 16, FIG. 18, and FIG. 20 are timing charts for explaining the operation performed by the histogram generation unit for one light emission of the light emitting unit according to this embodiment.
  • 12, FIG. 13, and FIG. 14 are diagrams for explaining the histogram generation unit when the pixel mode is “0”, and FIGS. 15 and 16 are cases where the pixel mode is “1”.
  • FIG. 17 and FIG. 18 are diagrams for explaining the histogram generation unit in the case where the pixel mode is “2”, and FIGS. It is a figure for demonstrating the histogram generation part in case a mode is "3".
  • BIN numbers (also referred to as BINIDX) of the histograms in the memories 1700 to 1705 correspond to the memory addresses of the memories 1700 to 1705, for example. Further, one BIN of each histogram corresponds to one sampling cycle. Therefore, in this example, the smaller the BIN number, the more the sampling executed at the initial timing from the light emission of the light emitting unit 13, that is, the sampling with the smaller sampling number. Note that FIG. 13 illustrates the case where sampling is performed 256 times for each light emission of the light emitting unit 13.
  • the number Smax (8 in this example) of macro pixels 30 included in one pixel group 31 is multiplied by the number Nc (6 in this example) of pixel groups 31 ( In this example, 48 histograms are created in the memory 17.
  • the information indicating which BIN the current sampling number corresponds to may be input to the histogram processing unit 16 from the control unit 11 or the like, or the current sampling may be performed inside the histogram processing unit 16 or the addition unit 15.
  • the histogram generation unit 163 may identify the number of the number or the elapsed time from the light emission of the light emitting unit 13 and specify the histogram based on the management value.
  • the enable signals EN0 to EN7 for permitting or prohibiting the writing to the memories 170 to 177 are maintained at the high level (permission level) during the period in which the sampling is performed a predetermined number of times (the period of the sampling numbers P0 to P255 in FIG. 14). It As a result, writing to Nc memories (memory 1700 to 1705 in the example shown in FIG. 13) in each of the memories 170 to 177 is permitted, and finally a total of 48 lights are emitted for each light emission of the light emitting unit 13. Two histograms are created in the memory 17.
  • the histogram generation unit 163 creates one histogram using two pixel values D having the same value. Specifically, one histogram is created using the pixel values D[0][j] and D[1][j], and the pixel values D[2][j] and D[3][j] are calculated. One histogram is created using the pixel values D[4][j] and D[5][j], and one histogram is created using the pixel values D[6][j] and D[7]. Create one histogram using [j].
  • the histogram generation unit 163 stores the two memories 170 and 171, 172 and 173, 174 and 175, and 176 and 177 that are the storage destinations of the two pixel values D having the same value. To generate one histogram each. At this time, one of the memories 170, 172, 174 and 176 is assigned to the first half BIN of the histogram, and the other memory 171, 173, 175 and 177 is assigned to the second half BIN of the histogram.
  • the number of BINs in the histogram can be doubled, and the range can be widened.
  • the value of the pixel value D[2k][j] (j 0 to 5) of (the following integers) of the BIN corresponding to the current sampling number in the histograms stored in the memories 170, 172, 174 and 176.
  • Nc histograms (6 in this example) in which the BIN number is doubled are created in the memories 170 and 171, and Nc number (6 in this example) in which the BIN number is doubled in the memories 172 and 173.
  • a histogram is created, and Nc pieces (6 in this example) with double the number of BINs are created in the memories 174 and 175.
  • Nc pieces (6 in this example) with the doubled BIN number are created in the memories 176 and 177. ) Is created.
  • the sampling operation described with reference to FIG. 15 has a predetermined number of sampling times, for example, the first pixel mode. Is repeated twice (512 times in this example).
  • the second pixel mode only the memories 170, 172, 174, and 176 for the first half of the second pixel mode histogram are used during the first half of the second pixel mode histogram (for example, the period of sampling numbers P0 to P255).
  • High level enable signals EN0, EN2, EN4 and EN6 for permitting writing are applied, and low level enable signals EN1, EN3, EN5 and EN7 for inhibiting writing are provided to the memories 171, 173, 175 and 177 for the second half.
  • the low level enable signal EN0 for prohibiting writing is written in the memories 170, 172, 174 and 176 for the first half.
  • EN2, EN4, and EN6 are applied, and high-level enable signals EN1, EN3, EN5, and EN7 that permit writing are applied to the memories 171, 173, 175, and 177 for the second half.
  • Nc (6 in this example) histograms are created in the memories 176 and 177 using the pixel values D of 6 and 7.
  • Smax/2 ⁇ Nc (24 in this example) histograms are created for one emission of the light emitting unit 13.
  • the histogram generation unit 163 creates one histogram using four pixel values D having the same value. Specifically, one histogram is created using the pixel values D[0][j] to D[3][j], and the pixel values D[4][j] to D[7][j] are calculated. To create one histogram.
  • the histogram generation unit 163 creates one histogram using each of the four memories 170 to 173 and 174 to 177 that are the storage destinations of the four pixel values D having the same value. ..
  • the first memories 170 and 174 are assigned to the first 1/4 bin of the histogram
  • the second memories 171 and 175 are assigned to the second 1/4 bin of the histogram
  • the third memories 172 and 176 are assigned.
  • the number of BINs in the histogram can be increased four times, so that the distance measuring range can be further widened.
  • the value of the pixel value D[4k+1][j] of 4k+1 is added to the value of BIN corresponding to the current sampling number in the histograms stored in the memories 171 and 175, and then the histogram generation units 1632 and 1636.
  • Nc histograms (6 in this example) having four times the number of BINs are created in the memories 170 to 173, and Nc histograms (six in this example) having four times the BIN number are stored in the memories 174 and 177.
  • a histogram is created.
  • the sampling operation described with reference to FIG. 17 is performed a predetermined number of times, for example, the first pixel mode. Is repeated four times as many times as the number of sampling times (1024 times in this example).
  • the third pixel mode only in the memories 170 and 174 for the first quarter portion during the period for creating the first quarter of the histogram (for example, the period of sampling numbers P0 to P255).
  • High level enable signals EN0 and EN4 for permitting writing are applied, and low level enable signals EN1, EN2, EN3, EN5, EN6 for inhibiting writing are provided to the other memories 171, 172, 173, 175, 176 and 177.
  • EN7 EN7.
  • the memories 173 and 177 for the last 1/4 portion are set to the high level that allows writing.
  • the enable signals EN3 and EN7 are applied, and low level enable signals EN0, EN1, EN2, EN4, EN5 and EN6 for inhibiting writing are applied to the other memories 170, 171, 172, 174, 175 and 176.
  • Six histograms in this example) are created in the memories 174 to 177.
  • Smax/4 ⁇ Nc (12 in this example) histograms are created for one light emission of the light emitting unit 13.
  • the histogram generation unit 163 creates one histogram using all (eight) pixel values D having the same value.
  • the histogram generation unit 163 creates one histogram using the eight memories 170 to 177 that are the storage destinations of the eight pixel values D.
  • the first memory 170 is assigned to the first 1/8 bin of the histogram
  • the second memory 171 is assigned to the second 1/8 bin of the histogram
  • the third memory 172 is assigned to the third bin of the histogram.
  • Nc (6 in this example) histograms in which the number of BINs is 8 times are created in the memories 170 to 177.
  • the sampling operation described with reference to FIG. 19 has a predetermined number of sampling times, for example, the first pixel mode. Is repeated eight times (2048 times in this example). At that time, in the fourth pixel mode, the period in which the high-level enable signals EN0 to EN7 for permitting writing are applied are sequentially switched in the order of the memories 170 to 177.
  • Smax/8 ⁇ Nc (six in this example) histograms are created for one emission of the light emitting unit 13.
  • FIG. 21 is a diagram for explaining the operation of the histogram generation unit according to the present embodiment.
  • FIG. 21 illustrates, as an example, the flow when the histogram generation unit 1630 illustrated in FIG. 13 creates a histogram in the memory 1700.
  • the other memories 1701 to 1705 and the other histogram generation unit 1631 are illustrated. The same can be applied to ⁇ 1637. That is, the configuration shown in FIG. 21 is provided for each memory (memory 1700 to 1705 in the example shown in FIG. 13) that individually stores each histogram.
  • the histogram generation unit 1630 includes a total of six configurations shown in FIG. 21 so as to correspond to the memories 1700 to 1705 one-to-one.
  • the histogram generation unit 1630 includes selectors 51 and 64, an adder (+1) 52, and D-flip-flops (FF) 53, 54, 56, 61, 62 and 65 as synchronization circuits. , The adder 63, and the SRAM 55 as the memory 1700.
  • the SRAM 55 to which the read address READ_ADDR is input and the SRAM 55 to which the WRITE_ADDR is input are the same SRAM (memory 1700).
  • the D-FFs 61 and 62 surrounded by broken lines, the adder 63, the selector 64, and the D-FF 65 operate as an adding circuit 60 that calculates a cumulative pixel value.
  • the selector 51 is input with the start address of the SRAM 55 corresponding to the first BIN number of the histogram (this is set to “0”). Further, in the histogram generation processing for the first sampling, the selector 51 is supplied with a control signal for outputting the input start address ‘0’ via the control line (not shown). Therefore, the input head address "0" is output from the selector 51 as the address ADDR.
  • the output address ADDR is input to the D-FF 53 and the adder (+1) 52, respectively.
  • the outputs of D-FF53 and D-FF61 are synchronized. Therefore, the D-FF 61 outputs the pixel value D[i][j] at the timing when the D-FF 53 outputs the address ADDR.
  • the address ADDR output from the D-FF 53 is input to the D-FF 54 and the SRAM 55 as a read address READ_ADDR.
  • the pixel value D[i][j] output from the D-FF 61 is input to the D-FF 62.
  • Outputs of the D-FF 54, SRAM 55, and D-FF 62 are synchronized. Therefore, at the timing when the D-FF 54 outputs the address ADDR, the accumulated pixel value READ_DATA[i] stored in BIN corresponding to the read address READ_ADDR is output from the SRAM 55, and the pixel value D[i ] [J] is output.
  • the address ADDR output from the D-FF 54 is input to the D-FF 56.
  • the cumulative pixel value READ_DATA[i] read from the SRAM 55 is input to the adder 63.
  • the pixel value D[i][j] output from the D-FF 62 is input to the adder 63 and the selector 64.
  • the selector 64 receives a control signal for outputting the input pixel value D[i][j] via a control line (not shown). Therefore, the input pixel value D[i][j] is output from the selector 64 to the D-FF 65 as write data BIN_DATA[j].
  • D-FF56 and D-FF65 are synchronized. Therefore, the D-FF 65 outputs the write data BIN_DATA[j] at the timing when the D-FF 56 outputs the address ADDR.
  • the address ADDR output from the D-FF 56 is input to the SRAM 55 as a write address WRITE_ADDR. Further, write data BIN_DATA[j] is also input to the SRAM 55 in synchronization with the input of the write address WRITE_ADDR. Therefore, the write data BIN_DATA[j] input to the SRAM 55 is stored in the BIN designated by the write address WRITE_ADDR as an accumulated pixel value.
  • the selector 51 receives the control signal for outputting the value input from the adder (+1) 52.
  • the adder (+1) 52 outputs a value obtained by incrementing the address ADDR output from the selector 51 by 1. Therefore, in the histogram generation processing for the second and subsequent samplings, the selector 51 outputs the next address ADDR obtained by incrementing the previous address ADDR by 1.
  • the output address ADDR is input to the D-FF 53 and the adder (+1) 52, respectively.
  • the D-FF 61 Since the outputs of the D-FF 53 and the D-FF 61 are synchronized, the D-FF 61 outputs the pixel value D[i][j] at the timing when the D-FF 53 outputs the address ADDR.
  • the D-FF 54, the SRAM 55, and the D-FF 62 are synchronized, the accumulated pixels stored in the BIN corresponding to the read address READ_ADDR from the SRAM 55 at the timing when the D-FF 54 outputs the address ADDR.
  • the value READ_DATA[i] is output, and the pixel value D[i][j] is output from the D-FF 62.
  • the selector 64 receives a control signal for outputting the value input from the adder 63.
  • the adder 63 outputs a value obtained by adding the cumulative pixel value READ_DATA[i] read from the SRAM 55 and the pixel value D[i][j] output from the D-FF 62. Therefore, in the histogram generation processing for the second and subsequent samplings, the value obtained by adding the pixel value D[i][j] for this time to the cumulative pixel value READ_DATA[i] up to now is written from the selector 64 as the write data BIN_DATA[ j] is output.
  • a histogram for one light emission of the light emitting unit 13 is created in the memory 17. Then, by repeating this operation for a predetermined number of times of light emission, a histogram for estimating or calculating the distance to the object 90 existing within the range is created.
  • FIG. 22 is a flowchart showing a schematic operation example of the ToF sensor according to the present embodiment. In FIG. 22, the operation of the control unit 11 (see FIG. 1) will be focused and described.
  • the control unit 11 first obtains the pixel mode set in the control register 12 (step S11), and subsequently, it is determined whether or not the pixel mode is “0”. That is, it is determined whether or not the first pixel mode is set (step S12).
  • the control unit 11 causes the histogram processing unit 16 to execute the first histogram processing (see, for example, FIG. 7, FIG. 11, FIG. 12, FIG. 13, and FIG. 14) (step S15), and proceeds to step S27.
  • Step S16 the control unit 11 determines whether the pixel mode is “1”, that is, whether the second pixel mode is set.
  • the control unit 11 causes the histogram processing unit 16 to execute the second histogram processing (see, for example, FIGS. 8, 11, 15, and 16) (step S19), and proceeds to step S27.
  • the control unit 11 determines whether the pixel mode is “2”, that is, whether the third pixel mode is set. (Step S20).
  • the control unit 11 causes the histogram processing unit 16 to execute the third histogram processing (see, for example, FIG. 9, FIG. 11, FIG. 17, and FIG. 18) (step S23), and proceeds to step S27.
  • step S27 the control unit 11 determines the distance to the object 90 existing within the distance measuring range based on the histogram generated in any one of the first to fourth histogram processing (step S15, S19, S23 or S26). Estimate or calculate. After that, the control unit 11 determines whether or not to end this operation (step S28), and when it ends (YES in step S28), ends this operation. On the other hand, when not ending (NO in step S28), the control unit 11 returns to step S11 and executes the subsequent operations.
  • FIG. 23 is a flowchart showing an example of the histogram generation processing executed by the histogram generation unit in the first histogram processing shown in step S15 of FIG.
  • the histogram generation unit 1630 in the histogram generation unit 163 is focused for simplification of the description, but the same can be applied to the other histogram generation units 1631 to 1637. Further, in the following description, for the sake of clarity, it is assumed that the BIN number (BINIDX) and the sampling number (N) match.
  • the histogram generation unit 1630 first sets “1” to the number of times M of light emission for specifying how many times the current light emission by the light emitting unit 13 is the light emission. Along with the setting (step S101), the sampling number N for specifying the current sampling number is reset to "0" (step S102). Next, the histogram generation unit 1630 inputs the enable signals EN0 to EN7 of the permission level to all the memories 170 to 177, thereby permitting the writing to all the memories 170 to 177 (step S103). Note that the sampling number N is managed by a counter (not shown) in the histogram generation unit 163.
  • the histogram generation unit 1630 determines whether or not the sampling number N has reached the maximum number of times Nmax of sampling (step S106), and if it has reached (YES in step S106), the process proceeds to step S108. On the other hand, when the sampling number N has not reached the number of times of sampling Nmax (NO in step S106), the histogram generation unit 1630 increments the sampling number N by 1 (step S107), and then returns to step S104 and thereafter. Execute the operation repeatedly.
  • step S108 the histogram generation unit 1630 determines whether or not the light emission of the light emitting unit 13 has reached the predetermined number of times Mmax, for example, and when it has reached (YES in step S108), the first histogram generation The process ends. On the other hand, when the predetermined number Mmax has not been reached (NO in step S108), the histogram generation unit 1630 increments the light emission number M of the light emitting unit 13 by 1 (step S109), and then returns to step S101 and thereafter. Perform an action. This makes it possible to create a histogram based on the M times of light emission of the light emitting unit 13, and thus it is possible to more accurately estimate or calculate the distance to the object 90.
  • FIG. 24 is a flowchart showing an example of the histogram generation process executed by the histogram generation unit in the second histogram process shown in step S19 of FIG.
  • the histogram generation unit 1630 in the histogram generation unit 163 is focused for simplification of the description, but the same can be applied to the other histogram generation units 1631 to 1637.
  • the same operations as those shown in FIG. 23 are designated by the same reference numerals, and detailed description thereof will be omitted.
  • the histogram generation unit 1630 first sets “1” to the number of times M of light emission for specifying how many times the current light emission by the light emitting unit 13 is light emission.
  • the variable Q is set (step S101)
  • the maximum value Qmax of the variable Q is set to "1” (step S201)
  • the variable Q is reset to "0" (step S202).
  • the histogram generation unit 1630 resets the sampling number N to “0”, similarly to step S102 in FIG. 23 (step S102).
  • the histogram generation unit 1630 applies to the 2k+Qth memory (memory 170, 172, 174 and 176 or memory 171, 173, 175 and 177 in the example shown in FIG. 15) of the memories 170 to 177. Then, by inputting the enable signal of the permission level (in the example shown in FIG. 16, enable signals EN0, EN2, EN4 and EN6, or enable signals EN1, EN3, EN5 and EN7), writing to the 2k+Qth memory is performed. Permit (step S203).
  • the histogram generation unit 1630 creates the first half or the second half of each histogram by performing the same operations as those shown in steps S104 to S107 in FIG. 23 until the sampling number N reaches Nmax.
  • the histogram generation unit 1630 determines whether or not the variable Q has reached Qmax (step S204), and if it has reached (YES in step S204), the process proceeds to step S108. On the other hand, when the variable Q has not reached Qmax (NO in step S204), the histogram generation unit 1630 increments the variable Q by 1 (step S205), and then returns to step S102 to execute the subsequent operations. Now create the other half of each histogram.
  • FIG. 25 is a flowchart showing an example of the histogram generation processing executed by the histogram generation unit in the third histogram processing shown in step S23 of FIG.
  • the histogram generation unit 1630 in the histogram generation unit 163 is focused for simplification of the description, but the same can be applied to the other histogram generation units 1631 to 1637.
  • the same operation as the operation illustrated in FIG. 23 or 24 is denoted by the same reference numeral, and detailed description thereof will be omitted.
  • steps S201 and S203 of FIG. 24 are replaced with steps S301 and S302 of FIG. 25, respectively.
  • step S301 the histogram generation unit 1630 sets Qmax, which is the maximum value of the variable Q, to “3”.
  • step S302 the histogram generation unit 1630 causes the 4k+Qth memory of the memories 170 to 177 (in the example shown in FIG. 17, the memories 170 and 174, the memories 171 and 175, the memories 172 and 176, or the memories 173 and 177). ) By inputting an enable signal (in the example shown in FIG. 18, enable signals EN0 and EN4, enable signals EN1 and EN5, enable signals EN2 and EN6, or enable signals EN3 and EN7) of Permit writing to the 4k+Qth memory.
  • enable signals EN0 and EN4 enable signals EN1 and EN5
  • enable signals EN2 and EN6, or enable signals EN3 and EN7 enable signals of Permit writing to the 4k+Qth memory.
  • the histogram generation unit 1630 performs the same operation as that shown in steps S102 to S107 until the sampling number N reaches from 0 to Nmax for each value of the variable Q. By executing this, each histogram is created by 1/4.
  • the histogram generation unit 1630 proceeds to step S108, and repeatedly executes the above-described operation until the light emission number M of the light emitting unit 13 reaches the predetermined number Mmax.
  • FIG. 26 is a flowchart showing an example of the histogram generation processing executed by the histogram generation unit in the fourth histogram processing shown in step S26 of FIG.
  • the histogram generation unit 1630 in the histogram generation unit 163 is focused for simplification of the description, but the same can be applied to the other histogram generation units 1631 to 1637.
  • the same operation as that shown in any of FIGS. 23 to 25 is designated by the same reference numeral, and detailed description thereof will be omitted.
  • the fourth histogram generation processing shown in FIG. 26 is the same operation as the second histogram generation processing shown in FIG. 24 or the third histogram generation processing shown in FIG. 25, and steps S201 and S203 of FIG. 24 or steps of FIG. S301 and S302 are replaced with steps S401 and S402 of FIG. 26, respectively.
  • step S401 the histogram generation unit 1630 sets Qmax, which is the maximum value of the variable Q, to '7'.
  • step S402 the histogram generation unit 1630 causes the 8k+Qth memory (memory 170, 171, 172, 173, 174, 175, 176, or 177 in the example shown in FIG. 19) of the memories 170 to 177 to be stored. Then, by inputting the enable signal (enable signal EN0, EN1, EN2, EN3, EN4, EN5, EN6, or EN7 in the example shown in FIG. 20) of the permission level, writing to the 8k+Qth memory is permitted. ..
  • the histogram generation unit 1630 performs the same operation as that shown in steps S102 to S107 until the sampling number N reaches from 0 to Nmax for each value of the variable Q. By executing it, each histogram is created 1 ⁇ 8 each.
  • the histogram generation unit 1630 proceeds to step S108, and repeatedly executes the above-described operation until the light emission number M of the light emitting unit 13 reaches the predetermined number Mmax.
  • the pixel values for each sampling number N obtained by sampling for the first light emission are stored in the memory 17.
  • a histogram is created in which D is stored in the corresponding BIN.
  • the accumulated pixel value of the pixel value in which the reflected light L2 is detected and the noise such as the ambient light L0 are caused. It is possible to increase the difference from the cumulative pixel value. This makes it possible to increase the reliability of the discrimination between the reflected light L2 and the noise, so that the distance to the object 90 can be estimated or calculated more accurately.
  • the distance estimation/calculation unit 18 estimates or calculates the distance to the object 90 based on the histogram in the memory 17 created by the histogram processing unit 16. For example, the distance estimation/calculation unit 18 identifies the BIN number having the peak cumulative pixel value in each histogram, and converts the identified BIN number into flight time or distance information to estimate the distance to the object 90. Or calculate.
  • the BIN number at which the cumulative pixel value has a peak is specified in the histograms stored in each of the memories 170 to 177, and the distance to the object 90 is determined based on the specified BIN number. Estimate or calculate.
  • the BIN number at which the cumulative pixel value reaches a peak in each of the histograms composed of the memories 170 and 171, 172 and 173, 174 and 175, or 176 and 177 is specified,
  • the distance to the object 90 is estimated or calculated based on the specified BIN number
  • the cumulative pixel value is calculated in each of the histograms configured by the memories 170 to 173 or 174 to 177.
  • the peak BIN number is specified, the distance to the object 90 is estimated or calculated based on the specified BIN number, and in the fourth pixel mode, the cumulative pixels in the histogram configured by the memories 170 to 177 are calculated.
  • the BIN number having a peak value is specified, and the distance to the object 90 is estimated or calculated based on the specified BIN number.
  • the conversion of the BIN number into flight time or distance information may be performed using a conversion table stored in advance in a predetermined memory, or a conversion formula for converting the BIN number into flight time or distance information. May be held in advance and converted using this conversion formula.
  • a method of specifying the BIN number of the BIN having the largest value or a fitting to a histogram, and the cumulative pixel value peaks from the obtained function curve is possible to use various methods such as a method of specifying the BIN number that becomes
  • the usage patterns of the memories 170 to 177 are switched according to the pixel mode. For example, in the first pixel mode, a total of 48 histograms are created in each of the memories 170 to 177, and in the second pixel mode, two of the memories 170 to 177 are combined to create a total of 24 histograms. In the 3-pixel mode, a total of 12 histograms are created by combining four of the memories 170 to 177, and in the fourth pixel mode, a total of 6 histograms are created by combining all of the memories 170 to 177.
  • the usage pattern of the memory 17 is used when a deep memory area is not required (for example, when distance measurement is performed near) and when a deep memory area is required (for example, distance measurement is performed for a long distance). Since it is possible to switch the memory resources, it is possible to efficiently use the memory resource depending on the situation.
  • the number of macro pixels 30 corresponding to one pixel in the ranging image can be switched according to the pixel mode.
  • the resolution of the ToF sensor 1 can be changed according to the situation. For example, if you do not need a wide dynamic range, such as when measuring a close range, you need a wide dynamic range that increases resolution and obtains a fine range-finding image to measure a distance. In this case, it is possible to effectively change the resolution according to the situation, such as reducing the resolution and acquiring a distance measurement image with a wide dynamic range.
  • Second Embodiment In the first embodiment, a distance measuring device called a flash type has been described with an example. On the other hand, in the second embodiment, a distance measuring device called a scan type will be described with an example. In the following description, the same components as those in the first embodiment are designated by the same reference numerals, and the duplicated description will be omitted.
  • FIG. 32 is a schematic diagram showing a schematic configuration example of the ToF sensor as the distance measuring device according to the present embodiment.
  • the ToF sensor 2 includes a control device 200, a condenser lens 201, a half mirror 202, a micro mirror 203, a light receiving lens 204, a scanning unit 205, a light emitting unit 213, and a light receiving unit. And 214.
  • the micro mirror 203 and the scanning unit 205 correspond to, for example, a scanning unit that scans light incident on an array unit (e.g., corresponding to the SPAD array 143) in the claims.
  • the scanning unit may further include at least one of the condenser lens 201, the half mirror 202, and the light receiving lens 204.
  • the light emitting unit 213 is configured by, for example, one or a plurality of semiconductor laser diodes, like the light emitting unit 13 according to the first embodiment, and emits a pulsed laser beam L1 having a predetermined time width for a predetermined period (light emission). It emits in a cycle. Further, the light emitting unit 13 emits the laser light L1 having a time width of 1 ns (nanosecond) at a period of 1 GHz (gigahertz), for example.
  • the condenser lens 201 condenses the laser light L1 emitted from the light emitting unit 213. For example, the condenser lens 201 condenses the laser light L1 so that the spread of the laser light L1 is about the angle of view of the light receiving unit 214.
  • the half mirror 202 reflects at least a part of the incident laser beam L1 toward the micro mirror 203.
  • an optical element such as a polarization mirror that reflects a part of the light and transmits another part of the light.
  • the micro mirror 203 is attached to the scanning unit 205 so that the angle can be changed with the center of the reflecting surface as an axis.
  • the scanning unit 205 horizontally swings or vibrates the micro mirror 203 so that the image SA of the laser beam L1 reflected by the micro mirror 203 reciprocates in a predetermined scanning area AR in the horizontal direction.
  • the scanning unit 205 swings or vibrates the micromirror 203 in the horizontal direction so that the image SA of the laser beam L1 reciprocates in a predetermined scanning area AR in 1 ms (millisecond).
  • a stepping motor, a piezo element, or the like can be used for swinging or vibrating the micro mirror 203.
  • the reflected light L2 of the laser light L1 reflected by the object 90 existing within the distance measuring range is incident on the micromirror 203 from the opposite direction to the laser light L1 with the same optical axis as the emission axis of the laser light L1 as the incident axis. ..
  • the reflected light L2 incident on the micro mirror 203 is incident on the half mirror 202 along the same optical axis as the laser light L1, and part of the light is transmitted through the half mirror 202.
  • the image of the reflected light L2 transmitted through the half mirror 202 is formed on the macro pixel row 243 in the light receiving unit 214 by passing through the light receiving lens 204.
  • the control device 200 includes, for example, a control unit 11, a control register 12, an addition unit 15, a histogram processing unit 16, a memory 17, a distance estimation/calculation unit 18, and an external I/F 19. These may be similar to those exemplified in the first embodiment, for example. However, the control unit 11 according to the present embodiment controls the scan unit 205 in addition to the units illustrated in FIG.
  • the detection signal V_OUT output from each SPAD pixel 20 in each macro pixel 30 of the macro pixel column 243 is supplied to the addition unit 15 at a predetermined sampling cycle, as in the first embodiment. Is entered. Similar to the first embodiment, the adder 15 aggregates the number of detection signals V_OUT output from the light receiver 214 for each one or a plurality of macro pixels, and the aggregated value is sent to the histogram processor 16 as a pixel value. Output.
  • the histogram processing unit 16 creates a histogram according to the pixel mode in the memory 17, as in the first embodiment. Then, the distance estimation/calculation unit 18 estimates or calculates the distance to the object 90 based on the histogram created in the memory 17, as in the first embodiment.
  • the flash type TOF sensor 1 can switch the usage mode of the memories 170 to 177 according to the pixel mode.
  • the usage pattern of the memory 17 is used when a deep memory area is not required (for example, when distance measurement is performed near) and when a deep memory area is required (for example, distance measurement is performed for a long distance). Since it is possible to switch the memory resources, it is possible to efficiently use the memory resource depending on the situation.
  • the technology according to the present disclosure can be applied to various products.
  • the technology according to the present disclosure is applicable to any type of movement such as an automobile, an electric vehicle, a hybrid electric vehicle, a motorcycle, a bicycle, a personal mobility, an airplane, a drone, a ship, a robot, a construction machine, and an agricultural machine (tractor). It may be realized as a device mounted on the body.
  • FIG. 33 is a block diagram showing a schematic configuration example of a vehicle control system 7000 that is an example of a mobile body control system to which the technology according to the present disclosure can be applied.
  • the vehicle control system 7000 includes a plurality of electronic control units connected via a communication network 7010.
  • the vehicle control system 7000 includes a drive system control unit 7100, a body system control unit 7200, a battery control unit 7300, a vehicle exterior information detection unit 7400, a vehicle interior information detection unit 7500, and an integrated control unit 7600. ..
  • the communication network 7010 that connects these multiple control units complies with any standard such as CAN (Controller Area Network), LIN (Local Interconnect Network), LAN (Local Area Network), or FlexRay (registered trademark). It may be an in-vehicle communication network.
  • CAN Controller Area Network
  • LIN Local Interconnect Network
  • LAN Local Area Network
  • FlexRay registered trademark
  • Each control unit includes a microcomputer that performs arithmetic processing according to various programs, a storage unit that stores a program executed by the microcomputer or parameters used for various arithmetic operations, and a drive circuit that drives various controlled devices. Equipped with.
  • Each control unit is equipped with a network I/F for communicating with other control units via the communication network 7010, and is also capable of wired or wireless communication with devices or sensors inside or outside the vehicle. A communication I/F for performing communication is provided. In FIG.
  • the integrated control unit 7600 a microcomputer 7610, a general-purpose communication I/F 7620, a dedicated communication I/F 7630, a positioning unit 7640, a beacon receiving unit 7650, an in-vehicle device I/F 7660, an audio image output unit 7670, An in-vehicle network I/F 7680 and a storage unit 7690 are illustrated.
  • the other control units also include a microcomputer, a communication I/F, a storage unit, and the like.
  • the drive system control unit 7100 controls the operation of devices related to the drive system of the vehicle according to various programs.
  • the drive system control unit 7100 includes a drive force generation device for generating a drive force of a vehicle such as an internal combustion engine or a drive motor, a drive force transmission mechanism for transmitting the drive force to wheels, and a steering angle of the vehicle. It functions as a steering mechanism for adjusting and a control device such as a braking device for generating a braking force of the vehicle.
  • the drive system control unit 7100 may have a function as a control device such as ABS (Antilock Brake System) or ESC (Electronic Stability Control).
  • a vehicle state detection unit 7110 is connected to the drive system control unit 7100.
  • the vehicle state detection unit 7110 includes, for example, a gyro sensor that detects the angular velocity of the shaft rotational movement of the vehicle body, an acceleration sensor that detects the acceleration of the vehicle, or an accelerator pedal operation amount, a brake pedal operation amount, or a steering wheel steering operation. At least one of the sensors for detecting the angle, the engine speed, the rotation speed of the wheels, etc. is included.
  • the drive system control unit 7100 controls the internal combustion engine, the drive motor, the electric power steering device, the brake device, and the like by performing arithmetic processing using the signal input from the vehicle state detection unit 7110.
  • the body system control unit 7200 controls the operation of various devices mounted on the vehicle body according to various programs.
  • the body system control unit 7200 functions as a keyless entry system, a smart key system, a power window device, or a control device for various lamps such as a head lamp, a back lamp, a brake lamp, a winker, or a fog lamp.
  • the body system control unit 7200 may receive radio waves or signals of various switches transmitted from a portable device that substitutes for a key.
  • the body system control unit 7200 receives inputs of these radio waves or signals and controls the vehicle door lock device, power window device, lamp, and the like.
  • the battery control unit 7300 controls the secondary battery 7310 that is the power supply source of the drive motor according to various programs. For example, the battery control unit 7300 receives information such as the battery temperature, the battery output voltage, and the remaining capacity of the battery from the battery device including the secondary battery 7310. The battery control unit 7300 performs arithmetic processing using these signals to control the temperature adjustment of the secondary battery 7310 or the cooling device provided in the battery device.
  • the exterior information detection unit 7400 detects information outside the vehicle equipped with the vehicle control system 7000.
  • the image capturing unit 7410 and the vehicle exterior information detection unit 7420 is connected to the vehicle exterior information detection unit 7400.
  • the imaging unit 7410 includes at least one of a ToF (Time Of Flight) camera, a stereo camera, a monocular camera, an infrared camera, and other cameras.
  • the outside-vehicle information detection unit 7420 detects, for example, an environment sensor for detecting current weather or weather, or another vehicle around the vehicle equipped with the vehicle control system 7000, an obstacle, a pedestrian, or the like. At least one of the ambient information detection sensors of.
  • the environmental sensor may be, for example, at least one of a raindrop sensor that detects rainy weather, a fog sensor that detects fog, a sunshine sensor that detects the degree of sunshine, and a snow sensor that detects snowfall.
  • the ambient information detection sensor may be at least one of an ultrasonic sensor, a radar device, and a LIDAR (Light Detection and Ranging, Laser Imaging Detection and Ranging) device.
  • the image pickup unit 7410 and the vehicle exterior information detection unit 7420 may be provided as independent sensors or devices, or may be provided as a device in which a plurality of sensors or devices are integrated.
  • FIG. 34 shows an example of the installation positions of the imaging unit 7410 and the vehicle exterior information detection unit 7420.
  • the imaging units 7910, 7912, 7914, 7916, 7918 are provided at at least one of the front nose of the vehicle 7900, the side mirrors, the rear bumper, the back door, and the upper part of the windshield inside the vehicle.
  • the image capturing unit 7910 provided on the front nose and the image capturing unit 7918 provided on the upper part of the windshield in the vehicle interior mainly acquire an image in front of the vehicle 7900.
  • the imaging units 7912 and 7914 provided in the side mirrors mainly acquire images of the side of the vehicle 7900.
  • the imaging unit 7916 provided in the rear bumper or the back door mainly acquires an image of the rear of the vehicle 7900.
  • the imaging unit 7918 provided on the upper part of the windshield in the vehicle interior is mainly used for detecting a preceding vehicle, a pedestrian, an obstacle, a traffic signal, a traffic sign, a lane, or the like.
  • FIG. 34 shows an example of the shooting ranges of the respective image pickup units 7910, 7912, 7914, 7916.
  • the imaging range a indicates the imaging range of the imaging unit 7910 provided on the front nose
  • the imaging ranges b and c indicate the imaging ranges of the imaging units 7912 and 7914 provided on the side mirrors
  • the imaging range d is The imaging range of the imaging part 7916 provided in the rear bumper or the back door is shown. For example, by overlaying the image data captured by the image capturing units 7910, 7912, 7914, 7916, a bird's-eye view image of the vehicle 7900 viewed from above can be obtained.
  • the vehicle exterior information detection units 7920, 7922, 7924, 7926, 7928, 7930 provided on the front, rear, sides, corners of the vehicle 7900 and on the upper portion of the windshield inside the vehicle may be ultrasonic sensors or radar devices, for example.
  • the vehicle exterior information detection units 7920, 7926, 7930 provided on the front nose, rear bumper, back door, and windshield of the vehicle 7900 may be, for example, LIDAR devices.
  • These vehicle exterior information detection units 7920 to 7930 are mainly used for detecting a preceding vehicle, a pedestrian, an obstacle, or the like.
  • the vehicle exterior information detection unit 7400 causes the image capturing unit 7410 to capture an image of the vehicle exterior and receives the captured image data. Further, the vehicle exterior information detection unit 7400 receives the detection information from the vehicle exterior information detection unit 7420 connected thereto.
  • the vehicle exterior information detection unit 7420 is an ultrasonic sensor, a radar device, or a LIDAR device
  • the vehicle exterior information detection unit 7400 transmits ultrasonic waves, electromagnetic waves, or the like, and receives information on the received reflected waves.
  • the vehicle exterior information detection unit 7400 may perform object detection processing or distance detection processing such as people, vehicles, obstacles, signs, or characters on the road surface based on the received information.
  • the vehicle exterior information detection unit 7400 may perform environment recognition processing for recognizing rainfall, fog, road surface conditions, or the like based on the received information.
  • the vehicle exterior information detection unit 7400 may calculate the distance to the object outside the vehicle based on the received information.
  • the vehicle exterior information detection unit 7400 may perform image recognition processing or distance detection processing that recognizes a person, a car, an obstacle, a sign, characters on the road surface, or the like based on the received image data.
  • the vehicle exterior information detection unit 7400 performs processing such as distortion correction or position adjustment on the received image data, combines the image data captured by different image capturing units 7410, and generates an overhead image or a panoramic image. Good.
  • the vehicle exterior information detection unit 7400 may perform viewpoint conversion processing using image data captured by different image capturing units 7410.
  • the in-vehicle information detection unit 7500 detects in-vehicle information.
  • a driver state detection unit 7510 that detects the state of the driver is connected.
  • the driver state detection unit 7510 may include a camera that captures an image of the driver, a biometric sensor that detects biometric information of the driver, a microphone that collects voice in the vehicle, and the like.
  • the biometric sensor is provided on, for example, a seat surface or a steering wheel, and detects biometric information of an occupant sitting on a seat or a driver who holds the steering wheel.
  • the in-vehicle information detection unit 7500 may calculate the degree of fatigue or concentration of the driver based on the detection information input from the driver state detection unit 7510, or determine whether the driver is asleep. You may.
  • the in-vehicle information detection unit 7500 may perform processing such as noise canceling processing on the collected audio signal.
  • the integrated control unit 7600 controls overall operations in the vehicle control system 7000 according to various programs.
  • An input unit 7800 is connected to the integrated control unit 7600.
  • the input unit 7800 is realized by, for example, a device such as a touch panel, a button, a microphone, a switch or a lever that can be input and operated by a passenger. Data obtained by voice-recognizing voice input by a microphone may be input to the integrated control unit 7600.
  • the input unit 7800 may be, for example, a remote control device that uses infrared rays or other radio waves, or may be an external connection device such as a mobile phone or a PDA (Personal Digital Assistant) that supports the operation of the vehicle control system 7000. May be.
  • the input unit 7800 may be, for example, a camera, in which case the passenger can input information by gesture. Alternatively, data obtained by detecting the movement of the wearable device worn by the passenger may be input. Furthermore, the input unit 7800 may include, for example, an input control circuit that generates an input signal based on information input by a passenger or the like using the input unit 7800 and outputs the input signal to the integrated control unit 7600. A passenger or the like operates the input unit 7800 to input various data or instruct a processing operation to the vehicle control system 7000.
  • the storage unit 7690 may include a ROM (Read Only Memory) that stores various programs executed by the microcomputer, and a RAM (Random Access Memory) that stores various parameters, calculation results, sensor values, and the like.
  • the storage unit 7690 may be realized by a magnetic storage device such as an HDD (Hard Disc Drive), a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like.
  • the general-purpose communication I/F 7620 is a general-purpose communication I/F that mediates communication with various devices existing in the external environment 7750.
  • the general-purpose communication I/F 7620 is a cellular communication protocol such as GSM (registered trademark) (Global System of Mobile communications), WiMAX (registered trademark), LTE (registered trademark) (Long Term Evolution), or LTE-A (LTE-Advanced).
  • GSM Global System of Mobile communications
  • WiMAX registered trademark
  • LTE registered trademark
  • LTE-A Long Term Evolution-Advanced
  • a wireless LAN also referred to as Wi-Fi (registered trademark)
  • Bluetooth registered trademark
  • the general-purpose communication I/F 7620 is connected to a device (for example, an application server or a control server) existing on an external network (for example, the Internet, a cloud network, or a network unique to an operator) via a base station or an access point, for example. You may.
  • the general-purpose communication I/F 7620 uses, for example, P2P (Peer To Peer) technology, and is a terminal existing in the vicinity of the vehicle (for example, a driver, a pedestrian or a shop terminal, or an MTC (Machine Type Communication) terminal). May be connected with.
  • P2P Peer To Peer
  • MTC Machine Type Communication
  • the dedicated communication I/F 7630 is a communication I/F that supports a communication protocol formulated for use in a vehicle.
  • the dedicated communication I/F 7630 uses, for example, a standard protocol such as WAVE (Wireless Access in Vehicle Environment), DSRC (Dedicated Short Range Communications), or a cellular communication protocol, which is a combination of a lower layer IEEE 802.11p and an upper layer IEEE 1609. May be implemented.
  • the dedicated communication I/F 7630 is typically a vehicle-to-vehicle communication, a vehicle-to-infrastructure communication, a vehicle-to-home communication, and a vehicle-to-pedestrian communication. ) Perform V2X communications, a concept that includes one or more of the communications.
  • the positioning unit 7640 receives, for example, a GNSS signal from a GNSS (Global Navigation Satellite System) satellite (for example, a GPS signal from a GPS (Global Positioning System) satellite) and performs positioning to determine the latitude, longitude, and altitude of the vehicle.
  • the position information including is generated.
  • the positioning unit 7640 may specify the current position by exchanging a signal with the wireless access point, or may acquire the position information from a terminal having a positioning function, such as a mobile phone, PHS, or smartphone.
  • the beacon receiving unit 7650 receives, for example, a radio wave or an electromagnetic wave transmitted from a wireless station or the like installed on the road, and acquires information such as the current position, traffic jam, traffic closure, and required time.
  • the function of beacon reception unit 7650 may be included in dedicated communication I/F 7630 described above.
  • the in-vehicle device I/F 7660 is a communication interface that mediates a connection between the microcomputer 7610 and various in-vehicle devices 7760 existing in the vehicle.
  • the in-vehicle device I/F 7660 may establish a wireless connection using a wireless communication protocol such as wireless LAN, Bluetooth (registered trademark), NFC (Near Field Communication) or WUSB (Wireless USB).
  • a wireless communication protocol such as wireless LAN, Bluetooth (registered trademark), NFC (Near Field Communication) or WUSB (Wireless USB).
  • the in-vehicle device I/F 7660 is connected to a USB (Universal Serial Bus), HDMI (registered trademark) (High-Definition Multimedia Interface, or MHL (Mobile High) via a connection terminal (and a cable if necessary) not shown. -Definition Link)) and other wired connections may be established.
  • USB Universal Serial Bus
  • HDMI registered trademark
  • MHL Mobile High
  • the in-vehicle device 7760 may include, for example, at least one of a mobile device or a wearable device that the passenger has, or an information device that is carried in or attached to the vehicle.
  • the in-vehicle device 7760 may include a navigation device that searches for a route to an arbitrary destination.
  • the in-vehicle device I/F 7660 exchanges control signals or data signals with these in-vehicle devices 7760.
  • the in-vehicle network I/F 7680 is an interface that mediates communication between the microcomputer 7610 and the communication network 7010.
  • the in-vehicle network I/F 7680 sends and receives signals and the like according to a predetermined protocol supported by the communication network 7010.
  • the microcomputer 7610 of the integrated control unit 7600 passes through at least one of a general-purpose communication I/F 7620, a dedicated communication I/F 7630, a positioning unit 7640, a beacon receiving unit 7650, an in-vehicle device I/F 7660, and an in-vehicle network I/F 7680.
  • the vehicle control system 7000 is controlled according to various programs based on the information acquired by the above. For example, the microcomputer 7610 calculates a control target value of the driving force generation device, the steering mechanism or the braking device based on the acquired information on the inside and outside of the vehicle, and outputs a control command to the drive system control unit 7100. Good.
  • the microcomputer 7610 realizes the functions of ADAS (Advanced Driver Assistance System) that includes collision avoidance or impact mitigation of the vehicle, follow-up traveling based on inter-vehicle distance, vehicle speed maintenance traveling, vehicle collision warning, vehicle lane departure warning, etc. You may perform the coordinated control aiming at.
  • the microcomputer 7610 controls the driving force generation device, the steering mechanism, the braking device, and the like based on the acquired information about the surroundings of the vehicle, so that the microcomputer 7610 automatically travels independently of the driver's operation. You may perform cooperative control for the purpose of driving etc.
  • ADAS Advanced Driver Assistance System
  • a general-purpose communication I/F 7620 a dedicated communication I/F 7630, a positioning unit 7640, a beacon receiving unit 7650, an in-vehicle device I/F 7660, and an in-vehicle network I/F 7680.
  • the microcomputer 7610 may generate a warning signal by predicting a danger such as a vehicle collision, a pedestrian or the like approaching or entering a closed road, based on the acquired information.
  • the warning signal may be, for example, a signal for generating a warning sound or lighting a warning lamp.
  • the voice image output unit 7670 transmits an output signal of at least one of a voice and an image to an output device capable of visually or audibly notifying information to a passenger of the vehicle or the outside of the vehicle.
  • an audio speaker 7710, a display unit 7720, and an instrument panel 7730 are illustrated as output devices.
  • the display unit 7720 may include at least one of an onboard display and a head-up display, for example.
  • the display unit 7720 may have an AR (Augmented Reality) display function.
  • the output device may be a device other than these devices, such as headphones, a wearable device such as a glasses-type display worn by a passenger, a projector, or a lamp.
  • the display device When the output device is a display device, the display device displays results obtained by various processes performed by the microcomputer 7610 or information received from another control unit in various formats such as text, images, tables, and graphs. Display visually.
  • the output device is a voice output device, the voice output device converts an audio signal composed of reproduced voice data, acoustic data, or the like into an analog signal, and outputs it audibly.
  • At least two control units connected via the communication network 7010 may be integrated as one control unit.
  • each control unit may be composed of a plurality of control units.
  • the vehicle control system 7000 may include another control unit not shown.
  • some or all of the functions of one of the control units may be given to another control unit. That is, if the information is transmitted and received via the communication network 7010, the predetermined arithmetic processing may be performed by any of the control units.
  • a sensor or device connected to one of the control units may be connected to another control unit, and a plurality of control units may send and receive detection information to and from each other via the communication network 7010. .
  • the computer program for realizing each function of the ToF sensor 1 or 2 according to the present embodiment described with reference to FIG. 1 or 32 can be installed in any control unit or the like. It is also possible to provide a computer-readable recording medium in which such a computer program is stored.
  • the recording medium is, for example, a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, or the like. Further, the above computer program may be distributed, for example, via a network without using a recording medium.
  • the ToF sensor 1 or 2 can be applied to the integrated control unit 7600 of the application example shown in FIG. 33.
  • the control unit 11, the control register 12, the addition unit 15, the histogram processing unit 16, the memory 17, the distance estimation/calculation unit 18, and the external I/F 19 of the ToF sensor 1 or 2 are the microcomputer 7610 of the integrated control unit 7600
  • the storage unit 7690 corresponds to the in-vehicle network I/F 7680.
  • the vehicle control system 7000 may correspond to the host 80 in FIG. 1.
  • the ToF sensor 1 or 2 according to the present embodiment described with reference to FIG. 1 or 32 is a module for the integrated control unit 7600 shown in FIG. 33 (for example, one die). Integrated circuit module) configured by Alternatively, the ToF sensor 1 or 2 according to the present embodiment described with reference to FIG. 1 or 32 may be realized by a plurality of control units of the vehicle control system 7000 shown in FIG. 33.
  • a control register that holds any of a plurality of pixel modes as a set value, An array section in which a plurality of light receiving elements for detecting the incidence of photons are arranged, A read circuit for reading a detection signal from each of the light receiving elements at a predetermined sampling period; A pixel value generation unit that generates a pixel value of each pixel for each sampling period by summing up the number of the detection signals read from each of the plurality of light receiving elements at the sampling period on a pixel-by-pixel basis, A memory that stores, for each pixel, a histogram of the pixel value for each sampling period calculated by the pixel value generation unit; Equipped with Each pixel is composed of one or more light receiving elements of the plurality of light receiving elements, If the control register holds the first pixel mode, a memory region of a first size in the memory is allocated for each pixel, A distance measuring device, wherein when the second pixel mode is held in the control register, a memory area of
  • the pixel value generation unit An adder that aggregates the number of the detection signals output from each of the plurality of light receiving elements for each of a first predetermined number of the light receiving elements and outputs a first pixel value; A variable parallel adder that outputs the pixel value of each pixel based on the first pixel value output from the adder; Including, When the first pixel mode is held in the control register, the variable parallel adder outputs the first pixel value as the pixel value of each pixel as it is, and the second pixel mode is output to the control register. When held, the distance measuring apparatus according to (1), wherein a value obtained by adding at least two of the first pixel values is output as the pixel value of each pixel.
  • the plurality of light receiving elements in the array section are grouped into a plurality of macro pixels each formed of the first predetermined number of light receiving elements,
  • the plurality of macro pixels are grouped into a third predetermined number of pixel groups each of which includes a second predetermined number of the macro pixels,
  • the variable parallel addition unit adds the at least two first pixel values acquired from at least two macro pixels belonging to the same pixel group.
  • the distance measuring device according to (2) in which the pixel value of each pixel is calculated.
  • the variable parallel adder when the second pixel mode is held in the control register, uses the pixel value obtained by adding the first pixel value as the target of the addition.
  • the distance measuring device which outputs the same number as the number of values.
  • the memory includes a memory area corresponding to each of the first predetermined number of light receiving elements in a one-to-one relationship, When the first pixel mode is held in the control register, the histogram of one pixel is stored in one memory area, and when the second pixel mode is held in the control register, at least The distance measuring apparatus according to any one of (2) to (4), wherein the histogram of one pixel is stored in two memory areas.
  • the memory includes a memory area corresponding to each of the first predetermined number of light receiving elements on a one-to-one basis, When the first pixel mode is held in the control register, the histogram of one pixel is stored in one memory area, and when the second pixel mode is held in the control register, at least Storing the histogram of one of the pixels in two of the memory areas, The pixel value having the same value output from the variable parallel adder is stored in different memory areas of the at least two memory areas storing the histogram of one pixel. ) The distance measuring device described in.
  • the pixel value generation unit outputs the pixel value for each pixel as a pixel value matrix in which a row direction element is the third predetermined number and a column direction is the second predetermined number,
  • the distance measuring device according to (3) or (4), wherein the pixel value generation unit further includes a matrix transposition unit that transposes a matrix of the pixel value matrix.
  • the memory comprises the third predetermined number of first memories, Each first memory includes the second predetermined number of memory areas,
  • the pixel value generation unit outputs the pixel value for each pixel as a pixel value matrix in which elements in the row direction are the third predetermined number and column directions are the second predetermined number,
  • the distance measuring device according to (6), wherein the pixel value generation unit further includes a matrix transposition unit that transposes a matrix of the pixel value matrix.
  • One memory address of the memory corresponds to one BIN of the histogram,
  • the method further comprises a histogram generation unit that creates the histogram by writing the pixel values calculated by the pixel value generation unit for each sampling period in the memory address order of the memory.
  • the distance measuring device according to any one of items.
  • the histogram generation unit adds the pixel value for each sampling period calculated by the pixel value generation unit to a value already stored in the memory address as a write destination, and the measurement according to (9) above.
  • Distance device (11) Further comprising a light emitting unit that emits pulsed laser light in a range including at least a part of the angle of view of the array unit, When the first pixel mode is held in the control register, the histogram generation unit creates the histogram using the pixel values for the first sampling times, and the control register holds the second pixel mode. In this case, the distance measuring device according to (9) or (10), wherein the histogram is created using the pixel values for the second sampling number different from the first sampling number.
  • the distance measuring device according to any one of (1) to (11), further including a distance estimating/calculating unit that estimates or calculates a distance to an object based on the histogram stored in the memory.
  • the light receiving element is a SPAD (Single Photon Avalanche Diode).
  • the distance measuring range in the second pixel mode is longer than the distance measuring range in the first pixel mode, The resolution in the first pixel mode is higher than the resolution in the first pixel mode.
  • the rangefinder according to any one of (1) to (13).
  • the distance measuring device according to any one of (1) to (14), which is a flash type in which the plurality of light receiving elements are arranged in a two-dimensional lattice.
  • the distance measuring device according to any one of (1) to (15), further including a scanning unit that scans light incident on the array unit.
  • the control register holds one of a plurality of pixel modes as a set value, A pixel value of each pixel is generated for each sampling period by totaling the number of detection signals read out in a predetermined sampling period from each of the plurality of light receiving elements, Storing a histogram of the pixel values for each sampling period in a memory for each pixel, Each pixel is composed of one or more light receiving elements of the plurality of light receiving elements, If the control register holds the first pixel mode, a memory region of a first size in the memory is allocated for each pixel, When the second pixel mode is held in the control register, a memory area of a second size different from the first size in the memory is assigned to each pixel.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Optical Radar Systems And Details Thereof (AREA)
  • Measurement Of Optical Distance (AREA)

Abstract

状況に応じてメモリリソースを効率的に利用する。実施形態に係る測距装置は、画素モードを保持する制御レジスタ(21)と、フォトンの入射を検出する複数の受光素子が配列するアレイ部(143)と、前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路(22)と、前記複数の受光素子から読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部(15、161、162)と、前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリ(17)とを備え、前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズの領域が各画素に割り当てられ、前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズの領域が各画素に割り当てられる。

Description

測距装置及び測距方法
 本開示は、測距装置及び測距方法に関する。
 近年、ToF(Time-of-Flight)法により距離計測を行う距離画像センサ(以下、ToFセンサという)が注目されている。例えば、CMOS(Complementary Metal Oxide Semiconductor)半導体集積回路技術を用いて作成された、平面的に配置する複数のSPAD(Single Photon Avalanche Diode)を利用して対象物までの距離を計測するToFセンサが存在する。
 SPADを利用したToFセンサでは、光源が発光してからその反射光がSPADに入射までの時間(以下、飛行時間という)を物理量として複数回計測し、その計測結果から生成された物理量のヒストグラムに基づいて、対象物までの距離が特定される。
特開2010-091378号公報 特開2016-176750号公報
 ここで、ヒストグラムのBIN数は、光速度一定の法則から、対象物までの距離に相当する。そのため、近くを測距対象とする場合と遠くまでを測距対象とする場合とでは、必要十分なヒストグラムのBIN数が異なる。すなわち、近くを測距対象とする場合には少ないBIN数で十分である一方、より遠くの物体までを測距する場合には、より多くのBIN数が必要となる。
 また、ヒストグラムのBIN数は、ヒストグラムを格納するメモリ領域のサイズ(深さともいう)に対応している。したがって、近くを測距対象とする場合には浅いメモリ領域で十分である一方、より遠くまでを測距する場合には、より深いメモリ領域が要求される。
 しかしながら、従来では、測距対象の範囲に関わらず、一定のサイズのメモリ領域が使用されていた。そのため、近くを測距する場合など、深いメモリ領域を必要としない場合には、実質的に使用していないメモリ領域が発生し、メモリリソースの効率的な利用がなされていないという課題が存在した。
 そこで本開示では、状況に応じてメモリリソースを効率的に利用することが可能な測距装置及び測距方法を提案する。
 上記の課題を解決するために、本開示に係る一形態の測距装置は、複数の画素モードのうちの何れかを設定値として保持する制御レジスタと、それぞれフォトンの入射を検出する複数の受光素子が配列するアレイ部と、前記受光素子それぞれから所定のサンプリング周期で検出信号を読み出す読出し回路と、前記複数の受光素子それぞれから前記サンプリング周期で読み出された前記検出信号の数を画素単位で集計することで前記サンプリング周期ごとに各画素の画素値を生成する画素値生成部と、前記画素値生成部で算出された前記サンプリング周期ごとの前記画素値のヒストグラムを前記画素ごとに格納するメモリとを備え、各画素は、前記複数の受光素子のうちの1つ以上の受光素子で構成され、前記制御レジスタに第1画素モードが保持されている場合、前記メモリにおける第1サイズの領域が各画素に対して割り当てられ、前記制御レジスタに第2画素モードが保持されている場合、前記メモリにおける前記第1サイズとは異なる第2サイズの領域が各画素に対して割り当てられる。
第1の実施形態に係る測距装置としてのToFセンサの概略構成例を示すブロック図である。 第1の実施形態に係る受光部の概略構成例を示すブロック図である。 第1の実施形態に係るSPADアレイの概略構成例を示す模式図である。 第1の実施形態に係るSPAD画素の概略構成例を示す回路図である。 第1の実施形態に係る加算部のより詳細な構成例を示すブロック図である。 第1の実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第1画素モード)。 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第2画素モード)。 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第3画素モード)。 第1の実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である(第4画素モード)。 第1の実施形態に係る行列転置部の概略構成例を示すブロック図である。 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である。 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を1つのヒストグラム生成部に着目して説明するためのブロック図である(第1画素モード)。 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第1画素モード)。 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第2画素モード)。 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第2画素モード)。 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第3画素モード)。 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第3画素モード)。 第1の実施形態に係るヒストグラム生成部が1回のサンプリングで実行する動作を説明するためのブロック図である(第4画素モード)。 第1の実施形態に係る発光部の1回の発光に対してヒストグラム生成部が実行する動作を説明するためのタイミングチャートである(第4画素モード)。 第1の実施形態に係るヒストグラム生成部の動作を説明するための図である。 第1の実施形態に係るToFセンサの概略動作例を示すフローチャートである。 図22のステップS15に示す第1ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。 図22のステップS19に示す第2ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。 図22のステップS23に示す第3ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。 図22のステップS26に示す第4ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。 第1の実施形態に係る発光部の1回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。 第1の実施形態に係る発光部の2回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。 第1の実施形態に係る発光部の2回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。 第1の実施形態に係る発光部の3回目の発光に対して得られた各サンプリング番号での画素値の一例を示す図である。 第1の実施形態に係る発光部の3回目の発光に対してメモリ内に作成されるヒストグラムの一例を示す図である。 第2の実施形態に係る測距装置としてのToFセンサの概略構成例を示す模式図である。 車両制御システムの概略的な構成の一例を示すブロック図である。 車外情報検出部及び撮像部の設置位置の一例を示す説明図である。
 以下に、本開示の一実施形態について図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 また、以下に示す項目順序に従って本開示を説明する。
  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.応用例
 1.はじめに
 上述したように、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、要求されるメモリ領域の深さが異なるという課題が存在する。
 また、近くを測距対象とする場合とより遠くまでを測距対象とする場合とでは、ToFセンサで取得した測距画像に対して求められる必要十分な解像度が異なるという課題も存在する。
 例えば、SPADを利用したToFセンサは、複数のSPADが2次元格子状に配列するSPADアレイを備えている。SPADアレイの複数のSPADは、それぞれが1つ以上のSPADよりなる複数のマクロ画素にグループ化される。1つのマクロ画素は、測距画像における1つの画素に対応する。したがって、1つのマクロ画素を構成するSPADの数とその領域の形状とを決めると、ToFセンサ全体のマクロ画素数が決定され、それにより、測距画像の解像度が決定されることとなる。そこで例えば、1マクロ画素のSPAD数を小さい値とすることで、ToFセンサが取得する距離画像の解像度を上げることが可能となる。
 しかしながら、1マクロ画素のSPAD数を小さい値とすると、1マクロ画素から得られる画素値のダイナミックレンジが狭くなり、遠くの物体からの弱い反射光が略一定の強度の外乱光(背景光ともいう)に埋もれ、反射光と外乱光との弁別が困難になるという課題が発生する。
 そのため、遠方に存在する物体や反射率の低い物体の検出性能を高めるためには、1マクロ画素のSPAD数を大きくして画素値のダイナミックレンジを広げることが求められる。
 このように、SPADを利用したToFセンサに対しては、1マクロ画素のSPAD数を小さくして高解像度を実現しつつ、小さいBIN数でメモリを使用する使用形態と、1マクロ画素のSPAD数を大きくして広いダイナミックレンジを実現しつつ、大きいBIN数でメモリを使用する使用形態との、相反する使用形態を単一のSPADアレイで実現させたいという要望が存在する。
 そこで以下の実施形態では、解像度とBIN数とを変更可能とすることで、状況に応じたメモリリソースの効率的な利用を実現するとともに、状況に応じた解像度とダイナミックレンジとのリバランスを取ることが可能な測距装置及び測距方法について、具体例を挙げて説明する。
 2.第1の実施形態
 まず、第1の実施形態について、以下に図面を参照して詳細に説明する。なお、本実施形態では、SPAD画素が2次元格子状に配列して一度に広角の測距画像を取得する、フラッシュ型と称される測距装置について、例を挙げて説明する。
 2.1 測距装置(ToFセンサ)
 図1は、本実施形態に係る測距装置としてのToFセンサの概略構成例を示すブロック図である。図1に示すように、ToFセンサ1は、制御部11と、制御レジスタ12と、発光部13と、受光部14と、加算部15と、ヒストグラム処理部16と、距離推定/算出部18と、外部インタフェース(I/F)19とを備える。
 制御部11は、例えば、CPU(Central Processing Unit)などの情報処理装置で構成され、ToFセンサ1の各部を制御する。その際、制御部11は、制御レジスタ12に設定値として格納されている画素モードに応じて、ToFセンサ1の各部を制御する。
 ToFセンサ1は、ToFセンサ1の解像度や測距範囲等が異なる複数の画素モードを備えており、外部のホスト80等からの指示や制御部11の判断に基づき、画素モードが切り替えられてよい。この画素モードは、例えば、外部I/F19を介してホスト80等から入力された値を制御部11が制御レジスタ12に画素モードに対応した設定値を登録することで設定されてもよいし、制御部11が適宜判断して制御レジスタ12内の画素モードの設定値を変更することで設定されてもよい。
 ホスト80は、例えば、ToFセンサ1が自動車等に実装される場合には、自動車等に搭載されているECU(Engine Control Unit)などであってよい。また、ToFセンサ1が家庭内ペットロボットなどの自律移動ロボットやロボット掃除機や無人航空機や追従運搬ロボットなどの自律移動体に搭載されている場合には、ホスト80は、その自律移動体を制御する制御装置等であってよい。
 制御レジスタ12は、例えば、ToFセンサ1の画素モードを設定値として保持する。ToFセンサ1の画素モードには、その詳細については後述において例を挙げて説明するが、本説明では、画素モード0から画素モード3が存在する場合を例示する。例えば、画素モード0は、画素モード0~3のうちで最も解像度が高い一方、測距範囲が狭い画素モードであり、画素モード3は、画素モード0~3のうちで最も測距範囲が広い一方、解像度が低い画素モードであり、画素モード1及び2は、画素モード0と画素モード3との間の解像度及び測距範囲の画素モードであるとする。
 発光部13は、例えば、1つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光L1を所定周期(発光周期ともいう)で出射する。発光部13は、少なくとも、受光部14の画角以上の角度範囲に向けてレーザ光L1を出射する。また、発光部13は、例えば、1GHz(ギガヘルツ)の周期で、1ns(ナノ秒)の時間幅のレーザ光L1を出射する。発光部13から出射したレーザ光L1は、例えば、測距範囲内に物体90が存在する場合には、この物体90で反射して、反射光L2として、受光部14に入射する。
 受光部14は、その詳細については後述するが、例えば、2次元格子状に配列した複数のSPAD画素を備え、発光部13の発光後にフォトンの入射を検出したSPAD画素の数(以下、検出数という)に関する情報(例えば、後述における検出信号の数に相当)を出力する。受光部14は、例えば、発光部13の1回の発光に対し、所定のサンプリング周期でフォトンの入射を検出してその検出数を出力する。
 加算部15は、受光部14から出力された検出数を複数のSPAD画素(例えば、後述する1又は複数のマクロ画素に相当)ごとに集計し、その集計値を画素値としてヒストグラム処理部16へ出力する。
 ヒストグラム処理部16は、1又は複数のマクロ画素ごとに得られた画素値から、横軸を飛行時間(例えば、サンプリングの順序を示す番号(以下、サンプリング番号という)に相当)とし、縦軸を累積画素値としたヒストグラムを作成する。ヒストグラムは、例えば、ヒストグラム処理部16内のメモリ17に作成される。このメモリ17には、例えば、SRAM(Static Random Access Memory)等を用いることができる。ただし、これに限定されず、DRAM(Dynamic RAM)など、種々のメモリをメモリ17として使用することが可能である。
 距離推定/算出部18は、ヒストグラム処理部16が作成したヒストグラムから累積画素値がピークとなる際の飛行時間を特定する。また、距離推定/算出部18は、特定した飛行時間に基づいて、ToFセンサ1又はこれを搭載するデバイスから測距範囲内に存在する物体90までの距離を推定又は算出する。そして、距離推定/算出部18は、推定又は算出した距離の情報を、例えば、外部I/F19を介してホスト80等に出力する。
 2.2 受光部
 図2は、本実施形態に係る受光部の概略構成例を示すブロック図である。図2に示すように、受光部14は、タイミング制御回路141と、駆動回路142と、SPADアレイ143と、出力回路144とを備える。
 SPADアレイ143は、2次元格子状に配列する複数のSPAD画素20を備える。複数のSPAD画素20に対しては、列ごとに画素駆動線LD(図面中の上下方向)が接続され、行ごとに出力信号線LS(図面中の左右方向)が接続される。画素駆動線LDの一端は、駆動回路142の各列に対応した出力端に接続され、出力信号線LSの一端は、出力回路144の各行に対応した入力端に接続される。
 駆動回路142は、シフトレジスタやアドレスデコーダなどを含み、SPADアレイ143の各SPAD画素20を、全画素同時や列単位等で駆動する。そこで、駆動回路142は、少なくとも、SPADアレイ143内の選択列における各SPAD画素20に、後述するクエンチ電圧V_QCHを印加する回路と、選択列における各SPAD画素20に、後述する選択制御電圧V_SELを印加する回路とを含む。そして、駆動回路142は、読出し対象の列に対応する画素駆動線LDに選択制御電圧V_SELを印加することで、フォトンの入射を検出するために用いるSPAD画素20を列単位で選択する。
 駆動回路142によって選択走査された列の各SPAD画素20から出力される信号(検出信号という)V_OUTは、出力信号線LSの各々を通して出力回路144に入力される。出力回路144は、各SPAD画素20から入力された検出信号V_OUTを、後述するマクロ画素ごとに設けられた加算部15(図1参照)へ出力する。
 タイミング制御回路141は、各種のタイミング信号を生成するタイミングジェネレータ等を含み、タイミングジェネレータで生成された各種のタイミング信号を基に、駆動回路142及び出力回路144を制御する。
 2.3 SPADアレイ
 図3は、本実施形態に係るSPADアレイの概略構成例を示す模式図である。図3に示すように、SPADアレイ143は、例えば、複数のSPAD画素20が2次元格子状に配列した構成を備える。複数のSPAD画素20は、行及び/又は列方向に配列する所定数ずつのSPAD画素20で構成された複数のマクロ画素30にグループ化されている。各マクロ画素30の最外周に位置するSPAD画素40の外側の縁を結んだ領域の形状は、所定の形状(例えば、矩形)をなしている。
 また、列方向に配列する複数のマクロ画素30は、所定数ずつの複数の画素グループ31に区切られている。図3に示す例では、列方向に配列する#0~#47の計48つのマクロ画素30が、j=0~6の計6つの画素グループ31に区切られている。したがって、各画素グループ31には、i=0~7の計8つのマクロ画素30が属している。
 2.4 SPAD画素
 図4は、本実施形態に係るSPAD画素の概略構成例を示す回路図である。図4に示すように、SPAD画素20は、受光素子としてのフォトダイオード21と、フォトダイオード21にフォトンが入射したことを検出する読出し回路22とを備える。フォトダイオード21は、そのアノードとカソードとの間に降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧V_SPADが印加されている状態でフォトンが入射すると、アバランシェ電流を発生する。
 読出し回路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を介して印加される。
 本実施形態において、フォトダイオード21はSPADである。SPADは、そのアノードとカソードとの間に降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧が印加されるとガイガーモードで動作するアバランシェフォトダイオードであり、1つのフォトンの入射を検出可能である。
 デジタル変換器25は、抵抗251とNMOSトランジスタ252とを備える。NMOSトランジスタ252は、そのドレインが抵抗251を介して電源電圧VDDに接続され、そのソースが接地されている。また、NMOSトランジスタ252のゲートには、フォトダイオード21のアノードとクエンチ抵抗23との接続点N1の電圧が印加される。
 インバータ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に入力される。
 バッファ27は、インピーダンス変換のための回路であり、インバータ26から出力信号を入力すると、その入力した出力信号をインピーダンス変換し、検出信号V_OUTとして出力する。
 選択トランジスタ24は、例えば、NMOSトランジスタであり、そのドレインがクエンチ抵抗23を構成するNMOSトランジスタのソースに接続され、そのソースが接地されている。選択トランジスタ24は、駆動回路142に接続されており、選択トランジスタ24のゲートに駆動回路142からの選択制御電圧V_SELが画素駆動線LDを介して印加されると、オフ状態からオン状態に変化する。
 2.5 SPAD画素の概略動作例
 図4に例示した読出し回路22は、例えば、以下のように動作する。すなわち、まず、駆動回路142から選択トランジスタ24に選択制御電圧V_SELが印加されて選択トランジスタ24がオン状態となっている期間、フォトダイオード21には降伏電圧(ブレークダウン電圧)以上の逆バイアス電圧V_SPADが印加される。これにより、フォトダイオード21の動作が許可される。
 一方、駆動回路142から選択トランジスタ24に選択制御電圧V_SELが印加されておらず、選択トランジスタ24がオフ状態となっている期間、逆バイアス電圧V_SPADがフォトダイオード21に印加されないことから、フォトダイオード21の動作が禁止される。
 選択トランジスタ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が出力される。
 その後、接続点N1の電圧が上昇し続けると、フォトダイオード21のアノードとカソードとの間に印加されている電圧が降伏電圧よりも小さくなり、それにより、アバランシェ電流が止まって、接続点N1の電圧が低下する。そして、接続点N1の電圧がNMOSトランジスタ452のオン電圧よりも低くなると、NMOSトランジスタ452がオフ状態になり、バッファ27からの検出信号V_OUTの出力が停止する(ローレベル)。
 このように、読出し回路22は、フォトダイオード21にフォトンが入射してアバランシェ電流が発生し、これによりNMOSトランジスタ452がオン状態になったタイミングから、アバランシェ電流が止まってNMOSトランジスタ452がオフ状態になるタイミングまでの期間、ハイレベルの検出信号V_OUTを出力する。出力された検出信号V_OUTは、出力回路144を介して、マクロ画素30ごとの加算部15(図1参照)に入力される。したがって、各加算部15には、1つのマクロ画素30を構成する複数のSPAD画素20のうちでフォトンの入射が検出されたSPAD画素20の数(検出数)の検出信号V_OUTが入力される。
 2.6 加算部
 図5は、本実施形態に係る加算部のより詳細な構成例を示すブロック図である。図5に示すように、加算部15は、例えば、パルス整形部151と、受光数カウント部152とを備える。
 パルス整形部151は、SPADアレイ143から出力回路144を介して入力した検出信号V_OUTのパルス波形を、加算部15の動作クロックに応じた時間幅のパルス波形に整形する。
 受光数カウント部152は、対応するマクロ画素30からサンプリング周期ごとに入力された検出信号V_OUTをカウントすることで、フォトンの入射が検出されたSPAD画素20の個数(検出数)をサンプリング周期ごとに計数し、この計数値をマクロ画素30の画素値dとして出力する。
 なお、図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を生成することが例示されている。
 2.7 サンプリング周期
 ここで、サンプリング周期とは、発光部13がレーザ光L1を出射してから受光部14でフォトンの入射が検出されるまでの時間(飛行時間)を計測する周期である。このサンプリング周期には、発光部13の発光周期よりも短い周期が設定される。例えば、サンプリング周期をより短くすることで、より高い時間分解能で、発光部13から出射して物体90で反射したフォトンの飛行時間を推定又は算出することが可能となる。これは、サンプリング周波数をより高くすることで、より高い測距分解能で物体90までの距離を推定又は算出することが可能となることを意味している。
 例えば、発光部13がレーザ光L1を出射して、このレーザ光L1が物体90で反射し、この反射光L2が受光部14に入射するまでの飛行時間をtとすると、光速Cが一定(C≒300,000,000m(メートル)/s(秒)であることから、物体90までの距離Lは、以下の式(1)のように推定又は算出することができる。
L=C×t/2  (1)
 そこで、サンプリング周波数を1GHzとすると、サンプリング周期は1ns(ナノ秒)となる。その場合、1つのサンプリング周期は、15cm(センチメートル)に相当する。これは、サンプリング周波数を1GHzとした場合の測距分解能が15cmであることを示している。また、サンプリング周波数を2倍の2GHzとすると、サンプリング周期は0.5ns(ナノ秒)となるため、1つのサンプリング周期は、7.5cm(センチメートル)に相当する。これは、サンプリング周波数を2倍とした場合、測距分解能を1/2にすることができることを示している。このように、サンプリング周波数を高くしてサンプリング周期を短くすることで、より精度良く、物体90までの距離を推定又は算出することが可能となる。
 2.8 ヒストグラム処理部
 つづいて、本実施形態に係るヒストグラム処理部16について、以下に図面を参照して詳細に説明する。
 図6は、本実施形態に係るヒストグラム処理部の概略構成例を示すブロック図である。なお、図6では、明確化のため、SPADアレイ143の構成及び加算部15も図示されている。また、図6では、説明の都合上、メモリ17が省略されているが、各ヒストグラム生成部1630~1637内に含まれているものとする。
 図6に示すように、SPADアレイ143における複数のマクロ画素30に対しては、一対一に加算部15が設けられている。また、図1におけるヒストグラム処理部16は、SPADアレイ143における画素グループ31に対して一対一に設けられた画素数可変並列加算部161と、複数の画素数可変並列加算部161に対して共通に設けられた行列転置部162と、ヒストグラム生成部1630~1637(以下、ヒストグラム生成部1630~1637を区別しない場合、その符号を163とする)とを備える。加算部15と、画素数可変並列加算部161と、行列転置部162とは、例えば、請求の範囲における画素値生成部に相当する。
 2.8.1 画素数可変並列加算部
 図7~図10は、本実施形態に係る画素数可変並列加算部のより詳細な構成例を示すブロック図である。なお、図7は、画素モードが‘0’である場合の画素数可変並列加算部161の概略構成例を示し、図8は、画素モードが‘1’である場合の画素数可変並列加算部161の概略構成例を示し、図9は、画素モードが‘2’である場合の画素数可変並列加算部161の概略構成例を示し、図10は、画素モードが‘3’である場合の画素数可変並列加算部161の概略構成例を示している。
 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の数となる。
 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の実装は、例えば、所定のプログラムを実行することで実現されてよい。
 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]とは、同じ値を持つ。
 同様に、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]として出力される。
 このように、第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となる。
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][11:0](i=0~7)が並列に出力される。
 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が実装される。
 各加算器45は、例えば、第2画素モードが設定された際に実装された4つの加算器41の出力を2つずつ加算する2つの加算器42をさらに実装することで実現することができる。加算器42の実装は、例えば、加算器41と同様に、所定のプログラムを実行することで実現されてよい。
 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]は、それぞれ同じ値を持つ。
 同様に、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]として出力される。
 このように、第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となる。
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][10:0](i=0~7)が並列に出力される。
 2.8.1.4 画素モード=3(第4画素モード)
 次に、図10に示すように、制御部11から画素モード‘3’が設定された場合、言い換えれば、全ての画素モードの中で最も解像度が低く且つ最も測距範囲が広い画素モード(以下、第4画素モードという)が設定された場合、画素数可変並列加算部161には、全ての画素値d[i][j][8:0](i=0~7)を加算する加算器46が実装される。
 加算器46は、例えば、第3画素モードが設定された際に追加実装された2つの加算器42の出力を加算する加算器43をさらに実装することで実現することができる。加算器43の実装は、例えば、加算器41及び42と同様に、所定のプログラムを実行することで実現されてよい。
 加算器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]は、それぞれ同じ値を持つ。
 このように、第4画素モードでは、8つのマクロ画素30から得られた値を加算して、同じ値を持つ8つの画素値D[i][j][11:0](i=0~7)を生成している。これは、第4画素モードでは、8つのマクロ画素30が測距画像における1つの画素に対応することを示している。したがって、第4画素モードでは、ToFセンサ1の解像度が、例えば、第1画素モードの1/8となる。
 なお、この場合でも、画素数可変並列加算部161からは、計8つの12ビットの画素値D[i][j][11:0](i=0~7)が並列に出力される。
 このように、本実施形態では、画素モードに応じて、画素数可変並列加算部161が加算する画素値dの数が変更される。
 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列の画素値行列を生成する。
 そして行列転置部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とする。
 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’である場合のヒストグラム生成部を説明するための図である。
 2.8.3.1 第1画素モード(画素モード=0)
 まず、ヒストグラム生成部163に第1画素モード(画素モード=0)が設定された場合について説明する。
 2.8.3.1.1 1回のサンプリングに実行する動作
 図12に示すように、制御部11から画素モード=0、すなわち、第1画素モードが設定された場合、ヒストグラム生成部1630~1637それぞれは、行列転置部162から入力された画素値列49の値を、それぞれに対応するメモリ170~177に格納されている各ヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
 この動作を、ヒストグラム生成部1630に着目してより詳細に説明すると、図13に示すように、ヒストグラム生成部1630内のメモリ170には、画素グループ31と同数のメモリ1700~1705が含まれている。各メモリ1700~1705は、j=0~5の画素グループ31と一対一に対応付けられており、それぞれが対応する画素グループ31におけるマクロ画素30から得られた画素値に基づくヒストグラムを格納する。
 各メモリ1700~1705内のヒストグラムのBIN番号(BINIDXとも記す)は、例えば、メモリ1700~1705それぞれのメモリアドレスに対応している。また、各ヒストグラムの1つのBINは、1つのサンプリング周期に対応している。したがって、本例では、小さいBIN番号であるほど、発光部13の発光から初期のタイミングで実行されたサンプリング、すなわち、若いサンプリング番号のサンプリングに対応している。なお、図13には、発光部13の1回の発光に対して256回のサンプリングを実行する場合が例示されている。
 ヒストグラム生成部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に格納されている値に加算する。
 同様に、ヒストグラム生成部1630は、j=1~5の画素グループ31におけるマクロ画素30から取得された画素値D[0][1]~D[0][5]を、j=1~5のメモリ1701~1705内のヒストグラムにおける、現在のサンプリング番号に対応するBINの値に加算する。
 以上の動作をヒストグラム生成部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内に作成される。
 なお、現在のサンプリング番号がどのBINに対応するかの情報は、例えば、制御部11等からヒストグラム処理部16に入力されてもよいし、ヒストグラム処理部16や加算部15の内部で現在のサンプリング番号が何番目であるかや、発光部13の発光からの経過時間を管理しておき、その管理値に基づいてヒストグラム生成部163が特定してもよい。
 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内に作成される。
 2.8.3.2 第2画素モード(画素モード=1)
 次に、ヒストグラム生成部163に第2画素モード(画素モード=1)が設定された場合について説明する。
 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]は同じ値となる。
 そこで、第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つのヒストグラムを作成する。
 言い換えれば、第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倍に増加させることが可能となるため、測距範囲を広げることが可能となる。
 具体的には、まず、ヒストグラム生成部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の値に加算する。
 それにより、メモリ170及び171でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ172及び173でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ174及び175でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ176及び177でBIN数が2倍のNc個(本例では6つ)のヒストグラムが作成される。
 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に作成される。
 一方、ヒストグラムの後半部分を作成する期間(例えば、サンプリング番号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に作成される。
 その結果、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つ)のヒストグラムが作成される。
 2.8.3.3 第3画素モード(画素モード=2)
 次に、ヒストグラム生成部163に第3画素モード(画素モード=2)が設定された場合について説明する。
 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]は同じ値となる。
 そこで、第3画素モードでは、ヒストグラム生成部163は、同じ値を持つ4つの画素値Dを用いて1つのヒストグラムを作成する。具体的には、画素値D[0][j]~D[3][j]を用いて1つのヒストグラムを作成し、画素値D[4][j]~D[7][j]を用いて1つのヒストグラムを作成する。
 言い換えれば、第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倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
 具体的には、まず、ヒストグラム生成部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の値に加算する。
 それにより、メモリ170~173でBIN数が4倍のNc個(本例では6つ)のヒストグラムが作成され、メモリ174及び177でBIN数が4倍のNc個(本例では6つ)のヒストグラムが作成される。
 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に作成される。
 次に、ヒストグラムの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に作成される。
 次に、ヒストグラムの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に作成される。
 そして、ヒストグラムの残りの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に作成される。
 その結果、i=0~3の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ170~173に作成され、i=4~7の画素値Dを用いてNc個(本例では6つ)のヒストグラムがメモリ174~177に作成される。それにより、本例では、最終的に、発光部13の1回の発光に対してSmax/4×Nc個(本例では12つ)のヒストグラムが作成される。
 2.8.3.4 第4画素モード(画素モード=3)
 次に、ヒストグラム生成部163に第4画素モード(画素モード=3)が設定された場合について説明する。
 2.8.3.4.1 1回のサンプリングに実行する動作
 図19に示すように、制御部11から画素モード‘3’、すなわち、第4画素モードが設定された場合、画素数可変並列加算部161による画素値Dの加算(図9参照)により、画素値列49における、i=0~7の全ての画素値D[0][j]~D[7][j]は同じ値となる。
 そこで、第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倍に増加させることが可能となるため、測距範囲をさらに広げることが可能となる。
 具体的には、まず、ヒストグラム生成部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の値に加算する。
 それにより、メモリ170~177でBIN数が8倍のNc個(本例では6つ)のヒストグラムが作成される。
 2.8.3.4.2 1回の発光に対して実行する動作
 また、図20に示すように、図19を用いて説明したサンプリング動作は、所定のサンプリング回数、例えば、第1画素モードのサンプリング回数の8倍のサンプリング回数(本例では、2048回)、繰返し実行される。その際、第4画素モードでは、書込みを許可するハイレベルのイネーブル信号EN0~EN7を与える期間が、メモリ170~177の順番で順次切り替えられる。
 それにより、サンプリング番号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つ)のヒストグラムが作成される。
 2.9 ヒストグラム処理の回路例
 図21は、本実施形態に係るヒストグラム生成部の動作を説明するための図である。なお、図21には、例として、図13に示すヒストグラム生成部1630がメモリ1700内にヒストグラムを作成する際の流れを例示するが、他のメモリ1701~1705、並びに、他のヒストグラム生成部1631~1637に対しても、同様に適用することが可能である。すなわち、図21に示す構成は、個々のヒストグラムを個別に格納するメモリ(図13に示す例では、メモリ1700~1705)ごとに設けられている。例えば、ヒストグラム生成部1630は、図21に示す構成を、メモリ1700~1705それぞれに一対一に対応するように、計6つ備えている。
 図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)である。
 このような構成において、破線で囲まれたD-FF61及び62と、加算器63と、セレクタ64と、D-FF65とは、累積画素値を算出する加算回路60として動作する。
 1回目のサンプリングに対するヒストグラム生成処理では、まず、セレクタ51に、ヒストグラムの最初のBIN番号に相当するSRAM55の先頭アドレス(これを‘0’とする)が入力される。また、1回目のサンプリングに対するヒストグラム生成処理では、セレクタ51に、不図示の制御線を介して、入力された先頭アドレス‘0’を出力させる制御信号が入力されている。したがって、セレクタ51からは、入力された先頭アドレス‘0’がアドレスADDRとして出力される。出力されたアドレスADDRは、D-FF53と加算器(+1)52とにそれぞれ入力される。
 一方、加算回路60の初段のD-FF61には、最初のサンプリング(例えば、サンプリング番号P0)により得られた画素値D[i][j](ただし、本説明では、i=0及びj=0)が入力される。
 D-FF53とD-FF61との出力は同期される。したがって、D-FF53がアドレスADDRを出力するタイミングで、D-FF61が画素値D[i][j]を出力する。
 D-FF53から出力されたアドレスADDRは、D-FF54に入力されるとともに、読出しアドレスREAD_ADDRとしてSRAM55に入力される。一方、D-FF61から出力された画素値D[i][j]は、D-FF62に入力される。
 D-FF54とSRAM55とD-FF62との出力は同期される。したがって、D-FF54がアドレスADDRを出力するタイミングで、SRAM55から読出しアドレスREAD_ADDRに対応するBINに格納されている累積画素値READ_DATA[i]が出力されるとともに、D-FF62から画素値D[i][j]が出力される。
 D-FF54から出力されたアドレスADDRは、D-FF56に入力される。一方、SRAM55から読み出された累積画素値READ_DATA[i]は、加算器63に入力される。また、D-FF62から出力された画素値D[i][j]は、加算器63に入力されるとともに、セレクタ64に入力される。
 1回目のサンプリングに対するヒストグラム生成処理では、セレクタ64には、不図示の制御線を介して、入力された画素値D[i][j]を出力させる制御信号が入力されている。したがって、セレクタ64からは、入力された画素値D[i][j]が書込みデータBIN_DATA[j]としてD-FF65に出力される。
 D-FF56とD-FF65との出力は同期される。したがって、D-FF56がアドレスADDRを出力するタイミングで、D-FF65が書込みデータBIN_DATA[j]を出力する。
 D-FF56から出力されたアドレスADDRは、書込みアドレスWRITE_ADDRとして、SRAM55に入力される。また、SRAM55には、書込みアドレスWRITE_ADDRの入力と同期して、書込みデータBIN_DATA[j]も入力される。したがって、SRAM55に入力された書込みデータBIN_DATA[j]は、書込みアドレスWRITE_ADDRで指定されたBINに累積画素値として格納される。
 次に、2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ51には、加算器(+1)52から入力された値を出力させる制御信号が入力されている。加算器(+1)52は、セレクタ51から出力されたアドレスADDRを1インクリメントした値を出力する。したがって、2回目以降のサンプリングに対するヒストグラム生成処理では、セレクタ51からは、前回のアドレスADDRを1インクリメントすることで得られた次のアドレスADDRが出力される。出力されたアドレスADDRは、D-FF53と加算器(+1)52とにそれぞれ入力される。
 一方、加算回路60の初段のD-FF61には、2回目以降のサンプリング(例えば、サンプリング番号P1以降)により得られた画素値D[i][j](ただし、本説明では、i=0及びj=0)が入力される。
 D-FF53とD-FF61との出力は同期されていることから、D-FF53がアドレスADDRを出力するタイミングで、D-FF61が画素値D[i][j]を出力する。
 そして、D-FF54とSRAM55とD-FF62との出力は同期されていることから、D-FF54がアドレスADDRを出力するタイミングで、SRAM55から読出しアドレスREAD_ADDRに対応するBINに格納されている累積画素値READ_DATA[i]が出力されるとともに、D-FF62から画素値D[i][j]が出力される。
 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]を加算することで得られた累積画素値が格納される。
 以上の動作を所定のサンプリング回数繰返し実行することで、発光部13の1回の発光に対するヒストグラムがメモリ17内に作成される。そして、この動作を所定の発光回数分繰返し実行することで、測距範囲内に存在する物体90までの距離を推定又は算出するためのヒストグラムが作成される。
 2.10 動作例
 図22は、本実施形態に係るToFセンサの概略動作例を示すフローチャートである。なお、図22では、制御部11(図1参照)の動作に着目して説明する。
 図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へ進む。
 また、画素モードが‘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へ進む。
 さらに、画素モードが‘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へ進む。
 さらにまた、画素モードが‘2’でない場合(ステップS20のNO)、制御部11は、画素モードが‘3’であると判断して、サンプリング回数Nmaxに8Nを設定し(ステップS24)、つづいて、画素数可変並列加算部161及びヒストグラム生成部163に、画素モード=3を設定する(ステップS25)。その後、制御部11は、ヒストグラム処理部16に第4ヒストグラム処理(例えば、図10、図11、図19及び図20参照)を実行させ(ステップS26)、ステップS27へ進む。
 ステップS27では、制御部11は、第1~第4ヒストグラム処理のいずれか(ステップS15、S19、S23又はS26)で生成されたヒストグラムに基づき、測距範囲内に存在する物体90までの距離を推定又は算出する。その後、制御部11は、本動作を終了するか否かを判定し(ステップS28)、終了する場合(ステップS28のYES)、本動作を終了する。一方、終了しない場合(ステップS28のNO)、制御部11は、ステップS11へリターンし、以降の動作を実行する。
 2.10.1 第1ヒストグラム生成処理
 図23は、図22のステップS15に示す第1ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、以下の説明では、明確化のため、BIN番号(BINIDX)とサンプリング番号(N)とが一致しているものとする。
 図23に示すように、第1ヒストグラム生成処理では、ヒストグラム生成部1630は、まず、現在の発光部13による発光が何回目の発光であるかを特定するための発光回数Mに‘1’を設定する(ステップS101)とともに、現在のサンプリングが何番目であるかを特定するためのサンプリング番号Nを‘0’にリセットする(ステップS102)。次に、ヒストグラム生成部1630は、全てのメモリ170~177に対して、許可レベルのイネーブル信号EN0~EN7を入力することで、全てのメモリ170~177に対する書込みを許可する(ステップS103)。なお、サンプリング番号Nは、ヒストグラム生成部163内の不図示のカウンタにより管理されているものとする。
 次に、ヒストグラム生成部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からの検出信号の読出しは、上述したように、所定のサンプリング周期で繰返し実行されているものとする。
 次に、ヒストグラム生成部1630は、サンプリング番号Nが最大値であるサンプリング回数Nmaxに達しているか否かを判定し(ステップS106)、達している場合(ステップS106のYES)、ステップS108へ進む。一方、サンプリング番号Nがサンプリング回数Nmaxに達していない場合(ステップS106のNO)、ヒストグラム生成部1630は、サンプリング番号Nを1インクリメントし(ステップS107)、その後、ステップS104へリターンして、以降の動作を繰返し実行する。
 ステップS108では、ヒストグラム生成部1630は、例えば、発光部13の発光が予め定められた所定回数Mmaxに達しているか否かを判定し、達している場合(ステップS108のYES)、第1ヒストグラム生成処理を終了する。一方、所定回数Mmaxに達していない場合(ステップS108のNO)、ヒストグラム生成部1630は、発光部13の発光回数Mを1インクリメントし(ステップS109)、その後、ステップS101へリターンして、以降の動作を実行する。これにより、発光部13のM回の発光に基づいてヒストグラムを作成することが可能となるため、より正確に物体90までの距離を推定又は算出することが可能となる。
 2.10.2 第2ヒストグラム生成処理
 図24は、図22のステップS19に示す第2ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図24に示す動作において、図23に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
 図24に示すように、第2ヒストグラム生成処理では、ヒストグラム生成部1630は、まず、現在の発光部13による発光が何回目の発光であるかを特定するための発光回数Mに‘1’を設定し(ステップS101)、変数Qの最大値であるQmaxを‘1’に設定する(ステップS201)とともに、変数Qを‘0’にリセットする(ステップS202)。つづいて、ヒストグラム生成部1630は、図23におけるステップS102と同様に、サンプリング番号Nを‘0’にリセットする(ステップS102)。
 次に、ヒストグラム生成部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)。
 次に、ヒストグラム生成部1630は、サンプリング番号NがNmaxに達するまで、図23におけるステップS104~S107に示す動作と同様の動作を実行することで、各ヒストグラムの前半部分又は後半部分を作成する。
 次に、ヒストグラム生成部1630は、変数QがQmaxに達しているか否かを判定し(ステップS204)、達している場合(ステップS204のYES)、ステップS108へ進む。一方、変数QがQmaxに達していない場合(ステップS204のNO)、ヒストグラム生成部1630は、変数Qを1インクリメントし(ステップS205)、その後、ステップS102へリターンして以降の動作を実行することで、各ヒストグラムの残りの半分を作成する。
 2.10.3 第3ヒストグラム生成処理
 図25は、図22のステップS23に示す第3ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図25に示す動作において、図23又は図24に示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
 図25に示す第3ヒストグラム生成処理は、図24に示した第2ヒストグラム生成処理と同様の動作において、図24のステップS201及びS203が、それぞれ図25のステップS301及びS302に置き換えられている。
 ステップS301では、ヒストグラム生成部1630は、変数Qの最大値であるQmaxを‘3’に設定する。
 ステップ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番目のメモリに対する書込みを許可する。
 次に、ヒストグラム生成部1630は、図24におけるステップS104~S205と同様に、変数Qの値ごとに、サンプリング番号Nが0からNmaxに達するまで、ステップS102~S107に示す動作と同様の動作を実行することで、各ヒストグラムを1/4ずつ作成する。
 その後、ヒストグラム生成部1630は、ステップS108へ進み、発光部13の発光回数Mが所定回数Mmaxに達するまで、上述した動作を繰返し実行する。
 2.10.4 第4ヒストグラム生成処理
 図26は、図22のステップS26に示す第4ヒストグラム処理においてヒストグラム生成部が実行するヒストグラム生成処理の一例を示すフローチャートである。なお、以下の説明では、説明の簡略化のため、ヒストグラム生成部163におけるヒストグラム生成部1630に着目するが、他のヒストグラム生成部1631~1637に対しても同様の適用することが可能である。また、図26に示す動作において、図23~図25のいずれかに示す動作と同様の動作については、同一の符号を付し、その詳細な説明を省略する。
 図26に示す第4ヒストグラム生成処理は、図24に示した第2ヒストグラム生成処理又は図25に示した第3ヒストグラム生成処理と同様の動作において、図24のステップS201及びS203又は図25のステップS301及びS302が、それぞれ図26のステップS401及びS402に置き換えられている。
 ステップS401では、ヒストグラム生成部1630は、変数Qの最大値であるQmaxを‘7’に設定する。
 ステップ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番目のメモリに対する書込みを許可する。
 次に、ヒストグラム生成部1630は、図24におけるステップS104~S205と同様に、変数Qの値ごとに、サンプリング番号Nが0からNmaxに達するまで、ステップS102~S107に示す動作と同様の動作を実行することで、各ヒストグラムを1/8ずつ作成する。
 その後、ヒストグラム生成部1630は、ステップS108へ進み、発光部13の発光回数Mが所定回数Mmaxに達するまで、上述した動作を繰返し実行する。
 2.11 ヒストグラム作成の具体例
 つづいて、以上のような構成及び動作に基づいたヒストグラムの作成について、具体例を挙げて説明するなお、以下の説明では、画素モード=2、すなわち、第3画素モードが設定されている場合を例示するが、他の画素モードに対しても、同様に適用することが可能である。
 図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]を用いて作成されているものとする。
 まず、図27に示すように、発光部13の1回目の発光(M=1)に対しては、メモリ17内には、1回の発光に対するサンプリングによって得られたサンプリング番号N毎の画素値Dが対応するBINに格納されたヒストグラムが作成される。
 そこで、発光部13の2回目の発光(M=2)に対し、図28に例示するようなヒストグラムが得られた場合、メモリ17内には、図29に示すように、1回目の発光(M=1)に対して得られたヒストグラムの各BINの値に、2回目の発光(M=2)に対して得られたヒストグラムの各BINの値が加算されたヒストグラムが作成される。
 同様に、発光部13の3回目の発光(M=3)に対し、図30に例示するようなヒストグラムが得られた場合、図31に示すように、メモリ17内のヒストグラムにおける各BINには、1回目の発光(M=1)から3回目の発光(M=3)までに得られた画素値の累積値(累積画素値)が格納される。
 このように、発光部13の複数回の発光に対して得られた画素値Dを累積することで、反射光L2を検出した画素値の累積画素値と、外乱光L0などのノイズに起因した累積画素値との差を大きくすることが可能となる。それにより、反射光L2とノイズとの弁別の信頼性を高めることが可能となるため、より正確に物体90までの距離を推定又は算出することが可能となる。
 2.12 距離推定/算出部
 次に、本実施形態に係る距離推定/算出部18について、以下に説明する。距離推定/算出部18は、ヒストグラム処理部16により作成されたメモリ17内のヒストグラムに基づいて、物体90までの距離を推定又は算出する。例えば、距離推定/算出部18は、各ヒストグラムにおいて累積画素値がピーク値となるBIN番号を特定し、特定したBIN番号を飛行時間又は距離情報に換算することで、物体90までの距離を推定又は算出する。
 例えば、第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までの距離を推定又は算出する。
 なお、BIN番号から飛行時間又は距離情報への換算は、予め所定のメモリ内に格納されている換算テーブルを用いて実行されてもよいし、BIN番号を飛行時間又は距離情報に変換する変換式を予め保持しておき、この変換式を用いて換算されてもよい。
 また、累積画素値のピークとなるBIN番号の特定では、最も値が大きいBINのBIN番号を特定する方法や、ヒストグラムに対してフィッティングをし、それにより得られた関数曲線から累積画素値がピークとなるBIN番号を特定する方法など、種々の方法を用いることが可能である。
 2.13 作用・効果
 以上のように、本実施形態によれば、画素モードに応じてメモリ170~177の使用形態が切り替えられる。例えば、第1画素モードでは、メモリ170~177それぞれで計48つのヒストグラムが作成され、第2画素モードでは、メモリ170~177のうちの2つずつを組み合わせて計24つのヒストグラムが作成され、第3画素モードでは、メモリ170~177のうちの4つずつを組み合わせて計12つのヒストグラムが作成され、第4画素モードでは、メモリ170~177の全てを組み合わせて計6つのヒストグラムが作成される。それにより、深いメモリ領域を必要としない場合(例えば、近くを測距する場合)と、深いメモリ領域を必要とする場合(例えば、遠くまでを測距する場合)とで、メモリ17の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
 また、本実施形態によれば、書込みが行なわれないメモリ170~177に対しては、書込みを禁止するイネーブル信号EN0~EN7を供給してメモリを休止状態にすることが可能となるため、消費電力を低減することも可能となる。
 さらに、本実施形態によれば、測距画像における1つの画素に対応するマクロ画素30の数が画素モードに応じて切り替えられる。それにより、状況に応じてToFセンサ1の解像度を変更する変更することも可能となる。例えば、近い範囲を測距する場合のような広いダイナミックレンジを必要としない場合には、解像度を高めてきめ細かい測距画像を取得し、遠くまで測距するような広いダイナミックレンジを必要とする場合には、解像度を落として広いダイナミックレンジで測距画像を取得するというように、状況に応じて解像度を効果的に変更することが可能となる。
 3.第2の実施形態
 第1の実施形態では、フラッシュ型と称される測距装置について、例を挙げて説明した。これに対し、第2の実施形態では、スキャン型と称される測距装置について、例を挙げて説明する。なお、以下の説明において、第1の実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
 3.1 測距装置(ToFセンサ)
 図32は、本実施形態に係る測距装置としてのToFセンサの概略構成例を示す模式図である。図1に示すように、ToFセンサ2は、制御装置200と、集光レンズ201と、ハーフミラー202と、マイクロミラー203と、受光レンズ204と、スキャン部205と、発光部213と、受光部214とを備える。マイクロミラー203と、スキャン部205とは、例えば、請求の範囲における、アレイ部(例えば、SPADアレイ143に相当)に入射する光を走査する走査部に相当する。なお、この走査部には、他にも、集光レンズ201、ハーフミラー202及び受光レンズ204のうちの少なくとも1つが含まれてもよい。
 受光部214は、例えば、第1の実施形態で例示したマクロ画素30が垂直方向(列方向に対応)に配列した構造を備える。すなわち、受光部214は、例えば、図3で例示したSPADアレイ143の一部の列(1列又は数列)で構成することができる。以下、このSPADアレイ143の一部の列を、マクロ画素列243と称する。そこで、図3に例示したSPADアレイ143を引用すると、本実施形態に係るマクロ画素列243は、例えば、列方向に配列する#0~#47の計48つのマクロ画素30が、j=0~6の計6つの画素グループ31に区切られた構造を有する。
 発光部213は、例えば、第1の実施形態にかかる発光部13と同様に、1つ又は複数の半導体レーザダイオードで構成されており、所定時間幅のパルス状のレーザ光L1を所定周期(発光周期)で出射する。また、発光部13は、例えば、1GHz(ギガヘルツ)の周期で、1ns(ナノ秒)の時間幅のレーザ光L1を出射する。
 集光レンズ201は、発光部213から出射したレーザ光L1を集光する。例えば、集光レンズ201は、レーザ光L1の広がりが受光部214の画角分程度となるように、レーザ光L1を集光する。
 ハーフミラー202は、入射したレーザ光L1の少なくとも一部を、マイクロミラー203へ向けて反射する。なお、ハーフミラー202に代えて、偏光ミラーなど、一部の光を反射し、他の一部の光を透過する光学素子を用いることも可能である。
 マイクロミラー203は、反射面の中心を軸として角度を変化させることができるように、スキャン部205に取り付けられている。スキャン部205は、例えば、マイクロミラー203で反射したレーザ光L1の像SAが所定の走査エリアARを水平方向に往復するように、マイクロミラー203を水平方向に揺動又は振動させる。例えば、スキャン部205は、レーザ光L1の像SAが所定の走査エリアARを1ms(ミリ秒)で往復するように、マイクロミラー203を水平方向に揺動又は振動させる。なお、マイクロミラー203の揺動又は振動には、ステッピングモータやピエゾ素子などを利用することができる。
 測距範囲内に存在する物体90で反射したレーザ光L1の反射光L2は、レーザ光L1の出射軸と同じ光軸を入射軸として、レーザ光L1とは反対方向からマイクロミラー203に入射する。マイクロミラー203に入射した反射光L2は、レーザ光L1と同じ光軸でハーフミラー202に入射し、その一部がハーフミラー202を透過する。
 ハーフミラー202を透過した反射光L2の像は、受光レンズ204を介することで、受光部214におけるマクロ画素列243に結像される。
 制御装置200は、例えば、制御部11と、制御レジスタ12と、加算部15と、ヒストグラム処理部16と、メモリ17と、距離推定/算出部18と外部I/F19とを備える。これらは、例えば、第1の実施形態において例示したものと同様であってよい。ただし、本実施形態に係る制御部11は、図1に例示した各部に加え、スキャン部205も制御する。
 以上のような構成において、加算部15には、第1の実施形態と同様に、マクロ画素列243の各マクロ画素30における各SPAD画素20から出力された検出信号V_OUTが、所定のサンプリング周期で入力される。加算部15は、第1の実施形態と同様に、受光部214から出力された検出信号V_OUTの数を1又は複数のマクロ画素ごとに集計し、その集計値を画素値としてヒストグラム処理部16へ出力する。
 ヒストグラム処理部16は、第1の実施形態と同様に、画素モードに応じたヒストグラムを、メモリ17内に作成する。そして、距離推定/算出部18は、第1の実施形態と同様に、メモリ17内に作成されたヒストグラムに基づき、物体90までの距離を推定又は算出する。
 3.2 作用・効果
 以上のように、フラッシュ型のTOFセンサ1に限らず、スキャン型のTOFセンサ2においても、画素モードに応じてメモリ170~177の使用形態を切り替えることが可能である。それにより、深いメモリ領域を必要としない場合(例えば、近くを測距する場合)と、深いメモリ領域を必要とする場合(例えば、遠くまでを測距する場合)とで、メモリ17の使用形態を切り替えることが可能となるため、状況に応じてメモリリソースを効率的に利用することが可能となる。
 その他の構成、動作及び効果は、第1の実施形態と同様であってよいため、ここでは詳細な説明を省略する。
 4.応用例
 本開示に係る技術は、様々な製品へ応用することができる。例えば、本開示に係る技術は、自動車、電気自動車、ハイブリッド電気自動車、自動二輪車、自転車、パーソナルモビリティ、飛行機、ドローン、船舶、ロボット、建設機械、農業機械(トラクター)などのいずれかの種類の移動体に搭載される装置として実現されてもよい。
 図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(登録商標)等の任意の規格に準拠した車載通信ネットワークであってよい。
 各制御ユニットは、各種プログラムにしたがって演算処理を行うマイクロコンピュータと、マイクロコンピュータにより実行されるプログラム又は各種演算に用いられるパラメータ等を記憶する記憶部と、各種制御対象の装置を駆動する駆動回路とを備える。各制御ユニットは、通信ネットワーク7010を介して他の制御ユニットとの間で通信を行うためのネットワークI/Fを備えるとともに、車内外の装置又はセンサ等との間で、有線通信又は無線通信により通信を行うための通信I/Fを備える。図33では、統合制御ユニット7600の機能構成として、マイクロコンピュータ7610、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660、音声画像出力部7670、車載ネットワークI/F7680及び記憶部7690が図示されている。他の制御ユニットも同様に、マイクロコンピュータ、通信I/F及び記憶部等を備える。
 駆動系制御ユニット7100は、各種プログラムにしたがって車両の駆動系に関連する装置の動作を制御する。例えば、駆動系制御ユニット7100は、内燃機関又は駆動用モータ等の車両の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構、車両の舵角を調節するステアリング機構、及び、車両の制動力を発生させる制動装置等の制御装置として機能する。駆動系制御ユニット7100は、ABS(Antilock Brake System)又はESC(Electronic Stability Control)等の制御装置としての機能を有してもよい。
 駆動系制御ユニット7100には、車両状態検出部7110が接続される。車両状態検出部7110には、例えば、車体の軸回転運動の角速度を検出するジャイロセンサ、車両の加速度を検出する加速度センサ、あるいは、アクセルペダルの操作量、ブレーキペダルの操作量、ステアリングホイールの操舵角、エンジン回転数又は車輪の回転速度等を検出するためのセンサのうちの少なくとも一つが含まれる。駆動系制御ユニット7100は、車両状態検出部7110から入力される信号を用いて演算処理を行い、内燃機関、駆動用モータ、電動パワーステアリング装置又はブレーキ装置等を制御する。
 ボディ系制御ユニット7200は、各種プログラムにしたがって車体に装備された各種装置の動作を制御する。例えば、ボディ系制御ユニット7200は、キーレスエントリシステム、スマートキーシステム、パワーウィンドウ装置、あるいは、ヘッドランプ、バックランプ、ブレーキランプ、ウィンカー又はフォグランプ等の各種ランプの制御装置として機能する。この場合、ボディ系制御ユニット7200には、鍵を代替する携帯機から発信される電波又は各種スイッチの信号が入力され得る。ボディ系制御ユニット7200は、これらの電波又は信号の入力を受け付け、車両のドアロック装置、パワーウィンドウ装置、ランプ等を制御する。
 バッテリ制御ユニット7300は、各種プログラムにしたがって駆動用モータの電力供給源である二次電池7310を制御する。例えば、バッテリ制御ユニット7300には、二次電池7310を備えたバッテリ装置から、バッテリ温度、バッテリ出力電圧又はバッテリの残存容量等の情報が入力される。バッテリ制御ユニット7300は、これらの信号を用いて演算処理を行い、二次電池7310の温度調節制御又はバッテリ装置に備えられた冷却装置等の制御を行う。
 車外情報検出ユニット7400は、車両制御システム7000を搭載した車両の外部の情報を検出する。例えば、車外情報検出ユニット7400には、撮像部7410及び車外情報検出部7420のうちの少なくとも一方が接続される。撮像部7410には、ToF(Time Of Flight)カメラ、ステレオカメラ、単眼カメラ、赤外線カメラ及びその他のカメラのうちの少なくとも一つが含まれる。車外情報検出部7420には、例えば、現在の天候又は気象を検出するための環境センサ、あるいは、車両制御システム7000を搭載した車両の周囲の他の車両、障害物又は歩行者等を検出するための周囲情報検出センサのうちの少なくとも一つが含まれる。
 環境センサは、例えば、雨天を検出する雨滴センサ、霧を検出する霧センサ、日照度合いを検出する日照センサ、及び降雪を検出する雪センサのうちの少なくとも一つであってよい。周囲情報検出センサは、超音波センサ、レーダ装置及びLIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)装置のうちの少なくとも一つであってよい。これらの撮像部7410及び車外情報検出部7420は、それぞれ独立したセンサないし装置として備えられてもよいし、複数のセンサないし装置が統合された装置として備えられてもよい。
 ここで、図34は、撮像部7410及び車外情報検出部7420の設置位置の例を示す。撮像部7910,7912,7914,7916,7918は、例えば、車両7900のフロントノーズ、サイドミラー、リアバンパ、バックドア及び車室内のフロントガラスの上部のうちの少なくとも一つの位置に設けられる。フロントノーズに備えられる撮像部7910及び車室内のフロントガラスの上部に備えられる撮像部7918は、主として車両7900の前方の画像を取得する。サイドミラーに備えられる撮像部7912,7914は、主として車両7900の側方の画像を取得する。リアバンパ又はバックドアに備えられる撮像部7916は、主として車両7900の後方の画像を取得する。車室内のフロントガラスの上部に備えられる撮像部7918は、主として先行車両又は、歩行者、障害物、信号機、交通標識又は車線等の検出に用いられる。
 なお、図34には、それぞれの撮像部7910,7912,7914,7916の撮影範囲の一例が示されている。撮像範囲aは、フロントノーズに設けられた撮像部7910の撮像範囲を示し、撮像範囲b,cは、それぞれサイドミラーに設けられた撮像部7912,7914の撮像範囲を示し、撮像範囲dは、リアバンパ又はバックドアに設けられた撮像部7916の撮像範囲を示す。例えば、撮像部7910,7912,7914,7916で撮像された画像データが重ね合わせられることにより、車両7900を上方から見た俯瞰画像が得られる。
 車両7900のフロント、リア、サイド、コーナ及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7922,7924,7926,7928,7930は、例えば超音波センサ又はレーダ装置であってよい。車両7900のフロントノーズ、リアバンパ、バックドア及び車室内のフロントガラスの上部に設けられる車外情報検出部7920,7926,7930は、例えばLIDAR装置であってよい。これらの車外情報検出部7920~7930は、主として先行車両、歩行者又は障害物等の検出に用いられる。
 図33に戻って説明を続ける。車外情報検出ユニット7400は、撮像部7410に車外の画像を撮像させるとともに、撮像された画像データを受信する。また、車外情報検出ユニット7400は、接続されている車外情報検出部7420から検出情報を受信する。車外情報検出部7420が超音波センサ、レーダ装置又はLIDAR装置である場合には、車外情報検出ユニット7400は、超音波又は電磁波等を発信させるとともに、受信された反射波の情報を受信する。車外情報検出ユニット7400は、受信した情報に基づいて、人、車、障害物、標識又は路面上の文字等の物体検出処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、降雨、霧又は路面状況等を認識する環境認識処理を行ってもよい。車外情報検出ユニット7400は、受信した情報に基づいて、車外の物体までの距離を算出してもよい。
 また、車外情報検出ユニット7400は、受信した画像データに基づいて、人、車、障害物、標識又は路面上の文字等を認識する画像認識処理又は距離検出処理を行ってもよい。車外情報検出ユニット7400は、受信した画像データに対して歪補正又は位置合わせ等の処理を行うとともに、異なる撮像部7410により撮像された画像データを合成して、俯瞰画像又はパノラマ画像を生成してもよい。車外情報検出ユニット7400は、異なる撮像部7410により撮像された画像データを用いて、視点変換処理を行ってもよい。
 車内情報検出ユニット7500は、車内の情報を検出する。車内情報検出ユニット7500には、例えば、運転者の状態を検出する運転者状態検出部7510が接続される。運転者状態検出部7510は、運転者を撮像するカメラ、運転者の生体情報を検出する生体センサ又は車室内の音声を集音するマイク等を含んでもよい。生体センサは、例えば、座面又はステアリングホイール等に設けられ、座席に座った搭乗者又はステアリングホイールを握る運転者の生体情報を検出する。車内情報検出ユニット7500は、運転者状態検出部7510から入力される検出情報に基づいて、運転者の疲労度合い又は集中度合いを算出してもよいし、運転者が居眠りをしていないかを判別してもよい。車内情報検出ユニット7500は、集音された音声信号に対してノイズキャンセリング処理等の処理を行ってもよい。
 統合制御ユニット7600は、各種プログラムにしたがって車両制御システム7000内の動作全般を制御する。統合制御ユニット7600には、入力部7800が接続されている。入力部7800は、例えば、タッチパネル、ボタン、マイクロフォン、スイッチ又はレバー等、搭乗者によって入力操作され得る装置によって実現される。統合制御ユニット7600には、マイクロフォンにより入力される音声を音声認識することにより得たデータが入力されてもよい。入力部7800は、例えば、赤外線又はその他の電波を利用したリモートコントロール装置であってもよいし、車両制御システム7000の操作に対応した携帯電話又はPDA(Personal Digital Assistant)等の外部接続機器であってもよい。入力部7800は、例えばカメラであってもよく、その場合搭乗者はジェスチャにより情報を入力することができる。あるいは、搭乗者が装着したウェアラブル装置の動きを検出することで得られたデータが入力されてもよい。さらに、入力部7800は、例えば、上記の入力部7800を用いて搭乗者等により入力された情報に基づいて入力信号を生成し、統合制御ユニット7600に出力する入力制御回路などを含んでもよい。搭乗者等は、この入力部7800を操作することにより、車両制御システム7000に対して各種のデータを入力したり処理動作を指示したりする。
 記憶部7690は、マイクロコンピュータにより実行される各種プログラムを記憶するROM(Read Only Memory)、及び各種パラメータ、演算結果又はセンサ値等を記憶するRAM(Random Access Memory)を含んでいてもよい。また、記憶部7690は、HDD(Hard Disc Drive)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等によって実現してもよい。
 汎用通信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)端末)と接続してもよい。
 専用通信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通信を遂行する。
 測位部7640は、例えば、GNSS(Global Navigation Satellite System)衛星からのGNSS信号(例えば、GPS(Global Positioning System)衛星からのGPS信号)を受信して測位を実行し、車両の緯度、経度及び高度を含む位置情報を生成する。なお、測位部7640は、無線アクセスポイントとの信号の交換により現在位置を特定してもよく、又は測位機能を有する携帯電話、PHS若しくはスマートフォンといった端末から位置情報を取得してもよい。
 ビーコン受信部7650は、例えば、道路上に設置された無線局等から発信される電波あるいは電磁波を受信し、現在位置、渋滞、通行止め又は所要時間等の情報を取得する。なお、ビーコン受信部7650の機能は、上述した専用通信I/F7630に含まれてもよい。
 車内機器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との間で、制御信号又はデータ信号を交換する。
 車載ネットワークI/F7680は、マイクロコンピュータ7610と通信ネットワーク7010との間の通信を仲介するインタフェースである。車載ネットワークI/F7680は、通信ネットワーク7010によりサポートされる所定のプロトコルに則して、信号等を送受信する。
 統合制御ユニット7600のマイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、各種プログラムにしたがって、車両制御システム7000を制御する。例えば、マイクロコンピュータ7610は、取得される車内外の情報に基づいて、駆動力発生装置、ステアリング機構又は制動装置の制御目標値を演算し、駆動系制御ユニット7100に対して制御指令を出力してもよい。例えば、マイクロコンピュータ7610は、車両の衝突回避あるいは衝撃緩和、車間距離に基づく追従走行、車速維持走行、車両の衝突警告、又は車両のレーン逸脱警告等を含むADAS(Advanced Driver Assistance System)の機能実現を目的とした協調制御を行ってもよい。また、マイクロコンピュータ7610は、取得される車両の周囲の情報に基づいて駆動力発生装置、ステアリング機構又は制動装置等を制御することにより、運転者の操作に拠らずに自律的に走行する自動運転等を目的とした協調制御を行ってもよい。
 マイクロコンピュータ7610は、汎用通信I/F7620、専用通信I/F7630、測位部7640、ビーコン受信部7650、車内機器I/F7660及び車載ネットワークI/F7680のうちの少なくとも一つを介して取得される情報に基づき、車両と周辺の構造物や人物等の物体との間の3次元距離情報を生成し、車両の現在位置の周辺情報を含むローカル地図情報を作成してもよい。また、マイクロコンピュータ7610は、取得される情報に基づき、車両の衝突、歩行者等の近接又は通行止めの道路への進入等の危険を予測し、警告用信号を生成してもよい。警告用信号は、例えば、警告音を発生させたり、警告ランプを点灯させたりするための信号であってよい。
 音声画像出力部7670は、車両の搭乗者又は車外に対して、視覚的又は聴覚的に情報を通知することが可能な出力装置へ音声及び画像のうちの少なくとも一方の出力信号を送信する。図33の例では、出力装置として、オーディオスピーカ7710、表示部7720及びインストルメントパネル7730が例示されている。表示部7720は、例えば、オンボードディスプレイ及びヘッドアップディスプレイの少なくとも一つを含んでいてもよい。表示部7720は、AR(Augmented Reality)表示機能を有していてもよい。出力装置は、これらの装置以外の、ヘッドホン、搭乗者が装着する眼鏡型ディスプレイ等のウェアラブルデバイス、プロジェクタ又はランプ等の他の装置であってもよい。出力装置が表示装置の場合、表示装置は、マイクロコンピュータ7610が行った各種処理により得られた結果又は他の制御ユニットから受信された情報を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。また、出力装置が音声出力装置の場合、音声出力装置は、再生された音声データ又は音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
 なお、図33に示した例において、通信ネットワーク7010を介して接続された少なくとも二つの制御ユニットが一つの制御ユニットとして一体化されてもよい。あるいは、個々の制御ユニットが、複数の制御ユニットにより構成されてもよい。さらに、車両制御システム7000が、図示されていない別の制御ユニットを備えてもよい。また、上記の説明において、いずれかの制御ユニットが担う機能の一部又は全部を、他の制御ユニットに持たせてもよい。つまり、通信ネットワーク7010を介して情報の送受信がされるようになっていれば、所定の演算処理が、いずれかの制御ユニットで行われるようになってもよい。同様に、いずれかの制御ユニットに接続されているセンサ又は装置が、他の制御ユニットに接続されるとともに、複数の制御ユニットが、通信ネットワーク7010を介して相互に検出情報を送受信してもよい。
 なお、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2の各機能を実現するためのコンピュータプログラムを、いずれかの制御ユニット等に実装することができる。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体を提供することもできる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
 以上説明した車両制御システム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に相当してもよい。
 また、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2の少なくとも一部の構成要素は、図33に示した統合制御ユニット7600のためのモジュール(例えば、一つのダイで構成される集積回路モジュール)において実現されてもよい。あるいは、図1又は図32を用いて説明した本実施形態に係るToFセンサ1又は2が、図33に示した車両制御システム7000の複数の制御ユニットによって実現されてもよい。
 以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
 なお、本技術は以下のような構成も取ることができる。
(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サイズのメモリ領域が各画素に対して割り当てられる
 測距方法。
 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 サンプリング番号

Claims (17)

  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サイズの領域が各画素に対して割り当てられる
     測距方法。
PCT/JP2019/041034 2018-12-03 2019-10-18 測距装置及び測距方法 WO2020116039A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201980009616.6A CN111630409A (zh) 2018-12-03 2019-10-18 测距装置和测距方法
DE112019000310.0T DE112019000310T5 (de) 2018-12-03 2019-10-18 Entfernungsmessvorrichtung und entfernungsmessverfahren
US16/964,673 US20200348416A1 (en) 2018-12-03 2019-10-18 Ranging device and ranging method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-226594 2018-12-03
JP2018226594A JP2020091117A (ja) 2018-12-03 2018-12-03 測距装置及び測距方法

Publications (1)

Publication Number Publication Date
WO2020116039A1 true WO2020116039A1 (ja) 2020-06-11

Family

ID=70974527

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/041034 WO2020116039A1 (ja) 2018-12-03 2019-10-18 測距装置及び測距方法

Country Status (6)

Country Link
US (1) US20200348416A1 (ja)
JP (1) JP2020091117A (ja)
CN (1) CN111630409A (ja)
DE (1) DE112019000310T5 (ja)
TW (1) TW202030500A (ja)
WO (1) WO2020116039A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022042013A1 (zh) * 2020-08-31 2022-03-03 华为技术有限公司 一种dTOF传感模组、终端设备及测距方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573302B2 (en) * 2019-10-17 2023-02-07 Argo AI, LLC LiDAR system comprising a Geiger-mode avalanche photodiode-based receiver having pixels with multiple-return capability
DE102020126799A1 (de) * 2020-10-13 2022-04-14 Sick Ag Distanzmessung mit einem Lichtlaufzeitverfahren
DE112021005860T5 (de) * 2020-11-02 2023-08-24 Sony Semiconductor Solutions Corporation Fotodetektor und optisches detektonssystem
TWI805152B (zh) * 2020-12-26 2023-06-11 以色列商趣眼有限公司 用於產生影像的方法、電光系統及非暫時性電腦可讀媒體
JP2022126067A (ja) * 2021-02-18 2022-08-30 ソニーセミコンダクタソリューションズ株式会社 受光装置、測距装置及び受光装置の信号処理方法
CN112799097B (zh) * 2021-04-14 2023-11-28 深圳阜时科技有限公司 深度图和灰度图的获取方法、深度相机、以及电子设备
TWI816292B (zh) * 2022-01-26 2023-09-21 佳世達科技股份有限公司 超音波斜向陣列製造方法及超音波斜向陣列

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120262696A1 (en) * 2009-09-11 2012-10-18 Robert Bosch Gmbh Optical Distance Measuring Device
US20170350967A1 (en) * 2016-06-06 2017-12-07 Princeton Lightwave, Inc. LiDAR SYSTEM AND METHOD
JP2018044923A (ja) * 2016-09-16 2018-03-22 株式会社東芝 光検出器、及び距離測定装置
US20180259624A1 (en) * 2015-11-11 2018-09-13 Ibeo Automotive Systems GmbH Method and device for optically measuring distances
JP2019032305A (ja) * 2017-07-11 2019-02-28 フォンダッツィオーネ ブルーノ ケスラーFondazione Bruno Kessler 距離を計測するための光電センサ及び方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208403B1 (en) * 2014-06-16 2015-12-08 Qualcomm Incorporated Systems and methods for processing image data associated with line detection
US10620300B2 (en) * 2015-08-20 2020-04-14 Apple Inc. SPAD array with gated histogram construction
WO2018190276A1 (ja) * 2017-04-10 2018-10-18 株式会社デンソー 光計測装置
US10324170B1 (en) * 2018-04-05 2019-06-18 Luminar Technologies, Inc. Multi-beam lidar system with polygon mirror

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120262696A1 (en) * 2009-09-11 2012-10-18 Robert Bosch Gmbh Optical Distance Measuring Device
US20180259624A1 (en) * 2015-11-11 2018-09-13 Ibeo Automotive Systems GmbH Method and device for optically measuring distances
US20170350967A1 (en) * 2016-06-06 2017-12-07 Princeton Lightwave, Inc. LiDAR SYSTEM AND METHOD
JP2018044923A (ja) * 2016-09-16 2018-03-22 株式会社東芝 光検出器、及び距離測定装置
JP2019032305A (ja) * 2017-07-11 2019-02-28 フォンダッツィオーネ ブルーノ ケスラーFondazione Bruno Kessler 距離を計測するための光電センサ及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022042013A1 (zh) * 2020-08-31 2022-03-03 华为技术有限公司 一种dTOF传感模组、终端设备及测距方法
EP4194892A4 (en) * 2020-08-31 2024-01-24 Huawei Tech Co Ltd DTOF DETECTION MODULE, TERMINAL DEVICE AND DISTANCE MEASUREMENT METHOD

Also Published As

Publication number Publication date
US20200348416A1 (en) 2020-11-05
JP2020091117A (ja) 2020-06-11
TW202030500A (zh) 2020-08-16
CN111630409A (zh) 2020-09-04
DE112019000310T5 (de) 2020-09-17

Similar Documents

Publication Publication Date Title
WO2020116039A1 (ja) 測距装置及び測距方法
JP7246863B2 (ja) 受光装置、車両制御システム及び測距装置
TWI828695B (zh) 受光裝置及測距裝置
WO2020153275A1 (ja) 測距装置、車載システム及び測距方法
JP2021128084A (ja) 測距装置および測距方法
US20220003849A1 (en) Distance measuring device and distance measuring method
WO2021019939A1 (ja) 受光装置及び受光装置の制御方法、並びに、測距装置
EP3904826A1 (en) Distance measuring device and distance measuring method
WO2020153182A1 (ja) 光検出装置及び光検出装置の駆動方法、並びに、測距装置
WO2021161858A1 (ja) 測距装置および測距方法
WO2022004502A1 (ja) 撮像装置及び撮像方法
WO2022176532A1 (ja) 受光装置、測距装置及び受光装置の信号処理方法
WO2021161857A1 (ja) 測距装置および測距方法
WO2023089884A1 (ja) 光検出装置、撮像装置および測距装置
WO2023281824A1 (ja) 受光装置、測距装置及び受光装置の制御方法
WO2023281825A1 (ja) 光源装置、測距装置及び測距方法
WO2023145344A1 (ja) 受光素子、および電子機器
WO2023162734A1 (ja) 測距装置
WO2024095625A1 (ja) 測距装置および測距方法
WO2023190279A1 (ja) 測距装置
WO2023248855A1 (ja) 光検出装置及び電子機器
WO2024034271A1 (ja) 光検出素子及び電子機器
WO2023162733A1 (ja) 測距装置及び測距方法
WO2023223928A1 (ja) 測距装置及び測距システム
WO2023243527A1 (en) Solid-state image-capturing device, and image-capturing apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19893459

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19893459

Country of ref document: EP

Kind code of ref document: A1