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.1 až 2.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ť.
|