SlideShare una empresa de Scribd logo
1 de 40
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 tiempoEdison Coimbra G.
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuentenica2009
 
Telecomunicaciones
TelecomunicacionesTelecomunicaciones
Telecomunicacioneswarrior1210
 
2.Datos y señales en comunicaciones electrónicas
2.Datos y señales en comunicaciones electrónicas2.Datos y señales en comunicaciones electrónicas
2.Datos y señales en comunicaciones electrónicasEdison Coimbra G.
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señalesdoc digitus
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análogaJoaquin Vicioso
 
Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCMJoaquin Vicioso
 
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónFundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónJosé Antonio Sandoval Acosta
 
Ruido en telecomunicaciones
Ruido en telecomunicacionesRuido en telecomunicaciones
Ruido en telecomunicacionesMonica Patiño
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresDaniel Huerta Cruz
 

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
 
Funciones De Bessel Y Regla De Carson
Funciones De Bessel Y Regla De CarsonFunciones De Bessel Y Regla De Carson
Funciones De Bessel Y Regla De Carson
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuente
 
Telecomunicaciones
TelecomunicacionesTelecomunicaciones
Telecomunicaciones
 
2.Datos y señales en comunicaciones electrónicas
2.Datos y señales en comunicaciones electrónicas2.Datos y señales en comunicaciones electrónicas
2.Datos y señales en comunicaciones electrónicas
 
Modulacion fsk
Modulacion fskModulacion fsk
Modulacion fsk
 
Multiplexación
MultiplexaciónMultiplexación
Multiplexación
 
Modulacion ask
Modulacion askModulacion ask
Modulacion ask
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señales
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análoga
 
Modulación qam
Modulación qamModulación qam
Modulación qam
 
Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCM
 
BANDA LATERAL UNICA
BANDA LATERAL UNICABANDA LATERAL UNICA
BANDA LATERAL UNICA
 
Tema 03 trafico
Tema 03 traficoTema 03 trafico
Tema 03 trafico
 
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónFundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
 
Ruido en telecomunicaciones
Ruido en telecomunicacionesRuido en telecomunicaciones
Ruido en telecomunicaciones
 
Mezclador FDM
Mezclador FDMMezclador FDM
Mezclador FDM
 
52983063 series-de-fourier
52983063 series-de-fourier52983063 series-de-fourier
52983063 series-de-fourier
 
1 modulación psk
1 modulación psk1 modulación psk
1 modulación psk
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
 

Destacado

Au coeurdelabretagne
Au coeurdelabretagneAu coeurdelabretagne
Au coeurdelabretagneRené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 InboxLitmus
 
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 FranciscoLitmus
 
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 inicialesantjueduland
 
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 2016drwaque
 
Rapid sequence intubation
Rapid sequence intubationRapid sequence intubation
Rapid sequence intubationMurtaza Rashid
 
eCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and RoboticseCommerce Warehouse Management System and Robotics
eCommerce Warehouse Management System and RoboticsXp3rtCM0
 
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 StructureGreg 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 WriterPaul Writer
 
Sudden cardiac death
Sudden cardiac deathSudden cardiac death
Sudden cardiac deathSunil 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

Similar a Codificación de Huffman (7)

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 LambdaMiguel Angel Macias
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebMiguel 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 CuencaMiguel 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 CuencaMiguel Angel Macias
 
Ordenamiento de Archivos Externos
Ordenamiento de Archivos ExternosOrdenamiento de Archivos Externos
Ordenamiento de Archivos ExternosMiguel 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

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 

Último (6)

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 

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