Algoritmo LZW
Algoritmo LZW
Algoritmo LZW
Definición
¿Cómo trabaja?
Decodificación
Definición
Compresión basada en diccionario, que no requiere información previa sobre
el flujo de datos de entrada.
000 01 a
001 02 b
010 03 c
011 04 d
100 05 e
101 06 f
110 07 g
111 08 h
¿Cómo trabaja?
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 08 08 06 05
a b a c d e c g g h a b a c c g g f e
actual sig.
Compresión (output)
01
actual sig.
Compresión (output)
01 02
actual sig.
Compresión (output)
01 02 01
actual sig.
Compresión (output)
01 02 01 03
actual sig.
Compresión (output)
01 02 01 03 04
actual sig.
Compresión (output)
01 02 01 03 04 05
actual sig.
Compresión (output)
01 02 01 03 04 05 03
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07 07
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07 07 08
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11 15
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11 15 07
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11 15 07 06
actual sig.
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11 15 07 06 05 eof
input
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 08 08 06 05 eof
Compresión (output)
01 02 01 03 04 05 03 07 07 08 09 11 15 07 06 05 eof
Descompresión
01 02 01 03 04 05 03 07 07 08 09 11 15 07 06 05
actual sig.
output:
01
actual sig.
output:
01 02
actual sig.
output:
01 02 01
actual sig.
output:
01 02 01 03
actual sig.
output:
01 02 01 03 04
actual sig.
output:
01 02 01 03 04 05
actual sig.
output:
01 02 01 03 04 05 03
actual sig.
output:
01 02 01 03 04 05 03 07
actual sig.
output:
01 02 01 03 04 05 03 07 07
actual sig.
output:
01 02 01 03 04 05 03 07 07 08
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02 01 03
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 07
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 07 07
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 07 07 06
actual sig.
output:
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 07 07 06 05
01 02 01 03 04 05 03 07 07 08 09 11 15 07 06 05
resultado
01 02 01 03 04 05 03 07 07 08 01 02 01 03 03 07 07 06 05
a b a c d e c g g h a b a c c g g f e
mensaje original
a b a c d e c g g h a b a c c g g f e
Otro ejemplo
01 02 01 02 01 02 01 02
a b a b a b a b
actual sig.
Compresión (output)
01
a b a b a b a b
actual sig.
Compresión (output)
01 02
a b a b a b a b
Compresión (output)
01 02 09
a b a b a b a b
Compresión (output)
01 02 09 11
a b a b a b a b
actual sig.
Compresión (output)
01 02 09 11 02
input
01 02 01 02 01 02 01 02
Compresión (output)
01 02 09 11 02
Descompresión
01 02 09 11 02
actual sig.
output:
01
actual sig.
output:
01 02
actual sig.
output:
01 02 01 02 Solución
09 (ab) + 01 (a) -> 11 => aba
actual sig.
output:
01 02 01 02 01 02 01
actual sig.
output:
01 02 01 02 01 02 01 02
01 02 09 11 02
resultado
01 02 01 02 01 02 01 02
a b a b a b a b
mensaje original
a b a b a b a b