La
arquitectura básica, está formada por un conjunto de etapas de procesamiento,
ques se puede ver en forma de diagrama de bloques:
Dichas
etapas son aplicadas a cada componente de cada tile de la imagen a comprimir.
Descripción
de las etapas:
Offset:
Las muestras de la imagen, x[n], donde n representa
el punto de coordenadas [n1, n2] de la imagen, con una profundidad de B bits, deben ser valores
con signo en el rango:
Por ello, si las muestras originales de la imagen
son sin signo, como suele pasar en la mayoría de los casos, es necesario añadirles
un offset de −2^(B-1).
Transformada de color: La transformada de
color es opcional, ya que sólo puede ser aplicada cuando se poseen al menos
tres componentes de color y las tres primeras son del mismo tamaño y la misma profundidad
de bits. Se asume que estas primeras tres componentes son RGB, el rojo (Red), el verde (Green) y el azul (Blue).
El objetivo de la transformada de color es
convertir las componentes RGB de la imagen en otras componentes con un modelo
de color diferente, con el fin de reducir la redundancia que existe entre los
canales R, G y B, y poder así aumentar las tasas de compresión.
Como se puede
apreciar en la figura 1.1, existen dos tipos de transformadas de color, una
para el camino irreversible, la ICT, y otra para el camino reversible, la RCT.
La transformada
ICT convierte de RGB a YCbCr. La transformada RCT convierte de RGB a Y’DbDr.
Como hemos
comentado, asumimos que las tres componentes, x0[n], x1[n] y x2[n], son el rojo, xR[n], el verde, xG[n], y el azul, xB[n]. La transformada
ICT es:
Donde:
Con las mismas condiciones que para la
transformada ICT, se define la transformada RCT como sigue:
En nuestro caso,
las imágenes van a cumplir la condición necesaria para aplicar la transformada
de color, ya que van a ser imágenes en color con sólo tres componentes, RGB.
Transformada wavelet: La segunda etapa de minimización entrópica se basa en la transformada wavelet
discreta o DWT (Discrete
Wavelet Transform). Esta
representa los puntos de la imagen a comprimir en un dominio espacio frecuencial
que posee dos ventajas fundamentales: (1) reducir la correlación espacial de
cada componente de la imagen, lo que es esencial de cara a maximizar las tasas
de compresión, y (2) encontrar una representación multiresolución para cada
componente, propiedad que puede ser de ayuda a la hora de procesar imágenes muy
grandes.
A continuación
vamos a describir la DWT desde el punto de vista de la Teoría de los Bancos de
Filtros [9].
Según dicha teoría,
una secuencia unidimensional de N muestras
x[n], n = 0, … ,N − 1 puede ser
representada mediante dos secuencias l[n], n = 0, … , (N/2) −1 y h[n], n = 0, … , (N/2) −1 de tamaño mitad,
donde l[n] es el resultado
de filtrar x[n] usando un filtro
paso bajo L y h[n] es el resultado
de filtrar x[n] mediante un
filtro paso alto H. Este banco de
dos filtros se define de forma que desde el punto de vista de la frecuencia, lo
que el filtro L deja pasar es lo
que H no deja pasar y
viceversa. Por este motivo, la información contenida en las bandas l[n] y h[n] es la misma que
en la secuencia original x[n] que puede ser regenerada
usando los correspondientes filtros de síntesis.
Este proceso de
descomponer una señal en dos señales, una de baja frecuencia y otra de alta
puede aplicarse recursivamente a ambas sub-bandas. Cuando solo se aplica a la
banda de baja frecuencia, se habla de la DWT en su versión diádica (dyadic). Si se aplica a
ambas, obtenemos la DWT en su versión paquetizada (packet). En el caso de
la compresión de imágenes, la forma más utilizada en la diádica porque la energía
se acumula principalmente en la zona de baja frecuencia.
En la figura se muestra gráficamente el proceso
de descomposición aplicado en la DWT diádica unidimensional.
La DWT se
diferencia además de otras transformadas clásicas como la DFT (Discrete Fourier
Transform) o la DCT (Discrete Cosine Transform) en un aspecto fundamental: se
trata de una representación espacio-frecuencial, no únicamente frecuencial.
Gracias a esto es posible seleccionar un subconjunto de coeficientes wavelet para reconstruir
solo una parte de la señal original. Esto es muy útil cuando procesamos imágenes
muy grandes y solas podemos visualizar una parte de la imagen.
Ya que estamos
trabajando con imágenes y estas tienen
dos dimensiones, es necesario extender este proceso al caso bidimensional. Por
suerte la DWT diádica es separable, lo que significa que podemos calcular la
DWT diádica bidimensional aplicando la DWT diádica unidimensional primero a las
filas y luego a las columnas de la imagen (o viceversa).
Una descomposición
DWT diádica bidimensional de 2 niveles.
De esta forma,
tras cada fase de descomposición se obtienen cuatro bandas en lugar de dos.
Cuantificación: Cada coeficiente wavelet c se cuantifica
mediante la siguiente expresión:
El estándar
JPEG2000 permite definir un step-size de cuantificación,
(intervalo)b,
especifico de cada sub-banda. Para el camino reversible, el step-size de cuantificación
debe ser necesariamente igual a uno. Por el camino irreversible la cuantificación
recibe el nombre de DZQ, y
por el reversible, el de Ranging.
Ajuste de la ROI: Como se comentó anteriormente, JPEG2000
ofrece mecanismos mediante los cuales el compresor puede asignar una prioridad más
alta a ciertas regiones de la imagen. En esta etapa es donde se realiza la codificación
de la ROI a tener en cuenta en la codificación. El método empleado en el estándar
para la codificación de la ROI es el llamado método MAXSHIFT, que consiste en
desplazar a la izquierda los coeficientes wavelet que conforman la ROI.
Codificación: El codificador
empleado por el estándar JPEG2000 es el codificador MQ, similar al
codificador QM empleado en el estándar
JPEG. El codificador MQ es
empleado también en el estándar JBIG-2. Se trata de un codificador aritmético
binario que permite codificar sin redundancia estadística los planos de bits de
los coeficientes wavelets.
No hay comentarios:
Publicar un comentario