Introduction
What is color quantization???
Color quantization can be viewed as a subset of the field of vector
quantization. Stated simply vector quantization is the problem of
selecting K vectors in some N dimensional space to represent N vectors
from that space where K<<N and the total error incurred by the
quantization is minimized. Color quantization is then vector
quantization in a 3-Dimensional space(RGB, CIE, HLS, ...). The process
of color image quantization is often broken into four phases,
Heckbert[2].
- Sampling the original image for color statistics.
- Choosing a color map based on those statistics.
- Mapping the colors to their representative in the color map.
- Quantizing and drawing the new image.
Phase 4 is a trivial matter regardless of the quantization
method. The other three phases however are more strongly connected. In
particular the method used for phases 1 and 2 will determine the
best method for accomplishing phase 3.
In general algorithms for color quantization can be broken into two
categories: Uniform and Non-Uniform.
- Uniform: Here the color space is broken into equal sized
regions where the number of regions, NR
is less than or
equal to K.
- Non-Uniform: Here the manner in which the color space is divided
is dependent on the distribution of colors in the image.
The remainder of this presentation will focus on 4 different algorithms:
Uniform, Popularity, Median Cut & Octree. Throughout the discussions the color space is assumed to be RGB and K = 256 although none of the algorithms are dependent on these assumptions.