Quantisierung Seminar Multimediadatenformate Oliver Richter
Übersicht Quantisierung allgemein Quantisierungsarten Kodierung Design eines Quantisierers
Quantisierung Grundlage für verlustbehaftete Komprimierung Abbildung auf endliche Menge von diskreten Werten Q : M C C = {m,m,..,m } Codebuch m Codewort Zwei Arten der Quantisierung Skalarquantisierung Vektorquantisierung i n 21
Quantisierer besteht aus einem Encoder und Decoder Encoder weist Signal einer Zelle zu Index Decoder gibt Codewort des Index zurück EncoderDecoder SignalBild Index Codebuch
Performance Kompressionsrate N Anzahl der Kodewörter k Länge der Kodewörter Quantisierungsrauschen Snr psnr
Skalarquantisierung Abbildung eines Skalars x auf Menge diskreter Werte y Q : x y Anwendung AD Wandler Zeitabhängige signale x 1 x 2 x n+1 x n... X y n granular cell overload cell Entscheidungsgrenze centroid y 1
Einteilung linear nicht linear
Anwendungen AD Wandler
Audiosignale
Vektorquantisierung Verallgemeinerung der Skalarquantisierung Q: R C Anwendung auf bereits digitalisierte Werte Komprimierung Mustererkennung vollständige Einteilung von R in paarweise disjunkte Bereiche Die Entscheidungsgrenzen können beliebig geformt sein k k
VQ mit R 2 Zentroid Zellenwand
Nearest Neightbour Encoding 1. Setze d = d ; j = 1; i = 1; 2. Berechne D = d(x,y ); 3. IF D < d THEN D = d ; i = j; 4. IF j < N THEN j++; GOTO 2; 5. END; initial jj j
SQ vs VQ
Design eines VQ Qualität eines Vektorquantisierer Größe des Codebuches Wahl der Codewörter Möglichkeiten zur Verbesserung optimieren eines vorhandenen Codebuches Geeignete Wahl eines Codebuches
Der Lloyd-Algorithmus 1.:Wähle Startcodebuch C der Größe M;k=0;D =0; Wähle Genauigkeit a; 2.:Bestimme Grenzen durch gewichteten Mittelwert von zwei benachbarten Codebucheinträgen 3.:Bestimme Gesamtabweichung D 4.:Ist beende 5.:k++;Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 (0) (k)
Der LBG-Algorithmus 1.:Wähle Startcodebuch C der Größe M;k=0;D =0; Wähle Genauigkeit a; 2.:Bestimme Zellen (mit N. N. Regel) 3.:Bestimme Gesamtabweichung D 4.:Ist beende 5.:K++; Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 (0) (k)
LBG mit Trainingsvektoren 1.:Wähle Startcodebuch C der Größe M;k=0;D =0; Wähle Genauigkeit a; 2.:Bestimme Zellen (mit N. N. Regel) 3.:Berechne Durchschnitt und D zwischen Codevektor und Trainingsvektoren 4.:Ist beende 5.:K++; Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 (k)
Bsp.:Größe/Gewicht
Start-Codebuch
Start
Ziel
Alternatives Start-Codebuch
Start
Ziel
Splitting - Methode 1. Schwerpunkt der Trainingsvektoren erster Codebuchvektor 2. Codebuchvektor ersetzen durch Codebuchvektor + Abweichung Codebuchvektor - Abweichung 3. LBG Ausführen 4. Gehe zu 2 bis Codebuch vollständig
Startaufteilung
Erste Iteration
Fertiger Durchlauf
Pairwise next neighbor 1. Anfangscodebuch = Menge der Testvektoren 2. Finde die am nächsten zusammenliegenden Vektoren 3. Bilde Mittelwert der Vektoren und ersetze beide durch ihn 4. Wenn gewünschte Größe erreicht beende sonst gehe zu 2.
Bildkomprimierung Einteilen in kleine Blöcke Blöcke umformen in Vektoren Vektoren als Testvektoren für LBG verwenden und Codebuch erstellen Kodieren
Bilder
Abschluss VQ kann optimale Partizionierung darstellen Einfache Kodierung mit N. N. Verbesserung der Partizionierung mit LBG Algorithmus Partizionierung hängt stark von der Wahl des Start-Codebuches ab
Literatur Datenkompression M. Liskiefwicz, H. Fernau Universität Tübingen Scalar Quantization B. Schoofs, S. Reinartz TH Aachen Vektorquantisierung Y. Qui TH Aachen Artificial Intelligence Charniak, F. McDermott Addison Wesley Image Compression using Vector Quantisation ReCCIT