Pochodne CIE XYZ: CIELUV i CIELAB
CIE XYZ opisuje każdą barwę widzianą przez człowieka, ale równe kroki w XYZ nie wyglądają dla oka na równe. CIELUV i CIELAB, przyjęte przez CIE w 1976 roku, przekształcają XYZ tak, żeby odległość w przestrzeni mniej więcej odpowiadała różnicy, którą widać.
Problem z XYZ
W latach 40. David MacAdam zmierzył, jak daleko musi przesunąć się barwa na wykresie chromatyczności, zanim obserwator zauważy zmianę. Obszary "bez widocznej różnicy" okazały się elipsami o bardzo różnych rozmiarach: maleńkimi w błękitach, dużymi w zieleniach. XYZ jest liniowy względem światła, więc idealny do obliczeń, ale nie jest równomierny dla percepcji.
Obie przestrzenie z 1976 roku rozwiązują to podobnie: biorą XYZ względem bieli odniesienia, stosują nieliniowość zbliżoną do odpowiedzi oka (w przybliżeniu pierwiastek trzeciego stopnia) i dzielą wynik na jasność oraz dwie osie przeciwstawne.
Część wspólna: jasność L*
L* jest taka sama w obu przestrzeniach. Zależy tylko od luminancji Y względem bieli Yn:
L* ma zakres od 0 (czerń) do 100 (biel odniesienia). Odcinek liniowy przy czerni usuwa nieskończone nachylenie pierwiastka w zerze.
CIELAB (L*a*b*)
a* to oś czerwień-zieleń (dodatnie wartości to czerwień, ujemne zieleń), b* to oś żółć-błękit (dodatnie to żółć). Szarości mają a* = b* = 0. CIELAB to standard w poligrafii, farbach, tekstyliach i w zarządzaniu kolorem: zwykle jest przestrzenią pośrednią w profilach ICC.
CIELUV (L*u*v*)
CIELUV zawiera w sobie wykres chromatyczności CIE 1976 u'v', na którym addytywna mieszanina dwóch świateł leży na odcinku prostej. Dlatego jest wygodny dla ekranów i źródeł światła. CIELAB tej cechy nie ma, ale lepiej opisuje barwy powierzchni.
Punkt bieli
Obie przestrzenie potrzebują bieli odniesienia Xn, Yn, Zn. Dla sRGB i większości ekranów to D65 z obserwatorem 2°: Xn = 95,047, Yn = 100, Zn = 108,883. W poligrafii zwykle używa się D50. Ta sama barwa ma przy innym punkcie bieli inne wartości Lab, więc zapis Lab bez punktu bieli jest niepełny.
LCh: postać biegunowa
a* i b* można potraktować jak wektor. Jego długość to chroma (nasycenie), kąt to odcień:
LCh działa jak HSL czy HSV, ale z jasnością zgodną z percepcją. Obrót h przy stałych L i C daje barwy, które wyglądają na równie jasne, czego HSL nie potrafi. Dlatego współczesny CSS ma lch() i oklch().
Przykład krok po kroku
RGB (200, 80, 40), #c85028, w sRGB. Przeliczenie do XYZ opisuje strona CIE XYZ i RGB. Wynik w skali 0..100:
Barwa ma więc Lab (49,71; 45,77; 46,31) i Luv (49,71; 96,49; 36,18). Jasność jest identyczna, pozostałych osi nie można ze sobą zamieniać.
Różnica barw ΔE
Sens przestrzeni równomiernej polega na tym, że odległość coś znaczy. Pierwotny wzór z 1976 roku to zwykła odległość euklidesowa w Lab:
Porównanie naszej barwy z RGB (210, 90, 40), czyli Lab (53,14; 44,76; 50,15), daje ΔE ≈ 5,25: różnicę, którą większość osób zauważy, patrząc na obie barwy obok siebie. Za próg ledwo zauważalnej różnicy zwykle przyjmuje się ΔE około 2.
CIELAB jest równomierny tylko w przybliżeniu, więc późniejsze wzory go poprawiają: CIE94 i CIEDE2000 (ΔE00) ważą osobno różnice jasności, nasycenia i odcienia. W kontroli jakości druku obecnym standardem jest ΔE00.