faecher:informatik:oberstufe:codierung:huffmancodierung:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
faecher:informatik:oberstufe:codierung:huffmancodierung:start [28.09.2022 18:04] – [Erzeugung des Huffman Baums und des Huffman Codes] sbelfaecher:informatik:oberstufe:codierung:huffmancodierung:start [30.09.2022 13:08] – [Erzeugung des Huffman Baums und des Huffman Codes] sbel
Zeile 12: Zeile 12:
   * ''. - - . . . - . - .'' = EGFN   * ''. - - . . . - . - .'' = EGFN
  
-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://people.ok.ubc.ca/ylucet/DS/Huffman.html lässt sich der Algorithmus schrittweise simulieren und visualisieren. Mithilfe der Seite https://people.ok.ubc.ca/ylucet/DS/Huffman.html lässt sich der Algorithmus schrittweise simulieren und visualisieren.
Zeile 23: Zeile 23:
 ===== Erzeugung des Huffman Baums und des Huffman Codes ===== ===== Erzeugung des Huffman Baums und des Huffman Codes =====
  
 +{{.:huff2.png?400 |}}
  
 +<WRAP center round important 90%>
 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<sub>x</sub> aller vorkommenden Zeichen x.   - Bestimme die Häufigkeit H<sub>x</sub> aller vorkommenden Zeichen x.
Zeile 30: Zeile 32:
   - 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.
 +</WRAP>
 +
  
 ---- ----
Zeile 62: Zeile 66:
 Decodiere den Code ''0100 1110 1000 1010 0010 0001 11'' mithilfe des folgenden Baumes: Decodiere den Code ''0100 1110 1000 1010 0010 0001 11'' mithilfe des folgenden Baumes:
  
-{{ :faecher:informatik:oberstufe:codierung:huffmancodierung:huffb01.png?400 |}}+{{ .:huffb01.png?400 |}}
  
 ++++ Lösung | ++++ Lösung |
Zeile 95: Zeile 99:
  
 {{ :faecher:informatik:oberstufe:codierung:huffmancodierung:huff2lsg.png |}} {{ :faecher:informatik:oberstufe:codierung:huffmancodierung:huff2lsg.png |}}
 +
 +++++