W kolejnym artykule zostanš przedstawione tzw. tagi, które sš niezbędnš częciš profilu ICC, gdyż bezporednio wpływajš na wyniki konwersji. Wobec tego ich rola jest dużo większa niż nagłówka, który był tematem poprzedniej czeci.
Podczas gdy nagłówek profilu jest jego standardowš, niezmiennš, posiadajšcš cile okrelonš zawartoć częciš, częć profilu w postaci tagów różni się, w zależnoci od rodzaju profilu oraz programu, w którym został wygenerowany. Tagi można podzielić na trzy kategorie: wymagane, opcjonalne i prywatne.
ICC precyzuje listę tagów wymaganych dla danej klasy profili. I tak np. profil monitora musi zawierać tag dotyczšcy krzywych reprodukcji, a profil drukarki musi zawierać tag wskazujšcy odpowiedniš tablicę LUT. Bez wymaganych tagów profil ICC jest nieważny. Odpowiednio napisany program do używania profili powinien sprawdzić w nagłówku klasę profilu i na tej podstawie wiedzieć, jakie wymagane tagi powinny się w nim znajdować, a w sytuacji, gdy owych tagów nie ma, powinien uniemożliwić korzystanie z takiego niepoprawnego profilu.
Tagi wymagane przez ICC
Każdy z rodzajów profili ma listę wymaganych tagów. Dostarczajš one wszystkich koniecznych informacji do CMM w celu przekształceń barw pomiędzy przestrzeniami urzšdzeń i niezależnš przestrzeniš PCS. Wymagane tagi mogš ulegać (i ulegajš) zmianom pod wpływem nowych specyfikacji ICC. Tagi wymienione poniżej odnoszš się do wersji 4 specyfikacji (pierwsze cztery muszš być częciš wszystkich profili oprócz profili typu połšczeń między urzšdzeniami Đ tego typu profile nie muszš zawierać tagu adaptacji chromatycznoci i tagu punktu bieli):
Ľ Opis profilu Đ wskazuje na nazwę profilu. Profile mogš zawierać dwojakiego rodzaju nazwy: wewnętrznš i zewnętrznš. Powyższy tag może zawierać maksymalnie trzy różne wewnętrzne nazwy dla danego profilu, wspomagajšc w ten sposób poprawne ich wywietlanie, niezależnie od sposobu kodowania (ASCII, UniCode, Mac Script). Programy typu Photoshop używajš nazwy wewnętrznej i należy zwracać uwagę na jej zgodnoć z nazwš zewnętrznš (nazwš pliku profilu). W programach do edycji i naprawy profili można sprawdzić tę zgodnoć, a przy braku jej zachowania Đ zmienić czy skopiować (np. za pomocš AppleŐs Profile First Aid, Applescript).
Ľ Punkt bieli Đ wartoć uzyskana z pomiaru spektrofotometrycznego niezadrukowanego podłoża, przezroczystego filmu czy też faktyczny punkt bieli monitora. Powyższe dane używane sš do różnych kalkulacji, np. do przekształceń absolutnie kolorymetrycznych.
Ľ Prawa autorskie
Ľ Adaptacja chromatycznoci: w przepływie prac (informacji o barwach) opartym na profilach ICC zakłada się, że standardowym ródłem wiatła czy to obserwacji pól barwnych, czy też ich pomiaru jest iluminant D50. Tag ten zawiera informacje niezbędne do przeliczeń zwišzanych z użyciem innego iluminantu. Jeli iluminantem nie jest D50, wówczas obliczenia oparte na tagu chad pozwalajš przewidzieć, jak dane pole barwne będzie ăwidzianeÓ, kiedy zostanie owietlone innym iluminantem. Powyższe obliczenia mogš być oparte na transformacjach von Kriesa, liniowych przekształceniach Bradforda czy też liniowym przeskalowaniu wartoci współrzędnych trójchromatycznych CIE XYZ.
Ľ Tagi dotyczšce danych w macierzy XYZ: Urzšdzenia takie jak monitory mogš być scharakteryzowane głównie przez barwy luminoforów tworzšcych obraz. Wobec tego zawartoć tagu XYZ w profilu monitora jest oparta na współrzędnych trójchromatycznych CIE XYZ dla każdego z trzech luminoforów. Dane te służš stworzeniu macierzy 3x3, która jest używana do konwersji barw. rXYZ, gXYZ, bXYZ tworzš odpowiednio pierwszš, drugš i trzeciš kolumnę macierzy.
Ľ Tagi dotyczšce danych tworzšcych krzywe reprodukcji: Jednš z informacji niezbędnych w celu poprawnego wywietlania barw jest zmierzony i zapisany parametr gamma. W profilach taka informacja jest zachowana w tagach dotyczšcych krzywych reprodukcji. W przypadku monitora, a czasami skanera, jest to parametr gamma; w przypadku profili drukarek sš to krzywe reprodukcji dla barw C, M, Y, K.
Ľ Tagi dotyczšce tablic Look Up: Tablice LUT mogš być częciš wszystkich profili. Wszystkie tablice LUT majš znormalizowanš strukturę, którš w uproszczeniu można przedstawić jak na poniższym rysunku:
Jak widać, tablica Look Up składa się z czterech częci: macierzy, zestawu trzech jednowymiarowych tablic, tablicy wielowymiarowej i innego zestawu tablic jednowymiarowych (w tym przypadku trzech, ale może ich być więcej; np. jeli dšżymy do uzyskania składowych CMYK, wówczas będš cztery tablice). Podczas konwersji dane o barwach poszczególnych pikseli obrazu (w przypadku obrazów bitmapowych) lub krzywych opisujšcych obiekt (w przypadku obiektów wektorowych) przechodzš sekwencyjnie przez każdš z tych częci. W powyższym przypadku w wyniku przekształceń otrzymujemy 3 jednowymiarowe tablice, a z nich komponenty dla poszczególnych barw wyjciowych w trójwymiarowym systemie barw, np. RGB (na wejciu, przed macierzš 3x3, pierwotnymi danymi były współrzędne barwy w systemie niezależnym od urzšdzenia). Ponieważ jednš z częci tablicy LUT jest tablica wielowymiarowa, dlatego mimo że na wejciu ma się do czynienia z systemem trójwymiarowym (np. L*a*b*), na wyjciu możliwe jest otrzymanie składowych dla systemu czterowymiarowego, np. CMYK. Powyższy przykład dotyczy konwersji z PCS do przestrzeni urzšdzenia. W odwrotnym przypadku proces ten zachodzi według tego samego schematu.
ICC dopuszcza modyfikacje tagu opisujšcego tablice LUT.
Ľ Tag opisujšcy gamut urzšdzenia Đ zapisane sš w nim informacje o barwach niemieszczšcych się w przestrzeni, którš dany profil opisuje. Zawartoć tych informacji pozwala na wizualizację przestrzeni reprodukowalnej w systemie L*a*b* w postaci bryły przestrzennej.
Niestety, niewiele aplikacji używa tego tagu, gdyż daje on mierne wyniki (w postaci wizualizacji). Można jednak stworzyć wizualizację przestrzeni na podstawie innych danych znajdujšcych się w profilu i większoć programów do edycji profili korzysta z tej formy informacji o barwach zamiast tagu opisujšcego gamut.
Poniżej przedstawione zostanš wymagane tagi dla poszczególnych klas profili, przy czym będzie można zauważyć, że pierwsze cztery tagi odnoszš się do wszystkich rodzajów profili.
Profile skanerów
Klasa profili skanerów odnosi się również do cyfrowych aparatów fotograficznych. W zasadzie profile tego typu służš do konwersji barw z przestrzeni RGB urzšdzeń (skanerów, aparatów cyfrowych) do niezależnej przestrzeni L*a*b*. Minimum zawartoci dla tego typu profili przedstawia tabela.
Wersja 4 profili ICC wprowadziła pewne zamieszanie i minie jeszcze trochę czasu, zanim twórcy i użytkownicy oprogramowania w pełni jš zaimplementujš do swoich rozwišzań. Zamieszanie to dotyczy m.in. profili skanerów. We wczeniejszej specyfikacji ICC profile skanerów posiadały tylko jednš tablicę LUT zwanš AdoB0. Specyfikacja z 1998 roku wspomina tylko (ale ich nie precyzuje) o tablicach LUT AdoB1 i AdoB2. W aktualnej specyfikacji wszystkie tablice sš zdefiniowane i wobec tego profile skanerów mogš zawierać taki sam zestaw tablic jak chociażby profile drukarek. Niestety, mogš się pojawić problemy z interpretacjš tych danych, np. niektóre programy mogš interpretować tag AdoB0 w ăstarszymÓ sensie, czyli jako tag odnoszšcy się do tablicy podstawowej.
W kontekcie nowej specyfikacji tag AdoB0 precyzuje tablicę LUT dla konkretnego sposobu renderingu (percepcyjnego) i jest po prostu jednš z wielu tablic, które mogš się w profilu znajdować, np. AdoB1 (relatywnie kolorymetryczny) i AdoB2 (nasyceniowy). Ważne zatem jest, aby zarówno programy do tworzenia, jak i używania profili, a także moduły CMM zaimplementowały te nowe tagi (sposób ich odczytu).
Przykładem występowania tego typu problemu jest aplikacja Photoshop 6. Program ten może używać jako modułu CMM tzw. ACE (Adobe Color Engine). Podczas ustawiania opcji konwersji istnieje możliwoć wyboru sposobu renderingu. Użytkownik wybierajšc sposoby renderingu Đ percepcyjny, relatywnie kolorymetryczny czy też nasyceniowy Đ spodziewa się, iż odpowiednie tablice AdoB0, AdoB1 i AdoB2 będš używane do konwersji. Jednakże moduł Adobe Color Engine w Photoshopie 6 zawsze używa tablicy AdoB0 bez względu na wybrany sposób przekształcenia. Problem ten został poprawiony w wersji 7 aplikacji Photoshop.
Profile monitorów
Profile należšce do tej klasy majš sprecyzowane podstawowe wymagane tagi, które odnoszš się również do innych klas profili. Dodatkowo muszš zawierać macierz i krzywe reprodukcji (parametr gamma) lub tablice LUT (AdoB0 i BdoA0).
Profile drukarek (urzšdzeń wyjciowych)
Tego typu profile mogš występować w trzech wersjach:
Ľ RGB, które charakteryzujš drukarki inkjetowe, realizujšce obraz na podstawie sygnałów RGB pochodzšcych ze sterownika drukarki;
Ľ CMYK Đ charakteryzujšce zarówno wszelkiego rodzaju drukarki, jak i maszyny drukujšce;
Ľ wielokanałowych Đ mogš opisywać urzšdzenia, które drukujš większš liczbš atramentów czy też farb: mogš np. charakteryzować proces drukowania m.in. w systemach Hexachrome, HyperColor, ResoLUT PS, EderMCS. Nie sš to profile opisujšce coraz powszechniej stosowane plotery realizujšce obraz janiejszymi odmianami barw podstawowych, np. lightcyan czy lightmagenta. Tego typu plotery charakteryzuje się najczęciej za pomocš profili CMYK, a sterowania algorytmami obsługujšcymi janiejsze odmiany kolorów dokonuje z poziomu RIPa Đ proces ten wchodzi w zakres kalibracji systemu, nie jego charakteryzacji.
Specyfikacja ICC 4.0 przewiduje maksymalnie 15 kanałów dla takich profili, jednakże powszechnie stosowane moduły CMM potrafiš obsługiwać ătylkoÓ 8 kanałów. Tego typu profile sš rzadko stosowane z powodu m.in. braku powszechnego stosowania technologii druku High Fidelity Color.
Oprócz czterech podstawowych tagów (desc, wtpt, cprt i chad) profil musi zawierać szeć tablic LUT i tag odnoszšcy się do gamutu urzšdzenia.
Niepotrzebna jest tablica dla metody absolutnie kolorymetrycznej Đ wykorzystywana jest tablica dla metody relatywnie kolorymetrycznej. Tablice znajdujšce się w profilach tego typu sš wielowymiarowe, dlatego ich rozmiary sięgajš kilku megabajtów pamięci.
Jednš z użyteczniejszych informacji, którš można uzyskać otwierajšc profil w którym z programów służšcych do badania, sprawdzania czy też naprawy profili, jest sposób kojarzenia tagów z odpowiednimi częciami profilu zawierajšcymi dane dla danego tagu. Zdarza się bowiem, że producenci chcšc spełniać specyfikację ICC wprowadzajš wymagane tagi, ale nie kojarzš z nimi osobnych danych, tzn. niektóre tagi korzystajš z tych samych danych Đ tym sposobem np. profil zajmuje mniej miejsca na dysku. Sytuacja taka dotyczy szczególnie tagów odnoszšcych się do tablic odpowiedzialnych za konwersje w różnych kierunkach dla różnych sposobów przekształceń barw (rendering).
Tagi opcjonalne
Oprócz tagów wymaganych ICC przewiduje możliwoć wprowadzania tagów opcjonalnych, których nieobecnoć nie powinna spowodować problemów używania profili w różnych aplikacjach. Twórcy oprogramowania do tworzenia profili mogš używać tagów opcjonalnych w celu podniesienia ogólnej wydajnoci systemu Color Management. Powyższe tagi mogš być używane np. w celu poprawienia transformacji barw, jako wsparcie dla PostScript poziomu drugiego czy też opcje kalibracji.
Niektóre systemy do tworzenia profili ICC majš wbudowane opcje kalibracji, którymi rozpoczyna się proces tworzenia profili ICC. Jednš z takich opcji jest linearyzacja urzšdzenia. Oprócz tradycyjnej linearyzacji opartej na krzywych tonalnych istnieje możliwoć linearyzacji opartej na wartociach L*a*b*. Tego typu rozwišzanie stosujš np. Monaco Profiler i Fuji ColourKit. Procedura taka pozwala osišgnšć większš dokładnoć profilu (a dokładniej tablic w nim użytych).
Tworzenie profilu ma na celu znalezienie zależnoci pomiędzy wartociami np. CMYK i L*a*b*. Realizowane jest to poprzez wydrukowanie testu z barwnymi polami. Test występuje w postaci CMYK Đ każde pole na nim się znajdujšce ma odpowiednie wartoci składowych barw pierwszorzędowych. Wartoci pól z reguły różniš się o stałš wartoć, np. pierwsze pole ma (10,0,0,0), kolejne (20,0,0,0) itd. Oznacza to, że ăprzestrzeńÓ CMYK jest próbkowana równomiernie. Jednakże zrealizowanie tych wartoci na konkretnym urzšdzeniu drukujšcym i zmierzenie pól barwnych w ten sposób otrzymanych może okazać się zabiegiem mało precyzyjnym, gdyż możemy otrzymać wartoci L*a*b* próbkujšce przestrzeń L*a*b* w sposób nierównomierny. W jednych obszarach może znajdować się większa liczba poczštkowych kombinacji CMYK niż w innych. I o ile obszary bardziej zagęszczone próbkujš przestrzeń dokładniej, o tyle obszary L*a*b*, w których jest mniej reprezentantów CMYK, zostajš nieco przekłamane. Oczywicie można by użyć testu kontrolnego składajšcego się z odpowiednio dużej iloci pól, ale profil utworzony na ich podstawie zajmowałby dużo miejsca, pracowałby wolno, a sam proces pomiaru tych pól rozcišgałby się na bardzo długi okres.
Istnieje możliwoć ălinearyzacjiÓ tego procesu (termin ălinearyzacjaÓ nie do końca jest właciwy: nie linearyzuje się urzšdzenia, lecz w pewnym sensie sposób tworzenia testu kontrolnego). Proces taki polega na wstępnym wydrukowaniu pól testowych CMYK, zmierzeniu ich i wygenerowaniu nowego testu równomierniej próbkujšcego przestrzeń L*a*b*, na podstawie którego (pomiarów z niego) generowany jest profil.
Przykładem tagów opcjonalnych mogš być: tag luminancji (lumi), który może być używany do przechowywania informacji o luminancji monitora w jednostce cd/m2; tag pomiaru (meas), przechowujšcy informacje o innych warunkach pomiarowych Đ iluminant D65 zamiast D50; tag dotyczšcy sposobu generowania czerni (bfd).
Tagi prywatne
Zawierajš informacje zastrzeżone przez producentów oprogramowania do tworzenia profili. Mogš np. polepszyć funkcjonalnoć systemu, jeli program użyty do konwersji również pochodzi od tego samego producenta. Tagi tego typu pozwalajš producentom w pewien sposób wyróżnić swoje oprogramowania. Jednak International Color Consortium nie zaleca ich stosowania, gdyż mogš one niekorzystnie wpływać na funkcjonowanie profili w aplikacjach innych producentów, co nie jest zgodne z ideš ICC, mówišcš m.in. o niezależnoci systemu od platformy.
Zatem tagi wraz z odnoszšcymi się do nich danymi zawartymi w profilu sš jego najważniejszš częciš, gdyż wpływajš bezporednio na efekty konwersji barw. W pewnej mierze wynik konwersji, mimo wprowadzanych specyfikacji, zależy (np. w przypadku zastosowania percepcyjnej metody przekształceń barw) od programu, w którym profil został wygenerowany. Wobec tego bardzo ważna jest współpraca konkretnych profili z konkretnymi aplikacjami, w których sš one implementowane, co w pewnym sensie nie jest zgodne z założeniami ICC. Wprowadzenie czwartej wersji profili ICC miało na celu polepszenie takiej współpracy, niemniej coraz to nowe jej wersje wydawane przez ICC (4.0, 4.1.0, 4.2.0) mogš sprawić, że nie wszyscy dostawcy zdšżš zaimplementować je do swoich rozwišzań softwareŐowych, co ponownie może sprawić kłopoty użytkownikom.
Autor jest studentem Instytutu Poligrafii PW
Literatura
Ľ Abhay Sharma Understandung Color Management, Thomson Delmar Learning 2004
Ľ Bruce Frazer, Chris Murphy, Fred Bunting Real World Color Management (second edition), Peachpit Press 2005
Ľ www.color.org, The reasons for changing to the v4 ICC profile format
Ľ Specification ICC.1:2003-09 File Format for Color Profiles (Version 4.1.0)
Ľ Features which have changed when comparing version 4 to version 2 profiles
Ľ ICC version 2 & version 4 display profile differences
Ľ lista dyskusyjna lcms-user@lists.sourceforge.net
Ľ Abhay Sharma and Paul D. Fleming Measuring The Quality of ICC Profiles and Color-Management Software, The Seybold Report Volume 2, Number 19