1 / 21

Algoritmy komprese dat

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

ceana
Download Presentation

Algoritmy komprese dat

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  7. Datové struktury forward tree a 2 n 1 s 2 n 1 s 1 a 1 s 1 n 1 a 1 s 1 assan SWI072 Algoritmy komprese dat

  8. Datové struktury a 2 i 1 n 1 s 2 i 1 n 1 s 1 a 1 s 1 n 1 a 1 i 1 s 1 assani SWI072 Algoritmy komprese dat

  9. Datové struktury a 2 i 1 n 1 s 2 i 1 n 1 s 1 a 1 s 1 n 1 a 1 i 1 s 1 assani SWI072 Algoritmy komprese dat

  10. Datové struktury a 2 i 1 n 1 s 2 i 1 n 1 s 1 a 1 s 1 n 1 a 1 i 1 s 1 assanis SWI072 Algoritmy komprese dat

  11. Datové struktury a 2 i 1 n 1 s 2 i 1 n 1 s 1 a 1 s 1 s 1 n 1 a 1 i 1 s 1 assanis SWI072 Algoritmy komprese dat

  12. Datové struktury a 2 i 1 n 1 s 2 s 1 i 1 n 1 s 1 a 1 s 1 s 1 n 1 a 1 i 1 s 1 assanis SWI072 Algoritmy komprese dat

  13. Datové struktury a 2 i 1 n 1 s 3 s 1 i 1 n 1 s 1 a 1 s 1 s 1 n 1 a 1 i 1 s 1 assanis 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 SWI072 Algoritmy komprese dat

  15. Experimentální výsledky (Fiala,Greene,1989) H0 entropie 0. řádu, H1 entropie 1. řádu WNC aritmetické kódování s kontextem délky 3 (Witten, Neal, Cleary) SC TM NS CC BF SF RCF SNI SCI BI H0 73.2 61.2 59.0 78.0 75.2 62.6 75.6 39.7 84.5 14.8 H1 40.1 42.4 46.7 54.0 57.3 38.0 59.7 18.1 51.0 10.1 FGK 75.1 62.5 59.5 80.4 75.6 63.7 76.7 41.5 85.0 20.5 V 74.9 62.4 59.5 80.2 75.6 63.7 76.6 41.4 85.0 20.5 WNC 36.9 35.8 32.6 76.8 54.4 51.6 64.9 23.3 60.8 10.6 SC zdrojový kód TM ASCII (technické memoranda) NS ASCII (news service) CC zkompilovaný kód BF boot file SF splajnové fonty RCF bitové mapy fontů kódované RLE SNI syntetické obrázky SCI digitalizované barevné fotografie (8bitů/pixel) BI digitalizované faxové dokumenty 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 SWI072 Algoritmy komprese dat

  17. MNP5 - kódovací tabulka (dokončení) • EOF 111|11111111 + zarovnání 1 na hranici bytu 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 SWI072 Algoritmy komprese dat

  19. Aktualizace tabulky • četnost(i)++; • while true do j := P(i); if j=1 thenexit fi • j :=Q(j-1); • if četnost(i)  četnost(j) thenexit • else P(i)  P(j); Q(P(i))  Q(P(j)) fi • od. SWI072 Algoritmy komprese dat

  20. P Q kód P Q P Q P Q četnosti b b b b a a a a Aktualizace tabulky - příklad 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 SWI072 Algoritmy komprese dat

More Related