
Digitale AV-Technik
Prof. Uwe Hahne
Sommersemester 2026
Digitale AV-Technik - Aufgabenblatt 04¶
Kodieren und Dekodieren mit Huffman-Bäumen
Aufgabe 1: Kodieren mit einem gegebenen Huffman-Baum¶
Gegeben sei der folgende Huffman-Baum:
._
/ \
A .___
/ \
E _.
/ \
. C
/ \
B D
-
Die Buchstaben sind die Blätter des Baums, und die Häufigkeit wurde bereits in diesem Baum berücksichtigt. Nutze die linke Seite des Baums für die
0und die rechte Seite für die1. -
Erstelle eine Kodierungstabelle, die jedem Buchstaben den entsprechenden Binärcode zuordnet.
Symbol Binärer Code A B C D E -
Kodieren: Kodiere mit Hilfe der Kodierungstabelle den Text
BEADund notieren Sie die Binärcodes.
-
Dekodieren: Dekodieren Sie, wenn möglich, die folgenden Binärcodes mit dem gegebenen Baum. Ist es für alle Binärcodes möglich?
-
011 101000

Aufgabe 2: Erstellen eines kanonischen Huffman-Baums¶
Die Idee der kanonischen Huffman-Codierung besteht darin, die Codes so anzuordnen, dass sie bestimmten Regeln folgen, die eine kompakte Schreibweise und eine Rekonstruktion des Baums aus den Bitlängen ermöglichen.
-
Vorbereitung Wir behalten die Länge der Codes bei, aber ordnen die Codes aus Aufgabe 1 so an, dass sie aufsteigend sortiert sind, wobei die kürzeren Codes zuerst kommen, und bei gleicher Länge die Codes in alphabetischer Reihenfolge der Symbole sortiert sind:
Symbol Binärer Code Code-Länge A 0 1 2 3 4 4 -
Umkodieren: Jeder der bestehenden Codes wird durch einen neuen Code derselben Länge ersetzt, wobei der folgende Algorithmus verwendet wird:
- Das erste Symbol erhält ein Codewort, das die gleiche Länge wie das ursprüngliche Codewort hat, aber nur aus Nullen besteht.
- Jedes nachfolgende Symbol erhält die nächste Binärzahl in der Reihenfolge, wobei sichergestellt wird, dass die folgenden Codes immer einen höheren Wert haben.
- Wenn ein längeres Codewort erreicht wird, fügt man nach dem Inkrementieren Nullen an, bis die Ziellänge erreicht ist.
Symbol Binärer Code Code-Länge A 0 1 2 3 4 4 -
Umsortieren: Die einzigen Teile, die noch übertragen werden müssen, sind die Bitlängen (Anzahl der Bits) für jedes Symbol. Fülle die Tabelle wieder alphabetisch sortiert aus:
Symbol Binärer Code Code-Länge A 0 1 B C D E -
Kompakte Ausgabe: Prüfe ob anhand der folgenden kompakten Darstellung die ursprüngliche Codierung rekonstruiert werden kann:
(1, 4, 3, 4, 2)

-
Überprüfung: Wenn das richtige Codebuch ermittelt wurde, sollte der folgende Code die gleiche Nachricht wie zuvor kodieren:
11101001111-->BEAD
Aufgabe 3¶
Gegeben ist die folgende Codierung einer neuen kanonischen Huffman Codetabelle.
(0,2,2), ('A','C','D','E')
Wie lautet die zugehörige Codetabelle?

| Symbol | Code |
|---|---|
| A | |
| C | |
| D | |
| E |
Lösungen¶
Prüfe die Lösungen und korrigiere sie wenn nötig.
Lösung Aufgabe 1¶
- Kodierungstabelle:
| Symbol | Binärer Code |
|---|---|
| A | 0 |
| B | 1100 |
| C | 111 |
| D | 1101 |
| E | 10 |
-
Kodieren des Textes "BEAD":
-
B = 1100,E = 10,A = 0,D = 1101⟶ Code:11001001101 -
Dekodieren:
011⟶A?--> unvollständig, da11kein gültiger Code ist.1010⟶EE00⟶AA
Lösung Aufgabe 2¶
-
Vorbereitung
Symbol Binärer Code Code-Länge A 0 1 E 10 2 C 111 3 B 1100 4 D 1101 4 -
Umkodieren
Symbol Binärer Code Code-Länge A 0 1 E 10 2 C 110 3 B 1110 4 D 1111 4 -
Umsortieren
Symbol Binärer Code Code-Länge A 0 1 B 1110 4 C 110 3 D 1111 4 E 10 2 -
Kompakte Ausgabe:
(1, 4, 3, 4, 2) A: Länge 1, Code 0 B: Länge 4, Code 1110 C: Länge 3, Code 110 D: Länge 4, Code 1111 E: Länge 2, Code 10 -
Überprüfung: Ja, die Nachricht
BEADwird mit der neuen Codetabelle wie folgt kodiert:11101001111-->BEAD
Lösung Aufgabe 3¶
Um die Codetabelle zu erstellen, analysieren wir die gegebenen Informationen:
Die kanonische Huffman-Codetabelle ist in zwei Teile unterteilt:
-
Code-Längen:
(0, 2, 2)– das bedeutet: -
Es gibt 0 Symbole mit einer Code-Länge von 1.
- Es gibt 2 Symbole mit einer Code-Länge von 2.
-
Es gibt 2 Symbole mit einer Code-Länge von 3.
-
Symbole:
('A', 'C', 'D', 'E')– die Symbole, die codiert werden sollen, sind in der Reihenfolge angegeben.
Schritte zur Erstellung der Codetabelle¶
- Verteilung der Code-Längen auf die Symbole:
- Da wir
0Symbole mit einer Länge von1haben, gibt es keine Codes der Länge1. - Die nächsten 2 Symbole erhalten Codes mit der Länge
2. -
Die verbleibenden 2 Symbole erhalten Codes mit der Länge
3. -
Kanonische Codes zuweisen:
- Da dies ein kanonischer Huffman-Code ist, beginnen wir mit dem kürzesten Code und gehen der Reihe nach weiter, wobei wir die Binärwerte inkrementieren.
-
Der erste Code der Länge
2beginnt bei00, und wir erhöhen den Wert um1für das nächste Symbol. -
Kanonische Code-Zuweisung für die Symbole:
-
Symbole mit einer Länge von 2:
Aerhält00Cerhält01
-
Symbole mit einer Länge von 3:
Derhält100Eerhält101
Ergebnis: Codetabelle¶
| Symbol | Code |
|---|---|
| A | 00 |
| C | 01 |
| D | 100 |
| E | 101 |