|
||||||||||||
Jednoznačná dekódovateľnosťHovoríme, že kód je jednoznačne dekódovateľný, ak nie je viacznačne dekódovateľný. Inak povedané, existuje iba jedna možnosť, ako daný reťazec pozostávajúci z kódových symbolov dekódovať. Ak má byť kód použiteľný, tak by mal byť jednoznačne dekódovateľný.
Keď sa pozrieme na kód v tabuľke 2.5, zistíme, že nie je
jednoznačne dekódovateľný. Pokiaľ máme dekódovať sekvenciu
Vráťme sa ku kódu B (tabuľka 2.2)
Predpokladajme, že sme kódovali sekvenciu
Kód A (tabuľka 2.1) je jednoznačne
dekódovateľný. Všetky kódové slová majú dĺžku tri, teda pri dekódovaní
vieme, že nové kódové slovo začína každé tri symboly. Jeho
hlavnou nevýhodou je veľké Kód C (tabuľka 2.3) je tiež jednoznačne dekódovateľný, pretože spĺňa podmienku prefixovosti, tj. žiadne kratšie kódové slovo nie je prefixom dlhšieho. Kódy spĺňajúce túto podmienku nazývame prefixové kódy. Každý prefixový kód sa dá zobraziť ako binárny strom, ktorého listy predstavujú zdorjové symboly. Binárny strom, ktorý zobrazuje kód C, je na obrázku 2.1. Kódové slovo priradené danému zdrojovému symbolu je potom cesta po ohodnotených hranách v strome, ktorá vedie od koreňa stromu k danému zdrojovému symbolu. Pri dekódovaní kódového slova algoritmus sleduje cestu od koreňa stromu k jeho listom. Po dosiahnutí listu je k nemu prislúchajúci zdrojový symbol dekódovaný. Napríklad majme reťazec .
.
.
Platí tvrdenie, že každý prefixový kód je jednoznačne dekódovateľný, ale
neplatí tvrdenie opačné. Existujú kódy, ktoré nie sú prefixové, ale sú
jednoznačne dekódovateľné. Ako príklad si môžeme zobrať kód D (tabuľka
2.4). Prefixovosť je porušená
kódovým slovom 0 (prislúcha Keď si zoberieme reťazec z predchádzajúceho príkladu a pokúsime sa ho dekódovať naším kódom D, dostaneme nasledujúce sekvencie .
.
Tu môžeme predpokladať, že niekde pri kompresii, dekompresii alebo transmisii nastala chyba.
|
||||||||||||
|
||||||||||||