Análisis del código de Huffman para la codificación de mensajes
1. CONFERENCIA N° 6
Tabla de contenido
1. OBJETIVOS ............................................................................................................. 1
2. INTRODUCCIÓN .................................................................................................... 1
3. DESARROLLO ........................................................................................................ 2
3.1. GENERALIDADES .......................................................................................... 2
3.1.1. CODIFICACIÓN ....................................................................................... 2
3.2. CÓDIGOS .......................................................................................................... 2
3.2.1. CÓDIGO BLOQUE ................................................................................... 2
3.3 INECUACIÓN DE KRAFT .............................................................................. 5
3.4 EFICIENCIA DE UN CÓDIGO ........................................................................ 6
3.5 LONGITUD PROMEDIO EN TÉRMINOS DE LA PROBABILIDAD DE
OCURRENCIA DEL MENSAJE ................................................................................ 6
3.6 PRIMER TEOREMA DE SHANNON O TEOREMA DE LA
CODIFICACIÓN SIN RUIDO .................................................................................... 6
3.7 CÓDIGO DE HUFFMAN ................................................................................. 7
3.7.1 DESARROLLO DE LA CODIFICACIÓN ............................................... 7
4 CONCLUSIONES .................................................................................................... 9
5 RECOMENDACIONES .......................................................................................... 9
1. OBJETIVOS
Analizar y determinar las características del código de Huffman para establecer
una codificación correcta para la transmisión del mensaje.
Determinar cuando un código es unívocamente decodificable.
Verificar si el código arrojado por Huffman es eficiente.
Conocer el proceso de definición del código de Huffman.
2. INTRODUCCIÓN
La codificación es uno de los elementos mas importantes en la transmisión de la
información dependiendo de esto, mensaje podrá llegar bien o no a su destino.
El código de Huffman dentro de los códigos de codificación estadística es óptimo, ya
que es el código de menor longitud media.
La construcción de este código se fundamenta en asignar a cada símbolo del alfabeto
2. fuente una secuencia de bits cuya longitud esté relacionada de forma directa con la
probabilidad de aparición de ese símbolo.
3. DESARROLLO
3.1. GENERALIDADES
3.1.1. CODIFICACIÓN
Es el proceso por el cual la información de una fuente es convertida en símbolos para
ser comunicada. En otras palabras, es la aplicación de las reglas de un código.
3.1.1.1. CÓDIGO
Es una regla para convertir una pieza de información (por ejemplo, una letra, palabra o
frase) en otra forma o representación, no necesariamente del mismo tipo.
Un código debe ser decodificado (interpretado) para ser entendido por las partes.
3.1.1.1.1. UNÍVOCAMENTE DECODIFICABLE
Esta expresión hace referencia a que el código no puede repetirse.
3.1.1.1.1.1. EFICIÉNCIA
Se refiere a cuando el código es unívocamente decodificable e instantáneo.
3.1.1.1.1.2. CÓDIGO INSTANTANEO
Cuando se define la codificación de forma instantánea o en primera instancia.
3.2. CÓDIGOS
3.2.1. CÓDIGO BLOQUE
Establece a cada símbolo del alfabeto fuente una secuencia fija del alfabeto X. La
traducción de un idioma a otro es un proceso de codificación en bloque.
S S1, S 2, S 3, S 4 X 0,1
S Palabras código
S1 0
S2 11
No son diferentes
S3 01
S4 11
Las secuencias de símbolos de X que constituyen las palabras código deben ser únicas
3.2.1.1. CÓDIGO DE BLOQUE NO SINGULAR
Si todas sus palabras código son diferentes
3. S Palabras código
S1 0
S2 11
S3 00 Diferentes
S4 01
3.2.1.2 EXTENSIÓN DE ORDEN N DE UN CÓDIGO BLOQUE
Código bloque que hace corresponder palabras código Xi1, Xi2,..., Xin a las secuencias
de símbolos Si1, Si2,.., Sin.
Representación para cada código. A la extensión de orden 2 y su código de bloque de
orden 2
S2 Palabras código
S1S1 00
S1S2 011
S1S3 000
S1S4 001
S2S1 110
……… ………..
3.2.1.3 CÓDIGO BLOQUE UNÍVOCAMENTE DECODIFICABLE
Si y solo si su extensión de orden n es no singular para cualquier valor finito den.
Está definición asegura que dos palabras fuentes (secuencias Si) de igual longitud,
tendrán secuencias códigos diferentes. Esto debe cumplirse también para dos secuencias
de diferente longitud.
Considerando las secuencias S1S1S2 y S3S2
C (S1S1S2) 0011
C (S3S2) 0011
Generan dos palabras código idénticas para dos secuencias de diferente longitud. Las
secuencias:
S1S1S2S3S2 C (S1S1S2S3S2) 00110011
S3S2S1S1S2 C (S3S2S1S1S2) 00110011
Esto demuestra que es muy difícil generalizar la no singularidad para n suficientemente
grande.
4. 3.2.1.4 CÓDIGOS INSTANTANEOS
Dados los códigos B y C
S B C
S1 00 0
S2 01 10
S3 10 110
S4 11 1110
B es no singular debido a que todas las palabras código son diferentes, además la
longitud de cada una es de 2. La extensión de orden n de S según B es unívocamente
decodificable.
C es unívocamente decodificable, pues es no singular para cualquier extensión de orden
n. El símbolo 0 hace de separador.
B y C además de ser unívocamente decodificables, en ambos se pueden conocer cuándo
termina una palabra código dentro de una secuencia finita de símbolos. En B, debido a
la longitud fija (2) y en C por el símbolo 0 como separador.
Considerando el código D
S D
S1 0
S2 001
S3 011
S4 0111
Como se observa es unívocamente decodificable, pero al recibirse, por ejemplo 01; no
se puede asegurar que se trata de S2 hasta que llegue otro símbolo, si llega 0 se trata de
S2, pero si llega 1 puede tratarse de S3 o S4.
Al no poderse reconocer cuándo una palabra código llega a su fin, no puede
decodificarse la sentencia en palabras según se reciben produciéndose un retraso en la
decodificación.
Un código unívocamente decodificable es instantáneo cuando es posible decodificar las
palabras de una secuencia sin precisar del conocimiento de los símbolos que las
suceden.
B y C son instantáneos mientras que D es no instantáneo.
5. 3.3 INECUACIÓN DE KRAFT
La condición necesaria y suficiente para que un código sea instantáneo es que ninguna
palabra código coincida con el prefijo de otra.
Sea:
Xi Xi1, XI 2,......,Xim Una palabra código. El prefijo de Xi es la secuencia de
símbolos:
Xi1, Xi2,.....,Xiij j m
Observar el cumplimiento de esta condición puede ser muy difícil al codificar q
palabras de longitudes 11,12,…..,1q
La condición necesaria y suficiente para que exista un código instantáneo con palabras
de longitud 11,12,…,1q de un alfabeto fuente S S1, S 2,....,Sq utilizando un alfabeto
código X X 1, X 2,.....,Xr ; está definido por:
q
li
r 1
i 1
q: cantidad de símbolos del alfabeto fuente
r: cantidad de símbolos del alfabeto código
l i : Longitud de cada palabra código
Si las palabras código tienen la misma longitud (11=12=………=1q) entonces:
q
l
r 1
i 1
Se puede escribir como:
1
qr 1
q rl
1 logr q Longitud mínima para obtener un código instantáneo unívocamente
decodificable
6. 3.4 EFICIENCIA DE UN CÓDIGO
La construcción de algún código, debe tener en cuenta algún criterio de optimización o
eficiencia, lo que puede interpretarse como asignar palabras código cuya longitud sea
dependiente de la probabilidad de ocurrencia del mensaje.
A mensajes más probables; longitudes de códigos menores y a mensajes menos
probables; longitudes de códigos mayores.
3.5 LONGITUD PROMEDIO EN TÉRMINOS DE LA PROBABILIDAD
DE OCURRENCIA DEL MENSAJE
q
L P( S i )li
i 1
La longitud está expresada en símbolos /mensaje.
P( S i ) Probabilidad de ocurrencia del símbolo Si del alfabeto fuente.
Esta cantidad establece la cantidad de símbolos promedio que se necesita para
representar los mensajes.
La cantidad máxima de información que se puede obtener debido a la ocurrencia de una
palabra del código es:
L log2 R [ Shannon /símbolo]
La entropía de una fuente se expresa como:
q
1
H (S ) P( S i ) log
i 1 P( S i )
Expresándola en unidades de r:
q
1
H r ( s) P(S i ) log
i 1 P( S i )
3.6 PRIMER TEOREMA DE SHANNON O TEOREMA DE LA
CODIFICACIÓN SIN RUIDO
Los símbolos de un cierto alfabeto (mensaje) pueden ser codificados de tal forma que la
cantidad promedio de símbolos necesarios para representar un símbolo (mensaje) de la
7. fuente, puede ser tan semejante como se quiera a la entropía de la fuente en unidades de
r, pero nunca menos que esta magnitud.
Hr( S ) L
H (S ) L log r
La eficiencia de un código se calcula:
H (S )
L log r
3.7 CÓDIGO DE HUFFMAN
La codificación de Huffman es una técnica para la compresión de datos, ampliamente
usada y muy efectiva.
Es un método general de codificación y compresión diseñado para minimizar el número
medio de bits necesarios para transmitir un símbolo cuando se debe transmitir varias
copias independientes y estadísticamente equivalentes de dicho símbolo.
Este método determina cómo los distintos valores del símbolo deben representarse
como cadenas binarias.
3.7.1 DESARROLLO DE LA CODIFICACIÓN
Las letras del alfabeto de mensajes en la columna principal se escriben en orden
decreciente de las probabilidades.
Las dos últimas letras se unen en una letra auxiliar a la que se le atribuye la
probabilidad suma.
Las probabilidades de las letras que no han participado en la unión y la probabilidad
suma obtenida, se ordenan descendentemente en una columna adicional.
Los pasos anteriores se repiten hasta obtener la única letra auxiliar con probabilidad
igual a 1.
S P(S)
S1 0.22
S2 0.20
S3 0.16
S4 0.16
S5 0.10
S6 0.10
S7 0.04
S8 0.02
8. S P(S) 1 2 3 4 5 6 7
S1 0.22 0.22 0.22 0.26 0.32 0.42 0.58 1
S2 0.20 0.20 0.20 0.22 0.26 0.32 0.42
S3 0.16 0.16 0.16 0.20 0.22 0.26
S4 0.16 0.16 0.16 0.16 0.20
S5 0.10 0.10 0.16 0.16
S6 0.10 0.10 0.10
S7 0.04 0.06
S8 0.02
A continuación se construye el árbol de codificación.
A partir del punto correspondiente a la probabilidad 1, se tazan 2 ramas.
La de mayor probabilidad a la izquierda con la probabilidad como ponderación y con 1
como marca.
1 0
A la derecha se pondera con la probabilidad menor y marca 0.
1
0.5 8 0.42
1 0
0.
2 26
0.2
0.31
22
0 1 0
0.
0
6 6 0.10
0.1 0.1
0.
1 0
1
1 0
6
0
0.0
1
1 0
0.
6
0.0
04
1 0
2
0.
Para obtener la palabra código de cada símbolo, se parte de la raíz del árbol y se
recorren las ramas hasta llegar a la hoja del símbolo, escribiendo los 0 y 1 del recorrido.
S Palabras Código
S1 01
S2 00
S3 111
S4 110
S5 100
9. 4 CONCLUSIONES
Con el código de Huffman se ha podido identificar si un código es unívocamente
decodificable o no.
La conferencia nos permite tener la capacidad de determinar si el código es
instantáneo o no.
Mediante el código de Huffman se puede obtener el código mas optimo para la
transmisión.
5 RECOMENDACIONES
Debemos tener muy en cuenta los términos para que así no exista confusiones al
momento de razonar y manejarse dentro de este ámbito.
Es importante memorizar las formulas necesarias para resolver los problemas
enunciados.
Leer, escuchar y entender bien los problemas establecidos para no confundirse en el
desarrollo de la solución.