Codificación HuffmanCódigos predictivosM. En C. Jaime Humberto PechCarmonaTecnológico de Estudios Superiores de Ecatepec
Codificación HuffmanPrincipios:no todos los símbolos de una trama transmitida ocurren con la misma frecuencia.No se usa un número fijo de bits por carácter.los caracteres más comunes se codifican con un número menor de bits que el de los caracteres menos frecuentes.codificación estadística.Codificación por entropia.Transmisión síncrona orientada a bits.
procedimientoSe analiza la cadena de caracteres.determinado los tiposlas frecuencias relativas de los caracteres.Se crea un árbol no balanceadoEl grado de desequilibrio es función de la frecuencia de ocurrencia relativa de los caracteres.Los caracteres que integrarán el árbol se colocan de acuerdo a su frecuencia dentro de la trama.Al árbol resultante se le llama árbol de código Huffman.Decodificaciónpopiedad de prefijo.búsqueda recursiva bit a bit hasta encontrar cada palabra de código válida.
Árbol huffmanÁrbol binario en el que se asigna a las ramas los valores 0 o 1. La base del árbol (cima geométrica), se llama nodo raíz.El punto donde una rama se divide es un nodo rama.El punto terminal de una rama es un nodo hoja.Los símbolos a codificar son asignados a los nodos hoja del árbol.valor de 0 o 1 binario a cada una de las nuevas ramas (0-IZQ, 1-DER).Las palabras de código se determinan siguiendo el camino desde el nodo raíz hasta cada hoja. Comprobación lista de pesos resultantede abajo hacia arriba y de izquierda a derecha.
Ejemplo: Compresión de la cadena AAAABBCD por codificación Huffman.
Codificación HuffmanAdaptivoDesventajas HuffmanEl receptor debe conocer el árbol Huffman.No funciona correctamente para datos binarios.Es amplia la distribución de frecuencias de los caracteres transmitidos.Se manejan cadenas de caracteres largas.Solución: Huffman adaptivo.Transmisor y al receptor construyen el árbol Huffman en forma dinámica conforme los caracteres se transmiten.
procedimientoSi el carácter a transmitir ya está en el árbol, se envía su código comprimido y el árbol se actualiza en pesos.Si el carácter no está presente se transmite en forma no comprimida y el nuevo elemento crea una nueva rama en la posición de la hoja vacía.A la rama 0 se asigna el nodo hoja vacía y el carácter a la rama 1.Cada vez que se actualiza el árbol:revisan pesos. – lista de pesos.Balancear árbolSi algún nodo está fuera de orden la estructura del árbol se modifica intercambiando las posiciones de los nodos.
Ejemplo: Cadena de caracteres This is simple
Huffman
Huffman
Huffman
Huffman

Huffman

  • 1.
    Codificación HuffmanCódigos predictivosM.En C. Jaime Humberto PechCarmonaTecnológico de Estudios Superiores de Ecatepec
  • 2.
    Codificación HuffmanPrincipios:no todoslos símbolos de una trama transmitida ocurren con la misma frecuencia.No se usa un número fijo de bits por carácter.los caracteres más comunes se codifican con un número menor de bits que el de los caracteres menos frecuentes.codificación estadística.Codificación por entropia.Transmisión síncrona orientada a bits.
  • 3.
    procedimientoSe analiza lacadena de caracteres.determinado los tiposlas frecuencias relativas de los caracteres.Se crea un árbol no balanceadoEl grado de desequilibrio es función de la frecuencia de ocurrencia relativa de los caracteres.Los caracteres que integrarán el árbol se colocan de acuerdo a su frecuencia dentro de la trama.Al árbol resultante se le llama árbol de código Huffman.Decodificaciónpopiedad de prefijo.búsqueda recursiva bit a bit hasta encontrar cada palabra de código válida.
  • 4.
    Árbol huffmanÁrbol binarioen el que se asigna a las ramas los valores 0 o 1. La base del árbol (cima geométrica), se llama nodo raíz.El punto donde una rama se divide es un nodo rama.El punto terminal de una rama es un nodo hoja.Los símbolos a codificar son asignados a los nodos hoja del árbol.valor de 0 o 1 binario a cada una de las nuevas ramas (0-IZQ, 1-DER).Las palabras de código se determinan siguiendo el camino desde el nodo raíz hasta cada hoja. Comprobación lista de pesos resultantede abajo hacia arriba y de izquierda a derecha.
  • 5.
    Ejemplo: Compresión dela cadena AAAABBCD por codificación Huffman.
  • 6.
    Codificación HuffmanAdaptivoDesventajas HuffmanElreceptor debe conocer el árbol Huffman.No funciona correctamente para datos binarios.Es amplia la distribución de frecuencias de los caracteres transmitidos.Se manejan cadenas de caracteres largas.Solución: Huffman adaptivo.Transmisor y al receptor construyen el árbol Huffman en forma dinámica conforme los caracteres se transmiten.
  • 7.
    procedimientoSi el caráctera transmitir ya está en el árbol, se envía su código comprimido y el árbol se actualiza en pesos.Si el carácter no está presente se transmite en forma no comprimida y el nuevo elemento crea una nueva rama en la posición de la hoja vacía.A la rama 0 se asigna el nodo hoja vacía y el carácter a la rama 1.Cada vez que se actualiza el árbol:revisan pesos. – lista de pesos.Balancear árbolSi algún nodo está fuera de orden la estructura del árbol se modifica intercambiando las posiciones de los nodos.
  • 8.
    Ejemplo: Cadena decaracteres This is simple