Tecnología

Inicio

¿Qué es la codificación Huffman?

Codificación Huffman - también conocida como la codificación Huffman, o la compresión Huffman - es un algoritmo, o un conjunto de reglas, para la compresión de datos sin pérdidas desarrollado por David Albert Hoffman en 1952. compresión de datos sin pérdidas implica la codificación de datos para ahorrar espacio de almacenamiento o tiempo de transmisión de tal manera que toda la información en los datos puede recuperarse perfectamente por descompresión.

Codificación estadística

Codificación de Huffman es un método de codificación estadística. La frecuencia con la que cada símbolo se produce en el archivo comprimido que se determina cómo se representa ese símbolo. En cualquier archivo, algunos símbolos o caracteres, se producen con más frecuencia que otros. En la codificación de Huffman, cuanto más frecuentemente se produce un símbolo, el menor número de dígitos binarios, o "bits", se utilizan para representar el símbolo.

ASCII frente a la codificación de Huffman

En Código Estándar Americano para Intercambio de Información (ASCII) de codificación, que es utilizado por algunos lenguajes de programación, cada carácter se codifica con un código de longitud fija utilizando 7 u 8 bits por carácter. Los caracteres comunes, como los caracteres alfanuméricos y puntuacion, usan 7 bits por carácter. La codificación de Huffman, por otra parte, asigna códigos más cortos para caracteres utilizados frecuentemente y los códigos más largos para caracteres utilizados con menos frecuencia para reducir el tamaño del archivo que se está comprimido.

Binaria Huffman Árbol

Codificación Huffman esencialmente implica la construcción de un solo árbol binario de un grupo, o un bosque, los árboles. Inicialmente, todos los árboles tienen un solo nodo, con un carácter y el peso del carácter, basado en el número de veces que el carácter se produce en un archivo. Cuanto más frecuentemente se produce un carácter, más alta es su peso. Los árboles, o nodos, están ordenados por peso y los dos árboles más bajo ponderados-se combinan en un árbol, disminuyendo el número total de árboles por uno. Este proceso se repite hasta que sólo queda binarios árbol de Huffman, con un único elemento en su raíz. Huffman codificación utiliza los dos nodos más pequeños en cada paso para producir un árbol de codificación global óptimo. Por esta razón, es conocido como un algoritmo de "codicioso".

Código de Huffman

Para generar un código de Huffman, encontrar el valor que desee en el árbol de Huffman binario y recorrer el árbol hacia atrás. Este proceso se basa la cadena de Huffman binario. Cada vez que se toma una rama de la izquierda, un bit "0" y cada vez que se toma una rama de la derecha, la salida de un bit "1" hasta llegar a la parte superior del árbol, por lo que parece salida de la primera bit de la cadena en la cima.