20.09.2013 Views

Alles wat u wilde weten over comprimeren (maar nooit durfde te ...

Alles wat u wilde weten over comprimeren (maar nooit durfde te ...

Alles wat u wilde weten over comprimeren (maar nooit durfde te ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Compressie en compressie-algoritmen<br />

Compressie is het coderen van de totale hoeveelheid bits van een<br />

bestand <strong>te</strong>neinde de bestandsgroot<strong>te</strong> <strong>te</strong> reduceren. Doel is meestal<br />

geheugenruim<strong>te</strong> <strong>te</strong> besparen of de <strong>over</strong>drachtsnelheid <strong>te</strong> vergro<strong>te</strong>n.<br />

Compressie-algoritmen zijn algoritmen die gebruikt worden voor<br />

datacompressie. Ze zijn <strong>te</strong> verdelen in verliesvrije (lossless) en<br />

niet-verliesvrije (lossy) algoritmen.<br />

Uit een verliesvrij gecomprimeerd bestand kan het originele<br />

bestand weer identiek gedecomprimeerd (‘geëxpandeerd’)<br />

worden, er gaat daarbij geen informatie verloren.<br />

In <strong>te</strong>gens<strong>te</strong>lling tot lossless algoritmen gooit een lossy algoritme<br />

informatie weg. De informatie die bij een lossy algoritme wordt<br />

weggegooid is ideali<strong>te</strong>r niet zichtbaar (bij plaatjes JPEG of PNG)<br />

of hoorbaar (bij muziek MP3). Ech<strong>te</strong>r, hoe gro<strong>te</strong>r de compressie<br />

hoe meer van de beeld- of geluidskwali<strong>te</strong>it verloren gaat.<br />

Kolmogorov-complexi<strong>te</strong>it<br />

De Russische wiskundige Andrey N. Kolmogorov (1903 – 1987)<br />

ontwikkelde in de jaren zestig een theorie <strong>over</strong> de complexi<strong>te</strong>it<br />

van objec<strong>te</strong>n. Hij nam de complexi<strong>te</strong>it van een object als maat<br />

voor de ma<strong>te</strong> van compressie welke mogelijk is.<br />

De Kolmogorov-complexi<strong>te</strong>it definieert de complexi<strong>te</strong>it van een<br />

reeks karak<strong>te</strong>rs (string) als de leng<strong>te</strong> van het korts<strong>te</strong> programma<br />

(in bits) dat deze string kan reproduceren. Strings welke door<br />

kor<strong>te</strong> programma’s kunnen worden gereproduceerd worden als<br />

niet erg complex beschouwd. Het doorgronden van deze s<strong>te</strong>lling<br />

leidt tot een diep inzicht in het wezen van data en datacompressie.<br />

De Kolgomorov-complexi<strong>te</strong>it heeft gro<strong>te</strong> <strong>over</strong>eenkoms<strong>te</strong>n<br />

met het begrip entropie van Shannon.<br />

In de praktijk kunnen we goed zien <strong>wat</strong> het bovenstaande<br />

be<strong>te</strong>kent voor het <strong>comprimeren</strong> van data. Door een voorspelling<br />

<strong>te</strong> doen <strong>over</strong> de complexi<strong>te</strong>it van een object kunnen we vasts<strong>te</strong>llen<br />

in hoeverre dit goed <strong>te</strong> <strong>comprimeren</strong> is. Van onderstaande reeks<br />

van nullen kunnen we al gelijk vasts<strong>te</strong>llen dat dit niet erg<br />

complex is.<br />

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 et ce<strong>te</strong>ra.<br />

In elke programmeertaal zal een programma om een string van<br />

uitslui<strong>te</strong>nd nullen <strong>te</strong> produceren bijzonder kort zijn. Moeilijker<br />

8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!