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
Top Related