100 likes | 264 Views
Algoritmy komprese dat. Teorie informace. Teorie informace. Informace obsažená ve zprávě z - nejmenší počet otázek typu ANO/NE, kterými lze odhalit obsah zprávy. Hartleyho vzorec (1928) Je-li neznámá x prvkem N prvkové množiny, pak informace, kterou x nese, má hodnotu log 2 N bitů.
E N D
Algoritmy komprese dat Teorie informace SWI072 Algoritmy komprese dat
Teorie informace • Informace obsažená ve zprávě z - nejmenší počet otázek typu ANO/NE, kterými lze odhalit obsah zprávy. • Hartleyho vzorec (1928) Je-li neznámá x prvkem N prvkové množiny, pak informace, kterou x nese, má hodnotu log2N bitů. • |H|=N, (x1 ,…, xk) Î Hk, buď Sk nejmenší počet otázek, nutný k určení všech xi . log2Nk £ Sk < log2Nk +1 log2N£ Sk / k £ log2N + 1/kSk / k - počet otázek, potřebný k určení jednoho prvku v průměrném případě. SWI072 Algoritmy komprese dat
Shannonův vzorec • Buď X diskrétní náhodná veličina s oborem hodnot H a pravděpodobnostní funkcí p(x)= P(X=x) pro xH. • Claude Shanon (1948): Entropie H(X) • Věta (Fadějev): Následující axiomy určují entropii jednoznačně až na mutiplikativní konstantu: • H2(p,1-p) je spojitá v oboru 0 p1 a kladná alespoň v jednom bodě • Hn je symetrická funkce svých proměnných (n = 2,3,...) • Hn+1(p1,...,pn-1,q1,q2) = Hn(p1,...,pn)+ pn Hn(q1/pn, q2/pn), kde pn =q1+q2 >0, pi 0, p1+...+pn = 1. • analogie ze statistické mechaniky (Boltzmann) • axiomatický přístup • souvislost s kódováním SWI072 Algoritmy komprese dat
Definice • Kód C pro diskrétní náhodnou veličinu X s oborem hodnot H je zobrazení C: H {0,1}* pravděpodobnostní funkcí p(x)= P(X=x) pro xH. Definujme C*: H* {0,1}* takto: C*(x1...xk) = C(x1)...(xk). Kód C je jednoznačně dekódovatelný, pokud u,v H * , C*(u)=C*(v) u=v. • Pro xH bude l(x) značit délku kódového slova C(x). • Průměrná délka L(C) kódu C pro diskrétní náhodnou veličinu X s pravděpodobnostní funkcí p(x) L(C)=xHp(x)l(x) SWI072 Algoritmy komprese dat
Kraft-McMillanova nerovnost • Věta: Délky l1,l2, … kódových slov jednoznačně dekódovatelného kódu C splňujíi 2-li 1.Naopak, pokud přirozená čísla l1,l2, … splňují nerovnost, pak existuje prefixový kód s kódovými slovy o těchto délkách. • Ověřte, zda je následující kód jednoznačně dekódovatelný, případně najděte prefixový kód se slovy stejné délky • Kolik znaků musí mít abeceda k zakódování všech 26 písmen (bez háčků), když kódová slova mají mít délku nejvýše 2 a pro samohlásky dokonce 1? SWI072 Algoritmy komprese dat
Horní a dolní odhady • Buď C jednoznačně dekódovatelný kód pro náhodnou veličinu X. Pak H(X) L(C). • Pro libovolný optimální prefixový kód C pro náhodnou veličinu X platí H(X) L(C) < H(X) + 1. • Pro průměrnou délku kódového slova L Huffmanova kódu platí H £ L < H + 1 • Je-li pmax maximální pravděpodobnost výskytu znaku, pakl £ H + pmax je-li pmax < 0.5l £ H + pmax + 0.086je-li pmax ³ 0.5 SWI072 Algoritmy komprese dat
Příklad SWI072 Algoritmy komprese dat
Huffmannův kód nad rozšířenou abecedou • Pro průměrnou délku kódového slova L Huffmanova kódu nad abecedou rozšířenou na bloky n znaků platí H £ L < H + 1/n SWI072 Algoritmy komprese dat
Horní a dolní odhady - aritmetické kódování • Pro průměrnou délku kódového slova L pro aritmetické kódování platí H £ L £ H + 2/m kde m je délka vstupního řetězce. SWI072 Algoritmy komprese dat