You are on page 1of 76

KOMPRESIJA PODATAKA

DISKRETNA KOSINUSNA TRANSFORMACIJA

Doc. dr. Adis Alihodžić

Sarajevo
2018
MOTIVACIJA ZA UVOĐENJE KOMPRESIJE PODATAKA
Potreba za komunikacijom javila se pojavom prvih ljudi na Zemlji. Razvojem ljudskog društva, otkrivanjem novih tehnologija,
načini i sredstva za komunikaciju ubrzano su se razvijali. U posljednjih pedesetak godina dogodila su se dva su važna
događaja: otkriće poluprovodnika i prelaz sa analogne na digitalnu tehnologiju.

Pojavom poluprovodnika počinje ubrzani razvoj mikroelektronike i računarske tehnologije kao temelja razvoja komunikacijskih
tehnologija. Digitalizacija sisitema omogućila je zbližavanje telekomunikacija, radiokomunikacija i računarstva. Kao primjer
uzmimo televizijski uređaj, mobilni telefon i računar. U skorijoj budućnosti se očekuje «izumiranje» ovih uređaja odnosno
njihovo stapanje u jedan uređaj.

Digitalni sistemi imaju niz prednosti nad analognim u obradi i čuvanju signala, stoga se u modernim komunikacijama koriste
isključivo digitalni signali. Historijski gledajući tok razvoja tehnologije, može se zaključiti da je najprije razvijena tehnologija za
prenos podataka, zatim govora, a tek onda slike. Slika je sadržajno najbogatija informacija. Nedostaci slike, a time i
videosignala, su veliki tehnički zahtjevi za njen prenos na daljinu.

Moderni komunikacijski sistemi kao što su; računarske mreže (Internet), mobilna telefonija (UMTS) i digitalna televizija moraju
osigurati prenos digitalnog videosignala i digitalnog zvuka, koji se koriste kod videokonferencija, interaktivne televizije,
medicinskih i svemirskih istraživanja. Najveći problem za uspješnu komunikaciju jeste ograničen kapacitet prenosnog medija.
Razvoj prenosnih medija većeg kapaciteta teče sporije od razvoja elektronskih sklopova, što ima za posljedicu da elektronika
može procesirati mnogo više informacija nego što je medij može prihvatiti. Činjenica je da količina informacije koju je
potrebno prenijeti neprestano raste, a prenosni sistem ima ograničen kapacitet. Posljedica je zagušenje prienosnog medija
odnosno povećanje vremena potrebnog da bi se informacija uspješno transmitirala. Kao jedno od rješenja se nameće
kompresija podataka odnosno informacija. Razmotrimo prvo kompresiju mirnih slika.
KOMPRESIJA MIRNIH SLIKA

Analogna slika se sastoji od linija, pri čemu svaka takva linija je opisana kontinuiranim talasnim oblikom. Kod digitalnih slika
linija sadrži diskretne talasne oblike, a svaki takav diskretan talasni oblik zove se element slike. Diskretne vrijednosti svih
elemenata slike potrebno je kvantizirati s n bitova. Broj potrebnih bitova određeuje se na sljedeći način:

𝑛 = log 2 𝐴

pri čemu A predstavlja najveću diskretnu vrijednost.

Kompresija informacija se definirana kao postupak smanjenja broja bitova upotrijebljenih za prikaz pojedinog elementa
slike. Uvodi se pojam stepen kompresije (eng. Compression Ratio, CR), koji je definiran kao omjer broja bitova po elementu
originalne slike i broja bitova po elementu komprimirane slike:

𝑛𝑒𝑜𝑝ℎ𝑜𝑑𝑎𝑛_𝑏𝑟𝑜𝑗_𝑏𝑖𝑡𝑜𝑣𝑎_𝑧𝑎_𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑒_𝑜𝑟𝑖𝑔𝑖𝑛𝑎𝑙𝑛𝑒_𝑠𝑙𝑖𝑘𝑒
𝐶𝑅 =
𝑛𝑒𝑜𝑝ℎ𝑜𝑑𝑎𝑛_𝑏𝑟𝑜𝑗_𝑏𝑖𝑡𝑜𝑣𝑎_𝑧𝑎_𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑒_𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖𝑟𝑎𝑛𝑒_𝑠𝑙𝑖𝑘𝑒

Ako pretpostavimo da je broj bitova po elementu originalne slike 16, a da je broj bitova po elementu kompresirane slike 2,tada
je stepen kompresije dat sa:
16
𝐶𝑅 = =8
2
TIPOVI KOMRESIJE
Postupci kompresije mogu biti sa i bez gubitaka informacija.

Kompresija bez gubitaka (eng. Lossless compression) ne može postići značajno smanjenje broja bitova, ali ne smanjuje
kvalitetu slike. Neki od postupaka kompresije bez gubitaka su:

• Kodiranje dužine niza (eng. Run Lenght Coding, RLC);


• Kodiranje sa promjenjivom dužinom kodne riječi (eng. Variable Lenght Coding, VLC);
• Huffmanovo kodiranje (eng. Huffman coding);
• Kodiranje područja;
• Diferencijalna impulsno-kodna modulacija (eng. Differential Pulse Code Modulation, DPCM).

Kompresija sa gubicima (eng. Lossy compression) omogućuje veliki stepen kompresije uz neznatan pad kvalitete. Neki od
postupaka sa gubicima su:

• transformacijsko kodiranje, vektorska kvantizacija, fraktalno kodiranje, Spline aproksimacijske metode, aproksimacijske
metode segmentacijom.

U normama JPEG i JPEG2000 koriste se kombinacije postupaka kompresije sa gubicima i bez gubitaka. Stoga JPEG i JPEG2000
nazivamo hibridnim kompresijskim postupcima odnosno hibridnim metodama.

Kompresija slike se prije svega bazira na statističkim svojstvima slike, te nesavršenosti ljudskog vizuelnog sistema!!!
Statistička svojstva slike
Elementi monohromatske slike poprimaju različite diskretne vrijednosti koje ovise o sadržaju slike. Te vrijednosti se
kvantiziraju sa n bitova, čime se dobija 2𝑛 − 1 kvantiziranih nivoa sivog. Učestalost pojavljivanja pojedinih kvantiziranih nivoa
sivog odnosno diskretnih vrijednosti na slici, ovisi o sadržaju slike. Zamislimo sliku kao 2D funkciju koju možemo prikazati
matricom A sa elementima 𝑎𝑖𝑗 . Elementi matrice su elementi slike. Označimo sa 𝑃 vjerovatnosnu funkciju. Tada se
vjerovatnoća P da će se pojaviti neki element slike A na mjestu 𝑎𝑖𝑗 sa diskretnom vrijednošću 𝛼𝑘 izražava ovako:

𝑀 𝑁
1
𝑃 𝑎𝑖𝑗 = 𝛼𝑘 = ෍ ෍ 𝑎𝑖𝑗
𝑀𝑁
𝑖=1 𝑗=1
pri čemu 𝑀 ⋅ 𝑁 predstavlja ukupan broj elemenata slike.

Drugim riječima, gornja formula kaže da se vjerovatnoća pojavljivanja diskretne vrijednosti 𝛼𝑘 može izraziti kao omjer
elemenata slike koji poprimaju vrijednost 𝛼𝑘 i ukupnog broja elemenata. Ovo nas podsjeća na normalizirani histogram slike.

Težina odnosno količina korisne informacije (u bitovima) koju nosi odgovarajući element 𝛼𝑘 slike A definira se kao:

𝐼 𝛼𝑘 = − log 2 𝑃(𝛼𝑘 )

Na osnovu ovoga jasno je da element koji se više pojavljuje ima veću težinu od elementa koji se rijeđe pojavljuje, što dalje
implicira da svi elementi na slici nisu jednako važni. Zbog 0 ≤ 𝑃 𝛼𝑘 ≤ 1, jasno je da je log 2 𝑃 𝛼𝑘 < 0, pa je 𝐼 𝛼𝑘 ≥ 0.
Statistička svojstva slike – nast.
Na osnovu svojstva logaritamske funkcije imamo da je logaritam od veće vjerovatnoće 𝑃 𝛼𝑘 po apsolutnoj vrijednsoti manji
od logaritma manje vjerovatnoće. Iz toga se zaključuje da elementi slike koji poprimaju diskretnu vrijednost veće
vjerovatnoće ne sadrže baš korisne informacije. Takvi elementi slike se mogu grublje kvantizirati. Na ovom principu se bazira
entropijsko kodiranje. Prosječna količina korisne informacije koju nose svi elementi slike naziva se entropija. Entropija neke
slike A se definira kao:
𝐻 𝐴 = − ෍ 𝑃 𝛼𝑘 log 2 𝑃 𝛼𝑘
𝑘
Ukoliko je neka slika A ravna tako da sadrži samo jednu vrijednost 𝛼𝑘 , tada je vjerovatnoća 𝑃 𝛼𝑘 =1, što dalje znači da je
entropija 𝐻 𝐴 =0 odnosno da imamo minimalnu entropiju. Ukoliko se na slici ne nalaze niti koje dvije iste vrijednosti, tada je
entopija maksimalna i definira se kao:
log 2 𝑆

pri čemu je S maksimalana broj upotrijebljenih nivoa sivog, tj. 𝑆 = 2𝑛 − 1. U ovom slučaju je neophodno najmanje n bitova
da se izvrši prikaz svih diskretnih vrijendosti.

Ako se statistička redudansa podataka izrazi ovako: 𝑅 𝐴 = log 2 𝑆 − 𝐻(𝐴), tada dobijamo da s povećanjem entropije,
redudansa se smanjuje i obrnuto.

Entropija teoretski predstavlja maksimum kompresije koja se izvodi pomoću neke entropijske metode. Entropijske metode
koje se koriste u u JPEG normi su: Huffmanovo i aritmetičko kodiranje.
Ljudski vizuelni sistem
Na slici osim statističke, postoji i subjektivna redudancija koja se javlja uslijed nesavršenosti odnosno tromosti ljudskog
vizuelnog sistema. Slika može sadržavati niske i visoke prostorne frekvencije. Ljudski vizuelni sistem ne vidi visoke prostorne
frekvencije, što znači da elementi slike koji generiraju visoke frekvencije, predstavljaju višak informacije (vidi sliku ispod).
Ljudsko oko neće primijetiti svaki element slike, već možda svaki treći ili peti, itd.

Veće prostorne frekvencije

Visoke frekvencije nastaju uslijed: naglih prelaza, puno sitnih detalja i naglih promjena boje na malom području slike. To
znači da susjedni elementi slike poprimaju diskretne vrijednosti velike apsolutne razlike. Važno je naglasiti da visoka
statistička redudansa ne znači i visoku subjektivnu redudansu. Naime, ako se crno-bijela slika kvantizira sa jednim bitom,
statističke redudancije nema, jer elementi slike mogu poprimiti samo dvije diskretne vrijednosti: 0 i 1. Međutim, ako takva
slika ima mnogo naglih promjena crno-bijelo, frekvencijska analiza slike pokazuje zastupljenost visokih prostornih frekvencija.
Dakle, subjektivna redudansa je velika, dok statističke redudanse uopće nema.
Mjere za objektivno ocjenjivanje kvalitete slike

Ocjena kvalitete slike daje podatak o tome kako i u kojoj mjeri postupci kompresije sa gubicima djeluju na kvalitetu slike.
Sliku možemo posmatrati kao matricu, pri čemu su elementi matrice elementi slike. Postupak ocjenjivanja se svodi na
određivanje razlike između pojedinih elemenata izlazne i ulazne matrice. Time je omogućeno poređenje učinkovitosti
različitih kompresijskih postupaka, kao i učinkovitosti istog kompresijskog postupka, ali uz različite stepene kompresije.

Uticaj kompresije sa gubicima prikazan je na gornjoj slici. Na ulazu u sistem kompresije imamo matricu A formata 𝑀 × 𝑁 sa
elemntima 𝑎𝑖𝑗 , pri čemu 𝑖 = 1, ⋯ , 𝑀, 𝑗 = 1, ⋯ , 𝑁, a 𝑀 × 𝑁 je ukupan broj elemenata slike. Na izlazu iz sistema za

kompresiju nastaje matrica A‘ sa elementima 𝑎𝑖𝑗 . Razlika matrica A i A' predstavlja gubitak kvalitete odnosno grešku. Greška
je veća što je veći stepen kompresije. Stepen kompresije korisnik može podešavati prema želji, čime direktno djeluje na
količinu podataka potrebnih za prikaz komprimirane slike, te kvalitetu rekonstruirane slike.
Mjere za objektivno ocjenjivanje kvalitete slike – nast.

Razliku matrica A i A' moguće je prikazati pomoću srednje kvadratne greške (eng. Mean Square Error, MSE), koja se definira
ovako:

𝑀−1 𝑁−1
1 ′ 2
𝑀𝑆𝐸 = ෍ ෍ 𝑎𝑖𝑗 − 𝑎𝑖𝑗
𝑀𝑁
𝑖=0 𝑗=0

Amplituda elementa slike odnosno intenzitet nivoa sivog uzima vrijednosti iz zatvorenog intervala 0,2𝑛 − 1 , pri čemu je n
broj bitova potrebnih za prikaz amplitude elemenata originalne slike. MSE ne uzima u obzir amplitudu elemenata slike, pa se
zbog toga treba uzeti u obzir i vršni omjer signal/šum (eng. Peak Signal to Noise Ratio, PSNR), koji se ovako definira:

2𝑛 − 1 2𝑛 − 1 2
𝑃𝑆𝑁𝑅 = 20 log10 = 10log10
𝑀𝑆𝐸 𝑀𝑆𝐸

Ukoliko uzmemo da se za predstavljanje elementa slike (piksela) koristi 8 bita, tj. n=8, tada PSNR poprima oblik:

255 255 2
𝑃𝑆𝑁𝑅 = 20 log10 = 10log10
𝑀𝑆𝐸 𝑀𝑆𝐸
Mjere za objektivno ocjenjivanje kvalitete slike – nast.

PSNR daje objektivnu mjeru kvalitete komprimirane (kompresirane) slike. Ako se zanemari matematička nepreciznost pri
računanju, PSNR je apsolutno tačan u objektivnom ocjenjivanju slike. Međutim, mjerodavna mjera za ocjenu slike je ljudski
vizuelni sistem, tj. subjektivna ocjena slike. Naime, PSNR se ovisno o raspodjeli greške na rekonstruiranoj slici, može veoma
razlikovati od subjektivne ocjene slike. Ukoliko se radi o neprimjetnom prostornom pomaku sadržaja slike, PSNR daje lošu
objektivnu ocjenu, a subjektivni dojam je dobar. Ukoliko je pak velika greška sabrana u malo područje slike, subjektivni dojam
je loš, a PSNR daje dobru objektivnu ocjenu. Stoga je PSNR zgodno koristiti tokom komparacije različitih kompresijskih
postupaka na istoj testnoj slici.

Za objektivno ocjenjivanje razvijena je programska podrška odnosno simulatori ljudskog vizuelnog sistema. Takvi programi
uzimaju u obzir sva obilježja ljudske vizuelne percepcije. Psihovizuelnim istraživanjima je pokazano da postoje različite vrste
izobličenja na slici i da ljudski vizuelni sistem različito reagira na njih. Svakoj vrsti izobličenja se dodjeljuje određena težinska
vrijednost. Kao rezultat se dobija kvantitativna vrijednost koja daje ocjenu od 1 do 5.
Mjere za subjektivno ocjenjivanje kvalitete slike
Preporuka ITU-R BT.500 predviđa nekoliko metoda za subjektivno ocjenjivanje komprimirane slike. Prva metoda se zove
„Dvopodražajni postupak sa ocjenom izobličenja slike“. Posmatrač posmatra dvije sadržajno iste slike, referentnu i testnu.
Referentna slika je nekomprimirana slika, dok testna slika može biti komprimirana, ali i nekomprimirana. Na taj se način
provjerava koncetracija posmatrača. Posmatrači gledaju referentnu sliku, a nakon tri sekunde gledaju testnusliku. Za svaku
testnu sliku daju ocjenu na osnovu sljedeće tabele:
Ocjena Gubitak kvaliteta slike
5 Ne primjećuje se
4 Malo se primjećuje
3 Kvalitet slike je malo oslabljen
2 Kvalitet slike je oslabljen
1 Kvalitet slike je jako oslabljen

Druga metoda je alternativna i zove se Dvopodražajni postupak sa ocjenom kvalitete slike . Posmatrači ocjenjuju referentnu i
testnu sliku, ali pri tome ne znaju koja je referentna, a koja testna. Ocjena kvalitete referentne i testne slike se vrši opisnim
ocjenama (pridjevima) u odnosu na apsolutnu kvalitetu slike: izvrsno, dobro, gledljivo, jedva gledljivo, negledljivo. Često se
umjesto opisnih ocjena koristi skala s kontinuiranim vrijednostima od 0 do 100, koje označavaju raspon od negledljive do
izvrsne ocjene. Zatim se računa razlika ocjena refernetne i testne slike, koja također, može biti u rasponu od 0 do 100 i
predstavlja nivo gubitka kvalitete. Postoji mogućnost negativnih vrijednosti u slučaju da posmatrač smatra kvalitetu testne
slike boljom od referentne slike.
Mjere za subjektivno ocjenjivanje kvalitete slike – nast.

Rezultati subjektivnog ocjenjivanja ovise o nizu uvjeta. Potrebno je osigurati jednake uvjete za sve posmatrače u nekom
laboratoriju. Idealno bi bilo kada bi svi laboratoriji za ovakva mjerenja imali iste uvjete. To su slijedeći uvjeti:

• isti monitor za sve posmatrače;


• jednaka udaljenost posmatrača od monitora;
• jednak nivo osvijetljenja;
• jednak vizuelni izgled labaratorija;
• jednaka vlaga, temperatura i pritisak zraka.

Zbog različitih uvjeta, za istu testnu sliku, mogu nastati velike razlike u njenoj ocjeni. Naravno, ocjene ovise i o uputstvima
koje posmatrači dobijaju od instruktora. Ponekad se posmatrači upute da obrate pažnju na detalje na slici, a ponekad na
sliku kao cijelinu. Veliki uticaj može imati i interpretacija opisnih ocjena, jer se one različito prevode na različitim jezicima. Da
bi se razlike u ocjenjivanju smanjile, potrebno je povećati broj posmatrača.
TRANSFORMACIJSKO KODIRANJE

Transformacijsko kodiranje je postupak kompresije sa gubicima. Blok shema transformacijskog kodiranja prikazana je na slici
ispod:

Transformacijsko kodiranje se sastoji od dva postupka: transformacije signala iz prostorne u frekventnu domenu, te
kvantiziranja. Diskretna transformacija vrši frekventnu analizu nad diskretnim talasnim oblicima slike. Na osnovu promjena
diskretnih vrijednosti na slici, transformacija prepoznaje koje prostorne frekvencije slika generira. No ne samo da prepoznaje
prostorne frekvencije nego ih prikladno grupira. Svaka diskretna transformacija mora zadovoljiti slijedeće uvjete:

▪ Mora biti reverzibilna;


▪ Mora imati minimalnu srednju kvadratnu grešku;
▪ Mora se jednostavno i brzo računati;
▪ Mora omogućiti efikasnu preraspodjelu energije slike u koeficijente niže prostorne frekvencije.
TRANSFORMACIJSKO KODIRANJE – nast.

Transformacijsko kodiranje propagira dijeljenje slike na manje dijelove tzv. blokove. Blokovi su uglavnom jednake veličine,
najčešće veličine 8x8 odnosno 64 elemenata slike. Diskretna transformacija se primjenjuje na svaki blok zasebno. Blok
možemo zamisliti kao matricu X. Rezultat transformacije je matrica Y. Elementi matrice Y više nisu amplitude elemenata slike
i nazivaju se transformacijski koeficijenti. Transformacija provodi frekvencijsku analizu nad elementima bloka. Ona također
obavlja i koncetriranje energije, koju nose elementi bloka, u niskofrekvencijske transformacijske koeficijente. U matrici Y
koeficijenti su grupirani tako da se od elementa matrice y00, prema elementu yMN, u dijagonalnom smjeru, prvo pojavljuju
niskofrekvencijski, pa zatim visokofrekvencijski koeficijenti. Element y00 se naziva istosmjerni koeficijent (DC). Njegova
vrijednost je najveća i on nosi većinu energije elemenata slike u bloku. Vrijednosti preostalih transformacijskih koeficijenata
opadaju u dijagonalnom smjeru. Uloga transformacije je da prenese što više energije iz visokofrekvencijskih koeficijenata na
istosmjerni koeficijent i na što manje koeficijenata koji ga okružuju. Transformacija ne unosi gubitke niti provodi kompresiju.
Transformacija priprema koeficijente za dalju obradu, tj. za kvantizaciju.

Kvantizacija transformacijskih koeficijenata je postupak koji unosi gubitke. Kvantizacijom se uklanja određen broj
visokofrekvencijskih koeficijenata, a preostali se kvantiziraju s manjom preciznošću. Postupak kvantizacije je prilagođen
ljudskom vizuelnom sistemu, jer ljudsko oko ne vidi visoke prostorne frekvencije, pa ih ne treba prenositi dalje. Mijenjajući
parametre kvantizacije, korisnik može uticati na kvalitetu komprimirane slike. Ukoliko se ukloni previše visokofrekvencijskih
koeficijenata, na rekonstruiranoj slici se pojavljuje vidljivost rubova blokova na koju je oko veoma osjetljivo. Kvantizacija je
definirana kao cjelobrojno dijeljenje transformacijskih koeficijenata sa elementima kvantizacijske matrice.
TRANSFORMACIJSKO KODIRANJE – nast.

U pogledu učinkovitosti koncetriranja energije, najpogodnija je Karhunen Loeveova transformacija (KLT). Međutim, sa
aspekta složenosti postupka računanja, KLT transformacija je neprihvatljiva. KLT ima promjenjiv algoritam računanja za
različite blokove slike, što je za komprimiranje slike u realnom vremenu neprihvatljivo. KLT za svaki blok računa
autokorelacijsku funkciju, te svaki blok ima svoju jezgru transformacije. U praksi se koristi cijeli niz diskretnih transformacija
koje imaju nešto slabiju efikasnost, ali su brze i pogodne za kompresiju u realnom vremenu. To su:

• Haarova transformacija;
• Walsh- Hadamardova transfromacija;
• Slantova transformacija;
• Diskretna Fourierova transformacija (DFT);
• Diskretna kosinusna transformacija (DCT);
• Diskretna wavelet transformacija (DWT).
JPEG – Hibridna tehnika za kompresiju
JPEG norma je pogodna za kompresiju slika koje imaju blage prelaze, dok oštrih prelaza ima
veoma malo. Koristi se za kompresiju monohromatskih slika sa nivoima sivog, za slike u boji
kod kojih nema puno promjena boja, fotografija, skeniranih slika i skeniranih fotografija,
umjetničkih dijela kontinuiranog tona.

JPEG nije pogodan za slike s puno naglih prelaza, slike u boji s puno objekata i detalja čije se
boje razlikuju, crtane slike, ikone, grafove.

JPEG omogućava stepen kompresije do 24:1 bez uočljivog gubitka kvaliteta slike. Kod
primjena, gdje kvaliteta nije bitna, moguće je postići stepen kompresije čak do 100 puta.
Kvaliteta slike ovisi o brzini prenosa odnosno o broju bita iskorištenih za kodiranje uzorka
slike i klasificira se prema tablici ispod:
Joint Photograph Expert Group (JPEG)
Kontinuiranim razvojem multimedijskih i Internet aplikacija, zahtjevi nad tehnologijom neprestano rastu.
Dosadašnji standardi za kompresiju mirnih slika više ne mogu udovoljiti svim zahtjevima. Stoga se još od 1997
godine radi na razvoju nove norme za kompresiju mirnih slika, tzv. JPEG2000 norme. Razvoj norme teče unutar, već
opisane, JPEG grupe. Predloženo je da se JPEG2000 sastoji od više dijelova. Zasad je u planu osam dijelova. Već je
2000 godine usvojeno da JPEG2000 međunarodna norma za kompresiju mirnih slika. JPEG2000 je zamišljen kao
nadopuna na JPEGnormu, a ne kao zamjena, popravljajući nedostatke JPEG norme, te uvodeći niz novih
mogućnosti. JPEG2000 će naći primjenu i u područjima koja dosada nisu koristila kompresiju. Glavne osobine
JPEG2000 kodeka su:
• Veća subjektivna i objektivna kvaliteta slike, posebno na nižim brzinama prenosa, u odnosu na JPEG postupak
kompresije;
• Podržava kompresiju sa gubicima i bez gubitaka monohromatskih slika sa dva ili više nivoa, slike u boji, te slike sa
više komponenata;
• Progresivna rekonstrukcija obzirom na tačnost uzoraka i rezoluciju;
• Mogućnost kodiranja područja od interesa (eng. Region of Interest Coding, ROI);
• Slučajan pristup kodiranom toku podataka;
• Neosjetljivost na greške bitova;
• Otvorena arhiktetura;
• Opis slike na osnovu sadržaja;
• Neosjetljivost na greške u prenosnom kanalu, itd.
SEKVENCIJSKO KODIRANJE U JPEG NORMI

Sekvencijsko kodiranje je osnovni postupak kompresije u JPEG normi. U praktičnim


primjenama se pod JPEG kodiranjem podrazumijeva sekvencijsko kodiranje.

Opća blok shema JPEG kodera i dekodera monohromatske slike prikazana je na slikama na
sljedećim slajdovima.
Blok shema JPEG kodera
Blok shema JPEG dekodera
Podjela slike na blokove
Opće je poznato da su susjedni elementi slike na prirodnim slikama veoma jako dobro
korelirani. Kako bi transformacija bilo što brža i efikasnija, slika se dijeli na kvadratne
blokove veličine 8x8 elemenata slike.

Svaki blok sadrži 64 elemenata slike, tj. vrijednosti njihovih amplituda. Ako pretpostavimo
da imamo monohromatsku sliku u bitmap formatu veličine 256x256, podjelom slike u
blokove veličine 8x8, nastaje 1024 blokova.

Za potrebe ovog predavanja upotrijebit ćemo monokromatsku testnu sliku «Baboon»


veličine 256x256 piksela, pri čemu su sa «A» i»B» označeni blokovi na slici koji će biti
predmet DCT kompresije .

Blok A

Blok B
Podjela slike na blokove

Postavlja se pitanje zašto se veličina blokova uzima da bude 8x8?

U vrijeme donošenja standarda blokovi veličine 16x16 i više, nisu dolazili u obzir radi
prevelikih hardverskih zahtjeva. DCT transformacija pri proračunu svakog transformacijskog
koeficijenta prolazi kroz cijeli blok. Vrijeme računanja raste s porastom veličine bloka. Osim
toga 8x8 blokovi daju zadovoljavajuće rezultate. Ako bi se slika podijelila u manje blokove,
npr. s 2x2 ili 4x4, tada DCT ne bi bila učinkovita u otklananju redudancije odnosno na
pojavu šuma.
Diskretna kosinusna transformacija
DCT
Nakon podijele slike u blokove slijedi postupak transformacijskog kodiranja.

Prvi korak transformacijskog kodiranja svodi se na upotrebu neke transformacije.

JPEG norma koristi poznatu diskretnu dvodimenzionalnu kosinusnu transformaciju (DCT -


Discrete Cosine Transform).

1974. godine Ahmed, Natarajan i Rao dokazali su da DCT daje optimalne rezultate u
pogledu zadovoljenja osnovnih uvjeta koje transformacija treba zadovoljiti. DCT je slična
diskretnoj Fourierovoj transformaciji (DFT-Discrete Fourier Transform), ali za razliku od nje
ima realnu jezgru i nema redudantnih kompleksno-konjugiranih parova. Jezgra
transformacije je jednaka za sve blokove, što omogućava veću brzinu izračunavanja DCT-a.

DCT je seperabilna transformacija, što znači da se može posebno primijeniti na vrste i


kolone matrice slike.

DCT transformacija koristi kosinusne funkcije čiji su argumenti diskretni talasni oblici .
1D Diskretna Kosinusna Transformacija
• Poznato je da se primijenom DCT-e veoma efikasno mogu ukloniti nedostaci DFT-
e.
• U praksi postoji različite definicije raznih varijanti DCT.e.
• Mi ćemo 1D DCT-u ovdje definirati kao:

N −1
1 N −1
(2n + 1) k
C(0) =
N
 x(n)
n=0
C( k ) =
2
N
 x(n) cos
2N
n=0

za k=0,...,N-1
Inverzna 1D DCT
• Mi ćemo inverznu 1D DCT-u ovdje definirati kao:

1 2 N −1
(2n + 1) k
x(n) =
N
C(0) +
N
 C(k ) cos
k =1 2N

• Kako se DCT puno koristi u digitalnoj obradi slike, postoje brzi algoritmi za njeno izračunavanje, a
koji se u osnovi svode na to da se DCT svede na DFT, a za njeno računanje postoji brza Fourijeova
transformacija, tj. dobro poznati FFT algoritam.

• U MATLAB-u se 1D DCT-a računa upotrebom ugrađene funkcije dct, dok se inverzna 1D DCT-a
računa pozivanjem funkcije idct.
2D DISKRETNA KOSINUSNA TRANSFORMACIJA (2D DCT)

I za ovu transformaciju ne postoji jedinstven način da se ona predstavi.

Najjednostavnija tehnika je da se 1D DCT-a računa po redovima, pa da se kasnije 1D DCT računa po kolonama u odnosu
na rezultujuću matricu.

Postoje naravno i druge tehnike za direktno računanje 2D DCT.

Mi ćemo za potrebe ovih predavanja upotrijebiti sljedeću formu 2D DCT-e:


INVERZNA 2D DISKRETNA KOSINUSNA TRANSFORMACIJA (2D IDCT)

Za naše potrebe, inverznu 2D diskretnu kosinusnu transformaciju (2D IDCT) računamo na osnovu ove formule:

pri čemu su M i N broj redova i kolona matrice nad kojom se vrši DCT-a, dok su C(u) i C(v) su konstantni članovi.

Pomoću funkcije f(x,y) se predstavljaju diskretne vrijednosti piksela odnosno intenziteti slike u bloku s koordinatama x i
y, kao što se vidi na slikama na sljedećm slajdu. Kao rezultat DCT-a nastaje matrica s vrijednostima transformacijskih
koeficijenata F(u,v) s koordinatama u i v.
Ulazni i izlazni parametri 2D DCT-e
RAČUNANJE 2D DCT-e U MATLAB-U

Naredba za 2D DCT u MATLAB-u je dct2, dok je inverzna idct2.

Kod 2D DCT (ni kod 1D) nije potrebno vršiti preuređivanje koeficijenata.

Na sljedećem slajdu je prikazan logaritam DCT koeficijenata za sliku Baboon.

“niskofrekventni
koeficijenti” sa izuzetno
niskim vrijednostima
koeficijenata, ovi koeficijenti
predstavljaju detalje slike

“visokofrekventni
koeficijenti” sa izuzetno
visokim vrijednostima
koeficijenata, ovi koeficijenti
predstavljaju osvjetljaj slike ili
ivice
2D DCT i 2D IDCT za JPEG format
Kod JPEG-a se koristi kvadratna matrica veličine 8x8 piksela. Dakle, za M=N=8, dobijamo nove jednačine za 2D DCT-u i
2D IDCT-u:

Na sljedećoj slici prikazani su osnovni talasni oblici 8x8 DCT-e, pri čemu mjesto talasnog oblika na slici odgovara mjestu
koeficijenta u DCT bloku.
Osnovni talasni oblici DCT-e
Analiza 2D DCT-e

Na osnovu definicije DCT-e da bi se odredili svi DCT koeficijenti, neophodno je da se kroz sve elemente bloka prođe
jednom.

Da bi se dobio jedan DCT koeficijent, potrebno je 8x8=64 operacija, što u konačnici iziskuje da se za 64 DCT koeficijenta
odnosno jedan cijeli blok obavi 4096 operacija. Dakle, za cijelu sliku veličine 256x256 piksela, neophodno je obaviti
1024 (blokova) * 4096 operacija, što daje 4 194 304 operacija. To je prihvatljiv hardverski zahtjev.

Međutim, ako bi blok bio jedak dimenziji slike, npr. 256x256 piksela, tada bi broj operacija bio oko 1025 puta veći. Kako
je brzina transformacije jedan od bitnih svojstava, blok 8x8 se smatra idealnim za diskretnu kosinusnu transformaciju.

DCT koeficijenti sadrže informaciju o frekvencijskom sastavu slike. Koeficijent F(0,0) se zove istosmjerni ili DC koeficijent,
i nalazi se u lijevom gornjem uglu transformacijske matrice.

DC koeficijent jednak je osmerostrukoj srednjoj vrijednosti svih DCT koeficijenata, tj. F(0,0)=8S, pri čemu je S srednja
vrijednost slike. Dokažite!
Analiza 2D DCT-e
DC koeficijent sadrži najveći dio informacije o slici i najbitniji je za rekonstrukciju slike. Ako bi blok sadržavao jednake
vrijednosti, tada bi od svih DCT koeficijenata, DC koeficijent bio jedini različit od nule. On bi nosio cijelu informaciju o
slici. Preostala 63 koeficijenta nazivaju se izmjeničnim ili AC koeficijentima.

AC koeficijenti sadržavaju informaciju o prostornim frekvencijama bloka odnosno slike. Na osnovu sljedeće slike:

imamo da se vrijednosti AC koeficijenata smanjuju u smjeru povećanja koordinata u i v. Pri tome AC koeficijenti koji se
nalaze u okolini DC koeficijenta, odgovaraju nižim prostornim frekvencijama, a AC koeficijenti koji se smješteni prema
donjem desnom uglu odgovaraju višim prostornim frekvencijama.
Analiza 2D DCT-e

DCT transformacija na osnovu frekvencijske analize vrši preraspodjelu energije nad elementima bloka koju nosi pojedini
element u bloku.

Najveći dio energije koncetriran je u DC koeficijentu F(0,0), kao i u niskofrekvencijskim AC koeficijentima, koji ga
okružuju element F(0,0).

AC koeficijenti nižih prostornih frekvencija nose više korisne informacije nego oni koeficijenti viših frekvenija. Ovakav
način koncetracije energije je u skladu sa svojstvom ljudskog vizuelnog sistema.

Koeficijenti DCT-e visokih frekvencija se po apsolutnoj vrijednosti prikazuju malim brojevima, koje se mogu kodirati s
manjom preciznošću.

Na početku smo za testnu sliku «Baboon» odabrali dva bloka A i B.

Na sljedećem slajdu se nalaze tabelarno prikazane amplitudne vrijednosti elemenata bloka «A», kao i njihova raspodjela
preko grafikona.
Amplitudne vrijednosti bloka „A“
Analiza 2D DCT-e
Na osnovu sadržaja prikazanog u prethodnoj tabeli, uočljivo je da su sve amplitude u rasponu 110 do 141, te da su
susjedne vrijednosti slične. U bloku nema naglih prelaza, što znači da visokofrekvencijski koeficijenti poprimaju male
vrijednosti, kao što se vidi na osnovu sljedeće tabele u kojoj je prikazan sadržaj DCT koeficijenata za blok A:
Analiza 2D DCT-e
Na osnovu sadržaja slike sa prethodnog slajda, možemo zaključiti da je većina energije bloka sadržana u DC koeficijentu.

Amplitude bloka «B» prikazane su sljedećom tabelom i slikom:

Amplitude elemenata slike u bloku «B» se nalaze u rasponu od 43


do 200, a razlika između susjednih elemenata slike je veoma
velika.

Blok «B» sadrži nagle prelaze, što generira visoke prostorne


frekvencije, pa su vrijednosti visokofrekvencijskih DCT koeficijenta
relativno velike, što se vidi u tabeli na sljedećem slajdu.
Analiza 2D DCT-e

Na desnoj slici se vidi da većinu


informacije i u ovom bloku nosi DC
koeficijent. Međutim, svi preostali DCT
koeficijenti imaju, po apsolutnoj
vrijednosti, znatno veće vrijednosti
nego oni u bloku «A», naročito
visokofrekvencijski DCT koeficijenti.
Neki zaključći o 2D DCT-i

Ako bi amplitude svih elemenata slike u bloku bile jednake, tada bi svi AC koeficijenti bili jednaki nuli, i informacija koju
nosi blok bila bi sadržana jedino u DC koeficijentu.

Važno je istaknuti da DCT transformacija ne unosi gubitke. Naprotiv, ona povećava količinu bitova potrebnih za prikaz
DCT koeficijenata.

Amplitude elemenata slike u bloku prikazane su sa 8 bitova, tj. najveća amplituda je 255 (maksimalno bijelo). Najniža
amplituda je 0, što označava crno. Amplitude od 1 do 254 su tonovi sivog.

Obzirom da vrijednosti DC i AC koeficijenata mogu biti veoma velike (pogledajte ranije navedene tabele), za njihovo
prikazivanje potrebno više od 8 bita.

Općenito gledajući, DCT koeficijenti su realni brojevi koji mogu biti i s negativnim predznakom. Negativne vrijednosti
posljedica su djelovanja kosinus funkcije. Kako bi se u dekoderu mogla sprovesti dekompresija slike, nužno je postojanje
inverzne diskretne kosinusne transformacije (IDCT). IDCT se koristi da se iz frekvencijske domene vratimo u u prostornu
domenu.

Kod DCT-a i IDCT-a, jedini gubici koji se javljaju su posljedica proračunavanja kosinus funkcije.
Neki zaključći o 2D DCT-i

Kosinus je trascendentna funkcija i prikazuje se pomoću Taylorovog reda:

Približno računanje kosinusne funkcije:

Dakle, nemoguće je apsolutno tačno izračunati vrijednost kosinusne funkcije za bilo koji realan broj. No, smatra se da je
aproksimacija s već nekoliko članova reda zadovoljavajuća, te da ljudsko oko radi toga neće vidjeti greške na
rekonstruiranoj slici.

Nedostaci sistema kompresije baziranih na DCT-u je pojava vidljivih rubova blokova na rekonstruiranim slikama, koji
nastaju zbog podijele slike na blokove. Prirodne slike nisu sastavljene od objekata pravilnih kontura, pa ljudsko oko
primjećuje konture blokova na rekonstruiranoj slici pri većim stepenima kompresije.
Kvantizacija DCT koeficijenata

Kvantizacija je drugi korak kod kompresije podataka. Izvodi se pomoću tzv. kvantizacijske tabele. To je kvadratna matrica
dimenzije 8x8, čiji se elementi nazivaju kvantizatori. Vrijednosti kvantizatora su unaprijed tačno definirane veličine, a
određene su u skladu sa svojstvima ljudskog vizuelnog sistema. Vrijednosti kvantizatora u tabeli rastu od lijevog gornjeg
dijela matrice prema donjem desnom dijelu. Dakle, obrnuto od raspodjele vrijednosti DCT koeficijenata. Kvantizacijske
tablele za luminantne i krominantne komponente koje se koriste u JPEG normi, prikazane su ispod:
Kvantizacija DCT koeficijenata blokova A i B

Kvantizacija se definira kao cjelobrojno dijeljenje DCT koeficijenata F(u,v) sa odgovarajućim koeficijentima kvantizacijske
matrice Q(u,v):
𝐹 𝑢, 𝑣
𝑆 𝑢, 𝑣 =
𝑄(𝑢, 𝑣)

Kvantizirani DCT koeficijenti bloka A Kvantizirani DCT koeficijenti bloka B


59 0 0 1 1 0 1 0 65 2 -4 1 1 1 1 0
0 1 2 1 0 0 1 0 -8 10 2 0 -1 1 0 0
0 1 1 0 0 1 1 0 4 -2 6 3 1 1 1 1
1 0 0 1 1 1 0 0 5 -3 -2 4 0 1 0 0
0 1 1 0 0 1 1 1 2 2 -2 2 2 1 1 0
0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1
1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 2
0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 -1

Uočljivo je da je skoro polovina kvantiziranih DCT


koeficijenata jednaka nuli, jer imamo veću apsolutnu
vrijednost kvantizatora od pripadajućih apsolutnih
vrijednosti DCT koeficijenata. Koliko će DCT koeficijenata biti zaokruženo na nulu, ovisi o sadržaju pojedinog bloka i o
izboru kvantizacijske matrice. Ako se istom kvantizacijskom matricom izvrši kvantiziranje DCT koeficijenata bloka «B»,
dobijaju se kvantizirani DCT koeficijenti prikazani gornjom desnom tabelom.
Neka nalaziza kvantizacije DCT koeficijenata

Uočljivo je iz desne tabele na prethodnom slajdu da se među kvantiziranim DCT koeficijentima bloka B ne nalazi toliko
nula (ukupno ih ima 20) kao u slučaju bloka «A». Razlog zašto je to tako je različita frekvencija blokova A i B. Naime, blok
«B» ima više prostorne frekvencije, pa je uslijed toga veći dio DCT koeficijenata veći od odgovarajućih elemenata
kvantizatora.

Postupkom kvantizacije se smanjio broj potrebnih bitova za prikaz DCT koeficijenata. U testnim blokovima «A» i »B» za
prikaz kvantiziranih DC koeficijenata dovoljno je 7 bita. AC koeficijenti zahtijevaju puno manje bitova, a broj bitova uz
istu kvantizacijsku matricu, ovisi o sadržaju bloka. Ako blok sadrži visoke prostorne frekvencije, broj bitova po uzorku je
manji od broja bitova po uzorku u originalnom bloku, ali je ipak veći od broja bitova po uzorku u nekom bloku koji sadrži
male prostorne frekvencije.

Općenito slike s velikim prostornim frekvencijama «teže» je komprimirati, uz primijenu iste kvantizacijske matrice, nego
slike s malim prostornim frekvencijama. Korisnik JPEG kodera može uticati na količinu odbačenih visokofrekvencijskih
DCT koeficijenata i time zapravo regulisati stepen kompresije. To je moguće učiniti množenjem svakog elementa
kvantizatora sa faktorom m. Ukoliko je m>1, povećava se broj odbačenih visokofrekvencijskih koeficijenata, čime se
povećava stepen kompresije, a kvaliteta slike slabi, jer oku počinje smetati nedostatak viših frekvencija. Za m<1 stepen
kompresije se smanjuje, ali se zato povećava se kvaliteta slike.
Cik-cak analiziranje
Nakon kvantizacije slijedi postupak cik-cak analiziranja 63 kvantizirana AC koeficijenata za svaki blok, kao što je
predstavljeno na slici ispod:

Vektor cik-cak kvantiziranih AC koeficijenata

Postavlja se pitanje zašto baš ovakav način faktorisanja elemenata kvantizirane matrice DCT koeficijenata? Budući da
vrijednosti kvantiziranih koeficijenata padaju od lijevog gornjeg prema desnom donjem dijelu bloka, cik-cak analiziranje
je pogodno za pripremanje koeficijenata za sljedeće kodiranje. Cik-cak analiziranjem dobije se jednodimenzionalna
matrica odnosno vektor (vidi gore sliku desno). Prvi element je uvijek kvantizirani DC koeficijent, a zatim slijede
kvantizirani AC koeficijenti različiti od nule. Na kraju se pojavljuje niz kvantiziranih AC koeficijenata jednakih nuli. Pojava
takvog niza nula idealna je za RLC kodiranje(eng. Run Lenght Coding) odnosno za kodiranje dužine niza.
Diferencijalna impulsno kodna modulacija (DPCM)
DC koeficijenti se odvojeno tretiraju, jer oni nose najveći dio energije. Nakon provedenog transformacijskog kodiranja i
cik-cak analiziranja svih blokova slike, dobija se onoliko 1D vektora koliko ima blokova na slici. Prvi element u svim tim
vektorima je kvantizirani DC koeficijent. Između DC koeficijenata dva susjedna bloka postoji jaka korelacija. Zbog toga se
oni kodiraju diferencijskom impulsnom kodnom modulacijom (eng. Differential Pulse Code Modulation, DPCM ). Blok
shema DPCM-a se nalazi se na slici ispod.

Kao što se vidi na slici, DPCM koder kao ulazne veličine


redom uzima kvantizirane DC koeficijente iz 1D vektora. Prvi
koeficijent se kodira apsolutno, dok se ostali kodiraju kao
razlika trenutnog i prethodnog DC koeficijenta.

DPCM kodeer smanjuje broj bitova, jer se DPCMj


koeficijenti kodiraju s manje bitova u odnosu na
kvantizirane DC koeficijente. Ako pretpostavimo da je
trenutni DC koeficijent 68, a prethodni 65, razlika je 3. Za
prikaz broja 68 potrebno je 7 bitova, dok je za prikaz broja 3
potrebno samo 2 bita.
Diferencijalna impulsno kodna modulacija (DPCM)

U koderu DPCM-a rezultat kodiranja razlike dvaju susjednih DC koeficijenata se prikazuje pomoću dva simbola.

Prvi simbol se zove SIZE (veličina) i označava broj bita potrebnih za kodiranje razlike DPCM koeficijenata.

Drugi simbol se zove AMPLITUDE (amplituda) i označava vrijednost pripadajućeg DPCM koeficijenta.

Pretpostavimo da je razlika između dva susjedna DC koeficijenta 3. Broj 3 se prikazuje kao:

Raspon amplituda kreće se u rasponu: −211 , 211 − 1 .


RLC kodiranje
RLC kodiranje predstavlja tehniku kodiranja podataka bez gubitaka informacija. Primjenjuje se za kodiranje kvantiziranih
AC koeficijenata nakon obavljenog cik-cak analiziranja. Algoritam je vrlo jednostavan i brz, lahko se implementira, ali ne
može postići značajniju kompresiju. Njegova učinkovitost ovisi o frekvencijskim svojstvima slike, kvantizacijskoj tablici i
vrijednosti faktora m. Navedena tri faktora direktno utiču na broj uzastopnih nula u izlaznom 1D nizu podataka. Što je
više kvantiziranih AC koeficijenata sa vrijednošću nula, to je RLC kodiranje učinkovitije.

RLC kodiranje ima smisla, ukoliko niz ima više od tri uzastopno jednake vrijednosti. Pretpostavimo slijedeći niz od 63
kvantizirana AC koeficijenata:

Nakon RLC kodiranja dobija se sljedeći niz:

Umjesto 22 nule, dalje se prenosi jedna nula i informacija o broju njenog ponavljanja. Zatim slijedi poseban simbol F koji
omogućuje razlikovanje stvarne vrijednosti 26 od informacije o broju ponavljanja znaka nule. Kako je vrijednost 26 zadnji
koeficijent različit od nule, slijedi oznaka EOB (eng. End of Block). EOB ujedno označava da do kraja bloka slijede samo
vrijednosti nula. RLC kodirani AC koeficijenti se također prikazuju pomoću dva simbola:

Prvi simbol se sastoji od dva dijela. Prvi dio označava dužinu niza (eng. RUNLENGHT). Runlenght govori koliko se puta
uzastopno ponavlja znak nula prije AC koeficijenta različitog od nule.
RLC kodiranje – nast.
Drugi dio (SIZE) označava broj bita potrebnih za prikaz tog AC koeficijenta.

Drugi simbol prikazuje vrijednost kvantiziranog AC koeficijenta različitog od nule. Pretpostavimo da je zadat slijedeći niz
AC koeficijenata:

Nakon RLC kodiranja, izlazni tok izgleda ovako:

Ukoliko do kraja bloka više nema kvantiziranih AC koeficijenata različitih od nule, na kraju niza simbola stavlja se simbol
(0,0) kao oznaka za kraj pripadajućeg bloka.

RUNLENGHT može poprimiti vrijednosti od 0 do 15. Obzirom da broj uzastopnih kvantiziranih AC koeficijenata jednakih
nuli može biti veći od 15 (makismalno 63), uveden je dodatni simbol (15,0). On označava RUNLENGHT vrijednost 16.
Dozvoljeno je koristiti 3 uzastopna simbola (15,0) prije simbola (0,0). Za prikaz simbola (15,0) potrebna su 4 bita.

Pretpostavimo da imamo slijedeći prikaz kvantiziranih AC koeficijenata:

Navedeni prikaz označava niz od 16*3+5=53 kvantizirana AC koeficijenta jednaka nuli iza kojeg slijedi kvantizirani AC
koeficijent čija je amplituda 13. Za prikaz vrijednosti 13 potrebno je 4 bita.
RLC kodiranje – nast.

Kako bi se odredio raspon vrijednosti koje mogu poprimiti promjenljive SIZE i AMPLITUDE, potrebno je provesti numeričku
analizu DCT transformacije.

Pokazuje se da DCT transformacija sprovedena nad ulaznom matricom s n bitnim vrijednostima, kao elemente izlazne
matrice može dati i do (n+3) bitne vrijednosti. Elementi slike pojedinog bloka mogu poprimiti vrijednost od 0 do 255
odnosno -127 do 127, ako se provede pomak istosmjerne razine (DC shifitng level) za 128.

Nakon postupka DCT transformacije raspon vrijednosti nastalih DCT koeficijenata poprimaju vrijednosti iz intervala
−210 , 210 − 1 .

Proizlazi da je teoretski najveća apsolutna vrijednost amplitude kvantiziranih AC koeficijenta (uz sve kvantizatore jednake 1)
1024, za što je potrebno 10 bita.
Entropijsko kodiranje

Već smo ranije opisali entropijsko kodiranje. Podsjetimo se da se radi o kodiranju bez gubitka informacija. Entropijsko
kodiranje veoma efikasno kodira kvantizirane DCT koeficijente različite od nule. Od ranije znamo da koeficijenti veće
vjerovatnoće nose manje korisnu informaciju. Za svaki koeficijent dovoljno je 𝐼 𝛼𝑘 bitova. Za sve koeficijente u bloku A
u prosjeku je dovoljno H(A) bitova po koeficijentu. Treba naglasiti da je kod prirodne slike DC koeficijent uniformno
distribuiran, dok AC koeficijenti to nisu, i njihova distribucija liči na Laplacovu distribuciju.

Ukoliko kvantizirani DCT koeficijenti nemaju uniformnu distribuciju, onda je njihova entropija manja od N. Stoga, mora
postojati kod koji koristi manje od N bitova po koeficijentu. Može se zaključiti da što su vjerovatnoće pojavljivanja
vrijednosti koeficijenata veće, to je u prosjeku potrebno manje bitova za njihov prikaz. Na tome se bazira entropijsko
kodiranje. JPEG norma koristi Huffmanovo kodiranje i aritmetičko kodiranje.
Huffmanovo kodiranje
David Huffman je 1952 godine razvio algoritam za tekstualne datoteke, a do danas je doživio mnoge izmjene.
Huffmanovo kodiranje koristi kodne tabele koje mora poznavati koder i dekoder. Tabele su ulazni parametar, a mogu se
koristiti standardne ili se izračunavaju na slijedeći način. Za datu sliku u postupku JPEG kompresije obavlja se statistička
analiza slike. Računa se frekvencija odnosno vjerovatnoća pojavljivanja svih kvantiziranih DCT koeficijenata. Te
vjerovatnoće se čuvaju u pomoćni memorijski spremnik. Zatim se Huffmanovim algoritmom računa minimalan broj
bitova za svaki kvantizirani DCT koeficijent različit od nule. Koeficijenti koji se češće pojavljuju nose manje korisne
informacije i kodiraju se s manje bitova, dok se oni s manjom vjerovatnošću pojavljivanja kodiraju sa većim brojem
bitova. Na taj način se svakom koeficijentu pridružuje njegov kod zapisan u kodnoj, Huffmanovoj tabeli. U dekoderu
mora postojati ista Huffmanova tabela radi ispravnog dekodiranja. Da bi se prikazao rad Huffmanova algoritma,
potrebno je objasniti strukturu koja se naziva stablo, a koja je prikazana na slici ispod:
Huffmanovo kodiranje – nast.

Na vrhu stabla se nalazi osnovni čvor koji se zove korijen (eng. root). On se dijeli na makismalno dva čvora, koji se
nazivaju djeca. Svaki daljni čvor može imati maksimalno dvoje djece. Dubina stabla jednaka je maksimalnom nivou nekog
čvora u stablu, pri čemu je nivo korijena jednaka 1. Kod Huffmanovog kodiranja stablo se popunjava od djece. To znači
da do završetka Huffmanovog algoritma nije moguće znati strukturu stabla.

Huffmanov algoritam

▪ Vjerovatnoće pojavljivanja koeficijenata poredati po veličini od manje prema najvećoj, te ih smatrati djecom stabla;
▪ Dok se ne dođe do korijena stabla, formirati roditelja od dva čvora sa najmanjim vjerovatnoćama;
▪ Novonastali čvor ima vjerovatnoću jednaku zbiru vjerovatnoća svoje djece;
▪ Granama koje spajaju djecu i roditelje dodijeliti proizvoljno binarni znak 0 ili 1;
▪ Nakon formiranja stabla kod za pojedini koeficijent sastaviti od simbola 0 i 1 koji su pridruženi granama, idući od
korijena do krajnjeg dijeteta.
Huffmanovo kodiranje – nast.

Primjer: Neka je zadata sljedeći niz podataka koji se nalazi na ulazu u Huffmanov koder: 1 1 1 1 2 3 4 5 5 5 6 6 7 7 7 8.

Frekvencija pojavljivanja znakova je sljedeća: Znak 1 pojavio se 4 puta, znakovi 2, 3, 4, 8 po jednom, znakovi 5 i 7 su se
pojavili po tri puta, znak 6 dva puta. Frekvencijama pojavljivanja pojedinih znakova pridružene su slijedeće vjerovatnoće:

𝑝 1 = 0.25, 𝑝 2 = 𝑝 3 = 𝑝 4 = 𝑝 8 = 0.0625, 𝑝 5 = 𝑝 7 = 0.1875, 𝑝 6 = 0.125

Algoritam kaže da se uzmu dva znaka sa najmanjim vjerovatnoćama koji će dati svog roditelja. U ovom primjeru uzet će
se znakovi 2 i 3, čija je vjerovatnoća jednaka i iznosi 0.0625. Vjerovatnoća njihovih roditelja je jednaka zbiru vjerovatnoća
znakova 2 i 3, i iznosi 0.125. Stablo do sad ima tri čvora, kao na slici ispod:
Huffmanovo kodiranje – nast.

Sljedeći znakovi sa najmanjim vjerovatnoćama su 4 i 8. Slučajno u ovom primjeru imaju istu vjerovatnoću, kao i
prethodni znakovi, pa se nalaze na istom nivou budućeg stabla. Do sada je formirano 6 čvorova, kao na slici ispod:

Sasvim analogno se dolazi do sljedećeg stabla koji je prikazan na sljedećem slajdu:


Huffmanovo kodiranje – nast.

Postupak se ponavlja sve dok se ne uzmu u obzir sve vjerovatnoće i formira konačno stablo. Kada je stablo formirano,
očitava se Huffmanov kod. Kod se sastoji od 0 i 1, koje su pridružene granama, koje povezuju čvorove, pri čemu se
očitavanje izvodi od korijena do odgovarajućeg čvora, koji sadrži pripadajuću vjerovatnoću.
Huffmanovo kodiranje – nast.

Konačan izgled stabla


Huffmanovo kodiranje – nast.

Rezultati Huffmanovog algoritma za gore dat primjer prikazani su u tabeli ispod:

Prednosti Huffmanovog algoritma: Jednostavna implementacije i brzina, kao i kompresiranje informacija bez gubitaka.

Nedostaci Huffmanova algoritma: Efikasnost ovisi o statističkoj prirodi slike. Huffmanovo kodiranje je vremenski spor proces, jer
se odvija u dva koraka. Prvo je potrebno napraviti statističku analizu slike, a onda se pristupa procesu kodiranja. Ovaj nedostatak
ne postoji kada se koriste gotove Huffmanove tabele. Kodovi kodiranog niza podataka su različite dužine, što dekoderu otežava
detekciju zadnjeg bita pojedinog koda. Ukoliko negdje dođe do greške, u dekoderu će nastati rekonstruisana slika koja je
neupotrebljiva.
Aritmetičko kodiranje

Aritmetičko kodiranje je također postupak entropijskog kodiranja bez unošenja gubitaka. Kao i Huffmanovo kodiranje,
ono se bazira na statističkoj analizi slike, ali postiže bolje rezultate. Aritmetičko kodiranje određuje vjerovatnoću
pojavljivanja pojedinih diskretnih vrijednosti elemenata slike. Sve izračunate vjerovatnoće se prikazuju na jediničnoj
dužini. Princip kodiranja je prikazan na primjeru koji slijedi. Radi jednostavnosti, pretpostavimo da slika ima 2500
elemenata slike i da elementi slike mogu poprimiti bilo koju vrijednost iz skupa S={A,B,C,D,E,F,G,H}. Neka je statističkom
analizom ustanovljena slijedeća frekvencija ponavljanja vrijednosti elemenata slike:

A : 200, B : 300, C : 100, D : 300, E : 300, F : 500, G : 600, H : 200,

Vjerovatnoće pojavljivanja su slijedeće: P(A)=0.08, P(B)=0.12, P(C)=0.04, P(D)=0.12, P(E)=0.12, P(F)=0.2, P(G)=0.24,
P(H)=0.08.
Aritmetičko kodiranje-nast.
Aritmetičko kodiranje-nast.
Svaka vjerovatnoća se predstavlja jednom vrijednošću iz odgovarajućeg intervala. Sa prethodnog slajda imamo da vrijednost
0.30 leži na intervalu 0.24 - 0.36 koji označava vjerovatnoću pojavljivanja simbola D. Dakle, sve vjerovatnoće iz ovog
intervala su predstavljene pomoću vrijednosti 0.30. Moguće je veće vjerovatnoće prikazati nekom vrijednošću. Na slici na
rasponu koji je označen strelicom G, «utisnuti» su rasponi svih vjerojatnosti. Vrijednost D je sada prikazana sa proračunatom
vjerovatnošću 0.7545. Dubina dijeljenja odnosno dužina niza povećava broj potrebnih bitova za prikaz izračunate
vjerovatnoće, pa je taj postupak ograničen mogućnostima programske podrške. Prikazanim postupkom zapravo se raspon
vjerovatnoća od 0 do 1, komprimira na puno manji raspon, čime se dobija smanjenje broja potrebnih bitova. Vrijednosti
elemenata slike koji imaju manju vjerovatnoću pojavljivanja kodiraju se većom preciznošću i obrnuto.

Prednosti aritmetičkog kodiranja

Aritmetičko kodiranje je bolja metoda od Huffmanove metode, jer je u mogućnosti vrijednosti koje imaju veću
vjerovatnoću pojavljivanja kodirati sa manje bitova nego što to radi Huffmanov algoritam. Ova metoda ostvaruje i do
10% veću kompresiju uz omjer kompresije i do 100:1.

Nedostaci aritmetičkog kodiranja

Algoritam je patentiran i ukoliko se želi koristiti potrebno je otkupiti licencu. S druge strane, Huffmanov algoritam je
besplatan.
KOMPRESIJA TESTNIH SLIKA JPEG I JPEG2000 POSTUPKOM

Kako bi se teorija potkrijepila praktičnom primjenom JPEG i JPEG2000 norme, sprovedena je kompresija nad četiri
ispitne slike uz brzine prenosa: 0.2, 0.5, 0.7, 1.0, 1.5 i 2.0 bita po elementu slike (pikselu). Na osnovu ove analize između
originalne i rekonstruirane slike izračunat je vršni odnos signal/šum (PSNR). Sve testne slike su monohromatske, sadrže 8
bita po elementu slike, i svaka od njih je veličine 256x256 piksela.

Prvo se obavlja kompresija JPEG i JPEG2000 postupkom brzinom od 0.2 bita po elementu slike. Zatim se proces ponavlja
povećavajući brzinu prenosa prema navedenim vrijednostima do krajnje brzine od 2 bita po elementu slike. Nakon
obavljene kompresije za sve rekonstruirane slike se tablično i grafički prikazuje ovisnost vršnog odnosa signal/šum
(PSNR) i brzine prenosa (R).
NEKE OSOBINE TESTNIH SLIKA

Slika Bird bi trebala dati najbolje rezultate na svim brzinama prenosa. Pozadina iza ptice ima vreoma blagi prelaz nivoa
sivog, što je lahko za kodirati, jer je malo visokih frekvencija. Sama ptica ima više prelaza, mada su pak blagi.

Slika Barbara je nešto kompliciranija od slike Bird. Ima puno površina jednakog tona ili s blagim prelazima. No, marama i
stolnjak imaju guste crno bijele pruge koje generiraju visoke frekvencije.

Slika Bridge ima puno detalja sa naglim prelazima, čime se generiraju visoke frekvencije. To dalje znači da se za isti
stepen kompresije istim postupkom dobijaju lošiji rezultat u poređenju sa prethodnim slikama.

Slika Baboon je najzahtjevnija slika i očekuje se najmanji PSNR, na svim brzinama prenosa u odnosu na ostale slike.
Dlaka, ova slika ima puno naglih prelaza, što daje puno visokih frekvencija. Vizuelno je slika slična slici šuma (u području
lijevo i desno od očiju, te oko ustiju).
ANALIZA KOMPRESIJE ČETIRI TESTNE SLIKE – JPEG I JPEG200

Na osnovu tabelarnih rezultata može se primijetiti da kod oba postupka kompresije PSNR brže raste čim je brzina prenosa veća.
JPEG2000 postupak je na svim brzinama prenosa i na svim slikama postigao očekivano bolji rezultat u odnosu na JPEG
postupak, naročito pri brzinama manjim od 1.0 bita po elementu slike.
ANALIZA KOMPRESIJE TESTNE SLIKE BIRD – JPEG I JPEG200

Broj bita po elementu slike: 0.2


ANALIZA KOMPRESIJE TESTNE SLIKE BARBARA – JPEG I JPEG200

Broj bita po elementu slike: 0.2


ANALIZA KOMPRESIJE TESTNE SLIKE BRIDGE – JPEG I JPEG200

Broj bita po elementu slike: 0.2


ANALIZA KOMPRESIJE TESTNE SLIKE BABOON – JPEG I JPEG200

Broj bita po elementu slike: 0.2


ANALIZA KOMPRESIJE TESTNE SLIKE BIRD – JPEG I JPEG200

Broj bita po elementu slike: 0.7


ANALIZA KOMPRESIJE TESTNE SLIKE BARBARA – JPEG I JPEG200

Broj bita po elementu slike: 0.7


ANALIZA KOMPRESIJE TESTNE SLIKE BRIDGE – JPEG I JPEG200

Broj bita po elementu slike: 0.7


ANALIZA KOMPRESIJE TESTNE SLIKE BABOON – JPEG I JPEG200

Broj bita po elementu slike: 0.7


ANALIZA KOMPRESIJE TESTNE SLIKE BIRD – JPEG I JPEG200

Broj bita po elementu slike: 1.5


ANALIZA KOMPRESIJE TESTNE SLIKE BARBARA – JPEG I JPEG200

Broj bita po elementu slike: 1.5


ANALIZA KOMPRESIJE TESTNE SLIKE BRIDGE – JPEG I JPEG200

Broj bita po elementu slike: 1.5


ANALIZA KOMPRESIJE TESTNE SLIKE BABOON – JPEG I JPEG200

Broj bita po elementu slike: 1.5


ZAKLJUČAK
Subjektivni dojam se podudara sa vršnim odnosom signal/šum. Kod brzina prenosa 1.5 i 2.0 bita po elementu slike,
subjektivna razlika između dviju metoda je jedva uočljiva ili neprimjetna u zavisnosti od tipa slike. Kod slika komprimiranih
JPEG-om smanjenje brzine uzrokuje vidljivu konturu blokova na slici. Kod komprimiranja JPEG2000 postupkom, nema
blokovske strukture, već se smanjivanjem brzine prenosa javlja efekt zamućenja, koji je manje neugodan od vidljivih
rubova blokova.

Na osnovu dobijenih rezultata može se zaključiti da je JPEG2000 postupak puno kvalitetniji od JPEG-a. Prednost u kvaliteti
dolazi do izražaja na najnižim brzinama prenosa. Za slike sa puno više detalja (npr. Baboon) kod malih brzina ispod 0.25
bita po elementu, neophodno je koristiti JPEG2000 postupak.

You might also like