Patent ID: 7256715

Claim:
A method of compressing received data, the received data comprising a string of characters, the method comprising: identifying a previously encoded data string comprising at least one character in said received data, as a potential new prefix string; identifying a character immediately following said previously encoded data string as a potential new append character; forming a plurality of hash values from said potential new prefix string and said potential new append character; using said plurality of hash values to identify a corresponding plurality of storage locations in a code memory, and to access said corresponding plurality of storage locations in said code memory; determining whether said corresponding plurality of storage locations in said code memory contain valid code values and, if said corresponding plurality of storage locations contain valid codes, determining whether said corresponding plurality of storage locations contain valid codes comprising said potential new prefix string and said potential new append character; if one of said corresponding plurality of storage locations contains a valid code comprising said potential new prefix string and said potential new append character, identifying said potential new prefix string and said potential new append character as an additional previously encoded data string; if none of said corresponding plurality of storage locations contains a valid code comprising said potential new prefix string and said potential new append character, and if one or more of said corresponding plurality of storage locations does not contain a valid code, creating a new code comprising said potential new prefix string and said potential new append character, storing said new code at a selected one of said one or more of said corresponding plurality of storage locations, and incrementing a counter which indicates the number of codes created; and if all of said corresponding plurality of storage locations contains a valid code, but none of said corresponding plurality of storage locations contains a valid code comprising said potential new prefix string and said potential new append character, creating a dummy code comprising said potential new prefix string and said potential new append character, and incrementing said counter which indicates the number of codes created.