Algoytmy oowni słowniowego 1. Koownie ze słowniiem sttycznym 2. Koownie ze słowniiem ynmicznym (LZ77, LZ78, LZSS, LZW) 3. Zstosowni
Algoytmy entopijne i słowniowe Do tej poy lgoytmy entopijne Uywj moeli poilistycznych o optymlnego zoownie pojeynczych symoli Koy poszczególnych symoli ónej ługoci one t, y w eniej uzys ompesj Nie io po uwg oelcji pomizy symolmi to moe y istotne óło eunncji Algoytmy słowniowe Nie ouj pojeynczych symoli omi o zmiennej ługoci tylo cigi znów o zmiennej ługoci popzez zpisy o stłej ługoci Zpisy te twoz inesy o słowniów fz Jeeli zpisy (inesy) ótsze ni fzy ompesj
Koownie słowniowe - zs Chcemy zoow znie ngielsie: A goo exmple of how ictiony se compession wos Słowni: Longmn Dictiony of Contempoy English Koownie: wsni o słow to x/y, x n stony, y n słow n stonie. Wyni: 1/1 489/7 377/19 755/36 548/13 303/7 73/3 223/1 1270/25 Licz ston w słowniu: 1280 x oujemy pzez 11 itów Licz słów n stonie < 128 y oujemy pzez 7 itów Wsni x/y 18 itów. Cłowit ilo itów: 9*18 = 162 Nomlne oownie ASCII 48 jtów, czyli 384 ity Stopie ompesji 2.37 : 1
Słowni sttyczny Słowni sttyczny ustlony i niezmienny w tcie oowni Zstosownie gy mmy wczeniejsz wiez o oownych nych (słowni zwie njczciej stosowne fzy) Słowni zo zleny o zstosowni Bziej uniwesln meto oowni ze słowniiem sttycznym oownie igmowe. Słowni zwie wszystie litey lfetu oz t ilo p lite (igmów) ile si zmieci Pzył: słowni 256 znów, lfet uowlne zni ASCII - 95 znów. Moemy wic mie 161 igmy
Koownie igmowe Pzył: Alfet {,,,, } Cig o zoowni: Do zoowni wszystich lite potze 3 itów słowni o ozmize 2 3 000 100 001 101 010 110 011 111 Wyni oowni: 101 100 110 111 101 101 000
Słowni ynmiczny Wisze znczenie metoy ze słowniiem ynmicznym Bziej uniweslne ni opte n słowniu sttycznym Pzełomowe znczenie pce Jco Ziv i Ahm Lempel z oc lt sieemziesitych Słowni uowny ynmicznie n postwie pzetwozonej czci nych ówny fgmentowi pzetwozonej czci nych lu wytwozony ze wszystich fz pzetwozonych o tej poy Njwniejsze lgoytmy: LZ77, LZ78, LZW
Algoytm LZ77 Słowni fgment wczeniej zoownej czci nych Pzeglmy ne pzez pzesuwjce si ono o ozmize W Ono zieli si n: ufo słowniowy zwie osttnio zoowny fgment cigu nych ufo oowni zwie fgment cigu, tóy włnie mmy oow Ptyczne implementcje ozmi ufo słowniowego: 8 16 B, ozmi ufo oowni ~ 100 jtów
Algoytm LZ77 c.. Zs ziłni: Umieszczmy wsni pzeszuiwni n ocu ufo słowniowego Pzesuwmy wsni w lewo (licz miejsc o) o npotni symolu ównego piewszemu symolowi w ufoze oowni Spwzmy, czy nstpne symole w ou ufoch nie s soie ówne. Licz ównych soie symoli ługo opsowni l Pzeglmy w ten sposó cły ufo słowniowy t, y zmsymlizow opsownie Optymlne opsownie oujemy jo (o, l, c), gzie c o symolu w ufoze oowni wystpujcy jo piewszy nieopsowny symol (7, 4, C()) 7 4
Algoytm LZ77 c.. Osttni element tóji n wype zeowego opsowni Po wysłniu ou (o, l, c) pzesuwmy ono o l + 1 w pwo i powtzmy poceu Długo zpisu oujcego l oowni o stłej ługoci niech ozmi on = W, ozmi ufo słowniowego = S, ozmi lfetu = A wtey ługo zpisu = log 2 S + log 2 W + log 2 A Uwg: opsownie moe pzeoczy ozmi ufo słowniowego
Algoytm LZ77 oownie Koujemy cig:.. Złmy, e pocig jest ju zoowny. Pmety on: W=13, S=7 Kolejne oi oowni: (0,0,C()) (7,4,C()) (3,5,C())
Algoytm LZ77 eoownie Sttujemy z oowownego pocigu Ooowujemy (0,0,C()) czyli C() Ooowujemy (7,4,C()) Kopiownie 1 znu Pzesunicie o 7 Kopiownie 2 znu Kopiownie 3 znu Kopiownie 4 znu Ooownie C()
Algoytm LZ77 eoownie c.. Ooownie (3,5,C()) 1 zn o 3 pozycje 2 zn 3 zn 4 zn 5 zn Ooownie C()
Algoytm LZ77 włsnoci Post meto ptcyjn, nie wymg wczeniejszej wiezy o chteze ół Koownie moe y czsochłonne (uo poówn); eoownie poste i szyie Nieue wymgni otyczce pmici Asymptotycznie wynii njlepsze jie mon uzys pzy pełnej czstoci pojwini si znów i oelcji mizy nimi Mon zstosow óne moyficje lgoytmu popwijce jego efetywno
Ominy LZ77 Algoytm LZSS uni oniecznoci wysyłni (o,l,c) Reunncj lo nie tze pointe (o jest zeowy), lo ou znu (moe y pzezny w nstpnym wejciu) Dziłnie: Znj opsownie (o,l) Jeeli l MIN_LENGTH to wysyłmy (o, l ) i pzesuwmy ono o l Jeeli l < MIN_LENGTH to wysyłmy o piewszego znu z ufo oowni i pzesuwmy ono o 1 Ay ozóni o pzypi ich zpisy popzezmy opowienimi flgmi itowymi Inne moyficje popw efetywnoci oowni oownie tóje (lu wóje licz) oowniem o zmiennej ługoci piety Pzip, Zip, gzip, ARJ, LHc Zstosownie efetywnych stutu nych o epezentcji zwtoci ufo słowniowego (TRIE)
Algoytm LZ78 W lgoytmu LZ77 soczony czs, w jim wzozec jest pmitny wzoce oległe o ziej ni szeoo ufo słowniowego nie czuj swej oecnoci c e f g h i c e f g h i c e f g i LZ78 zstpienie ufo słowniowego słowniiem twozonym explicite ynmicznie w tcie oowni i eoowni Słownii tel zwiejc ines i opowijcy mu wzozec. N pocztu oowni (eoowni) słowni pusty. Potem osttnio opsowny wzoze + nieops. zn Koownie p (i,c), gzie i ines, c o piewszego nieopsownego znu
LZ78 pzył Cig o zoowni: cccc e Słowni: N 0 1 2 3 4 5 6 7 8 9 10 11 12 Wzozec ^ c cc c e Koownie: (0,)(1,_)(0,)(3,)(0,_)(0,c) (6,c)(6,_)(0,)(9,)(10,_) (0,e) Do słowni wstwine s coz łusze wzoce. Jeeli j fz si powtz, to wótce znjzie si w cłoci w słowniu. Ooownie zo poste.
Włsnoci lgoytmu LZ78 Szysze oownie ni l LZ77 (zncznie mniej poówn stingów) Łtwe eoownie (cho wolniejsze ni l LZ77 onieczno ouowy słowni) Wzoce s stle owne o słowni (1 wzozec n jeen poces oowni) i nie zpominne nieezpieczestwo pzepełnieni pmici Jest puntem wyjci l lgoytmów pochonych njziej znny lgoytm LZW.
Algoytm LZW Zpoponowny w 1984 pzez Tey ego Welch Główn moyficj oe nie wysył ou piewszego nieopsownego znu ( tylo ines słowni) Ay to yło moliwe słowni n stcie zwie wszystie litey wyjciowego lfetu Poceu oowni: Póujemy opsow włe łcuch wejciowego Niech s msymlny połcuch tóy m wzozec w słowniu (ines j) o ługoci, c piewszy nieopsowny zn N wyjcie: j (ines wzoc zgonego z s) Do słowni ojemy s+c Pzesuwmy znczni pozycji o
Algoytm LZW oownie Pzył: oujemy cig c c Ines 1 2 3 4 5 6 7 8 9 Wzozec c c c c w D, nie, o D4, wyjcie 1 w D, c nie, c o D5, wyjcie 2 c w D, c nie, c o D6, wyjcie 3 w D, nie, o D7, wyjcie 4 c w D, c nie, c o D8, wyjcie 5 w D, nie, o D9, wyjcie 7 w D, wyjcie 1 Wyni: 1 2 3 4 5 7 1
Algoytm LZW eoownie Ooujemy cig 1 2 3 4 5 7 1 ze słowniiem pocztowym {,, c} 1 ==> wyjcie ==> w D 2 ==> wyjcie ==> nie w D, o D4 3 ==> wyjcie c ==> c nie w D, c o D5 4 ==> wyjcie ==> c nie w D, c o D6 5 ==> wyjcie c ==> nie w D, o D7 7 ==> wyjcie ==> c nie w D, c o D8 1 ==> wyjcie ==> nie w D, o D9
Algoytm LZW polem Nieiey w ooowywniu LZW polem onieczno uyci wzoc, tóy jest w tcie fomowni. Pzył: zoow cig Stnowe postpownie je o: 1 2 3 5 2 Ooownie: 1 ==> wyjcie ==> w D Ines 1 2 3 4 5 Wzozec.. 2 ==> wyjcie ==> nie w D, o D3 3 ==> wyjcie ==> nie w D, o D4 5 ==> le pozycj 5 w słowniu jeszcze niegotow!!! Wiemy, e D5 musi si zczyn o x. Czyli D5 to pefis x tóego jeszcze nie m w D czyli 5 ==> wyjcie ==> o D5 2 ==> wyjcie ==> o D6
Zstosownie LZW Polecenie compess Rozmi słowni (i ługo oów inesów) zmieni si ynmicznie Zczynmy o słowni o ozmize 512 (słowo oowe 9- itowe). Gy słowni si zpełni, powjmy ozmi Rozmi msymlny = 2, gzie pomizy 9 16 (efult ówny 16). Gy ozmi msymlny osignity słowni si nie zmieni Algoytm nlizuje stopie ompesji; gy zyt nisi, słowni jest czyszczony i uowny o now
Zstosownie LZW c.. Fomt GIF Postw = ilo piseli n it. Zczynmy o słowni o ozmize 2 +1. Po wypełnieniu zwiszmy o czynni 2. Msymlny ozmi 4096. Po jego osigniciu słowni jest zmoony. Kompesj nych wysyłnych pzez moem (V.42 is) Moe pcow w tyie pzeoczystym i tyie ompesji Ty ompesji lgoytm LZW ze słowniiem o zmiennej ługoci Stn pozwl n oesowe czyszczenie słowni z npisów, tóe pojwiły si w pzeszłoci, lecz nie yły uywne osttnio
Kompesj ozów - zestwienie Huffmn Huffmn Dyn. Huff. GIF Oz ónice ónice 1_ch 57 504 32 968 32 261 51 085 2_ch 61 430 38 541 37 896 60 649 Ziemi 40 543 33 880 39 501 34 276 Misto 58 374 52 643 52 321 61 580