Kompressionsverfahren für Texte

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Kapitel 3 Codes Damit Information in einem Rechner verarbeitet werden kann, muss sie in eine für den Rechner verarbeitbare Form transformiert werden. Dabei.
Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Prof. Dr. T. Kudraß1 Hash-Verfahren. Prof. Dr. T. Kudraß2 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit.
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Das LCA – Problem in Suffixbäumen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Information - syntaktisch
Suche in Texten (Stringsuche )
Greedy-Algorithmus Greedy-Algorithmen sind mit dem dynamischen Programmieren verwandt, jedoch einfacher. Die Grundsituation ist dieselbe: Es geht um ein.
11. Datenkomprimierung Bei den meisten bisher betrachteten Algorithmen wurde vor allem das Ziel verfolgt, möglichst wenig Zeit aufzuwenden, und erst in.
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
10. Grundlagen imperativer Programmiersprachen
Übung 2.1 Information Wieviele Fragen benötigen Sie beim „Zahlenraten“
Beispielklausur In diesem Kapitel wird ein Beispiel für eine Klausur vorgestellt. Dabei sind jeweils die Aufgaben und die Lösungen gegeben. Beachten Sie.
Java: Dynamische Datentypen
2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen
Arithmetische Kodierung
Konstruktion von Suffix Bäumen
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Kompressionsverfahren (für Texte)
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Konstruktion von Suffix Bäumen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Bestimmung des Next-Arrays im KMP-Algorithmus
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Union-Find-Strukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Huffmans Kompressionsverfahren
Hauptseminar Automaten und Formale Sprachen
Medien- Technik Datei-Formate: TIFF Tagged Image File Format.tif.tiff.
Huffman Entropie-Codierung Codierung mit variabler Länge
Dateiformate .jpeg Verlustbehaftete Kompression.
Datenformate: Text und Bild
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Information und Kommunikation
Java, Java, Java R. Morelli
Daniela Wurhofer und Ismail Karagöz
Suchen In Texten Von Adriano Feola & Marc Draschl.
PHP: Operatoren und Kontrollstrukturen
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Rechnersysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2  Wer bin ich?  Die Vorlesung.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015.
Seminar Computergrafik
Codierung Teil 1 Datenkomprimierung Teil 2 Kanalcodierung.
Information - syntaktisch
Sükün_Karatas Grundlagen der Codes Sükün_Karatas 3aFD.
Cäsar-Verschlüsselung
Cäsar-Verschlüsselung
H Passen Sie dieses Banner mit Ihrer eigenen Nachricht an! Wählen Sie den Buchstaben aus, und fügen Sie Ihren eigenen Text hinzu. Verwenden Sie ein Zeichen.
 Präsentation transkript:

Kompressionsverfahren für Texte Prof. Dr. S. Albers Prof. Dr. Th. Ottmann WS03/04

Zeichenkettenverarbeitung Suche in Texten, Textindizes Mustererkennung (Pattern-Matching) Verschlüsseln Komprimiern Analysieren (Parsing) Übersetzen WS03/04

Kompressionsverfahren für Texte Verlustfreie Kompression Original kann perfekt rekonstruiert werden Beispiele: Huffman Code, Lauflängencodierung, arithmetische Codierung, Lempel-Ziv Verlustbehaftete Kompression: Unterschied zwischen Original und decodiertem Objekt, nutzt physiologische und psychologische Eigenschaften des Auges und Ohres aus, erlaubt höhere Kompressionsraten Beispiele: JPEG, MPEG WS03/04

Verlustfreie Kompressionsverfahren Ziel: Finde umkehrbare Codierung, so dass der Text wieder (verlustfrei) rekonstruiert werden kann. Beispiele: Huffmann-Code Lauflängen-Codierung Arithmetische Codierung Lempel-Ziv Codierung WS03/04

Verlustbehaftete Kompressionsverfahren Gegensatz: Verlustbehaftete Kompression für Bilder, Audio, Video Beispiele: JPEG MPEG MP3 WS03/04

Arithmetische Codierung Ziel: # Bits der codierten Nachricht umgekehrt proportional zur Wahrscheinlichkeit der Nachricht. Wahrscheinlichkeit groß - # Bits klein Wahrscheinlichkeit klein - # Bits groß WS03/04

Arithmetische Codierung Beispiel: Huffmann Code AAAA  1111 BBBB  0000 Symbol p(Symbol) Code A 0.01 B 0.99 1 WS03/04

Arithmetische Codierung Idee: Stelle Symbole und Symbolfolgen als Intervall [l, r) bzw. als Element daraus dar. Beispiel: Symbol p(Symbol) Intervall F 0.1 [0.0, 0.1) I 0.3 [0.1, 0.4) N [0.4, 0.7) O 0.2 [0.7, 0.9) @ [0.9, 1.0) WS03/04

Arithmetische Codierung 0.4 0.31 0.229 0.2281 0.22810 1.0 @ 0.9 O 0.7 N 0.4 I 0.1 F 0.1 0.22 0.22 0.2263 0.22792 WS03/04

Arithmetische Codierung Decodierung durch Umkehrung: Beispiel: WS03/04

Arithmetische Codierung Es reicht natürlich ein Wert aus dem Intervall, z.B. der untere. Die Gesamtnachricht wird zur Codierung in Teilzeichenfolgen zerlegt, die durch Stoppzeichen beendet werden. Nachteil: Statisches Verfahren, passt sich nicht wechselnden Wahrscheinlichkeiten an. Nachteil: Aufwendige Berechnungen. WS03/04

Einfaches verlustfreies Kompressionsverfahren Ersetze häufig auftretendes Muster durch kurzes Codewort, verwende Wörterbuch für die Codeworte abracadabracadabra abra 1 1 2 2 1 cad 2 WS03/04

Einfaches verlustfreies Kompressionsverfahren Wörterbuchbasiertes Kompressionsverfahren: statisch: Wörterbuch wird vor Codierung festgelegt und bleibt unverändert dynamisch: Wörterbuch passt sich dem zu komprimierenden Text dynamisch an Lempel-Ziv: zip, TIFF ( Image File Format) Lempel-Ziv-Welch: Compress in Unix WS03/04

Einfaches verlustfreies Kompressionsverfahren Lempel-Ziv Idee: Baue das Wörterbuch simultan mit der Kodierung des Textes auf; anfangs seien für jeden Buchstaben des Alphabetes Codenummern im Wörterbuch WS03/04

Einfaches verlustfreies Kompressionsverfahren Kodierung von: a b a b c b a b a b Wörterbuch Eintrag # Ausgabe a 1 b 2 c 3 WS03/04

Einfaches verlustfreies Kompressionsverfahren Decodierung von: 1 2 4 3 5 8 Wörterbuch Eintrag # Ausgabe a 1 b 2 c 3 WS03/04

LZW Kodierung Algorithmus Lempel-Ziv-Welch Input: Ein Text T=t1…tn über dem Alphabet S Output: Die LZW Kodierung von T Initialisiere Wörterbuch D mit Zeichen aus S; Initialisiere string s = t1: while noch nicht alle Zeichen von T gelesen do lies nächstes Zeichen c; if s+c ist Anfangsstück eines Eintrags in D then s = s+c /* bestimme aktuellen Match*/ else { gib Codewort(s) aus; trage s+c in D ein; s = c } end while; gib Codewort(s) aus WS03/04

LZW Decodierung Input: Sequenz von Codewörtern Output: Zeichenfolge über dem Alphabet S Initialisiere Wörterbuch D mit Zeichen aus S; Lies lcw und gib Buchstaben string(lcw) aus, den lcw codiert; while noch nicht alle Codewörter gelesen do lies nächstes Codewort act; if act ist nicht in D then /* Spezialfall*/ { trage string(lcw) + firstchar(string(lcw)) in D ein; gebe string(lcw) + firstchar(string(lcw)) aus } else { trage string(lcw) + firstchar(string(act)) in D ein; gibt string(act) aus } lcw = acw end while WS03/04

Lempel-Ziv Kodierung: Beispiel T = COCOA AND BANANAS Wörterbuch D (anfangs) m #(m) A 000 001 O 001 111 B 000 010 ... C 000 011 S 010 011 D 000 100 Z 011 010 N 001 110 011 011 WS03/04

Lempel-Ziv Kodierung: Beispiel T = COCOA AND BANANAS m #(m) add to D T C 000 011 ---- OCOA AND BANANAS O 001 111 CO 011 100 COA AND BANANAS CO 011 100 OC 011 101 A AND BANANAS A 000 001 COA 011 110 AND BANANAS 011 011 A 011 111 A 100 000 ND BANANAS N 001 110 AN 100 001 D BANANAS D 000 100 ND 100 010 BANANAS D 100 100 WS03/04

Lempel-Ziv Kodierung: Beispiel add to D T B 000 010 B 100 100 ANANAS AN 100 001 BA 100 101 ANAS ANA 100 110 AS A 000 001 S 010 011 AS 100 111 # (T) = 000 011 | 001 111 | 011 100 | 000 001 | 011 011 | ... WS03/04

Lempel-Ziv Eigenschaften Wörterbuch passt sich dynamisch an die zu komprimierende Zeichenkette an, d.h. es enthält schließlich die am häufigsten vorkommende Zeichenkette Wörterbuch (Code Tabelle) muss nicht übertragen werden. Bekannt sein muss nur die Anfangtabelle, alles weitere wird beim Decodieren dynamisch erzeugt. Codieren und Decodieren ist in linearer Zeit möglich LZ führt i.a. zu höheren Kompressionsraten als Huffmann WS03/04