Hardware friendly data compression
First Claim
1. A method, comprising:
- packaging an input stream of data into a plurality of data snippets, each data snippet having a length of a minimum match length, with a first data snippet of the plurality of data snippets starting at a beginning data unit of the input stream of data and each data snippet after the first data snippet starting at a second data unit of a preceding data snippet;
determining whether each of the plurality of data snippets has a match in already processed data; and
outputting a stream of compressed data that begins with a literal segment, wherein the literal segment includes one or more literal length fields each followed by a respective succeeding literal field, each of the one or more literal length fields containing a value representing a length of the respective succeeding literal field, wherein the one or more literal fields in combination include data copied from one data snippet of the plurality of data snippets that has no match in the already processed data or from a series of data snippets in succession of the plurality of data snippets that have no match in the already processed data.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, apparatus and methods are provided for compressing data. An exemplary method may comprise interleaving one or more literal length fields with one or more literal fields to an output. The literal fields may contain a first data segment literally copied to the output, and each of the one or more literal length fields may contain a value representing a length of a succeeding literal field. The method may further comprise determining a second data segment being matched to a previously literally copied sequence of data and a match position and writing to the output one or more match length fields and a match position field containing the match position. The literal length fields may contain a total length of the first data segment and the match length fields may contain a total length of the second data segment.
-
Citations
20 Claims
-
1. A method, comprising:
-
packaging an input stream of data into a plurality of data snippets, each data snippet having a length of a minimum match length, with a first data snippet of the plurality of data snippets starting at a beginning data unit of the input stream of data and each data snippet after the first data snippet starting at a second data unit of a preceding data snippet; determining whether each of the plurality of data snippets has a match in already processed data; and outputting a stream of compressed data that begins with a literal segment, wherein the literal segment includes one or more literal length fields each followed by a respective succeeding literal field, each of the one or more literal length fields containing a value representing a length of the respective succeeding literal field, wherein the one or more literal fields in combination include data copied from one data snippet of the plurality of data snippets that has no match in the already processed data or from a series of data snippets in succession of the plurality of data snippets that have no match in the already processed data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus, comprising:
an encoder comprising; a data packager to generate one or more data snippets from an input stream of data, each of the one or more data snippets having a length of a minimum match length, with a first data snippet of the plurality of data snippets starting at a beginning data unit of the input stream of data and each data snippet after the first data snippet starting at a second data unit of a preceding data snippet; a match position searcher to search whether a data snippet has a match in already processed data; and an output assembler configured to output a stream of compressed data that begins with a literal segment, wherein the literal segment includes one or more literal length fields each followed by a respective succeeding literal field, each of the one or more literal length fields containing a value representing a length of the respective succeeding literal field, wherein the one or more literal fields in combination include data copied from one data snippet of the plurality of data snippets that has no match in the already processed data or from a series of data snippets in succession of the plurality of data snippets that have no match in the already processed data. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
19. A non-transitory machine-readable medium having executable instructions, wherein the executable instructions, when executed by a processor of a computer system, causes the computing system to:
-
package an input stream of data into a plurality of data snippets, each data snippet having a length of a minimum match length, with a first data snippet of the plurality of data snippets starting at a beginning data unit of the input stream of data and each data snippet after the first data snippet starting at a second data unit of a preceding data snippet; determine whether each of the plurality of data snippets has a match in already processed data; and output a stream of compressed data that begins with a literal segment, wherein the literal segment includes one or more literal length fields each followed by a respective succeeding literal field, each of the one or more literal length fields containing a value representing a length of the respective succeeding literal field, wherein the one or more literal fields in combination include data copied from one data snippet of the plurality of data snippets that has no match in the already processed data or from a series of data snippets in succession of the plurality of data snippets that have no match in the already processed data. - View Dependent Claims (20)
-
Specification