8.3.2001SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Aritmetické kódování.

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

Slovní úlohy o pohybu střetávací
Rozhodnutelnost.
PRIPO Principy počítačů
Třídění dat OA a VOŠ Příbram. Třídění  rozdělení jednotek souboru do takových skupin, aby co nejlépe vynikly charakteristické vlastnosti zkoumaných jevů.
Kryptografie Šifrování
Autor Mgr. Šárka Čížová Anotace
Převody jednotek délky objemu hmotnosti času
Kompresní algoritmy.
MECHANICKÉ VLNĚNÍ 20. Mechanické vlnění – příklady II.
Škola: SŠ Oselce, Oselce 1, Nepomuk, Projekt: Registrační číslo: CZ.1.07/1.5.00/ Název: Modernizace výuky všeobecných.
Algoritmy I Cvičení č. 4.
Algoritmy I Cvičení č. 3.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Příklady z Matlabu 4 Příklady na řídící příkazy , IF , SWITCH , FOR , WHILE , příkazy vstupu a výstupu INPUT a DISP.
Desetinný zlomek Helena Půlkrábková.
ČLOVĚK A JEHO SVĚT 2. Ročník - hodiny, minuty Jana Štadlerová ŽŠ Věšín.
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ř.
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není –li uvedeno jinak, je tento materiál zpracován.
Vodorovný vrh Graf trajektorie Mgr. Alena Tichá.
Základy informatiky přednášky Efektivní kódy.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Adaptivní Huffmanův kód.
BOX - PLOT OA a VOŠ Příbram.
Jazyk vývojových diagramů
Informatika pro ekonomy II přednáška 2
Procvičování vzorce.
Histogram OA a VOŠ Příbram
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Statistické metody komprese dat a Shannon-Fanův kód.
Goniometrické funkce Kotangens Nutný doprovodný komentář učitele.
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.
Náhoda, generátory náhodných čísel
Statistika 8. ročník Autorem materiálu je Mgr. Jana Čulíková
Téma: SČÍTÁNÍ A ODČÍTÁNÍ RACIONÁLNÍCH ČÍSEL 2
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.
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
Radim Farana Podklady pro výuku pro akademický rok 2013/2014
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Teorie informace.
Střední škola Oselce Škola: SŠ Oselce, Oselce 1, Nepomuk, Projekt: Registrační číslo: CZ.1.07/1.5.00/ Název: Modernizace.
Komprimace dat a kryptologie.  Myšlenka: Jak zakódovat vstupní data do jediného čísla?  Data se zakódují do zlomku n, 0 ≤ n < 1, n ∊ R  Bezztrátová.
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.4.00/ Šablona: IV / 2 Č. materiálu:VY_ 42 _INOVACE_.
Autor: Autor: MSc. Marcela Vojáčková MSc. Marcela Vojáčková Zpracováno: Ročník (obor) 2. ročník (Hotelnictví) M/01 2. ročník.
Příklady v jazyku C – část 6
Základní jednotky, záznam a kódování informací
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Úvod.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Pavel Najman. Obchodní akademie a Střední odborná škola logistická, Opava, příspěvková.
Základy Číslicové Techniky
ZÁZNAM A KÓDOVÁNÍ INFORMACÍ
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Opakované měření délky
Radim Farana Podklady pro výuku
Přesnost rozměrů..
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Kontextové metody.
Znaky dělitelnosti.
Pascal - cykly.
Uložení čísel v počítači Informatika pro ekonomy II doplněk.
Kompresní metoda ACB Associative Coder of Buyanovsky autor: George Buyanovsky připravil Tomáš Skopal podle knihy „Data Compression“ od D. Salomona, 1997,
Kompresní algoritmus LZW Dokumentografické informační systémy.
Rozpoznávání v řetězcích
Základy ALgoritmizace 6. cvičení. Program cvičení Kontrolní bod 1 zakončení grafického zápisu algoritmů - vývojových diagramů –identifikátory a proměnné.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Huffmanův kód - aplikace.
Algoritmy komprese dat
doc. RNDr. Zdeněk Botek, CSc.
Příklady v jazyku C – část 2
4. Typ pole 4.1 Jednorozměrná pole
České vysoké učení technické Fakulta elektrotechnická Datové typy, výrazy vstup, výstup Jazyk JAVA A0B36PRI - PROGRAMOVÁN Í v1.02.
Radim Farana Podklady pro výuku
Opakované měření délky
Ukládání dat v paměti počítače
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
ALG 09 Radix sort (přihrádkové řazení) Counting sort
Transkript prezentace:

SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Aritmetické kódování

SWI072 Algoritmy komprese dat2 Aritmetické kódování u C.Shannon (1948) u P.Elias (1960?), Jelinek(1968) u Pasco, Rissanen (1976) u Pennebaker, Mitchell,Langdon,Arps (198?) Q-kodér (IBM) u Witten,Neal,Cleary (1987)

SWI072 Algoritmy komprese dat3 Aritmetické kódování - příklad u Zakódujeme zprávu BILL GATES

ABEGILST

SWI072 Algoritmy komprese dat5 Kódování u d:=0 ; h:=1; read(znak)  while znak  EOF do délka-intervalu := h - d d := d + délka-intervalu * dolní-mez(znak) h := d + délka-intervalu * horní-mez(znak) read(znak) od u return d

SWI072 Algoritmy komprese dat6 Dekódování u d:=0 ; h:=1 u repeat u délka-intervalu := h - d  najdi znak takový, aby dolní-mez(znak)  (kod-d)/ délka-intervalu < horní-mez(znak) u output(znak) u d := d + délka-intervalu * dolní-mez(znak) u h := d + délka-intervalu * horní-mez(znak) u until není dekódováno celé vstupní slovo ABEGILST kod =

SWI072 Algoritmy komprese dat7 Implementace v celočíselné aritmetice  interval   interval  d  h  d, h-1

SWI072 Algoritmy komprese dat8 Implementace v celočíselné aritmetice u abeceda A = {1, 2,…, k} u f i = četnost i-tého znaku ve zprávě Z= z 1 z 2 … z n

SWI072 Algoritmy komprese dat9 Příklad - kódování u zakódujeme vstup acba

SWI072 Algoritmy komprese dat10 Příklad - kódování u zakódujeme vstup acba u w=8 d (0) = 0 = ( ) 2 h (0) = 255 = ( )

SWI072 Algoritmy komprese dat11 Příklad - kódování u zakódujeme vstup acba u w=8 d (0) = 0 = ( ) 2 h (0) = 255 = ( )

SWI072 Algoritmy komprese dat12 Příklad - kódování acba - 2.krok

SWI072 Algoritmy komprese dat13 Příklad - kódování acba - 2.krok

SWI072 Algoritmy komprese dat14 Příklad - kódování acba - 2.krok u output(1); d (2) <<= 1 d (2) = ( ) 2 h (2) << 1; h (2) ++ h (2) = ( )

SWI072 Algoritmy komprese dat15 Příklad - kódování acba - 2.krok u d (2) = ( ) 2 h (2) = ( )

SWI072 Algoritmy komprese dat16 Příklad - kódování acba - 2.krok u d (2) = ( ) 2 h (2) = ( ) 2 d (2) = ( ) 2 h (2) = ( ) !

SWI072 Algoritmy komprese dat17 Příklad - kódování acba - 2.krok u d (2) = ( ) 2 h (2) = ( ) 2 d (2) = ( ) 2 h (2) = ( ) 2  d (2) = ( ) 2  d (2) = ( ) 2 = 28 h (2) = ( ) 2  h (2) = ( ) 2 = 175 u zavedeme čítač, inicializace čítač := 0 čítač !

SWI072 Algoritmy komprese dat18 Příklad - kódování acba - 3.krok u d (2) = ( ) 2 = 28 h (2) = ( ) 2 = 175 u u output(1); d (3) <<= 1 d (3) = ( ) 2 = 36 h (3) <<= 1; h (3) ++ h (3) = ( ) 2 = 41 u output(0); čítač -- u output(0); d (3) <<= 1 d (3) = ( ) 2 = 72 h (3) <<= 1; h (3) ++ h (3) = ( ) 2 = 83

SWI072 Algoritmy komprese dat19 Příklad - kódování acba - 3.krok u d (3) = ( ) 2 = 72 h (3) = ( ) 2 = 83 u output(0); d (3) <<= 1 d (3) = ( ) 2 = 144 h (3) <<= 1; h (3) ++ h (3) = ( ) 2 = 167 u output(1); d (3) <<= 1 d (3) = ( ) 2 = 32 h (3) <<= 1; h (3) ++ h (3) = ( ) 2 = 79 u output(0); d (3) <<= 1 d (3) = ( ) 2 = 64 h (3) <<= 1; h (3) ++ h (3) = ( ) 2 = 159 u čítač ++ ;d (3) = ( ) 2 = 0 h (3) = ( ) 2 = 191

SWI072 Algoritmy komprese dat20 Příklad - kódování acba - 4.krok u d (3) = ( ) 2 = 0 h (3) = ( ) 2 = 191

SWI072 Algoritmy komprese dat21 Kódování - popis expanze intervalu  E 1 :  0, 0.5)  0, 1)  E 1 (x) = 2x  if  d,h  then output(0) while čítač >0 do output(1) čítač -- od d := 2d; h := 2h + 1 fi

SWI072 Algoritmy komprese dat22 Kódování - popis expanze intervalu  E 2 :  0.5, 1)  0, 1)  E 2 (x) = 2(x-0.5)  if  d,h  then output(1) while čítač >0 do output(0) čítač -- od d := 2d; h := 2h + 1 fi

SWI072 Algoritmy komprese dat23 Kódování - popis expanze intervalu  E 3 :  0.25, 0.75)  0, 1)  E 3 (x) = 2(x-0.25)  if  d,h  then čítač++ d := 2d - 2 w-1 ; h := 2h - 2 w fi

SWI072 Algoritmy komprese dat24 Kódování v celočíselné aritmetice u d:=0 ; h:= 2 w -1; read(znak)

SWI072 Algoritmy komprese dat25 Kódování v celočíselné aritmetice u d:=0 ; h:= 2 w -1; read(znak)  while znak  EOF do while lze provést expanzi intervalu do expanze  d, h+1) read(znak) od u return d

SWI072 Algoritmy komprese dat26 Dekódování v celočíselné aritmetice u Do kod načti w bitů kódového slova u d := O ; h := 2 w -1 u repeat u rozsah := h - d + 1 u index :=  ((kod - d +1)  n - 1)/ rozsah  u najdi znak takový, aby n(znak-1)  index < n(znak) u output(znak) u aktualizuj d, h pomocí vzorců z procedury kódování (předchozí stránka) u while lze provést expanzi do expanze d, h, kodu (bitový posuv, na místo nejméně významného bitu se doplní 0 pro d, 1 pro h, na do kodu se načte další bit kódového slova) od u until není dekódováno celé vstupní slovo.

SWI072 Algoritmy komprese dat27 Implementační poznámky u Velikost četností –pracujeme v intervalu  0, 2 w ) –n - délka vstupu (=součet četností všech znaků) –1/4  2 w  n u Ztráta přesnosti při celočíselných operacích Witten,Neal & Cleary uvádějí empirické údaje –zaokrouhlovací chyby prodlouží délku kódu o bitu/symbol 0,002% délky vstupu –škálování četností: pro vstup délky 10 5 až 10 6 B 0.25% délky vstupu

SWI072 Algoritmy komprese dat28 Implementační poznámky u Ukončení znakem EOF –zakóduj EOF –pro jednoznačnost output(01) nebo output(10) dle toho, zda (d,h  obsahuje 2. či 3. čtvrtinu intervalu –doplň na hranici byte (max 7 bitů)  Použití speciálního znaku EOF pro zakódování vstupu délky t při použití celočíselné aritmetiky v intervalu  0, N) prodlouží délku kódu celkem o < 8t/(N ln2) + log 2 N + 7 bitů.

SWI072 Algoritmy komprese dat29 Adaptivní verze u Aktualizace kumulovaných četností n(x) u Pro snížení počtu aktualizací je možno pole upořádat dle četností u Periodické škálování četností –interval  0, 8B  –if n=2B then for all i do f i := f i /2

SWI072 Algoritmy komprese dat30 Další celočíselné implementace aritmetického kódování u Pennebaker, Mitchell,Langdon,Arps (1988) Q-kodér u P.G.Howard (1992) Kvaziaritmetické kódování