Het mysterie van gamma-correctie
De Verborgen Curve
Als je een RGB-waarde leest van (128, 128, 128) uit een beeldbestand, denk je misschien dat die precies de helft van de helderheid van (255, 255, 255) weergeeft. Dat is niet zo. Hij vertegenwoordigt ongeveer 21,5% van de fysieke lichtintensiteit — minder dan een kwart. Dit verschil is het gevolg van gamma-encoding, en het negeren daarvan is een van de meest gemaakte fouten in kleurberekeningen.
Waarom Gamma Bestaat
Gamma-encoding heeft historische wortels in CRT-monitoren, waarvan de fosforlaag niet-lineair reageerde op spanning — grofweg een machtscurve met γ ≈ 2,2. Beeldbestanden worden gecodeerd met de inverse curve (γ ≈ 1/2,2 ≈ 0,4545) zodat de niet-lineariteit van de CRT wordt opgeheven en het beeld er correct uitziet.
Maar er is een diepere reden dat gamma in het LCD-tijdperk blijft bestaan: het sluit aan bij het menselijk zicht. We zijn veel gevoeliger voor verschillen in donkere tonen dan in lichte. Gamma-encoding reserveert meer van het 0–255-bereik voor donkere waarden, waar we de fijnste nuances kunnen onderscheiden, en perst de lichte samen, waar we minder kritisch zijn. Het is een vorm van perceptuele compressie.
Het wiskundige probleem
Als je het gemiddelde van twee kleuren berekent — bijvoorbeeld het mengen van (255, 0, 0) (rood) en (0, 0, 0) (zwart) — dit rechtstreeks doen in gamma-gecodeerde sRGB levert je (128, 0, 0) op. Maar fysisch gezien vraagt het juiste middenpunt om eerst te linearizeren, dan te middelen in lineaire ruimte, en daarna opnieuw te encoderen:
Lineair rood = 1,0, lineair zwart = 0,0. Gemiddelde = 0,5. Terug naar sRGB gecodeerd ≈ (188, 0, 0). Het verschil is enorm — de gamma-naïeve blend is zichtbaar donkerder dan hij zou moeten zijn.
Linearizatie in de praktijk
De sRGB-standaard definieert een precieze overdrachtsfunctie (iets complexer dan een eenvoudige machtscurve, met een lineair segment dicht bij zwart). Om te linearizeren:
Normaliseer voor elk kanaal naar [0, 1] en pas dan toe: als V ≤ 0,04045, dan V_linear = V / 12,92; anders V_linear = ((V + 0,055) / 1,055) ^ 2,4. De inverse (lineair naar sRGB) draait dit om.
Elke kleurbewerking — afstand, blending, filtering, interpolatie — moet worden uitgevoerd in lineaire ruimte ruimte. Alleen de uiteindelijke weergavewaarde mag gamma-gecodeerd zijn. Als je dit verkeerd doet, krijg je modderige gradients, foute blends en kleurafstandsberekeningen die systematisch richting donkere tonen worden bevooroordeeld.
Gamma en Dithering
Dithering-algoritmes zijn bijzonder gevoelig voor gamma. Floyd-Steinberg verspreidt de fout tussen de oorspronkelijke kleur en het gekwantiseerde resultaat. Als die fout in gamma-gecodeerde ruimte wordt berekend, corrigeert het algoritme te sterk in donkere partijen en te weinig in lichte. De oplossing is simpel: dither in lineaire ruimte en codeer daarna pas het eindresultaat.
De Kernboodschap
Gamma is geen obscure technische voetnoot — het is de meest impactvolle correctie die je op elk kleuralgoritme kunt toepassen. Het verschil tussen gamma-naïeve en gamma-correcte verwerking is vaak duidelijker zichtbaar dan het verschil tussen compleet verschillende algoritmes.
Elke kleurtool in de Lab lineariseert vóór de berekening en codeert daarna opnieuw voor weergave. De Color Theory Lab laat dit expliciet zien: schakel linearisatie aan en uit om te zien hoe dit afstandsberekeningen, blending en palette-generatie beïnvloedt.
Gerelateerde concepten
Gerelateerde artikelen
Perceptuele Kleurmodellen: CIELAB en Delta E
Waar Euclidische RGB-afstand tekortschiet omdat het de menselijke biologie negeert, slaagt CIELAB. Hoe de ΔE-formule kleurverschillen meet op een manier die menselijk aanvoelt.
6 feb 2026
Dithering: illusies creëren met wiskunde
Als je maar een handvol kleuren hebt, kan slimme pixelplaatsing het oog laten denken dat het er duizenden zijn. Een deep dive in error-diffusion dithering en de algoritmes achter deze illusie.
10 feb 2026
Probeer in het Lab
Verken Gerelateerde Secties
Gebruik deze secties om kunstwerken te ontdekken, technische context te lezen en het volledige ecosysteem van algoritmische kunst te verkennen.
