Method and apparatus for lossless digital data compression
First Claim
Patent Images
1. A method for compressing digital data, comprising the steps of:
- (a) receiving digital data to be compressed;
(b) separating the digital data into groups having predetermined sequences of ones and zeros;
(c) processing a sequence according to a predetermined procedure to obtain a compressed sequence value of variable length by removing bits;
(d) storing the compressed sequence value in a temporary storage area;
(e) generating a removal code representative of the number of bits removed;
(f) generating a separator code according to predetermined criteria;
(g) storing the removal code and separator code in a predetermined relationship with the compressed sequence value in the temporary storage area;
(h) performing steps c through g for each of the groups to obtain an intermediate data set;
(i) separating the intermediate data set into sequences;
(j) repeatedly performing steps c through i a plurality of iterations according to predetermined criteria; and
(k) supplying the intermediate data set of the final iteration as a compressed version of the received digital data.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for lossless compression and decompression of digital data. Input data is processed by a binary search procedure to achieve nominal compression in a single iteration. Repeated iterations performed on the output of the first iteration provide significant compression of all types of digital data. The method may be practiced in software on a personal computer or implemented in VLSI hardware using a large number of identical compression circuits connected in series to achieve a systolic pipe architecture.
76 Citations
8 Claims
-
1. A method for compressing digital data, comprising the steps of:
-
(a) receiving digital data to be compressed; (b) separating the digital data into groups having predetermined sequences of ones and zeros; (c) processing a sequence according to a predetermined procedure to obtain a compressed sequence value of variable length by removing bits; (d) storing the compressed sequence value in a temporary storage area; (e) generating a removal code representative of the number of bits removed; (f) generating a separator code according to predetermined criteria; (g) storing the removal code and separator code in a predetermined relationship with the compressed sequence value in the temporary storage area; (h) performing steps c through g for each of the groups to obtain an intermediate data set; (i) separating the intermediate data set into sequences; (j) repeatedly performing steps c through i a plurality of iterations according to predetermined criteria; and (k) supplying the intermediate data set of the final iteration as a compressed version of the received digital data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for decompressing compressed original digital data comprising the steps of:
-
(a) receiving input data comprising compressed original digital data including compressed data codes of various length separated by separator codes and removal codes and further including an iteration count; (b) obtaining a data code from the input data using the separator value; (c) processing the data code to obtain a decompressed value; (d) temporarily storing the decompressed value; (e) repeating steps (b), (c), and (d) until all input data has been processed; (f) incrementing a counter; (g) obtaining a data code from the temporarily stored decompressed values using a separator value; (h) processing the data code to obtain a decompressed value; (i) temporarily storing the decompressed value; (j) repeating steps (f), (g), (h), and (i) until the counter equals the iteration count; and (k) outputting the stored decompressed values as a representation of the original digital data.
-
-
7. Apparatus for compressing digital data, comprising:
-
an input terminal receiving digital data to be compressed; an output terminal supplying compressed digital data; and first, second, and third compression circuits, each of the compression circuits comprising; an input circuit for received input data; a processor circuit separating the received input data into sequences according to predetermined criteria; a binary search processor for processing the sequences using a binary search procedure to obtain compressed sequence values corresponding to the sequences with lower order bits removed; a code generator for generating removal codes representative of the number of bits removed and separator codes according to the characteristics of the compressed sequence values and removal codes; and an output circuit for supplying the compressed sequence values, removal codes, and separator codes as output data; the input circuit of the first compression circuit being connected to the input terminal, the output circuit of the first compression circuit being connected to the input circuit of the second compression circuit, the output circuit of the second compression circuit being coupled to the input circuit of the third compression circuit, and the output circuit of the third compression circuit being connected to the output terminal. - View Dependent Claims (8)
-
Specification