Vorlesung: Codierung und Kryptographie
  Huffman-Codierung interaktiv
 

Vorbemerkungen | Codierung | Eigenschaften | Experimentiersystem | Anwendungsbeispiel | Vortrag | Mathematica-Programm Literatur

   
   
 

Der Huffman-Algorithmus - Ein Beispiel

Am Beispiel der Codierung des Textes "MISSISSIPPI" soll der Huffman-Algorithmus erläutert werden.
Zunächst zählt man, wie häufig jedes Zeichen im Text vorkommt und schreibt dies in eine Häufigkeitstabelle:

Zeichen M P I S
Häufigkeit 1 2 4 4

Nun wird jedes Zeichen zusammen mit seiner Häufigkeit als ein trivialer Baum, bestehend nur aus der Wurzel, aufgefasst und in einer Liste zusammengefasst.

Nun werden die beiden Bäume mit den kleinsten Häufigkeiten aus der Liste zu einem neuen Baum zusammengefasst, bei dem die Wurzel mit der Summe der Häufigkeiten markiert wird.

Dies wird nun solange wiederholt, bis alle Zeichen in einem einzigen Baum sind.

 

Den nun entstandenen Baum nennt man den Huffman-Baum. Jede Verzweigung nach links wird mit einer "0", jede Verzweigung nach rechts mit einer "1" markiert. Anschließend kann man aus dem Codebaum den Code jedes Zeichens ablesen und eine Codetabelle mit dem Huffman-Code erstellen. Man sieht, dass tatsächlich das häufig vorkommende "S" und "I" einen kürzeren Code (1 bzw. 2 Binärzeichen) erhält als das selten vorkommende "M" (4 Binärzeichen).

 

Codetabelle:

Zeichen Code
S 0
I 11
P 101
M 100

Mit Hilfe dieser Codetabelle kann nun der Text codiert werden. Statt 88 Bit bei einer Codierung mit ASCII benötigt man nun nur noch 21 Bit. Mit dem Huffman-Verfahren läßt sich ein Text typischerweise auf ca. 2/3 seiener ursprünglichen Größe reduzieren.

M I S S I S S I P P I
100 11 0 0 11 0 0 11 101 101 11

 

--> Eigenschaften der Huffman-Codierung
--> Interaktive Demonstration der Huffman-Codierung