Compresión Aplicada a Imágenes: Transformada Discreta del Coseno (DCT). María Fernanda Benítez León. Franklin Ivan Gualán Carchi Manuel Asdruval Montaño Blacio. Maritza Elizabeth Palacios Morocho. Carrera en Ingeniería en Electrónica y Telecomunicaciones. Universidad Nacional de Loja. Loja, Ecuador.
[email protected] [email protected] [email protected] [email protected]
Abstract_ In this paper, a brief explanation of the Discrete Cosine Transform (DCT) applied in compression to images. The DCT-show several features that make it suitable for the digital image compression method, such as compaction capacity, few errors among others,. also the subject of DFT is because the DCT transform is most widely used in digital image processing In addition to addressing in brief outline of the mechanisms for the implementation of entropy encoding JPEG
Un sistema de compresión consiste en dos bloques, como se muestra en le Figura 1: un codificador y un decodificador. El codificador es alimentado con una imagen de entrada (�,), a partir de la cual obtiene un conjunto de símbolos. Después de la transmisión o del almacenamiento de los símbolos, la representación codificada es procesada por el decodificador, donde se genera una imagen de salida reconstruida �(̂ �,�). Si �(̂ �,�) es una réplica exacta de �(�,�), la codificación recibe el nombre de codificación sin pérdidas. Sin embargo, si la imagen reconstruida presenta un cierto nivel de distorsión, la codificación se denomina como codificación con pérdidas.
Keywords_ DCT, block, IDCT, cuantificar, codificación por entropía, imágenes JPEG
I.
INTRODUCCIÓN.
Una transformada de imagen, aplica una transformación lineal a los píxeles modificando su representación, de forma que obtiene a partir de un conjunto de píxeles estadísticamente dependientes, a un conjunto de coeficientes “más independientes”. Es deseable que una transformada de imagen consiga una decorrelación óptima de los datos, de forma que la compactación de la energía en el dominio transformado sea alta y se concentre la gran mayoría en unos cuantos coeficientes transformados. Del mismo modo, la transformación debe ser reversible, por lo tanto, es requisito que exista la transformada inversa y que ni en el proceso de transformación ni en el de transformación inversa exista pérdida de información. Por último, la transformada tiene que ser computacionalmente manejable.
II.
TRANSFORMADAS PARA COMPRESIÓN DE IMÁGENES
Figura 1 Diagrama de bloques de un sistema de compresión. [1]
Se han propuesto muchas transformadas para la compresión de imágenes, pero las más populares se pueden agrupar en dos categorías según la forma de aplicarse a la imagen:
Las transformadas de bloque no se aplican a la imagen completa, sino que la imagen se divide en sub-imágenes denominadas bloques, y se transforma individualmente cada una de estas sub-imágenes. Algunos ejemplos de transformadas de bloque típicamente usadas en codificación de imágenes son, la Transformada de WalshHadamard (WHT), la Transformada Discreta de Coseno (DCT) y la Transformada de Karhunen-Loève (KLT). Las transformadas de imagen operan con la imagen entera. La más popular es la Transformada Wavelet Discreta (DWT). Está demostrado que las transformadas de imagen, como la DWT, obtienen mejores resultados que las transformadas de bloque, pero tienden a necesitar mayores requerimientos de memoria ya que la imagen completa es procesada como una unidad.[1]
La codificación mediante métodos transformados y en concreto, mediante la DCT, se basa en el esquema de la figura 2. La imagen a comprimir se divide en bloques o sub-imágenes de tamaño reducido sobre las que se aplica la transformación. El resultado de la transformada de cada bloque se cuantifica y posteriormente se aplican códigos eficientes para transmitir o
Televisión Digital.
almacenar esta información. La compresión de imagen se produce principalmente durante el proceso de cuantificación, donde parte de la información se descarta o se cuantifica con un numero de niveles muy reducido. La decodificación de la imagen se realiza aplicando el proceso inverso, como se observa en la Figura 3: los coeficientes se descodifican y se aplica la transformada inversa, de manera que se recuperan los elementos de imagen en el dominio espacial original. Posteriormente, es necesario recomponer la imagen a partir de los bloques en los que se ha dividido originalmente.
Figura 2 Proceso de codificación de una imagen a través de a DCT[2]
Figura 3. Proceso de decodificación de una imagen a través de a DCT[2]
Esta recomposición de la imagen suele ser uno de los principales problemas de los métodos transformados, debido a la cuantificación de los coeficientes transformados, la subimagen se recupera con cierto error respecto a la original. Este error es muy crítico si se produce en los límites de la subimágenes, debido a que al fusionar todos los bloques aparecerán cambios de nivel de gris bruscos, el problema es particularmente notorio con algunas transformadas como la de Fourier o Walsh-Hadamard. La DCT presenta excelentes propiedades en la codificación de los contornos de las subimágenes que, de hecho, ha sido uno de los motivos principales por los que se ha elegido esta transformada en casi todos los estándares de codificación. [2] III.
TRANSFORMADA DISCRETA DEL COSENO (DCT)
La transformada discreta del coseno (DCT) también denominada transformada del coseno es la más ampliamente utilizada en compresión de imágenes. Esta transformada cuenta con una buena propiedad de compactación de energía. La decorrelación o incorrelación de coeficientes es muy importante para compresión, ya que, el posterior tratamiento de cada coeficiente se puede realizar de forma independiente, sin pérdida de eficiencia de compresión. Esta transformada ha tenido una gran aceptación dentro del tratamiento digital de imagen, debido a la alta correlación entre elementos. La DCT provee coeficientes de frecuencias correspondientes a una señal discreta variable en el tiempo (luminancia y crominancia) Dado que aplica la DFT en el sentido horizontal y vertical, lo valores muestreados en el tiempo de cada pixel, tendrían coeficientes muy precisos en frecuencias vertical y horizontal.
La DCT no representa una reducción en el bit-rate sino más bien lo opuesto, debido a que la transformada es equivalente a una multiplicación matemática, resultando en coeficientes más largos que los valores de los pixeles. El concepto de la DCT se basa sintéticamente en tomar cada pixel de un bloque de 8x8 pixeles Ese pixel es una muestra de una señal variable en el tiempo, proporcional a la luminancia y de otra señal variable en el tiempo, proporcional a la crominancia. Estas dos señales son las que se pasaran, separadamente, al dominio de las frecuencias y transmitiéndolos, en lugar de transmitir las funciones de tiempo, como la señal de entrada es discreta, la transformada debe ser también discreta. Una vez realizada el DCT, para decodificar se utiliza la transformada inversa (IDCT) que se utiliza para la obtención de un pixel aplicando la anti transformada DCT a un bloque de coeficientes. La ICDT no es otra cosa que un proceso de mezcla de distintas configuraciones de pixel donde las respectivas amplitudes y polaridades (fases) están dadas por los coeficientes. La DCT se suele usar para representar este registro empleando las componentes espectrales más representativas de tal forma que la señal reconstruida aún tenga semejanza con la señal original. [3] Algunos algoritmos que usan la DCT son: DV AC-3 JPEG MJPEG MPEG-1 MPEG-2 MPEG-4 Vorbis Las características principales que justifican su amplio uso en codificación de imagen con respectos a otros métodos transformados son:
La DCT tiene una buena capacidad de compactación de la energía al dominio transformado, es decir, que la transformada de coseno discreta consigue concentrar la mayor parte de la información en pocos coeficientes transformados. La transformación es independiente de los datos. El algoritmo aplicado no varía con los datos que recibe, como si sucede en otros algoritmos de compresión. Hay fórmulas para el cálculo rápido del algoritmo, como podría ser la FFT para la DFT. Produce pocos errores en los límites de los bloques imagen. La minimización de los errores a los bloques imagen permite reducir el efecto de bloque en las imágenes reconstruidas. Tiene una interpretación frecuencial de los componentes transformados. La capacidad de interpretar los coeficientes desde el punto de vista frecuencial permite aprovechar al máximo la capacidad. [4]
IV.
CONCEPTO MATEMÁTICO DE LA DCT Y DE LA IDCT
En la entrada del codificador, la imagen original es agrupada en bloques de 8x8 y en la salida del codificador la
Televisión Digital.
transformada DCT inversa (IDCT) devuelve los bloques de 8x8 para poder reconstruir la imagen.
Figura 6. DCT Y IDCT[3]
Figura 4. División en bloques de 8x8 pixeles [3]
La ecuación mostrada a continuación representa la definición matemática idealizada de la DCT 8x8
F ( U , V )=
C(u) C( v ) 2 2
[
7
7
∑ ∑ f ( x , y ) cos y=0 y=0
( 2 x+ 1 ) uπ cos 16
La ecuación mostrada a continuación representa la definición matemática idealizada de la IDCT 8x8
[
f ( x , y )=
7
∑
y=0
La DCT toma cada bloque 8x8 y lo descompone en 64 señales de una base ortogonal, estas señales cada una de ellas contiene una de las 64 frecuencias espaciales únicas que comprenden el espectro de la señal de entrada. En cambio, la salida de la DCT va ser un conjunto de 64 amplitudes de señal de la base o coeficientes cuyos valores son determinados solo por una señal de 64 puntos de entrada en específica. Los coeficientes con frecuencias iguales a cero en las dos dimensiones se le denomina coeficientes DC en cambio a los restantes ( 2 y63+1se) los vπ denomina coeficientes AC.
7
C(u) C (v ) ( 2 x+ 1 ) uπ F ( U , V ) cos ∑ 2 y=0 2 16
]
Una 16 vez que los valores de la imagen han variado lentamente entre pixeles consecutivos, el proceso de la DCT realiza la compresión de los datos que se encuentran concentrados en su mayor parte de la señal en las frecuencias espaciales bajas. En un bloque típico der 8x8 de una imagen normal casi todas las frecuencias espaciales tienen una amplitud cero (o2aproximado y +1 ) vπ a cero y estas no son codificadas. Ya en el decodificador cos la IDTC realiza el proceso contrario, toma los 64 16DCT y reconstruye una imagen con 64 puntos de coeficientes salida sumando las señales base [3].
]
V.
CUANTIFICACIÓN.
La cuantificación nos permite reducir la precisión con la que los coeficientes de la DCT se representan cuando se convierte la DCT a una representación entera. Esto puede ser muy importante en compresión de imagen, en donde se tiende a anular muchos coeficientes- especialmente los de altas frecuencias espaciales. Los valores cuantificados pueden ser asignados individualmente para cada coeficiente DCT, utilizando el criterio basado en la visibilidad de las funciones base. Figura 5. Representación gráfica [3]
A. Ejemplo: Un bloque de pixel es transformado a un block de coeficientes de frecuencias
Si medimos el umbral de visibilidad de una función base determinada amplitud del coeficiente a partir de la cual la función base es detectable por el ojo humano podemos dividir (cuantificar) los coeficientes por ese valor (con el apropiado redondeo a valores enteros). Si multiplicamos (de cuantificar) los coeficientes así obtenidos por ese valor antes de la reconstrucción, crearemos una condición en la que el ojo no podría detectar ninguna diferencia entre los coeficientes DCT cuantificados y sin cuantificar. Si estamos dispuestos a tolerar algunos "defectos "visibles en la imagen reconstruida, podríamos dividir por un valor más el correspondiente al umbral de visibilidad. Este proceso de ponderación y truncamiento de los coeficientes de la DCT a valores enteros se denomina cuantificación, y el restablecimiento aproximado de la magnitud de los coeficientes originales de la DCT recibe el nombre de de cuantificación.
Televisión Digital.
VI.
APLICACIONES DE LA DTC
Si consultamos la literatura técnica comprobaremos que después de la DFT, la DCT es la más ampliamente utilizada. Esto no es sorprendente, ya que, como hemos comentado la DCT tiene unas características óptimas en cuanto a compactación de energía y además se aproxima a la transformada más adecuada estadísticamente para la decorrelación de una señal (gobernada por un proceso de Markov), es decir a la KLT. El desarrollo de varios algoritmos rápidos para una implementación eficiente de la DCT, que emplean únicamente aritmética real, ha contribuido aún más a su popularidad. Asimismo, la reducción en la complejidad de cálculo de estos algoritmos y la estructura recursiva contribuye a simplificar el hardware notablemente.
Figura 8. Decodificación de una imagen con codificación mediante entropía.
A. Sintaxis y orden de los datos.
Como se ha mencionado anteriormente, la DCT es ortogonal y separable. Esto implica que una DCT bidimensional pueda implementarse mediante dos transformadas unidimensionales. Esta propiedad permite que los algoritmos desarrollados para una dimensión puedan extenderse directamente a dos dimensiones Esto es una ventaja desde el punto de vista de simulación y también para la realización del hardware. La DCT es una de las principales herramientas de compresión de datos para aplicaciones en teleconferencia, videoteléfonos, transmisión de imagen progresiva, videotexto, HDTV, etc... En lo que se refiere al tratamiento digital de imágenes.
VII.
CODIFICACIÓN POR ENTROPÍA.
JPEG se refiere a una amplia variedad de métodos de compresión de imágenes recolectados en un solo estándar, la cual tiene compresión tanto con pérdidas como sin perdidas, con la adición de la codificación por entropía, la misma que puede ser mediante códigos Huffman o codificación mediante aritmética binaria. Como se puede ver en la Figura 7 el proceso de compresión se descompone en dos funciones básicas:
Modelado de los datos de la imagen Codificador de entropía, de la descripción provista por el modelo en particular de datos de la imagen.
Figura 7. Partes de la codificación de imágenes.
Ambas etapas constituyen procesos separados, por lo que el método de codificación utilizado es irrelevante para el modelado de datos, además, cualquier tabla de codificación especifica de aplicación o imagen puede ser usada.
Figura 9. Modos de operación de la compresión JPEG
Los modos de operación jerárquico JPEG usa múltiples tramas para una imagen dada, en cambio los modos no jerárquicos de JPEG pueden implementar una única trama para cada imagen. Una trama puede incluir:
Tablas (de cuantizacion o codificación Huffman).
Encabezado de trama.
Al menos un segmento escaneado.
Después del primero o varios segmentos escaneados se permite un DNL (Define Number Lines).
Los encabezados y otros controles son indicados mediante marcadores de 16 bits.
Los elementos escaneados es la unidad principal en la compresión JPEG de datos de imágenes, los elementos escaneados se componen de un número mayor o igual a uno de segmentos entropía cidificada (ECS) y marcadores de perdida (RST), los RST permiten la recuperación de errores de transmisión o decodificación, dentro de cada segmento código
Televisión Digital.
de entropía se encuentra un conjunto de unidades mínimas de código (MCU).
Figura 10. Construcción de los bloques codificados
Finalmente, después de los procesos anteriores los datos están listos para la codificación de entropía, y como se mencionó anteriormente se puede hacer uso de codificación aritmética binaria o mediante códigos Huffman. Aunque, se hace uso de dos esquemas de codificación separados para la codificación de coeficientes DC y AC. Para los coeficientes DC se codifica la diferencia entre el valor actual y el valor anterior para el mismo componente, existe una palabra de código Huffman para cada una de las 16 posibles diferencias. Cada conjunto de diferencias implica un número adicional de bits para complementar la diferencia especifica. Se hace uso de la codificación de Huffman debido a que aprovecha las pequeñas diferencias de bloque a bloque de datos.
VIII.
CONCLUSIONES.
La transformada discreta del coseno (DCT) es una transformada basada en la Transformada de Fourier discreta, pero utilizando únicamente números reales, y es muy utilizada en compresión de imágenes por las múltiples ventajas que presenta en comparación con otras. Solo si la DCT y IDCT se pudieran calcular con exactitud y los coeficientes de la DCT no se cuantificarán se podría reconstruir la imagen original con precisión. El propósito de la cuantificación es conseguir aún más compresión representando los coeficientes DCT sin más precisión que la que es necesaria para conseguir la calidad de la imagen deseada, razón de esto lo que se pretende con este proceso es descartar la información que no es visualmente relevante. La codificación por entropía brinda un mecanismo idóneo para el ahorro de espacios de almacenamiento al reducir la información redundante en imágenes JPEG.
REFERENCIAS [1] V. Rodríguez, Diseño de un codificador de imágenes adaptativo multitransformada mediante el uso de la transformada KARHUNEN-LOÈVE, Universidad Carlos III de Madrid, octubre 2012 [2] O. Díaz, Capitulo 4 Televisión Digital en Montaje de control maestro para audio y video evento: Mundial d futbol sub-17 Peru 2005, Tesis, Universidad Ricardo Palma, Lima Perú 2007 [3] E. Molina, Etapas de la compresión de imágenes en Sistema para compresión de imágenes en Matlab, a través de una serie de GUI, Tesis, Universidad de las Américas Puebla, Cholula, Puebla, México a 13 de mayo de 2004. [4] A. Ibarra, Capítulo 02. Transformada Coseno Discreta, 2012. [5] Gibson J. (2001). Multimedia Communications. DallasTexas. Academic Press, pp 61-79.
Televisión Digital.