EP0701755A1 - Digital image compression using tile subdivision - Google Patents

Digital image compression using tile subdivision

Info

Publication number
EP0701755A1
EP0701755A1 EP94918674A EP94918674A EP0701755A1 EP 0701755 A1 EP0701755 A1 EP 0701755A1 EP 94918674 A EP94918674 A EP 94918674A EP 94918674 A EP94918674 A EP 94918674A EP 0701755 A1 EP0701755 A1 EP 0701755A1
Authority
EP
European Patent Office
Prior art keywords
tile
color
pixels
subset
tiles
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP94918674A
Other languages
German (de)
French (fr)
Inventor
Charlie Kellner
Dana Keen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Pictures Inc
Original Assignee
Digital Pictures Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Pictures Inc filed Critical Digital Pictures Inc
Publication of EP0701755A1 publication Critical patent/EP0701755A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Definitions

  • This invention relates to the field of digital image compression, and, more particularly, to a system and method of compressing a digital image by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette.
  • Digital image compression reduces the data volume required to store digitally- encoded images.
  • digital compression provides many advantages, including facilitating storage of large or complex images on limited data storage media, such as floppy disks or CD- ROMSs.
  • “Lossless” compression techniques such as run-length coding and entropy coding, reduce data storage requirements without affecting the perceived quality of the image when finally displayed.
  • a major disadvantage of such techniques is that they tend to reduce error tolerance. For example, a single-bit error in a run-length coded image may result in corruption of a large portion of the displayed image.
  • lossless techniques can only achieve a limited amount of compression.
  • “Lossy” compression techniques may provide increased error tolerance and higher levels of compression. They typically reduce data storage requirements by removing or blurring detail in some manner. If necessary, such techniques often quantize the data. Such removal or blurring may occur in the temporal domain and/or the spatial domain. Usually, attempts are made to blur or quantize in as least objectionable a manner as possible. However, lossy compression techniques by definition result in diminished perceived quality of the image.
  • JPEG Joint Photographic Experts Group
  • DCT discrete cosine transform
  • MPEG Motion Pictures Expert Group
  • a third disadvantage is lack of flexibility.
  • conventional compression techniques employ successively increasing levels of quantization ("aggressiveness") until the desired degree of compression is attained, based on a desired target size and image quality.
  • degree of compression that will be achieved at a particular level of quantization is often difficult to predict with precision. Accordingly, quantization attempts may overshoot or undershoot the desired degree of compression, resulting in either a) wasted storage space; b) degraded image quality resulting from excessive compression; or c) inefficiency due to repeated quantization attempts at varying levels of aggressiveness.
  • conventional techniques often compress data more or less aggressively than is necessary.
  • a system and method of compressing a digital image by performing a maximum quantization of the image into two colors, followed by an iterative incremental increase in detail until a desired level of compression is attained.
  • the iterative incremental increase in detail is accomplished by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette.
  • the method of the present invention includes sizing a digital image to the desired resolution, color-reducing it, and subdividing it into tiles. Initially, all of the tiles undergo a severe color reduction process, wherein two colors, referred to as "high” and "low” are selected for each tile, and each pixel within the tile is assigned one of the two colors.
  • MSE is calculated for each of the two subtiles.
  • Subdivision of the highest-MSE tile or subtile is performed repeatedly until a limit condition is reached.
  • a limit condition may be defined as a maximum data size, or a maximum allowable MSE, or a maximum projected decompression time, or any other measurable condition.
  • a data stream is formed that describes the subtile arrangement, the "high” and “low” colors for each tile, and a description of the configuration of "high” and “low” pixels.
  • the method of the present invention provides lossy compression that quantizes data in a relatively unobjectionable manner. Portions of the image containing small details tend to be subdivided more aggressively, resulting in preservation of the details.
  • the resulting compressed data stream can be decompressed in real-time using relatively simple hardware or software. Decompression is accomplished by referring to the subtile arrangement, and coloring each tile and subtile therein using the binary bitmap and color palette.
  • the compression technique of the present invention provides improved robustness. Since the technique does not rely on predictions based on previous images, it can easily recover from errors in a relatively short time. Thus, it is ideal for applications in which the data stream may be easily corrupted. Finally, the compression technique of the present invention is flexible. By beginning with maximum quantization and successively adding levels of detail, the method results in a compressed data file that very closely matches the desired target size and image quality, without overshoot or undershoot. Initially, with maximum quantization, the compressed data size is at a minimum. Each time the recursive subtile division and coloring steps are performed, the resultant compressed data size increases incrementally. The steps may be performed as may or as few times as desired, until a predefined limit condition is achieved.
  • Image quality depends almost entirely on the percentage of compression, which is continuously variable and may be controlled by several factors, such as data size or visual quality.
  • the technique is ideal for applications in which a predefined amount of space is available for image storage, or in which some other limit condition is known in advance.
  • Figure 1 is a block diagram of apparatus for practicing the present invention.
  • Figure 2 is a flowchart showing a preferred method of compression according to the present invention.
  • Figure 3 A shows an example of a data format for an undivided tile according to the present invention.
  • Figure 3B shows a representation of an undivided tile according to the present invention.
  • Figure 4A shows an example of a data format for a subdivided tile according to the present invention.
  • Figure 4B shows a representation of a subdivided tile according to the present invention.
  • Figure 5 shows examples of subtile arrangement codes according to the present invention.
  • Figure 6 shows examples of subtile arrangement codes for quarter-tiles, according to the present invention.
  • Figure 7 is a flowchart showing a preferred method of decompression according to the present invention.
  • data compression processor 103 performs the steps of the method, although any type of processor or multiple processors may be used.
  • Image input device 101 which may be a video camera or an interface to a stored video data stream (not shown) provides image input.
  • Image memory 102 which may be conventional random-access memory (RAM), stores the image input.
  • Processor 103 in accordance with program instructions stored in program memory 104, performs the steps of the present invention to compress the images stored in image memory 102. The compressed images are stored in compressed image memory 105.
  • data encoding processor 106 transforms compressed images into a data stream.
  • the data stream is then sent to output/storage device 107, which may be a compact disc or other data storage medium.
  • the method of the present invention is applied to each individual still image from image input device 101. Therefore, if a stream of image frames is provided, the method operates on each frame separately. No information regarding previous frames is required, although one skilled in the art could improve compression ratios by implementing prediction of image characteristics as describe above in connection with MPEG compression.
  • the method of the present invention will be described in terms of a single frame, or still image. Referring now to the flow chart of Figure 2, there is shown a preferred method of the present invention as applied to a still image. In the preferred embodiment, the steps shown in Figure 2 are performed by processor 103.
  • processor 103 performs image resolution reduction 202 and color reduction 203 in a conventional manner, so that the image can be represented by a finite, predefined number of individual pixels.
  • the level of image resolution and color reduction may depend on minimum image quality specifications, availability of storage space and processing time, technical sophistication of input and output devices, and other factors. Steps 202 and 203 are not required in performing the preferred method; the method of the present invention may be used with full images (such as 32 bit-per-pixel) rather than reduced images.
  • Processor 103 then subdivides 204 the image into tiles.
  • the dimensions of each tile are eight pixels by eight pixels, although tiles of any other dimension could be used.
  • a pointer is then set 205 to reference the first tile.
  • the leftmost tile in the topmost row of tiles is designated as the "first" tile, although any tile could be so designated.
  • Processor 103 selects 206 two colors, designated a "high” color and a "low” color, for the first tile.
  • color selection is performed as follows: 1) determine the average luminance value of all pixels in the tile; 2) classify all pixels as “high” (having a luminance value higher than the average) or "low” (having a luminance value lower than or equal to the average); 3) determine the average color (RGB) value of the high pixels; and 4) determine the average color (RGB) value of the low pixels.
  • the two color averages are selected as the two colors ("high” and "low") for the first tile.
  • classification as "high” or "low” is performed by comparing luminance values.
  • MSE mean-squared error
  • MSE is determined as follows: 1) for each high pixel, calculate the squared difference between the original luminance value and the luminance of the "high" color selected in step 206; 2) for each low pixel, calculate the squared difference between the original luminance value and the luminance of the "low” color selected in step 206; and 3) calculate the mean of the differences.
  • M is the number of high pixels in the tile
  • N is the number of low pixels in the tile
  • Cj is the original luminance value of they ' th low pixel
  • H is the luminance of the selected "high" color value for the tile.
  • L is the luminance of the selected "low” color value for the tile.
  • the classification of each pixel as “high” or “low”, along with the high and low color values and the MSE are stored in compressed image memory 105.
  • Processor 103 then checks 209 to determine whether there are more tiles to be processed. If so, the process proceeds 210 to the next tile. In the preferred embodiment, processor 103 goes to the tile immediately to the right of the current tile. When processor 103 reaches the end of a row of tiles, it goes to the row immediately below the current row.
  • processor 103 now subdivides selected tiles and repeats the above process.
  • Processor 103 selects 211 the tile having the highest MSE, and subdivides it 212 into two parts, known as "subtiles". For each of the two subtiles, processor 103 then repeats the steps of selecting 213 a high color and a low color, classifying pixels as high and low, and determining 215 an MSE.
  • steps 211 through 215 can be repeated for each tile and subtile until the MSE of each subtile reaches zero, which in the worst case occurs when each subtile contains two pixels.
  • steps 211 to 215 are repeated until the total data space required to store the image reaches a predefined limit.
  • processor 103 checks 216 to determine if the limit has been reached. As long as the limit has not yet been reached, and total MSE has not reached zero, processor 103 repeats steps 211 to 215.
  • processor 103 could continue until an estimate of the time it will take to reconstruct the image exceeds a predefined limit.
  • processor 103 could continue until the sum of the MSE for all tiles and subtiles, weighted by tile (or subtile) area, falls below a predefined amount. Thus, a minimum visual quality level is assured.
  • data encoding processor 106 (which may be implemented in the same physical processor as data compression processor 103) reads the compressed image from compressed image memory 105 and produces 217 an encoded data stream. The encoded data stream may then be provided to an output or storage device 107, such as a CD-ROM.
  • two types of data stream formats may be produced in step 217: one for tiles that have not been subdivided into subtiles, and one for tiles that have been subdivided into subtiles.
  • Data record 300 contains a six-bit Sub-Tile Arrangement Code (STAC) 301 that indicates which of 64 possible arrangements of subtiles apply to the tile.
  • STAC 301 is followed by high color value 302 and low color value 303. Each value is seven bits long, allowing for selection among 128 possible colors in a color palette according to conventional binary color-coding techniques.
  • the color values are followed by a 64-bit binary string representing a bitmap 304 that corresponds to the 64 individual pixels in the tile.
  • Path 307 indicates the order of bits in bitmap 304.
  • the first bit in bitmap 304 corresponds to the pixel at the top left corner of tile 305
  • the last bit in bitmap 304 corresponds to the pixel at the bottom right corner of tile 305.
  • Each bit is set to " 1 " to indicate that the high color is to be applied to the corresponding pixel, or "0" to indicate that the low color is to be applied.
  • Data record 400 contains data describing an 8x8 tile that has been subdivided into subtiles.
  • Record 400 contains a six-bit Sub-Tile Arrangement Code (STAC) 401 that indicates which of 64 possible arrangements of subtiles apply to the top half of the tile.
  • STAC Sub-Tile Arrangement Code
  • FIG 5 there are shown examples of STACs for various subtile arrangements.
  • STAC 20 corresponds to eight 2x2 subtiles
  • STAC 2B corresponds to three 4x2 subtiles and two 2x2 subtiles in the arrangement shown.
  • Top STAC 401 is followed by one or more pairs of high color values 402,
  • Record 400 contains similar information for the bottom half of the tile, including bottom STAC 407, one or more pairs of high color values 408, 410, and low color values 409, 411, and a 32-bit binary string representing a bottom bitmap 412.
  • Tile 305 may be represented as a top half 308 and a bottom half 309, each half having 32 pixels 306.
  • Path 310 indicates the order of bits in top bitmap 406, while path 311 indicates the order of bits in bottom bitmap 412.
  • the first bit in top bitmap 406 corresponds to the pixel at the top left corner of top half 308, and the last bit in top bitmap 406 corresponds to the pixel at the bottom right comer of top half 308.
  • the first bit in bottom bitmap 412 corresponds to the pixel at the top left corner of bottom half 309
  • the last bit in bottom bitmap 412 corresponds to the pixel at the bottom right comer of bottom half 309.
  • Each bit is set to " 1 " to indicate that the high color is to be applied to the corresponding pixel, or "0" to indicate that the low color is to be applied.
  • each half 308 and 309 is divided into eight 2x2 areas. These areas correspond to the smallest subtile units shown in the examples of Figure 5.
  • subtile arrangements including subtiles of smaller or larger dimensions, could be employed.
  • Figure 6 shows STACs for quarter-tiles, containing 2x1 subtiles.
  • the decompressor begins at the first tile 702 in the image, and downloads 703 the STACs, color value pairs, and bitmaps for that tile.
  • the first STAC indicates whether or not the tile has been subdivided. If not, the decompressor applies 705 high and low color values 302 and 303 to the individual pixels according to bitmap
  • each half of the tile is treated separately.
  • the STAC indicates the arrangement of subtiles, and the number of color value pairs that will be provided.
  • the decompressor goes to the first subtile 706, and applies 707 the high and low color values for that subtile according to the bitmap. If there are more subtile, the decompressor goes to the next subtile 709 and repeats step 707.
  • the decompressor determines 710 whether there are more tiles. If so, it proceeds to the next tile 711 and repeats steps 703 through 710. Thus, in performing decompression, no mathematical operations need be performed, and a minimal amount of processing power is required.
  • the invention provides a novel and advantageous system and method of compressing a digital image by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette.

Abstract

A system and method of compressing a digital image perform a maximum quantization of the image into two colors, followed by an iterative incremental increase in detail until a desired level of compression is attained. The iterative incremental increase in detail is accomplished by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette. A digital image is subdivided into tiles. Initially, all of the tiles undergo a severe color reduction process, wherein two colors, referred to as 'high' and 'low' are selected for each tile, and each pixel within the tile is assigned one of the two colors, to form a binary string. A mean-squared error (MSE) for each tile is calculated. Then, a recursive process begins wherein the tile having the highest MSE is subdivided into two parts, known as 'subtiles'. New 'high' and 'low' colors are selected for each subtile, and each pixel within each subtile is again assigned one of the two colors. A new MSE is calculated for each of the two subtiles. Subdivision of the highest-MSE tile or subtile is performed repeatedly until a limit condition is reached. Such a limit condition may be defined as a maximum data size, or a maximum allowable MSE, or a maximum projected decompression time, or any other measurable condition. Image quality depends almost entirely on the percentage of compression, which is continuously variable and may be controlled by several factors, such as data size or visual quality. Thus, the technique is ideal for applications in which a predefined amount of space is available for image storage, or in which some other limit condition is known in advance. Once the limit condition has been reached, a data stream is formed that describes the subtile arrangement, the 'high' and 'low' colors for each tile, and the color assignment for each pixel.

Description

DIGITAL IMAGE COMPRESSION USING TILE SUBDTVTSION
BACKGROUND OF THE INVENTION
1. Field of the Invention This invention relates to the field of digital image compression, and, more particularly, to a system and method of compressing a digital image by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette.
2. Description of the Related Art
Digital image compression reduces the data volume required to store digitally- encoded images. Thus, digital compression provides many advantages, including facilitating storage of large or complex images on limited data storage media, such as floppy disks or CD- ROMSs.
As discussed in Quinnell, "Image Compression" (Parts 1, 2, and 3), in EDN. January 21, March 4, and May 13, 1993, and Lehtinen, "Industry Catches the Compression Wavelet", in TV Technology. May 1993, several compression techniques exist in the art.
"Lossless" compression techniques, such as run-length coding and entropy coding, reduce data storage requirements without affecting the perceived quality of the image when finally displayed. A major disadvantage of such techniques is that they tend to reduce error tolerance. For example, a single-bit error in a run-length coded image may result in corruption of a large portion of the displayed image. In addition, lossless techniques can only achieve a limited amount of compression.
"Lossy" compression techniques may provide increased error tolerance and higher levels of compression. They typically reduce data storage requirements by removing or blurring detail in some manner. If necessary, such techniques often quantize the data. Such removal or blurring may occur in the temporal domain and/or the spatial domain. Usually, attempts are made to blur or quantize in as least objectionable a manner as possible. However, lossy compression techniques by definition result in diminished perceived quality of the image.
As discussed in Quinnell, one well-known lossy compression technique is known as JPEG (Joint Photographic Experts Group), which converts image data to a spatial frequency representation using a two-dimensional discrete cosine transform (DCT). It quantizes the components with different degrees of granularity, and encodes the result. JPEG is generally used for still images.
Another technique, known as MPEG (Moving Pictures Expert Group) takes advantage of redundancy along the time domain. Thus, MPEG tries to predict characteristics of an image based on a previous image, and then transforms and encodes the difference between the prediction and the image. MPEG is generally used for moving images. When still images are being stored or sent, the time domain quantization of MPEG does not yield any compression gains.
One disadvantage of conventional lossy compression techniques is the relative complexity of the decompression process. Thus, elaborate and expensive hardware and/or software is typically required to decompress an image. In addition, decompression may take a long time, precluding operation in real-time.
Another disadvantage is lack of robustness. Although lossy techniques, as described above, provide increased error tolerance relative to loss-less techniques, both JPEG and MPEG are still sensitive to errors. In addition, since MPEG relies on predictions made from previous images, as in CD-ROM or videotape applications where a user may fast-forward or reverse at will.
A third disadvantage is lack of flexibility. In order to provide a variable degree of compression, conventional compression techniques employ successively increasing levels of quantization ("aggressiveness") until the desired degree of compression is attained, based on a desired target size and image quality. However, the degree of compression that will be achieved at a particular level of quantization is often difficult to predict with precision. Accordingly, quantization attempts may overshoot or undershoot the desired degree of compression, resulting in either a) wasted storage space; b) degraded image quality resulting from excessive compression; or c) inefficiency due to repeated quantization attempts at varying levels of aggressiveness. In short, conventional techniques often compress data more or less aggressively than is necessary.
SUMMARY OF THE INVENTION In accordance with the present invention, there is provided a system and method of compressing a digital image by performing a maximum quantization of the image into two colors, followed by an iterative incremental increase in detail until a desired level of compression is attained. The iterative incremental increase in detail is accomplished by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette. The method of the present invention includes sizing a digital image to the desired resolution, color-reducing it, and subdividing it into tiles. Initially, all of the tiles undergo a severe color reduction process, wherein two colors, referred to as "high" and "low" are selected for each tile, and each pixel within the tile is assigned one of the two colors. A mean-squared error (MSE) for each tile is calculated. Then, a recursive process begins wherein the tile having the highest MSE is subdivided into two parts, known as "subtiles". New "high" and "low" colors are selected for each subtile, and each pixel within each subtile is again assigned one of the two colors. A new
MSE is calculated for each of the two subtiles.
Subdivision of the highest-MSE tile or subtile is performed repeatedly until a limit condition is reached. Such a limit condition may be defined as a maximum data size, or a maximum allowable MSE, or a maximum projected decompression time, or any other measurable condition.
A data stream is formed that describes the subtile arrangement, the "high" and "low" colors for each tile, and a description of the configuration of "high" and "low" pixels. The method of the present invention provides lossy compression that quantizes data in a relatively unobjectionable manner. Portions of the image containing small details tend to be subdivided more aggressively, resulting in preservation of the details.
In addition, the resulting compressed data stream can be decompressed in real-time using relatively simple hardware or software. Decompression is accomplished by referring to the subtile arrangement, and coloring each tile and subtile therein using the binary bitmap and color palette.
In addition, the compression technique of the present invention provides improved robustness. Since the technique does not rely on predictions based on previous images, it can easily recover from errors in a relatively short time. Thus, it is ideal for applications in which the data stream may be easily corrupted. Finally, the compression technique of the present invention is flexible. By beginning with maximum quantization and successively adding levels of detail, the method results in a compressed data file that very closely matches the desired target size and image quality, without overshoot or undershoot. Initially, with maximum quantization, the compressed data size is at a minimum. Each time the recursive subtile division and coloring steps are performed, the resultant compressed data size increases incrementally. The steps may be performed as may or as few times as desired, until a predefined limit condition is achieved. Image quality depends almost entirely on the percentage of compression, which is continuously variable and may be controlled by several factors, such as data size or visual quality. Thus, the technique is ideal for applications in which a predefined amount of space is available for image storage, or in which some other limit condition is known in advance.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of apparatus for practicing the present invention.
Figure 2 is a flowchart showing a preferred method of compression according to the present invention. Figure 3 A shows an example of a data format for an undivided tile according to the present invention.
Figure 3B shows a representation of an undivided tile according to the present invention.
Figure 4A shows an example of a data format for a subdivided tile according to the present invention.
Figure 4B shows a representation of a subdivided tile according to the present invention.
Figure 5 shows examples of subtile arrangement codes according to the present invention. Figure 6 shows examples of subtile arrangement codes for quarter-tiles, according to the present invention.
Figure 7 is a flowchart showing a preferred method of decompression according to the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENT Referring now to Figure 1 , there is shown a functional block diagram of apparatus
100 for practicing the present invention. In the preferred embodiment, data compression processor 103 performs the steps of the method, although any type of processor or multiple processors may be used. Image input device 101, which may be a video camera or an interface to a stored video data stream (not shown) provides image input. Image memory 102, which may be conventional random-access memory (RAM), stores the image input. Processor 103, in accordance with program instructions stored in program memory 104, performs the steps of the present invention to compress the images stored in image memory 102. The compressed images are stored in compressed image memory 105.
In accordance with program instructions stored in program memory 104, data encoding processor 106 transforms compressed images into a data stream. The data stream is then sent to output/storage device 107, which may be a compact disc or other data storage medium.
In the preferred embodiment, the method of the present invention is applied to each individual still image from image input device 101. Therefore, if a stream of image frames is provided, the method operates on each frame separately. No information regarding previous frames is required, although one skilled in the art could improve compression ratios by implementing prediction of image characteristics as describe above in connection with MPEG compression. For illustrative purposes, the method of the present invention will be described in terms of a single frame, or still image. Referring now to the flow chart of Figure 2, there is shown a preferred method of the present invention as applied to a still image. In the preferred embodiment, the steps shown in Figure 2 are performed by processor 103. First, if desired, processor 103 performs image resolution reduction 202 and color reduction 203 in a conventional manner, so that the image can be represented by a finite, predefined number of individual pixels. The level of image resolution and color reduction may depend on minimum image quality specifications, availability of storage space and processing time, technical sophistication of input and output devices, and other factors. Steps 202 and 203 are not required in performing the preferred method; the method of the present invention may be used with full images (such as 32 bit-per-pixel) rather than reduced images.
Processor 103 then subdivides 204 the image into tiles. In the preferred embodiment, the dimensions of each tile are eight pixels by eight pixels, although tiles of any other dimension could be used. A pointer is then set 205 to reference the first tile. In the preferred embodiment, the leftmost tile in the topmost row of tiles is designated as the "first" tile, although any tile could be so designated.
Processor 103 then selects 206 two colors, designated a "high" color and a "low" color, for the first tile. In the preferred embodiment, color selection is performed as follows: 1) determine the average luminance value of all pixels in the tile; 2) classify all pixels as "high" (having a luminance value higher than the average) or "low" (having a luminance value lower than or equal to the average); 3) determine the average color (RGB) value of the high pixels; and 4) determine the average color (RGB) value of the low pixels. The two color averages are selected as the two colors ("high" and "low") for the first tile. In the preferred embodiment, classification as "high" or "low" is performed by comparing luminance values. Such a technique has been found to work well with both color and black-and-white images. Alternatively, other values may be used to classify pixels as "high" or "low", such as chrominance, RGB values, YCrCb values, or some combination thereof. Many color value representation schemes are known in the art as described, for example, in Quinnell. Processor 103 then determines 208 a mean-squared error (MSE) for the tile. MSE is a measurement of the error introduced by reducing the color palette for the tile to two colors and representing the each pixel in the tile with one of the two colors. Although MSE is used in the preferred embodiment, any error metric indicating relative accuracy of the color reduction may be used. An MSE of zero indicates that the tile in the original image contained at most two colors. An MSE greater than zero indicates that the tile contained more than two colors, and the MSE value provides an indication of the difference between the luminance of the assigned two colors and the luminance of the pixels of the original image. In the preferred embodiment, MSE is determined as follows: 1) for each high pixel, calculate the squared difference between the original luminance value and the luminance of the "high" color selected in step 206; 2) for each low pixel, calculate the squared difference between the original luminance value and the luminance of the "low" color selected in step 206; and 3) calculate the mean of the differences.
This calculation is represented by the following equation:
M N ∑( -H)2+∑(C,-L)2
MSE = i≡l el
M+N (Eq. 1) where:
M is the number of high pixels in the tile; N is the number of low pixels in the tile;
C( is the original luminance value of the ith high pixel;
Cj is the original luminance value of they'th low pixel;
H is the luminance of the selected "high" color value for the tile; and
L is the luminance of the selected "low" color value for the tile. The classification of each pixel as "high" or "low", along with the high and low color values and the MSE are stored in compressed image memory 105. Processor 103 then checks 209 to determine whether there are more tiles to be processed. If so, the process proceeds 210 to the next tile. In the preferred embodiment, processor 103 goes to the tile immediately to the right of the current tile. When processor 103 reaches the end of a row of tiles, it goes to the row immediately below the current row. Once steps 206 through 208 have been performed for all tiles, each tile in the image can be represented by a binary string that represents a two-color bitmap with two color definitions (high and low). Thus, the data storage space required to store the image is significantly reduced from that required to store the original image. In order to improve image quality, however, processor 103 now subdivides selected tiles and repeats the above process. Processor 103 selects 211 the tile having the highest MSE, and subdivides it 212 into two parts, known as "subtiles". For each of the two subtiles, processor 103 then repeats the steps of selecting 213 a high color and a low color, classifying pixels as high and low, and determining 215 an MSE.
Theoretically, steps 211 through 215 can be repeated for each tile and subtile until the MSE of each subtile reaches zero, which in the worst case occurs when each subtile contains two pixels. However, each selection of a new color set for each subtile in step 213 results in added data space required to store the image. Therefore, in the preferred embodiment, steps 211 to 215 are repeated until the total data space required to store the image reaches a predefined limit. After each repetition of steps 211 to 215, processor 103 checks 216 to determine if the limit has been reached. As long as the limit has not yet been reached, and total MSE has not reached zero, processor 103 repeats steps 211 to 215.
Other criteria could be used as a limit condition for repetition of the subdivision operation. For example, processor 103 could continue until an estimate of the time it will take to reconstruct the image exceeds a predefined limit. Alternatively, processor 103 could continue until the sum of the MSE for all tiles and subtiles, weighted by tile (or subtile) area, falls below a predefined amount. Thus, a minimum visual quality level is assured.
For most applications, however, subdivision will be repeated until the total data space required reaches a predefined limit. By employing this criterion, the method of the present invention provides the advantage of providing compressed images of predictable size, thus using all of the available data storage space. Once the limit condition has been reached, data encoding processor 106 (which may be implemented in the same physical processor as data compression processor 103) reads the compressed image from compressed image memory 105 and produces 217 an encoded data stream. The encoded data stream may then be provided to an output or storage device 107, such as a CD-ROM.
In the preferred embodiment, two types of data stream formats may be produced in step 217: one for tiles that have not been subdivided into subtiles, and one for tiles that have been subdivided into subtiles.
Referring now to Figure 3 A, there is shown an example of a data format describing an 8x8 tile that has not been subdivided into subtiles. Data record 300 contains a six-bit Sub-Tile Arrangement Code (STAC) 301 that indicates which of 64 possible arrangements of subtiles apply to the tile. In the preferred embodiment, the code 111111 (or hex 3F) indicates a whole tile that has not been subdivided. STAC 301 is followed by high color value 302 and low color value 303. Each value is seven bits long, allowing for selection among 128 possible colors in a color palette according to conventional binary color-coding techniques. The color values are followed by a 64-bit binary string representing a bitmap 304 that corresponds to the 64 individual pixels in the tile.
Referring now also to Figure 3B, there is shown a representation of tile 305 having 64 pixels 306. Path 307 indicates the order of bits in bitmap 304. Thus, the first bit in bitmap 304 corresponds to the pixel at the top left corner of tile 305, and the last bit in bitmap 304 corresponds to the pixel at the bottom right corner of tile 305. Each bit is set to " 1 " to indicate that the high color is to be applied to the corresponding pixel, or "0" to indicate that the low color is to be applied.
Referring now to Figure 4A, there is shown an example of a data format describing an 8x8 tile that has been subdivided into subtiles. Data record 400 contains data describing an 8x8 tile that has been subdivided into subtiles. Record 400 contains a six-bit Sub-Tile Arrangement Code (STAC) 401 that indicates which of 64 possible arrangements of subtiles apply to the top half of the tile. Referring now also to Figure 5, there are shown examples of STACs for various subtile arrangements. Thus, for example, STAC 20 corresponds to eight 2x2 subtiles, while STAC 2B corresponds to three 4x2 subtiles and two 2x2 subtiles in the arrangement shown. Top STAC 401 is followed by one or more pairs of high color values 402,
404, and low color values 403, 405. There is one color pair for each subtile in the top half of the tile. Thus, for STAC 20 configuration there are eight color pairs, while for STAC 2B configuration there are five color pairs. The order in which the color pairs are presented for a particular STAC is indicated by the numeric indicators in the subtiles in Figure 5. Each color value is seven bits long, allowing for selection among 128 possible colors. The color values are followed by a 32-bit binary string representing a top bitmap 406 that corresponds to the 32 individual pixels in the top half of the tile. Record 400 contains similar information for the bottom half of the tile, including bottom STAC 407, one or more pairs of high color values 408, 410, and low color values 409, 411, and a 32-bit binary string representing a bottom bitmap 412. Referring now also to Figure 4B, there is shown a representation of tile 305 that has been divided into subtiles. Tile 305 may be represented as a top half 308 and a bottom half 309, each half having 32 pixels 306. Path 310 indicates the order of bits in top bitmap 406, while path 311 indicates the order of bits in bottom bitmap 412. Thus, the first bit in top bitmap 406 corresponds to the pixel at the top left corner of top half 308, and the last bit in top bitmap 406 corresponds to the pixel at the bottom right comer of top half 308. Similarly, the first bit in bottom bitmap 412 corresponds to the pixel at the top left corner of bottom half 309, and the last bit in bottom bitmap 412 corresponds to the pixel at the bottom right comer of bottom half 309. Each bit is set to " 1 " to indicate that the high color is to be applied to the corresponding pixel, or "0" to indicate that the low color is to be applied.
For illustrative purposes, in Figure 4B, each half 308 and 309 is divided into eight 2x2 areas. These areas correspond to the smallest subtile units shown in the examples of Figure 5.
As an alternative embodiment of the present invention, additional subtile arrangements, including subtiles of smaller or larger dimensions, could be employed. For example, Figure 6 shows STACs for quarter-tiles, containing 2x1 subtiles.
Referring now to Figure 7, there is shown a preferred method of decompressing the encoded compressed image on a tile-by-tile basis. The decompressor begins at the first tile 702 in the image, and downloads 703 the STACs, color value pairs, and bitmaps for that tile. The first STAC indicates whether or not the tile has been subdivided. If not, the decompressor applies 705 high and low color values 302 and 303 to the individual pixels according to bitmap
304 (as shown in Figure 3A). If the tile has been subdivided, each half of the tile is treated separately. For each half, the STAC indicates the arrangement of subtiles, and the number of color value pairs that will be provided. The decompressor goes to the first subtile 706, and applies 707 the high and low color values for that subtile according to the bitmap. If there are more subtile, the decompressor goes to the next subtile 709 and repeats step 707. Once the tile has been colored, the decompressor determines 710 whether there are more tiles. If so, it proceeds to the next tile 711 and repeats steps 703 through 710. Thus, in performing decompression, no mathematical operations need be performed, and a minimal amount of processing power is required.
In addition, if a number of consecutive tiles are identical, an additional field may be added to record 300 or 400 to indicate the number of identical tiles, so that the tile information need not be repeated. This technique is a variation on conventional run-length coding, and is particularly useful when a portion of the image is generally homogeneous. Therefore, the invention provides a novel and advantageous system and method of compressing a digital image by successively subdividing the image into smaller tiles and coloring all pixels within each tile with a limited color palette.

Claims

What is claimed is:
1. A method of generating a compressed representation of a digital image having a plurality of pixels, each pixel having an original color value, comprising the steps of:
(a) defining at least one tile comprising an area corresponding to at least a portion of the digital image; and
(b) for each tile, performing the substeps of:
(b.l) selecting at least two color values for the tile; (b.2) defining at least two subsets of pixels of the tile; (b.3) for each defined subset of pixels, assigning one of the selected color values to the defined subset; and
(b.4) storing representations of the selected color values and a binary string representing the defined subsets.
2. The method of claim 1, further comprising the steps of:
(c) selecting one of the tiles; (d) subdividing the selected tile into a plurality of tiles; and
(e) for each tile in the plurality of tiles, performing steps (b.l) through (b.4).
3. The method of claim 2, further comprising the step of (f) repeating steps (c) to (e) until a predefined condition is met.
4. The method of claim 2, wherein each pixel has an original luminance value, further comprising the steps of, after step (b.3):
(b.3.1) for each subset of pixels: determining a luminance value corresponding to the assigned color value; and comparing the determined luminance value with the original luminance value of each pixel in the subset; and (b.3.2) generating an error metric for the tile responsive to the results of step (b.3.1).
5. The method of claim 4, wherein step (c) comprises the substeps of: (cl) comparing the error metrics for all of the tiles; and
(c.2) responsive to the results of step (cl), selecting a tile having the highest error metric among all of the tiles.
6. The method of claim 5, further comprising the step of (f) repeating steps (c) to (e) until a predefined condition is met.
7. The method of claim 5, further comprising the step of (f) repeating steps (c) to (e) until the highest error metric among all of the tiles is less than a predetermined value.
8. The method of claim 5, further comprising the step of (f) repeating steps (c) to (e) until the sum of the error metrics for all of the tiles is less than a predetermined value.
9. The method of claim 5, further comprising the steps of:
(f) determining a quantity of storage space required to store the representations; and
(g) repeating steps (c) to (f) until the quantity of storage space exceeds a predetermined amount.
10. The method of claim 5, further comprising the steps of:
(f) determining a quantity of time required to decompress the representations; and
(g) repeating steps (c) to (f) until the quantity of time exceeds a predetermined amount.
11. The method of claim 1 , wherein each pixel has an original luminance value, and wherein substep (b.l) comprises the substeps of:
(b.1.1) determining an average luminance value of the pixels of the tile; (b.1.2) defining a first subset of pixels including the pixels of the tile having an original luminance value higher than the average luminance value of the tile; (b.1.3) defining a second subset of pixels including the pixels of the tile having an original luminance value lower than the average luminance value of the tile; (b.1.4) selecting a first color value corresponding to the average color value of the first subset of pixels of the tile; and (b.1.5) selecting a second color value corresponding to the average color value of the second subset of pixels of the tile.
12. The method of claim 11, wherein substep (b.3) comprises the substeps of: (b.3.1) assigning the first selected color value to the first subset of pixels; and (b.3.2) assigning the second selected color value to the second subset of pixels. 13. A method of generating a compressed representation of a digital image having a plurality of pixels, each pixel having an original color value and an original luminance value, comprising the steps of:
(a) defining at least one tile comprising an area corresponding to at least a portion of the digital image; and
(b) for each tile, performing the substeps of:
(b.1) determining an average luminance value of the pixels of the tile; (b.2) defining a first subset of pixels including the pixels of the tile having an original luminance value higher than the average luminance value of the tile;
(b.3) defining a second subset of pixels including the pixels of the tile having an original luminance value lower than the average luminance value of the tile; (b.4) selecting a first color value corresponding to the average color value of the first subset of pixels ;
(b.5) selecting a second color value corresponding to the average color value of the second subset of pixels; (b.6) assigning the first color value to the first subset of pixels; (b.7) assigning the second color value to the second subset of pixels; (b.8) determining a first luminance value corresponding to the assigned color value of the first subset; (b.9) determining a second luminance value corresponding to the assigned color value of the second subset; (b.10) for each pixel in the first subset, comparing the first luminance value with the original luminance value of the pixel;
(b.l 1) for each pixel in the second subset, comparing the second luminance value with the original luminance value of the pixel; (b.12) generating an error metric responsive to the results of steps (b.10) and (b.11); and (b.
13) storing representations of the first color value, the second color value, and a binary string representing the defined subsets;
(c) comparing the error metrics for all of the tiles;
(d) responsive to the results of step (c), selecting a tile having the highest error metric among all of the tiles;
(e) subdividing the selected tile into a plurality of tiles;
(f) for each tile in the plurality of tiles, performing steps (b.l) through (b.14);
(g) repeating steps (c) to (f) until a predefined condition is met.
14. A method of decompressing a compressed representation of a digital image having a plurality of pixels, comprising the steps of:
(a) reading a binary string representing a bitmap corresponding to at least a portion of the image;
(b) reading a representation of a plurality of color values;
(c) determining whether the portion of the image has been subdivided into subtiles; (d) responsive to the portion of the image not having been subdivided into subtiles, applying the colors indicated by the color values according to the binary string; and (e) responsive to the portion of the image having been subdivided into subtiles, for each subtile, applying the colors corresponding to the subtile as indicated by the color values according to the portion of the binary string corresponding to the subtile.
15. A system for generating a compressed representation of a digital image having a plurality of pixels, each pixel having an original color value, comprising: an image input device for accepting the digital image; tile definition means coupled to the image input device for defining at least one tile comprising an area corresponding to at least a portion of the digital image; color selection means coupled to the tile definition means for selecting at least two color values for each tile; pixel subset definition means coupled to the tile definition means for defining at least two subsets of pixels of each tile; color assignment means coupled to the tile definition means for, for each defined subset of pixels in each tile, assigning one of the selected color values to the defined subset; and a storage device coupled to the color selection means and the color assignment means, for storing representations of the color values and a binary string representing the color assignments of each tile.
16. The system of claim 15, further comprising: tile selection means coupled to the color selection means and the color assignment means, for selecting one of the tiles; and tile subdivision means coupled to the tile definition means for subdividing the selected tile into a plurality of tiles; and wherein: the color selection means selects at least two color values for each tile in the plurality of tiles; the pixel subset definition means defines at least two subsets of pixels for each tile in the plurality of tiles; the color assignment means assigns one of the selected color values to the defined subset for each tile in the plurality of tiles; and the storage device stores representations of the color values and binary strings representing color assignments for each tile in the plurality of tiles.
17. The system of claim 16, wherein each pixel has an original luminance value, further comprising error measuring means coupled to the color assignment means for, for each tile, comparing a luminance value corresponding to the assigned color level with the original luminance value of each pixel in the subset and generating an error metric for the tile responsive to the results of the comparison.
18. The system of claim 17, wherein the selection means selects one of the tiles by comparing the error metrics for all of the tiles, and selecting a tile having the highest error metric among all of the tiles.
EP94918674A 1993-06-04 1994-05-31 Digital image compression using tile subdivision Withdrawn EP0701755A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7184693A 1993-06-04 1993-06-04
US71846 1993-06-04
PCT/US1994/006125 WO1994030002A1 (en) 1993-06-04 1994-05-31 Digital image compression using tile subdivision

Publications (1)

Publication Number Publication Date
EP0701755A1 true EP0701755A1 (en) 1996-03-20

Family

ID=22103968

Family Applications (1)

Application Number Title Priority Date Filing Date
EP94918674A Withdrawn EP0701755A1 (en) 1993-06-04 1994-05-31 Digital image compression using tile subdivision

Country Status (5)

Country Link
EP (1) EP0701755A1 (en)
JP (1) JPH08511138A (en)
AU (1) AU6989394A (en)
CA (1) CA2162019A1 (en)
WO (1) WO1994030002A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027977A1 (en) * 1995-03-07 1996-09-12 International Business Machines Corporation Process for storing an image having a predeterminable data size
US6204933B1 (en) * 1997-06-20 2001-03-20 Hitachi, Ltd. Information print system and image processing apparatus
US9135727B2 (en) 2013-05-07 2015-09-15 Adobe Systems Incorporated Method and apparatus for reconstructing indexed color spaces

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4743959A (en) * 1986-09-17 1988-05-10 Frederiksen Jeffrey E High resolution color video image acquisition and compression system
US5261049A (en) * 1991-07-22 1993-11-09 International Business Machines Corporation Video RAM architecture incorporating hardware decompression

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9430002A1 *

Also Published As

Publication number Publication date
CA2162019A1 (en) 1994-12-22
AU6989394A (en) 1995-01-03
WO1994030002A1 (en) 1994-12-22
JPH08511138A (en) 1996-11-19

Similar Documents

Publication Publication Date Title
JP3716931B2 (en) Adaptive decoding device for continuous images
US9774884B2 (en) System and method for using pattern vectors for video and image coding and decoding
US5355167A (en) Orthogonal transform coding apparatus
US4369463A (en) Gray scale image data compression with code words a function of image history
US5959675A (en) Image compression coding apparatus having multiple kinds of coefficient weights
US6301392B1 (en) Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
US5228098A (en) Adaptive spatio-temporal compression/decompression of video image signals
US6603813B1 (en) Video signal coding systems and processes using adaptive quantization
JP2921358B2 (en) Image coding device
US5719961A (en) Adaptive technique for encoder and decoder signal transformation
US6330369B1 (en) Method and apparatus for limiting data rate and image quality loss in lossy compression of sequences of digital images
JPH05292462A (en) Method and device for compression-encoding and decoding video
US20030198397A1 (en) Image processing system for compressing image data including binary image data and continuous tone image data by a sub-band transform method with a high-compression rate
US10785493B2 (en) Method of compressing and decompressing image data
JP3067628B2 (en) Image coding device
JP3087835B2 (en) Image encoding method and apparatus and image decoding method and apparatus
US6728413B2 (en) Lattice vector quantization in image compression and decompression
WO1994030002A1 (en) Digital image compression using tile subdivision
EP1892965A2 (en) Fixed bit rate, intraframe compression and decompression of video
EP1629675B1 (en) Fixed bit rate, intraframe compression and decompression of video
Rizal Compression Method in JPEG Standard
JP3232160B2 (en) Encoding device and method
JPH06165149A (en) Method for controlling image coding
CA2358857C (en) Data compression using adaptive bit allocation and hybrid lossless entropy encoding
JP3645690B2 (en) Image compression apparatus and camera

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19951103

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LI LU MC NL PT SE

AX Request for extension of the european patent

Free format text: SI PAYMENT 951103

RAX Requested extension states of the european patent have changed

Free format text: SI PAYMENT 951103

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19961202