Method and system for compression and decompression of data
AssigneeSpaceLabs Medical, Inc.
InventorBenje J. Standley
Life of this patent
Estimating the term…
Abstract
A method and system for compressing and decompressing data is provided. In preferred embodiments, a computer system compresses a data buffer comprising a plurality of symbols wherein each symbol has one or more occurrences. The system generates a symbol table containing each symbol and having a corresponding index. For each occurrence of the symbol in the data buffer, the system determines the index for that symbol into the symbol table, and encodes the index into a variable-length portion, a delimiter, and a fixed-length portion. The system then outputs the encoding as the compressed data buffer.
Claims17
A method in a computer system of compressing a data buffer, the data buffer comprising a plurality of symbols, each symbol having one or more occurrences, the method comprising the computer-implemented steps of:
- generating a symbol table, the symbol table containing each symbol and having a corresponding index;
- and
- for each occurrence of a symbol in the data buffer,
- determining the index for that symbol in the symbol table;
- encoding the determined index into a variable-length portion, a delimiter, and a fixed-length portion;
- and
- outputting the encoding.
A method in a computer system of decoding an encoded symbol, the encoded symbol represented as an encoded index into a symbol table, the symbol table having a plurality of symbols, each symbol having a corresponding index into the symbol table, the method comprising computer-implemented the steps of:
- decoding the encoded index to generate a decoded index;
- and
- using the decoded index to retrieve the corresponding symbol from the symbol table wherein the retrieved symbol is the decoded representation of the encoded symbol.
A method in a computer system of encoding a number, the method comprising the computer-implemented steps of:
- determining a divisor;
- determining the integer quotient of the number divided by the divisor;
- determining the remainder of the number divided by the divisor;
- generating a string of quotient bits of length equal to the integer quotient, wherein each bit has the same bit value;
- generating a string of remainder bits representing the remainder;
- and
- generating a delimiter bit having a different bit value than the bit value of the bits in the generated string of quotient bits to indicate the end of the generated string of quotient bits, wherein the quotient bits, the delimiter bit, and the remainder bits comprise the encoded number.
A data compression apparatus for compressing a data buffer, the data buffer containing a plurality of symbols, each symbol occurring one or more times, comprising:
- means for parsing the data buffer into occurrences of symbols;
- means for generating a symbol table having an entry for each parsed symbol, each entry having a symbol and a unique indexing identifier;
- means for retrieving each occurrence of each symbol from the data buffer;
- means for determining the unique indexing identifier of the retrieved symbol;
- means for encoding the determined unique indexing identifier into a variable-length portion, a delimiter, and a fixed-length portion such that the length of the variable-length portion is based on the number of occurrences of the retrieved symbol in the data buffer;
- and
- means for outputting the encoding.
A decompression apparatus for decoding an encoded symbol, the encoded symbol represented an encoded index into a symbol table, the symbol table having a plurality of symbols, each symbol having a corresponding index into the symbol table, the decompression apparatus comprising:
- means for decoding the encoded index to generate a decoded index;
- and
- means for retrieving the symbol corresponding to the decoded index from the symbol table wherein the retrieved symbol represents the decoded symbol.
Dependencies are inferred from the claim text.