Documente Academic
Documente Profesional
Documente Cultură
n aceast lucrare este studiat codarea surselor de informaie discrete pentru canale fr pertur-
baii prin procedeul Human. Vor analizate codurile Human binare i n-are i se va studia,
de asemenea, aplicarea algoritmului Human pentru compresia datelor.
Algoritmul de codare Human este un algoritm optimal de codare a surselor discrete de infor-
maie, n sensul c prin niciun alt algoritm nu se poate obine o lungime a cuvintelor de cod
mai mic. Comparativ cu algoritmul Shannon-Fano, util numai pentru codarea surselor care
genereaz simboluri ale cror probabiliti sunt puteri negative ale lui 2, procedeul lui Human
este aplicabil pentru orice distribuie de probabiliti ale simbolurilor sursei de informaie. El
permite obinerea unui cod ale crui cuvinte au lungimi variabile, fr prex. Proprietatea co-
durilor fr prex este aceea c niciun cuvnt de cod nu este un prex pentru un alt cuvnt de
cod.
Un cod fr prex este un cod instantaneu, n cazul cruia decodarea unui cuvnt se efectueaz
pe msura recepionrii lui, fr a necesar examinarea cuvntului urmtor.
n cazul codrii surselor pentru canale fr perturbaii, sursa de informaie primar genereaz
un numr de simboluri sau mesaje care alctuiesc alfabetul sursei a crui dimensiune este N :
(4.1)
[S] = s1 s2 ... sN .
Aceste mesaje si sunt puse n coresponden biunivoc cu tot attea cuvinte de cod ci avnd
lungimile li . Lungimea li a unui cuvnt de cod ci este dat de numrul de simboluri xi din
structura sa. Pentru construcia acestor cuvinte de cod se folosesc literele xi ale unei surse
secundare, care aparin alfabetului ce conine D litere:
(4.2)
[X] = x1 x2 ... xD
cu probabilitile P [X] = p (x1 ) p (x2 ) . . . p (xD ) .
(4.3)
[C] = c1 c2 ... cN
1
2 Lucrarea 4
Valoarea minim a acestei mrimi, pentru o distribuie dat a probabilitilor sursei primare,
se obine atunci cnd probabilitile simbolurilor sursei secundare sunt egale ntre ele; ea este
dat de relaia:
H (S)
lmin = . (4.5)
log2 D
unde H (S) reprezint entropia sursei, calculat cu formula:
N
(4.6)
X
H (S) = p (si ) log2 p (si ).
i=1
Aceast relaie exprim condiia sucient pentru un cod fr prex i condiia necesar
pentru un cod unic decodabil.
Dac relaia este ndeplinit cu inegalitate, atunci codul are redundan, iar dac este ndepli-
nit cu egalitate, atunci codul este un cod fr redundan. Dac inegalitatea nu este indeplinit,
atunci codul nu este unic decodabil.
Un cod optimal fr prex are urmtoarele proprieti:
1. Simbolurile cu probabilitatea cea mai mare vor corespunde cuvintelor de cod cele mai
scurte. Pentru p (si ) > p (sj ) , rezult li lj .
2. Ultimele D simboluri cu cea mai mic probabilitate vor corespunde unor cuvinte de cod de
lungime egal.
Codul Human se creeaz dup urmtorul algoritm:
Procedeul de codare Human 3
3. Fiecrui simbol din grupul anterior r1 i se atribuie un simbol din alfabetul codului.
4. Se obine o surs restrns cu N D + 1 simboluri.
5. Se repet paii 1 i 2 pentru sursele restrnse astfel obinute, pn cnd se obine o surs
restrns cu D simboluri.
6. Cuvntul de cod pentru ecare simbol este obinut prin parcurgerea simbolurilor atribuite
grupurilor, n sens opus restrngerii (echivalent cu parcurgerea unui arbore de la nodul
rdcin ctre frunze).
Exemplu: Se consider o surs discret de informaie cu urmtoarea distribuie de proba-
biliti:
P (S) = 0.3 0.1 0.05 0.25 0.2 0.1 .
Sursa va codat cu ajutorul algoritmului Human binar (D = 2) si Human ternar (D = 3).
a. Codarea binar (D = 2)
Sursa R3 Sursa R4
si p (si ) ci si p (si ) ci
r3 0.45 1 r4 0.55 0
s1 0.3 00 r3 0.45 1
s4 0.25 01
Tabelul 4.1: Codarea Human binar
n exemplul anterior, simbolurile ngroate sunt cele care se combin pentru a forma simbolul
articial ri , aat subliniat.
Entropia sursei este calculat cu ajutorul relaiei (4.6):
H (S) = 2.366 [biti/simbol].
4 Lucrarea 4
l = 2.40 [biti],
= 0.956.
K = 1.
ntruct relaia Kraft-McMillan este ndeplinit cu egalitate, codul este optimal, i niciun alt
algoritm nu poate obine o eciena mai ridicat.
b. Codarea ternar (D = 3)
Pentru a realiza codarea ternar i, n general, codarea n-ar, trebuie ca ultima surs restrns
s genereze exact D simboluri. Dup n pai de restrngere, o surs va genera N nD + n
simboluri.
Dac dup n restrngeri, sursa trebuie s genereze D simboluri, atunci trebuie s e ndeplinit
urmtoarea relaie:
D = (N nD) + n,
N D
n= . (4.10)
D1
63 3
n= = / N.
31 2
73
n= = 2 N.
31
Procedeul de codare Human 5
Pentru a analiza performanele codului, se vor calcula aceleai mrimi ca n cazul codrii
binare.
Entropia sursei primare rmne neschimbat, ea depinznd doar de probabilitile simbolurilor
sursei:
14 5 12 7 12 10 20
2. Pentru ecare cod obinut, se va realiza o codare, folosind functia huffman_encode, astfel:
Pentru primele dou exemple se va genera un sir aleator cu lungimea de 10 caractere.
Pentru a aa irul codat, se va folosi funcia huffman_encode, iar pentru vericare se va
folosi funcia huffman_decode:
4. Din valorile obinute pentru inegalitatea Kraft-McMillan, ce concluzie putei trage despre
codurile Human?
5. Se poate obine, printr-un alt algoritm, un cod cu o ecien mai bun dect codul Human
binar (considernd codarea simbol cu simbol)? Dar dect cel ternar? Explicai.
6. Se poate obine un cod binar cu ecien egal cu 1 ( = 1)? n ce condiii? Dar un cod
ternar?