I u nerovnoměrných kódů můžete dosáhnout zajištění výhody, kterou poskytují kódy rovnoměrné v jednoznančné dekódovatelnosti znak po znaku. Takovéto kódy nesou označení prefixové, což značí,
že
žádné kódové slovo v nich není předponou jiného kódového slova.
Na obrázku níže můžete vidět
ukázku jednoduchého nerovnoměrného prefixového kódu zdroje, který
produkuje pouze tři znaky. Dva z nich se vyskytují ve zprávách se
stejnou pravděpodobností, zbývající třetí s poloviční.

Obr. 14: Konkrétní příklad prefixového kódu.
Jak byste za pomoci tohoto kódu dekódovali
zprávu
00011001000100?
Když budete postupovat bit po bitu, konstatujete postupně, že:
- 0 mezi kódovými slovy není, proto k ní přidáte další znak.
Zjistíte, že 00 mezi kódovými slovy je a rovnou provedete dekódování
jako U.
- Načtete další znak, 0 mezi kódovými slovy není, proto
k ní přidáte další další znak. Zjistíte, že 01 mezi kódovými slovy je a
rovnou provedete dekódování jako I.
- Načtete další znak, 1 mezi kódovými slovy není, proto
k ní přidáte další znak. Zjistíte, že 10 mezi kódovými slovy rovněž
není, proto načtete další znak. Zjistíte, že 100 mezi kódovými slovy je a
rovnou provedete dekódování jako U.
- Načtete další znak, 1 mezi kódovými slovy není, proto
k ní přidáte další znak. Zjistíte, že 10 mezi kódovými slovy rovněž
není, proto načtete další znak. Zjistíte, že 100 mezi kódovými slovy je a
rovnou provedete dekódování jako U.
- Načtete další znak, 0 mezi kódovými slovy není, proto
k ní přidáte další další znak. Zjistíte, že 01 mezi kódovými slovy je a
rovnou provedete dekódování jako I.
- Načtete další znak, 0 mezi kódovými slovy není, proto
k ní přidáte další znak. Zjistíte, že 00 mezi kódovými slovy je a rovnou
provedete dekódování jako U.
- Dekódovaná zpráva tedy je: UINNIU
Podmínkou pro jednoznačnou dekódovatelnost znak po znaku je nutné, aby platila Kraftova nerovnost
pro i 1 do L (nebo-li pro délky všech kódových slov). Pro kód z obrázku výše
je splněna, protože 1/2² + 1/2² + 1/2³ = 5/8 ≤ 1.
Jakou podmínkou je platnost Kraftovy nerovnosti?
- Jedná se o podmínku nutnou.
- Že platnost Kraftovy nerovnosti není postačující podmínkou plyne z McMillanovy věty (uvedli jsme ji ve studijním článku Vlastnosti kódů). Kontrapříklad ke kódu z obrázku výše navíc sestrojíte velmi snadno,
když budete zdrojový znak I kódovat jako 10 a kódování zbývajících dvou
kódových znaků zachováte stejné. V tom případě se totiž výpočet
Kraftovy nerovnosti nikterak nezměni, neboť se nezměnil počet ani délky
kódových slov, což jsou dva parametry, na kterých je závislá. Kód však
přesto již nebude prefixový, protože kódové slovo pro zdrojový znak I
se stane předponou kódového slova pro zdrojový znak N.