Cvičení 6
Témata:
- Test jednoznačné dekódovatelnosti
- Kraftova nerovnost
- Průměrná délka a redundance kódu
- Rozšíření zdrojové abecedy, optimální kód
- RLE
Test jednoznačné dekódovatelnosti
Ukázali jsme si na kódech
- 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.
Prošli jsme i konstrukci slova, které není jednoznačně dekódovatelné (pokud takové existuje).
Kraftova nerovnost
Ukázali jsme si použítí Kraftovy nerovnosti - tj odovědi na otázky typu:
- existuje jednoznačně dekódovatelný 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?
- existuje jednoznačně dekódovatelný kód z abecedy se 4 symboly do abecedy se 2 symboly, který má kódy symbolů s délkami 1, 2, 2 a 2?
Průměrná délka a redundance kódu
Následoval příklad na průměrnou délku a redundnaci kódu
- vstupní abeceda {A, B, C, D}, kód C2 při pravděpodobnostech P(A) = 2/5, P(B) = P(C) = P(D) = 1/5 (získany například ze vstupu AABCDDBACA).
Rozšíření zdrojové abecedy
Dále jsme si na tomtéž příkladě řeklii, co nám může přinést rozšíření zdrojové abecedy - optimáln(ějš)í kód.
RLE
Nakonec jsme si vyzkoušeli run length encoding (RLE) na krátkém příkladě
- aaabbbrakkkkkkaaaaadaaaaabbbbbbrrrrrrra, symbol příznaku -, k = 1 nebo k = 4.
Naprogramujte si:
- Průměrná délka kódu
- Redundance kódu
- RLE (kódování i dekódování)