Documente Academic
Documente Profesional
Documente Cultură
( n )n=0
(2.1)
pi
i =1
(2.2)
(2.3)
n == E{n} = p i ni
i =1
(2.4)
unde ni este lungimea cuvntului de cod (numr de bii) care reprezint simbolul xi, iar n este o
variabil aleatoare care reprezint lungimea cuvntului de cod (lund valoarea ni cu probabilitatea pi ,
i = 1, 2, ....., M).
Codurile realizeaz o coresponden ntre mesajele sursei (secvene de simboluri - cuvinte ale
alfabetului sursei) i cuvintele de cod (secvene de bii - cuvinte ale alfabetului Y). Dup modul de
stabilire a acestei corespondene codurile pot fi clasificate n:
i) bloc-bloc;
ii) bloc-variabile;
iii) variabile-bloc;
iv) variabile-variabile;
Codurile bloc-bloc sunt coduri care stabilesc o coresponden ntre mesaje ale sursei
de lungime fixat i cuvintele de cod de lungime fixat.
Codurile variabile-variabile stabilesc o coresponden ntre mesaje ale sursei de
lungime variabil i cuvinte de cod variabile.
EXEMPLUL 2.1
Se consider
X = { a, b, c, d, e, f, g, h, spaiu }
Y = { 0, 1}
Simboluri
Cuvinte de cod
a
000
b
001
c
010
d
011
e
100
f
101
g
110
Spaiu
111
Tab. 2.1 Tabel de codare bloc-bloc
Codul din tabelul 2.1 este un cod bloc-bloc i n aceeai categorie se ncadreaz
codurile ASCII care pun n coresponden un alfabet de 64 (sau 256) simboluri cu cuvinte de cod
de 6 (sau 8) bii.
EXEMPLUL 2.2
Se consider
X = { a, b, c, d, e, f, g, h, spaiu }
Y = { 0, 1}
Simboluri
Cuvinte de cod
aa
0
bbb
1
cccc
10
ddddd
11
eeeeee
100
fffffff
101
gggggggg
110
spaiu
111
Tab. 2.2. Tabel de codare variabile-variabile
Se observ c pentru un mesaj :
rdcin
0
1
0
1
ordin 1
x1
x2
x3
Un cod este distinct dac fiecare cuvnt de cod este discernabil n raport cu celelalte
(corespondena ntre mesajele sursei i cuvintele de cod este biunivoc).
Un cod distinct este unic decodabil dac fiecare cuvnt de cod este identificabil
cnd se afl imersat ntr-o secven de cuvinte de cod.
0
1
ordin 2
Fig.2.1 Arbore binar de codare
Codurile din Exemplul 2.1 i Exemplul 2.2 sunt ambele distincte, dar codul din
Exemplul 2.2 nu este unic decodabil. Spre exemplu codul 11 poate fi decodat fie ca ddddd
fie ca bbbbbb.
Un cod unic decodabil este un cod prefix dac are proprietatea de prefix care
pretinde ca nici un cuvnt de cod s nu fie prefixul altui cuvnt de cod. Codul care are
drept cuvinte de cod {1, 100000, 00} este un exemplu de cod care este unic decodabil dar
care nu are proprietatea de prefix.
Codurile prefix sunt decodabile instantaneu adic se bucur de proprietatea c
mesajul codat poate fi desprit n cuvinte de cod fr a fi necesar examinarea n avans
(lookahead) a urmtorilor bii. Deci decodarea este posibil imediat ce s-a primit ultimul bit
al cuvntului de cod fr a mai fi necesar recepionarea altor bii. Spre exemplu dac se
folosete codul care are cuvintele de cod {1, 100000, 00}, decodarea mesajului 1000000001
i identificarea lui 1 ca fiind primul cuvnt de cod necesit examinarea celui de-al zecelea
simbol (era posibil ca primul cuvnt de cod s fie 100000).
Un cod prefix minimal este un cod prefix cu proprietatea ca dac x este un prefix al
unui cuvnt de cod atunci i x sigma este fie un cuvnt de cod fie un prefix al unui cuvnt
de cod oricare ar fi litera sigma aparinnd alfabetului Y. Spre exemplu considernd codul
{00, 01, 10} se observ c acesta este un cod prefix care nu este minimal. Astfel 1 este
prefix al cuvntului de cod 10 i ar impune ca i 11 s fie un cuvnt de cod fie un prefix al
unui cuvnt de cod valid. Dac n exemplul de mai sus se nlocuiete cuvntul de cod 10 cu
cuvntul de cod 1 se obine un cod prefix minimal cu cuvinte de cod fie mai scurte.
Simboluri
Cuvinte de cod
x1
0
x2
10
x3
110
x4
111
Tab.2.3 Tabelul de codare asociat arborelului
x4
2 n
(2.5)
i =1
Observaie:
Dac p i =2 -n i , i=1, 2, ..., M condiia (2.5) devine o egalitate.
n acest caz se obine pe baza relaiilor (2.2) i (2.4) c n = H(x).
n general ns n H(x) i se urmrete ca acest n s fie ct mai aproape de H(x).
Un cod prefix poate fi determinat astfel nct n s satisfac teorema urmtoare:
TEOREMA 2.3
Se poate determina un cod binar prefix pentru orice alfabet al sursei de entropie
H(x); codul avnd o lungime medie care s satisfac inegalitatea:
H(x) n < H(x)+1
(2.6)
Simboluri
Cuvinte de cod
x1
0
x2
100
x3
101
x4
110
x5
1110
x6
1111
Tab. 2.4 Tabelul de codare Huffman
Se constat c entropia H(x) = 2,09 biti/simbol
bii/simbol i cele dou valori satisfac inegalitatea (2.6).
iar
lungimea
medie n = 2,1
Exemplul 2.4
2.2 COMPRESIA STATIC
2.2.1 Algoritmul Huffman static
Pas 1. Se ordoneaz cele M simboluri n ordine descresctoare a probabilitii.
Pas 2. Se grupeaz ultimele dou simboluri x M-1 i x M ntr-un simbol echivalent
(contopire) cu probabilitatea p M-1 +p M .
Pas 3. Se repet paii 1 i 2 pn ce se ajunge la un singur simbol.
Pas 4. n arborele obinut prin parcurgerea pailor anteriori se asigneaz simbolurile
binare 0 i 1 pentru fiecare pereche de ramuri care pleac dintr-un nod intermediar.
Cuvntul de cod pentru fiecare simbol poate fi citit ca secvena binar determinat prin
parcurgerea nodurilor dinspre rdcin pn la nodurile terminale asociate simbolurilor.
Exemplul 2.3
pi
0,5
xi
x1
0,15
x2
0,15
x3
0,1
x4
0,05
x5
0,05
x6
0,3
0,2
0,1
0
1
1
0,5
0
1
0
1
0
1
0
1
(2.7)
(2.8)
Mrimea n / este numrul mediu de biti/simbol al lui X. Prin alegerea lui suficient de
mare se poate face ca aceasta s se apropie de H(X).
Se definete eficiena unui cod ca
[H(x )]
=
n
0,25
y1
0,15
y2
i redundana == 1-
0,15
y3
EXEMPLUL 2.5
0,1
y4
0,1
y5
0,09
y6
0,06
y7
0,06
y8
0,04
y9
(2.9)
x1
0,3
x2
0,2
x3
0,5 0
1
0
1 1
pI
0,25
0,15
0,1
0,15
0,09
0,06
0,1
0,06
0,04
Tab. 2.6 Tabelul de codare pentru
ci
00
010
100
011
1100
1101
101
1110
1111
sursa Y
0,3 0
1
0,55 0
1
1,0 0
1
0,2 0
1
0,15 0
1
0,1 0
1
0,25 0
1
0,4
0,18
0,1
0,1
0,07
0.06
0,05 (0)
0,04 (1)
0,4
0,18
0,1
0,1
0,09 (0)
0,07
0,06 (1)
0,4
0,18
0,13
0,1
0,1 (0)
0,09 (1)
0,4
0,19
0,18
0,1
(0)
(1)
0,4
0,23
0,19 (0)
0,18 (1)
Fig 5.4
0,4
0,37 (0)
0,23 (1)
0,6
0,4
(0)
(1)
(2.10)
ni
pi < 1 / 2
ni +1
Reprezentarea binar a lui F i va fi diferit de toate celelalte prin unul sau mai muli bii.
Spre exemplu F i va fi diferit fa de F i+1 prin cel puin bitul n i deoarece p i 1/ 2n i . Prin
aceasta cuvntul de cod pentru x i+1 va diferi de cel pentru x i prin cel puin un bit.
EXEMPLUL 2.6
Fiind dat o surs care genereaz simboluri cu probabilitile p i specificate n
coloana a doua a tabelului prezentat n continuare, s se aplice algoritmul de compresie
Shannon-Fano.
Soluie:
Se remarc ordonarea simbolurilor n sensul descreterii probabilitilor de apariie
(coloanele 1 i 2). Se determin numrul de bii ai lungimii de reprezentare, completnduse astfel coloana 3 a tabelului.
Pentru simbolul x 1 numrul de bii se determin pe baza relaiei:
log 2 (128/27) n 1 < 1+log 2 (128/27)
sau
2,245 n 1 < 3,245
deducndu-se c n 1 = 3 bii.
0,4
0,18
0,1
0,1
0,07
0,06
0,05
0,04
S0
} (0,58)
S10
} (0,20)
S1
(0,42)
S11
(0,22)
} S110
(0,13)
S111
} (0,09)
Fig 5.3
00
01
100
101
1100
1101
1110
1111