compresion de imagen

7
1 USO DE WAVELETS Y ALGORITMOS DE HUFFMAN EN LA COMPRESION DE IMÁGENES. Autores: Alejandro Brito. C.I. E-Mail: [email protected] Gustavo Barrios C.I. 17.575.688 E-Mail: [email protected] Resumen-- Este artículo se enfoca en el problema de reducción de la cantidad de datos requerida para representar una imagen digital. Usando como herramienta principal la aplicación Wavelet para MATLAB 2009B y definiendo funciones adicionales para el estudio del proceso de la compresión de una imagen digital, también explicando el proceso de composición de imágenes usando la DWT así mismo describiendo como recuperar una imagen usando los coeficientes Wavelet, y demuestra la aplicación del algoritmo de Huffman a dichos coeficientes para la generación del código de Huffman a partir de la codificación de una matriz con probabilidad de símbolo. Palabras Clave-- Redundancia de código, relación de compresión, código de Huffman, transformada discreta de wavelet (DWT). Abstract-- This article addresses the problem of reducing the amount of data required to represent a digital image. Using the Wavelet toolbox for MATLAB 2009B and developing new functions for the process of the digital image compression, also explaining the process of decompose a digital image using the DWT so it describing how to recover the image using the Wavelet coefficients, and describes the application of the Huffman’s algorithm to such coefficients to the generation of the Huffman’s code from a symbol probability matrix. Keywords-- Code redundancy, compression ratio, Huffman’s code, discrete wavelet transform (DWT). I. INTRODUCCION. La compresión de imágenes digitales se enfoca en el problema de reducir cierta cantidad de datos requeridos para representar una imagen digital. La compresión es alcanzada removiendo una más de tres redundancias básicas de datos: redundancia de código, que básicamente se presenta cuando se usan palabras código poco optimas;

Upload: gustavo-barrios

Post on 26-Jun-2015

1.089 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Compresion de imagen

1

USO DE WAVELETS Y ALGORITMOS DE HUFFMAN EN LA

COMPRESION DE IMÁGENES.

Autores:Alejandro Brito. C.I. E-Mail: [email protected] Barrios C.I. 17.575.688 E-Mail: [email protected]

Resumen-- Este artículo se enfoca en el problema de reducción de la cantidad de datos requerida para representar una imagen digital. Usando como herramienta principal la aplicación Wavelet para MATLAB 2009B y definiendo funciones adicionales para el estudio del proceso de la compresión de una imagen digital, también explicando el proceso de composición de imágenes usando la DWT así mismo describiendo como recuperar una imagen usando los coeficientes Wavelet, y demuestra la aplicación del algoritmo de Huffman a dichos coeficientes para la generación del código de Huffman a partir de la codificación de una matriz con probabilidad de símbolo.

Palabras Clave-- Redundancia de código, relación de compresión, código de Huffman, transformada discreta de wavelet (DWT).

Abstract-- This article addresses the problem of reducing the amount of data required to represent a digital image. Using the Wavelet toolbox for MATLAB 2009B and developing new functions for the process of the digital image compression, also explaining the process of decompose a digital image using the DWT so it describing how to recover the image using the Wavelet coefficients, and describes the application of the Huffman’s algorithm to such coefficients to the generation of the Huffman’s code from a symbol probability matrix.

Keywords-- Code redundancy, compression ratio, Huffman’s code, discrete wavelet transform (DWT).

I. INTRODUCCION.

La compresión de imágenes digitales se enfoca en el problema de reducir cierta cantidad de datos requeridos para representar una imagen digital. La compresión es alcanzada removiendo una más de tres redundancias básicas de datos: redundancia de código, que básicamente se presenta cuando se usan palabras código poco optimas; redundancia de interpixel, resulta de correlaciones entre los pixeles de una imagen; redundancia psicovisual, viene dada de datos que son ignorados por el sistema de visión humana (información no-esencial).[1]

II. NOCIONES TEORICAS

TRANSFORMADA DE WAVELET.

La transformada wavelet consiste en comparar la señal con ciertas funciones wavelet, las cuales se obtienen a partir de las wavelet madre. La comparación permite obtener unos coeficientes que son susceptibles de interpretación y posterior manipulación. En cualquier caso, un requisito básico es la posibilidad de invertir la transformada, recuperando la señal a partir de esos coeficientes wavelet calculados.

La transformada de wavelet es un caso especial de la transformada de Fourier, y así como para la transformada de Fourier se usan unos algoritmos discretos como el FFT, así mismo en la transformada de wavelet usamos el DWT, es decir, la transformada de Wavelet discreta.

El cálculo de la transformada wavelet para todas las posibles escalas supone una gran cantidad de información. Escoger solo aquellas escalas y posiciones que resulten interesantes para ciertos

Page 2: Compresion de imagen

2

estudios es una tarea difícil. Si se escogen aquellas escalas y posiciones basadas en potencias de dos, los resultados serán más eficaces. Este análisis se denomina DWT.

Para muchas señales la información más importante se encuentra en las frecuencias bajas, mientras que en las altas frecuencias se encuentran los detalles o matices de la señal. Por ejemplo, en el caso de la voz humana, si eliminamos los componentes con altas frecuencias, la voz suena diferente pero se sigue entendiendo su mensaje. En cambio, si lo que se elimina son las componentes de bajas frecuencias, el mensaje se vuelve irreconocible. Por eso el análisis wavelet permite descomponer la señal en aproximaciones y detalles, a éste proceso se le conoce con el nombre de análisis. Este filtrado nos proporciona el doble de datos de los que son necesarios, este problema se soluciona con la operación de diezmado.[2]

SISTEMA DE COMPRESION.

La compresión de imágenes está compuesta por dos bloques estructurales: codificador y decodificador. La imagen f (x , y ) es la entrada del codificador, que crea un set de símbolos de los datos de entrada y los usa para representar la imagen. Si denotamos n1 y n2 como el numero de información, usualmente bits, en la original y codificada imagen, respectivamente, la cantidad de compresión alcanzada puede ser cuantificada numéricamente como la relación de compresión CR.

CR=n1

n2

(1)

La relación de compresión indica que la imagen original tiene n1 bits de información por cada n2 unidad de bit en el set de datos comprimidos.

En el decodificador luego que la imagen ya fue cuantificada, mapeada y codificada por consiguiente comprimida se realiza el proceso inverso del codificador y su salida es una imagen;

f (x , y )

Esta es la imagen de salida reconstruida, esta puede ser una exacta representación de f (x , y ). Si se obtiene la misma representación, entonces, el sistema es llamado libre de error, preservador de información o sin pérdida; de lo contrario, si existe algún nivel de distorsión en la imagen reconstruida, es llamada Reconstrucción con pérdidas, por lo tanto, podemos calcular el error

e (x , y ) entre f (x , y ) y f (x , y ), para

cualquier valor de x y y ;

e (x , y )= f (x , y ) - f (x , y ) (2)El error total entre las dos imágenes esta dado por:erms=[ 1

MN∑x=0

M−1

∑y=0

N −1

[ f ( x , y )−f (x , y )]2]1/2

(3).El error rms (root-mean-square) entre ambas funciones es el error promediado sobre el arreglo MxN .

Otro punto clave a tratar es la redundancia de código y la entropía de la fuente.

REDUNDANCIA DE CODIGO.

Sea una variable aleatoria discreta rk para

k=1,2 , …, L con una probabilidad asociada;

pr=rk=nk

n;k=1,2 , …, L (4).

ENTROPIA

Sea nk es el numero de veces que kth nivel gris aparece en la imagen y n es el número total de pixeles en la imagen.

Para modelar el sistema de codificación se necesita también definir la cantidad la cantidad de información necesitada para representar los niveles de grises en la imagen, entonces, la teoría de información, realizando un modelo de Shannon se obtiene una respuesta fundamental para solucionar el principal problema de la compresión. Es fundamental que la generación de información

Page 3: Compresion de imagen

3

puede ser modelada como un proceso probabilístico que puede ser cuantificado. En concordancia con esta suposición, un evento aleatorio E con probabilidad P(E) se dice que contiene.

I ( E )=log1

P (E) (5)

unidades de información. Si P ( E )=1 (es un

evento que siempre ocurre), P ( E )=0 (sin información atribuida). Por ello, es que no hay incertidumbre asociada con el evento. Entonces, dada una fuente de eventos discretos y aleatorios.

con posibles sets de eventos {a1 , a2 , …, a j } con

probabilidades asociadas

{P ( a1 ) , P (a2 ) ,…, P(a j)}, la información

promedio por fuente de salida es definida como la entropía de la fuente;

H ( E )=−∑j=1

J

P ( a j ) logP (a j)

(6).

Si una imagen es interpretada como una muestra de “fuente de niveles de gris” que es emitida, podemos modelar la probabilidad de símbolo de la fuente usando histogramas de la imagen observada, generada y estimada, llamada estimada de primer orden, ~H , de la entropía de la fuente:

~H (E)=−∑k=1

L

pr (rk ) log pr (rk )

CODIGO DE HUFFMAN.

Cuando la codificación de una imagen a escala de grises. El código de Huffman, contiene el más pequeño número posible de código de símbolos por símbolo fuente.

III. PARTE EXPERIMENTAL.

A. Descomposición de la imagen.

“Si a una imagen le aplicamos DWT obtenemos cuatro tipos de coeficientes: aproximaciones, detalles horizontales, detalles verticales y detalles diagonales. La aproximación contiene la mayor parte de la energía de la imagen, es decir, la

información más importante mientras que los detalles tienen valores próximos a cero. [#]

Al descomponer la imagen, estamos logrando tener una imagen que contendrá la mayor parte de la información, si a esta imagen le aplicamos algoritmo de Huffman para comprimirla, dado a su histograma no comprimirá mucho más que la original, sin embargo, por el proceso de la imagen, ya es más pequeña, además tendremos otras tres imágenes que contienen los detalles, o la matriz de la señal, y que estos tienen valores próximos a cero, esto nos permite tener un histograma más centrado y permitirá comprimir mas al aplicar la codificación de Huffman.

B. Aplicando la DWT.

Usando MATLAB en la aplicación wavelet (wavelet toolbox ‘True Compression 2-D), se obtienen las aproximaciones y su IDWT.

Analizando la imagen usando descomposición básica a nivel 1 se obtuvo la imagen original (a), sintetizada (a.1), los detalles horizontales (b), diagonales (c), verticales (d) y la aproximada (f).

(a) Imagen original.

En la imagen a continuación se tiene poca diferencia entre la original con poco error de sintetizado.

Page 4: Compresion de imagen

4

(a.1) Imagen sintetizada.

Es fácil observar la eliminación de los ceros de la imagen original con respecto a la sintetizada, para un mejor análisis a continuación se muestran los histogramas de (a) y (a.1).

Histograma de imagen original.

Histograma de imagen sintetizada.

Comparando ambos histograma se nota muy poca diferencia de ambos, comparando con el resto de las imágenes.

(b) Detalles Horizontales.

(c) Detalles Diagonales.

Page 5: Compresion de imagen

5

(d) Detalles Verticales.

(e) Imagen aproximada.

La DWT en 3 secuencias obtiene una aproximación de la imagen original, comparando histogramas de (a) y (a.1) con (e).

La imagen aproximada tiene una mayor ocurrencia de aparición de ceros en los pixeles de baja frecuencia de ocurrencia, por lo tanto es fácil ver que el error de la imagen sintetizada es menor que la imagen aproximada.

C. Codificación de la imagen.

Usando variables externas a la herramienta de wavelet calculamos la matriz de probabilidad de símbolos y luego codificándola para reducir los datos redundantes de la imagen original preservando el mismo el código que contiene la información de probabilidad que necesita para regenerar la imagen, luego de obtener la matriz se vectoriza la imagen obteniendo los vectores de probabilidad para generar los símbolos.

Siendo una imagen de 8-bit se obtuvo;

size: [512 512]

min: 32780

hist: [1x235 uint8]

bytes=1006042

Codificando el arreglo y llevando información de códigos a una trama binaria;

bytes=1005066

El total es 1 elemento usando 1005066.

a1=110a2=000a3=001a4=10a5=011

a6=010a7=1111a8=1110

H ( I )=7.6321bit /sC r=0.7050

PSNR=5.887BPP=0.0018616

Según los datos al descomponer la imagen en coeficientes de wavelet y luego aplicar el algoritmo de Huffman se obtiene una imagen comprimida con un máximo de 70%.

IV. CONCLUSIONES.

Según el análisis hecho en este articulo, combinando el uso de ambas herramientas matemáticas permite aumentar considerablemente el grado de compresión, es decir con el uso de la

Page 6: Compresion de imagen

6

combinación de ambas técnicas se puede ahorrar una buena cantidad del ancho de banda a la hora de transmitir las imágenes.

V. BIBLIOGRAFIA.

[1],Gonzalez. C. Rafael. “Digital image processing using MATLAB”

[2] Vetterli, M., Kovacevic, J., “Wavelets and Subband Codic.”