Rastrová grafika
Rastrová grafika
Pojem rastrová grafika v počítačovej terminológii označuje spôsob uloženia grafickej informácie popisom jednotlivých bodov usporiadaných v pomyslenej mriežke. Každý bod (pixel) má v mriežke určenú svoju presnú polohu, farbu a iné parametre, napr. priehľadnosť (alfa kanál). Farba bodu (pixelu) môže byť opísaná pomocou farebného modelu, ktorý opisuje jednotlivé body miešaním základných farieb, alebo farby a jasu. Množstvo použitých bitov potrebných na opis závisí od zvolenej farebnej hĺbky. Napr. ak je použitá len čierna a biela farba, stačí pre opis farby jedného bodu jediný bit Veľkosť obrázka tiež závisí od rozlíšenia, ktoré sa udáva v DPI (počet bodov na palec). Pre zobrazenie na monitore postačuje rozlíšenie 72 DPI, pre tlač na tlačiarni minimálne 300 DPI.
Obsah |
Rastrová grafika
Na obrázok sa hľadí ako na sieť (raster) veľmi malých štvorcov - pixelov, uložených v pevných riadkoch a stĺpcoch - v obdĺžnikovej matici. Rozmer každého obrázka je pre počítač počet pixelov na šírku x počet pixelov na výšku. Pre každý pixel (štvorček) je nutné okrem polohy (riadok a stĺpec) zakódovať aj farbu, resp. ďalšie parametre napr. priehľadnosť.
Čiernobiely obraz
Ak je obrázok monochromatický (čierna a biela farba), kódovanie je jednoduché (1 - rozsvietený (biely) bod, 0 - nerozsvietený (čierny) bod), napr.
100111001 011010110 101101101 110111011 111010111 111101111
A teda zápis v riadku vyzerá : 011000110 100101001 010010010 001000100 000101000 000010000, čo je 54 bitov. Po osemnásobnom zväčšení obrázok vyzerá takto:
Odtiene sivej
Pri niektorých obrázkoch je však potrebné zaznamenať i odtiene, preto dve farby - čierna a biela - nestačia. Výhodné je zakódovať odtiene sivej farby pomocou ôsmich bitov tak, aby informácia o každom bode zaberala 1 B, t. j. jedno pamäťové miesto počítača. Čím bude bod svetlejší, tým väčšia hodnota sa do pamäte uloží. Preto bod čiernej farby bude uložený ako 0 a bod bielej farby ako maximálna možná hodnota - 255. Obrázok teda bude kódovaný nasledovne:
192 0 0 255 255 192 0 0 255 0 255 192 0 192 0 255 192 0 192 0 255 192 0 255 192 0 255 255 192 0 255 255 192 0 255 255 255 255 192 0 192 0 255 255 255 255 255 255 192 0 255 255 255 255
Obrázok bude v pamäti počítača zaberať 54 Bajtov (pamäťových miest) a po osemnásobnom zväčšení obrázok bude vyzerať takto:
Farebný obraz
Pri farebnom kódovaní obrázu všetky farebné modely kódujú farbu troma nezávislými hodnotami. Najvýhodnejšie je každý pixel obrazu zakódovať pomocou troch pamäťových miest - troch bajtov. Obrázok s rozmermi 1024x768 pixelov tak v pamäti grafickej karty zaberie 2 359 296 bajtov. V minulosti kvôli cene pamätí sa na grafické karty montovali pamäte menších rozmerov, teda na kódovanie farieb sa použil menší počet bajtov. Najstaršie počítače používali iba 16 farieb, to znamená, že každý bod bol zakódovaný 4 bitmi, neskôr sa začali vyrábať grafické karty (VGA) s 256-timi farbami, ktoré mali každý bod kódované 8 bitmi. Po zlacnení počítačových pamätí už bolo možné vyrábať karty SVGA, ktoré kódovali farby pomocou 16 bitov (dve pamäťové miesta) v režime High Color (vysoká farebnosť). V súčasnosti už grafické karty majú toľko pamäte, že bez problémov môžu kódovať každý bod 24 bitmi (tri pamäťové miesta) v režime True Color (pravá farebnosť). Popísaný spôsob uloženia obrázka (keď je každý bod kódovaný pomocou niekoľkých bitov - 4, 8, 16 alebo 24) sa používa formát, ktorý sa volá bitová mapa (BitMaP). Obrázky v takomto formáte sú v počítači uložené v súboroch s príponou BMP. Pri plnej farebnosti je každý bod obrázka zakódovaný 24 bitmi, čo sú tri pamäťové miesta počítača. Pričom 255 0 0 je sýta červená farba, 0 255 0 je sýta zelená farba, 0 0 255 je sýta modrá farba, 0 0 0 je čierna farba a 255 255 255 je biela farba. Obrázok srdca môžeme týmto spôsobom zakódovať napríklad aj takto (kvôli kratšiemu zápisu je použitá šestnástkovú sústavu):
C0 C0 C0 FF 00 00 FF 00 00 FF FF FF FF FF FF C0 C0 C0 FF 00 00 FF 00 00 FF FF FF FF 00 00 FF 00 00 FF 00 00 FF 00 00 C0 C0 C0 FF 00 00 FF 00 00 FF 00 00 FF 00 00 C0 C0 C0 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 00 00 00 FF FF FF C0 C0 C0 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 00 00 00 00 00 FF FF FF FF FF FF FF C0 C0 C0 FF 00 00 FF 00 00 FF 00 00 00 00 00 00 00 FF 00 FF 00 FF FF FF FF FF FF FF FF FF C0 C0 C0 FF 00 00 00 00 00 00 00 FF 00 FF 00 00 FF 00
Obrázok bude v pamäti počítača zaberať 162 bajtov (pamäťových miest) a po osemnásobnom zväčšení obrázok bude vyzerať takto:
Veľká pamäťová náročnosť už teda nie je problém grafickej karty počítača, stále je však problém pri posielaní takýchto obrázkov prostredníctvom internetu, pretože obrázok s rozmermi 1024x768 pixelov v režime true color je príliš veľký. Na zníženie pamäťových nárokov sa používa paleta farieb a kompresia dát (stlačenie).
Paleta farieb
Paleta využíva skutočnosť, že na kreslených obrázkoch väčšinou nie je použitých viac ako 256 farieb. Zníženie pamäťových nárokov spočíva v tom, že očíslujeme všetky použité farby v obrázku číslami od 0 do 255, a potom kódujeme každý bod tak, že uvedieme poradové číslo farby v palete. Tým miesto troch pamäťových miest, každý bod zakódujeme len pomocou jedného pamäťového miesta. Naše "srdce" teda zakódujeme nasledovne:
Paleta:
00 00 00 00 , 01 C0 C0 C0, 02 FF 00 00, 03 00 FF 00, 04 00 00 FF, 05 FF FF FF
Obrázok:
01 02 02 05 05 01 02 02 05 02 02 02 02 01 02 02 02 02 01 02 02 02 02 02 02 02 00 05 01 02 02 02 02 02 00 04 05 05 01 02 02 02 00 04 03 05 05 05 01 02 00 04 03 03
Ak spočítame počet pamäťových miest, dostaneme 24 B použitých v palete a 54 B použitých na obrázok, čo je spolu 78 B (bez použitia palety to bolo 162 B).
Kompresia
Ďalší spôsob ako znížiť pamäťovú náročnosť obrázka, je použitie kompresie. Kompresia môže byť:
Princíp bezstratovej kompresie spočíva v tom, že ak sa pixel s rovnakou farbou vyskytuje viackrát za sebou, do pamäte neukladáme jednotlivé pixely, ale uložíme koľko krát sa pixel danej farby vyskytol. Napr. (zjednodušene) 8krát červená, 3krát modrá atď.
Algoritmy používané na bezstratovú kompresiu
- Run-Lenght kódovanie (RLC)
- Entropické kódovanie (ang. Entropy coding) ako napríklad Huffmanov kód
- Kódovanie s použitím dinamicky vytváraného slovníka ako napríklad (LZW)
Stratová kompresia je založená na vynechávaní, niektorých málo viditeľných detailov obrazu. V praxi to znamená, že ak je niekde napríklad jedna svetložltá bodka uprostred veľkého bieleho poľa, jednoducho sa vymaže. Ďalej ak je niekde tenká čiara medzi dvoma plochami, tak sa farba tejto čiary upraví tak, aby sa jej farba dala vypočítať zložením farieb plôch, ktoré obklopuje (zjednodušene povedané).
Algoritmy používané na stratovú kompresiu
- Redukovanie farebného priestoru
- Prevzorkovanie sýtosti farieb
- Transformačné kódovanie oako napríklad furierova transformácia.
- Fraktálová kompresia
Ďalšou možnosťou na spracovanie obrazových informácií je vektorová grafika.