Als u tijd besteedt aan het downloaden van software of het delen van grote documenten, bent u waarschijnlijk wel eens een .zip -bestand tegengekomen. Het is een van die digitale gemakken die zo goed werken dat we er zelden bij stilstaan. Het uitgangspunt is simpel: neem een omvangrijk bestand, verklein de footprint en verplaats het sneller over het internet. Of zorg ervoor dat het minder ruimte in beslag neemt op uw harde schijf.
Maar er is hier sprake van een kleine paradox. Hoe verwijder je gegevens en haal je ze er later op magische wijze weer uit, zonder dat er ook maar een stukje ontbreekt?
Het is geen magie. Het is redundantiebeheer. Zodra we de basisprincipes van hoe je een bestand comprimeert hebben besproken, gaan we dieper in op de werking van wat er feitelijk in dat archief gebeurt.
Een bestand comprimeren: de snelstartgids
In de kern gebruikt compressie algoritmen om de bestandsgrootte te verkleinen. Dit bespaart schijfruimte. Het versnelt ook de overdracht via langzamere verbindingen. Het maken van een zip-bestand is in de meeste moderne besturingssystemen ingebouwd. Voor basistaken heeft u geen speciaal gereedschap nodig.
Hier is het eenvoudige proces.
1. Selecteer de doelbestanden
Begin met het identificeren van wat u wilt verkleinen. Compressie levert de beste resultaten op bij grotere bestanden. Videobestanden en onbewerkte afbeeldingen zijn uitstekende kandidaten omdat ze aanzienlijke bandbreedte en opslagruimte in beslag nemen. Kleine tekstbestanden worden vaak slecht gecomprimeerd omdat ze de repetitieve patronen missen die nodig zijn voor een efficiënte reductie.
2. Gebruik ingebouwde tools
Waarschijnlijk beschikt u al over de software die u nodig heeft.
Op Windows is het proces doodeenvoudig. Klik met de rechtermuisknop op de geselecteerde bestanden. Navigeer naar het menu ‘Verzenden naar’. Kies ‘Gecomprimeerde (gezipte) map’. Windows doet de rest.
Mac-gebruikers hebben een soortgelijke snelkoppeling. Control-klik op de bestanden. Selecteer ‘Comprimeren’. Het systeem genereert automatisch een zip-archief.
Als uw besturingssysteem deze functie niet heeft of als u geavanceerde opties nodig heeft, heeft u software van derden nodig. Tools zoals 7-Zip of WinRAR bieden meer gedetailleerde controle over compressieniveaus. Maar voor dagelijks gebruik zijn de ingebouwde tools voldoende.
3. Genereer het archief
Zodra u de opdracht activeert, begint de software met zijn werk. Het scant de bestanden. Het past het gekozen algoritme toe. Er wordt een nieuw zip-bestand gemaakt in dezelfde map als de originelen.
De snelheid van dit proces is afhankelijk van twee factoren: bestandsgrootte en CPU-capaciteit. Een paar grote video’s kunnen seconden duren. Een map vol kleine tekstbestanden kan vanwege de overhead langer duren, hoewel de uiteindelijke groottewinst verwaarloosbaar kan zijn.
4. Behandel het resultaat
Je hebt nu één container. Je kunt de naam ervan wijzigen. Je kunt het naar een USB-station verplaatsen. Je kunt het e-mailen. De ontvanger moet de inhoud extraheren om deze te kunnen gebruiken. Dit keert het proces om.
Houd rekening met de afwegingen. Voor documenten, code en tekst is de compressie vrijwel verliesvrij. Je krijgt precies terug wat je erin stopt. Voor afbeeldingen en video is het verhaal anders. Sommige compressiemethoden verminderen de kwaliteit om kleinere formaten te verkrijgen. Dit staat bekend als verliesgevende compressie. Tekstcompressie is doorgaans verliesvrij.
Hoe bestandscompressie eigenlijk werkt
Computerbestanden zijn notoir repetitief. Ze bevatten dezelfde informatie, keer op keer aan elkaar geregen. Compressiesoftware gedijt op deze redundantie.
In plaats van ‘de’ driehonderd keer te schrijven, schrijft een compressiealgoritme ‘de’ één keer. Vervolgens wordt er een referentiewijzer gemaakt. Elke volgende keer dat het “de” ziet, verwijst het terug naar de eerste instantie. Dit vermindert het totale aantal bits en bytes drastisch.
Om dit te begrijpen, moeten we naar de taal kijken.
Denk eens aan de inaugurele rede van John F. Kennedy uit 1961. De beroemde regel:
“Vraag niet wat uw land voor u kan doen – vraag wat u voor uw land kunt doen.”
Laten we de eenheden tellen. Het citaat heeft 17 woorden. Het bevat 61 brieven. Er zijn 16 ruimtes. Eén streepje. Eén periode. Als we aan elk teken, spatie of symbool één geheugeneenheid toewijzen, bedraagt de totale bestandsgrootte 79 eenheden.
Laten we nu de ontslagen vinden. Voor de eenvoud negeren we hoofdletters.
- “vragen” verschijnt twee keer.
- “wat” verschijnt twee keer.
- “uw” verschijnt twee keer.
- “land” verschijnt tweemaal.
- “kan” verschijnt twee keer.
- “do” verschijnt twee keer.
- “voor” verschijnt twee keer.
- “jij” verschijnt twee keer.
Ongeveer de helft van de zin is overbodig. Negen unieke woorden – vragen, niet, wat, jouw, land, kunnen, doen, voor, jou – bevatten bijna alle noodzakelijke informatie. Om de tweede helft te reconstrueren, wijst het algoritme alleen naar de woorden in de eerste helft. Het vult de spaties en interpunctie in met behulp van eenvoudige regels.
Dit is de essentie van verliesloze compressie. Er wordt geen informatie verwijderd. Het elimineert herhaling.
We zullen hierna nader kijken naar de algoritmen die naar deze patronen zoeken.
De verborgen kosten van woordenboekcompressie
De meeste compressietools zijn afhankelijk van variaties op het LZ adaptieve woordenboekalgoritme. Het is vernoemd naar de makers Lempel en Ziv, en het ‘woordenboek’-gedeelte is het mechanisme voor het catalogiseren van herhaalde gegevens. Het systeem voor het organiseren van deze gegevens is niet complex. Het kan een eenvoudige genummerde lijst zijn.
Neem de beroemde lijn van JFK. Het compressieprogramma scant op herhaalde woorden en wijst deze toe aan een index. Vervolgens worden de woorden vervangen door de toegewezen nummers.
Als het woordenboek er zo uitziet:
- vraag
- wat
- jouw
- land
- kan
- voor
- jij
De zin “Vraag niet wat uw land voor u kan doen; vraag wat u voor uw land kunt doen” verandert in een code. Het wordt:
1 niet 2 3 4 5 6 7 8 — 1 2 8 5 6 7 3 4
Een ontvangende computer gebruikt hetzelfde woordenboek en hetzelfde cijferpatroon om de originele tekst te reconstrueren. Zo werkt expansie. Sommige gecomprimeerde bestanden bevatten een ingesloten uitbreidingsprogramma. Het herbouwt automatisch het originele bestand tijdens het downloaden.
Maar hoeveel ruimte bespaart dit eigenlijk?
De numerieke reeks is korter dan het volledige aanhalingsteken. Er is een vangst. U moet het woordenboek zelf naast de gecomprimeerde gegevens opslaan.
In een realistisch scenario is het berekenen van de bestandsvereisten rommelig. Neem voor deze uitsplitsing aan dat elk teken en elke spatie gelijk is aan één geheugeneenheid. De volledige zin beslaat 79 eenheden. De gecomprimeerde zin gebruikt 37 eenheden. Het woordenboek neemt ook 37 eenheden in beslag.
De totale bestandsgrootte is 74 eenheden. De reductie is minimaal.
Dit is slechts één zin. Als het algoritme de rest van de toespraak zou verwerken, zouden deze woorden veel vaker worden herhaald. De efficiëntie verbetert naarmate de herhaling toeneemt. Zoals we zullen zien, herschrijft het systeem ook zijn eigen woordenboek om de organisatie verder te optimaliseren.
Verder dan eenvoudige woordmatching
Eerdere stappen waren gebaseerd op het identificeren van volledige, herhaalde woorden. We behandelden de tekst als een reeks afzonderlijke eenheden. Een compressie-algoritme geeft niets om woorden. Het gaat om patronen.
Het doel is simpel: het bestand verkleinen.
Om dat te doen, scant de software op redundantie. Er wordt niet gevraagd: “is dit een woord?” Er wordt gevraagd: “Heb ik deze reeks eerder gezien?” En het is meedogenloos. Als een patroon slechts één keer voorkomt, wordt het verwijderd. Als een korter patroon vaker voorkomt dan een langer patroon, kan het langere patroon in stukjes worden gehakt.
Dit is de “adaptieve” kern van op LZ gebaseerde algoritmen. Het woordenboek evolueert. Het verandert. Het optimaliseert in realtime.
Hoe patroonselectie werkt
Neem de beroemde lijn van JFK.
“Vraag niet wat uw land voor u kan doen, vraag niet wat u voor uw land kunt doen.”
Een mens ziet woorden. Een compressor ziet karakters.
De eerste herhaalde reeks kan klein zijn. “t” gevolgd door een spatie. Het verschijnt in ‘niet’ en ‘wat’. Het programma merkt het op. Schrijft het op. Dan gaat het verder.
Waarom? Omdat in dit korte fragment ‘t’ niet genoeg wordt herhaald om de kosten van het opslaan van zijn eigen ID in het woordenboek te rechtvaardigen. Het wordt overschreven of genegeerd.
Vervolgens verschijnt ‘ou’ in ‘uw’ en ‘land’. Bruikbaar? Misschien. In een volledig boek is ‘ou’ een goudmijn. Hier? Het algoritme vindt iets beters.
‘uw’ en ‘land’ verschijnen samen als ‘uw land’. Twee keer herhaald. Dit is een sterker signaal dan ‘ou’. De woordenboekinvoer voor “ou” wordt verwijderd. “uw land” neemt zijn plaats in.
Maar wacht.
Kijk naar ‘kan doen voor’. Het wordt gevolgd door ‘jouw’ en ‘jij’. De reeks “kan voor u doen” herhaalt zich.
Wat is efficiënter?
“uw land” = 13 tekens (inclusief spatie).
“kan voor u doen” = 15 tekens.
Het algoritme geeft de voorkeur aan de langere match als er meer bits per instantie worden opgeslagen. Maar “kan voor u doen” omvat ook “u”, terwijl “uw land” ook “uw” omvat.
Als het programma prioriteit geeft aan maximale tekenvervanging, kan het “uw land” kapot maken. Het behoudt ‘r land’ als achtervoegsel en creëert een primaire vermelding voor ‘kan voor u doen’. Hierdoor kan de compressor naar het grootste deel van de zin verwijzen met één code, terwijl de kleine variatie (“jouw” versus “jij”) met secundaire verwijzingen wordt afgehandeld.
Deze dynamische herschrijving maakt LZ adaptief. Het woordenboek is niet statisch. Het is een levend verslag van wat er zojuist in de datastroom is gebeurd.
De compressieverhouding
Met behulp van onze afgeleide patronen:
- vraag__
- wat__
- jij
- r__land
- kan doen__voor__jou
De oorspronkelijke zin wordt een reeks aanwijzingen:
1 niet__ 2 3 4 5 __ — __ 1 2 3 5 4
Het geheugengebruik verandert dramatisch.
Originele tekst: 79 eenheden.
Gecomprimeerde gegevens: 18 eenheden.
Woordenboekoverhead: 41 eenheden.
Totaal: 59 eenheden.
We hebben 20 eenheden bespaard. Dat is een reductie van ongeveer 25%. Niet slecht voor een paar regels tekst. En niet noodzakelijkerwijs de meest efficiënt mogelijke output. Waarschijnlijk vindt u een strakkere regeling. Maar het punt staat: het vinden van de juiste patronen is belangrijker dan alleen het vinden van welke patronen dan ook.
Waarom tekst beter comprimeert dan afbeeldingen
Waarom krimpen sommige bestanden dan met 50% of meer, terwijl andere nauwelijks bewegen?
Ontslag.
Natuurlijke talen zijn zeer overbodig. Letters clusteren op specifieke manieren. “Th”, “ing”, “tion.” Woorden herhalen zich voortdurend. Tekstbestanden zitten boordevol voorspelbare structuren. Compressoren gedijen hier.
Programmeercode is vergelijkbaar. Een beperkte reeks trefwoorden en opdrachten wordt eindeloos herhaald. ‘als’, ‘terwijl’, ‘terugkeren’. De patronen zijn rigide. Compressie werkt goed.
Grafisch? Audio?
Niet zo veel.
Een afbeelding of een MP3-bestand bevat unieke gegevens. Elke pixel heeft een specifieke waarde. Elk audiofragment is verschillend. Er zijn weinig herhalende reeksen. De entropie is hoog. Het algoritme kan niet genoeg overlappende patronen vinden om een bruikbaar woordenboek op te bouwen.
Dit is de reden waarom verliesvrije compressie mislukt op mediabestanden. Je hebt verschillende technieken nodig. Daarover later meer.
Bestandsgrootte en algoritmekeuze
Verbetert de compressie bij grotere bestanden?
Over het algemeen wel.
Als we de hele toespraak van JFK zouden comprimeren, zouden de besparingen groter zijn. Waarom? Omdat dezelfde patronen zich vaker herhalen. De woordenboekvermeldingen worden duizenden keren hergebruikt. De overhead van het woordenboek wordt verwaarloosbaar in vergelijking met de besparingen.
Kleine bestanden? De overhead van het woordenboek slokt de winst op.
De keuze van algoritmen speelt ook een grote rol.
Niet alle LZ-varianten zijn gelijk gemaakt. Sommige zijn afgestemd op tekst. Sommige voor gegevens. Sommigen gebruiken hiërarchische woordenboeken (woordenboeken binnen woordenboeken) om complexe, geneste patronen in grote bestanden op te vangen. Ze zouden kunnen stikken in kleine input.
Programmeurs zijn voortdurend bezig met het aanpassen van deze systemen. Het doel is altijd hetzelfde: betere verhoudingen, hogere snelheden. Maar er is geen universele oplossing.
De beste compressor voor uw tekst kan de slechtste zijn voor uw database.
De compressie die we hebben besproken is verliesloze compressie. Het is de enige manier om te garanderen dat u het originele bestand terugkrijgt. Elk stukje blijft intact. Je deelt het bestand op in een kleiner deel voor opslag of overdracht, en zet het vervolgens weer in elkaar zoals het was. Er gaan geen gegevens verloren.
Compressie met verlies volgt een andere route. Het probeert niet alles te behouden. In plaats daarvan gooit het ‘onnodige’ informatie weg. Het doel is simpel: maak het bestand kleiner. Je ziet dit overal. Het is de standaard voor bitmapafbeeldingen.
Bitmaps zijn opgeblazen. Ze vreten ruimte op. Een gescande foto is een perfect voorbeeld.
Lossless-algoritmen hebben het hier moeilijk. Zeker, grote delen zien er identiek uit. De lucht is blauw. Maar kijk dichterbij. Elke pixel is iets anders. De kleurwaarden verschuiven. Om het bestand te verkleinen zonder de resolutie te verliezen, moet u deze waarden wijzigen.
Het programma kiest één tint blauw. Het kent die ene waarde toe aan elke pixel in de lucht. Het herschrijft het bestand zodat het naar die referentie verwijst. Het resultaat? De bestandsgrootte neemt aanzienlijk af. Je zult het verschil niet merken.
Maar er zit een addertje onder het gras. U kunt het originele bestand nooit meer terugkrijgen.
Zodra je het comprimeert, zit je vast aan de interpretatie van de werkelijkheid door het programma. De oorspronkelijke gegevens zijn verdwenen. U kunt geen lossy-compressie gebruiken voor dingen die een exacte reproductie vereisen. Softwaretoepassingen? Nee. Databases? Nee. Presidentiële inauguratietoespraken? Absoluut niet.
“Met compressie met verlies kun je het originele bestand niet terugkrijgen nadat het is gecomprimeerd. Je zit vast aan de herinterpretatie van het origineel door het compressieprogramma.”
We hebben dit artikel bijgewerkt in combinatie met AI-technologie en er vervolgens voor gezorgd dat het op feiten werd gecontroleerd en bewerkt door een HowStuffWorks-editor.
Veelgestelde vragen over bestandscompressie
Wat doet het comprimeren van een bestand?
Het verkleint de bestandsgrootte. Kleinere bestanden betekenen snellere verzending. U verzendt en ontvangt gegevens sneller.
Wat zijn de basistypen bestandscompressieschema’s?
Er zijn er twee. Verliesloos en verliesgevend. Lossless breekt het bestand af en bouwt het later opnieuw op. Lossy elimineert bits. Het verkleint het bestand permanent. U kunt verliesgevende compressie niet ongedaan maken.
Welke compressie gebruiken zip-bestanden?
Zip-bestanden zijn afhankelijk van verliesloze gegevenscompressie. Ze verwerken meerdere mappen. Ze gebruiken algoritmen zoals DEFLATE. De gegevens komen er precies zo uit als ze erin zijn gegaan.
Verlaagt bestandscompressie de kwaliteit?
Ja. Nadat een afbeelding op een computer of in een camera is gecomprimeerd, gaat de kwaliteit vaak achteruit. De scherpte neemt af. Het contrast vervaagt. Fijne kleurdetails verdwijnen. Het beeld ziet er slechter uit. Dat is de afweging.



























