Barva je jeden z klíčových pojmů všech oblastí počítačové
grafiky. Z fyzikálního hlediska jde o vlnovou délku světla, které danou
barevnou informaci zprostředkovává. V běžném životě jsme zvyklí vnímat
barvy víceméně intuitivně. Konkrétní barvu většinou popisujeme pomocí nejbližší
z běžných barev (červená, modrá, oranžová...), případně přidáme nějaké
přídavné jméno (sytá, světlá, tmavá...). Pokud však chceme s barvami pracovat
na počítači, musíme její hodnotu specifikovat poněkud exaktněji. Jak už
to u počítače bývá, znamená to zadat číslo, resp. několik čísel. To, jak
se budou tato čísla interpretovat na konkrétní barvu, popisuje tzv. barevný
model.
Nejjednodušším typem barevného modelu je model založený
na kombinaci tří základních barev. Jako základní barva může být vybrána
libovolná barva, ale pokud má model pokrývat co nejrozsáhlejší spektrum
barev, je nutné je volit obezřetně. V současnosti se nejvíce používají
dva takové modely. Jsou to modely RGB a CMY.
Vytváření barev pomocí míchání tří základních barev
je sice z technického hlediska velmi jednoduché, protože je přímo odvozeno
ze stávajících technologií zobrazování, ale není příliš blízké lidskému
intuitivnímu pohledu na barvy. Tento nedostatek překlenují barevné modely,
které pracují s odstínem barvy, plus dalšími dvěma informacemi typu světlost,
sytost apod. V této oblasti jsou nejznámější modely HSV a HLS.
V praxi pak většinou grafické systémy umožňují uživateli
nastavovat barvu v některém z těchto „intuitivních“ modelů a pro účely
zpracování a zobrazování je převádějí na nějaký „technický“ model (v drtivé
většině případů RGB).
Model RGB (Red Green Blue)
V tomto barevném modelu se barva určuje pomocí zastoupení
tří základních barev: červené, zelené a modré. Je odvozen ze způsobu, jakým
obrazovka (ať už počítačová nebo televizní) zobrazuje barvy. Jeden bod
na obrazovce je tvořen optickým splynutím tří různých bodů – červeného,
zeleného a modrého. Poměr intenzit těchto bodů vytváří konkrétní barvu.
Tento barevný model je aditivní, což znamená, že výsledná barva je tím
světlejší, čím vyšší je intenzita jednotlivých složek. Plná intenzita všech
tří barev pak dává bílou.
Barva v modelu RGB je reprezentována třemi hodnotami
z intervalu <0, 1> (vžil se termín barevný vektor). Dosti často se také
používá ukládání v celočíselném rozsahu <0, 255>. Celý barevný rozsah
je pak možné zobrazit pomocí jednotkové RGB krychle (obr 1a). Černá se
nachází v bodě (0, 0, 0), bílá v bodě (1, 1, 1). Na jednotlivých osách
leží tři základní barvy, ve zbylých vrcholech pak barvy doplňkové.
V praxi je možné setkat se s označením RGBA. Tato
zkratka označuje barevnou informaci RGB doplněnou o informaci o průhlednosti
(složka A, tzv. alfa-kanál). Ta se používá při kombinaci více obrázků.
Nejde tedy o rozšíření barevného modelu, ale o jeho doplnění o další informaci.
Model CMY (Cyan Magenta Yellow)
Barevný model RGB vznikl především pro grafické displeje.
Jeho vlastnosti odpovídají směšování barevných světel. Je však nevhodný
pro zařízení pracující s barevnými pigmenty, tedy především pro tiskárny.
Tento problém dal vzniknout modelu CMY, který je určitým komplementem k
RGB modelu. Tři základní barvy: azurová, fialová a žlutá, jsou právě doplňkovými
barvami RGB modelu. Model CMY je subtraktivní. To znamená, že se zvyšující
se intenzitou složek výsledná barva tmavne. To odpovídá běžné zkušenosti
s mícháním nátěrových barev.
Vlastní číselná reprezentace barvy je obdobná, jako
u modelu RGB. Podobně je také možné reprezentovat jej pomocí jednotkové
krychle, změní se jen zabarvení jednotlivých vrcholů.
Z čistě teoretického hlediska model CMY pokrývá
celé barevné spektrum a měl by tiskárnám stačit. Z praktických důvodů se
však rozšiřuje ještě o čtvrtou složku K (Black). Tato složka určuje intenzitu
černé barvy ve výsledné barvě. Pro toto rozšíření mluví dva důvody: jednak
je obtížné získat směsí základních barev skutečně černou, většinou výsledek
vypadá jako nějaká tmavá hnědo-fialová odpudivá záležitost. Druhý důvod
je, že černá je obvykle při tisku barvou nejčastější (např. text) a je
zbytečné vyplýtvat na ni třikrát více inkoustu, než je nutné. Takto rozšířený
barevný model se označuje CMYK.
Model HSV (Hue Saturation Value)
Také tento model používá k určení barvy tří složek,
Nejde však již o základní barvy. Tyto složky se nazývají odstín, sytost
a jasnost. Odstín určuje převládající spektrální barvu (od červené po fialovou),
sytost je dána množstvím příměsi ostatních barev. Množství bílého světla
v barvě pak určuje jasnost. Tento přístup je lidskému chápání barev mnohem
bližší. Člověk obvykle ví, jaký odstín hledá a poté ho upraví pomocí sytosti
a jasu na požadovanou úroveň.
K číselné reprezentaci modelu se opět používá třísložkový
barevný vektor. Prostorovým zobrazení barevného rozsahu daného HSV modelem
však již není krychle. HSV model se reprezentuje jako šestiboký jehlan,
postavený „na špici“ (obr 1b). Vrchol jehlanu je tvořen černou barvou.
Barvy spektra se nalézají na obvodu podstavy. Každý vrchol udává jednu
základní, resp. hlavní doplňkovou barvu v pořadí: červená, žlutá, zelená,
azurová, modrá, fialová. Ve středu podstavy se nachází bílá barva. Význam
tří složek barevného modelu je následující. Odstín je dán úhlem v rozsahu
<0°, 360°>. Ten určuje odklon od spojnice červená-bílá a tím i barvu
ve spektru. Vzdálenost od osy jehlanu určuje sytost barvy (odstíny šedé
leží na ose jehlanu – mají nulovou sytost). Konečně výška (vzdálenost od
vrcholu) odpovídá jasnosti barvy.
Model HSV je mnohem intuitivnější než technicky
orientované modely, ale má některé drobné nedostatky. Např. z hlediska
výpočtů by bylo mnohem vhodnější, kdyby se bod, probíhající barevné spektrum
pohyboval po kružnici a ne po šestiúhelníku. Druhým nedostatkem je to,
že největší „výběr“ barev máme při nejvyšší hodnotě jasu. To neodpovídá
způsobu, jakým barvy vnímá lidské oko, které je nejcitlivější při středních
hodnotách jasu.
Model HLS (Hue Lumination Saturation)
Zmíněné nedostatky modelu HSV se snaží odstranit
model HLS. Význam jednotlivých složek je velmi obdobný: odstín, světlost
a sytost. Ve skutečnosti jde pouze o formální odlišení. Rozdílný je ovšem
způsob mapování těchto hodnot na příslušnou barvu.
Prostorovým zobrazením barevného modelu HLS jsou
dva zrcadlově souměrné kužely, sdílející stejnou podstavu (obr 3). Barevné
spektrum se nachází po obvodu společné podstavy. Sytost je dána vzdáleností
od osy kuželů, světlost pak výškou, resp. vzdáleností od vrcholu spodního
kužele (černá barva). Konkrétní barevný odstín ve spektru je opět určen
úhlem. Filozofie modelu HLS je tedy stejná, jako u modelu HSV, ale s ohledem
na výše zmíněné požadavky (výpočetně jednodušší kružnice a maximální rozsah
pro střední hodnotu jasu).
Barevné modely pro televizi a video
Poněkud méně často se na počítači můžeme setkat s
barevnými modely používanými v oblasti televizní a video techniky. Objevují
se především tam, kde se tato technika stýká s počítači, tj. televizní
karty, video grabbery apod. Využívají jich také některé techniky ztrátové
komprese obrazu a videa (JPEG, MPEG). Společnou vlastností těchto modelů
je to, že oddělují jasovou složku informace od barevné. Lidské oko je totiž
mnohem citlivější na změnu jasu, než na změnu barevného odstínu. V televizních
video modelech se toho běžně využívá například tak, že jasové informace
jsou přenášeny s vyšším rozlišením (větší počet bitů), než informace o
barvě, nebo je jedna barva společná vždy pro dva sousedící body. Další
výhodou oddělení jasu od barvy je to, že je snadné takový signál zobrazovat
i na černobílé obrazovce.
Typickým představitelem těchto modelů je model YUV,
používaný normou PAL. Složka Y představuje jas a složky U a V slouží k
záznamu barevného odstínu. Podobným modelem je model YCbCr, který je součástí
normy SECAM a je rovněž využíván v kompresní metodě JPEG.
Převody mezi jednotlivými barevnými modely
Vzájemný převod mezi modely RGB a CMY je triviální. Vzhledem k tomu, že jeden model je komplementem druhého lze barvu v modelu RGB převést na odpovídající barvu v modelu CMY následovně: