Hoe lossless beeldcompressie écht werkt
Waarom een kleiner bestand pixel-voor-pixel identiek kan zijn aan het origineel — en de trucs met voorspelling, modellering en entropiecodering die dat mogelijk maken.
Waarom een kleiner bestand pixel-voor-pixel identiek kan zijn aan het origineel — en de trucs met voorspelling, modellering en entropiecodering die dat mogelijk maken.
"Lossless" klinkt als een tegenstrijdigheid: hoe kan een bestand kleiner worden zonder iets weg te gooien? De truc is dat een afbeelding vol <b>redundantie</b> zit, en compressie is de kunst om dezelfde pixels met minder bits te beschrijven. Decodeer het en je krijgt elke oorspronkelijke waarde exact terug — bit voor bit.
Lossy formaten zoals JPEG gooien informatie weg die je oog toch nauwelijks zal missen. Lossless-compressie gooit <i>niets</i> weg: de gedecodeerde afbeelding is identiek aan de invoer. Daarom is het de juiste keuze voor screenshots, lijntekeningen, logo's, UI-assets en archiefmasters — alles waar één verschoven pixel een bug zou zijn, geen afrondingsfoutje.
Ruwe pixels zijn verspillend omdat buren sterk gecorreleerd zijn — de pixel links van je is meestal een prima gok voor de huidige. Lossless-codecs <b>voorspellen</b> elke pixel op basis van zijn buren en slaan alleen de kleine fout op (het residu). PNG noemt dit <i>filters</i> (Sub, Up, Average, Paeth); hoe beter de voorspelling, hoe dichter de residuen rond nul clusteren, en nullen comprimeren prachtig.
Zodra de data grotendeels bestaat uit kleine, repetitieve residuen, kent een <b>entropiecoder</b> korte codes toe aan veelvoorkomende waarden en lange codes aan zeldzame. PNG gebruikt DEFLATE (LZ77 + Huffman); moderne codecs zoals WebP lossless en JPEG XL gebruiken contextmodellering met arithmetische of ANS-codering, wat dichter bij de theoretische limiet komt. Het formaat verandert, maar het idee blijft hetzelfde: minder bits besteden aan wat voorspelbaar is.
Daarom kunnen twee lossless PNG's van dezelfde afbeelding sterk in grootte verschillen: de pixels zijn identiek, maar de encoder heeft harder gewerkt om ze te beschrijven. <b>oxipng</b> doorzoekt filterstrategieën en comprimeert opnieuw; <b>zopfli</b> is een veel tragere DEFLATE die vaak nog een paar procent extra schaaft; WebP en JPEG XL brengen compleet slimmere modellen mee. Geen van alle raakt een pixel aan.
# Lossless, maximale inspanning — identieke pixels, kleiner bestand imageforge logo.png --lossless --effort max imageforge ui-export.png --convert webp --lossless
Lossless heeft een ondergrens. Foto's van echte scènes bevatten oprecht hoogfrequente details (sensorruis, fijne textuur) die zich simpelweg niet goed laten voorspellen, dus daar zijn de lossless-winsten bescheiden — dat is het moment waarop lossy formaten hun bestaansrecht bewijzen. Voor vlakke, synthetische of tekstrijke afbeeldingen snijdt lossless echter routinematig 30–70% weg zonder kwaliteitsverlies. De kunst is te weten in welk vakje jouw afbeelding valt.
ImageForge draait oxipng, zopfli en moderne lossless-encoders voor je — lokaal.