×

Stem for dynamically compressing and decompressing electronic data

  • US 4,876,541 A
  • Filed: 10/15/1987
  • Issued: 10/24/1989
  • Est. Priority Date: 10/15/1987
  • Status: Expired due to Term
First Claim
Patent Images

1. An apparatus for dynamically compressing and decompressing an input stream of data characters into a compressed stream code and for decompressing said compressed stream of code into uncompressed data characters, the apparatus comprising:

  • first dictionary means for storing a first plurality of strings of data characters, said first dictionary means comprising a plurality of unique codes each for identifying a corresponding respective one of said first plurality of strings, wherein said first plurality of strings comprises an initial set of unique data characters, with each character in said initial set being positioned in a corresponding respective one of said first plurality of strings;

    second dictionary means for storing a second plurality of strings of data characters, said second dictionary means comprising a plurality of unique codes each for identifying a corresponding respective one of said second plurality of strings, wherein said second plurality of strings comprises an initial set of unique data characters that is identical to said initial set of unique data characters in said first plurality of strings, with each character in said initial set in said second plurality of strings being positioned in the one of said second plurality of strings that is identified by the same unique code as the string in said first plurality of strings in which the identical character from said initial set of characters in said first plurality of strings is positioned;

    first match means for receiving and parsing said input stream of data characters into parsed strings of data characters and for comparing each of said parsed strings of data characters with said first plurality of strings so as to locate the one of said first plurality of strings that matches a corresponding one of said parsed strings, wherein the most recently matched one of said parsed strings is identified as the current match;

    first transmitting means for transmitting the one of said plurality of unique codes identifying the one of said first plurality of stored strings that matches said current match, for each current match;

    second match means for receiving said one unique code transmitted by said first transmitting means for each current match, and for comparing each said one unique code with said plurality of unique codes identifying said second plurality of strings so as to locate the one of said plurality of unique codes in said second dictionary means that matches said each said one unique code received from said first transmitting means;

    second transmitting means for transmitting the string of character data in said second plurality of strings identified by the one of said plurality of unique codes in said second dictionary means that matches said one unique code received from said first transmitting means, for each string of character data matched by said second match means;

    first update means for adding N new strings of data characters to said first dictionary means for each current match, wherein N equals the number of characters in said current match, said N new strings comprising the last current match concatenated with each non-empty prefix of said current match, and including means for assigning one of said plurality of unique codes to each of said new strings; and

    second update means for adding said N new strings of data characters to said second dictionary means for each current match, including means for assigning the same one of said plurality of unique codes to each of said N new strings added to said second dictionary means that is assigned to corresponding respective ones of said N new strings added to said first dictionary means.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×