You are on page 1of 13

Uvod u organizaciju raunara

vebe - as 7: Huffmanovo kodiranje


Uvod u organizaciju raunara 2
Prefiksni kodovi
Za kod kaemo da ima prefiksno
svojstvo ako ni za jedan znak ne vai
da je njegov kod prefiks koda nekog
drugog znaka.
Npr. ako je 11 kod karaktera A, a
1110 kod karaktera B, onda je kod
karaktera A prefiks koda karaktera B.
Uvod u organizaciju raunara 3
Prefiksni kodovi
Zahvaljujui prefiksnom svojstvu
koda, im je kod nekog znaka
proitan, ne postoji mogunost da se
daljim itanjem zakljui da se radi o
kodu nekog drugog znaka, tako da se
odmah moe konstatovati o kom se
znaku radi, i prei na itanje koda
sledeeg znaka.
Uvod u organizaciju raunara 4
Kodovi promenljive duine
Za kod kaemo da je kod promenljive
duine ako razliitim znakovima
odgovaraju kodovi razliitih duina.
U suprotnom za kod kaemo da je
fiksne duine.
Npr. ako je 11 kod karaktera A, a
1110 kod karaktera B, onda se radi o
kodu promenljive duine.
Uvod u organizaciju raunara 5
Huffmanov kod
Huffmanov kod je optimalan prefiksni
kod.
Zato se esto koristi za realizaciju
kompresija bez gubitka.
To je kod promenljive duine.
Postoje:
Statiko i
Dinamiko Huffmanovo kodiranje.
Uvod u organizaciju raunara 6
Statiko Huffmanovo kodiranje
Osnovna ideja je da se karakteri koji se
ee javljaju kodiraju kraim
sekvencama, dok je kod karaktera koji se
ree pojavljuju dozvoljeno koristiti i due
kodove.
Na poetku je potrebno izgraditi sortiranu
tabelu frekvencija pojavljivanja svih
znakova koje elimo da kodiramo. Neka su
to npr. karakteri.
Uvod u organizaciju raunara 7
Izgradjna Huffmanovog drveta
Pronadju se dva karaktera koja se najree
pojavljuju i ona se zamene novim
karakterom ija je frekvencija zbir
frekvencija polazna dva karaktera.
Novouvedeni karakter predstavlja vor
drveta iz koga izniu polazni karakteri.
Postupak se ponavlja sve dok se ne
izgradi kompletno drvo.
Uvod u organizaciju raunara 8
Odredjivanje kodova
Sve grane drveta koje vode na levo
se oznae nulom, dok se sve grane
koje vode na desno oznae
jedinicom. Kod svakog karaktera se
odredjuje prikupljanjem oznaka
grana putanje koja vodi od korena do
njega.
Uvod u organizaciju raunara 9
Huffmanovo kodiranje - primer
Kodirajmo poruku:
AFAABBAEACABBACABEABCDFDAEAAEFAF
Tabela frekvencija:

A 13
B 6
C 3
D 2
E 4
F 4
Uvod u organizaciju raunara 10
Huffmanovo kodiranje - primer







Kodovi su:
A 0 B 100 C 1010
D 1011 E 110 F 111
A(13)
B(6)
C(3) D(2)
E(4) F(4)
8
0
1
5
1
0
11
0
1
19
0
1
32
1
0
Uvod u organizaciju raunara 11
Huffmanovo kodiranje - primer
Kodirana poruka se dobija
nadovezivanjem kodova karaktera i
glasi:

01110010010001100101001001000101
00100110011010101011111101101100
01101110111
Uvod u organizaciju raunara 12
Huffmanovo kodiranje - primer
Za kodiranje poruke smo iskoristili
13*1+6*3+3*4+2*4+4*3+4*3=75 bita.
Da smo koristili, na primer, 3-bitno
kodiranje koje karakterima dodeljuje
njihove redne binarne brojeve od 000
do 101 iskoristili bismo 3*32=96 bita.
Uvod u organizaciju raunara 13
Dinamiko Huffmanovo kodiranje
Za razliku od statikog Huffmanovog
kodiranja, gde se frekvencije
pojavljivanja znakova odreuju na
poetku rada algoritma, kod
dinamikog se ove frekvencije
izraunavaju i menjaju u toku rada
algoritma.

You might also like