Algoritmy komprese dat

Transkript

Algoritmy komprese dat
Algoritmy komprese dat
Úvod
Marcus Hutter (*1967)
ANU Canberra
5.10.2016
NSWI072 - 1
Komprese dat
Kódování dat s cílem zmenšit jejich objem odstraněním
nadbytečné informace. Data musí být možno obnovit
dekódovacím algoritmem.
Algoritmus komprese = kódování (komprese)
+ dekódování (dekomprese)
Komprese
• bezztrátová: obnovená data jsou identická originálu
• ztrátová: obnovená data jsou „rozumnou“ aproximací
originálu
Metody
• statické / adaptivní
• symetrické / asymetrické
• proudové / blokové
2
Funkce komprese
✓úspora paměti
komprese/
dekomprese
✓komunikace
odesílatel
komprese
dekomprese
3
příjemce
Jak změřit účinnost komprese?
délka vstupních dat
délka komprimovaných dat
v bajtů
k bajtů (K bitů)
míra
vzorec
příklad
kompresní poměr
k / v * 100%
36%
kompresní faktor
v:k
3:1
zisk komprese
(v-k)/v*100%
64%
bpc (bits per char)
K/v
2.92 b/c
bpp (bits per pixel)
průměrná délka kódového slova
relativní komprese
100 ln (k / k’)
10.5
(percent log ratio)
k’ bajtů = délka dat komprimovaných zvoleným standardním alg.
4
Měření účinnosti: datové korpusy
Rychlost: CPB (cycles per byte)
• pro speciální hardware
Datové korpusy
• experimentální měření účinnosti bezztrátové komprese
Calgary Corpus (1987)
• 14 souborů: text, grafika, binární soubory
Canterbury Corpus (1997)
http://corpus.canterbury.ac.nz
• 11 souborů + artifical c. (4) + large c. (3) + miscellaneous c. (1)
Silesia Corpus (2003)
Sebastian Deorowicz, Politechnika Śląska, Gliwice
http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia
• 18 souborů o velikostech 6 – 51MB
Prague Corpus (2011)
Jan Holub et al., FIT ČVUT, Praha
5
Canterburský korpus
6
Canterburský korpus - pokračování
The Artificial Corpus
a.txt
The letter 'a'
1
aaa.txt
The letter 'a', repeated 100,000
100000
times.
alphabet.txt Enough repetitions of the alphabet 100000
to fill 100,000 characters
random.txt 100,000 characters, randomly
selected from [a-z|A-Z|0-9|!| ]
(alphabet size 64)
7
100000
Canterburský korpus - pokračování
The Large Corpus
E.coli
Complete genome of the E. Coli 4638690
bacterium
bible.txt
The King James version of the
4047392
bible
world192.txt The CIA world fact book
2473400
The Miscellaneous Corpus
pi.txt
The first million digits of pi
8
1000000
Slezský korpus
9
Měření účinnosti: datové korpusy
Maximum Compression
http://www.maximumcompression.com
• maximální dosažitelný kompresní poměr pro specifické typy dat
(text, .exe, .jpg apod.)
• single file compression: 10 souborů 823kB – 20MB
• multiple file compression: 510 souborů 301MB celkem
• Jan Ondruš: PAQ8PX, http://en.wikipedia.org/wiki/PAQ
Pizza & Chili
http://pizzachili.dcc.uchile.cl
•
•
•
•
Paolo Ferragina (University of Pisa)
Gonzalo Navarro (University of Chile)
testování komprimovaného indexu
7 souborů 55.8 MB - 2.21 GB
10
Pizza & Chili
File
SOURCES
PITCHES
PROTEINS
PROTEINS.OLD
DNA
ENGLISH
XML
Size
210.9 MB
55.8 MB
1.18 GB
66.8 MB
403.9 MB
2.21 GB
296.1 MB
|⌃|
230
133
27
24
16
239
97
Description
concatenated C/Java source code files
human readable MIDI files
newline-separated protein sequences from the Swissprot database
older version of PROTEINS
newline-separated gene DNA sequences from Gutenberg Project
concatenation of English text files from Gutenberg Project
XML formated bibliography from dblp.uni-trier.de.
11
Soutěž o nejúčinnější kompresi
Calgary Corpus Compression Challenge (1996)
• http://mailcom.com/challenge/
• (777,777.00 - X) / 333 za archiv délky X Byte z
původních 14 souborů Calgarského korpusu
• nyní (580,170.00 - X) / 111 $
12
Soutěž o nejúčinnější kompresi
Calgary Corpus Compression Challenge (1996)
Size
Date
Name
759881
09/1997
Malcolm Taylor
692154
08/2001
Maxim Smirnov
680558
09/2001
Maxim Smirnov
653720
11/2002
Serge Voskoboynikov
645667
01/2004
Matt Mahoney
637116
04/2004
Alexander Rhatushnyak
608980
12/2004
Alexander Rhatushnyak
603416
04/2005
Przemysław Skibiński
596314
10/2005
Alexander Rhatushnyak
593620
12/2005
Alexander Rhatushnyak
589863
05/2006
Alexander Rhatushnyak
580170
07/2010
Alexander Rhatushnyak
13
Soutěž o nejúčinnější kompresi II
Hutter Prize (2006) http://prize.hutter1.net
• archiv prvních 100MB internetové encyklopedie
Wikipedia
• 500 € za každé 1% zlepšení velikosti archivu
autor
datum
dek
vel
komp.
faktor
Matt
Mahoney
24.3.2006
paq8f
18'324'887
5.46
854MB
5h
Alexander
Ratushnyak
25.7.2006
paq8hp5
17'073'018
5.86
900MB
5h
Alexander
Ratushnyak
14.5.2007
paq8hp12 16'481'655
6.07
936MB
9h
Alexander
Ratushnyak
23.5.2009
decmprs8
6.27
936MB
9h
15'949'688
14
RAM čas
Hutterova cena
Motivace: podpořit výzkum v oblasti AI
Kolmogorovská složitost (algoritmická teorie informace)
Alternativa Turingovy imitační hry
Marcus Hutter: being able to compress well is closely related to
acting intelligently
• M. Hutter, Towards a Universal Theory of Artificial Intelligence based
on Algorithmic Probability and Sequential Decisions, Proceedings of
the 12th European Conference on Machine Learning, 226-238, 2000
• optimální chování racionálního agenta v neznámém prostředí
• interakce 2 Turingových strojů, které se v každém kroku posílají zprávy
• cílem agenta je maximalizovat hodnotu účelové funkce, kterou dává
prostředí
• optimální chování agenta: prostředí řídí nejkratší program, konzistentní
se všemi dosud vydanými zprávami
15
Meze bezztrátové komprese
Kódování f : {n-bitová slova} → {slova délky < n}
| Dom f | = 2n
| Im f | ≤ 2n - 1
⇒ f nemůže být prosté!
Buď M ⊆ Dom f tž. ∀w ∈ M, | f(w) | ≤ 0.9n
f prosté na M ⇒ |M| ≤ 21+0.9n - 1
n = 100, |M|/ 2n < 2-9
n = 1000, |M|/ 2n < 2-99 ≈ 1.578 ⋅10-30
16
Historie - Braillovo písmo
Louis Braille (1820)
w pole 3 × 2 bodů
w písmena, slova
w cca 80% komprese
17
Historie - Baudotův kód
J.M.E.Baudot (1880)
w telegraf
w 5bitový kód pro písmeno/znak
w přepínání LTRS,FIGS
18
Historie - Morseova abeceda
Samuel Morse (1838)
A .H .... O
B -... I
..
P
C -.-. J
.--- Q
D -.. K -.- R
E .
L
.-.. S
F ..-. M -T
G --. N
-.
U
--- V
.--. W
--.- X
.-. Y
...
Z
..19
....--..-.---..
Další jednoduché metody
Komprese slovníku
Adam
adaptace
adekvátní
adept
admirál
afekt
aféra
agenda
agent
Adam
3ptace
2ekvátní
3pt
2mirál
1fekt
2éra
1genda
4t
R.Nix: Experience with a space efficient way to store a dictionary, Commun. ACM
24(1981), 297-8.
20
Další jednoduché metody
Textový editor MacWrite (D.M.Young, 1985)
4bitové kódy znaků
• mezera
• e,t,n,r,o,a,i,s,d,l,h,c,f,p
• <escape>
Ostatní znaky:
• <escape><8bitový ASCII kód znaku>
Každý odstavec zvlášť, expanze ⇒ původní
ASCII kód
Bitový příznak pro každý odstavec
21

Podobné dokumenty

BAKALÁŘSKÁ PRÁCE Jindřich Šedek Konstrukční algoritmy pro

BAKALÁŘSKÁ PRÁCE Jindřich Šedek Konstrukční algoritmy pro is a more space efficient variant of DAWG. Their main use is in searching short patterns in a huge amount of data. This work is aimed at an implementation of few construction algorithms of these da...

Více

Bakalářská práce - bezztrátové komprimační algoritmy

Bakalářská práce - bezztrátové komprimační algoritmy o problém svým způsobem opačný k předešlému: jak přetvarovat libovolnou zprávu, případně jak pomocí určitého klíče vytvořit kanál, aby ze zprávy na výstupu kanálu nebylo bez klíče možno rekonstruov...

Více

ROOTS • KOŘENY

ROOTS • KOŘENY Kučera (1936), both sculptors/painters leaning on the fine European tradition of the geometrical abstraction with poetical and magical accents. The “middle-age” generation is represented by a numbe...

Více

Entry Lists JUNIOR 2 - TOM-A-RACE

Entry Lists JUNIOR 2 - TOM-A-RACE CJT-Couceiro Junior Team CJT-Couceiro Junior Team Gandolfi Ennio Racing DR Srl Norswed Maranello Kart Maranello Kart Keyzer Racing Polski Zniazek Motor. Poland Art Racing Kart Mania Ward Racing CRG...

Více