Huffmans Kompressionsverfahren

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Das LCA – Problem in Suffixbäumen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
7. Natürliche Binärbäume
Durchlaufen eines Binärbaumes
Greedy-Algorithmus Greedy-Algorithmen sind mit dem dynamischen Programmieren verwandt, jedoch einfacher. Die Grundsituation ist dieselbe: Es geht um ein.
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Übung 2.1 Information Wieviele Fragen benötigen Sie beim „Zahlenraten“
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen
Konstruktion von Suffix Bäumen
Suche in Texten: Suffix-Bäume
Kompressionsverfahren für Texte
Kompressionsverfahren (für Texte)
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Konstruktion von Suffix Bäumen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (24 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix –Tree –Konstruktion Ukkonen Algorithmus.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Geometrisches Divide and Conquer
Informatik II – Kapitel 13
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Proseminar „Algorithmen auf Graphen“
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Huffman Entropie-Codierung Codierung mit variabler Länge
Diskrete Mathe 9 Vorlesung 9 SS 2001
2. Die rekursive Datenstruktur Baum 2
Gierige Methoden "kurzsichtig handeln, langfristig gewinnen"
Effiziente Algorithmen
Diskrete Mathematik II
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Dynamische Programmierung mit Anwendung auf Sequence Alignment Problem
Java, Java, Java R. Morelli
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Graphen und Bäume.
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Codebaumanalyse Was geschieht in der Methode Codebaum.decodiere, wenn als Parameter der Code 001 übergeben wird? Gib die Zeilennummern der durchlaufenen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Rechnersysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2  Wer bin ich?  Die Vorlesung.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Binärer Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Binärbäume.
Quellencodierung NTM, 2006/05, 9.3 Quellencodierung, Rur, 1 Referenzen [1]Proakis, Salehi, „Grundlagen der Kommunikationstechnik“, Pearson, [2]D.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Heapsort-Algorithmus
 Präsentation transkript:

Huffmans Kompressionsverfahren Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Huffmans Kompressionsverfahren Proseminar bei PD. Dr.Bernd Klauer SS 2004 Haibo Zhou

1. Materialienbeschaffung Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 1. Materialienbeschaffung 2. Gestalten der Ausarbeitung 3. Gestalten der Vortrags

Vorstellung der Datenkompression Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Vorstellung der Datenkompression Einige wichtige Begriffe: Der Kompressor oder Encoder Der Dekompressor oder Decoder Die adaptive Methode semi-adaptive Symmetrische Kompression Wahrscheinlichkeitsmodell

Huffman`s Kompressionsverfahren Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Huffman`s Kompressionsverfahren Grafische Repräsentation des Huffman-Codes: der Huffman-Baum Beispiel: Symbole A, B, C, D, E, F, G mit die Wahrscheinlichkeiten des Erscheinens jedes Symbols in dem Text: 0.25, 0.21, 0.18, 0.14, 0.09, 0.07 respektive 0.06. Wie bauen wir einen Huffman-Baum mit obiger Symbole?

Der Huffman-Baum grafisch dargestellt: Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Der Huffman-Baum grafisch dargestellt:

Codewörter - einfach ablesen aus dem Huffman-Baum Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Codewörter - einfach ablesen aus dem Huffman-Baum Man startet mit einem leeren String Bei jedem Knoten kann man entscheiden, ob man nach links oder rechts weitergeht. Steigt man in den linken Teilbaum ab, so fügt man dem String hinten eine "0" an. Steigt man in den rechten Teilbaum ab, so fügt man dem String hinten eine "1" an ist man in dem Blatt angelangt, so nimmt man den String als Codewort für das entsprechende Symbol

Huffmans Kompressionsverfahren Proseminar bei PD. Dr Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Codierung Er startet mit einer Liste von n Blättern. Jedes Blatt repräsentiert ein Symbol. Dann entfernt er die zwei Blätter mit den kleinsten Wahrscheinlichkeiten aus der Liste. Diese beiden Blätter fasst er zu einem Knoten zusammen. Der Knoten wird in die Liste eingefügt. Rekursiv bei 2 weiter bis die Liste nur noch einen Knoten.

Effizientere Decodierung Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Effizientere Decodierung Man startet bei der Wurzel Ist das erste Zeichen im Binärstring eine "0", steigt man in den linken Teilbaum ab, sonst in den rechten. Dieses Vorgehen wiederholt man, bis man in einem Blatt ankommt. Definition: Präfixfrei: kein Codewort ist der Anfang eines anderen Codewortes.

Was wäre ein optimaler Code? Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Was wäre ein optimaler Code? Ein optimaler Code bedeutet, dass der Code die mittlere (durchschnittliche) Codewortlänge minimiert. mittlere Codewortlänge L

Der Huffman-Code ist ein optimaler Code! Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Der Huffman-Code ist ein optimaler Code! Sein die Symbole s1, s2, s3,..., sn absteigend sortiert mit p1 >= p2 >= p3 >= ... >= pn.Das heißt, es soll gelten: l1 <= l2 <= l3 <= ... <= ln. Nun, es ist anhand der Formel zur Berechnung von L relativ leicht einzusehen, dass die mittlere Codewortlänge L nur dann minimal sein kann, wenn eben die Codewortlängen aufsteigend sortiert sind. Daher ist der Huffman-Code optimal!

Zusammenfassung--Komprimierung Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Zusammenfassung--Komprimierung Schritt: Lege eine Tabelle mit allen im Originaltext vorhandenen Symbolen und deren relativen Häufigkeiten an. Schritt: Konstruiere den Huffman-Baum und erzeuge daraus eine Code-Tabelle. Schritt: Durchlaufe den Text und ersetzte jedes Symbol mit dem entsprechenden Code. Das Resultat ist ein großer binärer String. Schritt: Damit dieser String platzsparend gespeichert werden kann, zerlegen wir ihn. Die meisten Computer arbeiten heute mit Ganzzahlen (Integers), die 32 Bit lang sind. Daher zerlegen wir den String in Blöcke der Länge 32. Schritt: Jeder dieser Blöcke kann nun einfach in einen Integer umgewandelt werden. Diese speichern wir. Zusätzlich speichern wir für die Decodierung den Huffman-Baum ab.

Zusammenfassung--Dekomprimieren Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Zusammenfassung--Dekomprimieren Schritt: Lade den Huffman-Baum. Schritt: Lies die Integers und interpretiere sie wiederum als einen großen binären String. Starte bei der Wurzel im Huffman-Baum. Ist das erste Zeichen im Binärstring eine "0", steige in den linken Teilbaum ab, sonst in den rechten. Wiederhole, bis in einem Blatt angekommen. Das gefundene Symbol wird ausgegeben. Wiederhole dieses Prozedere, bis der ganze Binärstring abgearbeitet ist.

Vielen Dank! Haibo Zhou Juli 2004 Huffmans Kompressionsverfahren Proseminar bei PD. Dr. Bernd Klauer SS 2004 Vielen Dank! Haibo Zhou Juli 2004