Descripción
Por Códificación Huffman se entiende a un conjunto de algoritmos utilizados para la compresión de datos sin pérdida.
Se basa en representar o codificar cada
símbolo que conforma la entrada de datos por medio de códigos prefijos
únicos (es decir, el código de un símbolo nunca puede se
prefijo de otro código) de longitud variable .
Dichos códigos se obtienen a partir de un
árbol que se construye desde las hojas hasta la raíz. Se generan a partir
de una tabla que contiene los símbolos de entrada iniciales y por lo general,
ordenados ascendentemente, ya sea
por su frecuencia de aparición, en caso
de que se utilice el enfoque semi-estático o por probabilidad de aparición, si
se emplea una estrategia estática.
La ganancia en espacio, o
tasa de compresión se
obtiene porque a los símbolos más comunes se les asigna un código
corto, mientras que a los símbolos con
una frecuencia de aparición (o probabilidad) menor se le asignan códigos
más largos.
Cabe mencionar que la codificación Huffman es óptima entre los métodos estadísticos, ya que sus representaciones presentan la menor longitud media.
Enfoques para
calcula las probabilidades o frecuencias de los símbolos
-Enfoque Estático:
Se calculan probabilidades para los símbolos una
vez para todos los textos que se procesarán.
Si la distribución
calculada difiere en gran medida de la distribución real de un texto, el
algoritmo ofrecerá resultados pobres, mientras que si las probabilidades se
ajustan a la distribución real, los resultados serán muy buenos.
La principal ventaja de este enfoque es que se ahorra el tiempo de pre-procesar el
archivo, necesario en otros enfoques.
-Enfoque Semi-Estático:
En este enfoque
no se asume ninguna distribución.
En una primera fase se
pre-procesa el texto de entrada con el fin de obtener la frecuencia de aparición
de los símbolos para esa entrada particular y de esa forma "aprender" la
distribución de la misma. Luego, en una segunda "pasada" se realiza la
compresión.
Tiene como ventaja que la distribución utilizada coincide exactamente con la de la entrada. Tiene
como desventaja primordial
el tiempo requerido para el pre-procesamiento.
-Enfoque Adaptativo:
Se
inicia sin información previa para las distribuciones.
Conforme se procesan
diferentes textos se crea y modifica un perfíl estadístico para las
distribuciones de los símbolos.
Se realiza una única pasada sobre el texto de entrada.
Cuantos más textos se procesen, más se acerca la distribución estadística a distribuciones reales.