FAV-ZCU/KIV UPG/04. Základní bitmapová grafika.md

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)

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 jako 8192 \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