Method and apparatus for compressing digital data
First Claim
1. A method for compressing digital data, comprising:
- initializing a compression tree by creating a plurality of first layer nodes;
receiving digital data to be compressed;
creating child nodes which contain the digital data to be compressed;
placing a first portion of the child nodes into the compression tree, with the child nodes in the first portion being referenced by child pointers;
inserting a second portion of the child nodes into the compression tree in the form of a plurality of sibling groups, with each sibling group having a common parent node, wherein the child nodes in each sibling group are arranged according to a predefined sorting criteria, with the child nodes in the sibling groups being referenced by sibling pointers;
continuing to insert child nodes into the sibling groups according to the predefined sorting criteria as additional digital data to be compressed is received; and
outputting index values which define a path from one of the first layer nodes to one of the child nodes, wherein the index values represent the compressed digital data.
9 Assignments
0 Petitions
Accused Products
Abstract
The present invention compresses data by initializing a compression tree and creating a plurality of first layer nodes therein. Then, digital data to be compressed is received. Child nodes which contain the digital data to be compressed are formed. A first portion of these child nodes is placed into the compression tree, with the child nodes in the first portion being referenced by child pointers. Next, a second portion of the child nodes is inserted into the compression tree in the form of a plurality of sibling groups, with each sibling group having a common parent node. The child nodes in each sibling group are arranged according to a predefined sorting criteria. Each of the child nodes in the sibling groups is referenced by a sibling pointer. As more data to compress is received, child nodes continue to be inserted into the sibling groups according to the predefined sorting criteria. As additional child nodes are inserted into the compression tree, index values which define a path from one of the first layer nodes to one of the child nodes are outpult, with the index values representing the compressed data. Data is decompressed by initializing a decompression tree and creating a plurality of first layer nodes therein. Then, the index values which represent the compressed digital data are processed. First, a matching node in the decompression tree is found which has the received index value. A path from the matching node to a node in the first layer of nodes is then found and the data values associated with nodes encountered in the path are output, thereby converting the index values into decompressed data.
15 Citations
24 Claims
-
1. A method for compressing digital data, comprising:
-
initializing a compression tree by creating a plurality of first layer nodes; receiving digital data to be compressed; creating child nodes which contain the digital data to be compressed; placing a first portion of the child nodes into the compression tree, with the child nodes in the first portion being referenced by child pointers; inserting a second portion of the child nodes into the compression tree in the form of a plurality of sibling groups, with each sibling group having a common parent node, wherein the child nodes in each sibling group are arranged according to a predefined sorting criteria, with the child nodes in the sibling groups being referenced by sibling pointers; continuing to insert child nodes into the sibling groups according to the predefined sorting criteria as additional digital data to be compressed is received; and outputting index values which define a path from one of the first layer nodes to one of the child nodes, wherein the index values represent the compressed digital data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system for compressing digital data, comprising:
-
memory means for storing digital information; processing means, connected to memory means, for operating upon the digital information in the memory means; the data processing system being operable in a compression mode of operation, wherein, a compression tree is initialized by creating a plurality of iirst layer nodes; digital data to be compressed is received; child nodes which contain the digital data to be compressed are created; a first portion of the child nodes is placed into the compression tree, with the child nodes in the first portion being referenced by child pointers; a second portion of the child nodes is inserted into the compression tree in the form of a plurality of sibling groups, with each sibling group having a common parent node, wherein the child nodes in each sibling group are arranged according to a predefined sorting criteria, with the child nodes in the sibling groups being referenced by sibling pointers; child nodes continue to be inserted into the sibling groups according to the predefined sorting criteria as additional digital data to be compressed is received; and index values which define a path from one of the first layer nodes to one of the child nodes are output, wherein the index values represent the compressed digital data. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product having stored computer-readable instructions for directing a data processing system to compress digital data, comprising:
-
means for initializing a compression tree by creating a plurality of first layer nodes; means for receiving digital data to be compressed; means for creating child nodes which contain the digital data to be compressed; means for placing a first portion of the child nodes into the compression tree, with the child nodes in the first portion being referenced by child pointers; means for inserting a second portion of the child nodes into the compression tree in the form of a plurality of sibling groups, with each sibling group having a common parent node, wherein the child nodes in each sibling group are arranged according to a predefined sorting criteria, with the child nodes in the sibling groups being referenced by sibling pointers; means for continuing to insert child nodes into the sibling groups according to the predefined sorting criteria as additional digital data to be compressed is received; and means for outputting index values which define a path from one of the first layer nodes to one of the child nodes, wherein the index values represent the compressed digital data. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification