CA2305572C

System and method for fixed-rate block-based image compression with inferred pixel values

Abstract

An image processing system (205) includes an image encoder system (220) and an image decoder system (230) that are coupled together. The image encoder system (220) includes an image decomposer (315) and a block encoder (318) that are coupled together. The block encoder (318) includes a color quantizer (335) and a bitmap construction module (340). The image decomposer (315) breaks an original image into blocks. Each block (260) is then processed by the block encoder (318a-nth). Specifically, the color quantizer (335) selects some number of base points, or codewords, that serve as reference pixel values, such as colors, from which quantized pixel values are derived. The bitmap construction module (340) then maps each pixel colors to one of the derived quantized colors. The codewords and bitmap are output as encoded image blocks (320). The decoder system (230) includes a block decoder (505a-mth). The block decoder (505a-mth) includes a block type detector (520), one or more decoder units, and an output selector (523). Using the codewords of the encoded data blocks, the comparator and the decoder units determine the quantized colors for the encoded image block and map each pixel to one of the quantized colors. The output selector (523) outputs the appropriate color, which is ordered in an image composer with the other decoded blocks to output an image representative of the original image. A method for encoding an original image and for decoding the encoded image to generate a representation of the original image is also disclosed.

CA2305572C, drawing sheet 1
Sheet 1 of 20

Term

Term ended

Expired 28 September 2018, 8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

22 claims: 22 independent, 0 dependent

  1. 1
    CA 02305572 2007-12-18 75973-16 CLAIMS :1. In an image processing system, a system for encoding an image, comprising: an image decomposer, coupled to receive an image, 5 for breaking the image into one or more image blocks;at least one block encoder, each block encoder coupled to the image decomposer, for compressing each image block to generate an encoded image block;and an encoded image composer, coupled to each block 10 encoder, for ordering the encoded image blocks into a data file.
  2. 2
    The system for encoding in claim 1, further comprising a header converter, coupled to the image decomposer and the encoded image composer, for receiving a 15 header from the image, modifying the header, and outputting the modified header with the data file.
  3. 3
    The system for encoding in claim 1, wherein each block encoder comprises:a color quantizer, coupled to receive an image 20 block, for generating a first and a second codeword from which at least one quantized color is derived;and a bitmap construction module, coupled to the color quantizer, for mapping the colors of the image block to one of the at least one quantized colors. 25
  4. 4
    The system for encoding in claim 3, wherein the color quantizer further comprises:CA 02305572 2007-12-18 75973-16 a block type module, coupled to receive the image block, for selecting a block type for the image block;a curve selection module, coupled to the block type module, for computing an optimal analog curve for a block type;and a codeword generation module, coupled to the curve selection module, for generating at least one codeword from the analog curve.
  5. 5
    In an image processing system, a system for decoding a compressed image, comprising:an encoded image decomposer, coupled to receive encoded image data file having at least one compressed image block, for breaking the encoded image data file into individual compressed image blocks;at least one block decoder, coupled to the encoded image decomposer, for decompressing the compressed image blocks;and an image composer, coupled to each block decoder, for ordering the decompressed image blocks in an output file.
  6. 6
    The system for decoding in claim 5, further comprising a header converter, coupled to the encoded image decomposer and the image composer, for receiving a modified header associated with the encoded image data file, generating an output header, and outputting the output header with the output file.
  7. 7
    The system for decoding in claim 6, wherein each block decoder further comprises:CA 02305572 2007-12-18 75973-16 a block type detector, coupled to the encoded image decomposer, for selecting a block type for each compressed image block;a first and a second decoder unit, each decoder 5 unit coupled to the block type detector, for decompressing each compressed image block;and an output selector, coupled to the block type detector and each decoder unit, for outputting an image block from the decoder unit in response to the block type 10 selected by the block type detector.
  8. 8
    In an image processing system a system for encoding and decoding an image, comprising:an image encoder system, having a block decomposer for breaking the image into a 15 fixed number of image blocks, each image block having a fixed number of pixels, at least one block encoder, each coupled to the . block decomposer, for selecting at least one codeword for each block from which M quantized colors are derived, 20 mapping each pixel for each block to one of the M quantized colors, and outputting the codewords and mapped pixels for each block as an encoded image block, where M is an integer value, and an encoded image composer, coupled to each block 25 encoder, for ordering each encoded image block in an encoded data file;and an image decoder system, coupled to the image encoder system, having CA 02305572 2007-12-18 75973-16 an encoded image decomposer, coupled to receive the encoded data file, for decomposing the encoded data file into the encoded image blocks;at least one block decoder, each coupled to the encoded image decomposer, for decoding each encoded image block using the codewords to map each pixel of the encoded block to one of the M quantized colors to produce a decoded image block, and an image composer, coupled to each block decoder, for ordering the decoded image blocks in an output file.
  9. 9
    The image processing system in claim 8, wherein each block encoder comprises :a color quantizer for examining the image block and generating the at least one codeword from which the M quantized colors are derived;and a bitmap construction module for mapping each pixel of the image block to one of the M quantized colors.
  10. 10
    The image processing system in claim 9, wherein the color quantizer comprises:a block type module, coupled to receive the image blocks, for selecting a block type, the block type representing a predefined color set;and a curve selection module, coupled to the block type module, for selecting an optimal analog curve in a color space from the selected color set;and a codeword generation module, coupled to the curve selection module, for providing the at least one codeword from the analog curve. CA 02305572 2007-12-18 75973-16
  11. 11
    The image processing system in claim 8, wherein each block decoder comprises :a block type detector, coupled to receive the encoded image block, for selecting the block type for decoding orthe encoded image block;and a first decoder unit and a second decoder unit, each coupled to the block type detector, each decoder unit decoding the encoded image block to restore one of the M quantized colors derived from the at least one codeword.
  12. 12
    The image processing system in claim 11, wherein each block decoder further comprises an output selector, the output selector coupled to each decoder unit and the block type detector, for outputting the restored color of the M quantized colors from one of the decoder units in response to the block type selected for the encoded image block.
  13. 13
    In an image processing system, a method for generating an encoded image of an original image having a header, comprising:converting the header to a modified header;decomposing the original image into image blocks;encoding each image block to generate an encoded image block for each image block;and composing the modified header and each encoded image block in a data file to generate the encoded image.
  14. 14
    The method for generating an encoded image in claim 13, wherein encoding each image block further comprises :CA 02305572 2007-12-18 75973-16 selecting a set of codewords, the set having at least one codeword, for representing a property value for an image block;and quantizing colors for an image block for representing the image block, each quantized color derived from the set of codewords.
  15. 15
    The method for generating an encoded image in claim 14, wherein selecting the set of codewords further comprises :selecting at least one block type;computing an optimal analog curve for each selected block type;selecting at least one partition along the analog curve for each computed analog curve;computing the set of codewords for each selected partition;computing an error for each computed set of codewords ;and outputting the block type and set of codewords producing a minimum computed error for each computed set of codewords.
  16. 16
    In an image processing system, a method for generating an original image from an encoded image including a modified header and at least one encoded image block, comprising :receiving the encoded image data;CA 02305572 2007-12-18 75973-16 decomposing the encoded image into the modified header and the individual encoded image blocks;reading the modified header to generate an output header;decoding each individual encoded image block to generate a decoded image block;and composing the output header and the individual decoded image blocks to generate an output file of the original image.
  17. 17
    The method for generating an original image in claim 16, wherein the decoding each individual image block further comprises:receiving the individual encoded image block, including a set of codewords, the set having at least one codeword, and a bitmap having at least one pixel;detecting a block type for the encoded image block to select a decoder unit;calculating at least one quantized color level for the encoded image block using the set of codewords;and mapping each pixel of the bitmap to one of the calculated quantized color levels for the encoded image block.
  18. 18
    In an image processing system, a method for compressing an original image and generating an output image representing the original image from the compressed original image, comprising:CA 02305572 2007-12-18 75973-16 breaking the original image into a fixed number of image blocks, each image block having an associated color and a fixed number of pixels;selecting a set of codewords, the set having at least one codeword, for each image block to represent colors in a color space;quantizing colors for each image block, the quantized colors derived from the set of codewords;mapping each pixel to one of the quantized colors to produce a bitmap;generating an encoded image block for each image block, each encoded image block comprising the set of codewords and the bitmap;composing each encoded image block into an encoded image data file;receiving the encoded image data file at a decoder system;breaking the encoded image data file into the encoded image blocks;decoding each encoded image block using the set of codewords to map each pixel of each encoded image block with a restored quantized color;and composing the restored quantized colors in an output file to output an image representing the original image.
  19. 19
    The method for compressing an original image and generating an output image representing the original image CA 02305572 2007-12-18 75973-16 from the compressed original image in claim 18, wherein the selecting the set of codewords further comprises:selecting at least one block type for each image block;5 computing an optimal analog curve for each selected block type;selecting at least one partition along the analog curve for each computed analog curve;computing the set of codewords for each selected 10 partition;computing an error for each of the sets of codewords ;and outputting the block type and the set of codewords producing a minimum computed error. 15
  20. 20
    The method for compressing an original image and generating an output image representing the original image from the compressed original image in claim 18, wherein decoding each encoded image block further comprises:receiving the individual encoded image block, 20 including the set of codewords, and a bitmap having at least one pixel;detecting the block type for the encoded image block to select a decoder unit;calculating at least one quantized color level for 25 the encoded image block using the set of codewords;and mapping each pixel of the bitmap to one of the calculated quantized colors for the encoded image block. 39a CA 02305572 2007-12-18 75973-16
  21. 21
    A system for processing any identified pixel from an encoded image data file having header information and an encoded image block portion including at least one encoded image block, the system comprising:3 9b CA 02305572 2000-03-31 WO 99/18537 PCT/US98/20359 a block address computation module, coupled to receive the header information, for computing an address of an encoded image block having the identified pixel;a block fetching module, coupled to receive the encoded image block portion and the computed address, for fetching the encoded image block having the identified pixel;and a block decoder, coupled to receive the fetched encoded image block, for decoding the image block to generate a quantized color associated with the identified pixel.
  22. 22
    In an image processing system, a method for processing any identified pixel of an encoded image data file having a header and an encoded image block portion including at least one encoded image block, the method comprising:computing an address for an encoded image block having the identified pixel;fetching the encoded image block using the computed address;computing quantized color levels for the fetched encoded image block;and selecting a color of the identified pixel from the quantized color levels to output.
Independent claims22