Está en la página 1de 14

El término se refiere al uso de una

tabla de códigos de longitud variable


para codificar un determinado símbolo

donde la tabla ha sido rellenada de una


manera específica basándose en la
probabilidad estimada de aparición de
cada posible valor de dicho símbolo

Fue desarrollado por David A. Huffman mientras era


estudiante de doctorado en el MIT, y publicado en "A
Method for the Construction of Minimum-Redundancy
Codes".

Huffman fue capaz de diseñar el


La codificación Huffman usa un método de compresión más
método específico para elegir la eficiente de este tipo: ninguna
representación de cada símbolo, representación alternativa de un
que da lugar a un código prefijo conjunto de símbolos de entrada
que representa los caracteres produce una salida media más
más comunes usando las cadenas pequeña cuando las frecuencias de
de bits más cortas, y viceversa. los símbolos coinciden con las
usadas para crear el código.
Codificación
Huffman
DEFINICIONES

Descripción informal

Dados
Un conjunto de símbolos y sus pesos (normalmente proporcionales a probabilidades).

Encontrar
Un código binario prefijo (un conjunto de elementos del código) con longitud de palabra
esperada mínima (de forma equivalente, un árbol con longitud del camino mínima).

Descripción formalizada

Entradas:
El alfabeto , que es el alfabeto de símbolos de tamaño n.

Salida:
El código , que es el conjunto de elementos del código
(binario), donde ci es la palabra del código para

Objetivo:
Sea la longitud del camino ponderado del código C.
Condición: para cualquier código
Técnica básica Consiste en la creación de un
árbol binario en el que se
etiquetan los nodos hoja con
los caracteres, junto a sus
frecuencias, y de forma
consecutiva se van uniendo
cada pareja de nodos que
menos frecuencia sumen,
pasando a crear un nuevo
nodo intermedio etiquetado
con dicha suma. se procede a
realizar esta acción hasta que
no quedan nodos hoja por unir
a n i n g ú n n o d o s u p e r i o r, y s e
ha formado el árbol binario.
posteriormente se etiquetan
las aristas que unen cada uno
de los nodos con ceros y unos.
FUNCIONAMIENTO:
• Los símbolos de la fuente se listan en orden de probabilidades
decrecientes. A los dos símbolos de probabilidad más baja
(penúltimo y ultimo) se le asignan un 0 y un 1, respectivamente.
• Estos dos símbolos se consideran como si se combinaran en un
nuevo símbolo de fuente con probabilidad igual a la suma de las dos
probabilidades originales. La probabilidad obtenida se pone en la
lista de acuerdo con suvalor.
• El procedimiento se repite hasta que nos quedamos con la lista final
de las únicos símbolos, a los cuales se les asignarán un 0 y un 1.
• El código para cada símbolo se determina procediendo hacia
atrás y siguiendo la frecuencia de ceros y unos asignados a cada
símbolo.
Propiedades principales

Es óptima cuando la probabilidad de cada símbolo de entrada


es una potencia negativa de dos.
Los códigos prefijos tienden a ser ligeramente ineficientes en
alfabetos pequeños,
Concatenando múltiples símbolos en "palabras" de tamaño
fijo o variable antes de la codificación Huffman, normalmente
ayuda, especialmente cuando símbolos adyacentes están
correlacionados.
Variaciones
Código huffman n-ario
El algoritmo n-ario de huffman usa el
alfabeto {0,1,….,N-1} para codificar el
mensaje y construir un árbol n-ario. Este
enfoque fue considerado por huffman en su
enfoque originario.

Código huffman adaptable


La variación llamada código de huffman
adaptable calcula dinámicamente la
probabilidad de la frecuencia de la cadena de
origen basada en antiguas apariciones.
Algoritmo de Huffman de plantilla
El algoritmo de plantilla de Huffman permite utilizar cualquier tipo de
tamaño de código (costos, frecuencias, los pares del tamaño, tamaños
no numéricos) y uno de los muchos que combina métodos (no solo la
adición).

Código de Huffman de tamaño limitado


El Código de Huffman de tamaño de limitado es una variante donde el
objetivo es lograr que el camino de coste mínimo con la restricción de
que la longitud de cada palabra sea menor que una constante.
Codificación huffman con costes desiguales
En la codificación huffman con costes, los
símbolos del alfabeto pueden tener longitudes
no uniformes, debido a características del
medio de transmisión. Un ejemplo es el alfabeto
del código morse, donde una 'raya' requiere más
tiempo para ser enviada que un 'punto', y por lo
tanto el costo del tiempo de transmisión de una
r a y a e s m a y o r.

Árboles binarios alfabéticos óptimos


(codificación hu-tucker)
En una situación de codificación huffman
e s t á n d a r, s e a s u m e q u e c u a l q u i e r c ó d i g o p u e d e
corresponderse con cualquier símbolo de
entrada. En la versión alfabética, el orden
alfabético de las entradas y salidas debe ser
idéntico.
APLICACIONES
Codificación Aritmética
Es un método que, al igual que la codificación Huffman, se
basa en reducir el número medio de bits requeridos para
representar un símbolo pero que, a diferencia de ésta,
permite representar símbolos con un número de bits
fraccionario. Con esta técnica de codificación no es
necesario que las probabilidades de los símbolos del
alfabeto fuente sean potencias de dos para obtener una
eficiencia óptima.
APLICACIONES(3)

JPEG
Este es un método de compresión con pérdidas,
pero en parte de su implementación se utiliza
Código Huffman. Es a menudo considerado
como un formato de archivo. JPEG es el formato
de imagen más común utilizado por las cámaras
fotográficas digitales y la transmisión de
imágenes fotográficas en la World Wide Web.
APLICACIONES(4)
MP3
MPEG-1 o 2 Audio Layer III más comúnmente
conocido como MP3, es un formato de compresión
de audio digital patentado que usa un algoritmo con
pérdida para conseguir un menor tamaño de
archivo. Usa como algoritmo de cuantificación
digital código Huffman. Es un formato de audio
común usado para música tanto en ordenadores
como en reproductores de audio portátil.
EJEMPLO ÁRBOL DE
HUFFMAN
• Se consideran cinco símbolos del alfabeto de una fuente discreta sin
memoria, cuyas probabilidades se enlistan a continuación, obtener
la codificación de cada símbolo, la longitud promedio y la entropía.

También podría gustarte