Documente Academic
Documente Profesional
Documente Cultură
Codarea surselor
Codarea este operatia prin care simbolurilor unei surse (denumite surs
a primar
a) i se ataseaza
cuvinte de cod form
and o nou
a sursa de numit
a sursa secundar
a. Ideea de baza a codarii este
ca entropia sursei secundare va mai mare decat cea a sursei primare sau altfel spus se reduc,
chiar anuleaz
a, redundanta sursei primare.
Un cod bun va ncerca sa atribuie unui simbol cu probabilitatea o lungime a cuv
antului de
cod mica (se repeta des deci aici se poate face economie), iar celor cu probabilitate mare cuvinte
mai lungi (sunt rare deci pierderile sunt mai mici).
Un exemplu foate des folosit este codul Lempel-Ziv-Welch care sta la baza programelor de
tip WinRar, WinZip; rezultatul unei asemenea cod
arii duce la compresia sierelor si deci la
economisirea spatiului pe un disc de stocare a informatiei.
Mai departe vom formaliza cele spuse n alineatul precedent. Ne vom restr
ange considera
numai cazul surselor far
a memorie.
Sursa primar
a are alfabetul de lungime N :
[S] = [s1 , s2 , . . . sN ]
cu setul de probabilit
ati:
[PS ] = [p(s1 ), p(s2 ), . . . p(sN )]
Sursa secundar
a este caracterizata de alfabetul (de lungime D, D N ):
[X] = [x1 , x2 , . . . xD ]
Cu aceste simboluri se formeaza cuvinte de cod. Fiec
arui simbol al sursei i se ataseaza un cuv
ant
de cod. Totalitatea cuvintelor formeaz
a codul.
Ne intereseaza numai codurile unic decodabile adic
a acele coduri unde unei secvente a
cuvintelor de cod i corespunde o unic
a succesiune de simboluri ale sursei.
Exemple:
1. Fie o surs
a cu 4 simboluri: s1 , s2 , s3 , s4 . Acestora le corespund cuvintelor de cod provenite
dintr-un alfabet binar : s1 00, s2 01, s3 10, s4 11 Acesta este un cod unic
decodabil, pentru ca orice secvent
a de cuvinte de cod s-ar considera decodarea este simpla:
se grupeaza doi c
ate bitii; ecare grup are o singura corespondent
a n simbolurile sursei.
39
40
N
p(si )li
(4.1)
i=1
a lungimea (num
arul de simboluri) cuv
antului de cod corespunzator simbolului
unde li reprezint
a lungimea uni cuv
ant de cod este:
si . Se poate demonstra c
l=
H(S)
H(X)
(4.2)
Dup
a cum am precizat, scopul codarii este de a reduce redundanta, sau echivalent, de a
maximiza entropia sursei secundare. Aceasta si atinge valoarea maxima pentru probabilit
ati
egale si este:
Hmax (X) = log D
In acest caz lungimea medie devine minima:
lmin =
H(S)
H(S)
=
Hmax (X)
log D
(4.3)
Altfel spus un cod bun este acela care minimizeaza lungimea medie.
Se deneste eficienta codului ca ind raportul ntre lungimea medie minim
a a codului si
lungimea medie a unui cuv
ant de cod.
lmin
(4.4)
=
l
Un cod se numeste absolut optimal dac
a are ecienta egala cu unitatea sau, altfel spus,
un cod pentru care lungimea medie este minim
a si deci entrpoia sursei a devenit maxim
a.
Un cod optimal este cel care pentru care se obtine cea mai mica lungime medie posibil
a.
Trebuie precizat ca absolut optimalitatea este data de setul de probabilit
ati ale sursei si nu de
cod. Adic
a exista seturi de probabilit
ati pentru care nu exista cod absolut optimal.
In practic
a se cauta coduri optimale; acestea, n anumite situatii particulare, devin absolut
optimale. Un procedeu de codare optimal
a este data de Human n codul care-i poart
a numele.
41
Dli 1
(4.5)
i=1
Se poate ar
ata (vezi problema rezolvat
a 3) ca un cod optimal trebuie s
a indeplineasc
a relatia:
N D
N
D1
4.1
(4.6)
Probleme rezolvate
1. [3] O surs
a S genereaz
a 6 simboluri, de probabilit
ati descrise de vectorul P =
[0.3; 0.25; 0.2; 0.1; 0.1; 0.05]. Sursa este codat
a optimal, simbol cu simbol, cu cuvinte de
cod generate cu simboluri dintr-un alfabet ternar. S
a se calculeze cuvintele de cod, arborele de codare si eficienta cod
arii.
Rezolvare: Codarea optimal
a a unei surse se realizeaza conform algoritmului Human.
Se stie ca num
arul de simboluri ale sursei ce se codeaza trebuie s
a ndeplineasc
a relatia
(4.6); n acest caz, N = 6, D = 3 si deci
63
3
N D
=
=
/N
D1
31
2
Completarea se face adaug
and sursei simboluri de probabilitate nul
a; n acest caz, cu un
singur astfel de simbol ad
augat obtinem N = 7 si
73
4
N D
=
= N
D1
31
2
Entropia sursei extinse S este data de:
H(S) =
7
i=1
= (0.3 log 0.3 + 0.25 log 0.25 + 0.2 log 0.2 + 2 0.1 log 0.1)
0.05 log 0.05 0 log 0 = 2.366 bit/simbol
Atunci, conform (4.3), lungimea medie minim
a a unui cuv
ant de cod este:
lmin =
2.366
H(S)
=
= 1.493
log D
log 3
42
p(si )
s1
s2
s3
0.3
0.25
0.2
s4
s5
s6
s7
0.1
0.1
0.05
0
Cod
Surs
a
redus
a
r11
r12
r13
r14
r15
p(rji )
0.3
0.25
0.2
0.15
0.1
Cod
Surs
a
redus
a
r21
r22
r23
p(rji )
Cod
0.45
0.3
0.25
0
1
2
00
01
02
010
011
012
Tabela 4.1: Codare Human
Cuvintele de cod sunt grupate n tabelul 4.2; pe baza lor putem calcula lungimea medie a
cuvintelor de cod:
l=
7
i=1
Surs
a
primar
a
s1
s2
s3
s4
s5
s6
s7
1.493
lmin
=
= 0.933
1.6
l
p(si )
Cod
Lungime
0.3
0.25
0.2
0.1
0.1
0.05
0
1
2
00
02
010
011
012
1
1
2
2
3
3
3
43
Figura 4.1: Arbore de codare. COd reductibil (a) si cod ireductibil (b)
Vericarea inegalit
atii (4.5) n conditiile date (D = 3, N = 10, l = [1, 1, 2, 2, 3, 3, 4, 4, 4, 5])
conduce la:
2 31 + 2 32 + 2 33 + 3 34 + 1 35 = 1 + 35 > 1
Inegalitatea (4.5) nu este vericat
a, si deci codul nu este ireductibil. Acelasi lucru poate
constatat si pe arborele de codare (prezentat n gura 4.1): arborele este ternar (ecare
nod, cu exceptia nodurilor terminale, are trei descendenti) iar satisfacerea propriet
atii
de prex nseamna ca ecare cuvant (nod terminal) nu provinde din alt cuv
ant. Pentru
datele problemei aceasta nu este posibila: cuv
antul de lungime 5 nu poate construit
decat dintr-un alt cuv
ant de cod (altfel spus, n arborele de codare nu mai exist
a nici o
pozitie liber
a de la care sa se construiasca cuvinte noi); corectarea acestei situatii se poate
face prin transformarea unui cuv
ant de lungime 4 n lungime 5.
3. [3] S
a se demonstreze formula (4.6) prin care se verific
a necesitatea extinderii sursei de
codat cu simboluri de probabilitate nul
a.
Rezolvare: Principiul cod
arii Human cu D simboluri n alfabetul codului este reducerea
iterativ
a a sursei primare, prin gruparea ultimelor D simboluri (cele mai putin probabile).
Aceste ultime D simboluri se nlocuiesc (n sursa redus
a) cu un unic simbol; astfel, prima
sursa redus
a are deci un num
ar de N D + 1 simboluri; a doua surs
a redusa are deci
(N D + 1) D + 1 simboluri, s.a.m.d. Prin inductie matematica se poate demonstra
cu usurinta ca dup
a k pasi de reducere, sursa redus
a de ordinmul k are un num
ar de
N k(D 1) simboluri.
Ultima surs
a redus
a trebuie s
a aib
a exact D simboluri (ec
arui simbol aloc
andu-i-se un
simbol din alfabetul codului); atunci, dac
a num
arul de pasi de reducere necesari este n,
obtinem relatia necesara
N n(D 1) = D
de unde rezult
a ca
N D
D1
Dar n este un numar natural (este num
arul de etape de reducere), si deci este evident ca
trebuie satisf
acut
a conditia (4.6), deci
n=
N D
N
D1
44
4.2
Probleme propuse
1. [2] O surs
a de informatie S1 genereaza n mod independent 6 simboluri, ale c
aror probabilit
ati sunt descrise de vectorul P 1, iar o surs
a de informatie S2 genereaza n mod independent 7 simboluri, ale c
aror probabilit
ati sunt descrise de vectorul P 2. a) S
a se codeze
simbolurile surselor prin cuvinte compuse din simboluri ale alfabetului X = {0, 1, 2}, astfel
nc
at ecienta codarii s
a e maxima. b) S
a se realizeze codarea Human binar
a a simbolurilor surselor S1 si S2. c) S
a se calculeze si sa se compare lungimile medii, ecienta si
arborii de codare pentru cod
arile realizate la a) si b).
(a) P 1 = [0.2; 0.05; 0.25; 0.21; 0.25; 0.04]; P 2 = [0.03; 0.32; 0.26; 0.1; 0.1; 0.03; 0.16]
(b) P 1 = [0.1; 0.01; 0.26; 0.14; 0.13; 0.27]; P 2 = [0.01; 0.2; 0.2; 0.2; 0.01; 0.01; 0.37]
(c) P 1 = [0.01; 0.3; 0.3; 0.32; 0.04; 0.03]; P 2 = [0.22; 0.22; 0.1; 0.06; 0.16; 0.06; 0.18]
(d) P 1 = [0.17; 0.18; 0.13; 0.15; 0.15; 0.22]; P 2 = [0.05; 0.05; 0.05; 0.05; 0.5; 0.15; 0.15]
(e) P 1 = [0.3; 0.1; 0.1; 0.13; 0.17; 0.2]; P 2 = [0.07; 0.25; 0.08; 0.12; 0.18; 0.05; 0.25]
(f) P 1 = [0.25; 0.15; 0.25; 0.07; 0.12; 0.16]; P 2 = [0.1; 0.1; 0.1; 0.1; 0.1; 0.25; 0.25]
(g) P 1 = [0.18; 0.11; 0.1; 0.06; 0.23; 0.32]; P 2 = [0.05; 0.4; 0.1; 0.1; 0.03; 0.08; 0.24]
(h) P 1 = [0.04; 0.16; 0.14; 0.28; 0.22; 0.16]; P 2 = [0.16; 0.18; 0.16; 0.17; 0.15; 0.14; 0.04]
(i) P 1 = [0.26; 0.18; 0.24; 0.04; 0.08; 0.2]; P 2 = [0.2; 0.2; 0.16; 0.14; 0.03; 0.16; 0.11]
(j) P 1 = [0.14; 0.1; 0.3; 0.01; 0.43; 0.02]; P 2 = [0.15; 0.15; 0.1; 0.15; 0.15; 0.2; 0.1]
(k) P 1 = [0.22; 0.29; 0.07; 0.05; 0.1; 0.27]; P 2 = [0.25; 0.1; 0.11; 0.13; 0.16; 0.1; 0.15]
(l) P 1 = [0.23; 0.05; 0.25; 0.15; 0.15; 0.17]; P 2 = [0.03; 0.07; 0.17; 0.15; 0.25; 0.07; 0.26]
(m) P 1 = [0.05; 0.15; 0.23; 0.16; 0.26; 0.15]; P 2 = [0.15; 0.15; 0.08; 0.11; 0.5; 0.2; 0.16]
(n) P 1 = [0.05; 0.4; 0.16; 0.05; 0.24; 0.1]; P 2 = [0.14; 0.39; 0.1; 0.01; 0.25; 0.03; 0.08]
(o) P 1 = [0.2; 0.18; 0.38; 0.05; 0.07; 0.12]; P 2 = [0.2; 0.15; 0.07; 0.22; 0.1; 0.18; 0.08]
(p) P 1 = [0.2; 0.03; 0.21; 0.2; 0.26; 0.1]; P 2 = [0.15; 0.22; 0.08; 0.2; 0.23; 0.06; 0.06]
(q) P 1 = [0.1; 0.05; 0.2; 0.14; 0.07; 0.44]; P 2 = [0.14; 0.14; 0.14; 0.14; 0.14; 0.14; 0.02]
(r) P 1 = [0.15; 0.09; 0.12; 0.22; 0.25; 0.17]; P 2 = [0.1; 0.1; 0.2; 0.2; 0.05; 0.05; 0.3]
(s) P 1 = [0.15; 0.1; 0.2; 0.16; 0.16; 0.23]; P 2 = [0.01; 0.01; 0.01; 0.07; 0.3; 0.3; 0.3]
(t) P 1 = [0.3; 0.26; 0.08; 0.16; 0.15; 0.05]; P 2 = [0.25; 0.2; 0.05; 0.125; 0.125; 0.125; 0.125]
(u) P 1 = [0.05; 0.38; 0.05; 0.25; 0.24; 0.03]; P 2 = [0.1; 0.3; 0.02; 0.08; 0.05; 0.05; 0.4]
a se construiasca sursele
2. O surs
a genereaza n mod independent simbolurile s1 si s2 . S
extinse de ordinele 2 si 3 si sa se codeze optim acestea cu un alfabet binar; sa se calculeze
cresterea de ecacitate obtinut
a prin extensia sursei primare, dac
a: 1) p(s1 ) = 0.01 2)
p(s1 ) = 0.02 3) p(s1 ) = 0.03 4) p(s1 ) = 0.04 5) p(s1 ) = 0.05 6) p(s1 ) = 0.06 7) p(s1 ) = 0.07
8) p(s1 ) = 0.08 9) p(s1 ) = 0.1 10) p(s1 ) = 0.12 11) p(s1 ) = 0.15 12) p(s1 ) = 0.2 13)
p(s1 ) = 0.22 14) p(s1 ) = 0.25 15) p(s1 ) = 0.27 16) p(s1 ) = 0.3 17) p(s1 ) = 0.33 18)
p(s1 ) = 0.35 19) p(s1 ) = 0.37 20) p(s1 ) = 0.40 21) p(s1 ) = 0.42 22) p(s1 ) = 0.45 23)
p(s1 ) = 0.47 24) p(s1 ) = 0.48 25) p(s1 ) = 0.49.
45
3. O surs
a genereaza n mod independent simbolurile s1 , s2 si s3 . S
a se construiasca sursa
extins
a de ordinul 2 si sa se codeze optim cu un alfabet binar, respectiv ternar; s
a se
calculeze cresterea de ecacitate obtinut
a prin extensia sursei primare, dac
a:
(a) p(s1 ) = 0.1p(s2 ) = 0.1
(b) p(s1 ) = 0.1, p(s2 ) = 0.2
(c) p(s1 ) = 0.1, p(s2 ) = 0.3
(d) p(s1 ) = 0.1, p(s2 ) = 0.5
(e) p(s1 ) = 0.1, p(s2 ) = 0.6
(f) p(s1 ) = 0.2, p(s2 ) = 0.2
(g) p(s1 ) = 0.2, p(s2 ) = 0.3
(h) p(s1 ) = 0.2, p(s2 ) = 0.5
(i) p(s1 ) = 0.2, p(s2 ) = 0.7
(j) p(s1 ) = 0.3, p(s2 ) = 0.1
(k) p(s1 ) = 0.3, p(s2 ) = 0.25
(l) p(s1 ) = 0.3, p(s2 ) = 0.4
(m) p(s1 ) = 0.3, p(s2 ) = 0.5
(n) p(s1 ) = 0.5, p(s2 ) = 0.1
(o) p(s1 ) = 0.5, p(s2 ) = 0.3
(p) p(s1 ) = 0.5, p(s2 ) = 0.4
(q) p(s1 ) = 0.8, p(s2 ) = 0.1
(r) p(s1 ) = 0.7, p(s2 ) = 0.2
(s) )p(s1 ) = 0.6, p(s2 ) = 0.3
(t) p(s1 ) = 0.25, p(s2 ) = 0.25
(u) p(s1 ) = 0.33, p(s2 ) = 0.2
(v) p(s1 ) = 0.4, p(s2 ) = 0.4
(w) p(s1 ) = 0.33, p(s2 ) = 0.33
(x) p(s1 ) = 0.4, p(s2 ) = 0.59
(y) p(s1 ) = 0.05, p(s2 ) = 0.05.
Indicatie: Sursa extins
a de ordinul 2 presupune crearea simbolurilor extinse: se1 = s1 s1 ,
se2 = s1 s2 , se3 = s1 s3 , se4 = s2 s1 , se5 = s2 s2 , se6 = s2 s3 , se7 = s3 s1 , se8 = s3 s2 , se9 =
atile simbolurilor sursei extinse se obtin prin nmultirea probabilit
atilor
s3 s3 . Probabilit
sursei primare (este o sursa f
ar
a memorie). Aceasta sursa se codeaza ca orice sursa cu
9 simboluri. Ecient
a codarii unei surse extinse va ntotdeauna mai mare (sau m
acar
egala) decat codarea sursei primare. Egalitatea se obtine, de pild
a, pentru o ecienta egal
a
1 a sursei primare.
46
Bibliografie
[1] Mihai Ciuc. Note de seminar.
[2] A. T. Murgan, I. Sp
anu, I. Gav
at, I. Sztojanov, V. E. Neagoe, si A. Vlad. Teoria Transmisiunii Informatei - probleme. Editura Didactic
a si Pedagogica, Bucuresti, Rom
ania, 1983.
[3] Alexandru Sp
ataru. Teoria Transmisiunii Informattiei. Editura Didactic
a si Pedagogic
a,
Bucuresti, Rom
ania, 1983.
[4] Alexandru Sp
ataru. Fondements de la theorie de la transmisssion de lnformation. Presses
polytechniques romandes, Lausanne, Elvetia, 1987.
[5] Rodica Stoian. Note de seminar.
[6] Dan Alexandru Stoichescu. Note de seminar.
[7] Eugen Vasile. Note de seminar.
[8] Constantin Vertan. Note de seminar.
67