Raszter-grafika

Raszter grafikus képek felépítése

 

A kép alapja a képpont más néven pixel, amely egy virtuális raszter háló mentén helyezkedik el. A raszter hálón belül a képpontok sorokba és oszlopokba rendeződő csoportokat alkotnak ,ezek lesznek a kép elemei. A képpontnak két tulajdonsága van. A pozíciója és a színe. A pozíciót leíró x,y raszter koordináták határozzák meg, hogy a pont hol helyezkedik el a képernyőn. A koordináták maximális értéke függ a kivetítő eszköz fizikai paramétereitől. A képpontok összessége alkotja a képet. A képek megjelenítésének minőségéért két alapvető paraméter felel. A felbontás és a méret. A méret meghatározható a képpontok számával. Mértékegysége a pixel/hüvelyk (ppi). Minél nagyobb ez a szám - elméletileg - annál részletgazdagabb, jobb minőségű képet kapunk. A másik gyakran használt fogalom a bitfelbontás, azaz a színmélység. Mértékegysége a bit/pixel (bpp). A bitfelbontás megmutatja, hogy a kép egy pontjának a színét hány biten tároljuk. Minél nagyobb a színmélység annál több a szín, vagyis a leképezett kép annál pontosabban reprodukálja az eredeti színeit. Az egy képen megjeleníthető színek mennyisége alapján beszélhetünk bittérképes (bitmapped), szürkeárnyalatos (grayscale), színpalettával indexelt (indexed color) és valódi színezetű képekről (true color). Például, ha egy kép színmélysége 24 bites, akkor a megjeleníthető színek száma 224, azaz 16 millió. A tónusok képzéséhez használt elemi egységek száma mutatja a kép rácsfelbontását, rácsfrekvenciáját. Ha egy képet nyomdai reprodukáláshoz színekre bontunk, akkor a színek megjelenítéséhez fekete-fehér rácsmintát kell használni. A reprodukált kép minősége, részletessége a rácsfelbontástól függ, vagyis az egy négyzethüvelykre eső rácscellák számától. Mértékegysége a vonal/hüvelyk (lpi).

A képpontok megjelenítése

 

 Vizsgáljuk meg egy egyszerű assembly kódot amellyel kiírunk a képernyőre egy grafikus pixelt.

Inicializálás

Push cs

Kódszegmens, adatszegmens átlapolása

Pop ds

Mov ax.,0a000h

Grafikus memória terület kezdő címének beállítása

Mov es,:ax

Mov ax,13 h

A BIOS 10-es megszakítás 13h funkció  beállítja a grafikus mód 320*200 felbontását 256 színű üzemmódban

Int 10h

Konkrét pixel kirajzolása képernyőre

Mov di,pozicio

Beállítjuk, hogy a képernyő mely pontjára írja ki a rutin a pixelt

Mov al,szin

Meghatározzuk a pixel színét

Mov es:[di], al

Kiírjuk a pixelt a képernyőre

Ez a rutin jól szemlélteti a képek kirajzolásának folyamatát, illetve a hardver működését. A 0a00h címen található a grafikus memória terület bázis címe. Ezt a bázis címet rendeli hozzá az extra szegmens regiszterhez, amely megteremti a kapcsolatot a videó memória, és az operatív memóriában futó rutin között. Az üzemmód beállítás után történik az adatok kiírása. Mint látható a Destenation index regiszterbe adjuk meg azt az értéket, ahová szeretnénk kiíratni a színt. Színt az akkumulátor alsó szegmensébe írjuk be. (Nincs szükség az ah regiszterre ahol más információt is el lehetne tárolni, karakteres módban például a karakter ASCII kódját, természetesen karakteres módban más memória címet használunk járulékos memóriaterület bázisának 0b800h) Jelen esetben 8 biten tárolt értéket, azaz maximum 256 színt lehet megjeleníteni VGA üzemmódban. A kiíratás az extraszegmens báziscímhez viszonyított offset di regisztertartalommal eltolt memória helyhez történő adat mozgatással történik. Jelen esetben az operációs rendszernek nincs jelentősége, csupán a módszeren van a hangsúly.