Datacompressie
Gegevenscompressie is een reeks stappen voor het verpakken van gegevens in een kleinere ruimte, terwijl de oorspronkelijke gegevens weer zichtbaar worden. Compressie is een proces in twee richtingen: een compressiealgoritme kan worden gebruikt om een gegevenspakket kleiner te maken, maar het kan ook in omgekeerde richting worden gebruikt, om het pakket te decomprimeren tot zijn oorspronkelijke vorm. Gegevenscompressie is nuttig in computers om schijfruimte te besparen, of om de gebruikte bandbreedte te verminderen bij het verzenden van gegevens (bv. via het internet).
Compressie zonder verlies
Bij verliesloze compressie worden gegevens zodanig verpakt dat het gecomprimeerde pakket kan worden gedecomprimeerd, en de gegevens er precies zo uit kunnen worden gehaald als ze erin gingen. Dit is zeer belangrijk voor computerprogramma's en archieven, want zelfs een zeer kleine verandering in een computerprogramma maakt het onbruikbaar.
Dit type compressie werkt door de hoeveelheid afvalruimte in een gegevenspakket te verminderen. Als u bijvoorbeeld een gegevenspakket ontvangt dat "AAAAABBBB" bevat, kunt u dat comprimeren tot "5A4B", dat dezelfde betekenis heeft maar minder ruimte in beslag neemt. Dit type compressie wordt "run-length encoding" genoemd, omdat u bepaalt hoe lang de "run" van een teken is. In het bovenstaande voorbeeld zijn er twee runs: een run van 5 A's, en een andere van 4 B's.
Het probleem met run-length codering is dat het alleen werkt op lange stukken van dezelfde gegevenswaarde. Als u een pakket ontvangt met "ABBAABAAB" erin, kan dat worden gecomprimeerd tot "1A2B2A1B2A1B"; maar dat is langer dan het origineel! In dit geval kan een andere methode worden gebruikt: nagaan hoe vaak een bepaalde waarde voorkomt in het hele gegevenspakket. Dit wordt vaak frequentiecompressie genoemd.
De meest gebruikelijke vorm van frequentiecompressie wordt Huffman-codering genoemd, naar de wetenschapper die met het idee kwam. Het basisplan is om elke afzonderlijke waarde in een stukje data een code te geven: waarden die steeds voorkomen krijgen een kortere code, en waarden die slechts één of twee keer voorkomen krijgen een langere code.
Voorbeelden van compressie zonder verlies
- Archiveringsformaten: Zip, GZip, bZip2, 7-Zip, enz.
- Afbeeldingen/diagrammen: GIF, PNG, PCX
- Audio: FLAC, WavPack
- Video: FFV1, H.264/MPEG-4 AVC Hoog Voorspellend Profiel
- Programmacompressoren: UPX
Compressie met verlies
Voor sommige soorten gegevens kan lossy compressie veel verder gaan; dit is meestal het geval bij mediabestanden, zoals muziek en afbeeldingen. Bij lossy compressie gaat een deel van de gegevens verloren, zodat er minder hoeft te worden opgeslagen. Afhankelijk van welke informatie verloren gaat, merken mensen niet dat het ontbreekt. Bijgevolg kan het gewoon uit de gegevens worden verwijderd.
Dit werkt natuurlijk niet voor computerprogramma's en andere dergelijke gegevens waarbij elk stukje belangrijk is; het weggooien van stukjes van een computerprogramma is over het algemeen ongezond voor het programma.
Voorbeelden van compressie met verlies
- Afbeeldingen: JPEG
- Audio: MP3, Windows Media
- Video: MPEG, DivX, Windows Video
Vragen en antwoorden
V: Wat is gegevenscompressie?
A: Datacompressie verwijst naar het inpakken van gegevens in een kleinere ruimte, terwijl de originele gegevens nog steeds toegankelijk zijn.
V: Wat is het doel van gegevenscompressie in computers?
A: Datacompressie is nuttig in computers om schijfruimte te besparen en om de hoeveelheid bandbreedte die nodig is voor het verzenden van gegevens over het internet te verminderen.
V: Is gegevenscompressie een eenrichtingsproces?
A: Nee, gegevenscompressie is een tweerichtingsproces. Het kan worden gebruikt om gegevenspakketten kleiner te maken, maar het kan ook omgekeerd worden uitgevoerd om het pakket weer in zijn oorspronkelijke vorm te decomprimeren.
V: Welke voordelen biedt gegevenscompressie voor het verzenden van gegevens via internet?
A: Door gegevens te comprimeren, kan de hoeveelheid bandbreedte die nodig is om de gegevens te verzenden, worden verminderd, waardoor het minder tijd kost om de gegevens te verzenden.
V: Waarom is het belangrijk dat de originele gegevens na compressie kunnen worden bekeken?
A: Als de originele gegevens na compressie niet toegankelijk zijn, zijn de gecomprimeerde gegevens slechts beperkt bruikbaar.
V: Kan gegevenscompressie de overdracht van grote bestanden versnellen?
A: Ja, gegevenscompressie kan de overdracht van grote bestanden versnellen omdat kleinere bestanden minder tijd kosten om over te dragen.
V: Wat is een compressiealgoritme?
A: Een compressiealgoritme is een reeks stappen die gebruikt worden om gegevens te comprimeren tot een kleinere ruimte terwijl de originele gegevens opnieuw bekeken kunnen worden.