24
1 El algoritmo de compresión de datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES Febrero 2004

El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

  • Upload
    others

  • View
    6

  • Download
    1

Embed Size (px)

Citation preview

Page 1: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

1

El algoritmo de compresión de datos de Lempel Ziv y la

catástrofe del bit

Elvira MayordomoWorkshop MOISES

Febrero 2004

Page 2: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

2

Contenido

• Algoritmos de compresión sin pérdidas• LZ78: idea principal• ¿Cuánto comprime?• La catástrofe del bit

Page 3: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

3

Hoy

• Ziv, Lempel: “Compression of individual sequences via variable rate coding” IEEE Trans. Inf. Th., 24 (1978), 530-536

• Sheinwald: “On the Ziv-Lempel proof and related topics”. Procs. IEEE 82 (1994), 866-871

Page 4: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

4

Algoritmos de compresión

• La entrada y la salida son strings (cadenas, secuencias finitas)

Cx C(x)

compresor

Page 5: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

5

Algoritmos de compresión

• A partir de la salida se puede reconstruir la entrada siempre: lossless compressor

C(x) xD

descompresor

Page 6: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

6

Objetivo

• Comprimir lo máximo posible todos los strings ???

• Eso es imposible, ¿por qué?

• Nos conformamos con comprimir “lo fácil de comprimir”

Page 7: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

7

El LZ78

• Es el algoritmo de compresión más utilizado (y estudiado)

• De él se derivan el compress de Unix, el formato GIF y los algoritmos LZW, LZMW

Page 8: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

8

LZ78: idea principal• Partimos el string en trozos (frases) de forma

que cada trozo es uno de los anteriores más un símbolo

ababbabaaabaaabba

Page 9: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

9

LZ78: idea principal• Partimos el string en trozos (frases) de forma

que cada trozo es uno de los anteriores más un símbolo

ababbabaaabaaabba

Page 10: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

10

LZ78: idea principal

ababbabaabaababbabaa

b

a

a

a

b

Page 11: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

11

LZ78: idea principal

• Numeramos las frases

ababbabaaabaaabba12 3 4 5 6 7 8 9

Page 12: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

12

LZ78: idea principal

• Numeramos las frases

ababbabaaabaaabba12 3 4 5 6 7 8 9

• Cada frase es una de las anteriores más un símbolo

Page 13: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

13

LZ78: idea principal

ababbabaaabaaabba12 3 4 5 6 7 8 9

(0,a) (0,b) (1,b) (2,a) (4,a) (3,a) (1,a) (2,b) (1,)1 2 3 4 5 6 7 8 9

0 es la frase vacía

Page 14: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

14

LZ78: idea principal

• Se trata de “parsear” la entrada en frases diferentes

• ¿Cuál es la salida exactamente?

Page 15: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

15

LZ78

ababbabaaabaaabba12 3 4 5 6 7 8 9

(0,a) (0,b) (1,b) (2,a) (4,a) (3,a) (1,a) (2,b) (1,)1 2 3 4 5 6 7 8 9

• Codificamos (0,a)(0,b)(1,b)(2,a)...

Page 16: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

16

LZ78: la salida

• Codificamos la parte correspondiente a la frase número n que es

(i,s) utilizando log2(n) bits para i

y para el símbolo s, depende de cuantos símbolos diferentes haya

Page 17: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

17

LZ78: ¿cuánto comprime?

• El tamaño de LZ(x) depende sólo del número de frases en que dividimos x

a ab aba abaa abaab 15 símbolos

b a ba bb aa 8 símbolos

Page 18: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

18

LZ78: ¿cuánto comprime?

• Si t(x) es el número de frases en que LZ78 divide a x:

|LZ(x)| = Σ1t(x) (log2(n+1) + log2α )

≈ t(x) ( log2(t(x)) + log2α )

Page 19: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

19

Compresores de estados finitos

• Dado A FSC y una partición cualquieraen frases distintas de x = w(1) ... w(f(x)):

|A(x)| ≥ f(x) log2(f(x)) – o(|x|)

Page 20: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

20

Compresores de estados finitos

• Dado A FSC

limn ≥ limn

• Luego el algoritmo de LZ es asintóticamente mejor que los FSC.

|A(z[1..n])|n

|LZ(z[1..n])|n

Page 21: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

21

El algoritmo LZ

Al ser universal para los compresores de estados finitos, se puede creer que sólo tendrá propiedades “óptimas”

Pero no es así ...

Page 22: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

22

La catástrofe del bit

¿Qué pasa si añades un bit delante de una secuencia muy compresible?

1001010010101010 ...

11001010010101010 ...

Page 23: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

23

Preguntas abiertas

• ¿Existe la catástrofe del bit?

Experimentalmente parece que sí ??

No hay demostración

Page 24: El algoritmo de compresión de datos de Lempel Ziv y la ...webdiis.unizar.es/~elvira/moises/LZonebit.pdfde datos de Lempel Ziv y la catástrofe del bit Elvira Mayordomo Workshop MOISES

24

Preguntas abiertas

• Si existe, ¿cómo la solucionamos?

Aunque sea una solución parcial ...