1 MOTIVATION Das Feuer (James Krüss) Hörst du

Werbung
Modul 3
Darstellung von Information und
Datenkompression
Wörterbuchkompression
MOTIVATION
Das Feuer (James Krüss)
Auszug, leicht verändert, oft im Deutsch-Lesebuch der Klasse 5 zu finden.
Hörst du, wie die Flammen flüstern,
Knicken, knacken, krachen, knistern,
Wie das Feuer rauscht und saust,
Brodelt, brutzelt, brennt und braust?
Siehst du, wie die Flammen lecken,
Züngeln und die Zunge blecken,
Wie das Feuer tanzt und zuckt,
Trockne Hölzer schlingt und schluckt?
Riechst du, wie die Flammen rauchen,
Brenzlig, brutzlig, brandig schmauchen,
Wie das Feuer, rot und schwarz,
Duftet, schmeckt nach Pech und Harz?
ÜBERSICHT
Wörterbuchkompression - LZ77
Der Algorithmus wurde von Abraham Lempel und Jacob Ziv 1977 vorgestellt, daher der
Name. Er arbeitet normalerweise in linearer Laufzeit.
Technisch ist LZ77 nicht aktuell, er dient jedoch als Grundlage für viele
Kompressionsverfahren, die sich einer Wörterbuchtechnik bedienen. Von LZ77 abgeleitete
und erweiterte Kompressionen finden sich z.B. in png, pdf und zip wieder.
Beispiel: "regenbogenfarben" (Zur Vereinfachung werden alle hier behandelten
Beispielwörter klein geschrieben.)
Schritt 1
Trage das Wort in ein durchnummeriertes Feld ein
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
r e g e n b o g e n f a r b e n
Schritt 2
Das Wort wird nun Buchstabe für Buchstabe von links nach rechts "abgearbeitet". Dabei
werden 2 Fälle für die Ausgabe unterschieden:
Fall 1: Der Buchstabe ist bisher noch nicht vorgekommen
--> Ausgabe: (0,0,Buchstabe)
Fall 2: Der Buchstabe (bzw. eine mit dem Buchstaben beginnende folgende
Buchstabenkette) war vorher schon einmal da. Buchstaben bzw. Kette unterstreichen:
--> Ausgabe: (Startposition der Kette, Länge der Kette, nächster Buchstabe)
r
e
g
e
b
-->
-->
-->
-->
-->
(0,0,R)
(0,0,e)
(0,0,g)
(2,1,n)
(0,0,b)
Fall
Fall
Fall
Fall
Fall
1
1
1
2 {"e" bei 2, nächster Buchstabe n}
1
1
Modul 3
Darstellung von Information und
Datenkompression
o -->
gen >
a -->
r -->
en ->
(0,0,o)
(3,3,f)
(0,0,a)
(1,1,b)
(9,2,e)
Fall
Fall
Fall
Fall
Fall
Wörterbuchkompression
1
2 {"gen" bei 3, Länge 3, nächster f}
1
2 {"r" bei 1, Länge 1, nächster b}
2 {"en" bei 9, Länge 2, nächste e}
Ausgabe: 0,0,R 0,0,e 0,0,g 2,1,n 0,0,b 0,0,o 3,3,f 0,0,a 1,1,b 9,2,e
Anmerkung 1
Die Ausgabekette scheint erstmal länger zu sein als die Eingabekette. Der Vorteil des
Algorithmus liegt darin,
 dass die Zahlen zur Codierung weniger Bit brauchen als die Buchstaben und
 dass bei längeren Texten (oder Bildern) die Zeichen- und Wortwiederholungen mehr
werden
Anmerkung 2 – wichtig!
Die hier vorgestellte Version ist vereinfacht dargestellt. Der richtige Algorithmus arbeitet mit
einem Datenfenster mit begrenzter Länge und einem Vorschaufenster. Die zu codierende
Zeichen werden durch beide Fenster durchgeschoben. Dadurch hat der Algorithmus eine
lineare Laufzeitentwicklung O(n).
Datenfenster und Vorschaufenster wurden hier aus Gründen der Vereinfachung und
Reduktion auf die wesentliche Verständnisgrundlage weggelassen, das Prinzip des
Algorithmus' bleibt dabei unangetastet. Nur die Laufzeit wird dadurch quadratisch O(n²).
TRAINIEREN
Aufgabe 1
Codiere mit der LZ77-Codierung die Zeichenketten
a) "rosarote rose" und
b) "mississippi"
c) "von zeit zu zeit"
Aufgabe 2
Decodiere:
a) (0,0,s) (0,0,o) (0,0,m)(3,1,e) (0,0,r) (0,0,_)(2,1,d) (5,3,s) (2,1,n) (15,1,e)
b) (0,0,m) (0,0,a) (0,0,t)(0,0,h) (0,0,e) (1,3,i)(0,0,k)
2
Herunterladen