Documente Academic
Documente Profesional
Documente Cultură
81
alfabetul
codului
codare se realizeaz bijecia dintre mesajele sk S i cuvintele de cod ck 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 S = {s1 , s2 , s3 , s4 } i alfabetul codului X = {0,1} . Dac mulimea cuvintelor de cod este C = {c1 , c2 , c3 , c4 } , cu c1l, c201, c310 i c4 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 s4 s2 , fie s1s1s2 , fie s1s3 s1 , 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 s4 s2 , codul devenind astfel unic decodabil.
82
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 X = {0,1} . Considernd aceeai surs discret, ce poate furniza patru mesaje i un alfabet de cod binar, se presupun urmtoarele dou coduri codul A, n care s1c10, s2c210, s3c3110, s2c201, s4c41110 i codul B, n care s1c10, s3c3011, s4c40111. 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 xi1 xi2 " xik , este prefix al cuvntului de cod ci xi1 xi2 " xim , 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 c1 , este prefix al cuvintelor c2 , c3 i c4, cuvntul de cod c2 este prefix al cuvintelor c3 i c4, iar cuvntul de cod c3 este prefix pentru c4. Evident, dac un cod este instantaneu, el este i unic decodabil, reciproca nefiind totdeauna adevrat.
83
Pentru a stabili dac un cod este instantaneu, i se ataeaz graful arborescent. n general, dac alfabetul codului este X = { x1 , x2 ,..., xM } , 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 x1 , x2 ,..., xM 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.
84
alfabetul
codului
mulimea lungimilor cuvintelor de cod L = {l1 , l2 ,..., lN } . Un cuvnt de cod ck este format dintr-o succesiune de lk simboluri din alfabetul codului, de forma ck xi ...x j ...xl Condiia necesar i suficient de existen a codurilor instantanee este dat de inegalitatea lui Kraft, de forma
M
k =1
lk
(3.1)
unde M este numrul de simboluri din alfabetul codului, N este numrul cuvintelor de cod i lk - 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 l1 , l2 ,..., lN ale cuvintelor de cod pot fi distincte sau nu. Fie n1 numrul cuvintelor de cod formate numai dintr-un singur simbol (lungime egal cu unitatea), n2 numrul cuvintelor de cod formate din dou simboluri (lungime egal cu doi) i aa mai
85
departe, fie nl , numrul cuvintelor de cod de lungimea cea mai mare, egal cu l. Evident
n
i =1
=N
(3.2)
Cu aceste notaii, rezult c n inegalitatea (3.1) suma va conine n1 termeni de forma M 1 , n2 termeni de forma M 2 i aa mai departe, nl termeni de forma M l . n consecin, inegalitatea (3.1) se poate scrie, echivalent, sub forma
n M
i =1 i
(3.3)
(3.4)
Neglijnd n relaia (3.4) termenul nl 1 i mprind apoi noua relaie cu M 2 , rezult inegalitatea
nl 1 M l 1 n1M l 2 ... nl 3 M 2 nl 2 M
(3.5)
Neglijnd n relaia (3.5) termenul nl 1 1 i mprind apoi noua relaie cu M 2 , rezult inegalitatea
nl 2 M l 2 n1M l 3 ... nl 3 M
(3.6)
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
86
instantaneu, dup cum urmeaz: Se alege arbitrar un numr n1 de cuvinte de lungime unu, care respect inegalitatea (3.9). Rmn astfel disponibile M n1 prefixe formate dintr-un singur simbol, cu care se pot forma cuvinte de lungime egal cu doi, al cror numr este egal cu
( M n1 ) M
= M 2 n1M
(3.10)
Alegndu-se arbitrar dintre acestea n2 cuvinte ce respect relaia (3.8), rmne disponibil un numr de prefixe din dou simboluri, egal cu M 2 n1M n2 , cu care se pot forma cuvinte de lungime egal cu trei, n numr de
(M
n1M n2 ) M = M 3 n1M 2 n2 M
(3.11)
Dintre acestea, se aleg arbitrar n3 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 M l noduri. Fiecare cuvnt de lungime lk l blocheaz utilizarea a M l lk noduri pe nivelul l. De exemplu, dac l=3, M=2, (simbolurile "0" i "1") i se alege un cuvnt de lungime lk = 2, fie acesta ck = 01, atunci pe nivelul l = 3 se blocheaz utilizarea a 23-2 = 2 noduri, aa cum este
87
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
M
k =1
l lk
Ml
(3.12)
Simplificnd cu M l > 0 , 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
88
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.
codului
X = { x1 , x2 ,..., xM } i mulimea cuvintelor de cod C = {c1 , c2 ,..., cN } .
(3.14)
unde p ( ck ) reprezint probabilitatea cuvntului ck . Informaia ataat mesajului sk , notat cu i ( sk ) , va fi atunci egal cu informaia ataat cuvntului ck , notat cu i ( ck ) , i se va calcula cu relaia clasic
i ( sk ) = i ( ck ) = log p ( sk ) ,
(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 l1 , l2 ,..., lN sunt lungimile cuvintelor de cod, lungimea
(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
l= H (S ) H (X )
90
(3.17)
p(s )l
k =1 k
p ( sk ) log p ( sk )
k =1
H (X )
(3.18)
sau
p(s ) l H ( X ) + log p ( s ) =0
k =1 k k k
(3.19)
O condiie suficient, dar nu ntotdeauna necesar, pentru satisfacerea relaiei (1.19) este ca
lk =
log p ( sk ) H (X )
(3.20)
Dac se noteaz cu durata medie de transmitere a unui simbol din alfabetul codului X, rezult c durata de transmitere Tk a cuvntului de cod ck , de lungime lk , se poate determina cu relaia
Tk = lk
(3.21)
Duratele Tk , k = l,N , de transmitere a cuvintelor de cod, determin o nou variabil aleatoare discret, ce poate lua valori cu probabilitile p ( sk ) = p ( ck ) i, deci, durata medie de transmitere a unui cuvnt de cod este
T = Tk p ( sk ) = p ( sk ) lk
k =1 k =1 N N
(3.22)
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 l min , lungimea medie minim posibil a cuvintelor de cod, se poate scrie relaia
l min = H (S ) max 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 p ( x1 ) = p ( x2 ) = ... = p ( xM ) = , (3.25) M rezult marginea superioar a entropiei sursei secundare X egal cu log M i, deci, marginea inferioar a lungimii medii a cuvintelor de
cod este
H (S ) . log M
l l min
H (S ) log M
(3.26)
n cazul particular, frecvent folosit n aplicaii, al codurilor binare, M=2, caz n care relaia (3.26) devine
l l min 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.28)
nlocuind (3.20) n relaia (3.28), rezult o relaie echivalent de calcul pentru eficiena unui cod instantaneu, i anume
H (X ) log 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.
93
H ( S ) = l log M
rezult
l p(s )
k =1 k N k
(3.31)
(3.32)
lk log M + log p ( sk ) = 0
(3.33) (3.34)
p ( sk ) = M lk
N
M lk = p ( s k ) = 1 ,
k =1 k =1
(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).
lk =
log p ( sk ) log M
94
(3.36)
un numr ntreg pozitiv, ce poate fi considerat egal cu lungimea cuvntului de cod ck . n general, sursa discret de informaie i furnizeaz mesajele cu diverse probabiliti care nu respect relaia (3.34) i, deci, raportul
caz, lungimile cuvintelor de cod, lk , k = 1, N , se aleg numerele ntregi pozitive care respect dubla inegalitate
(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
M lk p ( sk )
(3.38)
Sumnd dup k, de la k=l la k=N i innd cont c sursa discret de informaie este complet, rezult
M lk p ( sk ) = 1
k =1 k =1
(3.39)
Multiplicnd relaia (3.37) cu p ( sk ) > 0 i apoi sumnd dup k, de la k=1 la k=N, rezult
95
p ( sk ) log p ( sk )
k =1
log M
N
p ( sk )lk <
k =1
<
p ( sk ) log p ( sk )
k =1
(3.40)
N
log M
+ p ( sk )
k =1
innd cont de (3.18), (3.19) i de faptul c totdeauna sursele discrete de informaie sunt complete, relaia (3.40) devine
H (S ) H (S ) l < +1 log M log 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 H ( S m ) entropia extensiei de ordinul m i cu lm , lungimea medie a cuvintelor de cod corespunztoare mesajelor compuse k ale extensiei de ordinul m, relaia (3.41) se poate scrie sub forma
H (Sm ) log M H (Sm ) log M
lm <
+1
(3.42)
H ( S m ) = mH ( S )
(3.43)
(3.44)
lm =l m
96
(3.45)
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
l=
H (S ) log 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.
97
ct mai apropiat de suma probabilitilor mesajelor incluse n S1 . La rndul lor, submulimile S0 i S1 pot fi partiionate n submulimile S00 i S01 , respectiv S10 i S11 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
R0 = {s1 , s2 ,..., sN } ,
cu
p ( s1 ) p ( s2 ) ...
realizarea ordonrii respective; 2) Se reunesc ultimele dou mesaje (de probabilitile cele mai mici) ntr-un nou mesaj, notat cu r1 , 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 R1 = {s1 , s2 ,..., r1 ,...} , cu p ( s1 ) p ( s2 ) ... p ( r1 ) ... .
98
3) Se reunesc ultimele dou mesaje din sursa restrns R1 ntr-un nou mesaj r2 , de probabilitate egal cu suma probabilitilor mesajelor componente. Se ordoneaz mesajele n ordine descresctoare, formndu-se astfel sursa restrns R2 . n mod analog, din R2 se formeaz sursa restrns R3 i aa mai departe, pn cnd se obine o surs restrns format numai din dou mesaje, Rn = {rn , rn 1} , cu p ( rn ) p ( rn1 ) . De fapt, rn va fi S0 i
rn1 va fi S1 sau invers.
Din modul de formare a surselor restrnse Ri , rezult c mulimea S a mesajelor poate fi partiionat n dou submulimi rn i rn1 astfel nct probabilitile p ( rn ) i p ( rn1 ) sunt cele mai apropiate posibil. La rndul lor, submulimile rn i rn1 , 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 rn i se aloc simbolul "0" (sau "1"); - submulimii rn1 , 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 sk , k = 1, 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.
99
Dac sursa primar S poate furniza N mesaje, atunci submulimea restrns R1 , va avea N-1 mesaje, submulimea restrns R2 va conine N-2 mesaje i aa mai departe, ultima submulime restrns Rn va conine N n mesaje, care sunt rn i
rn1 , adic se poate scrie: N n = 2 n = N 2 (3.47) Dac submulimii rn i se aloc simbolul "0" i submulimii rn1 simbolul "1", celor N-2 partiionri putndu-li-se aloca arbitrar
"0" sau "1", rezult un total de 2 N 2 posibiliti de codare. Dac, ns, submulimii rn i se aloc simbolul "1", iar submulimii rn1 simbolul "0", mai rezult 2 N 2 posibiliti de codare. Rezult, deci, c prin acest procedeu de codare se pot realiza 2 N 2 + 2 N 2 = 2 N 1 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:
S :
s1
Graful i cuvintele de cod corespunztoare codrii efectuate sunt date n Fig. 3.3.
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:
S :
s1
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.
= ( li l
2 1 i =1
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.
Pentru acest cod, lungimea medie este, evident, aceeai, n timp ce dispersia devine
2 = ( li l
2 i =1
= 0, 22 + 0, 22 + 0, 22 + 0,82 + 0,82 = 1, 4
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 s4 i s5 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 s2, 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
104
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 p ( sk ) = = 2lk , 2 unde lk este un numr ntreg pozitiv.
lk
( ) k = 1, N
satisfcut,
(3.48)
Dac
relaia
(3.48)
este
mulimea
scrie:
p ( S0 ) = p ( S1 ) 1 1 (3.49) p ( S0 ) = p ( S1 ) = = 2 2 p ( S0 ) + p ( S1 ) = 1 Submulimile S0 i S1 se pot partiiona la rndul lor n S00 i S01 , respectiv n S10 i S11 , astfel nct suma probabilitilor
mesajelor incluse n cele patru submulimi s fie aceeai, adic se poate scrie relaia:
1 p ( S00 ) = p ( S01 ) = p ( S10 ) = p ( S11 ) = = 22 2
105
2
(3.50)
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, sk, i are un numr de indici egal cu lk , atunci se poate scrie: 1 (3.51) p ( s k ) = = 2 lk 2 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:
lk
p(s ) =1
k =1 k
(3.52)
2
k =1
lk
= 1,
(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 S0 i simbolul "1" submulimii S1 , (sau invers), astfel c toate cuvintele corespunztoare mesajelor incluse n S0 i toate vor ncepe cu "0" cuvintele corespunztoare mesajelor incluse n S1 , vor
ncepe cu "1" (sau invers); 2. Se aloc submulimilor S00 i S10 ca al doilea mesaj "0", iar submulimilor S01 i S11 ca al doilea mesaj "1" (sau invers). n felul acesta, cuvintele de cod corespunztoare mesajelor incluse n
106
incluse n S10 vor ncepe cu 10 i aa mai departe, cuvintele de cod corespunztoare mesajelor induse n S11 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:
. -2 -2 -3 -3 -4 -4 -4 -4 2 2 2 2 2 2 2 2 Procedeul de codare binar Shannon - Fano este sintetizat n tabelul de mai jos.
S :
s1
s2 s3 s4 s5 s6 s7 s8
107
Graful arborescent ataat codului astfel obinut este reprezentat n Fig. 3.8.
108
(3.54)
Limita superioar din relaia (3.54) nu este foarte precis. n [25] se arat c dac pmax este cea mai mare probabilitate cu care este furnizat un mesaj, atunci pentru pmax<0,5, limit superioar pentru codul Huffman este H ( S ) + pmax , n timp ce pentru pmax 0,5, limita superioar este H ( S ) + pmax + 0,086 . n aplicaiile n care numrul de mesaje ale sursei este mare, pmax 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 pmax 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 S = {s1 , s2 , s3} , cu
probabilitile
Entropia
sursei este de 0,816 bii/mesaj. Codul Huffman pentru aceast surs este dat n Fig. 3.9.
109
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 32=9 mesaje. Dac se efectueaz codarea Huffman a sursei extinse, se obin cuvintele de cod din Tabelul 3.1. Tabelul 3.1. Mesaj compus s1s1 s1s2 s1s3 s2s1 s2s2 s2s3 s3s1 s3s2 s3s3
Probabilitate 0,64 0,016 0,144 0,016 0,0004 0,0036 0,1440 0,0036 0,0324
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 M 3 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 R1 . Procedndu-se n mod analog, se formeaz sursa restrns R2 din R1 , R3 din R2 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
111
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 N M + 1 = N ( M 1) ; - a doua surs restrns va conine, prin reunirea ultimelor M mesaje, un numr de mesaje egal cu N 2 M + 2 = N 2 ( M 1) ; - raionndu-se n mod analog, dup n restrngeri, ultima surs restrns va conine un numr de mesaje egal cu N n ( M 1) , care trebuie s fie egal cu numrul M al mesajelor din alfabetul codului, adic
M = N n ( M 1) n = N M ( M 1)
(3.55)
- 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
112
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
S :
s1
Dac alfabetul codului este X = { x1 , x2 , x3} , 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:
6 3 N1 = 2n1 + 3 , unde n1 = = 2 , deci N1 = 7 . Va trebui adugat 3 un nou mesaj, fie acesta s7 , de probabilitate nul, adic p ( s7 ) = 0 . Pentru realizarea codrii, se procedeaz dup cum se arat n Fig. 3.10.
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 y1 ,..., y2 n +1 . Dac xj este ponderea nodului cu numrul yj, trebuie s existe relaia x1 x2 ... x2 n +1 ; - Nodurile y2 j 1 i y2 j sunt fii ai aceluiai nod printe, iar numrul de ordine al printelui este mai mare dect y2 j 1 i y2 j . 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:
115
Dac sursa furnizeaz mesajele s1 , s2 ,..., sN , se determin parametrii e i r, astfel nct N = 2e + r ,0 r < 2e . Mesajul sk este codat prin reprezentarea pe e + 1 bii a lui k 1 , dac 1 k 2r , n caz contrar, sk este reprezentarea pe e bii a lui k r 1 . De exemplu, pentru
N = 26 r = 10
e = 4 s1 = 00000 ,
116
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.
117
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.
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
119
nod rdcin.
120
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
121
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 2e + r = 26 cu 0 r < 2e e = 4, r = 10 . Primul mesaj de codat este a. Cum a este prima liter din alfabet, k=1. Deoarece 2 r = 20 > k = 1 , litera a va fi reprezentarea pe e + 1 = 5 bii a numrului k 1 = 1 1 = 0 , 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
122
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: a 1 0 r 0 0 d 0 0 0 v 0 , echivalent cu 00000 1 0 1001 00 a a gol r gol
3.7.3. Decodarea
1011 v
0 a
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.
124
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.
125
Bii/pixel
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
126
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 n = xn 1 , adic valoarea estimat pentru un pixel este egal cu a x 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 Bii/pixel de test Sena Sensin Pmnt Omaha 3,84 4,63 3,92 6,34
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].
127
Tabelul 3.4. Nume Bii/pixel imagine de test Sena 3,93 Sensin 4,63 Pmnt 4,82 Omaha 6,39
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.
128
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].
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].
129
130