5. JPEG NORMA |
|||||||||||
KODIRANJE DULJINE NIZA |
|||||||||||
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:
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:
Nakon RLC kodiranja izlazni tok podataka biti
će prikazan na slijedeći način:
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:
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 [ |
|||||||||||
|
|
||||||||||
|
|
||||||||||
MENTOR: Prof.dr.sc.Sonja Grgić |
Autor: Mihael Jančić |
||||||||||