1. Novodobý Babylón
Obr. 1 - Babylónská věž, Pieter Bruegel, 1563, olej na dřevě |
Začněme otázkou: Co to vlastně takový barevný prostor vůbec je? Stručně řečeno, je to jistá daná množina barev, ve které existuje jakýsi systém souřadnic, který dovoluje se na jednotlivé barvy odkazovat pomocí čísel. Jinými slovy, je to jakási skupina barev tvořících gamut barevného prostoru, plus konkrétní způsob jejich číselného kódování.
Obraz v digitální podobě je dvojrozměrné pole bodů – pixelů, z nichž každý má nějakou barvu. Ta je zaznamenaná v číselné podobě pomocí hodnot souřadnic této barvy v daném barevném prostoru. Aby bylo možné obraz správně zobrazit, je nutné vědět, jaká číselná kombinace odpovídá jaké barvě, neboli jaký prostor byl k zaznamenání obrázku použit. Použije-li se k dekódování obrázku jiný prostor, číslům se přiřadí nesprávné barvy a výsledný obraz bude špatně. V lepším případě, když použitý prostor je podobný tomu správnému, bude obrázek pouze více či méně barevně zkreslený (viz Obr. 2), v horším, když se použije prostor úplně jiný, nemusí výsledek vůbec dávat smysl.
V jiném prostoru tentýž obraz reprezentují jiná čísla. To znamená, že chceme-li z nějakého důvodu použít jiný prostor, je nutné obrazová data zkonvertovat – tj. patřičným způsobem změnit čísla, která digitální obrázek tvoří. Problém je v tom, že gamuty různých prostorů (tj. množiny barev, ze kterých se prostory skládají) se liší, takže konverze je pouze přibližná a k nějakým těm barevným posunům i při nejlepší snaze může dojít.
Poznámka: Někdy je posun barev při konverzi z jednoho prostoru do druhého dokonce úmyslný. O tom ale až jindy.
Pokud vám jsou abstraktní prostory a systémy souřadnic cizí, můžete si barevný prostor docela dobře představit jako jazyk, pomocí kterého počítače a vstupní a výstupní zařízení o barvách navzájem komunikují. Gamut barevného prostoru je v tom případě slovní zásoba tohoto jazyka a jednotlivé barvy tvořící prostor jsou slova, která jazyk obsahuje. Číselný kód barvy, reprezentující barvu v daném souřadnicovém systému, je ono slovo v písemné formě, zapsané za pomoci příslušné abecedy podle pravidel pravopisu platných pro daný jazyk. A konečně, digitální obrázek je nějaký ucelený text napsaný v daném jazyce.
Stejně jako jazyků i barevných prostorů je mnoho a navzájem se více či méně liší. Podobně jako totéž psané slovo má v různých jazycích často úplně jiný význam a např. Čech si pod „jar“ představí prostředek na mytí nádobí, zatímco Angličan zavařovací sklenici, tak stejná čísla v různých prostorech reprezentují různé barvy. A naopak, jako se pro tutéž věc v různých jazycích používají různá slova, tutéž barvu vyjadřují v různých prostorech různá čísla. Slova v různých jazycích navzájem odpovídají jen přibližně, některá slova existující v jednom jazyce v druhém jazyce nemají žádný přímý ekvivalent a je obtížné je přeložit. Stejně tak barvy zastoupené v jednom barevném prostoru v druhém vůbec nemusí existovat a je potřeba je při konverzi obrázku prostoru do druhého nahradit nějakou dostatečně blízkou aproximací.
Barevné prostory se navzájem liší především:
- primárními barvami – jejich chromatičností, jasem, případně i počtem,
- bílým a černým bodem – jejich jasem i chromatičností,
- tonální charakteristikou – tím, jak jsou tóny mezi nejtmavším a nejsvětlejším rozložené.
V případě černé je víc než její chromatičnost důležité to, jak je tmavá, tj. její densita. Žádoucí je co nejtmavší černá neboli co největší dynamický rozsah, aby bylo možno zachytit co nejvíce detailů a obraz nepůsobil šedivě. V případě bílé hraje naopak velkou roli její chromatičnost, protože bílá, na kterou je zrak adaptovaný, slouží jako reference pro všechny ostatní barvy. Tonální charakteristika se vyjadřuje pomocí křivky. Je-li dostatečně jednoduchá, pak tato křivka může být charakterizovaná pomocí elementární funkce. Je-li příliš komplikovaná, je potřeba ji popsat pomocí série bodů, které na křivce leží. V případě monitorů, skenerů a digitálních fotoaparátů to bývá tzv. gama křivka (což není nic jiného než obyčejná mocnina – gama označuje hodnotu exponentu), u tiskáren je to tzv. dot gain. Příklad gama křivky uvidíme později, až se budeme blíže zabývat sRGB prostorem.
Některé jazyky jsou si hodně blízké a třeba se dá dokonce i říct, že jde jen o různá nářečí téhož jazyka. Jiné si nejsou podobné ani vzdáleně a text psaný v jednom jazyce čtenáři, který ovládá pouze druhý jazyk, vůbec nedává smysl. U barevných prostorů je to podobné. Některé prostory jsou si blízké, a když výstupní zařízení vezme data tak, jak jsou, a interpretuje je za použití vlastního prostoru, tak dojde jen k menším či větším „nedorozuměním“ ve formě posunu barev. Jindy zařízení používá principiálně zcela jiný prostor, tj. hovoří velmi odlišným jazykem, a bez patřičné konverze obrázek interpretovaný pomocí jeho vlastního prostoru vůbec nedává smysl. Jako se dají rozeznat skupiny příbuzných jazyků, které se sobě navzájem podobají, i u barevných prostorů lze rozeznat několik základních skupin. Lze je zhruba rozdělit na prostory typu RGB, CMYK a ty ostatní (kam patří např. Lab, Photo YCC – barevný prostor sloužící k ukládání dat na Kodak Photo CD – a další podobné prostory, které používají jeden jasový a dva barevné kanály).
V současné době se v praxi nejčastěji setkáme s RGB prostory. Mnoho uživatelů už ani s jiným typem barevného prostoru vůbec nepřijde do styku. Prakticky všechna vstupní zařízení (digitální fotoaparáty, skenery a monitory) používají RGB. CMYK prostory se tradičně používaly - a mnohde se stále používají - pro tisk. Moderní inkjetové tiskárny a řada dalších výstupních zařízení ale pracuje s RGB daty. Při tisku se sice i nadále používají azurové (Cyan), purpurové (Magenta), žluté (Yellow) a černé (blacK) inkousty – neboli nějaká odrůda CMYKu – nicméně na vstupu se uvažují RGB data a konverze do jiné formy probíhá interně, automaticky, a běžnému uživateli je skrytá. Pro uživatele je to mnohem pohodlnější. Mateřské CMYK prostory různých zařízení se totiž navzájem mnohem více liší než RGB prostory (např. inkjetové tiskárny určené pro tisk fotografií dnes už běžně používají více než čtyři barevné inkousty, takže se jedná vlastně o CcMmYK nebo CcMmYKk). Soubor typu CMYK určený pro tisk na jednom typu zařízení tak může být zcela nevhodný pro jiný typ zařízení. Gamut CMYK prostorů reálných zařízení také navíc bývá obecně relativně malý a RGB prostory jsou vhodnější pro editování obrázků i z jiných důvodů - vzhledem k tomu, že barva je v zásadě trojrozměrná veličina, použití více než tří primárních barev vyjádření barev a manipulaci s nimi komplikuje. Ostatní typy prostorů mají většinou speciální použití - např. pro ukládání obrazových dat (jako již zmiňovaný Photo YCC), nebo pro konverzi dat mezi různými prostory, jak uvidíme v příštím dílu tohoto seriálu. Běžnému uživateli tyto prostory většinou zůstanou skryté.
Každé vstupní nebo výstupní zařízení, jako digitální fotoaparát, skener, monitor, tiskárna apod. má nějaký svůj vlastní barevný prostor, který používá, neboli svůj mateřský jazyk: Vidí-li vstupní zařízení určitou barvu, vyprodukuje jistý daný číselný kód, obdrží-li výstupní zařízení jako řídící signál jistý číselný kód, vyprodukuje určitou barvu. Tyto barevné prostory bývají označovány jako prostory na zařízeních závislé. Obdrží-li stejný kód dvě různá výstupní zařízení, každé z nich vyprodukuje poněkud jinou barvu. Kromě toho se tento prostor mění i s tím, jak se mění samo zařízení – jak stárne, mění se jeho nastavení, použitá barviva apod. Například pohneme-li s nastavením monitoru, tak pak stejnému řídícímu kódu odpovídá jiná barva, neboli jsme tím změnili barevný prostor monitoru. Stejně tak se barvy a potažmo barevný prostor postupně mění i jak stárne obrazovka.
Součástí systematické správy barev jsou i tak zvané na zařízení nezávislé barevné prostory. Jak název napovídá, jsou to barevné prostory, které neodpovídají žádnému konkrétnímu vstupnímu či výstupnímu zařízení a jsou definované zcela nezávisle. K čemu jsou zapotřebí? Jsou to jakési standardy, které jsou jednou pro vždy dané a na rozdíl od barevných prostorů konkrétních zařízení se nijak nemění. Příkladem takových prostorů jsou třeba sRGB, Adobe RGB (1998) nebo již zmiňovaný Lab a Photo YCC. Dá se říct, že jsou to takové mezinárodní jazyky. Slouží ke snadnému dorozumívání se mezi různými zařízeními. Mnohá zařízení jsou schopná akceptovat nebo produkovat obrazová data v jednom nebo i více takových „jazycích“. Tyto prostory se používají také k editaci a skladování obrázků. Mateřské prostory vstupních a výstupních zařízení se vesměs pro editaci a efektivní kódování obrázků příliš nehodí. Trpí totiž většinou dvěma následujícími nešvary:
-
Nemají vyváženou šedou, tj. neutrální šedá v nich není reprezentovaná trojicí stejných čísel (nebo jasovou složku nemají nějakým jiným způsobem jednoduše separovatelnou). To je velmi nepohodlné při editaci, protože je pak obtížné zajistit, aby při operacích jako je ztmavování, zesvětlování, změna kontrastu apod. nedocházelo současně k barevným posunům.
-
Nebývají dostatečně perceptuálně rovnoměrné, tj.některé barvy jsou si zbytečně blízko, což znamená plýtvání při ukládání obrázků (zbytečně se ukládá se informace, kterou nejsme schopni vidět) a na druhou stranu jinde mohou být mezi barvami prostor tvořícími příliš velké mezery, takže pak při úpravách barev obrázku velmi snadno dojde ke ztrátě plynulosti barevných přechodů.
Poznámka: Vzhledem k tomu, že mateřský prostor celé řady zařízení je typu RGB a některé abstraktní RGB prostory jako třeba sRGB se snaží jakési průměrné zařízení modelovat (v případě sRGB konkrétně běžný CRT monitor připojený k PC), tak tyto prostory bývají někdy klasifikovány jako na zařízení závislé, ale s tím, že náleží virtuálnímu zařízení, které je na rozdíl od těch reálných dokonale stabilní - je jednou pro vždy dané a s časem se nemění.
Stejně, jako se lidé nejsou schopni dohodnout na jednom světovém jazyce, nejsou schopni se dohodnout ani na jednom univerzálním na zařízeních nezávislém barevném prostoru. Názory odborníků se liší a o tom, který prostor je pro editování a ukládání obrázků nejlepší, se vedou na diskusních fórech nekonečné debaty, podobně jako o tom, jaký je nejlepší fotoaparát. Stejně jako u fotoaparátů, ani u barevných prostorů univerzální správná odpověď neexistuje. Záleží na okolnostech. Pro různé účely se hodí jiné prostory, např. protože mají gamut bližší tomu kterému zařízení nebo protože jejich gamut je větší a méně omezující, jelikož zachytí větší rozsah barev.
Poznámka: Ne vždy je větší gamut výhodou. Číselných kódů a potažmo barev v gamutu obsažených je jen jistý počet (např. v RGB prostorech s osmibitovou hloubkou tři celá čísla mezi 0 a 255, tj. celkem 16,777,216 barev), takže v prostoru s větším gamutem jsou pak mezi barvami větší mezery. Navíc často velký gamut nutně obsahuje i nezanedbatelné množství imaginárních barev (v reálu neexistujících – viz minulý díl seriálu), tzn. počet reálných barev prostřednictvím tohoto kódu zachytitelných je pak ve skutečnosti nižší a o to větší jsou pak mezery mezi barvami a riziko, že barevné přechody při úpravách ztratí plynulost. Jedním z prostorů s velkým gamutem je např. Lab s celočíselným kódováním, tak jak je standardizovaný v grafickém formátu TIFF a používaný ve Photoshopu a dalších grafických editorech. Pokrývá asi 97% gamutu reálných barev, ale téměř 65% možných číselných kódů u něj připadá imaginárním barvám. Konverzi do Labu při editaci obrázku je proto lepší se vyhnout. Způsobuje zmenšení počtu zastoupených barev (které již nejde nijak dodatečně napravit) a výrazně zvyšuje riziko vzniku neplynulých barevných přechodů. Toto riziko do značné míry odstraňuje používání více než osmi bitů na kanál.
Obr. 3 - Gamut reálných barev v CIELAB souřadnicích. Nahoře pohled pod úhlem 60 resp. 270 stupňů v rovině a*b*, dole ze směru osy L*. Čtverec dole je základnou kvádru reprezentujícího gamut prostoru Lab se standardním celočíselným kódováním dle grafického formátu TIFF. |
Volba barevného prostoru je do značné míry i otázkou osobního vkusu. Chceme např. raději maximálně využít možnosti tiskárny a pracovat v prostoru, který gamut tiskárny kompletně pokryje, nebo zvolíme prostor s gamutem, který nám umožní kompletně zachytit barvy filmu, který skenujeme, nebo raději dáme přednost spíš prostoru s gamutem blízkým gamutu monitoru, čímž se vyhneme tomu, že budeme s barvami pracovat částečně naslepo, protože jinak některé barvy, se kterými budeme pracovat, monitor nedokáže zobrazit? Volba je na vás.
Angličtinou (čti asi nejběžněji akceptovaným mezinárodním jazykem) mezi barevnými prostory je v současné době sRGB, který - jak už bylo řečeno - zhruba modeluje mateřský barevný prostor průměrného CRT monitoru PC pod Windows. Řada uživatelů ale preferuje pro svoji práci prostor jiný, ať už z praktických důvodů, např. Adobe RGB (1998), protože jeho gamut je o něco větší a víc se shoduje s gamutem inkjetových tiskáren, nebo třeba z důvodů historických, jako např. Apple RGB na platformě Macintosh.
Pojďme se nyní na tyto prostory podívat podrobněji - nejdříve na sRGB.
2. sRGB pod lupou
Barevný prostor sRGB navrhla firma Hewlet Packard ve spolupráci s Microsoftem. Vychází z charakteristik běžného monitoru v slabě osvětlené místnosti. Předpokládaný typ osvětlení je standardní CIE iluminant D50 (model pro denní světlo o barevné teplotě 5000 K), úroveň osvětlení místnosti 64 luxů. Okolí obrazovky má uvažovanou odrazivost 20%, obrazovka sama pak má svítivost 80 cd/m2, závoj (flare) 1% a chromatičnost bílého bodu je nastavená na hodnotu CIE iluminantu D65 (6500 K, přesněji x=0.3127, y=0.3290). Chromatičnost fosforů obrazovky odpovídá standardu ITU-R BT.709/2:
x | y | |
---|---|---|
červená | 0.6400 | 0.3300 |
zelená | 0.3000 | 0.6000 |
modrá | 0.1500 | 0.0600 |
Pro převod mezi sRGB a CIE XYZ souřadnicemi platí následující vztahy:
Nejprve je při převodu ze sRGB do CIE XYZ potřeba RGB hodnoty normalizovat na rozsah od 0 do 1. Tj. např. pro osmibitová data se provede
Po té je třeba aplikovat nelineární transformaci kompenzující nelinearní tonální charakteristiku monitoru,
Na závěr je nutno provést lineární transformaci odpovídající změně primárních barev (viz minulý díl seriálu):
Poznámka: Ačkoli exponent ve výše uvedené nelineární transformaci je 2.4, dá se říct, že gama prostoru sRGB je 2.2. Křivka nelineární tonální charakteristiky sRGB prostoru je totiž mnohem bliší křivce g(t)=t2.2 než t2.4, viz Obr. 4. V praxi se dokonce někdy používá zjednodušený sRGB prostor, kde namísto originální nelineární transformace f(t) se používá g(t)=t2.2.
Obr. 4 - Srovnání gama křivek: vlevo nelineární sRGB charakteristika f(t) (červeně) a t2.2 (zeleně), vpravo f(t) (červeně) a t2.4 (modře). |
Inverzní transformace se provede následovně:
Výsledné hodnoty se na závěr zaokrouhlí na celá čísla, čísla menší než 0 se nahradí 0 a čísla větší než 255 se nahradí 255.
Více se o sRGB můžete dozvědět na webu www.srgb.com. Kompletní specifikace sRGB prostoru jsou obsažené ve standardu vydaném International Electrotechnical Comission IEC 61966-2-1.
3. Jaký je rozdíl mezi vránou
Na závěr se ještě podívejme na to, jak se od sebe navzájem liší některé nejběžněji používané RGB prostory. Začněme nejprve základními specifikacemi.
prostor | gama | bílý bod |
červená | zelená | modrá | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
x | y | Y | x | y | Y | x | y | Y | |||
Adobe RGB (1998) | 2.2 | D65 | 0.6400 | 0.3300 | 0.297361 | 0.2100 | 0.7100 | 0.627355 | 0.1500 | 0.0600 | 0.075285 |
Apple RGB | 1.8 | D65 | 0.6250 | 0.3400 | 0.244634 | 0.2800 | 0.5950 | 0.672034 | 0.1550 | 0.0700 | 0.083332 |
CIE RGB | 2.2 | E | 0.7350 | 0.2650 | 0.176204 | 0.2740 | 0.7170 | 0.812985 | 0.1670 | 0.0090 | 0.010811 |
ColorMatch RGB | 1.8 | D50 | 0.6300 | 0.3400 | 0.274884 | 0.2950 | 0.6050 | 0.658132 | 0.1500 | 0.0750 | 0.066985 |
Ekta Space PS5 | 2.2 | D50 | 0.6950 | 0.3050 | 0.260629 | 0.2600 | 0.7000 | 0.734946 | 0.1100 | 0.0050 | 0.004425 |
Pro Photo RGB | 1.8 | D50 | 0.7347 | 0.2653 | 0.288040 | 0.1596 | 0.8404 | 0.711874 | 0.0366 | 0.0001 | 0.000086 |
sRGB | ≈2.2 | D65 | 0.6400 | 0.3300 | 0.212656 | 0.3000 | 0.6000 | 0.715158 | 0.1500 | 0.0600 | 0.072186 |
Wide Gamut RGB | 2.2 | D50 | 0.7350 | 0.2650 | 0.258187 | 0.1150 | 0.8260 | 0.724938 | 0.1570 | 0.0180 | 0.016875 |
Poznámka: Color Match RGB je jedním z tradičních „monitorových“ RGB prostorů. Jeho gamut poměrně slušně pokrývá gamut ofsetového tisku. Pro Photo RGB je dílem firmy Kodak. Ekta Space PS5 RGB navrhnul Joseph Holmes pro kvalitní záznam skenů z diapozitivů.
S CIE iluminanty D50 a D65 jsme se již setkali. Modelují denní světlo o barevné teplotě 5000 respektive 6500 K. Standardní iluminant E je achromatický iluminant, který má všechny viditelné frekvence zastoupené rovnoměrně. Zde jsou, pro úplnost, příslušné hodnoty chromatičnosti:
x | y | |
---|---|---|
D50 | 0.3457 | 0.3585 |
D65 | 0.3127 | 0.3290 |
E | 1/3 | 1/3 |
Následující tabulka obsahuje kvantitativní porovnání gamutů. Objem je měřený v CIELAB souřadnicích. V sloupci pokrytí barev je uvedeno, kolik procent gamutu reálných barev daný gamut pokrývá. Efektivnost kódování udává, kolik procent daného gamutu připadá na reálné barvy (tj. není vyplýtvaných na imaginární barvy).
prostor | velikost (objem) |
pokrytí barev (%) |
efektivnost kódování (%) |
---|---|---|---|
Lab (TIFF) | 2,381,085 | 97.0 | 35.1 |
Adobe RGB (1998) | 1,208,631 | 50.6 | 100.0 |
Apple RGB | 798,403 | 33.5 | 100.0 |
CIE RGB | 1,725,261 | 64.3 | 96.1 |
ColorMatch RGB | 836,975 | 35.2 | 100.0 |
Ekta Space PS5 | 1,623,899 | 65.7 | 99.5 |
Pro Photo RGB | 2,879,568 | 91.2 | 87.3 |
sRGB | 832,870 | 35.0 | 100.0 |
Wide Gamut RGB | 2,164,221 | 77.6 | 91.9 |
Vidíme zde, že velikost gamutu (a potažmo pokrytí gamutu reálných barev) a efektivnost kódování jdou proti sobě. Volba optimální kombinace je tudíž vždy věcí kompromisu.
Pro zajímavost se podívejme ještě také na to, jak tyto prostory pokrývají barevný gamut fotografických filmů a papírů. (Údaje jsou opět v procentech).
prostor | Kodak | Fuji | ||
---|---|---|---|---|
dia (Ektachrome) | papír (Ektacolor) |
dia (RDP 2) | papír (FA-C) |
|
Adobe RGB (1998) | 97.35 | 98.48 | 94.79 | 100.00 |
Apple RGB | 87.88 | 88.64 | 87.85 | 93.75 |
CIE RGB | 94.32 | 94.70 | 95.14 | 96.18 |
ColorMatch RGB | 89.39 | 89.77 | 88.19 | 94.10 |
Ekta Space PS5 | 100.00 | 99.62 | 98.26 | 100.00 |
ProPhoto RGB | 100.00 | 100.00 | 100.00 | 100.00 |
sRGB | 89.02 | 90.15 | 86.81 | 93.75 |
Wide Gamut RGB | 99.62 | 100.00 | 99.65 | 100.00 |
Na závěr ještě grafické srovnání. Následující obrázky zachycují gamuty v CIELAB souřadnicích, při pohledu ze směru osy L*. Tmavší čtverec je základna kvádru představujícího gamut prostoru Lab s celočíselným kódováním podle grafického formátu TIFF, červená křivka je hranice gamutu reálných barev.
|
|
|
|
|
|
|
|
Obr. 5 - Gamuty různých RGB prostorů v CIELAB souřadnicích. |
Poznámka: V literatuře se často setkáme s grafickým srovnáváním gamutů formou Maxwellových trojúhelníků v chromatických souřadnicích CIE xy. Takovéto srovnání může být dosti zavádějící. Jednak protože gamuty jsou ve skutečnosti trojrozměrné objekty, ale hlavně protože CIE xy souřadnice jsou vysoce perceptuálně nerovnoměrné a rozdíly mezi gamuty jsou tak značně zkreslené.
Údaje a ilustrace v této závěrečné části (a také na Obr. 3) jsou převzaté ze stránek Bruce Lindblooma, www.brucelindbloom.com. Kromě dat uvedených zde tam můžete najít i informace týkající se dalších RGB prostorů, např. prostorů používaných pro barevnou televizi (NTSC, PAL/SECAM), ale také optimizovaných prostorů navrhovaných různými autory (Best RGB, Bruce RGB, Beta RGB, aj.), a spoustu dalších věcí z oblasti koloristiky a správy barev, včetně barevných kalkulátorů apod.
Poděkování: Tímto si dovoluji poděkovat Bruci Lindbloomovi za to, že mi svoje materiály dovolil použít.