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

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

Osnova předn áš ky  klasifikace kompresn í ch metod  ztr á tov á a neztr á tov á komprese  výklad ztrátových kompresí přesahuje rámec přednášky  Modelování.

Podobné prezentace


Prezentace na téma: "Osnova předn áš ky  klasifikace kompresn í ch metod  ztr á tov á a neztr á tov á komprese  výklad ztrátových kompresí přesahuje rámec přednášky  Modelování."— Transkript prezentace:

1 Osnova předn áš ky  klasifikace kompresn í ch metod  ztr á tov á a neztr á tov á komprese  výklad ztrátových kompresí přesahuje rámec přednášky  Modelování a kódování za účelem komprese  Intuitivní kompresní metody  Statistické kompresní metody  Slovníkové kompresní metody

2 Ztrátová a neztrátová komprese  Komprese dat = proces identifikace a odstraňování redundance v datech  Bázová klasifikace  Neztrátová komprese, Lossless Compression  dekompresí se získají originální data  Ztrátová komprese, Lossy Compression  za cenu zefektivnění komprese se znižují nároky na přesnost rekonstrukce  Použitý komunikační model  kanálem obecně může být i paměťové zařízení

3 Významné charakteristiky komprese  Komprese  kódování zprávy délky O(X) [b] na zprávu délky L(X) [b]  cílem je dosažení L(X) << O(X)  ideálně L(X)  H(X), kde H(X) je neurčitost zprávy  méně než H(X) bity zprávu zakódovat nemůžeme, má-li být komprese neztrátová  kompresní poměr, L(X)/O(X)  kompresní zisk, (O(X) – L(X))/O(X)  redundance zprávy, R(X) = O(X) – H(X)  redundance komprimované zprávy, (X) = L(X) – H(X)

4 Neztrátová komprese  Hlavní idea  Symboly (posloupnosti symbolů) s vysokou frekvencí výskytu se musí kódovat kratšími bitovými posloupnostmi  symboly (posloupnosti symbolů) s nízkou frekvencí výskytu lze kódovat delšími bitovými posloupnostmi  Příklad  původní text: AAABBBBBBYYYYPPPPPPPPPTKKKKKKKK  po kompresi: 3:A;6:B;4:Y;9:P;:T;8:K;  Techniky  Huffmanovo kódování, Lempel-Ziv kódování, Run-length kódování (RLE),  aritmetické kódování  komprese textů, obrázků, zvuku, faksimile, modemy, …  Pokud neřekneme jinak, rozumíme v tomto předmětu pod pojmem „komprese“ neztrátovou kompresi.

5 Ztrátová komprese  efektivnost komprese má přednost před přesností rekonstrukce  pokud akceptujeme jisté zkreslení, můžeme dosáhnout mnohem vyšších kompresních poměrů  Prvky, které se mají kódovat s malým zkreslením  často se vyskytující prvky  prvky, na které jsme citliví  Prvky,které lze kódovat s velkým zkreslením  Nepravděpodobně a irelevantní prvky

6 Ztrátová komprese  Jisté smysly (zrak, sluch) jsou více citlivější na jisté typy zkreslení a na jiné typy zkreslení mohou být necitlivé  Aplikace akceptující ztrátové kompresní techniky  Kódování řeči: GSM (Global Systém for Mobile), CELP (Code Excited Linear Prediction), AMR (Adaptive Multi-Rate), …  Kódování zvuku: MP3 (Moving Picture #3), AC-3 (Dolby Digital Sound Format), AAC (Advanced Audio Coding, DAB (Digital Audio Broadcasting), …  Kódování obrazu: JPEG (Joint Photographic Experts Group), …  Kódování videa: DVD (Digital Versatile Disc), DVB (Digital Video Broadcast), MPEG (Moving Picture Experts Group), …

7 Ztrátová komprese, další příklady  Audio  PCM při digitalizaci hlasu v telefonii 8 bitové vzorky hodnoty signálu 8000x/s – 64kb/s  DPCM, Differential PCM při digitalizaci hlasu v telefonii 4 bitové vzorky odchylky signálu 8000x/s – 32/s Ke ztrátě informace dojde zřídkakdy, lidské ucho to nepozná, dosahuje se 50% kompresní zisk  Video  30 rámců (obrázků)/s, 800x600 pixelů/rámec, 3barvy pixelu (RGB) po 8b, 30x800x600x24 = 345,6 Mb/s  Diferenciálním kódováním (např. malá odlišnost v blocích 16x16px v následných rámcích se ignoruje a přenáší se jen indikace kopie) lze dosáhnout řádového snižení objemu dat (10x,...) bez viditelného snížení kvality obrazu.

8 Statická a adaptivní komprese, logická a fyzická komprese  Statická komprese, neadaptivní komprese¨  neměnná procedura  nezávislá na vlastnostech komprimovaných dat.  Adaptivní komprese  dynamicky se měnící procedura  respektující vlastnosti komprimovaných dat  většina kompresních algoritmů má svoji statickou i adaptivní variantu  Fyzická komprese  ignoruje význam dat, minimalizuje se formálně odhalená redundance  Logická komprese  pro dosažení lepších kompresních poměrů se zohledňuje/využívá, význam komprimovaných dat, vesměs se jedná o ztrátovou kompresi

9 Repetice typů kódů  Obecný kód  A 1, B0, C 1  A encode 1 decode {A nebo C}  Nesingulární kód  A 1, B 0, C 111  A encode 1011 decode {ABAA nebo ABC}  Jednoznačně dekódovatelný kód  A 1, B 00, C 10  ABACB encode decode {C ? – ne. ABAAB ? – ne. ABACB je správně}  Prefixový kód  A 1, B 00, C 01  ABACB encode decode ABACB

10 Kroky komprese – modelování a kódování  komprese – minimalizace (snižování) redundance ve zprávě  základní operace (problémy) procesu komprese  modelování  definice symbolů, zdrojových jednotek úzce souvisí s typem komprimovaných dat, oblast spíše tajuplná, spíše umění, než technologie  přiřazení pravděpodobností výskytu jednotlivým symbolům  statické metody komprese  apriorní vybudování modelu kompresorem a jeho předání dekompresoru  adaptivní metody komprese  dynamické budování modelu během komprese i dekomprese  kódování  transformace symbolů do bitových posloupností minimalizující redundanci podle pravděpodobností výskytu symbolů  velmi volně souvisí s typem komprimovaných dat  v podstatě rutinně známé techniky  jak řešit kódování, aby se minimalizoval vliv chyb,...,...

11 Modely komprese  model  způsob vyjádření zprávy pro účel generování zpráv a rozpoznání zpráv  funkční klasifikace modelů  model konečného kontextu  pravděpodobnosti se přiřazují konečnému počtu symbolů, např. jednotlivým znakům, prvkům abecedy, dvojicím znaků (bigramům),...  model konečných stavů  generátor zpráv je konečný automat  pravděpodobnosti se přiřazují odvozovacím pravidlům  model s gramatikou  zpráva je rozpoznatelná pomocí bezkontextové gramatiky  pravděpodobnosti se přiřazují odvozovacím pravidlům

12 Typy kompresních metod  základní techniky  intuitivní metody, Brailovo písmo, Baudotův kód,...  RLE metody, Run Length Encoding, RLE textu, RLE obrázků (JPEG,...)  statistické metody  Shannon-Fanovo, MNP5, Huffmanovo,... kódování  slovníkové metody  LZ77, LZ78, LZW – metody používané v kompresních programech typu ARC, PKZip, v unix compress, při vytváření formátů GIF,...  komprese obrázků, videa, zvuku,..., spousta dalších metod,... (výklad přesahuje rámec předětu)

13 Základní, intuitivní metody  Brailovo písmo  6 bodů v obdélníku, tj. 6 bitů, tj. 26 = 64 kódových slov, ex. ale pouze 26 znaků abecedy,  takže lze využít 64 – 26 kódových slov pro kódování některých frekventovaně používaných slov přirozeného jazyka  Baudotův kód  5 bitový kód, číslicová/písmenová změna, 62 (=2 x 32 – 2) znaků  telex, dálnopis  Ad hoc textové komprese  vynechání mezer + bitová mapa polohy mezer  kódování ASCII sedmic v 8 bitových bytech  kódování čistě číselných dekadických dat – 2 číslice v byte ...

14 Základní, intuitivní metody, 2  MacWrite kódování (word procesor)  4-bitové kódy pro 15 nejčastěji používaných znaků + kód ESCAPE  za ESCAPE následuje na 8 bitech ASCII znak  každý odstavec se uchovává v komprimované nebo v nekomprimované verzi podle toho, která verze je kratší  + 1bit na odstavec, indikacie* komprimovaný/nekomprimovaný odst.  RLE kódování, Run Length Encoding  náhrada opakujících se symbolů (diagramů, …) příznakem, čítač opakování a specifikací opakovaného symbolu „aaaaaaaaaa“ se nahrazuje např. řetězcem „10:a“

15 Statistické metody  Kompresní teorém  je-li H [b/symbol] entropie zdroje, pak lze neztrátově komprimovat zdrojový text až do vyjádření každého symnbolu zdrojového textu v průměru H bity, H může být << log 2 N  prvkům vstupní abecedy s větší pravděpodobností výskytu ve zprávě se přiřazují prvky výstupní abecedy kódované kratšími bitovými řetězci  původní Morseův návrh abecedy  používají se kódová slova proměnné délky, tudíž ex. problém jednoznačné dekódovatelnosti  a ideální jsou prefixové kódy  příklady vhodných kódování statistického typu  Shannon-Fanovo kódování  Huffmanovo kódování  aritmetické kódování

16 Princip statistických kompresních metod  Abeceda {A,B,C,D}  pravděpodobnosti výskytu jejích prvků ¾, 1/8, 1/16, 1/16  Entropie zdroje -(3/4)log 2 (3/4) – (1/8)log 2 (1/8) – (1/16)log 2 (1/16)- -(1/16)log 2 (1/16) = [b/symbol]  Kódování 1 A = 00, B = 01, C = 10, D = 11, průměr 2 [b/symbol]  Kódování 2 (prefixový kód, slova proměnné délky) A = 0, B = 10, C = 110, D = 111 průměr: 0,75 + 0,125 × 2 + 0,0625 × 3 + 0,0625 × 3 =  Kódování 2 dosahuje průměrné délky symbolu bližší entropii, než kódování 1, kódování 2 je efektivnější, než kódování 1

17 Shannon-Fanovo kódování První metoda použitá pro nalezení dobrých kódů proměnné délky  máme n prvků abecedy A se známými pravděpodobnostmi výksytů  prvky abecedy A uspořádáme v klesající posloupnosti pravděpodobností výskytu  vše rozdělíme na dvě skupiny se stejnou (s téměř stejnou) pravděpodobností výskytu  všechna kódovaná slova v jedné skupině budu začínat 1, ve druhé skupině budou všechna kódovaná slova začínat 0  rekurzivně opakujeme poslední 2 kroky na dalších bitových pozicích kódových slov

18 Shannon-Fanovo kódování, příklad

19 Huffmanovo kódování  Platí pozorování optimálních prefixových kódů  Symboly vyskytující se s vyšší pravděpodobností mají kódová slova kratší, než symboly, vyskytující se s nižší pravděpodobností  dvě nejdelší kódová slova mají stejnou délku, např.  {A,B,C,D,E,F,G} {00,10,011,010,110,1110,1111}  Huffmanovo kódování  optimální prefixový kód  dvě nejdelší kódová slova se liší pouze v posledním bitu a odpovídají dvě nejřidčeji se vyskytujícím slovům

20 Huffmanovo kódování, 2  vznik v r. 1952, pro účely přenosu zpráv při komunikaci  statická varianta  dva průchody zdrojovým textem  1.modelování a generování modelu  2.vlastní kódování komprimované zprávy  výsledek = model + komprimovaná zpráva, což je nevhodné pro kompresi krátkých zpráv

21 Huffmanovo kódování, 3  příklady kódování a postup při kódování  prvkům abecedy X se přiřazují posloupnosti prvků abecedy Y X = {0,…,255}, Y = {0,1} X = {a,b,c,…,A,B,C,…,0,1,…,9}, Y = {0,1}  postupně se slučují vždy dva prvky ze vstupní abecedy s nejnižší pravděpodobností výskytu ve zprávě do nového prvku výstupní abecedy reprezentovaného jako bitová posloupnost  nový prvek má pravděpodobnost výskytu rovnou součtu pravděpodobností sloučených prvků

22 Huffmanovo kódování, vybrané vlastnosti  Huffmanův kód má minimální průměrnou délku kódového slova  Huffmanův kód je pro daný model textu optimální  Huffmanovo kódování maximálně potlačuje redundanci  pro jistou třídu textů lze vytvořit kódovou knihu  ušetří se doba věnovaná na generování stromu  kód ale nemusí být optimální(používá se kódová kniha třídy textů, nikoliv kódová kniha daného textu)  originálním zprávám stejné délky nemusí odpovídat komprimované zprávy stejné délky kódované  někdy implementační problém

23 Huffmanovo kódování, vybrané vlastnosti, 2  Adaptivní Huffmanovo kódování  kódový strom se buduje při kompresi i dekompresi znovu vždy po přijetí dalšího symbolu a korekci statistik  Unix, příkazy Compaq/uncompact, je použitý algoritmus FGK –Faller, Gallager, Knuth  Huffmanovo kódování je efektivnější, než Shannon-Fanovo kódování  Shannon-Fanovo i Huffmanovo kódování přiřazují kódová slova s celistvým počtem bitů  pokud např. log 2 0,4 je cca 1,32, pak se přiděluje kód délky 1 bit nebo 2 bity  tento problém obchází aritmetické kódování (viz další průsvitky) přidělení* jednoho kódového slova celému vstupnímu proudu znaků

24 Aritmetické kódování  Motivace vývoje aritmetického kódování  např. pro malé abecedy může být Huffmanovo kódování neefektivní  řešením by mohlo být blokování m symbolů do bloků a konstruovat kódová slova pro všechny posloupnosti délky m, složitost by ale rostla exponenciálně – což je chybné řešení  aritmetické kódování poskytuje nástroj pro jedinečné kódování každé konkrétní posloupnosti délky m, aniž by bylo nutné generovat všechny ostatní kódová slova  Princip aritmetického kódování  každá posloupnost symbolů se reprezentuje značkou  množinou značek je jednotkový interval [0,1)*, značek může být nekonečně mnoho  potřebujeme mít funkci, která mapuje posloupnost symbolů do jednotkového intervalu

25 Aritmetické kódování, principy  Kumulativní distribuční funkce  pdf (probability density fiction): p 1 = 0,6 p 2 = 0,3 a p 3 = 0,1  cdf (cumulative distribution fiction): tj. F(0) = 0 F(1) = 0,6 F (2) = 0,9 a F(3) = 1  Základní myšlenka  Interval 0 až 1 se rozdělí na N intervalů, kde N je možný počet výsledků (počet prvků ve zdrojové abecedě)  Šířky intervalů jsou rovny pravděpodobnostem odpovídajících událostí  výskytů prvků abecedy,tj. hranice intervalu vymezuje cdf  Pokud nejsou vazby mezi symboly zprávy, kterékoli číslo uvnitř intervalu si lze představit, jako jedinečný identifikátor hodu kostkou  Další hod lze reprezentovat jakýmkoliv číslem v menším intervalu:

26 Aritmetické kódování, principy, 2  pdf: p 1 = 0,6 p 2 = 0,3 a p 3 = 0,1, komprese textu 221  generování binárního kódového slova  jako značka se použije střed intervalu  lze ukázat, že jednoznačně dekódovatelný (prefixový) kód se získá z binární reprezentace tohoto čísla oříznutím na [log 2 (1/p i )] + 1 bitů

27 Aritmetické kódování  Dekódování  z analýzy intervalu zleva doprava se uvažuje na 1.symbol zprávy atd.  Vlastnosti aritmetického kódování  je dokazatelně optimální pro jakékoliv rozložení pravděpodobnosti  jsou známé i adaptivní modely aritmetického kódování  je bezpodmínečně nutné implementovat aritmetické kódování v celočíselné aritmetice

28 Slovníkové metody  Některé vzorky se vyskytují v mnoha typech dat  Pokud se kóduje celý vzorek místo jednotlivých symbolů, které jej tvoří, bude kódovaný text kratší  Nepoužívají ani statistické modely, ani kódová slova proměnné délky  V komprimovaném textu se vybírají řetězce symbolů  Každý řetězec se kóduje nějakým příznakem pomocí slovníku  Slovník  může být vytvářený staticky a nebo dynamicky (adaptivní metody)  může být založený na přirozeném jazyku  může být založený na bázi obecných řetězců, typicky dynamicky budované „klouzající“ slovníky v algoritmech třídy Lempel, Ziv, (Welsh)

29 Slovníkové metody, LZ (Lempel-Ziv) algoritmy  Třída kódování Lempel-Ziv, bázová společná myšlenka:  Vytváří se slvoník s použitzými posloupnostmi symbolů – vzory – a přenáší se na indexy do slovníku.  LZ77  PKZip, WinZip, LHArc, PNG, zip a ARJ, …¨  jako slovník se používá jistá zpracovávaná část zdrojového textu  vysílá se trojice – {ukazatel počítku vzoru ve slovníku, délka vzoru, kódové slovo příštího symbolu za kódovaným textem}  LZ78  používá se samostatný slovník  vysílá se dvojice – {index vzoru, kódové slovo příštího symbolu}  LZW, přepracovaný LZ78  UNIX compress, GIF, TIFF, V.42 bis – modem, PostScript, PDF, …  používá se samostatný slovník  potenciální symboly jsou v kódové knize přednastaveny  vysílá se jdiný údaj – index vzoru

30 LZ77 a LZ78, principy

31 LZ77  Slovník tvoří jistá zpracovávaní část textu  typická délka do 8K slabik, velikost slovníku bývá daná pevně  slovník se posunuj epo kódovém textu o zakódovanou část textu  Kóduje se posloupnost nacházející se v prohlíženém okně  prohlížené okno je umístěné na pravé okraji slovníku  má typicky délku desítek slabik  od počátku prohlíženého okna hledá nejdelší podřetězec σ umístěný v tomto okně, který lze zakódovat pomocí výskytu σ ve slovníku počínaje jeho levým okrajem  Kóduje se trojicemi:  {ukazatel vzoru, délka vzoru, kódové slovo příštího symbolu}

32 LZ77, 2  výstupní kódové slovo {i, j, x}:  i – vzdálenost 1.znaku σ od 1.znaku v okně  j – délka σ  x-kód znaku následujícího za σ -uvádí se pro přímé kopírování tohoto znaku při dekompresi  Poznámka: pokud σ přesahuje do okna, přesahující část je (opakovanou) repeticí σ

33 LZ77, 3  Na počátku slovník obsahuje  prázdné znaky až na text v prohlíženém okně – počátek komprimovaného textu  hlavní problém – hledání podřetězců (samostatný předmět)  bitové rozměry délek a offsetů jsou úměrné logaritmům  velikost slovníků bývá obvykle řádově 10 3 B, pak i bývá 10 až 12bitů  velikost prohlíženého okna bývá řádově 10 1 B, pak j mívá jednotky bitů  znak – 8 bitů  rozměr výstupního kódového slova např = 24 b

34 LZ77, příklad

35 LZ78  LZ77 předpokládá, že vzorky se vyskytují „blízko sebe“, ve slovníku  LZ78 tento problém řeší tím, že neudržuje prohledávaný slovník – buffer v již komprimovaném textu  udržuje samostatně existující, postupně rostoucí slovník  Algoritmus LZ78:  1. nalezni ve slovníku nejdelší shodný vzorek s příštími kódovanými symboly  2. vyšli dvojici {index vzoru ve slovníku, kódové slvo příštího symbolu}  3. vyslaná data ulož do slovníku  4. pokračuj krokem 1, nebo ukonči činnost

36 LZ8*, příklad  nový podřetězec σ délky j se přidává do slovníku tehdy, pokud jeho prvních j – 1 symbolů tvoří podřetězec σ´, který již ve slovníku je

37 LZW  variace LZ78, slovník je rozšířením vstupní abecedy  eliminace nutnosti generovat dva výstupní prvky  vysílá se pouze index do slovníku  Postup: 1. Nalezni ve slovníku nejdelší shodný vzorek s příštími kódovanými symboly 2. Vyšli {index vzorku ve slovníku} 3. A následně ulož do slovníku nový vzorek = vsn* nalezený vzorek + další symbol 4. Pokračuj krokem 1, nebo ukonči činnost  poslední symbol každé fráze* prvním symbolem další fráze  indexy se zobrazují např. na 12 bitech

38 LZW, příklad

39

40

41

42

43

44

45

46

47


Stáhnout ppt "Osnova předn áš ky  klasifikace kompresn í ch metod  ztr á tov á a neztr á tov á komprese  výklad ztrátových kompresí přesahuje rámec přednášky  Modelování."

Podobné prezentace


Reklamy Google