Cvičení 5
Témata:
- Průměrná délka kódu, redundance
- Kraft-MacMillanova nerovnost
- Shannonova věta, optimalita kódu
- Test jednoznačné dekódovatelnosti
- RLE
- MTF
Uvažovaná kódování
Vše jsme si ukazovali na následujících kódech:
- C0 : {A, B, C, D} → {0, 1}, kde C0(A) = 0, C0(B) = 0, C0(C) = 10, C0(D) = 01;
- C1 : {A, B, C, D} → {0, 1}, kde C1(A) = 0, C1(B) = 01, C1(C) = 110, C1(D) = 111;
- C2 : {A, B, C, D} → {0, 1}, kde C2(A) = 0, C2(B) = 10, C2(C) = 110, C2(D) = 111;
- C3 : {A, B, C, D} → {0, 1}, kde C3(A) = 0, C3(B) = 01, C3(C) = 011, C3(D) = 0111.
Průměrná délka a redundance kódu
Spočítali jsme průměrné délky a redundance kódu C0 až C2.
Kraft-Macmillanovy nerovnosti
Ukázali jsme si použítí Kraftovy nerovnosti - tj odpovědi na otázky typu:
- existuje jednoznačně dekódovatelný/prefixový kód z abecedy se 4 symboly do abecedy se 2 symboly, který má kódy symbolů s délkami 1, 2, 3 a 3? Souvisí s kódem C2, jak?
- existuje jednoznačně dekódovatelný/prefixový kód z abecedy se 4 symboly do abecedy se 2 symboly, který má kódy symbolů s délkami 1, 1, 2 a 2? Souvisí s kódem C0, jak?
Shanonova věta, optimalita kódu
Pospojovali jsme si dosavadní poznatky dohormady a ukázali si na nich praktický význam Shannonovy věty. Zmínili jsme si i blokové kódy a další drobnosti okolo.
Jednoznačná dekódovatelnost
U kódů výše jsme algoritmicky zkontrolovali jejich jednoznačnou dekódovatelnost.
RLE a MTF
Nakonec jsme si vyzkoušeli algoritmy Run Length Encoding (RLE) a Move To Front (MTF) na krátkém příkladě:
AAABBBRAKKKKKKAAAAADAAAAABBBBBBRRRRRRRA
- (pro RLE symbol příznaku -, k = 1 nebo k = 4).
Naprogramujte si:
- RLE (kódování i dekoódování)
- MTF (kódování i dekoódování)
- Test jednoznačné dekódovatelnosti