Tvorba ICC profilu pro digitální fotoaparát

Článek popisuje vytvoření profilu pro digitální fotoaparát pomocí kalibračního vzorníku IT8.7/2 Wolfa Fausta a programů UFRaw (verze 0.15) a Argyll CMS (verze 1.0.3) – oba programy jsou šířeny pod licencí GPL.

Úskalí používání ICC profilů pro fotoaparáty

  • Kalibrace a charakterizace senzoru fotoaparátu slouží k definovanému záznamu barev fotografované reality za stejných podmínek, při nichž byl profil vytvořen.
  • V praxi to je obvykle nerealizovatelné především kvůli změnám typu osvětlení (dopolední, odpolední slunce, různá umělá svítidla) – těžko budeme před každou fotografií pořizovat snímek kalibračního vzorníku.
  • Cílem fotografa je převést reálnou scénu na fotografii zobrazitelnou na monitoru či vytištěnou na tiskárně – tento převod nespočívá pouze v kolorimetricky správném převodu barev, ale i změnu tonálního podání (komprese světlých tónů), dobré podání některých odstínů (pleťovka), zvýšení sytosti barev, atd. tak, aby fotografie vypadala příjemně a přitom stále reálně. Kolorimetricky věrný převod k tomuto cíli obvykle nevede přímo, ale může být jeho začátkem.
  • Kalibrační vzorník nepokrývá všechny barvy, zbytek je tedy inter- a extrapolován – což nutně nemusí odpovídat skutečné odezvě senzoru fotoaparátu.
  • Kalibrační vzorník může odrážet světlo jiným způsobem než reálná fotografovaná scéna (např. metamerizmus).
  • Dle diskuzí v ArgyllCMS konferenci by bylo ideální nejprve vytvořit profil pro převod z RAW dat (již RGB, ale bez úpravy expozice, vyvážení bílé, apod.) do L*a*b* prostoru (a teprve zde dále manipulovat se snímkem). V dnešní době se obvykle postupuje jinak (úprava expozice, vyvážení bílé, gama a následná aplikace profilu), což předpokládá lineární chování senzoru fotoaparátu.

Nicméně, přesto se domnívám, že především v linuxu je vytvoření vlastního profilu přínosem.

Shrnutí celého postupu

Osobně používám jeden univerzální profil dle vzorníku fotografovaného při poledním slunci s předchozím vyvážením bílé.

Postup je následující:

  • Pořízení snímku vzorníku.
  • Převod RAW snímku do TIFF formátu bez aplikace správy barev pomocí UFRaw.
  • Vytvoření profilu pomocí ArgyllCMS.
  • Použití ICC profilu v UFRaw.

Pořízení snímku vzorníku

  • Fotoaparát nastavíme na snímání s nejnižší citlivostí, ukládání v RAW formátu.
  • Volíme objektiv s delším ohniskem (větší odstup od předlohy zabrání stínění), zacloníme na střední či vyšší clonové číslo (sníží případnou vinětaci), odstraníme světlé či barevně výrazné předměty, které by se mohly odrážet v předloze.
  • Předloha musí být rovnoměrně osvětlena, bez reflexů, prostá prachu a škrábanců. (Toto je základní požadavek, jeho nedodržení vede k chybnému profilu.)
  • Předloha nemusí zabírat celou plochu snímku.
  • Osvětlení při snímání obrazce pro tvorbu profilu by mělo odpovídat osvětlení scény snímků, k jejichž konverzi použijeme daný profil. V reálném světě nejspíše vytvoříme profil pro slunečné počasí, zamračeno a případně žárovkové osvětlení.
    Pro účely tohoto postupu jsem zvolil polední slunce.
  • Naexponujeme několik expozičních variant s co nejmenším krokem (obvykle 1/3 či 1/2 EV) tak, abychom nepřeexponovali nejsvětlejší část předlohy. Pro následující zpracování pak vybereme ten snímek, který nebude vyžadovat úpravu EV v UFRaw.

Konverze RAW snímku

Senzor fotoaparátu zpracovává světelný signál lineárně (respektive téměř lineárně, bohužel), katodové monitory (CRT) zobrazují nelineárně (při dvojnásobně vyšším napětí na elektrodě nedojde k dvojnásobnému zvýšení jasu), tiskárny též nezobrazují lineárně (změna velikosti tiskového bodu neodpovídá změně míry hustoty/jasu). Nelinearita je popsána tzv. gama křivkou (její sklon určuje jas středních tónů). Pokud bychom nepoužívali správu barev, musíme aplikovat úpravu gama – v opačném případě by se snímek z digitálního fotoaparátu jevil tmavý. (Většina monitorů pro PC zobrazuje s gama blízkou 2.2. Taktéž prostřední část křivky profilu sRGB má gama blízké této hodnotě.)

Poznámka: monitory fy Apple Macintosh kdysi používaly gama 1.8. Bylo to pravděpodobně z toho důvodu, že laserové tiskárny téže společnosti byly charakterizovány stejnou gama křivkou. Ve výsledku bylo možné tisknout snímky z monitoru se správnou tonalitou i bez použití správy barev.

I v případě pracovního postupu se správou barev (jednotlivá zařízení – monitor či tiskárna – jsou na sobě vzájemně nezávislá) je vhodnější používat u všech platforem pro monitory gama kolem 2.2, která z pohledu vnímání lidského oka přirozeněji zobrazuje průběh polotónů.

Další postup popisuje vytvoření profilu, který se aplikuje na lineární snímek (tj. korekce gama bude definována přímo v profilu).

V UFRaw:

  • V záložce Color nastavíme tentýž vstupní, výstupní a zobrazovací profil (např. sRGB – tj. nebude vůbec aplikována správa barev), gama rovno 1, linearita 0, záměr absolutní kolorimetrický.
  • Zkontrolujeme ostatní nastavení tak, aby nedocházelo k dalším úpravám snímku (tj. bez opravy přeexponovaných pixelů, bez odstraňování šumu, lineární křivky beze změny černého bodu, sytost barev rovna 1);
  • Kurzorem vybereme bílý vzorek na předloze – v případě obrazce IT8.7/2 je to políčko některé světlé políčko z šedé škály – volíme více pixelů, aby byla zanedbána případná chyba vzniklá šumem senzoru či poškozením předlohy – a ručně vyvážíme bílou.
  • Upravíme EV tak, aby hodnoty R, G a B se rovnaly přibližně 245 až 250 (zobrazeno v poli „Bodové hodnoty“) a přitom žádná část tabulky nebyla přeexponována (viz zaškrtnutí „Ukázat přeexpozici“). Úprava EV by neměla být záporná;
  • Taktéž je dobré zkontrolovat, že
    • nejtmavší oblasti obrazce (políčka K16, L16, případně spodní stupnice šedivých odstínů) vzájemně vykazují jasové rozdíly a mají hodnotu jasu větší než nula;
    • byla předloha osvětlena rovnoměrně (kurzorem lze označit různé oblasti šedivého rámu okolo obrazce);
  • Uložíme výsledný snímek jako 16bit TIFF včetně ID souboru (pro pozdější referenci či možnost opakování).

Pozn.: Způsob přípravy snímku ovlivní chování profilu – například pokud maximální hodnotu bílé ze vzorníku nastavíme na RGB 240, pak profil zesvětlí tyto vzorky tak, aby dosáhly hodnot blízko 255 (tj. bílé). Ve výsledku to znamená, že obětujeme část dynamického rozsahu senzoru.
Dále pokud špatně vyvážíme bílou, provede vyvážení profil. Např. necháme-li bílý bod příliš do žluta, pak profil tuto žlutou odstraní. Jinými slovy, při aplikaci na správně vyváženou bílou bude snímek do modra. To lze samozřejmě použít např. při studiových (tj. s kontrolovaným osvětlením) snímcích – místo ručního vyvážení bílé vybereme jednu z přednastavených možností (např. žárovkové světlo) a necháme na profilu „doladění“.
Tohoto chování lze využít ke specifickým úpravám, nicméně obecně platí, že pro podobné úpravy je vhodnější použít ICC editor nabízející i další vychytávky (barevný posun pouze pro konkrétní odstíny) – tyto programy jsou bohužel pouze komerční a zřejmě neexistují pro linux.

Vytvoření profilu

ArgyllCMS je soubor programů (bez grafického rozhraní) pro tvorbu profilů pro tiskárny, monitory a skenery. Aplikace pro digitální fotoaparát je principiálně shodná s vytvářením profilu pro skener.

Nejprve zbavíme uložený snímek Meta informací a uložíme s LZW kompresí (použil jsem program ze sady ImageMagick):

$ mogrify -verbose -strip -compress LZW EOS_30D_daylight.tif

kde EOS_30D_daylight.tif je snímek vzorníku vytvořený UFRaw.

Vygenerujeme ti3 soubor s popisem hodnot zařízení:

$ scanin -v -dipn EOS_30D_daylight.tif it8.cht R040220.txt

kde it8.cht je soubor popisující typ testovací obrazce (nachází se v adresáři argyll/ref/ v balíku se zdrojovými kódy), R040220.txt je referenční soubor ke vzorníku dodaný jeho výrobcem (popisuje odchylky barev vzorníku od správných hodnot). Příkaz kromě jiného vytvoří soubor diag.tif, který zobrazuje mřížku přes tabulku se vzorníkem – je záhodno zkontrolovat, zda nedošlo k chybnému překryvu.

Výsledkem je soubor EOS_30D_daylight.ti3, který je použit při generování profilu:

$ colprof -v -A "Canon" -C "(C) 2008 Milan Knizek, free for use and distribution" -D "Canon EOS 30D (daylight)" -M "EOS 30D" -r 2.5 -qm -aS EOS_30D_daylight

kde

-r 2.5 popisuje průměrnou odchylku čtených hodnot od teoretických (perfektních) hodnot. Jinými slovy, popisuje kvalitu senzoru. Vyšší hodnota vede k většímu „vyhlazení“ zjištěných hodnot.

-qm označuje střední kvalitu profilu – vzhledem k malému počtu vzorků a předpokládanému „nedobrému“ chování senzoru nemá smysl používat vyšší.

-aS označuje, jaký typ profilu má být vytvořen. V tomto případě se jedná o „single shaper curve and matrix“. Alternativně lze zvolit „-as“, kdy budou použity samostatné křivky pro jednotlivé kanály (záleží na chování senzoru pro jednotlivé kanály).

Výsledkem je EOS_30D_daylight.icc profil.

Pozn. 1: Typ profilu je obecně problematická záležitost. Pro zařízení s dobrým (čili snadno extra a interpolovatelným) chováním se hodí shaper + matrix profily – jsou malé a efektivní. Pro vyšší přesnost profilu jsou vhodnější LUT (s vyhledávací tabulkou) profily. Problém při charakterizaci senzoru je však v tom, že vzorník obsahuje málo barevných vzorků (tj. u LUT profilu by bylo stejně nutné mnoho hodnot interpolovat), vzorky nepokrývají všechny barvy, které senzor umí zachytit (LUT profily se nehodí pro extrapolaci chybějících hodnot směrem k hranicím gamutu senzoru) a chování senzoru není ideální (LUT profil by mohl vést k náhlým tonálním změnám, což vizuálně nevypadá dobře).
Jedinou křivku (Single shaper curve) volím proto, že před použitím profilu u běžných snímků měním úpravu EV a nastavení bílého bodu – tj. profil přesněji popisující chování R, G, B složek považuji pro univerzální použití méně vhodný.

Pozn. 2: Na konci výpočtu program colprof vypíše údaj o průměrné a maximální odchylce – myšlena je odchylka barev vzorků od žádoucích hodnot po aplikaci vytvořeného profilu, čili chyba profilu. Obvykle je žádoucí dosáhnout co nejnižších hodnot – průměrná odchylka kolem 2 by byla výborná, ale dle mých zkušeností je u fotoaparátů nedosažitelná. Snížení odchylky lze dosáhnout vyzkoušením různých nastavení při výpočtu profilu (především typ profilu – parametr -a“, avšak mějte na paměti informace uvedené v předchozí poznámce), nejlepší je však začít kontrolou snímku vzorníku (žádné odlesky, škrábance, atd.).

Používání profilu

Nastavení v UFRaw je patrné z následujícího snímku:

Při používání profilu je dobré se vyhnout příliš odlišným hodnotám (EV, bílý bod, základní křivka, volba typu obnovení detailů při přeexpozici) od výchozího nastavení při tvorbě profilu, neboť při nelineárně se chovajícím senzoru tyto změny vnesou chyby do převodu barev.

Proto je lepší variantou provádět zásadní úpravy až na datech po aplikaci profilu – v UFRaw se v podstatě jedná o úpravu jasové křivky a saturace.

Odkazy

International Color Consortium – specifikace ICC, novinky ze světa ICC. Doporučuji k přečtení jejich White Papers.

Reprodukce barev – srozumitelný výklad správy barev, popis chování a profilace vstupních a výstupních zařízení.

Color Management – trochu širší výklad správy barev.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..