joriszwart.nl/compression
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
ingepakt - uitgepakt
100 × ––––––––––––––––––––––
uitgepakt
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
1 sinaasappel
78 karakters
6× 1 sinaasappel
16 karakters
16 karakters - 78 karakters
100 × ––––––––––––––––––––––––––––––
78 karakters
Minder data met behoud van informatie.
mindmap
root((Datacompressie))
(Redundantie)
[Perceptueel]
[Statistisch]
[Structureel]
(Entropie)
(Lossless)
[Run-Length Encoding]
[Lempel–Ziv familie]
[Sliding window]
[Woordenboek]
[Huffman]
[Frequenties]
[Prefixvrije codes]
(Lossy)
[Perceptuele modellen]
[Auditief]
[Visueel]
[Transforms]
[DCT]
[Frequentiedomein]
[Wavelets]
[Kwantisatie]
[Afronden]
[Bitreductie]
(Video & Audio)
[Temporele redundantie]
[I/P/B-frames]
[Motion vectors]
[Audio]
[Psycho-akoestiek]
[Bitrate-allocatie]
(Trade‑offs)
[Compressieratio]
[CPU]
[RAM]
[Latency]
(Moderne ontwikkelingen)
[Edge-compressie]
Verliesvrij / verliesrijk
JPEG 100%
JPEG 95%
JPEG 80%
JPEG 50%
JPEG 25%
JPEG 10%
JPEG 5%
JPEG 1%
| Quality | Size |
|---|---|
| 100% | 198,9 kB |
| 95% | 37,9 kB |
| 80% | 16,7 kB |
| 50% | 10,5 kB |
| 25% | 6,2 kB |
| 10% | 4,4 kB |
| 5% | 4,0 kB |
| 1% | 3,9 kB |
Lossless - verliesvrij
mindmap
root((Datacompressie))
(Redundantie)
[Statistisch]
[Structureel]
(Entropie)
(Lossless)
[Run-Length Encoding]
[Lempel–Ziv familie]
[Sliding window]
[Woordenboek]
[Huffman]
[Frequenties]
[Prefixvrije codes]
(Lossy)
(Trade‑offs)
[Compressieratio]
[CPU]
[RAM]
[Latency]
Run-Length Encoding
⬇ Run-Length Encoding
Inpakken
Uitpakken
Lempel–Ziv '77
⬇ Lempel–Ziv
- Run-Length Encoding: herhaling
- Lempel–Ziv: verwijzingen
David A. Huffman, 1952
A ➡ - - - - ·
B ➡ - - - · -
C ➡ - - - · ·
D ➡ - - · - -
E ➡ - - · - ·
A ➡ 0 0 0 0 1 B ➡ 0 0 0 1 0 C ➡ 0 0 0 1 1 D ➡ 0 0 1 0 0 E ➡ 0 0 1 0 1
26 letters ≈4,7 Morse codes per karakter
A ➡ · -
B ➡ - · · ·
C ➡ - · - ·
D ➡ - · ·
E ➡ ·
26 letters ≈3,2 Morse codes per karakter
Nederlands: ≈2,7 Morse codes per karakter
Nederlands: ≈2,4 bits per karakter
- RLE: herhaling
- LZ: verwijzingen
- Huffman: Morse code-achtig
⬇ Delta encoding
1 1 1 1 1 1 0 0 0
1 0 0 ⊕ 1 1 1 ––> 0 1 1
1 0 0 1 0 0 0 0 0
none, sub, up, average, paeth
Burrows–Wheeler transform
Bron: Wikipedia
^ B A N A N A $
$ ^ B A N A N A
A $ ^ B A N A N
N A $ ^ B A N A
A N A $ ^ B A N
N A N A $ ^ B A
A N A N A $ ^ B
B A N A N A $ ^
A N A N A $ ^ B
A N A $ ^ B A N
A $ ^ B A N A N
B A N A N A $ ^
N A N A $ ^ B A
N A $ ^ B A N A
^ B A N A N A $
$ ^ B A N A N A
A N A N A $ ^ B A N A $ ^ B A N A $ ^ B A N A N B A N A N A $ ^ N A N A $ ^ B A N A $ ^ B A N A ^ B A N A N A $ $ ^ B A N A N A
Oefening voor thuis
Move-to-front transform
| Iteration | Sequence | List |
|---|---|---|
| bananaaa | 1 | (abcdefghijklmnopqrstuvwxyz) |
| bananaaa | 1,1 | (bacdefghijklmnopqrstuvwxyz) |
| bananaaa | 1,1,13 | (abcdefghijklmnopqrstuvwxyz) |
| bananaaa | 1,1,13,1 | (nabcdefghijklmopqrstuvwxyz) |
| bananaaa | 1,1,13,1,1 | (anbcdefghijklmopqrstuvwxyz) |
| bananaaa | 1,1,13,1,1,1 | (nabcdefghijklmopqrstuvwxyz) |
| bananaaa | 1,1,13,1,1,1,0 | (anbcdefghijklmopqrstuvwxyz) |
| bananaaa | 1,1,13,1,1,1,0,0 | (anbcdefghijklmopqrstuvwxyz) |
Oefening voor thuis
> Ik heb de compressor gemaakt,
> maar de decompressor is nog buggy.
Niet hier!
OF
gzip + tarACGT
42.zip
-
Compressiemethoden
- Run-Length Encoding - herhaling
- Lempel–-Ziv - verwijzingen
- Huffman- Morse code
-
Transformaties
- Delta - verschillen
- Burrows–Wheeler - sortering
- Move-To-Front - sortering
mindmap
root((Datacompressie))
(Redundantie)
[Statistisch]
[Structureel]
(Entropie)
(Lossless)
[Run-Length Encoding]
[Lempel–Ziv familie]
[Sliding window]
[Woordenboek]
[Huffman]
[Frequenties]
[Prefixvrije codes]
(Lossy)
(Trade‑offs)
[Compressieratio]
[CPU]
[RAM]
[Latency]