140 likes | 316 Views
REDUKCE DAT. Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z: některé fráze nebo slova se opakují existuje závislost mezi po sobě následujícími znaky Existuje řada technik, jak redukovat množství ukládaných dat (bez ztráty informace).
E N D
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z: některé fráze nebo slova se opakují existuje závislost mezi po sobě následujícími znaky Existuje řada technik, jak redukovat množství ukládaných dat (bez ztráty informace)
Výhody a nevýhody redukce Výhody redukce: • snížení velikosti vnějších médií • zkrácení času přístupu k datům • zkrácení času přenosu dat Nevýhody redukce: • přídavná složitost odpovídajících algoritmů • manipulace s proměnnou délkou kódu • manipulace s jednotlivými bity
ZÁKLADNÍ POJMY REDUKCE DAT Metody redukce jsou z větší části založeny na kódování. KÓDOVÉ SLOVO Je symbol či posloupnost symbolů, kterými kódujeme zdrojový objekt (jednotku). KÓD Je množina všech kódových slov. Důležitá vlastnost kódu • jednoznačná dekódovatelnost Kódy mohou být: • pevné délky: snadná dekódovatelnost • proměnné délky : zde se posuzuje bezprostřední rozhodnutelnost
Kód je bezprostředně rozhodnutelný, jestliže poznáme konec kódového slova bezprostředně po příjmu jeho posledního znaku. Kódy jsou bezprostředně rozhodnutelné, když mají tzv. prefixovou vlastnost. Prefixová vlastnost je vlastnost kódu, kdy žádné kódové slovo kódu není předponou nějakého jiného kódového slova kódu.
Pro měření vhodnosti kompresní techniky slouží kompresní poměr, resp. zisk komprese. Kompresní poměr = D´/ D Zisk komprese = (D - D´) / D Kde: D velikost původního zdrojového řetězce D´ velikost zakódovaného řetězce
METODY REDUKCE KOMPRESE Zabezpečuje jednoznačnou dekompresi, tzn. neztrácí se žádné informace. KOMPAKCE Zachovává pouze jisté nutné informace, neexistuje inverzní proces dekódování. Např. zkracování klíčů v souborech indexů, kdy pro rozlišení stačí pouze některá místa klíče.
KÓDY PEVNÉ DÉLKY Chceme-li zakódovat (m výskytů) n jednotek, potřebujeme k zakódování kódová slova délky l, pro které platí l = log2n n počet jednotek
Příklad Uvažujme text složený z 10 slov (n = 10): THE, OF, AND, TO, A, IN, THAT, IS, IT, ON Původní kódování: 1 znak = 1 byte 23 byte Úspornější kódování: I = log210 = 4 bity Délka kódového slova = 4 bity x nejbližší celé číslo, větší než x. Původní text: 23 byte = 23*8 bitů = 184 bitů Zakódovaný text: 10 slov = 10*4 bity = 40 bitů Kompresní poměr = 40/184 = 0.22 Zisk komprese = (184-40)/184 = 0.78
KÓDY PROMĚNNÉ DÉLKY Huffmanovo kódování Používá kódy proměnné délky, bylo vyřešeno v r. 1952. Huffmanovo kódování je založeno na neorientovaných binárních stromech. Vstup do metody: n jednotek ke kódování, posloupnost pravděpodobností pi pro 1 i n jejich výskytu.
Algoritmus: • Pro každou jednotku i vytvoříme list o(pi) binárního stromu, tj. uzel ohodnocený pi. • Z pi vybereme dvě nejmenší nenulová pr a ps, kde r s a vypočteme q := pr + ps. • Vytvoříme uzel ohodnocený q a hrany ohodnotíme 0 resp. 1.
Příklad: Mějme slova: THE, OF, AND, TO, A, IN, THAT, IS, IT, ON, která se vyskytují s pravděpodobností (po řadě): 0,270, 0,170, 0,131, 0,099, 0,088, 0,074, 0,052, 0,043, 0,040, 0,033. Sestrojte Huffmanův strom a stanovte kódová slova jednotlivých slov.
Kód se čte od kořene k listu Např. Slovo OF se zakóduje 000 IS 1101 Huffmanovo kódování vyžaduje známé a neměnící se pi.