Method and system of decoding compressed image data
First Claim
1. A method of decoding a set of compressed data representing an original image including a plurality of rows of pixels into an image of pixels, comprising, accessing the set of compressed data to locate a row pointer, each row pointer in the compressed data pointing to a set of source data within the set of compressed data, the set of source data representing at least part of a row of pixels in the original image data, determining rows of pixels to be decoded into the image, and for each row of pixels determined, decoding the compressed data into a representation of the original image by locating the row pointer to the set of source data, locating the set of source data pointed to by the row pointer, determining a destination memory location corresponding to said row of pixels to be decoded, decoding the set of source data into actual pixel data, and writing the actual pixel data into the determined destination memory location.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system of encoding and decoding image data in images having less than 128 distinct colors. Eight bit data bytes representing the color of each pixel data are re-indexed for each pixel to seven or less bits, and a sub-palette stores the relationship between the re-indexed colors and the original eight-bit color values. The remaining bits in the byte store run lengths of pixels that have contiguous colors. Further data compression is achieved by grouping pixels into rows, eliminating any duplicate rows and identifying the pixel data by a series of row pointers. Still further compression is accomplished by dropping representations of transparent pixels from the end of rows and representing a number of transparent pixels at the beginning of rows with a single byte. The compressed data is efficiently decoded using the row pointers to expedite vertical clipping of the image and adjusting horizontal clipping for leading and trailing transparent pixels.
131 Citations
39 Claims
- 1. A method of decoding a set of compressed data representing an original image including a plurality of rows of pixels into an image of pixels, comprising, accessing the set of compressed data to locate a row pointer, each row pointer in the compressed data pointing to a set of source data within the set of compressed data, the set of source data representing at least part of a row of pixels in the original image data, determining rows of pixels to be decoded into the image, and for each row of pixels determined, decoding the compressed data into a representation of the original image by locating the row pointer to the set of source data, locating the set of source data pointed to by the row pointer, determining a destination memory location corresponding to said row of pixels to be decoded, decoding the set of source data into actual pixel data, and writing the actual pixel data into the determined destination memory location.
- 10. A system of decoding a set of compressed data into a representation of the original image of a plurality of rows of pixels, comprising, a memory including the compressed data, wherein each row of pixels in the image to be decoded has a row pointer corresponding thereto in the set of compressed data and each row pointer points to a set of source data in the set of compressed data that represents at least part of a row of pixels, means for determining the rows of pixels to be decoded into the image, and for each row of pixels determined, means for decompressing the compressed data by locating the row pointer to the set of source data and for locating the set of source data therefrom, means for determining a destination location in the memory corresponding to said row of pixels to be decoded, means for decoding the set of source data into actual pixel data, and means for writing the actual pixel data into the determined destination location in the memory.
-
19. A method of decoding a set of compressed data into a representation of an original image of a plurality of rows of pixels, comprising:
-
(a) determining the rows of pixels to be decoded for the image;
(b) for each row of pixels determined, decoding the compressed data by locating and accessing one of a plurality of row pointers corresponding to the row of pixels to be decoded, each row pointer pointing to a set of source data in the set of compressed data that represents at least part of a row of pixels;
(c) determining the first and last row of pixels to be decoded into the image and setting a row counter to a value indicative of the first row;
(d) locating the row pointer to the set of source data for the row of pixels to be decoded based upon the value of the row counter and locating the set of source data from the row pointer;
(e) determining a destination memory location corresponding to the row of pixels to be decoded;
(f) decoding the set of source data into actual pixel data and writing the actual pixel data into the determined destination memory location;
(g) evaluating the row counter against the last row to be decoded; and
(h) if the row counter does not indicate that the last row has been decoded, changing the value of the row counter to a value indicative of the next row and repeating steps (d)-(h). - View Dependent Claims (20, 34)
-
- 21. A method of decoding data representative of an image of pixels, comprising, determining a fixed number of bits in a unit of color storage corresponding to a run length and a number of bits corresponding to a color index that represents no more than one color, selecting at least some of the units of color storage having run length, color information therein, and for each selected unit of color storage, obtaining a color index value from a value of the bits therein and obtaining a run length value from a value of the bits therein, looking up pixel information based on the color index value, and outputting the pixel information to a number of pixels based on the run length.
-
25. A computer-readable medium having stored thereon a data structure, comprising:
-
a plurality of units of compressed image source data of a plurality of rows, each unit comprising a section indicative of run length in at least one of the rows and another section indicative of a color index;
a first field including a color table; and
a second field indicative of a fixed number of bits of the units that represent the run length information and a number of bits that represent the color index, each color index corresponding to one color in the color table. - View Dependent Claims (26)
-
-
35. A method of decoding compressed data of an original image into an image of pixels, comprising,
selecting a fixed unit of color storage from the compressed data, each unit having a number of bits representing a color index and a number of bits representing a run length of one or more pixels having the same output color data that represents no more than one color; -
determining the color index from within the unit of color storage;
obtaining a run length from within the unit of color storage corresponding to the color index; and
providing color data for a number of pixels based on the run length and the color index. - View Dependent Claims (36, 37, 39)
-
-
38. A method of decoding compressed data of an original image into an image of pixels, comprising,
selecting a unit of color storage from the compressed data, each unit having a number of bits representing a color index and a number of bits representing a run length; -
determining the color index from within the unit of color storage;
obtaining a run length from within the unit of color storage corresponding to the color index;
providing a first image by correlating the color index with a color value stored in a first table to provide first color data for a number of pixels based on the run length and the color value; and
providing a second image by correlating the color index with a color value stored in a second table that is different from the first table.
-
Specification