Sei sulla pagina 1di 2

Codificacin Huffman

Saltar a: navegacin, bsqueda


rbol de Huffman generado para las frecuencias de apariciones exactas del texto "Esto es un
ejemplo de rbol de Huffman". las frecuencias y cdigos de cada carcter se muestran abajo.
Codificar esta frase usando este cdigo requiere 156 bits, sin contar con el espacio para el rbol.
Carcter Frecuencia Cdigo
Espacio 8 00
E 6 100
N 3 1100
O 3 1110
U 2 0100
A 2 0101
D 2 1010
F 2 1011
L 2 0110
M 2 0111
S 2 11010
B 1 110110
H 1 110111
J 1 111100
P 1 111101
R 1 111110
T 1 111111

En ciencias de la computacin y teora de la informacin, la codificacin Huffman es un algoritmo
usado para compresin de datos. El trmino se refiere al uso de una tabla de cdigos de longitud
variable para codificar un determinado smbolo (como puede ser un carcter en un archivo),
donde la tabla ha sido rellenada de una manera especfica basndose en la probabilidad estimada
de aparicin de cada posible valor de dicho smbolo. 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".

La codificacin Huffman usa un mtodo especfico para elegir la representacin de cada smbolo,
que da lugar a un cdigo prefijo (es decir, la cadena de bits que representa a un smbolo en
particular nunca es prefijo de la cadena de bits de un smbolo distinto) que representa los
caracteres ms comunes usando las cadenas de bits ms cortas, y viceversa. Huffman fue capaz de
disear el mtodo de compresin ms eficiente de este tipo: ninguna representacin alternativa
de un conjunto de smbolos de entrada produce una salida media ms pequea cuando las
frecuencias de los smbolos coinciden con las usadas para crear el cdigo. Posteriormente se
encontr un mtodo para llevar esto a cabo en un tiempo lineal si las probabilidades de los
smbolos de entrada (tambin conocidas como "pesos") estn ordenadas.

Para un grupo de smbolos con una distribucin de probabilidad uniforme y un nmero de
miembros que es potencia de dos, la codificacin Huffman es equivalente a una codificacin en
bloque binaria, por ejemplo, la codificacin ASCII. La codificacin Huffman es un mtodo para
crear cdigos prefijo tan extendido que el trmino "codificacin Huffman" es ampliamente usado
como sinnimo de "cdigo prefijo", incluso cuando dicho cdigo no se ha producido con el
algoritmo de Huffman.

Aunque la codificacin de Huffman es ptima para una codificacin smbolo a smbolo dada una
distribucin de probabilidad, su optimalidad a veces puede verse accidentalmente exagerada. Por
ejemplo, la codificacin aritmtica y la codificacin LZW normalmente ofrecen mayor capacidad
de compresin. Estos dos mtodos pueden agrupar un nmero arbitrario de smbolos para una
codificacin ms eficiente, y en general se adaptan a las estadsticas de entrada reales. Este ltimo
es til cuando las probabilidades no se conocen de forma precisa o varan significativamente
dentro del flujo de datos.

Potrebbero piacerti anche