Datacompressie


Inleiding

Datacompressie is een techniek om digitale informatie zo te bewerken dat het aantal bits minder wordt, maar wel zo dat de informatie beschikbaar blijft. Digitale informatie moet hier heel ruim opgevat worden. Het kan gaan om gedigitaliseerde beelden, gedigitaliseerd geluid, databestanden van allerlei aard zoals teksten, programma's etc. Met datacompressie is de omvang van een bestand waarin digitale informatie is opgeslagen te verkleinen. De twee hieruit voorkomende voordelen zijn:
  1. De beschikbare opslagruimte van bijvoorbeeld een harde schijf wordt beter benut.
  2. Als digitale informatie naar een andere plek verzonden moet worden, neemt de transporttijd af naarmate het aantal bits kleiner is.
Datacompressie is vaak mogelijk omdat de methodes om gegevens digitaal op te slaan meestal meer bits gebruiken dan feitelijk noodzakelijk is. Zo is het mogelijk een tekst met behulp van ASCII codes op te slaan. Alle letters krijgen dan meestal elk een byte ter beschikking. De informatie die een letter bevat is echter meestal veel minder. Compressietechnieken maken van dit feit gebruik.
Gecomprimeerde bestanden kunnen weer gedecomprimeerd worden om het oorspronkelijke bestand terug te krijgen. De volgende figuur licht dat toe:

Uit de DOS-wereld zijn bestanden met de ZIP extensie voorbeelden van gecomprimeerde bestanden. Met PKZIP worden bestanden gecomprimeerd, met PKUNZIP zijn ze weer te decomprimeren. Onder linux kennen we gzip en gunzip naast het al wat oudere commando compress als tools waarmee we bestanden kunnen comprimeren en decomprimeren.

Begrippen en definities

Lossy en Lossless

Als we met compressie en de bijbehorende decompressie bestanden in hun oorspronkelijke staat terugkrijgen, spreken we van lossless compressie. Deze wijze van comprimeren wordt toegepast om grote computerprogramma's op bijvoorbeeld een floppy disk te schrijven. Bij het decomprimeren blijkt het oorspronkelijke bestand bit voor bit weer hersteld te kunnen worden.
Er bestaan ook compressietechnieken waarbij het oorspronkelijke bestand niet meer helemaal, maar slechts bij benadering te genereren is bij het decomprimeren. Bij het comprimeren van digitale beelden wordt deze techniek vaak toegepast. Het resultaat kan op het oog redelijk goed overeenkomen met het oorspronkelijke beeld. Bij deze techniek is vaak ook het toegestane verlies aan kwaliteit van te voren op te geven. Staat men een groot verlies aan kwaliteit toe, dan blijkt het gecomprimeerde bestand aanzienlijk kleiner te kunnen worden dan wanneer men met weinig verlies aan beeldinformatie wil comprimeren. JPEG en MPEG zijn voorbeelden van deze zogeheten lossy compressie techniek.

Compressie snelheid

Een belangrijk gegeven bij comprimeren en decomprimeren is de snelheid waarmee zowel de compressie als de decompressie tot stand gebracht kunnen worden. Bij het afspelen van een gecomprimeerd audiobestand is het prettig als de decompressie zo snel kan verlopen dat het geluid tegelijk afgespeeld kan worden. Het bestand hoeft dan niet eerst gedecomprimeerd te worden om pas daarna afgespeeld te kunnen worden. Complexe compressiemethoden kunnen een aardige hoeveelheid rekenkracht van de CPU opslurpen. Voor het decomprimeren van videobestanden bestaan speciale co-processoren die bijvoorbeeld op een videokaart geintegreerd zijn.

Definities

Technieken

Hufman code

Het principe van deze compressietechniek is relatief eenvoudig. Gebruik voor veel voorkomende karakters weinig bits per karakter. Naarmate een karakter minder vaak voorkomt worden er meer bits voor het weergeven van dit karakter toegepast.

Adaptive compressie

LWZ algoritme

Toepassingen

Data file compressie

JPEG

MPEG

MP3