Mówiąc o liniowym RGB, należy unikać, ponieważ nie mówi ono nic o wewnętrznych elementach przestrzeni kolorów RGB, tj. Funkcjach Primary, Whitepoint i Color Component. Kilka lat temu, zakładając, że był to sRGB, był średni, ale obecnie, gdy DCI-P3 i BT.2020 są bardzo powszechne, należy to wykluczyć.
Idealną gamą do renderowania jest ta, która zminimalizuje błędy w odniesieniu do realnych odniesień lub, wygodniej, do renderowania spektralnego z prawdą podstawową. Pierwsze zdanie z tego zdania jest takie, że różne przestrzenie kolorów RGB nie są równoważne i nie dają podobnych wyników.
Można by pomyśleć, że wykonanie dwóch renderów z tymi samymi kolorami podstawowymi, ale jednym, w którym są one zakodowane za pomocą sRGB / BT.709, a drugim, w którym są one zakodowane za pomocą DCI-P3, a następnie przekonwertowanie dwóch powstałych obrazów na przykład na ACES2065-1 dają te same obrazy, ale tak nie jest. Niektóre operacje matematyczne ze względu na naturę algebry liniowej i macierzy zależą od danych podstawowych przestrzeni kolorów RGB, tj. Na podstawie przestrzeni kolorów. Te same operacje wykonywane w różnych przestrzeniach kolorów RGB przyniosą różne wartości trójbodźca po konwersji z powrotem do przestrzeni kolorów CIE XYZ. Na przykład operacje mnożenia, dzielenia i zasilania są zależne od pierwotnych przestrzeni kolorów RGB, podczas gdy dodawanie i odejmowanie nie są.
Ten obraz ilustruje efekt mnożenia różnych kolorów przez siebie do różnych przestrzeni kolorów RGB: kolory wynikowe są różne. Różne próbki są generowane w następujący sposób: 3 losowe wartości przestrzeni kolorów sRGB są wybierane i konwertowane do trzech badanych przestrzeni kolorów RGB, są one wykładniczo przekształcane z powrotem do przestrzeni kolorów sRGB, wykreślane na schemacie chromatyczności CIE 1931 po lewej stronie i wyświetlane jako próbki na dobrze.
Testy i badania przeprowadzone przez Warda i Eydelberga-Vileshina (2002) , Langlandsa i Mansencala (2014) i Mansencala (2014) wykazały, że gamuty z pierwszorzędowymi najbliższymi locus widmowemu , tj. Widmowo ostrymi pierwotnymi, mają tendencję do minimalizowania błędów w porównaniu z ziemią spektralną prawda czyni.
Oto zdjęcie, które niedawno wykonałem z Mitsubą w celu ponownej weryfikacji naszych ustaleń z Anders:
Są to rendery tej samej sceny przy użyciu pierwotnych BT.709 (pierwszy rząd), 47 przedziałów widmowych (drugi rząd), pierwotnych BT.2020 (trzeci rząd), widmowe minus BT.709 pierwotne renderuje reszty (czwarty rząd), spektralny minus BT .2020 pierwotne renderuje resztki (piąty rząd). Ostatni wiersz przedstawia złożone obrazy złożone z trzema pionowymi paskami odpowiednio renderów podstawowych BT.709, renderów pierwotnych spektralnych i BT.2020. Bezpośrednie oświetlenie zwykle pasuje do renderów. Obszary, które wykazują efekt wielokrotnego odbicia światła, tj. Sufit, w renderach pierwotnych BT.709 i BT.2020 wykazują tendencję do zwiększonego nasycenia, szczególnie w renderowaniu pierwotnych BT.709 lub niewielkiej utracie energii, szczególnie w BT Renderowanie .2020. Wyłączając wartości odstające, np. Źródło światła widzialnego, RMSE z renderowaniem widmowym wynoszą 0,0083i 0,0116 odpowiednio dla renderów podstawowych BT.2020 i podstawowych BT.709.
Teraz nie oznacza to, że zawsze będą działać lepiej, i można być w stanie stworzyć przykłady, które wykażą tendencję do BT.709 / sRGB. Główną zaletą jest to, że rendery RGB nie mogą dopasować się do renderów widmowych, a ostre szerokie gamy wydają się lepiej. Jeśli chodzi o wybór renderowanej przestrzeni kolorów, wybrałbym taką z szeroką gamą kolorów, która obejmuje gamę Pointera, a DCI-P3, BT.2020 lub ACEScg są do tego znakomitymi kandydatami.
Istnieją dwie strony, dlaczego szczególnie sRGB. W przypadku wejściowych obrazów innych niż HDR twierdzi się, że należy przyjąć, że są one skompresowane do sRGB (to, czy to twierdzenie jest dokładne, to inna historia). Dlatego zanim będziesz mógł wykonać na nich liniową operację matematyczną, musisz zdekompresować je z sRGB. Możliwe jest również, że obraz został przechwycony i skompresowany do innej reprezentacji, która nie jest sRGB, w takim przypadku musisz zdekompresować tę konkretną reprezentację. W każdym razie kodowanie sugeruje pewną gamę, że obraz wejściowy nigdy nie ucieknie (ponieważ obrazy przechowywane w sRGB są zwykle skracane do 8 bitów na kanał), ale matematyka modułu cieniującego nie musi pozostać w tej gamie po wejściu obraz jest dekompresowany. Ale w końcu musisz wziąć pod uwagę wyświetlacz.
Jeśli masz obraz i nadszedł czas, aby go wyświetlić, zakoduj go w reprezentacji wymaganej przez urządzenie wyświetlające. CRT wybrały sRGB, a następnie emulowały je LCD, więc kompresja sRGB do wyświetlania na monitorze była powszechnym wyborem w ostatnich dziesięcioleciach, i to ograniczyło moc wyjściową do utrzymania się w gamie sRGB, w przeciwnym razie nastąpi przycięcie. Wyświetlacze o szerszym zasięgu nie muszą trzymać się dokładnie tej gamy.
(Myślę, że podstawą twierdzenia, że obrazy stworzone przez człowieka są zakodowane w sRGB, jest to, że zakłada się, że obrazy te zostały stworzone na wyświetlaczach sRGB)
Więc teraz prawdopodobnie lepiej zrozumiesz, dlaczego w szczególności sRGB był obsługiwany sprzętowo do wprowadzania matematycznego modułu cieniującego i wyświetlania obrazu. To częsty przypadek. Ponadto ma dobre zalety w zakresie zmniejszania artefaktów postrzegania pasm kolorów, więc jest to dobry sposób na kompresowanie kolorów w 8 bitach i utrzymanie ich wiarygodności dla ludzi.
źródło
Jeśli dopuścisz wartości spoza zakresu 0..1, to nawet przy dość ograniczonych podstawach sRGB nadal możesz zająć się całą gamą wizualną człowieka. Tak więc do przechowywania zmiennoprzecinkowych wartości koloru światła nie powinno mieć większego znaczenia, jakich podstawowych kolorów używasz. Jednak wykonywanie dowolnego rodzaju multiplikatywnej matematyki staje się nieco dziwne, ponieważ dowolne współrzędne liczb podstawowych działają jak „oś obrotu”. Zasadniczo sRGB są zwykle używane, ponieważ tradycyjnie dane wejściowe są zakodowane w sRGB, a wyjściowy wyświetlacz to sRGB lub rec709 ... W przypadku rec2020 połowa się zmieniła, ale na razie większość danych wejściowych jest prawdopodobnie zakodowana w sRGB, więc używając te same funkcje podstawowe, co pamięć, to tylko najłatwiejsza opcja.
źródło