La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

CODIFICACION DE HUFFMAN

Presentaciones similares


Presentación del tema: "CODIFICACION DE HUFFMAN"— Transcripción de la presentación:

1 CODIFICACION DE HUFFMAN
MATEMATICAS DISCRETAS II FERNANDO NARANJO COMPRESION - ENCRIPTACION

2 CODIGOS DE HUFFMAN Técnica para la compresión o encriptación de datos
Este algoritmo se basa en asignar códigos de distinta longitud de bits a cada uno de los caracteres de un fichero. Si se asignan códigos más cortos a los caracteres que aparecen más a menudo se consigue una compresión del fichero. Esta compresión es mayor cuando la variedad de caracteres diferentes que aparecen es menor. Por ejemplo: si el texto se compone únicamente de números o mayúsculas, se conseguirá una compresión mayor.

3 CODIGOS DE HUFFMAN Técnica básica
Creación de un árbol binario en el que se etiquetan los nodos hoja con los caracteres, junto a sus frecuencias, y de forma consecutiva se van uniendo cada pareja de nodos que menos frecuencia sumen, pasando a crear un nuevo nodo intermedio etiquetado con dicha suma. Se procede a realizar esta acción hasta que no quedan nodos hoja por unir a ningún nodo superior , y se ha formado el árbol binario. Posteriormente se etiquetan las aristas que unen cada uno de los nodos con ceros y unos (hijo derecho e izquierdo, respectivamente, por ejemplo. El código resultante para cada carácter es la lectura, siguiendo la rama, desde la raíz hacia cada carácter (o viceversa) de cada una de las etiquetas de las aristas.

4 CODIGOS DE HUFFMAN El proceso de construcción del árbol comienza formando un nodo intermedio que agrupa a los dos nodos hoja que tienen menor peso (frecuencia de aparición). El nuevo nodo intermedio tendrá como nodos hijos a éstos dos nodos hoja y su campo peso será igual a la suma de los pesos de los nodos hijos. Los dos nodos hijos se eliminan de la lista de nodos, sustituyéndolos por el nuevo nodo intermedio. El proceso se repite hasta que sólo quede un nodo en la lista. Éste último nodo se convierte en el nodo raíz del árbol de Huffman.

5 CODIGOS DE HUFFMAN Para recuperar el fichero original es necesario conocer el código asignado a cada carácter, así como su longitud en bits Si ésta información se omite, y el receptor del fichero la conoce, podrá recuperar la información original. De este modo es posible utilizar el algoritmo para encriptar ficheros.

6 CODIGOS DE HUFFMAN Ejemplo : Fichero con caracteres. Se sabe que aparecen 6 caracteres diferentes y la frecuencia de aparición de cada uno de ellos es : ¿ Cómo codificar los caracteres para comprimir el espacio ocupado utilizando un código binario ?  Carácter (c) a b c d e f Frecuencia ( en miles ) 45 13 12 16 9 5

7 CODIGOS DE HUFFMAN Solución 1 : Código de longitud fija
Para 6 caracteres se necesitan 3 bits ( bits) Fija 000 001 010 011 100 101 Solución 2 : Código de longitud variable en el que los más frecuentes tienen el código más corto. Restricción : ningún código es prefijo de otro. ( bits ) Variable 101 100 111 1101 1100

8 CODIGOS DE HUFFMAN Descodificación :
Fácil porque ningún código es prefijo de otro código  NO hay ambigüedad. Ejemplo :  badadcf ¡ Es la única posibilidad !

9 CODIGOS DE HUFFMAN Un árbol binario es una forma de representar el código prefijo que simplifica el proceso de decodificación : Las hojas son los caracteres, El camino de la raíz a la hojas con la interpretación 0 a la izquierda y 1 a la derecha nos da el código de cada hoja.

10 CODIGOS DE HUFFMAN Este sería el árbol binario de la codificación de longitud fija:

11 CODIGOS DE HUFFMAN Codificación de longitud variable:

12 CODIGOS DE HUFFMAN Ejemplos videos


Descargar ppt "CODIFICACION DE HUFFMAN"

Presentaciones similares


Anuncios Google