Demostración DCT
Guía para la compresión JPEG-89 usando la DCT
Esta página contiene una aplicación que muestra la compresión JPEG-89 usando la DCT, incluye la variante 'jerarquica' que se usa muy poco. Para más información sobre la compresión JPEG-89 se puede visitar el siguiente artículo sobre JPEG en la Wikipedia, mucho más detallado.
El autor de esta aplicación es Christopher G. Jennings, Doctor en Física que imparte clases en la Universidad 'Simon Fraser' de Canada, puede visitar su página Web en este enlace.
la aplicación precisa que su navegador soporte al menos la versión 2 de Java (runtime). Si la aplicación no se ejecuta correctamente, será el problema más común. Se puede descargar el último 'runtime' de Java de Sun para corregir el problema.
La compresión JPEG-89 implica pérdidas de calidad, esto es debido a que la imagen reconstruida tiene menos información que la original — pero, por fortuna, esa información perdida no se echará de menos. Dos aspectos de la visión humana se aprovechan en este proceso: el hecho de que la información de color es menos importante que la cantidad de luminancia (brillo) y el hecho de que no solemos apreciar los detalles de una imagen que están más 'sobrecargados'.
Para aprovecharnos de la primera circunstacia, el compresor, primero
descompone la imagen en tres 'canales'. El primer canal (Y) contiene la información del brillo (luminancia - es como la versión en blanco y negro de la imagen original). Los otros dos canales (Cb y Cr) contienen la información del color. Cuando alcanzamos la etapa de
compresión, se aplicará con más 'fuerza' a los canales de color (perderán más información). Cuando la imagen se comprime, los planos Cb y Cr reconstruidos serán una pobre imitación de lo que eran originalmente pero no lo apreciaremos en gran medida porque el canal Y (luminancia) se parece más a la imagen real, que es a lo que presta más atención nuestro cerebro.
El segundo aspecto de esta compresión es más complicado y requiere más trabajo y cálculos, a veces parece algo mágico. Primero, definiremos a lo que le vamos a llamar una imagen 'cargada' o 'compleja', este tipo de imagen tiene componentes de 'alta frecuencia' o lo que es lo mismo, la imagen tiene muchos detalles en su composición a corta distancia. Por ejemplo, una tela escocesa forma una imagen de 'alta frecuencia', ya que tiene muchos cambios y detalles, en cambio la tela de una bata de hospital sería un ejemplo de imagen de 'baja frecuencia', ya que es un color liso. A pesar de esto, a cierta distancia, incluso una imagen compleja se 'fusiona' y pierde detalles. Para identificar las zonas de 'alta frecuencia' en nuestras imágenes, se divide la imagen en pequeños cuadrados ( cada cuadrado medirá de forma arbitraria 8x8 pixels). Después se harán algunos 'juegos de manos' usando un proceso llamado
Transformada Discreta del Coseno para 2D (Discrete Cosine Transform - DCT) para transformar la información de cada cuadrado de 8x8 del 'dominio espacial' al 'dominio de la frecuencia'. El dominio espacial es el que conocemos y tratamos (la imagen en el espacio). En este dominio, la información de la esquina superior izquierda del cuadrado es el color o brillo de la esquina superior izquierda del cuadrado que tratamos y en lo respectivo a la esquina inferior derecha, ocurre lo mismo. En el 'dominio de la frecuencia', la información de la esquina superior izquierda del cuadrado es la componente de baja frecuencia de la imagen del cuadrado y conforme nos desplazamos a la esquina inferior derecha, la información representa las componentes de mayor frecuencia de la totalidad del cuadrado. Si no se está familiarizado con este concepto de transformación, todo esto sonará muy extraño. No hay que preocuparse, la aplicación hace un poco más fácil mostrar este concepto de forma gráfica. La conclusión es que podemos despreciar una gran cantidad de información en la zona de la esquina inferior derecha del cuadrado del 'dominio de frecuencia' sin que suponga una gran pérdida en la imagen resultante. Cuando descomprimimos la imagen, reconstruiremos de una forma 'imperfecta' la imagen aplicando la DCT inversa para volver a transformar del dominio en frecuencia al dominio en el espacio, con lo que volveremos a tener la imagen original con la 'alta frecuencia' filtrada en el grado que apliquemos.
Con esta pequeña información acerca del proceso, podemos ver en acción la aplicación y entender mejor los procedimientos. Estos serían los pasos a seguir en la aplicación: