0912e8f6a70a79961a77188381056bcc.ppt
- Количество слайдов: 26
Kompresní metoda ACB Associative Coder of Buyanovsky autor: George Buyanovsky připravil Tomáš Skopal podle knihy „Data Compression“ od D. Salomona, 1997, Springer, New York
ACB – Hlavní rysy • slovníková bezeztrátová komprese • velmi efektivní (lepší než RAR) • vhodná pro kompresi textu • relativně pomalá • efektivita značně závislá na následném kódování • není do detailu zveřejněna
Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing context content • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis
Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing context content • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis s mi|ss is miss
Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing context content • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis s mi|ss is mis|s is missi
Kontextový slovník Struktura slovníku . . . swiss |m • je tvořen položkami kontext-content. . . swi|ss m. . . s|wiss m • setříděná historie všech kontextů. . . swis|s m contentů zdrojového textu. . . swiss|m • položka je zatřizována lexikálně podle. . . sw|iss m svého kontextu vůči kontextům položek kontexty contenty ve slovníku – a to zprava doleva
Kontextový slovník Stav slovníku . . . swiss |m. . . swi|ss m • je tvořen identicky pro kompresi. . . s|wiss m i dekompresi. . . swis|s m • narůstá o jednu položku pro každý. . . swiss|m zpracovaný znak textu (tj. na konci. . . sw|iss m zpracování textu o n znacích má n položek) kontexty contenty • realizován ukazateli do zdroj. textu
Základní metoda ACB zpracovaný text Nová položka: swiss m|iss is missing nový kontext Stav po šesti zpracovaných znacích (stejný u komprese i dekomprese) … Aktuální stav slovníku: 1 …swiss |m 2 …swi|ss m 3 …s|wiss m 4 …swis|s m 5 …swiss| m 6 …sw|iss m
Základní metoda ACB Nová položka kontext: swiss m 1. Nalezení nejvíce podobného kontextu content: iss is m… ve slovníku (zprava doleva) : položka 2 2. Nalezení vzdálenosti nejvíce Aktuální stav slovníku: podobného contentu ve 1 …swiss |m slovníku od pozice nalezeného 2 …swi|ss m kontextu (poloměr hledání) : 3 …s|wiss m položka 6, vzdálenost 4 4 …swis|s m 4 Algoritmus jednoho kroku komprese 5 6 …swiss| m …sw|iss m
Základní metoda ACB Algoritmus jednoho kroku komprese 3. Zjištění délky shodné části obou contentů : 4 Nová položka kontext: swiss m content: iss is m… Aktuální stav slovníku: 4. Zjištění prvního neshodného 1 …swiss |m znaku v aktuálním contentu : ´i´ 2 …swi|ss m 3 …s|wiss m 5. Na výstup jde trojice 4 …swis|s m 4 [vzdálenost, délka, znak] 5 …swiss| m tj: [4, 4, ‘i’] 6 …sw|iss m 4
Základní metoda ACB Algoritmus jednoho kroku komprese Nová položka kontext: swiss m content: iss is m… 6. Přidáme do slovníku nové položky, které vznikly postupným rozšířením (posunutím) kontextu Aktuální stav slovníku: o nově zakódované znaky : 1 …swiss |m 2 …swi|ss m …swiss m|iss i …swiss mi|ss i 3 …s|wiss m …swiss mis|s i 4 …swis|s m …swiss miss| i 5 …swiss| m …swiss miss |i 6 …sw|iss m
Základní metoda ACB Stav slovníku s novými položkami: 1 …swiss miss |i 2 …swiss |miss i 3 …swiss mi|ss i 4 …swi|ss miss i 5 …swiss m|iss i 6 …s|wiss miss i 7 …swiss mis|s i 8 …swis|s miss i 9 …swiss miss| i 10 …swiss| miss i 11 …sw|iss miss i
Základní metoda ACB Algoritmus jednoho kroku dekomprese 1. Nalezneme nejvíce podobný kontext ve slovníku (zprava doleva) : položka 2 2. Z prvního členu trojice [v, d, z] a nalezené položky spočítáme pozici položky podobného contentu: v=4 položka 6 4 Poslední položka kontext: swiss m content: neznámý trojice: [4, 4, ´i´] Aktuální stav slovníku: 1 …swiss |m 2 …swi|ss m 3 …s|wiss m 4 …swis|s m 5 …swiss| m 6 …sw|iss m
Základní metoda ACB Algoritmus jednoho kroku dekomprese 3. Z druhého členu trojice a nalezeného contentu získáme textový řetězec : d=4 „iss „ 4. Řetězec pošleme spolu s třetím členem trojice na výstup : i=´i´ „iss i„ 5. Doplníme slovník stejně jako u komprese 4 Poslední položka kontext: swiss m content: neznámý trojice: [4, 4, ´i´] Aktuální stav slovníku: 1 …swiss |m 2 …swi|ss m 3 …s|wiss m 4 …swis|s m 5 …swiss| m 6 …sw|iss m
Základní metoda ACB Parametry metody: • max. délka kontextu • max. délka contentu • poloměr hledání contentu
Vylepšená metoda ACB 1. V každém kroku vytvoříme asociativní seznam tak, že ze …your |swiss mis slovníku vybereme všechny …your swiss |mis ty položky, jejichž kontexty se …your swiss mi|s …your swi|ss mis shodují s aktuálním kontextem …your swiss m|is v alespoň k znacích. …yo|ur swiss mis Aktuální položka (řetězec S): …your swiss mis|s is mistress… pro k = 9 …young mis|creant… …unusual mis|fortune… …plain mis|ery… …no swiss mis|spelled it so… …no swiss mis|s is mistaken… …or swiss mis|read it to… …your swiss mis|s is missing… …always mis|placed it… …your swis|s mis
Vylepšená metoda ACB 2. Tento seznam setřídíme zleva doprava a zjistíme, mezi které položky padne řetězec S. 1. 2. 3. 4. 5. swiss swiss mis|read it to… mis|s is missing… mis|s is mistaken… mis|s is trouble… mis|spelled it so… 3. swiss mis|s is mistaken… S. swiss mis|s is mistress… 4. swiss mis|s is trouble… Aktuální položka (řetězec S): …your swiss mis|s is mistress…
Vylepšená metoda ACB 3. Nyní budeme pracovat s trojicí řetězců jako s bitovými poli. A protože jsou setříděné, mohou nastat dva případy. a) 3. xx…x 0 zz…z 0 A S. xx…x 0 zz…z 1 B 4. xx…x 1 CC… b) 3. xx…x 0 CC… S. xx…x 1 zz…z 0 B 4. xx…x 1 zz…z 1 A xx…x – bity, ve kterých se shodují všechny tři řetězce zz…z – bity, ve kterých se shoduje řetězec S s jedním z ostatních řetězců
Vylepšená metoda ACB 4. Na výstup jde trojice [m, b, l], kde m je index předchozí položky před S, b je hodnota podtrženého bitu a l je délka řetězce zz…z a) b) 3. xx…x 0 zz…z 0 A 3. xx…x 0 CC… S. xx…x 0 zz…z 1 B S. xx…x 1 zz…z 0 B 4. xx…x 1 CC… 4. xx…x 1 zz…z 1 A
Vylepšená metoda ACB Dekomprese proběhne opět inverzně.
Kódování – statistika trojic • Konečný výsledek komprese je podstatně závislý na konečném kódování Referenční příklad: Textový (html) soubor, 250 k. B, povídka v češtině, Abeceda: znaky hodnot ASCII Základní metoda ACB
Kódování – statistika trojic posloupnost prvních členů trojic Rozsah hodnot Ovlivňuje zejména parametr ‘poloměr hledání contentu’
Kódování – statistika trojic četnost prvních členů trojic
Kódování – statistika trojic posloupnost druhých členů trojic Rozsah hodnot
Kódování – statistika trojic četnost druhých členů trojic
Odkazy Buyanovsky G. , Associative Coding, Monitor, duben 1994 Moskva, č. 8 Salomon D. , Data Compression, 1997, Springer, New York Web: http: //www. ms. mff. cuni. cz/~jtro 8667/vytvory/acb. htm
0912e8f6a70a79961a77188381056bcc.ppt