SlideShare una empresa de Scribd logo
ALGORITMO DE COMPRESIÓN DE
HUFFMAN
Integrantes:
Paul Arévalo
Tania Landivar
David Valladarez
Universidad de Cuenca
Índice:
1. Introducción
2. Especificación del Algoritmo
3. Obtención del código prefijo
4. Proceso del código Huffman
5. Ejemplo
6. 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 01
y 10
* 101 Error
OBTENCIÓN DEL CÓDIGO PREFIJO
Un 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 1
0 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
( 001
y 0001
+ 0000
* 10
) 11
PROCESO DEL CÓDIGO HUFFMAN
1. 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.
EJEMPLO
Frecuencia 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
1
0
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
1
0
38
2
0
Llegamos a un solo árbol:
8
53
18
1
0
38
2
0
63
25
,
* y
j
-
0
0
0
0
1
1
1
1
Obtenemos el código prefijo:
8
53
18
1
0
38
2
0
63
25
,
* y
j
-
0
0
0
0
1
1
1
1
Carácter Código Prefijo
, 0
- 11
j 101
y 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ÍA
1. 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.

Más contenido relacionado

La actualidad más candente

Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
ROQUE Caldas Dominguez
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
rasave
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
ivanjvic
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
Daniel Gomez Jaramillo
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
José Antonio Sandoval Acosta
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
deff000001
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
UNISANGIL - Chiquinquirá
 
Ordenación Distribución
Ordenación DistribuciónOrdenación Distribución
Ordenación Distribución
Fernando Solis
 
Hashing
HashingHashing
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Isabel Gómez
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
AngelGabrielTorresGa
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
Alvaro Enrique Ruano
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
José Antonio Sandoval Acosta
 
Arreglos
ArreglosArreglos
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
Héctor Riquelme Burgos
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
Francisco Gómez
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Héctor Estigarribia
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
tephyfree
 

La actualidad más candente (20)

Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 
Ordenación Distribución
Ordenación DistribuciónOrdenación Distribución
Ordenación Distribución
 
Hashing
HashingHashing
Hashing
 
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Arreglos
ArreglosArreglos
Arreglos
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 

Similar a Algoritmo de compresión de huffman

CODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptxCODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptx
JosGmez15617
 
Grafos 9.2_2016
Grafos 9.2_2016Grafos 9.2_2016
Grafos 9.2_2016
Esteban Andres Diaz Mina
 
Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
Esteban Andres Diaz Mina
 
Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
Esteban Andres Diaz Mina
 
Algoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-ToledoAlgoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-Toledo
Belen Toledo
 
Presentacion Foro eulises brazon Josue Baez
Presentacion Foro eulises brazon  Josue Baez Presentacion Foro eulises brazon  Josue Baez
Presentacion Foro eulises brazon Josue Baez
luis752116
 
Huffman y-lzw
Huffman y-lzwHuffman y-lzw
Huffman y-lzw
Esteban Vizhñay
 
Codificación de huffman
Codificación de huffmanCodificación de huffman
Codificación de huffman
Mateo Quizhpi
 
Mac2wepkey (2011)
Mac2wepkey (2011)Mac2wepkey (2011)
Mac2wepkey (2011)
Websec México, S.C.
 
Algoritmos de compresión
Algoritmos de compresiónAlgoritmos de compresión
Algoritmos de compresión
Edwin Narváez
 
Capa de enlace.
Capa de enlace.Capa de enlace.
Capa de enlace.
blankaramirez
 
TPerterterteertertrerterter terterterterterterN°7 - AB.pptx
TPerterterteertertrerterter terterterterterterN°7 - AB.pptxTPerterterteertertrerterter terterterterterterN°7 - AB.pptx
TPerterterteertertrerterter terterterterterterN°7 - AB.pptx
omega3031
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuente
nica2009
 

Similar a Algoritmo de compresión de huffman (13)

CODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptxCODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptx
 
Grafos 9.2_2016
Grafos 9.2_2016Grafos 9.2_2016
Grafos 9.2_2016
 
Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
 
Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
 
Algoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-ToledoAlgoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-Toledo
 
Presentacion Foro eulises brazon Josue Baez
Presentacion Foro eulises brazon  Josue Baez Presentacion Foro eulises brazon  Josue Baez
Presentacion Foro eulises brazon Josue Baez
 
Huffman y-lzw
Huffman y-lzwHuffman y-lzw
Huffman y-lzw
 
Codificación de huffman
Codificación de huffmanCodificación de huffman
Codificación de huffman
 
Mac2wepkey (2011)
Mac2wepkey (2011)Mac2wepkey (2011)
Mac2wepkey (2011)
 
Algoritmos de compresión
Algoritmos de compresiónAlgoritmos de compresión
Algoritmos de compresión
 
Capa de enlace.
Capa de enlace.Capa de enlace.
Capa de enlace.
 
TPerterterteertertrerterter terterterterterterN°7 - AB.pptx
TPerterterteertertrerterter terterterterterterN°7 - AB.pptxTPerterterteertertrerterter terterterterterterN°7 - AB.pptx
TPerterterteertertrerterter terterterterterterN°7 - AB.pptx
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuente
 

Último

PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
AlanL15
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 

Último (6)

PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 

Algoritmo de compresión de huffman

  • 1. ALGORITMO DE COMPRESIÓN DE HUFFMAN Integrantes: Paul Arévalo Tania Landivar David Valladarez Universidad de Cuenca
  • 2. Índice: 1. Introducción 2. Especificación del Algoritmo 3. Obtención del código prefijo 4. Proceso del código Huffman 5. Ejemplo 6. Bibliografía
  • 3. 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.
  • 4. 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 01 y 10 * 101 Error
  • 5. OBTENCIÓN DEL CÓDIGO PREFIJO Un código prefijo se obtiene a partir de un árbol dirigido con raíz.
  • 6. 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
  • 7. 0 1 0 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 ( 001 y 0001 + 0000 * 10 ) 11
  • 8. PROCESO DEL CÓDIGO HUFFMAN 1. 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.
  • 9. EJEMPLO Frecuencia 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
  • 10. 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
  • 11. Forma el árbol: 8 53 18 1 0 Reordeno la lista: 8 10 20 25 18 20 25 Localizó los valores más pequeños: 18 20 25
  • 12. Forma el árbol: Reordeno la lista: 18 20 25 25 38 8 53 18 1 0 38 2 0
  • 13. Llegamos a un solo árbol: 8 53 18 1 0 38 2 0 63 25 , * y j - 0 0 0 0 1 1 1 1
  • 14. Obtenemos el código prefijo: 8 53 18 1 0 38 2 0 63 25 , * y j - 0 0 0 0 1 1 1 1 Carácter Código Prefijo , 0 - 11 j 101 y 1001 * 1000 Caracteres y j , * - Frecuencia 5 10 25 3 20
  • 15. PARA MÁS INFORMACIÓN • Código del método Huffman: • https://github.com/DavidValladarez/algoritmoHuffman
  • 16. BIBLIOGRAFÍA 1. 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.