Quantization (image processing)

From Wikipedia, the free encyclopedia

Quantization, involved in image processing. Quantization is a compression technique achieved by compressing a range of values to a single quantum value. By reducing the number of discrete symbols in a given stream, the stream becomes more compressible. For example seeking to reduce the number of colors required to represent an image. Another widely used example — DCT data quantization in JPEG and DWT data quantization in JPEG 2000.

[edit] Color quantization

Main article: Color quantization

Color quantization reduces the number of colors used in an image; this is important for displaying images on devices that support a limited number of colors and for efficiently compressing certain kinds of images. Most bitmap editors and many operating systems have built-in support for color quantization. Popular modern color quantization algorithms include the nearest color algorithm (for fixed palettes), the median cut algorithm, and an algorithm based on octrees.

It is common to combine color quantization with dithering to create an impression of a larger number of colors and eliminate banding artifacts.

[edit] Frequency quantization for image compression

The human eye is fairly good at seeing small differences in brightness over a relatively large area, but not so good at distinguishing the exact strength of a high frequency brightness variation. This fact allows one to get away with greatly reducing the amount of information in the high frequency components. This is done by simply dividing each component in the frequency domain by a constant for that component, and then rounding to the nearest integer. This is the main lossy operation in the whole process. As a result of this, it is typically the case that many of the higher frequency components are rounded to zero, and many of the rest become small positive or negative numbers.

This is an example DCT coefficient matrix:

\begin{bmatrix}  -415 & -33 & -58 &  35 &  58 & -51 & -15 & -12 \\     5 & -34 &  49 &  18 &  27 &   1 &  -5 &   3 \\   -46 &  14 &  80 & -35 & -50 &  19 &   7 & -18 \\   -53 &  21 &  34 & -20 &   2 &  34 &  36 &  12 \\     9 &  -2 &   9 &  -5 & -32 & -15 &  45 &  37 \\    -8 &  15 & -16 &   7 &  -8 &  11 &   4 &   7 \\    19 & -28 &  -2 & -26 &  -2 &   7 & -44 & -21 \\    18 &  25 & -12 & -44 &  35 &  48 & -37 & -3 \end{bmatrix}

A common quantization matrix is:

\begin{bmatrix}  16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \\  12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \\  14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \\  14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \\  18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \\  24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \\  49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \\  72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 \end{bmatrix}

Using this quantization matrix with the DCT coefficient matrix from above results in:

\begin{bmatrix}  -26 & -3 & -6 &  2 &  2 & -1 & 0 & 0 \\    0 & -3 & -4 &  1 &  1 &  0 & 0 & 0 \\   -3 &  1 &  5 & -1 & -1 &  0 & 0 & 0 \\   -4 &  1 &  2 & -1 &  0 &  0 & 0 & 0 \\    1 &  0 &  0 &  0 &  0 &  0 & 0 & 0 \\    0 &  0 &  0 &  0 &  0 &  0 & 0 & 0 \\    0 &  0 &  0 &  0 &  0 &  0 & 0 & 0 \\    0 &  0 &  0 &  0 &  0 &  0 & 0 & 0 \end{bmatrix}

For example, using −415 (the DC coefficient) and rounding to the nearest integer

\mathrm{round} \left(  \frac{-415}{16} \right) = \mathrm{round} \left(  -25.9375 \right) = -26

[edit] External links