SlideShare una empresa de Scribd logo
1 de 34
UNIVERSIDAD DE CUENCA
Algoritmos Huffman
Compresión HTTP
FACULTAD DE INGENIERÍA
CARRERA DE SISTEMAS
Integrantes
● Freddy Abad - freddy.abadl@ucuenca.ec
● Diego Pando - diego.pando@ucuenca.ec
● Christian Torres - marcelo.torres@ucuenca.ec
Programación 3 :Estructura de Archivos
Docente: Ing. Angel Vazquez
2
CONTENIDO
● Objetivos
● Introduccion algoritmos de compresión
● Algoritmo Huffman
● Compresión HTTP
● HTTP-Gzip
● Anexos
3
OBJETIVOS
● Conocer el funcionamiento del Algoritmo Huffman.
● Implementar el algoritmo de Huffman en C.
● Entender la compresión utilizada en Internet
● Conocer los algoritmos de compresión HTTP
● Implementar el algoritmo GZIP
4
ALGORITMOS DE COMPRESIÓN
● “El arte o la ciencia de representar información de una
forma compacta” [Sayood].
● Guardar la mayor cantidad de datos posibles en la menor
cantidad de espacio posible
● Tecnicas de Compresion:
○ Un algoritmo de compresión que toma una entrada X y
genera una representación Xc que necesita menos bits.
○ Un algoritmo de reconstrucción que trabaja en la
representación comprimida Xc y genera la
reconstrucción Y.
5
Algoritmos de compresión-Tecnica Compresion
6
ALGORITMOS DE COMPRESIÓN
● Algoritmos de compresión con pérdida
Representar cierta cantidad de información utilizando una
menor cantidad de la misma, siendo imposible una
reconstrucción exacta de la misma.
● Algoritmos de compresión sin pérdida
Representar cierta cantidad de información utilizando una
fracción menor en almacenamiento de datos establecida,
siendo posible una reconstrucción exacta de los datos
originales.
7
ALGORITMO HUFFMAN
ALGORITMO DE HUFFMAN
Es un algoritmo usado para compresión de datos dentro de la
compresión sin pérdida.
Fue desarrollado por David A. Huffman en 1992 mientras era
estudiante de doctorado en el MIT, el algoritmo fue publicado
en "A Method for the Construction of Minimum-Redundancy
Codes".
9
ALGORITMO DE HUFFMAN
Dado un conjunto de símbolos con sus respectivos pesos.
Los pesos son la frecuencia de aparición de un dato en una cadena.
“Genciencia” el peso del símbolo “i” = 2, ya que aparece en dos ocasiones
La salida del algoritmo es el mismo conjunto de símbolos de entrada codificado
mediante un código binario con un tamaño menor.
10
ALGORITMO DE HUFFMAN
Algoritmo Genérico:
1) Cuenta las veces que aparece cada carácter y se realiza una lista enlazada.
2) Ordenamos por frecuencia de menor a mayor.
3) Consideremos ahora que cada elemento es el nodo raíz de un árbol.
4) Fundimos los dos primeros nodos (árboles) en un nuevo árbol, suma sus frecuencias y
se coloca en el lugar correspondiente (Repite hasta tener un solo arbol).
5) Asignamos los códigos, las ramas a la izquierda son ceros, y a la derecha unos.
6) Y traduce texto.
11
ALGORITMO DE HUFFMAN
Obtendremos los códigos para la palabra CODIGO.
12
ALGORITMO DE HUFFMAN
Primero se obtiene las frecuencias de las letras, es decir
las repeticiones.
C O D I G O
1 2 1 1 1 2
13
ALGORITMO DE HUFFMAN
Se las ordena de menor a mayor y los caracteres
repetidos se eliminan.
C D I G O
1 1 1 1 2
14
ALGORITMO DE HUFFMAN
Formamos nodos a partir de las frecuencias
C,1 D,1 I,1 G,1 O,2
15
ALGORITMO DE HUFFMAN
Se forma un árbol binario con el par de nodos.
NULL,2
G,1
I,1
16
ALGORITMO DE HUFFMAN
Se agrega el nuevo nodo al final.
C,1 D,1
I,1 G,1 O,2
NULL
17
ALGORITMO DE HUFFMAN
Se repite el proceso hasta obtener un solo árbol binario.
El cual en nuestro caso nos quedaría:
C,1
NULL,2
I,1
NULL,4
O,2
NULL,6
G,1
NULL,2
D,1
18
ALGORITMO DE HUFFMAN
Ponemos el valor de 0 a los nodos de la izquierda y 1 a los
de la derecha.
C,1
NULL,2
I,1
NULL,4
O,2
NULL,6
G,1
NULL,2
D,1
0
0 1
1
0
0
1
1
19
ALGORITMO DE HUFMAN
Obtenemos el valor binario de cada letra.Ejemplo : para (I)
necesitamos pasar por el nodo [null, 2] que tiene el valor 0 y
llegamos al nodo de [I] que tiene el valor 0. Por lo tanto el valor
de (I) será (00).
LETRAS CODIGO
I 00
G 01
O 10
C 110
D 111
20
ALGORITMO DE HUFFMAN
Por último asignamos los códigos a la palabra y obtendremos
todo la secuencia de códigos correspondientes.
C O D I G O
110 10 111 00 01 10
21
ALGORITMO HTTP
HTTP (Hypertext Transfer Protocol)
La Compresión HTTP es una capacidad que se puede construir en
los servidores web y clientes de Internet para mejorar la velocidad
de transferencia y la mejorar el uso del ancho de banda.
23
HTTP (Hypertext Transfer Protocol)
Permite la compresión con y sin pérdida.
Los esquemas de compresión más comunes incluyen gzip y
Deflate
Soporta tokens tanto estandarizados como de terceros.
Una compresión con pérdida es mucho más eficiente por
velocidad
24
HTTP-Compression End to end
Una compresión del cuerpo de un mensaje que se realiza por el servidor y
durará sin cambios hasta que llegue al cliente.
25
HTTP-Compression Hop by hop
La compresión no ocurre en el recurso en el servidor, creando una
representación específica que se transmite, sino en el cuerpo del mensaje entre
dos nodos en la ruta entre el cliente y el servidor.
26
Tokens de Content-Encoding
Un token o componente léxico es una cadena de caracteres que tiene un significado coherente
lenguaje de programación. Palabras clave (if, else, while, int, ...), identificadores, números,
signos.
La lista oficial de tokens disponible para servidores y clientes es mantenida por IANA,e incluye:
deflate - compresión basada en el algoritmo deflate (descrito en RFC 1951), envuelto en el
interior del formato de datos zlib (RFC 1950);
exi - Intercambio Eficiente de XML
gzip - formato zip GNU (que se describe en el RFC 1952). Este método es el de más amplio
soporte a marzo de 2011.
identity - No se utiliza ninguna transformación. Este es el valor predeterminado para la
codificación de contenido. 27
HTTP-Beneficios
Beneficio
Dependiendo del tipo de archivo, en general se puede obtener una
compresión del 90% y en promedio, el ancho de banda que se ahorra puede
ser dos o tres veces menos que de no utilizar la compresión HTTP.
Ventajas-Desventajas
· Menor consumo de ancho de banda, traducido en menor gasto de
dinero .
· Menor tiempo de transferencia de datos entre el servidor y el cliente.
· Mayor utilización del CPU del servidor.
28
HTTP-Gzip
Gzip
El formato gzip se utiliza en la compresión( End to end ) HTTP , una técnica
utilizada para acelerar el envío de HTML y otros contenidos en la World
Wide Web.
30
Gzip
GZIP es el método de compresión más popular utilizado en la web hoy en día.
Es un algoritmo de compresión de código abierto desarrollado por el proyecto
GNU.
GZIP funciona mejor en contenido basado en texto y proporciona un promedio
de 70 a 90 por ciento de ahorro de bytes.
GZIP es compatible con todos los navegadores web más utilizados en la
actualidad.
31
Gzip-Algoritmo
El algoritmo encuentra cadenas duplicadas en los datos de entrada.
La segunda ocurrencia de una cadena es reemplazada por un puntero a la
cadena anterior, en forma de un par (distancia,longitud).
Las distancias están limitadas a 32K bytes, y las longitudes son limitadas a
258 bytes.
Cuando una cadena no se produce ningún duplicado dentro 32K bytes, se
emite como una secuencia de bytes .
32
Anexos
Git hub:
HTTP
https://github.com/FreddyAbadFreddWard/Compresion-HTTP
Huffman:
https://github.com/FreddyAbadFreddWard/Compresion-Huffman-Archivos/tree/master
33
Referencias
· Artículos con Clase - Algoritmo de compresión de Huffman [WWW Document], n.d. URL
http://articulos.conclase.net/?tema=algoritmos&art=huffman&pag=000 (accessed 6.26.17).
· Compresión HTTP, 2017. . Wikipedia, la enciclopedia libre.
· David Huffman - EcuRed [WWW Document], n.d. URL
https://www.ecured.cu/David_Huffman (accessed 6.26.17).
· gzip, 2017. . Wikipedia.
· Jiménez, A., 2006. Algoritmo de Huffman [WWW Document]. Xataka Ciencia. URL
https://www.xatakaciencia.com/matematicas/algoritmo-de-huffman (accessed 6.26.17).
· Microsoft Word - Huffman.doc - P1.pdf, n.d.
· Compression in HTTP [WWW Document], n.d. . . . Mozilla Developer Network. URL
https://developer.mozilla.org/en-US/docs/Web/HTTP/Compression (accessed 6.24.17).
· Wikipedia [WWW Document], n.d. URL https://en.wikipedia.org/wiki/Gzip (accessed
6.25.17).
34

Más contenido relacionado

La actualidad más candente

Blind X Path Injection
Blind X Path InjectionBlind X Path Injection
Blind X Path InjectionChema Alonso
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De EncriptacionPeter Cabrera
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadasalejandro
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1IRIS
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficosIsrra AguiMor
 

La actualidad más candente (9)

Blind X Path Injection
Blind X Path InjectionBlind X Path Injection
Blind X Path Injection
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptacion
 
String
StringString
String
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
 
bibliotecas c++
bibliotecas c++bibliotecas c++
bibliotecas c++
 
Criptosistema (1)
Criptosistema (1)Criptosistema (1)
Criptosistema (1)
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficos
 

Similar a Compresion de archivos

Similar a Compresion de archivos (20)

Tcpdump basico
Tcpdump basicoTcpdump basico
Tcpdump basico
 
Protocolo
ProtocoloProtocolo
Protocolo
 
Labo fragmentación ip.
Labo fragmentación ip.Labo fragmentación ip.
Labo fragmentación ip.
 
Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13
 
Diseño de la red I.E. César Vallejo
Diseño de la red I.E. César VallejoDiseño de la red I.E. César Vallejo
Diseño de la red I.E. César Vallejo
 
Curso Redes Linex 5
Curso Redes Linex 5Curso Redes Linex 5
Curso Redes Linex 5
 
Curso Redes Linex 5
Curso Redes Linex 5Curso Redes Linex 5
Curso Redes Linex 5
 
Protocolos
ProtocolosProtocolos
Protocolos
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELA
 
Conociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De ProtocoloConociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De Protocolo
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolos
 
Protocolos de Comunicacion
Protocolos de ComunicacionProtocolos de Comunicacion
Protocolos de Comunicacion
 
Mininet.pdf
Mininet.pdfMininet.pdf
Mininet.pdf
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolos
ProtocolosProtocolos
Protocolos
 
PrOTOCOLOS
PrOTOCOLOSPrOTOCOLOS
PrOTOCOLOS
 
Direcciones ip
  Direcciones ip  Direcciones ip
Direcciones ip
 

Último

ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASSALVADOR ALTEZ PALOMINO
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfElenaNagera
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfEsvinAlvares
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdfnurix_15
 
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptx
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptxPRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptx
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptxciteagrohuallaga07
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesrberinald
 
Transporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECTransporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECamador030809
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasPatriciaRaimondi
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfesparzadaniela548
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasJilvertHuisaCenteno
 
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTA
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTACUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTA
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTAvanessaecharry2511
 
elaboración de doc EXPEDIENTE TECNICO.ppt
elaboración de doc EXPEDIENTE TECNICO.pptelaboración de doc EXPEDIENTE TECNICO.ppt
elaboración de doc EXPEDIENTE TECNICO.pptMiltonEPalacios
 
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxaxelalejossantos
 
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUD
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUDFICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUD
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUDAlexHoyosCachay
 
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdfLUISSANDOVALJIMENEZ
 
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdf
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdfINFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdf
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdfsolidalilaalvaradoro
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxKeylaArlethTorresOrt
 

Último (20)

ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
 
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptx
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptxPRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptx
PRESENTACION Y PROGRAMAS PRE-REQUISITOS DEL SISTEMA HACCP BPM Y PHS 2023.pptx
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas rurales
 
Transporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECTransporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMEC
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitarias
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitarias
 
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTA
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTACUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTA
CUENCAS HIDROGRAFICAS CARACTERIZACION GEOMORFOLOGIAS DE LA CUENTA
 
elaboración de doc EXPEDIENTE TECNICO.ppt
elaboración de doc EXPEDIENTE TECNICO.pptelaboración de doc EXPEDIENTE TECNICO.ppt
elaboración de doc EXPEDIENTE TECNICO.ppt
 
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
 
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUD
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUDFICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUD
FICHA TECNICA SIMPLIFICADA APLICADA A UN PROYECTO DE CENTRO DE SALUD
 
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
 
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdf
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdfINFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdf
INFORME DE LA DE PROBLEMÁTICA AMBIENTAL 2 UNIDAD FINAL. PDF.pdf
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
 

Compresion de archivos

  • 1. UNIVERSIDAD DE CUENCA Algoritmos Huffman Compresión HTTP FACULTAD DE INGENIERÍA CARRERA DE SISTEMAS
  • 2. Integrantes ● Freddy Abad - freddy.abadl@ucuenca.ec ● Diego Pando - diego.pando@ucuenca.ec ● Christian Torres - marcelo.torres@ucuenca.ec Programación 3 :Estructura de Archivos Docente: Ing. Angel Vazquez 2
  • 3. CONTENIDO ● Objetivos ● Introduccion algoritmos de compresión ● Algoritmo Huffman ● Compresión HTTP ● HTTP-Gzip ● Anexos 3
  • 4. OBJETIVOS ● Conocer el funcionamiento del Algoritmo Huffman. ● Implementar el algoritmo de Huffman en C. ● Entender la compresión utilizada en Internet ● Conocer los algoritmos de compresión HTTP ● Implementar el algoritmo GZIP 4
  • 5. ALGORITMOS DE COMPRESIÓN ● “El arte o la ciencia de representar información de una forma compacta” [Sayood]. ● Guardar la mayor cantidad de datos posibles en la menor cantidad de espacio posible ● Tecnicas de Compresion: ○ Un algoritmo de compresión que toma una entrada X y genera una representación Xc que necesita menos bits. ○ Un algoritmo de reconstrucción que trabaja en la representación comprimida Xc y genera la reconstrucción Y. 5
  • 7. ALGORITMOS DE COMPRESIÓN ● Algoritmos de compresión con pérdida Representar cierta cantidad de información utilizando una menor cantidad de la misma, siendo imposible una reconstrucción exacta de la misma. ● Algoritmos de compresión sin pérdida Representar cierta cantidad de información utilizando una fracción menor en almacenamiento de datos establecida, siendo posible una reconstrucción exacta de los datos originales. 7
  • 9. ALGORITMO DE HUFFMAN Es un algoritmo usado para compresión de datos dentro de la compresión sin pérdida. Fue desarrollado por David A. Huffman en 1992 mientras era estudiante de doctorado en el MIT, el algoritmo fue publicado en "A Method for the Construction of Minimum-Redundancy Codes". 9
  • 10. ALGORITMO DE HUFFMAN Dado un conjunto de símbolos con sus respectivos pesos. Los pesos son la frecuencia de aparición de un dato en una cadena. “Genciencia” el peso del símbolo “i” = 2, ya que aparece en dos ocasiones La salida del algoritmo es el mismo conjunto de símbolos de entrada codificado mediante un código binario con un tamaño menor. 10
  • 11. ALGORITMO DE HUFFMAN Algoritmo Genérico: 1) Cuenta las veces que aparece cada carácter y se realiza una lista enlazada. 2) Ordenamos por frecuencia de menor a mayor. 3) Consideremos ahora que cada elemento es el nodo raíz de un árbol. 4) Fundimos los dos primeros nodos (árboles) en un nuevo árbol, suma sus frecuencias y se coloca en el lugar correspondiente (Repite hasta tener un solo arbol). 5) Asignamos los códigos, las ramas a la izquierda son ceros, y a la derecha unos. 6) Y traduce texto. 11
  • 12. ALGORITMO DE HUFFMAN Obtendremos los códigos para la palabra CODIGO. 12
  • 13. ALGORITMO DE HUFFMAN Primero se obtiene las frecuencias de las letras, es decir las repeticiones. C O D I G O 1 2 1 1 1 2 13
  • 14. ALGORITMO DE HUFFMAN Se las ordena de menor a mayor y los caracteres repetidos se eliminan. C D I G O 1 1 1 1 2 14
  • 15. ALGORITMO DE HUFFMAN Formamos nodos a partir de las frecuencias C,1 D,1 I,1 G,1 O,2 15
  • 16. ALGORITMO DE HUFFMAN Se forma un árbol binario con el par de nodos. NULL,2 G,1 I,1 16
  • 17. ALGORITMO DE HUFFMAN Se agrega el nuevo nodo al final. C,1 D,1 I,1 G,1 O,2 NULL 17
  • 18. ALGORITMO DE HUFFMAN Se repite el proceso hasta obtener un solo árbol binario. El cual en nuestro caso nos quedaría: C,1 NULL,2 I,1 NULL,4 O,2 NULL,6 G,1 NULL,2 D,1 18
  • 19. ALGORITMO DE HUFFMAN Ponemos el valor de 0 a los nodos de la izquierda y 1 a los de la derecha. C,1 NULL,2 I,1 NULL,4 O,2 NULL,6 G,1 NULL,2 D,1 0 0 1 1 0 0 1 1 19
  • 20. ALGORITMO DE HUFMAN Obtenemos el valor binario de cada letra.Ejemplo : para (I) necesitamos pasar por el nodo [null, 2] que tiene el valor 0 y llegamos al nodo de [I] que tiene el valor 0. Por lo tanto el valor de (I) será (00). LETRAS CODIGO I 00 G 01 O 10 C 110 D 111 20
  • 21. ALGORITMO DE HUFFMAN Por último asignamos los códigos a la palabra y obtendremos todo la secuencia de códigos correspondientes. C O D I G O 110 10 111 00 01 10 21
  • 23. HTTP (Hypertext Transfer Protocol) La Compresión HTTP es una capacidad que se puede construir en los servidores web y clientes de Internet para mejorar la velocidad de transferencia y la mejorar el uso del ancho de banda. 23
  • 24. HTTP (Hypertext Transfer Protocol) Permite la compresión con y sin pérdida. Los esquemas de compresión más comunes incluyen gzip y Deflate Soporta tokens tanto estandarizados como de terceros. Una compresión con pérdida es mucho más eficiente por velocidad 24
  • 25. HTTP-Compression End to end Una compresión del cuerpo de un mensaje que se realiza por el servidor y durará sin cambios hasta que llegue al cliente. 25
  • 26. HTTP-Compression Hop by hop La compresión no ocurre en el recurso en el servidor, creando una representación específica que se transmite, sino en el cuerpo del mensaje entre dos nodos en la ruta entre el cliente y el servidor. 26
  • 27. Tokens de Content-Encoding Un token o componente léxico es una cadena de caracteres que tiene un significado coherente lenguaje de programación. Palabras clave (if, else, while, int, ...), identificadores, números, signos. La lista oficial de tokens disponible para servidores y clientes es mantenida por IANA,e incluye: deflate - compresión basada en el algoritmo deflate (descrito en RFC 1951), envuelto en el interior del formato de datos zlib (RFC 1950); exi - Intercambio Eficiente de XML gzip - formato zip GNU (que se describe en el RFC 1952). Este método es el de más amplio soporte a marzo de 2011. identity - No se utiliza ninguna transformación. Este es el valor predeterminado para la codificación de contenido. 27
  • 28. HTTP-Beneficios Beneficio Dependiendo del tipo de archivo, en general se puede obtener una compresión del 90% y en promedio, el ancho de banda que se ahorra puede ser dos o tres veces menos que de no utilizar la compresión HTTP. Ventajas-Desventajas · Menor consumo de ancho de banda, traducido en menor gasto de dinero . · Menor tiempo de transferencia de datos entre el servidor y el cliente. · Mayor utilización del CPU del servidor. 28
  • 30. Gzip El formato gzip se utiliza en la compresión( End to end ) HTTP , una técnica utilizada para acelerar el envío de HTML y otros contenidos en la World Wide Web. 30
  • 31. Gzip GZIP es el método de compresión más popular utilizado en la web hoy en día. Es un algoritmo de compresión de código abierto desarrollado por el proyecto GNU. GZIP funciona mejor en contenido basado en texto y proporciona un promedio de 70 a 90 por ciento de ahorro de bytes. GZIP es compatible con todos los navegadores web más utilizados en la actualidad. 31
  • 32. Gzip-Algoritmo El algoritmo encuentra cadenas duplicadas en los datos de entrada. La segunda ocurrencia de una cadena es reemplazada por un puntero a la cadena anterior, en forma de un par (distancia,longitud). Las distancias están limitadas a 32K bytes, y las longitudes son limitadas a 258 bytes. Cuando una cadena no se produce ningún duplicado dentro 32K bytes, se emite como una secuencia de bytes . 32
  • 34. Referencias · Artículos con Clase - Algoritmo de compresión de Huffman [WWW Document], n.d. URL http://articulos.conclase.net/?tema=algoritmos&art=huffman&pag=000 (accessed 6.26.17). · Compresión HTTP, 2017. . Wikipedia, la enciclopedia libre. · David Huffman - EcuRed [WWW Document], n.d. URL https://www.ecured.cu/David_Huffman (accessed 6.26.17). · gzip, 2017. . Wikipedia. · Jiménez, A., 2006. Algoritmo de Huffman [WWW Document]. Xataka Ciencia. URL https://www.xatakaciencia.com/matematicas/algoritmo-de-huffman (accessed 6.26.17). · Microsoft Word - Huffman.doc - P1.pdf, n.d. · Compression in HTTP [WWW Document], n.d. . . . Mozilla Developer Network. URL https://developer.mozilla.org/en-US/docs/Web/HTTP/Compression (accessed 6.24.17). · Wikipedia [WWW Document], n.d. URL https://en.wikipedia.org/wiki/Gzip (accessed 6.25.17). 34