SlideShare una empresa de Scribd logo
UNIVERSIDAD DE CUENCA
desde 1867
Miguel Macías
Edisson Sigua
Christian Salinas
Algoritmo de compresión de Huffman
Programación 3 Estructura de Archivos
Generalidades
• Se utiliza para la comprensión o encriptación de datos.
• Se basa en asignar códigos de distinta longitud de bits a cada uno de los
caracteres de un archivo.
• Si se asignan códigos mas cortos a los caracteres que aparecen mas a menudo se
consigue una comprensión del archivo.
• La compresión es mayor cuando la variedad de caracteres diferentes que
aparecen es menor.
• Para recuperar el archivo original es necesario el código asignado a cada carácter,
así como su longitud en bits
Mecanismo del Algoritmo
• Contar cuantas veces aparece cada carácter en el fichero a comprimir
y crear una lista enlazada con la información de caracteres y
frecuencias
• Ordenar la lista de menor a mayor en función de la frecuencia
• Convertir cada elemento de la lista en un árbol
Mecanismo del Algoritmo
• Fusionar todos estos arboles en uno único, de la siguiente manera:
• Con los dos primero arboles formar un nuevo árbol, cada uno de los arboles originales en
una rama.
• Sumar las frecuencias de cada rama en le nuevo árbol.
• Insertar el nuevo árbol en el lugar adecuado de la lista según la suma de frecuencias
obtenidas
• Para asignar el nuevo código binario de cada carácter solo hay que seguir el camino
adecuado a través del árbol. Si se toma una rama cero, se añade un cero al código,
de la misma manera con cualquier rama uno.
• Se recodifica el fichero según los nuevos códigos
Ejemplo
Se toma una texto corto, como por ejemplo:
‘‘ata la jaca en la estaca’’
Ahora se cuenta las veces que se repite cada carácter en el texto:
Ahora se ordena por frecuencia de menor a mayor:
‘ ’ a c e j l s t
5 9 2 1 1 2 1 2
e j s c l t ‘ ’ a
1 1 1 2 2 2 5 9
Ejemplo
Ahora se considera a cada elemento como un nodo raíz un árbol.
e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9)
Ejemplo
Ahora se considera a cada elemento como un nodo raíz un árbol.
Ahora se unen los dos primero nodos (arboles), en un nuevo árbol, se suman sus
frecuencias y se las coloca en el lugar correspondiente según el orden.
e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9)
e j(1) (1)
Ejemplo
Ahora se considera a cada elemento como un nodo raíz un árbol.
Ahora de unen los dos primero nodos (arboles), en un nuevo árbol, se suman sus
frecuencias y se las coloca en el lugar correspondiente según el orden.
e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9)
s c l t ‘ ’ a(1) (2) (2) (2) (2) (5) (9)
e j(1) (1)
Ejemplo
Y se sigue el mismo proceso sucesivamente:
Los nuevos nodos (arboles) a unir serian s(1) y (2)
s c l t ‘ ’ a(1) (2) (2) (2) (2) (5) (9)
e j(1) (1)
Ejemplo
Nuevos nodos a unirse
s (1) (2)
Ejemplo
Recordamos que (2) se divide en e(1) y j (1)
e j(1) (1)
s (1) (2)
Ejemplo
(3)
e j(1) (1)
s (1) (2)
Recordamos que (2) se divide en e(1) y j (1)
Ahora se suman las frecuencias de s(1) (2)
Ejemplo
c l t ‘ ’ a(2) (2) (2) (3) (5) (9)
e j(1) (1)
s (1) (2)
Recordamos que (2) se divide en e(1) y j (1)
Ahora se suman las frecuencias de s(1) (2)
Y agregamos según el orden que corresponda
Ejemplo
c l t ‘ ’ a(2) (2) (2) (3) (5) (9)
e j(1) (1)
s (1) (2)
Recordamos que (2) se divide en e(1) y j (1)
Ahora se suman las frecuencias de s(1) (2)
Y agregamos según el orden que corresponda
Siguientes a unir
Ejemplo
c l(2) (2) Nuevos nodos a unirse
Ejemplo
(4)
c l(2) (2) Nuevos nodos a unirse
Ahora se suman las frecuencias de c(1) l(2)
Ejemplo
t ‘ ’ a(2) (3) (4) (5) (9)
e j(1) (1)
s (1) (2) c l(2) (2) Nuevos nodos a unirse
Ahora se suman las frecuencias de c(1) l(2)
Y agregamos según el orden que corresponda
Ejemplo
t ‘ ’ a(2) (3) (4) (5) (9)
e j(1) (1)
s (1) (2) c l(2) (2) Nuevos nodos a unirse
Ahora se suman las frecuencias de c(1) l(2)
Y agregamos según el orden que corresponda
Siguientes a unir
Ejemplo
t (2) (3) Nuevos nodos a unirse
Ejemplo
t (2) (3)
s (1) (2)
Recordamos que (3) se divide en s(1) y (2)
Nuevos nodos a unirse
Ejemplo
t (2) (3)
e j(1) (1)
s (1) (2)
Nuevos nodos a unirse
Recordamos que (3) se divide en s(1) y (2)
Recordamos que (2) se divide en e(1) y j(1)
Ejemplo
t (2) (3)
e j(1) (1)
s (1) (2)
(5)
Nuevos nodos a unirse
Recordamos que (3) se divide en s(1) y (2)
Recordamos que (2) se divide en e(1) y j(1)
Ahora se suman las frecuencias de
t(2) y (3)
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ a(4) (5) (5) (9)
Y agregamos según el
orden que corresponda
Nuevos nodos a unirse
Recordamos que (3) se divide en s(1) y (2)
Recordamos que (2) se divide en e(1) y j(1)
Ahora se suman las frecuencias de
t(2) y (3)
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ a(4) (5) (5) (9)
Siguientes a unir
Ejemplo
(4) (5) Nuevos nodos a unirse
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
(4) (5) Nuevos nodos a unirse
(4) y (5) tiene subárboles binarios
generados anteriormente
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ a(5) (9) (9)
(4) (5)
Ahora se suman las frecuencias de (4) y
(5), y se colocan en el orden especifico
Nuevos nodos a unirse
(4) y (5) tiene subárboles binarios
generados anteriormente
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ a(5) (9) (9)
(4) (5)Siguientes a unir
Ejemplo
‘ ’ (5) (9) Nuevos nodos a unirse
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5) (5) y (9) tiene subárboles binarios
generados anteriormente
Nuevos nodos a unirse
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5)
a (9) (14)
Se suman las frecuencias de (5) y (9), y
se colocan en el orden especifico
(5) y (9) tiene subárboles binarios
generados anteriormente
Nuevos nodos a unirse
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5)
a (9) (14)
Al tener finalmente dos arboles
que unir, a(9) y (14), se suman sus
frecuencias y se tiene creado el
árbol para obtener las claves
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5)
a (9) (14)
(23)
Resultado Final de la estructura del arbol
Se asigna las claves, las
ramas a la izquierda son
cero y a la derecha unos
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5)
a (9) (14)
(23)
Resultado Final de la estructura del arbol
Se asigna las claves, las
ramas a la izquierda son
cero y a la derecha unos
0
0
0
0 0
0
0
1
1
1
1 1
1
1
Ejemplo
c l(2) (2) t (2) (3)
e j(1) (1)
s (1) (2)
‘ ’ (5) (9)
(4) (5)
a (9) (14)
(23)
0
0
0
0 0
0
0
1
1
1
1 1
1
1
Ejemplo
Carácter - Clave
a 0
' ' 10
c 1100
l 1101
t 1110
s 11110
e 111110
j 111111
Mas se repite ‘‘a’’ , menos se repite ‘‘e,s,j’’
El texto ‘‘ata la jaca a la estaca’’, transformado a binario mediante código
ASCII, es igual a :
01100001 01110100 01100001 00100000 01101100 01100001
00100000 01101010 01100001 01100011 01100001 00100000
01100001 00100000 01101100 01100001 00100000 01100101 01110011
01110100 01100001 01100011 01100001
Esta representado por 184 bits, es decir 23 bytes.
Ejemplo
Ejemplo
a 0
' ' 10
c 1100
l 1101
t 1110
s 11110
e 111110
j 111111
Se puede traducir ahora el texto
mediante las claves generadas con
Huffman.
a t a ' ' l a ' ' j a c a ' ' a ' ' l a ' ' e s t a c a
0 1110 0 10 1101 0 10 111111 0 1100 0 10 0 10 1101 0 10 111110 11110 1110 0 1100 0
Ejemplo
a t a ' ' l a ' ' j a c a ' ' a ' ' l a ' ' e s t a c a
0 1110 0 10 1101 0 10 111111 0 1100 0 10 0 10 1101 0 10 111110 11110 1110 0 1100 0
Finalmente se debe empaquetar los bits en grupos de 8, es decir bytes.
01110010 11010101 11111011 00010010 11010101 11110111 10111001 10000000
En total 8 bytes, mientras que el archivo original tenia 23
Conclusiones
• Huffman es una manera de lograr comprensión de la información sin perdidas de
manera que la información enviada pueda llegar completa.
• Se tiene que conocer inicialmente las frecuencias de cada carácter en el archivo y
ordenarlas para poder generar el árbol binario que nos ayuda a generar las claves de
cada carácter
Conclusiones
• La asignación de claves para cada carácter depende de la cantidad de veces que se
repita cada carácter en el texto.
• Mientras se repita mas veces el carácter, tendrá una clave mas pequeña
• Mientras menos se repita el carácter tendrá una clave mas grande.
• Independientemente del archivo a comprimir, lo que determina que tan compacto sea
el archivo resultante, será el numero de veces que se repita los caracteres y símbolos
que estén en el mismo:
• El caso mas optimo para la codificación de Huffman es cuando la mayoría de caracteres se repiten
• El pero caso es cuando existe muy pocos o no se repiten ninguna carácter dentro del archivo a comprimir

Más contenido relacionado

La actualidad más candente

4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo
Edison Coimbra G.
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Oscar Javier Jimenez Revelo
 
Modulacion analogica
Modulacion analogicaModulacion analogica
Modulacion analogica
paolacalderoncandela123
 
PCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones IIIPCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones III
Andy Juan Sarango Veliz
 
Códigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones IIICódigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones III
Andy Juan Sarango Veliz
 
Practica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSKPractica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSK
Fernando Ojeda
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
Percy Julio Chambi Pacco
 
CI19 - Presentación 2: Principios básicos de modulación y demodulación
CI19 - Presentación 2: Principios básicos de modulación y demodulación CI19 - Presentación 2: Principios básicos de modulación y demodulación
CI19 - Presentación 2: Principios básicos de modulación y demodulación
Francisco Sandoval
 
Tema 4 codificación de canal
Tema 4   codificación de canalTema 4   codificación de canal
Tema 4 codificación de canal
José Ramón Cerquides Bueno
 
Lecture 16 probabilidad de error para señales en awgn parte 1
Lecture 16 probabilidad de error para señales en awgn parte 1Lecture 16 probabilidad de error para señales en awgn parte 1
Lecture 16 probabilidad de error para señales en awgn parte 1
nica2009
 
Lecture 17 probabilidad de error para señales en awgn parte 2
Lecture 17 probabilidad de error para señales en awgn parte 2Lecture 17 probabilidad de error para señales en awgn parte 2
Lecture 17 probabilidad de error para señales en awgn parte 2
nica2009
 
Diagrama del Ojo
Diagrama del OjoDiagrama del Ojo
Diagrama del Ojo
Douglas
 
Lecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicasLecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicas
nica2009
 
CDMA y TDMA
CDMA y TDMACDMA y TDMA
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Francisco Apablaza
 
Fm 2014 1
Fm 2014 1Fm 2014 1
Fm 2014 1
gmeneses23
 
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
Juan Herrera Benitez
 
Mezclador FDM
Mezclador FDMMezclador FDM
Mezclador FDM
Cristian Justiniano J
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversa
Diego Seminario
 
Compresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones IIICompresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones III
Andy Juan Sarango Veliz
 

La actualidad más candente (20)

4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
 
Modulacion analogica
Modulacion analogicaModulacion analogica
Modulacion analogica
 
PCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones IIIPCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones III
 
Códigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones IIICódigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones III
 
Practica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSKPractica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSK
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
 
CI19 - Presentación 2: Principios básicos de modulación y demodulación
CI19 - Presentación 2: Principios básicos de modulación y demodulación CI19 - Presentación 2: Principios básicos de modulación y demodulación
CI19 - Presentación 2: Principios básicos de modulación y demodulación
 
Tema 4 codificación de canal
Tema 4   codificación de canalTema 4   codificación de canal
Tema 4 codificación de canal
 
Lecture 16 probabilidad de error para señales en awgn parte 1
Lecture 16 probabilidad de error para señales en awgn parte 1Lecture 16 probabilidad de error para señales en awgn parte 1
Lecture 16 probabilidad de error para señales en awgn parte 1
 
Lecture 17 probabilidad de error para señales en awgn parte 2
Lecture 17 probabilidad de error para señales en awgn parte 2Lecture 17 probabilidad de error para señales en awgn parte 2
Lecture 17 probabilidad de error para señales en awgn parte 2
 
Diagrama del Ojo
Diagrama del OjoDiagrama del Ojo
Diagrama del Ojo
 
Lecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicasLecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicas
 
CDMA y TDMA
CDMA y TDMACDMA y TDMA
CDMA y TDMA
 
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
 
Fm 2014 1
Fm 2014 1Fm 2014 1
Fm 2014 1
 
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
Modulacion y Codificacion Digital - Analogo (ASK, FSK & PSK)
 
Mezclador FDM
Mezclador FDMMezclador FDM
Mezclador FDM
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversa
 
Compresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones IIICompresion de Datos - Telecomunicaciones III
Compresion de Datos - Telecomunicaciones III
 

Destacado

n
nn
CV_VAIBHAV[1] (1)
CV_VAIBHAV[1] (1)CV_VAIBHAV[1] (1)
CV_VAIBHAV[1] (1)
Vaibhav Vichare
 
Au coeurdelabretagne
Au coeurdelabretagneAu coeurdelabretagne
Au coeurdelabretagne
Renée Bukay
 
3sixty Live Boston: Designing for the Mobile Inbox
3sixty Live Boston: Designing for the Mobile Inbox3sixty Live Boston: Designing for the Mobile Inbox
3sixty Live Boston: Designing for the Mobile Inbox
Litmus
 
MITO
MITOMITO
14 Key Takeaways From TEDC San Francisco
14 Key Takeaways From TEDC San Francisco14 Key Takeaways From TEDC San Francisco
14 Key Takeaways From TEDC San Francisco
Litmus
 
Programación y robótica en el aula: reflexiones iniciales
Programación y robótica en el aula: reflexiones inicialesProgramación y robótica en el aula: reflexiones iniciales
Programación y robótica en el aula: reflexiones iniciales
antjueduland
 
Airway mx of critically ill pt updated 2016
Airway mx of critically ill pt  updated 2016Airway mx of critically ill pt  updated 2016
Airway mx of critically ill pt updated 2016
drwaque
 
Rapid sequence intubation
Rapid sequence intubationRapid sequence intubation
Rapid sequence intubation
Murtaza Rashid
 
eCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and RoboticseCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and Robotics
Xp3rtCM0
 
Info360 2012 Built for Success - Creating an Effective ECM Org Structure
Info360 2012 Built for Success - Creating an Effective ECM Org StructureInfo360 2012 Built for Success - Creating an Effective ECM Org Structure
Info360 2012 Built for Success - Creating an Effective ECM Org Structure
Greg Clark
 
Marketing Real Time Personalization
Marketing Real Time Personalization Marketing Real Time Personalization
Marketing Real Time Personalization
Paul Writer
 
Cognitive Commerce by Jessie Paul, CEO, Paul Writer
Cognitive Commerce  by Jessie Paul, CEO, Paul WriterCognitive Commerce  by Jessie Paul, CEO, Paul Writer
Cognitive Commerce by Jessie Paul, CEO, Paul Writer
Paul Writer
 
Sudden cardiac death
Sudden cardiac deathSudden cardiac death
Sudden cardiac death
Sunil Reddy D
 

Destacado (14)

n
nn
n
 
CV_VAIBHAV[1] (1)
CV_VAIBHAV[1] (1)CV_VAIBHAV[1] (1)
CV_VAIBHAV[1] (1)
 
Au coeurdelabretagne
Au coeurdelabretagneAu coeurdelabretagne
Au coeurdelabretagne
 
3sixty Live Boston: Designing for the Mobile Inbox
3sixty Live Boston: Designing for the Mobile Inbox3sixty Live Boston: Designing for the Mobile Inbox
3sixty Live Boston: Designing for the Mobile Inbox
 
MITO
MITOMITO
MITO
 
14 Key Takeaways From TEDC San Francisco
14 Key Takeaways From TEDC San Francisco14 Key Takeaways From TEDC San Francisco
14 Key Takeaways From TEDC San Francisco
 
Programación y robótica en el aula: reflexiones iniciales
Programación y robótica en el aula: reflexiones inicialesProgramación y robótica en el aula: reflexiones iniciales
Programación y robótica en el aula: reflexiones iniciales
 
Airway mx of critically ill pt updated 2016
Airway mx of critically ill pt  updated 2016Airway mx of critically ill pt  updated 2016
Airway mx of critically ill pt updated 2016
 
Rapid sequence intubation
Rapid sequence intubationRapid sequence intubation
Rapid sequence intubation
 
eCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and RoboticseCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and Robotics
 
Info360 2012 Built for Success - Creating an Effective ECM Org Structure
Info360 2012 Built for Success - Creating an Effective ECM Org StructureInfo360 2012 Built for Success - Creating an Effective ECM Org Structure
Info360 2012 Built for Success - Creating an Effective ECM Org Structure
 
Marketing Real Time Personalization
Marketing Real Time Personalization Marketing Real Time Personalization
Marketing Real Time Personalization
 
Cognitive Commerce by Jessie Paul, CEO, Paul Writer
Cognitive Commerce  by Jessie Paul, CEO, Paul WriterCognitive Commerce  by Jessie Paul, CEO, Paul Writer
Cognitive Commerce by Jessie Paul, CEO, Paul Writer
 
Sudden cardiac death
Sudden cardiac deathSudden cardiac death
Sudden cardiac death
 

Similar a Codificación de Huffman

Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
Daniel Gomez Jaramillo
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
kayaknight
 
Algoritmo de kruskal
Algoritmo de kruskalAlgoritmo de kruskal
Algoritmo de kruskal
Jhoel Flores Alejo
 
Tutorial sf
Tutorial sfTutorial sf
Tutorial sf
Lola Reta Calvillo
 
Quimica séptimo
Quimica séptimoQuimica séptimo
Quimica séptimo
Liceo Matovelle
 
Conteo
ConteoConteo
2. Unidades y Dimensiones del Sistema Internacional
2. Unidades y Dimensiones del Sistema Internacional2. Unidades y Dimensiones del Sistema Internacional
2. Unidades y Dimensiones del Sistema Internacional
Pablo Alejandro Araujo Granda
 
Premc teoria tablasfrecuencia_v1
Premc teoria tablasfrecuencia_v1Premc teoria tablasfrecuencia_v1
Premc teoria tablasfrecuencia_v1
patriciax
 

Similar a Codificación de Huffman (8)

Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
 
Algoritmo de kruskal
Algoritmo de kruskalAlgoritmo de kruskal
Algoritmo de kruskal
 
Tutorial sf
Tutorial sfTutorial sf
Tutorial sf
 
Quimica séptimo
Quimica séptimoQuimica séptimo
Quimica séptimo
 
Conteo
ConteoConteo
Conteo
 
2. Unidades y Dimensiones del Sistema Internacional
2. Unidades y Dimensiones del Sistema Internacional2. Unidades y Dimensiones del Sistema Internacional
2. Unidades y Dimensiones del Sistema Internacional
 
Premc teoria tablasfrecuencia_v1
Premc teoria tablasfrecuencia_v1Premc teoria tablasfrecuencia_v1
Premc teoria tablasfrecuencia_v1
 

Más de Miguel Angel Macias

Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Miguel Angel Macias
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías Web
Miguel Angel Macias
 
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
Miguel Angel Macias
 
Mapeo de la red inalámbrica en la Universidad de Cuenca
Mapeo de la red inalámbrica en la Universidad de CuencaMapeo de la red inalámbrica en la Universidad de Cuenca
Mapeo de la red inalámbrica en la Universidad de Cuenca
Miguel Angel Macias
 
Chat con Encriptación
Chat con EncriptaciónChat con Encriptación
Chat con Encriptación
Miguel Angel Macias
 
Cryptography
CryptographyCryptography
Cryptography
Miguel Angel Macias
 
Ordenamiento de Archivos Externos
Ordenamiento de Archivos ExternosOrdenamiento de Archivos Externos
Ordenamiento de Archivos Externos
Miguel Angel Macias
 
Aula presentacion
Aula presentacionAula presentacion
Aula presentacion
Miguel Angel Macias
 

Más de Miguel Angel Macias (8)

Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías Web
 
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
[Presentación] Mapeo de la red inalámbrica en la Universidad de Cuenca
 
Mapeo de la red inalámbrica en la Universidad de Cuenca
Mapeo de la red inalámbrica en la Universidad de CuencaMapeo de la red inalámbrica en la Universidad de Cuenca
Mapeo de la red inalámbrica en la Universidad de Cuenca
 
Chat con Encriptación
Chat con EncriptaciónChat con Encriptación
Chat con Encriptación
 
Cryptography
CryptographyCryptography
Cryptography
 
Ordenamiento de Archivos Externos
Ordenamiento de Archivos ExternosOrdenamiento de Archivos Externos
Ordenamiento de Archivos Externos
 
Aula presentacion
Aula presentacionAula presentacion
Aula presentacion
 

Último

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
 
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
 
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
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
AlanL15
 
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
 
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
 

Último (6)

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
 
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
 
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
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
 
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
 
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
 

Codificación de Huffman

  • 1. UNIVERSIDAD DE CUENCA desde 1867 Miguel Macías Edisson Sigua Christian Salinas Algoritmo de compresión de Huffman Programación 3 Estructura de Archivos
  • 2. Generalidades • Se utiliza para la comprensión o encriptación de datos. • Se basa en asignar códigos de distinta longitud de bits a cada uno de los caracteres de un archivo. • Si se asignan códigos mas cortos a los caracteres que aparecen mas a menudo se consigue una comprensión del archivo. • La compresión es mayor cuando la variedad de caracteres diferentes que aparecen es menor. • Para recuperar el archivo original es necesario el código asignado a cada carácter, así como su longitud en bits
  • 3. Mecanismo del Algoritmo • Contar cuantas veces aparece cada carácter en el fichero a comprimir y crear una lista enlazada con la información de caracteres y frecuencias • Ordenar la lista de menor a mayor en función de la frecuencia • Convertir cada elemento de la lista en un árbol
  • 4. Mecanismo del Algoritmo • Fusionar todos estos arboles en uno único, de la siguiente manera: • Con los dos primero arboles formar un nuevo árbol, cada uno de los arboles originales en una rama. • Sumar las frecuencias de cada rama en le nuevo árbol. • Insertar el nuevo árbol en el lugar adecuado de la lista según la suma de frecuencias obtenidas • Para asignar el nuevo código binario de cada carácter solo hay que seguir el camino adecuado a través del árbol. Si se toma una rama cero, se añade un cero al código, de la misma manera con cualquier rama uno. • Se recodifica el fichero según los nuevos códigos
  • 5. Ejemplo Se toma una texto corto, como por ejemplo: ‘‘ata la jaca en la estaca’’ Ahora se cuenta las veces que se repite cada carácter en el texto: Ahora se ordena por frecuencia de menor a mayor: ‘ ’ a c e j l s t 5 9 2 1 1 2 1 2 e j s c l t ‘ ’ a 1 1 1 2 2 2 5 9
  • 6. Ejemplo Ahora se considera a cada elemento como un nodo raíz un árbol. e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9)
  • 7. Ejemplo Ahora se considera a cada elemento como un nodo raíz un árbol. Ahora se unen los dos primero nodos (arboles), en un nuevo árbol, se suman sus frecuencias y se las coloca en el lugar correspondiente según el orden. e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9) e j(1) (1)
  • 8. Ejemplo Ahora se considera a cada elemento como un nodo raíz un árbol. Ahora de unen los dos primero nodos (arboles), en un nuevo árbol, se suman sus frecuencias y se las coloca en el lugar correspondiente según el orden. e j s c l t ‘ ’ a(1) (1) (1) (2) (2) (2) (5) (9) s c l t ‘ ’ a(1) (2) (2) (2) (2) (5) (9) e j(1) (1)
  • 9. Ejemplo Y se sigue el mismo proceso sucesivamente: Los nuevos nodos (arboles) a unir serian s(1) y (2) s c l t ‘ ’ a(1) (2) (2) (2) (2) (5) (9) e j(1) (1)
  • 10. Ejemplo Nuevos nodos a unirse s (1) (2)
  • 11. Ejemplo Recordamos que (2) se divide en e(1) y j (1) e j(1) (1) s (1) (2)
  • 12. Ejemplo (3) e j(1) (1) s (1) (2) Recordamos que (2) se divide en e(1) y j (1) Ahora se suman las frecuencias de s(1) (2)
  • 13. Ejemplo c l t ‘ ’ a(2) (2) (2) (3) (5) (9) e j(1) (1) s (1) (2) Recordamos que (2) se divide en e(1) y j (1) Ahora se suman las frecuencias de s(1) (2) Y agregamos según el orden que corresponda
  • 14. Ejemplo c l t ‘ ’ a(2) (2) (2) (3) (5) (9) e j(1) (1) s (1) (2) Recordamos que (2) se divide en e(1) y j (1) Ahora se suman las frecuencias de s(1) (2) Y agregamos según el orden que corresponda Siguientes a unir
  • 15. Ejemplo c l(2) (2) Nuevos nodos a unirse
  • 16. Ejemplo (4) c l(2) (2) Nuevos nodos a unirse Ahora se suman las frecuencias de c(1) l(2)
  • 17. Ejemplo t ‘ ’ a(2) (3) (4) (5) (9) e j(1) (1) s (1) (2) c l(2) (2) Nuevos nodos a unirse Ahora se suman las frecuencias de c(1) l(2) Y agregamos según el orden que corresponda
  • 18. Ejemplo t ‘ ’ a(2) (3) (4) (5) (9) e j(1) (1) s (1) (2) c l(2) (2) Nuevos nodos a unirse Ahora se suman las frecuencias de c(1) l(2) Y agregamos según el orden que corresponda Siguientes a unir
  • 19. Ejemplo t (2) (3) Nuevos nodos a unirse
  • 20. Ejemplo t (2) (3) s (1) (2) Recordamos que (3) se divide en s(1) y (2) Nuevos nodos a unirse
  • 21. Ejemplo t (2) (3) e j(1) (1) s (1) (2) Nuevos nodos a unirse Recordamos que (3) se divide en s(1) y (2) Recordamos que (2) se divide en e(1) y j(1)
  • 22. Ejemplo t (2) (3) e j(1) (1) s (1) (2) (5) Nuevos nodos a unirse Recordamos que (3) se divide en s(1) y (2) Recordamos que (2) se divide en e(1) y j(1) Ahora se suman las frecuencias de t(2) y (3)
  • 23. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ a(4) (5) (5) (9) Y agregamos según el orden que corresponda Nuevos nodos a unirse Recordamos que (3) se divide en s(1) y (2) Recordamos que (2) se divide en e(1) y j(1) Ahora se suman las frecuencias de t(2) y (3)
  • 24. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ a(4) (5) (5) (9) Siguientes a unir
  • 25. Ejemplo (4) (5) Nuevos nodos a unirse
  • 26. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) (4) (5) Nuevos nodos a unirse (4) y (5) tiene subárboles binarios generados anteriormente
  • 27. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ a(5) (9) (9) (4) (5) Ahora se suman las frecuencias de (4) y (5), y se colocan en el orden especifico Nuevos nodos a unirse (4) y (5) tiene subárboles binarios generados anteriormente
  • 28. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ a(5) (9) (9) (4) (5)Siguientes a unir
  • 29. Ejemplo ‘ ’ (5) (9) Nuevos nodos a unirse
  • 30. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) (5) y (9) tiene subárboles binarios generados anteriormente Nuevos nodos a unirse
  • 31. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) a (9) (14) Se suman las frecuencias de (5) y (9), y se colocan en el orden especifico (5) y (9) tiene subárboles binarios generados anteriormente Nuevos nodos a unirse
  • 32. Ejemplo c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) a (9) (14) Al tener finalmente dos arboles que unir, a(9) y (14), se suman sus frecuencias y se tiene creado el árbol para obtener las claves
  • 33. c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) a (9) (14) (23) Resultado Final de la estructura del arbol Se asigna las claves, las ramas a la izquierda son cero y a la derecha unos Ejemplo
  • 34. c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) a (9) (14) (23) Resultado Final de la estructura del arbol Se asigna las claves, las ramas a la izquierda son cero y a la derecha unos 0 0 0 0 0 0 0 1 1 1 1 1 1 1 Ejemplo
  • 35. c l(2) (2) t (2) (3) e j(1) (1) s (1) (2) ‘ ’ (5) (9) (4) (5) a (9) (14) (23) 0 0 0 0 0 0 0 1 1 1 1 1 1 1 Ejemplo Carácter - Clave a 0 ' ' 10 c 1100 l 1101 t 1110 s 11110 e 111110 j 111111 Mas se repite ‘‘a’’ , menos se repite ‘‘e,s,j’’
  • 36. El texto ‘‘ata la jaca a la estaca’’, transformado a binario mediante código ASCII, es igual a : 01100001 01110100 01100001 00100000 01101100 01100001 00100000 01101010 01100001 01100011 01100001 00100000 01100001 00100000 01101100 01100001 00100000 01100101 01110011 01110100 01100001 01100011 01100001 Esta representado por 184 bits, es decir 23 bytes. Ejemplo
  • 37. Ejemplo a 0 ' ' 10 c 1100 l 1101 t 1110 s 11110 e 111110 j 111111 Se puede traducir ahora el texto mediante las claves generadas con Huffman. a t a ' ' l a ' ' j a c a ' ' a ' ' l a ' ' e s t a c a 0 1110 0 10 1101 0 10 111111 0 1100 0 10 0 10 1101 0 10 111110 11110 1110 0 1100 0
  • 38. Ejemplo a t a ' ' l a ' ' j a c a ' ' a ' ' l a ' ' e s t a c a 0 1110 0 10 1101 0 10 111111 0 1100 0 10 0 10 1101 0 10 111110 11110 1110 0 1100 0 Finalmente se debe empaquetar los bits en grupos de 8, es decir bytes. 01110010 11010101 11111011 00010010 11010101 11110111 10111001 10000000 En total 8 bytes, mientras que el archivo original tenia 23
  • 39. Conclusiones • Huffman es una manera de lograr comprensión de la información sin perdidas de manera que la información enviada pueda llegar completa. • Se tiene que conocer inicialmente las frecuencias de cada carácter en el archivo y ordenarlas para poder generar el árbol binario que nos ayuda a generar las claves de cada carácter
  • 40. Conclusiones • La asignación de claves para cada carácter depende de la cantidad de veces que se repita cada carácter en el texto. • Mientras se repita mas veces el carácter, tendrá una clave mas pequeña • Mientras menos se repita el carácter tendrá una clave mas grande. • Independientemente del archivo a comprimir, lo que determina que tan compacto sea el archivo resultante, será el numero de veces que se repita los caracteres y símbolos que estén en el mismo: • El caso mas optimo para la codificación de Huffman es cuando la mayoría de caracteres se repiten • El pero caso es cuando existe muy pocos o no se repiten ninguna carácter dentro del archivo a comprimir