Sunteți pe pagina 1din 4

COBSINF

Codarea binar a surselor de informaie


Lucrarea de fa i propune explicitarea algoritmilor de calcul pentru a coda binar surse de
informaie ntlnite n practic.
Codarea binar a surselor de informaie are dublu rol, de mrire a eficienei sursei de
informaie (i implicit de micorare a costului transmisiei prin scderea timpului transmisiei); de
adaptare a sursei de informaie la canalul transmisiune (canal binar, n majoritate).
Din punct de vedere al codrii, la o surs de informaie intereseaz numrul de simboluri N i
probabilitile lor de apariie pi , i = 1, N . Doar pe utilizator l intereseaz ce reprezint fiecare
mesaj n parte (liter de alfabet, nivel al intensitii pixelilor dintr-o imagine, valori ale unor mrimi
fizice ce variaz arbitrar1).
Codarea este operaia prin care fiecrui simbol al sursei, si, i se aloc o succesiune binar
unic:
ri1 , ri2 , ... rili = ci

si

(1)

unde ci reprezint cuvntul de cod asociat simbolului (mesajului) sursei, iar rij , cu i = 1, N , biii
componeni ai cuvntului de cod (pot lua valori binare 1 sau 0). Suportul fizic al valorilor
binare este, de asemenea, mai puin important pentru codare. Acest suport poate fi un semnal
electric, optic, acustic, etc.
n expresia (1) li reprezint lungimea cuvntului de cod ci (numr de simboluri binare).
Lungimea medie a cuvintelor de cod este dat de relaia:
N

L=

(2)

li

i =1

Ieirea codorului, pentru canalul de transmisie, reprezint o surs de informaie numit


secundar. Aceast surs poate genera simbolurile 0 i 1. Entropia (informaia medie pe simbol),
entropia maxim, precum i eficiena sursei primare, sunt date de relaiile:
N

H(S) =

log 2

i =1

1
pi

H max (S) = log 2 N ;


S =

H(S)
H max (S)

(3)

Entropia sursei secundare este egal cu informaia medie pe un cuvnt raportat la lungimea
medie a cuvntului:
H(X) =

H(S)
L

(4)

Atribuirea literelor de alfabet rij pentru a forma cuvntul de cod ci trebuie s conduc la
ndeplinirea condiiilor:
- codul s fie instantaneu (nici un cuvnt nu este prefixul altuia);
1
Dei, aparent, astfel de surse de informaie nu au un numr finit de simboluri, prin eantionare i cuantizare, orice
surs de informaie poate fi redus la una cu numr finit de simboluri.

COBSINF
- codarea s conduc la o eficien maxim posibil. Aceast condiie se realizeaz
folosind cuvinte de lungime variabil, mai mare pentru simboluri de probabilitate de emisie (a
sursei primare) mai mic. Codarea cu cuvinte de lungime variabil este mai complicat, dar
conduce la o surs secundar cu eficien mai bun i la o ieftinire a transmisiei, lungimea medie
a cuvintelor de cod fiind mai mic. Codarea cu cuvinte de lungime constant este mai simpl dar
cuvintele avnd aceeai lungime ofer maleabilitate la prelucrri ulterioare.
Codarea cu cuvinte de lungime constant se mai numete i codare cu cod bloc. Cuvintele
codului bloc sunt secvene binare diferite, de aceeai lungime L. tiind c numrul de secvene
diferite ce pot fi constituite cu L cifre binare este 2L, rezult c numrul simbolurilor sursei trebuie
s fie mai mic dect 2L, sau:
L log 2 N = H max (S) > L 1
(5)
Inecuaia a doua din (5) se datoreaz criteriului de eficien minim posibil (sub restricia de
cod bloc).
Realizarea condiiilor mai sus precizate se face prin codare dup algoritmul Huffman (static).
Acesta presupune:
1. Ordonarea probabilitilor sursei (primare) n ordine descresctoare;
2. Simbolurile cu probabilitile cele mai mici (ultimele dou1 n ordonare) se reunesc
formnd un nou simbol cu probabilitatea sumei celor dou, dup care se reordoneaz probabilitile,
obinndu-se o surs cu N-1 simboluri;
3. Procesul continu pn cnd rmn 2 simboluri. Acestora li se atribuie valorile 0 i 1;
4. Mergnd pe cale invers, se disociaz simbolurile compuse n simboluri din care s-au
compus, atribuind arbitrar, la fiecare disociere, valorile 0 i 1 pentru a gsi cuvintele de cod pentru
cei doi componeni. De reinut c doar un singur simbol se disociaz la fiecare pas, lungimea
componenilor si crescnd cu 1, celelalte simboluri pstrndu-i lungimea i structura cuvntului
de cod.
Observaie: -atribuirea simbolurilor binare celor dou simboluri compuse este arbitrar, codurile
obinute vor fi diferite, dar de aceeai eficien. De asemenea, ordinea simbolurilor de egal
probabilitate poate fi aleas arbitrar, diferitele moduri de atribuire conducnd la coduri diferite,
dar de aceeai eficien. ns, n vederea posibilitii de a confrunta rezultatele, se vor respecta
regulile: -0 se atribuie totdeauna simbolului de jos (ultimul n ordonare); -ordinea simbolurilor
egal probabile este ordinea n care s-au citit, cu simbolul compus totdeauna ultimul.

Programul pe calculator, asociat acestei lucrri, permite codarea surselor de informaie prin
algoritm Huffman static.
Precizarea sursei de informaie se poate face simplu, introducnd valorile probabilitilor
sursei i numrul lor. Probabilitile trebuie s ndeplineasc condiia:
N

=1

0 pi 1 ;

i = 1, N

(6)

i =1

Probabilitile pot fi introduse indirect, prin numere ntregi, pozitive ki, calculatorul urmnd s
fac transformarea:

Algoritmul se poate aplica i pentru obinerea codurilor nebinare (avnd un alfabet cu m simboluri). n acest caz se
grupeaz cte m simboluri.

COBSINF

pi =

ki

(7)

k 1

ceea ce asigur ndeplinirea relaiei (6).


Sursa de informaie poate fi i un text scris (n caractere ASCII), cu cel puin 3 caractere
diferite. Calculatorul va nelege c simbolurile sursei (caracterele prezente n text) au probabiliti
precizate prin ponderea lor n text (numr de prezene ale caracterului respectiv raportat la ntregul
numr de caractere ale textului).
Programul permite i o a treia surs de informaie. Simbolurile acesteia reprezint intervale de
lungime egal, i n numr finit, de pe ax real. n acest caz datele vor consta n valorile
eantioanelor unui semnal discret ( fig.1) , mrginit n timp cu suportul finit precizat ca dat de
intrare M. Tot ca dat de intrare calculatorul va cere i q-cuanta. Avnd aceste mrimi q (cuanta), M
(numrul de eantioane) i b(i) (valorile eantioanelor), pentru gsirea simbolurilor sursei i implicit
a numrului lor N, calculatorul va proceda astfel:
va cuta eantioanele de valoare minim i maxim : min; max;
max min
va calcula N = [
] + 1 unde [ ] semnific partea ntreag;
2

b(2)=maxim
b(1)
b(3)

b(M)
Nq
q

b(4)=minim
Fig.1 Surs de informaie semnal discret

max min
] + 1 unde [ ] semnific partea ntreag;
q
va atribui sursei de informaie primare simbolurile: [ min, min + q ); [min+q, min+2q);
... ;[min+(N-1)q,min+Nq)
va calcula probabilitatea simbolurilor ca fiind egale cu fraciunea din numrul
eantioanelor M, ce au valori cuprinse n intervalele ce definesc simbolurile. Este
posibil desigur s rmn simboluri cu probabilitate 0.
n toate cele 3 cazuri se vor calcula i se vor putea vizualiza:
a) probabilitile sursei primare;
b) datele asociate sursei i codrii:
entropia sursei primare H(S);
entropia maxim a sursei primare Hmax(S);
eficiena sursei primare S;
entropia sursei secundare (eficiena codrii) H(X);
lungimea medie a cuvintelor de cod L;
redundana sursei primare R(S)=Hmax(S)-H(S);

va calcula N = [

COBSINF

c)
d)
e)
f)

redundana relativ a sursei primare S =1-S ;


redundana sursei secundare X =1-H(X).
cuvintele de cod;
graful codrii;
schema algoritmului Huffman (numai pentru cazul codrii cu cuvinte de
lungime variabil );
n cazul sursei semnal discret se pot vedea i graficul semnalului precum i
valorile eantioanelor.

Desfurarea lucrrii
1. Rulai programul selectnd opiunea Demonstraie. Selectai pe rnd cele trei feluri de
surse de informaie (tablou, text i semnal discret), i pentru fiecare surs solicitai o codare bloc i
o codare prin algoritmul Huffman static. Urmrii aplicarea algoritmului.
2. Alctuii surse de informaie de forma celor prezentate i codai-le bloc i prin algoritmul
Huffman static, calculnd n fiecare caz entropia sursei, eficiena sursei, lungimea medie a
cuvintelor codului obinut, precum i eficiena codrii. Pornii pentru nceput cu surse tablou mai
simple, apoi mrii numrul de simboluri. Utilizai ulterior i surse text sau semnal discret.
3. La sfritul lucrrii de laborator se va efectua test asupra cunotinelor acumulate. Durata
acestuia este aproximativ constant i independent de numrul de studeni ce efectueaz simultan
testul (calculatorul poate testa pn la 4 studeni simultan n sensul c afieaz pe rnd date pentru
cei n 4 studeni i apoi ntreab pe rnd, n aceeai ordine studenii, timpii de afiare i de
chestionare rezervai fiecrui student sunt constani i nu influeneaz pe cei rezervai altuia).
Rezultatul testului se va concretiza printr-o not, calculat automat de calculator.