Skip to content

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 alt text

Die erarbeiteten Codebooks: Codebooks

Der Binärbaum nach dem Shannon-Fano Algorithmus ShannonFano tree

Der Binärbaum nach dem Huffman Algorithmus Der Binärbaum nach dem Huffman Algorithmus

Der Huffman Baum etwas schöner aufgemalt 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.