Data compression method and apparatus implemented with limited length character tables
First Claim
1. A data compression method for compressing an input stream of data characters into an output stream of compressed codes, said data characters being from an alphabet of data characters, comprisingproviding a plurality of character tables corresponding to respective characters of said alphabet, limiting the lengths of said character tables in accordance with frequency of occurrence of said characters of said alphabet, respectively, storing in said character tables, strings of data characters encountered in said input stream, said stored strings having respective codes associated therewith, a string comprising a prefix string of at least one of said characters followed by an extension character, a particular string being stored in said character tables by storing the code associated with said particular string in the character table corresponding to the extension character of said particular string at a character table location corresponding to the code of the prefix string of said particular string, searching said input stream by comparing said input stream to said stored strings to determine the longest match therewith, outputting the code associated with said longest match so as to provide said output stream of compressed codes, inserting an extended string into said character tables, said extended string comprising said longest match extended by the next data character in said input stream following said longest match, said extended string being stored in the particular character table corresponding to said next data character, and bypassing said inserting step if said particular character table is unavailable for string storage, thereby excluding said extended string from storage.
12 Assignments
0 Petitions
Accused Products
Abstract
A new LZW compressor implementation architecture utilizes a plurality of limited length character tables corresponding to the respective characters of the alphabet. A string is stored by storing the code associated with the string in the character table corresponding to the extension character of the string at a character table location corresponding to the code of the string prefix. A character table is created when the character corresponding thereto is first encountered in the input. The input data character stream is searched by comparing the input stream to the stored strings to determine longest matches therewith. The codes associated with the longest matched strings are outputted so as to provide an output stream of compressed codes. The respective lengths of the character tables are limited in accordance with the frequency of occurrence of the characters of the alphabet. If a character table is limited in length to a number of strings less than a predetermined threshold, the character table is excluded from creation. The stored strings are updated by inserting extended strings into the character tables, terminating storage into a character table when the table is full. Additionally, an extended string is excluded from storage when the appropriate character table therefor is excluded from creation.
41 Citations
34 Claims
-
1. A data compression method for compressing an input stream of data characters into an output stream of compressed codes, said data characters being from an alphabet of data characters, comprising
providing a plurality of character tables corresponding to respective characters of said alphabet, limiting the lengths of said character tables in accordance with frequency of occurrence of said characters of said alphabet, respectively, storing in said character tables, strings of data characters encountered in said input stream, said stored strings having respective codes associated therewith, a string comprising a prefix string of at least one of said characters followed by an extension character, a particular string being stored in said character tables by storing the code associated with said particular string in the character table corresponding to the extension character of said particular string at a character table location corresponding to the code of the prefix string of said particular string, searching said input stream by comparing said input stream to said stored strings to determine the longest match therewith, outputting the code associated with said longest match so as to provide said output stream of compressed codes, inserting an extended string into said character tables, said extended string comprising said longest match extended by the next data character in said input stream following said longest match, said extended string being stored in the particular character table corresponding to said next data character, and bypassing said inserting step if said particular character table is unavailable for string storage, thereby excluding said extended string from storage.
-
18. Data compression apparatus for compressing an input stream of data characters into an output stream of compressed codes, said data characters being from an alphabet of data characters, comprising
a plurality of character tables corresponding to respective characters of said alphabet for storing strings of data characters encountered in said input stream, said stored strings having respective codes associated therewith, a string comprising a prefix string of at least one of said characters followed by an extension character, a particular string being stored in said character tables by storing the code associated with said particular string in the character table corresponding to the extension character of said particular string at a character table location corresponding to the code of the prefix string of said particular string, means for limiting the lengths of said character tables in accordance with frequency of occurrence of said characters of said alphabet, respectively, means for searching said input stream by comparing said input stream to said stored strings to determine the longest match therewith, means for outputting the code associated with said longest match so as to provide said output stream of compressed codes, means for inserting an extended string into said character tables, said extended string comprising said longest match extended by the next data character in said input stream following said longest match, said extended string being stored in the particular character table corresponding to said next data character, and means for bypassing the inserting of said extended string into said character tables if said particular character table is unavailable for string storage, thereby excluding said extended string from storage.
Specification