VLC kódy

Na ilustráciu si zoberme kód, ktorého zdrojová abeceda pozostáva z ôsmich znakov (, , , , , , , ) . Priraďme jednotlivým znakom pravdepodobnosť ich výskytu: , , , , , . Samozrejme, je tu splnená podmienka .

Tabuľka 2.1:Kód A: Štandardný binárny kód
Zdrojový symbol Početnosť Kódové slovo
0.40 000
0.15 001
0.15 010
0.10 011
0.10 100
0.05 101
0.04 110
0.01 111
Tabuľka 2.2:Kód B: Štandardný binárny kód
Zdrojový symbol Početnosť Kódové slovo
0.40 0
0.15 1
0.15 00
0.10 01
0.10 10
0.05 11
0.04 000
0.01 001
Tabuľka 2.3:Kód C: Nedodržuje Morseov princíp
Zdrojový symbol Početnosť Kódové slovo
0.40 010
0.15 011
0.15 00
0.10 100
0.10 101
0.05 110
0.04 1110
0.01 1111
Tabuľka 2.4:Kód D: Kód, ktorý nie je prefixový
Zdrojový symbol Početnosť Kódové slovo
0.40 0
0.15 011
0.15 1010
0.10 1011
0.10 10000
0.05 10001
0.04 10010
0.01 10011

Tabuľky 2.12.4 znázorňujú jednotlivé kódy. V kóde, ktorý sa nachádza v tabuľke 2.1, je každému zdrojovému symbolu priradené kódové slovo s rovnakou dĺžkou. Takémuto kódu hovoríme kód s pevnou dĺžkou slova (fixed-lenght code), alebo tiež blokový kód (block code). Kód v tabuľke 2.2 sa nazýva kód s premenlivou dĺžkou (variable-length code, VL kód), lebo priradené kódové slová majú rôznu dĺžku. Kódy v tabuľkách 2.3 a 2.4 sú tiež VL-kódy (blokový kód je špeciálnym prípadom VL-kódu, nie naopak).

Označme dĺžku binárneho kódového slova priradenému znaku , potom očakávaný počet kódových symbolov na jeden zdrojový znak je

Kód A (tabuľka 2.1) je štandardná binárna reprezentácia ôsmich rôznych znakov. Tento kód, tzv. brute force, sa tiež nazýva nekomprimovaná binárna reprezentácia a používa sa ako kritérium (meradlo), podľa ktorého sa meria kompresný pomer. Ako sa dá očakávať, .

Keď si zoberieme kód B (tabuľka 2.2), ktorý spĺňa ideu Morseovho kódu, dostaneme , čo znamená kompresný pomer 2:1 oproti brute-force kódu. Podobne vieme vypočítať aj ,. Kód B má najlepší kompresný pomer, teda je aj najvhodnejším kandidátom, ale pre naše potreby je nepoužiteľný. Prečo, to sa dozvieme v ďalšej sekcii.

Ešte si zadefinujeme pojem entropia. Majme zdrojovú abecedu , ktorá obsahuje symbolov: . Pre každý symbol máme definovanú jeho početnosť výskytu: . Informačná hodnota symbolu je definovaná ako bitu. Entropia je potom priemerná informačná hodnota na jeden symbol a je definovaná nasledovne:

Táto hodnota, na rozdiel od hodnoty , je závislá iba od samotnej zdrojovej abecedy a informácii, ktorá sa má komprimovať. Entropia je akási spodná hranica pre VLC kódy, ktorú sa snažia dosiahnuť.