US-12619232-B2 - Systems and methods for decompressing neural network coefficients
Abstract
A method for decompressing data may include receiving a first sequence of bits and performing a plurality of iterations. Each of the plurality of iterations may include scanning bits of the first sequence, starting from a starting point, to search for at least one of a variable length codeword or a bypass indicator, the starting point being either a starting point of the first sequence or a starting point defined in a previous iteration. The method also include, for at least one of the plurality of iterations, when a bypass indicator is found, outputting a neural network coefficient related value (NNCRV) that is non-compressed and follows the bypass indicator, and defining a starting point that follows the NNCRV as a starting point for a next iteration.
Inventors
- Oren AGAM
Assignees
- MOBILEYE VISION TECHNOLOGIES LTD.
Dates
- Publication Date
- 20260505
- Application Date
- 20230214
Claims (20)
- 1 . A method for decompressing data to obtain a decompressed neural network for use in navigating a vehicle, the method comprising: accessing a first sequence of bits associated with the neural network; and performing a plurality of iterations, wherein each of the plurality of iterations comprises: scanning bits of the first sequence, starting from a starting point, to search for at least one of a variable length codeword or a bypass indicator, the starting point being either a starting point of the first sequence or a starting point defined in a previous iteration; for a first one of the plurality of iterations: finding a bypass indicator; outputting a neural network coefficient related value (NNCRV) that is non-compressed and follows the bypass indicator; and defining a starting point that follows the NNCRV as a starting point for a next iteration; obtaining the decompressed neural network as a result of the plurality of iterations; inputting data relating to the vehicle into the decompressed neutral network; receiving output from the decompressed neutral network in response to the data relating to the vehicle; determining at least one navigational action for the vehicle based on the received output; and causing the at least one navigational action to be implemented by the vehicle.
- 2 . The method according to claim 1 , wherein for a second one of the plurality of iterations, finding a variable length codeword comprises: translating the variable length codeword to provide an NNCRV; and defining a starting point that follows the variable length codeword as a starting point for a next iteration, wherein a maximal length of the variable length codeword does not exceed a predefined size.
- 3 . The method according to claim 2 , wherein the translating the variable length codeword to provide an NNCRV comprises retrieving an NNCRV from a lookup table.
- 4 . The method according to claim 3 , wherein defining the starting point that follows the variable length codeword comprises calculating the starting point that follows the variable length codeword based on a length value of the variable length codeword, the length value being stored in the lookup table.
- 5 . The method according to claim 2 , wherein the translating the variable length codeword to provide the NNCRV comprises retrieving the NNCRV from a content-addressable memory.
- 6 . The method according to claim 2 , wherein a translation of a variable length codeword executed in the second one of the plurality of iterations is not based on an NNCRV calculated during a previous iteration.
- 7 . The method according to claim 1 , wherein a duration of each of the plurality of iteration is one cycle.
- 8 . The method according to claim 1 , wherein the NNCRV is an exponent field of a floating point neural network coefficient.
- 9 . The method according to claim 1 , wherein the NNCRV is a fixed point neural network coefficient.
- 10 . The method according to claim 1 , wherein the predefined size does not exceed a size of the provided NNCRV.
- 11 . The method according to claim 1 , wherein the predefined size does not exceed a half of a maximal size of a Huffman codeword.
- 12 . The method according to claim 1 , wherein the bypass indicator is indicative of a number count of NNCRVs that belong to a sequence of NNCRVs that follow the bypass indicator.
- 13 . The method according to claim 1 , the method further comprising: receiving a plurality of sequences of bits, the plurality of sequences of bits comprising the first sequence of bits and one or more second sequences of bits, wherein the plurality of iterations comprise a plurality of first iterations; and performing, for each of the one or more second sequences of bits, a plurality of second iterations, wherein each of the plurality of second iterations for the each of the one or more second sequences of bits comprises: scanning bits of the each of the one or more second sequences, starting from a starting point, to search for at least one of a second variable length codeword or a second bypass indicator, the starting point being either a starting point of the each of the one or more second sequences or a starting point defined in a previous second iteration; when a second bypass indicator is found: outputting an NNCRV that follows the second bypass indicator; and defining a starting point that follows the NNCRV as a starting point of a next second iteration; and when a second variable length codeword is found: translating the second variable length codeword to provide an NNCRV and defining a starting point that follows the second variable length codeword as a starting point of a next second iteration, wherein a maximal length of the second variable length codeword does not exceed a predefined size.
- 14 . The method according to claim 13 , wherein the plurality of sequences of bits are processed in parallel to each other.
- 15 . The method according to claim 13 , wherein receiving the plurality of sequences of bits comprises rearranging the plurality of sequences of bits.
- 16 . A system for navigating a vehicle, the system including: a decompression unit for generating a decompressed neural network, the decompression unit comprising: an input buffer configured to receive a sequence of bits; a bypass indicator detector; a mapping unit; and a controller configured to control execution of a plurality of iterations, wherein during each of the iterations: the bypass indicator detector is configured to search for a bypass indicator in bits of the sequence, starting from a starting point, the starting point being either a starting point of the sequence or a starting point defined in a previous iteration; the mapping unit is configured to (i) search for a variable length codeword in the bits of the sequence, starting from the starting point, and (ii) translate the variable length codeword to a neural network coefficient related value (NNCRV); when the bypass indicator detector finds a bypass indicator, the decompression unit is configured to: output an NNCRV that is non-compressed and follows the bypass indicator; and define a starting point that follows the NNCRV as a starting point for a next iteration; and when the mapping unit finds a variable length codeword, the decompression unit is configured to: translate the variable length codeword into an NNCRV; and define a starting point that follows the variable length codeword as a starting point for a next iteration, wherein a maximal length of the variable length codeword does not exceed a predefined size; and at least one processor comprising circuitry and a memory, wherein the memory includes instructions that when executed by the circuitry cause the at least one processor to: obtain the decompressed neural network as a result of the plurality of iterations; input data relating to the vehicle into the decompressed neutral network; receive output from the decompressed neutral network in response to the data relating to the vehicle; determine at least one navigational action for the vehicle based on the received output; and cause the at least one navigational action to be implemented by the vehicle.
- 17 . The method of claim 1 , wherein: the data relating to the vehicle includes an image captured from an environment of the vehicle; and the output includes an indication of a presence of one or more objects in the image.
- 18 . The method of claim 1 , wherein: the data relating to the vehicle includes data generated by one or more sensors of the vehicle; and the output includes a target speed of the vehicle.
- 19 . The method of claim 1 , wherein: the data relating to the vehicle includes data generated by one or more sensors of the vehicle; and the output includes a target trajectory of the vehicle.
- 20 . The method of claim 1 , wherein the at least one navigational action includes maintaining a current heading direction for the vehicle.
Description
CROSS REFERENCE TO RELATED APPLICATION This application is a continuation of PCT International Application No. PCT/IB2021/000567, filed Aug. 19, 2021, which claims the benefit of priority of U.S. Provisional Application No. 63/068,484, filed Aug. 21, 2020. The foregoing applications are incorporated herein by reference in their entirety. BACKGROUND Technical Field The present disclosure relates generally to decompressing neural network coefficients. Background Information As technology continues to advance, the goal of a fully autonomous vehicle that is capable of navigating on roadways is on the horizon. Autonomous vehicles may need to take into account a variety of factors and make appropriate decisions based on those factors to safely and accurately reach an intended destination. For example, an autonomous vehicle may need to process and interpret visual information (e.g., information captured from a camera) and may also use information obtained from other sources (e.g., from a GPS device, a speed sensor, an accelerometer, a suspension sensor, etc.). At the same time, in order to navigate to a destination, an autonomous vehicle may also need to identify its location within a particular roadway (e.g., a specific lane within a multi-lane road), navigate alongside other vehicles, avoid obstacles and pedestrians, observe traffic signals and signs, and travel from one road to another road at appropriate intersections or interchanges. Harnessing and interpreting vast volumes of information collected by an autonomous vehicle as the vehicle travels to its destination poses a multitude of design challenges. The sheer quantity of data (e.g., captured image data, map data, GPS data, sensor data, etc.) that an autonomous vehicle may need to analyze, access, and/or store poses challenges that can in fact limit or even adversely affect autonomous navigation. Furthermore, if an autonomous vehicle relies on traditional mapping technology to navigate, the sheer volume of data needed to store and update the map poses daunting challenges. SUMMARY In an embodiment, a method for navigating a vehicle may include decompressing a compressed neutral network to obtain a decompressed neural network. The decompressing may include receiving a first sequence of bits, and performing a plurality of iterations. Each of the iterations may include scanning bits of the first sequence, starting from a starting point, to search for at least one of a variable length codeword or a bypass indicator. The starting point may be either a starting point of the sequence or a starting point defined in a previous iteration. The iteration may also include, when a bypass indicator is found, outputting a neural network coefficient related value (NNCRV) that is non-compressed and follows the bypass indicator, and defining a starting point that follows the NNCRV as a starting point for a next iteration. The iteration may further include, when a variable length codeword is found, translating the variable length codeword to provide an NNCRV, and defining a starting point that follows the variable length codeword as a starting point for a next iteration. A maximal length of the variable length codeword may not exceed a predefined size. The method may also include inputting data relating to the vehicle into the decompressed neutral network, and receiving output from the decompressed neutral network in response to the data relating to the vehicle. The method may further include determining at least one navigational action for the vehicle based on the received output, and causing the at least one navigational action to be implemented by the vehicle. In an embodiment, a method for decompressing data may include receiving a first sequence of bits and performing a plurality of iterations. Each of the plurality of iterations may include scanning bits of the first sequence, starting from a starting point, to search for at least one of a variable length codeword or a bypass indicator, the starting point being either a starting point of the first sequence or a starting point defined in a previous iteration. The method also include, for at least one of the plurality of iterations, finding a bypass indicator, outputting a neural network coefficient related value (NNCRV) that is non-compressed and follows the bypass indicator, and defining a starting point that follows the NNCRV as a starting point for a next iteration. In an embodiment, a decompression unit may include an input buffer, a bypass indicator detector, a mapping unit, and a controller. The input buffer may be configured to receive a sequence of bits. The controller may be configured to control execution of a plurality of iterations. During each of the iterations, the bypass indicator detector may be configured to search for a bypass indicator in bits of the sequence, starting from a starting point. The starting point may be either a starting point of the sequence or a starting point defined in a previous itera