US11831344B2 - Providing codewords - Google Patents
Providing codewords Download PDFInfo
- Publication number
- US11831344B2 US11831344B2 US16/747,567 US202016747567A US11831344B2 US 11831344 B2 US11831344 B2 US 11831344B2 US 202016747567 A US202016747567 A US 202016747567A US 11831344 B2 US11831344 B2 US 11831344B2
- Authority
- US
- United States
- Prior art keywords
- type
- codeword
- type codeword
- class
- codewords
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
- H03M7/425—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- a codeword may be a weight of a neural network.
- a neural network include multiple nodes (neurons) that are fed by input values that may be associated with different weights.
- a neural network may be configured multiple times during the operation of a device that includes the neural network.
- the configuration of a neural network may involve feeding the weights to the neural network.
- Large neural networks may require a vast number of weights. Storing the vast number of weights and the configuration process may require substantial computational and memory resources. For example—about 1 Mbyte may be required for storing a complex neural network.
- the weights may be encoded (compressed)—but the decoding is very complex and requires a substantial hardware resources.
- FIG. 1 illustrates a device according to an embodiment of the invention
- FIG. 2 illustrates a device according to an embodiment of the invention
- FIG. 3 illustrates a data structures according to an embodiment of the invention
- FIG. 4 illustrates a method according to an embodiment of the invention
- FIG. 5 illustrates a data structures according to an embodiment of the invention
- FIG. 6 illustrates a device according to an embodiment of the invention
- FIG. 7 illustrates a device according to an embodiment of the invention.
- FIG. 8 illustrates a method according to an embodiment of the invention.
- Any reference to a device should be applied, mutatis mutandis to a method that is executed by a device and/or to a non-transitory computer readable medium that stores instructions that once executed by the device will cause the device to execute the method.
- Any reference to method should be applied, mutatis mutandis to a device that is configured to execute the method and/or to a non-transitory computer readable medium that stores instructions that once executed by the device will cause the device to execute the method.
- Any reference to a non-transitory computer readable medium should be applied, mutatis mutandis to a method that is executed by a device and/or a device that is configured to execute the instructions stored in the non-transitory computer readable medium.
- the number of bits illustrated in any part of the applications are non-limiting examples of sizes. The same is applicable to any size, length, width, clock rate, frequency or any other dimension or parameter illustrated in the application.
- the codewords may represent at least parts of neural network weights.
- a codeword may include at least a part of a weight of a neural network.
- a codeword may include other content.
- Neural network weights are an example of content of codewords. For simplicity of explanation some of the following text will refer to weights of a neural network.
- Popular codewords or codewords that have a higher than other probability of being retrieved are stored in a compact memory unit. Only a part of the entire codebook is stored in the compact memory unit. For example—when the codewords represent weights of a neural network—the weights with the highest probability to be fetched may be stored in the compact memory unit.
- the codewords are encoded using a variable length encoding—especially retrieval information for retrieving the codewords are variable length encoded.
- compact memory unit may be between 1 Kb to 0.5 Mbyte—although any other sizes are available.
- the compactness may be represented by the ratio between the memory size required to store all the codewords and the memory size of the compact memory unit.
- weights that are not stored in the compact memory table will be referred to as second weights. These are usually the less popular weights.
- An encoded first weight includes retrieval information.
- the retrieval information is used to retrieve at least a portion of the first weight (non-encoded) from the compact memory unit.
- Address information from the retrieval information may be further processed to generate the address of the first weight within the compact memory unit.
- the further processing may include size conversion, format change, and the like.
- an encoded first weight may store 11 bits of address while the compact memory unit should be accessed with a 12-bit address.
- the retrieval information may include a size indicator that represents the size of address information.
- the retrieval information may include a type indicator that indicates whether the weight is of the first type (encoded first weight) or the second type (second weight). It is noted that the same bits in the encoded first weight and/or in the second weight may be used for more than one purpose.
- the encoded first weight may be smaller than the first weight.
- a second weight may not be decoded but some of its bit may have a value that may serve as type indicator and/or size indicator.
- a decoder may retrieve data chunks of size that may differ from the size of the second weight and/or from the size of the encoded first weight. Thus, the decoder may extract a second weight and/or an encoded first weight from one or more data chunks.
- the decoder determines that it is processing an encoded first weight—the output of the decoder is the second weight.
- the decoder determines that it is processing a first weight—the output of the decoder is the first weight.
- the decoding process of the first weight may be very simple and may include few steps—for example it may be substantially limited to extraction of the encoded first weight, calculating the address of the encoded first weight, retrieving the first weight from the (preferably single) compact memory unit and outputting the first weight. These mentioned above operations are simple, low-complexity and short operations. This may allow the decoder to output a weight at each clock cycle.
- FIG. 1 illustrates an example of a decoder 10 .
- the decoder 10 includes an input buffer 12 for receiving chunks of data.
- Extractor 14 extracts relevant bits from the input buffer 12 —for example it may extract and send the type indicator to classifier 16 , may search for a size indicator in order to know how much bits to send (especially in case of a reception of an encoded first weight) to the address generator 18 .
- the classifier 16 may determine whether the input buffer stores an encoded first weight or stores a second weight—and send an indication of the class/type (encoded first or second) to the extractor and to an output stage 24 .
- the values of the class indicator may determine the class.
- the extractor (based on the size indicator) sends at least a part of the retrieval information to address generator 18 that in turn generates an address, and accesses LUT 20 to provide the first weight.
- the output stage 24 determines whether to output a first weight or a second weight—based on the classification.
- FIG. 2 illustrates a decoder 11 that includes the input buffer 12 , the word extractor 14 , the classifier 16 , the output unit 24 , the address generator 18 , a LUT that is an address to first type codeword LUT 20 and also has a delay register 17 for delaying the selection between the output of LUT 20 and the output of the word extractor 14 .
- FIG. 3 illustrates various examples of differences between the size of data chunks 101 and 102 and between second weight 113 , second weight 114 , encoded first weight 103 , and encoded first weight 104 .
- a certain second weight and/or an encoded first weight may span along two data chunks and/or may span along a part of a data chunk.
- FIG. 3 illustrates second weight 114 in which some of the bits ( 1142 ) are both a part of the second weight but are also used as a type indicator.
- the encoded first weight is shown as including a separate class indicator 1302 that is not part of the address ( 1301 ) of the encoded first weight.
- FIG. 4 illustrates method 200 .
- Method 200 may include the following steps:
- FIG. 5 illustrates a second type of codeword 305 , a first variable length retrieval information 310 and a second variable length retrieval information 320 .
- First variable length retrieval information 310 includes a first classcode field CC( 1 ) 312 and a first indexcode field IC( 1 ) 311 .
- Second variable length retrieval information 320 includes a second classcode field CC( 2 ) 322 and a second indexcode field IC( 2 ) 321 . These fields will be explained below.
- FIG. 6 illustrates system 500 that include input buffer 12 , first logic 404 , first LUT 410 , second LUT 420 , adder 450 , third LUT 430 , selector control 440 and output unit 24 .
- the input buffer 12 stores data chunks of a compressed data bit stream.
- the input buffer may be of any size. It is assumed that the input buffer is a 32-bit FIFO, where in each double-word (32-bit) that is read from the FIFO the least-significant bit comes first.
- the input bit stream is made of variable length codewords, where each codeword is between 1-24 bits long, and made of two variable length fields—classcode and indexcode.
- Classcode determines the selected variable encoding (for example Huffman) class and is a variable length field of 1-8 bits.
- the field indexcode determines the element index within the selected Huffman class and is a variable length field of 0-12 bits or 16 bits (16 bits in the case of plain codeword, where compression was not possible).
- the couple determines a full codeword, and its length is 1-24 bits. Each codeword is used by the decoder to produce a 16-bit output plain data.
- FIG. 2 - 19 below illustrates the order and length of the classcode and the indexcode fields as parts of the codeword and bit-stream.
- the calculation of an address of a codeword is based on the first and second LUTs 410 and 420 . All three LUTs may be programmable.
- the LUTs may be implemented in any manner—for example—the first and second LUTs may be asynchronous memories and the third LUT may be a synchronous memory.
- the classcode may be up to 8 bits long. In order to identify the Classcode the 8 Lsbits of the codeword are retrieved and are fed (signal 502 ) to first LUT 410 to identify the Classcode and extract the parameter class_numb 514 . Where there are sixteen classes—class_numb 514 is 4 bits long. Other lengths may be required for different numbers of classes.
- Indexcode identification Using class_numb 514 —accessing second LUT 420 to extract three parameters that relate to the identified class: the classcode_length 510 (represented by 3 bits), class_address 508 (base address of the class within the third LUT 430 ) (represented by 12 bits) and the indexcode_length 506 (represented by 4 bits).
- the first logic 404 receives classcode_length 510 , skips (using the pointer and the information sent from the second LUT) the classcode and extract from the currently read codeword the Indexcode (using parameter indexcode_length).
- indexcode_length is less than a threshold (for example 13) then produce the 12-bit element_index 514 —for example by extending the Indexcode to 12-bit with ‘0’ bits if required. Else assume that Indexcode length is 16 and extract it as a codeword—see signal plain_codeword 516 .
- the adder 450 adds class_address 508 and element_index 514 to provide element address 518 used to access the third LUT 430 .
- the selector 440 receives indexcode_length 506 , determines whether (whether indexcode_length 506 exceeds a threshold) the output unit 24 should output plain_codeword 516 or the output 520 from the third LUT 430 and send a control signal 522 for controlling the output unit 24 .
- FIG. 7 illustrates a system 500 ′.
- System 500 ′ includes input buffer 12 , first logic 404 , first LUT 410 , second LUT 420 , adder 450 , third LUT 430 , selector control 440 , output unit 24 , first buffer 561 , second buffer 562 , third buffer 563 and fourth buffer 564 for storing class_address 508 , element_index 514 , control signal 522 , and plain_codeword 516 , respectively.
- codewords may be provided within a single clock cycle.
- FIG. 8 illustrates method 800 .
- Method 800 may start by step 810 of receiving by an input buffer, one or more chunks of data.
- Step 810 may be followed by step 820 of calculating a location of relevant bits within one or more chunks of data; wherein the relevant bits comprise (a) variable length retrieval information used during a retrieval process of a first type codeword, or (b) a second type codeword.
- Step 820 may be followed by any one of steps 830 and 840 .
- Step 830 may include performing the retrieval process of the first type codeword and retrieving the first type codeword from a memory unit that stores only a fraction of a codebook, the codebook first type codewords and second type codewords.
- Step 840 may include determining whether the relevant bits the second type codeword or not.
- Step 840 may be followed by step 850 of outputting the second type codeword or the first type codeword, based on the determination.
- the memory unit may map addressed to first type codewords—thus may be an address to first type codeword look up table.
- different classes of first type codewords may be one class after the other.
- Step 830 may include step 832 of determining a class of the first type password; step 834 of determining a base address of the class of the first type password; step 836 of determining an address offset of the first type codeword from the base address; and step 838 of determining the address of the first type codeword based on the base address and the address offset.
- Step 832 may include retrieving a first part of the relevant bits (for example—8 bits) and finding the class by accessing a first look up table (LUT) that maps values of the first part of the relevant bits to classes of first type codewords.
- LUT first look up table
- the finding of the class may include outputting a class indicator from the first LUT.
- the finding may be followed by accessing a second LUT with the class indicator and outputting from the second LUT, a second LUT output.
- the second LUT output may include one or more signals such as the base address of the class (class_address), and length information indicative of a length of the variable length retrieval information (for example classcode_length and/or indexcode_length).
- the second LUT output may include a selection indicator (for example—indexcode_length) that is indicative of whether the relevant bits comprise the second type codeword or not.
- Step 840 may be on the length information.
- Step 836 may include retrieving the address offset based on the length information.
- Method 800 may be executed during one or more clock cycles.
- a clock period may be a period during which one codeword may be received by the input buffer.
- a method for providing codewords may include receiving by an input buffer, one or more chunks of data; calculating a location of relevant bits within one or more chunks of data; wherein the relevant bits may include (a) variable length retrieval information used during a retrieval process of a first type codeword, or (b) a second type codeword; performing the retrieval process of the first type codeword and retrieving the first type codeword from a memory unit that stores only a fraction of a codebook, the codebook may include first type codewords and second type codewords; determining whether the relevant bits may include the second type codeword or not; and outputting the second type codeword or the first type codeword, based on the determination.
- the memory unit may be an address to first type codeword look up table.
- the method may include storing in the memory unit different classes of first type codewords, one class after the other, wherein the performing of the retrieval process of the first type password may include: determining a class of the first type password; determining a base address of the class of the first type password; determining an address offset of the first type codeword from the base address; and determining the address of the first type codeword based on the base address and the address offset.
- the determining of the class of the first type address may include retrieving a first part of the relevant bits; and finding the class by accessing a first look up table (LUT) that maps values of the first part of the relevant bits to classes of first type codewords.
- LUT first look up table
- the finding may include outputting a class indicator from the first LUT; wherein the finding may be followed by accessing a second LUT with the class indicator and outputting from the second LUT, a second LUT output that may include the base address of the class, and length information indicative of a length of the variable length retrieval information.
- the second LUT output further may include a selection indicator that may be indicative of whether the relevant bits may include the second type codeword or not.
- the method may include retrieving the second type codeword based on the length information.
- the method may include retrieving the address offset based on the length information.
- the first type password and the second type password store information about at least a portion of at least one neural network weight.
- the steps of calculating, performing, determining and outputting may be executed during a single clock cycle.
- the steps of calculating, performing, determining and outputting may be executed during a two clock cycles.
- Non-transitory computer readable medium for providing codewords
- the A non-transitory computer readable medium stores instructions for receiving by an input buffer, one or more chunks of data; calculating a location of relevant bits within one or more chunks of data; wherein the relevant bits may include (a) variable length retrieval information used during a retrieval process of a first type codeword, or (b) a second type codeword; performing the retrieval process of the first type codeword and retrieving the first type codeword from a memory unit that stores only a fraction of a codebook, the codebook may include first type codewords and second type codewords; determining whether the relevant bits may include the second type codeword or not; and outputting the second type codeword or the first type codeword, based on the determination.
- the device may include an input buffers that may be configured to receive one or more chunks of data; a memory unit configured to store only a fraction of a codebook, the codebook may include first type codewords and second type codewords; one more circuits that may be configured to: calculate a location of relevant bits within one or more chunks of data; wherein the relevant bits may include (a) variable length retrieval information used during a retrieval process of a first type codeword, or (b) a second type codeword; perform the retrieval process of the first type codeword and retrieving the first type codeword from the memory unit; determine whether the relevant bits may include the second type codeword or not; and output the second type codeword or the first type codeword, based on the determination.
- the at least one circuit may include at least one lookup table and wherein the memory unit stores another lookup table.
- the memory unit may be an address to first type codeword look up table.
- the memory unit may be configured to store different classes of first type codewords, one class after the other.
- the one more circuits may be configured to perform the retrieval process of the first type password by: determining a class of the first type password; determining a base address of the class of the first type password; determining an address offset of the first type codeword from the base address; and determining the address of the first type codeword based on the base address and the address offset.
- the one more circuits may be configured to perform the determining of the class of the first type address by: retrieving a first part of the relevant bits; and finding the class by accessing a first look up table (LUT) that maps values of the first part of the relevant bits to classes of first type codewords.
- LUT first look up table
- the one more circuits may be configured to perform the finding by outputting a class indicator from the first LUT; wherein the finding may be followed by accessing a second LUT with the class indicator and outputting from the second LUT, a second LUT output that may include the base address of the class, and length information indicative of a length of the variable length retrieval information.
- the second LUT output further may include a selection indicator that may be indicative of whether the relevant bits may include the second type codeword or not.
- the one more circuits may be configured to retrieve the second type codeword based on the length information.
- the one more circuits may be configured to retrieve the address offset based on the length information.
- the first type password and the second type password store information about at least a portion of at least one neural network weight.
- the one more circuits may be configured to (i) calculate the location of relevant bits, (ii) perform the retrieval process, and (iii) determine whether the relevant bits may include the second type codeword or not during a single clock cycle.
- the one more circuits may be configured to (i) calculate the location of relevant bits, (ii) perform the retrieval process, and (iii) determine whether the relevant bits may include the second type codeword or not during two clock cycles.
- Examples of the one or more circuits may be illustrated above and in any one of FIGS. 1 , 2 6 and 7 .
- logic blocks are merely illustrative and that alternative embodiments may merge logic blocks or circuit elements or impose an alternate decomposition of functionality upon various logic blocks or circuit elements.
- architectures depicted herein are merely exemplary, and that in fact many other architectures may be implemented which achieve the same functionality.
- any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved.
- any two components herein combined to achieve a particular functionality may be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components.
- any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
- the illustrated examples may be implemented as circuitry located on a single integrated circuit or within a same device.
- the examples may be implemented as any number of separate integrated circuits or separate devices interconnected with each other in a suitable manner.
- any reference signs placed between parentheses shall not be construed as limiting the claim.
- the word ‘comprising’ does not exclude the presence of other elements or steps then those listed in a claim.
- the terms “a” or “an,” as used herein, are defined as one or more than one.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
-
- a. Step 210 of receiving by an input buffer, one or more chunks of data. Preferably one chunk per cycle.
- b. Step 212 of extracting relevant bits from the input buffer—for example extracting type indicator and/or extracting a size indicator.
- c. Step 214 of determining, based on a class indicator, the class—whether the bits of interest are an encoded first weight or a second weight.
- d. Step 216 of sending to an address generator at least a part of retrieval information (stored in the input buffer)—when it is determined that the bits of interest are an encoded first weight.
- e. Step 218 of generating an address and accessing a compact memory unit such as a LUT to provide the first weight.
- f. Step 220 of outputting, based on the class—the first weight or the second weight.
Claims (25)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/747,567 US11831344B2 (en) | 2019-01-21 | 2020-01-21 | Providing codewords |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962794707P | 2019-01-21 | 2019-01-21 | |
| US16/747,567 US11831344B2 (en) | 2019-01-21 | 2020-01-21 | Providing codewords |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20200234125A1 US20200234125A1 (en) | 2020-07-23 |
| US11831344B2 true US11831344B2 (en) | 2023-11-28 |
Family
ID=71609048
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/747,567 Active 2042-08-12 US11831344B2 (en) | 2019-01-21 | 2020-01-21 | Providing codewords |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US11831344B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102301041B1 (en) * | 2019-07-04 | 2021-09-14 | 한국과학기술연구원 | Neuromorphic device |
| KR20230031848A (en) * | 2020-07-01 | 2023-03-07 | 엘지전자 주식회사 | Method and apparatus for transmitting and receiving signals between a terminal and a base station in a wireless communication system |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170357635A1 (en) * | 2016-06-08 | 2017-12-14 | Rovi Guides, Inc. | Systems and methods for determining context switching in conversation |
| US10133739B2 (en) * | 2014-10-24 | 2018-11-20 | Google Llc | Neural machine translation systems with rare word processing |
-
2020
- 2020-01-21 US US16/747,567 patent/US11831344B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10133739B2 (en) * | 2014-10-24 | 2018-11-20 | Google Llc | Neural machine translation systems with rare word processing |
| US20170357635A1 (en) * | 2016-06-08 | 2017-12-14 | Rovi Guides, Inc. | Systems and methods for determining context switching in conversation |
Also Published As
| Publication number | Publication date |
|---|---|
| US20200234125A1 (en) | 2020-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7283591B2 (en) | Parallelized dynamic Huffman decoder | |
| JP2022031735A (en) | Method, device, and system for hybrid data compression and decompression | |
| US10044370B1 (en) | Lossless binary compression in a memory constrained environment | |
| US8094048B2 (en) | Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor | |
| US20060139188A1 (en) | Data compression/decompression device and data compression/decompression method | |
| CN109075798B (en) | Variable size symbol entropy-based data compression | |
| US11831344B2 (en) | Providing codewords | |
| US11669553B2 (en) | Context-dependent shared dictionaries | |
| JP2003218703A (en) | Data coder and data decoder | |
| CN110554878A (en) | data conversion method, game data processing method and device and server | |
| CN106127671A (en) | Vertex data compression method and device and related vertex data decompression method and device | |
| US20160092492A1 (en) | Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms | |
| US10103747B1 (en) | Lossless binary compression in a memory constrained environment | |
| US20160344406A1 (en) | System, apparatus, and method for decompressing data | |
| US8849051B2 (en) | Decoding variable length codes in JPEG applications | |
| CN113595557B (en) | Data processing method and device | |
| WO2022119493A1 (en) | Systems, methods and devices for exploiting value similarity in computer memories | |
| KR101030726B1 (en) | A Hoffman decoding method and apparatus for multimedia with improved memory efficiency by applying a Hoffman table based on symbols generated by a stochastic table | |
| US7439887B2 (en) | Method and apparatus for GIF decompression using fixed-size codeword table | |
| US8593310B1 (en) | Data-driven variable length encoding of fixed-length data | |
| US7256715B1 (en) | Data compression using dummy codes | |
| US20110158310A1 (en) | Decoding data using lookup tables | |
| US10613797B2 (en) | Storage infrastructure that employs a low complexity encoder | |
| US6765513B2 (en) | Decoding bit streams compressed with compression techniques employing variable length codes | |
| US9558109B2 (en) | Method and apparatus for flash memory arithmetic encoding and decoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| AS | Assignment |
Owner name: DSP GROUP LTD., ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAIUT, MOSHE;REEL/FRAME:060456/0703 Effective date: 20210826 |
|
| AS | Assignment |
Owner name: DSP GROUP LTD., ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MALACH, TOMER;REEL/FRAME:061219/0639 Effective date: 20220828 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction |