Unidad VI: Compresión de imágenes II p. 1/24 Procesamiento Digital de Imágenes Unidad VI (b): Compresión de imágenes con pérdidas Departamento de Informática - FICH Universidad Nacional del Litoral 20 de mayo de 2011
Unidad VI: Compresión de imágenes II p. 2/24 Temas a desarrollar Introducción. Métodos de compresión con pérdidas: Compresión en el dominio espacial. RLC con pérdidas. Codificación predictiva diferencial con pérdidas. Compresión en el dominio frecuencial.
Unidad VI: Compresión de imágenes II p. 3/24 Métodos con pérdida de información Aumento de C R con técnicas que eliminan información psicovisual no significativa. Las técnicas actuales logran: Con C R = 4..20: no existe diferencia con la imagen original. Con C R de 50 ó más: degradación imperceptible o no molesta (algunas técnicas solamente!). Dominio de la compresión: Espacial: RLC con pérdida, codificación predictiva diferencial. Frecuencial: codificación de la transformada.
Unidad VI: Compresión de imágenes II p. 4/24 RLC con pérdida Algoritmo de la ventana dinámica. Permite que los valores dentro de las cadenas sean diferentes, variando en el llamado rango dinámico de la ventana. Rango inicial: fijado a priori. Dinámico: los límites se varían a medida que se leen los grises de la imagen. Agregado de grises a la cadena hasta leer un valor fuera de la ventana. Codificación final con dos valores: longitud de cadena y valor representativo de los grises de la cadena (p. ej., la media).
Unidad VI: Compresión de imágenes II p. 5/24 RLC con pérdida Ejemplo con la secuencia: 80 82 81 79 78 83 85 86 87, con ancho de ventana A v = 7. El primer valor es la referencia: R=80. Se definen los límites de la ventana con: MIN = R (A v 1)=74 y MAX = R+(A v 1)=86 Los valores siguientes, si caen en la ventana, ajustan el rango a la intersección del nuevo rango con el anterior: Rango del 82: [76, 88] = Rango ajustado: [76, 86] Rango del 81: [75, 87] = Rango ajustado: [76, 86] Rango del 79: [73, 85] = Rango ajustado: [76, 85] Rango del 78: [72, 84] = Rango ajustado: [76, 84] Rango del 83: [77, 89] = Rango ajustado: [77, 84] El valor 85 está fuera del rango, por lo que se codifica la cadena encontrada con: L v = 6 y m=(80+82+81+79+78+83)/6=80 Descompresión: L v valores aleatorios en el rango [m L v /2,m+L v /2]
Unidad VI: Compresión de imágenes II p. 6/24 RLC con pérdida Ejemplo:
Unidad VI: Compresión de imágenes II p. 7/24 RLC con pérdida Ejemplo:
Unidad VI: Compresión de imágenes II p. 8/24 Codificación predictiva diferencial Eliminación de redundancia interpíxel. Caso SIN PERDIDAS: Error de predicción: Caso CON PERDIDAS: e n = f n ˆf n Se agrega un cuantificador que absorbe la señal de error y la transforma en un rango de valores limitado. El error cuantizado establece la calidad de la compresión y distorsión asociada al predictor con pérdidas.
Unidad VI: Compresión de imágenes II p. 9/24 Codificación predictiva diferencial Modelo del codificador: La entrada al predictor tiene en cuenta la cuantización al ser función de las predicciones pasadas y el error cuantizado: Modelo del decodificador: ḟ n = ė n + ˆf n
Unidad VI: Compresión de imágenes II p. 10/24 Codificación predictiva diferencial Modulación Delta: ˆf n = α ḟ n 1 y ė n = { +ξ e n > 0 ξ otro con α: coeficiente de predicción (<= 1), ξ : constante positiva. La salida ė n del cuantizador se representa por un bit, de manera que el codificador utiliza códigos de longitud de palabra fija de un bit.
Unidad VI: Compresión de imágenes II p. 11/24 Codificación predictiva diferencial Ejemplo: α = 1, ξ = 6.5. Secuencia {14,15,14,15,13,15,15,14,20,26,27,28,27,27,29,39,49,62, 75,77,78,79,80,81,81,82,82}
Unidad VI: Compresión de imágenes II p. 12/24 Codificación predictiva diferencial Fenómenos de la compresión (comunes también a otros métodos): Si ξ es pequeño: sobrecarga de pendiente (no puede seguir las diferencias grandes de grises). Produce desenfoque de bordes. Solución: aumentar el ξ. Si el ξ es grande y los grises tienen poca variación: ruido granular. Produce superficies granulares (ruido en regiones de gris constante). Solución: disminuir el ξ.
Unidad VI: Compresión de imágenes II p. 13/24 Codificación predictiva diferencial Predictor óptimo: para fijar los parámetros del predictor se plantea minimizar el error cuadrático medio de predicción E { e 2 } { [ ] } 2 n = E fn ˆf n = E {[ f n ] 2 } m α i f n i i=1 Compresión DPCM (modulación de código de pulso diferencial): ˆf(x,y) = 0.97 f(x,y 1) ˆf(x,y) = 0.5 f(x,y 1)+0.5 f(x 1,y) ˆf(x,y) = 0.75 f(x,y 1)+0.75 f(x 1,y) 0.5 f(x 1,y 1) Ampliamente difundido para compresión de audio e imágenes. Ej: en archivos WAV se utiliza una versión adaptativa del predictor (ADPCM).
Unidad VI: Compresión de imágenes II p. 14/24 Codificación predictiva diferencial Ejemplo con cuantizador de diferente longitud:
Unidad VI: Compresión de imágenes II p. 15/24 Codificación de la transformada Métodos que transforman el dominio de la imagen (reversiblemente), y codifican una serie de coeficientes. Se intenta encontrar el mínimo número de coeficientes que concentren la mayor cantidad de energía. Para lograr altas tasas de compresión se cuantizan al mismo nivel, o se descartan, los coeficientes con magnitud muy pequeña (distorsión en la imagen reconstruída). Esquema del proceso de codificación y decodificación:
Unidad VI: Compresión de imágenes II p. 16/24 Selección de la transformada Transformada Discreta Coseno (DCT): dada una imagen f(x,y) de NxN se define como C(u,v)=α(u)α(v) N 1 x=0 N 1 y=0 con u,v=0,1,...,n 1, y α(u)= La IDCT se define como: f(x,y)= N 1 u=0 f(x,y)cos [ [ N 1 α(u)α(v)c(u, v) cos v=0 ] [ ] (2x+1)uπ (2y+1)vπ cos 2N 2N 1 N para u=0 2 N para u=1,2,...,n 1 ] [ (2x+1)uπ cos 2N ] (2y+1)vπ 2N Ventaja: g(u,v,x,y) = h(u,v,x,y) beneficioso para una implementación hardware.
Unidad VI: Compresión de imágenes II p. 17/24 Selección de la transformada Transformada real. Imágenes base: Conjunto de imágenes base fijo para toda la imagen (funciones independientes de los datos de entrada).
Unidad VI: Compresión de imágenes II p. 18/24 Selección de la transformada Representación gráfica de la DCT:
Unidad VI: Compresión de imágenes II p. 19/24 Tamaño de la subimagen Factor importante que se elige para reducir la redundancia entre subimágenes adyacentes A medida que aumenta, se reduce la redundancia y aumenta el nivel de compresión, pero se incrementa también la complejidad computacional. Tamaños estándar: 8x8 y 16x16.
Unidad VI: Compresión de imágenes II p. 20/24 Asignación de bits Después de transformar, la compresión se logra guardando sólo una fracción de los coeficientes obtenidos, mediante una función de enmascaramiento: γ(u,v)= { 1 si T(u,v) satisface el criterio de truncado 0 otro Los coeficientes que se almacenan se eligen por dos métodos: Codificación zonal: se retienen los de máxima varianza. Es el mismo conjunto para todas las subimágenes. Codificación por umbral: se retienen los de mayor magnitud. Conjunto diferente para cada subimagen. Los coeficientes retenidos se cuantizan y codifican. El proceso completo de truncado, cuantizado y codificación de los coeficientes elegidos en la subimagen transformada se denomina asignación de bits.
Unidad VI: Compresión de imágenes II p. 21/24 Asignación de bits Codificación zonal: 1. Se calcula la varianza para cada coeficiente de los (N/n) 2 bloques de nxn. 2. Se igualan a cero las k varianzas más pequeñas y se codifica. 3. Reconstrucción: se obtiene la IDCT para cada bloque. Alternativamente al paso 2, se pueden reordenar las varianzas por magnitud alrededor del origen, y ver el proceso como una máscara de 0 s y 1 s que se aplica sobre los coeficientes:
Unidad VI: Compresión de imágenes II p. 22/24 Asignación de bits Codificación por umbral: en cada subimagen, los coeficientes de mayor magnitud se retienen. Técnica adaptativa, ya que varía la máscara que se aplica a cada subimagen. Criterio de truncado: Umbral global: es el mismo para todas las subimágenes. La razón de compresión varía de imagen a imagen. N-mayores: se varía el umbral en cada subimagen para retener N coeficientes. La razón de compresión se conoce a priori. Umbral variable en función de la localización del coeficiente en la subimagen. Razón de compresión variable entre imágenes.
Unidad VI: Compresión de imágenes II p. 23/24 Estándares de compresión Algoritmo del sistema base JPEG: 1. Subdivisión de la imagen en bloques de 8x8, procesados a continuación de izquierda a derecha y de arriba hacia abajo. 2. Desplazamiento de nivel restando 2 (n 1), con n: número de bits de cada píxel original. Ej: en 256 niveles de grises se resta 127 a cada píxel. 3. Cálculo de la DCT. 4. Cuantización de coeficientes. 5. Reordenamiento de coeficientes. 6. Codificación del coeficiente de brillo mediante DPCM con el brillo del bloque anterior, y código Huffman. 7. Codificación del resto de coeficientes con código Huffman.
Unidad VI: Compresión de imágenes II p. 24/24 Fin de teoría Próxima teoría: seminario de aplicaciones.