Patent ID: 8457425

Claim:
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.