Vous êtes sur la page 1sur 11

COMPRESIN DE IMGENES UTILIZANDO LA TRANSFORMADA DE WAVELET Y MEDIANTE EL FORMATO JPEG

Eduardo Israel Brito Vivanco


israedu_18@hotmail.com

Eduardo Luis Campoverde Encalada


eduarce_925@hotmail.com

RESUMEN: El presente trabajo tiene como objetivo, realizar una comparacin tanto cualitativa como cuantitativa de los mtodos de compresin mediante la transformada de wavelet y el formato JPEG. Para la compresin mediante la transformada de Wavelet se ha desarrollado el cdigo en el software Matlab y la codificacin mediante una funcin propia del mismo, como es wcodemat; mientras que la compresin jpeg se realiz mediante un software libre como lo es IMG converter. PALABRAS CLAVE: imagen, compresin, transformada de Wavelet, jpeg, tasa de compresin, nivel de compresin, MSE, N-MSE.

A la hora de hablar de compresin hay que tener presentes dos conceptos: -Redundancia: Datos que son repetitivos o previsibles. -Entropa: La informacin nueva o esencial que se define como la diferencia entre la cantidad total de datos de un mensaje y su redundancia. El objetivo de la codificacin es siempre reducir el tamao de la informacin, intentando que esta reduccin de tamao no afecte al contenido; no obstante, la reduccin de datos puede afectar o no a la calidad de la informacin [1]. Existen dos tipos generales de compresin de datos: -Compresin sin prdida: los datos antes y despus de comprimirlos son exactamente los mismos. En el caso de la compresin sin prdida una mayor compresin solo implica ms tiempo de proceso. La tasa de bits siempre es variable en la compresin sin prdida. Se utiliza principalmente en la compresin de texto [1]. -Compresin con prdida: Un algoritmo de compresin con prdida puede eliminar datos para reducir an ms el tamao, con lo que se suele reducir la calidad. En la compresin con prdida la tasa de bit puede ser constante o variable. Hay que tener en cuenta que una vez realizada la compresin, no se puede obtener la seal original, aunque s una aproximacin cuya semejanza con la original depender del tipo de compresin. Se utiliza principalmente en la compresin de imgenes, videos y sonidos [1]. Dos trminos importantes dentro de la compresin son los referentes a la tasa de compresin y al mnimo error cuadrtico medio (MSE). La tasa de compresin se define como el cociente entre el tamao del archivo original sobre el tamao del archivo comprimido:

1. INTRODUCCIN
Como parte de la materia de Transmisin de Datos de sptimo ciclo y dentro de las prcticas correspondientes, el tema a tratar en este informe es el correspondiente a la compresin de imgenes utilizando la transformada de Wavelet y contrastar los resultados obtenidos con la compresin mediante el formato JPEG.

2. COMPRESIN DE DATOS
La compresin es un caso particular de la codificacin, cuya caracterstica principal es que el cdigo resultante tiene menor tamao que el original [1]. La compresin de datos consiste en la reduccin del volumen de informacin tratable (procesar, transmitir o grabar). En principio, con la compresin se pretende transportar la misma informacin, pero empleando la menor cantidad de espacio [1]. La resolucin viene impuesta por el sistema digital con que se trabaja y no se puede alterar el nmero de bits a voluntad; por ello, se utiliza la compresin, para transmitir la misma cantidad de informacin que ocupara una gran resolucin en un nmero inferior de bits [1].

Mientras mayor es el valor de la tasa de compresin se tiene una mayor compresin del archivo original.

El mnimo error cuadrtico medio (MSE) es una tcnica de anlisis numrico que es usada para estimaciones y cuando hay residuos (errores estimados). Esta tcnica asigna un nmero que indica cun lejos o errados estn los datos observados de los datos originales. Un MSE de cero indica que no hubo error y mientras mayor sea el nmero, mayor ser en error entre la imagen comprimida y la imagen original [2]. Para el clculo del MSE se emplea la siguiente relacin: | |

modo que podamos decidir qu punto deseamos entre una mayor calidad de imagen y, por tanto, un mayor tamao de archivo y una imagen de baja calidad con un menor tamao de archivo. El sistema de compresin que usa JPG se basa en reducir informacin promedindola en las zonas de degradado. A grandes rasgos, esto quiere decir que se calcula el valor de color de algunos pixeles en funcin del color de los pixeles que les rodean. Debido a ello, este formato es muy eficiente a la hora de almacenar imgenes que posean muchos degradados y matices de color, mientras que es casi intil cuando se enfrenta a dibujos con grandes extensiones de colores planos y uniformes o con bordes muy definidos [1].

2.1. COMPRESIN DE IMGENES 2.1.2. TRANSFORMADA DE WAVELET


La compresin de imagen es una forma de compresin de datos en la que se reduce el tamao de los archivos de imagen. Los algoritmos de compresin de imgenes se clasifican en dos tipos bsicos: con prdida de calidad y sin prdida de calidad. En los algoritmos sin prdida de calidad, la informacin es compactada, aunque conservada ntegramente, por lo que se puede recuperar la imagen original. Con prdida de calidad se tratan de formatos que se basan en modelos acerca de cmo el ojo humano capta imgenes y cules son sus limitaciones, eliminando as la informacin menos relevante para alcanzar grados mayores de compresin, y renunciando al mismo tiempo a la posibilidad de recuperar la imagen original. Los algoritmos con prdida se utilizan porque existe un lmite matemtico a la posible compresin sin prdida [1]. La transformada wavelet consiste en comparar la seal con ciertas funciones wavelet, las cuales se obtienen a partir de las wavelet madre. La comparacin permite obtener unos coeficientes que son susceptibles de interpretacin y posterior manipulacin [2]. 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 [2]. El anlisis wavelet permite descomponer la seal en aproximaciones y detalles, a ste proceso se le conoce con el nombre de anlisis. Si a una imagen le aplicamos la DWT obtenemos cuatro tipos de coeficientes: aproximaciones, detalles horizontales, detalles verticales y detalles diagonales. La aproximacin contiene la mayor parte de la energa de la imagen, es decir, la informacin ms importante, mientras que los detalles tienen valores prximos a cero [2]. Al descomponer la imagen, estamos logrando tener una imagen que contendr la mayor parte de la informacin, si a esta imagen le aplicamos adems un mtodo de codificacin como el que nos entrega la funcin de Matlab: wcodemat, la comprimimos an ms. El proceso de compresin de una imagen mediante la transformada de wavelet consiste en descomponer una imagen en las aproximaciones y detalles mencionados anteriormente, luego se procede a eliminar los detalles (son valores cercanos a 0) de la imagen con lo cual se consigue la compresin; a la final, la imagen comprimida contiene nicamente las aproximaciones de la transformada de wavelet aplicada a la imagen original con lo cual se tiene nicamente la informacin ms importante en la imagen comprimida.

2.1.1. EL FORMATO DE IMAGEN JPEG


Este formato fue elaborado por el Joint Photographic Experts Group, de cuyas siglas deriva su nombre. Se trata de un formato abierto, cuyos derechos son libres, y que puede ser usado o implementado en un programa (tanto para reconocerlo como para editarlo o guardar archivos en l) libremente, sin tener que pagar derechos por ello [1]. El formato JPEG (que suele usar nombres de archivo con las extensiones *.JPEG o *.JPG) naci como una respuesta a las limitaciones de otros formatos, entre ellos el GIF, en cuanto a calidad y tamao de archivos [1]. JPEG es un formato de compresin con prdida, esto quiere decir que, al guardar una imagen en este formato, algo de la informacin que contiene esa imagen se reduce, es decir, esta pierde un poco de calidad, aunque, generalmente, esta prdida de calidad es imperceptible al ojo humano. Con ello se consigue reducir el tamao del archivo y, por tanto, mejorar la velocidad de descarga desde las pginas Web. Por otro lado, el formato JPG permite elegir el nivel de compresin que queremos asignar a un archivo, de

TRANSFORMADA DE HAAR
La transformada de Haar es un tipo de transformada de wavelet, en sta se divide los valores

de las aproximaciones y de los detalles para la resolucin de cada iteracin con lo cual se consigue que los detalles tengan valores an ms cercanos a cero que con la transformada de wavelet tradicional; al tener valores de detalles ms cercanos a cero se tiene menor prdida de informacin al eliminarlos en la compresin de la imagen. La transformada de Haar es el tipo de transformada de wavelet que posee menos prdidas de informacin en la compresin de imgenes por lo cual nosotros nos hemos centrado en sta para el desarrollo del presente trabajo.

coeficientes representan los detalles de la imagen tienden a ser valores pequeos, por lo que los omitimos. for cont_nivel = 1:nivel_compres, [cA{cont_nivel},cH{cont_nivel},cV{cont_nivel},cD{cont_n ivel}] = dwt2(imagen1,'haar'); imagen1 = cA{cont_nivel}; end Ahora codificamos la matriz Aproximaciones (informacin) mediante la funcin wcodemat, funcin que retorna el cdigo para la matriz Aproximaciones. ImAproxim = wcodemat(cA{nivel_compres},colores); %codificacin de matriz Aproximaciones Imagen_compres= cat(1,uint8(ImAproxim)); imwrite(Imagen_compres,'imagen_comp.jpg','jpg'); %almacenamiento de la imagen comprimida figure(1) imshow(Imagen_compres); %para presentar la imagen comprimida Por lo que en base al porcentaje de compresin seteado, la imagen comprimida vara en cuanto a tamao (bytes), por lo que su tamao fsico tambin se ve alterado (ms pequea). Para la reconstruccin de la imagen se realiza el proceso inverso al anterior, es decir ahora partimos del nivel de compresin y en base a un ciclo for decreciente realizamos el proceso de recosntruccin de la imagen en base a la matriz Aproximaciones. Para lo cual nos valemos de la funcin idwt2, la transformada de Wavelet discreta y dentro de ella del Mtodo Haar. ReconAproxim = cA{nivel_compres}; for cont_nivel = nivel_compres:-1:1, ReconAproxim = idwt2(ReconAproxim,[],[],[],'haar'); %reconstruccion de imagen a partir de Aproximaciones end Realizado el proceso de reconstruccin, graficamos cuatro imagines la primera que hace mencin a la imagen original, la segunda que representa a la imagen reconstruida, la tercera imagen que representa a la imagen comprimida y la ltima que hace mencin a la imagen comprimida mediante el compresor descargado IMG Convert. axis(handles.original, 'off'); image( imagen, 'Parent', handles.original, 'CDataMapping', 'scaled'); %imagen original axis(handles.reconstruida, 'off'); Imagen_Aproxim= cat(1,uint8(ReconAproxim)); image( Imagen_Aproxim, 'Parent', handles.reconstruida, 'CDataMapping', 'scaled'); %imagen reconstruida imagenc=imread('imagen_comp.jpg'); %adquisicin de imagen comprimida mediante Trans. Wavelet

3. DESCRIPCIN DEL PROGRAMA


Para realizar el proceso de compresin de una imagen primero se adquiere el archivo a comprimir y a partir de ste se obtiene los colores de la imagen: imagen = imread('alexis.jpg'); colores = double(intmax(class(imagen)))+1; El porcentaje de compresin que el usuario sete lo transformamos en nivel de compresin es decir el nmero de iteraciones que va a realizar la transformada de Wavelet para comprimir dicha imagen. por_comp= N; %porcentaje de compresion if(por_comp==50) nivel_compres=1; %nivel de compresion else if (por_comp==25) nivel_compres=2; %nivel de compresion else if (por_comp==12.5) nivel_compres=3; %nivel de compresion else if (por_comp==6.25) nivel_compres=4; %nivel de compresion else if (por_comp==3.125) nivel_compres=5; %nivel de compresion end end end end end Se descompone a la imagen en los cuatro coeficiente: cA = cell(1,nivel_compres); cH = cell(1,nivel_compres); cV = cell(1,nivel_compres); cD = cell(1,nivel_compres); imagen1 = imagen; Y partir del nmero de iteraciones (nivel de compresin) se emplea un ciclo for para realizar el proceso de descomposicin. Para cada iteracin realizada aplicamos la dwt2, la transformada de Wavelet para dos dimensiones y como mtodo dentro de esta transformada el Mtodo de Haar (DWT normalizada) e igualamos la variable imagen1 al valor de Aproximaciones (informacin), pues el resto de %Aproximaciones %Detalles Horizontales %Diagonales Verticales %Detalles de la Diagonal

imagen1=imread('compresor_jpeg.jpg'); %adquisicin de imagen comprimida mediante IMG Convert axis(handles.compresa_codigo, 'off'); image( imagenc, 'Parent', handles.compresa_codigo, 'CDataMapping', 'scaled'); %imagen comprimida codigo axis(handles.compresor_jpeg, 'off'); image( imagen1, 'Parent', handles.compresor_jpeg, 'CDataMapping', 'scaled'); %imagen comprimida IMG Convert Es as que al mostrar las cuatro imgenes podemos compararlas de forma cualitativa, es decir observar la calidad de la imgenes. Para comparar las imgenes: comprimida mediante cdigo y la comprimida mediante IMG Convert (con tcnica jpeg) en forma cuantitativa mostramos los tamaos de archivo de cada una de ellas, la tasa de compresin, el factor de compresin y el error cuadrtico medio MSE como su valor normalizado N-MSE. Tam_o=imfinfo('alexis.jpg'); Tam_orig=Tam_o.FileSize %tamao de imagen original

Tasa_comp1=Tam_orig/Tam_comp1 %Tasa compresion Fact_comp1=1/Tasa_comp1 %Factor compresion imagen1=uint8(imagen1); [in11 in22] = size(imagen1); m1 = min(ref1,in11); m2 = min(ref2,in22); MSE1=mean(mean(mean(((imagen(1:m1,1:m2)imagen1(1:m1,1:m2)).^2)))) %Error MSE NorMSE1 = MSE1 / mean(mean(mean(imagen(1:m1,1:m2).^2))) %Error MSE Normalizado

3.1. INTERFAZ DEL PROGRAMA


La interfaz muestra cuatro imgenes: la imagen original, la imagen reconstruida, la imagen compresa mediante la Transformada de Wavelet y la ltima que hace referencia a la imagen comprimida con IMG Convert (compresor descargado). En dicha interfaz se puede introducir el porcentaje de compresin que se desee, y muestra el tamao de los archivos originales y comprimidos, como la tasa de compresin, el factor de compresin y el error MSE como su valor normalizado N-MSE.

%Para imagen comprimida mediante codigo T. Wavelet Tam_c=imfinfo('imagen_comp.jpg'); Tam_comp=Tam_c.FileSize %tamao de imagen comprimida-codigo Tasa_comp=Tam_orig/Tam_comp %Tasa compresion Fact_comp=1/Tasa_comp %Factor compresion imagen=uint8(imagen); Imagen_compres=uint8(Imagen_compres); [ref1 ref2] = size(imagen); [in1 in2] = size(Imagen_compres); m1 = min(ref1,in1); m2 = min(ref2,in2); MSE=mean(mean(mean(((imagen(1:m1,1:m2)Imagen_compres(1:m1,1:m2)).^2)))) %Erro MSE NorMSE = MSE / mean(mean(mean(imagen(1:m1,1:m2).^2))) %Error MSE Normalizado

Figura 1. Interfaz del Programa

%Para imagen comprimida mediante IMG Convert Tam_c1=imfinfo('compresor_jpeg.jpg'); Tam_comp1=Tam_c1.FileSize %tamao imagen comprimida mediante IMG Convert

4. RESULTADOS DEL PROGRAMA


4.1. Porcentaje de compresin = 50 % 4.1.1. Compresor IMG Converter:

Figura 2. Compresin de imagen en IMG Converter con porcentaje de compresin = 50%

4.1.2. Programa:

Figura 3. Resultados mostrados en la interfaz

Podemos observar que para un porcentaje de compresin del 50% se tiene una tasa de compresin de 6,54679 para la compresin por la transformada de wavelet y una tasa de compresin de 6,82252 para la compresin jpeg; adems, el mnimo error cuadrtico medio normalizado es de 0,566183 para la compresin por la transformada de wavelet y de 0,582139 para la compresin jpeg. Cualitativamente, podemos observar las imgenes y podemos determinar que en cuanto a los rasgos de las imgenes no existen diferencias perceptibles al ojo humano mientras que en cuanto al color podemos determinar que la imagen comprimida mediante la transformada de wavelet tiene tonalidades ms fuertes que la imagen por compresin jpeg. 4.2. Porcentaje de compresin = 25 % 4.2.1. Compresor IMG Converter:

Figura 4. Compresin de imagen en IMG Converter con porcentaje de compresin = 25%

4.2.2. Programa:

Figura 5. Resultados mostrados en la interfaz

En base a la grfica se tiene que para un porcentaje de compresin del 25% se tiene una tasa de compresin de 17,9877 para la compresin por la transformada de wavelet y una tasa de compresin de 19,0901 para la compresin jpeg; adems, el mnimo error cuadrtico medio normalizado es de 0,582396 para la compresin por la transformada de wavelet y de 0,616268 para la compresin jpeg. Cualitativamente, podemos observar las imgenes y podemos determinar que en cuanto a los rasgos de las imgenes no existen diferencias perceptibles al ojo humano mientras que en cuanto al color podemos determinar que la imagen comprimida mediante la transformada de wavelet tiene tonalidades ms fuertes que la imagen por compresin jpeg.

4.3. Porcentaje de compresin = 12.5 % 4.3.1. Compresor IMG Converter:

Figura 6. Compresin de imagen en IMG Converter con porcentaje de compresin = 12.5%

4.3.2. Programa:

Figura 7. Resultados mostrados en la interfaz

Se puede notar que para un porcentaje de compresin del 50% se tiene una tasa de compresin de 41,8174 para la compresin por la transformada de wavelet y una tasa de compresin de 46,9374 para la compresin jpeg; adems, el mnimo error cuadrtico medio normalizado es de 0,484667 para la compresin por la transformada de wavelet y de 0,50978 para la compresin jpeg. Cualitativamente, podemos observar las imgenes y podemos determinar que en cuanto a los rasgos de las imgenes no existen diferencias perceptibles al ojo humano mientras que en cuanto al color podemos determinar que la imagen comprimida mediante la transformada de wavelet tiene tonalidades ms fuertes que la imagen por compresin jpeg. 4.4. Porcentaje de compresin = 6.25 % 4.4.1. Compresor IMG Converter:

Figura 8. Compresin de imagen en IMG Converter con porcentaje de compresin = 12.5%

4.4.2. Programa:

Figura 7. Resultados mostrados en la interfaz

Se puedo observar que para un porcentaje de compresin del 50% se tiene una tasa de compresin de 79,0317 para la compresin por la transformada de wavelet y una tasa de compresin de 85,5778 para la compresin jpeg; adems, el mnimo error cuadrtico medio normalizado es de 0,308403 para la compresin por la transformada de wavelet y de 0,307424 para la compresin jpeg. Cualitativamente, podemos observar las imgenes y podemos determinar que en cuanto a los rasgos de las imgenes no existen diferencias perceptibles al ojo humano mientras que en cuanto al color podemos determinar que la imagen comprimida mediante la transformada de wavelet tiene tonalidades ms fuertes que la imagen por compresin jpeg.

5. CONCLUSIONES
Se comprimi la imagen mediante compresin jpeg utilizando el software IMG Converter. Al utilizar Wavelet, se pudo descomponer la imagen en cuatro coeficientes correspondientes a: aproximaciones (informacin), detalles horizontales, detalles verticales y detalles diagonales. Se comprimi una imagen a travs de la transformada discreta de wavelet para dos dimensiones (dwt2) con diferentes porcentajes de compresin eliminando los coeficientes de los detalles y dejando nicamente la matriz de aproximaciones. Luego de la compresin, se obtuvo la versin cdigo de las aproximaciones de la imagen empleando la funcin wcodemat de Matlab. Se reconstruy la imagen a partir de las aproximaciones mediante la transformada inversa de wavelet (idwt2). Se obtuvo la tasa de compresin, el mnimo error cuadrtico medio (MSE) y su normalizada (N-MSE) tanto para la compresin por medio de transformada de wavelet (cdigo en Matlab) como para la compresin jpeg a travs del software IMG Converter.

error entre la imagen comprimida y la imagen original. En base a los resultados, verificamos que la compresin jpeg se preocupa ms de comprimir el tamao del archivo (tasa de compresin mayor) que del error existente entre la imagen comprimida y la imagen original (N-MSE mayor).

6. RECOMENDACIONES

Para comprimir imgenes a color no utilizar como imagen de entrada una con formato *.bmp.

Para una imagen a color, adquirir el nmero de colores de sta mediante la lnea de cdigo: colores=double(intmax(class(imagen))+1. Para adquirir el tamao en bytes de una imagen emplear la funcin imfinfo en Matlab. Una vez comprimida la imagen se recomienda guardarla en el ordenador y luego volverla a adquirir para ser graficada y as evitar que se altere los resultados.

7. REFERENCIA
[1] ESPOL, COMPARACIN ENTRE COMPRESIN DE AUDIO EN DIFERENTES FORMATOS DE IMGENES EQUIVALENTES Y EL FORMATO DE COMPRESIN MP3, [en lnea], <http://www.dspace.espol.edu.ec/handle/123456789/10712>. [Consulta de 17 de noviembre de 2012]. [2] ESPOL, Desarrollo de una herramienta Educativa, para la comprensin y reduccin de ruido en imgenes en escala de grises, usando transformada de Wavelet, [en lnea], <http://www.dspace.espol.edu.ec/handle/123456789/14758>. [Consulta de 17 de noviembre de 2012].

Al comparar cualitativamente las imgenes comprimidas se pudo observar que en cuanto a los rasgos de la imagen no existen diferencias perceptibles al ojo humano y en cuanto al color se not que con la compresin de la transformada de wavelet se tienen tonos ms fuertes que con la compresin jpeg. Al comparar cuantitativamente las imgenes, para los niveles seteados, la tasa de compresin es mayor para la compresin jpeg por lo que el tamao del archivo comprimido es menor para este tipo de compresin; mientras que el valor de N-MSE es menor para la compresin de wavelet lo cual nos indica que para este tipo de compresin existe menor

Vous aimerez peut-être aussi