Shannon-Fano-Kodierungs- Rechner
Dieser Online-Rechner erstellt eine Shannon-Fano-Kodierung basierend eines Satzes von Symbolen und deren Wahrscheinlichkeiten.
Dieser Online-Rechner erstellt eine Shannon-Fano-Kodierung basierend eines Satzes von Symbolen und deren Wahrscheinlichkeiten.
Shannon-Fano Kodierung
Im Bereich der Datenkompressionen ist die Shannon-Fano Kodierung, benannt nach Claude Shannon und Robert Fano, ein Verfahren, indem ein Präfixcode anhand eines Satzes von Symbolen und deren Wahrscheinlichkeiten (geschätzt oder gemessen) erstellt wird. Es im Sinne suboptimal, dass es nicht die kleinstmögliche erwartete Kodewortlänge wie Huffman Kodierung erzielen kann.
Bei der Shannon-Fano Kodierung werden die Symbole in der Reihenfolge vom wahrscheinlichsten zum am wenigsten wahrscheinlichen angeordnet, und dann in zwei Sätze geteilt, deren Gesamtwahrscheinlichkeiten möglichst gleich sind. Alle Symbole haben dann die ersten Ziffern von ihren Codes zugwiesen – Symbole im ersten Satz erhalten eine „0“ und Symbole im zweiten Satz erhalten eine „1“. Solange ein Satz mehr als sein Glied hat, wird dieses Verfahren für solche Sätze wiederholt, um die aufeinanderfolgenden Ziffern für deren Codes zu bestimmen. Sobald ein Satz nur noch ein Symbol hat, ist die Symbolkodierung vollständig und kein weiterer Präfix wird für andere Symbolcodes gebildet.
Dieser Algorithmus erstellt relativ effiziente Verschlüsselung mit variabler Länge. Wenn zwei kleinere Sätze, die durch eine Abtrennung erstellt werden, die gleiche Wahrscheinlichkeit haben, wird die Information, die zur Unterscheidung verwendet wird, am effizientesten genutzt. Leider erstellt Shannon-Fano nicht immer die optimalen Präfixcodes. Der Satz der Wahrscheinlichkeiten {0.35, 0.17, 0.17, 0.16, 0.15} ist ein Beispiel, wo ein nicht optimaler Code von Shannon-Fano Kodierung zugewiesen wird.
Aus diesem Grunde wird Shannon-Fano kaum genutzt; Huffman Kodierung ist rechnerisch fast genauso einfach und erstellt Präfixcodes, die immer die kleinstmögliche erwartete Kodewortlänge erreicht, unter der Bedingung, dass jedes Symbol von einem Code repräsentiert wird, der aus einer ganzen Zahl von Bits gebildet wird.1
Kommentare