Hoe werkt bestandscompressie?
We hebben allemaal gehoord van bestandscompressie. Iedereen die regelmatig bestanden van internet downloadt, kent formaten als ZIP en RAR en iedereen die mediabestanden bewerkt weet dat compressie nodig is om afbeeldingen, muziek en video's op internet te delen zonder al uw bandbreedte te gebruiken. Bestandscompressie vormt de kern van hoe het web werkt, zou u kunnen betogen, omdat het ons toestaat om bestanden te delen die anders te lang zouden duren om over te zetten. Maar hoe werkt het??
Het is niets magisch, maar het is het resultaat van veel hard werk door heel veel slimme mensen. Laten we eens kijken hoe bestandscompressie werkt door te kijken naar de twee hoofdtypen compressie: verliesvrij en lossy.
Gewoon een waarschuwing - ik ga hier dingen te simplificeren in een poging om dit leesbaar te maken voor non-math majors. Bekijk de gelinkte Wikipedia-artikelen voor meer diepgang en de bronnen van Wikipedia voor nog meer informatie.
Compressie zonder verlies
Lossless-compressie werkt in principe door redundantie te verwijderen. Wat betekent dat? Laten we dingen vereenvoudigen. Deze stapel stenen zal onze gegevens vertegenwoordigen:
Zoals je kunt zien, hebben we twee rode stenen, vijf geel en drie blauw. De eenvoudigste manier om dit weer te geven is zoals je hierboven ziet: de stenen zelf. Maar het is niet de enige manier waarop ik dit kan vertegenwoordigen. Ik zou dit ook kunnen doen:
In de bovenstaande afbeelding ziet u precies dezelfde informatie - twee rode, vijf gele en drie blauwe - maar deze neemt aanzienlijk minder ruimte in beslag. Ik heb overbodige stenen weergegeven met getallen, wat betekent dat ik slechts drie stenen nodig heb om tien te vertegenwoordigen.
Dit geeft u een globaal idee hoe compressie zonder verlies mogelijk is. Informatie die overbodig is, wordt vervangen door instructies die de computer vertellen hoeveel identieke gegevens zich herhalen. Nog een vereenvoudigd voorbeeld:
fffffffuuuuuuuuuuuu
Kan zijn “gecomprimeerde” naar:
f7u12
Dit is natuurlijk maar één methode voor verliesloze compressie, maar het wijst erop hoe dit mogelijk is. Andere wiskundige trucs worden gebruikt, maar het belangrijkste om te onthouden over verliesloze compressie is dat terwijl ruimte tijdelijk wordt opgeslagen, het mogelijk is om het originele bestand volledig te reconstrueren uit de gecomprimeerde. Als je drie stenen met cijfers ziet, weet je precies hoe je de stapel moet maken. Er gaat geen informatie verloren, zoals de naam zonder verlies aangeeft.
Programma's zoals WinZip zijn gebaseerd op compressie zonder verlies. Ze verwijderen deze overtollige informatie wanneer u comprimeert (of “ritssluiting”) het bestand en herstel het wanneer u het comprimeert (of “uitpakken”). Er gaat niets verloren.
In de beeldwereld gebruiken PNG-bestanden ook compressie zonder verlies. Daarom bieden ze een kleinere bestandsgrootte voor afbeeldingen met veel uniforme ruimte: overbodige informatie wordt weergegeven met behulp van instructies.
Dit is natuurlijk allemaal een overdreven vereenvoudiging, maar het komt het basispunt over. Lees meer over verliesloze compressie op Wikipedia, als je geïnteresseerd bent.
Lossy Compression
Natuurlijk kun je alleen zoveel mogelijk verliezen zonder verlies van methoden. Gelukkig zijn ze niet de enige optie: je kunt ook gewoon informatie verwijderen. Dit wordt lossy-compressie genoemd en het is niet zo gek als het klinkt; in feite heb je waarschijnlijk veel bestanden op je computer gemaakt met gecomprimeerde compressie.
Een mp3 bijvoorbeeld. Als je op de meeste mensen lijkt slaat je computer duizenden van je op voor je, maar wist je dat ze niet alle audio-informatie bevatten die de originele opname had? Sommige geluiden, die mensen niet of nauwelijks kunnen horen, worden verwijderd als onderdeel van de compressie. Hoe meer je een bestand comprimeert, hoe meer informatie er wordt verwijderd, daarom zal een overmatig gecomprimeerd bestand modderig beginnen te klinken.
Lossy-compressie wordt meestal gebruikt voor mediabestanden - afbeeldingen, geluid en video. Het gebruik van lossy-compressie voor een tekstbestand zou problematisch zijn, omdat de resulterende informatie onleesbaar zou zijn. Het is echter niet altijd nodig dat mediabestanden alle informatie bevatten.
Een ander voorbeeld van lossy-compressie is de JPEG-afbeelding. Over het algemeen hoeven afbeeldingen die op internet worden gezien niet zo hoogwaardig te zijn als afbeeldingen die bedoeld zijn om te worden afgedrukt. Als zodanig kunt u veel overtollige informatie in een webafbeelding verwijderen, zelfs als dit er vreselijk zou uitzien.
Natuurlijk, het herhaaldelijk comprimeren van een bestand met behulp van lossy-methoden verlaagt de kwaliteit - elke keer dat je dit doet, gaan er meer gegevens verloren. Hieronder is een foto die ik driemaal heb gecomprimeerd om dit aan te tonen:
Je kunt van links naar rechts zien hoe de kwaliteit afneemt. Het maakt misschien niet uit, afhankelijk van waar de afbeelding voor zal worden gebruikt, en dat is waarom lossy-compressie bestaat.
Het is belangrijk om te onthouden dat bestanden die met lossy-methoden zijn gecomprimeerd, gegevens verliezen, wat betekent dat u het originele bestand niet opnieuw kunt maken met gecomprimeerde methoden met lossy. Het is duidelijk als je erover nadenkt, maar veel drukwerkprojecten zijn geruïneerd vanwege een gebrek aan begrip van dit belangrijke punt.
Ik heb hier echt alleen maar de oppervlakte bekrast, dus alsjeblieft: lees meer over lossy-compressie op Wikipedia. Het is een beetje fascinerend.
Conclusie
Compressie heeft het web gemaakt tot wat het is. In de dagen van dialup brachten gecomprimeerde beelden foto's naar onze browser, althans niet met een acceptabele snelheid. Gecomprimeerde video maakt sites zoals YouTube mogelijk en iedereen die gebruik maakt van bestandsdelingnetwerken is bekend met ZIP- en RAR-bestanden.
Heb je iets toe te voegen? Ik weet zeker dat ik een aantal belangrijke punten heb gemist, dus onderricht mij (en de andere lezers) in de opmerkingen hieronder.
Image Credit: Spring afbeelding via Shutterstock
Ontdek meer over: Bestandscompressie.