Sunteți pe pagina 1din 50

81

CAPITOLUL 3





CODAREA SURSELOR DISCRETE DE
INFORMAIE PE CANALE NEPERTURBATE


La nceputul acestui capitol sunt prezentate cteva
preliminarii matematice privind compresia fr pierderi, necesare n
analiza i evaluarea procedurilor de codare din aceast categorie. n
cazul transmisiilor la mic distan sau la puteri de emisie mari
efectul perturbaiilor este neglijabil, situaii n care se pune numai
problema realizrii codrii surselor discrete de informaie de aa
manier nct, pe de o parte, transmisia pe canal s poat fi posibil,
iar pe de alt parte, s se asigure un timp ct mai mic pentru
transmiterea informaiei sursei respective. n acest scop, sursa
primar de informaie cu alfabetul { }
1 2
, ,...,
N
S s s s = este adaptat
statistic la canalul de transmisiuni, care accept simbolurile din
mulimea { }
1 2
, ,...,
M
X x x x = , numit alfabetul de la intrarea
canalului sau alfabetul codului folosit. Fiecrui mesaj
k
s , 1, k N = , i
se ataeaz un cuvnt de cod,
k
c , format dintr-o succesiune de
simboluri
k
x X , de aa manier nct timpul necesar transmiterii
informaiei sursei primare s fie minim.



82
3.1. Definirea codurilor nesingulare, unic decodabile
i instantanee

Fie { }
1 2
, ,...,
N
S s s s = mulimea mesajelor unei surse discrete
de informaie, { }
1 2
, ,...,
M
X x x x = alfabetul codului i
{ }
1 2
, ,...,
M
C c c c = , mulimea cuvintelor de cod. Prin operaia de
codare se realizeaz bijecia dintre mesajele
k
s S i cuvintele de
cod
k
c C .
Prin definiie, un cod se numete nesingular, dac toate
cuvintele de cod sunt distincte.
Prin definiie, un cod se numete unic decodabil, dac fiecrei
succesiuni de simboluri recepionate i corespunde o singur
succesiune de mesaje ale sursei primare S.
Pentru fixarea ideilor, se consider o surs discret de
informaie { }
1 2 3 4
, , , S s s s s = i alfabetul codului { } 0,1 X = . Dac
mulimea cuvintelor de cod este { }
1 2 3 4
, , , C c c c c = , cu c
1
l, c
2
01,
c
3
10 i c
4
l l, codul este nesingular, deoarece toate cuvintele de
cod sunt distincte. Dac, ns, se recepioneaz secvena 1101,
aceasta poate fi interpretat n trei moduri diferite, i anume fie
4 2
s s , fie
1 1 2
s s s , fie
1 3 1
s s s , deci codul respectiv nu este unic
decodabil.
O posibilitate de obinere a codurilor unic decodabile ar fi
utilizarea unui simbol special n alfabetul codului, care s marcheze
fie nceputul fiecrui cuvnt de cod, fie sfritul acestuia. De
exemplu, dac simbolul marcheaz sfritul fiecrui cuvnt de
cod, atunci la recepionarea secvenei ll01 n condiiile
exemplului considerat, se decide c s-a transmis succesiunea
mesajelor
4 2
s s , codul devenind astfel unic decodabil.
83
Datorit uurinei cu care se pot genera dou stri, notate
simbolic cu 0, respectiv 1, alfabetul codului este format numai din
aceste dou simboluri. De aceea, se pune problema de a se ntocmi
coduri unic decodabile folosind alfabetul binar { } 0,1 X = .
Considernd aceeai surs discret, ce poate furniza patru
mesaje i un alfabet de cod binar, se presupun urmtoarele dou
coduri codul A, n care s
1
c
1
0, s
2
c
2
10, s
3
c
3
110,
s
4
c
4
1110 i codul B, n care s
1
c
1
0, s
2
c
2
01,
s
3
c
3
011, s
4
c
4
0111. Att codul A, ct i codul B sunt unic
decodabile, deoarece n cazul codului A un zero marcheaz sfritul
fiecrui cuvnt de cod, n timp ce n cazul codului B un zero
marcheaz nceputul fiecrui cuvnt de cod. Dei ambele coduri
sunt unic decodabile, ntre acestea exist o diferen important n
cazul codului A, decodarea (interpretarea) fiecrui cuvnt de cod se
poate realiza odat cu recepionarea integral a acestuia, n timp ce
n cazul codului B decodarea fiecrui cuvnt de cod trebuie s mai
atepte un timp, pn la recepionarea primului simbol din cuvntul
urmtor.
Pentru a stabili diferena dintre cele dou coduri, este
necesar s se introduc noiunea de prefix a unui cuvnt de cod.
Prin definiie, succesiunea
1 2 k
i i i
x x x , este prefix al
cuvntului de cod
1 2 m
i i i i
c x x x , dac k m .
Prin definiie, un cod se numete instantaneu, dac nici un
cuvnt de cod nu este prefix pentru celelalte cuvinte de cod.
n cazul codului B, cuvntul de cod
1
c , este prefix al
cuvintelor
2
c , c
3
i c
4
, cuvntul de cod
2
c este prefix al cuvintelor c
3

i c
4
, iar cuvntul de cod c
3
este prefix pentru c
4
.
Evident, dac un cod este instantaneu, el este i unic
decodabil, reciproca nefiind totdeauna adevrat.
84
Pentru a stabili dac un cod este instantaneu, i se ataeaz
graful arborescent. n general, dac alfabetul codului este
{ }
1 2
, ,...,
M
X x x x = , graful arborescent se ntocmete astfel se
pleac dintr-un nod iniial, numit rdcina grafului, care se desface
n M ramuri (arce) pe care se aloc arbitrar cele M simboluri
1 2
, ,...,
M
x x x din alfabetul codului. Din cele M noduri formate la
capetele celor M ramuri se desfac din nou cte M ramuri, pe care se
aloc arbitrar literele din alfabetul codului i aa mai departe.
Cuvintele de cod se formeaz citind ramurile, plecndu-se de
la rdcina grafului arborescent spre nodurile terminale. Dac toate
cuvintele de cod corespund nodurilor terminale n graful
arborescent, nici un cuvnt de cod nu este prefix pentru altul i,
deci, codul este instantaneu.
Grafurile arborescente pentru codurile A i B sunt date n Fig. 3.1.



Fig. 3.1.a) Graful arborescent al codului instantaneu A; b) Graful arborescent al
codului B

85
3.2. Teorema de existen a codurilor instantanee

Aceast teorem stabilete condiia necesar i suficient de
existen a codurilor instantanee, referitoare la lungimile cuvintelor
de cod.
Prin definiie, lungimea unui cuvnt de cod reprezint
numrul de simboluri din alfabetul codului, din care este format
cuvntul respectiv.
Se consider o surs discret de informaie, caracterizat de
mulimea mesajelor { }
1 2
, ,...,
N
S s s s = , alfabetul codului
{ }
1 2
, ,...,
M
X x x x = , mulimea cuvintelor de cod { }
1 2
, ,...,
N
C c c c = i
mulimea lungimilor cuvintelor de cod { }
1 2
, ,...,
N
L l l l = .
Un cuvnt de cod
k
c este format dintr-o succesiune de
k
l
simboluri din alfabetul codului, de forma
... ...
k i j l
c x x x

Condiia necesar i suficient de existen a codurilor
instantanee este dat de inegalitatea lui Kraft, de forma

1
1
k
N
l
k
M

(3.1)
unde M este numrul de simboluri din alfabetul codului, N este
numrul cuvintelor de cod i
k
l - lungimea cuvintelor de cod.
Pentru a demonstra suficiena teoremei de existen, se
consider adevrat relaia (3.1) i, pe baza acesteia, se ntocmete
un cod care se va dovedi instantaneu.
Lungimile
1 2
, ,...,
N
l l l ale cuvintelor de cod pot fi distincte sau
nu. Fie
1
n numrul cuvintelor de cod formate numai dintr-un singur
simbol (lungime egal cu unitatea),
2
n numrul cuvintelor de cod
formate din dou simboluri (lungime egal cu doi) i aa mai
86
departe, fie
l
n , numrul cuvintelor de cod de lungimea cea mai
mare, egal cu l.
Evident

1
l
i
i
n N
=
=

(3.2)
Cu aceste notaii, rezult c n inegalitatea (3.1) suma va
conine
1
n termeni de forma
1
M

,
2
n termeni de forma
2
M

i aa
mai departe,
l
n termeni de forma
l
M

. n consecin, inegalitatea
(3.1) se poate scrie, echivalent, sub forma

1
1
l
i
i
i
n M

(3.3)
nmulind relaia (3.3) cu 0
l
M , rezult

1 2
1 2 1
...
l l
l l l
n M n M n M n M


(3.4)
Neglijnd n relaia (3.4) termenul 1
l
n i mprind apoi noua
relaie cu 2 M , rezult inegalitatea

1 2 2
1 1 3 2
...
l l
l l l
n M n M n M n M


(3.5)
Neglijnd n relaia (3.5) termenul
1
1
l
n

i mprind apoi noua


relaie cu 2 M , rezult inegalitatea

2 3
2 1 3
...
l l
l l
n M n M n M


(3.6)
n mod analog, se poate obine un ir de inegaliti, ultimele
trei fiind de forma

3 2
3 1 2
n M n M n M (3.7)

2
2 1
n M n M (3.8)

1
n M (3.9)
Evident, dac inegalitatea (3.1) este satisfcut, cu att mai
mult vor fi satisfcute inegalitile (3.4) pan la (3.9).
Pe baza acestor inegaliti se poate ntocmi un cod
87
instantaneu, dup cum urmeaz:
Se alege arbitrar un numr
1
n de cuvinte de lungime unu, care
respect inegalitatea (3.9). Rmn astfel disponibile
1
M n prefixe
formate dintr-un singur simbol, cu care se pot forma cuvinte de
lungime egal cu doi, al cror numr este egal cu
( )
2
1 1
M n M M n M = (3.10)
Alegndu-se arbitrar dintre acestea
2
n cuvinte ce respect
relaia (3.8), rmne disponibil un numr de prefixe din dou
simboluri, egal cu
2
1 2
M n M n , cu care se pot forma cuvinte de
lungime egal cu trei, n numr de

( )
2 3 2
1 2 1 2
M n M n M M n M n M = (3.11)
Dintre acestea, se aleg arbitrar
3
n cuvinte care respect relaia (3.7).
n mod analog se formeaz i celelalte cuvinte.
Deoarece nici un cuvnt nu devine prefix pentru altul,
codul astfel ntocmit este instantaneu, demonstrndu-se astfel
suficiena teoremei de existen a codurilor instantanee. Deoarece
codurile instantanee formeaz o subclas a codurilor unic
decodabile, rezult c s-a demonstrat suficiena teoremei de
existen i pentru codurile unic decodabile.
Pentru a demonstra necesitatea teoremei de existen a
codurilor instantanee, se pleac de la aseriunea: cuvintele unui cod
instantaneu pot fi aranjate totdeauna n nodurile terminale ale unui
graf arborescent. Fie l cea mai mare lungime a cuvintelor de cod.
La nivelul l arborele va avea, evident, un numr de
l
M noduri.
Fiecare cuvnt de lungime
k
l l blocheaz utilizarea a
k
l l
M

noduri
pe nivelul l. De exemplu, dac l=3, M=2, (simbolurile "0" i "1") i
se alege un cuvnt de lungime
k
l = 2, fie acesta
k
c = 01, atunci pe
nivelul l = 3 se blocheaz utilizarea a 2
3-2
= 2 noduri, aa cum este
88
artat n figur care urmeaz.



Deoarece dou cuvinte distincte blocheaz noduri diferite pe
nivelul l, rezult c numrul de noduri blocate pe nivelul l, rezult
c numrul de noduri blocate pe nivelul l este mrginit superior de
numrul de noduri de pe acest nivel, adic

1
k
N
l l l
k
M M

(3.12)
Simplificnd cu 0
l
M > , rezult inegalitatea (3.1), care trebuia
demonstrat.
Teorema fiind de existen, nseamn c, dac lungimile
cuvintelor de cod satisfac inegalitatea (3.1), exist cel puin un
procedeu de codare prin care s rezulte un cod instantaneu. Aceasta
nu nseamn c orice cod care satisface inegalitatea (3.1) este
instantaneu. Teorema stabilete c folosindu-se lungimi ale
cuvintelor de cod ce satisfac inegalitatea (3.1), se poate ntocmi cel
puin un cod instantaneu i, deci, unic decodabil. Dac pentru un
cod dat este satisfcut inegalitatea lui Kraft, pentru a decide dac
acesta este instantaneu, i se ataeaz graful arborescent i, dac toate
cuvintele de cod sunt noduri terminale, se decide c este
89
instantaneu.
Dac pentru un cod dat inegalitatea (3.1) nu este satisfcut,
atunci, cu certitudine, codul nu este instantaneu i nici unic
decodabil i, prin nici un procedeu de codare care va folosi aceleai
lungimi ale cuvintelor de cod, nu se poate ntocmi un cod
instantaneu sau unic decodabil.


3.3. Lungimea medie a cuvintelor de cod

Pentru o surs discret de informaie i un alfabet de cod
impus, se poate ntocmi o mulime de coduri instantanee sau unic
decodabile. n scopul comparrii acestora i a alegerii celui sau
celor mai bune (eficiente), se consider drept criteriu de comparaie
timpul necesar transmiterii informaiei sursei codate, de mrimea
acestui timp fiind legate o serie de cheltuieli. Un cod instantaneu va
fi cu att mai eficient, cu ct timpul necesar transmiterii informaiei
sursei discrete va fi mai mic. Este posibil s se ntocmeasc o
multitudine de coduri instantanee de eficien maxim.
Pentru a compara diverse coduri instantanee, se va defini
lungimea medie a cuvintelor de cod, care, aa cum se va demonstra,
este proporional cu timpul mediu de transmitere a cuvintelor de
cod. n felul acesta, se va demonstra c cel mai eficient cod
instantaneu care se obine, este cel pentru care lungimea medie a
cuvintelor de cod este minim.
Fie, pentru aceasta, o surs discret, complet i fr
memorie, caracterizat de distribuia:

( ) ( ) ( )
1
1

:
p
k N
k N
s s s
S
p s s p s





(3.13)
Fie, de asemenea, mulimea simbolurilor din alfabetul
90
codului
{ }
1 2
, ,...,
M
X x x x = i mulimea cuvintelor de cod { }
1 2
, ,...,
N
C c c c = .
Datorit corespondenei bijective dintre
k
s S i
k
c C ,
rezult
( ) ( )
k k
p s p c = , (3.14)
unde ( )
k
p c reprezint probabilitatea cuvntului
k
c .
Informaia ataat mesajului
k
s , notat cu ( )
k
i s , va fi atunci
egal cu informaia ataat cuvntului
k
c , notat cu ( )
k
i c , i se va
calcula cu
relaia clasic
( ) ( ) ( ) log
k k k
i s i c p s = = , (3.15)
Dac se noteaz cu ( ) H X entropia codului utilizat, atunci,
aceasta msoar informaia medie pe un simbol din alfabetul
codului.
Fie H(S) entropia sursei ce urmeaz a fi codat, adic
informaia medie pe un mesaj.
Dac
1 2
, ,...,
N
l l l sunt lungimile cuvintelor de cod, lungimea
medie a acestora se calculeaz cu relaia
( )
1
N
k k
k
l p s l
=
=

(3.16)
Pe de alt parte este evident c numrul mediu de simboluri
ale unui cuvnt de cod, adic l , este dat de raportul dintre
informaia medie pe cuvnt, H(S), i informaia medie pe un simbol
constituent, adic
( )
( )
H S
l
H X
= (3.17)
Dac se ine cont de (1.12) i (3.16), relaia (3.17) se poate
91
scrie echivalent sub forma
( )
( ) ( )
( )
1
1
log
N
k k N
k
k k
k
p s p s
p s l
H X
=
=

(3.18)
sau
( ) ( ) ( )
1
log 0
N
k k k
k
p s l H X p s
=
+ =

(3.19)
O condiie suficient, dar nu ntotdeauna necesar, pentru
satisfacerea relaiei (1.19) este ca

( )
( )
log
k
k
p s
l
H X
= (3.20)
Dac se noteaz cu durata medie de transmitere a unui
simbol din alfabetul codului X, rezult c durata de transmitere
k
T a
cuvntului de cod
k
c , de lungime
k
l , se poate determina cu relaia
k k
T l = (3.21)
Duratele
k
T , l,N k = , de transmitere a cuvintelor de cod,
determin o nou variabil aleatoare discret, ce poate lua valori cu
probabilitile ( ) ( )
k k
p s p c = i, deci, durata medie de transmitere a
unui cuvnt de cod este
( ) ( )
1 1
N N
k k k k
k k
T T p s p s l
= =
= =

(3.22)
Comparnd relaiile (3.16) i (3.22), rezult
T l = (3.23)
adic durata medie de transmitere a cuvintelor va fi cu att mai
mic, cu ct lungimea medie a acestora va fi mai mic.
Mrirea eficienei transmisiunii se poate, deci, obine
selectnd acel cod instantaneu care asigur o lungime medie minim
92
a cuvintelor de cod.
Eficiena transmisiunii poate fi definit, dac exist o
margine inferioar a lungimii medii, l , a cuvintelor de cod.
Din relaia (3.17) rezult c micorarea lui l se poate realiza
fie prin micorarea entropiei sursei ce urmeaz a fi codat, fie prin
mrirea entropiei codului, adic mrirea informaiei medii pe un
simbol din alfabetul codului.
Deoarece entropia sursei ( ) H S nu poate fi modificat fr
alterarea sursei iniiale, rezult c singura posibilitate pentru
micorarea lungimii medii a cuvintelor de cod rmne mrirea
entropiei codului printr-o codare adecvat.
Notnd cu min l , lungimea medie minim posibil a cuvintelor
de cod, se poate scrie relaia

( )
( )
min
max
H S
l
H X
=


(3.24)
Deoarece n urma codrii sursei S, utilizarea simbolurilor din
alfabetul codului X depinde, n general, de unul sau mai multe
simboluri folosite anterior, rezult c, n general, sursa secundar X
este o surs cu memorie. La limit, cnd sursa secundar X devine
fr memorie i simbolurile acesteia sunt folosite echiprobabil,
adic
( ) ( ) ( )
1 2
1
...
M
p x p x p x
M
= = = = , (3.25)
rezult marginea superioar a entropiei sursei secundare X egal cu
log M i, deci, marginea inferioar a lungimii medii a cuvintelor de
cod este
( )
log
H S
M
.
n general, se poate scrie irul de inegaliti
93

( )
min
log
H S
l l
M
(3.26)
n cazul particular, frecvent folosit n aplicaii, al codurilor binare,
M=2, caz n care relaia (3.26) devine

( ) min l l H S (3.27)
Cu alte cuvinte, n cazul codurilor binare instantanee nu se
pot obine lungimi medii ale cuvintelor de cod mai mici dect
entropia sursei ce urmeaz a fi codat.


3.4. Eficiena i redundana unui cod

Prin definiie, se numete eficiena unui cod i va fi notat cu
, raportul dintre marginea inferioar a lungimii medii a cuvintelor
de cod i lungimea medie a acestora, adic

( )
( ) log
log
H S
H S
M
l l M
= = (3.28)
nlocuind (3.20) n relaia (3.28), rezult o relaie echivalent
de calcul pentru eficiena unui cod instantaneu, i anume

( )
log
H X
M
= (3.29)
Prin definiie, se numete redundana unui cod i va fi notat
cu , mrimea complementar eficienei, adic
1 = (3.30)
Din relaia (3.29) rezult c valoarea maxim a eficienei este 1 = .
Prin definiie, un cod se numete absolut optimal, dac
eficiena acestuia este maxim.
94
n cazul codului absolut optimal, din relaia (3.28) rezult

( )
log H S l M = (3.31)
nlocuind n aceast relaie ( ) H S i l cu relaiile lor de calcul,
rezult
( ) ( )
1
log log 0
N
k k k
k
p s l M p s
=
+ =

(3.32)
O condiie suficient pentru satisfacerea acestei relaii este

( )
log log 0
k k
l M p s + = (3.33)
Din (3.33) rezult

( )
k
l
k
p s M

= (3.34)
Sumnd dup k de la 1 la N n relaia (3.34), se obine
( )
1 1
1
k
N N
l
k
k k
M p s

= =
= =

, (3.35)
adic n cazul codurilor absolut optimale inegalitatea lui Kraft
devine egalitate. n acest caz mesajele trebuie furnizate cu
probabilitile date de relaia (3.34).


3.5. Teorema codrii surselor discrete, complete i
fr memorie pe canale neperturbate

S-a demonstrat n paragraful precedent c, dac fiecare
mesaj al unei surse discrete, complete i fr memorie este furnizat
cu probabilitatea data de relaia (3.34), se poate obine un cod
absolut optimal. Logaritmnd n baz doi aceast relaie, rezult

( )
log
log
k
k
p s
l
M
= (3.36)
Conform definiiei lungimii cuvintelor de cod, rezult c
95
numai n cazul codurilor absolut optimale raportul
( )
log
log
k
p s
M
este
un numr ntreg pozitiv, ce poate fi considerat egal cu lungimea
cuvntului de cod
k
c .
n general, sursa discret de informaie i furnizeaz
mesajele cu diverse probabiliti care nu respect relaia (3.34) i,
deci, raportul
( )
log
log
k
p s
M
nu mai este un numr ntreg. n acest
caz, lungimile cuvintelor de cod,
k
l , 1, k N = , se aleg numerele
ntregi pozitive care respect dubla inegalitate

( ) ( ) log
1
log
log
log
k
k
k
p s
l
M
p s
M
< + (3.37)
Alegnd astfel lungimile cuvintelor de cod, se poate
demonstra c inegalitatea iui Kraft este satisfcut, deci, cu astfel de
lungimi se poate ntocmi totdeauna un cod instantaneu.
ntr-adevr, din prima inegalitate a relaiei (3.27) rezult

( )
k
l
k
M p s

(3.38)
Sumnd dup k, de la k=l la k=N i innd cont c sursa
discret de informaie este complet, rezult

( )
1 1
1
k
N N
l
k
k k
M p s

= =
=

(3.39)
Multiplicnd relaia (3.37) cu ( ) 0
k
p s > i apoi sumnd dup
k, de la k=1 la k=N, rezult
96
( ) ( )
( )
( ) ( )
( )
1
1
1
1
log
log
log
log
N
k k N
k
k k
k
N
k k N
k
k
k
p s p s
p s l
M
p s p s
p s
M
=
=
=
=

<

< +

(3.40)
innd cont de (3.18), (3.19) i de faptul c totdeauna sursele
discrete de informaie sunt complete, relaia (3.40) devine

( ) ( )
1
log log
H S H S
l
M M
< + (3.41)
Relaia (3.41) este adevrat pentru orice surs S discret,
complet i fr memorie, deci va fi adevrat i pentru extensia sa
de ordinul m.
Notnd cu
( )
m
H S entropia extensiei de ordinul m i cu
m
l ,
lungimea medie a cuvintelor de cod corespunztoare mesajelor
compuse
k
ale extensiei de ordinul m, relaia (3.41) se poate scrie
sub forma

( ) ( )
1
log log
m m
m
H S H S
l
M M
< + (3.42)
Aa cum s-a demonstrat n Capitolul 1,

( ) ( )
m
H S mH S = (3.43)
innd cont de (3.43), relaia (3.42) devine

( ) ( )
log log
m
H S H S
l l
M m M m
< + (3.44)
Pe de alt parte

m
l
l
m
= (3.45)
97
deoarece un mesaj compus este format dintr-o succesiune de m
mesaje ale sursei iniiale S.
Din (3.44) i (3.45) rezult c, la limit, cnd m ,
lungimea medie a cuvintelor de cod atinge marginea inferioar a
lungimii medii a cuvintelor de cod, adic

( )
log
H S
l
M
= (3.46)
obinndu-se astfel un cod absolut optimal.
Conform acestei teoreme, rezult c, efectundu-se codri
pe extensii ale unei surse discrete de informaie, se pot obine
lungimi medii ale cuvintelor de cod cu att mai mici, cu ct ordinul
extensiei este mai mare. La limit, cnd ordinul extensiei tinde la
infinit, se obine lungimea medie cea mai mic posibil a cuvintelor
de cod, egal cu marginea inferioar a acestora.
n practic nu se poate coda extensia de ordinul m a sursei
primare, cnd m tinde la infinit. Ordinul extensiei va avea totdeauna
o valoare finit i, cu ct ordinul extensiei este mai mare, cu att
complexitatea instalaiei de codare crete. Mai mult, de la o anumit
valoare a ordinului extensiei, creterea ordinului n continuare va
duce la scderi nesemnificative ale lungimii medii a cuvintelor de
cod, astfel c nu se mai justific preul de cost ridicat, dictat de
creterea complexitii instalaiei de codare. Din aceast cauz, n
practic, n multe situaii reale, se realizeaz codri pe mesaje
individuale, utilizndu-se procedee de codare care conduc la coduri
instantanee de eficien ct mai ridicat, adic acelea care conduc
spre lungimi medii ale cuvintelor de cod cele mai mici posibile.
Dintre procedeele de codare posibile s-au impus, procedeul de
codare Huffman, procedeul de codare binar Shannon Fano i
codarea aritmetic.

98
3.6. Procedeu de codare binar Huffman static

Acest procedeu se bazeaz pe ideea de a partiiona
mulimea mesajelor sursei { }
1 2
, ,...,
N
S s s s = n submulimile
0
S i
1
S , astfel nct suma probabilitilor mesajelor incluse n
0
S s fie
ct mai apropiat de suma probabilitilor mesajelor incluse n
1
S .
La rndul lor, submulimile
0
S i
1
S pot fi partiionate n
submulimile
00
S i
01
S , respectiv
10
S i
11
S astfel nct suma
probabilitilor mesajelor incluse n cele patru submulimi s fie ct
mai apropiate posibil. Procedeul se continu n mod similar pn
cnd se obin submulimi ce conin un singur mesaj.
n felul acesta, pentru orice distribuie a sursei S ce urmeaz
a fi codat se va obine un cod compact, adic lungimi medii ale
cuvintelor de cod ce nu mai pot fi micorate prin nici un alt
procedeu de codare.
Pentru ca partiiile s satisfac condiiile menionate, se procedeaz
astfel:
1) Se ordoneaz mulimea mesajelor sursei S n
ordinea descresctoare a probabilitilor, obinndu-se astfel
mulimea ordonat { }
0 1 2
, ,...,
N
R s s s = , cu ( ) ( )
1 2
... p s p s
( )
N
p s , cu schimbarea eventual a indicilor mesajelor pentru
realizarea ordonrii respective;
2) Se reunesc ultimele dou mesaje (de probabilitile cele
mai mici) ntr-un nou mesaj, notat cu
1
r , cruia i se aloc o
probabilitate egal cu suma probabilitilor mesajelor componente.
Se ordoneaz din nou mesajele n ordinea descresctoare a
probabilitilor, formndu-se astfel prima surs restrns
{ }
1 1 2 1
, ,..., ,... R s s r = , cu ( ) ( )
1 2
... p s p s ( )
1
... p r .
99
3) Se reunesc ultimele dou mesaje din sursa restrns
1
R
ntr-un nou mesaj
2
r , de probabilitate egal cu suma probabilitilor
mesajelor componente. Se ordoneaz mesajele n ordine
descresctoare, formndu-se astfel sursa restrns
2
R . n mod
analog, din
2
R se formeaz sursa restrns
3
R i aa mai departe,
pn cnd se obine o surs restrns format numai din dou
mesaje, { }
1
, ,
n n n
R r r

= cu ( ) ( )
1 n n
p r p r

. De fapt,
n
r va fi
0
S i
1 n
r


va fi
1
S sau invers.
Din modul de formare a surselor restrnse
i
R , rezult c
mulimea S a mesajelor poate fi partiionat n dou submulimi
n
r
i
1 n
r

astfel nct probabilitile ( )
n
p r i ( )
1 n
p r

sunt cele mai
apropiate posibil. La rndul lor, submulimile
n
r i
1 n
r

, pot fi
partiionate n alte dou submulimi, de probabilitile cele mai
apropiate posibil. Partiionrile se continu pn se obin
submulimi care conin un singur mesaj.
4) Cuvintele de cod corespunztoare fiecrui mesaj se obin
astfel:
- submulimii
n
r i se aloc simbolul "0" (sau "1");
- submulimii
1 n
r

, i se aloc simbolul "1" (sau "0");
- la fiecare partiionare se aloc arbitrar celor dou submulimi
"0" sau "1", operaia continundu-se pn se obin submulimi ce
conin un singur mesaj
k
s , 1, k N = .
Deoarece alocarea lui "0" i "1" este arbitrar la fiecare
partiionare, rezult c unei surse S i se pot ataa o multitudine de
coduri instantanee, toate, ns, avnd aceeai lungime medie a
cuvintelor de cod, care nu mai poate fi micorat prin nici un alt
procedeu de codare a mesajelor luate individual.
100
Dac sursa primar S poate furniza N mesaje, atunci
submulimea restrns
1
R , va avea N-1 mesaje, submulimea
restrns
2
R va conine N-2 mesaje i aa mai departe, ultima
submulime restrns
n
R va conine N n mesaje, care sunt
n
r i
1 n
r

, adic se poate scrie:
2 2 N n n N = = (3.47)
Dac submulimii
n
r i se aloc simbolul "0" i submulimii
1 n
r

simbolul "1", celor N-2 partiionri putndu-li-se aloca arbitrar
"0" sau "1", rezult un total de
2
2
N
posibiliti de codare. Dac,
ns, submulimii
n
r i se aloc simbolul "1", iar submulimii
1 n
r


simbolul "0", mai rezult
2
2
N
posibiliti de codare. Rezult, deci,
c prin acest procedeu de codare se pot realiza
2 2 1
2 2 2
N N N
+ =
coduri instantanee, toate avnd toate aceeai lungime medie a
cuvintelor de cod.
Prin definiie, se numete cod compact, codul care realizeaz
lungimea medie minim a cuvintelor de cod. Deoarece prin
procedeul de codare Huffman se obine cea mai mic lungime
medie a cuvintelor de cod, nseamn c prin acest procedeu se obin
coduri instantanee compacte. Evident, un cod absolut optimal este i
compact, reciproca nefiind totdeauna valabil.

Exemplul 3.1.
Se presupune sursa discret de informaie caracterizat de
distribuia:

6 5 1 2 3 4

:
0,1 0,2 0,3 0,15 0,05 0,2
s s s s s s
S




.
Codarea binar Huffman a acestei surse se poate realiza astfel:
101


Fig. 3.2. Schema de codare pentru exemplul 3.1

Graful i cuvintele de cod corespunztoare codrii efectuate sunt
date n Fig. 3.3.


Fig. 3.3. Graful corespunztor codului

3.6.1. Coduri Huffman de dispersie minim

Codurile Huffman de dispersie minim se obin cnd la
102
reordonarea sursei restrnse, simbolul compus se plaseaz pe poziia
cea mai de sus posibil n sursa restrns. n felul acesta cuvntul de
cod atribuit simbolului compus va avea cea mai mic lungime
posibil. Cum acest cuvnt va deveni prefix pentru simbolurile
constituente, cuvintele de cod corespunztoare acestora vor avea o
lungime cu o unitate mai mare dect lungimea prefixului, deci i
acestea vor rezulta de lungime minim. Ca urmare, diferenele
dintre lungimile cuvintelor de cod devin minime, ceea ce va
conduce, evident, i la o dispersie minim.
Pentru fixarea ideilor, se presupune sursa discret de
informaie caracterizat de distribuia:

5 1 2 3 4

:
0,2 0,4 0,2 0,1 0,1
s s s s s
S





Pentru aceast surs se efectueaz codarea Huffman, plasnd
nti mesajele sursei restrnse pe poziiile cele mai jos posibile n
list i apoi pe poziiile cele mai de sus posibile.
n primul caz rezult schema de codare din Fig. 3.4, iar
graful i cuvintele de cod ca n Fig. 3.5.



Fig. 3.4. Schema de codare
103



Fig. 3.5. Graful i cuvintele de cod

Pentru acest cod, lungimea medie i dispersia sunt:
0, 2 2 0, 4 1 0, 2 3 0,1 3 0,1 4 2, 2 bii/mesaj l = + + + + =
( )
2
5
2 2 2 2 2 2
1
1
0, 2 1, 2 0, 8 1, 8 1, 8 8, 6
i
i
l l
=
= = + + + + =


Pentru cazul n care n codarea Huffman mesajele sursei
restrnse se plaseaz pe poziiile cele mai de sus n list, se obine
schema de codare din Fig. 3.6 i graful i cuvintele de cod ca n Fig.
3.7.


Fig. 3.6. Schema de codare
104



Fig. 3.7. Graful i cuvintele de cod

Pentru acest cod, lungimea medie este, evident, aceeai, n
timp ce dispersia devine

( )
2
5
2 2 2 2 2 2
2
1
0, 2 0, 2 0, 2 0, 8 0, 8 1, 4
i
i
l l
=
= = + + + + =


Dei din punct de vedere informaional, cele dou coduri sunt
identice, n practic se prefer folosirea celor de dispersie minim,
din motive de transmisie.
De exemplu, dac se dorete s se transmit mesaje ale sursei
cu o vitez de 10.000 mesaje/sec., este necesar un canal cu
capacitatea de 22.000 bii/sec. Deoarece viteza de generare a biilor
oscileaz n jurul valorii de 22.000 bii/sec., funcie de succesiunea
de mesaje furnizate la un moment dat, ieirea sursei este ncrcat
ntr-un buffer. Dac, de exemplu, sursa genereaz la un moment dat
iruri de mesaje s
4
i s
5
mai multe secunde, pentru primul cod se
genereaz 40.000 bii/sec. i n fiecare secund ar trebui un buffer
de capacitate de 18.000 bii. Cu al doilea cod se genereaz 30.000
bii /sec. i bufferul ar trebui s aib capacitatea de 8.000 bii. Dac
se transmit iruri de mesaje s
2
, cu primul cod se genereaz 10.000
bii/sec. i canalul nu e folosit la capacitatea sa, rmnnd un deficit
de 12.000 bii/sec., pe cnd cu al doilea cod se genereaz 20.000
105
bii/sec., deficitul existent n exploatarea canalului fiind numai de
2.000 bii/sec. Aadar, din motive de transmisie este mai rezonabil a
se alege al doilea cod dect primul.

3.6.2. Procedeul de codare binar Shannon Fano

Acest procedeu se aplic de obicei n cazurile particulare n
care probabilitile de furnizare ale mesajelor sunt puteri ntregi
pozitive ale lui (1/2), adic, de forma:

( ) ( )
1
2 , 1,
2
k
k
l
l
k
p s k N




= = = (3.48)
unde
k
l este un numr ntreg pozitiv.
Dac relaia (3.48) este satisfcut, mulimea
{ }
1 2
, ,...,
N
S s s s = a mesajelor sursei discrete de informaie ce
urmeaz a fi codat poate fi partiionat n dou submulimi
0
S i
1
S , astfel nct suma probabilitilor mesajelor incluse n
0
S , notat
cu ( )
0
p S , s fie egal cu suma probabilitilor mesajelor incluse n
1
S , notat cu ( )
1
p S . Sursa S fiind totdeauna complet, se poate
scrie:

( ) ( )
( ) ( )
( ) ( )
0 1
1
0 1
0 1
1
2
2 1
p S p S
p S p S
p S p S

=

= = =

+ =

(3.49)
Submulimile
0
S i
1
S se pot partiiona la rndul lor n
00
S i
01
S , respectiv n
10
S i
11
S , astfel nct suma probabilitilor
mesajelor incluse n cele patru submulimi s fie aceeai, adic se
poate scrie relaia:
( ) ( ) ( ) ( )
2
2
00 01 10 11
1
2
2
p S p S p S p S


= = = = =


(3.50)
106
Se procedeaz n mod analog pn se obin submulimi care
conin un singur mesaj. Se observ c fiecare submulime are suma
probabilitilor mesajelor incluse egal cu o putere ntreag a lui
(1/2). Puterea ntreag este egal cu numrul indicilor submulimii
respective Dac submulimea conine un singur mesaj, s
k
, i are un
numr de indici egal cu
k
l , atunci se poate scrie:
( )
1
2
2
k
k
l
l
k
p s


= =


(3.51)
de unde rezult necesitatea ca sursa S ce urmeaz a fi codat s-i
furnizeze mesajele cu probabiliti egale cu 1/2 la o putere ntreag,
pozitiv.
Sursa fiind complet, se poate scrie:
( )
1
1
N
k
k
p s
=
=

(3.52)
nlocuind (3.51) n (3.52), rezult:

1
2 1
k
N
l
k

=
=

, (3.53)
ceea ce nseamn c inegalitatea lui Kraft (3.1) devine n acest caz
egalitate.
Cuvintele de cod se vor obine, atunci, astfel:
1. Se atribuie simbolul "0" submulimii
0
S i simbolul
"1" submulimii
1
S , (sau invers), astfel c toate cuvintele
corespunztoare mesajelor incluse n
0
S vor ncepe cu "0"
i toate cuvintele corespunztoare mesajelor incluse n
1
S , vor
ncepe cu "1" (sau invers);
2. Se aloc submulimilor
00
S i
10
S ca al doilea mesaj "0",
iar submulimilor
01
S i
11
S ca al doilea mesaj "1" (sau invers). n
felul acesta, cuvintele de cod corespunztoare mesajelor incluse n
107
00
S vor ncepe cu 00, cuvintele de cod corespunztoare mesajelor
incluse n
10
S vor ncepe cu 10 i aa mai departe, cuvintele de cod
corespunztoare mesajelor induse n
11
S vor ncepe cu 11.
3. Operaia se continu n acelai mod, pn cnd n fiecare
submulime rmne un singur mesaj, cruia i va corespunde
cuvntul de cod format din irul de indici ai submulimii respective.
Deoarece la fiecare partiionare n dou submulimi atribuirea
mesajelor "0" i "1" este arbitrar, rezult c prin acest procedeu se
pot obine o multitudine de coduri instantanee, dar toate absolut
optimale.
n principiu, procedeul de codare descris s-ar putea aplica n
general, adic i atunci cnd relaia (3.53) nu este satisfcut. n
acest caz, partiionrile n submulimi trebuie efectuate astfel nct
suma probabilitilor mesajelor incluse n submulimile respective
s fie ct mai apropiate. Atribuind simbolurile "0" i "1" ca n
procedeul descris, se obin totdeauna coduri instantanee.
Cu ct sumele probabilitilor mesajelor componente ale
submulimilor respective vor fi mai apropiate, cu att lungimea
medie a cuvintelor de cod va fi mai mic.

Exemplul 3.2.
Se consider sursa discret de informaie caracterizat de
distribuia:

5 7 1 2 3 4 6 8
-2 -2 -3 -3 -4 -4 -4 -4

:
2 2 2 2 2 2 2 2
s s s s s s s s
S




.
Procedeul de codare binar Shannon - Fano este sintetizat n
tabelul de mai jos.
108


Graful arborescent ataat codului astfel obinut este reprezentat n
Fig. 3.8.



Fig. 3.8. Graful arborescent ataat codului din tabel

109

3.6.3. Lungimea medie a cuvintelor de cod n cazul
codului binar Huffman

Se tie c pentru un cod optimal
( ) ( ) 1 H S l H S + (3.54)
Limita superioar din relaia (3.54) nu este foarte precis. n [25] se
arat c dac p
max
este cea mai mare probabilitate cu care este
furnizat un mesaj, atunci pentru p
max
<0,5, limit superioar pentru
codul Huffman este ( )
max
H S p + , n timp ce pentru p
max
0,5, limita
superioar este ( )
max
0, 086 H S p + + .
n aplicaiile n care numrul de mesaje ale sursei este mare,
p
max
este relativ mic i redundana codului, care este diferena dintre
lungimea medie i entropie, exprimat n procente din entropie, este
relativ mic. n cazul n care alfabetul sursei este mic i
probabilitile de apariie ale diferitelor mesaje sunt neechilibrate,
valoarea probabilitii p
max
poate fi relativ mare i codul Huffman
poate deveni ineficient, adic redundana sa s reprezinte un procent
semnificativ din entropie.

Exemplul 3.3.
Fie o surs care furnizeaz mesajele
1 2 3
{ , , } S s s s = , cu
probabilitile
1 2 3
( ) 0,8; ( ) 0, 02; ( ) 0,18 p s p s p s = = = . Entropia
sursei este de 0,816 bii/mesaj.
Codul Huffman pentru aceast surs este dat n Fig. 3.9.

110


Fig. 3.9. Schema de codare pentru codul din Exemplul 3.3.

Lungimea medie pentru acest cod este 1,2 bii/simbol.
Redundana este 0,384 bii/simbol, aproximativ 47% din H(S).
Aceasta nseamn c pentru a coda aceast surs sunt necesari cu
47% mai muli bii dect minimul necesar. Uneori, pentru
micorarea redundanei se realizeaz codarea Huffman pe extensia
sursei iniiale. Astfel, dac se consider extensia de ordinul 2 a
sursei precedente, se obin 3
2
=9 mesaje. Dac se efectueaz codarea
Huffman a sursei extinse, se obin cuvintele de cod din Tabelul 3.1.

Tabelul 3.1.
Mesaj compus Probabilitate Cuvnt de cod
s
1
s
1
0,64 0
s
1
s
2
0,016 10101
s
1
s
3
0,144 11
s
2
s
1
0,016 101000
s
2
s
2
0,0004 101000
s
2
s
3
0,0036 1010011
s
3
s
1
0,1440 100
s
3
s
2
0,0036 10100100
s
3
s
3
0,0324 1011

Pentru acest cod, lungimea medie este e l

=1,7516 bii/mesaj.
111
Cum un mesaj al sursei extinse este format din dou mesaje ale
alfabetului original, rezult c lungimea medie, l

, exprimat n
funcie de alfabetul original este l

=0,8758, redundana este de


aproximativ 0,06 bii/simbol, adic aproximativ 7% din entropie.
Dac probabilitile mesajelor sunt mult neechilibrate, atunci
ar putea fi necesar codarea pe extensii de ordin superior, n scopul
scderii la valori acceptabile ale redundanei. Prin creterea
ordinului extensiei, mrimea alfabetului sursei extinse crete
exponenial cu ordinul extensiei i codarea Huffman poate deveni
ineficient din punct de vedere al preului de cost, caz n care se
folosete codarea aritmetic, care va fi discutat ulterior.

3.6.4. Procedeul de codare Huffman generalizat

n acest caz, alfabetul codului conine mai mult de dou
simboluri. Procedeul de codare este asemntor celui din cazul
binar, parcurgndu-se urmtoarele etape:
1) Se ordoneaz mesajele sursei ce urmeaz a fi codat n
ordinea descresctoare a probabilitilor;
2) Dac alfabetul codului conine 3 M simboluri, se
reunesc ultimele M mesaje (de probabilitile cele mai mici) ntr-un
singur mesaj, cruia i se aloc probabilitatea egal cu suma
probabilitilor mesajelor componente. Se ordoneaz din nou
mesajele n ordinea descresctoare a probabilitilor, formndu-se
astfel prima surs restrns
1
R . Procedndu-se n mod analog, se
formeaz sursa restrns
2
R din
1
R ,
3
R din R
2
i aa mai departe,
pn cnd se obine o surs restrns care conine M mesaje. Pentru
ca ultima surs restrns s conin M mesaje crora s li se aloce
arbitrar cele M mesaje din alfabetul codului, nainte de a realiza
112
restrngerile respective, se face urmtorul raionament:
- la formarea primei surse restrnse, reunindu-se M mesaje
ntr-un singur mesaj, va rezulta un numr de mesaje egal cu
( ) 1 1 N M N M + = ;
- a doua surs restrns va conine, prin reunirea ultimelor M
mesaje, un numr de mesaje egal cu ( ) 2 2 2 1 N M N M + = ;
- raionndu-se n mod analog, dup n restrngeri, ultima
surs restrns va conine un numr de mesaje egal cu
( ) 1 N n M , care trebuie s fie egal cu numrul M al mesajelor
din alfabetul codului, adic
( )
( )
1
1
N M
M N n M n
M

= =

(3.55)
Deoarece n (numrul de restrngeri) trebuie s fie un numr
ntreg pozitiv, se va considera:
1
1
N M
n
M

=


(3.56)
unde m

simbolizeaz cel mai mic numr ntreg, mai mare sau
egal dect m. Astfel, sursa va trebui s aib un numr de mesaje N
1
,
calculat cu relaia
( )
1 1
1 N M n M = + (3.57)
- Dac sursa S ce urmeaz a fi codat are un numr N de
mesaje care nu verific relaia (3.57), se va aduga la sursa
respectiv un numr de mesaje, pn cnd aceast relaie este
satisfcut. Mesajelor adugate li se vor aloca probabiliti nule,
astfel c sursa iniial nu va fi alterat, deoarece mesajele de
probabiliti nule nu vor fi furnizate niciodat.
3) La fiecare partiie n M submulimi se aloc arbitrar cele M
mesaje din alfabetul codului. Deoarece alocarea celor M mesaje din
113
alfabetul codului se face arbitrar, rezult c prin acest procedeu va
rezulta o multitudine de coduri instantanee, toate cu aceeai lungime
medie a cuvintelor de cod, care nu mai poate fi micorat prin nici
un alt procedeu de codare, adic toate codurile astfel obinute vor fi
instantanee i compacte.

Exemplul 3.4.
Se presupune sursa discret de informaie caracterizat de
distribuia

5 1 2 3 4 6

:
0,1 0,2 0,3 0,15 0,05 0,2
s s s s s s
S





Dac alfabetul codului este { }
1 2 3
, , X x x x = , s se realizeze o
codare Huffman generalizat.
nainte de a realiza codarea, se verific dac este satisfcut
relaia (3.57) care, pentru cazul particular considerat, devine:
1 1
2 3 N n = + , unde
1
6 3
2
3
n

= =


, deci
1
7 N = . Va trebui adugat
un nou mesaj, fie acesta
7
s , de probabilitate nul, adic ( )
7
0 p s = .
Pentru realizarea codrii, se procedeaz dup cum se arat n Fig.
3.10.

Fig. 3.10. Schema de codare pentru Exemplul 3.4.
114
Cuvintele de cod corespunztoare mesajelor sursei sunt
1 1 1 3 1
2 2 3
3 3 2
4 4 1 2
5 5 1 3 2
6 6 1 1
s c x x x
s c x
s c x
s c x x
s c x x x
s c x x








Graful corespunztor codului este dat n Fig. 3.11.



Fig. 3.11. Graful ataat codului


3.7. Codarea binar Huffman dinamic (adaptiv)

Procedeul de codare binar Huffman descris n paragraful 3.6
necesit cunoaterea probabilitilor cu care sursa i furnizeaz
mesajele. n literatura de specialitate aceast situaie este cunoscut
i sub denumirea de codare Huffman static. n cazul n care
probabilitile de furnizare a mesajelor nu sunt cunoscute, se
folosete codarea Huffman dinamic sau adaptiv.
n descrierea codrii Huffman dinamice sau adaptive se vor
115
folosi urmtoarele notaii i noiuni:
- Nodurile terminale sau externe din graful arborescent se vor
numi frunze, corespunznd mesajelor sursei;
- Cuvntul de cod pentru un mesaj se obine parcurgnd
arborele de la rdcin la frunza corespunztoare simbolului. Prin
convenie, zero se va aloca unei ramuri din stnga i unu, unei
ramuri din dreapta;
- Nodurile de la extremitile ramurilor care pleac dintr-un
nod reprezint fiii sau copiii nodului respectiv, numit nod printe;
- Ponderea unui nod extern este numrul de apariii a
simbolului corespunztor frunzei respective pn la acel moment;
- Ponderea unui nod intern este suma ponderilor fiilor
nodului respectiv;
- Dac sursa ce urmeaz a fi codat furnizeaz n mesaje, n
graf exist 2n+1 noduri interne i externe, numerotate n continuare
1 2 1
,...,
n
y y
+
. Dac x
j
este ponderea nodului cu numrul y
j
, trebuie s
existe relaia
1 2 2 1
...
n
x x x
+
;
- Nodurile
2 1 j
y

i
2 j
y sunt fii ai aceluiai nod printe, iar
numrul de ordine al printelui este mai mare dect
2 1 j
y

i
2 j
y .
Ultimele dou caracteristici se numesc de fraternitate i orice
arbore care are aceast proprietate este un arbore Huffman.
n codarea Huffman dinamic, nici emitorul, nici receptorul
nu cunosc statistica sursei la nceperea transmisiei, astfel nct
arborii de la transmisie i recepie constau dintr-un singur nod
corespunztor mesajelor nc netransmise, de pondere zero. Pe
parcursul transmisiei, nodurile corespunztoare mesajelor transmise
sunt adugate arborelui, care este reconfigurat pe baza unui
procedeu de actualizare. naintea nceperii transmiterii se stabilete
un cod pentru fiecare mesaj, dup cum urmeaz:
116
Dac sursa furnizeaz mesajele
1 2
, ,...,
N
s s s , se determin
parametrii e i r, astfel nct 2 , 0 2
e e
N r r = + < . Mesajul
k
s este
codat prin reprezentarea pe 1 e + bii a lui 1 k , dac 1 2 k r , n
caz contrar,
k
s este reprezentarea pe e bii a lui 1 k r . De
exemplu, pentru 26 10 N r = = i
1
4 00000 e s = = ,
2
00001 s = ,...,
22
1011 s = .

3.7.1. Actualizarea arborelui

Algoritmul de actualizare necesit ca nodurile s fie
numerotate ntr-o ordine stabilit. Cel mai mare numr de nod este
al rdcinii. Cel mai mic se asigneaz nodului nc netransmis, care
este nod gol, (NG).
Mulimea nodurilor cu aceeai pondere formeaz un bloc.
Rolul algoritmului de actualizare este de a pstra proprietatea de
fraternitate n timpul modificrii arborelui, pentru a reflecta ultima
estimare a frecvenei de furnizare a mesajului.
Pentru ca procedura de actualizare de la emitor i receptor
s opereze cu aceeai informaie, arborele de la emitor este
actualizat dup codarea fiecrui mesaj, iar la recepie arborele este
actualizat dup decodarea fiecrui mesaj.
Organigrama algoritmului de actualizare este prezentat n
Fig. 3.12.
117

Fig. 3.12. Procedura de actualizare pentru algoritmul de codare dinamic
Huffman

Procedura de actualizare este urmtoarea: dup ce un mesaj a
fost codat la emisie sau decodat la recepie, nodul extern
corespunztor mesajului este examinat pentru a vedea dac are cel
mai mare numr de nod din bloc. Dac nodul extern nu are cel mai
mare numr de nod, el este interschimbat cu nodul care are cel mai
mare numr din bloc, cu condiia ca acesta s nu fie printele
nodului ce urmeaz a fi actualizat. Ponderea nodului extern este
apoi incrementat. Dac nu se interschimb nodurile naintea
incrementrii ponderii nodului, este posibil ca ordonarea cerut de
proprietile de fraternitate s fie distrus. Odat incrementat
ponderea nodului, s-a adaptat arborele Huffman la acel nivel.
118
Se trece apoi la nivelul urmtor, prin examinarea nodului
printe al nodului a crui pondere a fost incrementat, pentru a
vedea dac are cel mai mare numr din bloc. Dac nu are, este
schimbat cu nodul cu cel mai mare numr din bloc. Din nou, face
excepie nodul cu cel mai mare numr, dac acesta este printe
pentru nodul considerat. Odat ce s-a efectuat schimbarea (sau s-a
decis c nu este necesar), ponderea nodului printe este
incrementat. Procesul se termin cnd se ajunge la nodul rdcin.
Cnd mesajul ce urmeaz a fi codat sau decodat apare pentru
prima dat, acestuia i se atribuie un nod extern i se ataeaz un nou
nod NG n graf.
Att nodul extern ct i nodul NG sunt fii al vechiului NG.
Cum mesajul corespunztor noului nod extern a aprut o singur
dat, acestuia i se atribuie ponderea 1.
Cum vechiul nod NG este printe pentru noul nod extern,
ponderea sa se incrementeaz cu 1 i se continu astfel pn la
rdcin.

Exemplul 3.5.
Se presupune c se dorete codarea Huffman adaptiv a
secvenei
[ ]
a a r d v a , care conine 4 din 26 de mesaje posibile,
reprezentate de literele mici ale unui alfabet. Pentru codarea acestor
mesaje se folosete codul prezentat n paragraful 3.7.
Procesul de actualizare este artat n Fig. 3.13. Se ncepe cu
nodul NG. Numrul total de noduri este 2 26 1 53 + = , astfel nct
se ncepe numrtoarea invers, cu numrul 53 asignat nodului
rdcin. Prima liter ce urmeaz a se transmite este a. Cum litera
nu este n arbore, se transmite a i se adaug aceasta n arbore.
Nodul NG d natere unui nou nod NG i unui nod terminal,
corespunztor literei a. Ponderea nodului terminal va fi mai mare
119
dect a nodului NG, astfel nct se asigneaz numrul 51 nodului
NG i 52 nodului terminal corespunztor literei a. Urmtoarea liter
de transmis este tot a. De aceast dat, codul transmis este 1,
deoarece litera este n graf. Nodul corespunztor lui a are cel mai
mare numr din bloc (dac nu se consider nodul su printe), aa
nct nu este nevoie s schimbm nodurile. Se incrementeaz
ponderea nodului extern i a nodului rdcin. Urmtoarea liter de
transmis este r. Cum litera nu are un nod corespunztor n arbore, se
transmite cuvntul de cod pentru nodul NG, care este 0, urmat de
indexul lui r. Nodul NG d natere unui nou nod NG i unui nod
extern corespunztor lui r. Din nou, nu este necesar actualizarea
arborelui, ci numai incrementarea corespunztoare a ponderilor
nodurilor. Urmtoarea liter este d, care, de asemenea, se transmite
pentru prima dat. Se transmite codul pentru nodul NG, care este
00, urmat de indexul pentru d. Nodul NG d iar natere la dou
noduri. nc nu este nevoie de a actualiza arborele. Acesta se
schimb cu transmiterea literei urmtoare, v, care nu a mai fost
ntlnit. S-a transmis codul frunzei goale, 000, urmat de codul
pentru litera v. n arbore se adaug nodurile 45 i 46, cu 46 ca nod
terminal pentru v. Se incrementeaz ponderea nodului extern 46 i a
vechiului NG. Se merge la nodul printe al vechiului NG, adic
nodul 49 care nu are cel mai mare numr din bloc, aa c se schimb
cu 50, care este cel mai mare numr din bloc i se incrementeaz
ponderea acestuia. Se merge la rdcina nodului 50 care este 51 i
care nu are cel mai mare numr din bloc, aa c se schimb cu 52, a
crui pondere se incrementeaz. Se merge la rdcina nodului 52,
adic nodul 53, care este nod rdcin i se incrementeaz ponderea
acestuia. Urmeaz mesajul a, care este n graf, aa nct se transmite
0. Deoarece numrul nodului extern corespunztor lui a este maxim
n bloc, se incrementeaz ponderea acestuia i a printelui, care este
120
nod rdcin.






121


Fig. 3.13. Arborele Huffman adaptiv, dup ce s-a transmis secvena aardva
a10r00d000v0

3.7.2. Codarea

Diagrama pentru codare este prezentat n Fig. 3.14. Iniial,
arborii de la codare i decodare sunt formai dintr-un singur nod
NG. Prin urmare, cuvntul de cod corespunztor primului mesaj ce
apare este transmis n clar. Dup primul mesaj, de fiecare dat cnd
trebuie codat un mesaj ce apare pentru prima dat, se transmite nti
codul pentru nodul NG, care se obine prin parcurgerea arborelui
Huffman de la rdcin la nodul NG.
Aceasta ntiineaz receptorul c mesajul al crui cod
urmeaz nu are nc un nod n arborele Huffman. Codul nodului NG
este urmat de codul prestabilit pentru mesaj. Dac mesajul ce
urmeaz a fi codat are un nod corespunztor n arbore, atunci este
transmis succesiunea de bii obinut prin traversarea arborelui de
122
la rdcin la nodul extern corespunztor mesajului.



Figura 3.14. Organigrama pentru codare

Exemplul 3.6.
n Exemplul 3.5 s-a folosit un alfabet de 26 de litere. Pentru a
obine codul prestabilit pentru mesaj trebuie gsite valorile pentru e
i r, astfel nct 2 26
e
r + = cu 0 2 4, 10
e
r e r < = = .
Primul mesaj de codat este a. Cum a este prima liter din
alfabet, k=1. Deoarece 2 20 1 r k = > = , litera a va fi reprezentarea
pe 1 5 e + = bii a numrului 1 1 1 0 k = = , adic 00000. Arborele
este actualizat dup diagrama din Fig. 3.13, nodul gol a dat natere
unui nod extern corespunztor lui a i unui nou nod gol. Nodul
extern corespunztor lui a are ponderea 1, iar nodul gol, 0. Nodul
intern are ponderea 1 (suma ponderilor fiilor). Urmtorul mesaj este
123
a. Cum acesta exist deja n arbore, cuvntul de cod corespunztor
se obine prin traversarea grafului de la rdcin la nodul
corespunztor, n cazul de fa este 1.
Dup transmiterea codului pentru cel de-al doilea a, ponderea
nodului extern corespunztor acestuia este incrementat la 2, ca i
ponderea printelui.
Al treilea mesaj de transmis este r. Cum acesta este la prima
apariie, se transmite codul nodului gol, adic 0, urmat de codul lui
r. (r, fiind a optsprezecea liter din alfabetul de 26 de litere,
nseamn c k = 18; deoarece 18<2r = 20, litera r va fi reprezentarea
binar pe k+1=4+1=5 bii a numrului k-1=18-1=17, adic 10001).
Arborele este actualizat i se continu cu mesajul d. Folosind acelai
procedeu pentru d, se transmite codul nodului gol, care este 00
urmat de indexul lui d, care este 00011 (d fiind a patra liter din
alfabet i deoarece 4 < 20, litera d va fi reprezentarea binar pe
k+1=4+1=5 bii a numrului k-1=4-1=3, adic 00011). Urmtorul
simbol, v , este al 22-lea n alfabet i fiind mai mare dect 20 se
transmite codul pentru nodul gol, 000, urmat de reprezentarea
binar pe 4 bii a lui 22-10-1=11, adic 1011. Urmtorul mesaj este
a, pentru care se transmite 0.
Secvena transmis este:
10 0 0 0 0 0 0 a r d v , echivalent cu

00000 1 0 1001 00 00011 000 1011 0
a a gol r gol d gol v a

3.7.3. Decodarea

Organigrama pentru decodare este prezentat n Fig. 3.15.

124


Fig. 3.15. Organigrama pentru decodarea Huffman dinamic

Pe msur ce este citit secvena binar recepionat, arborele
se parcurge ntr-un mod identic cu cel de la codare.
Odat identificat codul unei frunze din secvena recepionat,
se decodeaz mesajul corespunztor acelei frunze. Dac frunza este
frunz goal, se verific urmtorii e bii pentru a vedea dac rezult
un numr mai mic dect r. Dac este mai mic, se mai citete un bit
pentru a completa codul mesajului. Indexul mesajului se obine
adugnd o unitate la numrul zecimal corespunztor secvenei de e
sau e+1 bii. Odat decodat mesajul, arborele este actualizat i
urmtorul bit recepionat este folosit pentru a porni o nou
parcurgere a arborelui.
125

Exemplul 3.7.
S se decodeze secvena codat anterior, 0 0 0 0 0 1 0 1 0 0 0
1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0.
Iniial arborele de la decodor const numai dintr-un nod gol,
aa c primul mesaj ce urmeaz a fi decodat se obine din list. Se
citesc e=4 bii, 0000, care corespunde numrului zecimal 0.
Deoarece 0<r =10 rezult c se mai citete un bit, rezultnd secvena
00000. Se decodeaz n zecimal i se adaug o unitate, astfel
indexul simbolului recepionat este 1, care i corespunde lui a n
list, prin urmare, prima liter decodat este a.
Arborele este actualizat. Urmtorul bit recepionat este 1, care
i corespunde cii de la rdcin la nodul extern a, astfel nct al
doilea mesaj decodat este tot a.
Urmtorul bit este 0, care corespunde cii de la rdcin la
nodul gol. Urmtorii patru bii 1000 corespund numrului zecimal 8,
care este mai mic dect 10, astfel nct se mai citete un bit pentru a
obine cuvntul 10001, al crui echivalent zecimal plus o unitate
este 18, care este indexul lui r. Se decodeaz r i se actualizeaz
arborele. Urmtorii doi bii 00 reprezint parcurgerea grafului pn
la frunza goal. Se citesc urmtorii 4 bii 0001, care corespund lui
1<10, deci se mai citete un bit, adic secvena 00011. Pentru a
obine indexul simbolului recepionat din list, se adaug o unitate
la valoarea zecimal a celor 5 bii. Valoarea indexului este 4, care
corespunde simbolului d. Continund, se obine secvena decodat
a a r d v a.




126
3.8. Aplicaii ale codrii Huffman

n continuare sunt prezentate cteva aplicaii simple ale
codrii Huffman n compresie, aceast codare fiind, de obicei,
folosit n practic mpreun cu alte tehnici de codare.

1. Compresia fr pierderi a imaginilor
Codarea Huffman poate fi folosit n compresia imaginilor
digitale, cnd fiecare pixel poate lua valori dintr-o mulime finit. n
cazul imaginilor monocrome, aceast mulime const din numere
ntregi de la 0 la 225.
Rezultatele pentru patru imagini de test pentru care s-a
aplicat codarea Huffman sunt artate n Tabelul 3.2 [86].

Tabelul 3.2
Numele
imaginii
de test
Bii/pixel Mrimea total
a imaginii(bii)
Raportul de
compresie
Sena 6,90 56.525 1,16
Sensin 7,38 60.457 1,08
Pmnt 4,78 39.158 1,67
Omaha 7,00 57.488 1,14

n reprezentarea imaginii originale (necompresate) se
folosesc 8 bii/pixel. Imaginea const din 256 de rnduri a cte 256
de pixeli, deci reprezentarea necompresat folosete 65.536 bii.
Din Tabelul 3.2 se observ c raportul de compresie difer de
la imagine la imagine, obinndu-se o reducere de numai
aproximativ pn la 1bit/pixel, dup compresie. Pentru unele
127
aplicaii aceast reducere este acceptabil. De exemplu, dac ntr-o
arhiv exist sute de imagini, o reducere de un bit pe pixel salveaz
muli megabyi n spaiul discului. n codarea din exemplul
considerat nu s-a inut cont de structura din date, dat de corelaia
dintre pixeli. Dintr-o inspecie vizual a imaginii, se poate observa
c ntr-o imagine pixelii sunt corelai cu vecinii lor. Un model
grosier pentru determinarea valorii unui pixel poate fi dat de relaia
1

n n
x x

= , adic valoarea estimat pentru un pixel este egal cu a
valoarea pixelului precedent. Secvena rezidual va fi diferena
dintre pixelii vecini. Dac se consider acest model i se folosete
codul Huffman pentru a coda secvena rezidual, rezultatele sunt
cele din Tabelul 3.3 [86].

Tabelul 3.3.
Numele imaginii
de test
Bii/pixel Mrimea total
a imaginii
(bii)
Raportul de
compresie
Sena 3,84 31.472 2,08
Sensin 4,63 37.880 1,73
Pmnt 3,92 32.136 2,04
Omaha 6,34 51.986 1,26

Dup cum se observ, se obine o mbuntire a raportului de
compresie fa de cazul precedent. Rezultatele din Tabelele 3.2 i
3.3 sunt obinute folosind un sistem n doi pai, n unul s-a obinut
statistica sursei, iar n al doilea s-a efectuat codarea Huffman. n loc
s se foloseasc sistemul n doi pai, se poate folosi un cod Huffman
adaptiv. Rezultatele pentru acesta sunt prezentate n Tabelul 3.4
[86].

128
Tabelul 3.4.
Nume
imagine
de test
Bii/pixel Mrimea total
a imaginii (bii)
Raportul de
compresie
Sena 3,93 32,261 2,03
Sensin 4,63 37,896 1,73
Pmnt 4,82 39,504 1,66
Omaha 6,39 52,321 1,25

Se observ c diferenele dintre codul Huffman static i cel
adaptiv sunt mici. Algoritmul Huffman adaptiv este preferat n
sistemele care lucreaz on-line sau n timp real, cnd nu este
posibil cunoaterea prealabil a statisticii sursei. Acesta, ns, este
mai dificil de implementat dect cel static. Aplicaia particular va
determina care din cele dou este mai convenabil.

2. Compresia textelor
n compresia textelor se folosete frecvent codarea Huffman,
deoarece n texte, se folosete un alfabet discret care, ntr-un
domeniu dat, are probabiliti relativ staionare. De exemplu,
modelul de probabilitate pentru un roman nu va diferi semnificativ
de modelul de probabilitate pentru alt roman. Similar, modelul de
probabilitate pentru un set de programe C nu va diferi prea mult de
modelul de probabilitate pentru un alt set de programe C.
O mbuntire a compresie se poate obine, dac mai nti se
ndeprteaz redundana din date, materializat n corelaia ntre
mesajele din fiier, care este semnificativ n textele literare. De
exemplu, n capitolul de fa, Huf este ntotdeauna urmat de fman.


129
3. Compresia audio
Alt clas de date care se preteaz foarte bine pentru
compresie este clasa de date audio de pe compact discuri (CD).
Semnalul audio pentru fiecare canal stereo este eantionat la 44,1
kHz i fiecare eantion este reprezentat pe 16 bii, ceea ce conduce
la o cantitate enorm de date stocate pe CD care, pentru a fi
transmise, ar necesita un canal cu capacitate semnificativ.
Compresia este cu siguran util n acest caz. n Tabelul 3.5se
arat, pentru diverse tipuri de surse audio, mrimea fiierului,
entropia, mrimea estimat a fiierului compresat cu codarea
Huffman i raportul de compresie rezultat [86].

Tabelul 3.5. Codarea Huffman pe 16 bii a semnalului audio
Numele
fiierului
Mrimea
original
a fiierului
Entropia
(bii)
Mrimea estimat
a fiierului
compresat(bii)
Raportul
de
compresie
Mozart 939.862 12,8 725.420 1,30
Cohn 402.442 13,8 349.300 1,15
Mir 884.020 13,7 759.540 1,16

Ca i la alte aplicaii, se poate obine o cretere a compresiei,
dac mai nti este ndeprtat corelaia din date. Datele audio pot fi
modelate numeric. Se folosete modelul foarte simplu care a fost
folosit n exemplul codrii imaginii: valoarea estimat a unui
eantion este aceeai cu valoarea eantionului anterior. Folosind
acest model se obine o secven rezidual. Entropia acestei
secvene diferen este prezentat n Tabelul 3.6 [86].



130
Tabelul 3.6. Codarea Huffman pe 16 bii a secvenei reziduale audio
Numele
fiierului
Mrimea
original
a fiierului
(bytes)
Entropia
diferenial
(bii)

Mrimea estimat
a fiierului
compresat (bytes)
Raportul
de compresie
Mozart 939.862 9,7 569.792 1,65
Cohn 402.442 10,4 261.590 1,54
Mir 884.020 10,9 602.240 1,47

Se observ o reducere de aproximativ 60% a mrimii fiierului
compresat fa de fiierul original.