Vorlesung 05 Binäre Codierung
Termin¶
Montag, 14.04.2025 in Raum i0.14
Ziele¶
- Zwei Algorithmen zur Erzeugung von Binärcodes kennen lernen:
- Fano-Shannon und Huffman
- Konzept und Implementierung in Python
Drehbuch¶
Was | Dauer | Material |
---|---|---|
Fano-Shannon Algorithmus mit Implementierung | 30 min | DAVT-04-Codierung.pdf bis Folie 16 |
Huffman Code mit Implementierung | 25 min | DAVT-04-Codierung.pdf Folien 17-23 |
Encoding und Decoding | 10 min | DAVT-04-Codierung.pdf Folie 24-28 |
Codierung des Huffman Baums | 10 min | DAVT-04-Codierung.pdf ab Folie 29 |
Ergebnisse¶
Tafelbilder¶
Der zu codierende Text (TOBEORNOTTOBE) und die Codierungsergebnisse
Die erarbeiteten Codebooks:
Der Binärbaum nach dem Shannon-Fano Algorithmus
Der Binärbaum nach dem Huffman Algorithmus
Der Huffman Baum etwas schöner aufgemalt
Erarbeiteter Quellcode¶
Shannon-Fano Coding: fano.py
Huffman Coding: huffman.py
Trivia¶
Der im Code verwendete Text enthält nicht alle Werke Shakespeares und daher auch nicht die Rede Hamlets. Aber das ist auch schon anderen aufgefallen und wird hier moniert. Eine Textdatei mit dem vollständigen Werk Shakespeares findet sich hier beim Project Gutenberg.
Hausaufgabe¶
Üben des Gelernten: DAVT-A04-Codierung.pdf
Was man verstanden haben sollte¶
- Ich bin in der Lage ein einfaches Textbeispiel nach dem Algorithmus von Shannon-Fano oder nach Huffman zu codieren.
- Ich habe den Code zu beiden Algorithmen verstanden und kann ihn nachvollziehen.
- Ich habe verstanden, dass eine kanonische Darstellung sinnvoll ist, um redundante Informationen zu vermeiden. Sender und Empfänger einigen sich auf eine Sortierung.