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

Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 

Último (20)

Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 

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