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

Method and apparatus for compressing data

Assignee: International Business Machines Corp
•
Filing: 1995-10-02
•
Granted: 1997-07-29
•
Expires: 2015-10-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data compression apparatus including a circuit for receiving a data element, a storage circuit for sequentially storing previously received data elements at sequentially addressed fixed locations, a circuit for comparing the received data element to the stored data elements to determine whether the received data element matches at least one of the stored data elements, and a circuit for generating an address of the matching stored data element. In addition, a method of compressing data including the steps of receiving a data element, sequentially storing previously received data elements at sequentially addressed fixed locations, comparing the received data element to the stored data elements to determine whether the received data element matches at least one of the stored data elements, and generating an address of the matching stored data element.

Inventors

  • 👤 David John Craft

Bibliographic Details

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

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 254 words
A data manipulation apparatus comprising: a) means for receiving a data element; b) storage means for sequentially storing previously received data elements at sequentially addressed fixed locations; said storage means including first sequence means for sequentially and repetitively addressing said locations; c) means for comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address of said matching stored data elements; d) detector means including a second sequence means for determining whether said received data element extends a previously stored matching data element string and producing an indicator for each of said fixed locations which is determined to extend a previously stored matching data element, said detector means operating concurrently with said means for comparing; said second sequence means having a plurality of detector cells corresponding to said fixed locations for storing said indicators; and means for sequentially advancing said indicators in said detector cells; e) a plurality of storage cells each receiving an output of one of said detector cells and providing an output representation of said indicators before said sequentially advancing occurs, whereby said output representation is provided if an indicator does not occur after said sequential advancing; f) means for providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 2
Dependent Claim 254 words
A data manipulation apparatus comprising: a) means for receiving a data element; b) storage means for sequentially storing previously received data elements at sequentially addressed fixed locations; said storage means including first sequence means for sequentially and repetitively addressing said locations; c) means for comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address of said matching stored data elements; d) detector means including a second sequence means for determining whether said received data element extends a previously stored matching data element string and producing an indicator for each of said fixed locations which is determined to extend a previously stored matching data element, said detector means operating concurrently with said means for comparing; said second sequence means having a plurality of detector cells corresponding to said fixed locations for storing said indicators; and means for sequentially advancing said indicators in said detector cells; e) a plurality of storage cells each receiving an output of one of said detector cells and providing an output representation of said indicators before said sequentially advancing occurs, whereby said output representation is provided if an indicator does not occur after said sequential advancing; f) means for providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 3
Dependent Claim 36 words
The data manipulation apparatus of claim 1 further comprising means for transmitting any data elements that does not match said stored data elements and for transmitting addresses of matching stored data elements that have been generated.
Claim 4
Dependent Claim 23 words
The data manipulation apparatus of claim 2 wherein the receiving means includes means for receiving said data element as data words in sequence.
Claim 5
Dependent Claim 25 words
The data manipulation apparatus of claim 3 wherein the storage means includes means for sequentially storing previously received data words at sequentially addressed fixed locations.
Claim 6
Dependent Claim 17 words
The data manipulation apparatus of claim 1 wherein said storage means includes a non-shifting content addressable memory.
Claim 7
Dependent Claim 27 words
The data manipulation apparatus of claim 4 wherein the comparing means includes means for sequentially comparing each of said received data words to said stored data words.
Claim 8
Dependent Claim 27 words
The data manipulation apparatus of claim 6 wherein the generating means includes means for generating a length of at least one of said matching stored data elements.
Claim 9
Independent Claim 222 words
A method of manipulating data comprising the steps of: a) receiving a data element; b) sequentially storing previously received data elements at sequentially addressed fixed locations; c) comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address generating indicators of said matching stored data elements; d) determining in response to said indicators whether said received data element extends a previously stored matching data element string and storing indications in response thereto in a sequence of cells; said step of determining operating concurrently with said step of comparing; and sequentially advancing said indication in said sequence of cells; e) storing an output of said sequence of cells in a plurality of storage cells, and providing an output representation of said indications before said step of sequentially advancing occurs, whereby said output representation is provided if an indication does not occur after said sequential advancing; f) when a received data element does not extend a previously stored matching data element then providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said a fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 10
Independent Claim 222 words
A method of manipulating data comprising the steps of: a) receiving a data element; b) sequentially storing previously received data elements at sequentially addressed fixed locations; c) comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address generating indicators of said matching stored data elements; d) determining in response to said indicators whether said received data element extends a previously stored matching data element string and storing indications in response thereto in a sequence of cells; said step of determining operating concurrently with said step of comparing; and sequentially advancing said indication in said sequence of cells; e) storing an output of said sequence of cells in a plurality of storage cells, and providing an output representation of said indications before said step of sequentially advancing occurs, whereby said output representation is provided if an indication does not occur after said sequential advancing; f) when a received data element does not extend a previously stored matching data element then providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said a fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 11
Dependent Claim 34 words
The method of claim 8 further comprising the step of transmitting any data element that does not match said stored data elements and transmitting addresses of matching stored data elements that have been generated.
Claim 12
Dependent Claim 19 words
The method of claim 9 wherein said step of receiving includes receiving data elements as data words in sequence.
Claim 13
Dependent Claim 22 words
The method of claim 10 wherein said step of storing includes sequentially storing previously received data words at sequentially addressable fixed addresses.
Claim 14
Dependent Claim 25 words
The method of claim 11 wherein said step of comparing includes sequentially comparing each of said received data words to said previously stored data words.
Claim 15
Dependent Claim 24 words
The method of claim 12 wherein said step of generating includes generating a length of at least one of said matching stored data elements.
Claim 16
Dependent Claim 272 words
A data processing system comprising: a host computer, said host computer including: a) processing means; b) memory means; c) input means; d) output means; and e) a data manipulation apparatus, said data manipulation apparatus including: i) means for receiving a data element; ii) storage means for sequentially storing previously received data elements at sequentially addressed fixed locations; iii) means for comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address of said matching stored data elements; iv) detector means including a second sequence means for determining whether said received data element extends a previously stored matching data element string and producing an indicator for each of said fixed locations which is determined to extend a previously stored matching data element, said detector means of determining operating concurrently with said means for comparing; said second sequence means having a plurality of detector cells corresponding to said fixed locations for storing said indicators; and means for sequentially advancing said indicators in said detector cells; v) a plurality of storage cells each receiving an output of one of said detector cells and providing an output representation of said indicators before said sequentially advancing occurs, whereby said output representation is provided if an indicator does not occur after said sequential advancing; vi) means for providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 17
Dependent Claim 272 words
A data processing system comprising: a host computer, said host computer including: a) processing means; b) memory means; c) input means; d) output means; and e) a data manipulation apparatus, said data manipulation apparatus including: i) means for receiving a data element; ii) storage means for sequentially storing previously received data elements at sequentially addressed fixed locations; iii) means for comparing said received data element to said stored data elements to determine whether said received data element matches at least one of said stored data elements and to determine a fixed address of said matching stored data elements; iv) detector means including a second sequence means for determining whether said received data element extends a previously stored matching data element string and producing an indicator for each of said fixed locations which is determined to extend a previously stored matching data element, said detector means of determining operating concurrently with said means for comparing; said second sequence means having a plurality of detector cells corresponding to said fixed locations for storing said indicators; and means for sequentially advancing said indicators in said detector cells; v) a plurality of storage cells each receiving an output of one of said detector cells and providing an output representation of said indicators before said sequentially advancing occurs, whereby said output representation is provided if an indicator does not occur after said sequential advancing; vi) means for providing a pointer to at least one of said matching stored data elements in response to said output representation, said pointer including said fixed address of said matching stored data elements and a length of said matching stored data elements.
Claim 18
Dependent Claim 42 words
The data processing system of claim 14 wherein said compression means manipulation apparatus further includes means for transmitting any data element that does not match said stored data elements and for transmitting addresses of matching stored data elements that have been generated.
Claim 19
Dependent Claim 23 words
The data processing system of claim 15 wherein said receiving means further includes means for receiving data elements as data words in sequence.
Claim 20
Dependent Claim 25 words
The data processing system of claim 16 wherein said storage means includes means for sequentially storing previously received data words at sequentially addressed fixed locations.
Claim 21
Dependent Claim 17 words
The data manipulation apparatus of claim 14 wherein said storage means includes a non-shifting content addressable memory.
Claim 22
Dependent Claim 27 words
The data processing system of claim 17 wherein said comparing means includes means for sequentially comparing each of said received data words to said stored data words.
Claim 23
Dependent Claim 27 words
The data processing system of claim 19 wherein said generating means includes means for generating a length of at least one of said matching stored data elements.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-07-28 2001-01-27 2001-07-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-07-28 2005-01-27 2005-07-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-07-28 2009-01-27 2009-07-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag