Sie sind auf Seite 1von 159

Tema 3: Codificacin Huffman

Rafael Molina Depto. Ciencias de la Computacin e Inteligencia Artificial

Universidad de
Rafael Molina Tema 3: Codificacin Huffman !

ranada

" " &l algoritmo del cdigo de Huffman Cdigos de Huffman " Adaptativos ' *rocedimiento de codificacin ' *rocedimiento de decodificacin ' *rocedimiento de actuali)acin

#$%etivos del tema

Contenido s

' Cdigos de Huffman de m(nima varian)a

" +,- Cdigos de

olom$

" +,-Cdigo Tunstall " Aplicaciones del cdigo de Huffman Resum " en .i$liogra " f(a Ap/ndice: 0ongitud del cdigo de Huffman 1 " cdigo de Huffman e2tendido +,- &stas secciones son ilustrativas3 no entran
en el e2amen
Rafael Molina Tema 3: Codificacin Huffman 4

III.! #$%etivos del tema


&n este tema vamos a descri$ir un algoritmo de codificacin mu1 conocido: el cdigo de Huffman. *rimero supondremos 5ue es conocida la distri$ucin de pro$a$ilidad de la fuente 1 luego construiremos el cdigo cuando dic6as pro$a$ilidades no son conocidas. A continuacin veremos algunos es5uemas de codificacin3 en alg7n sentido3 similares al cdigo de Huffman. 8inalmente veremos algunos e%emplos de aplicacin a compresin de im9genes3 sonido 1 te2to.

Rafael Molina Tema 3: Codificacin Huffman

III.4 &l algoritmo del cdigo de Huffman.


0a codificacin usando el m/todo de Huffman +cdigo Huffman- es un cdigo prefijo ptimo para un con%unto dado de pro$a$ilidades. *uede alcan)ar la entrop(a3 aun5ue no lo 6ace siempre. :( es ptimo entre los cdigos prefi%o.
Rafael Molina Tema 3: Codificacin Huffman ;

&l cdigo de Huffman est9 $asado en dos propiedades de los cdigos prefi%o ptimos:
1.

&n un cdigo prefi%o ptimo3 los s(m$olos m9s frecuentes 'los 5ue tienen ma1or pro$a$ilidad< tienen pala$ras del cdigo m9s cortas 5ue las pala$ras menos frecuentes.

2.

&n un cdigo prefi%o ptimo3 los dos s(m$olos 5ue ocurren con menos frecuencia tendr9n la misma longitud.

Demostracin de que estas condiciones las cumple un cdigo prefijo ptimo: 0a primera condicin es o$via. &l n7mero medio de $its por s(m$olo ser(a ma1or si esta condicin no se cumpliese.
Rafael Molina Tema 3: Codificacin Huffman =

*ara pro$ar la segunda condicin usaremos reduccin al a$surdo. :upongamos 5ue e2iste un cdigo prefi%o ptimo3 C 3 en el 5ue los dos s(m$olos menos pro$a$les no tienen la misma longitud. :ean *! 1 *4 las correspondientes pala$ras del cdigo 1 supongamos 5ue long+*!->? 1 long+*4->n con ?@n. Al ser un cdigo prefi%o3 *! no puede ser prefi%o de *4. *or tanto podemos suprimir los n<? 7ltimos d(gitos de *4 1 tener a7n dos cdigos distintos. :ea C el nuevo cdigo3 Asigue siendo prefi%oB
Rafael Molina Tema 3: Codificacin Huffman C

Como estos s(m$olos son los menos pro$a$les ninguna otra pala$ra puede ser m9s larga 5ue estas dos 1 por tanto no 6a1 peligro de 5ue al 6acer m9s corta esta pala$ra del cdigo +la de *4- se convierta en prefi%o de ninguna otra. *or tanto3 C sigue siendo prefi%o. Hemos creado un nuevo cdigo3 C3 5ue 6ace 5ue C no sea ptimo3 lo 5ue contradice la 6iptesis inicial so$re C.

*ara construir el cdigo de Huffman le aDadimos la siguiente condicin a las dos propiedades vistas de los cdigos prefi%o ptimos: :i u 1 v son los dos s(m$olos menos pro$a$les en el alfa$eto3 si la codificacin de u es m,E3 la de v ser9

m,!. Donde m es una 6ilera de ceros 1 unos 1 , denota concatenacin.


Rafael Molina Tema 3: Codificacin Huffman F

Algoritmo del cdigo de Huffman

1.

#rdena los s(m$olos de m9s pro$a$le a menos pro$a$le3

2.

Comien)a a construir un 9r$ol por las 6o%as com$inando los dos s(m$olos menos pro$a$les3

3.

Itera el procedimiento

enera el cdigo de Huffman correspondiente siguientes pro$a$ilidades a

*+ la s *+ *+

>E.= >E.; >E.E

G *+ & >E.E!
Rafael Molina Tema 3: Codificacin Huffman H

pro$a$ilidades

E. =
E

!.E

E. ;

! E

*ro$a$ilidad es acumuladas ! E.!


E . =

E . E G
S

& E.E! E
a: !E

asignamos ! a la !!E I rama omenos t

pro$a $le

e A

pro$a$ilidades
1

E.3 E.3 E.3


E

E E

#tro e%emplo

E.C

!.E !

D E.! A EE

E.;

. E! C !E D !!
Rafael Molina Tema 3: Codificacin Huffman !E

pro$a$ilidades

#tro

. E.; A E.4 C E.4 D E.! & E.!

e%emplo

E E ! E

E.4

afael

Codificacin

Huffman !!

! !.E

! E! EEE EE!E EE!! a

III.4.! Cdigos de Huffman de m(nima varian)a


Consideremos el cdigo de Huffman del e%emplo anterior. &l n7mero medio de $its por s(m$olo es 0>E.;2!JE.424JE.423JE.!2;JE.!2;>4.4 $itsKs(m$olo :upongamos 5ue 5ueremos transmitir !EEEE s(m$olosKsg. Con una capacidad de transmisin de 44EEE $itsKsg el canal ir(a en media $ien. :in em$argo3 si tenemos 5ue transmitir muc6as veces seguidas los s(m$olos D o & podemos necesitar un $uffer muc6o ma1or. 0o me%or ser(a 5ue3 manteniendo la misma longitud media3 pudi/semos diseDar un cdigo de Huffman con

menor varian)a en la longitud de la codificacin de cada s(m$olo.


Rafael Molina Tema 3: Codificacin Huffman !4

*ara disminuir la varian)a colocamos3 en caso de empate en las pro$a$ilidades de los nodos3 los nodos 1a utili)ados lo m9s alto posi$le procurando utili)arlos lo m9s tarde posi$le. Retomemos el e%emplo de la seccin anterior. . E.; A E.4 C E.4 D E.!
& E.!
pro$a$ ilidade s

E !

! E.;

!.E ! E.4

EE !E !!
C odificacin H uffman !3

E ! ! E!E

Rafael Molina Tema 3:

III.3 Cdigo de Huffman adaptativo


&l cdigo de Huffman necesita conocer la pro$a$ilidad de aparicin de cada s(m$olo.
1.

2.

*ara tener estas pro$a$ilidades podemos leer los datos para o$tenerlas 1 luego codificar los s(m$olos usando el cdigo de Huffman para dic6as pro$a$ilidades3 o $ien podemos ir constru1/ndolo +adaptativamente- mientras vamos le1endo los s(m$olos. &sta es la $ase del cdigo Huffman adaptativo.

*ara la construccin del 9r$ol adaptativamente3 veamos a continuacin 5u/ propiedades caracteri)an a un 9r$ol $inario para 5ue sea el correspondiente a un

cdigo de Huffman.
Rafael Molina Tema 3: Codificacin Huffman

!;

Consideremos un 9r$ol $inario correspondiente a un alfa$eto de tamaDo n en el 5ue los s(m$olos del alfa$eto son las 6o%as. +pru/$alo por &ntonces3 el n7mero de nodos del 9r$ol es 4n<! induccin-.

A cada nodo del 9r$ol $inario le vamos a asignar dos campos: I7mero del nodo 1 peso del nodo.
&l n7mero de nodo es un n7mero 7nico asignado a cada nodo del 9r$ol entre ! 1 4n<!. 0os n7meros los notaremos 1!3L314n<!.

&l peso de un nodo 6o%a es simplemente el n7mero de veces 5ue aparece el s(m$olo correspondiente 1 el de uno interno la suma de los pesos de sus dos 6i%os. 0os

pesos los notaremos 2!3L324n<!.

Rafael Molina Tema 3: Codificacin Huffman !=

*uede pro$arse 5ue: :i al asignar n7meros a los nodos comen)ando por el uno 1 recorriendo el 9r$ol por niveles +asignamos3 de i)5uierda a derec6a en cada nivel 1 de las 6o%as +a$a%o- a la ra() +arri$a- los pesos de los nodos 5uedan ordenados en un orden no decreciente

&l 9r$ol o$tenido es un 9r$ol $inario correspondiente a un cdigo de Huffman para dic6os s(m$olos con las pro$a$ilidades de cada nodo 6o%a igual a su peso dividido por la suma de los pesos.

0a propiedad anterior reci$e el nom$re de si$ling propert1 o node num$er invariant.


Rafael Molina Tema 3: Codificacin Huffman !C

&n el e%emplo de la derec6a: "&ntre par/ntesis los pesos de cada nodo. "Dentro de los cuadrados el n7mero asignado a cada nodo. *or tanto3 este 9r$ol es el correspondiente al cdigo de Huffman para estos s(m$olos con las pro$a$ilidades 5ue se o$tienen a partir del n7mero de veces 5ue 6a aparecido cada s(m$olo dividido por el n7mero de s(m$olo le(dos.

+!C-

F =

+F-

H C
+;-

+G -

+3-

+!-

+4-

+4-

+4-

Rafael

Molina 3: Codificacin Huffman !F Tema

&n el cdigo Huffman adaptativo ni el transmisor ni el receptor conocen al principio las pro$a$ilidades de los s(m$olos. *or eso:
1.

Codificador 1 decodificar comien)an con un 9r$ol con un nodo 7nico 5ue corresponde a todos los s(m$olos no transmitidos +IMT- 1 5ue tiene peso cero. Mientras progresa la transmisin se aDadir9n nodos al 9r$ol correspondientes a s(m$olos 5ue apare)can por primera ve)3 se modificar9n los pesos +tanto si el s(m$olo es nuevo como si es 1a e2istente- 1 se actuali)ar9 el 9r$ol para 5ue siga cumpliendo t6e si$ling propert1 +siga siendo de

2.

Huffman-.

Rafael Molina Tema 3: Codificacin Huffman !H

&l algoritmo de Huffman adaptativo consta de los siguientes elementos:


1.

Iniciali)acin +la misma para el codificador 1 decodificador-.

4 Algoritmo de codificacin.
3.

Algoritmo de decodificacin. *roceso de actuali)acin del 9r$ol para 5ue mantenga t6e si$ling propert1.

4.

Antes de descri$ir estas partes comentaremos $revemente so$re la codificacin de los s(m$olos:
Rafael Molina Tema 3: Codificacin Huffman !G

Codificacin de un smbolo que aparece por primera vez: ":alvo 5ue sea el primero de todos lo s(m$olos de la secuencia3 la codificacin de un s(m$olo 5ue aparece

por primera ve) consta de la codificacin 5ue proporciona el 9r$ol del nodo IMT seguido de un cdigo fi%o para el s(m$olo 5ue de$en conocer codificador 1 decodificador "&n el caso en 5ue sea el primer s(m$olo 5ue aparece en la secuencia no necesitamos transmitir el cdigo de IMT.

Si el smbolo ya ha aparecido "Utili)amos la codificacin 5ue proporciona el 9r$ol 5ue vamos constru1endo.

Rafael Molina Tema 3: Codificacin Huffman

4E

Inicializacin del cdigo de Huffman adaptativo


(tanto para el codificador como para el decodificador

n7meros nodos3
3.

para

los

1.

Iuestro 9r$ol 6a de codificar nJ! s(m$olos inclu1endo el

&l 9r$ol de Huffman inicial tiene un nodo 7nico:


peso

correspondiente a IMT3
2.

Iecesitamos por tanto 4+nJ!-<!>4nJ!

E
IMT

4nJ!

I7mer o

del nodo
Rafael Molina Tema 3: Codificacin Huffman 4!

Algoritmo de codificacin para el cdigo Huffman adaptativo


1.

:i encontramos un s(m$olo nuevo +ver notaentonces generar el cdigo del nodo IMT seguido del cdigo fi%o +ver nota- del s(m$olo. ADadir el nuevo s(m$olo al 9r$ol3 :i el s(m$olo 1a est9 presente3 generar su cdigo usando el 9r$ol3 Actuali)ar el 9r$ol para 5ue siga conservando t6e si$ling propert1.

2.

3.

Iota: Recordemos 5ue para el no 6ace falta primer s(m$olo cdigo de IMT. &ltransmitir el principio cdigo fi%o es conocido alpor codificador 1 decodificador.
Rafael Molina Tema 3: Codificacin Huffman 44

Algoritmo de decodificacin para el cdigo Huffman adaptativo


1.

Decodificar el s(m$olo usando el 9r$ol actual3 :i encontramos el nodo IMT3 usar el cdigo fi%o para decodificar el s(m$olo 5ue viene a continuacin. ADadir el nuevo s(m$olo al 9r$ol3 Actuali)ar el 9r$ol para 5ue siga conservando t6e si$ling propert1.

2.

3.

Iota: recordar3 de nuevo3 5ue el primer s(m$olo no va precedido por el cdigo de IMT
Rafael Molina Tema 3: Codificacin Huffman 43

Actualizacin del rbol para el cdigo Huffman adaptativo


1. 2. 3.

4. 5.

:ea y la 6o%a +s(m$olo- con peso x3 :i y es la ra()3 aumentar x en ! 1 salir Intercam$iar y con el nodo con el n7mero ma1or 5ue tenga el mismo peso 5ue /l +salvo 5ue sea su padreAumentar x en ! :ea y el padre 5ue tiene su peso x +el 5ue sea3 no el definido en ;- ir al paso 4 del algoritmo
Rafael Molina Tema 3: Codificacin Huffman 4;

Ejemplo
Consideremos el alfa$eto A>Na3$3c3dO 1 realicemos la codificacin de la secuencia aa$cdad *rimero vemos el n7mero de nodos 5ue necesitaremos Iodos>4,;J!>G

0os cdigos de longitud fi%a 5ue usamos son a EEE $ EE! c


Rafael Molina Tema 3: Codificacin Huffman 4=

E!E d

E!!

Iniciali)acin

E
IMT

aa$cdad en A>Na3$3c3dO

salida>EEE *aso ! del algoritmo de E E


G

codificaci n E
IMT F

E
a

Rafael Molina Tema 3: Codificacin Huffman 4C

*aso 3 del algoritmo de codificacin +actuali)acin-

algori tmo de actual i)aci n

*aso ; de ntr o del

*aso 4 dentro del algoritmo de actuali)acin

E E !

IM T

! E

E
IMT

!
a
R

" aa$cdad

Tenemos

*aso 4 algoritmo codificacin

del de

!G

IMT a

salida>EEE

! E ! E
IMT F

!
a

salida>E EE!

*aso 3 del algoritmo de codificacin +actuali)acin-

algori tmo de actual i)aci n

*aso ; de ntr o del

*aso 4 dentro del algoritmo de actuali)acin

! E !

IM T

4 E

E
IMT

4
a

Rafael Molina Tema 3: Codificacin Huffman 4G

" aa$cdad Tenemos E E


IM T F

! 4
a H

salida>EE E! *aso ! del algoritmo

Cdi go de IMT

de codificaci n E E

IM T

salida>EEE!EE E! ! 4
H
Cdig o de $

! E
$ C

Rafael Molina Tema 3:

Codificaci

Huffman 3E

4 E E E E
= F

G I M T

! 4
a

!
!
C

IMT$

3 E ! E
F

!
$ H

*aso 3 del algoritmo C de codificacin +actuali)acinRafael M ol ina Tema 3: Huffman 3! Codificacin

E
IM T

! 4
H
a

"

aa$cda d Tenemos

IM T
3: Rafa Codi el ficac Molin in a Huff Tema man 34

salida>EEE!EEE! 3 E ! E E
= F

! !

E !

3
F

! 4
a

E
H

3
F

! 4 E E
IM T

E E
3

! !
c

E 4 E E !
=

E ! E E
G IMT 3 =

! ! ! !
c $ ; C

! 4
a

E 4
=

;
F

E ! E

! ! !
$

! 4
a
H u f T f m a n

a d a p t a c i n

" aa$cdad Tenemos

Algoritmo de codificacin sin adaptacin del 9r$ol

salida>EEE!EEE!EEE!EEE EE!! s

IMT

E E E
IM T

4
5

F c 4

!
M

E 4 E ! E E E E
IMT d
5

;
F

! 4
a

! ! !
$ ;

E ! E E
IM T

E !
3

E 4
5

;
F

! 4
a

! ! !
$ ;

!
c 4

! !

! !
d 4

!
c

Rafael Molina

E ! E !
3

4
5

;
G F

! ; 4
a F

! !
$ ;

! 4
a

! !
3

CAM.I# #RD&
Tema 3: Codificacin Huffman

M c

! !

E 4 E Ra
fa el M oli na

E 4 E
! =

;
F

! E

!C

! 4
a $

E !

!
3

E !

! !

E E
; c
IMT d

! !

cin ! 3
; c 4

E E
IM T

! !
d

a d a p t a

E !
$

E !

E E
IM T

CAM.I# D& #RD&I

C C

! !
; c

! !
c 4

adaptaci n del 9r$ol

Raf M a ael Tem

a Codificacin 3: Huffman 3H

4
a

3 E
=

! 4
3 C

!$

E !

E E
IMT

! !
d 4

! !
c

ie l ad 9 a n pt r $ ac d

ol
Raf ael M na a 3: Codificacin oTe Huffman 3G li m

" aa$cdad Tenemos salid a>EE E!EE E!EE E!EE EEE! ! salid a>EE E!EE E!EE

E!EEEEE!!E E 4
a

Rafael Molina

Tema 3: Codificacin C Huffman

c 4
;E

! ! ;

3
a

3 E
=

! 4
3

!$

E !

E E
IMT

! !
d

E 3
C a

C
F

! 3
= C

"

aa d

E !
$

! !
c ;

Te s

! !
c 4 ;

E !
4 !

EEE!EE

E E
I MT

Raf ael Mo lin

p tn a d c el i9r

E 3
a

C
F

! E E

I MT
Rafael Molina

! !
d

E 3
a

C
F

! 3
=

E !
$

! 4
3

E !

E E
I MT

! !
d

! !

E 3
a

C
F

! 3
=

E !
d

! 4
3

E !

! !
c

I MT

E E

! !
$

s c $ # a i $ m o
T

E 4

E E

IM T

E 3
a C

C
F

! !
c ;

E 4
d

! !
c ;

E E
I MT

4
R M ina Tema 3: o Codificacin l Huffman ;;

3
a

; E 4
d
=

! 4
C 3

E !

IM T

E E

! !
$ 4

! !
c

E 3
a

F
F

! ;
=

E 4
d

! 4
3

E !

! !
c

E E
I MT

! !
$

4
e

R a f a

&%ercicio: Usando el cdigo fi%o a>EEE3 $>EE!3 c>E!E3 d>E!! Decodificar la secuencia EE!!EEEE usando el cdigo de Huffman adaptativo.

Aun5ue el cdigo de Huffman es uno de los m/todos de codificacin de longitud de pala$ra varia$le m9s conocidos3 e2isten otros m/todos algo menos conocidos pero tam$i/n mu1 7tiles. &n particular los m/todos de olom$<Rice 1 Tunstall 5ue veremos a continuacin.

Rafael Molina Tema 3: Codificacin

Huffman ;C

III.; Cdigo de

olom$

Consideremos un suceso A 5ue tiene pro$a$ilidad p 1 c su complementario A 5ue tiene pro$a$ilidad 5>!<p +o$viamente pJ5>!-. Pueremos codificar el n7mero de veces +rac6a>run lengt6- 5ue aparece A antes de 5ue apare)ca A . :uponemos 5ue las reali)aciones son independientes. #$serva 5ue si p es pr2imo a uno esperamos 5ue apare)ca muc6as veces el suceso A antes de 5ue apare)ca un A .
Rafael Molina Tema 3: Codificacin Huffman ;F

&%emplos de estos modelos son:


1.

A es 5ue salga cara al lan)ar una moneda c 1 A es o$viamente 5ue salga cru). &n el pro$lema del agente EE!!! de olom$ +ver c material adicional- el suceso A es 5ue salga el cero en la ruleta 1 A es 5ue no salga +la ruleta tiene los n7meros del E al 3C-. *untos en $lanco 1 negro como podr(a ser el contenido de una 6o%a.
Rafael Molina Tema 3: Codificacin Huffman ;H

2.

3.

#$serva 5ue para la ruleta *+A->3CK3F 1 *+A ->!K3F. 1. &n el caso de la moneda +si no est9 c sesgada- *+A->*+A ->!K4. 2. &n el caso de 6o%as en $lanco 1 negro se podr(a estimar p. 0os fa$ricantes de impresoras suponen

p>E.E=

0o 5ue 5ueremos codificar son las reali)aciones de la varia$le aleatoria I definida por I> n7mero de veces 5ue aparece A antes de 5ue apare)ca A . &sta varia$le tiene la siguiente distri$ucin de pro$a$ilidad *+I>n->p 5 n>E3!343L.
Rafael Molina Tema 3: Codificacin Huffman ;G

Una posi$le codificacin ser(a: Cada ve) 5ue apare)ca el suceso A lo codificamos con c un uno 1 cuando se produ)ca el suceso A lo codificamos con un cero. De esta forma el valor n de la varia$le aleatoria I se codifica mediante n unos seguidos de un cero. &s decir3 E ! 4 3 . .

cdig o E !E !!E

&ste cdigo reci$e el nom$re de cdigo unario. ACu9l es el n7mero medio de $its

!!! E . .

5ue este cdigo3 C3 usa para codificar la varia$le IB

Cp (N ) = (n +1)qpn = qpn +qnpn


n=0 n=0
n 1

n=0

q 1 p q

+qpnp

q 1 p 1 1 = p

+ pq deriv

pn

n=0

n=0

1 + p pq

(1 2 p)

Recuerda 5ue 5>!<p

#$serva 5ue si p est9 mu1 pr2imo a uno Cp+I- es mu1 grande. ACu9nto vale la entrop(a de la varia$le aleatoria I en funcin de pB.

Rafael Molina Tema 3: Codificacin Huffman =!

H p (N ) = qpn log (qpn )= q log( q)pn q log ( p ) npn


n=0 n=0

n=0

q log( q) 1 p q log( q)

pq log( p)npn1
n=0 n=0

pq log( p)derivada

pn

1 p pq log( = q log( q) p) =

1 (1 1 p p)2 1 (q log q + p log p)

= log (q )

log( p p) 1 p

1p
Rafael Molina Tema 3: Codificacin Huffman =4

Recuerda 5ue 5>!<p

Representacin gr9fica de Cp+I- 'Hp+I-

#$serva 5ue para p grande de$er(amos ser capaces de me%orar el cdigo unario. :in em$argo3 para p>E.=3 Cp+I- 'Hp+I->E 1 el cdigo unario es el me%or 5ue podemos utli)ar.
Rafael Molina Tema 3: Codificacin Huffman =3

Qeamos la idea del cdigo de

olom$ intuitivamente.

:upongamos 5ue tenemos una rac6a de apariciones de A de longitud n! 1 otra rac6a de apariciones de A de longitud n4+Rn!- cu1a pro$a$ilidad es la mitad. ACmo est9n relacionados n4 1 n!B.

P(N = n ) = qpn2 = q2n log p


2

de donde

= 0.5P(N = n ) = 0.5q2
1

n log p
1

= q2

1+n log p
1

n2 log p = 1+n1 log p


o

Mu1 importante

Rafael Molina Tema 3: Codificacin Huffman =;

log p

log p

Intutivamente3 nos gustar(a 5ue el cdigo de n4 fuese un $it m9s largo 5ue el de n!. &sto es lo 5ue consigue el cdigo de olom$. Antes un poco de notacin

x = entero ms prximo a x por abajo x = entero ms prximo a x por arriba 3 .5 = 3 3.5 = 4


Continuemos con el cdigo de olom$. :ea

w=

Rafael Molina Tema 3: Codificacin Huffman

1 log p

==

*ara cada n seanQ =

n w

y R = n Qw

&n otras pala$ras P es el cociente 1 R es el resto de la divisin de n por S +#$serva 5ue si nT>nJS entonces PT>PJ!0a codificacin de olom$ para n consiste en:

!. un prefi%o unario +para el cociente3 es decir para P-3 4. 1 un sufi%o $inario +para el resto3 R- usando

log w

bits

, &ste cdigo va a ser me%orado despu/s

Rafael Molina Tema 3: Codificacin Huffman =C

:upongamos 5ue p>4U+<!K;- V E.H;EG3 entonces

w= 4,

log w = 2

I E ! 4 3 ;

P E E E E !

R E ! 4 3 E

Representaci n EEE EE! E!E E!! !EEE

= C

! !

! 4
Huffman =F

!EE! !E!E

Rafael Molina Tema 3: Codificacin

:upongamos 5ue p>4U+<!K=- 3 entonces

w= 5,

log w = 3

I E ! 4 3 ;

P E E E E E

R E ! 4 3 ;

Representaci n EEEE EEE! EE!E EE!! E!EE

= C

! !

E !
Huffman =H

!EEEE !EEE!

Rafael Molina Tema 3: Codificacin

0a parte sufi%o del cdigo es me%ora$le cuando S no sea una potencia de 43 si usamos la siguiente representacin de longitud varia$le: :ea R W NE3!3L3S<!O

Usando log

bits nos sobran ! = 2 log w "digos

#i $ < ! %samos representa "in binaria "on log

bits

#i $ M %samos la representa "in en log w bits de $ + M


Rafael Molina Tema 3: Codificacin Huffman =G

!jemplo s:

E !

! 4

!E !!

E E S>4 Resto R

E !
odifi caci n Huff ma n RCE a f a e l M o li n a T e m a 3 : C

! 4

M9s e%emplos de la representacin de la parte sufi%o

!
E S>; E

!
S>=

E E
Resto R E ! 4 3

! !

E 4

! 3

E E
Resto R E ! 4 3

! !

E 4 E

! !

Representaci n EE E! !E !!

Representaci n EE E! !E !!E

;
Codifica cin Huffma C! Tema 3: n Rafael Molina

!!!

#tro e%emplo de cdigo

ollu$:
<!K=

:upongamos 5ue p>4

. &ntonces

C X D I

# #00U.

w = 5,

log w = 3

I E ! 4 3 ; = Rafael Molina C

P E E E E E ! Codificacin !

R E ! 4 3 ; E !Huffman

Representaci n EEE EE! E!E E!!E E!!! !EEE C4 !EE!

III.= Cdigo Tunstall


&s un cdigo de longitud fi%a en el 5ue cada pala$ra del cdigo puede representar un n7mero diferente de letras.

Cdigo de Tunstall

:upongamos 5ue tenemos inicialmente m s(m$olos 1 5ueremos usar como salida representaciones de n longitud fi%a con n $its3 siendo 4 Rm. :uponemos 5ue las reali)aciones de dic6os s(m$olos son independientes. Construccin del 9r$ol:

"8ormar un 9r$ol con una ra() 1 m 6i%os con arcos eti5uetados con los s(m$olos del alfa$eto3 ":i el n7mero de 6o%as del 9r$ol3 l3 cumple lJ+m< n !-@ 4 seguir3 en caso contrario parar., "&ncontrar la 6o%a con ma1or pro$a$ilidad +la pro$a$ilidad es el producto de las pro$a$ilidades de los s(m$olos del camino de la ra() a las 6o%as- 1

e2pandirla para 5ue tenga m 6i%os. Qolver al paso anterior3


Rafael Molina Tema 3: Codificacin Huffman C3

,Yustificacin de la condicin de parada: Qeamos cuantos 6o%as tiene el 9r$ol3 :i en un instante tiene l 6o%as3 para e2pandir le 5uitamos una 1 de esa una salen m. *or tanto una ve) reali)ada la e2pansin tenemos l<!Jm 5ue

necesitaremos 5ue sea menor 5ue 4 1a 5ue necesitamos de%arnos al menos un cdigo li$re como 1a veremos.

Una ve) construido el 9r$ol le asignamos un cdigo de longitud n a cada una de las 6o%as.
Rafael Molina Tema 3: Codificacin Huffman C;

:upongamos 5ue *+A->E.C3 *+.->E.3 1 *+C->E.! 1 n>3. *or tanto3 deseamos generar una representacin de longitud fi%a 3. *aso !

A E.C

. E.3

C E.!

Rafael Molina Tema 3: Codificacin Huffman C=

*aso 4 l>33 3J4>=3 =@H :eguimos *aso 3

. E.3

C E.!

E.3C E.!H E.EC


Rafael Molina Tema 3: Codificacin Huffman CC

*aso 4 l>=3 =J4>F3 F@H :eguimos

*aso 3

Rafael Molina Tema 3: Codificacin Huffman CF

*aso 4 0>F3 FJ4>G3 Codificacin final +6a1 varias opcionesG ZH3 :alimos

#$serva 5ue tenemos li$re la pala$ra del cdigo !!!

C
A . !E!

C E!!
EEE E!E EE!

!EE

Raf ael

MolinaTema Codificacin 3: Huffman CH

&l cdigo de Tunstall 6a generado la siguiente representacin AA APu/ enviamos el &ntrada :alida ocurre si cdigo no 5ueremos AAA EEE utili)ado codificar +!!!- 1 un AA. EE! la cdigo fi%o para AA. secuencia AAC E!E eneralmen AAB. te3 si 6a1 ? A. E!! nodos AA no tiene AC !EE representaci internos en el 9r$ol n. . !E! necesitarem os ?<! *ara C !!E codificar el cdigos fi%os. &n

nuestro pro$lema A 1 AA.

Rafael Molina

Tema 3: Codificacin Huffman

CG

#tro e%emplo. :upongamos *+A->E.G 1 *+.->E.! 1 usamos n>4. &l 9r$ol 5ue construir(amos ser(a

&ntrada AA A. .

:alida EE E! !E A EE

. !E . E!

M de%ar(amos el !! para enviar el cdigo de A


Rafael Molina Tema 3: Codificacin Huffman FE

:i us9semos las cuatro pala$ras tendr(amos &ntrada AAA AA. A. . :alid a EE E! !E !! A E E . E! A . !E A . !!

1 no podr(amos enviar cdigo para A


Rafael Molina Tema 3: Codificacin Huffman F!

*ro$lema: considera la ta$la en la 5ue el cdigo !!! es utili)ado para anunciar 5ue a continuacin viene el cdigo de A o AA. C &ntrada :alida APu/ A proceso AAA EEE seguir(amos B para AA. EE! codificar las AAC E!E secuencias A. AC . C E!! !EE !E! !!E
Rafael Molina

CA .. AA C C. .A
Tema 3: Codificacin Huffman F4

III.C Aplicaciones del cdigo de Huffman


&n las clases de pr9cticas se estudiar9n las siguientes aplicaciones: Im9genes: Usaremos im9genes de niveles de gris3 es decir3 5ue en cada punto toman un valor entre E 1 4==. &stimaremos la pro$a$ilidad de ocurrencia de cada nivel de gris usando el 6istograma 1 aplicaremos Huffman. &l modelo ser9 por tanto no adaptativo. Como los valores de los p(2eles est9n mu1 correlados codificaremos la diferencia entre un p(2el 1 el anterior usando Huffman3 veremos 5ue me%oramos el nivel de compresin. Tam$i/n usaremos im9genes $inarias 1 cdigos de Huffman adaptativos
Rafael Molina Tema 3: Codificacin Huffman F3

Te2to: Usaremos diferentes tipos de te2to 1 aplicaremos Huffman 6a$iendo calculado antes las pro$a$ilidades de cada letra a partir del te2to. &liminar la correlacin a5u( es m9s complicado 1 veremos como 6acerlo en cap(tulos posteriores. :onido: Cada canal est/reo se muestrea a ;;.! ?H) 1 utili)a una representacin de !C $its. Aun5ue no vamos a construir el cdigo Huffman !C +tendr(a 4 entradas-3 calcularemos la entrop(a 1 por tanto una estimacin de la me%or compresin 5ue podemos alcan)ar. *odemos tam$i/n eliminar +o disminuir- la correlacin entre los datos 1 volver a calcular la entrop(a 1 por tanto una estimacin de la compresin a alcan)ar con este modelo.
Rafael Molina Tema 3: Codificacin Huffman F;

III.F Resumen del tema


1.

2. 3. 4.

Cdigo de Huffman3 no adaptativo adaptativo3 Cdigos unarios 1 de olom$3 Cdigos de Tunstall3 Aplicaciones.

Rafael Molina Tema 3: Codificacin Huffman F=

III.H .i$liograf(a
[. :a1ood3 \Introduction to Data Compression]3 Morgan and [aufmann3 4EEE.
aterial adicional de la asignatura
" . 0angdon3 Data Compression3 Universidad de California3 !GGG. +langdon^Run<0engt6^&ncodings.pdf-. "Ro5ue Mar(n3]Compresores estad(sticos]3 Universidad de Murcia3 +EE^compresores^estad(sticos^univ.murcia.pdf-. "Iotas so$re el cdigo de olom$ + olom$^Iotes.pdf-. "#tra presentacin so$re compresores estad(sticos3 +EE^compresores^estad(sticos^II.pdf-. "Temas 43 3 1 ; del curso de compresin de datos impartido en :ton1 .roo? Universit1 +IM3 U:A-3 +tema_4333;`^ston1.pdf-. "Tema 3 del curso de compresin de datos impartido en C6almers Universit1 of Tec6nolog1 +:uecia-3 curso 4EE3<4EE;. +tema3^c6almers.pdf-. ":. a. olom$3 \Run<0engt6 &ncodings]3 I&&& Trans. #n Information T6eor13 IT<!4: 3GG<;E!3 !GCC.

"D.A. Huffman3 \A met6od for t6e construction of minimum redundanc1 codes]3 *roceedings of t6e IR&3 ;E:!EGH<!!E!3 !G=!.
Rafael Molina Tema 3: Codificacin Huffman FC

Ap/ndice: longitud de los cdigos de Huffman 1 cdigos de Huffman e2tendidos

Dado un cdigo de Huffman3 puede pro$arse 5ue3 su longitud media n cumple

H (S)

n < H(S) + 1

*rimer Teorema de :6annon o Teorema 8undamental de la Codificacin sin Ruido: Dada una fuente : > N2!3 ... 2mO 1 un alfa$eto $inario3 e2iste al menos un cdigo prefi%o C cu1a longitud media cumple
n < H (S) +

siendo W cual5uier n7mero real ar$itrariamente pe5ueDo.


Rafael Molina Tema 3: Codificacin Huffman FF

0a demostracin del teorema es la siguiente: :upongamos 5ue codificamos $lo5ues de 5 mensa%es 1 seguimos suponiendo 5ue son independientes3 entonces tendremos +o$serva 5ue la fuente es a6ora 5 : H (S q ) nq H (S q ) +1

Reeescri$iendo esta ecuacin en funcin de la entrop(a de la fuente original tendremos


q H (S) q n q H (S) +1

dividiendo por 5 o$tendremos


H (S) n H (S) + q

.asta con elegir un tamaDo de $lo5ue 5 suficientemente grande para conseguir !K5 @ W para 5ue se cumpla lo afirmado por el teorema.

Rafael Molina Tema 3: Codificacin Huffman FH

Das könnte Ihnen auch gefallen