1 / 26

Kompresn í metoda ACB

Kompresn í metoda ACB. A ssociative C oder of B uyanovsky. 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)

biana
Télécharger la présentation

Kompresn í metoda ACB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. context content Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis

  4. context content Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis s mi|ss is miss

  5. context content Context & content • posuvné okno podobně jako u LZ 77 text: swiss miss is missing • každý posun okna o jeden znak vytvoří novou položku context-content : ss m|iss is mis s mi|ss is miss mis|s is missi

  6. ...swiss |m ...swi|ss m ...s|wiss m ...swis|s m ...swiss|m ...sw|iss m kontexty contenty Kontextový slovník • Struktura slovníku • je tvořen položkami kontext-content • setříděná historie všech kontextů-contentů zdrojového textu • položka je zatřizována lexikálně podle svého kontextu vůči kontextům položek ve slovníku – a to zprava doleva

  7. ...swiss |m ...swi|ss m ...s|wiss m ...swis|s m ...swiss|m ...sw|iss m kontexty contenty Kontextový slovník • Stav slovníku • je tvořen identicky pro kompresi • i dekompresi • narůstá o jednu položku pro každý zpracovaný znak textu (tj. na konci zpracování textu o n znacích má n položek) • realizován ukazateli do zdroj. textu

  8. zpracovaný text nový kontext Základní metoda ACB Nová položka:swiss m|iss is missing 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 Stav po šesti zpracovanýchznacích (stejný u komprese i dekomprese) …

  9. položka 2 položka 6, vzdálenost 4 4 Základní metoda ACB Nová položka kontext: swiss m content: iss is m… Algoritmus jednoho kroku komprese 1. Nalezení nejvíce podobného kontextu ve slovníku (zprava doleva) : 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 2. Nalezení vzdálenosti nejvíce podobného contentu ve slovníku od pozice nalezeného kontextu (poloměr hledání) :

  10. Nová položka kontext: swiss m content: iss is m… Algoritmus jednoho kroku komprese 4 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 ´i´ 4 4 Základní metoda ACB 3. Zjištění délky shodné části obou contentů : 4. Zjištění prvního neshodného znaku v aktuálním contentu : 5. Na výstup jde trojice [vzdálenost, délka, znak] tj: [4, 4, ‘i’]

  11. Základní metoda ACB Nová položka kontext: swiss m content: iss is m… Algoritmus jednoho kroku komprese 6. Přidáme do slovníku nové položky, které vznikly postupným rozšířením (posunutím) kontextu o nově zakódované znaky : 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 …swiss m|iss i …swiss mi|ss i …swiss mis|s i …swiss miss| i …swiss miss |i

  12. Základní metoda ACB Stav slovníkus 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

  13. položka 2 v=4 položka 6 4 Základní metoda ACB Poslední položka kontext: swiss m content: neznámý trojice: [4,4,´i´] Algoritmus jednoho kroku dekomprese 1. Nalezneme nejvíce podobný kontext ve slovníku (zprava doleva) : 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 2. Z prvního členu trojice [v,d,z] a nalezené položky spočítáme pozici položky podobného contentu:

  14. d=4 „iss „ Základní metoda ACB Poslední položka kontext: swiss m content: neznámý trojice: [4,4,´i´] Algoritmus jednoho kroku dekomprese 3. Z druhého členu trojice a nalezeného contentu získáme textový řetězec : 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 4. Řetězec pošleme spolu s třetím členem trojice na výstup : i=´i´ „iss i„ 4 5. Doplníme slovník stejně jako u komprese

  15. Základní metoda ACB • Parametry metody: • max. délka kontextu • max. délka contentu • poloměr hledání contentu

  16. Vylepšená metoda ACB 1. V každém kroku vytvoříme asociativní seznam tak, že ze slovníku vybereme všechny ty položky, jejichž kontexty se shodují s aktuálním kontextem v alespoň k znacích. …your |swiss mis …your swiss |mis …your swiss mi|s …your swi|ss mis …your swiss m|is …yo|ur swiss mis …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 Aktuální položka (řetězec S): …your swiss mis|s is mistress… pro k = 9

  17. 3.swiss mis|s is mistaken… S. swiss mis|s is mistress… 4.swiss mis|s is trouble… Vylepšená metoda ACB 2. Tento seznam setřídíme zleva doprava a zjistíme, mezi které položky padne řetězec S. 1.swiss mis|read it to… 2.swiss mis|s is missing… 3.swiss mis|s is mistaken… 4.swiss mis|s is trouble… 5.swiss mis|spelled it so… Aktuální položka (řetězec S): …your swiss mis|s is mistress…

  18. a) 3. xx…x0zz…z0A S. xx…x0zz…z1B 4. xx…x1CC… b) 3. xx…x0CC… S. xx…x1zz…z0B 4. xx…x1zz…z1A 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. 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ů

  19. a) 3. xx…x0zz…z0A S. xx…x0zz…z1B 4. xx…x1CC… b) 3. xx…x0CC… S. xx…x1zz…z0B 4. xx…x1zz…z1A 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

  20. Vylepšená metoda ACB Dekomprese proběhne opět inverzně.

  21. 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 kB, povídka v češtině, Abeceda: znaky hodnot ASCII Základní metoda ACB

  22. Rozsah hodnot Kódování – statistika trojic posloupnost prvních členů trojic Ovlivňuje zejména parametr ‘poloměr hledání contentu’

  23. Kódování – statistika trojic četnost prvních členů trojic

  24. Rozsah hodnot Kódování – statistika trojic posloupnost druhých členů trojic

  25. Kódování – statistika trojic četnost druhých členů trojic

  26. 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/~jtro8667/vytvory/acb/acb.htm

More Related