Präfixcode
Der Präfixcode (auch präfixfreier Code) ist ein Begriff aus der Kodierungstheorie. Er bezeichnet eine Abbildung von Objekten in Codewörter, welche aus einem Satz von Ziffern zusammengesetzt werden. Dabei darf kein Codewort eines Objektes den Beginn eines Codewortes eines anderen darstellen.
Eigenschaften
- Bei einem Präfixcode ist eine Nachricht eindeutig in ihre Codeworte zerlegbar.
- Codewörter können unterschiedlich lang sein
Beispiele
Die Objekte A, B, C und D werden mit binären Ziffern dargestellt.
Eine unzulässige Codierung wäre die folgende.
Die Codierung von A kollidiert jeweils mit der von B und von C. Da hierbei beispielsweise CB zu 101100 und ADB zu 1011100 kodiert wird, wird klar, dass ohne die Präfixeigenschaft die Dekodierung eines Codewortes erst einige Ziffern später (oder möglicherweise gar nicht) möglich ist.
Telefonnummern
Jeder Anschluss muss durch seine Telefonnummer eindeutig identifizierbar sein. Dabei darf es beim Wählprozess nicht dazu kommen, dass es zwischendrin bei einem anderen Teilnehmer klingelt. So beginnt in Deutschland keine andere Telefonnummer außer dem Notruf mit 112. Ebenso beginnt in keinem Ortsnetz eine Nummer mit 0, damit keine Kollision mit Ortsvorwahlen (oder Sondernummern wie 0800) entsteht. Ähnliche Überlegungen gelten auch für die internationale Vorwahl.
Huffman-Code
Innerhalb des Huffman-Codes werden Eingabesymbole (beispielsweise die Buchstaben eines Textes) mit unterschiedlich langen binären Ziffernfolgen codiert, deren Länge von der Häufigkeit des zugehörigen Eingabesymbols abhängt. So wird der Speicherverbrauch entsprechend diesen Häufigkeiten optimiert.
Der Huffman-Code ist ein Präfix-Code.
Morse-Code
Der Morse-Code ist von Haus aus kein Präfixcode, da beispielsweise A (kurz-lang) ein Präfix von L (kurz-lang-kurz-kurz) ist. Erst durch das Einfügen von Pausen (im Prinzip ein drittes Symbol neben kurz und lang) zwischen Buchstaben wird die Nachricht eindeutig dekodierbar, z.B. kurz-lang-Pause-kurz-kurz = AI, kurz-lang-kurz-Pause-kurz = RE.