COMPRESIÓN de DATOS -...

17
1 C C O O M M P P R R E E S S I I Ó Ó N N d d e e D D A A T T O O S S Teor Teorí a de la Informaci a de la Información curso 2005 curso 2005 Temario Teoría de la Información Compresión de Datos Objetivo de la compresión Principales funciones A qué datos se puede aplicar? Tipos de compresión Modelos Métodos sin pérdida (lossless compression) Técnicas con pérdida más difundidas Evaluación de similitud

Transcript of COMPRESIÓN de DATOS -...

1

CC OO MM PP RR EE SS II ÓÓ N N dd e e DD AA TT OO SS

TeorTeoríía de la Informacia de la Informacióónncurso 2005curso 2005

Temario

Teoría de la Información Compresión de Datos

• Objetivo de la compresión

• Principales funciones

• A qué datos se puede aplicar?

• Tipos de compresión

• Modelos

• Métodos sin pérdida (lossless compression)

• Técnicas con pérdida más difundidas

• Evaluación de similitud

2

Compresión de Datos

Teoría de la Información Compresión de Datos

Objetivo: Reducir la cantidad de datos necesarios para representar la información deseada

Principales funciones : • Incrementar la capacidad de almacenamiento de los

dispositivos • Aumentar el ancho de banda de los vínculos digitales

de comunicación• Brindar adicionalmente encriptación de datos

CompresorDatos

originalescanal de comunicacióndisp. almacenamiento

Descompr.Datos

decodificados

Tipos de datos comprimidos• Texto en lenguaje natural• Código fuente y código objeto• Imágenes (B/W, en escala de grises, color)• datos numéricos• gráficos• datos geográficos – mapas de terrenos• sonido – música• datos binarios (Fax, etc.)• video digital• animaciones• HDTV (High Definition TV)• etc.

Teoría de la Información Compresión de Datos

3

Tipos de Compresión

Teoría de la Información Compresión de Datos

Algoritmos sin pérdida (lossless - noiseless compression)• Los datos obtenidos luego del proceso de compresión-

descompresión son idénticos a los originales no hay distorsión de los datos

• La longitud media del código no puede ser menor que la Entropía• Tasas de compresión: 2:1 (texto) a 4:1 (imágenes)

Algoritmos con pérdida (lossy compression)• Es posible desechar algunos datos no relevantes, para reducir

aún más el tamaño de los datoshay cierta distorsión de la información

• La Entropía ya no se considera cota inferior de la longitud media • Tasas de compresión: 4:1 a 32:1 (imág.fijas) o mucho más

(video, etc.)

Modelo de probabilidades

Teoría de la Información Compresión de Datos

(+) requiere una sola pasada sobre los datos(+) no se debe transmitir / almacenar la distribución ( -) la distribución usada puede diferir de los datos reales

Estático

(+) la codificación se adapta a la distribución de los datos( -) requiere dos pasadas( -) se debe transmitir / almacenar la distribución

Semi-estático

(+) requiere una sola pasada(+) la codificación se va adaptando a la distribución real( -) algoritmo y estructuras de datos más complejas

Dinámico

4

Modelo - Codificador

Teoría de la Información Compresión de Datos

Mensaje original MODELO Codificador Mensaje

codificadosímbolo probab. código

símbolopuede usar estadística de orden 0, 1 ó máspuede ser estático, semi-estático o dinámico

Mensaje original

Leer símbolo de entrada Codificar Mensaje

codificado

Actualizar modeloModelo

Esquema dinámico o adaptativo:

Técnicas de Compresión

sin pérdida

• Shannon, Fano• Huffman (estático-semiest.)

• Huffman Dinámico (FGK)• Codificación Aritmética• Algoritmos Lempel - Ziv• Run - Lenght

• Run- Lenght con pérdida• JPEG (standard) • VQ (Cuantificación Vectorial)• Codificación Fractal• DPCM (codif. diferencial)• MPEG (audio/video)

Teoría de la Información Compresión de Datos

con pérdida

5

Algoritmos sin pérdida

(LOOSLESS)

Teoría de la Información Compresión de Datos

• Métodos de compresión estadísticos(codifican un símbolo de la fuente por vez)

• Esquemas basados en diccionario(codifican cadenas de símbolos de la fuente)

Algoritmo de HuffmanP(A) = 0.4P(B) = 0.3P(C) = 0.2P(D) = 0.1

P(A) = 0.4P(B) = 0.3

P(C,D) = 0.3

P(B,C,D) = 0.6P(A) = 0.4

P(A,B,C,D) = 1

Teoría de la Información Compresión de Datos

C D0 1

0 1

1

A0 1

B Árbol de codificaciónde Huffman

Se puede utilizar un modelo estático o semi-estático

6

• Cada nodo tiene asociado un peso (frecuencia)• Ante cada codificación se verifica la Propiedad de Sibling: si los nodos se listan en orden de peso menor a mayor, de abajo hacia arriba y de izquierda a derecha, todos los nodos deben aparecen adyacentes a su hermano en la lista

10 1

Ø 1,a

Ø 1a

1

In: “a” Out: “a”

10 1

Ø 1,b

20 1

1,a

Ø 1b

1 1a

2

In: “b” Out: 0 “b”

Huffman Dinámico – FGK (1)

Teoría de la Información Compresión de Datos

ØÁrbol

Lista Ø

Ejemplo:

(Faller, Gallager, Knuth)

1º) codificar2º) actualizar el árbol

20 1

Ø 2,b

30 1

1,a

Ø 2b

2 1a

3

In: “b” Out: 0 1

No cumple la propiedad de “sibling”

2,b

1,a

El decodificador funciona de manera similar (algoritmo simétrico)

Teoría de la Información Compresión de Datos

10 1

Ø 1,a

30 1

2,b

Ø 1a

1 2b

3

1,a

2,b

Se intercambian los nodos en conflicto :

Huffman Dinámico – FGK (2)

7

0,2

0,6

a

b

c

0,28

0,44

0,2

0,216

a

b

c

0,2032

0,2096

Codificación Aritmética (1)

Mensaje número en el intervalo [0,1)

Teoría de la Información Compresión de Datos

0,2

0,28

a

b

c

0,216

0,248

Rango = lim.superior – lim.inferiorNuevo lim.inferior (simb)= lim.inferior + rango * prob.acum. inferior (simb.)Nuevo lim.superior (simb)= lim.inferior + rango * prob.acum. superior (simb.)

Codificación del mensaje:cualquier número en el rango

[0,2096 , 0,216)1

a

b

c

0,2

0,6

0

0.2

0.4

0.4

Ejemplo: mensaje ‘b a a c’

Codificación Aritmética (2)

Teoría de la Información Compresión de Datos

Problemas:• La operación de contracción del intervalo requiere alta precisión• No se puede enviar el mensaje hasta completar la codificación• Dificultad del decodificador para determinar el fin del mensaje

El decodificador funciona de manera similar (algoritmo simétrico)

Se puede aplicar también sobre modelos dinámicos

Soluciones de implementación:• Se usa aritmética entera en lugar de punto flotante• Se aplica transmisión incremental (cuando los límites comienzan

a tener dígitos en común)• Fin del mensaje: se utiliza un símbolo especial de EOF (con prob.<<

o se indica, previo al mensaje, la longitud (en esq. semi-estáticos)

8

• Código: puntero a una cadena coincidente ya procesada• Ventana finita (LZ77) o infinita (LZ78) • Existe una gran cantidad de variantes de cada uno

(LZ77: LZSS, LZB, LZH, … - LZ78: LZW, LZC, LZT, LZMW, LZJ, LZFG)

a b b a c c a b b a a b ...

Algoritmos LZ (Lempel-Ziv)

Codificación de Diccionario cadenas de elementos de longitud variable

• El compresor es más lento (costo de búsqueda del mejor matching) que el descompresor (sólo debe recuperar la cadena dada por el puntero)

=> algoritmo asimétrico• Los compresores compress, arc, pkzip, arj, GIF se basan en LZ

Teoría de la Información Compresión de Datos

LZ 77

Ejemplo:

Utiliza ventana finita o corredizaN

N – F F(ya procesados) (a procesar)

Puntero:< i , j , a >

Inicio de la cadena longitud

primer símbolo diferente

a

<0,0,a>

a b

<0,0,b>

a b a c

<2,1,c>

a b a c a b a

<4,3,EOF>

Teoría de la Información Compresión de Datos

Se busca el matching más largo en la ventana de símbolos procesados

9

Teoría de la Información Compresión de Datos

LZ78 (1)

LZW Es una variante de LZ78, publicada por Welch (1984)

• Elimina el símbolo al final del puntero pasa a integrar la frase siguiente• Comienza con el diccionario pre-cargado con los símbolos individuales• Cada vez que se codifica se agrega una nueva frase al diccionario

1 a2 b3 c

Ejemplo:¨a b a c a b a c a¨ codific. salida agrega

pre-cargadas

a 1 4 a bb 2 5 b aa 1 6 a cc 3 7 c aa b 4 8 a b aa c 6 9 a c aa 1 ____

Teoría de la Información Compresión de Datos

LZ78 (2)La descompresión requiere:• Leer nro.frase y decodificarla, buscando la cadena de símbolos asociada• Agregar nueva frase al diccionario (última cadena decodif.+ 1º símb. cadena actual)

1 a2 b3 c

Ejemplo:1 2 1 3 4 6 1 entrada salida agrega

pre-cargadas

1 a2 b 4 a b1 a 5 b a3 c 6 a c4 a b 7 c a6 a c 8 a b a1 a 9 a c a

Problema de LZ: llenado del diccionarioEnfoques de solución vaciado y re-inicio / comportamiento estático

10

Run Lenght Coding (RLC)Codificación: secuencia de pares (símbolo, longitud)

longitud = cantidad de valores iguales a símbolo consecutivos

Especialmente usado para imágenes

Ejemplo: c1 c1 c1 c1 c2 c2 c1 c1 c1 c3

Teoría de la Información Compresión de Datos

(c1, 4) (c2,2) (c1,3) (c3, 1)

Imágenes B/W: secuencia de cantidad de blancos y negros alternados (inicia el ´0´ por convención)

Ejemplos: 0 0 0 1 1 0 0 0 0 0 13 2 5 1

Conviene fijar una longitud mínima de corrida y utilizar un bit de flagpara indicar si sigue un par codificado (1) o un símbolo original (0)

1 1 0 0 0 0 1 1 1 0 0 0 2 4 3 2

Algoritmos con pérdida

(LOOSY)

Teoría de la Información Compresión de Datos

11

Run-Lenght con pérdida

Codificación: ( valor, longitud )

valor es la intensidad del primer pixel de la secuencia

se considera un factor de toleracia (calidad de la imagen)

secuencia de símbolos: tono - tol ≤ valor ≤ tono + tol

Teoría de la Información Compresión de Datos

(10 , 6) ( 54 , 6 ) ( 120 , 5 )

Ejemplo:

10 10 12 8 8 9 54 54 55 56 50 50 120 123 121 119 120

tolerancia = 5

Standard JPEG - compresión

∑∑−

=

=⎥⎦⎤

⎢⎣⎡

⋅⋅⋅+⋅⎥⎦

⎤⎢⎣⎡

⋅⋅⋅+⋅⋅⋅⋅

⋅=

1

0

1

0

)2

)12(cos2

)12(cos),(()()(21),(

N

x

N

y Niy

Nixyxpixeljcic

NjiDCT ππ

Transformada discreta del coseno (DCT) :

⎪⎩

⎪⎨⎧

==

01

02

1)(

xsi

xsixC

Teoría de la Información Compresión de Datos

Codificación de Entropía :

codificación Huffman o aritmética y RLC para secuencias de ceros

Codificación de Entropía

Cuantiza-ciónDCT

ImagenOriginal

Imagen Comprimida

DCT ( i, j ) ValorCuantizado ( i, j ) =

Quantum ( i, j )Según factor de calidad

Cuantización :

JPEG (Joint Photographic Experts Group)

12

Teoría de la Información Compresión de Datos

Standard JPEG - descompresión

Anti-transformada :

∑∑−

=

=

⎟⎠

⎞⎜⎝

⎛⎥⎦⎤

⎢⎣⎡

⋅⋅⋅+⋅⎥⎦

⎤⎢⎣⎡

⋅⋅⋅+⋅⋅⋅⋅

⋅=

1

0

1

0 2)12(cos

2)12(cos),()()(

21),(

N

i

N

j Niy

NixyxDCTjcic

Nyxpixel ππ

La decodificación consiste en el proceso inverso (algoritmo simétrico)

ImagenComprimida

DCTinversa

Decuantiza-ción

Decodif. de Entropía

Imagen Reconstruida

Decodificación de Entropía : decodificación Huffman o aritmética y RLC

Valor DCT ’( i, j ) = Valor cuantif.( i, j ) * Quantum ( i, j )Decuantización :

Teoría de la Información Compresión de Datos

Standard JPEG - ejemplos

Imagen original

factor 5 – (10:1) factor 15 (16:1) factor 25 (20:1)

Imágenes descomprimidas

13

Cuantificación Vectorial (VQ)Se codifican bloques de n x n pixeles (vectores) como un índice

a una tabla de vectores representativos (codebook)

Formar el codebook:selección inicial de vectores representativos de la imagenfase de optimización (LBG)

comprimir la imagen: codebook + conjunto de índices que representan cada uno de los bloques de la imagen

Teoría de la Información Compresión de Datos

Algoritmo LBGImagen Original

CodebookInicial

EstablecerParticiones

(codificación)

Calcular distorsión Є

Є < Umbral

Obtener centroide

Imagen Comprimida

si

no

Decodificación:leer codebookpor cada índice del archivo codificado

• Acceder al índice en el codebook• Recuperar el vector correspondiente

Cuantificación Vectorial (VQ)

Teoría de la Información Compresión de Datos

factor 12:1 factor 30:1

=> Procesos asimétricos

14

Compresión Fractal (1)

Fractal: imagen con propiedades de autosimilitud

Pueden ser generados por funciones matemáticas o a partir de un conjunto de transformaciones afines (rotaciones, cambios de escala, desplazamientos)

Teoría de la Información Compresión de Datos

copo de nieve de Koch Set de Mandelbrot

Helecho de Barnsley

Problema : resolver el proceso inverso (dada una imagen →encontrar el conjunto de transformaciones que la describen)

• Propuesta de Barnsley →Teorema del Collage: establecer particiones de la imagen y determinar auto-similitudes (semi-automático)• Propuesta de Fisher → correspondencia entre bloques rangos y dominios considerando transformaciones afines (automático)

Compresión Fractal (2)

Teoría de la Información Compresión de Datos

Dominios Rangosw1

w2

w3

w4

transformaciones afines

(+) las tasas de compresión pueden ser muy altas( -) la búsqueda de transformaciones convenientes es muy costosa

15

Es un proceso iterativo mucho más veloz que la compresión(=> procesos asimétricos)

• Se aplica a partir de cualquier imagen inicial• La imagen generada por la aplicación de las transformaciones es

imagen inicial de la siguiente iteración

Descompresión Fractal

Teoría de la Información Compresión de Datos

Iteración 0 Iteración 1 Iteración 2 Iteración 3 ……. Iteración 10

Compresión de sonido

Teoría de la Información Compresión de Datos

-80

-60

-40

-20

0

20

40

60

80

1

Compresión sin pérdida:

• LZSS + Huffman

• Codificación diferencialSe codifica cada valor como la diferencia con respecto a la muestra anterior

Compresión con pérdida:

• Codificación de silenciosvalores de silencio = cero ± tolerancia se codifican como corrida de nulos (RLC)

16

MPEG (Moving Picture Experts Group )

Standard para compresión de audio e imágenes en movimiento.• Logra tasas de compresión de hasta 200:1, casi a cualquier nivel de

calidad• Video: explota 3 tipos de redundancias:

- Espacial- Temporal- Psicovisual

Compresión de audio-video

Teoría de la Información Compresión de Datos

Codificación intra-frame (imágenes I)con JPEG

+ codific. inter-frame (imágenes P y B)

con predicción de movimiento

Parámetros de evaluación

Relación de compresión (Tam.Original vs. Tam.Comprimido)

Tiempo de compresión

Tiempo de descompresión

Error entre valores originales y reconstruidos

- Error Cuadrático Medio (RMS)

- Error Absoluto promedio

[ ]∑∑ −−

=

=

=1

0

1

0

2),(),('.1 m

x

n

yRMS yxfyxfe

MN

∑∑−

=

=

−=1

0

1

0

),(),´(.1 m

x

n

yabs yxfyxf

MNe

Teoría de la Información Compresión de Datos

Imagen de error

17

Bibliografía

• R.Gonzalez, R.Woods, “Digital Images Processing”, Addisson - Wesley, 1992

• M.Nelson, “The Data Compression Book”, M&T Publishing, 1992

• T. Bell, J.Cleary, I. Witten, “Text Compression”, Prentice - Hall, 1990

• R.Clarke, “Digital Compression of Still Images and Video”, Academic Press, 1995

• G.Wallace, "The JPEG Still Picture Compression Standard", Commun. ACM, Vol.34, pp. 31-44, Apr. 1991

• D. Gall, "MPEG: A video compression standard for multimedia applications“, Commun. ACM, Vol. 34, pp. 46--58, Apr. 1991

Teoría de la Información Compresión de Datos