Codificación huffman

Solo disponible en BuenasTareas
  • Páginas : 13 (3044 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de noviembre de 2011
Leer documento completo
Vista previa del texto
Codificación Huffman
De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Árbol de Huffman generado para las frecuencias de apariciones exactas del texto "Esto es un ejemplo de árbol de Huffman". las frecuencias y códigos de cada carácter se muestran abajo. Codificar esta frase usando este código requiere 156 bits, sin contar con el espacio para el árbol. |
Carácter |Frecuencia | Código |
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 computación y teoría de la información, lacodificación Huffman es un algoritmo usado para compresión de datos. El término se refiere al uso de una tabla de códigos de longitud variable para codificar un determinado símbolo (como puede ser un caracter en un archivo), 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".
La codificación Huffman usa un método específico para elegir la representación de cada símbolo, que da lugar a un código prefijo (es decir, la cadena de bits que representa a un símbolo en particular nunca es prefijo de la cadena de bits de un símbolo distinto) querepresenta los caracteres más comunes usando las cadenas de bits más cortas, y viceversa. Huffman fue capaz de diseñar el método de compresión más eficiente de este tipo: ninguna representación alternativa de un conjunto de símbolos de entrada produce una salida media más pequeña cuando las frecuencias de los símbolos coinciden con las usadas para crear el código. Posteriormente se encontró un métodopara llevar esto a cabo en un tiempo lineal si las probabilidades de los símbolos de entrada (también conocidas como "pesos") están ordenadas.
Para un grupo de símbolos con una distribución de probabilidad uniforme y un número de miembros que es potencia de dos, la codificación Huffman es equivalente a una codificación en bloque binaria, por ejemplo, la codificación ASCII. La codificación Huffmanes un método para crear códigos prefijo tan extendido que el término "codificación Huffman" es ampliamente usado como sinónimo de "código prefijo", incluso cuando dicho código no se ha producido con el algoritmo de Huffman.
Aunque la codificación de Huffman es óptima para una codificación símbolo a símbolo dada una distribución de probabilidad, su optimalidad a veces puede verse accidentalmenteexagerada. Por ejemplo, la codificación aritmética y la codificación LZW normalmente ofrecen mayor capacidad de compresión. Estos dos métodos pueden agrupar un número arbitrario de símbolos para una codificación más eficiente, y en general se adaptan a las estadísticas de entrada reales. Este último es útil cuando las probabilidades no se conocen de forma precisa o varían significativamente dentrodel flujo de datos.
Contenido * 1 Historia * 2 Definición del problema * 2.1 Descripción informal * 2.2 Descripción formal * 2.2.1 Ejemplo * 3 Técnica básica * 4 Propiedades principales * 5 Variaciones * 5.1 Código Huffman n-ario * 5.2 Código Huffman adaptable * 5.3 Algoritmo de Huffman de plantilla * 5.4 Código de Huffman de tamaño limitado* 5.5 Codificación Huffman con costes desiguales * 5.6 Árboles binarios alfabéticos óptimos (codificación Hu-Tucker) * 5.7 Código canónico de Huffman * 6 Aplicaciones * 7 Ejemplo * 8 Bibliografía * 9 Véase también * 10 Enlaces externos |
[editar] Historia
En 1951, a David Huffman y sus compañeros de clase de la asignatura “Teoría de la Información” se les permitió optar...
tracking img