Top Banner
ALGORITMO DE COMPRESIÓN DE HUFFMAN Integrantes: Paul Arévalo Tania Landivar David Valladarez Universidad de Cuenca
16

Algoritmo de compresión de huffman

Apr 15, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algoritmo de compresión de huffman

ALGORITMO DE COMPRESIÓN DE HUFFMANIntegrantes:Paul Arévalo

Tania LandivarDavid Valladarez

Universidad de Cuenca

Page 2: Algoritmo de compresión de huffman

Índice:1. Introducción2. Especificación del Algoritmo3. Obtención del código prefijo4. Proceso del código Huffman5. Ejemplo6. Bibliografía

Page 3: Algoritmo de compresión de huffman

INTRODUCCIÓN

Los caracteres o símbolos se pueden representar en codificación en binario, lo que nos permite realizar una comprensión de datos que facilita la transmisión de los mismos y ahorra espacio de memoria. Es fundamental en la comprensión de ficheros de video y audio.

Busca asociar las cadenas de código binario de los caracteres mas frecuentes a cadenas de código binario de menor longitud, permitiendo ahorrar memoria.

Page 4: Algoritmo de compresión de huffman

ESPECIFICACIÓN DEL ALGORITMO

El algoritmo de Huffman, utiliza un código prefijo que es un conjunto de cadenas binarias asociadas a un conjunto de símbolos.

Algo importante de recalcar es que una cadena binaria no debe ser parte del comienzo de otra cadena binaria.

x 1100

x 01y 10* 101 Error

Page 5: Algoritmo de compresión de huffman

OBTENCIÓN DEL CÓDIGO PREFIJOUn código prefijo se obtiene a partir de un árbol dirigido con raíz.

Page 6: Algoritmo de compresión de huffman

PASOS:1. Se construye un árbol binario dirigido con raíz.

2. Se etiqueta el arco de salida izquierdo de cada vértice con 0, y el arco de salida derecho con 1.

3. Los vértices finales o que tienen grado de salida 0, se les etiqueta con los caracteres o símbolos.

0 10

Page 7: Algoritmo de compresión de huffman

0 10 01 1

x * )

Grado de salida 0

0

0

1

1 (

y+

4. Recorro el árbol desde la raíz para obtener el código prefijo de cada carácter o símbolo. x 01

( 001y 0001 + 0000* 10) 11

Page 8: Algoritmo de compresión de huffman

PROCESO DEL CÓDIGO HUFFMAN1. Se obtiene las frecuencias de cada carácter o símbolo.2. Se ordenan las frecuencias de menor a mayor en una lista.3. Se localizan los dos valores más pequeños de la lista y estos forman un árbol donde la

etiqueta de la raíz será la suma de las frecuencias.4. Se inserta en orden ascendente en la lista la suma de estos valores y se elimina los

mismos. (Repetir el paso 3 y 4 hasta solo quede un árbol).5. Una vez obtenido el árbol, se procede a obtener los códigos prefijos.

Page 9: Algoritmo de compresión de huffman

EJEMPLOFrecuencia de los caracteres:

Caracteres

y j , * -

Frecuencia 5 10 25 3 20

Ordenar las Frecuencias:

3 5 10 20 25

Localizan los valores más pequeños de la lista:

3 5 10 20 25

Page 10: Algoritmo de compresión de huffman

Forma el árbol:

8

53

Reordeno la lista:

3 5 10 20 25

8 10 20 25

Localizó los valores más pequeños:

8 10 20 25

Page 11: Algoritmo de compresión de huffman

Forma el árbol:

8

53

18

10

Reordeno la lista:

8 10 20 25

18 20 25

Localizó los valores más pequeños:

18 20 25

Page 12: Algoritmo de compresión de huffman

Forma el árbol:

Reordeno la lista:

18 20 25

25 38

8

53

18

10

38

20

Page 13: Algoritmo de compresión de huffman

Llegamos a un solo árbol:

8

53

18

10

38

20

63

25,

* y

j

-

0

0

0

0

1

1

1

1

Page 14: Algoritmo de compresión de huffman

Obtenemos el código prefijo:

8

53

18

10

38

20

63

25,

* y

j

-

0

0

0

0

1

1

1

1

Carácter Código Prefijo, 0- 11j 101y 1001* 1000

Caracteres

y j , * -

Frecuencia 5 10 25 3 20

Page 15: Algoritmo de compresión de huffman

PARA MÁS INFORMACIÓN

• Código del método Huffman:• https://github.com/DavidValladarez/algoritmoHuffman

Page 16: Algoritmo de compresión de huffman

BIBLIOGRAFÍA1. Jordan Lluch, C. (Dirección). (2013). Teoría de Grafos en la vida real. Árboles. Codificación de

Huffman [Video]. Link: https://www.youtube.com/watch?v=W6WZT12ruGQ&feature=youtu.be

2. Salomon, D. (2014). Compresión de datos.