21
22.3.2001 SWI072 Algoritmy komprese dat 1 Algoritmy komprese dat Kontextové metody

Algoritmy komprese dat

  • Upload
    ceana

  • View
    60

  • Download
    0

Embed Size (px)

DESCRIPTION

Algoritmy komprese dat. Kontextové metody. 2 fáze komprese dat. Vytvoření modelu Kódování Model 0-tého řádu - pravděpodobnosti výskytu izolovaných znaků abecedy. Konečné kontextové modely. K určení pravděpodobnosti výskytu znaku je použito několik znaků předcházejících - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 1

Algoritmy komprese dat

Kontextové metody

Page 2: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 2

2 fáze komprese dat

Vytvoření modelu Kódování Model 0-tého řádu - pravděpodobnosti výskytu

izolovaných znaků abecedy

Page 3: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 3

Konečné kontextové modely K určení pravděpodobnosti výskytu znaku je použito několik

znaků předcházejících původně navrženo pro kompresi textových souborů model řádu i - používá kontext délky i metody

– s pevnou délkou kontextu

– kombinované - používají kontexty různých délek» úplné (všechny kontexty délek i,i-1,…,0)

» částečně kombinované

metody statické, adaptivní

Page 4: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 4

PPM - Prediction by Partial Matching Cleary, Witten, 1984, Moffat, 1990 kombinace kontextového modelu & aritmetického kódování kombinovaný model řádu i pro znak z, kontext c určíme f(z |c) - četnost znaku z v kontextu c Kódování znaku z:

Buď c kontext délky iif f(z |c) > 0 then kóduj z s použitím f(z |c)

else aktualizuj f(z |c) output(kód(ESC)) zkus kontext řádu i-1 fi

pro jisté i musí být f(z |c) pro všechny kontexty délky i definováno

Page 5: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 5

PPM - pokračování

Jak definovat f(z |c)?– # výskytů znaku z v kontextu c

– # případů, v nichž byl kontext c použit k predikci z

Princip exkluze– x se vyskytne poprvé v kontextu abc

– f(y|abc)>0 y lze vyloučit z modelu 2. řádu

– empirické údaje: 2x délka výpočtu zlepšení komprese o 5%

Page 6: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 6

Variace na téma PPM

PPMA– kontext c f(c)=n f(ESC |c)=1/(n+1)

– pro ostatní znaky zůstává f(x|c)

PPMB: f(z |c)´= f(z |c)-1– abcx ...abcx....abcy

– f(x|abc) = 1, f(y|abc)=0, f(esc|abc)=2

PPMC – pro každý kontext c skupina znaků, pro něž f(x|c)>0

– f(esc|c) := # znaků ve skupině

Page 7: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 7

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assan

forward tree

a 2 s 2

a 1

Page 8: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 8

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assani

a 2 s 2

a 1

i 1

i 1

i 1

Page 9: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 9

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assani

a 2 s 2

a 1

i 1

i 1

i 1

Page 10: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 10

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assanis

a 2 s 2

a 1

i 1

i 1

i 1

Page 11: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 11

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assanis

a 2 s 2

a 1

i 1

i 1

i 1

s 1

Page 12: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 12

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assanis

a 2 s 2

a 1

i 1

i 1

i 1

s 1

s 1

Page 13: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 13

Datové struktury

n 1

s 1n 1 s 1

s 1 n 1 a 1

assanis

a 2 s 3

a 1

i 1

i 1

i 1

s 1

s 1

Page 14: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 14

Paměťová omezení

Sledování velikosti volné paměti, pokud klesne pod určitou mez T zmrazení modelu– aktualizuji četnosti již existujících kontextů

– ignoruji nové kontexty

Sledování velikosti volné paměti, pokud klesne pod určitou mez T rekonstrukce modelu– k inicializaci použiji bezprostřední historii, uloženou ve

vyrovnávací paměti

Kromě volné paměti sleduji též relativní úspěšnost komprese, pokud začne klesat rekonstrukce modelu

Page 15: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 15

Experimentální výsledky (Fiala,Greene,1989)

SC TM NS CC BF SF RCF SNI SCI BIH0 73.2 61.2 59.0 78.0 75.2 62.6 75.6 39.7 84.5 14.8H1 40.1 42.4 46.7 54.0 57.3 38.0 59.7 18.1 51.0 10.1FGK 75.1 62.5 59.5 80.4 75.6 63.7 76.7 41.5 85.0 20.5V 74.9 62.4 59.5 80.2 75.6 63.7 76.6 41.4 85.0 20.5WNC 36.9 35.8 32.6 76.8 54.4 51.6 64.9 23.3 60.8 10.6

SC zdrojový kódTM ASCII (technické memoranda)NS ASCII (news service)CC zkompilovaný kódBF boot file

SF splajnové fontyRCF bitové mapy fontů kódované RLESNI syntetické obrázkySCI digitalizované barevné fotografie (8bitů/pixel)BI digitalizované faxové dokumenty

H0 entropie 0. řádu, H1 entropie 1. řádu WNC aritmetické kódování s kontextem délky 3 (Witten, Neal, Cleary)

Page 16: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 16

Příklad - MNP (Microcom Networking Protocol) MNP5: 2 fáze

– RLE

– adaptivní statistické kódování

n stejných bytů s hodnotou B B B B n-3 kódovací tabulka hodnota četnost kódové slovo

0 0 000|01 0 000|12 0 001|13 0 001|14 0 010|005 0 010|016 0 010|107 0 010|118 0 011|0009 0 011|001

Page 17: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 17

MNP5 - kódovací tabulka (dokončení)hodnota četnost kódové slovo...247 0 111|1110111248 0 111|1111000249 0 111|1111001250 0 111|1111010251 0 111|1111011252 0 111|1111100253 0 111|1111101254 0 111|1111110255 0 111|11111110

EOF 111|11111111 + zarovnání 1 na hranici bytu

Page 18: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 18

Adaptivní strategie

read(B); output(kód(B)) if B je znak then četnost(B)++; aktualizuj tabulku fi četnost(B) - 1 byte if četnost(B)=maximum then vyděl všechny četnosti 2

Page 19: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 19

Aktualizace tabulky

četnost(i)++; while true do j := P(i); if j=1 then exit fi j := Q(j-1); if četnost(i) četnost(j) then exit else P(i) P(j); Q(P(i)) Q(P(j)) fi od.

Page 20: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 20

Aktualizace tabulky - příklad

000..010..0

četnosti kódP Q

b

a

000..010..0

P Q

b

a

000..010..0

P Q

b

a

000..010..0

P Q

b

a

Page 21: Algoritmy komprese dat

22.3.2001 SWI072 Algoritmy komprese dat 21

MNP7

RLE + kontextový model řádu 2 RLE: běh znaků B délky 3 3 kopie B

4bitová četnost zbytku 256 tabulek (pro každý znak), 256 řádků (kontext) s

četnostmi (statická) tabulka s kódovými slovy prefixového kódu