Você está na página 1de 8

4.

12 Codificacin de
Huffman

Aplicaciones de la
Teora de Grafos
a la vida real

Alberto Conejero y Cristina Jordn


Depto. Matemtica Aplicada
E.T.S. Ingeniera Informtica
Universitat Politcnica de Valncia

Aplicaciones de la Teora de Grafos a la vida real

Ahorrar memoria,

La representacin de caracteres o smbolos en ordenadores se puede realizar


codificando en binario, utilizando palabras de longitud constante (por ejemplo el
cdigo ASCII con cadenas de longitud 7 bits).

La compresin de datos nos permitir ahorrar espacio de memoria y reducir el


tiempo de transmisin de datos. Es fundamental en la compresin de ficheros
de video y audio.
Si permitimos utilizar diferentes longitudes de cadena, asociando a los caracteres
ms frecuentes cadenas de menor longitud, podramos ahorrar memoria.
Cmo podemos conseguir este cdigo?

4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Cdigo prefijo
Un conjunto de P de cadenas binarias asociadas a un conjunto de smbolos se
llama cdigo prefijo (tambin llamados cdigos instantneos) si ninguna de
las cadenas de P es prefijo de otra cadena de P.
Ejemplos

Caracteres x, y, *, + ,(, )
Cdigo 1:
Cdigo 2:

x 01
x 1110

y 10
y 1111

) 11 ( 00
* 101 + 0
* 110 + 10 ) 01 ( 00

Qu significa?
Cdigo 1
00010101110101

00 01 0 10 11 101 01
( x + y ) * x
0 00 10 101 11 01 01
+ ( y * ) x x

Cdigo 2
001110101111011101110

00 1110 10 1111 01 110 1110


( x
+ y
)
* x
4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Cdigo prefijo
Los cdigos obtenidos como se indica a continuacin a partir de un rbol dirigido
con raz es un cdigo prefijo
Obtencin de cdigo prefijo

1. Se construye un rbol dirigido con raz binario donde:


el arco de salida izquierdo de cada vrtice est etiquetado con 1
el arco de salida derecho de cada vrtice est etiquetado con 0
2. Los vrtices de grado de salida 0 (hojas) stan etiquetados con caracteres
Ejemplo

1
1
1
y

0
0

x 1110
+ 10

y 1111 * 110
( 00
) 01

4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Ejemplo
Obtencin del mejor cdigo prefijo asociado a los smbolos x, y, * , + ,(, ).
Las frecuencias con que stos aparecen vienen reflejadas en la tabla siguiente:
Caracteres

Frecuencias 10

10

15

25

20

20
20
(

20
)

10, 10, 15, 20, 20, 25

25
+
15
*

10
x

10
y

15, 20, 20, 20, 25


20

20, 20, 25, 35

20

25
15

25, 35, 40

20
40

40, 60
40

25

20

25

20

35

35

60

4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Ejemplo
Obtencin del mejor cdigo prefijo asociado a los smbolos x, y, * , + ,(, ).
Las frecuencias con que stos aparecen vienen reflejadas en la tabla siguiente:
Caracteres

Frecuencias 10

10

15

25

20

20

1
1
(

x 0001
y 0000
* 001
+ 01
( 11
) 10

0
1
x

0
y

4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Cdigo Huffman
Objetivo

Obtencin de cdigo prefijo utilizando el menor nmero posible de


bits, de entre todos los posibles cdigos binarios para el conjunto de
smbolos dados.

Se obtiene a partir de la construccin de un rbol binario con raz


donde los smbolos son las etiquetas de las hojas

Datos de entrada
Conjunto de smbolos junto a sus frecuencias (es decir, probabilidades
de aparicin)

4.12 Codificacin de Huffman

Aplicaciones de la Teora de Grafos a la vida real

Cdigo Huffman
Proceso
PASO 1. Se listan las frecuencias de menor a mayor, L.

PASO 2. Se localizan los dos valores ms pequeos de la lista, pu y pv.


Se eliminan de la lista L.
Se inserta en L el valor pu+ pv de forma que siga siendo una lista
de nmeros creciente.
Si el nmero de elementos de la nueva lista L es distinto de 2
ir a PASO 2.
PASO 3. Sea T(L) una arborescencia binaria con vrtice raz v0 y dos
vrtices de grado de entrada 1 que etiquetamos con los valores
de la ltima lista L.
PASO 4. Se reemplaza el vrtice cuya etiqueta sea la suma de dos valores,
pu+ pv, por un rbol dirigido con raz binario cuya raz sea dicho
vrtice y los otros dos vrtices tengan como etiquetas los valores
pu y pv.
Ir a PASO 4 hasta que las etiquetas del rbol dirigido con raz
generado coincidan con los valores de entrada dados.
4.12 Codificacin de Huffman

Você também pode gostar