SlideShare una empresa de Scribd logo
UNIVERSIDAD DE
CUENCA
Programación III
Estructura de Archivos
Codificación de Huffman y
Algoritmo de Compresión LZW
Integrantes:
● Christian Barreto
● Ronaldo Rendón
● Esteban Vizhñay
CODIFICACIÓN DE HUFFMAN
CONCEPTO
La codificación Huffman es un algoritmo usado para
compresión de datos.
El algoritmo de codificación/compresión Huffman se
propuso en 1952 como una forma sencilla y óptima de
mapear cada símbolo de un alfabeto con un código
(codeword) de longitud óptima.
La codificación Huffman usa un método específico para
elegir la representación de cada símbolo, que da lugar a
un código prefijo que representa los caracteres más
comunes usando las cadenas de bits más cortas, y
viceversa.
PROCEDIMIENTO
El proceso de asignación de códigos se lleva a cabo
mediante la construcción de un árbol binario:
Recorrer el árbol en pre-orden hacia el nodo que contiene el
carácter con su frecuencia.
Los nodos menos probables se unen sucesivamente para
formar otro nodo de mayor probabilidad, de forma que cada
uno de los enlaces añade un bit al código de los símbolos
que estamos juntando.
Este proceso termina cuando sólo se dispone de un nodo, de
forma que éste representa la raíz del árbol.
FACTOR DE COMPRENSIÓN.
• La compresión de datos es la reducción del volumen de datos
tratables para representar una determinada información empleando
una menor cantidad de espacio.
• El espacio que ocupa una información codificada (datos, señal digital,
etc.) sin compresión es el cociente entre la frecuencia de muestreo y la
resolución. Por tanto, cuantos más bits se empleen mayor será el
tamaño del archivo.
EJEMPLO 1.
• Palabra a codificar : LAPTOP
1.Contar el número de peticiones de cada carácter es decir el
número de repeticiones de cada uno de los caracteres
L A P T O P
L A P T O P
1
L A P T O P
1 1
L A P T O P
1 1 1
L A P T O P
1 1 1 1
L A P T O P
1 1 1 1 1
L A P T O P
1 1 1 1 1 2
L A T O P
1 1 1 1 2
• Se pone en una lista enlazada los caracteres y sus frecuencias. Y
eliminamos los que se repiten (Se deja uno solo).
• El siguiente paso es crear un nuevo árbol binario pasando los dos
primeros nodos como hojas del árbol.
L
1
A 1
T
1
O
1
P 2
Null:
2
L:1 A:1
El nodo raíz se guarda como null junto con la suma de las
frecuencias de los nodos hijos.
• La lista quedaría de esta manera:
• El siguiente paso es insertar nuestro árbol a la lista de nodos de forma
ordenada; como la frecuencia de nuestro nodo raíz es dos, entonces
se colocaría al final de la lista ya que en este caso no hay frecuencias
más altas.
T
1
O
1
P
2
T
1
O
1
P
2
Null
2
L:1 A:1
• Repetimos el mismo paso volvemos a tomar los dos primero nodos de
la lista y formamos el árbol con el nodo raíz que en la frecuencia es la
suma de los hijos.
Null:2
T:1 O:1
• Ahora insertamos el árbol de manera ordenada en la lista de nodos
que teníamos definida anteriormente.
P 2 Null 2 Null 2
L:1 A:1 T:1 O:1
• Volvemos a tomar los dos nodos siguientes y formamos el árbol.
Null:
4
P:2
Null:
2
L:1 A:1
• Ahora insertamos el árbol de manera ordenada a nuestra lista.
Null 2 Null 4
T:1 O:1 P:2
Null:
2
L:1 A:1
Null:
6
Null:
2
Null:
4
T:1 O:1 P:2
Null:
2
L:1 A:1
• Volvemos a tomar los dos primeros nodos de
esta lista.
• Ahora es momento de poner los pesos de nuestro árbol.
Null:6
Null:
3
Null:
3
T:1 O:1
Null:
2
L:1 A:1
P:2
0 1
0 1
0
1
1
0
• Los valores de cada una de las letras son:
P : 10
T: 00
O: 01
A: 111
L: 110
• Entonces la palabra entera es la unión de el valor de cada letra.
L A P T O P
110 111 10 00 01 10
CONCLUSIONES
• La codificación de Huffman es útil para la codificación de las palabras
y ponerlas en binario ya que el árbol que se forma para la codificación
es binario.
• Los resultados de la codificación en algunos casos son diferentes
dependiendo del recorrido que se use para el árbol pero existe
coincidencia en algunas letras que es el mismo resultado en binario.
ALGORITMO DE
COMPRESIÓN SIN PÉRDIDA
LZW
LZW (Lempel-Ziv-Welch) es un algoritmo de compresión sin
pérdida desarrollado por Terry Welch en 1984
La clave del método LZW reside en que es posible crear sobre
la marcha, de manera automática y en una única pasada un
diccionario de cadenas que se encuentren dentro del texto a
comprimir mientras al mismo tiempo se procede a su
codificación. Dicho diccionario no es transmitido con el texto
comprimido, puesto que el descompresor puede reconstruirlo
usando la misma lógica con que lo hace el compresor y, si
está codificado correctamente, tendrá exactamente las
mismas cadenas que el diccionario del compresor tenía.
INTRODUCCIÓN
• Los códigos 0-255 de la tabla de códigos siempre
se asignan para representar bytes simples del
archivo de entrada.
• Cuando comienza la codificación, la tabla de
códigos contiene sólo las primeras 256 entradas,
siendo el resto de la tabla espacios en blanco.
• La compresión se consigue utilizando códigos 256
a 4095 para representar secuencias de bytes.
• A medida que la codificación continúa, LZW
identifica secuencias repetidas en los datos, y los
agrega a la tabla de códigos.
• La decodificación se logra tomando cada código
del archivo comprimido y traduciéndolo a través de
EJEMPLO: COMPRESIÓN LZW
Ejemplo: Uso del algoritmo de comprensión LZW con la cadena:
BABAABAAA
EJEMPLO: LZW COMPRESIÓN PASO 1
BABAABAAA P=A
C=empty
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
EJEMPLO: LZW COMPRESIÓN PASO 2
BABAABAAA P=B
C=empty
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
AB257A65
EJEMPLO: LZW COMPRESIÓN PASO 3
BABAABAAA P=A
C=empty
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
AB257A65
BAA258BA256
EJEMPLO: LZW COMPRESIÓN PASO 4
BABAABAAA P=A
C=empty
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
AB257A65
BAA258BA256
ABA259AB257
EJEMPLO: LZW COMPRESIÓN PASO 5
BABAABAAA P=A
C=A
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
AB257A65
BAA258BA256
ABA259AB257
AA260A65
EJEMPLO: LZW COMPRESIÓN PASO 6
BABAABAAA P=AA
C=empty
STRING TABLEENCODER OUTPUT
stringcodewordrepresentingoutput code
BA256B66
AB257A65
BAA258BA256
ABA259AB257
AA260A65
AA260
DESCOMPRESIÓN LZW
• El descompresor LZW crea la misma tabla de cadenas
durante la descompresión.
• Comienza con las primeras 256 entradas de tabla
inicializadas a caracteres individuales.
• La tabla de cadenas se actualiza para cada carácter en el
flujo de entrada, excepto el primero.
• La decodificación se logra leyendo códigos y traduciéndolos
a través de la tabla de códigos que se está construyendo.
EJEMPLO: LZW DESCOMPRESIÓN
Ejemplo: Usar LZW para descomprimir la secuencia de salida del ejemplo
de compresión anterior:
<66><65><256><257><65><260>.
EJEMPLO: LZW DESCOMPRESIÓN PASO 1
<66><65><256><257><65><260> Old = 65 S = A
New = 66 C = A
STRING TABLEENCODER OUTPUT
stringcodewordstring
B
BA256A
EJEMPLO: LZW DESCOMPRESIÓN PASO 2
<66><65><256><257><65><260> Old = 256 S = BA
New = 256 C = B
STRING TABLEENCODER OUTPUT
stringcodewordstring
B
BA256A
AB257BA
EJEMPLO: LZW DESCOMPRESIÓN PASO 3
<66><65><256><257><65><260> Old = 257 S = AB
New = 257 C = A
STRING TABLEENCODER OUTPUT
stringcodewordstring
B
BA256A
AB257BA
BAA258AB
EJEMPLO: LZW DESCOMPRESIÓN PASO 4
<66><65><256><257><65><260> Old = 65 S = A
New = 65 C = A
STRING TABLEENCODER OUTPUT
stringcodewordstring
B
BA256A
AB257BA
BAA258AB
ABA259A
EJEMPLO: LZW DESCOMPRESIÓN PASO 5
<66><65><256><257><65><260> Old = 260 S = AA
New = 260 C = A
STRING TABLEENCODER OUTPUT
stringcodewordstring
B
BA256A
AB257BA
BAA258AB
ABA259A
AA260AA
Este algoritmo comprime muy bien secuencias repetitivas
de datos.
Como las palabras de código son 12 bits, cualquier
carácter codificado único ampliará el tamaño de los datos
en lugar de reducirlo.
En este ejemplo, 72 bits están representados con 72 bits
de datos. Después de que se construye una tabla de
cadena razonable, la compresión mejora drásticamente.
Ventajas de LZW sobre Huffman:
LZW no requiere información previa sobre el flujo de datos
de entrada.
CONCLUSIONES
BIBLIOGRAFÍA
• Denecker Koen and Van Overloop Jeroen, An Experimental Comparison of several Lossless Image
Coders for Medical Images, 1068-0314/97, 1997 IEEE.
• Luis Gabriel Rueda, Manuel Osear Ortega, Un Modelo de Codificación Dinámica del Método de
Huffman, para la Compresión de Datos en Línea, 1er. Congreso Argentino de Ciencias de la
Computación, Domicilio: Ignacio de la Rosa y Meglioli (5400) San Juan.
• https://www.cs.duke.edu/csed/curious/compression/lzw.html
• http://es.ccm.net/contents/731-compresion-lzw
• http://www.grc.upv.es/docencia/tdm/practicas/P1.pdf
• http://joselu.webs.uvigo.es/material/Algoritmo%20de%20Huffman.pdf
• https://learn.yancyparedes.net/2013/10/an-implementation-of-the-huffman-code-for-
compressing-and-decompressing-strings
LINKS:
Algoritmo de compresión sin pérdida LZW:
https://github.com/EstebanViz/LZW-Ucuenca
Codificación de Huffman :
https://github.com/EstebanViz/Huffman-C-GUI-GTK-

Más contenido relacionado

La actualidad más candente

Calidad de Servicio IP-MPLS v2.2
Calidad de Servicio IP-MPLS v2.2Calidad de Servicio IP-MPLS v2.2
Calidad de Servicio IP-MPLS v2.2
Gianpietro Lavado
 
3. Propagación de onda en el espacio libre
3. Propagación de onda en el espacio libre3. Propagación de onda en el espacio libre
3. Propagación de onda en el espacio libre
Edison Coimbra G.
 
IS-IS - Integrated IS-IS v1.0
IS-IS - Integrated IS-IS v1.0IS-IS - Integrated IS-IS v1.0
IS-IS - Integrated IS-IS v1.0
Gianpietro Lavado
 
Análisis y criterios de cálculo para los enlaces
Análisis y criterios de cálculo para los enlacesAnálisis y criterios de cálculo para los enlaces
Análisis y criterios de cálculo para los enlaceskikemat
 
Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6
bramstoker
 
CCNA Exploration 2 - Chapter 2
CCNA Exploration 2 - Chapter 2CCNA Exploration 2 - Chapter 2
CCNA Exploration 2 - Chapter 2Irsandi Hasan
 
Antenas cardama jofre rius romeu blanch ferrando
Antenas   cardama jofre rius romeu blanch ferrando Antenas   cardama jofre rius romeu blanch ferrando
Antenas cardama jofre rius romeu blanch ferrando RICARDO SANCHEZ
 
Generalidades del protocolo IPv6
Generalidades del protocolo IPv6Generalidades del protocolo IPv6
Generalidades del protocolo IPv6
Fabricio Vargas
 
BGP - Border Gateway Protocol v3.0
BGP - Border Gateway Protocol v3.0BGP - Border Gateway Protocol v3.0
BGP - Border Gateway Protocol v3.0
Gianpietro Lavado
 
Seguridad en redes inalámbricas
Seguridad en redes inalámbricasSeguridad en redes inalámbricas
Seguridad en redes inalámbricas
ftejera
 
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptxCCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
BabarYunus1
 
Tutorial voz ip packet tracer
Tutorial voz ip packet tracerTutorial voz ip packet tracer
Tutorial voz ip packet tracerJosé Guerrero
 
Protocolo bgp
Protocolo bgpProtocolo bgp
Protocolo bgp
Daniel Gvtierrex
 
Conferencia n° 5
Conferencia n° 5Conferencia n° 5
Conferencia n° 5
Santiago Acurio
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.Fausto21
 
GRE Tunnel Configuration
GRE Tunnel ConfigurationGRE Tunnel Configuration
GRE Tunnel Configuration
NetProtocol Xpert
 
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdfCalculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
CreacinRedesLitoral
 
REDES NEURONALES COMPETITIVAS HAMMING
REDES NEURONALES COMPETITIVAS HAMMINGREDES NEURONALES COMPETITIVAS HAMMING
REDES NEURONALES COMPETITIVAS HAMMING
ESCOM
 
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
Amir Jafari
 

La actualidad más candente (20)

Calidad de Servicio IP-MPLS v2.2
Calidad de Servicio IP-MPLS v2.2Calidad de Servicio IP-MPLS v2.2
Calidad de Servicio IP-MPLS v2.2
 
3. Propagación de onda en el espacio libre
3. Propagación de onda en el espacio libre3. Propagación de onda en el espacio libre
3. Propagación de onda en el espacio libre
 
IS-IS - Integrated IS-IS v1.0
IS-IS - Integrated IS-IS v1.0IS-IS - Integrated IS-IS v1.0
IS-IS - Integrated IS-IS v1.0
 
Análisis y criterios de cálculo para los enlaces
Análisis y criterios de cálculo para los enlacesAnálisis y criterios de cálculo para los enlaces
Análisis y criterios de cálculo para los enlaces
 
Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6Stack Doble IPv4-IPv6
Stack Doble IPv4-IPv6
 
CCNA Exploration 2 - Chapter 2
CCNA Exploration 2 - Chapter 2CCNA Exploration 2 - Chapter 2
CCNA Exploration 2 - Chapter 2
 
Antenas cardama jofre rius romeu blanch ferrando
Antenas   cardama jofre rius romeu blanch ferrando Antenas   cardama jofre rius romeu blanch ferrando
Antenas cardama jofre rius romeu blanch ferrando
 
Generalidades del protocolo IPv6
Generalidades del protocolo IPv6Generalidades del protocolo IPv6
Generalidades del protocolo IPv6
 
BGP - Border Gateway Protocol v3.0
BGP - Border Gateway Protocol v3.0BGP - Border Gateway Protocol v3.0
BGP - Border Gateway Protocol v3.0
 
Seguridad en redes inalámbricas
Seguridad en redes inalámbricasSeguridad en redes inalámbricas
Seguridad en redes inalámbricas
 
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptxCCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
CCNA 200-301 Chapter 5- Analyzing Ethernet LAN Switching.pptx
 
Tutorial voz ip packet tracer
Tutorial voz ip packet tracerTutorial voz ip packet tracer
Tutorial voz ip packet tracer
 
Protocolo bgp
Protocolo bgpProtocolo bgp
Protocolo bgp
 
Conferencia n° 5
Conferencia n° 5Conferencia n° 5
Conferencia n° 5
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
GRE Tunnel Configuration
GRE Tunnel ConfigurationGRE Tunnel Configuration
GRE Tunnel Configuration
 
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdfCalculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
Calculos-de-Trayectoria-en-Radioenlaces-LOS.pdf
 
REDES NEURONALES COMPETITIVAS HAMMING
REDES NEURONALES COMPETITIVAS HAMMINGREDES NEURONALES COMPETITIVAS HAMMING
REDES NEURONALES COMPETITIVAS HAMMING
 
Modulacion fsk
Modulacion fskModulacion fsk
Modulacion fsk
 
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
CCNA Lab 4-Configuring EtherChannels and optimizing Spanning Tree Protocol on...
 

Similar a Huffman y-lzw

Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
Daniel Gomez Jaramillo
 
Codificación de huffman
Codificación de huffmanCodificación de huffman
Codificación de huffman
Mateo Quizhpi
 
Algoritmos de compresión
Algoritmos de compresiónAlgoritmos de compresión
Algoritmos de compresión
Edwin Narváez
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
Aly Olvera
 
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptxCE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
GustavoGonzales28
 
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptxCE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
GustavoGonzales28
 
Presentacion Foro eulises brazon Josue Baez
Presentacion Foro eulises brazon  Josue Baez Presentacion Foro eulises brazon  Josue Baez
Presentacion Foro eulises brazon Josue Baez
luis752116
 
Sistema ascii y binario
Sistema ascii y binarioSistema ascii y binario
Sistema ascii y binario
FRACISCO QUINGA NASIMBA
 
Algoritmo de compresión de huffman
Algoritmo de compresión de huffmanAlgoritmo de compresión de huffman
Algoritmo de compresión de huffman
David Fernando Valladarez Muñoz
 
Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básica
Julio Ayala Rolón
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2perlallamas
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
Algoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-ToledoAlgoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-Toledo
Belen Toledo
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
vanessa peñafiel
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IJULIO
 
Sistema numérico Laboratorio 4
Sistema numérico Laboratorio 4Sistema numérico Laboratorio 4
Sistema numérico Laboratorio 4
MilagrosAizprua
 
Listas
ListasListas
Direccionamiento de red IPv4
Direccionamiento de red IPv4Direccionamiento de red IPv4
Direccionamiento de red IPv4
Juan Raul Cadillo Leon
 

Similar a Huffman y-lzw (20)

Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Codificación de huffman
Codificación de huffmanCodificación de huffman
Codificación de huffman
 
Algoritmos de compresión
Algoritmos de compresiónAlgoritmos de compresión
Algoritmos de compresión
 
Sistema binario
Sistema binarioSistema binario
Sistema binario
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptxCE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1 (1).pptx
 
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptxCE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
CE143 - S06 Compresión de datos y ecuaciones en diferencias_c1.pptx
 
Presentacion Foro eulises brazon Josue Baez
Presentacion Foro eulises brazon  Josue Baez Presentacion Foro eulises brazon  Josue Baez
Presentacion Foro eulises brazon Josue Baez
 
Sistema ascii y binario
Sistema ascii y binarioSistema ascii y binario
Sistema ascii y binario
 
Algoritmo de compresión de huffman
Algoritmo de compresión de huffmanAlgoritmo de compresión de huffman
Algoritmo de compresión de huffman
 
El sistema binario
El sistema binarioEl sistema binario
El sistema binario
 
Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básica
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Algoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-ToledoAlgoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-Toledo
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{I
 
Sistema numérico Laboratorio 4
Sistema numérico Laboratorio 4Sistema numérico Laboratorio 4
Sistema numérico Laboratorio 4
 
Listas
ListasListas
Listas
 
Direccionamiento de red IPv4
Direccionamiento de red IPv4Direccionamiento de red IPv4
Direccionamiento de red IPv4
 

Último

Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
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
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
YoverOlivares
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
GROVER MORENO
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
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
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
mirellamilagrosvf
 
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
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
joseabachesoto
 
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 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
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
RonaldRozoMora
 
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
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
NicolasGramajo1
 
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
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
leonpool521
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
DavidHunucoAlbornoz
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
AlfonsoRosalesFonsec
 

Último (20)

Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
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
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
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
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
 
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...
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
 
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 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
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
 
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
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
 
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.
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
 

Huffman y-lzw

  • 1. UNIVERSIDAD DE CUENCA Programación III Estructura de Archivos Codificación de Huffman y Algoritmo de Compresión LZW Integrantes: ● Christian Barreto ● Ronaldo Rendón ● Esteban Vizhñay
  • 3. CONCEPTO La codificación Huffman es un algoritmo usado para compresión de datos. El algoritmo de codificación/compresión Huffman se propuso en 1952 como una forma sencilla y óptima de mapear cada símbolo de un alfabeto con un código (codeword) de longitud óptima. La codificación Huffman usa un método específico para elegir la representación de cada símbolo, que da lugar a un código prefijo que representa los caracteres más comunes usando las cadenas de bits más cortas, y viceversa.
  • 4. PROCEDIMIENTO El proceso de asignación de códigos se lleva a cabo mediante la construcción de un árbol binario: Recorrer el árbol en pre-orden hacia el nodo que contiene el carácter con su frecuencia. Los nodos menos probables se unen sucesivamente para formar otro nodo de mayor probabilidad, de forma que cada uno de los enlaces añade un bit al código de los símbolos que estamos juntando. Este proceso termina cuando sólo se dispone de un nodo, de forma que éste representa la raíz del árbol.
  • 5. FACTOR DE COMPRENSIÓN. • La compresión de datos es la reducción del volumen de datos tratables para representar una determinada información empleando una menor cantidad de espacio. • El espacio que ocupa una información codificada (datos, señal digital, etc.) sin compresión es el cociente entre la frecuencia de muestreo y la resolución. Por tanto, cuantos más bits se empleen mayor será el tamaño del archivo.
  • 6. EJEMPLO 1. • Palabra a codificar : LAPTOP 1.Contar el número de peticiones de cada carácter es decir el número de repeticiones de cada uno de los caracteres L A P T O P
  • 7. L A P T O P 1
  • 8. L A P T O P 1 1
  • 9. L A P T O P 1 1 1
  • 10. L A P T O P 1 1 1 1
  • 11. L A P T O P 1 1 1 1 1
  • 12. L A P T O P 1 1 1 1 1 2
  • 13. L A T O P 1 1 1 1 2
  • 14. • Se pone en una lista enlazada los caracteres y sus frecuencias. Y eliminamos los que se repiten (Se deja uno solo). • El siguiente paso es crear un nuevo árbol binario pasando los dos primeros nodos como hojas del árbol. L 1 A 1 T 1 O 1 P 2
  • 15. Null: 2 L:1 A:1 El nodo raíz se guarda como null junto con la suma de las frecuencias de los nodos hijos.
  • 16. • La lista quedaría de esta manera: • El siguiente paso es insertar nuestro árbol a la lista de nodos de forma ordenada; como la frecuencia de nuestro nodo raíz es dos, entonces se colocaría al final de la lista ya que en este caso no hay frecuencias más altas. T 1 O 1 P 2
  • 18. • Repetimos el mismo paso volvemos a tomar los dos primero nodos de la lista y formamos el árbol con el nodo raíz que en la frecuencia es la suma de los hijos. Null:2 T:1 O:1
  • 19. • Ahora insertamos el árbol de manera ordenada en la lista de nodos que teníamos definida anteriormente. P 2 Null 2 Null 2 L:1 A:1 T:1 O:1
  • 20. • Volvemos a tomar los dos nodos siguientes y formamos el árbol. Null: 4 P:2 Null: 2 L:1 A:1
  • 21. • Ahora insertamos el árbol de manera ordenada a nuestra lista. Null 2 Null 4 T:1 O:1 P:2 Null: 2 L:1 A:1
  • 22. Null: 6 Null: 2 Null: 4 T:1 O:1 P:2 Null: 2 L:1 A:1 • Volvemos a tomar los dos primeros nodos de esta lista.
  • 23. • Ahora es momento de poner los pesos de nuestro árbol. Null:6 Null: 3 Null: 3 T:1 O:1 Null: 2 L:1 A:1 P:2 0 1 0 1 0 1 1 0
  • 24. • Los valores de cada una de las letras son: P : 10 T: 00 O: 01 A: 111 L: 110
  • 25. • Entonces la palabra entera es la unión de el valor de cada letra. L A P T O P 110 111 10 00 01 10
  • 26. CONCLUSIONES • La codificación de Huffman es útil para la codificación de las palabras y ponerlas en binario ya que el árbol que se forma para la codificación es binario. • Los resultados de la codificación en algunos casos son diferentes dependiendo del recorrido que se use para el árbol pero existe coincidencia en algunas letras que es el mismo resultado en binario.
  • 28. LZW (Lempel-Ziv-Welch) es un algoritmo de compresión sin pérdida desarrollado por Terry Welch en 1984 La clave del método LZW reside en que es posible crear sobre la marcha, de manera automática y en una única pasada un diccionario de cadenas que se encuentren dentro del texto a comprimir mientras al mismo tiempo se procede a su codificación. Dicho diccionario no es transmitido con el texto comprimido, puesto que el descompresor puede reconstruirlo usando la misma lógica con que lo hace el compresor y, si está codificado correctamente, tendrá exactamente las mismas cadenas que el diccionario del compresor tenía. INTRODUCCIÓN
  • 29. • Los códigos 0-255 de la tabla de códigos siempre se asignan para representar bytes simples del archivo de entrada. • Cuando comienza la codificación, la tabla de códigos contiene sólo las primeras 256 entradas, siendo el resto de la tabla espacios en blanco. • La compresión se consigue utilizando códigos 256 a 4095 para representar secuencias de bytes. • A medida que la codificación continúa, LZW identifica secuencias repetidas en los datos, y los agrega a la tabla de códigos. • La decodificación se logra tomando cada código del archivo comprimido y traduciéndolo a través de
  • 30. EJEMPLO: COMPRESIÓN LZW Ejemplo: Uso del algoritmo de comprensión LZW con la cadena: BABAABAAA
  • 31. EJEMPLO: LZW COMPRESIÓN PASO 1 BABAABAAA P=A C=empty STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66
  • 32. EJEMPLO: LZW COMPRESIÓN PASO 2 BABAABAAA P=B C=empty STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66 AB257A65
  • 33. EJEMPLO: LZW COMPRESIÓN PASO 3 BABAABAAA P=A C=empty STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66 AB257A65 BAA258BA256
  • 34. EJEMPLO: LZW COMPRESIÓN PASO 4 BABAABAAA P=A C=empty STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66 AB257A65 BAA258BA256 ABA259AB257
  • 35. EJEMPLO: LZW COMPRESIÓN PASO 5 BABAABAAA P=A C=A STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66 AB257A65 BAA258BA256 ABA259AB257 AA260A65
  • 36. EJEMPLO: LZW COMPRESIÓN PASO 6 BABAABAAA P=AA C=empty STRING TABLEENCODER OUTPUT stringcodewordrepresentingoutput code BA256B66 AB257A65 BAA258BA256 ABA259AB257 AA260A65 AA260
  • 37. DESCOMPRESIÓN LZW • El descompresor LZW crea la misma tabla de cadenas durante la descompresión. • Comienza con las primeras 256 entradas de tabla inicializadas a caracteres individuales. • La tabla de cadenas se actualiza para cada carácter en el flujo de entrada, excepto el primero. • La decodificación se logra leyendo códigos y traduciéndolos a través de la tabla de códigos que se está construyendo.
  • 38. EJEMPLO: LZW DESCOMPRESIÓN Ejemplo: Usar LZW para descomprimir la secuencia de salida del ejemplo de compresión anterior: <66><65><256><257><65><260>.
  • 39. EJEMPLO: LZW DESCOMPRESIÓN PASO 1 <66><65><256><257><65><260> Old = 65 S = A New = 66 C = A STRING TABLEENCODER OUTPUT stringcodewordstring B BA256A
  • 40. EJEMPLO: LZW DESCOMPRESIÓN PASO 2 <66><65><256><257><65><260> Old = 256 S = BA New = 256 C = B STRING TABLEENCODER OUTPUT stringcodewordstring B BA256A AB257BA
  • 41. EJEMPLO: LZW DESCOMPRESIÓN PASO 3 <66><65><256><257><65><260> Old = 257 S = AB New = 257 C = A STRING TABLEENCODER OUTPUT stringcodewordstring B BA256A AB257BA BAA258AB
  • 42. EJEMPLO: LZW DESCOMPRESIÓN PASO 4 <66><65><256><257><65><260> Old = 65 S = A New = 65 C = A STRING TABLEENCODER OUTPUT stringcodewordstring B BA256A AB257BA BAA258AB ABA259A
  • 43. EJEMPLO: LZW DESCOMPRESIÓN PASO 5 <66><65><256><257><65><260> Old = 260 S = AA New = 260 C = A STRING TABLEENCODER OUTPUT stringcodewordstring B BA256A AB257BA BAA258AB ABA259A AA260AA
  • 44. Este algoritmo comprime muy bien secuencias repetitivas de datos. Como las palabras de código son 12 bits, cualquier carácter codificado único ampliará el tamaño de los datos en lugar de reducirlo. En este ejemplo, 72 bits están representados con 72 bits de datos. Después de que se construye una tabla de cadena razonable, la compresión mejora drásticamente. Ventajas de LZW sobre Huffman: LZW no requiere información previa sobre el flujo de datos de entrada. CONCLUSIONES
  • 45. BIBLIOGRAFÍA • Denecker Koen and Van Overloop Jeroen, An Experimental Comparison of several Lossless Image Coders for Medical Images, 1068-0314/97, 1997 IEEE. • Luis Gabriel Rueda, Manuel Osear Ortega, Un Modelo de Codificación Dinámica del Método de Huffman, para la Compresión de Datos en Línea, 1er. Congreso Argentino de Ciencias de la Computación, Domicilio: Ignacio de la Rosa y Meglioli (5400) San Juan. • https://www.cs.duke.edu/csed/curious/compression/lzw.html • http://es.ccm.net/contents/731-compresion-lzw • http://www.grc.upv.es/docencia/tdm/practicas/P1.pdf • http://joselu.webs.uvigo.es/material/Algoritmo%20de%20Huffman.pdf • https://learn.yancyparedes.net/2013/10/an-implementation-of-the-huffman-code-for- compressing-and-decompressing-strings
  • 46. LINKS: Algoritmo de compresión sin pérdida LZW: https://github.com/EstebanViz/LZW-Ucuenca Codificación de Huffman : https://github.com/EstebanViz/Huffman-C-GUI-GTK-