La codificación Huffman modificada se utiliza en máquinas de fax para codificar imágenes en blanco y negro ( mapas de bits ). Combina los códigos de longitud variable de la codificación Huffman con la codificación de datos repetitivos en la codificación de longitud de serie .
La codificación básica de Huffman proporciona una forma de comprimir archivos que tienen muchos datos repetidos, como un archivo que contiene texto, donde las letras del alfabeto son los objetos repetidos. Sin embargo, una sola línea de escaneo contiene solo dos tipos de elementos (píxeles blancos y píxeles negros) que se pueden representar directamente como un 0 y un 1. Este "alfabeto" de solo dos símbolos es demasiado pequeño para aplicar directamente la codificación de Huffman . Pero si primero usamos la codificación de longitud de ejecución, podemos tener más objetos para codificar. Aquí hay un ejemplo tomado del artículo sobre codificación de longitud de ejecución :
Una línea de escaneo hipotética, donde B representa un píxel negro y W representa el blanco, podría leerse de la siguiente manera:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW
Con un algoritmo de compresión de datos de codificación de longitud de ejecución (RLE) aplicado a la línea de escaneo hipotética anterior, se puede representar de la siguiente manera:
12W1B12W3B24W1B14W
Aquí vemos que, además de los dos elementos "blanco" y "negro", tenemos varios números diferentes. Estos números proporcionan una gran cantidad de elementos adicionales para utilizar, por lo que la codificación de Huffman se puede aplicar directamente a la secuencia anterior para reducir el tamaño aún más.