darktable page lede image
darktable page lede image

3.2.6. Zarządzanie kolorem

darktable wykorzystuje schemat pracy oparty na zarządzaniu kolorem:

  • Specyfikacje koloru wejścia brane są z osadzonych lub dostarczonych przez użytkownika profili ICC lub – w przypadku surowych plików – z biblioteki matryc kolorów poszczególnych aparatów.

  • darktable automatycznie czyta profil wyświetlania monitora (jeśli prawidłowo skonfigurowany), żeby wiernie oddać kolory na ekranie. W pełni obsługiwane są konfiguracje wielomonitorowe, o ile usługa systemowa typu colord jest prawidłowo ustawiona i może informować darktable o prawidłowym profilu monitora.

  • Pliki wyjściowe mogą być zakodowane w jednym z wbudowanych profili darktable, jak na przykład sRGB, Adobe, ProPhoto, Rec. 2020, Rec. 709 czy innej dowolnej przestrzeni barwnej, do której użytkownik dostarczy profil ICC.

3.2.6.1. Profil wyświetlania

darktable do dokładnego odwzorowanie kolorów na ekranie potrzebuje prawidłowego profilu monitora. Wymaga to, żeby monitor był prawidłowo skalibrowany i sprofilowany, a sam profil musi być prawidłowo zainstalowany w systemie. darktable odpytuje Xserwerowy xatom oraz usługę systemową colord (jeśli dostępne) o prawidłowy profil. W razie potrzeby możesz wymusić określoną metodę w sekcji różne okna prefencji (p. Sekcja 8.10, „Różne”).

W celu odpytania konfiguracji profilu wyświetlania możesz wykonać (tylko w Linuksie) polecenie darktable-cmstest, drukujące użyteczne informacje, takie jak nazwa profilu poszczególnych monitorów oraz sprawdzające poprawność konfiguracji (p. Sekcja 1.1.6, „Polecenie darktable-cmstest).

Sporadycznie profil wyświetlania trzeba wybrać ręcznie. Jest to możliwe z okna kontroli ekranowej i sprawdzenia zakresu kolorów w widoku ciemni (p. Sekcja 3.3.11.5, „Korekta ekranowa” i Sekcja 3.3.11.6, „Sprawdzenie zakresu kolorów (ang. gamut check)”) oraz okna profilu wyświetlania w widoku stołu podświetlanego.

3.2.6.2. Metoda renderingu

darktable potrafi renderować kolory przy pomocy wewnętrznego algorytmu lub zewnętrznej biblioteki, LittleCMS2. Wewnętrzna metoda darktable jest o rząd wielkości szybsza, niż zewnętrzna. Zewnętrzna opcja daje wybór sposobu odzorowania barw i w niektórych przypadkach nieco większą dokładność.

Parametr zawsze używaj LittleCMS 2 do stosowania wyjściowego profilu kolorów w sekcji przetwarzania okna preferencji (p. Sekcja 8.6, „Przetwarzanie”) określa użytą metodę. Zauważ jednak, że jeśli bieżący ICC jest oparty o LUT, lub zawiera zarówno LUT, jak i macierz, darktable użyje LittleCMS 2 do renderingu kolorów niezależnie od wartości tego parametru.

3.2.6.3. Sposób odwzorowania barw

Jeśli włączone jest renderowanie z udziałem LittleCMS2 (p. Sekcja 3.2.6.2, „Metoda renderingu”), możemy określić, w jaki sposób zostaną przetworzone kolory spoza gamutu podczas konwersji pomiędzy przestrzeniami barwnymi. Opcja sposobu odwzorowania barw w panelu eksportu (p. Sekcja 2.3.14, „Eksportuj zaznaczone”), moduł wyjściowego profilu koloru (p. Sekcja 3.4.1.2, „Wyjściowy profil koloru”) oraz opcja kontroli ekranowej (p. Sekcja 3.3.11.5, „Korekta ekranowa”) pozwalają wybrać następujące możliwości:

percepcyjny Dostosowany do zdjęć, utrzymuje względną pozycję kolorów. Na ogół najlepszy wybór.
wzgl. kolorymetryczny Kolory spoza przestrzeni są konwertowane do kolorów o takiej samej jasności, ale różnym nasyceniu. Inne pozostają bez zmian.
nasycenie Nasycenie pozostaje bez zmian, jasność delikatnie zmieniona.
bezwzgl. kolorymetryczny Zachowuje punkt bieli.

3.2.6.4. Przestrzenie barwne darktable

Wejściowe zdjęcia darktable to albo pliki RGB (np. JPEG lub TIFF), albo surowe pliki z aparatu – obydwa odwzorowują kolory jako kombinację czerwonego, zielonego i niebieskiego. Większość przetwarzania odbywa się w szerokim "profilu roboczym" RGB, z niektórymi (w większości starszymi) modułami, pracującymi w przestrzeni CIELAB. Wyjście sekwencji przetwarzającej operuje w przestrzeni RGB, dostosowanej albo do wyświetlacza monitora, albo pliku wynikowego.

Powoduje to, że sekwencja posiada dwa etapy konwersji koloru: wejściowy profil koloru oraz wyjściowy profil koloru. Jako dodatkowy etap występuje demozaikowanie dla surowych obrazów, gdzie kolor każdego piksela odtwarzany jest przez interpolację.

Każdy moduł ma ustaloną pozycję w sekwencji, mówiącą o przestrzeni barwnej, na której on operuje:

do modułu demozaikowanie   Obraz pozostaje w surowych danych z utajonymi kolorami. Każdy piksel niesie informację o jasności i kolorze tylko dla jednego koloru bazowego. Zwróć uwagę, że niektóre moduły w tej części działają również na surowych danych w formacie RGB, zawierających pełną informację o wszystkich trzech kanałach kolorów.
między demozaikowanie i wejściowy profil koloru   Obraz jest w formacie RGB w przestrzeni barwnej aparatu lub pliku wejściowego.
między wejściowy profil koloru i wyjściowy profil koloru   Zdjęcie znajduje się w przestrzeni kolorów, określonej wybranym profilem roboczym (domyślnie liniowym Rec2020 RGB). Ponieważ darktable przetwarza zdjęcia w czterech 32-bitowych buforach zmiennoprzecinkowych, możemy operować w szerokich przestrzeniach kolorów bez ryzyka bandingu czy załamań tonalnych.
po module wyjściowy profil koloru   Obraz w formacie RGB, według definicji wyświetlacza lub profilu wyjściowego ICC.

3.2.6.5. Kolory spoza przestrzeni barwnej

Teoretycznie poszczególne składniki danych o kolorze są ograniczone pewnymi maksimami i minimami. Na przykład intensywność kanału czerwonego, zielonego i niebieskiego w RGB musi zawierać się w przedziale pomiędzy 0% i 100% (lub pomiędzy 0.0 i 1.0). Podobnie kanał L w przestrzeni Lab może być dowolną wartością pomiędzy 0 (czysta czerń) a 100 (czysta biel).

W praktyce przetwarzanie w modułach darktable może generować wartości leżące poza narzuconym zakresem. Nawet najlepsze matryce kolorów, konwertujące z RGB aparatu do Lab, mogą czasem dawać piksele z ujemnymi wartościami L.

Piksele tego rodzaju określane są mianem kolorów spoza zakresu. Można te wartości obciąć (tzn. ukryć) do pożądanego zakresu na każdym etapie przetwarzania. Stwierdzono jednak, że dużo lepszym i generującym mniej artefaktów rozwiązaniem nie jest obcinanie tych pikseli, ale traktowanie ich każdy inny rodzaj danych o kolorze.

W darktable nie ma technicznych wymagań co do obcinania; z racji tego, że używamy arytmetyki zmiennoprzecinkowej na wszystkich etapach przetwarzania, wartości spoza zakresów są przekazywane jak każda inna wartość, dopóki finalny moduł konwersji koloru nie skonwertuje ich do najbardziej adekwatnych w wybranej docelowej przestrzeni barwnej. Dlatego też darktable unika przycinania tak długo, jak pozwalają mu na to wewnętrzne algorytmy.

3.2.6.6. Możliwe artefakty koloru

Trzeba pamiętać, że sporadycznie może to prowadzić do problematycznych wyników, o ile użytkownik nie podejmie żadnej akcji. Niektóre moduły w przestrzeni Lab, jak na przykład poziomy czy monochromatyczność, bazują na fakcie że kanał L niesie informacje o jasności, a kanały a i b reprezentują po prostu chrominancję i zabarwienie. Dla tych modułów kolory spoza zakresu z ujemnymi wartościami L są problematyczne i mogą powodować artefakty czarnych pikseli.

Wykazano, że że mocno nasycone źródła światła niebieskiego są mocnymi kandydatami do generowania pikseli z ujemnymi wartościami L. Jeśli zajmujesz się fotografią koncertową, warto zwrócić uwagę na takie źródła światła, pojawiające się w kadrze.

Dla ograniczenia tego efektu, moduł wejściowego profilu koloru (p. Sekcja 3.4.1.11, „Wejściowy profil koloru”) posiada opcję przycięcia do gamutu. Domyślnie jest ona wyłączona, ale możesz ją aktywować, jeśli zauważysz artefakty. W zależności od ustawień, kolory sprowadzane są do jednego z oferowanych gamutów RGB. W rezultacie artefakty czarnych pikseli nie pojawiają się, kosztem utraty pewnej części dynamiki kolorów. Przykład zawiera Sekcja 3.4.1.11, „Wejściowy profil koloru”.