- Das Prinzip
Die Huffman Kodierung funktioniert nach dem Prinzip, eines Kodebaumes. Das Verfahren des Algorithmus geht dabei auf die Häufigkeit mit der das jeweilig zu kodierende Zeichen auftritt ein und spiegelt dessen Anzahl in der Kodelänge des Erzeugten Binärkodes wieder. Somit werden häufig vorkommende Zeichen mit wenig Binärstellen beschrieben und nicht so häufig vorkommen Zeichen mit mehreren Binärstellen.
- Vorteile und Nachteile
Diese Art von Zurodnungen unterschiedlicher Kodelängen haben aber auch einen Nachteil. Die Eindeutigkeit bei der Dekodierung ist nicht mehr gegeben (ASCII Code hat z.B. eine eindeutige Kodierung von 7 Bit Länge).
Der Vorteil den man aber aus einem Verfahren, wie dem nach Huffman ziehen kann, macht diesen sehr geringen Nachteil wieder wett.
Die Kodierung nach Huffman reduziert die zum Beispiel zur Datenübertragung oder Datenspeicherung entstehende Menge an Daten auf ein Minimum. Der zeitliche Aufwand der zur Erzeugung des Code notwendig ist, kann in Kauf genommen werden.
Nach einem speziellen Verfahren liefert der Algorithmus ein Baumdiagramm, dass mit der Datei abgespeichert und diese somit später 1 zu 1 als Orginal rekonstruierbar macht.
- Anwendungsbeispiel / Entstehung der Kodierung
In diesem Anwendungsbeispiel soll kurz erklärt werden wie man selbst einen Kodebaum mit Hilfe des Huffman Algorithmus erzeugen kann.
1. Schritt:
Notiere für die zu kodierende Zeichenkette und zähle die Anzahl der gleichen Zeichen.
Hierzu ein Beispiel: Fachhochschule Zweibrücken
Häufigkeitenverteilung:
F = 1 a = 1 c = 4 h = 4 o = 1 s = 1 u = 1 l = 1 e = 3 Z = 1 w = 1 i = 1 b = 1 r = 1 ü = 1 k = 1 n = 1
2. Schritt:
Suchen Sie die beiden Einträge die die niedrigste Häufigkeit aufweisen und verknüpfen Sie diese wenn sie noch nicht verknüpft sind.
3. Schritt:
Fassen Sie alle Einträge mit gleicher Häufigkeit zu Knoten zusammen. Ist dies geschehen und sind immer noch Knoten übrig fassen Sie
den Knoten mit der nächst höheren Häufigkeit wie im Beispiel zusammen.
4. Schritt:
Danach addieren Sie die beiden Häufigkeiten und schreiben den Wert an der Stelle des Knotens nieder.5. Schritt:
Wiederholen Sie die Schritte 2 bis 4 solange bis Sie am Wurzelknoten angekommen sind und Sie erhalten einen fertigen Baum!