System and method for lossless data compression
AssigneeSeagate Technology LLC
InventorDavid Orrin Sluiter
Life of this patent
Estimating the term…
Abstract
An embodiment of a method for compressing data includes variable length coding one or more values of control codes generated from dictionary coding the data, wherein the control codes comprise literals and indices, wherein each index comprises a length value and a pointer to previously read in data. An embodiment of a system for losslessly compressing input data includes a modeler operable to determine whether a set of input data matches prior input data, an encoder operable to generate control codes including one or more literal control codes and one or more index control codes, wherein each index control code includes a pointer to a location in the input data and a length value indicating a number of bytes to copy from the location, and wherein the length value is variable length coded.
Claims19
A method comprising:
- variable length coding one or more values of control codes generated from dictionary coding data, wherein variable length coding the one or more values of control code comprises variable length coding a length value of the control code;
- wherein dictionary coding the data comprises:
- reading in a specified number of symbols;
- determining if the symbols match a prior received set of data;
- and
- if the symbols match a prior received set of data, substituting a pointer and a length value for the symbols, wherein the pointer refers to a location of the prior received set of data and the length value indicates a length of matching data.
A system comprising:
- a modeler operable to determine whether a set of input data matches prior input data wherein the modeler comprises:
- a content addressable memory receiving current input data;
- and
- a running string memory comprising prior input data, wherein the current input data of the CAM is compared to the prior input data of the running string memory;
- and
- an encoder operable to generate control codes including one or more literal control codes and one or more index control codes, wherein each index control code includes a pointer to a location in the input data and a length value indicating a number of bytes to copy from the location, and wherein the length value is variable length coded.
A storage device comprising:
- a data compression system configured to dictionary code data to generate control codes comprising literal control codes and index control codes, wherein each index control code comprises a length value and a pointer, and wherein the data compression system is further configured to variable length code the length values of the index control codes;
- wherein dictionary coding the data comprises:
- reading in a specified number of symbols;
- determining if the symbols match a prior received set of data;
- and
- if the symbols match a prior received set of data, substituting a pointer and a length value for the symbols, wherein the pointer refers to a location of the prior received set of data and the length value indicates a length of matching data.
A method comprising:
- variable length coding one or more values of control codes generated from dictionary coding data, wherein the control codes comprise literals and indices;
- and
- wherein dictionary coding the data comprises:
- reading in a specified number of symbols;
- determining if the symbols match a prior received set of data;
- and
- if the symbols match a prior received set of data, substituting a pointer and a length value for the symbols, wherein the pointer refers to a location of the prior received set of data and the length value indicates a length of matching data.
A storage device comprising:
- a data compression system configured to dictionary code data to generate control codes comprising literal control codes and index control codes, wherein each index control code comprises a length value and a pointer, and wherein the data compression system is further configured to variable length code the length values of the index control codes, wherein variable length coding one or more values of a control code comprises variable length coding the length value of the control code.
A method comprising:
- variable length coding one or more values of control codes generated from dictionary coding data, wherein the control codes comprise literals and indices, wherein each index comprises a length value and a pointer to a location of a prior received set of data;
- and
- inserting a type code to the control codes, wherein the type code indicates whether the control code is a literal or an index.
Dependencies are inferred from the claim text.