Embedded graphics coding for images with sparse histograms
First Claim
1. A method of processing an image, comprising:
- a. dividing the image into blocks using a first processor;
b. setting a bit budget for each block;
c. converting pixels of each block into binary representations;
d. scanning and encoding the pixels from the most significant bit-plane to the least significant bit-plane, wherein scanning and encoding the pixels at each bit-plane comprises processing each existing group in the bit-plane, which further comprises;
i. if the pixel values of the group all have the same value at the current bit-plane, writing a first bit value of “
0”
into a bitstream; and
ii. writing a second bit value into the bitstream designating the value of all the pixels in a current group;
iii. if the pixel values of the group do not all have the same value at the current bit-plane, writing the first bit value of “
1”
into the bitstream, followed by one bit for each pixel in the current group designating the bit value of that pixel in the current bit-plane;
iv. generating a new group; and
v. splitting the original group into two, retaining pixels with a value “
0”
in the original group and placing pixels with a value “
1”
in the new group; and
e. generating a compressed image file of the encoded pixels and saving the compressed image file to memory coupled to the first processor.
1 Assignment
0 Petitions
Accused Products
Abstract
Processes for compressing images with sparse histograms are disclosed. The image is divided into blocks, and a bit budget is assigned for each block. The pixels of a block are converted and coded bit-plane by bit-plane, starting from the Most Significant Bit (MSB) and going towards the Least Significant Bit (LSB). The pixels of the block are partitioned into groups. Each group contains pixels that have same value. Moving from the MSB to the LSB, the groups in each bit-plane are processed. When processing a group, the encoder sends a “0” if all group members have same bit value at the current bit-plane being processed, followed by the bit value; otherwise, the encoder sends a “1”, followed by refinement bits for each pixel of the group, and the encoder splits the group.
49 Citations
22 Claims
-
1. A method of processing an image, comprising:
-
a. dividing the image into blocks using a first processor; b. setting a bit budget for each block; c. converting pixels of each block into binary representations; d. scanning and encoding the pixels from the most significant bit-plane to the least significant bit-plane, wherein scanning and encoding the pixels at each bit-plane comprises processing each existing group in the bit-plane, which further comprises; i. if the pixel values of the group all have the same value at the current bit-plane, writing a first bit value of “
0”
into a bitstream; andii. writing a second bit value into the bitstream designating the value of all the pixels in a current group; iii. if the pixel values of the group do not all have the same value at the current bit-plane, writing the first bit value of “
1”
into the bitstream, followed by one bit for each pixel in the current group designating the bit value of that pixel in the current bit-plane;iv. generating a new group; and v. splitting the original group into two, retaining pixels with a value “
0”
in the original group and placing pixels with a value “
1”
in the new group; ande. generating a compressed image file of the encoded pixels and saving the compressed image file to memory coupled to the first processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus for processing an image, comprising:
-
a. a first processor configured for processing pixels of an image; and b. programming executable on the first processor for, i. dividing the image into blocks; ii. setting a bit budget for each block; iii. converting pixels of each block into binary representations; iv. scanning and encoding the pixels from the most significant bit-plane to the least significant bit-plane, wherein scanning and encoding the pixels at each bit-plane comprises processing each existing group in the bit-plane, which further comprises; 1) if the pixel values of the group all have the same value at the current bit-plane, writing a first bit value of “
0”
into a bitstream; and2) writing a second bit value into the bitstream designating the value of all the pixels in a current group; 3) if the pixel values of the group do not all have the same value at the current bit-plane, writing the first bit value of “
1”
into the bitstream, followed by one bit for each pixel in the current group designating the bit value of that pixel in the current bit-plane;4) generating a new group; and 5) splitting the original group into two, retaining pixels with a value “
0”
in the original group and placing pixels with a value “
1”
in the new group; andv. generating a compressed image file of the encoded pixels. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus for processing an image with a sparse histogram, comprising:
-
a. first processing means configured for processing pixels of the image; b. encoding means executable on the first processing means for; i. dividing the image into blocks; ii. setting a bit budget for each block; iii. converting pixels of each block into binary representations; iv. scanning and encoding the pixels from the most significant bit-plane to the least significant bit-plane, wherein scanning and encoding the pixels at each bit-plane comprises processing each existing group in the bit-plane, which further comprises; 1) if the pixel values of the group all have the same value at the current bit-plane, writing a first bit value of “
0”
into a bitstream; and2) writing a second bit value into the bitstream designating the value of all the pixels in a current group; 3) if the pixel values of the group do not all have the same value at the current bit-plane, writing the first bit value of “
1”
into the bitstream, followed by one bit for each pixel in the current group designating the bit value of that pixel in the current bit-plane;4) generating a new group; and 5) splitting the original group into two, retaining pixels with a value “
0”
in the original group and placing pixels with a value “
1”
in the new group; andv. generating a compressed image file of the encoded pixels; and c. storage means coupled to the first processing means, wherein the compressed image file is stored within the storage means. - View Dependent Claims (14, 15, 16, 17)
-
-
18. An apparatus for processing an image with a sparse histogram, comprising:
-
a. a first processor for processing pixels of the image; b. an encoder executable on the first processor for; i. dividing the image into blocks; ii. setting a bit budget for each block; iii. converting pixels of each block into binary representations; iv. scanning and encoding the pixels from the most significant bit-plane to the least significant bit-plane, wherein scanning and encoding further comprises; 1) writing a first bit value into a bitstream designating that the pixel values all have the same value, if the pixel values all have the same value; 2) writing a second bit value into the bitstream designating the value of all the pixels in a current group; 3) if the pixel values of the group all have the same value at the current bit-plane, writing a first bit value of “
0”
into a bitstream;4) writing a second bit value into the bitstream designating the value of all the pixels in a current group; 5) if the pixel values of the group do not all have the same value at the current bit-plane, writing the first bit value of “
1”
into the bitstream, followed by one bit for each pixel in the current group designating the bit value of that pixel in the current bit-plane;6) generating a new group; and 7) splitting the original group into two, retaining pixels with a value “
0”
in the original group and placing pixels with a value “
1”
in the new group; andv. generating a compressed image file of the encoded pixels; and c. a storage device coupled to the first processing device, wherein the compressed image file is stored within the storage device. - View Dependent Claims (19, 20, 21, 22)
-
Specification