Extended Delta Coding Technique for Compressing Raw Data in Optical Detection and Ranging
By using a light detector array and multi-bit analog-to-digital converter (ADC) combined with an encoder in the LIDAR system, the LIDAR data is compressed, which solves the problems of large data volume and low transmission efficiency, and achieves a significant reduction in data rate and improved system performance.
Patent Information
- Application Number
- CN202010614963.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-01
- Filing Date
- 2020-06-30
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2040-06-30
AI Technical Summary
The existing LIDAR system has shortcomings in data compression, especially for the large amount of data obtained by automotive LiDAR sensors and fails to effectively solve the problem of data transmission from sensors to electronic computing units.
Using a combination of an optical detector array, a multi-bit analog-to-digital converter (ADC) and an encoder, the electric signal is converted into ADC data samples by generating multiple electrical signals using multiple ADCs, and encoded them to generate compressed data packets, and finally sent through the communication interface.
Effective compression of LIDAR data is achieved, data transmission rate is reduced, data rate is reduced by up to 33%-34%, and data transmission efficiency and system performance are optimized.
Smart Images

Figure CN112241013B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to devices and methods for encoding and decoding data in a Light Detection and Ranging (LiDAR) system. Background Art
[0002] Light Detection and Ranging (LiDAR) is a remote sensing method that uses light in the form of pulsed lasers to measure distances (variable distances) to one or more objects in a field of view. In particular, light is sent towards the object. A single light detector or an array of light detectors receives the reflections from the object illuminated by the light, and the time it takes for the reflections to reach the respective sensors in the light detector array is determined. This is also known as measuring the Time of Flight (TOF). A LiDAR system forms depth measurements and performs distance measurements by mapping distances to objects based on time-of-flight calculations. Thus, time-of-flight calculations can create distance and depth maps that can be used to generate images.
[0003] Due to the specific dynamics of the operating environment and the required safety regulations, the amount of data acquired by automotive LiDAR sensors that must be processed has reached several Gbit / s. Therefore, data compression is urgently needed to support future multi-sensor autonomous vehicles. Numerous techniques have been developed to compress LiDAR raw data; however, these techniques mainly target the compression of three-dimensional (3D) point clouds, and the way data is captured and transmitted from the sensors to the electronic computing unit has not been addressed.
[0004] Therefore, an improved device with an improved way of compressing IDAR raw data may be desirable. Summary of the Invention
[0005] Embodiments provide systems and methods for encoding and decoding raw TOF sensor data, and more specifically, systems and methods for encoding and decoding raw LiDAR sensor data.
[0006] According to one or more embodiments, a Light Detection And Ranging (LIDAR) system includes a LIDAR receiver. The LIDAR receiver includes: an array of light detectors configured to generate a plurality of electrical signals based on received reflected light beams; a receiver circuit including a plurality of readout channels and a plurality of multi-bit analog-to-digital converters (ADCs), the plurality of readout channels being configured to read out the plurality of electrical signals from the array of light detectors, wherein each of the plurality of readout channels includes a different one of the plurality of multi-bit ADCs, and each of the plurality of multi-bit ADCs is configured to convert at least one of the plurality of electrical signals into an ADC data sample such that the plurality of multi-bit ADCs generate a sequence of ADC data samples; an encoder coupled to the plurality of readout channels and configured to receive the sequence of ADC data samples and generate a compressed data packet based on the sequence of ADC data samples; and a communication interface configured to transmit the compressed data packet.
[0007] According to one or more embodiments, a method for encoding Light Detection And Ranging (LIDAR) data is provided. The method includes: generating, by an array of light detectors, a plurality of electrical signals based on received reflected light beams; reading out, using a plurality of readout channels, the plurality of electrical signals from the array of light detectors, each of the plurality of readout channels including a different multi-bit ADC of the plurality of multi-bit ADCs; converting, by the plurality of multi-bit ADCs, the plurality of electrical signals into a plurality of ADC data samples, the plurality of ADC data samples constituting a sequence of ADC data samples; and encoding the sequence of ADC data samples to generate a compressed data packet. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Embodiments are described herein with reference to the accompanying drawings.
[0009] Figure 1 is a schematic diagram of a LIDAR scanning system according to one or more embodiments;
[0010] Figure 2 is a schematic block diagram of a LIDAR scanning system according to one or more embodiments.
[0011] Figure 3A shows an example of a raw data packet stored in a transmit buffer of a receiver circuit after analog-to-digital conversion according to one or more embodiments;
[0012] Figure 3B shows an example of a compressed data packet stored in a transmit buffer of a receiver circuit after analog-to-digital conversion according to one or more embodiments;
[0013] Figure 3CShows an example of a compressed data packet stored in the transmit buffer of a receiver circuit after analog-to-digital conversion, according to one or more embodiments;
[0014] Figure 3D Shows an example of a final compressed data packet stored in the transmit buffer of a receiver circuit after analog-to-digital conversion, according to one or more embodiments;
[0015] Figure 4 Illustrates the generation of Figure 3B The method of the compressed data packet shown;
[0016] Figures 5A - 5F Illustrates the generation of Figure 3D The method of the compressed data packet shown;
[0017] Figure 6 Illustrates a flowchart of a LIDAR data compression method implemented by an encoder, according to one or more embodiments;
[0018] Figure 7 Illustrates a flowchart of a LIDAR data decompression method implemented by a decoder, according to one or more embodiments;
[0019] Figure 8 Is a schematic block diagram of an electrical signal path of a LIDAR system, according to one or more embodiments; and
[0020] Figure 9 Is a schematic block diagram of an encoder of a LIDAR system, according to one or more embodiments. Detailed Description of the Invention
[0021] Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. It should be noted that these embodiments are for illustrative purposes only and should not be construed as limiting. For example, although an embodiment may be described as including multiple features or elements, this should not be construed as indicating that all these features or elements are required to implement the embodiment. Instead, in other embodiments, some features or elements may be omitted, or may be replaced by alternative features or elements. Additionally, additional features or elements (e.g., conventional components of a sensor device) may be provided in addition to the features or elements explicitly shown and described.
[0022] Unless otherwise specifically stated, features from different embodiments may be combined to form other embodiments. Changes or modifications described with respect to one embodiment may also apply to other embodiments. In some instances, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring the embodiments.
[0023] Unless otherwise specified, the connections or couplings between the elements shown in the drawings or described herein can be wired or wireless connections. Additionally, as long as the general purpose of the connection or coupling (e.g., for transmitting a certain signal or a certain type of information) is substantially maintained, such a connection or coupling can be a direct connection or coupling without additional intermediate elements, or can be an indirect connection or coupling with one or more additional intermediate elements.
[0024] Embodiments relate to optical sensors and optical sensor systems and to obtaining information about optical sensors and optical sensor systems. A sensor can refer to a component that converts a physical quantity to be measured into an electrical signal (e.g., a current signal or a voltage signal). The physical quantity can include, for example, electromagnetic radiation (e.g., visible light, infrared (IR) radiation, or other types of illumination signals), current, or voltage, but is not limited thereto. For example, an image sensor can be a silicon chip inside a camera that converts photons of light from a lens into voltage. The larger the active area of the sensor, the more light can be collected to create an image.
[0025] The sensor device used herein can refer to a device that includes a sensor and other components (e.g., a biasing circuitry, an analog-to-digital converter, or a filter). The sensor device can be integrated on a single chip, although in other embodiments, multiple chips or components external to the chip can be used to implement the sensor device.
[0026] In a light detection and ranging (LIDAR) system, a light source sends light pulses into a field of view, and the light is reflected from one or more objects by backscattering. In particular, LIDAR is a direct time-of-flight (TOF) system, where light pulses (e.g., a laser beam of infrared light) are emitted into the field of view, and a pixel array detects and measures the reflected beam. For example, an array of light detectors receives the reflection from an object illuminated by the light.
[0027] Currently, an array of light detectors can be used to measure the reflected light. The array of light detectors can be a one-dimensional (1D) array that includes multiple rows of light detectors (pixels) arranged in a single column, or the array of light detectors can be a two-dimensional (2D) array that includes multiple rows and multiple columns of light detectors arranged in a grid-like arrangement. Each pixel row or a group of adjacent pixel rows can be read out as a measurement signal in the form of raw analog data. Each measurement signal can include data from a single pixel column, or data from two or more pixel columns corresponding to one or more selected pixel rows.
[0028] The time difference of return for each light pulse across multiple pixels in a pixel array can then be used to create a digital 3D representation of the environment, or to generate other sensor data. For example, a light source can emit a single light pulse, and a time-to-digital converter (TDC) electrically coupled to the pixel array can count from the time the light pulse is emitted (corresponding to a start signal) until the time the reflected light pulse is received at the receiver (i.e., at the pixel array) (corresponding to a stop signal). The "time of flight" of the light pulse is then converted to a distance. In another example, an analog-to-digital converter (ADC) can be electrically coupled to the pixel array (e.g., indirectly coupled through an intermediate element therebetween) for pulse detection and ToF measurement. For example, the ADC can be used to estimate the time interval between the start / stop signals using an appropriate algorithm.
[0029] Scans such as oscillatory horizontal scans (e.g., left-to-right and right-to-left of the field of view) can illuminate the scene in a continuous scan manner. Each time the light source lights up the laser beam, a scan line in the "field of view" can be generated. By emitting successive light pulses in different scan directions, a region called the field of view can be scanned, and objects within that region can be detected and imaged. Thus, the field of view represents a scan plane with a projection center. Raster scans can also be used.
[0030] Figure 1 is a schematic diagram of a LIDAR scanning system 100 according to one or more embodiments. The LIDAR scanning system 100 is an optical scanning device that includes a transmitter and a receiver. The transmitter includes an illumination unit 10, transmitter optics 11, and a one-dimensional (1D) MEMS mirror 12 (1D MEMS scanner). The receiver includes primary optics 14 and an optical receiver 15. The optical receiver 15 in the illustration is a 2D light detector array 15, but could alternatively be a 1D light detector array. As will be further described Figure 2 the receiver can further include receiver circuitry (e.g., data acquisition / readout circuitry and data processing circuitry).
[0031] Although this arrangement represents an example of one type of LIDAR system, it should be understood that other types of pulsed LIDAR systems (e.g., the type used in flash LIDAR) may also be used. Additionally, the LIDAR scanning system 100 may rotate to scan in different scan directions. For example, the LIDAR scanning system 100 may rotate 90° to scan in the vertical direction instead of the horizontal direction. Thus, the embodiments described herein are directed to an optical transmitter and a TOF system that use pulse modulation for transmitting optical pulses into the field of view. Pulse modulation is a LIDAR technique for measuring the distance to a 3D object by measuring the absolute time it takes for an optical pulse to travel from a source to a 3D scene and back after reflection. The signal encoding as described herein is performed by removing the DC constant during signal encoding.
[0032] Return Figure 1 , the optical detector array 15, whether it is a 2D array or a 1D array, is arranged such that the expected field of view is vertically mapped onto the vertical extent of the optical detector array 15. Depending on the vertical angle of the received light beam, the received light beam will only hit a specific row or group or multiple rows of the detector array. The expected field of view may be further horizontally mapped onto the horizontal extent of the 2D optical detector array.
[0033] In this example, the illumination unit 10 includes three light sources (e.g., laser diodes or light-emitting diodes) that are linearly aligned in a single bar form and are configured to emit light for scanning the field of view of an object. The light emitted by the light sources is typically infrared light, although light of another wavelength may also be used. As can be seen in the Figure 1 embodiment of, the shape of the light emitted by the light sources spreads in a direction perpendicular to the transmission direction to form a light beam having an elongated elliptical shape perpendicular to the transmission direction. The illumination light transmitted from the light sources is directed towards the transmitter optics 11, which is configured to focus each laser onto the MEMS mirror 12 that scans in one dimension. The transmitter optics 11 may be, for example, a lens or a prism.
[0034] When reflected by the MEMS mirror 12, the light from the light source is vertically aligned to form a one-dimensional vertical scan line SL of infrared light or a vertical bar of infrared light for each emitted laser shot. Each light source of the illumination unit 10 contributes to a different vertical region of the vertical scan line SL. Thus, the light sources can be activated and deactivated simultaneously to obtain a light pulse having a plurality of vertical segments, where each vertical segment corresponds to a respective light source. However, each vertical region or segment of the vertical scan line SL can also be individually activated or deactivated by turning on or off the corresponding one of the light sources of the illumination unit 10. Thus, the light of the partial or complete vertical scan line SL can be output from the system 100 into the field of view.
[0035] Thus, the transmitter of the system 100 is an optical arrangement configured to generate a laser beam based on a laser pulse, the laser beam having an elongated elliptical shape extending in a direction perpendicular to the transmission direction of the laser beam. As can be seen from Figure 1 it, each of the light sources is associated with a different vertical region in the field of view such that each light source illuminates the vertical scan line only into the vertical region associated with that light source. For example, the first light source illuminates into the first vertical region, while the second light source illuminates into a second vertical region different from the first vertical region.
[0036] Additionally, although three laser sources are shown, it should be understood that the number of laser sources is not limited thereto. For example, the vertical scan line SL can be generated by a single laser source, two laser sources, or more than three laser sources.
[0037] The MEMS mirror 12 is a mechanically movable mirror (i.e., a MEMS micromirror) integrated on a semiconductor chip (not shown). The MEMS mirror 12 according to this embodiment is configured to rotate about a single scan axis and can be referred to as having only one scanning degree of freedom. Different from a 2D-MEMS mirror (2D MEMS scanner), in a 1D MEMS mirror, the single scan axis is fixed to a non-rotating substrate and thus maintains its spatial orientation during the oscillation of the MEMS mirror. Due to this rotating single scan axis, the MEMS mirror 12 is referred to as a 1D MEMS mirror or a 1D MEMS scanner.
[0038] The MEMS mirror 12 is configured to oscillate "side-to-side" about a single scan axis 13 such that the light reflected from the MEMS mirror 12 (i.e., the vertical scan line of light) oscillates back and forth in the horizontal scan direction. The scan period or oscillation period is defined, for example, by a complete oscillation from a first edge (e.g., the left side) of the field of view to a second edge (e.g., the right side) of the field of view and then back to the first edge. The mirror period of the MEMS mirror 12 corresponds to the scan period.
[0039] Thus, by changing the angle of the MEMS mirror 12 along the scanning axis 13 of the MEMS mirror 12, the field of view is scanned horizontally by the vertical light stripe. For example, the MEMS mirror 12 can be configured to oscillate between + / - 15 degrees in the horizontal scanning direction to manipulate the light within + / - 30 degrees (i.e., 60 degrees), thereby constituting the horizontal scanning range of the field of view. Thus, by rotating the MEMS mirror 12 through a certain movement angle, the field of view can be scanned line by line. One such sequence through a certain movement angle (e.g., from -15 degrees to +15 degrees and vice versa) is called a single scan. Thus, for each scanning period, two scans are used. Multiple scans are used to generate the distance and depth maps and 3D images by the processing unit. The horizontal resolution of the depth map and the image depends on the size of the incremental step in the rotation angle of the MEMS mirror 12 taken between scans.
[0040] Although the transmitting mirror is described in the context of a MEMS mirror, it should be understood that other 1D mirrors or even 2D mirrors can also be used. Additionally, the rotation degree is not limited to + / - 15 degrees, and the field of view can be increased or decreased according to the application. Thus, the one-dimensional scanning mirror is configured to oscillate about a single scanning axis and direct laser beams in different directions into the field of view. Thus, the transmitting technique includes transmitting the light beam from the transmitting mirror into the field of view, which oscillates about a single scanning axis such that the light beam is projected into the field of view as a vertical scanning line SL, and as the transmitting mirror oscillates about the single scanning axis, the vertical scanning line moves horizontally across the field of view. Compared with a 2D scanning mirror, a LIDAR system using a 1D scanning mirror can use a less stringent beam rate for the illumination unit 10 (i.e., the transmitter), while a 2D scanning mirror uses laser points to scan the field of view, which requires more beams for the transmitter to scan the field of view. Additionally, when compared with a 2D scanning mirror, a LIDAR system using a 1D scanning mirror is generally more robust to shock and vibration and is thus well-suited for automotive applications.
[0041] Upon hitting one or more objects, the transmitted vertical light stripe is reflected back towards the LIDAR scanning system 100 by backscattering as a reflected vertical line, where the second optical component 14 (e.g., a lens or a prism) receives the reflected light. The second optical component 14 directs the reflected light onto the light detector array 15, which receives the reflected light as a received line RL and is configured to generate an electrical measurement signal. The electrical measurement signal can be used to generate a 3D map of the environment and / or other object data based on the reflected light (e.g., via TOF calculation and processing).
[0042] The receiving line RL is shown as a vertical column of light that extends along one pixel column in the pixel column in the longitudinal direction of the pixel column. The receiving line has three vertical regions corresponding to the vertical regions of the vertical scan line SL shown in Figure 1 When the vertical scan line SL moves horizontally across the field of view, the vertical column of light RL incident on the 2D light detector array 15 also moves horizontally across the 2D light detector array 15. When the receiving direction of the reflected light beam RL changes, the reflected light beam RL moves from the first edge of the light detector detector array 15 to the second edge of the light detector detector array 15. The receiving direction of the reflected light beam RL corresponds to the transmission direction of the scan line SL.
[0043] In a system using a 1D light detector array instead of a 2D light detector array, each light beam (i.e., each receiving line RL) is projected onto a column of the detector array.
[0044] The light detector array 15 can be of any of several light detector types; including avalanche photodiodes (APDs), photocells, and / or other photodiode devices. An imaging sensor such as a charge-coupled device (CCD) can be a light detector. In the examples provided herein, the light detector array 15 is a two-dimensional (2D) APD array including an array of APD pixels. As described above, the light detector array 15 can be a 1D array including a single column of photodiodes. The activation of the photodiodes can be synchronized with the light pulses emitted by the illumination unit 10.
[0045] The light detector array 15 receives the reflected light pulses as the receiving line RL and generates an electrical signal in response to the reflected light pulses. Since the transmission time of each light pulse from the illumination unit 10 is known and since light travels at a known speed, the distance of the object from the light detector array 15 can be determined using the time-of-flight calculation of the electrical signal. A depth map can plot this distance information.
[0046] In one example, for each distance sample, the microcontroller triggers a laser pulse from each light source in the illumination unit 10 and also starts a timer in the time-to-digital converter (TDC) integrated circuit (IC). The laser pulse propagates through the transmitting optics, is reflected by the target field, and is captured by one or more receiving photodiodes of the light detector array 15. Each receiving photodiode emits a short electrical pulse that is read out by an analog readout circuit. Each signal read out from the analog readout circuit can be amplified by an electrical signal amplifier.
[0047] The comparator IC identifies the pulses and transmits a digital signal to the TDC to stop the timer. The TDC uses the clock frequency to calibrate each measurement. The TDC transmits serial data of the differential time between the start and stop digital signals to the microcontroller, which filters out any incorrect readings, averages multiple time measurements, and calculates the distance to the target at that particular field position. By emitting successive light pulses in different directions established by the MEMS mirror 12, the area (i.e., the field of view) can be scanned, a three-dimensional image can be generated, and objects within the area can be detected.
[0048] The signal processing chain of the receiver may also include an ADC for each photodiode or group of photodiodes. The ADC is configured to convert the analog electrical signal from the photodiode or group of photodiodes into a digital signal, which is used for further data processing.
[0049] Additionally, instead of using the TDC scheme, the ADC can be used for signal detection and ToF measurement. For example, each ADC can be used to detect the analog electrical signal from one or more photodiodes to estimate the time interval between the start signal (i.e., corresponding to the timing of the transmitted light pulse) and the stop signal (i.e., corresponding to the timing of receiving the analog electrical signal at the ADC) with an appropriate algorithm.
[0050] When the laser energy pulse enters the field of view as a vertical scan line SL from the surface of the MEMS mirror 12, the reflected pulse appears when the laser irradiates an object in the field of view. These reflected pulses arrive at the light detector array 15 as a vertical column of light, which may have a width of one light detector pixel or less and a length that vertically spans at least partially along the pixel column of the light detector array 15 in the longitudinal direction. That is, all the light detector pixels in the pixel column or a part of the light detector pixels in the pixel column can receive the light bar. For example, in one instance, all the light sources of the illumination unit 10 can be used to generate the scan line SL / reception line RL. In this case, the reception line RL can extend along the complete pixel column in the longitudinal direction. In another instance, only a subset of the light sources can be used to generate the scan line SL / reception line RL. In this case, the reception line can extend only along a part of the pixel column in the longitudinal direction.
[0051] In some instances, two or more pixel columns can receive light from the same light bar. For example, when a part of the received light bar impinges on the area between two light detector pixels, two pixel columns can receive light. In this case, two pixel columns can be partially illuminated by a single light bar in the width direction.
[0052] On the other hand, if some of the vertical scan lines SL are generated by the illumination unit 10 as described above, only some pixel columns of the light detector array 15 can be illuminated in the longitudinal direction.
[0053] The light detector array 15 is configured to measure signals (electrical signals), and the measured signals are used to generate a 3D map of the environment based on the reflected light (e.g., via TOF calculation and processing). For example, as described above, the light detector array 15 can be a 2D array of photodiodes or other light detection components capable of detecting and measuring light and thereby generating electrical signals.
[0054] Although not shown, the LIDAR scanning system 100 may also include a digital micromirror device (DMD) and secondary auxiliary optics (e.g., lenses, total internal reflection (TIR) prisms, or beam splitters), which are configured to initially receive the reflected light passing through the primary optics 14 and then redirect the received reflected light towards the light detector array 15. For example, the DMD will first receive the reflected light pulse from the primary optics and deflect the received reflected light onto the light detector array 15 with the aid of secondary optics (e.g., lenses, total internal reflection (TIR) prisms, or beam splitters). In this case, as described above, the light detector array 15 will still receive the light in vertical columns.
[0055] Figure 2 is a schematic block diagram of a LIDAR scanning system 200 according to one or more embodiments. In particular, Figure 2 additional features of the LIDAR scanning system 200 are shown, including example processing and control system components (e.g., MEMS drivers, receiver circuits, and system controllers).
[0056] The LIDAR scanning system 200 includes a transmitter unit 21 and a receiver unit 22. The transmitter unit 21 is responsible for the transmitter path of the system 200, and the receiver unit 22 is responsible for the receiver path of the system 200. The system also includes a system controller 23, which is configured to control the components of the transmitter unit 21 and the receiver unit 22, receive raw data from the receiver unit 22, and perform processing (e.g., via digital signal processing) on the raw data for generating object data (e.g., point cloud data). Thus, the system controller 23 includes at least one processor and / or processor circuitry (e.g., comparators and digital signal processors (DSPs)) of the signal processing chain for processing the data, and includes control circuitry (e.g., microcontrollers) configured to generate control signals. The LIDAR scanning system 200 may also include a sensor 26 (e.g., a temperature sensor), which provides sensor information to the system controller 23.
[0057] The transmitter unit 21 includes an illumination unit 10, a MEMS mirror 12, and a MEMS driver 25 configured to drive the MEMS mirror 12. In particular, the MEMS driver 25 actuates and senses the rotational position of the mirror and provides position information of the mirror (e.g., tilt angle or rotational angle about the axis of rotation) to the system controller 23. Based on this position information, the laser source of the illumination unit 10 is triggered by the system controller 23, and the photodiode is activated to sense and thus measure the reflected optical signal. Thus, higher accuracy in sensing the position of the MEMS mirror results in more accurate and precise control of the other components of the LIDAR system.
[0058] The receiver unit 22 includes a photodetector array 15 and a receiver circuit 24, and the receiver circuit 24 includes an analog readout circuit. As will be described in more detail below, each row of the photodetector array 15 can be selectively coupled and decoupled to the receiver circuit 24 through an analog multiplexer. The pixels, rows, or columns coupled to the receiver circuit 24 can be referred to as active, and the pixels, rows, or columns not coupled to the receiver circuit 24 can be referred to as passive.
[0059] The analog readout circuit includes N analog output channels (e.g., 32 channels), and the N analog output channels are configured to read out measurement signals received from selected pixels of the coupled rows of the photodetector array 15. In addition, more than one pixel from the coupled rows can be selected, multiple rows can be coupled to the output channels simultaneously, and one or more pixels can be selected from each of the coupled rows. One acquisition of analog data from the photodetector array 15 on the analog output channels can be referred to as an analog sample, and each analog output channel can be used to acquire different analog samples. Each sample also corresponds to a sample time at which the measurement signal is read out from one or more pixels.
[0060] Thus, the receiver circuit 24 can receive analog electrical signals from the photodetectors of the photodetector array 15 and send the electrical signals as raw analog data to a multi-bit analog-to-digital converter (ADC). Before the multi-bit ADC receives the electrical signals, the electrical signals from each channel can pass through a corresponding amplifier (e.g., a transimpedance amplifier (TIA)) among N amplifiers, which converts the electrical signals from current to voltage, for example. Thus, each TIA and each multi-bit ADC are incorporated in the receiver circuit 24. One acquisition of ADC data can be referred to as an ADC sample or a digital sample. Each sample also corresponds to a sample time at which the measurement signal is read out from one or more pixels.
[0061] The ADC is configured to convert the raw analog data into raw digital data for transmission to the system controller 23, which performs further processing on the raw digital data, including generating 3D point cloud data. Thus, each analog output channel in the analog output channels is coupled to a corresponding one of the N ADCs, which is configured to convert the analog data from the corresponding analog output channel into digital data. As a result, the receiver circuit 24 also includes a digital readout circuit having N digital output channels, each digital output channel being coupled to a different corresponding analog output channel via a different corresponding ADC.
[0062] As will be described, the receiver circuit 24 also includes an encoder that is responsible for compressing the raw LIDAR data before transmitting the compressed data to the system controller 23. By doing so, the data traffic between the receiver circuit 24 and the system controller 23 can be reduced. Additionally, since the system controller 23 may need to evaluate the full waveform data, a lossless data rate reduction can be used for compression. Thus, one or more embodiments are configured to support the transfer of the full waveform to the system controller 23.
[0063] The receiver circuit 24 may also receive a trigger control signal from the system controller 23 that triggers the activation of one or more optical detectors. The receiver circuit 24 may also receive a gain setting control signal for controlling the gain of one or more optical detectors.
[0064] The system controller 23 includes a decoder and a signal processing circuitry. The decoder decompresses the compressed data, and the signal processing circuitry receives the decompressed raw digital data, as well as serial data of the differential time between the start digital signal and the stop digital signal generated by the ADC, and the signal processing circuitry uses the received data to: calculate the time-of-flight information for each field position within the field of view, generate object data (e.g., point cloud data), and generate a 3D point cloud.
[0065] The acquired LIDAR data includes data from reflected object signals and noise signals. The reflected object signals originate from the laser beams transmitted by the LIDAR that are reflected off objects, and the noise signals originate from other light sources such as ambient light (e.g., from the sun). Under ideal weather conditions, most of the LIDAR raw data can be considered ambient noise, which has a smaller amplitude compared to the reflected object signals. The proposed data compression technique explores the nature of the LIDAR raw data and provides a data rate reduction of up to 33%-34% when used to compress the LIDAR data at the following time: after the ADC conversion at the receiver circuit 24 but before transmission to the system controller 23.
[0066] The compression ratio depends on the type of data pre - processing. For example, applying a matched filter before compression results in a 33% reduction independent of the signal - to - noise ratio (SNR). Alternatively, taking an average of samples, e.g., over four samples, before compression results in a compression ratio of 24% - 31% depending on the SNR. By defining a compression ratio variable (bx), the compression mode can be selected from two or more compression modes, where the compression ratio variable corresponds to the number of compressible bits of the pre - ADC data samples. For example, if there are two compression modes, the compression ratio can be set by selecting and setting the compression ratio variable bx to 2 or 3, where bx equal to 3 corresponds to a higher degree of compression compared to bx equal to 2.
[0067] Additionally, to support reducing the lossy data rate, significant peaks can be detected during encoding and the significant peak positions can be saved in the encoded data message.
[0068] The LIDAR receiver circuit 24 uses a multi - bit ADC to achieve sufficient SNR. The amount of data generated depends on the bit width (bw) of the ADC (i.e., ADC resolution) and the number N of read - out channels. Since the acquisition rate may be much higher than the maximum bandwidth of the transmit interface, the acquired ADC data can be stored / buffered on - chip at the receiver circuit 24, where the transmit interface can be, for example, low - voltage differential signaling (LVDS) to A2G.
[0069] Note that both averaging and thresholding techniques can be used to generate LIDAR data and perform compression. Averaging helps to achieve a better SNR and enables better utilization of the interface bandwidth. Here, the minimum number of required averaging cycles directly affects the frame rate. Thresholding can be used for lossy data rate reduction and can help reduce the traffic between the receiver circuit 24 and the system controller 23. Specifically, thresholding can be used to detect peaks above a certain peak threshold for determining whether to compress the ADC samples. For example, as will be discussed below, a delta value is calculated and stored in the data unit of the data packet. Thresholding can be used to determine whether the full bit width of the delta value is stored as the data unit or a reduced bit width of the delta value is stored as the data unit. The reduced bit width of the delta value can include only the least - significant bits (LSBs) of the full delta value, where at least one most - significant bit (MSB) is not included in the stored delta value.
[0070] Figure 3AAn example of a raw data packet 300 is shown, according to one or more embodiments, which is stored in a transmit buffer of a receiver circuit after ADC conversion. As shown, data packet 300 is a data payload comprising N data units, where each data unit represents an ADC sample for a corresponding readout channel. A "readout channel" may generally refer to a data channel, which includes an analog readout channel, an ADC, and a digital readout channel. In other words, during a single data acquisition, each analog readout channel is coupled to one or more pixels of the photodetector array 15, from which LIDAR data is sampled. The data from each analog readout channel is converted into its own ADC sample, which constitutes a single data unit of data packet 300. The samples from the N readout channels are then arranged sequentially to form data packet 300.
[0071] For example, in the case where N=32, there are 32 readout channels with corresponding ADCs. During image acquisition taken at the acquisition time, each ADC generates ADC samples, which are stored as data units in the send buffer, resulting in 32 original data samples / units x0-x(N-1) (for example, x0-x31). Each original data unit x0-x(N-1) is a raw data sample with a bit width (bw) equal to the ADC bit width (i.e., ADC resolution). In this example, the ADC bit width is equal to six, but is not limited to this. Therefore, for image acquisition, a data packet is generated, which includes a data unit for each readout channel. In this example, the raw data packet length L orig is determined by equation (1), where N is the number of ADC samples and bw is the ADC resolution.
[0072] L orig =N·bw (1)
[0073] Therefore, in this example, the original data packet length is equal to 192 bits.
[0074] Figure 3B An example of a compressed data packet 301 is shown that is stored in a transmit buffer of a receiver circuit after ADC conversion according to one or more embodiments. As shown, data packet 301 is a data payload that includes N data units, where each data unit represents an ADC sample for a corresponding readout channel.
[0075] In particular, during compression, the differences between adjacent samples are calculated and the incremental values "ri" are stored, thus reducing the amount of data transferred by N - 1 bits, where N is the number of ADC samples. The initial data unit r0 of the compressed data packet is equal to the uncompressed, first original data unit x0 (i.e., r0 = x0) and serves as the basis for the incremental data units r1 - r(N - 1). As a result, the bit width of the data unit r0 is a full sample equal to the bit width of x0 (i.e., bw). In contrast, due to the reduction in the data required to store the incremental values, the additional incremental data units have a reduced bit width bw1. For example, if bw is equal to 6 bits, then bw1 can be equal to 5 bits. As a result, the compressed data packet 301 can have a reduced packet length of 32 * 5 + 1 = 161. It should also be noted that the original data x0 - x(N - 1) and the initial data unit r0 are unsigned values, while all incremental data units r1 - r(N - 1) are signed values.
[0076] Figure 4 illustrates a method for generating Figure 3B the compressed data packet 301 shown in
[0077] Figure 3C FIG. shows an example of a compressed data packet 302 according to one or more embodiments, the compressed data packet 302 being stored in a transmit buffer of a receiver circuit after ADC conversion. As shown, the data packet 302 includes a packet header 303 and a data payload 304. Similar to the previous example, the data payload 304 includes N data units, where each data unit represents an ADC sample of a corresponding readout channel. The data packet 302 is generated as a result of an incremental overshoot determination that determines whether the incremental value can be encoded using a reduced number of bits (e.g., bw1) (i.e., a reduced incremental value), or whether the incremental value should be stored as a full incremental value equal to the full bit width of the original data (i.e., bw).
[0078] For example, a full incremental value (i.e., an incremental value of full bit width) can be represented by 6 bits equal to the ADC bit width bw. In contrast, by reducing the full incremental value to a reduced bit width bw1, a reduced incremental value (i.e., an incremental value of reduced bit width) is generated, and depending on the compression mode set, the reduced bit width bw1 can be 5 bits or 4 bits in this example. By selecting the LSB according to the reduced bit width bw1, the full incremental value is reduced. Thus, again, depending on the compression mode set, 5 or 4 LSBs are used for the reduced incremental value.
[0079] For example, an incremental overshoot is detected when the incremental value cannot be encoded with a reduced number of bits. In such a case, the position of the data unit containing the incremental overshoot is stored in the packet header 303, in the pointer field, and the full incremental value is stored at the corresponding incremental data unit in the payload 304. Thus, the incremental data units r1 - r(N - 1) can include a mixture of data units with two different bit widths, the two different bit widths including the full bit width bw and the reduced bit width bw1. Additionally, the packet header 303 includes an incremental overshoot counter field that stores the number of detected overshoots K that occur during the encoding / compression procedure, which is performed on a sequence of ADC data samples output by the ADC.
[0080] The final data packet 302 includes the number of overshoots (K), the overshoot positions (P array), the initial data unit r0, and the incremental data units r1 - r(N - 1) (i.e., the r array of data units), each overshoot position (P array) corresponding to one of the incremental data units in r1 - r(N - 1) where an overshoot is detected (e.g., when the overshoot is detected at r2, P = 2).
[0081] The length L of this data packet 302 comp is calculated by Equation (2), where m is the number of bits used to store the overshoots, K is the number of overshoots that occur, log2(N) is the bit width of each pointer value, N is the number of ADC samples, bw is the full ADC resolution, bw1 is the reduced bit width (e.g., bw - 1 or bw - 2), and bx is the compression ratio value (e.g., 2 or 3).
[0082] L comp = m + K·log2(N) + N·(bw - bx + 1) + K + 1 (2)
[0083] Note that the reduced bit width bw1 = bw - bx + 1. Thus, if bw is 6 and bx is 2, then bw1 equals 5. On the other hand, when bx is 3, bw1 equals 4. Thus, the compression ratio is proportional to bx.
[0084] Therefore, the compression ratio R comp is calculated by Equation (3).
[0085]
[0086] It should also be noted that an incremental overshoot is detected when the difference (increment) between two adjacent data samples is greater than the overshoot threshold, which is 2 to the power of bw minus bx (i.e., 2 (bw-bx)) Definition. As a result, a comparator and a counter are introduced to appropriately handle the peaks of data samples that result in an incremental overshoot.
[0087] Figure 3D Shows an example of a final compressed data packet 305 according to one or more embodiments, which is stored in the transmit buffer of the receiver circuit after ADC conversion. In this example, the compression ratio value bx is 2, and three overshoots are detected at the incremental data units r2, r7, and r31. Since the compression ratio value bx is set to 2, the reduced bitwidth is equal to bw - 1, such that one additional bit is required to store each overshoot (i.e., m = 3). On the other hand, if bx is set to 3, two additional bits are required to store each overshoot (i.e., m = 6).
[0088] As will be described, decompression is performed in the reverse manner. Decompression takes as input the number of overshoots (K) detected during compression and their positions (P array), and calculates the differences between adjacent samples, resulting in a reconstructed ADC sample sequence.
[0089] Figures 5A - 5F Illustrates generating Figure 3C the compressed data packet 302 shown in Figures 5A - 5F Illustrates generating Figure 3D the compressed data packet 305 shown in, where the compressed data packet 305 is only an example of one possible result of the compression method.
[0090] In Figure 5A the compression method starts by storing the initial, original data sample x0 of the data packet 300 as the value for the initial data unit r0.
[0091] In Figure 5B for the incremental data unit r1, the increment between the ADC sample values of the original data units x0 and x1 is calculated. However, before storing the increment value, the absolute value of the increment value is compared with the overshoot threshold 2 (bw-bx) where bw = 6 and bx = 2. If the absolute value of the increment value is not greater than the overshoot threshold, as is the case here, the increment value is stored in the incremental data unit r1 with the reduced bitwidth bw1. In other words, the increment value is stored as a reduced increment value.
[0092] In Figure 5C for the incremental data unit r2, the increment between the ADC sample values of the original data units x1 and x2 is calculated. However, before storing the increment value, the absolute value of the increment value is compared with the overshoot threshold 2 (bw-bx)Compare, where bw = 6 and bx = 2. If the absolute value of the incremental value is greater than the overshoot threshold, as is the case here, the full incremental value is stored in the incremental data unit r2 with the full bit width bw.
[0093] In addition, the overshoot counter K is incremented by 1 (e.g., from 0 to 1), and a pointer P1 is generated. The pointer P1 points to the incremental data unit in which the incremental overshoot is detected (e.g., r2). That is, the pointer P1 stores the value "2", and this value "2" corresponds to the incremental data unit r2 that stores the full incremental value. Here, K indicates that there is one incremental data unit storing the full incremental value, and the pointer P1 exists to indicate which incremental data unit stores the full incremental value (i.e., the non-reduced bit width).
[0094] In Figure 5D for the incremental data unit r3, the increment between the ADC sample values of the original data units x2 and x3 is calculated. However, before storing the incremental value, the absolute value of the incremental value is compared with the overshoot threshold 2 (bw-bx) Compare, where bw = 6 and bx = 2. If the absolute value of the incremental value is not greater than the overshoot threshold, as is the case here, the incremental value is stored in the incremental data unit r3 with the reduced bit width bw1. It will be understood that the overshoot counter remains at 1 without change, and since no incremental overshoot is detected, no additional pointer is generated.
[0095] In Figure 5E for the incremental data unit r7, the increment between the ADC sample values of the original data units x6 and x7 is calculated. This occurs after the incremental data units r5 and r6 have been determined. Before storing the incremental value, the absolute value of the incremental value is compared with the overshoot threshold 2 (bw-bx) Compare, where bw = 6 and bx = 2. If the absolute value of the incremental value is greater than the overshoot threshold, as is the case here, the full incremental value is stored in the incremental data unit r7 with the full bit width bw.
[0096] In addition, the overshoot counter K is incremented by 1 (e.g., from 1 to 2), and a pointer P2 is generated. The pointer P2 points to the incremental data unit in which the incremental overshoot is detected (e.g., r7). That is, the pointer P2 stores the value "7", and this value "7" corresponds to the incremental data unit r7 that stores the full incremental value. At this time, K indicates that there are two incremental data units storing the full incremental value, and the pointer P2 exists to indicate which additional incremental data unit stores the full incremental value (i.e., the non-reduced bit width).
[0097] In Figure 5FIn it, for the incremental data unit r31, the increment between the ADC sample values for the data units x30 and x31 is calculated. This occurs after the remaining incremental data units r8 - r30 (during which no additional incremental overshoots were detected) have been determined. Before storing the incremental value, the absolute value of the incremental value is compared with the overshoot threshold 2 (bw-bx) where bw = 6 and bx = 2. If the absolute value of the incremental value is greater than the overshoot threshold, as is the case here, the full incremental value is stored in the incremental data unit r31 with the full bit width bw.
[0098] In addition, the overshoot counter K is incremented by 1 (e.g., from 2 to 3), and a pointer P3 is generated that points to the incremental data unit in which the incremental overshoot was detected (e.g., r31). That is, the pointer P3 stores the value "31", which corresponds to the incremental data unit r31 that stores the full incremental value. At this time, K indicates that there are three incremental data units storing full incremental values, and the pointer P3 exists to indicate which additional incremental data unit stores the full incremental value (i.e., the non-reduced bit width).
[0099] Figure 6 The figure illustrates a flowchart of a LIDAR data compression method 600 implemented by an encoder according to one or more embodiments. In the flowchart, m is the number of bits used to store the value of K; i is a loop counter; k is an overshoot position counter; K is the number of overshoots in the din packet (i.e., the compressed packet) and is located at bits [m - 1:0]; P[K:1] represents an array of K overshoot position pointers, each overshoot position pointer having a bit width of log2(N), and each overshoot position pointer points to a full bit width incremental data unit; Pk is the pointer position of the full incremental data unit corresponding to the overshoot position counter k, and N is the number of ADC samples.
[0100] The LIDAR data compression method 600 includes: selecting a compression mode by setting the compression ratio variable bx to 2 or 3 (operation 605); storing the initial, original sample value x0 as the initial data unit r0 (operation 610); and initializing the overshoot counter K to zero (i.e., K = 0) and initializing i to 1 (i.e., i = 1) (operation 615). The initial, original sample value x0 can be the stored ADC sample corresponding to the first read channel.
[0101] The LIDAR data compression method 600 further includes: selecting input ADC samples from the original data packets, or selecting input ADC samples from the stored values of appropriate readout channels (operation 620); and storing the selected values in a buffer (operation 625). Here, "i" corresponds to the incremental data unit ri being addressed. Thus, if the incremental data unit r1 is being determined, then i = 1, x i-1 = x0, and x i = x1.
[0102] In operation 630, the sample value of x i-1 is subtracted from x i (i.e., ri = x i-1 - x i ) to determine the incremental sample value ri. For example, this operation can be performed by an arithmetic logic unit (ALU). The absolute value of the incremental sample value ri is then compared with the incremental overshoot threshold 2 (bw-bx) using a comparator to determine the magnitude of the stored incremental value (operation 635).
[0103] If the absolute value of the incremental sample value ri is equal to or less than the incremental overshoot threshold, the length of the incremental data unit is set to r[bw - bx:0] (operation 640). For example, if bw is 6 and bx is 2 (i.e., bw - bx is 4), then [bw - 2:0] results in bw - 1 bits.
[0104] On the other hand, if the absolute value of the incremental sample value ri is greater than the incremental overshoot threshold, then in operation 645a the pointer Pk is set to i, in operation 645b the overshoot counter K is incremented by 1, and in operation 645c the length of the incremental data unit is set to r[bw - 1:0]. In this case, the length of the incremental data unit is equal to the full ADC bit width bw.
[0105] In operation 650, the value of i is compared with the number of readout channels N. If the value of i is less than N, then in operation 655 the value of i is incremented by 1, and the program returns to operation 620 to select new ADC sample values based on the new value of i. On the other hand, if the value of i is not less than N (i.e., equal to N), then all incremental data units have been determined, and the method proceeds to operation 660 to construct the compressed output packet, including generating an appropriate packet header for transmission to the system controller 23.
[0106] Figure 7The figure illustrates a flowchart of a LIDAR data decompression method 700 implemented by a decoder according to one or more embodiments. The decompression is performed in the reverse manner. The decompression takes as input the number of overshoots (K) detected during compression and their positions (P array), and calculates the differences between adjacent samples, resulting in a reconstructed sequence of ADC samples. In the flowchart, m is the number of bits used to store the K value; i is a loop counter; k is an overshoot position counter; K is the number of overshoots in the din packet (i.e., the compressed packet) and is located at bits [m - 1:0]; P[K:1] represents an array of K overshoot position pointers, each overshoot position pointer having a bit width of log2(N), and each overshoot position pointer points to a full-bit-width increment data unit; Pk is the pointer position of the full increment data unit corresponding to the overshoot position counter k, N is the number of ADC samples; and plsb is a pointer to the LSB bit (i.e., the LSB position) of the ri increment value.
[0107] In an example case: P[K:1] = din[K * log2(N) + m - 1:m], m = 3, K = 3, N = 32. Thus, P[3:1] = din[3 * log2(32) + 3 - 1:3]. Therefore, there are three overshoot position pointers (P3, P2, P1), each having 5 bits.
[0108] Operations 701 - 705 represent initialization steps during which certain values are initialized and / or reset for decoding the compressed packet.
[0109] In operation 701, the loop counter i and the overshoot position counter k are initialized to 1.
[0110] In operation 702, the decoder (e.g., see the decoder 86 in Figure 8 determines the number of overshoots received within the compressed packet din and assigns the determined number of overshoots to K. This data is located at bits din[m - 1:0].
[0111] In operation 703, the decoder analyzes the positions of the full increment values located at din[K * log2(N) + m - 1:m]. As a result, there is an array with K numbers, and the decoder determines the positions of the full increment data units storing the full bw bits.
[0112] In operation 704, the decoder stores the position of the first data unit r0 in the LSB pointer plsb = K * log2(N) + m. In other words, the decoder determines where the encoded increment r array starts and stores the start position of the increment r array in the LSB pointer plsb.
[0113] In operation 705, the decoder extracts the initial, original sample value x0 from the initial data unit r0 of the compressed data packet din[plsb + bw - 1:plsb]. As described above, the initial data unit r0 is the same as the first ADC sample x0.
[0114] In operation 720, the input sample of the compressed data packet (i.e., the incremental data unit) is selected. For example, since it is already known that r0 corresponds to x0, the loop counter value i can be initialized to 1 in operation 701. In other words, the incremental data unit r1 is initially selected.
[0115] In operation 725, the loop counter value i is compared with the pointer position of the incremental data unit corresponding to the overshoot position counter k. For example, initially, the value i is compared with the pointer position of the incremental data unit corresponding to the first overshoot P1. In Figure 3D and Figure 5F the example shown, the pointer position of the first overshoot P1 is 2. Thus, in this example, the value i will initially be compared with 2 until the overshoot position counter k is incremented in operation 730.
[0116] If the loop counter value i is determined to match the pointer value, the method proceeds to process branch 730 (including operations 730a - 730c). In operation 730a, the decoder extracts bits from the compressed packet for decompressing the data corresponding to the incremental data unit ri = din[plsb + bw - bx:plsb], where ri = din[plsb + bw - bx:plsb] represents the position of the bits of the incremental data unit ri within the compressed data packet.
[0117] Additionally, in operation 730b, the pointer plsb is incremented by bw (i.e., plsb = plsb + bw) to point to the LSB of the next incremental data unit. [[ID=—18]]
[0118] In operation 730c, the overshoot position counter k is incremented by 1 such that Pk (e.g., P2, P3, etc.) corresponds to the position of the next complete incremental data unit in the compressed data packet. For example, if Pk is incremented to P2, then according to Figure 3D and Figure 5F the example shown, the position of the next complete incremental data unit is 7. As a result, the loop counter value i will subsequently be compared with 7 in operation 725.
[0119] In operation 725, if the loop counter value i is determined not to match the pointer position corresponding to the increment data unit of the overshoot position counter k, the method proceeds to process branch 735 (including operations 735a and 735b). In operation 735a, the decoder extracts bits from the compressed data packet for decompressing the data corresponding to the increment data unit ri = din[plsb + bw - bx - 1:plsb], where ri = din[plsb + bw - bx - 1:plsb] represents the position of the bits of the increment data unit ri within the compressed data packet. In operation 735b, the pointer plsb is incremented by bw - bx (i.e., plsb = plsb + bw - bx) to point to the LSB of the next increment data unit.
[0120] After process branch 730 or 735, method 700 proceeds to operation 740, during which the ADC sample value xi is determined as xi = x 1-i - ri.
[0121] In operation 750, the value i is compared with the number N of readout channels. If the value i is less than N, then in operation 755, the loop counter value i is incremented by 1, and then the program returns to operation 720 to select a new input sample value ri based on the new loop counter value i. On the other hand, if the value i is not less than N (i.e., equal to N), then all data units have been determined / decoded, and the method proceeds to operation 760 for constructing the decompressed output packet, which can be used by system controller 23 for generating point cloud data and the like.
[0122] Figure 8 is a schematic block diagram of the electrical signal path of a LIDAR system 800 according to one or more embodiments. In particular, the electrical signal path of LIDAR system 800 includes a photodetector circuit 15, a receiver circuit 24, and a system controller 23.
[0123] The photodetector circuit 15 includes a 2D photodetector array 15-1, a decoder 15-2, and an analog multiplexer (mux) 15-3. In this example, the photodetector array is a 2D photodetector array having 96 columns and 128 rows, but is not limited thereto. For example, the 2D photodetector array can have 32 rows, with each row corresponding to a different readout channel. When a particular column is receiving light, that particular column can be enabled (i.e., synchronized according to the direction of the laser of the transmitter). This helps to reduce the noise of ambient light. The decoder 31-2 receives column selection information Col_Sel from the system controller 23, where the column selection information Col_Sel indicates which column or columns are to be enabled, and the decoder 31-2 enables the corresponding one or more columns.
[0124] The analog multiplexer 31-3 is configured to receive and route analog signals and is further configured to select which rows from the photodetector array 15-1 are to be output from the photodetector circuit 15. That is, the analog multiplexer includes a number N of readout channels (e.g., 32 readout channels), where N can be less than the number of rows of the photodetector array 15-1. The analog multiplexer 15-3 receives row selection information Row_Sel from the system controller 23, the row selection information Row_Sel indicating which row or rows are to be routed to a particular readout channel, and the analog multiplexer 15-3 routes the corresponding one or more rows accordingly. The analog multiplexer 15-3 includes readout elements coupled to the readout channels, the readout elements selectively reading out or outputting an analog signal to the next stage of the receiver signal path, the analog signal being received from one or more adjacent rows of the photodetector array 15-1. In this way, each photodetector pixel of the photodetector array 15-1 can be individually selected column-wise (via a decoder) and row-wise (via the analog multiplexer) for output to one of the readout channels.
[0125] When multiple adjacent rows are routed to a single readout channel, the signals of these rows are added together by the readout elements of the analog multiplexer 15-3, e.g., by averaging, and the combined signal is read out by the analog multiplexer at the appropriate channel.
[0126] The receiver circuit 24 includes an amplifier array 81, a multi-bit ADC array 82, an encoder 83, and a communication interface 84, the communication interface 84 being coupled to the system controller 23.
[0127] The amplifier array 81 includes an amplifier for each readout channel. The amplifier can be a TIA, the TIA being configured to convert the current analog signal of the corresponding channel received from the photodetector circuit 15 into a voltage signal. Thus, each channel includes a TIA that performs this conversion. Each TIA can further amplify and filter the electrical signal. Each voltage signal is then routed along the corresponding channel to the multi-bit ADC array 82.
[0128] The multi-bit ADC array 82 includes a multi-bit ADC for each readout channel, the multi-bit ADC being configured to detect the analog voltage signal output from the amplifier array 81 for ToF measurement and to digitize the analog voltage signal. The multi-bit ADC array 82 provides these processed signals to the encoder 83, the encoder 83 being configured to compress a sequence of ADC samples received from the N readout channels and to construct a compressed data packet for transmission. The communication interface 84 receives the compressed data packet and sends the compressed data packet to the system controller 23.
[0129] It should be understood that the receiver circuit 24, particularly the receiver signal path, is not limited to the elements shown and additional elements may be present. For example, additional signal processing circuitry (e.g., a filtering stage or an averaging stage) may be introduced between the ADC 82 and the encoder 83. Regardless of any intermediate signal processing circuitry between the ADC 82 and the encoder 83, a sequence of ADC samples is received by the encoder in some form (e.g., as the original ADC samples or as processed ADC samples). Thus, regardless of the form, these samples are collectively referred to as ADC samples.
[0130] The system controller 23 includes a communication interface 85, a decoder 86, and a DSP 87. The communication interface 85 is configured to receive the compressed data packet and provide the compressed data packet to the decoder 86. The decoder 86 is configured to reconstruct the original sequence of ADC samples from the compressed data packet. In other words, the decoder 86 decompresses the compressed data packet to obtain the original N ADC samples. The decoder 86 then provides the ADC samples to the DSP 87 for further data processing (e.g., for generating 3D point cloud data).
[0131] Both the encoder 83 and the decoder 86 include a data buffer, logic (e.g., an arithmetic logic unit (ALU)), a comparator, and a counter to respectively implement Figure 6 and Figure 7 the algorithms described in
[0132] Figure 9 is a schematic block diagram of an encoder 900 of a LIDAR system according to one or more embodiments. Specifically, the encoder 900 shows a part of the circuitry for generating incremental values and may be implemented as Figure 8 a part of the encoder 83 in
[0133] The encoder 900 further includes an overshoot processing data buffer 908 that stores the complete increment value output from the ALU 904, and an LSB data buffer 909 that selects the LSB of the complete increment value according to the reduced bit width bw1 and stores the reduced increment value. The processor 910 receives the comparison result from the comparator 907, and according to the comparison result, selects the increment value stored in the data buffer 908 or the data buffer 909. The selected increment value is used as the increment value of the data unit r(i) and is output as the output data 911. The processor 910 is further configured to increment the input pointer (i) 903 to calculate the next increment value for the next data unit r(i).
[0134] In view of the above, the proposed concept is optimized for performance and throughput and brings the following improvements: compressing LiDAR raw data by up to 33%-34%, which enables the complete waveform transmission between the sensor receiver and the system controller; using counters, subtraction ALUs, and comparator operators to compress data; when combined with a matching filter and / or averaging circuit, the lossless compression ratio (∼16%) is independent of SNR; it can be implemented in software and hardware, which increases the generality of the algorithm, and the on-chip memory usage can be optimized by compressing data for temporary storage.
[0135] Therefore, the compression and decompression algorithms capable of compressing / decompressing raw LIDAR data described above can be implemented as an equivalent digital circuit and can be further combined with a software part implemented on a processor that executes one or more arithmetic functions.
[0136] Although the embodiments described herein relate to compressing LIDAR data, it should be understood that other implementations may include other types of data, and the concepts described herein can be extended to other types of data systems.
[0137] Additionally, although some aspects have been described in the context of a device, it is obvious that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of method steps also represent a description of the corresponding block or item or feature of the corresponding device. Some or all of the method steps can be performed by (or using) a hardware device (e.g., a microprocessor, a programmable computer, or an electronic circuit). In some embodiments, one or more of the method steps can be performed by such a device.
[0138] Depending on requirements of certain implementations, the embodiments provided herein can be implemented in hardware or software. The implementation can be performed using a digital storage medium (e.g., floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory) storing electronically readable control signals that cooperate (or are capable of cooperating) with a programmable computer system such that the respective methods are performed. Thus, the digital storage medium can be computer-readable.
[0139] The instructions can be executed by one or more processors (e.g., one or more central processing units (CPUs), digital signal processors (DSPs), general microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry). Thus, as used herein, the term “processor” refers to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein can be provided within dedicated hardware and / or software modules. Similarly, the techniques can be fully implemented in one or more circuits or logic elements.
[0140] The above-described exemplary embodiments are merely illustrative. It should be understood that modifications and variations to the arrangements and details described herein will be apparent to other persons skilled in the art. Thus, the intention of the present invention is limited only by the scope of the appended patent claims and not by the specific details given by the description and explanation of the embodiments herein.
Claims
1. A light detection and ranging LIDAR system, comprising: A LIDAR receiver, comprising: An optical detector array configured to generate a plurality of electrical signals based on received reflected light beams; A receiver circuit comprising a plurality of readout channels and a plurality of multi-bit analog-to-digital converters ADCs, the plurality of readout channels being configured to read out the plurality of electrical signals from the optical detector array, wherein each of the plurality of readout channels comprises a different one of the plurality of multi-bit ADCs, the plurality of multi-bit ADCs being configured to detect the plurality of electrical signals for ToF measurement, and each of the plurality of multi-bit ADCs being configured to convert at least one of the plurality of electrical signals into an ADC data sample such that the plurality of multi-bit ADCs generate a sequence of ADC data samples; An encoder coupled to the plurality of readout channels, and the encoder being configured to receive the sequence of ADC data samples and generate a compressed data packet based on the sequence of ADC data samples; and A communication interface configured to transmit the compressed data packet, wherein: The sequence of ADC data samples includes an initial ADC sample and a plurality of subsequent ADC samples, the plurality of subsequent ADC samples being after the initial ADC sample, The compressed data packet includes a plurality of data units, the plurality of data units including an initial data unit and a plurality of incremental data units, the plurality of incremental data units being after the initial data unit, wherein the initial data unit stores the initial ADC sample, The encoder includes a first counter that increments and stores a first counter value corresponding to one of the plurality of subsequent ADC samples and corresponding to one of the plurality of incremental data units, The encoder is configured to calculate an increment value for the incremental data unit corresponding to the first counter value by: calculating the difference between the subsequent ADC sample corresponding to the first counter value and the following ADC sample in the sequence of ADC data samples that is before and adjacent to the subsequent ADC sample corresponding to the first counter value, wherein the encoder includes a comparator configured to compare the increment value with an increment overshoot threshold, wherein under the condition that the increment value is greater than the increment overshoot threshold, the encoder is configured to store the full bit width of the increment value in the incremental data unit corresponding to the first counter value, and wherein under the condition that the increment value is equal to or less than the increment overshoot threshold, the encoder is configured to store the reduced bit width of the increment value in the incremental data unit corresponding to the first counter value.
2. The LIDAR system according to claim 1, wherein each of the plurality of incremental data units stores the difference between two different adjacent ADC samples in the sequence of ADC data samples.
3. The LIDAR system according to claim 2, wherein: the plurality of subsequent ADC samples includes a first subsequent ADC sample adjacent to the initial ADC sample, and the plurality of incremental data units includes a first incremental data unit adjacent to the initial data unit, and the encoder is configured to calculate a first incremental value based on the difference between the first subsequent ADC sample and the initial ADC sample, and store the first incremental value in the first incremental data unit.
4. The LIDAR system according to claim 3, wherein the encoder is configured to calculate the first incremental value by subtracting the first subsequent ADC sample from the initial ADC sample.
5. The LIDAR system according to claim 3, wherein: the plurality of subsequent ADC samples includes a second subsequent ADC sample adjacent to the first subsequent ADC sample, and the plurality of incremental data units includes a second incremental data unit adjacent to the first incremental data unit, and the encoder is configured to calculate a second incremental value based on the difference between the first subsequent ADC sample and the second subsequent ADC sample, and store the second incremental value in the second incremental data unit.
6. The LIDAR system according to claim 5, wherein the encoder is configured to calculate the second incremental value by subtracting the second subsequent ADC sample from the first subsequent ADC sample.
7. The LIDAR system according to claim 1, wherein the overshoot threshold is based on the bit widths of the plurality of multi-bit ADCs and a compression ratio variable.
8. The LIDAR system according to claim 1, wherein the compressed data packet includes a packet header, and the packet header includes an overshoot counter field; wherein the encoder includes a second counter that increments and stores a second counter value corresponding to the total number of detected incremental overshoots, wherein the encoder stores the second counter value in the overshoot counter field, and wherein the encoder is configured to increment the second counter under the condition that the incremental value is greater than the incremental overshoot threshold.
9. The LIDAR system according to claim 8, wherein the encoder is configured to store the first counter value in a pointer field of the packet header under the condition that the incremental value is greater than the incremental overshoot threshold.
10. The LIDAR system according to claim 1, wherein: the plurality of subsequent ADC samples includes a first subsequent ADC sample adjacent to the initial ADC sample, and the plurality of incremental data units includes a first incremental data unit adjacent to the initial data unit, and the encoder is configured to: Calculating a first increment value based on a difference between the first subsequent ADC sample and the initial ADC sample; Comparing the first increment value with an increment overshoot threshold; Storing a full bitwidth of the first increment value in the first increment data unit if the first increment value is greater than the increment overshoot threshold; and Storing a reduced bitwidth of the first increment value in the first increment data unit if the first increment value is equal to or less than the increment overshoot threshold.
11. The LIDAR system of claim 10, wherein: The compressed data packet includes a packet header that includes an overshoot counter field; The encoder includes a second counter that increments and stores a second counter value corresponding to a total number of detected increment overshoots; The encoder stores the second counter value in the overshoot counter field; and If the first increment value is greater than the increment overshoot threshold, the encoder is configured to increment the second counter and store the second counter value in a pointer field of the packet header. The LIDAR system of claim 10, wherein: The plurality of subsequent ADC samples includes a second subsequent ADC sample adjacent to the first subsequent ADC sample, and the plurality of increment data units includes a second increment data unit adjacent to the first increment data unit; and The encoder is configured to: Calculate a second increment value based on a difference between the first subsequent ADC sample and the second subsequent ADC sample; Compare the second increment value with the increment overshoot threshold; Store a full bitwidth of the second increment value in the second increment data unit if the second increment value is greater than the increment overshoot threshold; and Store a reduced bitwidth of the second increment value in the second increment data unit if the second increment value is equal to or less than the increment overshoot threshold.
13. The LIDAR system of claim 1, further comprising: A system controller configured to receive the compressed data packet from the communication interface, wherein the system controller includes a decoder configured to derive the sequence of ADC data samples from the plurality of data units of the compressed data packet.
14. A method of encoding light detection and ranging LIDAR data, the method comprising: Generating, by an optical detector array, a plurality of electrical signals based on received reflected light beams; Reading out, using a plurality of readout channels, the plurality of electrical signals from the optical detector array, each readout channel including a different multi-bit analog-to-digital converter (ADC) of a plurality of multi-bit ADCs configured to detect the plurality of electrical signals for time-of-flight (ToF) measurement; Converting, by the plurality of multi-bit ADCs, the plurality of electrical signals into a plurality of ADC data samples that form a sequence of ADC data samples; and And Encode the sequence of ADC data samples to generate compressed data packets, wherein: the sequence of ADC data samples includes an initial ADC sample and a plurality of subsequent ADC samples, the plurality of subsequent ADC samples being after the initial ADC sample, the compressed data packets include a plurality of data units, the plurality of data units including an initial data unit and a plurality of incremental data units, the plurality of incremental data units being after the initial data unit, wherein the initial data unit stores the initial ADC sample, wherein encoding the sequence of ADC data samples includes: calculating differences between different, adjacent pairs of ADC samples in the sequence of ADC data samples to derive corresponding incremental values for each of the plurality of incremental data units; comparing each corresponding incremental value with an incremental overshoot threshold; storing, in the incremental data unit, the full bit width of the corresponding incremental value corresponding to the incremental data unit when the corresponding incremental value is greater than the incremental overshoot threshold; and storing, in the incremental data unit, the reduced bit width of the corresponding incremental value when the corresponding incremental value is equal to or less than the incremental overshoot threshold.
15. The method according to claim 14, further comprising: when the corresponding incremental value is greater than the incremental overshoot threshold: incrementing a counter value of an incremental overshoot counter, the counter value indicating the total number of detected incremental overshoots; storing the counter value in an overshoot counter field of a packet header of the compressed data packet; and storing a position value of the detected incremental overshoot occurrence in the incremental data unit in a pointer field of the packet header.
Citation Information
Patent Citations
System and method for data compression over a communication network
CN108141244A
Real time gating and signal routing in laser and detector arrays for lidar application
CN111352091A