Počítačová grafika
Pixely • pixel (Picture Element) • nejmenší zobrazitelná část obrazu • počet bitů na pixel udává počet možných barev
Pixely, barevné palety a rozptylování barev
(počet bitů roste přímo úměrně počtu barev)
• nejčastější: • 16,8 miliónů barev (2563) • 256 stupňů šedi • vznik analogií
Jana Dannhoferová (
[email protected])
Ústav informatiky, PEF MZLU 2
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Barevná hloubka pixelu
Barevná hloubka pixelu
• počet bitů, které reprezentují daný pixel, určuje počet barev, kterých může pixel nabýt:
Počet možných barev
• čím větší počet bitů, tím vetší možný počet barev
• hloubkou pixelu se většinou rozumí právě počet bitů nutných pro reprezentaci jeho barvy • více bitů na jeden pixel také znamená větší paměťovou náročnost uložení grafické informace!
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
3
Omezená barevná škála
Obvyklé označení
2
1 bit
Mono Color
16
4 bity
základní
256
8 bitů = 1 byte
VGA
32768
15 bitů
Low Color High Color
65536
16 bitů = 2 byty
16 777 216
24 bitů = 3 byty
True Color
4 294967 296
32 bitů
Super True Color
281 474 976 710 565
48 bitů
Deep Color
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
4
Redukce počtu barev
• skutečný počet barev na pixel se někdy liší od těch, které mohou být zobrazeny na výstupním zařízení (ztráta barev a kvality) • zařízení s omezenou škálou zobrazitelných odstínů • nutno stanovit: • které barvy z nich vybereme do např. 256-ti prvkové barevné palety • jak bude naloženo s barvami, na které se již nedostalo • řešením může být standard tzv. indexovaných barev (hovoříme o tzv. barevných paletách) © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Hloubka pixelu
5
• Problém: Jak zobrazit obraz s více odstíny šedi na zařízeních umožňujících zobrazovat pouze omezený rozsah hodnot nebo pouze černou a bílou (tiskárny) tak, aby byl dosažen přibližně stejný vjem?
• polotónování • techniky, které dokáží z několika barev vytvořit iluzi bohaté barevné škály • u tiskáren
• rozptylování • polotónování je jejím speciálním případem • vhodné pro zobrazení obrázku © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
6
1
Rozptylovací techniky
Metoda konstantního prahu
• pro zpracování černobílých i barevných obrázků • barevné rozptylování je speciálním případem rozptylování obrazu ve stupních šedi • zobrazení odstínů šedi na dvouúrovňovém zařízení • Příklad: Obrázek obsahující 16(=24) odstínů šedi chceme vykreslit na displeji, který zobrazuje pouze černou a bílou.
1) prahování • stupně šedi černobílý obraz • zobrazení bodů s intenzitou větší než hodnota prahu P (porovnáváme vstup se zadanou hranicí) • stejná velikost obrazu • špatné znázornění obrazového vjemu (ostře černobílý obraz)
if (I[x,y]
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
7
Metoda konstantního prahu
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
8
Metoda konstantního prahu
9
Rozptylovací techniky
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
10
Náhodné rozptýlení
2) náhodné rozptýlení • zachování původní velikosti obrazu • větším plochám dodává vzhled drsného povrchu • funkce RANDOM – generátor náhodných čísel <0,15> if (I[x,y]
11
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
12
2
Náhodné rozptýlení
Rozptylovací techniky 3) maticové rozptýlení • generování různých odstínů šedi podle pravidelných, předem daných vzorků složených z bílých a černých bodů • rozptylovací matice velikosti nxn • vysoká kvalita zachování informace • dva případy: • 1 bod vstupního obrazu = vzor (matice) • 1 bod vstupního obrazu = 1 bod vzoru
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
13
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
14
Rozptylovací techniky
Rozptylovací techniky
a)dochází ke zvětšení velikosti obrazu • 1 pixel je nahrazen skupinou pixelů výsledných
a)dochází ke zvětšení velikosti obrazu • 1 pixel je nahrazen skupinou pixelů výsledných
• pro generování různých odstínů šedé barvy se používají předem dané vzory složených z bílých a černých bodů
• pro generování různých odstínů šedé barvy se používají předem dané vzory složených z bílých a černých bodů
(jeden bod obrazu je nahrazen vzorem)
• Příklad: Rozptylovací matice 2x2 pro vstupní intenzitu <0,4>. Pro větší škálu vstupních intenzit je nutno použít matice vyšších řádů!
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
(jeden bod obrazu je nahrazen vzorem)
• Příklad: Rozptylovací matice 2x2 pro vstupní intenzitu <0,4>. Pro větší škálu vstupních intenzit je nutno použít matice vyšších řádů! 15
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Rozptylovací matice
16
Rozptylovací matice • Příklad: Rozptylovací matice 4x4 pro vstupní intenzitu <0,15>.
M=
0 6 13 11 9 15 4 2 14 8 3 5 7 1 10 12
• Poznámka: Rozptylovací matice definují tzv. magické čtverce. © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
17
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
18
3
Magické čtverce
Magické čtverce
Matice displeje
(tzv. křížkový stínovací vzor)
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
19
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Rozptylovací techniky
(jeden bod obrazu je nahrazen jedním bodem ze vzoru)
• Otázka: Který prvek matice 2x2 nebo 4x4 použít jako prahovou hodnotu? i = x mod n + 1, j = y mod n + 1 if (I[x,y]
Rozptylovací techniky
barevné maticové rozptýlení • různé matice pro různé barevné složky • vzory se natáčejí, aby se potlačila opticky zřetelná pravidelnost matic • například: • • • •
černá: úhel 45º fialová: úhel 75º žlutá: úhel 90º modrozelená: úhel 105º
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
22
Floyd-Steinberg
4) distribuce chyby • zachování stejné velikosti obrazu • rozdíl skutečné intenzity a intenzity zobrazovaného bodu (ztráta) je distribuován na okolní pixely • chyba se započítá sousedům a je „tlačena“ vpřed (efekt vlnovek) • pixely nutno zpracovávat po řádcích (nebo sloupcích), ale ne libovolně!
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
20
Rozptylovací techniky
b)nedochází ke zvětšení velikosti obrazu • hodnoty v matici určují, při jaké velikosti vstupního odstínu šedi se na výstupu objeví v odpovídajícím místě 1 (bílá) • prvek matice je použit jako prahová hodnota
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Matice tiskárny
(tzv. puntíkový vzor)
• metoda distribuce chyby • pravidla pro rozdělení chyby do okolních pixelů byla vytvořena empiricky (jsou známy asi 4 různé způsoby distribuce)
• Příklad: Cin = 5 Cout = 0 (zanedbanou hodnotu 5 přičtu k nejbližším okolním pixelům) Cin = 11 Cout = 1 (zanedbanou hodnotu 4 (=15-11) odečtu od nejbližších okolních pixelů)
23
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
24
4
Floyd-Steinberg
Floyd-Steinberg
zpracované pixely 7/16 1/16 3/16 5/16 • Poznámka: Před vykreslením každého pixelu je ke vstupní hodnotě Cin přičtena či odečtena chyba z okolních pixelů (paměť chyby). Je zřejmé, že chyby jsou neceločíselné! © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
25
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
26
Barevné palety
Floyd-Steinberg
• pixel nese barevnou informaci v určitém barevném modelu (nejčastěji RGB) • řešením může být standard tzv. indexovaných barev (hovoříme o tzv. barevných paletách) • výběr a parametry barev se většinou určují pro každý obraz zvlášť (podle jeho barevného ladění) • barvy jsou uloženy v tabulce, která je součástí souboru • Např. • 256 barev (8 bitů na pixel, 28) • 64 barev (6 bitů na pixel, 26) © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
27
Barevné palety
28
Barevné palety
• Příklad: Vycházejme ze situace, kdy vstupní barevné informace jsou vypočítávány v kvalitě 24 bitů na pixel a mají být zobrazeny na zařízení s 8 bity na pixel. • Předpoklad: 8 bitů na pixel je indexem do palety, ve které je možné nastavit libovolných 256 odstínů z 16,8 miliónů možných barevných kombinací.
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
• barevná paleta (colormap) • jednorozměrné pole hodnot barev • slouží k redukci počtu barev • grafický soubor s paletou obsahuje popis palety a vlastní data (barvy jsou určeny indexem do palety) • Otázka: Kdy je vhodné ukládat data jako index do palety?
29
• rozlišujeme různé typy palet: • převod na odstíny šedi • přednastavené (univerzální) barevné palety • adaptované barevné palety © J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
30
5
Univerzální palety
Univerzální palety • paleta 5-6-5 • 32x64x32 barvy – 16 bitů (High Color)
• paleta 3-3-2 • 8x8x4 odstínů barvy – 8 bitů
(maximálně 65 536 barev)
(256 barev/zástupců do palety)
• rovnoměrný výběr barev z krychle RGB
(ale krychli nemůžeme ve 3 osách rozdělit rovnoměrně!)
• pro obrazy s různým barevným složením • dělení na řezy:
(maximálně 32 768 barev)
• všechny 3 barvy mají hloubku pouze 5 bitů • paleta 7-12-3 • zohledňuje různou citlivost oka na barevné složky (128x4096x8)
• 8 odstínů (23) pro červenou • 8 odstínů (23) pro zelenou • 4 odstíny (22) pro modrou
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
31
Univerzální palety
33
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
34
Adaptivní palety • v programu Adobe Photoshop • Obraz / Režim / Indexované barvy • Paleta: webová, rovnoměrná, systémová (Win, Mac), perceptuální, selektivní, adaptivní, jiná
tvorba histogramu vstupních odstínů oblasti blízkých barev vstupních odstínů nutno nalézt 256 nejvhodnějších zástupců jedna položka palety = jedna oblast
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
32
• paleta optimalizovaná pro jeden konkrétní obraz • odpovídá rozložení barevných odstínů v konkrétním obraze • např. obrázky ve formátu GIF • výpočet palety bývá časově i paměťově náročný • možností, jak vybrat barvy do palety, je mnoho • základní metody: • shora – dolů (dělení, výběr z množiny použitých barev např. podle četnosti) • zdola – nahoru (sdružování příbuzných barev do skupin)
Adaptivní palety • • • •
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
Adaptivní palety
• nevýhody univerzálních palet: • nerespektují barevnou strukturu konkrétního obrazu • obsahují i takové odstíny, které se v obrazu vůbec nevyskytují (případně se vyskytují minimálně)
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
• jedna barva má pouze 32 nebo 64 odstínů • paleta 5-5-5 • 32x32x32 barvy – 16 bitů (High Color)
35
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
36
6
Literatura • Beneš, B., Sochor, J., Žára, J. Algoritmy počítačové grafiky. ČVUT: Praha, 1996. • Beneš, B., Felkel, P., Sochor, J., Žára, J.: Moderní počítačová grafika. Computer Press: Brno, 2004. • Sochor, J.: Základy počítačové grafiky. FI MU: Brno, 2001.
© J. Dannhoferová, Počítačová grafika - Barevné palety a rozptylování
37
7