38
Sveuˇ ciliˇ ste J. J. Strossmayera u Osijeku Odjel za matematiku Danijel Drmi´ c Optimizacija memorijskog zapisa digitalne slike Diplomski rad Osijek, 2012.

Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Embed Size (px)

Citation preview

Page 1: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Sveuciliste J. J. Strossmayera u OsijekuOdjel za matematiku

Danijel Drmic

Optimizacija memorijskog zapisadigitalne slike

Diplomski rad

Osijek, 2012.

Page 2: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Sveuciliste J. J. Strossmayera u OsijekuOdjel za matematiku

Danijel Drmic

Optimizacija memorijskog zapisadigitalne slike

Diplomski rad

Mentor: doc. dr. sc. Ivan Matic

Osijek, 2012.

Page 3: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 3

Sadrzaj

1 Uvod 4

2 Osnovni pojmovi 5

3 Digitalna slika u memoriji 93.1 Problem memorijskog zapisa . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Formati digitalnih slika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.1 Rasterski formati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2 Vektorski formati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3 Kompresija podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.1 Huffmanovo kodiranje . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.2 LZW algoritam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Algoritam za optimizaciju boja 204.1 Ideja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.2 Formulacija problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Implementacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.4 Dijagram toka algoritma za trazenje optimalnih boja . . . . . . . . . . . . . 224.5 Funkcije algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.6 Moguca unapredenja algoritma . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Usporedba dobivenih rezultata 25

6 Zakljucak 34

Literatura 35

Sazetak 36

Title and summary 37

Zivotopis 38

Page 4: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 4

1 Uvod

Metode optimizacije omogucuju nalazenje najboljih rjesenja razlicitih vrsta problema. Tipicniproblemi vezani su za koristenje ogranicenih resursa (ljudi, oprema, materijali, financiranjei sl.). Kod svih tih metoda zajednicko je to da je potrebno formulirati model problema,analizirati moguce vrste rjesenja i medu njima pronaci najpovoljnije rjesenje po odabranomkriteriju.

Napretkom tehnologije, napredovali su i digitalni fotoaparati i skeneri. Samim time kvalitetai memorijski zapis njihovih slika rastu. Memorijski kapaciteti i brzine prijenosa podatakasu ograniceni te je zapis digitalnih slika pozeljno komprimirati prije spremanja u memorijuodgovarajucim formatom digitalnih slika.

U ovom diplomskom radu osmisljen je novi format za zapis digitalnih slika. Rad zapocinjedefiniranjem osnovnih pojmova vezanih uz digitalnu sliku. U iducem poglavlju detaljnije seobjasnjava problem memorijskog zapisa te su specificirani postojeci najcesce koristeni for-mati digitalnih slika. U trecem poglavlju predstavljen je algoritam za optimizaciju boja tesu na primjeru objasnjene i njegove kljucne funkcije. Za kraj, obradeni format usporeden jesa postojecim formatima digitalnih slika.

Page 5: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 5

2 Osnovni pojmovi

Digitalna slika je numericki prikaz dvodimenzionalne slike.

Piksel (eng. picture element - pixel) je fizicka tocka na rasterskoj slici ili element sa me-morijskom adresom na zaslonu elektronskog uredaja, odnosno najmanji upravljiv elementdigitalne slike. (prema [3])

Rijec “pixel” je prvi puta upotrijebljena 1965. godine za opisivanje elementa video slikeprilikom priprema za let na Mjesec. Pikseli se najcesce prikazuju malim kvadratima. NaSlici 1 vidi se uvecani dio slike te se kvadrati lako uocavaju.

Slika 1: Uvecani prikaz dijela slike

Svaki piksel je uzorak izvorne slike. U pravilu veci broj uzorkovanja kvalitetnije prikazujeizvornu sliku. Iz skupa vrijednosti piksela moze se konstruirati slika koristeci krugove, linijeili filtere za zagladivanje (Slika 2).

Slika 2: Alternativni nacini prikazivanja piksela

Page 6: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 6

Intenzitet svakog piksela je promjenjiv. Za prikazivanje slika u boji najcesce se koriste 3 ili4 komponente intenziteta:

• RGB (Red, Green, Blue) odnosno crvena, zelena i plava komponenta koje kombini-ranjem svojih intenziteta proizvode ostale boje.

• CMYK (Cyan, Magenta, Yellow, Key - black) odnosno tirkizna, purpurna, zuta ikljuc - crna.

RGB sustav boja je siroko rasprostranjen i koristi se na gotovo svim zaslonima elektron-skih uredaja, dok se CMYK sustav boja koristi uglavnom u printerima. Pretvaranje bojeiz jednog sustava u drugi je u pravilu zahtjevan zadatak jer zaslon na kojemu se vidi slika iprinter koji ispisuje sliku koriste razlicite tehnologije prikazivanja boja. Pretvaranje se mozevrsiti kroz sustav za upravljanje bojama (eng. color management systems) ali ta pretvorbane moze biti potpuno precizna zbog cinjenice da sustavi boja koriste razlicite skale.

Dubina boje predstavlja broj bitova za oznacavanje boje jednog piksela. Ovaj koncept jepoznat pod izrazom bpp (eng. bits per pixel). Veca dubina boje daje siri spektar razlicitihboja, odnosno 1 bpp slika koristi 1 bit za svaki piksel (ukljuceno / iskljuceno). Dodavanjesvakog sljedeceg bita udvostrucuje broj boja, pa slijedi:

broj bitova broj boja

1 bpp 21 = 2 boje (monochrome)2 bpp 22 = 4 boje3 bpp 23 = 8 boja...

......

...8 bpp 28 = 256 boja

16 bpp 216 = 65536 boja (highcolor)24 bpp 224 = 16777216 boja (truecolor)

Za dubine boja od 15 bpp i vise, bpp predstavlja sumu dodijeljenih bitova za svaku kom-ponentu boje, tako primjerice slika od 16 bpp koristi 5 bitova za crvenu i plavu a 6 bitovaza zelenu boju posto je ljudsko oko najosjetljivije na zelenu boju. U slucajevima gdje jepotrebna prozirnost slike, dodjeljuje se 5 bitova svakoj od komponenti primarnih boja a 1bit ostaje za prozirnost sto kasnije omogucava kombiniranje i preklapanje slika. Slika od 24bpp omogucava 8 bitova za svaku komponentu odnosno 28 = 256 nijansi svake od primarnihboja.Na Slici 3 prikazani su linearni intenziteti crvene, zelene i plave boje gdje 0 oznacava da nemaprisutnosti boje dok 255 oznacava maksimalan intenzitet boje. Slike od 32 bpp (RGBA) uz8 bita za komponente R,G,B imaju i 8 bita tj. 256 mogucih informacija za prozirnost i takomponenta se oznacava sa A (eng. Alpha).

Page 7: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 7

Slika 3: Intenziteti crvene, zelene i plave komponente

Na Slici 4 prikazan je spektar boja u trodimenzionalnom diskretnom Kartezijevom koordi-natnom sustavu.

Slika 4: Prikaz spektra boja u trodimenzionalnom diskretnom Kartezijevom koordinatnomsustavu

Page 8: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 8

Rezolucija je ucestali naziv za broj piksela digitalne slike iako medunarodni standardi go-vore drugacije, to se posebno odnosi na digitalne kamere.

Konvencija je navesti Rezoluciju piksela sa dva prirodna broja M i N koji predstavljajusirinu i visinu slike u pikselima. Druga popularna konvencija je navesti rezoluciju pikselakao ukupan broj piksela u slici, izrazenih u megapikselima (MP), koji se moze izracunatimnozenjem piksela stupaca i piksela redova te dijeljenjem sa milijun. Tako se npr. slikarezolucije 2048 × 1536 piksela moze navesti kao 3.1 MP. Na Slici 5 moze se vidjeti kako jeista slika prikazana u razlicitoj rezoluciji piksela.

Slika 5: Razlicite rezolucije piksela

Prostorna rezolucija se odnosi na broj nezavisnih vrijednosti piksela po jedinici duljine.Najcesce se izrazava u ppi (eng. pixels per inch). Danasnji monitori koriste od 72 do 100piksela po incu, dok npr. pametni telefoni koriste i do 312 ppi.

Page 9: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 9

3 Digitalna slika u memoriji

3.1 Problem memorijskog zapisa

Izraz: “Slika govori vise od tisucu rijeci” kod digitalne slike je itekako tocan i kao takav pred-stavlja probleme bilo prilikom pohrane na tvrdi disk zbog ogranicenog prostora ili prilikomslanja putem interneta zbog ogranicene brzine prijenosa podataka. Npr. kolicina memorij-skog zapisa nekomprimirane digitalne slike rezolucije piksela 1024 × 768, dubine boja 24bpp iznosi 18874368 bita odnosno 2.25 megabajta. Ne tako davno koristile su se kvalitetnediskete (3.5", HD) memorijskog zapisa od 1.44 megabajta tj. slika bi se morala pohraniti na2 diskete.Ako prosjecna duljina jedne rijeci iznosi 5 slova, a jedno slovo u memoriji zauzima jedanbajt, usporedbe radi, slika iz primjera govorila bi pola milijuna rijeci.Ista ta slika brzinom uploada od 500 kilobita po sekundi slala bi se oko 40 sekundi, sto udanasnje vrijeme nije prihvatljivo. Upravo iz tih razloga postoje razni algoritmi za kompre-siju digitalnih slika.

3.2 Formati digitalnih slika

Formati digitalnih slika mogu se kategorizirati na vise nacina i to prema:

• otpornosti slike na uvecanje:

– rasterski: (BMP, JPG, PNG, GIF - smanjenje kvalitete)

– vektorski: (SWF, SVG - bez smanjenja kvalitete)

• nacinu zapisa:

– bez kompresije (BMP)

– sa kompresijom (PNG, JPG, GIF)

Rasterski formati zapisuju vrijednosti piksela matricno dok vektorski formati vrijednostipiksela racunaju matematickim formulama. Zbog te cinjenice prilikom uvecanja rasterskeslike vidljivi su nazubljeni rubovi dok se taj problem ne pojavljuje kod vektorskih formata(Slika 6).

Slika 6: Rasterska i vektorska slika pri povecanju

Kompresija slike moze biti sa i bez gubitaka podataka. Kod slucaja gubitaka podatakanajcesce se koristi cinjenica da ljudskog oko nije osjetljivo na sitne razlike u svjetlini boje tese pojedine vrijednosti piksela prilagodavaju u svrhu kraceg zapisa.

Page 10: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 10

3.2.1 Rasterski formati

BMPDolazi od rijeci bitmap odnosno mapa bitova. Potjece iz programerskog okruzja. Popu-njavanjem matrice sa bitovima moze se iscrtati monokromatska grafika (1 bpp). Danasnjebit-mape podrzavaju potpunu skalu boje pa ih je ispravnije zvati byte-mape ili pix-mape.Zapis datoteke je iznimno jednostavan i time pogodan za citanje iz programerskog okruzja.Treba ga izbjegavati u sirokoj upotrebi zbog nekomprimiranog sadrzaja (veliko zauzece me-morije i samim time sporo ucitavanje). Zauzece memorije racuna se po formuli:

Velicina[Byte] = sirina[px]× visina[px]× dubina boja[bpp]/8.

Moze se primijetiti da velicina zapisa ne ovisi o sadrzaju slike.

JPGNazvan po radnoj organizaciji Joint Photographic Experts Group - JPEG ili JPG. Vje-rojatno najzastupljeniji format na Internetu. Podrzan od strane svih poznatijih Internetpreglednika. Pogodan za izrazito kompleksne graficke zapise poput fotografija. Koristi me-todu kompresije s gubicima temeljenu na DCT (diskretna kosinusna transformacija). Moguceje birati stupanj kompresije. Velicina ovisi o kompleksnosti slike.

GIFDolazi od Graphics Interchange Format. Predstavljen 1987. godine te primarno namijenjenza uporabu na Internetu. Za razliku od ostalih formata, GIF koristi unaprijed indeksiranupaletu od 256 boja (8 bbp).Konverziju iz drugih formata u nedostatku boja nadoknadujesjencanjem (eng. dithering). Na Slici 7 prikazano je monokromatsko sjencanje. 256 nijansiprijelaza sa crne na bijelu boju prikazano je samo sa crnom i bijelom. Podrzava binarnuprozirnost (potpuna prozirnost ili potpuna boja iz palete). Jedini animirani rasterski formatpodrzan u Internet preglednicima. Kompresija bez gubitka, pritom koristeci LZW algoritam.(patentiran 1985. istekom patenta 2003. postaje slobodan format). Vise o samom algoritmukasnije. Kontroverza oko patenta smanjila je popularnost GIF-a i potaknula razvoj novogformata - PNG.

Slika 7: Monokromatsko sjencanje

Page 11: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 11

PNGNaziv dolazi od Portable Network Graphics. Napravljen je s namjerom da bude bolja alter-nativa GIF-u, pruzajuci kvalitetniju sliku, ali bez zahtjeva za patentom te licencom. Kom-presija bez gubitka kvalitete izvedena je kroz algoritam DEFLATE koji generalno postizebolje rezultate od LZW-a. Podrzava 8 bitnu prozirnost. PNG je najkvalitetniji rasterskiformat. Iako postoje slabo podrzane implementacije animiranog PNG-a (MNG, APNG),sluzbeno PNG nema podrsku za animacije (vidjeti [7]).

3.2.2 Vektorski formati

SWFRazvila ga je tvrtka FutureWave Software, koju je kupila Macrodemedia (od 2005. Adobe).Inicijalno zamisljen kao format za prikaz malih racunalnih animacija na Internetu. Naknadnoomogucena podrska za rastersku grafiku, zvuk i pokretne slike u komprimiranom formatu.SWF je akronim od naziva ShockWave Flash naknadno preimenovan u Small Web Format.Flash je zatvorena tehnologija - Internet preglednici nisu u mogucnosti interpretirati njihovsadrzaj bez instaliranog Flash Playera. Flash komponenta instalirana je na 98% racunalaspojenih na Internet (prema informacijama iz Adobea).

SVGScalable Vector Graphics - SVG bazira se na XML formatu:

<line x1="0" y1="0" x2="200" y2="200" style="stroke:rgb(255,0,0);

stroke-width:2"/>

Specifikacija definira staticne i animirane SVG-ove. Mogucnost unosa postojecih rasterskihslika. Sadrzaj se komprimira GZIP kompresijom - tada je primjereno koristiti ekstenzijuSVGZ. Podrzavaju ga svih kvalitetniji Internet preglednici. Ucitavanje SVG datoteke sapuno vektorskih elemenata moze potrajati nezeljeno dugo.

Slika 8: Usporedni prikaz grafickih formata

Page 12: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 12

3.3 Kompresija podataka

Kompresija1 podataka u racunarstvu je proces smanjivanja potrebnog fizickog prostora zapohranu podataka. Osnovna zadaca algoritama za kompresiju podataka je pronaci ucestalapojavljivanja odredenih nizova znakova u zapisu, na medij za pohranu zapisati ih samo jed-nom i nadalje samo biljeziti gdje se ponovno javljaju. Na taj nacin moguce je znatno smanjitipotreban prostor za pohranu.

Postoje dva glavna nacina kompresije podataka: s gubicima i bez gubitaka. Prvi obicnorezultira manjom datotekom, ali i manjom kvalitetom. Koristi metode u kojima se toleriraodredena kolicina gubitka podataka sto ga cini idealnim za multimediju. Drugi nema gubi-taka informacija pa je samim time i datoteka veca. Taj se nacin obicno koristi kod binarnihi tekstualnih datoteka.

Najpoznatije metode kompresije podataka bez gubitaka su Huffmanovo kodiranje i metodezamjene.

3.3.1 Huffmanovo kodiranje

Osmislio ga je David A. Huffman 1951. godine. Temelji se na statistickom uzorku pojav-ljivanja pojedinih znakova ulaznog niza. Podatkovna struktura je binarno stablo. Listovistabla predstavljaju znakove ulaznog niza a grane se oznacavaju sa “0” i “1” (Slika 9).

Pseudo kod algoritma:

1. Sortiraj znakove po vjerojatnostima pojavljivanja

2. Dva znaka sa najmanjim vjerojatnostima pojavljivanja spoji u nad-simbol

3. Idi na korak 1.

Slika 9: Binarno stablo Huffmanovog kodiranja

1cesto se kaze i sazimanje, stlacivanje, komprimiranje ili kodiranje

Page 13: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 13

Ovisno o implementaciji dekodiranje se vrsi uz poznato binarno stablo koje je nacinjeno zapojedini jezik (poznate su frekvencije pojavljivanja pojedinih slova) ili se pri samom kodira-nju sprema i frekvencija svakog slova (znaka). Prilikom dekodiranja prvo se napravi binarnostablo te se pomocu njega dekodira zadani kodirani niz. Za zapis znaka u memoriju potrebnoje 8 bitova, odnosno, za cijelu rijec MATEMATIKA 80 bitova. Huffmanovim kodiranjem (Slika9 dovoljno bi bilo 25 bitova (uz poznatu vjerojatnost pojavljivanja znakova).Generalno gledajuci tipican tekst se komprimira za 45%. Kodiranje je optimalno ako suvjerojatnosti pojavljivanja pojedinih znakova 1/2, 1/4, ..., 1/2n.

3.3.2 LZW algoritam

Lempel - Ziv - Welch (LZW) je univerzalni algoritam za kompresiju podataka bez gubitaka.Terry Welch objavio ga je 1984. kao poboljsanu verziju LZ78 algoritma iz 1978. Algoritamkoristi metodu zamjene, vrlo je jednostavan i ima jako veliki potencijal u hardverskoj imple-mentaciji.

Pseudo kod za kompresiju:

1. Ucitaj u rjecnik sve znakove niza.

2. Nadi najduzi niz znakova W u rjecniku

koja odgovara trenutnom ulazu.

3. Uzmi iz rjecnika indeks od W i makni

W iz ulaza.

4. W i znak koji mu slijedi dodaj u rjecnik.

5. Idi na korak 2.

LZW algoritam za dekompresiju simulira algoritam za kompresiju i dinamicki pravi cijelirjecnik.

Pseudo kod za dekompresiju:

1. Inicijaliziraj rjecnik.

2. Dekodiraj prvi indeks od W.

3. Stavi W? u rjecnik.

4. Dekodiraj prvi znak S trenutnog indeksa

5. Dovrsi prethodnu rijec u rjecniku

znakom S.

6. Dekodiraj ostatak indeksa.

7. Stavi W? u rjecnik i idi na korak 4.

Primjer 1. LZW algoritmom treba kodirati i potom dekodirati sljedeci niz:

ababababa

Polazni rjecnik:

0 = a

1 = b

Page 14: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 14

Sljedecim nizom slika prikazana su trenutna stanja rjecnika i trenutne pozicije kodiranjaulaznog niza:

Page 15: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 15

Page 16: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 16

Sljedecim nizom slika prikazana su trenutna stanja rjecnika i trenutne pozicije dekodiranjakodiranog niza:

Page 17: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 17

Page 18: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 18

Page 19: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 19

Umjesto zapisivanja rednih brojeva rijeci iz rjecnika, u memoriju se zapisuje UNICODE znaks tom vrijednosti. Npr. umjesto 78 zapisuje se N (Slika 10).

Slika 10: ASCII tablica

Svaki UNICODE znak zauzima 2 bajta u memoriji. Odnosno, moguce je upotrijebiti 22·8 =65536 znakova za kodiranje (Slika 11).

Slika 11: Neki od UNICODE znakova

Page 20: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 20

4 Algoritam za optimizaciju boja

4.1 Ideja

U svrhu smanjivanja memorijskog zapisa digitalne slike prva ideja je smanjiti skup koristenihboja na slici. Nakon toga izraditi novu sliku na nacin da se umjesto izbacenih boja izprvobitnog skupa koriste one koje su im najslicnije. Koristenjem manjeg broja boja zaocekivati je povecanje broja jednakih vrijednosti susjednih piksela te se ta cinjenica mozeupotrijebiti u kasnijoj kompresiji.

4.2 Formulacija problema

Definicija 1. Neka je Rn skup uredenih n−torki realnih brojeva, ~a ∈ Rn jedna uredenan−torka. Funkciju ‖ · ‖ : Rn → [0,∞〉 koja svakom vektoru ~a ∈ Rn pridruzuje nenegativanrealan broj zovemo norma vektora ~a ukoliko vrijedi:

(i) ‖~a‖ = 0⇐⇒ ~a = ~0 (pozitivna definitnost)

(ii) ‖λ~a‖ = |λ|‖~a‖, za svaki λ ∈ R i za svaki ~a ∈ Rn

(iii) ‖~a+~b‖ ≤ ‖~a‖+ ‖~b‖ (nejednakost trokuta)

Primjer 2. Neka je −→a ∈ Rn,−→a = (a1, a2, . . . , an).

• p−norma za 1 ≤ p <∞

‖~a‖p =

( n∑j=1

|aj|p) 1

p

• za p = 1 dobiva se:

‖~a‖1 =n∑

j=1

|aj|

• za p = 2 dobiva se euklidska norma:

‖~a‖2 =

√√√√ n∑j=1

|aj|2

• l∞ norma:

‖~a‖∞ = max1≤j≤n

|aj|.

Page 21: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 21

Pikseli koji tvore sliku imaju poziciju (x, y), gdje je x ∈ {0, 1, 2, . . . ,M − 1},y ∈ {0, 1, 2, . . . , N − 1}. Oznacimo piksele sa pi, gdje je i = My + x. Za poznat i lako sedode do x i y:

x = i mod M,

y =

⌊i

M

⌋.

Boja se moze definirati kao uredena trojka:

A1 = (R1, G1, B1) ∈ {0, 1, 2, . . . , 255}3.

Oznacimo sa A skup svih boja. Sada se digitalna slika moze definirati kao konacan niz (pi)u skupu boja A, i = 0, 1, 2, . . . ,MN − 1.Za 2 boje A1, A2 ∈ A definiraju se radijvektori −→rA1 ,

−→rA2 ∈ {0, 1, 2, . . . , 255}3,

−→rA1 = R1−→i +G1

−→j +B1

−→k ,

−→rA2 = R2−→i +G2

−→j +B2

−→k .

Udaljenost boja racunamo kao udaljenost dviju tocaka preko l1, l2 i l∞ normi sljedecimformulama:

l1(A1, A2) = ‖−→rA1 −−→rA2‖1,l2(A1, A2) = ‖−→rA1 −−→rA2‖2,l∞(A1, A2) = ‖−→rA1 −−→rA2‖∞,

gdje je−→rA1 −−→rA2 = (R1 −R2)

−→i + (G1 −G2)

−→j + (B1 −B2)

−→k .

Neka je:

A′ skup svih k−clanih podskupova boja,

S ∈ A′ neki k−clani podskup,

(ri) slika u skupu boja S,

l(pi, ri) greska i−tog piksela slike (ri),

E(

(pi), (ri), S)

greska najbolje slike (ri) odnosno minimalno odstupanje slike (ri) od

slike (pi) u skupu boja S.

Tada je:

E(

(pi), (ri), S)

= min

{MN−1∑i=0

l(pi, ri) : (ri) ∈ S

},

a skup optimalnih boja Sopt onaj skup S ∈ A′ za koji je:

E(

(pi), (ri), S)

= min

{E(

(pi), (ri), S)

: S ∈ A′}.

Page 22: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 22

4.3 Implementacija

Algoritam je implementiran u HTML5 jeziku.Koristen je kljucni element <canvas> sa metodama:

• getImageData() za dohvacanje vrijednosti piksela,

• putImageData() za crtanje slike sa novim vrijednostima piksela.

Algoritam je dostupan na sljedecoj adresi:http://www.mathos.hr/~ddrmic/diplomski/

4.4 Dijagram toka algoritma za trazenje optimalnih boja

Na Slici 12 prikazan je dijagram toka algoritma za trazenje optimalnih boja.

Slika 12: Dijagram toka algoritma

Page 23: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 23

4.5 Funkcije algoritma

Implementirane su sljedece funkcije:

• udaljenost() racuna gresku piksela koristeci:

– l1 normu,

– l2 normu,

– l∞ normu.

• nbnb() nacin biranja novih boja pri svakoj iteraciji:

– mijenja sve trenutne boje sa slucajno odabranim s izvorne slike,

– mijenja samo jednu od trenutnih boja sa slucajno odabranom s izvorne slike,

– svakoj trenutnoj boji mijenja slucajno odabranu komponentu za jednu nijansu,

– slucajno odabranoj trenutnoj boji mijenja slucajno odabranu komponentu zajednu nijansu.

• prilagodi() prilagodava zapis slike,

• LZWencode() kodira zapis slike,

• LZWdecode() kodirani zapis slike vraca u prilagodeni zapis,

• crtaj() crta sliku po prilagodenom zapisu.

Primjer 3. Dobivena je slika koristenjem optimalnih boja: plava(0,0,255) i zuta(255,255,0).

Funkcija prilagodi() zapisuje dimenzije slike, prolazi onoliko puta kroz sliku koliko je ikoristenih boja i redom alternirajuci biljezi koliko puta se svaka ne pojavljuje / pojavljujena slici. Svaki podatak se odvaja zarezom, a nova boja oznacava sa B.Dobiva se:

5,6,B,0,0,255,1,3,1,1,3,1,3,1,3,1,3,1,3,5,

B,255,255,0,0,1,3,1,1,3,1,3,1,3,1,3,1,3,5,

Boja koja najvise puta alternira stavlja se na prvo mjesto i ne pisu se njezina pojavljivanja.Konacni rezultat jednoznacno odreduje sliku:

5,6,B,255,255,0,B,0,0,255,1,3,1,1,3,1,3,1,3,1,3,1,3,5,

Page 24: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 24

Rezultat se dodatno kompresira bez gubitaka sa LZWencode() te se za konacan zapis slikedobiva:

5,6,B,25ACA0D,EEF,1,3GHIJKLMNA

Ovih 30 znakova zapisa se moze snimiti u tekstualnu datoteku (nacin kodiranja:UNICODE).Funkcija LZWdecode() vraca kodirani tekst u izvorni zaspis koji jednoznacno odreduje sliku:

5,6,B,255,255,0,B,0,0,255,1,3,1,1,3,1,3,1,3,1,3,1,3,5,

Funkcija crtaj() koristeci taj zapis u jednostavna 3 koraka iscrtava cijelu sliku:

• postavlja velicinu slike,

• oboji cijelu povrsinu u prvu boju,

• ide do kraja zapisa i redom alternirajuci preskace / boja zadani broj piksela (nailaskomna B vraca se na pocetak i mijenja boju).

4.6 Moguca unapredenja algoritma

Cijeli navedeni postupak moguce je dodatno unaprijediti na razne nacine.

Slika se za razliku od trenutnog promatranja po redovima moze promatrati i po stupcima.Zapis koji bi koristio manje znakova spremiti u memoriju a jednim znakom na pocetku da-toteke oznaciti nacin na koji je slika promatrana.

Zarezi i slovo B koristeni su zbog lakse implementacije. Mogla bi se razviti struktura zapisaprilagodene slike bez zareza koja bi koristila npr. dvoznamenkaste brojeve koji bi oznacavalikoliko piksela treba preskociti i jednoznamenkaste brojeve koji bi oznacavali koliko pikselatreba obojiti. Takoder, najbolju nadenu takvu strukturu spremiti u memoriju a u prvi znakdatoteke staviti informaciju o strukturi.

Najvece unapredenje bilo bi koristenjem hibridnog kodiranja. Uz LZW algoritam upotri-jebiti i Huffmanovo kodiranje jer u trenutnoj implementaciji svaki koristeni znak zauzima 16bitova memorije.

Page 25: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 25

5 Usporedba dobivenih rezultata

Napravljen je veliki niz testiranja na raznim vrstama slika. Razradeni format slike usporedenje sa: PNG, JPG i GIF formatom. Svi rezultati dostupni su na sljedecoj adresi:http://www.mathos.hr/~ddrmic/diplomski/rezultati

Najveca prednost ovog formata vidljiva je na sljedecoj trivijalnoj slici. Cijelu sliku moguceje opisati sa 20-ak znakova koji definiraju dimenzije i boju cijele slike. Zapis je manji 6600puta od nekomprimiranog BMP formata te 50 puta od komprimiranog JPG formata.

Slika 300 × 300 (BMP = 263.67 KB)

PNG = 2.3 KB JPG = 2.1 KB

GIF = 24.1 KB TXT1B = 0.04 KB

Page 26: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 26

Sljedeca slika prikazuje QR kod2. Izvorna slika nema ostre prijelaze sa crne na sivu boju (naprijelazima postoji vise nijansi boja). Forsiranjem samo dvije boje zapis u ovom formatunuzno dobiva ostre prijelaze a zapis slike je 4 puta manji od PNG formata.

Slika 348 × 348 (BMP = 355 KB)

PNG = 15.7 KB JPG = 34.3 KB

GIF = 37.9 KB TXT2B = 3.8 KB

2eng. Quick Response, odnosno brzi odgovor

Page 27: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 27

Sljedeca slika prikazuje uslikan novinski clanak. Izvorna slika koristi 241 jedinstvenu bojuzbog nesavrsenosti fotoaparata i razlicitog osvjetljenja papira. Koristenjem 2 boje dobije se5 puta manji zapis od GIF formata ali i nazubljeni rubovi slova. Naglasena je jednostavnazamjena tamno sive u crnu i svijetlo sive u bijelu boju. Napravljena je i slika sa 4 koristeneboje kod koje je nazubljenost uvelike smanjena ali i zapis slike povecan.

Slika 594 × 600 (BMP = 1044 KB)

PNG = 441 KB JPG = 174 KB

GIF = 105 KB TXT2B = 20.2 KB

TXT2B = 20.2 KB TXT4B = 80.8 KB

Page 28: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 28

Sljedeca slika prikazuje umanjenu izvornu sliku Hrvatske sa ucrtanim granicama opcina.Prilikom smanjivanja unistena je kvaliteta slike i granice se vise ne vide jasno. Takoder,prisutan je i bijeli sum na slici. Spremanjem slike u ovaj format koristenjem 3 optimalneboje uklanja se sum i dobiva se lijepa ostra slika bez granica opcina. Zapis je manji 12 putaod GIF formata.

Slika 643 × 636 (BMP = 1198 KB)

PNG = 596 KB JPG = 233 KB

GIF = 142 KB TXT3B = 11.6 KB

Page 29: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 29

Sljedeca vektorska slika snimljena je u rasterske formate. Prvo je koristeno 5 boja gdjeje zapis ispao 3 puta manji od JPG formata, odnosno 16 boja (za postizanje kvalitetnijihprijelaza na rubovima) gdje je zapis 1.6 puta manji od JPG formata. Slika kvalitetom nezaostaje od PNG formata, dok je primjerice na GIF formatu vidljiv pad kvalitete zbogkoristenog sjencanja.

Slika 326 × 310 (BMP = 296 KB)

PNG = 35.0 KB JPG = 28.1 KB

GIF = 33.2 KB TXT5B = 9.77 KB

TXT16B = 17.5 KB

Page 30: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 30

Jos jedna vektorska slika snimljena u rasterske formate gdje se novi format testirao na pro-blematiku kosih linija. Prakticno je nemoguce savrseno prikazati kosu liniju zbog cinjeniceda se pikseli na monitoru prikazuju kvadratima. Ipak, koristenjem samo 15 boja dobivenesu nenazubljene linije a zapis datoteke je 1.3 do 2.4 puta manji od postojecih formata.

Slika 302 × 302 (BMP = 267 KB)

PNG = 24.2 KB JPG = 15.6 KB

GIF = 13.8 KB TXT15B = 10.0 KB

Page 31: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 31

Sljedeca slika dolazi iz racunalne igre. Kod racunalnih igara od kljucne je vaznosti brzoucitavanje slika kako bi igrac imao glatku animaciju. U nedostatku dobrih hardverskihkomponenti igrac cesto ima priliku smanjiti rezoluciju piksela i tako dobiti bolju igrivostnaustrb kvalitete. Na ovom je primjeru pokazano kako bi igrac primjerice mogao izabrati 16ili 32 boje i na taj nacin ubrzati ucitavanje slika. Ipak, vec za 64 boje zapis slike ima manjukvalitetu a veci memorijski zapis od JPG formata.

Slika 533 × 300 (BMP = 468 KB)

PNG = 410 KB JPG = 74.4 KB

GIF = 78.9 KB TXT2B = 7.49 KB

TXT4B = 16.4 KB TXT8B = 29.1 KB

TXT16B = 44.7 KB TXT32B = 65.5 KB

TXT64B = 91.5 KB

Page 32: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 32

Sljedeca slika stvarne scene moze se naci primjerice uz neki clanak na internet portalima.Ovaj format mogao bi se iskoristiti na nacin da korisnik mobitela bira maksimalnu potrosnjupo slici za prijenos podataka putem interneta. Ucitavanjem umanjene slike na mobitelukljucne razlike u detaljima ne bi bile toliko vidljive, dok bi potrosnja bila manja.

Slika 598 × 399 (BMP = 699 KB)

PNG = 624 KB JPG = 106 KB

GIF = 190 KB TXT2B = 13.1 KB

TXT4B = 26.3 KB TXT8B = 46.9 KB

TXT16B = 73.9 KB TXT32B = 106 KB

Page 33: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 33

Za kraj, razradeni format testiran je na kompleksnoj slici realne scene koja u izvornomformatu koristi 116259 jedinstvenih boja. Odnosno jedna boja u prosjeku je koristena nasvega 1.19 piksela. Prikaz sa 64 boje vec daje zadovoljavajucu kvalitetu ali JPG se pokazaokao najkvalitetniji format za kompleksne slike.

Slika 474 × 294 (BMP = 408 KB)

PNG = 248 KB JPG = 93.6 KB

GIF = 115 KB TXT2B = 3.38 KB

TXT4B = 9.44 KB TXT8B = 20.6 KB

TXT16B = 32.7 KB TXT32B = 51.9 KB

TXT64B = 67.3 KB TXT128B = 95.6 KB

TXT256B = 118 KB

Page 34: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 34

6 Zakljucak

• Prednosti ovog formata:

– odlicna kompresija jednostavnih slika,

– pogodan za crteze,

– slike fontova,

– mogucnost uklanjanja bijelog suma sa slike reduciranjem boja,

– opcenito je dobar za slike koje se bez gubitka kvalitete mogu prikazati sa maloboja.

• Nedostaci ovog formata:

– program je spor u slucaju rada s velikim slikama te bi se trebao promijenitialgoritam trazenja boja,

– izvorne slike sa jako puno boja i nijansi prebacivanjem u ovaj format ili izgubena kvaliteti ili se velicina memorijskog zapisa poveca.

Generalni zakljucak je da ima mjesta za napredak u komprimiranju digitalnih slika.

Page 35: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 35

Literatura

[1] T. Acharya, P.S. Tsai, Jpeg2000 Standard For Image Compression:Concepts, Algo-rithms And Vlsi Architectures, John Wiley & Sons, 2005.

[2] G. Blelloch, Algorithms in the Real World: Lecture Notes (Fall 1997), 1998.

[3] J.D. Foley, A. Van Dam, Fundamentals of Interactive Computer Graphics, Addison-Wesley Pub, 1988.

[4] S. Fulton, J. Fulton, HTML5 Canvas, O’ Reilly Media, 2011.

[5] R.C. Gonzales, R.E. Woods, Digital Image Processing(2nd Edition), Prentice Hall, 2002.

[6] J.K. Korpela, Unicode Explained, O’ Reilly Media, 2006.

[7] J. Miano, Compressed Image File Formats: Jpeg, Png, Gif, Xbm, Bmp, Addison-Wesley Professional, 1999.

Page 36: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 36

Sazetak

U ovom diplomskom radu obradena je problematika optimizacije memorijskog zapisa digi-talnih slika. Opisani su najcesce koristeni formati za zapis digitalnih slika, te su istaknutenjihove prednosti i nedostaci. Takoder, osmisljen je novi format koji smanjenjem brojakoristenih boja uvelike smanjuje i memorijski zapis. Pritom koristeci algoritam za trazenjeoptimalnih boja kod kojih je greska slike minimalna i LZW algoritam koji naposljetku kodiradobiveni zapis. Usporedbom dobivenih rezultata pokazalo se da za odredene vrste slika noviformat daje puno bolje rezultate od postojecih, i to u smislu manjeg zauzeca memorije.

Page 37: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 37

Title and summary

The optimization issues of memorized digital pictures recording were processed in this gradu-ation paper. The most commonly used formats for digital pictures recording were described,and their advantages and disadvantages were emphasized. Also, a new format was designed,which greatly decreases memorized recording by decreasing the number of used colors. The-reby were used an algorithm for the search of optimal colors by which the defect of pictureis minimal and an LZW algorithm which finally codes the gained recording. By comparinggained results it was shown that for certain kinds of pictures a new format gives betterresults from the existing ones, in a sense of a lower memory usage.

Page 38: Danijel Drmi c - mathos.unios.hrmdjumic/uploads/diplomski/DRM06.pdf3.2 Formati digitalnih slika ... Rije c \pixel" je prvi puta upotrijebljena 1965. godine za opisivanje elementa video

Optimizacija memorijskog zapisa digitalne slike 38

Zivotopis

Roden 1985. godine u Osijeku. Osnovnoskolsko obrazovanje zavrsava u Dakovu 1999. go-dine. Tijekom osnovne skole sudjeluje na brojnim opcinskim, zupanijskim i regionalnimnatjecanjima iz matematike, fizike i informatike. Sudjeluje na drzavnoj smotri najboljih sof-tverskih radova hrvatske skolske mladezi 1999. godine. Iste godine upisuje Elektrotehnickui prometnu skolu u Osijeku, smjer tehnicar za mehatroniku. 2005. godine upisuje preddi-plomski studij matematike na Odjelu za matematiku Sveucilista J.J. Strossmayera u Osijeku.Uspjesno zavrsava studij 2009. godine uz zavrsni rad “Programsko okruzje za ucenje pos-tupaka zastite podataka” pod mentorstvom prof. dr. sc. Gorana Martinovica. Nakonzavrsenog preddiplomskog studija, upisuje diplomski studij matematike, smjer financijska iposlovna matematika. U svibnju 2011. godine dobiva Rektorovu nagradu za strucni rad podnazivom:“Web aplikacija za odredivanje tezinskog medijana tocaka u ravnini”.