|
|
|
; i = 1(1)n
Die so charakterisierte Quelle wird formal durch die Matrix (endliches
Schema)
![]()
beschrieben.
Gesucht ist ein optimaler Binärkode für die Zeichen der Quelle
![]()
mit den Eigenschaften
pi| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| ai | a1 | a2 | a3 | a4 | a5 | a6 | a7 |
| pi | 0.1 | 0.3 | 0.05 | 0.1 | 0.2 | 0.05 | 0.2 |
| wi | 110 | 10 | 11110 | 1110 | 00 | 11111 | 01 |
| Quellenzeichenfolge | a2a2a5a6 | |
||||||
| Binärzeichenfolge | 10 |
| 10 |
| 00 |
| 11111 |
|
| a2 | a2 | a5 | a6 | |||||
| Verfälschte Binärzeichenfolge | 10 |
| 1 10 |
| 01 |
| 1111 |
|
| a2 | a1 | a7 | ? | |||||
Im allgemeinen existieren zu den Zeichen einer Quelle
![]()
mehrere voneinander verschiedene optimale
Binärkodes, die aber alle die gleiche mittlere Kodewortlänge
besitzen und in diesem Sinne äquivalent
sind.
Wir betrachten zunächst eine anschauliche
textlich-graphische Variante des Huffman-Algorithmus zur
optimalen Binärkodierung gemäß (A1), die in jedem Falle genau
eine Lösung liefert.
Die Erzeugung der Kodewörter erfolgt hier durch schrittweisen Aufbau des
zugehörigen ,,Kodebaumes`` (binäres bewertetes
Quellenbüschel) aus binären ,,Gabeln`` von den
Blattknoten ausgehend in Richtung
Wurzelknoten (bottom-up) mittels
Algorithmus (A1) unter Benutzung des nachstehenden Arbeitsschemas
Bild 1,
Beispiel: Quelle
![]()
.
Bild 1: Huffman-Algorithmus, Arbeitsschema der
textlich-graphischen Variante
Algorithmus (A1): Huffman-Algorithmus, textlich-graphische Variante
Kommentare zu (A1):
Bild 3: Rekonstruktion des Kodebaumes und der Kodetabelle
aus b0 und b1
| Gegeben: | Quellenzeichen ak, n, Felder b0 und b1 |
| Gesucht: | Kodewort wk |
| Lösung: | (A4) |
| i | b0[i] | b1[i] | x | y |
| 3 |
|
|||
| 1 | 3 | 6 | 0 | |
| 2 | 3 | 4 | 00 | |
| 3 | 7 | 1 | ||
| 4 | 3 | 5 | 000 | |
| 5 | 2 | 7 | ||
| 6 | 2 | 3 | 2 | w3 =1000 |
| Gegeben: |
w |
| Gesucht: | Ist
w |
| Lösung: | (A5) |
| i | b0[i] | b1[i] | x | y |
| 2 | 011 | |||
| 6 | 2 | 3 | 2 | 11 |
| 5 | 2 | 7 | 7 | 1 |
| 4 | 3 | 5 | ||
| 3 | 7 | 1 | 1 |
|
| 2 | 3 | 4 | ||
| 1 | 3 | 6 | k = 1 |
Aufgabe 1Vergleichen Sie die vorliegende rechnerorientierte Variante des Huffman-Algorithmus mit anderen Lösungen, z.B. in [7, 8, 9, 10, 11]. |
|
|
Foto: R. Dietzel
| [ 1] |
D.A. Huffman. A Method for the Construction of
Minimum-Redundancy Codes. Proceedings of the IRE 40(1952)9, 1098-1101 |
| [ 2] |
J. Storer. Data Compression: Methods and
Theory. Rockville 1988 |
| [ 3] |
T. Bell, J. Cleary, I. Witten. Text
Compression. Englewood Cliffs 1990 |
| [ 4] |
M. Nelson, J.-L. Gailly. The Data Compression
Book. New York 1995 |
| [ 5] |
K. Sayood. Introduction to Data Compression. San Francisco 1996 |
| [ 6] |
D. Salomon. Data Compression: The Complete
Reference. New York 1997 |
| [ 7] |
D.E. Knuth. The Art of Computer
Programming. Vol.I: Fundamental Algorithms. Reading, 1997, 1998 |
| [ 8] |
T.H. Cormen, C.E. Leiserson, R.L. Rivest. Introduction to Algorithms. Cambridge, London, New York, Toronto 1994 |
| [ 9] |
R. Sedgewick, P. Flajolet. An Introduction to
the Analysis of Algorithms. Reading 1996 |
| [10] |
D.S. Hirschberg, D.A. Lelewer. Efficient
Decoding of Prefix Codes. Communications of the ACM 33(1990)4, 449-459 |
| [11] |
J.S. Vitter. Dynamic Huffman Coding. ACM Trans. Math. Softw. 15(1989)2, 158-167 |