Method and apparatus for compressing and decompressing data
First Claim
1. An apparatus for processing compressed, variable length data items in a data compression system, said apparatus comprising:
- code storing means for storing variable length code items, each code item representing a corresponding variable length data item and comprising a corresponding number of code bits which are within one of a predetermined number of possible variable length code cases;
means for decoding said stored code bits and outputting a signal identifying a length case within one of said possible variable length code cases;
means for concurrently generating the sums of the number of code bits in each of said variable length code bit cases and a starting address of a first code item in order to generate a plurality of possible starting addresses for a second code item; and
means for selecting one of said plurality of possible starting addresses for said second code item on the basis of the signal output by said decoding means.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system having a compression and decompression apparatus based on the Lempel-Ziv algorithm. The compression apparatus includes a history RAM unit for receiving and storing one or more data elements and a coding unit for determining whether received data elements previously have been stored in the history RAM unit and are a candidate for compression. If a received data element matches at least one of the stored data elements, an address of the matching stored data element is generated. The compression apparatus generates a compression token comprising an identification of whether a data element is compressed, the length of the coded data within a plurality of predetermined data length categories and an address. The decompression apparatus also includes a history RAM unit for storing received data elements and includes a circuit for receiving a compression token and determining the storage addresses of the next data element from the length and address information contained in the token. The apparatus can identify the next address at high speed by a parallel processing using the predetermined length categories.
34 Citations
20 Claims
-
1. An apparatus for processing compressed, variable length data items in a data compression system, said apparatus comprising:
-
code storing means for storing variable length code items, each code item representing a corresponding variable length data item and comprising a corresponding number of code bits which are within one of a predetermined number of possible variable length code cases; means for decoding said stored code bits and outputting a signal identifying a length case within one of said possible variable length code cases; means for concurrently generating the sums of the number of code bits in each of said variable length code bit cases and a starting address of a first code item in order to generate a plurality of possible starting addresses for a second code item; and means for selecting one of said plurality of possible starting addresses for said second code item on the basis of the signal output by said decoding means. - View Dependent Claims (2, 3)
-
-
4. An apparatus for processing a plurality of sequentially arranged compressed code tokens representing original data, each code token having one of a plurality of possible variable lengths and comprising compression information and code length information, said apparatus comprising:
-
a) means for storing code tokens, said means being of sufficient size to store each of a first code token and a second code token, each said stored tokens being any one of said possible variable lengths; b) means for aligning said stored code tokens for providing aligned storage locations for said first and second code tokens irrespective of code token length; c) means for decoding said code length information for said first stored code token and identifying one of said plurality of code lengths; d) means for providing a current address, said current address being used to determine the location of said first code token in said token storing means; e) means for concurrently providing all of said plurality of possible variable code length values; f) means responsive to said plurality of possible variable code length values and said current address for generating a plurality of possible next addresses for said second code token; and g) means responsive to said decoding means for selecting a next address in said token storing means for said second code token. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11)
-
-
12. A data compression and decompression system comprising:
-
a) a data compressor for receiving variable length data elements and generating variable length codes comprising raw data tokens, comprising raw data and a length code, and compressed word tokens for data elements that match previously received data elements, said compressed word tokens comprising a compression code, an address and a variable length code representing one of a predetermined number of variable length possibilities; and b) a data decompressor comprising; i) means for storing variable length tokens, said storage means having a plurality of addresses; ii) means for decoding said length code of a first variable length code and outputting a signal identifying one of said length possibilities; iii) means for adding in parallel all variable length possibilities of said first variable length code to its starting address to generate plural possible next addresses; and iv) means for selecting one of said possible next addresses as the starting addresses for a subsequent variable length code on the basis of the output of said decoding means. - View Dependent Claims (13, 14, 15)
-
-
16. A method of decompressing compressed data, said compressed data being represented by a code token comprising a status code indicating its status as compressed data, a length code indicating its length within a predetermined plurality of length value cases and an address in a history memory, comprising:
-
a) decoding said length code and identifying one of said plurality of length value cases, b) concurrently with said decoding step, determining an identity between a plurality of possible next code token addresses and an available code token storage area by (i) adding all possible code lengths to a current code token address for generating plural possible next addresses, and (ii) determining for said plural possible next code token addresses on the basis of an available storage segment an identity of values; and c) selecting a next code token address on the basis of said identified length value cases and said determined identity of values. - View Dependent Claims (17, 18, 19, 20)
-
Specification