Sunteți pe pagina 1din 5

Coduri de compac t ar e a dat el or pri n met oda

Huff man
1. Obi ect i vul lucrrii
Se studi az algorit mii Huffman (binar i ternar) de codar e compact
a dat el or pent r u canal e fr pert ur ba ii i se analizeaz caract eri sticile i
perfor man el e codurilor obinut e.
2. Introduc er e teor e t i c
Algorit mul de codar e Huffman est e opti mal n sensul c nici un alt
algorit m de codar e D-ar a unei surse discret e Q-are nu conduce la un cod
de lungi me medi e a cuvint el or de cod mai mic n cazul codrii
simbol urilor individual e.
!ondii a neces ar i suficient de e"ist en a unui cod fr prefi"
de alfabet de dimensi une D i cu lungi mil e cuvint el or de cod l
1
, l
2
,....l
Q

unde Q est e dimensi une a alfabet ul ui sursei primar e i totodat
dimensi une a vocabul ar ul ui codului est e (inegalit at e a #raft- $c$illan)%
K D
l
k
Q
k
=

&
&.
Se consider pent r u nceput cazul codurilor binar e D ' (. )ent ru
un cod de alfabet binar inegalit at e a #raft- $c$illan devine%
K
l
k
Q
k
=

( &
&
.
)ent ru orice surs discret Q-ar un cod fr prefi" opti mal n
raport cu mini mizar ea lungi mii medii a cuvint el or de cod are urmt oar el e
propri et i%
(i) *ac p(u
j
) + p(u
k
), at unci
l l
j k

,
(ii) -ltimel or dou simbol uri de cea mai mic probabilit at e din
alfabet ul sursei le corespund cuvint e de cod de aceeai lungi me i
care difer numai prin ultimul simbol.
Acest e propri et i suger e az urmt oar e a procedur de const r uci e%
se combi n cele dou simbol uri de cea mai mic probabilit at e ntr- un nou
simbol artificial de probabilit at e egal cu suma probabilit ilor celor dou
simbol uri original e. Se obine o nou surs cu Q-& simbol uri. .rebui e
acum s se const r ui asc un cod opti mal pent r u aceas t nou surs.
)ent ru obiner ea cuvint el or de cod corespunzt oar e celor dou simbol uri
de cea mai mic probabilit at e ale sursei original e se adaug un /01 i
respect i v un /&1 cuv2nt ul ui alocat simbol ului artificial creat . )ent ru a gsi
codul opti mal se repet procedur a. Se combi n cele dou simbol uri de
cea mai mic probabilit at e a sursei artificial e i se obine o a doua surs
artificial pent r u care se caut un cod nou opti mal . a. m. d.
Algorit mul Huffman cuprinde at unci urmt orii pai%
40
Pas 1: Se ordoneaz simbol urile sursei primar e Q-are n sens
descr es ct or al probabilit ilor
( ) ( )
( &
u p u p
i se not eaz sursa pri mar prin R
0
adic sursa rest r 2ns de ordinul zero.
Pas 2: Se grupeaz ultimel e dou simbol uri de cele mai mici
probabilit i u
k- 1
i u
k
ntr- un simbol artificial r
&
av2nd probabilit at e a
( ) ( ) ( )
k k
u p u p r p + =
& &
Pas 3: Se asigneaz litera & simbol ul ui u
k- 1
i 0 simbol ul ui u
k
(sau
invers) din grupul r
&
.
Pas 4: Se repet paii & i ( pent r u noua surs artificial obinut
numi t i surs rest r 2ns de ordinul nt 2i R
&
i pent r u irul de surse
rest r 2ns e de ordinul al doilea R
(
al treilea R
3
... R
n
p2n c2nd se
obine sursa rest r 2ns de ordinul n = Q-( care furnizeaz doar dou
simbol uri artificial e.
Pas 5: !uv2nt ul de cod compl et corespunzt or unui simbol al sursei
primar e est e constit ui t din secven a literelor codul ui obinut prin
parcur ger e a sursel or rest r 2ns e n sensul opus rest r 2ngerii p2n la
gsirea simbol ului original, aceas t a ec4ival eaz cu parcur ger e a unui
arbor e de la un nod final la rdci n.
*ac probabilitile celor dou simboluri reunite n simbolul artificial r
j
selectat la
fiecare restr2ngere sunt egale se poate obine un cod absolut optimal (cu eficiena unitar). 5n
caz contrar se obine un cod optimal cu at2t mai apropiat de unul absolut optimal cu c2t
diferena dintre probabilitile celor dou elemente ale lui r
j
este mai mic. -n e"emplu de
codare binar Huffman este prezentat sub forma unui graf arbore desenat de la nodurile finale
spre rdcin n figura &. )entru codul C
&
rezult urmtoarele valori caracteristice%
H(U) = (3 bit 6 simbol
( ) 3 3 &
78 0
9 (
3 (
simboluri 3 (
simboluri 9 (
&
&
min &
min &
&
= + <
= = =
=
=
U H

u
1
030
& 0:: &
u
2
0(:
0 &00
u
3
0(0
&
u
4
0&0 09: 0
&
u
5
0&0 0(: 0
& 0&: 0
u
"
00:
0
R
0
R
1
R
2
R
3
R
4
Surse
41
rest r 2ns e
C
&
%

= =
= =
= =
0000 0&
000& &0
00& &&
8 3
: (
9 &
! !
! !
! !
Fig. 1. ;raful arbor e pent ru algorit mul Huffman binar
5n cazul utilizrii unui cod cu alfabet D-ar n pasul ( se grupeaz
ultimel e D simbol uri de cele mai mici probabilit i iar n pasul 3 se
asigneaz D litere (0 & ... D-&) celor D litere din simbol ul artificial r
&
,
dup pri ma rest r 2nger e se obine o surs rest r 2ns (artificial) cu ( Q-D)
<& simbol uri iar dup n rest r 2ngeri o surs cu ( Q-nD)< n simbol uri.
)ent ru ca oper ai a de codar e s fie posibil ulti ma surs rest r 2ns
trebui e s furnizeze D simbol uri deci D = (Q-nD)#n de unde rezult un
numr ul de rest r 2ngeri
n
Q D
D
=

&
.
-n e"empl u de codar e Huffman ternar ( D ' 3) est e prezent at n
fig. 2 .
)ent ru codul din e"empl ul ant eri or rezult par amet rii%
H(U) = (3 bit 6 simbol
( )
70 0
8 &
99 &
99 &
3 log
simboluri 8 &
&
min &
c
min &
&
= = =
= =
=

U H

u
1
030 0
u
2
0(: & &00
u
3
0(0 (
0
u
4
0&0 & 09:

u
5
0&0 (
0
u
"
009 & 0&:

u
$
00& (
R
0
R
1
R
2
n
Q D
D
=

=
&
= 3
3 &
( rest r 2ngeri
42
C
&
%
(((
((& (0
((0 &
(& 0
=
8 3
: (
9 &
=

= =
= =
= =
!
! !
! !
! !
Fig. 2. ;raful arbor e pent ru algorit mul Huffman ternar
*aca se doret e cret er e a eficient ei se poat e trece la codar e pe
grupe de simbol uri sau pe blocuri de lungi me + & (de e"empl u pe grupe
de c2t e ( sau 3 simbol uri). 5n cazul codrii pe grupe de c2t e ( simbol uri
lungi mea medi e est e%
( )

= =
=
Q
%
Q
j
%j j %
l u u p
& &
(

iar lungi mea medi e pe simbol al sursei pri mar e

r (
(
(
=
est e mai mic dec2t lungi mea medi e pe simbol din cazul codrii simbol cu
simbol confor m primei teor eme a lui S4annon. Analog n cazul codrii pe
blocuri de simbol uri de lungi me 3.
3. Des cri er e a evol u i ei programul ui
*up lansar e a n e"ecui e a progr a mul ui prin /4uffman. e"e1 se
afieaz un meni u care per mi t e utilizat orul ui s acces eze codar ea
Huffman binar (>() ternar (>3) sau ieirea din progr am (Alt-?).
)rogramul cere introducer e a lui n ' numr ul simbol urilor sursei
discret e care urmeaz a fi codat i a tipului de codar e (simbol cu simbol
pe grupe de c2t e ( simbol uri sau pe grupe de c2t e 3 simbol uri).
5n cazul codrii simbol cu simbol n poat e fi ales ntre & i @ n cazul
codrii pe grupe de c2t e ( simbol uri n ' ( sau 3 iar n cazul codrii pe
grupe de c2t e 3 simbol uri n ' (. 5n celel alt e situaii progr amul va
semnal a /Anvalid dat a1.
Apoi progr a mul va solicit a introducer e a valorilor probabilit ilor
simbol urilor sursei. *ac nu est e respect at condii a de nor mar e
progr amul va semnal a /Anvalid dat a1.
5n continuar e se intr ntr- un ecran care prezint arbor el e de
const r uci e al codul ui Huffman pas cu pas pent r u fiecar e surs rest r 2ns
format n confor mi t at e cu dat el e ant eri or introdus e. *e aseme ne a
progr amul afieaz list a cuvint el or de cod obinut e calcul eaz lungi mea
medi e a cuvint el or de cod eficien a codrii i verific inegalit at e a #raft-
$c$illan.
. Desf ! ur ar e a lucrrii
43
9.&. Se intr n opiunea >( respect i v >3 n cadrul crei a se alege n
i tipul codrii.
9.(. Se introduce set ul de probabilit i corespunzt or .
9.3. Se urmr e t e const r uci a codului pent r u surse de diferit e
dimensi uni i st atistici n cazul tut uror celor trei tipuri de codar e i se
desene az graful codrii.
9.9. *e fiecar e dat se observ i se not eaz%
coresponden a simbol de surs - cuv2nt de cod
lungi mea medi e a cuvint el or de cod
eficien a codrii
valoar ea lui K rezult at din eval uar ea membr ul ui st 2ng al
inegalit ii #raft- $c$illan.
9.:. Se compar parame t rii obinui n acest e situaii.

". #ntrebri
:.&. !are sunt propri et il e codurilor obinut e prin algorit mul
HuffmanB
:.(. !are sunt particul arit il e algorit mul ui de codar e Huffman
binar 6 t er nar B
:.3. !are tip de codar e (simbol cu simbol pe grupe de c2t e (
simbol uri sau pe grupe de c2t e 3 simbol uri) est e mai eficient i de ceB
:.9. !odar ea Huffman binar 6 t er nar poat e duce la obiner ea unui
cod absol ut opti mal (cu ' &)B
:.:. >ie o surs S cu simbol urile (A C) i probabilit il e ) ' (0.=
0.3). S se realizeze o codar e Huffman binar 6 t er nar pent r u e"t ensiile de
ordinul ( i 3 ale acest ei surse i s se compar e cu cea obinut n cazul
codrii simbol cu simbol. !ompar a i perfor man el e folosind ent ropi a
sursei pri mar e.
:.8. !um e"plicai rezult at ul verificrii inegalit ii #raft- $c$illan
at 2t pent r u codar ea binar c2t i pent r u cea ternar B
:.=. !e dificult i pot s apar n const r uci a codului Huffman
ternar B
:.@. Andicai un e"empl u de aplicar e practic a met odei de codar e
Huffman.
44

S-ar putea să vă placă și