Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Komprimace dat a kryptologie Tomáš Foltýnek Kompresní algoritmy.

Podobné prezentace


Prezentace na téma: "Komprimace dat a kryptologie Tomáš Foltýnek Kompresní algoritmy."— Transkript prezentace:

1 Komprimace dat a kryptologie Tomáš Foltýnek Kompresní algoritmy

2 Komprimace dat a kryptologie Opakování Co je to kódování? Jaký je rozdíl oproti šifrování? Jak pracuje Shanon-Fanovo kódování? Jak pracuje Huffmanovo kódování?

3 Komprimace dat a kryptologie Problém komprese Balení věcí do skříně nebo batohu Úspora úložného prostoru Zjednodušení transportu Nezáleží na kapacitě, problém nedostatku místa nakonec vždycky přijde

4 Komprimace dat a kryptologie Komprese dat Komprese a komprimace jsou synonyma Kompresní algoritmus transformuje řetězec S 1 délky d 1 na řetězec S 2 délky d 2 Požadujeme, aby: –d2 < d1–d2 < d1 –I(S 1 ) = I(S 2 ), kde I je informační hodnota Jak to udělat?

5 Komprimace dat a kryptologie Jak to udělat? Základní myšlenka: Vyhledáme nadbytečné informace, které vypustíme. –Viz teorie informace z minulé přednášky Příklad: qu v angličtině Jiná myšlenka: Vypustíme nějaké informace tak, “aby to nebylo poznat“. Text lze komprimovat 1:2, obrázky 1:50, video až 1:1000

6 Komprimace dat a kryptologie Vlastnosti kompresních algoritmů Ztrátovost / bezeztrátovost komprese Kompresní poměr k = d 2 /d 1 (k<=1) –někdy udáván v procentech –kompresní zisk: z = 1 – k Metody lze rozdělit na: –statické x adaptivní –symetrické x asymetrické –proudové x blokové

7 Komprimace dat a kryptologie Historie kódování a komprese 1820 Braillovo písmo –pole 3x2 bodů –písmena, slova 1838 Morseova abeceda –Samuel Morse –kódování pro telegraf

8 Komprimace dat a kryptologie Historie kódování a komprese 1800 Baudotův kód –5bitový kód pro telegraf –písmena, znaky –přepínač LTRS/FIGS Dvacáté století –s rozvojem IT jde i rozvoj kompresních algoritmů –Huffmann, Shannon, Lempel, Ziv, Welch

9 Komprimace dat a kryptologie Jednoduché kompresní metody Komprese slovníku –opakující se písmena nahradíme číslem vyjadřující jejich počet –54 zn.  44 zn. Jaký je kompresní poměr a zisk? Adam adaptace3ptace adekvátní2ekvátní adept3pt admirál2mirál afekt1fekt aféra2éra agenda1genda agent4t

10 Komprimace dat a kryptologie Metoda potlačení nul Jedna z nejstarších, v kombinaci s jinými dodnes používaná V souboru se vyskytují sekvence stejných znaků (mezery) Sekvenci nahradíme indikátorem a číslem Dekomprese: načteme-li indikátor, přečteme číslo a vypíšeme příslušný počet nul Efektivní až při sekvenci tří nul Posunutá stupnice => při 8bitovém kódování 258 až nul v jednom znaku

11 Komprimace dat a kryptologie Metoda potlačení nul – příklad Vstupní text: AB---CAB----B-A CB Výstupní text: ABI0CABI1B-AI4CB Řetězec 24B zkomprimován na 16B Dekomprese: Při načtení I přečteme číslo (x) a vypíšeme x+3 nul I se nesmí vyskytovat v textu

12 Komprimace dat a kryptologie Metoda bitové mapy Potlačení výskytu často opakovaného znaku (nuly) Ke každé osmiznakové sekvenci vytvoříme bitovou mapu výskytu nul Ukládáme vždy bitovou mapu a sekvenci nenulových znaků V souboru musí být alespoň 1/8 nul

13 Komprimace dat a kryptologie Metoda bitové mapy – příklad Vstupní text: AB-CA--C Bitová mapa: Výstupní text: ABCAC Řetězec 8B zkomprimován na 6B Při dekompresi se doplňují nuly podle bitové mapy, ostatní znaky podle textu

14 Komprimace dat a kryptologie Proudové kódování – RLE Run Length Encoding (kódování délkami sekvencí) Vylepšení metody potlačení nul Označme a n posloupnost znaku a délky n Každou posloupnost a n nahradíme sekvencí Ian Příklad –Vstupní text: abbbbcccaaaaaaaabbbb –Výstupní text: aIb4cccIa8Ib4 –Řetězec 20B zkomprimován na 13B Efektivní pro n>3

15 Komprimace dat a kryptologie RLE s posunutou stupnicí Náhradu sekvence a n provádíme jen při n>3 Na výstup umístíme Ia(n-3) V 1B až 258 opakování (místo 255) Příklad –Vstupní text: abbbbcccaaaaaaaabbbb –Výstupní text: aIb1cccIa5Ib1 –Řetězec 20B zkomprimován na 13B

16 Komprimace dat a kryptologie RLE bez indikátoru komprese Znak I se nesmí vyskytovat v textu – nevýhoda Každou sekvenci a n pro n>=3 nahradíme sekvencí aaa(n-3) Dekomprese: Při načtení trojice stejných znaků načteme číslo – počet zbývajících znaků Nepotřebujeme indikátor komprese Při n=3 dochází k expanzi!!! aaa0

17 Komprimace dat a kryptologie Využití algoritmu RLE V grafických a zvukových souborech s malými změnami –malá barevná hloubka, jednoduchá kresba –záznam hlasu Hlavní algoritmus: *.PCX Pomocný algoritmus: *.JPG Faxy –většina faxu je bílá, ojediněle černý bod

18 Komprimace dat a kryptologie Kódování delta U některých typů dat nastává lineární růst (pokles) –hudba, animace První byte uložíme tak, jak je Každý další byte je kódován jako rozdíl (delta) oproti předcházejícímu bytu Příklad –Vstupní soubor: –Delta kódování:

19 Komprimace dat a kryptologie Kódování delta – použití Sekvence stejných znaků jsou nahrazeny sekvencemi nul Kromě toho získáme nové sekvence stejných znaků –následné kódování RLE má větší efekt Použití zejména v audioformátech

20 Komprimace dat a kryptologie Algoritmus LZW84 Lempel – Ziv – Welch Vylepšení LZ78 (Lempel – Ziv 1978) Slovníkový algoritmus pro bezeztrátovou kompresi Použitý ve formátech GIF, TIFF a PDF Do roku 2004 chráněn patentem Dnes již překonaný Čím delší text, tím lepší kompresní poměr

21 Komprimace dat a kryptologie Vývoj algoritmu LZW84 LZ77 –Používá klouzavé okno, v něm hledá opakující se sekvence –Vstup: Leze leze po železe –Výstup: Leze l[2,3] po že[5,4] LZ78 –Místo klouzavého okna tvoří vlastní slovník –Slovník narůstá a je třeba jej vyprazdňovat

22 Komprimace dat a kryptologie LZW komprese forall c do add c to dictionary w = ‘’ while read(c) do if wc is in dictionary then w = wc else add wc to dictionary write code(w) w = c endif done

23 Komprimace dat a kryptologie LZW dekomprese read(k) write(dictionary_entry(k)) w = k while read(k) do if k is in dictionary then entry = dictionary_entry(k) else entry = w + w[0] endif write(entry) add w+entry[0] to dictionary w = entry done

24 Komprimace dat a kryptologie Předpřipravení dat pro kompresi Úkolem těchto algoritmů je modifikovat data tak, aby měla následná komprese lepší poměr –typicky se jedná o vhodnou reverzibilní permutaci Burrows-Wheelerova transformace Move-to-front transformace

25 Komprimace dat a kryptologie Burrows-Wheelerova transformace Příprava textu pro RLE Výsledný text má stejnou délku –plus znak začátku a konce –ale lépe se komprimuje Algoritmus transformace: –přidej k textu znak začátku a konce –vytvoř tabulku všech posuvů daného textu –seřaď řádky podle abecedy –na výstup zapiš poslední sloupec

26 Komprimace dat a kryptologie Burrows-Wheelerova transformace Zpětná transformace –opakuj tolikrát, kolik je znaků ve vstupním textu vezmi aktuální tabulku a před první sloupec vepiš vstupní text seřaď řádky aktuální tabulky podle abecedy –výsledkem je původní tabulka –vezmi řádek začínající znakem začátku řádku

27 Komprimace dat a kryptologie Move-to-front transformace Příprava textu tak, aby častější symboly byly kódovány nižšími čísly Proudové zpracování Algoritmus transformace –Začínáme se seřazenou abecedou (tabulkou) –Zapíšeme index symbolu na vstupu –V tabulce indexů právě použitý symbol přesuneme na začátek Kódování je reverzibilní –zpětná transformace probíhá stejně

28 Komprimace dat a kryptologie Další algoritmy PPM (Prediction by Partial Matching) –adaptivní statistická metoda –předpověď následujících dat na základě předchozích CM (Context Mixing) –kombinace více statistických metod


Stáhnout ppt "Komprimace dat a kryptologie Tomáš Foltýnek Kompresní algoritmy."

Podobné prezentace


Reklamy Google