Rastrová grafika
Pojem rastrová grafika v počítačovej terminológii označuje spôsob uloženia grafickej informácie opisom jednotlivých bodov usporiadaných v myslenej 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 (pixela) sa dá opísať za pomoci 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čí na opis farby jedného bodu jediný bit. Veľkosť obrázka závisí aj od rozlíšenia, ktoré sa udáva v DPI (počet bodov na palec). Na zobrazenie na monitore postačuje rozlíšenie 72 DPI, na tlač na tlačiarni aspoň 300 DPI .
Rastrová grafika
Na obrázok sa pozerá 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. priezračnosť.
Čierno-biely 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á : 100111001 011010110 101101101 110111011 111010111 111101111, čo je 54 bitov. Po osemnásobnom zväčšení obrázok vyzerá takto:
Odtiene sivej
Pri niektorých obrázkoch je potrebné zaznamenať aj 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 sa uloží ako 0 a bod bielej farby ako maximálna možná hodnota 255. Obrázok bude kódovaný nasledujúco:
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ľkokrát sa pixel danej farby vyskytol. Napr. (zjednodušene) osemkrát červená, trikrát modrá atď.
Algoritmy používané na bezstratovú kompresiu
- Run-Length kódovanie (RLC)
- Entropické kódovanie (angl. 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 ako napríklad furierova transformácia.
- Fraktálová kompresia
Ďalšou možnosťou na spracovanie obrazových informácií je vektorová grafika.