Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:codierung:huffmancodierung:start [28.09.2022 16:04] – [Erzeugung des Huffman Baums und des Huffman Codes] sbel | faecher:informatik:oberstufe:codierung:huffmancodierung:start [09.01.2025 14:37] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
====== Kompression mit Huffman-Codierung ====== | ====== Kompression mit Huffman-Codierung ====== | ||
Zeile 12: | Zeile 11: | ||
* '' | * '' | ||
- | Der **Huffman-Code** bildet solch einen präfixfreien Code, der gleichzeitig den häufig vorkommenden Zeichen eine kürzere Codelänge generiert. | + | Der **Huffman-Code** bildet solch einen präfixfreien Code, der gleichzeitig den häufig vorkommenden Zeichen eine kürzere Codelänge generiert. Der Huffman-Code ist eine sogenannte **Entropiekodierung**. |
- | Mithilfe der Seite https:// | + | Mithilfe der Seite https://cmps-people.ok.ubc.ca/ |
---- | ---- | ||
Zeile 24: | Zeile 23: | ||
+ | <callout type=" | ||
Der Code wird mithilfe eines Binärbaums nach dem folgenden Algorithmus aufgebaut: | Der Code wird mithilfe eines Binärbaums nach dem folgenden Algorithmus aufgebaut: | ||
- Bestimme die Häufigkeit H< | - Bestimme die Häufigkeit H< | ||
Zeile 30: | Zeile 30: | ||
- Wiederhole 3. so lange, bis nur noch ein einzelner Knoten übrig bleibt, an dem sämtliche andere Knoten angehängt wurden. | - Wiederhole 3. so lange, bis nur noch ein einzelner Knoten übrig bleibt, an dem sämtliche andere Knoten angehängt wurden. | ||
- Markiere alle linken Kanten mit 0, alle rechten Kanten mit 1. Der Code für ein Zeichen x ergibt sich dann aus dem Weg vom Wurzelknoten bis zu diesem Zeichen. | - Markiere alle linken Kanten mit 0, alle rechten Kanten mit 1. Der Code für ein Zeichen x ergibt sich dann aus dem Weg vom Wurzelknoten bis zu diesem Zeichen. | ||
+ | </ | ||
+ | |||
+ | ==== Mobile-Modell für die Huffman-Codierung ==== | ||
+ | <callout type=" | ||
+ | {{ : | ||
+ | - Bestimme die Häufigkeit H< | ||
+ | - Hänge die Zeichen als " | ||
+ | - Markiere alle linken Kanten mit 0, alle rechten Kanten mit 1. Der Code für ein Zeichen x ergibt sich dann aus dem Weg vom Wurzelknoten bis zu diesem Zeichen. | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Weitere Übungen ===== | ||
+ | |||
---- | ---- | ||
Zeile 54: | Zeile 67: | ||
=== (A3) === | === (A3) === | ||
- | Für den Text " | + | Für den Text " |
---- | ---- | ||
Zeile 62: | Zeile 75: | ||
Decodiere den Code '' | Decodiere den Code '' | ||
- | {{ : | + | {{ .: |
++++ Lösung | | ++++ Lösung | | ||
Zeile 87: | Zeile 100: | ||
* Begründe, warum der Baum kein gültiger Huffman-Baum ist. | * Begründe, warum der Baum kein gültiger Huffman-Baum ist. | ||
* Erläutere den Nachteil, der beim Codieren des Wortes " | * Erläutere den Nachteil, der beim Codieren des Wortes " | ||
- | * Geben Sie einen korrekten Huffman-Baum für die angegebenen Buchstabenhäufigkeiten an. | + | * Gib einen korrekten Huffman-Baum für die angegebenen Buchstabenhäufigkeiten an. |
++++ Lösung | ++++ Lösung | ||
Zeile 96: | Zeile 109: | ||
{{ : | {{ : | ||
+ | ++++ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A7) Bildkompression === | ||
+ | |||
+ | Mit Hilfe einer " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Untersucht man das Bild jetzt zeilenweise und betrachtet die folgenden 4 möglichen " | ||
+ | |||
+ | ^Pixelpaar ^ Weiß-Weiß ^ Weiß-Schwarz ^Schwarz-Weiß ^Schwarz-Schwarz ^ | ||
+ | ^Wie oft? ^ | | | | ||
+ | ^Code ^ | | ||
+ | |||
+ | |||
+ | * Wie viele Bits benötigt man, wenn man die Bilddatei so codiert? | ||
+ | * Warum ist es nicht sinnvoll, das folgende Bild auf diese Weise zu komprimieren? | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ++++ Hinweis 1 - Zeichenzählung | | ||
+ | {{ : | ||
+ | ++++ | ||
==== Material ==== | ==== Material ==== | ||
{{simplefilelist> | {{simplefilelist> |