mms tutorijal grafika

13
Univerzitet u Sarajevu Elektrotehnički fakultet Sarajevo Predmet: Multimedijalni sistemi Obrada slike - Tutorijal Predmet "Multimedijalni sistemi" bavi se primjenom računarskih sistema za pohranjivanje, obradu i prezentaciju multimedijalnih sadržaja, u što primarno spadaju zvuk, grafika i video. Ovaj cilj se ostvaruje kroz prezentaciju struktura podataka i algoritama koji se koriste za multimedijalne sadržaje. U ovom tutorijalu biće predstavljeni osnovni principi računarske grafike i način pohrane slike u računaru. U računaru, slika (ilustracija, fotografija itd.) može biti predstavljena na jedan od dva fundamentalna načina: rasterski i vektorski. 1. RASTERSKA GRAFIKA 1.1. Uvod Kod rasterske grafike, izvršena je digitalizacija slike tako da je slika izdijeljena na niz sićušnih jednobojnih površina koje se nazivaju pikseli (eng. pixel skraćeno od picture element). Oblik ove površine zavisi od uređaja za preuzimanje ili prikaz slike, ali sa stanovišta računarske pohrane slike i njene obrade taj oblik nije ni bitan. Jedino što je važno jeste da je svaki piksel opisan sa tri podatka: bojom i dvije koordinate. Stoga se raster najčešće predstavlja kao pravougaona tabela sastavljena od pravougaonih (u pravilu kockastih) piksela (Slika 1). Slika 1. Primjer rasterske slike pri čemu je jedan dio uvećan dovoljno da bi se vidjeli pojedinačni pikseli

Upload: maidaa8580

Post on 04-Aug-2015

44 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Mms Tutorijal Grafika

Univerzitet u SarajevuElektrotehnički fakultet SarajevoPredmet: Multimedijalni sistemi

Obrada slike - Tutorijal

Predmet "Multimedijalni sistemi" bavi se primjenom računarskih sistema za pohranjivanje, obradu i prezentaciju multimedijalnih sadržaja, u što primarno spadaju zvuk, grafika i video. Ovaj cilj se ostvaruje kroz prezentaciju struktura podataka i algoritama koji se koriste za multimedijalne sadržaje. U ovom tutorijalu biće predstavljeni osnovni principi računarske grafike i način pohrane slike u računaru.

U računaru, slika (ilustracija, fotografija itd.) može biti predstavljena na jedan od dva fundamentalna načina: rasterski i vektorski.

1. RASTERSKA GRAFIKA

1.1. Uvod

Kod rasterske grafike, izvršena je digitalizacija slike tako da je slika izdijeljena na niz sićušnih jednobojnih površina koje se nazivaju pikseli (eng. pixel skraćeno od picture element). Oblik ove površine zavisi od uređaja za preuzimanje ili prikaz slike, ali sa stanovišta računarske pohrane slike i njene obrade taj oblik nije ni bitan. Jedino što je važno jeste da je svaki piksel opisan sa tri podatka: bojom i dvije koordinate. Stoga se raster najčešće predstavlja kao pravougaona tabela sastavljena od pravougaonih (u pravilu kockastih) piksela (Slika 1).

Slika 1. Primjer rasterske slike pri čemu je jedan dio uvećan dovoljno da bi se vidjeli pojedinačni pikseli

Page 2: Mms Tutorijal Grafika

Pretvorba slike u oblik rastera uzrokuje grešku diskretizacije koja se sastoji u tome da se linije koje nisu paralelne ili pod pravim uglom na ose mogu predstaviti samo kao stepenasti oblik (Slika 2). Za razliku od zvuka, ova greška je uočljiva čak i na najsavremenijim uređajima za reprodukciju slike. Ovaj problem se naziva aliasing. Postoje razni algoritamski pristupi čiji je cilj ublaživanje efekta aliasinga, koje nazivamo anti-aliasing. Efekat anti-aliasinga se postiže manipulacijom boje susjednih piksela, koristeći osobinu ljudskog vida da susjedne tačke spaja u jedinstvenu sliku (ova osobina se naziva integracija). Više o anti-aliasingu će biti govora na kasnijim tutorijalima.

Slika 2. Ono što je u stvarnosti dijagonalna linija, na rasteru izgleda kaostepenasti oblik sastavljen od kockica - piksela

U najjednostavnijem slučaju, svaki piksel može biti crne ili bijele boje. U pitanju je monohromatska odnosno jednobojna slika (jednu od ove dvije boje možemo posmatrati kao "odsustvo boje"). Ovakva slika može u računaru biti predstavljena kao niz bita, pri čemu bit 0 može označavati npr. crnu boju a 1 bijelu. Ovakav zapis nazivamo još i bitmapa.

Pored samog niza bita, potrebno je na neki način kodirati i redoslijed kojim se oni čitaju. U računarskoj grafici uobičajeno je da se pikseli iscrtavaju red po red, s lijeva na desno, pri čemu se redovi crtaju odozgo prema dolje. Ovakva orijentacija potiče od prvih digitalnih televizora i usvojena je kao standard. Stoga je za ispravno čitanje bitmape potreban još samo jedan podatak, a to je broj bita u jednom redu slike. Ovaj red se naziva raster-scan red ili kraće samo scan red (scan linija eng. scanline).

Npr. monohromatska slika dimenzija 1000x1000 piksela u računaru će zauzimati milion bita što iznosi oko 122 kB. Na to treba još dodati zaglavlje koje sadrži informacije o formatu, dužinu scan linije i eventualno meta-podatke (npr. datum i vrijeme kada je slika kreirana, podatke o uređaju ili softveru kojim je kreirana, fizičke dimenzije slike u centimetrima i slično).

Da bismo predstavili sliku sa više od dvije boje, potrebno je da svakom pikselu pridružimo više od jednog bita. U primjeni su uobičajene rasterske slike sa 4, 8, 16, 24 i 32 bita po pikselu. Broj bita po pikselu utiče na broj dostupnih boja (striktno govoreći, u pitanju su nijanse osnovnih boja), što se naziva dubina boje (eng. color depth). Cijena veće dubine boje je veće zauzeće memorije. U kasnijim poglavljima ćemo opisati na koji način se određuju značenja pojedinih bitova.

Page 3: Mms Tutorijal Grafika

Bita po pikselu Broj boja / nijansiVeličina nekompre-

sovane slike dimenzija 1000x1000 piksela

1 dvije 122 kB

4 16 488 kB

8 256 976 kB

16 65536 1,9 MB

24 oko 16,7 miliona 2,86 MB

32 oko 4,3 milijarde 3,8 MB

Tabela 1. Ovisnost broja boja i zauzeća memorije od bit-dubine

1.1.1. Dithering

Kod 1-bitnih slika možemo postići efekat nijansi sive koristeći grupe (klastere) piksela sa određenim kombinacijama crnih i bijelih piksela. Ovaj efekat se naziva dithering. Veličina klastera diktira broj nijansi sive koje se mogu simulirati, a zavisi od rezolucije slike (vidjeti sljedeće poglavlje "Rezolucija").

Osnovni problem ditheringa je moiré efekat, odnosno pojava uzorka većih dimenzija kao posljedica interferencije između ponavljajućih klastera.

U prošlosti su se za dithering koristili uglavnom gotovi šabloni odnosno tablice klastera koje su bile mapirane na odgovarajuće nijanse sive. Ovakve tablice su nezgodne za manipulaciju i podložne moiré efektu. Danas se uglavnom koriste algoritmi za generisanje ditheringa koji koriste metodu error diffusion, čime se izbjegava moiré efekat i dobija vizuelno vrlo kvalitetan efekat čak i na niskim rezolucijama. U osnovi ovih algoritama je slučajna raspodjela crnih piksela imajući na umu procenat piksela koji trebaju biti zacrnjeni.

1.2. Rezolucija slike

Rezolucija (eng. resolution) je pojam koji označava broj piksela koje u jedinici fizičke površine može prikazati neki uređaj za reprodukciju rasterske grafike (monitor ili štampač). Rezolucija, koja se na našem nekada naziva i razlučivost, bi "trebala biti" u funkciji veće kvalitete slike, odnosno veća rezolucija znači manju grešku diskretizacije i samim time precizniju sliku. Rezolucija ne mora biti isto što i veličina piksela, jer neki uređaji mogu između piksela praviti veći ili manji razmak, dok drugi mogu postići veću rezoluciju tako što omogućuju djelomično preklapanje piksela.

Uobičajena jedinica za rezoluciju je DPI što je skraćeno od dots per inch (tačaka po inču). Npr. kada kažemo da štampač ima rezoluciju od 300 DPI to znači da će na papiru u horizontalnoj liniji dužine jednog inča biti ispisano 300 piksela. Ako znamo da jedan inč iznosi oko 2,54 cm, prostor koji zauzima jedan piksel širok je oko 0,08 mm. No većina štampača postiže ovu rezoluciju preklapanjem tačaka, pa ako bismo pokušali odštampati tačno jedan piksel na papiru i izmjeriti njegovu širinu, primijetili bismo da je on znatno širi od 0,08 mm.

Takođe koristimo pojmove horizontalna i vertikalna rezolucija, odnosno broj tačaka koje mogu stati u jedinicu površine po horizontalnoj i vertikalnoj dimenziji ne mora biti isti. Kod mnogih štampača navedena je samo horizontalna rezolucija dok vertikalna nije.

Page 4: Mms Tutorijal Grafika

Pojam "rezolucija" takođe se koristi i u drugom značenju, a to je apsolutni broj piksela na ekranu po širini i visini ekrana. Npr. neko će reći da "laptop ima rezoluciju 1680x1050". Da bismo zaista znali rezoluciju ekrana tog laptopa, potrebne su nam i dimenzije njegovog ekrana.

Recimo da laptop ima ekran čija je dijagonala 15" (ovdje treba spomenuti da marketinška dimenzija ekrana nije jednaka stvarnoj, koja opet nije jednaka površini ekrana upotrebljivoj za prikaz slike). Da bismo odredili širinu i visinu ekrana na osnovu pravila pravouglog trougla potreban nam je još neki podatak. Srećom, poznat nam je omjer širine i visine bilo kojeg računarskog ekrana. Do prije nekoliko godina ovaj omjer je standardno bio 4:3, ali u posljednje vrijeme prevladavaju ekrani omjera 16:10 (ustvari 8:5). Uvrštavajući omjer 8:5 u formulu za pravougli trougao, dobijamo:

c2=a2+b2

152 = (8/5 y)2+y2

225 = 89/25 y2

y2 = 63,2y = 7,95" (visina)x = 8/5 y = 12,72" (širina)

Rezolucija je broj tačaka / dimenzija pa imamo:Rhoriz = 1680 / 12,72" = 132 DPIRvert = 1050 / 7,95" = 132 DPI

Vidimo da ekran ima identičnu horizontalnu i vertikalnu rezoluciju koja iznosi 132 DPI (tačaka po inču).

Cijela stvar je dodatno zamagljena činjenicom da pojedini operativni sistemi nude mogućnost definisanja "rezolucije" odvojeno od apsolutnog broja piksela, pa će često sistemske biblioteke davati informaciju da je rezolucija 72 DPI bez obzira na dimenzije ekrana ili broj tačaka na ekranu. Naime, većina elemenata računarskih korisničkih interfejsa (ikone i slično) nisu skalabilni, odnosno pri povećanju rezolucije oni neće postati finiji i kvalitetniji nego jednostavno manji. Vremenom su korisnici računara prihvatili činjenicu da veća rezolucija u principu znači više sadržaja na ekranu. Neprirodno je da elementi koji jesu skalabilni (npr. slova) zadržavaju veličinu promjenom rezolucije, a ikone i slično da se smanjuju - promjena ovih omjera deformiše izgled korisničkog interfejsa na način koji njegov dizajner nije predvidio. Stoga operativni sistemi svojim aplikacijama prijavljuju fiksnu "rezoluciju" tako da će se povećanjem stvarne rezolucije sve podjednako umanjiti, a ako korisnik želi veća slova može povećati font u aplikaciji koju koristi.

1.3. Teorija boje i modeli boje

Način na koji čovjek vidi boju, ali i način na koji boju reprodukujemo raznim uređajima za prikaz ili štampu, uticao je na to da u računarima boje predstavljamo kao kombinacije određenog broja "osnovnih" boja. Međutim, ne postoji jedinstven pristup koji opisuje koje su to osnovne boje, kako se one kombinuju, čak ni koliko ih ima.

Poznajemo dva osnovna modela boja u računarstvu: aditivni i substraktivni model.

1.3.1. Aditivni model boje

Kod aditivnog modela posmatramo pozadinu slike kao crnu, a zatim tu pozadinu osvjetljavamo određenom bojom, pri čemu se više boja međusobno sabiraju (odatle naziv modela). Najčešći

Page 5: Mms Tutorijal Grafika

aditivni model je RGB model koji je naziv dobio po tri osnovne boje: crvena (Red), zelena (Green) i plava (Blue). Možemo zamisliti da je svaki piksel u RGB modelu sastavljen od tri sićušne lampice, crvene, zelene i plave. Kada su sve tri lampice ugašene vidimo njihovu crnu pozadinu, a kada su sve tri osvijetljene maksimalnim intenzitetom vidimo jedinstvenu bijelu svjetlost.

Tvrdnja da se kombinovanjem crvene, zelene i plave svjetlosti može dobiti bijela svjetlost može zvučati neintuitivno. Ako u kući imate kakav stari monitor ili još bolje nešto veći CRT televizor, možete koristiti povećalo da biste vidjeli kako se kreiraju boje (Slika 4). Uočićete da se zaista svaki piksel sastoji od tri sićušna svjetla crvene, zelene i plave boje, a kada je potrebno prikazati bijelu tačku ova svjetla blješte tolikim sjajem da čovjek to doživljava kao bijelu boju (mada ne savršeno bijelu).

Slika 4. Kada povećalom pogledate ekran starog TVa na bazi katodne cijevi, vidjećete nešto otprilike ovakvo

Prilagođenjem intenziteta svakog pojedinačnog svjetla odvojeno dobijamo ostale boje, pa tako npr. žutu boju možemo dobiti ako crveno i zeleno svjetlo obasjamo maksimalnim intenzitetom, a plavo svjetlo ugasimo. Drugim riječima, u RGB modelu svaka boja definisana je sa tri vrijednosti R, G i B koje označavaju intenzitet svake od tri osnovne boje. Obično ovaj model vizuelno predstavljamo kao trodimenzionalni prostor (Slika 5).

Slika 5. RGB trodimenzionalni prostor

Najčešća implementacija aditivnog modela je 24-bitni RGB format podataka, u kojem je svaki piksel opisan sa 24 bita odnosni tri bajta, pri čemu svaki bajt opisuje intenzitet jedne od tri komponente boje. U odnosu na druge formate podataka, ovaj format ima prednost da je svaka komponenta opisana tačno jednim bajtom pa se njena obrada na procesoru odvija bez dodatnih ciklusa shift-ovanja bita, a kod prenosa u analogni oblik možemo svaki bajt direktno pretvoriti u npr. iznos nekog napona.

Page 6: Mms Tutorijal Grafika

Većina grafičkih čipova će interno (hardverski ili u drajveru) konvertovati neki drugi format u 24-bitni RGB format radi prikaza. Veća dubina boja donedavno je bila rezervisana za vrhunske grafičke radne stanice (npr. SGI), a tek posljednjih godina se javljaju grafičke kartice sa više od 24-bitnom dubinom boje namijenjene širem tržištu. Jedan od razloga je i to što monitori uglavnom nisu u stanju prikazati toliko boja (neki LCD monitori koriste i manje od 24 bita po pikselu radi bržeg odziva).

1.3.2. Substraktivni model boje

Za razliku od aditivnog modela, kod substraktivnog modela boje pozadina je bijela (npr. papir), odnosno pozadina u potpunosti reflektuje primljenu svjetlost, a nanošenjem boje mi oduzimamo pozadini tu njenu reflektivnost i time je potamnjujemo. Dok se aditivni model u pravilu primjenjuje za prikaz na ekranu, substraktivni je primarno namijenjen za kolor štampu koja se realizuje miješanjem boja, što nas podsjeća na nastavu Likovnog u osnovnoj školi i vodene bojice.

Osnovni substraktivni model boje je CMY model u kojem su osnovne boje cijan, mađenta i žuta (Yellow). Miješanjem ove tri osnovne boje mogu se dobiti sve ostale boje. No, kao što se vjerovatno sjećate iz osnovne škole, miješanjem bilo kojih boja ne može se postići crna boja zadovoljavajuće kvalitete. Zbog toga većina kućanskih i kancelarijskih kolor štampača pored tri CMY tonera ili kertridža u boji posjeduje i četvrti sa crnom tintom. Drugi, mnogo važniji razlog za ovakav dizajn štampača je to što velika većina stvari koje štampamo sadrži uglavnom crnu boju (tekstovi), pa posjedovanje odvojenog pakovanja sa crnom tintom značajno štedi tintu jer trošimo samo jednu boju umjesto tri. Većina kućnih štampača koristi crnu tintu za dijelove ispisa koji su crne boje, a ostale boje postižu miješanjem tri obojene tinte, odnosno koristeći uobičajeni CMY model.

U profesionalnoj masovnoj kolor štampi kao što su džambo-plakati ili novine, različite boje se ne postižu uvijek miješanjem boja, nego i kombinacijom ditheringa i drugih metoda kao što je halftoning. Svaka od tri boje se nanosi odvojeno pri čemu se boje propuštaju kroz tačkastu rešetku (Slika 6). Četvrta crna komponenta se naziva ključ (Key) zato što se ona obično koristi za poravnavanje sve četiri komponente prilikom štampe. Sve četiri komponente zajedno nazivaju se CMYK (neki će pogrešno reći da K potiče od zadnjeg slova riječi blacK - crno, pošto je B već bilo zauzeto).

Slika 6. Uvećani prikaz halftone rastera pri CMYK procesu. Ovdje možemo vidjeti kako korištenje mađenta tačaka na žutoj podlozi daje privid narandžaste boje, a cijan tačke na žutoj podlozi stvaraju privid zelene boje.

Page 7: Mms Tutorijal Grafika

U vrijeme digitalne štampe halftoning ima ograničenu primjenu, ali CMYK način zapisa slike i dalje dominira u profesionalnoj štampi. Napredni šestobojni modeli boje bazirani na CMYK kao što su CMYKOG i CcMmYK postaju sve popularniji. Prije slanja dokumenta na štampanje, obično je potrebno konvertovati ga iz njegovog nativnog modela boje (obično RGB) u CMYK model.

1.3.3. Modeli boje i ljudska percepcija

Opisani modeli boje diktirani su načinom rada grafičkih uređaja: CRT televizora u slučaju RGB modela, odnosno tradicionalnih kolor štampača u slučaju CMY i CMYK modela. Pored ovih, postoje modeli koji su bolje prilagođeni ljudskoj percepciji boje, kao što je HSV (Hue - Saturation - Value) model.

Kada kažemo da se 24-bitnim RGB formatom može predstaviti 16,7 miliona boja (odnosno nijansi boja), nameće se pitanje: da li čovjek uopšte može razlikovati te boje? Odgovor je da je to vrlo individualno. Npr. istraživanja pokazuju da gotovo 50% žena ima osobinu koja se naziva tetrahromatizam. Ove osobe posjeduju četiri vrste čunjića u mrežnici oka umjesto uobičajenih tri, što bi teoretski trebalo omogućiti raspoznavanje većeg broja boja. Neke od takvih osoba su zaista eksperimentalno pokazale bolje raspoznavanje boja a neke ne. Ipak, istraživanja nedvosmisleno pokazuju da ljudska sposobnost razlikovanja boja značajno varira duž spektra, a najveća je u oblasti zelene i žuto-zelene boje (Slika 7). Drugim riječima, ako posmatramo dvije "susjedne" boje unutar RGB kocke, često će se desiti da ne možemo vidjeti razliku, ali nekada će ta razlika biti vrlo vidljiva.

Slika 7. Ljudska percepcija boje uvjetovana je brojem čunjića određene vrste i frekvencijom svjetlosti na koju je ta vrsta čunjića najosjetljivija, kao i intenzitet te osjetljivosti

Pored toga, RGB model sadrži "redundanciju" - mnogi tripleti R, G i B opisuju vizuelno iste boje koje ni teoretski nije moguće razlikovati.

Ovi problemi pokušali su se adresirati upotrebom raznih modela boje koji bolje odražavaju ljudsku percepciju boje. Najpoznatiji takav model je HSV model gdje su boje definisane koristeći tri vrijednosti: ton (Hue), zasićenje (Saturation) i intenzitet (Value, nekada intensity, brightness). Modeli kao što su YIQ (korišten u američkom NTSC formatu televizije), zatim Y'CBCR koji se koristi u JPEG slikama, MPEG videu i generalno u digitalnoj televiziji, definišu se kao efikasniji način zapisa RGB informacija koji ne pati od redundancije. Ovi formati su kompatibilni unazad sa crno-bijelom televizijom.

1.3.4. Konverzija između modela boje

Bilo kojim datim modelom boja nije moguće predstaviti sve boje koje može vidjeti čovjek. Ovo obično ne predstavlja problem jer se boje visokog nivoa saturacije rijetko javljaju u prirodnim scenama (npr. fotografijama). Opseg boja koje se mogu predstaviti određenim modelom boje naziva se gamut. Gamut se obično grafički predstavlja CIE kromatskim dijagramom (Slika 8).

Page 8: Mms Tutorijal Grafika

Slika 8. CIE kromatski dijagram RGB modela. Samo boje unutar trokuta moguće je predstaviti RGB modelom, pa je ostatak gamuta boja vidljivih čovjeku predstavljen sivom bojom

RGB model boja je zavisan od uređaja, odnosno samim RGBom uopšte nije definisano tačno šta čine R, G i B komponente, niti kako njihov intenzitet varira duž hipotetičke skale od 0 do 1. Tačno kako će izgledati neka boja definisana RGB vrijednostima ovisi o konkretnom uređaju na kojem je prikazana. Postoje standardizovane varijante RGB modela koje su u potpunosti definisane i neovisne od uređaja, kao što su sRGB i Adobe RGB.

Boja koja se na datom ekranu dobije uz maksimalne vrijednosti sve tri RGB komponente nije savršena bijela boja. Tačna boja koja se dobije u tom slučaju naziva se bijela tačka ekrana. Pored ovoga, CRT ekran nije u stanju prikazati ni savršeno crnu boju, odnosno postoji određeni minimalni intenzitet koji tipično iznosi 0,5-2,5% maksimalnog intenziteta. Raspon između minimalnog i maksimalnog intenziteta se naziva dinamički raspon ekrana i određuje se tako što se u savršeno zamračenoj prostoriji na ekranu prikazuje bijeli kvadrat na crnoj pozadini, a zatim se fotometrom određuje razlika između to dvoje.

Kod CRT ekrana, kao posljedica osobina fosfora, tačan stepen osvijetljenosti neke tačke nije direktno proporcionalan naponu koji se daje elektronskom topu, nego je u nekoj funkciji od tog napona. Ova devijacija se naziva gama vrijednost ekrana. Pošto gama vrijednost varira od jednog ekrana do drugog, prilikom prikaza RGB slike na ekranu primjenjuje se korektivni faktor koji se naziva gama korekcija kako bi miješanje komponenti na ekranu dalo očekivanu boju.

Sve navedene osobine doprinose da gamut boja varira od jednog do drugog uređaja za prikaz slike.

U profesionalnoj grafici važno je da određena boja izgleda savršeno onako kako je dizajner zamislio. Ukoliko je npr. letak dizajniran na PC računaru, dizajner očekuje da na papiru dobije istu boju koju je vidio na ekranu. Da bi se postigao ovaj zahtjevan cilj koriste se sistemi za upravljanje bojom (color management system - CMS). CMS koristi profil boja, koji se obično naziva ICC profil (prema nazivu organizacije International Color Consortium koja je definisala standard). Profil boja definiše gamut boja određenog modela boja, ali i određenog uređaja.

Prilikom konverzije npr. iz RGB u CMYK model najprije je potrebno ukloniti sve devijacije od standardnog RGBa uzrokovane specifičnostima uređaja za prikaz, kao što su gama korekcija ili

Page 9: Mms Tutorijal Grafika

dinamički raspon, ali mora uzeti u obzir i gamut uređaja. Profesionalni dizajneri vrše kalibraciju ekrana prema nekom standardnom modelu (kao što je sRGB) kako bi imali dodatnu garanciju kvalitetne konverzije boja. Ovim procesom dobija se slika u odabranom standardnom modelu koji je neovisan od uređaja.

Sljedeći korak je konverzija slike iz nepotpunog modela boja u CIE model (tzv. XYZ model) koji je u stanju da definiše sve boje vidljive čovjeku, a zatim se iz CIE modela slika konvertuje u odredišni model. Ponekad se dešava da ciljni model boje ne može prikazati sve potrebne boje, npr. RGB "čisto plava" boja se ne može prikazati u CMYK modelu, a CMYK "čisto cijan" se ne može dobiti RGBom. U takvim slučajevima vrši se aproksimacija boje na najbližu podržanu boju koristeći jedan od nekoliko algoritama, pri čemu korisnik tipično može izabrati koji algoritam želi da koristi.

Konačno, iz CMYK modela može se na osnovu ICC profila određenog štampača dobiti otisak sa savršeno usklađenim bojama za taj štampač, koji korisnik (ponovo) može dodatno kalibrirati ili pak kalibrirati štampač sa monitorom. Vremenom kako se tinta troši iz mlaznice za tintu štampača izlaze neznatno manje količine određene tinte, pa je štampač potrebno redovno kalibrirati, a pogotovo nakon svake promjene tinte.

CMS sistemi u upotrebi su: ICM (Image Color Management) korišten na Windows 2000 i Windows XP, WCS (Windows Color System) koji se koristi na Windows Vista i Windows 7, ColorSync koji se koristi na MacOSu i LittleCMS u upotrebi na open-source operativnim sistemima kao što je Linux.

1.4. Uobičajeni formati zapisa slike

U nastavku ćemo pokazati najčešće načine kako slika može biti predstavljena u memoriji računara. Pored nabrojanih tu je i 1-bitni monohromatski format koji smo već opisali.

1.4.1. Historijski formati

Do sredine 80tih godina slike u boji su najčešće bile predstavljene 3-bitnim i 4-bitnim formatom koji su omogućavali prikaz 8 odnosno 16 "osnovnih boja". U vrijeme kada je memorija bila izuzetno skupa, 3-bitni format je teoretski pružao 25% manje zauzeće memorije, ali je njegov nedostatak bilo to što pikseli nisu bili poravnati sa bajtima. Svaka manipulacija nad slikom morala se vršiti nad 8 susjednih piksela (3 bajta) istovremeno jer je u suprotnom bila vrlo neefikasna (potrebno je maskiranje i shiftovanje da bi se došlo do traženog piksela).

1.4.2. Grayscale (nijanse sive)

Ovaj format je u pravilu 8-bitni. Svaki piksel, pored crne i bijele boje, može poprimiti jednu od 254 nijansi sive boje. Ovaj format se koristi za fotorealističan prikaz "crno-bijelih" slika bez korištenja ditheringa.

1.4.3. Paleta boja

U pitanju je 8-bitni (rjeđe 16-bitni) format gdje svaki piksel poprima jednu od 256 (65536) boja iz neke predefinisane palete boja.

Kako se tačno koristi paleta ovisi od implementacije. U nekim sistemima korisnik bira jednu od ponuđenih paleta boja. Npr. Matlab nudi 8 paleta boja za prikaz grafikona. U Windowsu i danas postoji definisana Windows standardna paleta boja koja sadrži 256 osnovnih boja. Zbog dizajna

Page 10: Mms Tutorijal Grafika

Windows 3.x sistema ova paleta uglavnom sadrži različite nijanse plave i sive boje. Pored toga postoji je i tzv. Web paleta boja u upotrebi pri dizajnu web stranica.

Takođe je moguće da korisnik sam definiše paletu. Npr. GIF slike koriste 8-bitni format sa korisnički definisanom paletom, pri čemu je svaka boja u paleti opisana uobičajenim 24-bitnim RGB zapisom. Ovakva paleta dodaje čitavih (1+3)*256 = 1kB na veličinu datoteke. Pokazuje se da većina realnih slika ne sadrže veliki broj različitih boja, tako da se uz kvalitetno urađenu aproksimaciju boje mogu dobiti slike iznenađujuće kvalitete.

1.4.4. RGB formati

Najčešći način zapisa RGB slike je 24-bitni RGB format kod kojeg je svaka komponenta boje obilježena sa 8 bita odnosno jednim bajtom.

Pored ovoga u upotrebi je i više varijanti 16-bitnog RGB formata. Pošto 16 nije djeljivo sa tri, postoji nekoliko podvarijanti:

• RGB 5-5-5 format: svaka komponenta je označena sa 5 bita, a preostali bit se ne koristi.• RGB 5-6-5 format: zelena komponenta koristi 6 bita pošto je ljudski vid osjetljiviji na

nijanse zelene boje.• RGB 4-4-4 format: 12-bitni, ali zbog poravnanja praktično nema uštede memorije u odnosu

na 16-bitni format. Prednost ovog formata je i lakša konverzija na 16-bitni ARGB.

Pri konfigurisanju sistema često se može vidjeti da je dubina boje opisana kao 32-bitna (RGB), međutim u pitanju je ARGB format (koji ćemo upravo opisati) koji praktično ima isti broj boja kao i 24-bitni RGB.

U profesionalnoj grafičkoj primjeni (npr. na SGI grafičkim radnim stanicama) koristi se Deep Color sistem koji definiše 32-bitni RGB (pri čemu se dva bita ne koriste) ili 48-bitni RGB. Međutim, uređaji za prikaz uglavnom nisu u stanju prikazati ovu dubinu boje. Glavna argumentacija za korištenje ovakvog formata je eliminacija greške zaokruživanja kod višestruke upotrebe filtera npr. Adobe PhotoShop interno može koristiti 96 bita po pikselu iz ovih razloga.

1.4.5. RGB formati sa transparencijom (ARGB)

ARGB format definiše i četvrtu komponentu boje koja se naziva alfa kanal. Ukoliko je alfa vrijednost maksimalna (npr. 255) prikazuje se boja opisana RGB komponentama, a ukoliko je alfa nula prikazuje se piksel koji se nalazi u pozadini slike. Alfa kanal koristimo npr. ukoliko želimo prikazati jednu sliku preko druge, korisno je definisati na kojim mjestima "gornje" slike će se vidjeti donja slika. Za ostale vrijednosti između 0 i 255 vrši se miješanje boje definisane RGB komponentom i boje podloge, pri čemu alfa kanal određuje omjer tog miješanja.

Npr. alfa vrijednost 100 odgovara realnoj vrijednosti 100/255 = ~0,4 što znači da će se pri miješanju boja koristiti 40% boje definisane RGB komponentama i 60% boje podloge.

Najčešći način zapisa ARGB formata je 32-bitni, pri čemu sve tri RGB komponente + alfa komponenta zauzimaju po jedan bajt. Takođe postoje i rjeđe korišteni 24-bitni i 16-bitni ARGB formati.

Pored opisanog ARGB formata koristi se i tzv. premultiplicirani ARGB. Kod premultipliciranog formata R, G i B komponenta su pomnožene sa vrijednošću alfa kanala (predstavljenom kao realan broj između 0 i 1). Razlog za ovakav zapis je to što je operacija kompozicije slike (spajanje dvije slike preko alfa kanala) matematički manje zahtjevna kada se koristi premutiplicirani format, pa

Page 11: Mms Tutorijal Grafika

samim time daje bolje performanse.

1.4.5. CMY / CMYK formati

CMYK format obično se predstavlja kao 32-bitni format pri čemu je svaka komponenta zastupljena sa 8 bita (jednim bajtom). Analogno, CMY format je obično 24-bitni.

1.5. Rasterski formati datoteka

Prilikom zapisa rasterskih formata na disk ili slanja putem mreže, raster se obično kompresuje. Ova kompresija može biti bez gubitaka (lossless) ili pak može uklanjati određene elemente slike radi efikasnijeg smještaja (lossy). O kompresiji rasterskih podataka ćemo više govoriti kasnije, a sada ćemo ukratko predstaviti formate datoteka i različite dubine boje koje se njima mogu predstaviti.

• BMP (bitmap) format: Može sadržavati: 1-bitnu monohromatsku sliku, 4- i 8-bitnu sliku sa korisnički definisanom paletom ili 24-bitni RGB. Slike mogu biti nekompresovane ili uz upotrebu trivijalne RLE kompresije. U principu bolji rezultati se postižu korištenjem ZIP kompresije.

• GIF (Graphics Interchange Format): 8-bitna slika sa korisnički definisanom RGB paletom kompresovana pomoću modifikovanog Lempel-Ziv algoritma (Lempel-Ziv-Welch odnosno LZW) koji je donedavno bio patentiran. GIF omogućuje da se jedna od 256 boja definiše kao "providna". Takođe omogućuje da se u istoj datoteci smjesti više slika istih karakteristika kako bi se dobila primitivna animacija.

• JPEG/JFIF (JPEG File Interchange Format): Koristi se JPEG metod kompresije sa gubicima zasnovan na diskretnoj kosinusnoj transformaciji (DCT). Korišteni model boja je Y'CBCR (biće opisan na predavanjima). Nije definisana dubina boje - može biti od 8 pa do čak 48 bita pri čemu se može odvojeno definisati dubina za svaku od komponenti, mada u velikoj većini slučajeva JPEG slike nastaju konverzijom iz 24-bitnih RGB slika.

• TIFF (Tagged Image File Format): Fleksibilan format datoteka koji omogućuje upotrebu niza različitih modela i dubina boje i algoritama za kompresiju (uključujući JPEG, LZW i PackBits). Jedini od navedenih formata omogućuje korištenje 32-bitnog CMYK formata za šta se najčešće i koristi.

• PNG (Portable Network Graphics): Razvijen kao nasljednik GIF formata, PNG omogućuje korištenje proizvoljne dubine boja iz 24-bitne RGB palete ili iz 32-bitne RGBA palete. Koristi varijantu DEFLATE algoritma za kompresiju. Animacije nisu direktno podržane PNG formatom nego se sugeriše korištenje srodnog MNG formata za animacije.

• XPM (X-PixMap) i PPM (Portable PixMap) formati: 6-bitni formati sa korisničkom RGB paletom. Razlog za upotrebu 6 bita je kako bi se olakšao prenos kroz tekstualne medije (kao što je e-mail), odnosno u slučaju XPMa kako bi se slika direktno mogla uključiti u C program.

2. VEKTORSKA GRAFIKA

U vektorskoj grafici slika je opisana koristeći određeni broj osnovnih geometrijskih oblika predstavljenih u 2D dekartovom prostoru. Za manipulaciju nad ovim objektima zatim koristimo uobičajene metode analitičke geometrije. Pored 2D koordinata tačaka koje definišu objekat i drugih parametara potrebnih za njegovu konstrukciju, za objekte se definiše i z-koordinata kojom se definiše redoslijed iscrtavanja objekata, tako da su objekti sa najmanjom z koordinatom na dnu steka objekata a ostali se iscrtavaju preko njih.

Page 12: Mms Tutorijal Grafika

Slika 9. (Loš) primjer vektorske grafike

Npr. ilustracija na Slici 9 bi mogla biti definisana na sljedeći način:pravougaonik ( gore-lijevo (260,350), dole-desno(325,590), smeđa)elipsa ( centar(292,225), širina(250), visina(350), zelena)trougao ( t1(715,200), t2(525,310), t3(900,310), crvena)pravougaonik ( gore-lijevo (525,310), dole-desno(900,590), žuta)

Pri tome, redoslijed kojim navodimo ove objekte je važan, u suprotnom bi npr. smeđi pravougaonik mogao biti iznad elipse. Primjer bismo mogli dopuniti i tako što bismo ovim objektima dodijelili z koordinate 1, 2, 3 i 4 redom kojim su navedeni.

Jedini uređaj koji direktno može predstaviti vektorsku sliku je ploter. Ploter koristi veći broj pera pomoću kojih iscrtava linije između tačaka definisanih koordinatama. Ploteri u pravilu nisu u stanju ispuniti površinu nekom bojom. Za prikaz na ostalim uređajima kao što su monitori i štampači vektorska slika se mora najprije konvertovati u raster.

Konverzija fotografija u vektorski format je besmislena jer bi rezultujuća vektorska slika bila prekomplikovana ako se ne urade određena pojednostavljenja. Ipak, vektorska grafika se često koristi u grafičkom dizajnu. Pohranjivanje slike u vektorskom obliku nudi brojne prednosti:

• Vektorska slika se može uvećavati i umanjivati bez gubitka kvalitete. Drugim riječima, kada konvertujemo vektorsku sliku u raster možemo dobiti raster proizvoljne rezolucije.

• Obično se iz složenih oblika mogu izdvojiti prostiji geometrijski oblici od kojih su sastavljeni i zatim odvojeno manipulisati svakim od njih.

• Vektorski zapis u principu zauzima manje prostora od rasterskog, ovisno od složenosti grafike. No nekada u jednu vektorsku sliku možemo uključiti više pojedinačnih rasterskih slika pa veličina datoteke naglo raste.

Primjeri vektorskih formata su: SVG (Scalable Vector Graphics), CDR (Corel Draw format), AI (Adobe Illustrator format) i drugi.

Page 13: Mms Tutorijal Grafika

Pored navedenih, ponegdje se govori i o formatima kao što su PDF ili HTML kao vektorskim formatima. PostScript, PDF, HTML, DOC i drugi su primarno formati za opis dokumenta. Pod pojmom "dokument" obično smatramo tekstualni sadržaj koji može biti dopunjen slikama u rasterskom ili vektorskom formatu, ali i drugim multimedijalnim sadržajima kao što su animacije, zvuk, interaktivni aplikativni elementi (skripte) i drugo. Samim time možemo definisati dokument koji sadrži isključivo vektorsku grafiku.