← Back to Patent Explorer
US5243341A Expired / Lapsed US ⏱️ 0.0 years remaining

Lempel-Ziv compression scheme with enhanced adapation

Assignee: HP Inc
•
Filing: 1992-06-01
•
Granted: 1993-09-07
•
Expires: 2012-06-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A class of lossless data compression algorithms use a memory-based dictionary of finite size to facilitate the compression and decompression of data. When the current dictionary (CD) fills up with encoded character strings, it is reset thereby losing the compression information previously contained in the dictionary. To reduce the loss in data compression caused by dictionary resets, a second, standby dictionary (SD) is used to simultaneously store a subset of the encoded data entries stored in the first dictionary. The data entries in the second dictionary represent the data entries of the first dictionary that compress the greatest amount of input data. When the first dictionary is ready to be reset, the first dictionary is replaced with the second dictionary, maintaining high data compression and freeing up memory space for new encoded data strings.

Inventors

  • 👤 Gadiel Seroussi
  • 👤 Abraham Lempel

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 15:44
CPC Classifications
H; H03; H03M; H03M7/00; H03M7/30; H03M7/3084; H03M7/3088; G; G06; G06T; G06T9/00; G06T9/005

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 110 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; and logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine while writing data entries into the first dictionary.
Claim 2
Dependent Claim 110 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; and logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine while writing data entries into the first dictionary.
Claim 3
Dependent Claim 63 words
A dictionary based data compression/decompression system according to claim 1 including means for switching the read/write operations of the data compression engine between the first and second dictionaries so that the data compression engine transfers stored data to/from the second dictionary in accordance with the predetermined compression algorithm and the logic means writes a subset of the data entries into the first dictionary.
Claim 4
Dependent Claim 29 words
A data-compression/decompression system according to claim 2 further comprising reset means for activating the switching means when the first dictionary is loaded with a predetermined number of data entries.
Claim 5
Dependent Claim 172 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; logic means for writing into the second dictionary selected subset of the data entries written into the first dictionary by the data compression engine; means for switching the read/write operations of the data compression engine between the first and second dictionaries so that the data compression engine transfers stored data to/from the second dictionary in accordance with the predetermined compression algorithm and the logic means writes a subset of the data entries into the first dictionary; and reset means for activating the switching means when the data compression engine falls below a predetermined compression threshold ratio.
Claim 6
Dependent Claim 172 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; logic means for writing into the second dictionary selected subset of the data entries written into the first dictionary by the data compression engine; means for switching the read/write operations of the data compression engine between the first and second dictionaries so that the data compression engine transfers stored data to/from the second dictionary in accordance with the predetermined compression algorithm and the logic means writes a subset of the data entries into the first dictionary; and reset means for activating the switching means when the data compression engine falls below a predetermined compression threshold ratio.
Claim 7
Dependent Claim 28 words
A data-compression/decompression system according to claim 2 including means for deactivating the switching means so that the data compression engine reads/writes stored data exclusively to/form a single dictionary.
Claim 8
Dependent Claim 117 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine; and means for identifying data entries in the first dictionary previously written into the second dictionary.
Claim 9
Dependent Claim 117 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine; and means for identifying data entries in the first dictionary previously written into the second dictionary.
Claim 10
Dependent Claim 140 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; and logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine; the logic means being operable to write a data entry into the second dictionary that has matched at least once with one of the data entries of the first dictionary while writing data entries into the first dictionary.
Claim 11
Dependent Claim 140 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing data entries from/into locations within the first dictionary; and logic means for writing into the second dictionary a selected subset of the data entries written into the first dictionary by the data compression engine; the logic means being operable to write a data entry into the second dictionary that has matched at least once with one of the data entries of the first dictionary while writing data entries into the first dictionary.
Claim 12
Dependent Claim 135 words
A dictionary based data-compression/decompression system comprising: a memory including a current and standby dictionary for storing data entries, each data entry defining a plurality of data sequences; a data compression engine for selecting character strings from a data sequence and comparing the character strings to data entries in the current dictionary to determine whether the character string and any of the data entries match; means for storing unmatched multi-character strings as data entries in the current dictionary; means for writing a selected subset of the data entries of the multi-character strings previously stored in the current dictionary into the standby dictionary while writing data entries into the current dictionary; and means for switching the current dictionary with the standby dictionary and initializing the standby dictionary when the data compression engine detects a predetermined reset condition.
Claim 13
Dependent Claim 135 words
A dictionary based data-compression/decompression system comprising: a memory including a current and standby dictionary for storing data entries, each data entry defining a plurality of data sequences; a data compression engine for selecting character strings from a data sequence and comparing the character strings to data entries in the current dictionary to determine whether the character string and any of the data entries match; means for storing unmatched multi-character strings as data entries in the current dictionary; means for writing a selected subset of the data entries of the multi-character strings previously stored in the current dictionary into the standby dictionary while writing data entries into the current dictionary; and means for switching the current dictionary with the standby dictionary and initializing the standby dictionary when the data compression engine detects a predetermined reset condition.
Claim 14
Dependent Claim 137 words
A dictionary-based data compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary while writing data entries into the current dictionary; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 15
Dependent Claim 137 words
A dictionary-based data compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary while writing data entries into the current dictionary; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 16
Dependent Claim 166 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising; establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; selecting the subset of the previously stored data entries to be stored in the standby dictionary to comprise stored data entries from the current dictionary that have matched at least once with a subsequently encoded character string; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 17
Dependent Claim 166 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising; establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; selecting the subset of the previously stored data entries to be stored in the standby dictionary to comprise stored data entries from the current dictionary that have matched at least once with a subsequently encoded character string; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 18
Dependent Claim 177 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising; establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; selecting the subset of data entries to be stored in the standby dictionary so as to generate, when utilized by the compression algorithm, at least as great an input data compression ratio as any other subset of the current dictionary with the same number of encoded data entries; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 19
Dependent Claim 177 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising; establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; selecting the subset of data entries to be stored in the standby dictionary so as to generate, when utilized by the compression algorithm, at least as great an input data compression ratio as any other subset of the current dictionary with the same number of encoded data entries; and replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs.
Claim 20
Dependent Claim 170 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs; selecting a data sample of an input data sequence; building the current and standby directories based on the selected data sample; and disabling the standby dictionary after the current dictionary has been replaced with the standby dictionary built using the data sample.
Claim 21
Dependent Claim 170 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; replacing the current dictionary with the standby dictionary and initializing a new standby dictionary when a predetermined reset condition occurs; selecting a data sample of an input data sequence; building the current and standby directories based on the selected data sample; and disabling the standby dictionary after the current dictionary has been replaced with the standby dictionary built using the data sample.
Claim 22
Dependent Claim 26 words
A dictionary based compression/decompression method according to claim 12 including freezing the current dictionary's data entries and sending the current dictionary's data entries to a decoder.
Claim 23
Dependent Claim 20 words
A dictionary based compression/decompression method according to claim 12 including intermittently resetting the dictionaries prior to disabling the standby dictionary.
Claim 24
Dependent Claim 142 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; compressing/decompressing input data to produce encoded data strings using the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; and replacing the current dictionary with the standby dictionary when the current dictionary reaches a predetermined number of stored character string entries.
Claim 25
Dependent Claim 142 words
A dictionary based compression/decompression method in which a predetermined compression algorithm reads/writes data in a dictionary to compress/decompress a data sequence, the method comprising: establishing a current dictionary and a standby dictionary for storing data derived from the data sequence; inputting a character string from the data sequence; comparing the input character string to previously stored data entries in the current dictionary to determine whether the input character string and any of the stored data entries match; storing an unmatched input character string as a data entry in the current dictionary; compressing/decompressing input data to produce encoded data strings using the current dictionary; storing a subset of the previously stored data entries of the current dictionary in the standby dictionary; and replacing the current dictionary with the standby dictionary when the current dictionary reaches a predetermined number of stored character string entries.
Claim 26
Dependent Claim 139 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing a first set of data entries from/into locations within the first dictionary; and means for transferring a selected subset of the first set of data entries from the first dictionary to the second dictionary, the second dictionary receiving the selected subset directly from the first dictionary and using the subset as an initial set of data entries that can be expanded upon with additional data entries taken from the input data.
Claim 27
Dependent Claim 139 words
A dictionary based data compression/decompression system comprising: a memory device including first and second dictionaries, each dictionary including a finite number of locations for storing data from a data sequence; a data compression engine for reading and writing to a first dictionary in accordance with a predetermined compression algorithm; the data compression engine including means for compressing/decompressing input data to produce encoded data strings, and means for reading/writing a first set of data entries from/into locations within the first dictionary; and means for transferring a selected subset of the first set of data entries from the first dictionary to the second dictionary, the second dictionary receiving the selected subset directly from the first dictionary and using the subset as an initial set of data entries that can be expanded upon with additional data entries taken from the input data.

References Cited (Backward Citations)

US4464650A Cited
US4814746A Cited
US4558302A Cited
US4558302B1 Cited
US4876541A Cited
US4881075A Cited
US4847619A Cited
US5003307A Cited
US5016009A Cited
US5023610A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-09-06 1997-03-08 1997-09-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-09-06 2001-03-08 2001-09-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-09-06 2005-03-08 2005-09-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag