SlideShare una empresa de Scribd logo
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 Injection
Chema Alonso
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De EncriptacionPeter Cabrera
 
String
StringString
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
 
bibliotecas c++
bibliotecas c++bibliotecas c++
bibliotecas c++
Gustavo Castillo
 
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 criptograficos
Isrra 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

Tcpdump basico
Tcpdump basicoTcpdump basico
Tcpdump basico
Josu Orbe
 
Labo fragmentación ip.
Labo fragmentación ip.Labo fragmentación ip.
Labo fragmentación ip.
ANGELDAVIDCRUZCONDOR
 
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-13Tensor
 
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 VallejoWilliams Cano
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELA
Raquel Solano
 
Conociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De ProtocoloConociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De Protocologuestfbc5216b
 
Seguridad Protocolos
Seguridad ProtocolosSeguridad Protocolos
Seguridad Protocolosguestea241d
 
Protocolos de Comunicacion
Protocolos de ComunicacionProtocolos de Comunicacion
Protocolos de Comunicacion
Miguel Cabrera
 
Mininet.pdf
Mininet.pdfMininet.pdf
Mininet.pdf
Pepe Calderon
 
Protocolos
ProtocolosProtocolos
Protocolos
Mariana Oropeza
 
Direcciones ip
  Direcciones ip  Direcciones ip
Direcciones ipJean Piers
 

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

UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
HaroldKewinCanaza1
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuariaBOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
mesiassalazarpresent
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
thatycameron2004
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
edujunes132
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
ValGS2
 
choro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiologíachoro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiología
elvis2000x
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
LuisLobatoingaruca
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
RobertRamos84
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
UOC Estudios de Informática, Multimedia y Telecomunicación
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
MariaCortezRuiz
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
MiriamAquino27
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
JuanAlbertoLugoMadri
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
JuanChaparro49
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
Victor Manuel Rivera Guevara
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
Daniel Jose Sierra Garcia
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
JavierAlejosM
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
CarlitosWay20
 

Último (20)

UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuariaBOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
 
choro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiologíachoro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiología
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
 

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