81
1 Praktikum BKSPP: Blatt 2 Dr. David Sabel SoSe 2012

Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

1

Praktikum BKSPP:

Blatt 2

Dr. David Sabel

SoSe 2012

Page 2: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Zeichenbasierte Komprimierung mit Codebaumen

Idee:

Kodiere jedes Zeichen durch eine Bitfolge

Reprasentiere die Kodierung durch einen Codebaum

Codebaume:

A Alphabet

Binarer Baum

Pro a ∈ A gibt es ein mit a markiertes Blatt

innerer Knoten hat zwei Kinder:− linke Kante markiert mit 0− rechte Kante markiert mit 1

Codewort c(a) fur a ∈ A:Beschriftung des Pfades von der Wurzel zu a.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 2/22

Page 3: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel

0

tt1

++0{{

1##

0

yy1

$$A B0��

1��

0��

1��

C D E F

a c(a)

A 00B 01C 100D 101E 110F 111

ABCDEFFA ergibt 000110010111011111100.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 3/22

Page 4: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel

0

tt1

++0{{

1##

0

yy1

$$A B0��

1��

0��

1��

C D E F

a c(a)

A 00B 01C 100D 101E 110F 111

ABCDEFFA ergibt 000110010111011111100.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 3/22

Page 5: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Aufgabe

Modul Codebaum

Datentyp Codebaum a (polymorph uber Alphabeten)

mkGetCode :: Codebaum a -> a -> [Int], erhaltCodebaum und erstellt Funktion, die c(a) berechnet.[Int] soll Liste aus 0en und 1en darstellen

mkGetCode moglichst effizient (Baum jedes mal durchsuchenist ineffizient)

kodiere:: (Codebaum a) -> [a] -> [Int] erhaltCodebaum und Wort, berechnet Code

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 4/22

Page 6: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Huffman-Kodierung

Entropiekodierung

Zeichenbasiert

Idee

Verwende kurze Bitfolgen fur haufige Zeichen, langere furseltene Zeichen

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 5/22

Page 7: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Huffman-Kodierung

Seit T ein Text uber dem Alphabet A1 Berechne relative Haufigkeiten r(a, T ) fur alle a ∈ A

r(a, T ) = Anzahl der Vorkommen von a in TAnzahl der Zeichen von T

2 Erstelle optimalen Codebaum:

1 Starte mit Wald von Codebaumen:Fur jedes a ∈ A eine WurzelBaume sind mit relativen Haufigkeiten markiert

2 Iteriere den Schritt bis ein Baum entstanden ist:Wahle Baume B1, B2 mit kleinsten rel. Haufigkeiten undverschmelze diese:

1��0 ��B1 B2

Neue Haufigkeit: Summe r(B1) + r(B2)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 6/22

Page 8: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Huffman-Kodierung

Seit T ein Text uber dem Alphabet A1 Berechne relative Haufigkeiten r(a, T ) fur alle a ∈ A

r(a, T ) = Anzahl der Vorkommen von a in TAnzahl der Zeichen von T

2 Erstelle optimalen Codebaum:

1 Starte mit Wald von Codebaumen:Fur jedes a ∈ A eine WurzelBaume sind mit relativen Haufigkeiten markiert

2 Iteriere den Schritt bis ein Baum entstanden ist:Wahle Baume B1, B2 mit kleinsten rel. Haufigkeiten undverschmelze diese:

1��0 ��B1 B2

Neue Haufigkeit: Summe r(B1) + r(B2)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 6/22

Page 9: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Huffman-Kodierung

Seit T ein Text uber dem Alphabet A1 Berechne relative Haufigkeiten r(a, T ) fur alle a ∈ A

r(a, T ) = Anzahl der Vorkommen von a in TAnzahl der Zeichen von T

2 Erstelle optimalen Codebaum:1 Starte mit Wald von Codebaumen:

Fur jedes a ∈ A eine WurzelBaume sind mit relativen Haufigkeiten markiert

2 Iteriere den Schritt bis ein Baum entstanden ist:Wahle Baume B1, B2 mit kleinsten rel. Haufigkeiten undverschmelze diese:

1��0 ��B1 B2

Neue Haufigkeit: Summe r(B1) + r(B2)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 6/22

Page 10: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Huffman-Kodierung

Seit T ein Text uber dem Alphabet A1 Berechne relative Haufigkeiten r(a, T ) fur alle a ∈ A

r(a, T ) = Anzahl der Vorkommen von a in TAnzahl der Zeichen von T

2 Erstelle optimalen Codebaum:1 Starte mit Wald von Codebaumen:

Fur jedes a ∈ A eine WurzelBaume sind mit relativen Haufigkeiten markiert

2 Iteriere den Schritt bis ein Baum entstanden ist:Wahle Baume B1, B2 mit kleinsten rel. Haufigkeiten undverschmelze diese:

1��0 ��B1 B2

Neue Haufigkeit: Summe r(B1) + r(B2)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 6/22

Page 11: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel

T =AECACEFAABDDBEAEAEECEEEDF.

a Anzahl a im Text T r(a, T )A 6 6/25 = 0, 24 = 24%B 2 2/25 = 0, 08 = 8%C 3 3/25 = 0, 12 = 12%D 3 3/25 = 0, 12 = 12%E 9 9/25 = 0, 36 = 36%F 2 2/25 = 0, 08 = 8%

Wald am Anfang:

W0 = {(A, 24%), (B, 8%), (C, 12%), (D, 12%), (E, 36%), (F, 8%)}

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 7/22

Page 12: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (2)

W0 = {(A, 24%), (B, 8%), (C, 12%), (D, 12%), (E, 36%), (F, 8%)}

W1 = {(A, 24%), (0 �� 1��B F

, 16%), (C, 12%), (D, 12%), (E, 36%)}

W2 = {(A, 24%), (0 �� 1��B F

, 16%), (0 �� 1��C D

, 24%), (E, 36%)}

W3 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0 �� 1��C D

, 24%), (E, 36%)}

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 8/22

Page 13: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (2)

W0 = {(A, 24%), (B, 8%), (C, 12%), (D, 12%), (E, 36%), (F, 8%)}

W1 = {(A, 24%), (0 �� 1��B F

, 16%), (C, 12%), (D, 12%), (E, 36%)}

W2 = {(A, 24%), (0 �� 1��B F

, 16%), (0 �� 1��C D

, 24%), (E, 36%)}

W3 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0 �� 1��C D

, 24%), (E, 36%)}

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 8/22

Page 14: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (2)

W0 = {(A, 24%), (B, 8%), (C, 12%), (D, 12%), (E, 36%), (F, 8%)}

W1 = {(A, 24%), (0 �� 1��B F

, 16%), (C, 12%), (D, 12%), (E, 36%)}

W2 = {(A, 24%), (0 �� 1��B F

, 16%), (0 �� 1��C D

, 24%), (E, 36%)}

W3 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0 �� 1��C D

, 24%), (E, 36%)}

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 8/22

Page 15: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (2)

W0 = {(A, 24%), (B, 8%), (C, 12%), (D, 12%), (E, 36%), (F, 8%)}

W1 = {(A, 24%), (0 �� 1��B F

, 16%), (C, 12%), (D, 12%), (E, 36%)}

W2 = {(A, 24%), (0 �� 1��B F

, 16%), (0 �� 1��C D

, 24%), (E, 36%)}

W3 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0 �� 1��C D

, 24%), (E, 36%)}

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 8/22

Page 16: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (3)

W4 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0

yy1##

0��

1��

E

C D

, 60)}

0

ss1

++0{{

1

%%0

yy1##

A0��

1��

0��

1��

E

B F C D

Kodierung von T =AECACEFAABDDBEAEAEECEEEDF ergibt001110000100110110000010101101010110011001111100111111101011

Je 8-Bit zu einem ASCII-Zeichen ergibt Wort der Lange 8(|T | = 25)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 9/22

Page 17: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (3)

W4 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0

yy1##

0��

1��

E

C D

, 60)}

0

ss1

++0{{

1

%%0

yy1##

A0��

1��

0��

1��

E

B F C D

Kodierung von T =AECACEFAABDDBEAEAEECEEEDF ergibt001110000100110110000010101101010110011001111100111111101011

Je 8-Bit zu einem ASCII-Zeichen ergibt Wort der Lange 8(|T | = 25)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 9/22

Page 18: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Beispiel (3)

W4 = {( 0{{

1

%%A0��

1��

B F

, 40%), (0

yy1##

0��

1��

E

C D

, 60)}

0

ss1

++0{{

1

%%0

yy1##

A0��

1��

0��

1��

E

B F C D

Kodierung von T =AECACEFAABDDBEAEAEECEEEDF ergibt001110000100110110000010101101010110011001111100111111101011

Je 8-Bit zu einem ASCII-Zeichen ergibt Wort der Lange 8(|T | = 25)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 9/22

Page 19: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Codebaume Huffman-Kodierung

Aufgabe

Modul Huffman

Funktion text2Huffman :: String -> (Codebaum

Char,[Int]), die einen Text in Bitfolge mit der Huffmankodierungkodiert

Konsolen-Programm, dass einen Text Huffmankodieren unddekodieren kann und in Datei speichert

Am Ende muss 0-1-Folge in ASCII-Buchstaben konvertiert werden

Zum Dekodieren muss der Huffman-Baum sinnvoll in Dateigespeichert werden.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 10/22

Page 20: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Stringersatzverfahren

Ideen:

Huffman-Kodierung ist Zeichenbasiert

Stringersatzverfahren versuchen Wiederholungen vonSubstrings zusammenzufassen

Z.B. in abcabc kommt der Substring abc (zweimal)wiederholt vor.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 11/22

Page 21: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Run Length Encoding

Einfaches Verfahren

Ersetze Folgen von gleichen Zeichen durch Zeichen mit Zahler

aaaaabaabaaacccccddaaaa wird zu 5ab2ab3a5c2d4a

(einzelne Zeichen werden nicht durch Zahler versehen).

Wenn Ziffern in der Eingabe vorkommen braucht manTrennsymbole, z.B #5:ab#2:ab#3:a#5:c#2:d#4:a

Aufgabe:

Modul RLE, das RLE durchfuhrt

Verknupfung Huffman und RLE.

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 12/22

Page 22: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung

t0 t1

· · · tk

· · ·

tk+m · · ·

ti−1

bereits verarbeitet

ti · · ·

· · · ti+mti+m ti+m+1 · · ·

tn

zu verarbeiten

langster Prafix der in der verarbeiteten Eingabe vorkommt

Ausgabe: (k,m+ 1)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 13/22

Page 23: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung

t0 t1 · · · tk · · · tk+m · · · ti−1

bereits verarbeitet

ti · · · ti+m

ti+m

ti+m+1 · · · tn

zu verarbeiten

langster Prafix der in der verarbeiteten Eingabe vorkommt

Ausgabe: (k,m+ 1)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 13/22

Page 24: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung

t0 t1

· · · tk · · · tk+m · · · ti−1

· · ·

bereits verarbeitet

ti · · · ti+m

ti+m ti+m+1 · · · tn

zu verarbeiten

langster Prafix der in der verarbeiteten Eingabe vorkommt

Ausgabe: (k,m+ 1)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 13/22

Page 25: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung (2)

t0 t1 · · · ti−1

bereits verarbeitet

ti · · · tn

zu verarbeiten

Fall: Gar kein echter Prafix kommt in der verarbeiteten Eingabe vor

Ausgabe: ti

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 14/22

Page 26: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung (2)

t0 t1 · · · ti−1

bereits verarbeitet

ti · · · tn

zu verarbeiten

Fall: Gar kein echter Prafix kommt in der verarbeiteten Eingabe vor

Ausgabe: ti

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 14/22

Page 27: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Komprimierung (2)

t0 t1 · · · ti−1

bereits verarbeitet

ti · · · tn

zu verarbeiten

Fall: Gar kein echter Prafix kommt in der verarbeiteten Eingabe vor

Ausgabe: ti

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 14/22

Page 28: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 29: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa a

aa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 30: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)

aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 31: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa b

aabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 32: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)

aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 33: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)

aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 34: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)

aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 35: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)

aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 36: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)

aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 37: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)

aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 38: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)

aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 39: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)

aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 40: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa c

aabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 41: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)

aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 42: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 43: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

Text aabaaabaababaaababbbaabbbbccaaa

Verarbeitete Eingabe Resteingabe Ausgabeaabaaabaababaaababbbaabbbbccaaa

a abaaabaababaaababbbaabbbbccaaa aaa baaabaababaaababbbaabbbbccaaa (0,1)aab aaabaababaaababbbaabbbbccaaa baabaa abaababaaababbbaabbbbccaaa (0,2)aabaaabaa babaaababbbaabbbbccaaa (1,4)aabaaabaaba baaababbbaabbbbccaaa (2,2)aabaaabaababaaaba bbbaabbbbccaaa (2,6)aabaaabaababaaabab bbaabbbbccaaa (2,1)aabaaabaababaaababb baabbbbccaaa (2,1)aabaaabaababaaababbbaab bbbccaaa (6,4)aabaaabaababaaababbbaabbbb ccaaa (17,3)aabaaabaababaaababbbaabbbbc caaa caabaaabaababaaababbbaabbbbcc aaa (26,1)aabaaabaababaaababbbaabbbbccaaa (3,3)

Ausgabe:a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 15/22

Page 44: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Optimierungen

Zu kurze gefundene Prafixe durch den String nicht durch dieReferenz darstellen.

Zumindest fur einzelne Zeichen

Statta(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3)

aab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 16/22

Page 45: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ε

ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 46: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) a

b(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 47: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa

(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 48: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab

(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 49: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa

(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 50: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa

(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 51: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaaba

bb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 52: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaaba

b(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 53: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab

(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 54: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb

(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 55: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaab

cc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 56: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbb

c(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 57: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc

(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 58: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbcc

ε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 59: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Dekomprimierung

Komprimierter Reststring Ausgabeaab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) εab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aa(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aab(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaa(2,2)(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaa(2,6)bb(6,4)(17,3)cc(3,3) aabaaabaababb(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaabab(6,4)(17,3)cc(3,3) aabaaabaababaaababb(17,3)cc(3,3) aabaaabaababaaababbbaabcc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbc(3,3) aabaaabaababaaababbbaabbbbccε aabaaabaababaaababbbaabbbbccaaa

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 17/22

Page 60: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Aufgabe

Modul LZ

lz77Compress, lz77Decompress zur Implementierung derLZ-Kompression / Dekompression

Konsolenprogramm, dass Dateien komprimiert /dekomprimiert

Verknupfung Huffman und LZ77

Optimieren: Wenn Stringreferenz langer als String, dannString speichern

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 18/22

Page 61: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Lempel-Ziv-Welch Algorithmus

Ahnlich zu LZ77

Baut ein Worterbuch bekannter Strings auf

Benutzt Worterbuch zum Komprimieren der Resteingabe

Sei

D das Worterbuch

ti . . . tn die Resteingabe.

Am Anfang alle Zeichen schon im Worterbuch

Vorgehen

Berechne langsten Prafix von ti, . . . , tn der in D vorkommt.

Sei dies ti, . . . , tm mit Schlussel k in D

Ersetze ti, . . . , tm durch k fur die Ausgabe

Fuge ins Worterbuch ein: ti, . . . , tm+1 (falls m 6= n)Beachte: Es genugt k und tm+1 zu speichern.

mache mit tm+1, . . . , tn weiter

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 19/22

Page 62: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 1

4 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 63: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 1

4 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 64: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 1

5 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 65: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 2

6 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 66: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 4

7 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 67: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 5

8 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 68: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 4

9 4 b aab babaaababbbaabbbbccaaa 610 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 69: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 70: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 6

11 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 71: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 9

12 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 72: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 5

13 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 73: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 2

14 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 74: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 11

15 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 75: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 14

16 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 76: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 14

17 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 77: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 3

18 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 78: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 3

19 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 79: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel

WorterbuchSchlussel Prafix Suffix Wort

1 a a2 b b3 c c Resteingabe Ausgabe

aabaaabaababaaababbbaabbbbccaaa 14 1 a aa abaaabaababaaababbbaabbbbccaaa 15 1 b ab baaabaababaaababbbaabbbbccaaa 26 2 a ba aaabaababaaababbbaabbbbccaaa 47 4 a aaa abaababaaababbbaabbbbccaaa 58 5 a aba aababaaababbbaabbbbccaaa 49 4 b aab babaaababbbaabbbbccaaa 6

10 6 b bab baaababbbaabbbbccaaa 611 6 a baa aababbbaabbbbccaaa 912 9 a aaba abbbaabbbbccaaa 513 5 b abb bbaabbbbccaaa 214 2 b bb baabbbbccaaa 1115 11 b baab bbbbccaaa 1416 14 b bbb bbccaaa 1417 14 c bbc ccaaa 318 3 c cc caaa 319 3 a ca aaa 7

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 20/22

Page 80: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Beispiel (2)

Ergebnis

Code: 1,1,2,4,5,6,6,9,5,2,11,14,14,3,3,7

Worterbuch:

{1 7→ a, 2 7→ b, 3 7→ c, 4 7→ 1a, 5 7→ 1b, 6 7→ 2a, 7 7→ 4a, 8 7→ 5a,9 7→ 4b, 10 7→ 6b, 11 7→ 6a, 12 7→ 9a, 13 7→ 5b, 14 7→ 2b,15 7→ 11b, 16 7→ 14b, 17 7→ 14c, 18 7→ 3c, 19 7→ 3c}

Worterbuch ist wie eine kontextfreie Grammatik

Dekomprimieren entspricht Herleitung

Code braucht nicht komplett gespeichert werden, wenn mandie Reihenfolge im Worterbuch beachtet

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 21/22

Page 81: Praktikum BKSPP: [2ex] Blatt 2 · 2012-04-26 · Zeichenbasierte KomprimierungStringersatzverfahrenCodeb aume Hu man-Kodierung Aufgabe Modul Codebaum Datentyp Codebaum a (polymorph

Zeichenbasierte Komprimierung Stringersatzverfahren Run Length Encoding LZ-Komprimierung LZW-Komprimierung

Aufgabe

LZW-Algorithmus in Haskell implementieren

Dabei effizizente Datenstrukturen benutzen

LZW mit Huffmankodierung verknupfen

Konsolenprogramm zur LZW-Kompression von Dateien

Praktikum BKSPP: Blatt 2 – SoSe 2012 – D. Sabel 22/22