130 likes | 340 Views
Bezztrátové komprese dat. Jan Tejmar. Obsah. Využití bezztrátové komprese dat Používané metody komprese dat Srovnání efektivnosti různých typů. Využití bezztrátové komprese. Archivace velkých množství dat Zefektivnění datových přenosů
E N D
Bezztrátové komprese dat Jan Tejmar
Obsah • Využití bezztrátové komprese dat • Používané metody komprese dat • Srovnání efektivnosti různých typů
Využití bezztrátové komprese • Archivace velkých množství dat • Zefektivnění datových přenosů • Zmenšení objemu dat bez ztráty informačního obsahu • Originální data a data po dekompresi komprimovaného • souboru jsou totožná
Metody komprese dat • RLE – Run lenght encoding – opakování znaků ( PCX) • Statistické metody • - Huffmanovo kódování • - Aritmetické kódování • - Shannon-Fanovo kódování • Slovníkové metody • - LZ77 (PNG) • - LZ78 • - LZW (GIF)
RLE – Run length encoding • Použití: zřídka pro kompresi textů, častěji pro obrazovou informaci • Princip: opakující se symboly se kódují dvojicí (počet_opakování , symbol) Kódování délky se provádí: • u každého znaku je udán počet opakování Př. Vstup: AAAABBCDDDDABD Výstup: 4A2B1C4D1A1B1D
RLE – Run Length encoding → (3,Č),(2,B) → (1,B), (3,Č), (1,B) → (2,B), (2,Č), (1,B) → (5,B) → (2,B), (3,Č) → (2,B), (3,Č) • pro jaké obrázky RLE výhodné? – obrázek s mnoha vodorovnými čarami • pro jaké obrázky RLE neefektivní? – obrázek se svislými čarami → žádná komprese – obrázek, kde se neopakují hodnoty sousedních pixelů (např. šachovnice) → záporná komprese → zvětšení výsledného souboru
Statistické metody Huffmanovo kódování • algoritmus navržen v Davidem Huffmanem v roce 1952 • využívá optimálního (nejkratšího) prefixového kódu y j (kód žádného znaku není prefixem jiného znaku). • kódové symboly mají proměnnou délku Princip: Metoda je založená na stanovení četnosti výskytů jednotlivých znaků v kódovaném souboru a kódování znaků s největší četností slovem s nejkratší délkou. Algoritmus kódování: 1. Zjištění četnosti jednotlivých znaků v kódovaném souboru 2. Vytvoření binárního stromu (Huffmanova kódu jednotlivých znaků) seřadíme posloupnost postupně zleva doprava 3. Uložení stromu 4. Nahrazení symbolů jednotlivými kódy (posloupností bitů) Výhody – velmi rychlá komprese a dekomprese - nepříliš velké nároky na paměť Nevýhody – nutnost uložení binárního stromu a slabší kompresní poměr
Statistické metody Příklad:
Statistická metoda Aritmetické kódování - reprezentaci vstupního řetězce reálným číslem R pro které platí 0 R < 1. Počáteční interval si rozdělíme v poměru četností výskytu znaků. Každý znak je tedy reprezentován určitým menším podintervalem. Poté v závislosti na aktuálním znaku vybereme jeden podinterval, který opět rozdělíme v poměru četností a načteme další znak. Tímto postupem se interval neustále zužuje. Z posledního intervalu vybereme jedno reprezentující číslo, jehož zápis představuje zkomprimovaný řetězec.
Slovníkové metody LZ77 (Lempel-Ziv) metoda Princip metody spočívá v postupném prohledávání celého souboru tak, že vždy část rozdělíme na dvě „okénka“, kde první tvoří historii kterou prohledáváme a druhým okénkem se dívám dopředu a hledám zda v něm není posloupnost znaků, která se už jednou vyskytuje v okénku historie. Pokud takovou posloupnost najdu, nahradím ji uspořádanou dvojicí: (offset o kolik znaků jdu zpět, délka sekvence) Např. zápis (10,2) znamená že mám jít o deset znaků zpět a vzít odsud 2 znaky – viz. schéma
Slovníkové metody • LZW (Lempel-Ziv-Welch) metoda • funguje na principu tvorby slovníku, do kterého se ukládají opakující se znaky. • jakmile se znaky objeví v souboru znovu, jsou okamžitě nahrazeny číslem, odkazující na ony znaky ve slovníku. • - slovníky se neukládají do zkomprimovaného souboru (jsou většinou velké a • komprimace by neměla smysl), nýbrž jsou dělány tak důmyslně, že se při dekódování tvoří znovu ze zakódovaných souborů. Fráze Kódové slovo a 1 b 2 c 3 ab 4 bc 5 ca 6 abc 7 cab 8 bcb 9 bcba 10 Příklad: Vstupní abeceda A={a, b, c} Vstupní řetězec V=abcabcabcbcba Výstupní řetězec W=1 2 3 4 6 5 9 1 Slovník je po zpracování celého vstupního řetězce zobrazen v tabulce.
Porovnání účinnosti 1. černo-bílý obrázek: velké změny v obraze 2. šestnáctibarevný: velké plochy stejné barvy, málo změn 3. 256barevný obrázek: velká stejnobarevná plocha (pozadí), více změn 4. true-color obrázek: reálná fotografie, mnoho změn v obraze, barevné přechody