Digital Signal Processing Reference
In-Depth Information
12.5 Farbquantisierung
W
W
Abbildung 12.29
Farbverteilung nach einer skalaren
3:3:2-Quantisierung. Ursprungliche
Verteilung der 226.321 Farben im
RGB-Wurfel (a). Verteilung der resul-
tierenden 8 × 8 × 4 = 256 Farben nach
der 3:3:2-Quantisierung (b).
B
B
G
G
0
0
R
R
(a)
(b)
Programm 12.14
Quantisierung eines 3 × 8-Bit RGB-
Farbpixels auf 8 Bit in 3:3:2-Packung.
1 ColorProcessor cp = (ColorProcessor) ip;
2 int C = cp.getPixel(u, v);
3 int R = (C & 0x00ff0000) >> 16;
4 int G = (C & 0x0000ff00) >> 8;
5 int B = (C & 0x000000ff);
6 // 3:3:2 uniform color quantization
7 byte RGB =
8
(byte) ((R & 0xE0) | (G & 0xE0)>>3 | ((B & 0xC0)>>6));
operationen in Java e zient durchgefuhrt werden, wie das Codesegment
in Prog. 12.14 zeigt. Die resultierende Bildqualitat ist wegen der kleinen
Zahl von Farbabstufungen naturlich gering (Abb. 12.29).
Im Unterschied zu den nachfolgend gezeigten Verfahren nimmt die
skalare Quantisierung keine Rucksicht auf die Verteilung der Farben im
ursprunglichen Bild. Die skalare Quantisierung ware ideal fur den Fall,
dass die Farben im RGB-Wurfel gleichverteilt sind. Bei naturlichen Bil-
dern ist jedoch die Farbverteilung in der Regel hochst ungleichformig,
sodass einzelne Regionen des Farbraums dicht besetzt sind, wahrend an-
dere Farben im Bild uberhaupt nicht vorkommen. Der durch die skalare
Quantisierung erzeugte Farbraum kann zwar auch die nicht vorhande-
nen Farben reprasentieren, dafur aber die Farben in dichteren Bereichen
nicht fein genug abstufen.
12.5.2 Vektorquantisierung
Bei der Vektorquantisierung werden im Unterschied zur skalaren Quan-
tisierung nicht die einzelnen Farbkomponenten getrennt betrachtet, son-
dern jeder im Bild enthaltene Farbvektor C i =( r i ,g i ,b i ) als Ganzes.
Das Problem der Vektorquantisierung ist, ausgehend von der Menge der
ursprunglichen Farbwerte
C
=
{
C 1 , C 2 ,... C m }
,
a) eine Menge n reprasentativer Farbvektoren
C =
{
C 1 , C 2 ,... C n }
zu
finden und
Search WWH ::




Custom Search