Vous êtes sur la page 1sur 4

Algoritmo de codificacin fuente LempetZix-Welch (LZW)

La mayora de los mtodos de compresin se basan en un anlisis inicial del texto


para identificar cadenas repetidas para armar un diccionario de equivalencias,
asignando cdigos breves a estas cadenas. En una segunda etapa, se convierte el
texto utilizando los cdigos equivalentes para las cadenas repetidas. Esto
requiere dos etapas, una de anlisis y una segunda de conversin y tambin
requiere que el diccionario se encuentre junto con el texto codificado,
incrementando el tamao del archivo de salida.
La clave del mtodo LZW reside en que es posible crear sobre la marcha, de
manera automtica 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 codificacin. Dicho diccionario no es transmitido con el texto comprimido,
puesto que el descompresor puede reconstruirlo usando la misma lgica con que
lo hace el compresor y, si est codificado correctamente, tendr exactamente las
mismas cadenas que el diccionario del compresor tena.

Ejemplo 1. Compresin y Descompresin LZW


La cadena de entrada estar formada solamente por
A, B y C: ABBABABAC La tabla inicial est formada por los ndices de estos
caracteres: A=1, B=2, C=3.

Figura1 Compresin de Datos

Cdigos obtenidos en la compresin (1, 2, 2, 4, 7, 3)

Figura2 Descompresin de Datos.

Ejemplo 2. Compresin LZW


Por ejemplo, supongamos que disponemos de un alfabeto con 3 letras A, B, C.
Queremos codificar la palabra ABACABA.
Primero codificamos el alfabeto: c(A)=0, c(B)=1, c(C)=2.
Los pasos del algoritmo son:

Diccionario

Cdigo

AB

BA

AC

CA

AB

AB

ABA

A
La frase codificada sera ABACABA=010230 (fijndonos en la primera columna:
C).

Ejercicio. Compresin LZW


Utilizando el algoritmo LZW calificar la siguiente secuencia:
10101101001001110101000011001110101100011011
Se agrupan de modo que no se repita ninguna.
1

10

11

00

100

11

010

100

01

00

11

10

1000
1011

Codificacin
1 2 3

10

11

12

13

14

15

16

1 0 10

11

01

00

100

111

010

100
0

011

001

110

101

100
01

101
1

11

21

22

32

41

52

71

51

61

42

31

101

141

000
11

001
01

001
00

001
10

010
01

010
10

011
10

010
11

011
01

010
00

001
11

101
01

111
01

Posici
n
Asigna
cin
-

12

Reprec
.
1 0 000
10

cdigo

Decodificacion
Codig
o

1 0 000
10

000
11

001
01

001
00

001
10

010
01

010
10

011
10

010
11

011
01

010
00

001
11

101
01

111
01

10

14

11

01

00

100

111

010

100
0

01

001

110

101

100
01

101
1

posici
on
1 0 10
Asign
a.

Vous aimerez peut-être aussi