4_Izvorno kodovanje

Embed Size (px)

Citation preview

Teorija signala i sistema IIIzvorno kodovanje II Doc. dr. Aljo Muji

1

Prva enonova teoremaAnalizirajmo diskretan izvor bez memorije. Do sada analizirali kako se rjeava problem nalaenja kompaktnog koda u sluaju kada su vjerovatnoe simbola izvora oblika 1/rki. To je poseban sluaj. ta uraditi u optem sluaju? Kada logaritam reciprone vrijednosti vjerovatnoe nije cio broj logino je da se za svaku rije uzme duina po sljedeem izboru1 1 ld l i < ld + 1 Pi Pi2

Prva enonova teoremaPoto je tada za svaki simbol izvora

Pi 2 lioigledno da e tada Kraftova nejednakost biti zadovoljena, te e skup kodnih rijei sa izabranim duinama omoguiti dobijanje kompaktnog koda. U konkretnom sluaju posmatra se binarni kod ali cjelokupno izvoenje vai i za r-arni kod samo trema uzimati logarotam bo osnovi r. Mnoenjem svake od gornjih nejednakosti odgovarajuim brojem Pi dobija se

1 1 Pi ld Pi l i < Pi ld + Pi Pi Pi

(i = 1,2,..., q )3

Prva enonova teoremasabiranjem ovih q nejednakosti dobijamoq q q 1 1 Pi ld P Pi li < Pi ld P + Pi i =1 i =1 i =1 i =1 i i q

(i = 1,2,..., q )

odnosno

H (S ) L < H (S ) + 1Izborom duina kodnih rijei prema usvojenom pravilu moe se uvijek dobiti trenutni kod ija srednja duina kodnih rijei zadovoljava datu nejednakost4

Prva enonova teoremaNavedena nejednakost moe se proiriti i na n-to proirenje izvora

H ( S n ) Ln < H ( S n ) + 1Ln je srednja duina kodnih rijei za simbole proirenog izvora. Prethodni izraz moe se napisati u oblikunH ( S ) Ln < nH ( S ) + 1

odnosno

Ln 1 < H (S ) + H (S ) n n Kada n neogranieno raste imamo Ln = H (s) lim nn

5

Prva enonova teoremaLn/n predstavlja srednju duinu kodne rijei po simbolu orginalnog izvora S. Na osnovu prethodnog zakljuujemo da se srednja duina kodnbe rijei moe uiniti proizvoljno bliskom entropiji izvora. Ovo je upravo formulacija PRVE ENONOVE TEOREME Kada kod nije binarni imamo

Ln H ( s ) = lim ld (r ) nn

6

Prva enonova teorema za izvore s memorijomPosmatrajmo izvor s memorijom prvog reda. Za ovaj izvor i njemu pridrueni izvor (koji je bez memorije) piu se slini izrazi za srednju duinu kodne rijei a zatim se sve ovo ponavlja za n-to proirenje ovog izvora i izvor pridruen ovome proirenju. Kombinujui ova etiri izraza, uz uvaavanje injenice da je

H ( S n ) = nH ( S ) + H ( S ) H ( S )

[

]

gdje su pridrueni izvori oznaeni sa crtama iznad simbola za odgovarajui izvor, dobijamo

7

Prva enonova teorema za izvore s memorijomH ( S ) H ( S ) Ln H (S ) H (S ) + 1 H (S ) + < H (S ) + n n npa se izborom dovoljno velikog n ekvivalentna srednja duina kodne rijei moe uiniti proizvoljno bliskom entropiji. Poto se svaki izvor smemorijom vieg reda moe proirivanjem svestina izvor prvog reda, to se lako pokazje da teorema vai i za izvore s memorijom vieg reda.8

PrimjerDirektna primjena naprijed koritenog pravila za izbor duine kodne rijei ne mora uvijek dovesti do kompaktnog koda. Za sluaj ternarnog izvora (q=3) koji se koduje binarnim kodom imamo S s1 s2 s3 Pi ld(1/Pi) li=ld(1/Pi)+1 1 3 4 La=1.78 b/simb (a) 0 100 1010 (b) 0 10 11 Lb=1.33 b/simb9

2/3 0.58 2/9 2.17 1/9 3.17

H(S)=1.22 Sh/simb

Primjer proirivanje izvoraImamo binarni izvor bez memorije (q=r=2) S s1 s2 Pi 7/8 1/8 Xi 0 1

H(s)=0.54 Sh/simb L=1 b/simb L2=1.64(b/simb) S2 L2/2=0.68 b/simb

Ako izvrimo drugo (n=2) proirenje izvora imamoS s1s1 s1s2 s2s1 s2s2 Pi 49/64 7/64 7/64 1/64 Xi 0 10 110 11110

Primjer proirivanje izvoraProirivanjem izvora dobijena je ekvivalentna duina kodne rijei koja je znatno blia entropiji. Daljim proirenjem dobile se vrijednosti koje su jo blie vrijednosti entropije ali dobijamo vei broj simbola q i velike kodne liste.

11

Efikasnost i suvinostEfikasnost koda se definie da bi se moglo kvantitativno odrediti koliko se srednja duina kodne rijei konstruisanog koda pribliava entropiji H (S ) = 100 [% ] L Takoe se moe definisati i suvinost odnosno redundansa

L H (S ) R= 100 = 100 L

[%]

12

Kodovanje bez proirenja izvoraPrva enonova teorema daje odgovor kakve se performanse mogu postii statistikim kodovanjem i kako se one (dovoljnim proirivanjem izvora) mogu postii, ali ne ukazuje jasno put kako se za fiksirani izvor (tj. bez daljih proirenja) moe dobiti kompaktan kod Za rjeavanje ovog problema bie analizirana dva postupka:enon-Fanoov, i Hafmenov

13

enon Fanov postupakSimbole izvorne liste urediti po opadajuim vrijednostima (P1P2Pq) skup simbola podijeliti na dva podjednako vjerovatna dijela Kodne rijei jednog podskupa poinjae sa 0 a za simbole drugog podskupa sa 1 Svaki od podskupova se dijeli na dva podjednako vjerovatna podskupa dodajui na odgovarjue mjesto u kodnoj rijei 0 ili 1 Kada u svim podskupovima ostane po jedan simbol kodovanje je zavreno

14

enon Fanov postupak primjer aS s1 s2 s3 s4 Pi 0.5 0.25 0.125 0.125 I podjela 0 1 1 1 II podjela 0 10 11 11 III podjela 0 10 110 111

Dobijen je kompaktni kod i srednja duina kodne rijei jednaka je entropiji15

enon Fanov postupak primjer bS s1 s2 s3 s4 s5 Pi 0.6 0.2 0.1 0.07 0.03 I podjela 0 1 1 1 1 II podjela 0 10 11 11 11 III podjela IV podjela 0 10 110 111 111 0 10 110 1110 1111

16

enon Fanov postupak primjer cS s1 s2 s3 s4 s5 Pi 0.3 0.2 0.2 0.2 0.1 I podjela 0 0 1 1 1 II podjela 00 01 10 11 11 III podjela 00 01 10 110 111

17

enon Fanov postupak primjer dS s1 s2 s3 s4 s5 s6 s7 Pi 0.4 0.2 0.12 0.08 0.08 0.08 0.04 I podjela 0 0 1 1 1 1 1 II podjela 00 01 10 10 11 11 11 III podjela 00 01 100 101 110 111 111 IV podjela 00 01 100 101 110 1110 1111

Jednostruka primjena ovog postupka ne garantuje dobijanje kompaktnog koda. Bolji uvid se moe dobiti opisivanjem koda pomou kodnog stabla to je predloio Fani

18

Kodno stablo za primjere b i ckretanje ulijevo odgovara bitu 0 a udesno bitu 1 s1 s2 s3 s4 s5 primjer b) s1 s2 primjer c)

s3 s4 s5

Treba izabrati kodno stablo i zavrnim vorovima pridruiti simbole , trudei se da vjerovatnoe grananja u svakom voru budu podjednake.19

enon Fanov postupakDa bi se naao kompaktan kod koristei ovaj postupak potrebno je za dati izvor (sa q simbola) i dati kod (sa r kodnih simbola) ispitati sva mogua kodna stabla i prema raspodjeli vjerovatnoa simbiola izabrati stablo koje daje najmanju srednju duinu kodne rijei. Vjerovatnijim simbolima pridruiti krae kodne rijei

20

Kodna stablaq=2 q=3

q=5 q=4

Razliita kodna stabla za binarno kodovanje

21

PrimjerMogua su tri razliita binarna koda (prethodni slajd)S s1 s2 s3 s4 s5 Pi 0.6 0.2 0.1 0.07 0.03 a) 0 10 110 1110 1111 La=1.7 b/simb b) 0 100 101 110 111 Lb=1.8 b/simb c) 00 01 10 110 111 Lc=2.1 b/simb22

H(s)=1.659 Sh/simb

Primjer (izvor sa 6 simbola)a) b)

S s1 s2 s3 s4 s5 s6

Pi 0.65 0.15 0.08 0.05 0.04 0.03

a) 0 10 110 1110 11110 11111

b) 0 10 1100 1101 1110 1111

H(S)=1.6597 Sh/simb La=1.74 b/simb Lb=1.75 b/simb

23

enon Fanov postupakPostupak se moe koristiti i za kodovanje proirenja izvora Svakim daljim proirivanjem poveava se broj simbola koje treba kodovati ali i bogatije mogunosti za kodovanje Prva enonova teorema upravo potvruje pribliavanje entropiji U sluaju ternarnih kodova simboli bi se dijelili u tri grupe jednakih ili skoro jednakih vjerovatnoa. Ove grupe se dalje dijele po istom postupku.24

Hafmenov postupakOmoguava direktno nalaenje kompaktnog koda Neka je dat izvor S sa simbolima si (i=1,2,,q) ije su vjerovatnoe pojavljivanja Pi (i=1,2,,q). Simbole treba urediti po nerastuim vjerovatnoama tako da je (P1P2Pq). Dva najmanje vjerovatna simbola (sq-1 i sq) zamijeniti jedinstvenim ekvivalentnim simbolom sq-1 tj. formirati njihovu uniju. Na taj nain izvrena je redukcija izvora sa q na q-1 simbol. Ponovo objedinjavamo dva najmanje vjerovatna simbola i dobijamo izvor sa q-2 simbola. To nastavljamo sve dok se ne izvri q-1 redukcija i ne dobije izvor Sq-1 sa samo dva simbola. Sada se polazi od redukovanog izvora s dva simbola i poinju da piu kodne rijei na taj nain to se jednom od simbola dodjeljuje bit 0 a drugom 1. Postupak se vri do unazad.25

PrimjerS Pi S1 0.65 0.15 0.08 0.07 0 11 101 1001 S2 0.65 0.15 0.12 0 11 100 101 S3 0.65 0.2 0.15 0 10 11 S4 0.65 0.35 0 1 s1 0.65 0 s2 0.15 11 s3 0.08 101 s4 0.05 1001 s6 0.03 10001 Srednja duina kodne rijei je L=1.74 b/simb

1000 0.08

s5 0.04 10000 0.05

26

PrimjerS Pi 0 11 101 1000 S1 0.5 0.2 0.1 0.1 0 11 101 1001 S2 0.5 0.2 0.2 0 11 100 101 S3 0.5 0.3 0.2 0 10 11 S4 0.5 0.5 0 1 s1 0.5 s2 0.2 s3 0.1 s4 0.1

1000 0.1

s5 0.07 10010 0.1 s6 0.03 10011

Srednja duina kodne rijei je L=2.1 b/simb (H(S)=2.0502 Sh/simb)

27

PrimjerS Pi 0 11 1000 1001 S1 0.5 0.2 0.1 0.1 0.1 0 11 101 1001 S2 0.5 0.2 0.2 0 11 100 101 S3 0.5 0.3 0.2 0 10 11 S4 0.5 0.5 0 1 s1 0.5 s2 0.2 s3 0.1 s4 0.1

1000 0.1

s5 0.07 1010 s6 0.03 1011

Srednja duina kodne rijei je L=2.1 b/simb ali je struktura duina kodnih rijei razliita (H(S)=2.0502 Sh/simb) Kompaktni kod je oni koji ima srednju duinu kodne rijei manju ili jednaku od ostalih srednjih duina kodnih rijei

28

Hafmenov kod za r>2Pri primjeni Hafmenove metode vri se redukcija r najmanje vjerovatnih simbolai tako ide do kraja. U povratnom procesu se dodaju somboli 0,1,,r-1. U optem sluaju poslije posljednje redukcije ne mora da ostane tano r simbola ve ih moe biti i manje. Tada bi ostale neiskoriene najkrae kodne rijei. Da bi se ovo izbjeglo dodaju se lani simboli sa vjerovatnoama nula. Ovaj broj se bira tako da poslije posljednje redukcije ostane r simbola. Pri vraanju unazad lani simboli e imati najdue kodne rijei pa e se bez tete izostaviti.

29

PrimjerS s1 s2 s3 s4 s5 Pi 0.25 0.25 0.2 0.15 0.15 1 2 00 01 02 S1 0.5 0.25 0.25 0 1 2

L=1.5 ternarnih cifri/simb

30

PrimjerS s1 s2 s3 s4 s5 s6 Pi 0.25 0.25 0.2 0.1 0.1 0.1 1 2 01 02 000 001 002 S1 0.25 0.25 0.2 0.2 0.1 1 2 00 01 02 S1 0.5 0.25 0.25 0 1 2

s7 Dodan 0.0

L=1.7 ternarnih cifri/simb31

Hafmenov postupak daje kompaktan kod?a) Manje vjerovatni simboli moraju da imaju due kodne rijei (za pj>pk mora biti lj