Kompresija slike
Potreba za kompresijom slike
Ne raspakirana slika (kao *.bmp) u megapikselnoj rezoluciji
bila bi veličine 4MB i prevelika za efikasni prijenos i snimanje. Čak i u
100mbits mreži slici bi trebalo pola sekunde za prijenos. Zbog ovg razloga podaci
u slici se moraju komprimirati. Postoje različite metode
komprimiranja međutim generalno mogu se podijeliti u dvije grupe:
- kompresija bez gubitka podataka
- kompresija sa gubitkom podataka
Metode kompresije bez gubitka
podataka:
Ove metode osiguravaju identičnost dekompresovane i izvorne slike. Ovo je
vrlo važno u nekim područjima, npr. u medicini gdje je osim visoke
razlučljivosti potrebno i osigurati nepromijenjeno arhiviranje slika, što je i
zakonski regulisano.
Jedna od ovakvih metoda kompresije je i Run-length kodiranje koja koristi
činjenicu da su u mnogim fajlovima česti nizovi istih vrijednosti (npr. jako
korelisane slike). Ovaj algoritam provjerava fajl, te ubacuje specijalne znakove
(engl. ‘token’) svaki put kad naiđe na niz od dva ili više jednakih znakova.
Huffman kodovanje - Ovaj algoritam je razvio D. A. Huffman i temelji se
na činjenici da se neki znakovi pojavljuju češće nego neki drugi.
Na toj osnovi algoritam gradi težinsko binarno stablo (na
osnovu frekvencije pojavljivanja pojedinih znakova). Svakom
elementu tog stabla pridružuje se nova kodna riječ određena
pozicijom znaka u stablu. Najčešće ponavljani znak postaje korijen
stabla i njemu se pridružuje najkraća kodna riječ, dok kodna riječ
najrjeđe ponavljanog znaka može biti i dvostruko duža od samog
znaka.
Entropijsko kodovanje
- Najčešće se koristi pristup J.Ziv/Lempel
(tzv. Lempel/Ziv ili LZ) koji se zasniva na tome da koder i
dekoder sadrže jednak riječnik metasimbola od kojih svaki
predstavlja cijelu sekvenciju ulaznih znakova. Ako se
sekvencija ponovi nakon što je pronađen simbol za nju, onda
se ona zamjenuje tim simbolom. Kodovani podaci ne trebaju
sadržavati riječnik (nizovi znakova = simbol) budući da je
riječnik sadržan u koderu i dekoderu.
Kodovanje područja
- To je poboljšana verzija run-length kodovanja
koja iskorištava dvodimenzionalnu karakteristiku slika. Algoritam
pokušava pronaći pravougle regije jednakih karakteristika koje se
zatim koduju u opisnoj formi kao elementi s dvije tačke i
određenom strukturom. Cijela slika treba biti opisana da bi se
omogućilo dekodovanje bez gubitaka. Moguće performanse temelje se
na vrlo kompleksnom problemu pronalaženja najvećih područja
jednakih karakteristika.
Metode
kompresije sa gubitkom podataka:
Metode sa gubicima podataka zasnivaju se na modelima percepcije naseg oka
(više se kompresuju oni atributi slike koji manje doprinose ukupnom izgledu slike)
i uzrokuju degradaciju slike u svakom koraku (svakim slijedećim korakom
kompresije/dekompresije slika se degradira), ali najčešće omogućuju daleko
veće omjere kompresije nego metode bez gubitaka. Ove metode sastoje se od tri komponente :
- modelovanje slike
(definicija transformacije koja se koristi)
- kvantizacija parametara
(kvantizacija podataka dobijenih transformacijom)
- kodovanje
Prvi dio, modelovanje slike, usmjeren je na
iskorištavanje statističkih karakteristika slike (npr.
korelacija). Pokušava se da što manji broj koeficijenata u
transformisanom domenu sadrži što veći dio informacija originalne
slike. Ova faza najčešće ne rezultira nikakvim gubitkom
informacija.
Cilj kvantizacije je da smanji količinu
podataka potrebnu za predstavljanje informacija u novom domenu.
Kod kvantizacije u većini slučajeva dolazi do gubitka informacija.
Kodovanje optimizuje reprezentaciju
informacija, te se može unijeti detekcija grešaka.
Performanse algoritama za kodovanje s gubicima
se najčešće izražavaju preko dva faktora:
- faktor kompresije
- distorzija proizvedena
nakon rekonstrukcije
Prvi faktor je objektivan, dok drugi uveliko
zavisi o samom izboru slike.
Danas se najčešće koristi transformaciono
kodovanje kao što je npr. JPEG budući da postoje već neki oblici
standardizacije procesa. |