5. JPEG NORMA

TEMELJNI KODER

PODIJELA SLIKE NA BLOKOVE

DISKRETNA KOSINUSNA TRANSFORMACIJA

KVANTIZACIJA

CIK-CAK ANALIZIRANJE

DPCM

KODIRANJE DULJINE NIZA

ENTROPIJSKO KODIRANJE

 

Kodiranje duljine niza

 

 

          Kodiranje duljine niza (RLC-Run Lenght Coding) [7] smanjuje broj bitova bez gubitka informacije. Primjenjuje se za kodiranje kvantiziranih AC koeficijenata nakon provedenog cik-cak analiziranja. Algoritam je vrlo jednostavan i brz, lako 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 izravno utječu na broj uzastopnih nula u izlaznom jednodimenzijskom nizu podataka. Što je više kvantiziranih AC koeficijenata s vrijednošću nula, to je RLC kodiranje učinkovitije. RLC ima smisla ako niz ima više od tri uzastopno jednake vrijednosti. Pretpostavimo slijedeći niz od 63 kvantizirana AC koeficijenata:

 

 

68 4 0 6 7 0 0 0 5  -1 -2 ... 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0

 

 

Nakon kodiranja duljine nizan (RLC) dobije se slijedeći niz podataka:

 

 

68  4 0 6 7 0 0 0 5  -1 -2 ...  -6 0 22 F 26 EOB

 

 

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 (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:

 

SIMBOL1                   SIMBOL2

 

(DULJINA NIZA,VELIČINA) (AMPLITUDA)

 

 

Prvi simbol se sastoji od dva dijela. Prvi dio označava duljinu niza (eng. RUNLENGHT). Runlenght govori koliko se puta uzastopno ponavlja znak nula prije AC koeficijenta različitog od nule. 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 slijedeći niz AC koeficijenata:

 

 

@@@ 2  3  0 0  0  0  0  6  4  8  5  0  0  0  0  0  0  0  0  0  0  0

 

 

Nakon RLC kodiranja izlazni tok podataka biti će prikazan na slijedeći način:

 

 

  @@@ (0,1)(2)  (0,2)(3)  (5,3)(6)  (0,2)(4)  (0,3)(8)  (0,3)(5) (0,0)

 

 

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

RUNLENGHT može poprimiti vrijednosti od 0 do 15. Kako 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 slijedeći prikaz kvantiziranih AC koeficijenata:

 

 

(15,0)(15,0)(15,0)(5,4)(13)

 

 

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.

Kako bi se odredio raspon vrijednosti koje mogu poprimiti varijable SIZE i AMPLITUDE, potrebno je provesti numeričku analizu DCT transformacije. Pokazuje se [5] da DCT transformacija provedena 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 poprima vrijednosti u intervalu []. Proizlazi da je teoretski najveća apsolutna vrijednost amplitude kvantiziranih AC koeficijenta (uz sve kvantizatore jednake 1) 1024, za što je potrebno 10 bitova.

 

 

 

ÛDPCM

Entropijsko kodiranjeÜ

 

 

 

 

 

MENTOR:

Prof.dr.sc.Sonja Grgić

Û prethodno poglavlje Û

Ü slijedeće poglavlje Ü

Autor:

Mihael Jančić