semmixkolor i percepcja

Model RGB

RGB opisuje barwę jako mieszaninę trzech świateł: czerwonego (red), zielonego (green) i niebieskiego (blue). Tak działa każdy ekran, kamera i matryca aparatu, dlatego RGB jest punktem wyjścia prawie wszystkich obliczeń na kolorze.

Mieszanie addytywne

W RGB barwy powstają przez dodawanie światła. Brak światła to czerń, wszystkie trzy w pełnej mocy to biel. Pary dają barwy dopełniające:

czerwień + zieleń = żółć (1, 1, 0) zieleń + błękit = cyjan (0, 1, 1) błękit + czerwień = magenta (1, 0, 1) czerwień + zieleń + błękit = biel (1, 1, 1)

Dlaczego akurat te trzy? Bo oko ma trzy rodzaje czopków, najczulsze na fale krótkie, średnie i długie (więcej w artykule o modelu oka). Trzy dobrze dobrane światła pobudzają je w proporcjach, które oko odbiera jak bardzo wiele różnych barw. Mieszanie świateł opisują prawa Grassmanna, o których piszę w składaniu barw.

Sześcian RGB

Każdą barwę RGB można zapisać jako punkt (R, G, B) w sześcianie o boku 1. W jednym wierzchołku leży czerń (0, 0, 0), w przeciwległym biel (1, 1, 1). Przekątna między nimi to szarości, gdzie R = G = B. Pozostałe sześć wierzchołków to czerwień, zieleń, błękit, cyjan, magenta i żółć.

Z tego sześcianu wyprowadza się modele HSV i HLS: patrzą na niego wzdłuż przekątnej szarości i mierzą kąt wokół niej.

Zapis 8-bitowy i szesnastkowy

W praktyce każda składowa ma zwykle 8 bitów, czyli wartości 0..255. Daje to 256³ = 16 777 216 kombinacji. Zapis HEX łączy trzy bajty w jeden ciąg szesnastkowy:

#c85028 → c8 = 200, 50 = 80, 28 = 40 → RGB (200, 80, 40) do obliczeń zwykle dzieli się przez 255: R = 200 / 255 = 0,7843 G = 0,3137 B = 0,1569

Zdjęcia i wideo HDR używają 10, 12 albo 16 bitów na składową. Więcej bitów nie poszerza zakresu barw, tylko dzieli go na drobniejsze kroki, co usuwa pasy w gradientach.

RGB to model, nie przestrzeń barw

Trójka (200, 80, 40) wygląda inaczej na każdym ekranie, dopóki nie wiadomo, jakie są barwy podstawowe, punkt bieli i krzywa gamma. Te trzy rzeczy określa konkretna przestrzeń RGB:

PrzestrzeńRokBielZastosowanie
sRGB1996D65internet, większość monitorów i telefonów, domyślna dla plików bez profilu
Adobe RGB (1998)1998D65fotografia do druku, szersza gama w zieleniach i cyjanach
Display P32015D65ekrany Apple i nowe telefony, szersza gama w czerwieniach i zieleniach
Rec. 20202012D65telewizja UHD i HDR, bardzo szeroka gama

Na wykresie chromatyczności CIE każda przestrzeń RGB to trójkąt, którego wierzchołkami są jej barwy podstawowe. Barwy poza trójkątem są dla tej przestrzeni nieosiągalne. Dokładne przeliczenie sRGB na barwy niezależne od urządzenia opisuje strona CIE XYZ i RGB.

Wartości RGB w plikach są zakodowane krzywą gamma, więc nie są proporcjonalne do światła. 128 to około 22% światła, a nie połowa. Przed mieszaniem i skalowaniem trzeba je zlinearyzować, o czym więcej w artykule o korekcji gamma.