COMPRESIÓN de DATOS

Transcripción

COMPRESIÓN de DATOS
COMPRESIÓN
de DATOS
Teoría de la Información
curso 2005
Temario
•
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
Teoría de la Información
Compresión de Datos
1
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
Datos
originales
Compresor
Descompr.
Datos
decodificados
canal de comunicación
disp. almacenamiento
Teoría de la Información
Compresión de Datos
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
2
Tipos de Compresión
Algoritmos sin pérdida (lossless - noiseless compression)
¾
•
Los datos obtenidos luego del proceso de compresióndescompresió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 datos
hay 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.)
Teoría de la Información
Compresión de Datos
Modelo de probabilidades
¾
Estático
(+) 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
¾
Semi-estático
(+) la codificación se adapta a la distribución de los datos
( -) requiere dos pasadas
( -) se debe transmitir / almacenar la distribución
¾
Dinámico
(+) requiere una sola pasada
(+) la codificación se va adaptando a la distribución real
( -) algoritmo y estructuras de datos más complejas
Teoría de la Información
Compresión de Datos
3
Modelo - Codificador
Mensaje
original
símbolo
probab.
MODELO
código
Codificador
Mensaje
codificado
símbolo
puede usar estadística de orden 0, 1 ó más
puede ser estático, semi-estático o dinámico
Esquema dinámico o adaptativo:
Mensaje
original
Leer símbolo
de entrada
Modelo
Teoría de la Información
Mensaje
codificado
Codificar
Actualizar
modelo
Compresión de Datos
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
Teoría de la Información
con pérdida
• Run- Lenght con pérdida
• JPEG (standard)
• VQ (Cuantificación Vectorial)
• Codificación Fractal
• DPCM (codif. diferencial)
• MPEG (audio/video)
Compresión de Datos
4
Algoritmos sin pérdida
(LOOSLESS)
• 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)
Teoría de la Información
Compresión de Datos
Algoritmo de Huffman
P(A) = 0.4
P(B) = 0.3
P(C) = 0.2
P(D) = 0.1
P(A) = 0.4
P(B) = 0.3
P(C,D) = 0.3
P(B,C,D) = 0.6
P(A) = 0.4
P(A,B,C,D) = 1
1
0
1
A
0
1
Árbol de codificación
de Huffman
B
0
C
1
D
Se puede utilizar un modelo estático o semi-estático
Teoría de la Información
Compresión de Datos
5
Huffman Dinámico – FGK (1)
(Faller, Gallager, Knuth)
• 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
Ejemplo:
Árbol
In: “a”
Out: “a”
In: “b”
Out: 0 “b”
1
Ø
2
0
1
Ø
0
1,a
1
1
1,a
0
Lista
Ø 1
Ø
1
1
Ø
a
1,b
Ø 1
1º) codificar
2º) actualizar el árbol
1
b
1
2
a
Teoría de la Información
Compresión de Datos
Huffman Dinámico – FGK (2)
Out: 0 1
In: “b”
Se intercambian los nodos en
conflicto :
3
3
0
1,a
2
0
2,b
Ø 2
2
b
1
1
2,b
1
0
1
Ø
0
1
3
1
Ø
1,a
Ø 1
a
a
1
2
3
b
No cumple la propiedad
de “sibling”
El decodificador funciona de manera similar (algoritmo simétrico)
Teoría de la Información
Compresión de Datos
6
Codificación Aritmética (1)
Mensaje
número en el intervalo [0,1)
Ejemplo: mensaje ‘b a a c’
0
0.2
0.4
a
0,2
b
a
a
b
b
c
0,2032
b
c
0,6
a
0,2096
0,248
0,44
c
1
0,2
0,216
0,28
0,6
0.4
0,2
0,2
c
0,28
Codificación del mensaje:
cualquier número en el rango
[0,2096 , 0,216)
0,216
Rango = lim.superior – lim.inferior
Nuevo lim.inferior (simb)= lim.inferior + rango * prob.acum. inferior (simb.)
Nuevo lim.superior (simb)= lim.inferior + rango * prob.acum. superior (simb.)
Teoría de la Información
Compresión de Datos
Codificación Aritmética (2)
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
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)
El decodificador funciona de manera similar (algoritmo simétrico)
Se puede aplicar también sobre modelos dinámicos
Teoría de la Información
Compresión de Datos
7
Algoritmos LZ (Lempel-Ziv)
Codificación de Diccionario Æ cadenas de elementos de longitud variable
•
•
•
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 ...
• 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
Utiliza ventana finita o corrediza
N
N–F
(ya procesados)
F
(a procesar)
Puntero:
<i,j,a>
Inicio de la
cadena
longitud
primer
símbolo
diferente
Se busca el matching más largo en la ventana de símbolos procesados
Ejemplo:
a b aa bac ab bc a
<0,0,a> <0,0,b> <2,1,c> <4,3,EOF>
Teoría de la Información
Compresión de Datos
8
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
Ejemplo:
¨a b a c a b a c a¨
codific.
salida
agrega
1
2
3
a
b
c
ab
ba
ac
ca
aba
a
b
a
c
ab
1
2
1
3
4
4
5
6
7
8
ac
6
9
a
1
pre-cargadas
aca
____
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)
Ejemplo:
1213461
entrada
salida
agrega
1
2
3
a
b
c
pre-cargadas
1
2
1
3
4
a
b
a
c
ab
4
5
6
7
ab
ba
ac
ca
6
ac
8
aba
1
a
9
aca
Problema de LZ: llenado del diccionario
Enfoques de solución Æ vaciado y re-inicio / comportamiento estático
Teoría de la Información
Compresión de Datos
9
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
(c1, 4)
(c2,2)
(c1,3)
(c3, 1)
Æ Conviene fijar una longitud mínima de corrida y utilizar un bit de flag
para indicar si sigue un par codificado (1) o un símbolo original (0)
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 1
3
2 5
1
11000011100
02
4
Teoría de la Información
3
2
Compresión de Datos
Algoritmos con pérdida
(LOOSY)
Teoría de la Información
Compresión de Datos
10
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
Ejemplo:
10 10 12 8 8 9 54 54 55 56 50 50 120 123 121 119 120
tolerancia = 5
(10 , 6)
( 54 , 6 )
( 120 , 5 )
Teoría de la Información
Compresión de Datos
Standard JPEG - compresión
JPEG (Joint Photographic Experts Group)
Imagen
Original
DCT
Cuantización
Codificación
de Entropía
Imagen
Comprimida
Transformada discreta del coseno (DCT) :
DCT(i, j) =
N −1 N −1
1
⎡ (2x +1) ⋅ i ⋅π ⎤
⎡ (2 y +1) ⋅ i ⋅π ⎤
⋅ c(i) ⋅ c( j) ⋅ ∑∑( pixel ( x, y) ⋅ cos⎢
⎥⎦ ⋅ cos⎢⎣ 2 ⋅ N
⎥⎦ )
2⋅ N
⎣ 2⋅ N
x=0 y =0
Cuantización :
ValorCuantizado ( i, j ) =
Codificación de Entropía :
⎧ 1
⎪
C ( x) = ⎨ 2
⎪1
⎩
si x = 0
si x ≠ 0
DCT ( i, j )
Quantum ( i, j )
Según factor de calidad
codificación Huffman o aritmética y RLC para secuencias de ceros
Teoría de la Información
Compresión de Datos
11
Standard JPEG - descompresión
La decodificación consiste en el proceso inverso (algoritmo simétrico)
Decodif. de
Entropía
Imagen
Comprimida
Decuantización
DCT
inversa
Imagen
Reconstruida
Decodificación de Entropía : decodificación Huffman o aritmética y RLC
Decuantización :
Valor DCT ’( i, j ) = Valor cuantif.( i, j ) * Quantum ( i, j )
Anti-transformada :
pixel ( x, y ) =
N −1 N −1
⎛
1
⎡ ( 2 y + 1) ⋅ i ⋅ π ⎤ ⎞
⎡ ( 2 x + 1) ⋅ i ⋅ π ⎤
⋅ ∑∑ ⎜ c (i ) ⋅ c( j ) ⋅ DCT ( x, y ) ⋅ cos ⎢
⎥⎦ ⋅ cos ⎢⎣
⎥⎦ ⎟
2⋅ N
2⋅ N
2 ⋅ N i =0 j =0 ⎝
⎣
⎠
Teoría de la Información
Compresión de Datos
Standard JPEG - ejemplos
Imagen original
Imágenes descomprimidas
factor 5 – (10:1)
Teoría de la Información
factor 15 (16:1)
factor 25 (20:1)
Compresión de Datos
12
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 imagen
fase de optimización (LBG)
comprimir la imagen: codebook + conjunto de índices que
representan cada uno de los bloques de la imagen
Algoritmo LBG
Imagen
Original
Establecer
Particiones
(codificación)
Codebook
Inicial
Calcular
distorsión Є
Є<
Umbral
si
Imagen
Comprimida
no
Obtener centroide
Teoría de la Información
Compresión de Datos
Cuantificación Vectorial (VQ)
Decodificación:
ƒ leer codebook
ƒ por cada índice del archivo codificado
•
•
Acceder al índice en el codebook
Recuperar el vector correspondiente
factor 12:1
Teoría de la Información
=> Procesos asimétricos
factor 30:1
Compresión de Datos
13
Compresión Fractal (1)
Fractal: imagen con propiedades de autosimilitud
Helecho de Barnsley
Pueden ser generados por funciones matemáticas o a partir de un
conjunto de transformaciones afines (rotaciones, cambios de escala,
desplazamientos)
copo de nieve de Koch
Set de Mandelbrot
Teoría de la Información
Compresión de Datos
Compresión Fractal (2)
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)
Dominios
Rangos
w1
w2
w3
w4
transformaciones afines
(+) las tasas de compresión pueden ser muy altas
( -) la búsqueda de transformaciones convenientes es muy costosa
Teoría de la Información
Compresión de Datos
14
Descompresión Fractal
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
Iteración 0
Iteración 1
Iteración 2
Iteración 3
……. Iteración 10
Teoría de la Información
Compresión de Datos
Compresión de sonido
Compresión sin pérdida:
80
60
40
20
• LZSS + Huffman
0
-20
1
-40
• Codificación diferencial
-60
-80
Se codifica cada valor como la diferencia
con respecto a la muestra anterior
Compresión con pérdida:
• Codificación de silencios
valores de silencio = cero ± tolerancia
se codifican como corrida de nulos (RLC)
Teoría de la Información
Compresión de Datos
15
Compresión de audio-video
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
Codificación intra-frame (imágenes I)
con JPEG
+
codific. inter-frame (imágenes P y B)
con predicción de movimiento
Teoría de la Información
Compresión de Datos
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)
e
RMS
=
1
N .M
∑∑ [ f '( x, y) − f ( x, y)]
m −1 n −1
2
x =0 y =0
- Error Absoluto promedio
eabs =
1
N .M
Teoría de la Información
m −1 n −1
∑∑
x =0 y =0
f ´(x, y ) − f ( x, y )
Imagen de error
Compresión de Datos
16
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
17

Documentos relacionados