Zero-collapsing compression with random access
AssigneeSamsung Electronics Co., Ltd.
InventorIlia Ovsiannikov
Life of this patent
Estimating the term…
Abstract
A data compressor a zero-value remover, a zero bit mask generator, a non-zero values packer, and a row-pointer generator. The zero-value remover receives 2N bit streams of values and outputs 2N non-zero-value bit streams having zero values removed from each respective bit stream. The zero bit mask generator receives the 2N bit streams of values and generates a zero bit mask for a predetermined number of values of each bit stream in which each zero bit mask indicates a location of a zero value in the predetermined number of values corresponding to the zero bit mask. The non-zero values packer receives the 2N non-zero-value bit streams and forms a group of packed non-zero values. The row-pointer generator that generates a row-pointer for each group of packed non-zero values.
Claims20
A data compressor, comprising:
- a zero-value remover that receives 2N bit streams of values in which N is an integer greater than 1, and that outputs 2N non-zero-value bit streams having zero values removed from each respective bit stream;
- a zero bit mask generator that receives the 2N bit streams of values and generates a zero bit mask for a predetermined number of values of each bit stream, each zero bit mask indicating a location of a zero value in the predetermined number of values corresponding to the zero bit mask;
- a non-zero values packer that receives the 2N non-zero-value bit streams and forms a group of packed non-zero values that are arranged in the group based on a bit stream identifier, the non-zero values packer comprising a plurality of two-input multiplexers arranged in 2N rows and N columns, each input of a multiplexer in a first column receiving a respective bit stream of the 2N bit streams of non-zero values, each respective non-zero-value bit stream comprising a bit-stream length based on data in the non-zero-value bit stream, and the multiplexers in a last column outputting 2N bit streams of values as the group of packed non-zero values, each output bit stream having a same bit-stream length;
- and
- a row-pointer generator that generates a row-pointer for each group of packed non-zero values.
A data compressor, comprising:
- a zero-value remover that receives 8 bit streams of values and outputs 8 non-zero-value bit streams having zero values removed from each respective bit stream;
- a zero bit mask generator that receives the 8 bit streams of values and generates a zero bit mask for 16 values of each bit stream, each zero bit mask indicating a location of a zero value in the 16 values corresponding to the zero bit mask;
- a non-zero values packer that receives the 8 non-zero-value bit streams and forms a group of packed non-zero values that are arranged in the group based on a bit stream identifier, the non-zero values packer comprising a plurality of two-input multiplexers arranged in 8 rows and 3 columns, each input of a multiplexer in a first column receiving a respective bit stream of the 8 bit streams of non-zero values, each respective non-zero-value bit stream comprising a bit-stream length based on data in the non-zero-value bit stream, and the multiplexers in a last column outputting 8 bit streams of values as the group of packed non-zero values, each output bit stream having a same bit-stream length;
- and
- a row-pointer generator that generates a row-pointer for each respective group of packed non-zero values.
A data decompressor, comprising:
- a memory-read arbiter that receives row-pointers for a group of packed non-zero values, zero bit masks corresponding to the group of packed non-zero values, and the group of packed non-zero values based on the row-pointers for the group of packed non-zero values or based on the zero bit masks corresponding to the group of packed non-zero values;
- a non-zero values unpacker that receives the group of packed non-zero values and forms 2N bit streams of packed non-zero values in which N is an integer greater than 1, the non-zero value unpackers comprising a plurality of two-input multiplexers arranged in an 2N rows and N columns, each input of a multiplexer in a first column receiving a respective bit stream of the 2N bit-streams of packed non-zero values, each respective bit stream of packed non-zero values comprising a same bit-stream length, the multiplexers in a last column outputting 2N bits streams each having a bit stream length corresponding to unpacked data of the bit stream;
- a zero-value mask unpacker that receives the zero bit masks corresponding to the group of packed non-zero values;
- and
- a zero-value inserter that inserts zero values into each bit stream of packed non-zero values based on the zero bit masks corresponding to the bit stream of packed non-zero values.
Dependencies are inferred from the claim text.