Hardware-implemented LZW data decompression
AssigneeUnisys Corporation
InventorsCarlos Cardosa, Thomas J. Kelleher, Jr., Shahriar Seyedhosseini, Anil Varghese
Life of this patent
Estimating the term…
Abstract
An apparatus for performing LZW data decompression in hardware is described. In one exemplary implementation, the apparatus includes processing modules configured to decompress compressed data using an LZW data decompression algorithm. Operations associated with decompressing the compressed data are segmented into stages. For each particular stage, one or more of the processing modules are assigned to perform operations appurtenant to that particular stage and collectively decompress the compressed data. Each processing module is implemented in hardware and configured to operate independently with respect to the operations appurtenant to that processing module.
Claims21
An apparatus, comprising:
- processing modules configured to decompress compressed data using LZW (Lempel-Ziv-Welch) data decompression by:
- (i) segmenting operations associated with decompressing the compressed data into stages, wherein one of the stages includes operations associated with unpacking code-words from the compressed data, and (ii) for each particular stage, assigning one or more of the processing modules to perform operations appurtenant to that particular stage and collectively decompress the compressed data, wherein each processing module is implemented in hardware and configured to operate independently with respect to the operations appurtenant to that processing module, and wherein at least one of the processing modules is assigned to perform the operations associated with unpacking the code-words.
An apparatus, comprising:
- processing modules configured to decompress compressed data using LZW (Lempel-Ziv-Welch) data decompression by:
- (i) segmenting operations associated with decompressing the compressed data into stages, wherein one of the stages includes operations associated with generating a dictionary to decode code-words associated with the compressed data and (ii) for each particular stage, assigning one or more of the processing modules to perform operations appurtenant to that particular stage and collectively decompress the compressed data, wherein each processing module is implemented in hardware and configured to operate independently with respect to the operations appurtenant to that processing module, and wherein at least one of the processing modules is assigned to perform the operations associated with creating the dictionary and decoding the code-words by referencing the dictionary.
A system, comprising:
- a first processing module comprising a data path located between an input port and output port of the first processing module, configured to receive an LZW compressed data stream containing code-words in increments of X bits of data per cycle, wherein the X bits of data represents a number of bits of data less than the size of a code-word, wherein the code-words are located at arbitrary positions within the LZW compressed data stream, the code-words having variable data bit lengths, and wherein the first processing module is configured to extract code-words from the LZW compressed data stream by monitoring patterns associated with each increment of X bits of data received by the data path per cycle, and, based on those patterns, directing the data path to form a code-word from the compressed data stream for transmission from the output port;
- and
- a second processing module comprising a data path configured to (i) receive the code-words extracted by the first processing module, (ii) dynamically reconstruct a dictionary from which the LZW compressed data stream was created, and (iii) use the code-words as an addresses to the dictionary to output a decoded data stream from the dictionary to the data path for transmission.
Dependencies are inferred from the claim text.