Algoritmy komprese dat
description
Transcript of Algoritmy komprese dat
![Page 1: Algoritmy komprese dat](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/1.jpg)
22.3.2001 SWI072 Algoritmy komprese dat 1
Algoritmy komprese dat
Kontextové metody
![Page 2: Algoritmy komprese dat](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022081506/568144e1550346895db1aca6/html5/thumbnails/21.jpg)
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