Dithering: illusies creëren met wiskunde
Het probleem: te weinig kleuren
Stel je hebt een foto met 16,7 miljoen mogelijke kleuren, maar je scherm — of je artistieke beperking — staat er maar 16 toe. Hoe overbrug je dat gat zonder de essentie van het beeld te verliezen? Dit is de fundamentele uitdaging die dithering oplost.
Vroege computergrafics hadden voortdurend met dit probleem te maken. De Commodore 64 had 16 kleuren. De Game Boy had 4 groentinten. Toch maakten kunstenaars en engineers op deze machines beelden met verrassende diepte en realisme. Hun geheime wapen was dithering.
Wat is dithering?
Dithering is het bewust toevoegen vanruis— zorgvuldig berekende ruis — om de visuele impact van kwantisatie te verminderen. Wanneer je een beeld terugbrengt van miljoenen kleuren naar een handvol, worden de overgangen tussen tinten harde, gebande stappen. Dithering strooit pixels van beschikbare kleuren in patronen die op afstand optisch versmelten tot de ontbrekende tussentinten.
Dit is geen willekeurige ruis. De beste dithering-algoritmes zijndeterministischen wiskundig elegant, en verdelen de kwantisatiefout in precieze verhoudingen over naburige pixels.
Ordered dithering: de rasteraanpak
De eenvoudigste ditheringmethode gebruikt een drempelmatrix — een kleine matrix van waarden (meestal 2×2, 4×4 of 8×8) die bepaalt wanneer een pixel naar boven of naar beneden wordt afgerond. De klassieke Bayer-matrix zorgt voor het kenmerkende kruispatroon dat je ziet in retro console‑graphics.
Ordered dithering is snel — elke pixel wordt onafhankelijk verwerkt — maar de patronen die ontstaan kunnen visueel erg opvallend zijn, vooral in gradients. Die regelmaat is zowel de charme (in pixel art) als de beperking (in fotografie).
Vergelijk drempelen, een geordend patroon en diffusie bij een gecontroleerde tint. Het patroon draagt de nuances die het palet niet kan opslaan.
Probeer het zelf
- Verplaats het gewenste grijsniveau terwijl alle vlakken dezelfde twee opgeslagen kleuren behouden.
- Schakel de weergave op afstand in en vergelijk textuur, witte dekking en gemiddelde fout.
Let op: Een harde drempel verliest tussentonen. Geordende, gediffundeerde en willekeurige beslissingen ruilen verschillende texturen en eindige-vlakfouten voor een beter gemiddelde.
Error Diffusion: Floyd-Steinberg en verder
In 1976 publiceerden Robert Floyd en Louis Steinberg een bedrieglijk eenvoudig algoritme. Voor elke pixel bereken je de kwantisatiefout (het verschil tussen de oorspronkelijke kleur en de dichtstbijzijnde beschikbare kleur). Vervolgens verspreid je die fout naar naburige pixels die nog niet zijn verwerkt, met behulp van specifieke verhoudingen:
7/16 naar de rechterbuur, 3/16 naar de pixel linksonder, 5/16 direct eronder en 1/16 naar rechtsonder. Voor een volledig stencil tellen deze fracties op tot 1. Aan een beeldrand kunnen bijdragen aan buren buiten het beeld worden weggegooid; behoud van de totale fout hangt dus ook af van de randafhandeling.
Het resultaat is voor fotografische beelden aanzienlijk beter dan ordered dithering. Error diffusion levert organisch ogende patronen op die de natuurlijke contouren van het beeld volgen, en zo vloeiende gradients creëren met grove paletten.
Volg stap voor stap de positieve of negatieve fout naar vier volgende buren. Bij de beeldrand vervallen bijdragen die buiten het beeld vallen.
Probeer het zelf
- Ga naar de volgende pixel en volg bron + inkomende fout → gekozen waarde.
- Vergelijk Floyd–Steinberg met Atkinson en bekijk daarna een pixel aan de rechter- of onderrand.
Let op: De volgende beslissing bevat eerdere fractionele fouten. Floyd–Steinberg geeft 100% door via zijn stencil; Atkinson 75%, en bestemmingen buiten het beeld ontvangen niets.
Dithering in de kleurkubus
Bij het ditheren van kleurenafbeeldingen werkt het algoritme gelijktijdig in drie dimensies. Elke pixel heeft een fout in rood, groen, en blauw, en elke foutcomponent wordt onafhankelijk verspreid. Dat betekent dat een pixel die “te rood” is, ervoor zorgt dat zijn buren iets minder rood worden, waardoor er een gebalanceerd gemiddelde in lokale regio’s ontstaat.
De keuze van kleurenpalet is net zo belangrijk als het dithering-algoritme. Een goed gekozen 16-kleurenpalet kan beter presteren dan een slecht gekozen 256-kleurenpalet, omdat de fout die het dithering-algoritme moet compenseren in perceptuele termen kleiner is.
Dithering als esthetische keuze
In algoritmische kunst is dithering niet alleen een technische noodzaak — het is een bewuste esthetische tool. De karakteristieke textuur van geditherde beelden roept nostalgie op naar de vroege computerkunst, terwijl de wiskundige precisie van error diffusion patronen creëert die tegelijk chaotisch en ordelijk zijn.
Veel van de werken in deze galerij gebruiken dithering als laatste compositing-stap, waarbij high-color renders worden teruggebracht naar beperkte paletten. Het resultaat zijn beelden waarbij elke pixel telt — waar de kijker kan inzoomen en op elk niveau bewuste, berekende plaatsing aantreft.
Probeer het zelf
Open in het Lab de Dither-effecten om Floyd–Steinberg, ordered dithering en andere methoden op een geïmporteerd beeld of gegenereerde ruis te vergelijken. Gebruik Geïndexeerd palet als je een vast totaal aantal kleuren nodig hebt; de ditheringregelaars beschrijven niveaus per kanaal.
Gerelateerde concepten
Gerelateerde artikelen
Gerelateerde kunstwerken
Verken gerelateerde secties
Meer over het werk:
