Dct compression using golomb-rice coding
AssigneeQUALCOMM Incorporated
InventorKadayam S. Thyagarajan
Life of this patent
Estimating the term…
Abstract
An apparatus and method for encoding quantized frequency represented data, the data comprising zero and non-zero represented data is claimed. For zero represented data, a zero run length is determined. A Golomb parameter is determined as a function of the zero run length. A quotient is encoded as a function of the zero run length and the Golomb parameter. A remainder is encoded as a function of the zero run length, the Golomb parameter and the quotient. The coded quotient and the coded remainder are concatenated. For non-zero represented data, the nonzero data is encoded as a function of the non-zero data value and the sign of the non-zero data value.
Claims20
A computer readable medium embodying a method of compressing a digital image comprising pixel data, said pixel data being separated into color components, said method comprising:
- reading a group of a color component of pixel data;
- generating a block size assignment to divide the group of a color component of pixel into sub-blocks of pixel data;
- transforming the sub-blocks of pixel data into corresponding frequency domain representations;
- scaling the frequency domain representations into a stream of data, wherein scaling is based on a quality metric correlating with the quality of the image;
- compiling at least one group of data from the stream data that may be represented as a 16×16 block;
- dividing the 16×16 group of data into groups that may be represented as four 8×8 blocks;
- serializing each of the four 8×8 blocks of data;
- and
- run-length coding the serialized data using an exponential distribution, wherein the run-length code is determined using the equation
- ⌈
- log
- 2
-
- R
- rl
- N
- rl
- ⌉
- where Rrl is the cumulative value of the elements and Nrl is the corresponding number of times that the particular value occurs.
A processor for compressing a digital image comprising pixel data, said pixel data being separated into color components, said processor being configured to:
- read a group of a color component of pixel data;
- generate a block size assignment to divide the group of a color component of pixel into sub-blocks of pixel data;
- transform the sub-blocks of pixel data into corresponding frequency domain representations;
- and
- scale the frequency domain representations into a stream of data, wherein the processor scales based on a quality metric correlating with the quality of the image;
- compile at least one group of data from the stream data that may be represented as a 16×16 block;
- divide the 16×16 group of data into groups that may be represented as four 8×8 blocks;
- serialize each of the four 8×8 blocks of data;
- and
- run-length code the serialized data using an exponential distribution, wherein the run-length code is determined using the equation
- ⌈
- log
- 2
-
- R
- rl
- N
- rl
- ⌉
- where Rrl is the cumulative value of the elements and Nrl is the corresponding number of times that the particular value occurs.
An apparatus for compressing a digital image comprising pixel data, said pixel data being separated into color components, comprising:
- means for reading a group of a color component of pixel data;
- means for generating a block size assignment to divide the group of a color component of pixel into sub-blocks of pixel data;
- means for transforming the sub-blocks of pixel data into corresponding frequency domain representations;
- means for scaling the frequency domain representations into a stream of data, wherein means for scaling scales based on a quality metric correlating with the quality of the image;
- means for compiling at least one group of data from the stream data that may be represented as a 16×16 block;
- means for dividing the 16×16 group of data into groups that may be represented as four 8×8 blocks;
- means for serializing each of the four 8×8 blocks of data;
- and
- means for run-length coding the serialized data using an exponential distribution, wherein the run-length code is determined using the equation
- ⌈
- log
- 2
-
- R
- rl
- N
- rl
- ⌉
- where Rrl is the cumulative value of the elements and Nrl is the corresponding number of times that the particular value occurs.
An apparatus for compressing a digital image comprising pixel data, said pixel data being separated into color components, comprising:
- a block size assignment element configured to read a group of a color component of pixel data and to generate a block size assignment to divide the group of a color component of pixel into sub-blocks of pixel data;
- a transform element configured to transform the sub-blocks of pixel data into corresponding frequency domain representations;
- a quantizer configured to scale the frequency domain representations into a stream of data, wherein the quantizer scales based on a quality metric correlating with the quality of the image;
- a compiler configured to compile at least one group of data from the stream data that may be represented as a 16×16 block, wherein the block size assignment element divides the 16×16 group of data into groups that may be represented as four 8×8 blocks;
- a serializer configured to serialize each of the four 8×8 blocks of data;
- and
- a coder configured to run-length code the serialized data using an exponential distribution, wherein the run-length code is determined using the equation
- ⌈
- log
- 2
-
- R
- rl
- N
- rl
- ⌉
- where Rrl is the cumulative value of the elements and Nrl is the corresponding number of times that the particular value occurs.
Dependencies are inferred from the claim text.