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 ,..,mn } Codebuch 1 2 m i Codewort Zwei Arten der Quantisierung Skalarquantisierung Vektorquantisierung Quantisierer besteht aus einem Encoder und Decoder Signal Encoder Index Decoder Codebuch Encoder weist Signal einer Zelle zu Index Decoder gibt Codewort des Index zurück Bild Performance Kompressionsrate log 2 N r k Quantisierungsrauschen Snr snr 10 log 10 N Anzahl der Kodewörter k Länge der Kodewörter durschn.Eingabe STANDARTABWEICHUNG psnr psnr 10 log 10 A STANDARTABWEICHUNG Skalarquantisierung Abbildung eines Skalars x auf Menge diskreter Werte y Q:xy Anwendung AD Wandler Zeitabhängige signale Entscheidungsgrenze granular cell x1 x2 ... x n x n+1 X overload cell y1 yn centroid Einteilung linear nicht linear Anwendungen AD Wandler Audiosignale Vektorquantisierung Verallgemeinerung der Skalarquantisierung Q: R k C Anwendung auf bereits digitalisierte Werte Komprimierung Mustererkennung k vollständige Einteilung von R in paarweise disjunkte Bereiche Die Entscheidungsgrenzen können beliebig geformt sein VQ mit R 2 Zellenwand Zentroid Nearest Neightbour Encoding 1. Setze d = d initial ; j = 1; i = 1; 2. Berechne D j = d(x,yj ); 3. IF D < d THEN D = d j ; i = j; 4. IF j < N THEN j++; GOTO 2; 5. END; SQ vs VQ 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 (0) 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 (k) 4.:Ist D ( k ) D k 1 beende a (k ) D 5.:k++;Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 Der LBG-Algorithmus (0) 1.:Wähle Startcodebuch C der Größe M;k=0;D =0; Wähle Genauigkeit a; 2.:Bestimme Zellen (mit N. N. Regel) (k) 3.:Bestimme Gesamtabweichung D 4.:Ist D ( k ) D k 1 beende a (k ) D 5.:K++; Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 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 (k) zwischen Codevektor und Trainingsvektoren 4.:Ist beende D ( k ) D k 1 a (k ) D 5.:K++; Bestimme neue Codebucheinträge (Schwerpunkte der Interwalle); Gehe zu 2 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