Rastrová grafika

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

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.

Rastrová grafika[upraviť | upraviť zdroj]

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[upraviť | upraviť zdroj]

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: Srdce1.gif

Odtiene sivej[upraviť | upraviť zdroj]

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: Srdce2.gif

Farebný obraz[upraviť | upraviť zdroj]

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: Srdce3.gif

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[upraviť | upraviť zdroj]

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[upraviť | upraviť zdroj]

Ď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

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

Ďalšou možnosťou na spracovanie obrazových informácií je vektorová grafika.

Rastrové formáty[upraviť | upraviť zdroj]