Kompresní metoda ACB Associative Coder of Buyanovsky autor: George Buyanovsky připravil Tomáš Skopal podle knihy „Data Compression“ od D. Salomona, 1997,

Slides:



Advertisements
Podobné prezentace
Algoritmy zpracování textů II
Advertisements

The Wheel of Fortune Honza Blažek -
L 04 – Záhlaví / Zápatí § Pojem Záhlaví – Zápatí
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Zakázkově vytvořená aplikace Technologický software HTH8 s.r.o, Eimova 880, Polička, tel.: , fax: ,
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Kompresní algoritmy.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
ALGO – Algoritmizace 6. cvičení
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Algoritmy I. Cvičení č. 10.
Manažerská grafika: Program č.3 Jaroslav LosSB 272.
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Algoritmy zpracování textů II
Komprese textových, video a audio dat.  Komprese   JPEG: 
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Kombinatorické algoritmy
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
B-strom je dynamická indexová struktura.
C# - znakové typy a řetězce
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Statistické metody komprese dat a Shannon-Fanův kód.
PHP FUNKCE DANIEL BEZNOSKOV. Seznam funkcí Strlen File Substr Trim File_exists Strrev Strtr.
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
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.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Teorie informace.
PHP – zasílání dat z formuláře
Algoritmy a programovací techniky
Datové typy a práce s nimi
Hromadná korespondence
Osnova přednášky klasifikace kompresních metod
Číselné soustavy david rozlílek ME4B
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Úvod.
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
JavaScript Podmínky, cykly a pole.
Radim Farana Podklady pro výuku
Využití vzorců a funkcí k úpravám v textu
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Aplikační a programové vybavení
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
NYNÍ PRO VÁS PŘIPRAVUJEME Výpisky nově Toto je minulost !
Kompresní algoritmus LZW Dokumentografické informační systémy.
Rozpoznávání v řetězcích
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Huffmanův kód - aplikace.
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
Úvod do UNIXu (4 th round) David Hoksza (většina sekce o vi a obrázek na slidu 7 převzat od Libora Forsta –
Grafický zápis algoritmů (vývojové diagramy) Eratosthenovo síto
VŠB –TUO ATŘ Manažerská grafika Grafy v MS Excel 2003 Podešva Petr
MIS - Manažerské informační systémy 1. cvičení – Internet a informace
13.
1. lekce SM 315 Statistika v SAS a víceúrovňové lineární modely.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Vyhledávání vzorů (template matching)
Radim Farana Podklady pro výuku
ACB a DIS Využití kompresní metody ACB pro potřeby DIS Tomáš Skopal VŠB-TU Ostrava.
Reprezentace dat v počítači. základní pojmy  BIT označení b nejmenší jednotka informace v paměti počítače název vznikl z angl. BINARY DIGIT (dvojkové.
Elektronické učební materiály - II. stupeň Informatika – aplikace informačních technologií Autor: Bc. Pavel Šiktanc Internetové stránky III. Co se všechno.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Překladače 5. Syntaktická analýza
Název projektu: Moderní výuka s využitím ICT
Vzorové řešení zápočtového testu
Algoritmizace a programování
VY_32_INOVACE_pszczolka_ Registry – paralelní, sériový
Programování 2. hodina RNDr. Jan Lánský, Ph.D.
VY_32_INOVACE_pszczolka_ Registry - test
Výukový materiál zpracován v rámci projektu
Algoritmizace a datové struktury (14ASD)
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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 contextcontent 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 contextcontent 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 contextcontent 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

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...swiss |m...swi|ss m...s|wiss m...swis|s m...swiss|m...sw|iss m kontextycontenty

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...swiss |m...swi|ss m...s|wiss m...swis|s m...swiss|m...sw|iss m kontextycontenty

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

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

Základní metoda ACB Algoritmus jednoho kroku komprese 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 Nová položka kontext: swiss m content: iss is m… 4 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´ [4, 4, ‘i’]

Základní metoda ACB Algoritmus jednoho kroku komprese 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 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 o nově zakódované znaky : …swiss m|iss i …swiss mi|ss i …swiss mis|s i …swiss miss| i

Základní metoda ACB 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 Stav slovníku s novými položkami:

Základní metoda ACB 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 Poslední položka kontext: swiss m content: neznámý trojice: [4,4,´i´] 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 Algoritmus jednoho kroku dekomprese

Základní metoda ACB 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 Poslední položka kontext: swiss m content: neznámý trojice: [4,4,´i´] 4 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 : 5. Doplníme slovník stejně jako u komprese i=´i´  „iss i„

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

Vylepšená metoda ACB …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 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. Aktuální položka (řetězec S): …your swiss mis|s is mistress… pro k = 9

Vylepšená metoda ACB Aktuální položka (řetězec S): …your swiss mis|s is mistress… 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… 3. swiss mis|s is mistaken… S. swiss mis|s is mistress… 4. swiss mis|s is trouble…

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…x0zz…z0A S. xx…x0zz…z1B 4. xx…x1CC… b) 3. xx…x0CC… S. xx…x1zz…z0B 4. xx…x1zz…z1A 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) 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 Dekomprese proběhne opět inverzně.

Kódování – statistika trojic Referenční příklad: Textový (html) soubor, 250 kB, povídka v češtině, Abeceda: znaky hodnot ASCII Základní metoda ACB Konečný výsledek komprese je podstatně závislý na konečném kódování

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

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: