Data compression via alphabet partitioning and group partitioning
First Claim
1. A method for compressing data, said method comprising:
- (a) employing probabilities to renumber a plurality of integer numbers representative of the data so that smaller numbers correspond to more probable integer numbers of said plurality of integer numbers and outputting a stream of numbers based upon said renumbering;
(b) grouping said stream of numbers into at least two groups;
(c) finding a maximum number (Nm) in a group from the at least two groups;
(d) entropy-coding the maximum number Nm ;
(e) recursively encoding the numbers of the group using the maximum number Nm ; and
(f) repeating said steps (c)-(e) for each group of said at least two groups, thereby providing compressed data.
0 Assignments
0 Petitions
Accused Products
Abstract
A data compression method, system and program code are provided which optimize entropy-coding by reducing complexity through alphabet partitioning, and then employing sample-group partitioning in order to maximize data compression on groups of source numbers. The approach is to employ probabilities to renumber source numbers so that smaller numbers correspond to more probable source numbers. This is followed by group partitioning of the stream of resultant numbers into at least two groups, for example, defining regions of an image, ranges of time, or a linked list of data elements related by spatial, temporal or spatio-temporal dependence. A maximum number (Nm) is found in a group of numbers of the at least two groups and then entropy-coded. A recursive entropy encoding of the numbers of the group is then employed using the maximum number Nm. The process is repeated for each partitioned group. Decoding of the resultant codewords involves the inverse process. Transformation and/or quantization may all be employed in combination with the group-partitioning entropy encoding.
51 Citations
41 Claims
-
1. A method for compressing data, said method comprising:
-
(a) employing probabilities to renumber a plurality of integer numbers representative of the data so that smaller numbers correspond to more probable integer numbers of said plurality of integer numbers and outputting a stream of numbers based upon said renumbering; (b) grouping said stream of numbers into at least two groups; (c) finding a maximum number (Nm) in a group from the at least two groups; (d) entropy-coding the maximum number Nm ; (e) recursively encoding the numbers of the group using the maximum number Nm ; and (f) repeating said steps (c)-(e) for each group of said at least two groups, thereby providing compressed data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for compressing data, said method comprising:
-
(a) grouping a plurality of integer numbers representative of the data into at least two groups; (b) establishing a group list containing said at least two groups; (c) identifying a maximum integer number (Nm) within the at least two groups and entropy coding said maximum integer number (Nm); (d) if Nm >
0, then for each group in the group list(i) divide the group into n subgroups, wherein n≧
2;(ii) create a binary mask of n bits, each bit said corresponding to one subgroup of said n subgroups and comprising 1 if the corresponding subgroup'"'"'s maximum integer number (Nms) equals the maximum integer number (Nm), otherwise the bit is 0; (iii) entropy coding the binary mask and entropy coding every subgroup maximum integer number (Nms) which is less than the maximum integer number (Nm); (iv) add to the group list each subgroup with more than one integer number and a subgroup maximum integer number (Nms)>
0; and(e) repeating said steps (c) &
(d) for each group and subgroup in the group list until the group list is empty, thereby achieving encoding of said plurality of integer numbers and compressing of said data. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. An encoder for encoding a plurality of integer numbers comprising:
-
(a) means for renumbering the plurality of integer numbers so that smaller numbers correspond to more probable integer numbers, and for outputting a stream of numbers based thereon; (b) means for grouping the stream of numbers into at least two groups; (c) means for finding a maximum number Nm in a group from the at least two groups;
(d) means for entropy-coding the maximum number Nm ;(e) means for recursively encoding the group of numbers using the maximum number Nm ; and (f) means for repeating, for each group of the at least two groups, said means for finding (c), said means for entropy-coding (d) and said means for recursively encoding (e), thereby producing codewords comprising said encoded plurality of integer numbers. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer system for processing source integer numbers comprising:
-
an encoder for encoding said source integer numbers to produce codewords; a transmission/storage subsystem for accommodating said codewords; a decoder for receiving said codewords from said transmission/storage subsystem and for decoding said codewords to reobtain said source integer numbers; and wherein said encoder comprises; (i) means for renumbering the source numbers so that smaller numbers correspond to more probable source numbers and for outputting a stream of numbers based thereon; (ii) partition means for grouping said stream of numbers into at least two groups; (iii) means for finding a maximum number (Nm) in a group of numbers from the at least two groups; (iv) means for entropy-coding the maximum number Nm ; (v) means for recursively encoding the group of numbers using the maximum number Nm ; and (vi) means for repeating said means (iii)-(v). - View Dependent Claims (35, 36, 37, 38)
-
-
39. A computer program product comprising a computer usable medium having computer readable program code means therein for use in compressing data in a computer system, said computer readable program code means in said computer program product comprising:
-
(i) computer readable program code means for renumbering a plurality of integer numbers representative of the data employing associated probabilities so that smaller numbers correspond to more probable integer numbers of said plurality of integer numbers and for outputting a stream of numbers based upon said renumbering; (ii) computer readable code means for grouping said stream of numbers into at least two groups; (iii) computer readable code means for finding a maximum number (Nm) in a group from the at least two groups; (iv) computer readable code means for entropy-coding the maximum number Nm ; (v) computer readable program code means for recursively encoding the numbers of the group using the maximum number Nm ; and (vi) computer readable program code means for repeating processings of said computer readable code means (i)-(iv) for each group of the at least two groups. - View Dependent Claims (40, 41)
-
Specification