Redukce dat Redukce dat C lem redukce dat je zmen it n roky na prostor pot ebn pro uchov n dat. P i pohledu na soubory se znaky jako natexty zjist me, e m eme v t chto datech naj t r zn redundance (opakuj c se slova i znaky, z vislost mezi po sob jdouc mi entitami, mal univerzum reprezentov no p li velk m). + 1 + 2 Ztr tov redukce Bezeztr tov redukce umo uje op tnou obnovu p vodn ch dat ) zak dovan soubor mus obsahovat stejn mno stv informace n kdy naz v na komprese v dy existuje i reverzibiln proces (dekomprese) doch z ke ztr t m informace (tj. nen mo nost obnovit data p esn stejn : doch z nebo m e doch zet k jist mu zkreslen ) naz v na t kompakce vyu v na zejm na pro zmen en objemu dat ur en ch k smyslov mu vn m n (obraz, zvuk, video), kdy mal odchylky nemus b t na z vadu, jsou-li vyv eny v raznou redukc dat, ani by doch zelo k v razn j mu sn en kvality vn m n + 3 + 4 V hody a nev hody komprese P klady komprese Omezen univerza mohou m t ni n roky na prostor { slice vy aduj pouze 4 bity ) m eme do jednoho bytu um stit hned dv slice (u et me tak a polovinu m sta) { pro ukl d n velk ch a mal ch p smen esk abecedy vysta me se sedmi bity Zde je vid t hlavn v hoda: u et il se pot ebn prostor na m di ch. Klesly tak n roky na syst m: velikost sekund rn pam ti a kapacita p enosov ch linek. Bu m eme sn it n klady, nebo m e doj t k n r stu v konu. Tento zp sob komprese nasti uje i nev hody, kter s sebou komprese m e p in st: pro vyu v n dat m eme pot ebovat je t as a procesorov v kon (stejn jako i pomocnou pam ) pro pravu dat do zpracov vateln podoby. M e to v st ke ztr t v konu (spot ebov v se trochu pam ti a st v konu procesoru). + 5 + 6
Z kladn pojmy Metody redukce dat jsou v t inou zalo eny na k dov n. Z kladn m probl mem bezeztr tov komprese je dekomponovat zdrojov materi l (nap. text, obraz) na posloupnost ud lost (jednotek v p pad text ), kter se sna- me zak dovat tak, aby se spot ebovalo co nejm n m sta. Tj. sna me se zak dovat zdrojov jednotky do k dov ch slov. Mno ina v ech k dov ch slov tvo k d. Sna me se frekventovan j zdrojov jednotky k dovat krat mi k dov mi slovy a naopak. mus spl ovat podm nku jednozna n dek dovatelnosti { snadno dosa iteln u k dov ch slov pevn d lky { pozn me-li bezprost edn po p ijet posledn ho znaku, hovo me o bezprost- edn rozhodnutelnosti { tato vlastnost je spln na nap. tehdy, plat -li pro jednotliv k dov slova, e nejsou prexem dn ho jin ho k dov ho slova (k d spl uje tzv. prexovou vlastnost, tj. je prexov existuj v ak i k dy, kter jsou jednozna n dek dovateln, ale nejsou prexov ) + 7 Pojmy komprese M jme zdrojovou abecedu S velikosti j S j= n. Prvky z S budeme naz vat zpr vami. K dov n zdrojov zpr vy budeme naz vat kompres. Algoritmus zaji uj c k dov n zpr vy nazveme kompresn m algoritmem (kod rem), obdobn algoritmus zaji uj c operaci opa nou (dek dov n ) dekompresn m algoritmem (dekod rem). C lem komprese je, aby zak dovan zpr va (komprimovan zpr va), byla men (nap. co do po tu bajt ) ne zpr va p vodn. Takto z skan zpr va mus b t jednozna n dek dovateln. Jak bylo uvedeno d ve, p i k dov n n kter ch dat nemus b t dek dovan data identick s p vodn mi (nap. u obr zk ). + 9 Poznatky z teorie informace K dy pevn d lky P i k dov n m symbol n jednotek abecedy zdrojov ch jednotek S m eme jednotliv symboly k dovat k dov mi slovy d lky lw = dlog 2 ne: K dy prom nn d lky Jsou-li d lky zdrojov ch jednotek lw i a pravd podobnosti jejich v skyt p i,pako()=m P n lw i p i, L() =m lw, co vede k zisku komprese 1 ; dlog 2 ne P n : lw i p i + 11 + 8 Pojmy komprese (2) Jedn m z parametr, kter m popisujeme vlastnosti komprese je kompresn pom r. Ud v se v procentech, p padn jako slo mezi 0 a 1 (v etn ). Takto vyj d en hodnota ud v, jakou st p vodn velikosti zpr vy zab r zpr va komprimovan. Ozna me-li O() velikost p vodn zpr vy, L() velikost zak dovan zpr vy,jekompresn pom r vyj d en pom rem L() O() Dopln k kompresn ho pom ru do jedn ud v relativn mno stv pam ti u et en zak dov n m. Naz v se zisk komprese a m eme jej vyj d it pom rem O() ; L() O() + 10 Poznatky z teorie informace (2) Lep ho kompresn ho pom ru lze doc lit k dy prom nn d lky, kdy nej ast ji se vyskytuj c m jednotk m p i ad me krat k dy a naopak. Ji v roce 1948 opublikoval Shannon v Teorii informace omezen na nejmen pr m rn po et bin rn ch symbol nutn ch k reprezentaci zdrojov jednotky. Pro mno inu n ud lost spravd podobnostmi p 1 ::: p n, jejich sou et se rovn jedn, navrhl Shannon funkci AE(S)= n p i log 1 2 pi kter se naz v entropi dan mno iny ud lost. Jej jednotkou je jeden bit. Entropie ud v, jak mnoho volby jevpr m ru zahrnuto p i v b ru n jak ud losti. + 12
Poznatky z teorie informace (3) m v ce volby, t m v ce informace je zapot eb ke specikaci v sledk t to volby. Entropie je tedy m ra kvantity informace. Zaj mav j asi bude mno stv informace pro jednotlivou volbu. Je-li jej pravd podobnost p i, pak odpov daj c entropie m hodnotu E i =log 2 1 pi : Z toho vypl v, e m ast ji se symbol vyskytuje, t m m n informace nese a m eme jej zak dovat m n bity. Pozn mka: Pro p i = 1 n pro v echna i je entropie rovna log 2 n, z eho plyne, e k dov n slovy pevn d lky je ji optim ln. Entropi zdrojov zpr vy d lky m je hodnota E()= m p i log 2 (1=p i ): Jsou-li d lky k dov ch slov n jak ho k du K lw i (i =1 ::: n), je o ek van d lka k dov ho slova k du K AL(K)= n lw i p i : Zavedeme-li je t hodnotu L() jako d lku zak dovan zpr vy, tj. L()= m lw i obdr me redundanci zpr vy vk du K jako rozd l R()=L() ; E() = m (lw i + p i log 2 p i ): + 13 + 14 Poznatky z teorie informace (5) pr m rn redundance k du K: AR(K)=AL(K);AE(S)= m Pozn mky: p i (lw i +log 2 p i ) Kompresn pom r je tak mo n vyj d it jako pom r mezi pr m rnou d lkou zdrojov jednotky a o ek vanou d lkou k dov ho slova (AL(K)). Budou-li S a K z ejm z kontextu, budeme tyto parametry vynech vat. Modely Od po tku 80. let je rozd len proces komprese na dv sti: modelov n (p i azen pravd podobnosti zdrojov m jednotk m textu) a k dov n. Model textu obsahuje informaci o zdrojov ch jednotk ch (nap. symbolech nebo slovech) a jejich pravd podobnosti v r mci dan ho textu i v kontextu kolekce text ::: K dov n na z klad t chto pravd podobnost p ev d jednotky do posloupnosti bit. + 15 Modely kone n ho kontextu pravd podobnosti jsou p i azov ny jednotliv m symbol m i stejn dlouh m skupin m symbol abecedy. p edpokl d se, e tyto skupiny jsou nez visl s rostouc d lkou kontextu roste innost komprese, ale tak n roky kod ru na prostor a as. d lka kontextu (po et dal ch symbol, k nim p ihl me) se n kdy ozna uje jako d modelu t mto model m se tak k Markovsk modely + 17 + 16 Dal modely Modely kone n ch stav pou v ny pro regul rn jazyky (rozpoznateln kone n m automatem) Modely s gramatikou pou v ny pro zpr vy generovateln bezkontextovou gramatikou Oba druhy model jsou pou v ny zejm na v oblasti um l ch jazyk. V obou p padech je tak mo n p i adit pravd podobnosti k odvozovac m pravidl m. P klad: Nejjednodu model pro et zce DNA obsahuje 3 stavy a 4 p echody z ka d ho z nich. + 18
D len model statick vytvo eny pro mno inu zpr v (sta-, aby na obou stran ch byl stejn model) polostatick vytv ej se pro ka dou zpr vu zvl (p edem) a pos laj se spolu se zak dovanou zpr vou Reprezentace cel ch sel Univerz ln k d { pr m rn d lka k dov ho slova omezena c 1 AE + c 2 (c 1, c 2 konstanty) { optim ln () c 1 =1 adaptivn vznikaj v pr b hu k dov n a dekod r si je vytv automaticky s m tento model neumo uje p m p stup k stem zpr vy je nutn ji dek dovat od za tku. vyu v n pro k dov n p irozen ch sel, kdy d lka z pisu je m rn velikosti sla (nap. u slovn kov ch a syntaktick ch metod) + 19 + 20 Fibonacciho k dy (2) Fibonacciho k dy zalo eny na Fibonacciho slech du m 2 Fibonacciho sla du m jsou denov na n sledovn : F 0 = F ;1 = :::= F ;m+1 =1 F n = F n;m + F n;m+1 + :::+ F n;1 (n 1) P : d 2: 1,1,2,3,5,8,13,21, ::: d 3: 1,1,1,3,5,9,17,31, ::: + 21 Pro nez porn sla a jejich bin rn reprezentaci plat R(N)= k d i F i kde d i 2 0 1, k N a F i (0 i k) jsou Fibonacciho sla du 2. Fibonacciho k d du 2 pro N F(N)=d 0 d 1 d 2 :::d k 1 kde d i 0 i k denov no v e, je opa n zapsanou Fibonacciho reprezentac ukon enou dal jedni kou. D ky tomu, e bin rn reprezentace nem nikdy dv jedni ky bezprost edn za sebou, je v sledn k d prexov. + 22 Fibonacciho k dy vlastnosti K d du 2 { univerz ln pro c 1 =2a c 2 =3 { nen asymptoticky optim ln (c 1 > 1) Vyu it Fibonacciho k d vy ch d m e v st k lep kompresi. Fibonacciho k dy p klad N R(N) F(N) 1 1 11 2 1 0 011 3 1 0 0 0011 4 1 0 1 1011 5 1 0 0 0 00011 6 1 0 0 1 10011 7 1 0 1 0 01011 8 1 0 0 0 0 000011 16 1 0 0 1 0 0 0010011 32 1 0 1 0 1 0 0 00101011 21 13 8 5 3 2 1 + 23 + 24
Standardn bin rn reprezentace: Eliasovy k dy posloupnost r zn ch k d n kter z nich univerz ln nejjednodu z nich se naz v un rn (N)=00:::0 {z } 1 N;1 (1) = 1 (N)=(M)j, kde N =2M + j. k d nen jednozna n ((5) = (2)(1)) pou ijeme dal symbol pro konec slova: (N)=(N)# m eme vynechat vodn jedni ku: 0 (1) = " (pr zdn posloupnost) 0 (2N)= 0 (N)0 0 (2N +1) = 0 (N)1 0 (N)= 0 (N)# + 25 + 26 Eliasovy k dy (3) Ka d bit bin rn ho k du (N) je n sledov n bitem un rn ho k du (j(n)j). Vynech n m vodn ho bitu k du (N) (tj. pou it m 0 (N)) a zat d n m t chto bit (po jednom) mezi bity k du (j(n)j) dost v me k d. N (N) (j(n)j) 0 (N) (N) 0 (N) 1 1 1 " 1 1 2 10 01 0 001 010 3 11 01 1 011 011 4 100 001 00 00001 00100 5 101 001 01 00011 00101 6 110 001 10 01001 00110 K d 0 vznikl slo en m (j(n)j) a 0 (N). K dy a 0 jsou permutac jeden druh ho. Eliasovy k dy (4) Vyj d me-li d lku slova funkc m sto, dostaneme k d, kter je pro velk N krat. K dov n!: K := 0 WHILE blog 2 Nc > 0 DO END (N)=(j(N)j) 0 (N) K:=(N)K N :=blog 2 Nc N 1 2 3 4 5 (N) 1 0010 0011 01100 01101!(N) 0 10 0 11 0 10 100 0 10 101 0 + 27 + 28 Shannon-Fanovo k dov n F zov n slo k d 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 1110 8 1111 vyvinuto nez visle Shannonem a Weawerem (1949) a Fanem (1949) nejstar metoda pro statick rozd len pravd podobnost zalo en na rekurzivn procedu e p i azuj c ka d zdrojov jednotce k jej mu k dov mu slovu jednu bin rn cifru. Sou et pravd podobnost v dan m seznamu pravd podobnost budeme naz vat kumulativn pravd podobnost (dan ho seznamu). + 29 + 30
Procedura SF Split PROCEDURE SF-Split(S) Algoritmus Shannon-Fanova k dov n Vstup: seznam n zdrojov ch jednotek S[i], 1 i n, set d n ch podle pravd podobnosti vzestupn V stup: n bin rn ch k dov ch slov END Initialize SF-Split(S) END IF j S j 2 THEN rozd l S na dva podseznamy S1 a S2 tak, e oba maj p ibli n stejn kumulativn pravd podobnosti z et z v echna k dov slova pro S1 s 0 z et z v echna k dov slova pro S2 s 1 SF-Split(S1) SF-Split(S2) END + 31 S-F k dov n p klad M jme dev tiprvkovou abecedu, set d n seznam frekvenc zdrojov ch jednotek (1, 1, 1, 1, 3, 3, 3, 3, 7). Odpov daj c pravd podobnosti vyjad uje seznam (1/23, 1/23, 1/23, 1/23, 3/23, 3/23, 3/23, 3/23, 7/23). Tabulka vyjad uje postupn aplikace procedury SF-Split a v sledn k d. zdrojov pravd podobnost k dov krok jednotka slovo S[1] 1/23 1111 8 S[2] 1/23 1110 6 S[3] 1/23 1101 7 S[4] 1/23 1100 4 S[5] 3/23 101 5 S[6] 3/23 100 1 S[7] 3/23 011 3 S[8] 3/23 010 2 S[9] 7/23 00 + 33 Statick Humanovo k dov n (2) pro ka dou jednotku i vytvo list o(p[i]) (uzel ohodnocen pravd podobnost p[i]) k := n END WHILE k2 DO vyber z p dv nejmen nenulov p[r] a p[s], kde r 6= s q := p[r]+p[s] vytvo uzel ohodnocen q hran m <o(q) o(p[r]) > a <o(q) o(p[s]) > p i a ohodnocen 0 a 1 p[r] := q p[s] := 0 k := k-1 END + 32 Statick Humanovo k dov n zn mo od r. 1952 dlouho pova ov no za nejlep metodu na kompresi text Vstup: seznam n zdrojov ch jednotek ke k dov n, uspo dan posloupnost p n vah (pravd podobnost ) p[i] (1 i n) jejich v skyt ve zpr v V stup: k dov slova dan z et zen m ohodnocen hran na cest ch od ko ene k jednotliv m list m bin rn ho stromu + 34 Statick Humanovo k dov n (3) Pozn mky: v sledn strom se naz v Human v v sledn k d je prexov m sto pravd podobnost m eme pou t i etnosti znak ohodnocen hran stromu pomoc 0 a 1 je konvenc je tud mo no pou t i ohodnocen opa n Human v i Shannon-Fan v k d je mo n generovat v ase O(n) + 35 + 36
V znamn varianty: { FGK algoritmus (Faller, Galagher, Knuth) { V algoritmus (Vitter) strom reorganizov n podle toho, jak se m n pravd podobnosti v pr b hu k dov n v obou variant ch se na za tku nep edpokl daj dn informace o pravd podobnostech zdrojov ch jednotek Adaptivn Humanovo k dov n FGK Vstup: dan Human v strom T 1, uzel o V stup: modif. Hu. strom T 2 END current:=o WHILE current6=root DO vym podstrom v current s uzlem o 0, kter m nejvy po ad mezi uzly se stejnou frekvenc END current:=predcessor(current) + 37 + 38 Adaptivn Humanovo k dov n FGK (2) v druh f zi algoritmu doch z k modi- kaci frekvenc o hodnotu INCR INCR se m e v pr b hu k dov n m nit (nap. podle posloupnosti 1 r r 2 ::: r n, (r > 1) p i p epln n libovoln ho ta e se v echny ta e vyd l r n AL HD 2 AL HS, kde AL HD je pr m rn d lkak dov ch slov dynamick ho Humanova k dov n a AL HS statick ho Adaptivn Humanovo k dov n V Vitter navrhl pravu FGK s t mito vlastnostmi: po et v m n podstrom je nejv e 1 minimalizuje nejen n ale i P n d[i] p[i] d[i] a max i d[i] AL HD AL HS +1 (nejlep hodnota mezi dynamick mi Humanov mi metodami) + 39 Aritmetick k dov n O Humannov k dov n v me, e je optim ln pro pravd podobnosti v skyt znak, kter jsou mocninami 1=2. Data budeme reprezentovat slem z intervalu < 0 1) tak, e interval, kter bude pro ten kter symbol k dispozici, rozd l me na sti odpov daj c pravd podobnostem jednotliv ch symbol abecedy. Symbol, kter se na dan pozici ve zdrojov m textu vyskytuje, ur uje po te n interval pro dal symbol. M jme abecedu a 1 :::a n spravd podobnostmi v skyt jednotliv ch symbol p 1 :::p n. Kumulativn pravd podobnost jednotky a i denujeme takto: cp i = i p j j=1 + 41 + 40 Aritmetick k dov n (2) Reprezentujeme-li interval dvojic (L S), kde L je doln mez intervalu a S jeho d lka. Postupn v voj t chto veli in m eme vyj d it takto: L := L + S cp i S := S p i Po te n nastaven je L =0a S =1. + 42
Slovn kov metody Existuj dva z kladn druhy slovn kov ch metod: 1. organizuj c slova p irozen ho jazyka 2. organizuj c et zce (tedy nejen slova) V echny metody, o kter ch si budeme pov dat, jsou adaptivn p i ten dokumentu je vytv en slovn k a z rove je generov n i c lov k d jsou k dov ny cel fr ze (posloupnosti znak ) fr ze ve slovn ku slov ny od 0 v ka d m kroku se najde nejdel fr ze shodn se vstupem a jej k d se zap e do c lov ho souboru na konec fr ze se p id prvn znak dal fr ze! m me novou fr zi + 43 + 44 Algoritmus LZW p klad Algoritmus LZW pozn mky po te n nastaven obvykle obsahuje v ech 256 hodnot znakov sady (0 ; 255) b vaj rezervov na dv sla fr z : 256 nov slovn k 257 konec dat Vstupn abeceda: fa b c dg Vstupn text: abacdacacadaad Po te n tabulka fr z : Fr ze a b c d Po adov slo 0 1 2 3 Vstup Fr ze K d Nov # 1 abacdacacadaad a 0 ab 4 2 bacdacacadaad b 1 ba 5 3 acdacacadaad a 0 ac 6 4 cdacacadaad c 2 cd 7 5 dacacadaad d 3 da 8 6 acacadaad ac 6 aca 9 7 acadaad aca 9 acad 10 8 daad da 8 daa 11 9 ad a 0 ad 12 10 d d 3 + 45 + 46 Algoritmus LZW p klad (3) Algoritmus LZW p klad (2) Dekomprese: Krok Vstup V stup Nov fr ze slo 1 0 a ; 2 1 b ab 4 3 0 a ba 5 4 2 c ac 6 5 3 d cd 7 6 6 ac da 8 7 9 aca aca 9 8 8 da acad 10 9 0 a daa 11 10 3 d ad 12 Stromov struktura slovn ku: ko en a 0 b 1 b 4 c 6 d 12 a 5 a 9 d 10 c 2 d 7 d 3 a 8 a 11 Binarizovan struktura slovn ku: a 0 b 4 c 6 a 9 d 10 ko en b 1 d 12 a 5 c 2 d 7 d 3 a 8 a 11 + 47 + 48
Algoritmus LZW p klad (4) Tabulka binarizovan ho slovn ku Po adov slo Znak N sledn k Soused 0 a 4 1 b 5 2 c 7 3 d 8 4 b 6 5 a 6 c 9 12 7 d 8 a 11 9 a 10 10 d 11 a 12 d Algoritmus LZW p klad (5) Tabulka pro dekompresi: Po adov slo Znak P edch dce 0 a 1 b 2 c 3 d 4 b 0 5 a 1 6 c 0 7 d 2 8 a 3 9 a 6 10 d 9 11 a 8 12 d 6 + 49 + 50 LZ77 LZ podle jmen Lempel, Ziv slovn kem je st ji zak dovan ho textu okno slo eno ze dvou st : { hledac st ji zak dovan posloupnosti { v hledov obsah t to sti se hled zpr va je k dov na trojicemi < o l c >, kde o je pozice v hledac m okn (po t no od m sta, kam a je zak dov no), l je d lka zpr vy a c nov znak LZ77 p klad P edpokl dejme tuto posloupnost: Uva ujme situaci: : : : cabracadabrarrarrad : : : cabraca dabrar V hledac m okn nen prvn znak z okna v hledov ho, na v stup jde trojice < 0 0 C(d) >. + 51 + 52 Situace LZ77 p klad (2) LZ77 dek dov n ukazov tko o =7? c a b r a c a d a b r a r r a r r a d l =4 d v k d < 7 4 C(r) >. - Je-li ka okna W, rka jeho hledac sti S a po et znak v abeced A, pakpro ka dou trojici pot ebujeme dlog 2 Se+dlog 2 W e+dlog 2 Ae bit. pou v se stejn okno jako pri k dov n (tedy je i v hledov st) dek duje se do v hledov ho okna m - eme pak dek dovat i ty pas e, k jejich zak dov n bylo vyu ito i obsahu v hledov ho okna. Aplikace LZ77 Na algoritmu LZ77 dopln n m o dal k dov n prom nn d lky jsou zalo eny nap klad programy PKZip, Zip, LHarc a ARJ. + 53 + 54
Metoda LZR LZSS navr ena Rodehem vyu v strom obsahuj c v echny p edpony v dosud dek dovan sti v e, co dosud zak dov no, vyu ito jako slovn k ke k dov n hodnoty i v trojici <i j a> pou ito k dov n! 0 potenci ln m e strom r st nade v echny meze v praxi po napln n vypr zdn n navr ena Bellem podle idej Storera a Szymanskiho v stupem posloupnost ukazatel a znak ukazatel dvojice (i j) ob slo ky stejn v znam jako u LZ77 pouze ukazatel pro dostate n dlouh et zce, jinak v k du p mo jednotliv znaky pot eba rozli it kop rovan znak a odkaz + 55 + 56 LZH LZB navr eno Brentem navr eno Bellem varianta LZSS podoba s LZSS v situac ch, kdy okno nen vyu ito cel (tj. na za tku komprese a p i kompresi kr tk ch dat), vyu ito m n bit (ke k dov n posunu vyu v f zov n d lka et zce k dov na ) ke k dov n ukazatel vyu v Humanovo k dov n vyu ita i frekvence jednotliv ch prvk slovn ku I. f ze: LZSS s hl d n m frekvenc II. f ze: Humanovo k dov n + 57 + 58 LZ78 k d slo en ze dvou st : { odkaz na prvek ve slovn ku { znak, o kter byla sekvence prodlou ena v hoda: u k dovan v ci neute ou z okna nev hoda: slovn k roste nade v echny meze LZC vyu ito v programu compress vych z z LZW odkazy do slovn ku k dov ny s prom nnou d lkou slova po p epln n slovn ku monitoruje kompresn pom r kdy za ne kompresn pom r klesat, vyma e se slovn k + 59 + 60
LZT navr eno Tischerem zalo eno na LZC fr ze ve slovn ku ulo eny podle posledn ho pou it prvn v seznamu je posledn se objeviv fr ze LZMW navr eno Millerem a Wegmanem zalo eno na LZT nov fr ze nevznik p id n m symbolu k fr zi, ale z et zen m posledn ch dvou fr z indexy fr z f zov ny + 61 LZJ Jacobsson, 1985 modikace LZ78, d lka polo ek ve slovn ku omezena h k dov n prov d no nad lesem strom ( i trie) hloubky h, kde po cest jsou et zce ze vstupu stromy binarizov ny pou it omezen prostor pro uzly p i p epln n je mo n bu p estat p id vat, nebo vyhodit nejm n pou van polo ky to ale vy aduje m t pro tento el pomocn daje (nap. frekvence v skytu). + 63 + 62 LZFG navr eno Fialou a Greenem pro ulo en slovn ku pou v stromovou strukturu, kde hrany jsou ohodnoceny et zci tvo en jedn m i v ce symboly a uzly obsahuj ukazatele do okna a identikuj c symboly na cest z ko ene do tohoto uzlu fr ze k dov ny dvojicemi (d n): d... po et symbol shodn ch s et zcem z ohodnocen hrany vedouc do uzlu n n... identikace uzlu + 64 Slovn kov metody s restrukturalizac slovn ku U dosud probran ch metod se nov polo ky p id valy na konec slovn ku. Existuj v ak i metody, kter si pr b n upravuj po ad polo ek ve slovn ku. To umo uje, aby se asto pou van polo ky dostaly na za tek slovn ku a mohly tak m t krat k dy (tj. jejich indexy mohou b t k dov ny men m po tem bit samoz ejm za p edpokladu, e pou ijeme k dov n p irozen ch sel s prom nnou d lkou k du). Slovn kov metody s restrukturalizac slovn ku (2) Slovn ky se v t inou reorganizuj podle n kter z t chto heuristik (li c ch se nakl d n m s pr v nalezenou polo kou): p esun na za tek v m na s p edch dcem p esun vp ed o k zv en etnosti a za azen podle nov hodnoty + 65 + 66
zalo ena na heuristice 'p esun na za tek' a na prom nn d lce k d sel (Elias v k d, p padn Fibonacciho k dy) k d slo en z index polo ek ve slovn ku a p padn ch nov ch slov na za tku slovn k pr dn za ka d slovo je posl n jeho index ve slovn ku (existuje-li) nebo slo o 1 vy ne je po et prvk ve slovn ku v obou p padech se polo ka p esune na za tek seznamu + 67 K dovan text: KA D SOFSEMISTA MUS KA D DEN BD T CEL DEN Stav slovn ku: ka d sofsemista ka d mus sofsemista ka d ka d mus sofsemista den ka d mus sofsemista bd t den ka d mus sofsemista cel bd t den ka d mus sofsemista den cel bd t ka d mus sofsemista V sledn zpr va: 1 ka d 2 sofsemista 3 mus 3 4 den 5 bd t 6 cel 3 + 68 P edn komprese pou v se pro zmen en objemu index vyu v toho, e v abecedn set d n m seznamu b vaj za sebou slova se stejnou p edponou Zadn kompakce pou v se pro zmen en objemu index ponech v pouze p edn sti polo ek, kter sta na odli en jednotliv ch prvk tato p edpona zaznamen na jednou, ostatn polo ky obsahuj pouze zbytek 'slova' v hodn je kombinovat tuto metodu se zadn kompakc nen mo n p mo zrekonstruovat p vodn data (pokud je to t eba, jsou v z znamech) v hodn je kombinovat tuto metodu s p edn kompres + 69 Komprese bitov ch map P edpokl dejme, e m me bitovou mapu, v n je pravd podobnost v skytu "0" na libovoln pozici p apravd podobnost v skytu "1" je 1 ; p Bity jsou nez visl jeden na druh m. Budeme-li k dovat bloky pevn d lky (k), bude takov chto blok 2 k. Ozna me i po et "0" v dan m bloku. Pak pravd podobnost v skytu takov hoto bloku je p i (1 ; p) k;i. Jednotliv m blok m bit tak m eme staticky p i adit Humanovy k dy pr v dle t chto pravd podobnost. Toto sch ma k dov n ozna ujeme Huf b (p k). + 71 + 70 Komprese bitov ch map (2) Je tak mo n k dovat tzv. b hy { posloupnosti nul zakon en jedni kou, p padn posloupnosti nul samotn ch. Parametrem metody je m ud vaj c maxim ln d lku b hu. Pravd podobnost b hu s j nulami a jedni kou je p j (1;p), pravd podobnost b hu s m nulami je p m. T mto zdrojov m jednotk m op t m eme staticky p i adit Humanovy k dy. Toto sch ma se ozna uje Huf r (p m). Pro p! 1 se pro m =5 8 10 dosahuje zisku komprese o d vy ho ne u k dov n pevn ch blok. Ik dov n m pevn ch blok lze dos hnout vy - ho stupn komprese, ale za cenu vy ch n rok na pam (pro k = 15 je pot ebujeme zak dovat v ce ne 32 000 blok ). + 72
Redukce indexu pomoc bitov mapy Redukce indexu parci ln ho atributu Je p pustn, aby n kter z atribut z znamu nem l zad nu (vypln nu) hodnotu. Je-li takov chto z znam s nevypln n m atributem v ce, je v hodn indexovat pouze ty z znamy, pro n je hodnota dan ho atributu zn ma. Takovouto situaci m eme e it nap klad pomoc n kter z uveden ch metod: bitov mapa, k dov n b h, k dov n pomoc hlavi ky. Pln polo ky k dujeme pomoc "1" v bitov map a ulo me i hodnotu pr zdn polo ky jen pomoc "0" v bitov map. M jme posloupnost hodnot (a 'ne-hodnot'): aba,0,0,0,gv,0,0,0,0,cx. Poslupnost zak dujeme pomoc bitov mapy 1000100001 a et zce hodnot aba,gv,cx. N ro nost k dov n i dek dov n je line rn k po tu bit v bitov map (tj. k po tu hodnot a pr zdn ch polo ek). + 73 + 74 Redukce indexu pomoc hlavi ky Redukce indexu pomoc k dov n b h B hem se zde rozum maxim ln posloupnost pr zdn ch jednotek. Ka d b h se nahrad trojic odd lova, symbol pr zdn jednotky, d lka b hu. Vyhled v n je m rn d lce zpr vy. Hlavi ka je posloupnost ta ud vaj c ch st dav kumulovan po ty hodnot a pr zdn ch pozic. Na z klad t chto daj a posloupnosti hodnot (fyzick zpr vy) je mo n zrekonstruovat p vodn dk seznam hodnot. P vodn zpr vu da,aba,0,0,0,gv,0,0,0,0,cx,go,si je mo n zak dovat hlavi kou 2,3,3,7,6 a fyzickou zpr vou da,aba,gv,cx,go,si. Ob zobrazen je mo n prov d t v ase O(log h), kde h je velikost hlavi ky. + 75 + 76 Redukce dat z v r inn j kopresn metody m vaj zpravidla vy n roky na zdroje (prostor, as) vhodnost metody nen d na jen dosahovan m kompresn m pom rem, ale i odolnost v i chyb m, rychlost komprese, n roky na zdroje p i dekompresi, atd. velmi zaj mavou skupinou metod jsou specializovan metody pro vybran typy dat + 77