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.
Inspecteer een gecodeerde waarde en zijn exacte sRGB-decodering. De opgeslagen waarde 128/255 is ongeveer 21,6% lineaire intensiteit; de creatieve gammaregelaar in het Lab is een afzonderlijke bewerking.
Probeer het zelf
- Verplaats Gecodeerd kanaal C en vergelijk de gemeten lineaire waarde met beide verlopen.
- Kies Bij zwart en beweeg door het breekpunt C = 0.04045.
Let op: C = 0,5 decodeert naar ongeveer 0,214. Bij zwart gebruikt sRGB een lineair segment; gelijke stappen in opgeslagen waarden en in licht geven verschillende verlopen.
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.
Bewerkingen die het optellen of middelen van licht modelleren, moeten lineaire lichtwaarden gebruiken voordat het resultaat voor weergave wordt gecodeerd. Andere bewerkingen hebben andere doelen: perceptuele kleurafstanden gebruiken bijvoorbeeld CIELAB, terwijl een bewerking in gecodeerde ruimte een bewuste artistieke keuze kan zijn. Geef aan welk model een berekening gebruikt.
Gamma en Dithering
Floyd–Steinberg verspreidt het verschil tussen een monster en het gekwantiseerde resultaat. Berekening in lineair licht richt zich op behoud van een lokaal gemiddelde van fysiek licht; berekening in gecodeerd sRGB behoudt een ander numeriek gemiddelde en geeft een ander tonaal resultaat. Vergelijk die doelen expliciet en behandel gammacorrectie niet als uitwisselbaar met sRGB-decodering.
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.
De gamma-expansiestudie toont de exacte sRGB-decodeerfunctie en vergelijkt gelijke stappen in opgeslagen waarden met gelijke stappen in licht. De Gamma-aanpassing in het Lab is een afzonderlijke creatieve machtscurve. Lab-bewerkingen delen niet allemaal één kleurmodel: de geïndexeerde kwantisatiemethode wijst kleuren bijvoorbeeld toe op basis van Euclidische afstand in gecodeerd RGB.
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
Verken gerelateerde secties
Meer over het werk:
