Bitmapová grafika 1. Pixel Pixel je základem bitmapové grafiky. Není to nic jiného, než malý bod (čtverec), který má přesně definovanou velikost a barvu. Pixel může nabýt jen jedné barvy. Několik pixelů vedle sebe vytváří výsledný obraz. Protože pixel může být v dnešní době velmi malý (dříve to nebylo možné, protože to nezvládala technologicky zařízení), není ve výsledném obrázku vidět. Proto se pak na první pohled zdá, že je obrázek celistvý. Všimněte si, že pixel je čtverec, který má vždy jen jednu barvu. Pokud je jich vedle sebe více stejné barvy, pak může nastat klam, protože vidíme obdélník stejné barvy. Je třeba si ale uvědomit, že to jsou dva pixely stejné barvy vedle sebe. 2. Bitmapová grafika Základním principem bitmapové grafiky je, že každý uložený obrázek se skládá z pixelů a tyto jednotlivé body (pixely) jsou pak poskládány vedle sebe a tvoří obraz. Jeden pixel je tak malý, že teoreticky (při běžném zvětšení) ve výsledném obrázku už pixelizaci nevidíme. A právě počet pixelů na určitou jednotku (na 1 palec) je tzv. rozlišení. Nevýhodou bitmapové grafiky je, že pixel je přesně určen jak do velikosti, tak i do barvy, a tím pádem nelze měnit velikost obrázku bez zhoršení kvality. Samozřejmě v dnešní době existuje spousta metod (např. různé typy interpolace), jak tento problém vyřešit. Vždycky je třeba si uvědomit, že pokud obrázek zmenšujeme, pixely nenávratně mizí (samozřejmě kromě akce o krok "zpět" v programech). Pokud ho zvětšujeme, tak se jen dopočítávají podle obecných pravidel (algoritmů) a nikdy to není podle skutečnosti, i když se jí snaží velmi přiblížit a nutno podotknout, že se jim to docela i daří. 3. Rozlišení Rozlišení tedy znamená počet pixelů na určitou oblast (např. na palec - 1 palec = 25,4 mm, nebo celá obrazovka rozlišení monitoru aj.). Čím větší, tím lepší výsledná kvalita obrázku, ale zase je zapotřebí více místa k jeho uložení. Proto záleží jen na nás, jaký zvolíme kompromis. Je nutné ovšem podotknout, že teoreticky zvyšovat rozlišení jde do nekonečna, ale prakticky příliš velké rozlišení je zbytečné, protože člověk vnímá rozdíl jen do určité hodnoty (leč subjektivní). Vyšší rozlišení se užívají na tisk grafiky anebo při zvětšení nějakého malého obrázku. 4. Interpolace Interpolace v oblasti počítačové grafiky je dopočítávání pixelů, za účelem "namnožení" počtu bodů (pixelů) v obrázku např. při zvětšení či jiných úpravách. Rozlišujeme tři hlavní typy:
Nejbližšího souseda Nový pixel zkopíruje předchozí. Bilineární Nový pixel se vypočítá průměrem z pixelu předchozího a následujícího (aproximace lineární). Bikubická Nový pixel se vypočítá ze čtyř sousedních pixelů (aproximace kubická). 5. Barevná hloubka obrazu Barevná hloubka je údaj, který nám říká, jakých resp. kolik různých barev může nabýt pixel. Obvykle se udává v bitech. 1 bit může nabýt dvou hodnot: 0 a 1. Tedy proto dvojku umocňujeme příslušným číslem barevné hloubky: 2 16 = 65 536, čili pokud užijeme grafické karty, která má kvalitu barev (= barevná hloubka) 16 bitů, máme tím pádem k dispozici 65 536 různých barev. V dnešní době grafické karty standardně umí 32 bitů, čili 2 32 = 4 294 967 296 barev. Ovšem dříve tomu tak nebylo, byly 8 bitové, ale i 1 bitové, kde tím pádem byly jen dvě barvy: černá a bílá. Jednalo se tedy o černobílý obraz. 6. Aliasing a moiré Aliasing je nějaký falešný tvar, který se dostane do obrázku, při nedostatečném či nadbytečném navzorkování (= rozlišení). V oblasti IT se s ním nejčastěji setkáváme např. v podobě kostičkovaného okraje nějakého obrázku. Pokud chceme aliasingu předejít, je třeba ho převést na šum. To se provádí např. tak, že se obrázek před zmenšením jemně rozostří. Pokud se nedokonale překrývají dva pravidelné vzorky, mluvíme o tzv. moiré. Vlevo: moiré vzniklé překrytím dvou vzorů Vpravo: moiré vzniklé při digitalizaci již rastrovaného obrázku např. z vytištěné předlohy. 7. Digitalizace obrazu 7.1. Snímací prvky Abychom si mohli blíže vysvětlit, jak fungují např. scanery, musíme si nejprve říci něco o snímacích prvcích (CCD čip je elektronická součástka používaná pro snímání obrazové informace pochází z anglického Charge-Coupled Device, což v překladu znamená zařízení s vázanými náboji.)
Jejich základní princip je takovýto: každý prvek obsahuje miliony polovodičových buněk citlivé na světlo, vrstvičku SiO2 (oxid křemičitý) a pod ní je vrstvička křemíku. Při dopadu světla na oxid křemičitý (SiO2 ) se dostane do tzv. excitovaného stavu uvolní se z něho elektron (tzv. fotoefekt: absorbce světla kovem -> excitovaný stav -> uvolnění elektronu) a ten je přitahován kladnou elektrodou (která je na obrázku znázorněna pod číslem 1), protože je do ní přiváděno kladné napětí. Tímto vznikne v buňce náboj, respektive napětí, které se pak změří a přivede k analogově-digitálnímu převodníku (A/D), kde se analogový signál digitalizuje a nakonec zpracuje v obrázkovém procesoru. Na obrázku jsou svislými čarami odděleny jednotlivé pixely a je zde ukázáno, jak na levý pixel dopadne více světla než na pravý a tím pádem je zde více, resp. méně elektronů shromážděno u elektrody. 7.2. Jakým způsobem jsou zaznamenávány barvy? Před každou buňku citlivou na světlo se umístí barevný filtr tzv. Bayerova maska, který propustí světlo jen s určitou vlnovou délkou. A pokud užijeme tří různých filtrů (jeden na odfiltrování červené barvy, druhý na zelenou a třetí na modrou barvu), tak výsledkem je rozložení do našich již známých třech barev červené, zelené a modré. A právě z těchto barev se, podle nabití jednotlivých buňek, složí všechny ostatní barvy. Následně pak tyto buňky, resp. čtyři buňky (čtverec 2x2), udávají barvu jednoho pixelu. 7.3. Barva jednoho pixelu = 2x2 buňky Barvu každého pixelu určují 4 buňky proto, že uspořádání musí být do plochy. Tedy aby nebyly mezery mezi jednotlivými buňkami, musí být uspořádány do čtverce 2x2. A proč do čtverce 2x2? Protože máme 3 barvy (=RGB). A ta jedna, co zbude, je vyhrazena pro zdvojení senzoru na zelenou barvu. A to proto, že v oku na sítnici jsou také červené, zelené a modré čípky zachytávající světlo. Je prokázáno, že zelených je nejvíce než všech ostatních, a proto je oko na zelenou nejvíce citlivé. Odtud to tedy převzala i technika a senzor na zelenou zdvojila, aby obraz byl co nejvěrnější a mohly se lépe zachytit detaily, na které je oko citlivé. Shrnutí Máme např. CCD čip, na který dopadne světlo přes Bayerovu masku (slouží k odfiltrování různých vlnových délek). A zaznamená se hodnota napětí každé buňky a následně čtveřice buňek nám složí jeden pixel, kterému se říká interpolovaný (=vypočtený). A z několika pixelů se pak složí obrázek.
7.4. Šum Každá buňka má určitou maximální a minimální hranici, kterou je schopna přijmout. Tato hranice je dána technologickými možnostmi. Na spodní hranici ovšem vzniká díky různým jiným vlivům (teplo, vysílání aj.) také tzv. šum, proto je také před každým senzorem ještě navíc systém filtrů, který tento nechtěný šum odfiltrují. 7.5. Citlivost Citlivost se udává v jednotkách ISO (International Standards Organization). Platí zde nepřímá úměrnost s časem expozice, např. pokud zdvojnásobíme citlivost, budeme potřebovat poloviční čas expozice (osvětlení snímače). Nejmenší citlivost buňky, která je dána technickými možnostmi snímacího prvku. Vzhledem k tomu, že citlivost buňky je stále stejná (např. 100 ISO), může se měnit jen dopočtem a zesílením signálu (lze tak dosáhnout i 3600 ISO). Ovšem tímto zesilujeme i šum. Každá buňka je tedy limitováná zdola šumem a shora tzv. přetečením. Nebo-li, pokud na buňku dopadne příliš mnoho světla, které není schopna přijmout, světlo přeteče do okolních buněk (= tzv. blooming) a v obrázku se toto projeví jako bílá skvrna. Rozsah, jaký může buňka absorbovat (= přijmout) se nazývá "dynamický rozsah". Z pravidla je to rozsah od černé k bílé. Pokud tento dynamický rozsah je překročen, jedná se o tzv. přetečení buňky (= vznikne tzv. přepálená bílá) a pokud bude dopadat méně světla, buňka nebude reagovat (= vznikne tzv. přepálená černá). 8. Komprese souborů obrázků Komprese obecně je proces, kdy se zmenšuje objem, a ani v počítačové terminologii tomu není jinak. Zde v tomto konkrétním případě zmenšujeme velikost obrázkového souboru, resp. dat, aby nezabíral tolik místa na pevném disku či jiném médiu a dalo se s ním lépe manipulovat. Rozlišujeme tyto základní typy: 8.1. Komprese neztrátová Tento druh komprese znamená, že se neztrácejí data a lze i po dokončení komprimace znovu obnovit původní data beze ztráty. Jak je možné, něco komprimovat beze ztráty. Zkusme si to přiblížit na následujícím příkladu: Potřebujeme koupit 5 housek. A můžeme jít do obchodu a říci, že chci 1 + 1 + 1 + 1 + 1 housek anebo říci rovnou, že chci 5 housek. V prvním případě by z nás prodavač moc velkou radost neměl. Ale kdybychom řekli rovnou, že chceme 5 housek, tak ušetříme čas sobě i druhým. To určitě každý cítíme. A to máme jen 5 housek, teď si představme, že bychom jich chtěli koupit stovky, to bychom nakupovali celý den jen housky. A přesně takhle to funguje při bezztrátové kompresi. Data, která potřebujeme uložit, jsou ty naše "housky". A pak záleží na konkrétním algoritmu, který užijeme a on rozhodne, jak bude probíhat komprese. Samozřejmě se pak zohledňuje kvalita a typ dat, co ukládáme. Kompresních algoritmů je celá řada a není cílem je tu popisovat, jde mi jen o určitý platný princip.
8.2. Komprese ztrátová Naopak komprese ztrátová je příklad, kdy se data ztrácejí nenávratně pryč a nelze je obnovit do původní podoby. Samozřejmě, že pokud budeme chtít obrázek např. zvětšit, existuje spousta možností, jak "dodělat" ztracená data. Tento postup se nazývá převzorkování či interpolace (hlavně u grafických souborů). Je nutné však podotknout, že takto vzniklá data jsou jakým si "výmyslem" algoritmů*, který na základě obecně platných pravidel dané hodnoty dopočítává. Tato data se ovšem neshodují s původními daty, jen se je snaží napodobit. Je řada ztrátových algoritmů, které se liší kvalitou komprese a typu komprimovaných dat, např. JPEG odstraní z obrázku to, co člověk stejně za běžných podmínek neuvidí. 9. Formáty souborů Nyní si představíme základní typy formátů souborů a rozdílů mezi nimi. Úmyslně nechci zacházet příliš do detailů, protože v současné době je nepřeberné množství grafických formátů. Cílem tohoto přehledu je stručný přehled formátů běžné praxe na středoškolské úrovni a vysvětlení základních rozdílů mezi nimi. 9.1. BMP (.bmp) Obrázek uložený ve formátu BMP (Windows Bit Mapped Picture) je typicky nekomprimovaný formát (výjimečně se můžeme setkat i s bezztrátovou kompresí) bez jakýchkoliv dalších úprav obrázku. Byl vytvořen firmou Microsoft a IBM a je nativním grafickým souborem pro platformu Windows. Hloubka barev u tohoto formátu je 24b. Nevýhoda ovšem je, že si sebou nemůže nést uloženou tabulku barev, jako např. obrázek uložený do formátu TIFF. 9.2. TIFF (.tif) TIFF format (Target Image File Format) je výhodný pro grafický výstup ze zařízení (např. scanery či fotoaparáty), protože je standardně nekomprimovaný (může být komprimovaný bezztrátově). Spolu s daty se může (záleží na volbě uživatele) uložit se souborem také tabulka barev. Toto je výhodné hlavně pro přenos obrázků, protože budou správně přeneseny i jednotlivé barvy, jak byly v originálu, nezávisle na prostředí, ve kterém bude otevřen. Barevná hloubka je 24b, ale lze též exportovat do 32b CMYK. Nevýhoda tohoto formátu je, že má velké nároky na místo pro uložení, oproti formátu jako např. JPEG. 9.3. JPEG (.jpg,.jpeg,.jif,.jfif) JPEG (Joint Photographic Experts Group) je formát souboru pracující ve 24b barevné hloubce, ale lze ho též exportovat do 32b CMYK. Mezi jeho velké výhody patří malá velikost souboru, díky ztrátové kompresi, která se řídí větou: "Smažu, co stejně není vidět". Další výhoda je, že lze kompresní poměr nastavovat. Nevýhoda naopak spočívá v uložení barevných ploch, resp. různých odstínů jedné barvy, jako např. nebe, voda, atd., protože výsledek takto uložených dat nebývá příliš kvalitní. Využívá se hlavně v prostředí internetových stránek, kde je třeba malá velikost souboru pro rychlé načtení.
9.4. EPS (Encapsulated PostScript) Formát souboru často používaný pro obrázky generované v kreslících aplikací, jako např. Illustrator či Freehand, nebo také pro skenování. Obsahuje postscript soubor, který popisuje obrázek, a náhledový obrázek pro zobrazení na displeji počítače. 9.5. GIF (.gif) Všechny předešlé formáty, byly statické. Neuměly uložit pohyb. GIF formát (Graphics Interchange Format) toto umí. Umí uložit několik snímku za sebou s časováním, po jak dlouhé době se mají měnit a případně kolikrát se má celý obrázek opakovat. Pokud tedy uložíme několik obrázků rychle se měnících za sebou s nepatrnými změnami, ve výsledku je to pak vnímáno jako animace. Formát GIF se užívá hlavně v prostředí internetových stránek. Je komprimovaný bezztrátovou kompresí. Mezi další obrovské výhody patří fakt, že lze jednu barvu uložit jako průhlednou. Nevýhoda je ovšem v tom, že obrázek může obsahovat maximálně 256 barev. 9.6. PNG (.png) PNG (Portable Network Graphics) je formát podporující průhlednost, pracuje ve 24b barevné hloubce RGB a je komprimován bezztrátovou kompresí. Nevýhoda oproti GIF je, že nepodporuje animace. Využívá se též v prostředí internetových stránek. 9.7. PCX (.pcx) PCX formát (PC-PaintBrush) je jeden z prvních formátů bitmapové grafiky. Jeho hlavní využití bylo ve Windows (převážně 3.X) v programu PaintBrush. Původně byl určen pro 4b barevnou hloubku (16 barev). Dnes se příliš nevyužívá. 9.8. RAW (.raw) Tento formát souborů se užívá pro uložení surových dat z A/D převodníku ze zařízení digitalizující obraz (např. fotoaparát). Tato data nejsou nijak upravována či komprimována, ale je třeba jej přepočítat a převést do nějakého grafického formátu. Vlastní digitální obraz vzniká tedy až výpočtem z těchto dat Samozřejmě formátů souborů pro ukládání obrazu je nepřeberné množství. Cílem tohoto přehledu je seznámit uživatele jen se základními typy, se kterými se může běžný uživatel počítače setkat.