9.4 KiB
9.4 KiB
Základní bitmapová grafika
Bitmapová grafika
Bitmapový (rastrový) obrázek
- vytvářen většinou vstupních zařízení (fotoaparát, kamera, scanner, ...)
- vzniká také rasterizací vektorové grafiky
- obrázek je složen z matice MxN diskrétních pixelů
- interně jednorozměrné pole
- pro přístup k pixelu [i, j] nutno spočítat index
Pixel = picture element = obrazový element
- nese informaci o barevné hodnotě
- přímé uložení
- většina používaných formátů
- barevná hodnota uložena na fixní počet bitů (nejčastěji 24)
- nepřímé uložení
- hodnota pixelu v poli je index do tabulky barev (palety)
- vhodné pro obrázky s malým počtem unikátních barev (GIF)
- nejčastěji 256 nebo 4096 unikátních barev + 8/12 bitový index
- mnoho bitmapových formátů či knihoven z důvodu urychlení požaduje, aby 1. pixel i-tého řádku začínal vždy na začátku bytu - za posledním pixelem i-tého řádku tedy může být několik nevyužitých bitů
Modelování reálného světa
Cíl modelování
- zachytit reálnýá svět vstupním zařízením
- vytvořit umělý model inspirovaný reálným světem
- zobrazit model (obrázek) na výstupním zařízení
Fotorealistické modelování
- snaha, aby lidské vnímání světa počítačové grafiky bylo totožné s vnímáním reálného světa
Lidské oko
- světelné zdroje emitují fotony
- pokud fotony viditelného světla dopadnout na sítnici oka, dochází k vizuálnímu vjemu
- sítnice (retina)
- tyčinky
- extrémní citlivost (už při 1 fotonu)
- nejcitlivější na modrozelené světlo (cca 505 nm)
- dlouhá setrvačnost
- noční vidění
- čípky
- málá citlivost (až při stovkách fotonů)
- denní vidění
- krátká setrvačnost
- tři typy: L, S, M (každý na jinou vlnovou délku)
- tyčinky
Jas
- skalární veličina
- ovlivněn vlnovou délkou (modrá žárovka se jeví tmavší než bílá)
- oko vnímá hodnoty od tisícín po tisíce
Cd \cdot m^{-2}
- současná zařízení (LCD, tiskárny) však produkují hodnoty jasu jen velmi omezené
- kontrast
- = poměr mezi nejsvětejší a nejtmavší hodnotou, kterou zařízení zvládne
- výrobci uváděné kontrasty jsou obvykle nerealistické
- v praxi jsou kontrasty úplně jinde
- důsledek: černou a bílou na různých zařízeních vnímáme různě
- jas není vnímán lineárně (
L = I^{0.4}
) - jak vnímán v kontextu okolí
Barva
- fotony různé vlnové délky vnímány jako různě barevné
- výsledná barva složena mozkem podle podráždění jednotlivých typů čípků
- barva vnímána v závislosti na kontextu
- relativní podráždění čípků: hodnoty L, M, S
- vnímaný jas B = L + M + S
- vnímaná barevnost C = (L/B, M/B, S/B)
- důsledek: lidské oko je podstatně citlivější na jas než na barvu
Matematická reprezentace barvy
CIE xy
- standardizovaný matematický model barevného prostoru
- libovolný barevný odstín popsatelný dvojicí reálných čísel x, y
- směs různých vlnových délek
- používá se pro definování alternativních reprezentací barvy
Ideální obrazovka
- 1 zobrazovací element může vysílat (emitovat) fotony o libovolné vlnové délce
- rychlost emitování fotonů lze velmi dobře řídit (libovolný jas)
- fyzikálně obtížně realizovatelné
Současné reálné obrazovky
- pixel zobrazován několika málo zobrazovacími elementy
- realističnost zobrazení závisí zejména na
- volbě typů zobrazovacích elementů, tj. jaké vlnové délky mají fotony, které elementy emitují (barevný rozsah)
- schopnosti zobrazovacích elementů emitovat různě velké množství fotonů za jednotku času (jasový rozsah)
- pro napodobení většiny reálných barev postačí červený (R), zelený (G) a modrý (G) zobrazovací element (RGB barevný prostor)
- počet fotonů, který má element emitovat za jednotku času, určen relativně na intervalu 0.0 - 1.0
- problém
- volba základních barev R, G, B se liší podle výrobce
- různá zařízení mají různý zobrazovací gamut
- částečným řešením je zavedení standardizovaného teoretického barevného systému RGB
- dochází ke transformaci teoretických hodnot na hodnoty displeje
- ne vždy musí být barva na zařízení reprodukovatelná
sRGB
- = standardizovaný barevný systém
- základní barvy odpovídají "průměrným" základním barvám v zobrazovacích zařízeních
- příliš omezený pro moderní zařízení
scRGB
- barevný sytém od Microsoftu a HP
- definice shodná s sRGB
- hodnoty r, g, b omezeny na -0.5 až 7.5 místo 0.0 až 1.0
- bohatší barvy
Tiskárny
- zcela odlišný přístup (papír je bílý, potřeba modifikovat množství odraženého světla)
- barviva CMY
- C (cyan, azurová) - pohltí R
- M (magenta, purpurová) - pohltí G
- Y (yellow, žlutá) - pohltí B
- barviva nejsou čistá, smíšení nedokonalé
- z těchto barviv nelze namíchat černou - vyřešeno přidáním K (černé)
CMYK
- barevný prostor o trojici/čtveřici čísel (c, m, y, k)
- čistota barev podle výrobce
Barva nemůže být reprezentována v počítači jedním univerzálním způsobem.
- barvy je možné mezi systémy převádět
- může dojít ke ztrátě v důsledku odlišnosti gamutů
Barevné systémy
RGB
- barevný systém používaný zobrazovacími i vstupními zařzeními
- nativně užíván v bitmapových obrázcích
- hojně rozšířený (jako sRGB)
- problém: specifikace barvy není intuitivní
CMY(K)
- pro tiskové účely
HSV
- hue - odstín (0 - 360 stupňů)
- saturation - sytost (0 - 1)
- value - jas (0 - 1)
- jednodušší na zadání
Grafické knihovny obvykle umožňují zadáním RGB i HSV složek.
YCbCr, YCoCg, CIE Lab
- jasová složka separována (Y, L)
- barevnost ve zbývajících složkách
- výhodné pro kompresní účely (využívá citlivosti oka na jas)
Ukládání barvy
- potřeba uložit v podporovaném formátu (omezená přesnost)
- desetiné datové typy
- přesnější
- celočíselné datové typy
- často používané
- omezenější přesnost, ale úspornější
- fixní počet bitů
8 bitů (byte)
- rozsah 0 - 255
- u RGB je to 16.7 miliónu různých barev
- nejrozšířenější, pro většinu aplikací postačuje
High-Color
- RGB barva ve 2 bytech
- dvě možnosti
- jeden bit volný (např. pro průhledný/neprůhledný)
- 5 bitů pro R a B, 6 bitů pro G
- jen 32768 nebo 65536 barev
scRGB
- hodnota
x \in (-0.5, 7.5)
uložena na 16 bitech jako8192 \cdot x + 4096
- 48 bitů na pixel (případně 64 při použítí 16 bitů pro průhlednost)
12, 14 nebo 16 bitů
- 4096, 16384 nebo 65536 úrovní
- obvykle ukládáno na 2 byty
- nejvyšší bity se nepoužijí
- používá se např. ve filmovém průmyslu
Digitalizace barvy
- vstupní zařízení obsahují fotocitlivé senzory na základní barvy (nejčastěji RGB)
Diskretizace jasového rozsahu
- proces kvantizace
- jasový rozsah rozdělen na m úrovní
- skutečná hodnota zaokrouhlena na hodnotu nejbližší úrovně
Uniformní diskretizace
- nejjednodušší, nebere v úvahu lidské vnímání
Neuniformní diskretizace
- jasová hodnota podrobena gama korekci
L = I^{0.4}
- ukládám L místo I (skutečná hodnota jde zjistit jako
I = L^{2.5}
) - prováděno automaticky většinou zařízení
- menší chyba reprezentace obrazu
Formáty bitmapové grafiky
- typicky obsahují hlavičku následovanou daty (pixely)
- hlavička
- signatura formátu
- rozlišení obrázku
- počet barevných složek a počet bitů každé
- způsob uložení dat (komprese, little/big endian)
BMP
- podporován většinou graf. knihoven
- základ (nejrozšířenější část)
- bezeztrátový formát
- RGB barevný systém
- podpora palety o 1, 16 nebo 256 barev
- podpora přímé reprezentace barev
- 16 bpp (HighColor), 24 bpp (TrueColor) nebo 32 bpp (TrueColor)
- podpora průhlednosti v režimu 32 bpp (není standardní)
- data mohou být i obrázek v PNG nebo JPEG
GIF
- podporován většinou graf. knihoven
- bezeztrátový formát
- data komprimována LZW slovníkovou metodou (delší sekvence nahrazeny kratšími)
- RGB barevný systém s paletou 2, 4, 8, 16, 32, 64, 128 nebo 256 barev
- podpora průhlednosti (binární) a animací
- malá velikost, vhodné pro internet
PNG
- mnoho aplikací podporuje pouze částečně
- bezeztrátový formát
- data komprimovaná slovníkovou metodou
- RGB(A) barevný systém
- paleta o 2, 4, 16 nebo 256 barvách
- přímá reprezentace o 1, 2, 4, 8 nebo 16 bitů na barevnou složku
- podpora úplné průhlednosti
- vhodné pro rastrovanou vektorovou grafiku
- nevhodné pro zašumělá data (fotografie)
JPEG
- ztrátový formát (využití nedokonalosti lidského zraku)
- degradace kvality obrazu
- kompresní poměry 5:1 až 20:1
- velká komprese = viditelné artefakty
- barevný systém YCbCr
- přímá reprezentace barvy, TrueColor
- komprese založená na diskrétní kosinové transformaci následované kvantizací a RLE + slovníkovou kompresní metodou
- nepodporuje průhlednost
- vhodné pro fotografie určené k archivaci
- JPEG (s EXIF) obvyklým výstupem z digitálních fotoaparátorů
- nevhodné pro uložení obrazu, který
- bude postupně upravován
- bude rozpoznáván počítačem