ALGORITMO DE COMPRESIÓN DE HUFFMAN Integrantes: Paul Arévalo Tania Landivar David Valladarez Universidad de Cuenca
ALGORITMO DE COMPRESIÓN DE HUFFMANIntegrantes:Paul Arévalo
Tania LandivarDavid Valladarez
Universidad de Cuenca
Índice:1. Introducción2. Especificación del Algoritmo3. Obtención del código prefijo4. Proceso del código Huffman5. Ejemplo6. Bibliografía
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.
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
OBTENCIÓN DEL CÓDIGO PREFIJOUn código prefijo se obtiene a partir de un árbol dirigido con raíz.
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
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
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.
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
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
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
Forma el árbol:
Reordeno la lista:
18 20 25
25 38
8
53
18
10
38
20
Llegamos a un solo árbol:
8
53
18
10
38
20
63
25,
* y
j
-
0
0
0
0
1
1
1
1
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
PARA MÁS INFORMACIÓN
• Código del método Huffman:• https://github.com/DavidValladarez/algoritmoHuffman
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.