Wat is afbeeldingscompressie?
Een ongecomprimeerde afbeelding slaat kleurwaarden op voor elke enkele pixel. Een 12-megapixelfoto op 24-bits kleur neemt 36 MB ruwe gegevens in beslag. Dat is onpraktisch voor webpagina's, e-mail en opslag, dus comprimeren we afbeeldingen om de bestandsgrootte te verkleinen. De fundamentale vraag is: ben je bereid om gegevens te verliezen in ruil voor dramatisch kleinere bestanden?
Het antwoord splitst alle afbeeldingscompressie in twee families. Lossy-compressie (met verlies) verwijdert permanent informatie die het algoritme als minder belangrijk voor menselijke waarneming beschouwt. Lossless-compressie (zonder verlies) herrangschikt en codeert gegevens efficiënter zonder iets weg te gooien. Beide produceren kleinere bestanden, maar de afwegingen zijn fundamenteel verschillend.
Lossy-compressie — Kleinere bestanden, enig gegevensvernis
Lossy-compressie werkt door de beperkingen van menselijk zicht uit te buiten. Onze ogen zijn veel gevoeliger voor helderheidsveranderingen dan voor kleurveranderingen, en we hebben moeite om fijne hochfrequente details waar te nemen. Lossy-algoritmen profiteren van deze blinde vlekken om gegevens weg te gooien die de meeste viewers nooit zullen missen.
Hoe JPEG lossy-compressie werkt
JPEG, het meest voorkomende lossy-formaat, comprimeert afbeeldingen via een meertraps-pijplijn:
- Kleurruimteconversie: De afbeelding wordt van RGB naar YCbCr geconverteerd, waardoor helderheid (luma) van kleur (chroma) wordt gescheiden. Dit stelt het algoritme in staat elk kanaal anders te behandelen.
- Chroma-downsampling: De kleurkanalen worden gedownsampled (typisch 4:2:0), wat de kleurresolutie met 75% verlaagt. Omdat menselijk zicht lage chroma-gevoeligheid heeft, is de vermindering bijna onzichtbaar.
- DCT (Discrete Cosine Transform): De afbeelding wordt verdeeld in 8×8 pixelblokken, en elk blok wordt getransformeerd van ruimtelijke pixelwaarden naar frequentiecoëfficiënten. Lage-frequentie coëfficiënten vertegenwoordigen vloeiende gradiënten; hoogfrequente coëfficiënten vertegenwoordigen fijne details en randen.
- Quantization: Dit is waar gegevens permanent verloren gaan. Hoogfrequente coëfficiënten worden door grote getallen gedeeld en afgerond, waardoor fijne details effectief op nul worden gesteld. De kwaliteitsinstelling (Q1–Q100) bepaalt hoe agressief deze afronding plaatsvindt.
- Entropiecodering: De gekwantiseerde coëfficiënten worden verder gecomprimeerd met Huffman-codering of rekenkundige codering, wat het uiteindelijke compacte bitstroom oplevert.
Het resultaat: een 36 MB onbewerkte afbeelding wordt een 2–4 MB JPEG bij kwaliteit 85, een vermindering van 10:1 tot 18:1, met een kwaliteit die de meeste viewers niet van het origineel kunnen onderscheiden.
Lossy-afbeeldingsformaten
| Formaat | Jaar | Typische verhouding | Opmerkingen |
|---|---|---|---|
| JPEG | 1992 | 10:1 – 50:1 | Universele ondersteuning, geen transparantie, op DCT gebaseerd |
| WebP (lossy) | 2010 | 12:1 – 60:1 | 25–34% kleiner dan JPEG, ondersteunt transparantie |
| AVIF (lossy) | 2019 | 15:1 – 80:1 | ~50% kleiner dan JPEG, HDR, 10/12-bits kleur |
| HEIC | 2015 | 12:1 – 60:1 | Apple-standaard, op HEVC gebaseerd, beperkte niet-Apple-ondersteuning |
Wanneer lossy-compressie gebruiken
- Foto's — Natuurlijke afbeeldingen met vloeiende gradiënten, complexe texturen en miljoenen kleuren. JPEG-artefacten zijn bijna onzichtbaar in fotografische inhoud.
- Webafbeeldingen — Paginasnelheid is cruciaal voor gebruikerservaring en SEO. Lossy-compressie levert de kleinst mogelijke bestanden.
- Sociale media — Platforms comprimeren uploads toch opnieuw (Instagram gebruikt Q75, Facebook gebruikt Q85). Als je begint met een goed geoptimaliseerde JPEG, minimaliseer je artefacten van dubbele compressie.
- E-mailbijlagen — De meeste e-mailproviders stellen een maximale bijlagegrootte van 25 MB in. Lossy-compressie houdt fotobatches binnen de limieten.
- Mobiele apps — Bandbreedte is beperkt en duur op mobiele netwerken. Kleinere afbeeldingen betekenen snellere laadtijden en lager gegevensgebruik.
Lossless-compressie — Perfecte kwaliteit, grotere bestanden
Lossless-compressie vermindert de bestandsgrootte zonder een enkel bit afbeeldingsgegevens weg te gooien. De gedecomprimeerde uitvoer is wiskundig identiek aan de originele invoer, pixel voor pixel, bit voor bit. Je kunt een miljoen keer comprimeren en decomprimeren en de afbeelding zal nooit veranderen.
Hoe PNG lossless-compressie werkt
PNG, het meest voorkomende lossless-formaat, gebruikt een tweestaps-compressie-pijplijn:
- Voorspelling (filtering): Voordat compressie, past PNG een van vijf filteralgoritmen toe op elke pixelrij. Elk filter voorspelt de waarde van de huidige pixel op basis van aangrenzende pixels en slaat alleen het verschil (residuaal) op. Voor vloeiende gebieden zijn residualen dicht bij nul, wat zeer efficiënt comprimeert.
- DEFLATE-compressie: De gefilterde gegevens worden gecomprimeerd met DEFLATE (hetzelfde algoritme achter ZIP en gzip). DEFLATE combineert LZ77 woordenboekaanpassing (het vinden van herhaalde bytereeksen) met Huffman-codering (kortere codes toewijzen aan frequentere waarden).
Omdat geen gegevens worden weggegooid, zijn lossless-compressieverhouding bescheiden. Een typische foto comprimeert tot ongeveer 2:1 tot 3:1. Eenvoudige afbeeldingen met grote vlakke kleurgebieden kunnen 10:1 tot 50:1
Lossless-afbeeldingsformaten
| Formaat | Jaar | Typische verhouding | Opmerkingen |
|---|---|---|---|
| PNG | 1996 | 2:1 – 5:1 | Universele ondersteuning, alfatransparantie, webstandaard |
| WebP (lossless) | 2010 | 2.5:1 – 7:1 | ~26% kleiner dan PNG, alfatransparantie |
| AVIF (lossless) | 2019 | 3:1 – 8:1 | Beste lossless-verhouding, trage codering, groeiende ondersteuning |
| TIFF (LZW) | 1986 | 1.5:1 – 3:1 | Druk-/publicatiestandaard, grote bestanden, geen webondersteuning |
| GIF | 1987 | 3:1 – 10:1 | Alleen 256-kleurenpalette, animatie, verouderd formaat |
| BMP | 1986 | 1:1 (geen) | Ongecomprimeerd, enorme bestanden, alleen Windows-gebruik |
Wanneer lossless-compressie gebruiken
- Afbeeldingen, logo's en pictogrammen — Scherpe randen, vlakke kleuren en tekst veroorzaken ernstige JPEG-artefacten. PNG verwerkt ze perfect met kleine bestandsgroottes.
- Schermafbeeldingen — Schermopnamen bevatten tekst, UI-elementen en scherpe lijnen. PNG behoudt ze helder; JPEG vervaagt ze.
- Pixelkunst — Elke pixel is opzettelijk geplaatst. Lossy-compressie vernietigt de precieze kleurgradiënten die de kunststijl bepalen.
- Medische en wetenschappelijke beeldvorming — Diagnostische nauwkeurigheid hangt af van exacte pixelwaarden. Lossy-artefacten kunnen pathologie maskeren of nabootsen.
- Juridische documenten en scans — Bewijsintegriteit vereist bitnauwkeurige reproductie. Lossy-compressie wijzigt de originele gegevens.
- Archiefopslag — Het origineel onveranderd bewaren voor toekomstig gebruik, zelfs als de huidige use case lossy-compressie zou tolereren.
- Bewerkingsworkflows — Werkbestanden moeten lossless blijven. Alleen als laatste stap naar lossy-formaten exporteren.
Visuele vergelijking — Lossy vs Lossless naast elkaar
Het praktische verschil tussen lossy en lossless hangt sterk af van de afbeeldingsinhoud en de kwaliteitsinstelling. Dit is wat je kunt verwachten bij verschillende JPEG-kwaliteitsniveaus in vergelijking met het originele lossless PNG:
| Kwaliteit | Bestandsgrootte (typische 12 MP foto) | Compressieverhouding | Zichtbare artefacten |
|---|---|---|---|
| PNG (lossless) | 15–25 MB | ~2:1 | Geen — bitnauwkeurig |
| JPEG Q95 | 5–8 MB | ~5:1 | Onwaarneembaar zonder vergelijking op pixelniveau |
| JPEG Q85 | 2–4 MB | ~10:1 | Onwaarneembaar op normale kijkafstand |
| JPEG Q75 | 1–2 MB | ~20:1 | Lichte vervaging, zichtbaar bij inzoomen in gradiënten |
| JPEG Q50 | 400–800 KB | ~40:1 | Blokvormigheid, rinkelende randen, kleuurbanding |
Waar artefacten eerst verschijnen in lossy-compressie:
- Lucht en gradiënten — Vloeiende tonaaltransities ontwikkelen zichtbare bandingstappen. Dit is het vroegste en meest voorkomende JPEG-artefact.
- Scherpe tekst en randen — Hoog-contrast grenzen produceren "rinkelen" of "muggenruis" — halos van gekleurde pixels rond scherpe randen.
- Fijne repetitieve patronen — Weefseltexturen, baksteentextures en haarlokken kunnen moiré-patronen of vervagen ontwikkelen.
- Vlakke kleurgebieden — Subtiele kleurverschuivingen worden zichtbaar wanneer grote gebieden perfect uniform zouden moeten zijn.
Belangrijk inzicht: Voor foto's is JPEG bij kwaliteit 85 of hoger visueel niet te onderscheiden van het originele lossless PNG voor de overgrote meerderheid van de viewers. Het bestandsgrooteverschil is echter dramatisch: 2–4 MB (JPEG Q85) vs 15–25 MB (PNG). Dat is een 5–10x verlaging.
Generatieverlies — De cumulatieve kosten van herhaald opslaan in lossy
Een van de belangrijkste verschillen tussen lossy en lossless compressie is wat er gebeurt wanneer je een bestand meerdere keren opent, bewerkt en opnieuw opslaat. Dit wordt generatieverlies genoemd, en het treft alleen lossy-formaten.
Wat gebeurt er bij elk JPEG opnieuw opslaan
Elke keer dat je een JPEG opent, deze bewerkt (zelfs licht) en opnieuw als JPEG opslaat, draait de gehele lossy-compressiepijplijn opnieuw. De DCT-transformatie, kwantisatie en afronding herhalen allemaal. Elke cyclus verwijdert enigszins verschillende gegevens, en de verliezen stapelen op:
| Hoeveelheid opslagen | JPEG Q90 | JPEG Q80 | JPEG Q60 |
|---|---|---|---|
| 1 (origineel opslaan) | Onwaarneembaar verlies | Onwaarneembaar verlies | Lichte vervaging |
| 3 keer opnieuw opslaan | Nog steeds onwaarneembaar | Zwakke artefacten bij inzoomen | Zichtbare degradatie |
| 5 keer opnieuw opslaan | Zwakke artefacten bij inzoomen | Merkbaar op normaal zicht | Significante blokvormigheid |
| 10 keer opnieuw opslaan | Merkbare vervaging | Zware blokvormigheid | Ernstig verslechterd |
| PNG (elke hoeveelheid) | Nul verandering — identiek aan origineel na elk aantal saves | ||
Hoe generatieverlies te voorkomen
- Bewerk in lossless-formaten: Houd je werkbestanden als PNG, TIFF of PSD. Exporteer alleen naar JPEG als laatste stap.
- Eenmaal opslaan, goed opslaan: Als je in JPEG moet werken (bijv. camera raw exports), kies kwaliteit 92+ voor werkende kopieën en sla alleen de einduitvoer op met je doelkwaliteit.
- Gebruik niet-destructieve editors: Tools zoals Adobe Lightroom passen bewerkingen toe als metagegevensoverlays — het originele bestand wordt nooit opnieuw gecomprimeerd tot export.
- Vermijd schermafbeelding-van-schermafbeelding-ketens: Elke opname comprimeert opnieuw via de weergavepijplijn van het scherm. Deel in plaats daarvan originele bestanden.
Lossless-formaten hebben nul generatieverlies. Je kunt een PNG-bestand duizend keer openen, bewerken en opslaan. De uitvoer blijft identiek aan wat je bedoelde. Dit is waarom professionele fotografen in lossless-formaten werken en alleen naar JPEG exporteren voor eindaflevering.
Wanneer bestandsgrootte meer belangrijk is (Kies Lossy)
In veel real-world scenario's weegt de kosten van grote bestanden zwaarder dan het voordeel van pixelnauwkeurige kwaliteit. Lossy-compressie is de juiste keuze wanneer:
- Webpaginasnelheid: Google beschouwt laadtijd van pagina's als rankingfactor. Afbeeldingen zijn doorgaans de zwaarste assets op een pagina. Het converteren van een heldenafbeelding van PNG (15 MB) naar JPEG Q85 (3 MB) kan de laadtijd met enkele seconden verkorten.
- E-mailgroottelimieten: Gmail stelt een maximale bijlagegrootte van 25 MB in. Een batch van 10 foto's op PNG-kwaliteit zou dit onmiddellijk overschrijden. Als JPEG passen ze gemakkelijk.
- Uploads op sociale media: Instagram, Facebook, Twitter en TikTok comprimeren alle geüploade afbeeldingen opnieuw. Het beginnen met een al gecomprimeerde JPEG minimaliseert de penalty van dubbele compressie.
- Mobiele bandbreedte: Op 3G/4G-netwerken telt elke kilobyte. Lossy-afbeeldingen laden sneller en gebruiken minder gegevens.
- Cloudopslagkosten: Fotobibliotheken van duizenden afbeeldingen kunnen honderden gigabytes in beslag nemen als PNG. Als JPEG past dezelfde bibliotheek in een fractie van de ruimte.
- CDN-bandbreedterekeningen: Content delivery networks berekenen per byte verzonden. Kleinere afbeeldingen verkleinen rechtstreeks de hostingkosten.
Wanneer kwaliteit meer belangrijk is (Kies Lossless)
Sommige use cases vereisen dat geen gegevens verloren gaan, ongeacht de bestandsgrootte. Lossless-compressie is essentieel wanneer:
- Medische beeldvorming: Röntgenafbeeldingen, MRI's en CT-scans moeten exacte pixelwaarden behouden. Compressie-artefacten kunnen pathologische bevindingen nabootsen of maskeren. De DICOM-standaard vereist lossless-compressie voor diagnostische afbeeldingen.
- Juridische en forensische documenten: Voor gerechtelijke vorderingen toelaatbare bewijzen moeten aantoonbaar onveranderd zijn. Lossy-compressie wijzigt de gegevens, wat authenticiteit kan betwisten.
- Archief- en cultureel erfgoedbehoud: Musea en bibliotheken digitaliseren zeldzame documenten voor langdurige opslag. De digitale kopie moet een getrouwe weergave van het fysieke origineel zijn, zonder compressie-artefacten.
- Drukproductie: Geavanceerde drukworkflows vereisen ongecomprimeerde of lossless gecomprimeerde bronbestanden. JPEG-artefacten kunnen zichtbaar worden wanneer afbeeldingen op hoge DPI op kwaliteitspapier worden afgedrukt.
- Bewerkingsworkflows: Elke keer dat je in een lossy-formaat bijsnijdt, kleurcorrectie toepast, retouchert of composiet, verlies je aanvullende gegevens. Het houden van bronbestanden lossless behoudt maximale bewerkingsflexibiliteit.
- Pixelkunst en retro-afbeeldingen: De kunstvorm is afhankelijk van exacte pixelkleuren en -grenzen. Een enkele pixel verschoven door lossy-compressie vernietigt de esthetiek.
- Schermafbeeldingen en documentatie: Schermafbeeldingen van technische documentatie moeten exacte UI-tekst en pictogrammen weergeven. JPEG-artefacten maken tekst wazig en moeilijk leesbaar.
De gouden middenweg — "Visueel lossless"
Tussen wiskundig perfect (PNG) en agressief gecomprimeerd (JPEG Q60) ligt een praktische zoetekost: visueel lossless compressie. Dit betekent technisch lossy — sommige gegevens worden weggegooid — maar het verschil is onwaarneembaar voor het menselijk oog onder normale kijkomstandigheden.
De JPEG zoetekost
Voor foto's is JPEG-kwaliteit 85–92 de visueel lossless zone:
- Q90–92: Wiskundig verschillend van het origineel (SSIM ~0,98–0,99) maar visueel identiek zelfs onder zorgvuldige vergelijking. Bestanden zijn ruwweg 3–5x kleiner dan PNG. Ideaal voor archivale JPEG-exports en afbeeldingen van hoge kwaliteit voor het web.
- Q85–89: De meest efficiënte zoetekost. Bestanden zijn 5–10x kleiner dan PNG. Geen waarneembaar verschil op normale kijkafstanden. Dit is wat Google, Apple en de meeste webplatforms aanbevelen voor geoptimaliseerde afbeeldingen.
- Q80–84: Nog steeds visueel uitstekend voor foto's. Kleine artefacten kunnen zichtbaar worden bij extreem inzoomen in gradiënten. De beste balans voor bandbreedtebewuste webaflevering.
Praktische aanbeveling: Voor de meeste gebruikers die PNG-foto's naar JPG converteren, is kwaliteit 85 het ideale startpunt. Het levert uitstekende visuele kwaliteit met dramatische besparing op bestandsgrootte. Verhoog naar 90–92 voor afbeeldingen waarbij fijne details cruciaal zijn (bijv. productfotografie, portfolio's). Verlaag naar 80 alleen wanneer het minimaliseren van bestandsgrootte de topprioriteit is.
Waarom we het verschil niet kunnen zien
De reden dat JPEG-compressie zo goed werkt, is geworteld in visuele psychofysica. Menselijk zicht heeft specifieke, goed gedocumenteerde beperkingen die lossy-algoritmen uitbuiten:
- Contrast-gevoeligheidsfunctie (CSF): Onze ogen zijn het gevoeligst voor gemiddelde ruimtelijke frequenties (4–8 cycli per graad visuele hoek). JPEG gooit de hochfrequente details weg die buiten dit piekgevoeligheidsgebied vallen.
- Chromatische resolutie: Onze kleurvision (aangestuurd door kegels) heeft veel lagere resolutie dan onze helderheids vision (aangestuurd door staven). JPEG exploiteert dit door chroma-downsampling, wat de kleurresolutie halveert zonder waarneembaar effect.
- Masking: In gebieden met hoge textuur en detail daalt onze gevoeligheid voor extra detail sterk. JPEG kan getextureerde regio's agressiever comprimeren zonder zichtbare artefacten.
Moderne formaten — Lossy en Lossless in één
Het onderscheid tussen "lossy-formaat" en "lossless-formaat" wordt minder relevant. De twee belangrijkste moderne afbeeldingsformaten — WebP en AVIF — ondersteunen beide modi in één container.
WebP: de veelzijdige all-rounder
Ontwikkeld door Google en uitgebracht in 2010, biedt WebP zowel lossy als lossless compressie met alfatransparantieondersteuning:
- Lossy WebP produceert bestanden 25–34% kleiner dan JPEG met gelijkwaardige visuele kwaliteit. Het gebruikt VP8 videocodectechnologie aangepast voor stilstaande afbeeldingen.
- Lossless WebP produceert bestanden ~26% kleiner dan PNG. Het gebruikt een aangepast algoritme met voorspelling, entropiecodering en kleurcache.
- Browserondersteuning: Over 96% van alle browsers vanaf 2026, inclusief Chrome, Firefox, Safari en Edge.
# Maak lossy WebP (vervangt JPEG)
convert input.png -quality 85 -define webp:lossless=false output.webp
# Maak lossless WebP (vervangt PNG)
convert input.png -define webp:lossless=true output.webp
AVIF: efficiëntie van volgende generatie
Gebaseerd op de AV1 videocodec, biedt AVIF de beste compressieverhouding van elk wijd ondersteund formaat:
- Lossy AVIF produceert bestanden ~50% kleiner dan JPEG. Het verwerkt gradiënten en details met laag contrast uitzonderlijk goed, vermijdend de bandingartefacten die JPEG teisteren.
- Lossless AVIF bereikt betere verhoudingen dan zowel PNG als lossless WebP, hoewel codering aanzienlijk langzamer is.
- Aanvullende mogelijkheden: HDR, 10-bits en 12-bits kleurdiepte, brede kleuromvang, filmgryntesynthese.
- Browserondersteuning: ~93% vanaf 2026, met Safari die ondersteuning heeft toegevoegd in versie 16.4. Nog steeds groeiend.
Het juiste formaat kiezen in 2026
| Scenario | Aanbevolen formaat | Waarom |
|---|---|---|
| Foto's voor web | WebP (lossy) of AVIF | Kleinste bestanden, brede ondersteuning |
| Universele compatibiliteit | JPEG Q85 | Werkt overal, inclusief e-mail en oude apparaten |
| Afbeeldingen & transparantie | WebP (lossless) of PNG | Perfecte kwaliteit, ondersteuning alfakanaal |
| Archief/bewerking | PNG of TIFF | Universeel lossless, geen generatieverlies |
| Cutting-edge prestaties | AVIF + WebP terugval | Beste compressie maar vereist terugvalketen |
Technische referentie — ImageMagick-commando's
Voor ontwikkelaars en power users die tussen lossy en lossless formaten moeten converteren via de opdrachtlijn, zijn hier de essentiële ImageMagick-commando's:
# PNG naar JPEG (lossless naar lossy) — kwaliteit 85
convert input.png -quality 85 -strip output.jpg
# Maximale PNG-compressie (lossless, niveau 9)
convert input.png -strip -quality 95 PNG:output.png
# Lossy WebP van PNG
convert input.png -quality 85 -define webp:lossless=false output.webp
# Lossless WebP van PNG
convert input.png -define webp:lossless=true output.webp
# Vergelijk SSIM (structurele gelijkenis) tussen origineel en gecomprimeerd
compare -metric SSIM original.png compressed.jpg null: 2>&1
Opmerking over PNG-kwaliteitsnummers: In ImageMagick is PNG "kwaliteit" geen lossy-kwaliteitsinstelling. Het tiental (0–9) bepaalt het DEFLATE-compressieniveau (9 = maximale compressie, kleinst bestand, traagste codering). Het eenantal selecteert de voorspellingsfiltersstrategie. Kwaliteit 95 betekent maximale compressie met adaptieve filtering — de kleinst mogelijke PNG zonder kwaliteitsverlies.