Runs of adaptive pixel patterns (RAPP) for lossless image compression
First Claim
1. A method of coding a pixel in a digitized image, comprising the steps of:
- determining an augmented pattern of said pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, and a character for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction;
determining a probability for each label of the basic pattern;
predicting a label of said pixel based on a comparison of the determined probability for each label;
determining the actual label of said pixel; and
coding said pixel based on the predicted label and the determined actual label of said pixel.
2 Assignments
0 Petitions
Accused Products
Abstract
A new lossless compression technique is provided that is specifically designed for palettized synthetic images which typically consist of several sharply delineated uniform-color regions with overlaid text and symbols. The associated algorithm uses patterns of previously-coded neighboring pixels to predict and code each pixel. Preferably, the four immediate and previously-coded neighbors of the current pixel are used. That is, the pixel immediately to the left (or west), the pixel immediately above and diagonally to the left (or northwest), the pixel immediately above (or north), and the pixel immediately above and diagonally to the right (or northeast). The basic pattern determined by the neighboring pixels is augmented by incorporating the number of times the value of each of the neighboring pixels is repeated in the corresponding direction. The prediction rules for different patterns are learned and updated from the image itself during the coding and decoding processes.
104 Citations
30 Claims
-
1. A method of coding a pixel in a digitized image, comprising the steps of:
-
determining an augmented pattern of said pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, and a character for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction; determining a probability for each label of the basic pattern; predicting a label of said pixel based on a comparison of the determined probability for each label; determining the actual label of said pixel; and coding said pixel based on the predicted label and the determined actual label of said pixel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An encoder for coding a plurality of pixels in a digitized image, comprising:
-
means for applying a transform to the digitized image to determine an augmented pattern of each pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, and a character for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction; wherein said transform applying means determines, for each augmented pattern, a probability for each label of the basic pattern, predicts a label of each pixel based on a comparison of the determined probability for each label and determines the actual label of each pixel; and means for coding each pixel based on the predicted label and the determined actual label of that pixel. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. An encoder/decoder system, comprising:
-
an encoder for coding a plurality of pixels in the digitized image, comprising; means for applying a transform to the digitized image to determine an augmented pattern of each pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, and a character for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction, wherein said transform applying means determines, for each augmented pattern, a probability for each label of the basic pattern, predicts a label of each pixel based on a comparison of the determined probability for each label and determines the actual label of each pixel, wherein said transform applying means generates one of a plurality of symbols for each augmented pattern to indicate that one of a plurality of conditions has been satisfied; and a code generator for coding each of the produced plurality of symbols to compress the image; and a decoder for decoding the coded plurality of symbols, comprising; a symbol recovery generator for decoding the coded symbols; and means for applying an inverse transform to recover the digitized image. - View Dependent Claims (23, 24)
-
-
25. A decoder for decoding a plurality of coded symbols to obtain an uncompressed digitized image represented by a plurality of pixels, each having a value, comprising:
-
a symbol recovery generator for decoding the plurality of coded symbols to recover the decoded symbols; means for applying an inverse transform to the decoded symbols to determine the value of each of the plurality of pixels by extracting an augmented pattern of each pixel based on a plurality of neighboring pixels, wherein the augmented pattern comprises a basic pattern which includes a label for each of the neighboring pixels, and a character for each of the plurality of neighboring pixels that represents the number of times the value of that neighboring pixel is repeated in a particular direction, wherein said inverse transform applying means determines a value for each pixel based on the augment pattern of that pixel.
-
-
26. A computer system including a processor and a memory having a computer-readable program code embodied therein for causing the processor to code a plurality of pixels in a digitized image;
-
wherein said processor applies a transform to the digitized image to determine an augmented pattern of each pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, and a character for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction; wherein said processor determines, for each augmented pattern, a probability for each label of the basic pattern, predicts a label of each pixel based on a comparison of the determined probability for each label and determines the actual label of each pixel; and wherein said processor codes each pixel based on the predicted label and the determined actual label of that pixel.
-
-
27. A computer-usable medium having a computer-readable program code embodied therein for causing a computer to code a pixel in a digitized image by performing the steps of:
-
determining an augmented pattern of said pixel based on a plurality of previously-coded neighboring pixels, each having a value, wherein the augmented pattern comprises a basic pattern which assigns a label to each previously-coded neighboring pixel, the labels identifying which of the previously-coded neighboring pixels are identical, said augmented pattern further comprising a plurality of characters, one for each previously-coded neighboring pixel that represents the number of times the value of that previously-coded neighboring pixel is repeated in a particular direction; determining a probability for each label of the basic pattern; predicting a label of said pixel based on a comparison of the determined probability for each label; determining the actual label of said pixel; producing one of a plurality of symbols to indicate that one of a plurality of conditions has been satisfied; and entropy-coding the produced symbol. - View Dependent Claims (28, 29, 30)
-
Specification