Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Huffmans Kompressionsverfahren

Ähnliche Präsentationen


Präsentation zum Thema: "Huffmans Kompressionsverfahren"—  Präsentation transkript:

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

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

3 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

4 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?

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

6 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

7 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.

8 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.

9 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

10 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!

11 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.

12 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.

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


Herunterladen ppt "Huffmans Kompressionsverfahren"

Ähnliche Präsentationen


Google-Anzeigen