Algoritmo Lempel-Ziv 2007

21
 Algoritmo Lempel-Ziv Diana Delgado Jorge Reynoso

Transcript of Algoritmo Lempel-Ziv 2007

Page 1: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 1/21

AlgoritmoLempel-ZivDiana Delgado

Jorge Reynoso

Page 2: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 2/21

Algoritmo Lempel-ZivCreado por Jacob Ziv y Abraham Lempel

en Mayo de 1977.

Se usa para codificar archivos detexto/binarios.

Comprimir/descomprimir bajo Unix.

Mismo software de compresión para PC y

MAC.

Page 3: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 3/21

Algoritmo Lempel-Ziv

Es una de las alternativas a Huffman. Existenvarias otras derivadas como LZW (Lempel-Ziv-Welch), que es usado en programas de

compresión como el compress de UNIX. Se utiliza para comprimir en el formato de

imágenes GIF, ya que tiene un menor ratio decompresión, ofrece mejoras en velocidad y

uso de memoria.

Page 4: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 4/21

La idea en que se basa LZresulta simple

Busca secuencias repetidas dentro de los datos,y cada vez que encuentra una de ellas la

reemplaza por un puntero a la zona en la quecomienza la primera secuencia, más lalongitud que se debe tomar a partir de esaposición.

En caso de que no haya repeticiones, se emitela secuencia como un literal.

Page 5: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 5/21

Compresión basada endiccionario

No se requiere conocimiento de laprobabilidad de aparición de cada

símbolo.

Las cadenas de símbolos que se repitenfrecuentemente puede ser sustituidas por una palabra de un nuevo código que

ocupe menos espacio.

Page 6: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 6/21

Compresión basada endiccionario

Emisor y Receptor construirán tablas contoda la información necesaria para la

compresión/ descompresión.

Son eficientes cuando se utilizan enFicheros y mensajes grandes.

Page 7: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 7/21

Características

Cada entrada al diccionario consiste enun par (n,Ai), donde n es un 'puntero' aotra localización del diccionario y Ai es unsímbolo del alfabeto fuente.

Todas las palabras de código (BloquesCodificados) tendrán la misma longitudpreviamente determinada.

Esta longitud será conocida por el emisor 

y por el receptor.

Page 8: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 8/21

Características

Si la longitud de las palabras de códigose ha fijado en m bits, los m-1 bitsprimeros se utilizan para buscar 

elementos que ya han aparecido en latabla y al último bit se le denomina bit deinnovación.

El número de entradas o posiciones dela tabla es función de la longitud depalabra de código y será de 2 elevado ala m-1.

Page 9: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 9/21

Características

En la cadena de entrada se buscaránsubsecuencias que no coincidan conninguna de las subsecuencias que ya se

han almacenado en la tabla, y seañadirán a la tabla.

Cuando la tabla ya se ha llenado, lasnuevas subsecuencias que se busquen

deberán ser igual a alguna que ya estéen la tabla concatenándole un bit 0 o 1.

Page 10: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 10/21

Características

Es muy importante el tamaño que seescoge para la palabra codificada.Cuanto mayor sea (dentro de un rango)

mayor índice de compresión se logrará. La tabla que se construye durante el

proceso de codificación está formadapor 4 columnas:

Page 11: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 11/21

Características

- La primera columna de la tabla se denomina"Posiciones Numéricas" e indica lasposiciones numéricas de las subsecuencias individualesde la tabla de códigos.

La segunda columna de la tabla se denomina"Subsecuencias" e indica lassubsecuencias individuales de la tabla de códigos. El

último símbolo de cada subsecuencia es el bitde innovación: la presencia de ese bit es lo quediferencia la subsecuencia de las anteriores. El resto delos bits son la subsecuencia raíz.

Page 12: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 12/21

Características

La tercera columna de la tabla se denomina"Representaciones Numéricas" e indica las posicionesnuméricas de las subsecuencias que componen lanueva subcadena.

La cuarta columna de la tabla se denomina "BloquesBinarios Codificados" e indica la codificación para lasubsecuencia correspondiente a esa fila.

Page 13: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 13/21

Codificación:

1.- Inicializar el diccionario con todoslos bloques de largo 1

2.- Se codifica el primer dígito quecompone la representación numéricamediante m-1 bits.

3.- Se le concatena el bit asociado a laposición numérica especificada por el segundo dígito que compone la

representación numérica.

De esta forma obtenemos la palabrade código que se transmitirá.

Page 14: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 14/21

Decodificación

1.- Las dos primeras entradas se inicializancon las subsecuencias 0 y 1. Acontinuación se procesa cada palabra

de código recibida.

2.- Para cada palabra de código setoma la subsecuencia raíz, se interpreta

como si fuera binario natural obteniendoun número decimal que indicará una delas entradas de la tabla.

Page 15: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 15/21

Decodificación

3.- Se toma la subsecuencia asociada aesa entrada de la tabla y se concatenael bit de innovación.

De esta forma obtenemos lasubsecuencia original enviada por elemisor.

Page 16: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 16/21

Ejemplo Compresión:

Page 17: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 17/21

Ejemplo Compresión:

Page 18: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 18/21

Ejemplo Compresión:

Page 19: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 19/21

Ejemplo Descompresión:

Page 20: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 20/21

Ejemplo Descompresión:

Page 21: Algoritmo Lempel-Ziv 2007

5/14/2018 Algoritmo Lempel-Ziv 2007 - slidepdf.com

http://slidepdf.com/reader/full/algoritmo-lempel-ziv-2007 21/21

Ejemplo Descompresión: