Distance measuring device

The distance measuring device enhances ranging accuracy and range by dividing the measurement into sections using packet generation codes, overcoming the limitations of conventional TOF methods.

JP7603016B2Active Publication Date: 2024-12-19MIRAXIA EDGE TECH CO LTD
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
JP2021553728
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-19
Filing Date
2020-10-30
Publication Date
2024-12-19
Estimated Expiration
2040-10-30

AI Technical Summary

Technical Problem

Conventional TOF distance measurement technologies face challenges in simultaneously expanding the ranging range and improving ranging accuracy, as increasing the pulse width of the light source to enhance the range deteriorates accuracy, and adding signal storage means to maintain accuracy is cumbersome.

Method used

A distance measuring device and method that uses a pulse generation unit to control light emission and exposure pulses, a light source, a solid-state imaging unit, and a distance calculation unit to divide the ranging range into sections, employing n types of packet generation codes to achieve high accuracy and wide ranging by comparing independent and adjacent codes with exposure codes.

Benefits of technology

The solution enables high ranging accuracy and a wide ranging range by determining distances based on unit intervals, allowing for increased unit sections and frame rates, effectively addressing the limitations of conventional methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007603016000001
    Figure 0007603016000001
  • Figure 0007603016000002
    Figure 0007603016000002
  • Figure 0007603016000003
    Figure 0007603016000003
Patent Text Reader

Abstract

This distance measurement device is equipped with: a pulse generation unit (10107); a control unit (10106) for controlling the pulse generation unit (10107) according to n (n is an integer of 4 or higher) types of packet generation codes that express whether light exposure should occur in each of a plurality of unit intervals corresponding to a plurality of distance intervals obtained by dividing up the distance measurement range, or whether light emission should occur in each of the plurality of unit intervals; a light source unit (10102); a solid-state imaging unit (10105); and a distance calculation unit (10108) for calculating the distance on the basis of n types of signal values per unit interval obtained from the solid-state imaging unit (10105).
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a distance measuring device and a distance measuring method. [Background technology]

[0002] Among the various methods for detecting objects, the time of flight (TOF) method is known, which measures distances by utilizing the flight time it takes for light to travel to and from the object.

[0003] Patent Document 1 discloses a conventional technology in which signals are accumulated by transferring electric charges to two different signal accumulation means at different phases in synchronization with the intermittent operation of light from a light source, and the distance to an object is calculated from the distribution ratio of the accumulated signals, and further, background light is removed by accumulating only the background light in a third signal accumulation means, thereby eliminating the effects of background light.

[0004] Furthermore, Patent Document 2 discloses a conventional technology in which signals are accumulated by transferring electric charges to three different signal accumulation means at different phases in synchronization with the intermittent operation of light from a light source, and the signal accumulation means that has accumulated only background light is identified according to the results of determining the magnitude relationship of the accumulated signal amounts, and the influence of the background light is eliminated by removing the background light. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2004-294420 A [Patent Document 2] International Publication No. 2016 / 189808 Summary of the Invention [Problem to be solved by the invention]

[0006] However, in the conventional technology disclosed in Patent Document 1, the third signal accumulation means is dedicated to background light, so the distance measurement range (limit) D depends on the pulse width (To) of the light source, and can be expressed as follows, where c is the speed of light (299,792,458 m / s):

[0007] D=c×To / 2

[0008] As the pulse width (To) of the light source increases, the distance measurement range D increases, but the distance resolution decreases, so the distance measurement accuracy is inversely proportional to the pulse width (To) of the light source. In other words, if the pulse width (To) of the light source is increased to expand the distance measurement range (limit) D, the distance measurement accuracy will decrease.

[0009] Therefore, there is a problem that it is difficult to simultaneously expand the distance measurement range and improve the distance measurement accuracy. Also, in the conventional technology disclosed in Patent Document 2, in order to expand the distance measurement range while maintaining the distance measurement accuracy, it is necessary to increase the number of signal accumulation means. Therefore, there is a problem that it is difficult to simultaneously expand the distance measurement range and improve the distance measurement accuracy.

[0010] In view of the above problems, an object of the present disclosure is to provide a distance measuring device and a distance measuring method that achieve high distance measurement accuracy and a wide distance measurement range. [Means for solving the problem]

[0011] In order to solve the above problems, a distance measuring device according to one embodiment of the present disclosure includes a pulse generating unit that generates an emission pulse that indicates the timing of light irradiation and an exposure pulse that indicates the timing of exposure to reflected light, a control unit that controls the pulse generating unit according to n (n is an integer of 4 or more) types of packet generation codes that indicate whether or not exposure should be made for each of a plurality of unit sections corresponding to a plurality of distance sections into which a distance measurement range is divided, or that indicate whether or not light should be emitted for each of the plurality of unit sections, a light source unit that irradiates light according to the emission pulse, a solid-state imaging unit that captures an image according to the exposure pulse, and a distance calculation unit that calculates a distance based on n types of signal values ​​for each of the unit sections obtained from the solid-state imaging unit.

[0012] Further, a distance measuring method in the present disclosure is a distance measuring method in a distance measuring device including a pulse generating unit that generates a light emission pulse indicating a timing of light irradiation and an exposure pulse indicating a timing of exposure to reflected light, a control unit that controls the pulse generating unit, a light source unit that irradiates light according to the light emission pulse, a solid-state imaging unit that captures an image according to the exposure pulse, and a distance calculation unit that calculates a distance based on a signal value obtained from the solid-state imaging unit, wherein the pulse generating unit indicates whether exposure should be made for each of a plurality of unit sections corresponding to a plurality of distance sections obtained by dividing a distance measuring range, or indicates whether light should be emitted for each of the plurality of unit sections (n ​​is a light emission pulse and an exposure pulse are generated in accordance with n types of packet generation codes (an integer of 4 or more), n types of signal values ​​for each unit interval obtained from the solid-state imaging unit are obtained, the n types of signal values ​​are binarized, the binarized n-bit binary number is determined as an exposure code, the n-bit binary number for each unit interval contained in the n types of packet generation codes is generated as an independent code, the independent code is compared with the exposure code, and a distance corresponding to the matching unit interval is calculated, and each of the n types of packet generation codes indicates multiple exposure pulses for one light emission pulse, or multiple light emission pulses for one exposure pulse. Effect of the Invention

[0013] According to the distance measuring device according to the present disclosure, high distance measuring accuracy and a wide distance measuring range can be achieved. [Brief description of the drawings]

[0014] [Figure 1] FIG. 1 is a diagram showing a schematic configuration of a TOF (Time Of Flight) type distance measuring device according to the first embodiment. [Diagram 2] FIG. 2 is a diagram showing a configuration of one pixel arranged in the solid-state imaging section according to the first to fourth embodiments. [Diagram 3] FIG. 3 is a configuration diagram of a solid-state imaging unit according to the first to fourth embodiments. [Figure 4]FIG. 4 is a diagram showing a control sequence of the light emitting unit and the solid-state imaging unit according to the first embodiment. [Diagram 5] FIG. 5 is a diagram showing packet 1 to 6 generation codes used to generate unit drive patterns and discharge drive pulses from packets 1 to 6 for controlling the solid-state imaging unit in the pulse generation unit according to the first embodiment. [Figure 6A] FIG. 6A is a diagram for explaining the operation timing of the packet-unit driving pattern according to the first embodiment. [Figure 6B] FIG. 6B is a diagram for explaining the operation timing of the packet 2 unit driving pattern according to the first embodiment. [Figure 6C] FIG. 6C is a diagram for explaining the operation timing of the packet 3 unit driving pattern according to the first embodiment. [Figure 6D] FIG. 6D is a diagram for explaining the operation timing of the packet 4 unit driving pattern according to the first embodiment. [Figure 6E] FIG. 6E is a diagram for explaining the operation timing of the packet 5 unit driving pattern according to the first embodiment. [Figure 6F] FIG. 6F is a diagram for explaining the operation timing of the packet 6-unit driving pattern according to the first embodiment. [Figure 7] FIG. 7 is a diagram for explaining the operation timing of reading out pixel values ​​from the solid-state imaging unit according to the first to fourth embodiments. [Figure 8] FIG. 8 is a diagram showing a configuration of the distance calculation unit according to the first embodiment. [Figure 9] FIG. 9 is a diagram showing data for storing generated codes of packets 1 to 6 in FIG. 5 according to the first embodiment in a memory (LUT) of a distance calculation unit. [Figure 10] FIG. 10 is a diagram showing the operation timing of the distance calculation unit according to the first embodiment. [Figure 11] FIG. 11 is a diagram showing calculation of the section number of one pixel on the near side when the independent code and the exposure code according to the first embodiment are equal. [Figure 12]FIG. 12 is a diagram showing calculation of the section number of one pixel on the far distance side when the independent code and the exposure code according to the first embodiment are equal. [Figure 13] FIG. 13 is a diagram showing calculation of the section number of one pixel on the near side when the adjacent code and the exposure code according to the first embodiment are the same. [Figure 14] FIG. 14 is a diagram showing calculation of the section number of one pixel on the far distance side when the adjacent code and the exposure code according to the first embodiment are the same. [Figure 15] FIG. 15 is a diagram showing a schematic configuration of a TOF (Time Of Flight) type distance measuring device according to the second embodiment. [Figure 16] FIG. 16 is a diagram showing a control sequence of a light emitting unit and a solid-state imaging unit according to the second embodiment. [Figure 17] FIG. 17 is a diagram showing packet 1 to 6 generation codes that take background light into consideration and are used to generate unit drive patterns and discharge drive pulses for packets 1 to 6 that control a solid-state imaging unit in a pulse generating unit according to embodiment 2. [Figure 18A] FIG. 18A is a diagram showing the operation timing of a packet-unit driving pattern according to the second embodiment. [Figure 18B] FIG. 18B is a diagram for explaining the operation timing of the packet 2 unit driving pattern according to the second embodiment. [Figure 18C] FIG. 18C is a diagram for explaining the operation timing of the packet 3 unit driving pattern according to the second embodiment. [Figure 18D] FIG. 18D is a diagram for explaining the operation timing of the packet 4 unit driving pattern according to the second embodiment. [Figure 18E] FIG. 18E is a diagram for explaining the operation timing of the packet 5 unit driving pattern according to the second embodiment. [Figure 18F] FIG. 18F is a diagram for explaining the operation timing of the packet 6 unit driving pattern according to the second embodiment. [Figure 19] FIG. 19 is a diagram showing a configuration of a distance calculation unit according to the second embodiment. [Figure 20]FIG. 20 is a diagram showing data for storing generated codes from packets 1 to 6 in FIG. 17 according to the second embodiment in the memory (LUT) of the distance calculation unit. [Figure 21] FIG. 21 is a diagram showing the operation timing of the distance calculation unit according to the second embodiment. [Figure 22] FIG. 22 is a diagram showing a control sequence of a light emitting unit and a solid-state imaging unit in which independent reference characters are overlapped according to the second embodiment. [Figure 23] Figure 23 is a diagram showing packets 1 to 6 generated codes with overlapping independent codes used to generate unit drive patterns and discharge drive pulses from packets 1 to 6 that control a solid-state imaging unit in a pulse generating unit of embodiment 2. [Figure 24A] FIG. 24A is a diagram showing operation timing of a packet-unit driving pattern according to the second embodiment. [Figure 24B] FIG. 24B is a diagram for explaining the operation timing of the packet 2 unit driving pattern according to the second embodiment. [Figure 24C] FIG. 24C is a diagram for explaining the operation timing of the packet 3 unit driving pattern according to the second embodiment. [Figure 24D] FIG. 24D is a diagram for explaining the operation timing of the packet 4 unit driving pattern according to the second embodiment. [Figure 24E] FIG. 24E is a diagram for explaining the operation timing of the packet 5 unit driving pattern according to the second embodiment. [Figure 24F] FIG. 24F is a diagram for explaining the operation timing of the packet 6 unit driving pattern according to the second embodiment. [Diagram 25] FIG. 25 is a diagram showing data for storing generated codes from packets 1 to 6 in FIG. 23 according to the second embodiment in a memory (LUT) of a distance calculation unit. [Figure 26] FIG. 26 is a diagram showing a schematic configuration of a TOF (Time Of Flight) type distance measuring device according to the third embodiment. [Figure 27] FIG. 27 is a diagram showing a configuration of a distance calculation unit according to the third embodiment. [Figure 28] FIG. 28 is a diagram showing data for storing generated codes from packets 1 to 6 in FIG. 17 according to the third embodiment in a memory (LUT) of a distance calculation unit. [Figure 29A] FIG. 29A is a diagram showing the processing contents of a data selection block of a distance calculation unit according to the third embodiment. [Figure 29B] FIG. 29B is a diagram showing the processing contents (continuation) of the data selection block of the distance calculation unit according to the third embodiment. [Diagram 30] FIG. 30 is a diagram showing the operation timing of the distance calculation unit according to the third embodiment. [Figure 31A] FIG. 31A is a diagram showing the processing contents of a data selection block of a distance calculation unit with improved S / N according to an embodiment. [Figure 31B] FIG. 31B is a diagram showing the processing contents (continuation) of the data selection block of the distance calculation unit with improved S / N according to the third embodiment. [Figure 31C] FIG. 31C is a diagram showing the processing contents (continuation) of the data selection block of the distance calculation unit with improved S / N according to the third embodiment. [Diagram 32] FIG. 32 is a diagram showing a schematic configuration of a TOF (Time Of Flight) type distance measuring device according to the fourth embodiment. [Diagram 33] FIG. 33 is a diagram showing a control sequence of a light emitting unit and a solid-state imaging unit according to the fourth embodiment. [Diagram 34] Figure 34 is a diagram showing packet 1 to 6 generation codes that take background light into consideration and are used to generate unit drive patterns and discharge drive pulses for packets 1 to 6 that control a solid-state imaging unit in a pulse generating unit of embodiment 4. [Figure 35A] FIG. 35A is a diagram showing the operation timing of the packet 1 unit driving pattern A according to the fourth embodiment. [Figure 35B] FIG. 35B is a diagram showing the operation timing of the packet 2 unit driving pattern A according to the fourth embodiment. [Figure 35C]FIG. 35C is a diagram showing the operation timing of the packet 3 unit driving pattern A according to the fourth embodiment. [Figure 35D] FIG. 35D is a diagram showing the operation timing of the packet 4 unit driving pattern A according to the fourth embodiment. [Figure 35E] FIG. 35E is a diagram showing the operation timing of the packet 5 unit driving pattern A according to the fourth embodiment. [Fig. 35F] FIG. 35F is a diagram showing the operation timing of the packet 6 unit driving pattern A according to the fourth embodiment. [Figure 36A] FIG. 36A is a diagram showing the operation timing of the packet-unit driving pattern B according to the fourth embodiment. [Figure 36B] FIG. 36B is a diagram showing the operation timing of the packet 2 unit driving pattern B according to the fourth embodiment. [Figure 36C] FIG. 36C is a diagram showing the operation timing of the packet 3 unit driving pattern B according to the fourth embodiment. [Figure 36D] FIG. 36D is a diagram showing the operation timing of the packet 4 unit driving pattern B according to the fourth embodiment. [Figure 36E] FIG. 36E is a diagram showing the operation timing of the packet 5 unit driving pattern B according to the fourth embodiment. [Figure 36F] FIG. 36F is a diagram showing the operation timing of the packet 6 unit driving pattern B according to the fourth embodiment. [Figure 37A] FIG. 37A is a diagram showing the operation timing of the packet-unit driving pattern C according to the fourth embodiment. [Figure 37B] FIG. 37B is a diagram showing the operation timing of the packet 2 unit driving pattern C according to the fourth embodiment. [Figure 37C] FIG. 37C is a diagram showing the operation timing of the packet 3 unit driving pattern C according to the fourth embodiment. [Figure 37D] FIG. 37D is a diagram showing the operation timing of the packet 4 unit driving pattern C according to the fourth embodiment. [Figure 37E] FIG. 37E is a diagram showing the operation timing of the packet 5 unit driving pattern C according to the fourth embodiment. [Figure 37F] FIG. 37F is a diagram showing the operation timing of the packet 6-unit driving pattern C according to the fourth embodiment. [Figure 38] FIG. 38 is a diagram showing the configuration of a distance calculation unit according to the fourth embodiment. In FIG. [Figure 39] FIG. 39 is a diagram showing data for storing generated codes from packets 1 to 6 in FIG. 34 according to the fourth embodiment in a memory (LUT) of a distance calculation unit. [Figure 40A] FIG. 40A is a diagram showing a data selection process of the distance calculation unit according to the fourth embodiment. [Figure 40B] FIG. 40B is a diagram showing the data selection process (continuation) of the distance calculation unit according to the fourth embodiment. [Figure 40C] FIG. 40C is a diagram showing the data selection process (continuation) of the distance calculation unit according to the fourth embodiment. [Figure 40D] FIG. 40D is a diagram showing the data selection process (continuation) of the distance calculation unit according to the fourth embodiment. [Diagram 41] FIG. 41 is a diagram showing the operation timing of the distance calculation unit according to the fourth embodiment. [Diagram 42] FIG. 42 is a diagram showing the configuration of one pixel arranged in a solid-state imaging section according to a modified example. [Diagram 43] FIG. 43 is a configuration diagram of a solid-state imaging section according to a modified example. [Diagram 44] FIG. 44 is a diagram showing a control sequence of a light emitting section and a solid-state imaging section according to a modified example. [Figure 45A] FIG. 45A is a diagram showing an example of allocation of a packet generation code, an independent code, and a second adjacent code according to the fifth embodiment. [Figure 45B] FIG. 45B is a diagram showing an example of allocation of packet generation codes, independent codes, and first adjacent codes, for comparison with FIG. 45A. [Diagram 46]FIG. 46 is a diagram for explaining an operation using the AND adjacent code of a packet according to the fifth embodiment. [Figure 47] FIG. 47 is a diagram illustrating the first threshold value and the second threshold value according to the fifth embodiment. [Figure 48] FIG. 48 is a diagram showing an example of allocation of a packet generation code, an independent code, a first adjacent code, and a second adjacent code according to the sixth embodiment. [Figure 49] FIG. 49 is a diagram for explaining an operation of using both OR adjacent codes and AND adjacent codes of a packet according to the sixth embodiment. [Figure 50A] FIG. 50A is an explanatory diagram of an example in which a binarization error occurs due to the first threshold value according to the sixth embodiment. [Figure 50B] FIG. 50B is an explanatory diagram of an example in which no binarization error occurs due to the second threshold value according to the sixth embodiment. [Figure 51A] FIG. 51A is an explanatory diagram of binarization using a first threshold value according to the sixth embodiment. [Figure 51B] FIG. 51B is an explanatory diagram of binarization using the second threshold value according to the sixth embodiment. [Figure 52] FIG. 52 is a block diagram showing a configuration example of a distance measuring device and a peripheral object in the seventh, ninth and tenth embodiments. [Diagram 53] FIG. 53 is a block diagram showing a configuration example of a light source unit in the seventh, ninth and tenth embodiments. [Figure 54] FIG. 54 is a block diagram showing a configuration example of a solid-state imaging unit in the seventh to tenth embodiments. In FIG. [Figure 55] FIG. 55 is a block diagram including a configuration example of a pixel according to the seventh to tenth embodiments. [Figure 56] FIG. 56 is a time chart showing an example of the light detection operation of the pixel in each of the seventh to tenth embodiments. [Figure 57] FIG. 57 shows an example of data held in the distance image generating unit, the pulse generating unit, and the control unit in the seventh to tenth embodiments. [Figure 58]FIG. 58 is a time chart showing an example of an operation sequence in the seventh to tenth embodiments. [Figure 59] FIG. 59 is a diagram showing (a) the emission table in the seventh to tenth embodiments, (b) the emission codes in the seventh to tenth embodiments, and (c) specific examples of the independent code and first adjacent code in the seventh to tenth embodiments. [Figure 60] FIG. 60 is a diagram showing an example of the first to sixth light emission patterns in the seventh to tenth embodiments. [Figure 61] FIG. 61 is a diagram showing another example of driving the first light emission pattern in the seventh to tenth embodiments. [Figure 62] FIG. 62 is a flowchart showing an example of processing for generating a distance image in the seventh to ninth embodiments. [Figure 63] FIG. 63 is a flow chart showing an example of the binarization process in step 1101 in FIG. [Figure 64] FIG. 64 shows (a) another example of the independent code and the first adjacent code in the seventh embodiment, and (b) yet another example. [Figure 65] FIG. 65 is a block diagram illustrating a configuration example of a distance measuring device and a peripheral object according to the eighth embodiment. In FIG. [Figure 66] FIG. 66 is a block diagram showing a configuration example of a light source section in the eighth embodiment. As shown in FIG. [Figure 67] FIG. 67 is a diagram showing an example of a light emission table according to the eighth embodiment. [Figure 68] FIG. 68 is a diagram showing an example of the first to sixth light emission patterns in the eighth embodiment. [Figure 69] FIG. 69 is a diagram showing an example of repeated driving of the first light emission pattern in the eighth embodiment. [Figure 70] FIG. 70 is a diagram showing an example of the emission table in the ninth embodiment. [Figure 71] FIG. 71 is a timing chart including an example of a pause period in the drive timing of the light-emitting element according to the ninth embodiment. [Figure 72]FIG. 72 is a diagram showing an example of the first to sixth light emission pattern groups in the ninth embodiment. [Figure 73] FIG. 73 is a diagram showing an example of driving a plurality of light emission patterns separated from the first light emission pattern group in the ninth embodiment. [Figure 74] FIG. 74 is a flowchart showing an example of a distance image generation process in the tenth embodiment. [Figure 75] FIG. 75 is a flowchart showing an example of the distance calculation procedure in FIG. [Figure 76] FIG. 76 is a diagram illustrating an example of allocation of a packet generation code and a second adjacent code according to the eleventh embodiment. [Figure 77] FIG. 77 is a diagram showing an example of allocation of a packet generation code, a first adjacent code, and a second adjacent code according to the twelfth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Hereinafter, distance measuring imaging devices according to embodiments of the present disclosure will be described with reference to the drawings. Note that each of the following embodiments shows a specific example of the present disclosure, and the numerical values, shapes, materials, components, arrangement positions of the components, connection forms, and the like are merely examples and do not limit the present disclosure.

[0016] (Outline of the embodiment) The present disclosure provides a distance measuring device and a distance measuring method that realize high distance measuring accuracy and a wide distance measuring range, in contrast to the distance measuring device described in the "Background Art" section, which has a problem that it is difficult to simultaneously expand the distance measuring range and improve the distance measuring accuracy.

[0017] To this end, a distance measuring device according to one embodiment of the present disclosure includes a pulse generating unit that generates an emission pulse that indicates the timing of light irradiation and an exposure pulse that indicates the timing of exposure to reflected light, a control unit that controls the pulse generating unit according to n (n is an integer of 4 or more) types of packet generation codes that indicate whether or not exposure should be made for each of a plurality of unit sections corresponding to a plurality of distance sections into which the distance measurement range is divided, or that indicate whether or not light should be emitted for each of the plurality of unit sections, a light source unit that irradiates light according to the emission pulse, a solid-state imaging unit that captures an image according to the exposure pulse, and a distance calculation unit that calculates the distance based on the n types of signal values ​​for each of the unit sections obtained from the solid-state imaging unit.

[0018] This makes it possible to achieve high distance measurement accuracy and a wide distance measurement range.

[0019] Further, a distance measuring method in the present disclosure is a distance measuring method in a distance measuring device including a pulse generating unit that generates a light emission pulse indicating a timing of light irradiation and an exposure pulse indicating a timing of exposure to reflected light, a control unit that controls the pulse generating unit, a light source unit that irradiates light according to the light emission pulse, a solid-state imaging unit that captures an image according to the exposure pulse, and a distance calculation unit that calculates a distance based on a signal value obtained from the solid-state imaging unit, wherein the pulse generating unit indicates whether exposure should be made for each of a plurality of unit sections corresponding to a plurality of distance sections obtained by dividing a distance measuring range, or indicates whether light should be emitted for each of the plurality of unit sections (n ​​is a light emission pulse and an exposure pulse are generated in accordance with n types of packet generation codes (an integer of 4 or more), n types of signal values ​​for each unit interval obtained from the solid-state imaging unit are obtained, the n types of signal values ​​are binarized, the binarized n-bit binary number is determined as an exposure code, the n-bit binary number for each unit interval contained in the n types of packet generation codes is generated as an independent code, the independent code is compared with the exposure code, and a distance corresponding to the matching unit interval is calculated, and each of the n types of packet generation codes indicates multiple exposure pulses for one light emission pulse, or multiple light emission pulses for one exposure pulse.

[0020] This makes it possible to achieve high distance measurement accuracy and a wide distance measurement range.

[0021] In the following, in the first to sixth embodiments, a distance measuring device is described that assumes that the n types of packet generation codes indicate whether or not exposure should be performed for each unit section. In the seventh to eleventh embodiments, a distance measuring device is described that assumes that the n types of packet generation codes indicate whether or not light should be emitted for each unit section.

[0022] (Embodiment 1) FIG. 1 is a diagram illustrating a schematic configuration of a TOF (Time Of Flight) type distance measuring device and surrounding objects according to the first embodiment.

[0023] In the figure, an imaging space 10100 is a space including a distance measuring device and an object 10101 to be measured. The object 10101 is not limited to a person and may be any object. The distance measuring device in the figure includes a light source unit 10102, an optical lens 10103, an optical filter 10104, a solid-state imaging unit 10105, a control unit 10106, a pulse generating unit 10107, and a distance calculation unit 10108.

[0024] The light source unit 10102 irradiates pulsed light in accordance with a light emission pulse 10120 from a pulse generating unit 10107. The light emission pulse 10120 is a signal that instructs the light source unit 10102 to emit pulsed light. The light source unit 10102 emits, for example, infrared light. The light source unit 10102 may also be an LED or a laser element.

[0025] The optical lens 10103 and the optical filter 10104 form an optical system that guides reflected light from the object 10101 to the solid-state imaging unit 10105. The optical filter 10104 is, for example, an infrared transmission filter.

[0026] The control unit 10106 controls the pulse generation unit 10107 according to n (n is an integer of 4 or more) types of packet generation codes indicating whether or not exposure should be performed for each of a plurality of unit sections corresponding to a plurality of distance sections obtained by dividing the distance measurement range. Here, a packet refers to a signal charge generated and accumulated by the solid-state imaging unit 10105 by multiple exposures according to the packet generation code. n types of packets (signal charges) are generated from the n types of packet generation codes. In the following, n=6 is assumed as a specific example.

[0027] The pulse generating unit 10107 generates a light emitting pulse 10120 that instructs the light source unit 10102 of the light irradiation timing, and an exposure pulse that instructs the solid-state imaging unit 10105 of the exposure timing. The pulse generating unit 10107 generates six signals, a packet 1 exposure pulse 10121 to a packet 6 exposure pulse 10126, as n types of exposure pulses.

[0028] The solid-state imaging unit 10105 captures an image in accordance with the light emission pulse 10120 and n types of exposure pulses. The image capture here refers to obtaining a distance image indicating the distance for each pixel by receiving reflected light mainly for distance measurement.

[0029] The distance calculation unit 10108 calculates the distance based on n types of signal values ​​for each unit section obtained from the solid-state imaging unit 10105.

[0030] 1, a pulsed (pulse width 10 ns) irradiation light 10110 with a wavelength of 940 nm is irradiated from a light source unit 10102 to an object 10101 in an imaging space 10100, and reflected light 10111 reflected from the object 10101 is received by a solid-state imaging unit 10105 via an optical lens 10103 and an optical filter 10104 that transmits a near-infrared wavelength region around 940 nm, and an image is formed. The light emission timing of the light source unit 10102 and the exposure timing of the solid-state imaging unit 10105 are controlled by a light emission pulse 10120, exposure pulses 10121 to 10126 of packets 1 to 6, and an ejection drive pulse 10127 of a pulse generating unit 10107 controlled by a control unit 10106 via a control bus. The light source unit 10102 emits the irradiation light 10110 when the light emission pulse 10120 is at a high level, and does not emit the irradiation light 10110 when the light emission pulse 10120 is at a low level. The solid-state imaging unit 10105 outputs, for each pixel, a solid-state imaging unit output signal 10130 which is six types of signal values ​​corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6 to the distance calculation unit 10108. The distance calculation unit 10108 uses the solid-state imaging unit output signal 10130 and control information from the control unit 10106 to output, for each pixel, a section number signal 10131 corresponding to the distance to the object 10101.

[0031] The distance measuring device is made up of a light source unit 10102, an optical lens 10103, an optical filter 10104, a solid-state imaging unit 10105, a control unit 10106, a pulse generating unit 10107, and a distance calculation unit 10108. In terms of configuration, the light source unit 10102 has a drive circuit and a light emitting element, and emits light when a voltage is applied from the drive circuit. A laser diode or other light emitting element may be used as the light emitting element. The control unit 10106, the pulse generating unit 10107, and the distance calculation unit 10108 are realized by combining, for example, a CPU (Central Processing Unit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), an AFE (Analog Front End), etc.

[0032] FIG. 2 is a configuration diagram of a pixel 10200 of the solid-state imaging unit 10105 according to the first to fourth embodiments.

[0033] As shown in the figure, the pixel 10200 includes a photoelectric conversion pixel 10201, two drains 10210, six FDAs (Floating Diffusion Amplifiers) 10211 to 10216, six source follower circuits 10221 to 10226, and six output selection transistors 10231 to 10236. The pixel 10200 also has gate electrodes between the photoelectric conversion pixel 10201 and each of the drain 10210 and the FDAs 10211 to 10216.

[0034] The photoelectric conversion pixel 10201 is composed of a PD (Photodiode) that receives reflected light 10111 and performs photoelectric conversion.

[0035] The drain 10210 discharges the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 .

[0036] Each of the FDAs 10211 to 10216 accumulates the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 .

[0037] The source follower circuit 10221 outputs a voltage according to the amount of signal charge in an FDA (signal charge storage unit) 10211. The same is true for the source follower circuits 10222 to 10226.

[0038] When the output enable signal is at a high level, the output selection transistor 10231 outputs the output voltage of the source follower circuit 10221 as a pixel output signal 10241. The same applies to the output selection transistors 10232 to 10236.

[0039] Next, the operation of the pixel 10200 will be described. When the packet 1 exposure pulse 10121 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10211. When the packet 2 exposure pulse 10122 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10212. When the packet 3 exposure pulse 10123 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10213. When the packet 4 exposure pulse 10124 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10214. When the packet 5 exposure pulse 10125 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10215. When the packet 6 exposure pulse 10126 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDA 10216 .

[0040] When the discharge drive pulse 10127 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is discharged to the drain 10210. Therefore, by setting the discharge drive pulse 10127 to a high level when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is discharged to the drain 10210 when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, and when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, the remaining five are set to a low level. By setting the discharge drive pulse 10127 to a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDAs 10211 to 10216 corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6 only when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, thereby performing six types of imaging per pixel corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6. As signal charge accumulates in FDA10211 to 10216, a voltage corresponding to the amount of signal charge is generated, and a packet 1 voltage value corresponding to the amount of signal charge of FDA10211, a packet 2 voltage value corresponding to the amount of signal charge of FDA10212, a packet 3 voltage value corresponding to the amount of signal charge of FDA10213, a packet 4 voltage value corresponding to the amount of signal charge of FDA10214, a packet 5 voltage value corresponding to the amount of signal charge of FDA10215, and a packet 6 voltage value corresponding to the amount of signal charge of FDA10216 are generated.By setting the output enable signal 10240 to a high level, the packet 1 voltage value passes through the source follower circuit 10221 and the output selection transistor 10231 to the pixel output signal 10241, the packet 2 voltage value passes through the source follower circuit 10222 and the output selection transistor 10232 to the pixel output signal 10242, the packet 3 voltage value passes through the source follower circuit 10223 and the output selection transistor 10233 to the pixel output signal 10243, the packet 4 voltage value passes through the source follower circuit 10224 and the output selection transistor 10234 to the pixel output signal 10244, the packet 5 voltage value passes through the source follower circuit 10225 and the output selection transistor 10235 to the pixel output signal 10245, and the packet 6 voltage value passes through the source follower circuit 10226 and the output selection transistor 10236 to the pixel output signal 10246, all at the same time.

[0041] Fig. 3 is a configuration diagram of a solid-state imaging unit 10105 according to the first to fourth embodiments. The solid-state imaging unit 10105 in the figure includes a plurality of pixels 10200 arranged two-dimensionally, a row selection unit, a column AD 10370, and a shift register 10371. As shown in Fig. 3, the solid-state imaging unit 10105 arranges the pixels 10200 two-dimensionally, X in the horizontal direction and Y in the vertical direction, where X=320 and Y=240 in the first to fourth embodiments. Note that the number of pixels is merely an example and is not limited to this. The output enable signal 10240 of the pixels 10200, consisting of pixel address 11, pixel address 12, and pixel address 1X, which are arranged side by side in the horizontal direction in the first row, is connected to a row selection signal 10300; the output enable signal 10240 of the pixels 10200, consisting of pixel address 21, pixel address 22, and pixel address 2X, which are arranged side by side in the horizontal direction in the second row, is connected to a row selection signal 10301; the output enable signal 10240 of the pixels 10200, consisting of pixel address 31, pixel address 32, and pixel address 3X, which are arranged side by side in the horizontal direction in the third row, is connected to a row selection signal 10302; and the output enable signal 10240 of the pixels 10200, consisting of pixel address Y1, pixel address Y2, and pixel address YX, which are arranged side by side in the horizontal direction in the Yth row, is connected to a row selection signal 10303. In addition, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 11, pixel address 21, pixel address 31, and pixel address Y1, which are arranged vertically in the first column, are connected to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 12, pixel address 22, pixel address 32, and pixel address Y2, which are arranged vertically in the second column, are connected to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of pixels 10200 including pixel address 1X, pixel address 2X, pixel address 3X, and pixel address YX, which are arranged vertically in the Xth column, are connected to vertical pixel signals 10331 to 10336.Vertical pixel signals 10311 to 10316, 10321 to 10326, and 10331 to 10336 are connected to a column AD 10370, and the output signal of the column AD 10370 is connected to a shift register 10371, so that the solid-state imaging unit output signal 10130 is output from the shift register 10371.

[0042] Next, we will explain the readout operation of the solid-state imaging unit 10105. Note that this readout operation is the same as that of a general CMOS image sensor with six times the number of horizontal pixels. By setting row selection signal 10300 to a high level, row selection signal 10301 to a low level, row selection signal 10302 to a low level, and row selection signal 10303 to a low level, pixel output signals 10241 to 10246 from packets 1 to 6 of pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 from packets 1 to 6 of pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 from packets 1 to 6 of pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336, and input to column AD 10370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a high level, row selection signal 10302 to a low level, and row selection signal 10303 to a low level, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 21 are output to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 22 are output to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 2X are output to vertical pixel signals 10331 to 10336, and input to column AD370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a high level, and row selection signal 10303 to a low level, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 31 are output to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 32 are output to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address 3X are output to vertical pixel signals 10331 to 10336, and input to column AD 10370.By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a low level, and row selection signal 10303 to a high level, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address Y1 are output to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address Y2 are output to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of packets 1 to 6 of pixel 10200 at pixel address YX are output to vertical pixel signals 10331 to 10336, and input to column AD 10370. The column AD 10370 AD converts the input pixel output signals 10241 to 10246 of packets 1 to 6 for X pixels into 12-bit signal values, generates a packet 1 signal value obtained by AD converting the packet 1 voltage value, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value, for X pixels, and outputs them to the shift register 10371. The shift register 10371 outputs the input signal values ​​of packets 1 to 6 for X pixels to the solid-state imaging unit output signal 10130 while shifting them one by one.

[0043] Fig. 4 shows a control sequence of the light source unit 10102 and the solid-state imaging unit 10105 according to the embodiment 1. In the control sequence shown in Fig. 4, the control unit 10106 instructs the pulse generating unit 10107 through the control bus the number of times the frame unit drive pattern is repeated (12 times) and the number of times the unit drive patterns of packets 1 to 6 are repeated (300 times) as shown in Fig. 1, and the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 are generated in the pulse generating unit 10107 according to the number of times the frame unit drive pattern is repeated and the number of times the unit drive patterns of packets 1 to 6 are repeated. Note that Figure 4 explains the generation of unit drive patterns 10431 to 10436 of packets 1 to 6, and Figures 5 and 6A to 6F explain the generation method of the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 for each unit drive pattern 10431 to 10436 of packets 1 to 6.

[0044] As shown in FIG. 4, one frame is composed of a frame drive pattern 10400. The frame drive pattern 10400 is composed of 12 repetitions of a frame unit drive pattern 10410 and an imaging data readout 10411 that outputs the signal charges accumulated in the signal charge accumulation units of all the pixels 10200 from the solid-state imaging unit 10105. The frame unit drive pattern 10410 is composed of a packet 1 drive pattern 10421, a packet 2 drive pattern 10422, a packet 3 drive pattern 10423, a packet 4 drive pattern 10424, a packet 5 drive pattern 10425, and a packet 6 drive pattern 10426. The packet 1 drive pattern 10421 is composed of 300 repetitions of a packet 1 unit drive pattern 10431. The packet 2 drive pattern 10422 is composed of 300 repetitions of a packet 2 unit drive pattern 10432. The packet 3 drive pattern 10423 is composed of 300 repetitions of the packet 3 unit drive pattern 10433. The packet 4 drive pattern 10424 is composed of 300 repetitions of the packet 4 unit drive pattern 10434. The packet 5 drive pattern 10425 is composed of 300 repetitions of the packet 5 unit drive pattern 10435. The packet 6 drive pattern 10426 is composed of 300 repetitions of the packet 6 unit drive pattern 10436. The unit drive patterns 10431 to 10436 of packets 1 to 6 drive the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127. Details of the unit drive patterns 10431 to 10436 of packets 1 to 6 will be described with reference to FIG. 5 and FIG. 6A to FIG. 6F. Moreover, the control sequence of the light source unit 10102 and the solid-state imaging unit 10105 shown in FIG. 4 is just an example, and the present invention is not limited to this.

[0045] The unit drive patterns 10431 to 10436 of packets 1 to 6 are repeated 300 times in the drive patterns 10421 to 10426 of packets 1 to 6, respectively, and the drive patterns 10421 to 10426 of packets 1 to 6 are repeated 12 times in the frame unit drive patterns. That is, the unit drive patterns 10431 to 10436 of packets 1 to 6 are repeated 300×12=3600 times, respectively. By repeating 3600 times, it is possible to ensure a sufficient amount of light even if the amount of light of the irradiation light 10110 per time is small. On the other hand, by dividing the frame drive pattern 10400 into 12 frame unit drive patterns 10410, the time required for each frame unit drive pattern 10410 is shortened, and the apparent imaging timing of packets 1 to 6 can be synchronized. Furthermore, by repeating the frame-based drive pattern 10410 12 times, the blur caused by the movement of the object 10101 occurs evenly in packets 1 to 6, making it possible to suppress side effects such as data corruption during distance calculations caused by the movement of the object 10101.

[0046] 5 is a diagram showing unit drive patterns 10431 to 10436 of packets 1 to 6 for controlling the solid-state imaging unit 10105 according to the first embodiment, and generated codes 10501 to 10506 of packets 1 to 6 given to the control unit 10106 to generate an ejection drive pulse 10127. As shown in FIG. 5, the generated codes 10501 to 10506 of packets 1 to 6 are divided into 32 sections, from 0 to 31, with section numbers 10500 being assigned values ​​of "0" or "1", and are information for controlling the driving of exposure pulses 10121 to 10126 of packets 1 to 6. Here, the section numbers are consecutive numbers given to a plurality of distance sections (also called unit sections) obtained by dividing the distance measurement range. Furthermore, packet 1 generation code 10501 to packet 6 generation code 10506 may be stored in advance in an internal memory of control unit 10106, or may be dynamically acquired from the outside and stored in the internal memory.

[0047] The section number 10500 and generated codes 10501 to 10506 of packets 1 to 6 are sent to the pulse generating unit 10107 via a control bus, and the pulse generating unit 10107 generates unit drive patterns 10431 to 10436 of packets 1 to 6 from the section number 10500 and generated codes 10501 to 10506 of packets 1 to 6. Note that the generated codes of packets 1 to 6 shown in Fig. 5 are just an example, and the generated codes of packets 1 to 6 are not limited to this.

[0048] 6A to 6F are timing charts showing the packet 1 unit drive pattern 10431 to the packet 6 unit drive pattern 10436 according to the first embodiment. As shown in FIG. 6A to FIG. 6F, the pulse generating unit 10107 switches the section number 10600 for each unit section (10 ns) between 80 sections from 0 to 79, and uses the generation codes 10501 to 10506 of packets 1 to 6 having the same section number as the section number 10600 and the section number 10500, and the section number 10600 to control the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, thereby generating the unit drive patterns 10431 to 10436 of packets 1 to 6. The reason why the section number 10600 of the pulse generating unit 10107 is set to a value (79) that is more than twice the maximum value (31) of the section number 10500 is to prevent the irradiation light 10110 from receiving the reflected light 10111 from the object 10101 located outside the distance measurement range (a section number greater than the maximum value of the section number 10500). For this reason, in a section number that does not exist in the section number 10500, a pulse is generated in which the light emission pulse 10120 is at a low level, the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, and the discharge drive pulse 10127 is at a high level. In this way, by controlling the solid-state imaging unit 10105, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 10 ns unit section x 80 number of section numbers x 300 repetitions of the packet unit drive pattern x 6 number of packets x 12 repetitions of the frame unit drive pattern = 17.28 ms. It should be noted that this unit interval specifies that the pulse width of the irradiated light 10110 and the exposure pulses 10121 to 10126 of packets 1 to 6 are the same, and does not limit the pulse width to 10 ns.

[0049] The following describes a method of controlling the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, which are in the section numbers 0 to 31 in which the section number 10500 exists.

[0050] 6A is a timing chart showing a packet 1 unit drive pattern 10431. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 1 exposure pulse 10121 is generated as a high level when the packet 1 generation code 10501 corresponding to the section number 10500 is "1", and as a low level when the packet 1 generation code 10501 corresponding to the section number 10500 is "0". The packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is at low level when the packet 1 generation code 10501 corresponding to the section number 10500 is "1", and is at high level when the packet 1 generation code 10501 corresponding to the section number 10500 is "0", so that a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0051] 6B is a timing chart showing a packet 2 unit drive pattern 10432. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 2 exposure pulse 10122 is generated as a high level when the packet 2 generation code 10502 corresponding to the section number 10500 is "1", and as a low level when the packet 2 generation code 10502 corresponding to the section number 10500 is "0". The packet 1 exposure pulse 10121, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is at low level when the packet 2 generation code 10502 corresponding to the section number 10500 is "1", and is at high level when the packet 2 generation code 10502 corresponding to the section number 10500 is "0", so that a pulse with the inverted logic of the packet 2 exposure pulse 10122 is generated.

[0052] 6C is a timing chart showing a packet 3 unit drive pattern 10433. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 3 exposure pulse 10123 is generated as a high level when the packet 3 generation code 10503 corresponding to the section number 10500 is "1", and as a low level when the packet 3 generation code 10503 corresponding to the section number 10500 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is at low level when the packet 3 generation code 10503 corresponding to the section number 10500 is "1", and at high level when the packet 3 generation code 10503 corresponding to the section number 10500 is "0", so that a pulse with the inverted logic of the packet 3 exposure pulse 10123 is generated.

[0053] 6D is a timing chart showing a packet 4 unit drive pattern 10434. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 4 exposure pulse 10124 is generated as a high level when the packet 4 generation code 10504 corresponding to the section number 10500 is "1", and as a low level when the packet 4 generation code 10504 corresponding to the section number 10500 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is at low level when the packet 4 generation code 10504 corresponding to the section number 10500 is "1", and is at high level when the packet 4 generation code 10504 corresponding to the section number 10500 is "0", so that a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0054] 6E is a timing chart showing the packet 5 unit drive pattern 10435. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 5 exposure pulse 10125 is generated as a high level when the packet 5 generation code 10505 corresponding to the section number 10500 is "1", and as a low level when the packet 5 generation code 10505 corresponding to the section number 10500 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is at low level when the packet 5 generation code 10505 corresponding to the section number 10500 is "1", and at high level when the packet 5 generation code 10505 corresponding to the section number 10500 is "0", so that a pulse with the inverted logic of the packet 5 exposure pulse 10125 is generated.

[0055] 6F is a timing chart showing a packet 6 unit drive pattern 10436. The light emission pulse 10120 is generated as a high level when the section number 10500 is 0, and as a low level when the other section numbers 10500 are 1 to 31. The packet 6 exposure pulse 10126 is generated as a high level when the packet 6 generation code 10506 corresponding to the section number 10500 is "1", and as a low level when the packet 6 generation code 10506 corresponding to the section number 10500 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 5 exposure pulse 10125 are generated as a low level in all sections where the section number 10500 is 0 to 31. In addition, the discharge drive pulse 10127 is generated as a pulse whose logic is inverted from that of the packet 6 exposure pulse 10126, that is, a low level when the packet 6 generation code 10506 corresponding to the section number 10500 is "1", and a high level when the packet 6 generation code 10506 corresponding to the section number 10500 is "0".

[0056] FIG. 7 is a timing diagram of the imaging data readout 10411 of the solid-state imaging unit 10105 according to the first to fourth embodiments.

[0057] Regarding the notations in the figure, for example, the notations "P1(11)v" to "P6(11)v" indicate the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 11 in the following explanation, and correspond to pixel output signals 10241 to 10246 and vertical pixel signals 10311 to 10316. Similarly, the notation P6(YX)v indicates the voltage value of packet 6 in the pixel at pixel address YX, and corresponds to pixel output signal 10246 and vertical pixel signal 10336.

[0058] Also, for example, the notations "P1(11)Sig" to "P6(11)Sig" indicate the signal values ​​of packets 1 to 6 of the pixel 10200 at pixel address 11 in the following description. Specifically, P1(11)Sig in the figure means the packet 1 signal value of the pixel 10200 at pixel address 11, i.e., the digital value obtained by AD conversion from the packet 1 voltage value by the column AD 10370, and is output as the solid-state imaging unit output signal 10130 to the distance calculation unit 10108 via the shift register 10371. Similarly, P6(YX)Sig means the packet 6 signal value of the pixel 10200 at pixel address YX, i.e., the digital value obtained by AD conversion from the packet 6 voltage value by the column AD 10370, and is output as the solid-state imaging unit output signal 10130 to the distance calculation unit 10108 via the shift register 10371.

[0059] By controlling row selection signals 10300 to 10303, column AD 10370, and shift register 10371, signal values ​​of packets 1 to 6 of all pixels 10200 shown in Fig. 3 are output to solid-state imaging unit output signal 10130. Note that the operation of this imaging data readout 10411 is the same as that of a normal CMOS image sensor with six times the number of horizontal pixels.

[0060] As shown in Figure 7, at timing 10700, row selection signal 10300 is set to a high level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a low level, and row selection signal 10303 is set to a low level, so that the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336. The vertical pixel signals 10311 to 10316, the vertical pixel signals 10321 to 10326, and the vertical pixel signals 10331 to 10336 are connected to a column AD 10370, and are AD converted into 12-bit signal values, and a packet 1 signal value obtained by AD converting the packet 1 voltage value of pixel address 11, pixel address 12, and pixel address 1X, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value are generated. At a timing 10701 when the AD conversion is completed, the AD converted signal values ​​of packets 1 to 6 of pixel address 11, pixel address 12, and pixel address 1X are output to a shift register 10371.The shift register 10371 shifts the input signal values ​​and outputs them from the solid-state imaging unit output signal 10130 in the following order: packet 1 signal value of pixel address 11, packet 2 signal value of pixel address 11, packet 3 signal value of pixel address 11, packet 4 signal value of pixel address 11, packet 5 signal value of pixel address 11, packet 6 signal value of pixel address 11, packet 1 signal value of pixel address 12, packet 2 signal value of pixel address 12, packet 3 signal value of pixel address 12, packet 4 signal value of pixel address 12, packet 5 signal value of pixel address 12, packet 6 signal value of pixel address 12, packet 1 signal value of pixel address 1X, packet 2 signal value of pixel address 1X, packet 3 signal value of pixel address 1X, packet 4 signal value of pixel address 1X, packet 5 signal value of pixel address 1X, and packet 6 signal value of pixel address 1X. Also, at timing 10701, row selection signal 10300 is set to low level, row selection signal 10301 is set to high level, row selection signal 10302 is set to low level, and row selection signal 10303 is set to low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are input to column AD 10370, and AD conversion is performed to a 12-bit signal value. At timing 10702 when the AD conversion of the column AD 10370 and the shift operation of the shift register 10371, which started at timing 10701, are completed, the result of the AD conversion of the column AD 10370, which started at timing 10701, is output to the shift register 10371, and as before, the input signal value is shifted and output from the solid-state imaging unit output signal 10130. Also, at timing 10702, row selection signal 10300 is set to a low level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a high level, and row selection signal 10303 is set to a low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are input to column AD 10370, and AD conversion to a 12-bit signal value is performed in the same manner as before.By performing this operation for all rows, the signal values ​​of all pixels 10200 are output from the solid-state imaging unit output signal 10130. Note that, although there are six FDAs 10211 to 10216 shown in FIG. 2 and six generation codes 10501 to 10506 for packets 1 to 6 shown in FIG. 5, the number is not limited to six. If the number of signal charge storage units is greater than the number of packet generation codes, the signal values ​​of packets 1 to 6 can be obtained in one frame, so that it is possible to calculate the section number corresponding to the distance with one frame of data. If the number of signal charge storage units is greater than the number of packet generation codes, it is possible to calculate the section number corresponding to the distance by obtaining the signal values ​​of packets 1 to 6 using data of multiple frames. Note that the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is calculated by dividing the number of pixels (horizontal pixel number X320+horizontal blanking period 80)×(vertical pixel number Y240+vertical blanking period 23) taking into account the blanking period by the output clock frequency of the solid-state imaging unit output signal 10130. Here, if the output clock frequency is 39.319 MHz, the time required for imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms.

[0061] FIG. 8 is a diagram showing the configuration of the distance calculation unit 10108 according to the first embodiment.

[0062] In the figure, the distance calculation unit 10108 includes a threshold register 10800 , a comparator 10802 , a synchronization unit 10803 , and a memory (LUT) 10801 .

[0063] The threshold register 10800 holds, as a threshold, a boundary value between a black level, which is a signal level when no reflected light is present, and a signal level when reflected light is present.

[0064] The comparator 10802 compares the solid-state imaging unit output signal 10130 with a threshold value and binarizes the solid-state imaging unit output signal 10130, that is, outputs a binary signal indicating the presence or absence of reflected light.

[0065] The synchronization unit 10803 synchronizes packets 1 to 6 of the same pixel address. That is, binarized packets 1 to 6 of the same pixel address are output in parallel. The 6-bit data corresponding to binarized packets 1 to 6 of the same pixel address is called an exposure code.

[0066] A memory (LUT) 10801 is a lookup table (LUT) for converting an exposure code into a section number. For example, the LUT inputs an exposure code as an address and outputs a section number as read data.

[0067] Next, the operation of the distance calculation unit 10108 will be described. The distance calculation unit 10108 compares the solid-state imaging unit output signal 10130 with the value of the threshold register 10800 using a comparator 10802, and outputs a packet code 10810 which is "0" when the solid-state imaging unit output signal 10130≦threshold register 10800, and "1" when the solid-state imaging unit output signal 10130>threshold register 10800 value. The packet codes 10810 corresponding to the signal values ​​of packets 1 to 6 for each pixel address are synchronized by a synchronization unit 10803, and the six synchronized packet codes 10810 are regarded as a 6-bit binary number to generate an exposure code 10820. Here, by setting a value obtained by adding a black level and a value considering an offset for suppressing variations due to dark currents of the photoelectric conversion pixel 10201 and the FDAs 10211 to 10216, etc., to the threshold register 10800, it is possible to make the result of the comparator 10802 of the signal values ​​of packets 1 to 6 including the reflected light 10111 "1" and the result of the comparator 10802 of the signal values ​​of packets 1 to 6 not including the reflected light 10111 "0", and the exposure code 10820 indicates a packet including the reflected light 10111. The exposure code 10820 is used as a read address to access the memory (LUT) 10801, and the read data of the memory (LUT) 10801 is output as a section number signal 10131. The initial value of the memory (LUT) 10801 is set by the control unit 10106 via a control bus, and a method of generating the initial value to be set in the memory (LUT) 10801 will be described with reference to FIG. 9.

[0068] Fig. 9 is a diagram showing a method for generating initial values ​​of memory (LUT) 10801 according to embodiment 1. The upper part of the figure shows packet 1 generated code 10501 to packet 6 generated code 10506, independent code 10900, and adjacent code 10901 shown in Fig. 5. The lower part of the figure shows memory 10801, that is, the LUT.

[0069] The independent code 10900 in the upper part of the figure refers to n-bit data for each unit section contained in n types (six types here) of packet generation codes. There are 31 independent codes in the figure. In principle, each independent code is different from any other independent code. The independent code 10900 is generated by the control unit 10106, for example, as an n-bit binary number for each unit section contained in the n types of packet generation codes. When the exposure code matches any of the independent codes, the distance value of the pixel becomes the distance indicated by the corresponding unit section (distance section).

[0070] The adjacent code 10901 is a code obtained by the logical sum of each bit of two independent codes corresponding to two adjacent unit sections. The adjacent code 10901 is generated, for example, by the control unit 10106 by the logical sum of each bit of two independent codes corresponding to two adjacent unit sections. When the exposure code matches any of the adjacent codes, the intermediate distance between the two unit sections corresponding to the matching adjacent code becomes the distance value of the pixel.

[0071] As shown in FIG. 9, the initial value of memory (LUT) 10801 is generated from section number 10500 and generation codes 10501 to 10506 of packets 1 to 6 for generating unit drive patterns 10431 to 10436 of packets 1 to 6 that control the light source unit 10102 and the solid-state imaging unit 10105.

[0072] The control unit 10106 generates an independent code 10900 as a 6-bit binary number by regarding packet 1 generation code 10501 as bit 0, packet 2 generation code 10502 as bit 1, packet 3 generation code 10503 as bit 2, packet 4 generation code 10504 as bit 3, packet 5 generation code 10505 as bit 4, and packet 6 generation code 10506 as bit 5. For example, the independent code 10920 of 10921 with section number 10500 being 7 is regarded as a 6-bit binary number with the "0" of packet 1 generation code 10501 with section number 10500 being 7 as bit 0, the "0" of packet 2 generation code 10502 with section number 10500 being 7 as bit 1, the "0" of packet 3 generation code 10503 with section number 10500 being 7 as bit 2, the "0" of packet 4 generation code 10504 with section number 10500 being 7 as bit 3, the "1" of packet 5 generation code 10505 with section number 10500 being 7 as bit 4, and the "0" of packet 6 generation code 10506 with section number 10500 being 7 as bit 5, which is expressed as "10" in hexadecimal. Furthermore, the control unit 10106 generates adjacent code 10901 by performing a logical OR operation on each bit of the independent codes 10900 of two adjacent sections.For example, adjacent code 10923 in the section 10924 where section number 10500 is adjacent to 24 and 25 is obtained by ORing the value of bit 0 of the independent code whose section number is 10500 and the value of bit 0 of the independent code whose section number is 10500 and the value of bit 0 of the independent code whose section number is 10500 and the value of bit 1 of the independent code whose section number is 10500 and the value of bit 1 of the independent code whose section number is 10500 and the value of bit 2 ... "0" is considered as bit 2, the result of the logical OR operation of "0" (bit 3 of the independent code whose interval number is 10500 and 24) and "0" (bit 3 of the independent code whose interval number is 10500 and 25) is "0" (bit 3), the result of the logical OR operation of "0" (bit 4 of the independent code whose interval number is 10500 and 24) and "1" (bit 4 of the independent code whose interval number is 10500 and 25) is "1" (bit 4), and the result of the logical OR operation of "1" (bit 5 of the independent code whose interval number is 10500 and 24) and "1" (bit 5 of the independent code whose interval number is 10500 and 25) is "1" (bit 5). These are considered as a 6-bit binary number, and the hexadecimal notation is "33". Here, the independent code 10900 indicates that when the reflected light 10111 is returned only from one section number 10500, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The adjacent code 10901 indicates that when the reflected light 10111 is returned across two adjacent section numbers 10500, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The exposure code 10820 for each section number 10500 is estimated based on the generated codes 10501 to 10506 of packets 1 to 6. Therefore, by initializing memory (LUT) 10801 using the independent code 10900 and adjacent code 10901 as addresses and the section number 10500 corresponding to the independent code 10900 and adjacent code 10901 as data, and reading and accessing memory (LUT) 10801 using the exposure code 10820 as an address, it is possible to convert the exposure code 10820 into a section number corresponding to distance.Table 10910 is a data set for initializing memory (LUT) 10801. Since independent code 10920 is "10" in hexadecimal notation, the data at address "10" in hexadecimal notation in table 10910 is 7, which is section number 10921 of independent code 10920. Also, since adjacent code 10923 is "33" in hexadecimal notation, the data at address "33" in hexadecimal notation in table 10910 is set to 24.5, which is the average value of 24 and 25, which is section number 10924 of adjacent code 10923. This is because, although it is known that the reflected light 10111 is returned from section number 10924 of adjacent code 10923, spanning section numbers 24 and 25, the more detailed timing at which the reflected light 10111 is returned is not known, so it is assumed that the reflected light 10111 is returned midway between the two adjacent sections, and the average value of the two adjacent section numbers is used to limit the maximum error to half the section.

[0073] Here, a method of generating the generated codes 10501 to 10506 of packets 1 to 6 to be given to the control unit 10106 will be described. In order to calculate the section number using the exposure code 10820 generated from the signal values ​​of the above packets 1 to 6, the exposure code 10820 and the section number must correspond one-to-one. For this reason, the generated codes 10501 to 10506 of packets 1 to 6 are determined so that the values ​​of the independent code 10900 and the adjacent code 10901 do not overlap, and the exposure code 10820 and the section number correspond one-to-one. In addition, the generated codes 10501 to 10506 of packets 1 to 6 are determined so that the independent code 10900 and the adjacent code 10901 do not have a value of "00" in hexadecimal notation. If the reflected light 10111 is returned at the timing when the value of the independent code 10900 or the adjacent code 10901 is "00", the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, so the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. Also, if the object 10101 does not exist within the distance measurement range of section numbers 0 to 31, the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. For this reason, it is impossible to distinguish these two conditions from the signal values ​​of packets 1 to 6, so the generated codes 10501 to 10506 of packets 1 to 6 are generated so that the independent code 10900 and the adjacent code 10901 do not have the value "00" in hexadecimal notation. In addition, in case the exposure code 10820 matches "00", which does not exist in the independent code 10900 or the adjacent code 10901, the section number can be set to a negative value of -1, making it possible to determine that the section number has not been calculated correctly.

[0074] FIG. 10 is a timing chart of the distance calculation unit 10108 according to the first embodiment.

[0075] Regarding the notations in the figure, the same notations as in Fig. 7 are used in the same manner. The notations "P1(11)bin" to "P6(11)bin" indicate the codes of packets 1 to 6 of pixel 10200 at pixel address 11 in the following explanation, and correspond to the exposure code 10820 of pixel 10200 at pixel address 11.

[0076] As shown in FIG. 10, at timing 11000 before a valid signal value is output from the solid-state imaging unit output signal 10130, the control unit 10106 sets values ​​in the threshold register 10800 and the memory (LUT) 10801 via the control bus. The threshold register 10800 writes a value near the black level, and the memory (LUT) 10801 writes data in the table 10910. At timing 11001, the signal values ​​of packets 1 to 6 of pixel address 11, that is, P1(11)sig to P6(11)sig in the figure, are sequentially sent from the solid-state imaging unit output signal 10130. The sent signal values ​​are sequentially processed by the threshold register 10800 value and the comparator 10802, and the codes of packets 1 to 6 of pixel address 11 corresponding to the signal values ​​of packets 1 to 6 of pixel address 11, that is, P1(11)bin to P6(11)bin in the figure, are generated and sent to the synchronization unit 10803. At timing 11002, the codes of packets 1 to 6 of pixel address 11 are synchronized to determine exposure code 10820. Using the exposure code 10820 as an address, memory (LUT) 10801 is read-accessed, and at timing 11003, section number signal 10131 corresponding to the distance of pixel address 11 is output. By performing this operation for all pixels 10200 arranged two-dimensionally, all two-dimensional section numbers are output.

[0077] The distance calculation method of the one-pixel distance calculation unit 10108 will be described in detail below.

[0078] 11 is a diagram showing a method of calculating a distance by the distance calculation unit 10108 according to the first embodiment. As shown in FIG. 11, the signal values ​​of packets 1 to 6 corresponding to one pixel of the solid-state imaging unit output signal 10130 input to the distance calculation unit 10108 are as follows: Packet 1 signal value = Black level vicinity value, Packet 2 signal value = greater than black level, Packet 3 signal value = Black level vicinity value, Packet 4 signal value = Black level vicinity value, Packet 5 signal value = Black level vicinity value, Packet 6 signal value = Black level vicinity value, It is.

[0079] The signal values ​​of packets 1 to 6 are determined according to the signal charge obtained by photoelectrically converting the reflected light 10111 in the photoelectric conversion pixel 10201, the photoelectric conversion pixel 10201, and the dark current noise of the FDA 10211 to 10216. In a normal image sensor, components such as dark current noise are relatively small, so the signal values ​​of packets 1 to 6 that do not include the reflected light 10111 are values ​​near the black level. In addition, in the control sequence of the light source unit 10102 and the solid-state imaging unit 10105 shown in FIG. 4 and FIG. 6A to FIG. 6F, the unit drive patterns 10431 to 10436 of packets 1 to 6 are executed 1920 times, respectively, so that the reflected light 10111 can secure a sufficient amount of light, and the signal values ​​of packets 1 to 6 are values ​​greater than the black level. In addition, the threshold register 10800 sets a value near the black level, and the memory (LUT) 10801 sets a value of the table 10910.

[0080] The comparator 10802 sequentially compares the signal values ​​of packets 1 to 6 input sequentially from the solid-state imaging unit 10105 with the value of the threshold register 10800, and generates codes for packets 1 to 6.

[0081] Note that the packet 1 code is "0" because the packet 1 signal value "black level vicinity value" ≦ threshold register "black level vicinity value". The packet 2 code is "1" because the packet 2 signal value "greater than black level" > threshold register "black level vicinity value". The packet 3 code is "0" because the packet 3 signal value "black level vicinity value" ≦ threshold register "black level vicinity value". The packet 4 code is "0" because the packet 4 signal value "black level vicinity value" ≦ threshold register "black level vicinity value". The packet 5 code is "0" because the packet 5 signal value "black level vicinity value" ≦ threshold register "black level vicinity value". The packet 6 code is "0" because the packet 6 signal value "black level vicinity value" ≦ threshold register "black level vicinity value".

[0082] The codes of packets 1 to 6 are synchronized by a synchronization unit 10803, and the code of packet 1 is regarded as a 6-bit binary number with the code of packet 1 being bit 0, the code of packet 2 being bit 1, the code of packet 3 being bit 2, the code of packet 4 being bit 3, the code of packet 5 being bit 4, and the code of packet 6 being bit 5, to generate an exposure code 10820, which is expressed as "02" in hexadecimal. When this exposure code 10820 is used as the address of the memory (LUT) 10801 for read access, since the data of address 02 in the table 10910 is 1, it is understood that the reflected light 10111 has returned with a section number of 1, and this section number of 1 is output as the distance.

[0083] The actual distance to the object 10101 can be calculated from the time difference between the generation of the irradiated light 10110 and the return of the reflected light 10111. The time difference between the generation of the irradiated light 10110 and the return of the reflected light 10111 can be calculated by multiplying the time of one section by the section number. Since the irradiated light 10110 is reflected by the object 10101 and returns to the solid-state imaging unit 10105 as the reflected light 10111, the irradiated light 10110 and the reflected light 10111 have traveled twice the distance to the object 10101, so Actual distance to object 10101 = speed of light × length of 1 section × section number where reflected light 10111 was returned ÷ 2 = 299792458[m / s]×10[ns]×1÷2 = 1.49896229[m] It becomes.

[0084] In other words, a reflected wave from a unit section (distance section) with section number 0 indicates that there is an object at a distance of 0 to 1.5 m. A reflected wave from a unit section (distance section) with section number 1 indicates that there is an object at a distance of 1.5 m to 3 m. A reflected wave from a unit section (distance section) with section number 2 indicates that there is an object at a distance of 3 m to 4.5 m. The same is true for the other section numbers.

[0085] The unit interval may be based on the pulse width of the exposure pulse. The unit interval may be the same as the pulse width of the exposure pulse, or may be different. The pulse width of the exposure pulse may be the same as the pulse width of the light emission pulse, or may be different. In this embodiment, for ease of understanding, it is assumed that the pulse width of the exposure pulse, the pulse width of the light emission pulse, and the unit interval are the same.

[0086] 12 is a diagram showing a method of calculating a distance by the distance calculation unit 10108 according to the first embodiment. As shown in FIG. 12, the signal values ​​of packets 1 to 6 corresponding to one pixel of the solid-state imaging unit output signal 10130 input to the distance calculation unit 10108 are as follows: Packet 1 signal value = greater than black level, Packet 2 signal value = Black level vicinity value, Packet 3 signal value = greater than black level, Packet 4 signal value = greater than black level, Packet 5 signal value = Black level vicinity value, Packet 6 signal value = greater than black level, It is.

[0087] The comparator 10802 sequentially compares the signal values ​​of packets 1 to 6 input sequentially from the solid-state imaging unit with the value of the threshold register 10800, and generates codes for packets 1 to 6.

[0088] Note that the packet 1 code is "1" because the packet 1 signal value "greater than the black level" > threshold register "value near the black level". The packet 2 code is "0" because the packet 2 signal value "value near the black level" <= threshold register "value near the black level". The packet 3 code is "1" because the packet 3 signal value "greater than the black level" > threshold register "value near the black level". The packet 4 code is "1" because the packet 4 signal value "greater than the black level" > threshold register "value near the black level". The packet 5 code is "0" because the packet 5 signal value "value near the black level" <= threshold register "value near the black level". The packet 6 code is "1" because the packet 6 signal value "greater than the black level" > threshold register "value near the black level".

[0089] The codes of packets 1 to 6 are synchronized by a synchronization unit 10803, and the code of packet 1 is regarded as a 6-bit binary number with the code of packet 1 being bit 0, the code of packet 2 being bit 1, the code of packet 3 being bit 2, the code of packet 4 being bit 3, the code of packet 5 being bit 4, and the code of packet 6 being bit 5, to generate an exposure code 10820, which is expressed as "2D" in hexadecimal. When this exposure code 10820 is used as the address of the memory (LUT) 10801 for read access, since the data of address 2D in the table 10910 is 30, it is understood that the reflected light 10111 has returned with a section number of 30, and this section number 30 is output as the distance.

[0090] 13 is a diagram showing a method of calculating a distance by the distance calculation unit 10108 according to the first embodiment. As shown in FIG. 13, the signal values ​​of packets 1 to 6 corresponding to one pixel of the solid-state imaging unit output signal 10130 input to the distance calculation unit 10108 are as follows: Packet 1 signal value = Black level vicinity value, Packet 2 signal value = greater than black level, Packet 3 signal value = greater than black level, Packet 4 signal value = Black level vicinity value, Packet 5 signal value = Black level vicinity value, Packet 6 signal value = Black level vicinity value, It is.

[0091] The comparator 10802 sequentially compares the signal values ​​of packets 1 to 6 input sequentially from the solid-state imaging unit with the value of the threshold register 10800, and generates codes for packets 1 to 6.

[0092] Note that the packet 1 code is "0" because the packet 1 signal value "near black level" ≦ threshold register "near black level". The packet 2 code is "1" because the packet 2 signal value "greater than black level" > threshold register "near black level". The packet 3 code is "1" because the packet 3 signal value "greater than black level" > threshold register "near black level". The packet 4 code is "0" because the packet 4 signal value "near black level" ≦ threshold register "near black level". The packet 5 code is "0" because the packet 5 signal value "near black level" ≦ threshold register "near black level". The packet 6 code is "0" because the packet 6 signal value "near black level" ≦ threshold register "near black level".

[0093] The codes of packets 1 to 6 are synchronized by a synchronization unit 10803, and the code of packet 1 is regarded as a 6-bit binary number with the code of packet 1 being bit 0, the code of packet 2 being bit 1, the code of packet 3 being bit 2, the code of packet 4 being bit 3, the code of packet 5 being bit 4, and the code of packet 6 being bit 5, to generate an exposure code 10820, which is expressed as "06" in hexadecimal. When this exposure code 10820 is used as the address of the memory (LUT) 10801 for read access, since the data of address 06 in the table 10910 is 1.5, it is understood that the reflected light 10111 has returned between the section numbers 1 and 2, and this section number 1.5 is output as the distance.

[0094] 14 is a diagram showing a method of calculating a distance by the distance calculation unit 10108 according to the first embodiment. As shown in FIG. 14, the signal values ​​of packets 1 to 6 corresponding to one pixel of the solid-state imaging unit output signal 10130 input to the distance calculation unit 10108 are as follows: Packet 1 signal value = greater than black level, Packet 2 signal value = Black level vicinity value, Packet 3 signal value = greater than black level, Packet 4 signal value = greater than black level, Packet 5 signal value = greater than black level, Packet 6 signal value = greater than black level, It is.

[0095] The comparator 10802 sequentially compares the signal values ​​of packets 1 to 6 sequentially input from the solid-state imaging unit with the value of the threshold register 10800, and generates codes for packets 1 to 6. The code for packet 1 is "1" because the packet 1 signal value "greater than the black level" > threshold register "value near the black level". The code for packet 2 is "0" because the packet 2 signal value "value near the black level" ≦ threshold register "value near the black level". The code for packet 3 is "1" because the packet 3 signal value "greater than the black level" > threshold register "value near the black level". The code for packet 4 is "1" because the packet 4 signal value "greater than the black level" > threshold register "value near the black level". The code for packet 5 is "1" because the packet 5 signal value "greater than the black level" > threshold register "value near the black level". The code for packet 6 is "1" because the packet 6 signal value "greater than the black level" > threshold register "value near the black level".

[0096] The codes of packets 1 to 6 are synchronized by a synchronization unit 10803, and the code of packet 1 is regarded as a 6-bit binary number with bit 0 for the code of packet 1, bit 1 for the code of packet 2, bit 2 for the code of packet 3, bit 3 for the code of packet 4, bit 4 for the code of packet 5, and bit 5 for the code of packet 6, to generate an exposure code 10820, which is expressed as "3D" in hexadecimal. When this exposure code 10820 is read and accessed as the address of memory (LUT) 10801, since the data of address 3D in table 10910 is 29.5, it is understood that the reflected light 10111 has returned between the section numbers 29 and 30, and this section number 29.5 is output as the distance.

[0097] From the above operations, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 17.28 ms, and the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms. Therefore, the time required for one frame is 33.3 ms, and the frame rate of this distance measuring device is 30 fps. Compared to the conventional technology, it is possible to significantly expand the range that can be measured with a smaller number of packets, so by using this technology, it is possible to significantly expand the measuring range while maintaining the frame rate.

[0098] As described above, the distance measuring device of embodiment 1 comprises a pulse generating unit that generates an emission pulse that indicates the timing of light irradiation and an exposure pulse that indicates the timing of exposure to reflected light, a control unit that controls the pulse generating unit according to n (n is an integer of 4 or more) types of packet generation codes that indicate whether or not exposure should be made for each of a plurality of unit sections corresponding to a plurality of distance sections into which the distance measurement range is divided, a light source unit that irradiates light according to the emission pulse, a solid-state imaging unit that captures an image according to the exposure pulse, and a distance calculation unit that calculates distance based on n types of signal values ​​for each of the unit sections obtained from the solid-state imaging unit.

[0099] This makes it possible to realize high distance measurement accuracy and a wide distance measurement range. The reason is that the distance to the target object is found by identifying unit sections (i.e., distance sections) in which n-bit data of n types of signal values ​​matches n-bit data for each of multiple unit sections (multiple distance sections) in n types of packet generation codes. Since the n-bit data for each unit section (multiple distance sections) can correspond to 2 n unit sections, the number of unit sections can be easily increased, making it possible to realize high distance measurement accuracy and a wide distance measurement range.

[0100] Here, the control unit may generate an n-bit binary number for each unit interval contained in the n types of packet generation codes as an independent code, and the distance calculation unit may binarize the n types of signal values ​​to determine the n-bit binary number as an exposure code, compare the independent code with the exposure code, and calculate the distance corresponding to the matching unit interval.

[0101] According to this method, the distance to the object is found by identifying the distance section where the exposure code and the independent code match. Since the number of unit sections, i.e., the number of independent codes, is a maximum of 2 n , the number of unit sections can be easily increased, thereby achieving high distance measurement accuracy and a wide distance measurement range.

[0102] Here, the control unit may generate an n-bit adjacent code by performing a logical OR operation on each bit of the two independent codes corresponding to the two adjacent unit sections, and the distance calculation unit may further compare the exposure code with the adjacent code, and if they match, calculate an intermediate distance between the two corresponding unit sections.

[0103] According to this, when the exposure code and the adjacent code match, two corresponding distance intervals are identified, and the distance to the target object is found as the intermediate distance between the two identified distance intervals. Also, the total number of independent codes and the number of adjacent codes can be set up to a maximum of 2(n-1). For example, a maximum of 2(n-1) independent codes and a maximum of 2(n-1) adjacent codes can be set, thereby realizing higher distance measurement accuracy and a wider distance measurement range.

[0104] Here, each of the adjacent codes may be different from any other adjacent code.

[0105] According to this, when the exposure code and the adjacent code match, the distance to the object can be easily specified as a distance that is in a range that straddles the boundary between two corresponding distance sections and is within the range of the distance section.

[0106] Here, each of the independent codes may be different from any other independent code.

[0107] According to this, when the exposure code and the independent code match, the distance to the object can easily be specified as the corresponding distance section.

[0108] Here, the solid-state imaging unit may include n signal charge accumulation units corresponding to the photoelectric conversion pixels and the n types of packet generation codes, and accumulating signal charges generated by the photoelectric conversion pixels, and a signal output unit outputting n types of signal values ​​corresponding to the signal charges accumulated in the n signal charge accumulation units.

[0109] According to this, n kinds of signal values ​​can be stored in the solid-state imaging section. The signal value read operation from the solid-state imaging section can be performed after storing n kinds of signal values, that is, after continuously performing exposure according to n kinds of packet generation codes, so that the imaging operation can be speeded up. In other words, it is easy to increase the frame rate.

[0110] A distance measuring method according to the first embodiment is a distance measuring method in a distance measuring device including: a pulse generating unit that generates a light emission pulse indicating a light irradiation timing and an exposure pulse indicating a reflected light exposure timing; a control unit that controls the pulse generating unit according to n (n is an integer of 4 or more) types of packet generation codes indicating whether exposure should be performed for each of a plurality of unit sections corresponding to a plurality of distance sections obtained by dividing a distance measuring range; a light source unit that irradiates light according to the light emission pulse; a solid-state imaging unit that captures an image according to the exposure pulse; and a distance calculation unit that calculates a distance based on n types of signal values ​​for each of the unit sections obtained from the solid-state imaging unit, a light emission pulse and an exposure pulse are generated according to n (n is an integer of 4 or more) types of packet generation codes that indicate whether or not exposure should be made for each of a plurality of unit sections corresponding to a distance section of n, n types of signal values ​​for each of the unit sections obtained from the solid-state imaging unit are obtained, the n types of signal values ​​are binarized to determine an n-bit binary number as an exposure code, the n-bit binary number for each of the unit sections contained in the n types of packet generation codes is generated as an independent code, the independent code and the exposure code are compared to calculate the distance corresponding to the matching unit section, and each of the n types of packet generation codes indicates a plurality of exposure pulses for one light emission pulse.

[0111] According to this method, the distance to the object is found by identifying the distance section where the exposure code and the independent code match. Since the number of unit sections, i.e., the number of independent codes, is a maximum of 2 n , the number of unit sections can be easily increased, thereby achieving high distance measurement accuracy and a wide distance measurement range.

[0112] Here, furthermore, an n-bit adjacent code may be generated by performing a logical OR operation on each bit of the two independent codes corresponding to the two adjacent unit intervals, and the independent code and the adjacent code may be compared, and if they match, an intermediate distance between the two corresponding unit intervals may be calculated.

[0113] According to this, when the exposure code and the adjacent code match, two corresponding distance intervals are identified, and the distance to the target object is found as the intermediate distance between the two identified distance intervals. Also, the total number of independent codes and the number of adjacent codes can be set up to a maximum of 2(n-1). For example, a maximum of 2(n-1) independent codes and a maximum of 2(n-1) adjacent codes can be set, thereby realizing higher distance measurement accuracy and a wider distance measurement range.

[0114] (Embodiment 2) In the first embodiment, the use in an environment without background light containing a 940 nm wavelength component has been described. However, when considering outdoor use, high-energy background light containing a 940 nm wavelength component due to sunlight, etc., exists, which has a significant adverse effect on the accuracy of the distance measuring device. In the second embodiment, a method for reducing the adverse effect even when high-energy background light containing a 940 nm wavelength component exists will be described.

[0115] FIG. 15 is a diagram illustrating a schematic configuration of a TOF (Time Of Flight) type distance measuring device and surrounding objects in an environment including background light according to the second embodiment. As shown in FIG. 15, in an imaging space 10100, background light 21510 emitted from a background light source 21502 containing components with the same wavelength of 940 nm as the light source unit 10102, and pulsed irradiation light 10110 (pulse width 10 ns) with a wavelength of 940 nm irradiated from the light source unit 10102 are reflected by the object 10101, and reflected light 10111 of the irradiation light 10110 and background light reflected light 21511 of the background light 21510 are received by the solid-state imaging unit 10105 via an optical lens 10103 and an optical filter 10104 that transmits the near-infrared wavelength region near a wavelength of 940 nm, and an image is formed. The light emission timing of the light source unit 10102 and the exposure timing of the solid-state imaging unit 10105 are controlled by the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 of the pulse generating unit 10107 controlled by the control unit 10106 via a control bus. The light source unit 10102 irradiates the irradiation light 10110 when the light emission pulse 10120 is at a high level, and does not irradiate the irradiation light 10110 when the light emission pulse 10120 is at a low level. The solid-state imaging unit 10105 outputs the solid-state imaging unit output signal 10130, which is six types of signal values ​​corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6, to the distance calculation unit 21508 for each pixel. A distance calculation unit 21508 uses the solid-state imaging unit output signal 10130 and control information from the control unit 10106 to output a section number signal 10131 corresponding to the distance to the object 10101 for each pixel.

[0116] The distance measuring device is made up of a light source unit 10102, an optical lens 10103, an optical filter 10104, a solid-state imaging unit 10105, a control unit 10106, a pulse generating unit 10107, and a distance calculation unit 21508. In terms of configuration, the light source unit 10102 has a drive circuit and a light emitting element, and emits light when a voltage is applied from the drive circuit. A laser diode or other light emitting element may be used as the light emitting element. The control unit 10106, the pulse generating unit 10107, and the distance calculation unit 21508 are realized by combining, for example, a CPU (Central Processing Unit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), an AFE (Analog Front End), etc.

[0117] 2 is a configuration diagram of a pixel 10200 of a solid-state imaging unit 10105 according to the first to fourth embodiments. As shown in FIG. 2, the pixel 10200 includes a photoelectric conversion pixel 10201 configured with a PD (Photodiode) that receives reflected light 10111 and performs photoelectric conversion, a drain 10210 for discharging a signal charge photoelectrically converted by the photoelectric conversion pixel 10201, and an FDA (Floating Diffusion Array) that accumulates the signal charge photoelectrically converted by the photoelectric conversion pixel 10201. The input / output amplifier 102 is configured with a signal charge storage section composed of source follower circuits 10221, an output selection transistor 10231, a source follower circuit 10222, an output selection transistor 10232, a source follower circuit 10223, an output selection transistor 10233, a source follower circuit 10224, an output selection transistor 10234, a source follower circuit 10225, an output selection transistor 10235, a source follower circuit 10226, and an output selection transistor 10236, which outputs a voltage value according to the signal charges stored in the source follower circuits 10211 to 10216.

[0118] Next, the operation of the pixel 10200 will be described. When the packet 1 exposure pulse 10121 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10211, when the packet 2 exposure pulse 10122 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10212, when the packet 3 exposure pulse 10123 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10213, when the packet 4 exposure pulse 10124 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10214, The signal charge photoelectrically converted in the pixel 10201 is accumulated in the FDA 10214, and when the packet 5 exposure pulse 10125 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10215, and when the packet 6 exposure pulse 10126 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10216, and when the discharge drive pulse 10127 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is discharged to the drain 10210. Therefore, when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the discharge drive pulse 10127 is set to a high level, so that when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is discharged to the drain 10210, and when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, the remaining five are set to a low level. By setting the discharge drive pulse 10127 to a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDAs 10211 to 10216 corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6 only when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, thereby performing six types of imaging per pixel corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6.As signal charge accumulates in FDA10211 to 10216, a voltage corresponding to the amount of signal charge is generated, and a packet 1 voltage value corresponding to the amount of signal charge of FDA10211, a packet 2 voltage value corresponding to the amount of signal charge of FDA10212, a packet 3 voltage value corresponding to the amount of signal charge of FDA10213, a packet 4 voltage value corresponding to the amount of signal charge of FDA10214, a packet 5 voltage value corresponding to the amount of signal charge of FDA10215, and a packet 6 voltage value corresponding to the amount of signal charge of FDA10216 are generated. By setting the output enable signal 10240 to a high level, the packet 1 voltage value passes through the source follower circuit 10221 and the output selection transistor 10231 to the pixel output signal 10241, the packet 2 voltage value passes through the source follower circuit 10222 and the output selection transistor 10232 to the pixel output signal 10242, the packet 3 voltage value passes through the source follower circuit 10223 and the output selection transistor 10233 to the pixel output signal 10243, the packet 4 voltage value passes through the source follower circuit 10224 and the output selection transistor 10234 to the pixel output signal 10244, the packet 5 voltage value passes through the source follower circuit 10225 and the output selection transistor 10235 to the pixel output signal 10245, and the packet 6 voltage value passes through the source follower circuit 10226 and the output selection transistor 10236 to the pixel output signal 10246, all at the same time.

[0119] Fig. 3 is a configuration diagram of the solid-state imaging section 10105 according to the first to fourth embodiments. As shown in Fig. 3, the solid-state imaging section 10105 has pixels 10200 arranged two-dimensionally, X in the horizontal direction and Y in the vertical direction, where X=320 and Y=240 in the first to fourth embodiments. Note that the number of pixels is just an example and is not limited to this. The output enable signal 10240 of the pixels 10200, consisting of pixel address 11, pixel address 12, and pixel address 1X, which are arranged side by side in the horizontal direction in the first row, is connected to a row selection signal 10300; the output enable signal 10240 of the pixels 10200, consisting of pixel address 21, pixel address 22, and pixel address 2X, which are arranged side by side in the horizontal direction in the second row, is connected to a row selection signal 10301; the output enable signal 10240 of the pixels 10200, consisting of pixel address 31, pixel address 32, and pixel address 3X, which are arranged side by side in the horizontal direction in the third row, is connected to a row selection signal 10302; and the output enable signal 10240 of the pixels 10200, consisting of pixel address Y1, pixel address Y2, and pixel address YX, which are arranged side by side in the horizontal direction in the Yth row, is connected to a row selection signal 10303. In addition, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 11, pixel address 21, pixel address 31, and pixel address Y1, which are arranged vertically in the first column, are connected to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 12, pixel address 22, pixel address 32, and pixel address Y2, which are arranged vertically in the second column, are connected to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of pixels 10200 including pixel address 1X, pixel address 2X, pixel address 3X, and pixel address YX, which are arranged vertically in the Xth column, are connected to vertical pixel signals 10331 to 10336. Vertical pixel signals 10311 to 10316, 10321 to 10326, and 10331 to 10336 are connected to a column AD 10370, and the output signal of the column AD 10370 is connected to a shift register 10371, so that the solid-state imaging unit output signal 10130 is output from the shift register 10371.

[0120] Next, the read operation of the solid-state imaging unit 10105 will be described. This read operation is the same as that of a general CMOS image sensor with six times the number of horizontal pixels. By setting the row selection signal 10300 to a high level, the row selection signal 10301 to a low level, the row selection signal 10302 to a low level, and the row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336, and input to the column AD 10370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a high level, row selection signal 10302 to a low level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are output to vertical pixel signals 10331 to 10336, and input to column AD370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a high level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are output to vertical pixel signals 10331 to 10336, and input to column AD 10370.By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a low level, and row selection signal 10303 to a high level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y1 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y2 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address YX are output to vertical pixel signals 10331 to 10336, and input to column AD 10370. The column AD 10370 AD converts the input voltage values ​​of packets 1 to 6 for X pixels into 12-bit signal values, generates a packet 1 signal value obtained by AD converting the packet 1 voltage value for X pixels, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value, and outputs them to the shift register 10371. The shift register 10371 outputs the input signal values ​​of packets 1 to 6 for X pixels to the solid-state imaging unit output signal 10130 while shifting them one by one.

[0121] Fig. 16 shows a control sequence of the light source unit 10102 and the solid-state imaging unit 10105 according to the embodiment 2. In the control sequence shown in Fig. 16, the control unit 10106 instructs the pulse generating unit 10107 through the control bus the number of times the frame unit drive pattern is repeated (12 times) and the number of times the unit drive patterns of packets 1 to 6 are repeated (300 times), as shown in Fig. 1, and the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 are generated in the pulse generating unit 10107 according to the number of times the frame unit drive pattern is repeated and the number of times the unit drive patterns of packets 1 to 6 are repeated. Note that Figure 16 explains the generation of unit drive patterns 21631 to 21636 of packets 1 to 6, and Figures 17 and 18A to 18F explain the method of generating the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 for each unit drive pattern 21631 to 21636 of packets 1 to 6.

[0122] As shown in FIG. 16, one frame is composed of a frame drive pattern 10400. The frame drive pattern 10400 is composed of 12 repetitions of a frame unit drive pattern 10410 and an imaging data readout 10411 that outputs the signal charges accumulated in the signal charge accumulation units of all the pixels 10200 from the solid-state imaging unit 10105. The frame unit drive pattern 10410 is composed of a packet 1 drive pattern 10421, a packet 2 drive pattern 10422, a packet 3 drive pattern 10423, a packet 4 drive pattern 10424, a packet 5 drive pattern 10425, and a packet 6 drive pattern 10426. The packet 1 drive pattern 10421 is composed of 300 repetitions of a packet 1 unit drive pattern 21631. The packet 2 drive pattern 10422 is composed of 300 repetitions of a packet 2 unit drive pattern 21632. The packet 3 drive pattern 10423 is composed of 300 repetitions of the packet 3 unit drive pattern 21633. The packet 4 drive pattern 10424 is composed of 300 repetitions of the packet 4 unit drive pattern 21634. The packet 5 drive pattern 10425 is composed of 300 repetitions of the packet 5 unit drive pattern 21635. The packet 6 drive pattern 10426 is composed of 300 repetitions of the packet 6 unit drive pattern 21636. The unit drive patterns 21631 to 21636 of packets 1 to 6 drive the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127. Details of the unit drive patterns 21631 to 21636 of packets 1 to 6 will be described in FIG. 17 and FIG. 18A to FIG. 18F. Furthermore, the control sequence of the light source unit 10102 and the solid-state imaging unit 10105 shown in FIG. 16 is just an example, and the present invention is not limited to this.

[0123] The unit drive patterns 21631 to 21636 of packets 1 to 6 are repeated 300 times in the drive patterns 10421 to 10426 of packets 1 to 6, respectively, and the drive patterns 10421 to 10426 of packets 1 to 6 are repeated 12 times in the frame unit drive patterns. That is, the unit drive patterns 21631 to 21636 of packets 1 to 6 are repeated 300×12=3600 times, respectively. By repeating 3600 times, it is possible to ensure a sufficient amount of light even if the amount of light of the irradiation light 10110 per time is small. On the other hand, by dividing the frame drive pattern 10400 into 12 frame unit drive patterns 10410, the time required for each frame unit drive pattern 10410 is shortened, and the apparent imaging timing of packets 1 to 6 can be synchronized. Furthermore, by repeating the frame-based drive pattern 10410 12 times, the blur caused by the movement of the object 10101 occurs evenly in packets 1 to 6, making it possible to suppress side effects such as data corruption during distance calculations caused by the movement of the object 10101.

[0124] Fig. 17 is a diagram showing unit drive patterns 21631 to 21636 of packets 1 to 6 that control the solid-state imaging unit 10105 according to the second embodiment, and generated codes 21701 to 21706 of packets 1 to 6 that are given to the control unit 10106 to generate a discharge drive pulse 10127. As shown in Fig. 17, the generated codes 21701 to 21706 of packets 1 to 6 are obtained by dividing the section number 21700 into 31 sections from 0 to 30, and a value of "0" or "1" is determined for each section number 21700, which are information for controlling the drive of the exposure pulses 10121 to 10126 of packets 1 to 6, respectively. The section number 21700 and generated codes 21701 to 21706 of packets 1 to 6 are sent to the pulse generating unit 10107 via a control bus, and the pulse generating unit 10107 generates unit drive patterns 21631 to 21636 of packets 1 to 6 from the section number 21700 and generated codes 21701 to 21706 of packets 1 to 6. Note that the generated codes of packets 1 to 6 shown in Fig. 17 are just an example, and the generated codes of packets 1 to 6 are not limited to this.

[0125] 18A to 18F are timing charts showing packet 1 unit drive patterns 21631 to 6 unit drive patterns 21636 according to the second embodiment. As shown in Fig. 18A to 18F, the pulse generating unit 10107 switches the section number 10600 for each unit section (10 ns) between 80 sections from 0 to 79, and uses the generation codes 21701 to 21706 of packets 1 to 6 having the same section numbers as the section number 10600 and the section number 21700, and the section number 10600, to control the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, thereby generating unit drive patterns 21631 to 21636 of packets 1 to 6. The reason why the section number 10600 of the pulse generating unit 10107 is set to a value (79) that is more than twice the maximum value (30) of the section number 21700 is to prevent the irradiation light 10110 from receiving the reflected light 10111 from the object 10101 located outside the distance measurement range (a section number greater than the maximum value of the section number 21700). For this reason, in a section number that does not exist in the section number 21700, a pulse is generated in which the light emission pulse 10120 is at a low level, the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, and the discharge drive pulse 10127 is at a high level. In this way, by controlling the solid-state imaging unit 10105, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 10 ns unit section x 80 number of section numbers x 300 repetitions of the packet unit drive pattern x 6 number of packets x 12 repetitions of the frame unit drive pattern = 17.28 ms. It should be noted that this unit interval specifies that the pulse width of the irradiated light 10110 and the exposure pulses 10121 to 10126 of packets 1 to 6 are the same, and does not limit the pulse width to 10 ns.

[0126] The following describes a method of controlling the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, which are in the section numbers 0 to 30 in which the section number 21700 exists.

[0127] 18A is a timing chart showing a packet 1 unit drive pattern 21631. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 1 exposure pulse 10121 is generated as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". The packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is a low level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and is a high level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "0", and a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0128] 18B is a timing chart showing the packet 2 unit drive pattern 21632. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 2 exposure pulse 10122 is generated as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 2 generation code 21702 corresponding to the section number 21700 is “1”, and is at high level when the packet 2 generation code 21702 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 2 exposure pulse 10122 is generated.

[0129] 18C is a timing chart showing the packet 3 unit drive pattern 21633. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 3 exposure pulse 10123 is generated as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 3 generation code 21703 corresponding to the section number 21700 is “1”, and at high level when the packet 3 generation code 21703 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 3 exposure pulse 10123 is generated.

[0130] 18D is a timing chart showing the packet 4 unit drive pattern 21634. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 4 exposure pulse 10124 is generated as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is low level when the packet 4 generation code 21704 corresponding to the section number 21700 is “1”, and is high level when the packet 4 generation code 21704 corresponding to the section number 21700 is “0”, and a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0131] 18E is a timing chart showing the packet 5 unit drive pattern 21635. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 5 exposure pulse 10125 is generated as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the logic inverted from the packet 5 exposure pulse 10125, being low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and being high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0".

[0132] 18F is a timing chart showing the packet 6 unit drive pattern 21636. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 6 exposure pulse 10126 is generated as a high level when the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and as a low level when the packet 6 generation code 21706 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 5 exposure pulse 10125 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the inverted logic of the packet 6 exposure pulse 10126, being low level when the packet 6 generation code 21706 corresponding to the section number 21700 is “1”, and being high level when the packet 6 generation code 21706 corresponding to the section number 21700 is “0”.

[0133] Fig. 7 is a timing diagram of the imaging data readout 10411 of the solid-state imaging unit 10105 according to the first to fourth embodiments. By controlling the row selection signals 10300 to 10303, the column AD 10370, and the shift register 10371, the signal values ​​of packets 1 to 6 of all the pixels 10200 shown in Fig. 3 are output to the solid-state imaging unit output signal 10130. Note that the operation of this imaging data readout 10411 is the same as that of a normal CMOS image sensor with six times the number of horizontal pixels.

[0134] As shown in Figure 7, at timing 10700, row selection signal 10300 is set to a high level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a low level, and row selection signal 10303 is set to a low level, so that the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336. The vertical pixel signals 10311 to 10316, the vertical pixel signals 10321 to 10326, and the vertical pixel signals 10331 to 10336 are connected to a column AD 10370, and are AD converted into 12-bit signal values, and a packet 1 signal value obtained by AD converting the packet 1 voltage value of pixel address 11, pixel address 12, and pixel address 1X, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value are generated. At a timing 10701 when the AD conversion is completed, the AD converted signal values ​​of packets 1 to 6 of pixel address 11, pixel address 12, and pixel address 1X are output to a shift register 10371.The shift register 10371 shifts the input signal values ​​and outputs them from the solid-state imaging unit output signal 10130 in the following order: packet 1 signal value of pixel address 11, packet 2 signal value of pixel address 11, packet 3 signal value of pixel address 11, packet 4 signal value of pixel address 11, packet 5 signal value of pixel address 11, packet 6 signal value of pixel address 11, packet 1 signal value of pixel address 12, packet 2 signal value of pixel address 12, packet 3 signal value of pixel address 12, packet 4 signal value of pixel address 12, packet 5 signal value of pixel address 12, packet 6 signal value of pixel address 12, packet 1 signal value of pixel address 1X, packet 2 signal value of pixel address 1X, packet 3 signal value of pixel address 1X, packet 4 signal value of pixel address 1X, packet 5 signal value of pixel address 1X, and packet 6 signal value of pixel address 1X. Also, at timing 10701, row selection signal 10300 is set to low level, row selection signal 10301 is set to high level, row selection signal 10302 is set to low level, and row selection signal 10303 is set to low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are input to column AD 10370, and AD conversion is performed to a 12-bit signal value. At timing 10702 when the AD conversion of the column AD 10370 and the shift operation of the shift register 10371, which started at timing 10701, are completed, the result of the AD conversion of the column AD 10370, which started at timing 10701, is output to the shift register 10371, and as before, the input signal value is shifted and output from the solid-state imaging unit output signal 10130. Also, at timing 10702, row selection signal 10300 is set to a low level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a high level, and row selection signal 10303 is set to a low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are input to column AD 10370, and AD conversion to a 12-bit signal value is performed in the same manner as before.By performing this operation for all rows, the signal values ​​of all pixels 10200 are output from the solid-state imaging unit output signal 10130. Note that, although there are six FDAs 10211 to 10216 shown in FIG. 2 and six generation codes 21701 to 21706 of packets 1 to 6 shown in FIG. 17, the number is not limited to six. If the number of signal charge storage units is greater than the number of packet generation codes, the signal values ​​of packets 1 to 6 can be obtained in one frame, so that it is possible to calculate the section number corresponding to the distance with one frame of data. If the number of signal charge storage units is greater than the number of packet generation codes, it is possible to calculate the section number corresponding to the distance by obtaining the signal values ​​of packets 1 to 6 using data of multiple frames. Note that the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is calculated by dividing the number of pixels (horizontal pixel number X320+horizontal blanking period 80)×(vertical pixel number Y240+vertical blanking period 23) taking into account the blanking period by the output clock frequency of the solid-state imaging unit output signal 10130. Here, if the output clock frequency is 39.319 MHz, the time required for imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms.

[0135] 19 is a diagram showing the configuration of a distance calculation unit 21508 according to the second embodiment. As shown in FIG. 19, the distance calculation unit 21508 has exposure numbers 21901 to 21906 of packets 1 to 6, which are controlled by the control unit 10106 via a control bus, and a memory (LUT) 10801. The distance calculation unit 21508 has a selection circuit 21907 that selects the exposure numbers 21901 to 21906 of packets 1 to 6, a divider 21908 that divides the solid-state imaging unit output signal 10130 and the output signal of the selection circuit 21907, a synchronization unit (B) 21909 that synchronizes the output signal of the divider 21908 for each pixel address, a minimum value detector 21911 that detects the minimum value of the synchronization unit (B) output signals 21921 to 21926, and a minimum value detector output signal 21927 and the exposure numbers of packets 1 to 6. The distance calculator 21508 is made up of a multiplier 21912 which multiplies the number of times 21901 to 21906, a synchronization section (A) 21910 which synchronizes the solid-state imaging section output signal 10130 for each pixel address, a subtractor 21913 which subtracts the synchronization section (A) output signals 21941 to 21946 from the multiplier output signals 21931 to 21936, a maximum / minimum detector 21914 which detects the maximum and minimum values ​​of the subtraction signals 21951 to 21956, an average value calculator 21915 which calculates the average value of the maximum value signal 21957 and the minimum value signal 21958 of the maximum / minimum detector to generate a threshold signal 21960, and a comparator 10802 which compares the subtraction signals 21951 to 21956 with the threshold signal 21960. Next, the operation of the distance calculator 21508 will be described. The following description is based on the assumption that, among the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130, there is one or more packets that do not contain the reflected light 10111, and there is one or more packets that contain the reflected light 10111. A method for realizing this constraint will be described with reference to FIG. 20.

[0136] The signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130 are synchronized for each pixel address by the synchronization unit (A) 21910, and the synchronization unit (A) output signals 21941 to 21946 are generated. In addition, since the number of times that the exposure pulses 10121 to 10126 of packets 1 to 6 become high level differs for each signal value of packets 1 to 6, the solid-state imaging unit output signal 10130 selects the exposure numbers 21901 to 21906 of packets 1 to 6 for each signal value of packets 1 to 6 by a selection circuit 21907, divides them by a divider 21908, and inputs them to a synchronization unit (B) 21909. The method of generating the exposure numbers 21901 to 21906 of packets 1 to 6 will be described with reference to FIG. 20. The synchronization unit (B) synchronizes the output signal of the divider 21908 for each pixel address and outputs the result to a minimum value detector 21911. The minimum value detector 21911 estimates a signal value corresponding to the amount of background light reflected light 21511 by detecting the minimum value of the synchronization unit (B) output signals 21921 to 21926, and generates a minimum value detector output signal 21927. The minimum value detector output signal 21927 is multiplied by the exposure counts 21901 to 21906 of packets 1 to 6 in a multiplier 21912, and multiplier output signals 21931 to 21936, which are signal values ​​corresponding to the amount of background light reflected light 21511 included in each signal value of packets 1 to 6, are generated. A subtractor 21913 subtracts the synchronization unit (A) output signals 21941 to 21946 from the multiplier output signals 21931 to 21936 to generate subtraction signals 21951 to 21956 from which the background reflected light 21511 component contained in the signal values ​​of packets 1 to 6 has been removed. A maximum / minimum detector 21914 generates a maximum value signal 21957 and a minimum value signal 21958 of the subtraction signals 21951 to 21956. Here, since the signal values ​​of packets 1 to 6 include one or more packets that do not include the reflected light 10111 and one or more packets that include the reflected light 10111, the maximum value signal 21957 is a signal value corresponding to the amount of reflected light 10111, and the minimum value signal 21958 is a black level value.By generating the average value of the maximum value signal 21957 and the minimum value signal 21958 by the average value calculator 21915, a threshold signal 21960 is generated, which is a threshold for detecting a packet including the reflected light 10111 and a packet not including the reflected light 10111. By comparing the threshold signal 21960, which is the average value of the maximum value signal 21957 and the minimum value signal 21958, with the subtraction signals 21951 to 21956 by the comparator 10802, it is possible to reduce the influence of variations due to dark currents of the photoelectric conversion pixels 10201 and the FDAs 10211 to 10216, and optical shot noise, and to set the result of the comparator 10802 of the subtraction signals 21951 to 21956 including the reflected light 10111 to "1" and the result of the comparator 10802 of the subtraction signals 21951 to 21956 not including the reflected light 10111 to "0". Therefore, the exposure code 10820 obtained by bit-wise concatenating the comparator output signals 21961 to 21966 indicates a packet including the reflected light 10111. The exposure code 10820 is used as a read address to access the memory (LUT) 10801, and the read data of the memory (LUT) 10801 is output as the section number signal 10131. The initial value of the memory (LUT) 10801 is set by the control unit 10106 via the control bus, and a method of generating the initial value to be set in the memory (LUT) 10801 will be described with reference to FIG. 20.

[0137] Fig. 20 is a diagram showing a method for generating initial values ​​of the exposure counts 21901 to 21906 of packets 1 to 6 and the memory (LUT) 10801 according to the second embodiment. As shown in Fig. 20, the exposure counts 21901 to 21906 of packets 1 to 6 and the initial values ​​of the memory (LUT) 10801 are generated from the section number 21700 and the generation codes 21701 to 21706 of packets 1 to 6 for generating unit drive patterns 21631 to 21636 of packets 1 to 6 that control the light source unit 10102 and the solid-state imaging unit 10105.

[0138] First, a method for calculating the exposure counts 21901 to 21906 of packets 1 to 6 will be described. The amount of background light reflection 21511 included in the signal values ​​of packets 1 to 6 is proportional to the number of times (exposure count) that the exposure pulses 10121 to 10126 of packets 1 to 6 are set to a high level. For this reason, the control unit 10106 generates the exposure counts 21901 to 21906 of packets 1 to 6 by calculating, for each generated code of packets 1 to 6, the number of sections in which the generated code of packets 1 to 6 is "1" in all section numbers 21700.

[0139] Next, a description will be given of a method for generating an initial value of the memory (LUT) 10801. The control unit 10106 generates an independent code 22000 as a 6-bit binary number by regarding the packet 1 generated code 21701 as bit 0, the packet 2 generated code 21702 as bit 1, the packet 3 generated code 21703 as bit 2, the packet 4 generated code 21704 as bit 3, the packet 5 generated code 21705 as bit 4, and the packet 6 generated code 21706 as bit 5. For example, the independent code 22020 of 22021 with section number 21700 being 7 is regarded as a 6-bit binary number with the "0" of packet 1 generation code 21701 with section number 21700 being 7 as bit 0, the "0" of packet 2 generation code 21702 with section number 21700 being 7 as bit 1, the "0" of packet 3 generation code 21703 with section number 21700 being 7 as bit 2, the "0" of packet 4 generation code 21704 with section number 21700 being 7 as bit 3, the "1" of packet 5 generation code 21705 with section number 21700 being 7 as bit 4, and the "0" of packet 6 generation code 21706 with section number 21700 being 7 as bit 5, which is expressed as "10" in hexadecimal. Furthermore, the control unit 10106 generates an adjacent code 22001 by performing a logical OR operation on each bit of the independent codes 22000 of two adjacent sections.For example, the adjacent code 22023 in the part of 22024 where the section numbers 21700 are adjacent to 24 and 25 is calculated by ORing the value “1” of bit 0 of the independent code with section number 21700 being 24 with the value “0” of bit 0 of the independent code with section number 21700 being 25 as bit 0, the value “1” of the logical OR operation result of the value “1” of bit 1 of the independent code with section number 21700 being 24 with the value “1” of bit 1 of the independent code with section number 21700 being 25 as bit 1, and the value “0” of bit 2 of the independent code with section number 21700 being 24 with the value “0” of bit 2 of the independent code with section number 21700 being 25 as bit 2. "0" is considered as bit 2, the result of the logical OR operation of "0" (bit 3 of the independent code whose interval number is 21700 and 24) and "0" (bit 3 of the independent code whose interval number is 21700 and 25) is "0" (bit 3), the result of the logical OR operation of "0" (bit 4 of the independent code whose interval number is 21700 and 24) and "1" (bit 4 of the independent code whose interval number is 21700 and 25) is "1" (bit 4), and the result of the logical OR operation of "1" (bit 5 of the independent code whose interval number is 21700 and 24) and "1" (bit 5 of the independent code whose interval number is 21700 and 25) is "1" (bit 5). These are considered as a 6-bit binary number, and the hexadecimal notation is "33". Here, the independent code 22000 indicates that when the reflected light 10111 is returned only from one section number 21700, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The adjacent code 22001 indicates that when the reflected light 10111 is returned across two adjacent section numbers 21700, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The exposure code 10820 for each section number 21700 is estimated based on the generated codes 21701 to 21706 of packets 1 to 6. Therefore, by initializing memory (LUT) 10801 using the independent code 22000 and adjacent code 22001 as addresses and the section number 21700 corresponding to the independent code 22000 and adjacent code 22001 as data, and reading and accessing memory (LUT) 10801 using the exposure code 10820 as an address, it is possible to convert the exposure code 10820 into a section number corresponding to distance.Table 22010 is a data set for initializing memory (LUT) 10801. Since the independent code 22020 is "10" in hexadecimal notation, the data at address "10" in hexadecimal notation in table 22010 is 7, which is section number 22021 of the independent code 22020. In addition, since the adjacent code 22023 is "33" in hexadecimal notation, the data at address "33" in hexadecimal notation in table 22010 is set to 24.5, which is the average value of 24 and 25, which is section number 22024 of the adjacent code 22023. This is because, although it is known that the section number 22024 of the adjacent code 22023 indicates that the reflected light 10111 is returned across section numbers 24 and 25, the more detailed timing at which the reflected light 10111 is returned is not known, so by assuming that the reflected light 10111 is returned midway between the two adjacent sections, the average value of the two adjacent section numbers is used to limit the maximum error to half the section.

[0140] Here, a method of generating the generated codes 21701 to 21706 of packets 1 to 6 to be given to the control unit 10106 will be described. In order to calculate the section number using the exposure code 10820 generated from the signal values ​​of the above packets 1 to 6, the exposure code 10820 and the section number must correspond one-to-one. For this reason, the generated codes 21701 to 21706 of packets 1 to 6 are determined so that the values ​​of the independent code 22000 and the adjacent code 22001 do not overlap, and the exposure code 10820 and the section number correspond one-to-one. In addition, the generated codes 21701 to 21706 of packets 1 to 6 are determined so that the independent code 22000 and the adjacent code 22001 do not have the values ​​"00" and "3F" in hexadecimal notation. If the reflected light 10111 is returned at the timing when the value of the independent code 22000 or adjacent code 22001 is "00", the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, so the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. Also, if the object 10101 does not exist within the distance measurement range of section numbers 0 to 31, the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. For this reason, it is impossible to distinguish these two conditions from the signal values ​​of packets 1 to 6, so the generated codes 21701 to 21706 of packets 1 to 6 are generated so that the independent code 22000 and adjacent code 22001 do not have the value "00" in hexadecimal notation. By making the independent code 22000 and adjacent code 22001 not have a value of "00" in hexadecimal notation, it is possible to have one or more packets containing the reflected light 10111 in the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130. On the other hand, by generating generated codes 21701 to 21706 for packets 1 to 6 so that the independent code 22000 and adjacent code 22001 do not have a value of "3F" in hexadecimal notation, it is possible to have one or more packets not containing the reflected light 10111 in the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130.In addition, in case the exposure code 10820 matches "00," "1B," or "3F," which do not exist in the independent code 22000 or the adjacent code 22001, it is possible to determine that the section number has not been calculated correctly by setting the section number to a negative value of -1.

[0141] FIG. 21 is a timing chart of the distance calculation unit 21508 according to the second embodiment.

[0142] The notations in the figure that are the same as those in Fig. 10 are the same as those in Fig. 10. The notations "P1(11)CT" to "P6(11)CT" indicate the number of exposures of packets 1 to 6 of pixel 10200 at pixel address 11 in the following explanation, and correspond to the output of the selection circuit 21907.

[0143] The notation “P1(11)Sig / CT1” indicates (packet 1 signal value of solid-state imaging unit output signal 10130) / (packet 1 exposure count) of pixel 10200 at pixel address 11, and corresponds to packet 1 synchronized B signal 21921.

[0144] The notation “min(11)” indicates the minimum value of the packet 1 simultaneous B signal 21921 to the packet 1 simultaneous B signal 21926 of the pixel 10200 at pixel address 11, and corresponds to the simultaneous B minimum signal 21927.

[0145] The notation “min(11)×CT1” indicates (synchronous B minimum signal 21927)×(packet 1 exposure count) of pixel 10200 at pixel address 11, and corresponds to packet 1 multiplication signal 21931.

[0146] The notation “P1(11)Sig-mul” indicates (packet 1 synchronized A signal 21941)-(packet 1 multiplication signal 21931) of pixel 10200 at pixel address 11, and corresponds to the packet 1 subtraction signal 21951.

[0147] The notation “mx(11)” indicates the maximum value among the packet 1 subtraction signal 21951 to the packet 6 subtraction signal 21956 of the pixel 10200 at pixel address 11, and corresponds to the maximum value signal 21957.

[0148] The notation “mn(11)” indicates the minimum value among the packet 1 subtraction signal 21951 to the packet 6 subtraction signal 21956 of the pixel 10200 at pixel address 11, and corresponds to the minimum value signal 21958.

[0149] The notation “th(11)” indicates (mx(11)+mn(11)) / 2, that is, the average of the maximum value signal 21957 and the minimum value signal 21958 of the pixel 10200 at pixel address 11, and corresponds to the threshold signal 21960.

[0150] The notation "Nd(11)" corresponds to the section number 10131 of the pixel 10200 at pixel address 11. Here, "Nd(11)" and the like are expressed as integers.

[0151] 21, at timing 22100 before a valid signal value is output from the solid-state imaging unit output signal 10130, the control unit 10106 sets values ​​in the exposure counts 21901 to 21906 of packets 1 to 6 and the memory (LUT) 10801 via the control bus. Note that the packet 1 exposure count 21901 is 11, the packet 2 exposure count 21902 is 11, the packet 3 exposure count 21903 is 12, the packet 4 exposure count 21904 is 11, the packet 5 exposure count 21905 is 11, and the packet 6 exposure count 21906 is 14, and the memory (LUT) 10801 writes data in the table 22010. At timing 22101, the signal values ​​of packets 1 to 6 of pixel address 11 are sequentially sent from the solid-state imaging unit output signal 10130. The transmitted signal values ​​are sequentially sent to a synchronization unit (A) 21910, and at the same time, divided by the exposure counts 21901 to 21906 of packets 1 to 6, and sent to a synchronization unit (B) 21909. At timing 22102, an exposure code 10820 is determined using output signals 21941 to 21946 of the synchronization unit (A), output signals 21921 to 21926 of the synchronization unit (B), and the exposure counts 21901 to 21906 of packets 1 to 6. The exposure code 10820 is used as an address to perform read access to the memory (LUT) 10801, and at timing 22103, a section number signal 10131 corresponding to the distance of the pixel address 11 is output. By performing this operation for all pixels 10200 arranged two-dimensionally, all two-dimensional section numbers are output.

[0152] From the above operations, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 17.28 ms, and the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms. Therefore, the time required for one frame is 33.3 ms, and the frame rate of this distance measuring device is 30 fps. Compared to the conventional technology, it is possible to significantly expand the range that can be measured with a smaller number of packets, so by using this technology, it is possible to significantly expand the measuring range while maintaining the frame rate even under conditions where there is background light.

[0153] Here, the generated codes 10501 to 10506 of packets 1 to 6 are determined so that the independent code 10900 and adjacent code 10901 in Fig. 9 of the first embodiment do not become "00" in hexadecimal notation. On the other hand, the generated codes 21701 to 21706 of packets 1 to 6 are determined so that the independent code 22000 and adjacent code 22001 in Fig. 20 do not become "00" and "3F" in hexadecimal notation. By avoiding "3F" in this hexadecimal notation, the maximum section number in Fig. 20 is 30 and the maximum section number in Fig. 9 is 31, so the ranging range is narrowed. A method for further expanding the distance measurement range by changing the control sequence of light source unit 10102 and solid-state imaging unit 10105 in FIG. 16 to FIG. 22, generated codes 21701 to 21706 of packets 1 to 6 in FIG. 17 to FIG. 23, unit drive patterns 21631 to 21636 of packets 1 to 6 in FIGS. 18A to 18F to FIG. 24A to FIG. 24F, and changing the generation of initial values ​​of memory (LUT) 10801 in FIG. 20 to FIG. 25 will be described below.

[0154] Fig. 22 shows a control sequence of the light source unit 10102 and the solid-state imaging unit 10105 for further expanding the distance measurement range according to the embodiment 2. The difference from Fig. 16 is that the unit drive patterns 22231 to 22236 of packets 1 to 6 are different.

[0155] 23 is a diagram showing unit drive patterns 22231 to 22236 of packets 1 to 6 that control the solid-state imaging unit 10105 for further expanding the distance measurement range according to the second embodiment, and generated codes 22301 to 22306 of packets 1 to 6 that are given to the control unit 10106 to generate an ejection drive pulse 10127. A method of generating the generated codes 22301 to 22306 of packets 1 to 6 will be described with reference to FIG.

[0156] 24A to 24F are timing charts showing unit drive patterns 22231 to 22236 of packets 1 to 6 for further expanding the distance measurement range according to embodiment 2. These are generated using generation codes 22301 to 22306 of packets 1 to 6 and section number 10500, and the generation method is the same as that of FIGS. 18A to 18F.

[0157] Fig. 25 is a diagram showing a method of generating an initial value of the memory (LUT) 10801 for further expanding the distance measurement range according to the second embodiment. The initial value of the memory (LUT) 10801 is generated in the same manner as in Fig. 20, but the independent code 22500 overlaps with "01" in hexadecimal notation for the section number 22502, which is 0, and the section number 22503, which is 3. However, the reflected light 10111 is returned only to the section number 10500 of 0 when the distance to the object 10101 is 0. If the distance to the object 10101 is not 0, the irradiated light 10110 from the light source unit 10102 is reflected by the object 10101, and it takes time for the reflected light 10111 to reach the solid-state imaging unit 10105. Therefore, in actual use, the reflected light 10111 is returned only to the section number 10500 of 0. For this reason, when the exposure code 10820 is "01" in hexadecimal notation, it is reasonable to determine that the section number is 3 and that reflected light 10111 has been returned, and therefore it is possible to calculate the section number corresponding to the distance even if the independent code 22500 whose section number 10500 is 0 overlaps once with the independent code 22500 of a section whose section number 10500 is other than 0. The same is true when the independent code 22500 whose section number 10500 is 0 overlaps once with the adjacent code 22501 of a section whose section number 10500 is other than 0 and 1.

[0158] As a result of the above operation, by using this technology, it is possible to achieve the same distance measurement range regardless of the presence or absence of background light. Also, compared to conventional technology, the range that can be measured can be significantly expanded with a smaller number of packets, so it is possible to significantly expand the distance measurement range while maintaining the frame rate.

[0159] As described above, in the distance measuring device according to the second embodiment, the independent code of a unit section in which the light emission pulse and the exposure pulse have the same timing may be the same as any one of the independent codes of other unit sections and adjacent codes. In the example of FIG. 25, the independent code of a unit section in which the light emission pulse has the same timing is the same as all the independent codes of unit sections not having the same timing as the light emission pulse and any one of the adjacent codes. The unit section in which the light emission pulse and the exposure pulse have the same timing corresponds to a distance section with a distance of 0. The independent code of a distance section with a distance of 0 may be the same as any one of the other independent codes and adjacent codes.

[0160] According to this, even if the independent code of the timing of the light emission pulse overlaps with another independent code, it is possible to specify the distance section.

[0161] Here, each of the independent codes may include at least one 0-bit, and each of the adjacent codes may include at least one 0-bit.

[0162] According to this, regardless of whether the exposure code is an independent code or an adjacent code, it is possible to acquire the background light component, and it is possible to improve the distance measurement accuracy.

[0163] (Embodiment 3) In the first and second embodiments, a method of measuring distance based on a unit interval has been described. However, in order to achieve high distance measurement accuracy, it is necessary to shorten the unit interval itself, but it requires a lot of cost to realize a light source unit that realizes shorter pulse emission and a solid-state imaging unit that realizes shorter exposure. For this reason, in the third embodiment, a method of achieving high distance measurement accuracy without using means for shorter pulse emission or shorter exposure will be described.

[0164] FIG. 26 is a diagram illustrating a schematic configuration of a TOF (Time Of Flight) type distance measuring device and surrounding objects in an environment including background light according to the third embodiment. In FIG. As shown in FIG. 26, in an imaging space 10100, background light 21510 emitted from a background light source 21502 containing components with the same wavelength of 940 nm as the light source unit 10102, and pulsed irradiation light 10110 (pulse width 10 ns) with a wavelength of 940 nm irradiated from the light source unit 10102 are reflected by the object 10101, and reflected light 10111 of the irradiation light 10110 and background light reflected light 21511 of the background light 21510 are received by the solid-state imaging unit 10105 via an optical lens 10103 and an optical filter 10104 that transmits the near-infrared wavelength region around the wavelength of 940 nm, and an image is formed. The light emission timing of the light source unit 10102 and the exposure timing of the solid-state imaging unit 10105 are controlled by the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 of the pulse generating unit 10107 controlled by the control unit 10106 via a control bus. The light source unit 10102 irradiates the irradiation light 10110 when the light emission pulse 10120 is at a high level, and does not irradiate the irradiation light 10110 when the light emission pulse 10120 is at a low level. The solid-state imaging unit 10105 outputs the solid-state imaging unit output signal 10130, which is six types of signal values ​​corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6, to the distance calculation unit 32608 for each pixel. The distance calculation section 32608 uses the solid-state imaging section output signal 10130 and control information from the control section 10106 to output a section number signal 10131 corresponding to the distance to the object 10101 for each pixel.

[0165] The distance measuring device is made up of a light source unit 10102, an optical lens 10103, an optical filter 10104, a solid-state imaging unit 10105, a control unit 10106, a pulse generating unit 10107, and a distance calculation unit 32608. In terms of configuration, the light source unit 10102 has a drive circuit and a light emitting element, and emits light when a voltage is applied from the drive circuit. A laser diode or other light emitting element may be used as the light emitting element. The control unit 10106, the pulse generating unit 10107, and the distance calculation unit 32608 are realized by combining, for example, a CPU (Central Processing Unit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), an AFE (Analog Front End), etc.

[0166] 2 is a configuration diagram of a pixel 10200 of a solid-state imaging unit 10105 according to the first to fourth embodiments. As shown in FIG. 2, the pixel 10200 includes a photoelectric conversion pixel 10201 configured with a PD (Photodiode) that receives reflected light 10111 and performs photoelectric conversion, a drain 10210 for discharging a signal charge photoelectrically converted by the photoelectric conversion pixel 10201, and an FDA (Floating Diffusion Array) that accumulates the signal charge photoelectrically converted by the photoelectric conversion pixel 10201. The input / output amplifier 102 is configured with a signal charge storage section composed of source follower circuits 10221, an output selection transistor 10231, a source follower circuit 10222, an output selection transistor 10232, a source follower circuit 10223, an output selection transistor 10233, a source follower circuit 10224, an output selection transistor 10234, a source follower circuit 10225, an output selection transistor 10235, a source follower circuit 10226, and an output selection transistor 10236, which outputs a voltage value according to the signal charges stored in the source follower circuits 10211 to 10216.

[0167] Next, the operation of the pixel 10200 will be described. When the packet 1 exposure pulse 10121 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10211, when the packet 2 exposure pulse 10122 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10212, when the packet 3 exposure pulse 10123 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10213, when the packet 4 exposure pulse 10124 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10214, The signal charge photoelectrically converted in the pixel 10201 is accumulated in the FDA 10214, and when the packet 5 exposure pulse 10125 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10215, and when the packet 6 exposure pulse 10126 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10216, and when the discharge drive pulse 10127 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is discharged to the drain 10210. Therefore, when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the discharge drive pulse 10127 is set to a high level, so that when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is discharged to the drain 10210, and when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, the remaining five are set to a low level. By setting the discharge drive pulse 10127 to a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDAs 10211 to 10216 corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6 only when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, thereby performing six types of imaging per pixel corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6.As signal charge accumulates in FDA10211 to 10216, a voltage corresponding to the amount of signal charge is generated, and a packet 1 voltage value corresponding to the amount of signal charge of FDA10211, a packet 2 voltage value corresponding to the amount of signal charge of FDA10212, a packet 3 voltage value corresponding to the amount of signal charge of FDA10213, a packet 4 voltage value corresponding to the amount of signal charge of FDA10214, a packet 5 voltage value corresponding to the amount of signal charge of FDA10215, and a packet 6 voltage value corresponding to the amount of signal charge of FDA10216 are generated. By setting the output enable signal 10240 to a high level, the packet 1 voltage value passes through the source follower circuit 10221 and the output selection transistor 10231 to the pixel output signal 10241, the packet 2 voltage value passes through the source follower circuit 10222 and the output selection transistor 10232 to the pixel output signal 10242, the packet 3 voltage value passes through the source follower circuit 10223 and the output selection transistor 10233 to the pixel output signal 10243, the packet 4 voltage value passes through the source follower circuit 10224 and the output selection transistor 10234 to the pixel output signal 10244, the packet 5 voltage value passes through the source follower circuit 10225 and the output selection transistor 10235 to the pixel output signal 10245, and the packet 6 voltage value passes through the source follower circuit 10226 and the output selection transistor 10236 to the pixel output signal 10246, all at the same time.

[0168] Fig. 3 is a configuration diagram of the solid-state imaging section 10105 according to the first to fourth embodiments. As shown in Fig. 3, the solid-state imaging section 10105 has pixels 10200 arranged two-dimensionally, X in the horizontal direction and Y in the vertical direction, where X=320 and Y=240 in the first to fourth embodiments. Note that the number of pixels is just an example and is not limited to this. The output enable signal 10240 of the pixels 10200, consisting of pixel address 11, pixel address 12, and pixel address 1X, which are arranged side by side in the horizontal direction in the first row, is connected to a row selection signal 10300; the output enable signal 10240 of the pixels 10200, consisting of pixel address 21, pixel address 22, and pixel address 2X, which are arranged side by side in the horizontal direction in the second row, is connected to a row selection signal 10301; the output enable signal 10240 of the pixels 10200, consisting of pixel address 31, pixel address 32, and pixel address 3X, which are arranged side by side in the horizontal direction in the third row, is connected to a row selection signal 10302; and the output enable signal 10240 of the pixels 10200, consisting of pixel address Y1, pixel address Y2, and pixel address YX, which are arranged side by side in the horizontal direction in the Yth row, is connected to a row selection signal 10303. In addition, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 11, pixel address 21, pixel address 31, and pixel address Y1, which are arranged vertically in the first column, are connected to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 12, pixel address 22, pixel address 32, and pixel address Y2, which are arranged vertically in the second column, are connected to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of pixels 10200 including pixel address 1X, pixel address 2X, pixel address 3X, and pixel address YX, which are arranged vertically in the Xth column, are connected to vertical pixel signals 10331 to 10336. Vertical pixel signals 10311 to 10316, 10321 to 10326, and 10331 to 10336 are connected to a column AD 10370, and the output signal of the column AD 10370 is connected to a shift register 10371, so that the solid-state imaging unit output signal 10130 is output from the shift register 10371.

[0169] Next, the read operation of the solid-state imaging unit 10105 will be described. This read operation is the same as that of a general CMOS image sensor with six times the number of horizontal pixels. By setting the row selection signal 10300 to a high level, the row selection signal 10301 to a low level, the row selection signal 10302 to a low level, and the row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336, and input to the column AD 10370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a high level, row selection signal 10302 to a low level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are output to vertical pixel signals 10331 to 10336, and input to column AD370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a high level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are output to vertical pixel signals 10331 to 10336, and input to column AD 10370.By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a low level, and row selection signal 10303 to a high level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y1 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y2 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address YX are output to vertical pixel signals 10331 to 10336, and input to column AD 10370. The column AD 10370 AD converts the input voltage values ​​of packets 1 to 6 for X pixels into 12-bit signal values, generates a packet 1 signal value obtained by AD converting the packet 1 voltage value for X pixels, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value, and outputs them to the shift register 10371. The shift register 10371 outputs the input signal values ​​of packets 1 to 6 for X pixels to the solid-state imaging unit output signal 10130 while shifting them one by one.

[0170] Fig. 16 shows a control sequence of the light source unit 10102 and the solid-state imaging unit 10105 according to the embodiment 3. In the control sequence shown in Fig. 16, the control unit 10106 instructs the pulse generating unit 10107 through the control bus the number of times the frame unit drive pattern is repeated (12 times) and the number of times the unit drive patterns of packets 1 to 6 are repeated (300 times), as shown in Fig. 1, and the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 are generated in the pulse generating unit 10107 according to the number of times the frame unit drive pattern is repeated and the number of times the unit drive patterns of packets 1 to 6 are repeated. Note that Figure 16 explains the generation of unit drive patterns 21631 to 21636 of packets 1 to 6, and Figures 17 and 18A to 18F explain the generation method of the light emission pulse 10120, exposure pulses 10121 to 10126 of packets 1 to 6, and discharge drive pulse 10127 for each of packet 1 unit drive pattern 21631 to packet 6 unit drive pattern 21636.

[0171] As shown in FIG. 16, one frame is composed of a frame drive pattern 10400. The frame drive pattern 10400 is composed of 12 repetitions of a frame unit drive pattern 10410 and an imaging data readout 10411 that outputs the signal charges accumulated in the signal charge accumulation units of all the pixels 10200 from the solid-state imaging unit 10105. The frame unit drive pattern 10410 is composed of a packet 1 drive pattern 10421, a packet 2 drive pattern 10422, a packet 3 drive pattern 10423, a packet 4 drive pattern 10424, a packet 5 drive pattern 10425, and a packet 6 drive pattern 10426. The packet 1 drive pattern 10421 is composed of 300 repetitions of a packet 1 unit drive pattern 21631. The packet 2 drive pattern 10422 is composed of 300 repetitions of a packet 2 unit drive pattern 21632. The packet 3 drive pattern 10423 is composed of 300 repetitions of the packet 3 unit drive pattern 21633. The packet 4 drive pattern 10424 is composed of 300 repetitions of the packet 4 unit drive pattern 21634. The packet 5 drive pattern 10425 is composed of 300 repetitions of the packet 5 unit drive pattern 21635. The packet 6 drive pattern 10426 is composed of 300 repetitions of the packet 6 unit drive pattern 21636. The unit drive patterns 21631 to 21636 of packets 1 to 6 drive the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127. Details of the unit drive patterns 21631 to 21636 of packets 1 to 6 will be described in FIG. 17 and FIG. 18A to FIG. 18F. Furthermore, the control sequence of the light source unit 10102 and the solid-state imaging unit 10105 shown in FIG. 16 is just an example, and the present invention is not limited to this.

[0172] The unit drive patterns 21631 to 21636 of packets 1 to 6 are repeated 300 times in the drive patterns 10421 to 10426 of packets 1 to 6, respectively, and the drive patterns 10421 to 10426 of packets 1 to 6 are repeated 12 times in the frame unit drive patterns. That is, the unit drive patterns 21631 to 21636 of packets 1 to 6 are repeated 300×12=3600 times, respectively. By repeating 3600 times, it is possible to ensure a sufficient amount of light even if the amount of light of the irradiation light 10110 per time is small. On the other hand, by dividing the frame drive pattern 10400 into 12 frame unit drive patterns 10410, the time required for each frame unit drive pattern 10410 is shortened, and the apparent imaging timing of packets 1 to 6 can be synchronized. Furthermore, by repeating the frame-based drive pattern 10410 12 times, the blur caused by the movement of the object 10101 occurs evenly in packets 1 to 6, making it possible to suppress side effects such as data corruption during distance calculations caused by the movement of the object 10101.

[0173] Fig. 17 is a diagram showing unit drive patterns 21631 to 21636 of packets 1 to 6 that control the solid-state imaging unit 10105 according to the third embodiment, and generated codes 21701 to 21706 of packets 1 to 6 that are given to the control unit 10106 to generate a discharge drive pulse 10127. As shown in Fig. 17, the generated codes 21701 to 21706 of packets 1 to 6 are divided into 31 sections, from 0 to 30, in section number 21700, and a value of "0" or "1" is determined for each section number 21700, and are information for controlling the drive of exposure pulses 10121 to 10126 of packets 1 to 6, respectively. The section number 21700 and generated codes 21701 to 21706 of packets 1 to 6 are sent to the pulse generating unit 10107 via a control bus, and the pulse generating unit 10107 generates unit drive patterns 21631 to 21636 of packets 1 to 6 from the section number 21700 and generated codes 21701 to 21706 of packets 1 to 6. Note that the generated codes of packets 1 to 6 shown in Fig. 17 are just an example, and the generated codes of packets 1 to 6 are not limited to this.

[0174] 18A to 18F are timing charts showing packet 1 unit drive patterns 21631 to 6 unit drive patterns 21636 according to the third embodiment. As shown in Fig. 18A to 18F, the pulse generating unit 10107 switches the section number 10600 for each unit section (10 ns) between 80 sections from 0 to 79, and generates unit drive patterns 21631 to 21636 for packets 1 to 6 by controlling the light emission pulse 10120, the exposure pulses 10121 to 10126 for packets 1 to 6, and the discharge drive pulse 10127 using the generation codes 21701 to 21706 for packets 1 to 6 having the same section numbers as the section numbers 10600 and 21700, and the section number 10600. The reason why the section number 10600 of the pulse generating unit 10107 is set to a value (79) that is more than twice the maximum value (30) of the section number 21700 is to prevent the irradiation light 10110 from receiving the reflected light 10111 from the object 10101 located outside the distance measurement range (a section number greater than the maximum value of the section number 21700). For this reason, in a section number that does not exist in the section number 21700, a pulse is generated in which the light emission pulse 10120 is at a low level, the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, and the discharge drive pulse 10127 is at a high level. In this way, by controlling the solid-state imaging unit 10105, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 10 ns unit section x 80 number of section numbers x 300 repetitions of the packet unit drive pattern x 6 number of packets x 12 repetitions of the frame unit drive pattern = 17.28 ms. It should be noted that this unit interval specifies that the pulse width of the irradiated light 10110 and the exposure pulses 10121 to 10126 of packets 1 to 6 are the same, and does not limit the pulse width to 10 ns.

[0175] The following describes a method of controlling the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, which are in the section numbers 0 to 30 in which the section number 21700 exists.

[0176] 18A is a timing chart showing a packet 1 unit drive pattern 21631. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 1 exposure pulse 10121 is generated as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". The packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is a low level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and is a high level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "0", and a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0177] 18B is a timing chart showing the packet 2 unit drive pattern 21632. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 2 exposure pulse 10122 is generated as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 2 generation code 21702 corresponding to the section number 21700 is “1”, and is at high level when the packet 2 generation code 21702 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 2 exposure pulse 10122 is generated.

[0178] 18C is a timing chart showing the packet 3 unit drive pattern 21633. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 3 exposure pulse 10123 is generated as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 3 generation code 21703 corresponding to the section number 21700 is “1”, and at high level when the packet 3 generation code 21703 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 3 exposure pulse 10123 is generated.

[0179] 18D is a timing chart showing the packet 4 unit drive pattern 21634. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 4 exposure pulse 10124 is generated as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is low level when the packet 4 generation code 21704 corresponding to the section number 21700 is “1”, and is high level when the packet 4 generation code 21704 corresponding to the section number 21700 is “0”, and a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0180] 18E is a timing chart showing the packet 5 unit drive pattern 21635. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 5 exposure pulse 10125 is generated as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the logic inverted from the packet 5 exposure pulse 10125, being low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and being high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0".

[0181] 18F is a timing chart showing the packet 6 unit drive pattern 21636. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 6 exposure pulse 10126 is generated as a high level when the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and as a low level when the packet 6 generation code 21706 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 5 exposure pulse 10125 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the inverted logic of the packet 6 exposure pulse 10126, being low level when the packet 6 generation code 21706 corresponding to the section number 21700 is “1”, and being high level when the packet 6 generation code 21706 corresponding to the section number 21700 is “0”.

[0182] Fig. 7 is a timing diagram of the imaging data readout 10411 of the solid-state imaging unit 10105 according to the first to fourth embodiments. By controlling the row selection signals 10300 to 10303, the column AD 10370, and the shift register 10371, the signal values ​​of packets 1 to 6 of all the pixels 10200 shown in Fig. 3 are output to the solid-state imaging unit output signal 10130. Note that the operation of this imaging data readout 10411 is the same as that of a normal CMOS image sensor with six times the number of horizontal pixels.

[0183] As shown in Figure 7, at timing 10700, row selection signal 10300 is set to a high level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a low level, and row selection signal 10303 is set to a low level, so that the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336. The vertical pixel signals 10311 to 10316, the vertical pixel signals 10321 to 10326, and the vertical pixel signals 10331 to 10336 are connected to a column AD 10370, and are AD converted into 12-bit signal values, and a packet 1 signal value obtained by AD converting the packet 1 voltage value of pixel address 11, pixel address 12, and pixel address 1X, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value are generated. At a timing 10701 when the AD conversion is completed, the AD converted signal values ​​of packets 1 to 6 of pixel address 11, pixel address 12, and pixel address 1X are output to a shift register 10371.The shift register 10371 shifts the input signal values ​​and outputs them from the solid-state imaging unit output signal 10130 in the following order: packet 1 signal value of pixel address 11, packet 2 signal value of pixel address 11, packet 3 signal value of pixel address 11, packet 4 signal value of pixel address 11, packet 5 signal value of pixel address 11, packet 6 signal value of pixel address 11, packet 1 signal value of pixel address 12, packet 2 signal value of pixel address 12, packet 3 signal value of pixel address 12, packet 4 signal value of pixel address 12, packet 5 signal value of pixel address 12, packet 6 signal value of pixel address 12, packet 1 signal value of pixel address 1X, packet 2 signal value of pixel address 1X, packet 3 signal value of pixel address 1X, packet 4 signal value of pixel address 1X, packet 5 signal value of pixel address 1X, and packet 6 signal value of pixel address 1X. Also, at timing 10701, row selection signal 10300 is set to low level, row selection signal 10301 is set to high level, row selection signal 10302 is set to low level, and row selection signal 10303 is set to low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are input to column AD 10370, and AD conversion is performed to a 12-bit signal value. At timing 10702 when the AD conversion of the column AD 10370 and the shift operation of the shift register 10371, which started at timing 10701, are completed, the result of the AD conversion of the column AD 10370, which started at timing 10701, is output to the shift register 10371, and as before, the input signal value is shifted and output from the solid-state imaging unit output signal 10130. Also, at timing 10702, row selection signal 10300 is set to a low level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a high level, and row selection signal 10303 is set to a low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are input to column AD 10370, and AD conversion to a 12-bit signal value is performed in the same manner as before.By performing this operation for all rows, the signal values ​​of all pixels 10200 are output from the solid-state imaging unit output signal 10130. Note that, although there are six FDAs 10211 to 10216 shown in FIG. 2 and six generation codes 21701 to 21706 of packets 1 to 6 shown in FIG. 17, the number is not limited to six. If the number of signal charge storage units is greater than the number of packet generation codes, the signal values ​​of packets 1 to 6 can be obtained in one frame, so that it is possible to calculate the section number corresponding to the distance with one frame of data. If the number of signal charge storage units is greater than the number of packet generation codes, it is possible to calculate the section number corresponding to the distance by obtaining the signal values ​​of packets 1 to 6 using data of multiple frames. Note that the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is calculated by multiplying the number of pixels (horizontal pixel number X320+horizontal blanking period 80)×(vertical pixel number Y240+vertical blanking period 80) in consideration of the blanking period. This is obtained by dividing the offset offset period 23) by the output clock frequency of the solid-state imaging unit output signal 10130. If the output clock frequency is 39.319 MHz, the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms.

[0184] FIG. 27 is a diagram showing the configuration of the distance calculation unit 32608 according to the third embodiment. 27, the distance calculation unit 32608 has the exposure numbers 21901 to 21906 of packets 1 to 6, which are controlled by the control unit 10106 via a control bus, and a memory (LUT) 10801. The distance calculation unit 32608 has a selection circuit 21907 which selects the exposure numbers 21901 to 21906 of packets 1 to 6, a divider 21908 which divides the solid-state imaging unit output signal 10130 by the output signal of the selection circuit 21907, a synchronization unit (B) 21909 which synchronizes the output signal of the divider 21908 for each pixel address, a minimum value detector 21911 which detects the minimum value of the synchronization unit (B) output signals 21921 to 21926, a multiplier 21912 which multiplies the minimum value detector output signal 21927 by the exposure numbers 21901 to 21906 of packets 1 to 6, and a subtractor 21913 that subtracts the synchronization unit (A) output signals 21941 to 21946 from the multiplier output signals 21931 to 21936; a maximum / minimum detector 21914 that detects the maximum and minimum values ​​of the subtraction signals 21951 to 21956; and a maximum / minimum detector 21914 that calculates the average value of a maximum value signal 21957 and a minimum value signal 21958 of the maximum / minimum detector and sets a threshold signal 21960. The distance calculator 32608 is made up of an average value calculator 21915 which generates an average value, a comparator 10802 which compares the subtraction signals 21951 to 21956 with a threshold signal 21960, a data selector 32710 which selects the data of the subtraction signals 21951 to 21956, and a ratio calculation divider 32713 which calculates the ratio between the two unit interval reflected light 32712 and the one unit interval reflected light 32711 output from the data selector 32710. Next, the operation of the distance calculator 32608 will be described.In summary, the method improves distance measurement accuracy by determining the interval number (integer part) 32715 where the reflected light 10111 is returned in the same manner as in the second embodiment, and further, when the reflected light 10111 is returned across two adjacent unit intervals, the interval number (decimal part) 32714 obtained by further dividing the unit interval is obtained based on the ratio between the 2-unit interval reflected light 32712 corresponding to the light amount of the reflected light 10111 returned to the unit interval farther from the light emission pulse 10120 (long distance side) out of the two adjacent unit intervals. Note that the following description is based on the assumption that the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130 include at least one packet that does not include the reflected light 10111 and at least one packet that includes the reflected light 10111. A method for realizing this constraint will be described with reference to FIG. 28.

[0185] First, a method of calculating the section number (integer part) 32715 will be described. The signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130 are synchronized for each pixel address by the synchronization unit (A) 21910, and the synchronization unit (A) output signals 21941 to 21946 are generated. In addition, since the number of times that the exposure pulses 10121 to 10126 of packets 1 to 6 become high level differs for each signal value of packets 1 to 6, the solid-state imaging unit output signal 10130 selects the number of exposures 21901 to 21906 of packets 1 to 6 for each signal value of packets 1 to 6 by a selection circuit 21907, divides by a divider 21908, and inputs to a synchronization unit (B) 21909. A method for generating the exposure counts 21901 to 21906 of packets 1 to 6 will be described with reference to FIG. 28. The synchronization unit (B) synchronizes the output signal of the divider 21908 for each pixel address, and outputs the result to the minimum value detector 21911. The minimum value detector 21911 estimates a signal value corresponding to the amount of background light reflected light 21511 by detecting the minimum value of the synchronization unit (B) output signals 21921 to 21926, and generates a minimum value detector output signal 21927. The minimum value detector output signal 21927 is multiplied by the exposure counts 21901 to 21906 of packets 1 to 6 by a multiplier 21912, and multiplier output signals 21931 to 21936, which are signal values ​​corresponding to the amount of background light reflected light 21511 included in each signal value of packets 1 to 6, are generated. A subtractor 21913 subtracts the synchronization unit (A) output signals 21941 to 21946 from the multiplier output signals 21931 to 21936 to generate subtraction signals 21951 to 21956 from which the background reflected light 21511 component contained in the signal values ​​of packets 1 to 6 has been removed. A maximum / minimum detector 21914 generates a maximum value signal 21957 and a minimum value signal 21958 of the subtraction signals 21951 to 21956. Here, since the signal values ​​of packets 1 to 6 include one or more packets that do not include the reflected light 10111 and one or more packets that include the reflected light 10111, the maximum value signal 21957 is a signal value corresponding to the amount of reflected light 10111, and the minimum value signal 21958 is a black level value.By generating the average value of the maximum value signal 21957 and the minimum value signal 21958 by the average value calculator 21915, a threshold signal 21960 is generated, which is a threshold for detecting a packet including the reflected light 10111 and a packet not including the reflected light 10111. By comparing the threshold signal 21960, which is the average value of the maximum value signal 21957 and the minimum value signal 21958, with the subtraction signals 21951 to 21956 by the comparator 10802, it is possible to reduce the influence of variations due to dark currents of the photoelectric conversion pixels 10201 and the FDAs 10211 to 10216, and optical shot noise, and to set the result of the comparator 10802 of the subtraction signals 21951 to 21956 including the reflected light 10111 to "1" and the result of the comparator 10802 of the subtraction signals 21951 to 21956 not including the reflected light 10111 to "0". Therefore, the exposure code 10820 obtained by bit-wise concatenating the comparator output signals 21961 to 21966 indicates a packet including the reflected light 10111. The exposure code 10820 is used as a read address to access the memory (LUT) 10801, and the read data of the memory (LUT) 10801 becomes the section number (integer part) 32715. The initial value of the memory (LUT) 10801 is set by the control unit 10106 via the control bus, and a method of generating the initial value to be set in the memory (LUT) 10801 will be described with reference to FIG. 28.

[0186] Next, a method of calculating the section number (decimal part) 32714 will be described. In the second embodiment, when the reflected light 10111 is returned across two adjacent section numbers 21700, the detailed timing of the reflected light 10111 being returned is unknown, so the reflected light 10111 is assumed to be returned in the middle of the two adjacent sections, and the average value of the two adjacent section numbers is used to suppress the maximum error to half of the section. However, the distance measurement accuracy is improved by calculating the section number (decimal part) 32714, which further subdivides the unit section, using the ratio (1 unit section reflected light 32711÷2 unit section reflected light 32712) of the 2 unit section reflected light 32712 corresponding to the light amount of the reflected light 10111 returned to the unit section farther from the light emission pulse 10120 (long distance side). For example, if the reflected light 10111 starts returning 2.5 ns after the beginning of a certain unit interval, the reflected light 10111 will be present for 7.5 ns on the side closer to the light emission pulse 10120 (near distance side) of two adjacent unit intervals, and for 2.5 ns on the side farther from the light emission pulse 10120 (far distance side) of two adjacent unit intervals. Here, theoretically, if the reflected light 32712 in two unit intervals is "1", the reflected light 32711 in one unit interval will be "0.25", so that a proportional relationship is established, and the delay time from the start of the unit interval time to the reflected light 10111 starting to return can be calculated as 10 ns x 0.25 = 2.5 ns, which is the unit interval time. This distance measuring device outputs an interval number corresponding to the distance. Also, the time difference from the generation of the irradiated light 10110 to the return of the reflected light 10111 can be calculated by multiplying the interval number at which the reflected light 10111 returns by the time of the unit interval. For this reason, it is possible to improve the distance measurement accuracy by dividing the 1 unit interval reflected light 32711 by the 2 unit interval reflected light 32712 and setting the interval number (decimal part) 32714. The 1 unit interval reflected light 32711 and the 2 unit interval reflected light 32712 are generated by the data selection 32710 using the subtraction signals 21951 to 21956 and divided by the ratio calculation divider 32713 to generate the interval number (decimal part) 32714.Details of data selection 32710 will be explained with reference to Figures 29A, 29B, and 31A to 31C.

[0187] Finally, the interval number (integer part) 32715 and the interval number (decimal part) 32714 are bit-concatenated to generate the interval number signal 10131.

[0188] Fig. 28 is a diagram showing a method for generating initial values ​​of the exposure counts 21901 to 21906 of packets 1 to 6 and the memory (LUT) 10801 according to the third embodiment. As shown in Fig. 28, the exposure counts 21901 to 21906 of packets 1 to 6 and the initial values ​​of the memory (LUT) 10801 are generated from the section number 21700 and the generation codes 21701 to 21706 of packets 1 to 6 for generating unit drive patterns 22231 to 22236 of packets 1 to 6 that control the light source unit 10102 and the solid-state imaging unit 10105.

[0189] First, a method for calculating the exposure counts 21901 to 21906 of packets 1 to 6 will be described. The amount of background light reflection 21511 included in the signal values ​​of packets 1 to 6 is proportional to the number of times (exposure count) that the exposure pulses 10121 to 10126 of packets 1 to 6 are set to a high level. For this reason, the control unit 10106 generates the exposure counts 21901 to 21906 of packets 1 to 6 by calculating, for each generated code of packets 1 to 6, the number of sections in which the generated code of packets 1 to 6 is "1" in all section numbers 21700.

[0190] Next, a description will be given of a method for generating an initial value of the memory (LUT) 10801. The control unit 10106 generates an independent code 22000 as a 6-bit binary number by regarding the packet 1 generated code 21701 as bit 0, the packet 2 generated code 21702 as bit 1, the packet 3 generated code 21703 as bit 2, the packet 4 generated code 21704 as bit 3, the packet 5 generated code 21705 as bit 4, and the packet 6 generated code 21706 as bit 5. For example, the independent code 22020 of 22021 with section number 21700 being 7 is regarded as a 6-bit binary number with the "0" of packet 1 generation code 21701 with section number 21700 being 7 as bit 0, the "0" of packet 2 generation code 21702 with section number 21700 being 7 as bit 1, the "0" of packet 3 generation code 21703 with section number 21700 being 7 as bit 2, the "0" of packet 4 generation code 21704 with section number 21700 being 7 as bit 3, the "1" of packet 5 generation code 21705 with section number 21700 being 7 as bit 4, and the "0" of packet 6 generation code 21706 with section number 21700 being 7 as bit 5, which is expressed as "10" in hexadecimal. Furthermore, the control unit 10106 generates an adjacent code 22001 by performing a logical OR operation on each bit of the independent codes 22000 of two adjacent sections.For example, the adjacent code 32823 in the part of 32824 where the section numbers 21700 are adjacent to 24 and 25 is calculated by ORing the value of bit 0 of the independent code whose section number is 21700 and the value of bit 0 of the independent code whose section number is 21700 and the value of bit 0 of the independent code whose section number is 21700 and the value of bit 0 of the independent code whose section number is 21700 and the value of bit 1 of the independent code whose section number is 21700 and the value of bit 1 of the independent code whose section number is 21700 and the value of bit 2 ... "0" is considered as bit 2, the result of the logical OR operation of "0" (bit 3 of the independent code whose interval number is 21700 and 24) and "0" (bit 3 of the independent code whose interval number is 21700 and 25) is "0" (bit 3), the result of the logical OR operation of "0" (bit 4 of the independent code whose interval number is 21700 and 24) and "1" (bit 4 of the independent code whose interval number is 21700 and 25) is "1" (bit 4), and the result of the logical OR operation of "1" (bit 5 of the independent code whose interval number is 21700 and 24) and "1" (bit 5 of the independent code whose interval number is 21700 and 25) is "1" (bit 5). These are considered as a 6-bit binary number, and the hexadecimal notation is "33". Here, the independent code 22000 indicates that when the reflected light 10111 is returned only from one section number 21700, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The adjacent code 22001 indicates that when the reflected light 10111 is returned across two adjacent section numbers 21700, the signal values ​​of packets 1 to 6 contain the reflected light 10111 as a "1" and those that do not contain the reflected light 10111 as a "0." The exposure code 10820 for each section number 21700 is estimated based on the generated codes 21701 to 21706 of packets 1 to 6. Therefore, by initializing memory (LUT) 10801 using the independent code 22000 and adjacent code 22001 as addresses and the section number 21700 corresponding to the independent code 22000 and adjacent code 22001 as data, and reading and accessing memory (LUT) 10801 using the exposure code 10820 as an address, it is possible to convert the exposure code 10820 into a section number corresponding to distance.Table 22010 is a data set for initializing memory (LUT) 10801. Since independent code 22020 is "10" in hexadecimal notation, the data at address "10" in hexadecimal notation in table 22010 is 7, which is interval number 22021 of independent code 22020. In addition, adjacent code 32823 is "33" in hexadecimal notation, so 24, which is the smaller of interval number 32824 of adjacent code 32823, is set as data at address "33" in hexadecimal notation in table 22010. This is because, for section number 32824 of adjacent code 32823, when reflected light 10111 is returned when section number 21700 spans 24 and 25, the detailed timing at which reflected light 10111 is returned is calculated separately as the ratio of 2-unit section reflected light 32712, which corresponds to the amount of reflected light 10111 returned from section number 21700 24 and 25, and 1-unit section reflected light 32711, which corresponds to the amount of reflected light 10111 returned from section number 21700 25.

[0191] Here, a method of generating the generated codes 21701 to 21706 of packets 1 to 6 to be given to the control unit 10106 will be described. In order to calculate the section number using the exposure code 10820 generated from the signal values ​​of the above packets 1 to 6, the exposure code 10820 and the section number must correspond one-to-one. For this reason, the generated codes 21701 to 21706 of packets 1 to 6 are determined so that the values ​​of the independent code 22000 and the adjacent code 22001 do not overlap, and the exposure code 10820 and the section number correspond one-to-one. In addition, the generated codes 21701 to 21706 of packets 1 to 6 are determined so that the independent code 22000 and the adjacent code 22001 do not have the values ​​"00" and "3F" in hexadecimal notation. If the reflected light 10111 is returned at the timing when the value of the independent code 22000 or adjacent code 22001 is "00", the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, so the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. Also, if the object 10101 does not exist within the distance measurement range of section numbers 0 to 31, the signal values ​​of packets 1 to 6 do not include the reflected light 10111 component. For this reason, it is impossible to distinguish these two conditions from the signal values ​​of packets 1 to 6, so the generated codes 21701 to 21706 of packets 1 to 6 are generated so that the independent code 22000 and adjacent code 22001 do not have the value "00" in hexadecimal notation. By making the independent code 22000 and adjacent code 22001 not have a value of "00" in hexadecimal notation, it is possible to have one or more packets containing the reflected light 10111 in the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130. On the other hand, by generating generated codes 21701 to 21706 for packets 1 to 6 so that the independent code 22000 and adjacent code 22001 do not have a value of "3F" in hexadecimal notation, it is possible to have one or more packets not containing the reflected light 10111 in the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130.In addition, in case the exposure code 10820 matches "00," "1B," or "3F," which do not exist in the independent code 22000 or the adjacent code 22001, it is possible to determine that the section number has not been calculated correctly by setting the section number to a negative value of -1.

[0192] 29A and 29B are diagrams showing the processing contents of the data selection 32710 of the distance calculation unit 32608 according to embodiment 3. When the reflected light 10111 returns across two adjacent section numbers 21700, the subtraction signals 21951 to 21956 of packets 1 to 6 can be classified into the following four types according to the combinations of the generated codes 21701 to 21706 of packets 1 to 6 of the two sections constituting the adjacent codes.

[0193] Specifically, the distance calculator 32608 classifies n types of signal values ​​based on the combination of each bit of two independent codes corresponding to adjacent codes. That is, when one bit of the two independent codes is 0 and the other bit of the two independent codes is 0, the distance calculator 32608 classifies the signal values ​​as A. Similarly, the distance calculator 32608 classifies the signal values ​​as B when one bit is 1 and the other bit is 0, as C when one bit is 0 and the other bit is 1, and as D when one bit is 1 and the other bit is 1.

[0194] Class A corresponds to a packet generation code on the side closer to the light emitting pulse 10120 being "0", and a packet generation code on the side farther from the light emitting pulse 10120 being "0".

[0195] Class B corresponds to a packet generation code on the side closer to the light emitting pulse 10120 being "1" and a packet generation code on the side farther from the light emitting pulse 10120 being "0".

[0196] Class C corresponds to a packet generation code on the side closer to the light emitting pulse 10120 being "0" and a packet generation code on the side farther from the light emitting pulse 10120 being "1".

[0197] Class D corresponds to a packet generation code "1" on the side closer to the light emitting pulse 10120 and a packet generation code "1" on the side farther from the light emitting pulse 10120.

[0198] In this way, the distance calculation unit 32608 classifies n types of signal values ​​based on the bit-by-bit combination of two independent codes corresponding to adjacent codes. Here, the 2-unit interval reflected light 32712 corresponding to the light amount of the reflected light 10111 returning to two adjacent unit intervals can be generated using the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D, or the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category B+the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C.

[0199] Therefore, for each exposure code 10820, if subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D are present, the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D are used, and if subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D are not present, the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category B + the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C are used to generate 2-unit interval reflected light 32712.

[0200] In addition, one unit interval reflected light 32711, which corresponds to the amount of reflected light 10111 returning to the unit interval farther (long distance) from the light emission pulse 10120 out of two adjacent unit intervals, can be generated using subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C.

[0201] The generated codes 21701 to 21706 of packets 1 to 6 are generated so that the generated code on the side closer to the light emission pulse 10120 is "0" and the generated code on the side farther from the light emission pulse 10120 is "1" so that subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C exist in all adjacent codes 22001. For this reason, one unit interval reflected light 32711 is generated for each exposure code 10820 using subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C.

[0202] In addition, if there are multiple subtraction signals 21951 to 21956 for packets 1 to 6 classified as category B, category C, or category D, one of them is selected to generate 2-unit interval reflected light 32712 and 1-unit interval reflected light 32711.

[0203] Here, when the exposure code 10820 is "0B", category B is the packet 2 subtraction signal 21952, category C is the packet 1 subtraction signal 21951, and category D is the packet 4 subtraction signal 21954. The 2 unit interval reflected light 32712 becomes the packet 4 subtraction signal 21954 because the packet 4 subtraction signal 21954 classified into category D exists, and the 1 unit interval reflected light 32711 becomes the packet 1 subtraction signal 21951 because the packet 1 subtraction signal 21951 classified into category C exists.

[0204] Furthermore, when the exposure code 10820 is "0C", classification B is the packet 3 subtraction signal 21953, classification C is the packet 4 subtraction signal 21954, and there is no classification D. Therefore, the 2 unit interval reflected light 32712 is the packet 3 subtraction signal 21953 classified into classification B+the packet 4 subtraction signal 21954 classified into classification C, since there are no subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification D, and the 1 unit interval reflected light 32711 is the packet 4 subtraction signal 21954, since there is a packet 4 subtraction signal 21954 classified into classification C.

[0205] When the reflected light 10111 returns only to one interval number 21700, the irradiation light 10110 and the exposure pulses 10121 to 10126 of packets 1 to 6 have the same pulse width (10 ns), so distance measurement accuracy is ensured without calculating the ratio between the 1 unit interval reflected light 32711 and the 2 unit interval reflected light 32712. For this reason, when the exposure code 10820 and the independent code 22000 are equal, the 2 unit interval reflected light 32712 is fixed to "1" and the 1 unit interval reflected light 32711 is fixed to "0" so that the calculation result of the ratio calculation divider 32713 becomes "0". When there are a plurality of subtraction signals 21951 to 21956 of packets 1 to 6 classified into category B, category C, or category D, it is possible to improve the S / N ratio by using a plurality of subtraction signals 21951 to 21956 of packets 1 to 6, thereby improving the light utilization rate for the reflected light 10111. This will be described with reference to Figs. 31A to 31C.

[0206] FIG. 30 is a timing chart of the distance calculation unit 32608 according to the third embodiment.

[0207] 21 and the like have the same meaning. The notation “N(11)” indicates the integer part of the section number 10131 of the pixel 10200 at the pixel address 11 in the following explanation, and corresponds to the output of the LUT 10801.

[0208] The notation "S1(11)" corresponds to the reflected light 32711 in one unit interval of the pixel 10200 at pixel address 11.

[0209] The notation "S0(11)" corresponds to the two unit interval reflected light 32712 of pixel 10200 at pixel address 11.

[0210] The notation “de(11)” indicates S1(11) / S0(11), that is, (1 unit interval reflected light 32711) / (2 unit interval reflected light 32712) of pixel 10200 with pixel address 11, and corresponds to the decimal part of interval number 10131.

[0211] Notations such as "Nd(11)" do not include a decimal part in Fig. 21, but do include a decimal part in Fig. 30. That is, the notation "Nd(11)" in Fig. 30 corresponds to N(11)+de(11), that is, the integer and decimal parts of section number 10131 of pixel 10200 at pixel address 11. Here, "+" indicates concatenation or addition.

[0212] 30, at timing 33000 before a valid signal value is output from the solid-state imaging unit output signal 10130, the control unit 10106 sets values ​​in the exposure counts 21901 to 21906 of packets 1 to 6 and the memory (LUT) 10801 via the control bus. Note that the packet 1 exposure count 21901 is 11, the packet 2 exposure count 21902 is 11, the packet 3 exposure count 21903 is 12, the packet 4 exposure count 21904 is 11, the packet 5 exposure count 21905 is 11, and the packet 6 exposure count 21906 is 14, and the memory (LUT) 10801 writes data in the table 32810. At timing 33001, the signal values ​​of packets 1 to 6 of pixel address 11 are sequentially sent from the solid-state imaging unit output signal 10130. The transmitted signal values ​​are sequentially sent to a synchronization unit (A) 21910, and at the same time, divided by the exposure numbers 21901 to 21906 of packets 1 to 6, and sent to a synchronization unit (B) 21909. At timing 33002, an exposure code 10820 is determined using the synchronization unit (A) output signals 21941 to 21946, the synchronization unit (B) output signals 21921 to 21926, and the exposure numbers 21901 to 21906 of packets 1 to 6. The exposure code 10820 is used as an address to perform read access to the memory (LUT) 10801, and at timing 33003, a section number (integer part) 32715 corresponding to the distance of the pixel address 11 is generated. Furthermore, using the subtraction signals 21951 to 21956 of packets 1 to 6 and the exposure code 10820, the data selection 32710 generates the reflected light for two unit intervals 32712 and the reflected light for one unit interval 32711, and the ratio calculation divider 32713 generates the interval number (decimal part) 32714. The interval number (integer part) 32715 and the interval number (decimal part) 32714 are bit-concatenated to generate the interval number signal 10131. By performing this operation for all pixels 10200 arranged two-dimensionally, all two-dimensional interval numbers are output.

[0213] In Figures 29A and 29B, when there are multiple subtraction signals 21951 to 21956 of packets 1 to 6 classified into category B, category C, or category D, one of them is selected to generate 1 unit interval reflected light 32711 and 2 unit interval reflected light 32712. However, a method of generating 1 unit interval reflected light 32711 and 2 unit interval reflected light 32712 using multiple subtraction signals 21951 to 21956 of packets 1 to 6 will be described.

[0214] Figures 31A to 31C are diagrams showing the processing contents of data selection 32710 of distance calculation unit 32608 with improved distance measurement accuracy according to embodiment 3. By using the data selection processing contents shown in Figures 31A to 31C instead of the data selection processing contents shown in Figures 29A and 29B, it is possible to improve distance measurement accuracy.

[0215] When the reflected light 10111 returns across two adjacent section numbers 21700, the subtraction signals 21951 to 21956 of packets 1 to 6 can be classified into the following four types based on the combinations of the generated codes 21701 to 21706 of packets 1 to 6 in the two sections that make up the adjacent codes.

[0216] Class A corresponds to the generated code on the side closer to the light emitting pulse 10120 being "0", and the generated code on the side farther from the light emitting pulse 10120 being "0".

[0217] Class B corresponds to a generated code that is closer to the light emitting pulse 10120 being "1" and a generated code that is farther from the light emitting pulse 10120 being "0".

[0218] Class C corresponds to a generated code that is closer to the light emitting pulse 10120 being "0" and a generated code that is farther from the light emitting pulse 10120 being "1".

[0219] Class D corresponds to a generated code "1" on the side closer to the light emitting pulse 10120 and a generated code "1" on the side farther from the light emitting pulse 10120.

[0220] The reflected light for two unit intervals 32712 and the reflected light for one unit interval 32711 can be calculated using the following four types of calculation methods depending on the presence or absence of subtraction signals 21951 to 21956 for packets 1 to 6 classified into category B, category C, or category D. When subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B, classification C, and classification D exist, the 2-unit interval reflected light 32712 is calculated as the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification D + the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B + the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C, and the 1-unit interval reflected light 32711 is calculated as the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification D - the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B + the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C. If subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B and classification C exist, but subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification D do not exist, the 2-unit interval reflected light 32712 is calculated as the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B + the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C, and the 1-unit interval reflected light 32711 is calculated as the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C. If subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C and classification D exist, and subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification B do not exist, the 2-unit interval reflected light 32712 is calculated from the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification D, and the 1-unit interval reflected light 32711 is calculated from the subtraction signals 21951 to 21956 of packets 1 to 6 classified into classification C.When subtraction signals 21951 to 21956 of packets 1 to 6 classified into categories B and D exist, and subtraction signals 21951 to 21956 of packets 1 to 6 classified into category C do not exist, the two-unit interval reflected light 32712 is calculated from the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D, and the one-unit interval reflected light 32711 is calculated from the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category D minus the subtraction signals 21951 to 21956 of packets 1 to 6 classified into category B. Furthermore, when multiple subtraction signals 21951 to 21956 of packets 1 to 6 exist in categories B, C, and D, the average value of the multiple subtraction signals 21951 to 21956 of packets 1 to 6 is used. 29A and 29B, by using subtraction signals 21951 to 21956 of multiple packets 1 to 6 to calculate 1-unit interval reflected light 32711 and 2-unit interval reflected light 32712, it is possible to improve the light utilization rate for reflected light 10111 and improve the S / N ratio. Note that the methods of generating 1-unit interval reflected light 32711 and 2-unit interval reflected light 32712 shown in Figs. 29A, 29B, and 31A to 31C are merely examples and are not intended to be limiting.

[0221] From the above operation, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 17.28 ms, and the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms. Therefore, the time required for one frame is 33.3 ms, and the frame rate of this distance measuring device is 30 fps. Compared to the conventional technology, it is possible to significantly expand the range that can be measured with a smaller number of packets. Therefore, by using this technology, even under conditions where there is background light, it is possible to significantly expand the measuring range while maintaining the frame rate, and to achieve measuring accuracy with further subdivision of the unit section without using shorter pulse emission or shorter exposure means.

[0222] The distance calculation unit 32608 may use signal values ​​classified into at least two of categories B, C, and D to calculate distances obtained by subdividing the distance section.

[0223] As described above, in the distance measuring device of embodiment 3, when the exposure code and the adjacent code match, the distance calculation unit classifies the signal output unit into n types based on the bit-by-bit combination of two independent codes corresponding to the adjacent codes, and calculates the distance between two corresponding adjacent unit sections using the classified signal values.

[0224] According to this, when the exposure code and adjacent code match, the distance to the object can be estimated in a range that straddles the boundary between two corresponding distance sections and at a more precise position within a range that is less than the distance section, thereby improving distance measurement accuracy.

[0225] Here, the distance calculation unit may classify the n types of signal values ​​of the signal output unit into four types based on a bit-by-bit combination of the two independent codes that constitute the adjacent codes: classification A when the bit of the independent code closer to the light emission pulse is 0 and the bit of the independent code farther from the light emission pulse is 0; classification B when the bit of the independent code closer to the light emission pulse is 1 and the bit of the independent code farther from the light emission pulse is 0; classification C when the bit of the independent code closer to the light emission pulse is 0 and the bit of the independent code farther from the light emission pulse is 1; and classification D when the bit of the independent code closer to the light emission pulse is 1 and the bit of the independent code farther from the light emission pulse is 1, and calculate the distance using signal values ​​classified into at least two of classifications B, C, and D.

[0226] According to this, when the exposure code and adjacent code match, the distance to the object can be estimated in a range that straddles the boundary between two corresponding distance sections and at a more precise position within a range that is less than the distance section, thereby improving distance measurement accuracy.

[0227] Here, the distance calculation unit may use the signal values ​​classified into the category A and calculate the distance by removing background light components contained in each of the signal values ​​classified into the category B, the category C, and the category D.

[0228] According to this, when the exposure code and the adjacent code match, the influence of background light is reduced and the distance measurement accuracy can be further improved.

[0229] (Embodiment 4) In the first, second and third embodiments, it has been described that the present technology can significantly expand the distance measurement range. However, since the amount of reflected light attenuates inversely proportional to the square of the distance, if imaging is performed so that the close-distance side is not saturated, the amount of exposure on the long-distance side becomes extremely small, making it difficult to measure the long-distance side, and if the amount of light is increased so that the long-distance side can be measured, the close-distance side becomes saturated and distance measurement becomes impossible. In order to solve this problem, a method will be described in which the difference in the amount of exposure between the close-distance side and the long-distance side is reduced by changing the number of exposures for each distance, making it possible to measure the entire distance measurement range from the close-distance side to the long-distance side.

[0230] FIG. 32 is a diagram illustrating a schematic configuration of a TOF (Time Of Flight) type distance measuring device and surrounding objects in an environment including background light according to the fourth embodiment. In FIG. As shown in FIG. 32, in an imaging space 10100, background light 21510 emitted from a background light source 21502 containing components with the same wavelength of 940 nm as the light source unit 10102, and pulsed irradiation light 10110 (pulse width 10 ns) with a wavelength of 940 nm irradiated from the light source unit 10102 are reflected by the object 10101, and reflected light 10111 of the irradiation light 10110 and background light reflected light 21511 of the background light 21510 are received by the solid-state imaging unit 10105 via an optical lens 10103 and an optical filter 10104 that transmits the near-infrared wavelength region around a wavelength of 940 nm, and an image is formed. The light emission timing of the light source unit 10102 and the exposure timing of the solid-state imaging unit 10105 are controlled by the light emission pulse 10120, exposure pulses 10121 to 10126 of packets 1 to 6, and discharge drive pulse 10127 of the pulse generating unit 43207, which are controlled by the control unit 43206 via a control bus. The light source unit 10102 irradiates irradiation light 10110 when the light emission pulse 10120 is at a high level, and does not irradiate irradiation light 10110 when the light emission pulse 10120 is at a low level. The solid-state imaging unit 10105 calculates distance for each pixel using solid-state imaging unit output signal 10130, which is six types of signal values ​​corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6. The distance calculation section 43208 uses the solid-state imaging section output signal 10130 and control information from the control section 43206 to output a section number signal 10131 corresponding to the distance to the object 10101 for each pixel.

[0231] The distance measuring device is made up of a light source unit 10102, an optical lens 10103, an optical filter 10104, a solid-state imaging unit 10105, a control unit 43206, a pulse generating unit 43207, and a distance calculation unit 43208. As a configuration, the light source unit 10102 has a drive circuit and a light emitting element, and emits light by applying a voltage from the drive circuit. A laser diode or other light emitting element may be used as the light emitting element. In addition, the control unit 43206, the pulse generating unit 43207, and the distance calculation unit 43208 are realized by combining, for example, a CPU (Central Processing Unit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), an AFE (Analog Front End), etc.

[0232] 2 is a configuration diagram of a pixel 10200 of a solid-state imaging unit 10105 according to the first to fourth embodiments. As shown in FIG. 2, the pixel 10200 includes a photoelectric conversion pixel 10201 configured with a PD (Photodiode) that receives reflected light 10111 and performs photoelectric conversion, a drain 10210 for discharging a signal charge photoelectrically converted by the photoelectric conversion pixel 10201, and an FDA (Floating Diffusion Array) that accumulates the signal charge photoelectrically converted by the photoelectric conversion pixel 10201. The input / output amplifier 102 is configured with a signal charge storage section composed of source follower circuits 10221, an output selection transistor 10231, a source follower circuit 10222, an output selection transistor 10232, a source follower circuit 10223, an output selection transistor 10233, a source follower circuit 10224, an output selection transistor 10234, a source follower circuit 10225, an output selection transistor 10235, a source follower circuit 10226, and an output selection transistor 10236, which outputs a voltage value according to the signal charges stored in the source follower circuits 10211 to 10216.

[0233] Next, the operation of the pixel 10200 will be described. When the packet 1 exposure pulse 10121 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10211, when the packet 2 exposure pulse 10122 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10212, when the packet 3 exposure pulse 10123 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10213, when the packet 4 exposure pulse 10124 is set to a high level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is stored in the FDA 10214, The signal charge photoelectrically converted in the pixel 10201 is accumulated in the FDA 10214, and when the packet 5 exposure pulse 10125 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10215, and when the packet 6 exposure pulse 10126 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is accumulated in the FDA 10216, and when the discharge drive pulse 10127 is set to a high level, the signal charge photoelectrically converted in the photoelectric conversion pixel 10201 is discharged to the drain 10210. Therefore, when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the discharge drive pulse 10127 is set to a high level, so that when the exposure pulses 10121 to 10126 of packets 1 to 6 are all at a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is discharged to the drain 10210, and when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, the remaining five are set to a low level. By setting the discharge drive pulse 10127 to a low level, the signal charge photoelectrically converted by the photoelectric conversion pixel 10201 is accumulated in the FDAs 10211 to 10216 corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6 only when one of the six exposure pulses 10121 to 10126 of packets 1 to 6 is at a high level, thereby performing six types of imaging per pixel corresponding to the exposure pulses 10121 to 10126 of packets 1 to 6.As signal charge accumulates in FDA10211 to 10216, a voltage corresponding to the amount of signal charge is generated, and a packet 1 voltage value corresponding to the amount of signal charge of FDA10211, a packet 2 voltage value corresponding to the amount of signal charge of FDA10212, a packet 3 voltage value corresponding to the amount of signal charge of FDA10213, a packet 4 voltage value corresponding to the amount of signal charge of FDA10214, a packet 5 voltage value corresponding to the amount of signal charge of FDA10215, and a packet 6 voltage value corresponding to the amount of signal charge of FDA10216 are generated. By setting the output enable signal 10240 to a high level, the packet 1 voltage value passes through the source follower circuit 10221 and the output selection transistor 10231 to the pixel output signal 10241, the packet 2 voltage value passes through the source follower circuit 10222 and the output selection transistor 10232 to the pixel output signal 10242, the packet 3 voltage value passes through the source follower circuit 10223 and the output selection transistor 10233 to the pixel output signal 10243, the packet 4 voltage value passes through the source follower circuit 10224 and the output selection transistor 10234 to the pixel output signal 10244, the packet 5 voltage value passes through the source follower circuit 10225 and the output selection transistor 10235 to the pixel output signal 10245, and the packet 6 voltage value passes through the source follower circuit 10226 and the output selection transistor 10236 to the pixel output signal 10246, all at the same time.

[0234] Fig. 3 is a configuration diagram of the solid-state imaging section 10105 according to the first to fourth embodiments. As shown in Fig. 3, the solid-state imaging section 10105 has pixels 10200 arranged two-dimensionally, X in the horizontal direction and Y in the vertical direction, where X=320 and Y=240 in the first to fourth embodiments. Note that the number of pixels is just an example and is not limited to this. The output enable signal 10240 of the pixels 10200, consisting of pixel address 11, pixel address 12, and pixel address 1X, which are arranged side by side in the horizontal direction in the first row, is connected to a row selection signal 10300; the output enable signal 10240 of the pixels 10200, consisting of pixel address 21, pixel address 22, and pixel address 2X, which are arranged side by side in the horizontal direction in the second row, is connected to a row selection signal 10301; the output enable signal 10240 of the pixels 10200, consisting of pixel address 31, pixel address 32, and pixel address 3X, which are arranged side by side in the horizontal direction in the third row, is connected to a row selection signal 10302; and the output enable signal 10240 of the pixels 10200, consisting of pixel address Y1, pixel address Y2, and pixel address YX, which are arranged side by side in the horizontal direction in the Yth row, is connected to a row selection signal 10303. In addition, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 11, pixel address 21, pixel address 31, and pixel address Y1, which are arranged vertically in the first column, are connected to vertical pixel signals 10311 to 10316, pixel output signals 10241 to 10246 of pixels 10200 including pixel address 12, pixel address 22, pixel address 32, and pixel address Y2, which are arranged vertically in the second column, are connected to vertical pixel signals 10321 to 10326, and pixel output signals 10241 to 10246 of pixels 10200 including pixel address 1X, pixel address 2X, pixel address 3X, and pixel address YX, which are arranged vertically in the Xth column, are connected to vertical pixel signals 10331 to 10336. Vertical pixel signals 10311 to 10316, 10321 to 10326, and 10331 to 10336 are connected to a column AD 10370, and the output signal of the column AD 10370 is connected to a shift register 10371, so that the solid-state imaging unit output signal 10130 is output from the shift register 10371.

[0235] Next, the read operation of the solid-state imaging unit 10105 will be described. This read operation is the same as that of a general CMOS image sensor with six times the number of horizontal pixels. By setting the row selection signal 10300 to a high level, the row selection signal 10301 to a low level, the row selection signal 10302 to a low level, and the row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of the pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336, and input to the column AD 10370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a high level, row selection signal 10302 to a low level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are output to vertical pixel signals 10331 to 10336, and input to column AD370. By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a high level, and row selection signal 10303 to a low level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are output to vertical pixel signals 10331 to 10336, and input to column AD 10370.By setting row selection signal 10300 to a low level, row selection signal 10301 to a low level, row selection signal 10302 to a low level, and row selection signal 10303 to a high level, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y1 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address Y2 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address YX are output to vertical pixel signals 10331 to 10336, and input to column AD 10370. The column AD 10370 AD converts the input voltage values ​​of packets 1 to 6 for X pixels into 12-bit signal values, generates a packet 1 signal value obtained by AD converting the packet 1 voltage value for X pixels, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value, and outputs them to the shift register 10371. The shift register 10371 outputs the input signal values ​​of packets 1 to 6 for X pixels to the solid-state imaging unit output signal 10130 while shifting them one by one.

[0236] Fig. 33 shows a control sequence of the light source unit 10102 and the solid-state imaging unit 10105 according to the embodiment 4. In the control sequence shown in Fig. 33, the control unit 43206 instructs the pulse generating unit 43207 through the control bus, via the control bus, the number of times the frame unit drive pattern is repeated (12 times), the number of times the unit drive patterns of packets 1 to 6 are executed (300 times), and the timing of switching the unit drive patterns of packets 1 to 6, as shown in Fig. 1, and the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 are generated in the pulse generating unit 43207 according to the number of times the frame unit drive pattern is repeated, the number of times the unit drive patterns of packets 1 to 6 are executed, and the timing of switching the unit drive patterns of packets 1 to 6. Note that Figure 33 explains the generation of unit drive patterns 1 to 282 of packets 1 to 6, and Figures 34, 35A to 35F, 36A to 36F, and 37A to 37F explain the method of generating the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 for each of unit drive patterns A43311 to 43316 of packets 1 to 6, unit drive patterns B43321 to 43326 of packets 1 to 6, and unit drive patterns C43331 to 43336 of packets 1 to 6.

[0237] As shown in Fig. 33, one frame is composed of a frame driving pattern 10400. The frame driving pattern 10400 is composed of 12 repetitions of a frame unit driving pattern 10410 and an imaging data readout 10411 that outputs the signal charges accumulated in the signal charge accumulation units of all the pixels 10200 from the solid-state imaging unit 10105. The frame unit driving pattern 10410 is composed of a packet 1 driving pattern 10421, a packet 2 driving pattern 10422, a packet 3 driving pattern 10423, a packet 4 driving pattern 10424, a packet 5 driving pattern 10425, and a packet 6 driving pattern 10426.

[0238] The packet 1 drive pattern 10421 is configured to switch between packet 1 unit drive patterns A to Z for each execution, and execute the packet 1 unit drive patterns A to Z a total of 300 times. The packet 2 drive pattern 10422 is configured to switch between packet 2 unit drive patterns A to Z for each execution, and execute the packet 2 unit drive patterns A to Z a total of 300 times. The packet 3 drive pattern 10423 is configured to switch between packet 3 unit drive patterns A to Z for each execution, and execute the packet 3 unit drive patterns A to Z a total of 300 times. The packet 4 drive pattern 10424 is configured to switch between packet 4 unit drive patterns A to Z for each execution, and execute the packet 4 unit drive patterns A to Z a total of 300 times. The packet 5 drive pattern 10425 is configured to switch between packet 5 unit drive patterns A to Z for each execution, and execute the packet 5 unit drive patterns A to Z a total of 300 times. The packet 6 drive pattern 10426 is configured to switch the packet 6 unit drive patterns A to Z for each execution, and execute the packet 6 unit drive patterns A to Z a total of 300 times. The unit drive patterns A to Z of packets 1 to 6 drive the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127. The generation method and switching method of the unit drive patterns A to Z of packets 1 to 6 will be described in FIG. 34, FIG. 35A to FIG. 35F, FIG. 36A to FIG. 36F, and FIG. 37A to FIG. 37F. The control sequence of the light source unit 10102 and the solid-state imaging unit 10105 shown in FIG. 33 is an example, and is not limited thereto.

[0239] The unit drive patterns A to Z of packets 1 to 6 are executed a total of 300 times in the drive patterns 10421 to 10426 of packets 1 to 6, and the drive patterns 10421 to 10426 of packets 1 to 6 are repeated 12 times in the frame unit drive patterns. In other words, the unit drive patterns A to Z of packets 1 to 6 are executed a total of 300×12=3600 times. By executing 3600 times, it is possible to ensure a sufficient amount of light even if the amount of light of the irradiation light 10110 per time is small. On the other hand, by dividing the frame drive pattern 10400 into 12 frame unit drive patterns 10410, the time required for each frame unit drive pattern 10410 is shortened, and the apparent imaging timing of packets 1 to 6 can be synchronized. Furthermore, by repeating the frame-based drive pattern 10410 12 times, the blur caused by the movement of the object 10101 occurs evenly in packets 1 to 6, making it possible to suppress side effects such as data corruption during distance calculations caused by the movement of the object 10101.

[0240] Figure 34 is a diagram showing generation codes 21701 to 21706 of packets 1 to 6 that are given to the control unit 43206 to generate unit drive patterns A to Z of packets 1 to 6 that control the solid-state imaging unit 10105 of embodiment 4 and an ejection drive pulse 10127, and the section exposure count 43400 used to switch between unit drive patterns A to Z of packets 1 to 6.

[0241] As shown in FIG. 34, the generated codes 21701 to 21706 of packets 1 to 6 are divided into 31 sections, with section number 21700 ranging from 0 to 30, and each section number 21700 is assigned a value of “0” or “1”, which is information for controlling the driving of exposure pulses 10121 to 10126 of packets 1 to 6, respectively. In addition, the section exposure count 43400 specifies the number of times to control the driving of exposure pulses 10121 to 10126 of packets 1 to 6 for each section number 21700, and is used by the pulse generating unit 43207 as the number of times to control exposure pulses 10121 to 10126 of packets 1 to 6 for each section number 21700. By setting the section exposure count 43400 to increase as the section number 21700 changes from 0 (nearby side) to 30 (long distance side), the difference in the amount of exposure between the near distance side and the long distance side can be reduced, and the entire distance measurement range from the near distance side to the long distance side can be measured.

[0242] The unit drive pattern numbers 43401 are assigned A to Z for each section exposure count 43400. For example, for a section where the section exposure count 43400 is 9 and the section number 21700 is 0 to 5, the unit drive pattern number 43401 is A, for a section where the section exposure count 43400 is 12 and the section number 21700 is 6, the unit drive pattern number 43401 is B, and for a section where the section exposure count 43400 is 17 and the section number 21700 is 7, the unit drive pattern number 43401 is C. In addition, when the unit drive pattern number 43401 is A, the unit drive pattern execution count 43402 is 9, the same as the section exposure count 43400 for the section where the section number 21700 is 0 to 5; when the unit drive pattern number 43401 is B, the unit drive pattern execution count 43402 is 12 for the section exposure count 43400 for the section where the section number 21700 is 6 minus 9 for the section exposure count 43400 for the section where the section number 21700 is 0 to 5, which is 3; and when the unit drive pattern number 43401 is C, the unit drive pattern execution count 43402 is 17 for the section exposure count 43400 for the section where the section number 21700 is 7 minus 12 for the section exposure count 43400 for the section where the section number 21700 is 6, which is 5. As a result, unit drive pattern A of packets 1 to 6 is executed 9 times, unit drive pattern B of packets 1 to 6 is executed 3 times, and unit drive pattern C of packets 1 to 6 is executed 5 times, so that unit drive patterns A to Z are executed a total of 300 times for each packet. The section number 21700, generation codes 21701 to 21706 of packets 1 to 6, section exposure count 43400, unit drive pattern number 43401, and unit drive pattern execution count 43402 are sent to a pulse generation unit 43207 via a control bus, and the pulse generation unit 43207 generates unit drive patterns A to Z of packets 1 to 6 from the section number 21700, generation codes 21701 to 21706 of packets 1 to 6, unit drive pattern number 43401, and unit drive pattern execution count 43402. Note that unit drive pattern A of packets 1 to 6 will be explained in Figures 35A to 35F, unit drive pattern B of packets 1 to 6 in Figures 36A to 36F, and unit drive pattern C of packets 1 to 6 in Figures 37A to 37F. Also, the generated codes and the number of section exposures of packets 1 to 6 shown in Figure 34 are just an example, and the generated codes and the number of section exposures of packets 1 to 6 are not limited to this.

[0243] 35A to 35F are timing charts showing a packet 1 unit drive pattern A43311, a packet 2 unit drive pattern A43312, a packet 3 unit drive pattern A43313, a packet 4 unit drive pattern A43314, a packet 5 unit drive pattern A43315, and a packet 6 unit drive pattern A43316 according to the fourth embodiment.

[0244] As shown in Figures 35A to 35F, the pulse generation unit 43207 switches the section number 10600 between 80 sections from 0 to 79 for each unit section (10 ns), and uses the generation codes 21701 to 21706 of packets 1 to 6, which have the same section number as the section number 10600 and the section number 21700, and the section number 10600 to control the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127, to generate unit drive patterns A43311, 43312, 43313, 43314, 43315, and 43316 of packets 1 to 6. The reason why the section number 10600 of the pulse generating unit 43207 is set to a value (79) that is more than twice the maximum value (30) of the section number 21700 is to prevent the irradiation light 10110 from receiving the reflected light 10111 from the object 10101 located outside the distance measurement range (a section number greater than the maximum value of the section number 21700). For this reason, in a section number that does not exist in the section number 21700, a pulse is generated in which the light emission pulse 10120 is at a low level, the exposure pulses 10121 to 10126 of packets 1 to 6 are at a low level, and the discharge drive pulse 10127 is at a high level. In this way, by controlling the solid-state imaging unit 10105, the time required for 12 repetitions of the frame unit drive pattern 10410, which corresponds to the imaging exposure time, is 10 ns unit section x 80 number of section numbers x 300 total execution times of the packet unit drive patterns A to Z x 6 number of packets x 12 repetition times of the frame unit drive pattern = 17.28 ms. Note that this unit section specifies that the pulse width of the irradiation light 10110 and the exposure pulses 10121 to 10126 of packets 1 to 6 are the same, and does not limit the pulse width to 10 ns. Below, a method of controlling the light emission pulse 10120, the exposure pulses 10121 to 10126 of packets 1 to 6, and the discharge drive pulse 10127 for section numbers 0 to 30 in which the section number 21700 exists will be described.

[0245] 35A is a timing chart showing a packet 1 unit drive pattern A43311. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 1 exposure pulse 10121 is generated as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". The packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is a low level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and is a high level pulse when the packet 1 generation code 21701 corresponding to the section number 21700 is "0", and a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0246] 35B is a timing chart showing the packet 2 unit drive pattern A43312. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 2 exposure pulse 10122 is generated as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 2 generation code 21702 corresponding to the section number 21700 is “1”, and is at high level when the packet 2 generation code 21702 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 2 exposure pulse 10122 is generated.

[0247] 35C is a timing chart showing a packet 3 unit drive pattern A43313. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 3 exposure pulse 10123 is generated as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 4 exposure pulse 10124, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is at low level when the packet 3 generation code 21703 corresponding to the section number 21700 is “1”, and at high level when the packet 3 generation code 21703 corresponding to the section number 21700 is “0”, so that a pulse with the inverted logic of the packet 3 exposure pulse 10123 is generated.

[0248] 35D is a timing chart showing a packet 4 unit drive pattern A43314. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 4 exposure pulse 10124 is generated as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 5 exposure pulse 10125, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is low level when the packet 4 generation code 21704 corresponding to the section number 21700 is “1”, and is high level when the packet 4 generation code 21704 corresponding to the section number 21700 is “0”, and a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0249] 35E is a timing chart showing the packet 5 unit drive pattern A43315. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 5 exposure pulse 10125 is generated as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 6 exposure pulse 10126 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the logic inverted from the packet 5 exposure pulse 10125, being low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and being high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0".

[0250] 35F is a timing chart showing the packet 6 unit drive pattern A43316. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 6 exposure pulse 10126 is generated as a high level when the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and as a low level when the packet 6 generation code 21706 corresponding to the section number 21700 is "0". The packet 1 exposure pulse 10121, the packet 2 exposure pulse 10122, the packet 3 exposure pulse 10123, the packet 4 exposure pulse 10124, and the packet 5 exposure pulse 10125 are generated as a low level in all sections where the section number 21700 is 0 to 30. In addition, the discharge drive pulse 10127 is generated as a pulse with the inverted logic of the packet 6 exposure pulse 10126, being low level when the packet 6 generation code 21706 corresponding to the section number 21700 is “1”, and being high level when the packet 6 generation code 21706 corresponding to the section number 21700 is “0”.

[0251] 36A to 36F are timing charts showing a packet 1 unit drive pattern B43321, a packet 2 unit drive pattern B43322, a packet 3 unit drive pattern B43323, a packet 4 unit drive pattern B43324, a packet 5 unit drive pattern B43325, and a packet 6 unit drive pattern B43326 according to the fourth embodiment.

[0252] 36A is a timing chart showing the packet 1 unit drive pattern B 43321. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 1 exposure pulse 10121 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section number 21700 is 0 to 5, and when the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and the packet 1 generation code 21701 corresponding to the section number 21700 is "0". Also, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section exposure count 43400 is 9, and the section number 21700 is 0 to 5.When the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0253] 36B is a timing chart showing the packet 2 unit drive pattern B 43322. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 2 exposure pulse 10122 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is 9 and the section number 21700 is 0 to 5, which is smaller than 12 of the section exposure count 43400, and is generated as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section exposure count 43400 is 9, and the section number 21700 is 0 to 5, and when the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0", thereby generating a pulse whose logic is inverted from the packet 2 exposure pulse 10122.

[0254] 36C is a timing chart showing the packet 3 unit drive pattern B43323. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 3 exposure pulse 10123 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is 9 and the section number 21700 is 0 to 5, which is smaller than 12 of the section exposure count 43400, and is generated as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the unit drive pattern number 43401 for B is less than 12, the section exposure number 43400 is 9, and the section number 21700 is 0 to 5, and when the section exposure number 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is “1”, and as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is “0”, thereby generating a pulse whose logic is inverted from the packet 3 exposure pulse 10123.

[0255] 36D is a timing chart showing the packet 4 unit drive pattern B43324. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 4 exposure pulse 10124 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12 and the section number 21700 is 0 to 5 and the section exposure count 43400 is 9, and when the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section exposure count 43400 is 9, and the section number 21700 is 0 to 5.When the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0256] 36E is a timing chart showing the packet 5 unit drive pattern B 43325. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 5 exposure pulse 10125 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is 9 and the section number 21700 is 0 to 5, which is smaller than 12 of the section exposure count 43400, and when the section number 21700 of the section exposure count 43400 is 12 or more and is 6 to 30, the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and the packet 5 generation code 21705 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section exposure count 43400 is 9, and the section number 21700 is 0 to 5.When the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 5 exposure pulse 10125 is generated.

[0257] 36F is a timing chart showing the packet 6 unit drive pattern B 43326. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 6 exposure pulse 10126 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section number 21700 is 0 to 5, and when the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and the packet 6 generation code 21706 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, and a packet 5 exposure pulse 10125 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 B is less than 12, the section exposure count 43400 is 9, and the section number 21700 is 0 to 5.When the section exposure count 43400 is 12 or more and the section number 21700 is 6 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and as a high level when the packet 6 generation code 21706 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 6 exposure pulse 10126 is generated.

[0258] 37A to 37F are timing charts showing a packet 1 unit drive pattern C43331, a packet 2 unit drive pattern C43332, a packet 3 unit drive pattern C43333, a packet 4 unit drive pattern C43334, a packet 5 unit drive pattern C43335, and a packet 6 unit drive pattern C43336 according to the fourth embodiment.

[0259] 37A is a timing chart showing the packet 1 unit drive pattern C43331. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 1 exposure pulse 10121 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and is generated as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1" and as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". Also, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 1 generation code 21701 corresponding to the section number 21700 is "1", and as a high level when the packet 1 generation code 21701 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 1 exposure pulse 10121 is generated.

[0260] 37B is a timing chart showing the packet 2 unit drive pattern C43332. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 2 exposure pulse 10122 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and is generated as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1" and as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 2 generation code 21702 corresponding to the section number 21700 is "1", and as a high level when the packet 2 generation code 21702 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 2 exposure pulse 10122 is generated.

[0261] 37C is a timing chart showing the packet 3 unit drive pattern C43333. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 3 exposure pulse 10123 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and is generated as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 4 exposure pulse 10124, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 3 generation code 21703 corresponding to the section number 21700 is "1", and as a high level when the packet 3 generation code 21703 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 3 exposure pulse 10123 is generated.

[0262] 37D is a timing chart showing the packet 4 unit drive pattern C43334. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 4 exposure pulse 10124 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and is generated as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1" and as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 5 exposure pulse 10125, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 4 generation code 21704 corresponding to the section number 21700 is "1", and as a high level when the packet 4 generation code 21704 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 4 exposure pulse 10124 is generated.

[0263] 37E is a timing chart showing the packet 5 unit drive pattern C43335. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 5 exposure pulse 10125 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and is generated as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, and a packet 6 exposure pulse 10126 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 5 generation code 21705 corresponding to the section number 21700 is "1", and as a high level when the packet 5 generation code 21705 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 5 exposure pulse 10125 is generated.

[0264] 37F is a timing chart showing the packet 6 unit drive pattern C43336. The light emission pulse 10120 is generated as a high level when the section number 21700 is 0, and as a low level when the other section numbers 21700 are 1 to 30. The packet 6 exposure pulse 10126 is generated as a low level when the section exposure count 43400 of the unit drive pattern number 43401 C is 9 and 12 and the section number 21700 is 0 to 6, which is smaller than 17 of the section exposure count 43400, and when the section number 21700 of the section exposure count 43400 is 7 to 30 and the section exposure count 43400 is 17 or more, the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and the packet 6 generation code 21706 corresponding to the section number 21700 is "0". Also, a packet 1 exposure pulse 10121, a packet 2 exposure pulse 10122, a packet 3 exposure pulse 10123, a packet 4 exposure pulse 10124, and a packet 5 exposure pulse 10125 are generated as a low level in all sections from 0 to 30 in the section number 10600. In addition, the discharge drive pulse 10127 is generated as a high level when the section exposure count 43400 of the unit drive pattern number 43401 C is less than 17, the section exposure count 43400 is 9 and 12, and the section number 21700 is 0 to 6. When the section exposure count 43400 is 17 or more and the section number 21700 is 7 to 30, the discharge drive pulse 10127 is generated as a low level when the packet 6 generation code 21706 corresponding to the section number 21700 is "1", and as a high level when the packet 6 generation code 21706 corresponding to the section number 21700 is "0". In this way, a pulse with the inverted logic of the packet 6 exposure pulse 10126 is generated.

[0265] Fig. 7 is a timing diagram of the imaging data readout 10411 of the solid-state imaging unit 10105 according to the first to fourth embodiments. By controlling the row selection signals 10300 to 10303, the column AD 10370, and the shift register 10371, the signal values ​​of packets 1 to 6 of all the pixels 10200 shown in Fig. 3 are output to the solid-state imaging unit output signal 10130. Note that the operation of this imaging data readout 10411 is the same as that of a normal CMOS image sensor with six times the number of horizontal pixels.

[0266] As shown in Figure 7, at timing 10700, row selection signal 10300 is set to a high level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a low level, and row selection signal 10303 is set to a low level, so that the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 11 are output to vertical pixel signals 10311 to 10316, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 12 are output to vertical pixel signals 10321 to 10326, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 1X are output to vertical pixel signals 10331 to 10336. The vertical pixel signals 10311 to 10316, the vertical pixel signals 10321 to 10326, and the vertical pixel signals 10331 to 10336 are connected to a column AD 10370, and are AD converted into 12-bit signal values, and a packet 1 signal value obtained by AD converting the packet 1 voltage value of pixel address 11, pixel address 12, and pixel address 1X, a packet 2 signal value obtained by AD converting the packet 2 voltage value, a packet 3 signal value obtained by AD converting the packet 3 voltage value, a packet 4 signal value obtained by AD converting the packet 4 voltage value, a packet 5 signal value obtained by AD converting the packet 5 voltage value, and a packet 6 signal value obtained by AD converting the packet 6 voltage value are generated. At a timing 10701 when the AD conversion is completed, the AD converted signal values ​​of packets 1 to 6 of pixel address 11, pixel address 12, and pixel address 1X are output to a shift register 10371.The shift register 10371 shifts the input signal values ​​and outputs them from the solid-state imaging unit output signal 10130 in the following order: packet 1 signal value of pixel address 11, packet 2 signal value of pixel address 11, packet 3 signal value of pixel address 11, packet 4 signal value of pixel address 11, packet 5 signal value of pixel address 11, packet 6 signal value of pixel address 11, packet 1 signal value of pixel address 12, packet 2 signal value of pixel address 12, packet 3 signal value of pixel address 12, packet 4 signal value of pixel address 12, packet 5 signal value of pixel address 12, packet 6 signal value of pixel address 12, packet 1 signal value of pixel address 1X, packet 2 signal value of pixel address 1X, packet 3 signal value of pixel address 1X, packet 4 signal value of pixel address 1X, packet 5 signal value of pixel address 1X, and packet 6 signal value of pixel address 1X. Also, at timing 10701, row selection signal 10300 is set to low level, row selection signal 10301 is set to high level, row selection signal 10302 is set to low level, and row selection signal 10303 is set to low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 21, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 22, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 2X are input to column AD 10370, and AD conversion is performed to a 12-bit signal value. At timing 10702 when the AD conversion of the column AD 10370 and the shift operation of the shift register 10371, which started at timing 10701, are completed, the result of the AD conversion of the column AD 10370, which started at timing 10701, is output to the shift register 10371, and as before, the input signal value is shifted and output from the solid-state imaging unit output signal 10130. Also, at timing 10702, row selection signal 10300 is set to a low level, row selection signal 10301 is set to a low level, row selection signal 10302 is set to a high level, and row selection signal 10303 is set to a low level, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 31, the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 32, and the voltage values ​​of packets 1 to 6 of pixel 10200 at pixel address 3X are input to column AD 10370, and AD conversion to a 12-bit signal value is performed in the same manner as before.By performing this operation for all rows, the signal values ​​of all pixels 10200 are output from the solid-state imaging unit output signal 10130. Note that, although there are six FDAs 10211 to 10216 shown in FIG. 2 and six generation codes 21701 to 21706 of packets 1 to 6 shown in FIG. 34, the number is not limited to six. If the number of signal charge storage units is greater than the number of packet generation codes, the signal values ​​of packets 1 to 6 can be obtained in one frame, so that it is possible to calculate the section number corresponding to the distance with one frame of data. If the number of signal charge storage units is greater than the number of packet generation codes, it is possible to calculate the section number corresponding to the distance by obtaining the signal values ​​of packets 1 to 6 using data of multiple frames. Note that the time required for the imaging data readout 10411, which corresponds to the imaging readout time, is calculated by dividing the number of pixels (horizontal pixel number X320+horizontal blanking period 80)×(vertical pixel number Y240+vertical blanking period 23) taking into account the blanking period by the output clock frequency of the solid-state imaging unit output signal 10130. Here, if the output clock frequency is 39.319 MHz, the time required for imaging data readout 10411, which corresponds to the imaging readout time, is 16.053 ms.

[0267] Fig. 38 is a diagram showing the configuration of a distance calculation unit 43208 according to the fourth embodiment. As shown in Fig. 38, the distance calculation unit 43208 has exposure numbers 43801 to 43806 for packets 1 to 6, a memory (LUT) 10801, and a data selection 32710, which are controlled by the control unit 43206 via a control bus, a selection circuit 21907 which selects the exposure numbers 43801 to 43806 for packets 1 to 6, and a solid-state imaging unit output signal 10130 and an output signal of the selection circuit 21907. a divider 21908 which divides the output signal of the divider 21908 by pixel address, a synchronization unit (B) 21909 which synchronizes the output signal of the divider 21908 for each pixel address, a minimum value detector 21911 which detects the minimum value of the synchronization unit (B) output signals 21921 to 21926, a multiplier 21912 which multiplies the minimum value detector output signal 21927 by the exposure numbers 43801 to 43806 of packets 1 to 6, and A synchronization unit (A) 21910 performs synchronization for each elementary address, a subtractor 21913 performs subtraction between the synchronization unit (A) output signals 21941 to 21946 and the multiplier output signals 21931 to 21936, a maximum / minimum detector 21914 detects the maximum and minimum values ​​of the subtraction signals 21951 to 21956, and a threshold signal 219 The distance calculator 43208 is made up of an average value calculator 21915 which generates an average value of 60, a comparator 10802 which compares the subtraction signals 21951 to 21956 with a threshold signal 21960, a data selector 32710 which selects the data of the subtraction signals 21951 to 21956, and a ratio calculation divider 32713 which calculates the ratio between the two unit interval reflected light 32712 and the one unit interval reflected light 32711 output from the data selector 32710. Next, the operation of the distance calculator 43208 will be described.In summary, the method improves distance measurement accuracy by determining the interval number (integer part) 32715 where the reflected light 10111 is returned in the same manner as in the second embodiment, and further, when the reflected light 10111 is returned across two adjacent unit intervals, the interval number (decimal part) 32714 obtained by further dividing the unit interval is obtained based on the ratio between the 2-unit interval reflected light 32712 corresponding to the amount of light of the reflected light 10111 returned to the unit interval farther from the light emission pulse 10120 (far distance side) out of the two adjacent unit intervals. Note that the following description is based on the assumption that the signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130 include at least one packet that does not include the reflected light 10111 and at least one packet that includes the reflected light 10111. A method for realizing this constraint will be described with reference to FIG. 39.

[0268] First, a method of calculating the section number (integer part) 32715 will be described. The signal values ​​of packets 1 to 6 of the solid-state imaging unit output signal 10130 are synchronized for each pixel address by the synchronization unit (A) 21910, and the synchronization unit (A) output signals 21941 to 21946 are generated. In addition, since the number of times that the exposure pulses 10121 to 10126 of packets 1 to 6 become high level differs for each signal value of packets 1 to 6, the solid-state imaging unit output signal 10130 selects the number of exposures 43801 to 43806 of packets 1 to 6 for each signal value of packets 1 to 6 by a selection circuit 21907, divides by a divider 21908, and inputs to a synchronization unit (B) 21909. A method for generating the exposure counts 43801 to 43806 of packets 1 to 6 will be described with reference to FIG. 39. The synchronization unit (B) synchronizes the output signal of the divider 21908 for each pixel address, and outputs the result to the minimum value detector 21911. The minimum value detector 21911 estimates a signal value corresponding to the a...

Claims

1. a pulse generating unit that generates a light emission pulse that indicates the timing of light irradiation and an exposure pulse that indicates the timing of exposure to reflected light; a control unit that controls the pulse generating unit to generate one or more light emission pulses and one or more exposure pulses in each of n types of drive patterns that are different from one another, the drive patterns including one or more light emission pulses and one or more exposure pulses in accordance with n types of packet generation codes that indicate whether or not exposure should be performed for each of a plurality of unit sections that correspond to a plurality of distance sections, the number of which is greater than n (n is an integer of 4 or more), obtained by dividing a distance measurement range, or indicate whether or not light should be emitted for each of the plurality of unit sections; a light source unit that irradiates light in accordance with the light emission pulse; a solid-state imaging unit including one pixel array, the solid-state imaging unit capturing an image using the one pixel array in accordance with the exposure pulse; a distance calculation unit that calculates a distance based on n types of signal values ​​obtained from the solid-state imaging unit in response to the n types of drive patterns, The control unit is generating an n-bit binary number for each unit section included in the n types of packet generating codes as an independent code; The distance calculation unit is binarizing the n kinds of signal values ​​by a first threshold value, and determining the binarized n-bit binary number as a first exposure code; The independent code is compared with the first exposure code, and a distance corresponding to the matching unit section is calculated. Ranging device.

2. the solid-state imaging unit generates, based on the reflected light, first to n-th subframe images corresponding to the n types of packet generation codes during one frame period; the distance calculation unit generates, for each pixel of a distance image based on the n types of signal values ​​included in the first to nth subframe images, distance information indicating a distance section corresponding to the reflected light among the plurality of distance sections; The pulse generating unit generates one or more exposure pulses according to the packet generating code following one generation of the light emitting pulse, or generates one or more light emitting pulses according to the packet generating code prior to one generation of the exposure pulse.

2. A distance measuring device according to claim 1.

3. the n types of packet generation codes indicate n types of exposure patterns in the plurality of unit sections, or indicate n types of light emission patterns in the plurality of unit sections, Each of the n types of exposure patterns corresponds to one light emission pulse and a plurality of exposure pulses; Each of the n types of light emission patterns corresponds to one exposure pulse and a plurality of light emission pulses; the n types of exposure patterns are different from one another in at least one of the number of times and the output timing of the exposure pulses in the plurality of unit sections, The n types of light emission patterns are different from each other in at least one of the number of times and the output timing of the light emission pulses in the plurality of unit periods.

3. A distance measuring device according to claim 1 or 2.

4. The control unit sequentially selects one from the n types of packet generation codes and causes the pulse generation unit to generate an exposure pulse or a light emission pulse in accordance with the selected packet generation code.

4. A distance measuring device according to claim 3.

5. the control unit generates a first adjacent code of n bits by performing a logical OR operation on each bit of the two independent codes corresponding to the two adjacent unit intervals; The distance calculation unit further compares the first exposure code with the first adjacent code, and if they match, calculates an intermediate distance between the two corresponding unit sections.

2. A distance measuring device according to claim 1.

6. Each of the first adjacent codes is different from any other first adjacent code.

6. A distance measuring device according to claim 5.

7. the control unit generates a second adjacent code of n bits by performing a logical AND operation on each bit of the two independent codes corresponding to the two adjacent unit intervals; The distance calculation unit further binarizing the n kinds of signal values ​​by a second threshold value, and determining the binarized n-bit binary number as a second exposure code; The second exposure code is compared with the second adjacent code, and if they match, a median distance between the two corresponding unit sections is calculated.

7. A distance measuring device according to claim 1, 5 or 6.

8. Each of the second adjacent codes is different from any other second adjacent code.

8. A distance measuring device according to claim 7.

9. the control unit generates a second adjacent code of n bits by performing a logical AND operation on each bit of the two independent codes corresponding to the two adjacent unit intervals; The distance calculation unit further binarizing the n kinds of signal values ​​by a second threshold value, and determining the binarized n-bit binary number as a second exposure code; The second exposure code is compared with the second adjacent code, and if they match, a median distance between the two corresponding unit sections is calculated.

7. A distance measuring device according to claim 5 or 6.

10. The first threshold is smaller than the second threshold.

10. A distance measuring device according to claim 9.

11. Each of the independent codes is different from every other independent code.

11. A distance measuring device according to claim 1 or any one of claims 5 to 10.

12. One of the independent codes in the unit section in which the light emission pulse and the exposure pulse have the same timing is The same as any one of the independent codes in the other unit intervals and the first adjacent code.

11. A distance measuring device according to claim 5, 6, 9 or 10.

13. One of the independent codes in the unit section in which the light emission pulse and the exposure pulse have the same timing is the same as all of the independent codes in other unit sections and any one of the second adjacent codes. A distance measuring device according to any one of claims 7 to 10.

14. The distance calculation unit is If the first exposure code and the first adjacent code match, classifying the n types of signal values ​​based on a bit-by-bit combination of two independent codes corresponding to the first adjacent code; The classified signal values ​​are used to calculate the distance between two corresponding adjacent unit intervals.

13. A distance measuring device according to claim 5, 6, 9, 10 or 12.

15. The distance calculation unit is If the second exposure code and the second adjacent code match, classifying the n types of signal values ​​based on a bit-by-bit combination of two independent codes corresponding to the second adjacent code; The classified signal values ​​are used to calculate the distance between two corresponding adjacent unit intervals. A distance measuring device according to any one of claims 7 to 10 and 13.

16. The distance calculation unit is The n kinds of signal values ​​are calculated based on a bit-by-bit combination of the two independent codes. When one bit of the two independent codes is 0 and the other bit of the two independent codes is 0, the code is classified as Class A; When the one bit is 1 and the other bit is 0, the classification is B; When the one bit is 0 and the other bit is 1, the classification is C; When the one bit is 1 and the other bit is 1, the classification is D; and calculating a distance obtained by dividing the distance section by using signal values ​​classified into at least two of categories B, C, and D.

16. A distance measuring device according to claim 14 or 15.

17. The distance calculation unit is Using the signal values ​​classified into the category A, background light components included in each of the signal values ​​classified into the categories B, C, and D are removed to calculate distance.

17. A distance measuring device according to claim 16.

18. the control unit repeats control of the pulse generation unit in accordance with n types of packet generation codes a plurality of times; The pulse generating unit has a function of setting whether or not to mask the packet generation code so as not to generate the exposure pulse or the light emission pulse for each unit section. A distance measuring device according to any one of claims 1 to 17.

19. The solid-state imaging unit includes: Photoelectric conversion pixels n signal charge accumulation units that correspond to the n types of packet generation codes and accumulate signal charges generated by the photoelectric conversion pixels; a signal output unit that outputs n types of signal values ​​corresponding to the signal charges stored in the n signal charge storage units. A distance measuring device according to any one of claims 1 to 18.

20. The solid-state imaging unit includes: A photoelectric conversion pixel; a signal charge storage section that stores a signal charge generated by the photoelectric conversion pixel; a signal output unit that outputs a signal value corresponding to the signal charge stored in the signal charge storage unit. A distance measuring device according to any one of claims 1 to 18.

21. The light source unit includes one or more light emitting elements. the control unit has first to n-th emission tables corresponding to the first to n-th subframe images, the n types of light emission tables store a total number of times of light emission of the light emitting elements corresponding to each of the plurality of unit intervals; The control unit determines the n types of light emission patterns as the n types of packet generation codes based on the first to n-th light emission tables.

3. A distance measuring device according to claim 2.

22. the n types of light emission patterns include first to n-th light emission pattern groups corresponding to the first to n-th subframe images, each of the first to n-th light emission pattern groups includes a light emission pattern indicating one light emission pulse having a mutually different output timing; The pulse generating unit selects one of the first to n-th light emission pattern groups, and outputs the exposure pulse once for each light emission pattern included in the selected light emission pattern group.

3. A distance measuring device according to claim 2.

23. The light source unit includes one or more light emitting elements. the control unit has first to n-th emission tables corresponding to the first to n-th subframe images, the n types of light emission tables store a total number of times of light emission of the light emitting elements corresponding to each of the plurality of unit intervals; The control unit determines the light emission patterns included in each of the first to n-th light emission pattern groups based on the first to n-th light emission tables.

23. A distance measuring device according to claim 22.

24. the control unit generates first to n-th emission codes as the n types of packet generation codes by binarizing the first to n-th emission tables; an independent code obtained by regarding the first to n-th emission codes as n-bit binary numbers for each of the plurality of unit intervals; a first adjacent code obtained by performing a logical OR operation on the independent codes of two adjacent unit sections; the distance calculation unit determines a first exposure code by regarding the first to n-th subframe images as an n-bit binary number for each pixel; generating said distance information by comparing said first exposure code with said independent code and said first adjacent code; 24. A distance measuring device according to claim 21 or 23.

25. the control unit generates first to n-th emission codes as the n types of packet generation codes by binarizing the first to n-th emission tables; an independent code obtained by regarding the first to n-th emission codes as n-bit binary numbers for each of the plurality of unit intervals; a second adjacent code obtained by a logical AND operation of the independent codes of two adjacent unit sections; the distance calculation unit determines a second exposure code by regarding the first to n-th subframe images as an n-bit binary number for each pixel; generating said distance information by comparing said second exposure code with said independent code and said second adjacent code; 24. A distance measuring device according to claim 21 or 23.

26. the one frame period includes first to n-th subframe periods for generating the first to n-th subframe images, The pulse generating unit repeats a set of output of the light emission pulse according to the i-th light emission pattern and one output of the exposure pulse M times (M is an integer of 2 or more) during the i-th subframe period (i is an integer from 1 to n).

26. A distance measuring device according to any one of claims 23 to 25.

27. The control unit thins out the number of repetitions of the light emission pulse in a unit section corresponding to a distance section to a number less than M times as the distance between the plurality of distance sections becomes closer in each of the first to n-th subframe periods.

27. A distance measuring device according to claim 26.

28. The light source unit increases an amount of irradiation light in a unit section corresponding to a distance section that is farther away than the plurality of distance sections.

28. A distance measuring device according to any one of claims 21 to 27.

Citation Information

Patent Citations

  • Range gating code super-resolution three-dimensional imaging method

    CN103438863A

  • Distance image sensor

    JP2004294420A

  • Range image data generating device for vehicle and method for generating range image data

    JP2009281895A

  • 3-D measurement via multiple gating

    US4854698A

  • Range image measuring apparatus

    WO2016133053A1