algoritmo de compresión de huffman

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

Upload: david-valladarez

Post on 15-Apr-2017

150 views

Category:

Software


3 download

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.