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
22.3.2001 SWI072 Algoritmy komprese dat 1
Algoritmy komprese dat
Kontextové metody
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
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í
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
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%
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ě
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
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
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
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
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
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
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
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
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)
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
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
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
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.
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
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