Sunteți pe pagina 1din 132

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmos bsicos para la compresin sin prdidas


(CTI: Parte II de la Leccin 2, Compresores sin prdidas)

Ramiro Moreno Chiral


Dpt. Matemtica (UdL)

Febrero de 2010

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

1 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

ndice

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

2 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

ndice
1

Algoritmos Huffman Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo Algoritmos LempelZiv Compresin aritmtica

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

3 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Resumen

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

4 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Resumen

Veremos en este apartado

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

4 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Resumen

Veremos en este apartado Por qu los cdigos Huffman son optimales.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

4 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Resumen

Veremos en este apartado Por qu los cdigos Huffman son optimales. El algoritmo del Huffman bsico, algoritmo en dos pasos.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

4 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Resumen

Veremos en este apartado Por qu los cdigos Huffman son optimales. El algoritmo del Huffman bsico, algoritmo en dos pasos. Finalmente, el algoritmo de GallagerKnuth para los Huffman adaptativos o en un paso o universal.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

4 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Cota inferior de la longitud media de un cdigo instantneo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

5 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Cota inferior de la longitud media de un cdigo instantneo


Proposicin La longitud esperada, L, no necesariamente mnima, de un cdigo instantneo d-ario para una fuente simple S = (X , X ), con |X | = r , es L Hd (X ),

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

5 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Cota inferior de la longitud media de un cdigo instantneo


Proposicin La longitud esperada, L, no necesariamente mnima, de un cdigo instantneo d-ario para una fuente simple S = (X , X ), con |X | = r , es L Hd (X ), alcanzndose la igualdad cuando pi = d li , 1 i r , es decir, cuando X tiene una distribucin de probabilidad d-dica respecto a las longitudes de las palabrascdigo.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

5 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Cota inferior de la longitud media de un cdigo instantneo


Proposicin La longitud esperada, L, no necesariamente mnima, de un cdigo instantneo d-ario para una fuente simple S = (X , X ), con |X | = r , es L Hd (X ), alcanzndose la igualdad cuando pi = d li , 1 i r , es decir, cuando X tiene una distribucin de probabilidad d-dica respecto a las longitudes de las palabrascdigo. Para esas fuentes d-dicas los cdigos de Shannon alcanzan su longitud media mnima, igualando la entropa.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 5 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

rboles ponderados por hojas

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

6 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

rboles ponderados por hojas


Denicin

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

6 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

rboles ponderados por hojas


Denicin Dados un rbol con raz T , con r hojas, y un conjunto de pesos F = {f1 , . . . , fr }, fi Z>0 , asociamos a cada hoja un peso fi y a cada vrtice interno la suma de los pesos de las hojas descendientes de ese vrtice.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

6 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

rboles ponderados por hojas


Denicin Dados un rbol con raz T , con r hojas, y un conjunto de pesos F = {f1 , . . . , fr }, fi Z>0 , asociamos a cada hoja un peso fi y a cada vrtice interno la suma de los pesos de las hojas descendientes de ese vrtice. Llamaremos rbol ponderado por hojas segn F al par (T , F )

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

6 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

rboles ponderados por hojas


Denicin Dados un rbol con raz T , con r hojas, y un conjunto de pesos F = {f1 , . . . , fr }, fi Z>0 , asociamos a cada hoja un peso fi y a cada vrtice interno la suma de los pesos de las hojas descendientes de ese vrtice. Llamaremos rbol ponderado por hojas segn F al par (T , F ) y denimos el peso de (T , F ) como
r

Peso(T ) =
i=1

fi hi ,

siendo hi , 1 i r , los niveles de las hojas de T .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

6 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

7 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo
Denicin Sea C un cdigo instantneo par a una fuente S con estadstica F = {f1 , . . . , fr }, y sea T su rbol de representacin literal.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

7 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo
Denicin Sea C un cdigo instantneo par a una fuente S con estadstica F = {f1 , . . . , fr }, y sea T su rbol de representacin literal. Llamaremos rbol ponderado asociado a C al rbol ponderado por hojas de T segn F .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

7 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo
Denicin Sea C un cdigo instantneo par a una fuente S con estadstica F = {f1 , . . . , fr }, y sea T su rbol de representacin literal. Llamaremos rbol ponderado asociado a C al rbol ponderado por hojas de T segn F . Llamaremos costo del cdigo C al peso de su rbol ponderado asociado.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

7 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo
Denicin Sea C un cdigo instantneo par a una fuente S con estadstica F = {f1 , . . . , fr }, y sea T su rbol de representacin literal. Llamaremos rbol ponderado asociado a C al rbol ponderado por hojas de T segn F . Llamaremos costo del cdigo C al peso de su rbol ponderado asociado. Diremos que C es un cdigo de costo mnimo, o un cdigo optimal, si cualquier otro cdigo instantneo sobre S tiene un costo mayor o igual.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

7 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo


0 0 0 10 0 110 1 1 1 111

Asociamos a las hojas del rbol del cdigo C sus frecuencias absolutas como pesos,

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo


; 100 0 0; 50 0 10; 30 0 110; 15 1 ; 50 1 ; 20 1 111; 5

Asociamos a las hojas del rbol del cdigo C sus frecuencias absolutas como pesos, C = {0, 10, 110, 111} F = {50, 30, 15, 5}, obteniendo un rbol ponderado por hojas segn F .
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo


; 100 0 0; 50 0 10; 30 0 110; 15 1 ; 50 1 ; 20 1 111; 5

El peso,

fi hi , del rbol asociado a C es

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo


; 100 0 0; 50 0 10; 30 0 110; 15 1 ; 50 1 ; 20 1 111; 5

El peso,

fi hi , del rbol asociado a C es

Peso(TC ) = 50 1 + 30 2 + 15 3 + 5 3 = 170.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Costo de un cdigo: Ejemplo


; 1 0 0; 05 0 10; 03 0 110; 015 1 ; 05 1 ; 02 1 111; 005

Ntese que si las frecuencias fuesen relativas el peso sera la longitud media: Peso(TC ) = L = 1 7.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 8 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Hojas hermanas en los rboles ponderados

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

9 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Hojas hermanas en los rboles ponderados


Lema Dado un conjunto ordenado de pesos, F = {f1 f2 fr }, existe un rbol d-ario T ponderado por hojas segn F , de peso mnimo, tal que

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

9 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Hojas hermanas en los rboles ponderados


Lema Dado un conjunto ordenado de pesos, F = {f1 f2 fr }, existe un rbol d-ario T ponderado por hojas segn F , de peso mnimo, tal que Si fj > fk , los niveles de esas hojas verican hj hk .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

9 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Hojas hermanas en los rboles ponderados


Lema Dado un conjunto ordenado de pesos, F = {f1 f2 fr }, existe un rbol d-ario T ponderado por hojas segn F , de peso mnimo, tal que Si fj > fk , los niveles de esas hojas verican hj hk . Los d niveles superiores de T , h1 , . . . , hd son iguales: h1 = = hd .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

9 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Hojas hermanas en los rboles ponderados


Lema Dado un conjunto ordenado de pesos, F = {f1 f2 fr }, existe un rbol d-ario T ponderado por hojas segn F , de peso mnimo, tal que Si fj > fk , los niveles de esas hojas verican hj hk . Los d niveles superiores de T , h1 , . . . , hd son iguales: h1 = = hd . Y las d hojas correspondientes, las de menores frecuencias f1 , . . . , fd , son hermanas, es decir, hijas de un mismo vrtice interno.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

9 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales


Teorema (Huffman)

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales


Teorema (Huffman) Dada una fuente S con r caracteres y un cdigo instantneo C, d-ario, con las propiedades del lema para S,

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales


Teorema (Huffman) Dada una fuente S con r caracteres y un cdigo instantneo C, d-ario, con las propiedades del lema para S, se construye otro cdigo C (r ) , reducido del C, para una fuente con r d + 1 caracteres, que coincide con S en los r d caracteres ms frecuentes y tiene un carcter nuevo con frecuencia la suma de las d frecuencias menores de S.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales


Teorema (Huffman) Dada una fuente S con r caracteres y un cdigo instantneo C, d-ario, con las propiedades del lema para S, se construye otro cdigo C (r ) , reducido del C, para una fuente con r d + 1 caracteres, que coincide con S en los r d caracteres ms frecuentes y tiene un carcter nuevo con frecuencia la suma de las d frecuencias menores de S. Entonces, si C (r ) es optimal para la nueva fuente, C tambin lo es para S.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Construccin de cdigos optimales


Teorema (Huffman) Dada una fuente S con r caracteres y un cdigo instantneo C, d-ario, con las propiedades del lema para S, se construye otro cdigo C (r ) , reducido del C, para una fuente con r d + 1 caracteres, que coincide con S en los r d caracteres ms frecuentes y tiene un carcter nuevo con frecuencia la suma de las d frecuencias menores de S. Entonces, si C (r ) es optimal para la nueva fuente, C tambin lo es para S. Corolario (Cdigo de Huffman) Aplicando sucesivamente el teorema se obtiene un cdigo de Huffman que es optimal.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 10 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Primer paso

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

11 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Primer paso

Dado un chero fuente sobre un alfabeto X = {a, b, c, d, e}, realizamos una lectura, primer paso, que asigne a cada carcter fuente la frecuencia absoluta con que se presenta.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

11 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Primer paso

Dado un chero fuente sobre un alfabeto X = {a, b, c, d, e}, realizamos una lectura, primer paso, que asigne a cada carcter fuente la frecuencia absoluta con que se presenta.

a;12

b;20

c;15

d;41

e;12

Obtenemos as una lista inicial de los caracteres y sus frecuencias absolutas o pesos.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

11 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Primer paso

Dado un chero fuente sobre un alfabeto X = {a, b, c, d, e}, realizamos una lectura, primer paso, que asigne a cada carcter fuente la frecuencia absoluta con que se presenta.

a;12

e;12

c;15

b;20

d;41

Para llegar nalmente a esa lista inicial ordenada por pesos.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

11 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

Consideremos el mismo ejemplo anterior: alfabetofuente X = {a, b, c, d, e} y pesos F = {12, 20, 15, 41, 12}, y la lista ordenada

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

Consideremos el mismo ejemplo anterior: alfabetofuente X = {a, b, c, d, e} y pesos F = {12, 20, 15, 41, 12}, y la lista ordenada
a;12 e;12 c;15 b;20 d;41

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

a;12

e;12

c;15

b;20

24

d;41

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

c;15

b;20

24

d;41

a;12

e;12

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

c;15

b;20

24

35

d;41

a;12

e;12

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

24

35

d;41

a;12

e;12

c;15

b;20

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

24

35

d;41

59

a;12

e;12

c;15

b;20

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

d;41

59

24

35

a;12

e;12

c;15

b;20

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman

d;41

59

100

24

35

a;12

e;12

c;15

b;20

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: construccin del rbol de Huffman
100

d;41

59

24

35

a;12

e;12

c;15

b;20

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

12 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

13 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0 1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0 1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0

100
1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0 1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0

110
1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz
0 1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Compresor Huffman bsico


Segundo paso: codicacin

Codicamos la secuencia ejemplo acd.


raiz

0
1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 13 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

14 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico


Construdo el rbol Huffman a partir de la estadstica, decodicamos la secuencia 1001100.
raiz
0 1

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 14 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico


Construdo el rbol Huffman a partir de la estadstica, decodicamos la secuencia 1001100.
raiz
0

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 14 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico


Construdo el rbol Huffman a partir de la estadstica, decodicamos la secuencia 1001100.
raiz
0

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 14 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico


Construdo el rbol Huffman a partir de la estadstica, decodicamos la secuencia 1001100.
raiz
0

0 a

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 14 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Descompresor Huffman bsico


Construdo el rbol Huffman a partir de la estadstica, decodicamos la secuencia 1001100.
raiz
0

a
Ramiro Moreno (Matemtica, UdL)

b
Febrero de 2010 14 / 25

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Un cdigo universal es el que no depende de la estadstica de la fuente y por ello es de aplicacin universal.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Un cdigo universal es el que no depende de la estadstica de la fuente y por ello es de aplicacin universal. Los cdigos adaptativos Huffman, CAH, son universales, en cambio el Huffman bsico no.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Caractersticas bsicas de los CAH

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Caractersticas bsicas de los CAH Se construyen rboles de Huffman dinmicos: El carcter (k + 1)-simo se codica a partir del rbol construdo con los k caracteres anteriores.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Caractersticas bsicas de los CAH Se construyen rboles de Huffman dinmicos: El carcter (k + 1)-simo se codica a partir del rbol construdo con los k caracteres anteriores. Se mantiene una lista de todos los vrtices del rbol, ordenada por sus pesos .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Introduccin a los cdigos adaptativos Huffman (CAH)


Caractersticas bsicas de los CAH Se construyen rboles de Huffman dinmicos: El carcter (k + 1)-simo se codica a partir del rbol construdo con los k caracteres anteriores. Se mantiene una lista de todos los vrtices del rbol, ordenada por sus pesos . La modicacin de cada rbol mantiene la sibling property o de los vrtices hermanos: dos vrtices hermanos son consecutivos en la lista y el padre de ambos es posterior, no obligatoriamente inmediato, a ambos.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

15 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Lista actual de vrtices y pesos Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Path desde el vrtice actual al raz Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Vrtice actual y sigs. con igual peso Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Vrtice actual (sig. en el path), y sigs. con igual peso Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Intercambio de subrboles y actualizacin del path Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Vrtice actual (sig. en el path), y sigs. con igual peso Vrt. Pesos 1 2 2 3 3 5 4 5
11 32

5 5

6 6

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Intercambio de subrboles y actualizacin del path Vrt. Pesos 1 2 2 3 3 5 4 5 5 5 6 6
11 32

7 10

8 11

9 11

10 21

11 32

11

10

21

10

11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Vrtice actual (sig. en el path), y sigs. con igual peso Vrt. Pesos 1 2 2 3 3 5 4 5 5 5
11

6 6
32

7 10

8 11
Raiz: FIN

9 11

10 21

11 32

11

10

21

10

8 11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Actualizacin del rbol adaptativo


Actualizacin de los pesos del path Vrt. Pesos 1 2 2 4 3 5 4 5 5 6
11

6 6
33

7 10

8 11

9 12

10 21

11 33

12

10

21

10

8 11

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

16 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Tratamiento de los caracteres de peso cero

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

17 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Tratamiento de los caracteres de peso cero

33

12

21

10

11

w x y z

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

17 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Tratamiento de los caracteres de peso cero

33

12

21

10

11

w x y z

C(y)=000010
Febrero de 2010 17 / 25

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Tratamiento de los caracteres de peso cero


33

12

21

10

11

w x z

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

17 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Los cdigos Huffman son optimales Huffman bsico Huffman adaptativo

Tratamiento de los caracteres de peso cero


34

13

21

10

11

1 C(y)=00001

w x z

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

17 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

ndice
1

Algoritmos Huffman Algoritmos LempelZiv Algoritmo LZ77 Algoritmo LZ78 Compresin aritmtica

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

18 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos. Se usa un puntero p y la longitud, l, que indican desde dnde y cunto se reproduce.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos. Se usa un puntero p y la longitud, l, que indican desde dnde y cunto se reproduce. Una reproduccin se construye con el menor p que permita la mayor l.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos. Se usa un puntero p y la longitud, l, que indican desde dnde y cunto se reproduce. Una reproduccin se construye con el menor p que permita la mayor l. Se aade un caracter nuevo para formar una produccin.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos. Se usa un puntero p y la longitud, l, que indican desde dnde y cunto se reproduce. Una reproduccin se construye con el menor p que permita la mayor l. Se aade un caracter nuevo para formar una produccin.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Generalidades

Dada una cadena x X se reproduce a partir de sus prejos. Se usa un puntero p y la longitud, l, que indican desde dnde y cunto se reproduce. Una reproduccin se construye con el menor p que permita la mayor l. Se aade un caracter nuevo para formar una produccin. Denicin Llamaremos complejidad ZivLempel de una cadena x al nmero c(x) de producciones que reproducen x.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

19 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} .

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin p l

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 p l

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 p 1 l 2

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 0 00110 p 1 4 l 2 1

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 0 00110 0 001 10100 p 1 4 5 l 2 1 2

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 0 00110 0 001 10100 0 001 10 1001000 p 1 4 5 7 l 2 1 2 3

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 0 00110 0 001 10100 0 001 10 1001000 0 001 10 100 1000 101 p 1 4 5 7 5 l 2 1 2 3 3

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

20 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LempelZiv
Reproduccin de una secuencia

Sea la secuencia x = 0001101001000101 {0, 1} . secuencia actualproduccin 0 0001 0 00110 0 001 10100 0 001 10 1001000 0 001 10 100 1000 101 Por lo tanto la complejidad es c(x) = 6.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 20 / 25

p 1 4 5 7 5

l 2 1 2 3 3

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar. En cada paso del algoritmo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar. En cada paso del algoritmo
1

se busca el menor p en el pasado que reproduzca la cadena del presente de l mayor;

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar. En cada paso del algoritmo
1

se busca el menor p en el pasado que reproduzca la cadena del presente de l mayor; se forma la produccin con los primeros l + 1 caracteres del presente;

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar. En cada paso del algoritmo
1

se busca el menor p en el pasado que reproduzca la cadena del presente de l mayor; se forma la produccin con los primeros l + 1 caracteres del presente; se codica como C = C1 C2 C3 , con C1 = (p 1)r , C2 = (l)r , C3 es el carcter (l + 1)-simo del presente yr r = |X |;

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

21 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Algoritmo

Se dispone de una memoria buffer con n caracteres: L para el presente y n L para el pasado. Inicialmente el pasado se llena con un carcter arbitrario y se alimenta el presente con los primeros L caracteres de la secuencia a codicar. En cada paso del algoritmo
1

se busca el menor p en el pasado que reproduzca la cadena del presente de l mayor; se forma la produccin con los primeros l + 1 caracteres del presente; se codica como C = C1 C2 C3 , con C1 = (p 1)r , C2 = (l)r , C3 es el carcter (l + 1)-simo del presente yr r = |X |; se desplazan l + 1 caracteres hacia el pasado en todo el buffer y se realimenta el presente con l + 1 nuevos.
Algoritmos bsicos compresin sin prdidas Febrero de 2010 21 / 25

Ramiro Moreno (Matemtica, UdL)

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado presente

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado
0 1 2 3 4 5 6 7 8

presente

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado
0 1 2 3 4 5 6 7 8

presente a a a a a a b a b a c b a

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado
0 1 2 3 4 5 6 7 8

presente a a a a a a a b a a a b b a a c b b a a c c b b a a

a a

a a

a a

a a

a a

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado
0 1 2 3 4 5 6 7 8

presente a a a a a b a a a a b c a a b a b a b a c a c b b b a a a c c c b b b c a a a

a a a

a a a

a a a

a a a

a a b

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ77
Ejemplo

Sea X = {a, b, c}, r = 3, un buffer de n = 18 caracteres, L = 9 y x = aababacbacbacbcacbacbcaa.


pasado
0 1 2 3 4 5 6 7 8

presente a a a a a a b c a a a b a b c c a a b a a b a c b a c b a c b a b b a c a a c b c c b c b b c a a a a a

a a a c

a a a b

a a a a

a a a c

a a b b

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

22 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ78
Ejemplo en la web de Data Compression

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

23 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ78
Ejemplo en la web de Data Compression

En vez de usar un buffer como en el caso LZ77, ahora, en el modelo LZ78, las producciones se almacenan dinmicamente en un diccionario y se codican como punteros a ese diccionario.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

23 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Algoritmo LZ77 Algoritmo LZ78

Codicacin LZ78
Ejemplo en la web de Data Compression

En vez de usar un buffer como en el caso LZ77, ahora, en el modelo LZ78, las producciones se almacenan dinmicamente en un diccionario y se codican como punteros a ese diccionario.

Ved un ejemplo de este modelo en la web de Data Compression, http: //www.data-compression.com/lempelziv.shtml

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

23 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

ndice
1

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

24 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Compresin aritmtica, CA

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

25 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Compresin aritmtica, CA
Para una idea del algoritmo bsico ver las transparencias 138 del chero arit-PPM.pdf, Implementaci dun compresor aritmtic utilitzant el model estadstic PPM, trabajo de CTI en 2001 de Dami Castell y Daniel Llobera.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

25 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Compresin aritmtica, CA
Para una idea del algoritmo bsico ver las transparencias 138 del chero arit-PPM.pdf, Implementaci dun compresor aritmtic utilitzant el model estadstic PPM, trabajo de CTI en 2001 de Dami Castell y Daniel Llobera. Para ms informacin sobre la CA ver el chero ArithCodWNC.pdf, Arithmetic coding for data compression, 1987, de los creadores de este modelo de compresin, I. H. Witten, R. M. Neal y J. G. Cleary.

Ramiro Moreno (Matemtica, UdL)

Algoritmos bsicos compresin sin prdidas

Febrero de 2010

25 / 25

Algoritmos Huffman Algoritmos LempelZiv Compresin aritmtica

Compresin aritmtica, CA
Para una idea del algoritmo bsico ver las transparencias 138 del chero arit-PPM.pdf, Implementaci dun compresor aritmtic utilitzant el model estadstic PPM, trabajo de CTI en 2001 de Dami Castell y Daniel Llobera. Para ms informacin sobre la CA ver el chero ArithCodWNC.pdf, Arithmetic coding for data compression, 1987, de los creadores de este modelo de compresin, I. H. Witten, R. M. Neal y J. G. Cleary. Y para entender los modelos adaptativos en la CA, como el PPM, Prediction by partial match, ver el PPMunbounded.pdf, Unbounded length contexts for PPM, 1997, de J. G. Cleary, W. J. Teahan y I. H. Witten.
Ramiro Moreno (Matemtica, UdL) Algoritmos bsicos compresin sin prdidas Febrero de 2010 25 / 25

S-ar putea să vă placă și