ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
TESIS QUE PARA OBTENER EL TITULO DE INGENIERO EN COMUNICACIONES Y ELECTRNICA PRESENTA: MARIO SANDOVAL OLIV
ASESOR DRA. MARIA ELENA ACEVEDO MOSQUEDA
MXICO, D. F. SEPTIEMBRE 2008 INSTITUTO POLITCNICO NACIONAL ESCUELASUPERIORDEINGENIERAMECNICAYELECTRICA UNIDADPROFESIONAL'"ADOLFOLPEZMATEOS" TEMA DE TESIS QUEPARAOBTENERELTITtJLODE INGENIEROENOOMUNICAOONESy ELECTRNICA PORLAOPCINDETITULACiN TESIS Y EXAMENORALINDIVIDUAL DEBERA(N)DESARROLLAR c.-MARIO SANDOVAL OUVE "ALGORITMODECOMPRESINDEIMGENESDEALTARESOLUCINY POCOS COLORESSINPRDIDAS". DESARROLLAR UNA ALGORITMO QUE REALICE LA COMPRESIN SIN PRDIDAS DE INFORMACIN,DEIMGENESDEALTARESOLUCINYPOCOSCOLORES,UTILIZANDOEL LENGUAJEDEPROGRAMACINC#. ANLISIS DE LOS ALGORITMOS EXISTENTE: COMPRESIN SIN PRDIDAS Y COMPRESINCONPRDIDAS MTODOPROPUESTO:COMPRESINRSI(RECORRIDOSOBRELAIMGEN) DESARROLLODELMTODO PRUEBAS MXICOD.F.,10DE NOVIEMBREDE2009 ASESORES - \ ~ ~ \ L DRA.MARAELENAACEVEDOMOSQUEDA. DE Le.E.
ESIME Zacatenco
I ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. NDICE Resumen ........................................................................................................... III Objetivo general ............................................................................................... IV Objetivos especficos ...................................................................................... IV Hiptesis ............................................................................................................ V Justificacin ..................................................................................................... VI Metodologa ..................................................................................................... VII
Captulo 1. Introduccin ................................................................................... 1 La compresin de imgenes ......................................................................... 1 Compresin sin prdidas (LOSSLESS) ....................................................... 1 Compresin con prdidas (LOSSY) ............................................................. 2 Estado del arte ............................................................................................... 4
Captulo 2. Mtodos de compresin de imgenes ......................................... 7 Teora de imgenes y colores ....................................................................... 7 Resolucin .................................................................................................... 7 Modelos de color .......................................................................................... 8 Mtodos de compresin de imgenes ......................................................... 9 Cdigo Huffman............................................................................................ 9 JPEG .......................................................................................................... 11 EZW ........................................................................................................... 14 SPIHT ......................................................................................................... 17 RLE ............................................................................................................ 21 LZW ............................................................................................................ 23
Captulo 3. Mtodo de recorridos sobre una imagen ................................... 25 Mtodo de recorrido sobre una imagen ..................................................... 25 Proceso de compresin por RSM ............................................................... 26
ESIME Zacatenco
II ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Desarrollo del software ............................................................................... 33
Captulo 4. Pruebas y experimentos realizados ........................................... 41
Conclusiones ................................................................................................... 52 Aplicaciones y trabajo a futuro ...................................................................... 54 Anexos ............................................................................................................. 55 Apndice A .................................................................................................... 55 Apndice B .................................................................................................... 57 Apndice C .................................................................................................... 60 Glosario ........................................................................................................... 61 Referencias ...................................................................................................... 66
ESIME Zacatenco
III ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. RESUMEN El algoritmo de compresin que se propone en este trabajo de investigacin realiza la compresin sin prdidas de una imagen de alta resolucin. Esto surge debido que los algoritmos que se usan en la actualidad presentan detalles que hacen que la compresin realizada no sea 100% eficiente. Este mtodo se distingue de los actuales por la forma en la que la imagen es guardada. El algoritmo recorre la imagen Pixel por Pixel obteniendo la informacin de la imagen, que en el proceso de descompresin utiliza para reconstruir una nueva imagen que contiene la informacin de la imagen original. As, este algoritmo genera una compresin efectiva, en la cual la imagen obtenida no presenta prdida de informacin. Sin embargo, las imgenes las cuales se pueden implementar este mtodo deben ser de pocos colores, debido a la forma en que la informacin de la imagen es guardada. Es por esto que este mtodo es muy eficaz en aplicaciones de fotografa satelitales, debido a que estas imgenes usan muy pocos colores y requieren un mtodo de compresin eficaz para su manipulacin y transporte.
ESIME Zacatenco
IV ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. OBJETIVO GENERAL Desarrollar un algoritmo que realice la compresin sin prdidas de una imagen de alta resolucin y pocos colores.
OBJETIVOS ESPECIFICOS Hacer un estudio de los mtodos de compresin actuales. Describir el mtodo de compresin que se propone. Implementar este algoritmo con imgenes de alta resolucin y pocos colores. Realizar una comparacin y anlisis del mtodo propuesto con los mtodos existentes.
ESIME Zacatenco
V ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. HIPOTESIS Se realizar un algoritmo capaz de realizar la compresin sin prdidas de una imagen de alta resolucin y de pocos colores, dando inicio a nueva forma de compresin que sustituya a los mtodos actuales en ciertas aplicaciones.
ESIME Zacatenco
VI ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. JUSTIFICACIN En la actualidad, han surgido avances tecnolgicos de gran relevancia que ayudan a facilitar la vida del ser humano. Un claro ejemplo de esto es la fotografa digital, en donde las imgenes son capturadas por un sensor electrnico, archivndose en una unidad de memoria. Estas imgenes podemos verlas muy a menudo en cualquier pgina de Internet, publicacin, revistas o incluso como fondo en el escritorio de cualquier computadora, y en el caso de la fotografa profesional, ahorra al fotgrafo mucho tiempo al momento del revelado. Sin embargo, ocupan demasiado espacio lo cual genera dificultad para su envo, manipulacin o utilizacin. Por esta razn se requieren de mtodos de compresin los cuales generen que estas imgenes sean procesadas, ocupando menos espacio y siendo de fcil manejo y transporte. Este ejemplo nos muestra la importancia de la compresin, ya que sin esta diversos formatos de archivo (como pueden ser archivos de sonidos, archivos de video, etc.) no podran ser transportados y ser utilizados en diversas aplicaciones de usuario. Sin embargo, estas tcnicas de compresin presentan prdidas, que llegan alterar a la imagen de tal forma que no se pueda recuperar su forma original. Es el precio que se tiene que pagar al utilizar estos mtodos: prdida de informacin. Este proyecto de tesis propone el desarrollo de un algoritmo de programacin que realice la compresin de imgenes de alta resolucin sin que estas presenten prdidas al momento de su reconstruccin. De esta forma se obtendra compresin adems de no ejercer alguna alteracin irreversible sobre la imagen a comprimir.
ESIME Zacatenco
VII ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. METODOLOGA El proceso a seguir para el desarrollo de este algoritmo es el que se muestra en el siguiente diagrama:
Figura I. Diagrama de flujo (1).
En el diagrama de flujo (1) se muestra el proceso de compresin de imgenes. Como se puede apreciar, el algoritmo acta sobre una imagen BMP 1 , y mediante una serie de recorridos dentro del vector de almacenamiento, se obtiene como respuesta una imagen comprimida. Para la construccin de este algoritmo requerimos de un lenguaje de programacin con resultados ptimos. Por lo tanto se propone Microsoft Visual C#, debido a que es capaz de manejar imgenes con una capacidad mayor de 24 bits adems utilizar pocas lneas de cdigo.
1 BMP = Archivo de mapa de bits. Ver glosario.
ESIME Zacatenco
1 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. CAPTULO I INTRODUCCIN Una imagen (viene del latn "imago", del verbo "imitari" que significa imitar) es una imitacin de una figura real. A partir de esta definicin, se define la palabra Pixel como la unidad ms pequea de una imagen; proviene de las siglas en ingls PICTURE ELEMENT (elemento de una imagen), y adems, en una imagen los pxeles pueden ser ms grandes o ms pequeos. Mientras ms grandes son los pxeles, la imagen se ve ms borrosa, mientras ms pequeos sean estos, es ms ntida y tiene ms detalles. La compresin de imgenes El principal inconveniente de las imgenes digitales es, sin duda, la cantidad de informacin que requiere y el tamao de los archivos que genera. La capacidad de trabajo y de almacenamiento de los sistemas informticos va en aumento, pero tambin nos vamos habituando a disponer de mucho ms pxeles. De ah que se mantenga el uso y el inters por la evolucin de las tcnicas de compresin. La compresin, en realidad, consiste en sustituir una cadena de datos por otra ms corta cuando se guarda un archivo. Ciertos mtodos son reversibles ("lossless data compression 2 ", en ingls), porque permiten la reconstruccin exacta del original. Pero con otros, la informacin original slo se recupera aproximadamente, ya que se descarta una parte de los datos ("lossy data compression 3 "), a cambio de relaciones de compresin mucho mayor que este. Compresin sin prdidas (LOSSLESS) Es aquella compresin que permite recuperar exactamente la calidad original de la imagen. La compresin sin prdida de datos, es utilizada para comprimir
2 Lossless data compression = Compresin de datos sin prdidas. Ver glosario. 3 Lossy data compression = Compresin de datos con prdidas. Ver glosario
ESIME Zacatenco
2 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. archivos o informacin que contienen datos que no pueden ser degradados o perdidos, como pueden ser documentos de texto, archivos ejecutables, etc. Se distingue entre sistemas adaptativos, no adaptativos y semiadaptativos, segn tengan en cuenta o no las caractersticas del archivo a comprimir. Los no adaptativos (se les relacionan con el cdigo Huffman 4 ) establecen a priori una tabla de cdigos con las combinaciones de bits que ms se repiten estadsticamente. A estas secuencias se asignan cdigos cortos, y a otras menos probables claves ms largas. El problema que presentan es que un diccionario de claves nico tiene resultados muy diferentes en distintos originales. Un sistema es semiadaptativo, si se analiza primero la cadena de datos a comprimir y se crea una tabla a medida. Se logra mayor compresin, pero introduce dos inconvenientes: la prdida de velocidad al tener que leer el original dos veces, por un lado, y la necesidad de incrustar en el archivo comprimido el ndice de claves, por el otro. Entre los mtodos adaptativos, el ms simple es el Run Lengh Encode (cuyas siglas significan Ejecutar Longitud Codificar) o RLE, que consiste en sustituir series de valores repetidos por una clave con indicador numrico. Los compresores de uso general ms populares utilizan mtodos como ste, por eso tardan ms en empaquetar los datos que en descomprimirlos. Compresin con prdidas (LOSSY) Se define compresin con prdidas al tipo de compresin que degrada en mayor o menor medida la calidad de la imagen. Dentro de esta categora es universalmente conocido por su eficacia el formato JPEG.
4 El algoritmo Huffman, permite la compresin de datos a travs de una tabla de cdigos de longitud variable. Ver captulo 2.
ESIME Zacatenco
3 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Sin embargo, los efectos negativos de este mtodo compresin son el empobrecimiento del tono y la nitidez global, que notaramos ms bien en una impresin, y la aparicin de artefactos a nivel local visibles sobre todo en pantalla, aunque JPEG sea un formato habitual en Internet. Los principales sistemas de compresin consideran principalmente los siguientes aspectos: 1. Reducir lo mayor posible la informacin a transmitir. 2. Reducir el tiempo de enlace o demora. 3. Reducir los costos de conexin. Estos son los principales objetivos que buscan las diferentes tcnicas de compresin pero para lograr estas es necesario que se cumpla lo siguiente: El cdigo de compresin debe ser lo ms compacto posible que el original. Eliminar toda o casi toda la redundancia existente en la imagen original. Estos algoritmos hacen uso de las limitaciones de percepcin de los sentidos humanos y son utilizados para el audio y video, por ejemplo al comprimir una imagen se puede reducir la informacin acerca de las variaciones de color debido a que el ojo humano no percibe esas variaciones de color, por lo que se reduce esa informacin de cambios de color en la imagen original. Pero hay que tener en cuenta que estos algoritmos no pueden ser utilizados en textos escritos debido a que estos no presentan una gran gama de colores.
ESIME Zacatenco
4 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 1.2. Comparacin entre las compresiones con prdidas y sin prdidas (lossy y lossless respectivamente). Como podemos observar, en la compresin lossy existen prdidas de la informacin la cual genera que la imagen original no pueda ser recuperada del todo.
ESTADO DEL ARTE Dentro de la gran variedad de algoritmos para compresin de imgenes existen los siguientes: Cdigo Huffman: David Huffman propuso un mtodo estadstico que permita asignar un cdigo binario a diversos smbolos a comprimir, tales como pxeles o caracteres, slo por citar algunos ejemplos. Esta compresin es realizada a travs de arboles, y presenta la desventaja que junto al archivo comprimido debe estar tambin la tabla de cdigos con las combinaciones de bits que ms se repiten estadsticamente con la cual se llev a cabo la compresin, de lo contrario el proceso no sera reversible.
ESIME Zacatenco
5 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. JPEG, JPG: Es la Extensin que corresponde a un tipo de fichero grfico de mapa de bits. Es un formato comprimido que pierde definicin al comprimir: se puede indicar la cantidad de compresin que se desea, pero cuanto ms se comprima, mayor prdida de calidad tiene la imagen. Para fotografas digitalizadas con 640x480 puntos o ms, un nivel de compresin entre 15 y 25 suele ser suficiente para reducir mucho el espacio ocupado por la imagen, pero a la vez que la prdida de calidad no sea muy apreciable. EZW. Este mtodo explota las propiedades aportada por la transformada discreta wavelet para obtener resultados satisfactorios en la compresin: un gran porcentaje de coeficientes wavelets prximos a cero y la agrupacin de la energa de la imagen. SPHIT. El tipo de codificacin de este algoritmo se basa en la clasificacin por orden de bits significativos, resultando ser un mtodo efectivo y econmico en el uso de recursos. RLE. El mtodo de compresin RLE se basa en la repeticin de elementos consecutivos. Supone que la imagen se compone de una serie de puntos que son del mismo color. En una imagen que contenga muchas reas con el mismo color, este mtodo permite obtener un alto nivel de compresin s que se produzca prdida de calidad. LZW. Este algoritmo es utilizado con archivos *.tif, *.pdf, *.gif y archivos de lenguaje PostScript. Es muy til con imgenes que contengan reas de gran tamao, o imgenes sencillas.
ESIME Zacatenco
6 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Algoritmo/ Caracterstica LZW Huffman RLE Aritmtica Gzip Basados en TDC Basadas en wavelets Memoria Baja Alta Muy baja Media Baja Media Baja Tasa de compresin Media Media Baja - Media Baja - Media Media Media - Alta Alta Operaciones complejas No Construccin rbol No Punto flotante No Algunos casos Algunos casos Tipo imgenes Colores uniformes Colores uniformes Colores uniformes Tonos continuos Colores uniformes No tan importante Casi cualquier tipo Codificacin de regiones de inters (ROI) NA NA NA NA NA NA Si Manejo de errores NA NA NA NA Si NA Si Con prdida de informacin NA NA NA NA NA Si Si Sin prdida de informacin Si Si Si Si Si Si Si Figura 1.3. Cuadro comparativo de los diferentes mtodos de compresin existentes en la actualidad.
ESIME Zacatenco
7 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. CAPITULO II MTODOS DE COMPRESIN DE IMAGENES Teora de imgenes y colores. Resolucin. Las dimensiones en pxeles de las imgenes de mapa de bits son una medida del nmero de pxeles de altura y anchura de la imagen. La resolucin es la precisin del detalle en las imgenes de mapa de bits, que se mide en pxeles por pulgada (PPP). Cuantos ms pxeles por pulgada tenga una imagen, mayor es su resolucin. En general, las imgenes con mayor resolucin producen una calidad de impresin mejor. En la figura 2.1, se muestra la comparacin de dos imgenes con diferente resolucin.
Figura 2.1. Imagen idntica con 72ppp (izquierda) y 300ppp (derecha). Si se hace un zoom a 200%, se ve que la imagen de la derecha presenta una mejor resolucin por contener ms puntos por Pixel.
ESIME Zacatenco
8 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Modelos de color. Una imagen est representada en una tabla bidimensional en la que una celda es un Pixel. El proceso para representar una imagen digital es crear una tabla de pxeles en la que cada celda contiene un valor. El valor almacenado en cada celda de esta tabla se codifica en un determinado nmero de bits que determinan el color o la intensidad del Pixel y se lo denomina profundidad de codificacin. Existen varios estndares de profundidad de codificacin: Mapa de bits blanco y negro. Si se almacena un bit en cada celda, se pueden definir dos colores: negro o blanco. Mapa de bits con 16 colores o 16 niveles de gris. Si se almacenan 4 bits en cada celda, se pueden definir 2 4 intensidades por cada Pixel, es decir, 16 grados de gris desde el negro al blanco o 16 colores diferentes. Mapa de bits con 256 colores o 256 niveles de gris. Si se almacena 8 bits (equivalente a un byte) en cada celda, se pueden definir 2 8
intensidades, es decir, 256 grados de gris desde el negro al blanco o 256 colores diferentes. Mapa de colores de paleta de colores. Se puede definir una paleta de colores, o tabla de colores, con todos los colores que puede contener una imagen, para los cuales hay un ndice asociado en cada caso. El nmero de bits reservados para la codificacin de cada ndice de la paleta determina el nmero de colores que pueden utilizarse. Por lo tanto, cuando se codifican los ndices en 8 bits, se pueden definir 256 colores disponibles como se vio en el ejemplo anterior; es decir, cada celda de la tabla bidimensional que representa la imagen contiene un nmero que indica el ndice del color que se utilizar. A la imagen cuyos colores estn codificados segn esta tcnica se la denomina imagen de color indexado.
ESIME Zacatenco
9 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. "Colores verdaderos" o "Colores reales". Esta representacin permite que se represente una imagen al definir cada componente (RGB, acrnimo en ingls de Rojo Verde y Azul). Las imgenes RGB utilizan tres colores o canales para reproducir los colores en la pantalla. Cada Pixel est representado por uno de estos tres componentes, cada uno codificado en un byte, obtenindose en total 24 bits que pueden definir 2 24 intensidades que corresponden a 16 millones de colores. Tambin es posible agregar un cuarto componente, para poder agregar informacin relacionada con la transparencia o la textura, haciendo que la imagen sea ms suave; en este caso cada Pixel estar codificado en 32 bits. Mtodos de compresin de imgenes. Los mtodos de compresin ms usados en la actualidad se mencionan a continuacin: Cdigo Huffman. Desarrollo del mtodo. El cdigo Huffman enuncia que la longitud de cada cdigo no es idntica para todos los smbolos: se asignan cdigos cortos a los smbolos utilizados con ms frecuencia (los que aparecen ms a menudo), mientras que los smbolos menos frecuentes reciben cdigos binarios ms largos. La expresin Cdigo de Longitud Variable (VLC) se utiliza para indicar este tipo de cdigo porque ningn cdigo es el prefijo de otro. De este modo, la sucesin final de cdigos con longitudes variables ser en promedio ms pequea que la obtenida con cdigos de longitudes constantes. El codificador Huffman crea una estructura arbrea ordenada con todos los smbolos y la frecuencia con que aparecen. Las ramas se construyen en forma recursiva comenzando con los smbolos menos frecuentes.
ESIME Zacatenco
10 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. La construccin del rbol se realiza ordenando en primer lugar los smbolos segn la frecuencia de aparicin. Los dos smbolos con menor frecuencia de aparicin se eliminan sucesivamente de la lista y se conectan a un nodo cuyo peso es igual a la suma de la frecuencia de los dos smbolos. El smbolo con menor peso es asignado a la rama 1, el otro a la rama 0 y as sucesivamente, considerando cada nodo formado como un smbolo nuevo, hasta que se obtiene un nodo principal llamado raz. El cdigo de cada smbolo corresponde a la sucesin de cdigos en el camino, comenzando desde este carcter hasta la raz. De esta manera, cuanto ms dentro del rbol est el smbolo, ms largo ser el cdigo. Como ejemplo, se tiene la oracin: "COMMENT_CA_MARHE"; tal como se muestra en la figura 2.2 muestra las frecuencias de aparicin de las letras.
M A C E _ H O N T R 3 2 2 2 2 1 1 1 1 1 Figura 2.2. Frecuencia de aparicin de las letras del ejemplo citado para explicacin del cdigo Huffman.
En la figura 2.3 se muestra el rbol correspondiente a este ejemplo en base a la figura 2.2.
ESIME Zacatenco
11 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.3. rbol correspondiente al ejemplo del figura 2.1. Los cdigos correspondientes a cada carcter son tales que los cdigos para los caracteres ms frecuentes son cortos y los correspondientes a los smbolos menos frecuentes son largos. Esto se puede apreciar mejor si se ve la figura 2.4. M A C E _ H O N T R 00 100 110 010 011 1110 1111 1010 10110 10111 Figura 2.4. Paso final del cdigo Huffman. Las compresiones basadas en este tipo de cdigo producen buenas proporciones de compresin, en particular, para las imgenes monocromticas (faxes, por ejemplo). Se utiliza especialmente en las recomendaciones T4 y T5 utilizadas en ITU-T. Sin embargo, tiene el defecto de que depende del diccionario que se crea para la descompresin de la imagen. Sin este, este mtodo no puede funcionar. J PEG. El Joint Photographic Experts Group (cuyas siglas en ingls significan Grupo Mixto de Expertos Fotogrficos), mejor conocido como JPEG, es el mtodo de
ESIME Zacatenco
12 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. compresin ms utilizado actualmente para la compresin de imgenes con prdida. Este mtodo utiliza la transformada discreta del coseno 5 (DCT), que se calcula empleando nmeros enteros, por lo que se aprovecha de algoritmos de computacin veloces. El JPEG consigue una compresin ajustable a la calidad de la imagen que se desea reconstruir. Definicin de la transformada discreta del coseno. La imagen de entrada es dividida en bloques de NxN pxeles. El tamao del bloque se escoge considerando los requisitos de compresin y la calidad de la imagen. En general, a medida que el tamao del bloque es mayor, la relacin de compresin tambin resulta mayor. Esto se debe a que se utilizan ms pxeles para eliminar las redundancias. Pero al aumentar demasiado el tamao del bloque la suposicin de que las caractersticas de la imagen se conservan constantes no se cumple, y ocurren algunas degradaciones de la imagen, como bordes sin definir. Los resultados en la experimentacin han demostrado que el tamao del bloque ms conveniente es de 8x8 pxeles. Cuantificacin de los coeficientes de la transformada discreta del coseno. Los coeficientes de la transformada son cuantificados en base a un nivel de umbral para obtener el mayor nmero de ceros posibles. Para la cuantificacin se utiliza una matriz de normalizacin estndar, y se redondean los resultados a nmeros enteros. Este es el proceso donde se produce la prdida de informacin. El paso siguiente consiste en reordenar en zigzag la matriz de coeficientes cuantificados. Ver figura 2.5.
5 La transformada de coseno discreta (DCT del ingls Discrete Cosine Transform) es una transformada basada en la Transformada de Fourier discreta, pero utilizando nicamente nmeros reales. Ver glosario.
ESIME Zacatenco
13 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.5. Recorrido en zig-zag de la matriz de coeficientes cuantificados. Proceso de codificacin. Si se codifica con una longitud variable los coeficientes, la imagen se puede comprimir an ms. El codificador ms utilizado es el algoritmo de Huffman, que se encarga de transmitir los coeficientes ordenados. Esto es debido a su facilidad de uso. Para comprimir los smbolos de los datos, el codificador de Huffman crea cdigos ms cortos para smbolos que se repiten frecuentemente y cdigos ms largos para smbolos que ocurren con menor frecuencia. Sin embargo, el precio que se paga cuando se busca una alta compresin es una degradacin considerable en la calidad de la imagen reconstruida. Por ese motivo, esta tcnica de compresin no es muy apropiada para el tratamiento de las imgenes mdicas, donde la calidad ha de conservarse dentro de unos mrgenes de fiabilidad, adems de ser intil cuando se pretende guardar con este formato dibujos con grandes extensiones de colores planos y uniformes o con bordes muy definidos. La figura 2.6 nos muestra la comparacin de la imagen original en contraste a la imagen comprimida con este mtodo.
ESIME Zacatenco
14 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Imagen sin comprimir.
Imagen comprimida con JPEG.
Figura 2.6. Ejemplo de compresin de imgenes utilizando el mtodo de JPEG. EZW (Embedded Zerotree Wavelet). Definicin. El mtodo de compresin EZW (Wavelet Zerotree Incrustado) fue propuesto por Shapiro en 1993. Este mtodo explota las propiedades aportadas por la DWT 6 para obtener resultados satisfactorios en la compresin: un gran porcentaje de coeficientes wavelets 7 prximos a cero y la agrupacin de la energa de la imagen. Este mtodo permite una compresin progresiva conocida como embedded coding (Cdigo Incrustado) de la imagen debido a que cuantos ms bits se aadan al resultado de la compresin, ms detalles se estarn transmitiendo. Incrustacin. La implementacin del EZW se realiza mediante el algoritmo de incrustacin definido por Shapiro. El algoritmo de incrustacin cuantifica los coeficientes wavelet de la imagen en pasos dados por potencias de dos,
6 La transformada wavelet (de sus siglas en ingls Discrete Wavelet Transform) es un tipo especial de transformada de Fourier que representa una seal en trminos de versiones trasladadas y dilatadas de una onda finita. Ver glosario. 7 Un wavelet es una onda cuya oscilacin comienza en cero, aumenta y disminuye a cero nuevamente. Ver glosario.
ESIME Zacatenco
15 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. reducindose progresivamente en sucesivas iteraciones. La primera operacin a realizar consiste en calcular el umbral de partida n (primer paso). Para entender esto, ver figura 2.7.
Figura 2.7. Calculo del umbral de partida. Construccin del mapa de significancias. A continuacin, se construye un mapa de significancias (zerotrees 8 ) basado en la bsqueda de los coeficientes mayores o iguales al umbral determinado en el paso anterior. Ver figura 2.8.
Figura 2.8. Bsqueda de los coeficientes mayores o iguales al umbral para la compresin de una imagen usando EZW. Refinamiento. El siguiente proceso se denomina refinamiento. Consiste en la transmisin de los bits de todos los coeficientes detectados en los pasos previos. Este proceso se repite disminuyendo el umbral hasta alcanzar el umbral cero.
8 El zerotree se basa en la hiptesis de que si el coeficiente de un wavelet es insignificante con respecto a un umbral, entonces todos los coeficientes wavelet de la misma orientacin en la misma ubicacin espacial en la escala ms fina, es probable que sean insignificantes con respecto al mismo umbral. Ver glosario.
ESIME Zacatenco
16 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Zerotree. La informacin sobre la significancia de los coeficientes wavelet *
(mapas de significancias) se almacenan en unas estructuras denominadas zerotrees.
Figura 2.9. Recorrido por la matriz de coeficientes wavelet en diferentes sub-bandas. La estructura zerotree agrupa los coeficientes de cuatro en cuatro: cada coeficiente tiene cuatro hijos, cada uno los cuales tiene sus propios cuatro hijos y as sucesivamente. Por lo general, los hijos tienen unas magnitudes menores que las de sus padres. El mtodo EZW aprovecha esta organizacin basada en el hecho de que los coeficientes wavelet disminuyen a medida que aumenta la escala. As se puede garantizar que los coeficientes de un quadtree 9 son ms pequeos que el umbral de estudio, si su padre es ms pequeo que el umbral antes mencionado. El EZW transmite el valor de los coeficientes en orden decreciente. El recorrido de la matriz de coeficientes se realiza en zig-zag transmitiendo el n-simo bit ms significativo en cada pasada. Para entender mejor el concepto explicado con anterioridad, ver figura 2.10.
9 El termino quadtree es utilizado para describir clases de estructuras de datos jerrquicas cuya propiedad comn es que estn basados en el principio de descomposicin recursiva del espacio. Ver glosario
ESIME Zacatenco
17 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.10. Recorrido en zigzag que realiza EZW. Como se aprecia, al hacer el recorrido en zigzag se etiquetan los coeficientes de la siguiente manera: R, si el coeficiente es menor que el umbral de estudio, I, si el coeficiente es menor que el umbral pero tiene descendientes con valores dentro del rango de estudio (isolated zero), y P, cuando est dentro del rango y es positivo o N si es negativo. El mtodo de compresin EZW para la compresin de imgenes ofrece unos muy buenos resultados, esto es, altas tasas de compresin con una calidad de imagen aceptable. Una variacin del EZW es el algoritmo de compresin SPIHT, el cual se procede a explicar a continuacin. SPIHT. Definicin. El SPIHT ofrece una nueva y mejor implementacin del EZW basada en la utilizacin de conjuntos de datos organizados en rboles jerrquicos. Ver figura 2.11.
ESIME Zacatenco
18 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.11. Coeficientes wavelet organizados en rboles jerrquicos. Al igual que el EZW, el SPIHT transforma mediante la DWT la imagen a comprimir, y organiza los coeficientes wavelet resultantes en rboles de orientacin espacial. Cuantificacin. Los coeficientes wavelet obtenidos mediante la transformada wavelet discreta son valores reales, que se convertirn a enteros mediante una cuantificacin. Adems, la representacin interna del ordenador exige un nmero finito de bits por coeficiente, lo que supone una cuantificacin fina. Hay que escoger el mtodo ms eficaz de cuantificacin ya que en este proceso se pierde parte de la informacin, por corresponder a los mtodos de compresin de imgenes con perdidas. En la figura 2.12 podemos observar un esquema de los procedimientos que este mtodo realiza.
ESIME Zacatenco
19 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.12 Esquema del mtodo de compresin SPIHT. Proceso de codificacin. El primer paso para la codificacin consiste en la creacin de un mapa de significancia por cada umbral de estudio. Dicho mapa contendr informacin sobre si un coeficiente est dentro del umbral de estudio o no. El mapa de significancia se obtiene empleando los rboles de orientacin espacial (relacin de herencia entre los coeficientes wavelet) y transmitiendo la significancia de hijos a padres. El primer umbral viene determinado por el bit ms significativo del coeficiente mayor en valor absoluto. En las etapas sucesivas basta con decrementar este umbral de uno en uno. El siguiente paso consiste en la transmisin de bits significativos mediante dos operaciones de ordenacin y refinamiento. Para la implementacin del algoritmo se usan tres listas: lista de pxeles no significativos (LIP), lista de pxeles significativos (LSP) y lista de coordenadas no significativas (LIS). Al final de cada paso de ordenacin, LSP contiene las coordenadas de todos los pxeles significativos para el umbral n correspondiente. Como se puede comprobar, tambin incluye los coeficientes hallados en pasos anteriores. Las entradas de LIS son coordenadas de pxeles junto con una marca de tipo A o B. La marca es de tipo A cuando representa a todos sus descendientes y de tipo B cuando representa a todos los descendientes a partir de los nietos.
ESIME Zacatenco
20 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Inicializacin y ordenacin. En el paso de inicializacin n (el umbral inicial) toma el valor ms prximo a una potencia de dos, obtenido de la matriz de coeficientes (el mayor coeficiente en valor absoluto). LSP est vaca, LIP toma las coordenadas de los pxeles de nivel ms alto y LIS las coordenadas de los pxeles raz como tipo A. La ordenacin consiste en verificar si cada entrada de tipo A en LIP es o no significante para el n actual. Si lo es se trasmite un uno, adems del signo del Pixel, para luego mover sus coordenadas a LSP. Si no es significativo se trasmite un cero. A continuacin se comprueba la significancia de la descendencia de cada entrada de LIS: Si no se halla una significancia se trasmite un cero, en caso contrario un uno y, de nuevo, se comprueba la significancia de cada miembro de su descendencia. Si lo es se aade a LSP a la vez que se trasmite su signo, y si no, se aade a LIP y se transmite un cero. Si ese Pixel dispone de ms descendientes (nietos en adelante), se colocan sus coordenadas al final de LIS y se marca como tipo B. Por el contrario, si la entrada LIS es de tipo B, se comprueba si tiene descendientes significativos a partir de los nietos (incluidos). Si se confirma se transmite un uno y se aaden sus coordenadas correspondientes al final de LIS marcadas como tipo A. En el caso contrario se transmite un cero y se eliminan sus coordenadas de LIS. Las entradas aadidas a LIS no se tienen en cuenta en la etapa posterior de refinamiento. Refinamiento y empaquetado. El refinamiento consiste en evaluar los componentes de LSP introducidos en las pasadas anteriores, enviando el ensimo bit ms significativo. Por ltimo se decrementa el umbral en uno y se
ESIME Zacatenco
21 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. vuelve al paso de ordenacin. El ciclo se repite hasta alcanzar el umbral cero (incluido). El resultado del algoritmo consiste en un vector compuesto por ceros y unos, que sern empaquetados y almacenados en un fichero con extensin RAW. El nmero de elementos de este mapa determina el factor de compresin proporcionado por el algoritmo para la imagen dada. RLE Definicin. El mtodo de compresin RLE (Run Length Encoding, a veces escrito RLC por Run Length Coding cuyas siglas significa Cdigo de Manejo de Longitud) es utilizado por muchos formatos de imagen (BMP, PCX, TIFF). Se basa en la repeticin de elementos consecutivos. El principio fundamental consiste en codificar un primer elemento al dar el nmero de repeticiones de un valor y despus el valor que va a repetirse. Por lo tanto, segn este principio, como ejemplo, la cadena AAAAAHHHHHHHHHHHHHH cuando est comprimida da como resultado "5A14H". La ganancia de compresin es (19-5) / 19, es decir, aproximadamente 73,7%. Por otro lado, para la cadena "CORRECTLY", donde hay poca repeticin de caracteres, el resultado de la compresin es 1C1O2R1E1C1T1L1Y. Por lo tanto, la compresin genera un costo muy elevado y una ganancia de compresin negativa de (9-16) / 9, es decir, -78%, el cual es un porcentaje psimo. Reglas del RLE. La compresin RLE est regida por reglas particulares que permiten que se ejecute la compresin cuando sea necesario y que se deje la cadena como est cuando la compresin genere prdida. Las reglas son las siguientes:
ESIME Zacatenco
22 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Si se repiten tres o ms elementos consecutivamente, se utiliza el mtodo de compresin RLE. De lo contrario, se inserta un carcter de control (00) seguido del nmero de elementos de la cadena no comprimida y despus la ltima. Si el nmero de elementos de la cadena es extrao, se agrega el carcter de control (00) al final. Finalmente, se definen los caracteres de control especficos segn el cdigo: o Un final de lnea (00 01). Ver figura 2.13 a. o El final de la imagen (00 00). Ver figura 2.13 b. o Un desplazamiento de puntero sobre la imagen de XX columnas e YY filas en la direccin de lectura (00 02 XX YY). Ver figura 2.13 c. Por lo tanto, no tiene sentido utilizar la compresin RLE excepto para datos con diversos elementos repetidos de forma consecutiva, en imgenes particulares con reas grandes y uniformes. Sin embargo, la ventaja de este mtodo es que es de fcil implementacin. Existen alternativas en las que la imagen est codificada en bloques de pxeles, en filas o incluso en zigzag, tal y como se aprecia en la figura 2.13 d. Este problema origina que la compresin genere archivos incluso de mayor tamao que el archivo original.
ESIME Zacatenco
23 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 2.13. Ejemplificacin del proceso que realiza la compresin a travs de RLE. LZW Definicin. El mtodo LZW es un algoritmo muy rpido tanto para la compresin como para la descompresin, basado en la multiplicidad de aparicin de secuencias de caracteres en la cadena que se debe codificar. Su principio consiste en sustituir patrones con un cdigo de ndice y construir progresivamente un diccionario.
ESIME Zacatenco
24 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Adems, funciona en bits y no en bytes, por lo tanto, no depende de la manera en que el procesador codifica informacin. Es uno de los algoritmos ms populares y se utiliza particularmente en formatos TIFF y GIF. Dado que el mtodo de compresin LZW ha sido patentado por Unisys, el que se utiliza en imgenes PNG es el algoritmo LZ77, por el que no se pagan derechos de autor.
Figura 2.14. Comportamiento del algoritmo LZ: # 3 2 significa retroceder tres pxeles y repetir dos; # 12 7 significa retroceder 12 pxeles y repetir siete. Procedimiento: construccin del diccionario. El diccionario comienza con los 256 valores de la tabla ASCII. El archivo a comprimir se divide en cadenas de bytes (por lo tanto, para las imgenes monocromticas codificadas en 1 bit, esta compresin no es muy eficaz), cada una de estas cadenas se compara con el diccionario y se agrega si no se encuentra ah. Proceso de compresin. El algoritmo pasa por la cadena de informacin y la codifica. Si una cadena nunca es ms corta que la palabra ms larga del diccionario, sta se transmite. Al igual que el mtodo Huffman presenta la desventaja de que si se llega a perder el diccionario creado, este mtodo es intil
ESIME Zacatenco
25 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. CAPITULO III
MTODO DE RECORRIDOS SOBRE UNA IMAGEN Este algoritmo realiza la compresin de una imagen sin presentar prdidas. Se distingue de los dems mtodos en que, la compresin se obtiene de la forma en que los datos de la imagen original son guardados. As, el algoritmo es capaz de descomprimir la imagen sin que sta presente prdida de informacin. Este mtodo es conocido como recorridos sobre la imagen (RSM). El principio de funcionamiento de esta tcnica, se desglosa a continuacin: Obtener los datos de la imagen: dimensiones de la imagen, el nmero de colores de la imagen, nmero de pxeles, nmero de bits por Pixel y los colores de la imagen. Este paso lo ejecuta, hacindose un escaneo sobre la imagen. Almacenamiento de la informacin. El algoritmo crea un vector llamado CADENA, el cual sirve como auxiliar para almacenar los datos obtenidos del escaneo hecho sobre la imagen. Archivos *.DAT. La informacin almacenada en CADENA es guardada en archivos (FILES) con formato en binario (extensin .DAT). Los datos obtenidos se guardan en este formato para ser ledos y procesados por la computadora en el proceso de descompresin. Descompresin. Los archivos en formato binario son ledos por la maquina y acomodados en la forma en la que fueron obtenidos. Sin embargo, dependiendo del tamao del bit ms significativo de cada archivo, ser la representacin de cada uno de los dems valores almacenado en el. Por ejemplo, si en el archivo dimesiones_de_la_imagen.DAT, el bit ms significativo corresponde al nmero 15, todos los datos almacenados nicamente en ese archivo sern de 4 bits, por que se necesitan 4 bits para
ESIME Zacatenco
26 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. representar al nmero 15 en binario. Este mismo procedimiento se realiza con los dems archivos. Debido a la manera en que la informacin de la imagen es guardada y en la forma en que es colocada sobre la imagen descomprimida, el tamao de la imagen se reduce considerablemente, no teniendo prdida alguna. PROCESO DE COMPRESIN POR RSM. Para iniciar el proceso de compresin, debemos obtener los siguientes datos: 1. Ancho de la imagen. 2. Alto de la imagen. 3. Nmero de colores. 4. Nmero de pxeles. Este dato es til para obtener la informacin de los colores. En la descompresin se utiliza para situar cada color en la imagen. 5. Nmero de bits por pxeles. Determina el tamao en que son representados cada Pixel. Se utiliza en la descompresin. Este mtodo pretende comprimir imgenes de alta resolucin, es decir, deben contener en cada Pixel 24 bits.
Figura 3.1. Nmero de bits por Pixel para el algoritmo de programacin. Se requieren de 24 bits para poder representar una imagen de color real, basado en la frmula incluida en la figura 3.2.
ESIME Zacatenco
27 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 3.2. Obtencin del nmero de muestras de un archivo. Esta frmula se obtuvo en base al teorema de muestreo y es utilizado comunicaciones para el proceso de compresin de archivos. Para nuestro ejemplo utilizaremos una variable a la que llamaremos CADENA. Esta variable almacena en archivos con formato en binario la informacin de la imagen a comprimir. Para discernir cada dato, se incluyen blancos * , cuya funcin es separar una variable de otra. En el proceso de conversin de decimal a binario un blanco corresponde a 0000 0000 en 8 bits. Para indicar la posicin de cada color sobre el Pixel, CADENA almacena la informacin de cada Pixel y realiza comparaciones para determinar a qu color corresponde. Por ejemplo, si CADENA llega a contener 0000, quiere decir que el algoritmo identifica a ese color como el negro y le agrega un blanco para distinguir al siguiente color en ser escaneado. Es as como se identifica cada color de la imagen, y dependiendo del mayor de estos colores ser el tamao en bits de cada dato. Por ejemplo, si 255 es la representacin ms alta de uno de los colores de la imagen, necesitamos de 8 bits para representar a todos los dems, ya que es la cantidad en bits que se requieren para representar al 255 en binario (1111 1111). La figura 3.3 muestra un ejemplo sobre la aplicacin de este mtodo. Supongamos que esta imagen cuenta con 4 colores. DEFINICIN: Sea el carcter blanco cuyo valor en hexadecimal corresponde al 00 H .
ESIME Zacatenco
28 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Entonces CADENA almacena: Ancho Alto Nmero de pxeles Nmero de bits por Pixel Nmero de colores. De estos datos, nmero de colores ya es conocido. Nmero de bits por pixel tiene un valor de 24 por ser de una imagen de alta resolucin: CADENA = Ancho Alto Nmero de pxeles 24 DECIMAL 4 DECIMAL . Solo faltan determinar ancho, alto y numero de pxeles, para que la informacin almacenada en CADENA sea guardada en un archivo con formato *.DAT.
Figura 3.3. Representacin de una imagen de alta resolucin de pocos colores. Los nmeros del uno al cuatro representan 4 colores diferentes contenidos en esta imagen. Cada celda representa un Pixel, mismo que contiene en su interior 24 bits, esto es por que como se mencion corresponde a una imagen de alta resolucin. Para este ejemplo, supngase que la imagen mide 512 pxeles de ancho x 456 pxeles de alto. Ver figura 3.4.
ESIME Zacatenco
29 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. As, tenemos los siguientes valores, tomando en cuenta tambin que alto x ancho = nmero de pxeles en la imagen: CADENA = 512 DECIMAL 256 DECIMAL 131072 DECIMAL
24 DECIMAL 4 DECIMAL
Para representar a los datos de esta imagen en base binaria, se toma el nmero ms grande; este corresponde a 131072. Para representar en binario a este nmero requerimos de 18 bits. Por lo tanto, todos los datos guardados en este archivo, sern de 18 bits.
Figura 3.4. Obtencin de los datos de la imagen a comprimir.
ESIME Zacatenco
30 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. La tabla 3.1 muestra los valores de los datos en base binaria. Dato 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 512 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 256 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 131072 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 Blanco 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabla 3.1. Conversin de los datos de la imagen. Estos datos se guardan en un archivo llamado DIMESIONES.DAT. Supngase que los 4 colores de la imagen sean los que se muestran a continuacin: Color 1 = 0101 1111 0000 1111 0101 Color 2 = 1111 0101 0101 1001 0001 Color 3 = 0000 1101 0111 1101 1011 Color 4 = 1000 0100 0100 1000 0000 Como color 4 es el mayor de los colores, los datos almacenados en CADENA, sern representados con 24 bits. Esta informacin es guardada en el archivo COLORES.DAT. NOTA: Este archivo no lleva blancos. Esto se debe a que en DIMENSIONES.DAT se especifica que esta imagen tiene 4 colores, y en este archivo se especifica que se almacenaron datos de 24 bits. Recorridos sobre la imagen. Para guardar en otro archivo la posicin de cada color, en CADENA el algoritmo cuenta la posicin en donde se localiza el color
ESIME Zacatenco
31 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. 1. Color 1 ocupa la posicin 0 (ver figura 3.5) Este valor se transforma a base binario y es almacenado en CADENA.
Figura 3.5. Recorrido sobre la imagen. Despus, se detecta la siguiente posicin de color 1. En este caso corresponde al lugar 1. La siguiente posicin de color 1 es en el lugar 11. Para llegar hasta esa posicin se requiere de sumar 9 a la posicin en la que estamos. Entonces el valor a almacenar en CADENA no es 11, sino 9, que fue el nmero que se requiri para llegar hasta esa posicin. Se transforma este valor en base binaria y se almacena de nueva cuenta en CADENA. Este procedimiento se hace sobre la imagen para obtener los incrementos que se utilizaran en la etapa de descompresin, con el fin de ubicar a los colores de la imagen en la misma. El resto de los recorridos se muestran a continuacin en base a la figura 3.6. Posiciones del color 1: 0, 1, 9, 5, 1, 1, 8, 4, 1, 6, 1, 8, 3, 15. De igual forma que se hizo con los dos archivos anteriores, se toma el valor ms grande de estos datos, que en este caso corresponde el numero 15. Debido a que se requiere de 4 bits para representar al nmero 15 en base binaria todos los datos guardados en este archivo, con nombre RECORRIDOS.DAT tienen ese tamao.
ESIME Zacatenco
32 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 3.6. Recorridos e identificacin de la posicin de los colores sobre la imagen. Despus de localizar la posicin del color, observamos que se cuenta desde uno la siguiente localidad. NOTA: El nmero mayor de los recorridos debe ser el mayor de los cuatro colores. Descompresin. La informacin de los tres archivos creados en la etapa de compresin es concatenada en el vector CADENA para ser procesada por la maquina. De esta forma, se especifica el alto y ancho de la imagen y el nmero de colores que contiene la misma. Para colocar cada color sobre la imagen el algoritmo realiza el siguiente procedimiento: Identifica los colores de la imagen. Toma el primer color.
ESIME Zacatenco
33 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Dependiendo de los datos almacenados en el archivo RECORRIDOS.DAT, se va incrementando la posicin en donde ser puesto este color. Ver imagen 3.7. Este mismo paso se realiza con el resto de los colores, excepto por el ultimo ya que por default, los espacios restantes de la imagen son ocupados por este color.
Figura 3.7. Proceso de descompresin de la imagen mediante RSM. Esto da como resultado la reconstruccin de la imagen original pero de menor tamao. El tamao se determina por la suma de los bits que componen esta imagen. Desarrollo del software. En esta seccin se proceder a explicar la creacin y el uso de este algoritmo de compresin.
ESIME Zacatenco
34 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Se ocuparon 3 Windows form * para elaborar este software. Como primer paso, se procedi a elaborar una aplicacin Windows en el cual se tuvieran tres botones con las siguientes funciones de usuario: 1. Abrir una imagen nueva. 2. Realizar compresin (que ser en donde se ejecute el mtodo de recorridos sobre la imagen, explicado en el captulo anterior). 3. Descomprimir imagen. En la figura 3.8 se muestran las distribuciones de estos elementos. Como se aprecia, adems de los botones que permitirn ejecutar las acciones sobre la imagen, se usaron otras herramientas que el lenguaje C# proporcionaba como son Labels 10 , TextBoxes 11 y un PictureBoxes 12 , sobre el cual la imagen a abrir se mostrar.
Figura 3.8. Distribucin de los componentes grficos del software de aplicacin.
10 Label = representa una etiqueta en Windows. Ver glosario. 11 TextBox = representa un control contenedor de caracteres en Windows. Ver glosario. 12 PictureBox = representa un control de cuadro de imagen de Windows para mostrar una imagen. Ver glosario
ESIME Zacatenco
35 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. A continuacin, se proceder a explicar a detalle la funcin de cada uno de los elementos del software. En la figura 3.9, se aprecian los labels y los textboxes de software. El propsito de los labels sobre el software es de indicar al usuario el campo que describen a los textboxes que tienen a su lado; por el contrario, los textboxes contendrn el dato o resultado de la imagen, de acuerdo a la descripcin contenida en los labels.
Figura 3.9. Distribucin de labels y textboxes. La figura 3.10 corresponde a un PictureBox con nombre pic1 13 (para su fcil uso), sobre el cual se mostrar en pantalla la imagen a comprimir. Como se puede ver, este recuadro est relacionado con el botn con la etiqueta ABRIR UNA IMAGEN NUEVA, ya que al momento de presionar dicho botn aparece un cuadro de texto, tal y como se aprecia en la figura 3.11, con la cual el usuario selecciona la imagen que desea comprimir. Para realizar la compresin el usuario slo debe apretar el botn de Realizar Compresin en el cual, despus de apretarlo, el software
13 Ver apndice A.
ESIME Zacatenco
36 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. abrir una ventana nueva mostrando la carpeta en donde la imagen comprimida se alojar con la extensin del mtodo utilizado.
Figura 3.10. Usos del PictureBox pic1.
Figura 3.11. Cuadro de dialogo del botn ABRIR IMAGEN. El proceso de compresin mediante se enuncia a continuacin:
ESIME Zacatenco
37 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. 1. Apretar el botn Realizar compresin. Esto abrir una ventana como la que se ilustra en la figura 3.12, sobre la cual se aprecia un mensaje de texto que nos dice el tiempo estimado que realizar el proceso de compresin.
Figura 3.12. Ventana inicial del proceso de compresin mediante el mtodo RSI. 2. Este proceso consta de 3 pasos: a. El primer paso consta en llenar la variable CADENA con los datos de la imagen. Esto se puede ver en la figura 3.13. b. El segundo paso consta de crear el archivo con extensin dat, para construir el archivo con extensin RSI. Ver figura 3.14 c. El ltimo paso es crear el archivo RSI para ser utilizado posteriormente en el proceso de descompresin. Ver figura 3.15.
ESIME Zacatenco
38 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 3.13.Paso 1 de la compresin de imgenes a travs de RSI. Utilizacin de la variable cadena.
Figura 3.14.Paso 2 de la compresin de imgenes a travs de RSI. Conversin a binario.
ESIME Zacatenco
39 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 3.14.Paso 3 de la compresin de imgenes a travs de RSI. Creacin del archivo con extensin RSI. Una vez que hayamos comprimido una imagen tenemos la opcin de descomprimirla a travs de nuestro software, y en base a la explicacin de la seccin anterior. Para descomprimir una imagen, se aprieta el botn DESCOMPRIMIR IMAGEN, el cual mostrar la imagen descomprimida con sus respectivas propiedades. Esto se ilustra en la figura 3.15.
ESIME Zacatenco
40 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.
Figura 3.15. Descompresor de imgenes. Como se puede apreciar posee dos botones: uno para ver la imagen comprimida por este mtodo y otro para guardarla. Para este ejemplo esta imagen posee cerca de 40,000 colores originalmente presenta un tamao de 3.16 Kb con el mtodo JPG. Utilizando este mtodo, el tamao de compresin lograda fue de 106 Kb.
ESIME Zacatenco
41 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. CAPTULO IV PRUEBAS Y EXPERIMENTOS REALIZADOS Esta seccin pretende hacer mencin de las pruebas realizadas por el algoritmo para la compresin de imgenes. Prueba No. 1.
Figura 4.1. Compresin de una imagen de alta resolucin con 2385 colores.
ESIME Zacatenco
42 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Resultados obtenidos. Dimensiones de la imagen real: 200 X 200, tamao: 3,64 Kb, Nmero de colores: 2385. Primera prueba con fallas. El mtodo de descompresin presentaba fallas al momento de leer los colores por lo que siempre tomaba el color negro. Este error se corrigi al modificar en el cdigo fuente la seccin correspondiente al ingresar en la variable cadena la informacin de la imagen.
ESIME Zacatenco
43 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 2.
Figura 4.2. Compresin de una imagen de alta resolucin con 2385 colores. Resultados obtenidos. Dimensiones de la imagen real: 200 X 200, tamao: 3,64 Kb, Nmero de colores: 2385. Esto es debido a que esta imagen a pesar que ante el ojo humano posee pocos colores, en realidad tiene mucho ms, lo cual se concluye que por este mtodo no es posible que se realice la compresin.
ESIME Zacatenco
44 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 3.
Figura 4.3. Compresin de una imagen de alta resolucin con 5 colores. Resultados obtenidos. Dimensiones de la imagen real: 300 X 300, tamao: 263 Kb, Nmero de colores: 5. Dimensiones de la imagen comprimida: 300 X 300, tamao: 179 bytes. Por lo cual se obtuvo una compresin del 68%.
ESIME Zacatenco
45 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 4.
Figura 4.4. Compresin del logotipo de una empresa de comida. Esta imagen tiene 11 colores Resultados obtenidos. Dimensiones de la imagen real: 332 X 320, tamao: 52,6 Kb, Nmero de colores: 11. Dimensiones de la imagen comprimida: 330 X 320, tamao: 229 bytes. En esta imagen se obtuvo una compresin del 90%. Este es un ejemplo muy claro de que este algoritmo tiene un funcionamiento optimo, dependiendo del nmero de colores que contenga.
ESIME Zacatenco
46 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 5.
Figura 4.5. Compresin de una toma satelital de un lago. Esta imagen contiene 12 colores. Resultados obtenidos. Dimensiones de la imagen real: 350 X 624, tamao: 107 Kb, Nmero de colores: 12. Dimensiones de la imagen comprimida: 350 X 624, tamao: 270 bytes. En esta imagen, igual que en la anterior se obtiene una compresin del 90%. Por lo regular las tomas satelitales son imgenes de alta resolucin y de poco colores.
ESIME Zacatenco
47 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 6.
Figura 4.6. Compresin de una toma satelital del continente americano. Esta imagen contiene 14 colores. Resultados obtenidos. Dimensiones de la imagen real: 799 X 543, tamao: 212 Kb, Nmero de colores: 14. Dimensiones de la imagen comprimida: 799 X 543, tamao: 166 bytes. Se obtiene una compresin del 90% nuevamente.
ESIME Zacatenco
48 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 7.
Figura 4.7. Compresin de una toma satelital de la ciudad de Villahermosa, Tabasco. Esta imagen contiene 67 colores. Resultados obtenidos. Dimensiones de la imagen real: 400 X 345, tamao: 135 Kb, Nmero de colores: 67. Dimensiones de la imagen comprimida: 400 X 345, tamao: 821 bytes. Se obtiene una compresin cerca del 90%.
ESIME Zacatenco
49 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 8.
Figura 4.8. Compresin de un cuadro artstico. Esta imagen contiene 64 colores. Resultados obtenidos. Dimensiones de la imagen real: 900 X 637, tamao: 560 Kb, Nmero de colores: 64. Dimensiones de la imagen comprimida: 900 X 637, tamao: 382 bytes. Se obtiene una compresin de ms del 90% a comparacin con el tamao de la imagen real.
ESIME Zacatenco
50 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Prueba No. 9.
Figura 4.9. Compresin de una toma satelital de la ciudad de Irapuato. Esta imagen contiene 567 colores. Resultados obtenidos. Dimensiones de la imagen real: 500 X 375, tamao: 184 Kb, Nmero de colores: 567. Dimensiones de la imagen comprimida: 500 X 375, tamao: 934 bytes. Se obtiene una compresin de ms del 90% a comparacin con el tamao de la imagen real. Se puede apreciar que conforme el nmero de colores aumenta, el tamao de la imagen comprimida es mayor.
ESIME Zacatenco
51 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Comparaciones. En la tabla 4.1 se muestra la comparacin del mtodo propuesto contra los mtodos de compresin ms usados en la actualidad. Figura Numero de colores Tamao de la imagen Original Compresin por mtodo de recorridos RSI Compresin por JPEG Compresin por el Cdigo Huffman
567 184 Kb 934 bytes 22,3 Kb 609 Kb
67 135 Kb 821 bytes 53,0 Kb 64,5 Kb
12 107 Kb 270 bytes 37,9 Kb 28,4 Kb Tabla 4.1. Tabla comparativa del mtodo de recorridos sobre una imagen vs jpeg y Huffman. Como se ve en la tabla, este mtodo aplicndose sobre imgenes de alta resolucin y de pocos colores, es ms efectivo que la compresin por jpeg y Huffman.
ESIME Zacatenco
52 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. CONCLUSIONES De las imgenes de prueba mostradas en el capitulo anterior concluyo que este algoritmo es til si se requiere comprimir imgenes de alta resolucin pero que posea pocos colores. La principal razn por la cual este mtodo no puede aplicarse a cualquier imagen es que, como la misma tiene una gran cantidad de colores, los cuales debe obtener su posicin exacta, llega un momento en que son tantos datos, tantos valores que la mquina simplemente ya no puede seguir procesando. Es por esta razn que durante las pruebas con la imagen de 2385 colores, no se obtuvo compresin. Un dato relevante del mtodo es su escaneo. Este paso es de vital importancia, puesto que nos dice realmente cuantos colores posee una imagen, a pesar que ante el ojo humano pareciera tener pocos colores. Esto se corroboro con la misma imagen de la figura 4.3, que a simple vista tiene solo 4 colores, pero mediante el escaneo que el programa realiza sobre la imagen, se determino que el nmero de colores contenida en la misma era de 2385. Por lo tanto, concluyo que este mtodo slo puede aplicarse a imgenes de alta resolucin de pocos colores. En caso de querer comprimir imgenes con un nmero de colores igual o mayor a 2385, se sugiere utilizar otro mtodo de compresin de los ya conocidos. Sobre las posibles aplicaciones de este mtodo son mapas geogrficos satelitales. Estos mapas poseen la caracterstica de ser imgenes de alta resolucin o de formato de 24 bits, que no requieren de muchos colores. Estos mapas requieren de un mtodo que no genere prdidas debido a los usos en el campo de la fsica y geografa. Un posible mtodo de compresin para su transporte y manipulacin es el que se presenta en este escrito obtenindose mejores resultados que los mtodos de compresin ya existentes en el mercado.
ESIME Zacatenco
53 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Por ltimo, concluyo que los objetivos planteados al inicio de esta investigacin se han cumplido satisfactoriamente, dando inicio a un mtodo que en el futuro promete obtener una compresin sin prdidas, no solo para imgenes, sino tambin para archivos de audio e incluso video.
ESIME Zacatenco
54 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. APLICACIONES Y TRABAJO A FUTURO. Como se mencion al principio de este escrito, la compresin es un proceso muy importante ya que con l se puede manipular y/o transportar archivos cuyo tamao es muy grande. En este trabajo se enfoc nica y exclusivamente hacia la compresin de imgenes, pero tambin puede aplicarse a archivos de video, recordando que un archivo de este tipo es un conjunto de imgenes transmitidas en un intervalo de tiempo, que por lo regular resulta ser igual a 24 imgenes por segundo. Cabe mencionar, que tambin tendra la misma restriccin que al comprimir imgenes estticas: el video debe contener imgenes de alta resolucin y de pocos colores para que la compresin sea eficaz. Este puede ser un gran avance, ya que por lo regular, en la compresin de video es muy notoria la prdida de informacin de las imgenes que conforman estos archivos, lo cual hace que el video digital no sea de muy buena calidad.
ESIME Zacatenco
55 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. ANEXOS Apndice A. David Albert Huffman David Albert Huffman (1925-1999) naci en Alliance, Ohio. Despus de graduarse de la Universidad del Estado de Ohio como ingeniero en electrnica a la edad de 18 aos, se uni a la marina. Se recibi como Maestro en Ciencias en ingeniera electrnica en el Estado de Ohio en 1949, y cuatro aos ms tarde, recibi el ttulo de Doctor en Ciencias en el Instituto Tecnolgico de Massachusetts (MIT).
Durante su estancia en el MIT, en 1951, en un curso sobre informacin terica, le fue dada la opcin de tomar un examen final o un trabajo escrito sobre problemas con codificacin de informacin. Huffman durante meses trabajo arduamente en esto sin resultados hasta que en 1952 propuso un mtodo estadstico que permita asignar un cdigo binario a los diversos smbolos a comprimir (pxeles o caracteres, por ejemplo). Este mtodo es conocido en la actualidad como CDIGO HUFFMAN.
El cdigo de Huffman, tambin conocido como codificacin Huffman, puede ser usado en casi cualquier aplicacin, ya que es un sistema vlido para la compresin y posterior transmisin de cualquier dato en formato digital, pudiendo aplicarse a faxes, mdems, redes de computadoras y televisin.
A lo largo de su vida hizo contribuciones importantes al estudio de aparatos finitos, circuitos aleatorios, sntesis de procedimientos, y diseo de seales.
ESIME Zacatenco
56 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Abraham Lempel y Jakob Ziv Abraham Lempel y Jakob Ziv son los creadores del compresor LZ77, inventado en 1977. Este compresor se utiliz en ese momento para archivar; los formatos ZIP, ARJ y LHA lo utilizan. En 1978 crearon el compresor LZ78 especializado en compresin de imgenes (o la compresin de cualquier tipo de archivo binario). En 1984, Terry Welch de Unisys lo modific para utilizarlo en controladores de disco duro; por lo tanto, se agreg la inicial de su apellido a la abreviatura LZ, lo que origin el trmino LZW.
ESIME Zacatenco
57 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Apndice B. El proceso de compresin consta de los siguientes pasos:
BIBLIOTECAS SUGERIDAS PARA EL PROCESO DE COMPRESIN.
System System Collections Generic System Component Model System Data System Data Odbc System Drawing System Text System Windows Forms System IO System Runtime InteropServices System Collections
VARIABLES A UTILIZAR EN EL PROCESO DE COMPRESIN.
Bitmap imagen int tamao_de_la_imagen int ancho_de_la_imagen int alto_de_la_imagen int numero_de_pixeles_de_la_imagen int numero_de_colores string cadena, colores, resultado string vector_cadena
ESCANEO SOBRE LA IMAGEN PARA OBTENER EL NUMERO DE COLORES DE LA IMAGEN
ColoresDeLaImagen (Bitmap imagen) { ... Color col Int32 bits_
FileInfo (".\\Archivo.DAT");
for (Xcontador = 0; Xcontador < image.Width; Xcontador++) {
ESIME Zacatenco
58 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. for (Ycontador = 0; Ycontador < image.Height; Ycontador++) { col = image.GetPixel(Xcontador, Ycontador) cad = col.R.ToString() bits_ = Convert.ToInt32(cad) } ... }
ComienzaLosRecorridos() { _cadena_1 = ReadFromFile(".\\Colores.DAT") int i=1, j=0 int anterior = 0
while (i < _cadena.Length) { auxiliar += Convert.ToString(_cadena[i-1]) j = 0
if (auxiliar.Length==NUMERODEBITS) { while (j < _cadena_1.Length)
ESIME Zacatenco
59 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. { auxiliar += Convert.ToString(_cadena[j]) if (auxiliar.Length==NUMERODEBITS) { if (auxiliar == auxiliar) { cadena += BaseBinaria24(rec) anterior = recorrido - anterior recorrido++ } else { NO LO HACE } }
j++ } }
FileInfo(".\\Archivo.DAT");
}
ESIME Zacatenco
60 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Apndice C.
El proceso de descompresin se describe mediante el siguiente algoritmo desglosado:
PARA LA DESCOMPRESIN DE IMGENES SE CREA UNA NUEVA CLASE Y SE SUGIERE LAS SIGUIENTES BIBLIOTECAS.
System Collections Generic System Component Model System Data System Drawing System Drawing Imaging System Media System Text System IO System Windows Forms
VARIABLES UTILIZADAS EN ESTE PROCESO.
Bitmap bmp int ancho, alto string cadena
DANDO INICIO A ESTE PROCESO SE PROCEDE A ALMACENAR LA INFORMACIN DEL ARCHIVO RSI EN LA VARIABLE CADENA Y RECONSTRUIR LA IMAGEN..
cadena = ReadFromFile(".\\Archivo.RSI") bmp = new Bitmap(ancho, alto, PixelFormat FORMATO DE LA IMAGEN); bmpData = bmp.LockBits (ImageLockMode, bmp.PixelFormat)
UnlockBits (bmpData)
int r = Convert.ToInt32 (aux1) Color rojo int g = Convert.ToInt32 (aux2) Color verde int b = Convert.ToInt32 (aux3) Color azul
Color.FromArgb(r, g, b)
SetPixel(POSICIN x, POSICIN y, Color)
ESIME Zacatenco
61 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. GLOSARIO BMP. Es la extensin que corresponde a un tipo de fichero grfico de mapa de bits (el estndar en Windows). Ver Bitmap.
Bitmap. Tambin conocido como Mapa de Bits es la representacin binaria en la cual un bit o conjunto de bits corresponde a alguna parte de un objeto como una imagen o fuente. Se asocia a un tipo o clase de imgenes para ordenador, en las que se almacena informacin sobre los puntos que las componen y el color de cada punto.
Cdigo Huffman. Mtodo estadstico que permita asignar un cdigo binario a los diversos smbolos a comprimir (pxeles o caracteres, por ejemplo).
DCT o Discrete Cosine Transform. Es una transformada basada en la transformada discreta de Fourier, pero utilizando nicamente nmeros reales.
Formalmente, la transformada de coseno discreta es una funcin lineal invertible R N -> R N o equivalente una NxN matriz cuadrada. Las variantes ms usadas son la DCT-I y la DCT-II. La DCT-III se conoce popularmente como la IDCT(Transformada inversa). Cada uno de estas posibles variaciones es debida a la periodicidad y el tipo de simetra aplicada a las muestras originales. DCT-I
DCT-II
Es la forma ms tpicamente utilizada
ESIME Zacatenco
62 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. DCT-III
DCT-IV
DWT o Discrete Wavelet Transform. La Transformada Discreta Wavelet (Discrete Wavelet Transform) es una representacin de una seal en base orto normal de valores wavelets infinitos. Todas las transformaciones wavelets pueden ser consideradas formas de representacin en tiempo-frecuencia y, por tanto, estn relacionadas con el anlisis armnico. Las transformadas de wavelets son un caso particular de filtro de respuesta finita al impulso. Esta transformada est definida por la siguiente frmula:
Esta definicin de transformada puede ser descompuesta en las siguientes formulas, con el uso de un filtro pasa altas:
Esta transformada es utilizada comnmente para la compresin de imgenes, por lo que el cdigo fuente que describe el comportamiento de esta transformada es el que se muestra a continuacin:
ESIME Zacatenco
63 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. public static int[] invoke(int[] input) { int[] output = new int[input.length];
for (int length = input.length >> 1; ; length >>= 1) { for (int i = 0; i < length; i++) { int sum = input[i*2]+input[i*2+1]; int difference = input[i*2]-input[i*2+1]; output[i] = sum; output[length+i] = difference; } if (length == 1) return output;
Microsoft Visual C#. Lenguaje de programacin orientado a objetos, evolucin del lenguaje C++, desarrollado por Microsoft.
Label. El control Label se utiliza comnmente para proporcionar texto descriptivo de otros controles, tales como cuadros de texto. Tambin se pueden utilizar para agregar texto descriptivo de los controles utilizados en un form cread por el usuario..
Lossless. La compresin de datos Lossless hace uso de algoritmos de compresin que permiten que datos de las imgenes o archivos originales puedan ser reconstruidos a partir de datos comprimidos.
Lossy. Se refiere a las tcnicas de compresin de datos en la que cierta cantidad de datos de la imagen original se pierden.
Picturebox. El control PictureBox es un control que muestra imgenes en diferentes formatos, incluyendo. Bmp,. JPEG,. Gif,. Wmf, y los iconos. Estos se pueden accederse desde varios lugares: Hard drives, Sitios Web, Recursos archivo, etc.
ESIME Zacatenco
64 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. Quadtree. El termino quadtree es utilizado para describir clases de estructuras de datos jerrquicas cuya propiedad comn es que estn basados en el principio de descomposicin recursiva del espacio. En un quadtree, el centro de sus elementos est siempre en un punto. Al insertar un nuevo elemento, el espacio queda divido en cuatro cuadrantes. Al repetir el proceso, el cuadrante se divide de nuevo en cuatro cuadrantes, y as sucesivamente.
Textbox. El control TextBox muestra el texto introducido en tiempo de diseo que pueden ser editados por los usuarios en tiempo de ejecucin, o cambiar mediante programacin. Normalmente, un control TextBox se utiliza para mostrar una sola lnea de texto o permitir que una sola lnea de texto que se aporte por el usuario.
Umbral. Es la cantidad mnima de seal que debe estar presente para ser registrada por un sistema.
Wavelet. El trmino original wavelet, en ingls, ha sido traducido tambin al castellano como onda. Sin embargo, por su brevedad y mayor semejanza con el paradigma latino, comnmente se asocia con la palabra ondula, la cual para fines prcticos, es ms apropiada esta traduccin. Una ondula es una funcin matemtica utilizada para dividir una determinada funcin o en tiempo continuo de seales en frecuencias diferentes componentes y estudio de cada componente con una resolucin que coincide con su magnitud.
Windows form. Al crear un nuevo proyecto de aplicacin para Windows, un formulario denominado Form1 se agrega automticamente al proyecto.
Zerotree. El zerotree se basa en la hiptesis de que si un coeficiente de onda en una escala gruesa es insignificante con respecto a un umbral, entonces todos los coeficientes de onda de la misma orientacin en la misma ubicacin
ESIME Zacatenco
65 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. espacial en la escala ms fina es probable que sea insignificante con respecto al mismo umbral.
ESIME Zacatenco
66 ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS. REFERENCIAS [1] A. K. Jain, Fundamentals of digital image processing, Prentice Hall International, Englewood Cliffs, 1989.
[2]Cosio Robles Alma Lillian, Garca Snchez Miriam, Gonzlez Fernndez Judith, Comparacin de algoritmos de compresin de imgenes, Agosto 2004.
[3] Bitmap property: Height, Physical Dimension, width, raw format and size, http://www.java2s.com/Code/CSharp/2D- Graphics / Bitmapproperty Height Physical Dimension width raw formatandsize.htm
[4] Video e imgenes digitales, http://es.kioskea.net/video/lumiere.php3
[6] Mike Kitchen, C# Tutorial http://en.csharp-online.net/, 2007 2008.
[7] Balamurali Balaji, Conversin of Decimal to any Base (Binary, Octal or Hexa) and vice-versa (C#) http://www.codeproject.com/KB/cs/balamurali_balaji. aspx.
[8] Ceballos Sierra Francisco Javier, Enciclopedia de Microsoft Visual C#, Alfa omega grupo editor S. A. de C. V., 2006
[9] Ceballos Sierra Francisco Javier, Microsoft C#. Lenguaje y aplicaciones., Alfa omega grupo editor S. A. de C. V., 2006