Está en la página 1de 76

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERA


MECNICA Y ELCTRICA

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


ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELECTRICA
UNIDAD PROFESIONAL '"ADOLFO LPEZ MATEOS"

TEMA DE TESIS
QUE PARA OBTENER ELTITtJLO DE

INGENIEROEN OOMUNICAOONES y ELECTRNICA

POR LA OPCIN DE TITULACiN

TESIS Y EXAMENORALINDIVIDUAL

DEBERA(N) DESARROLLAR

c.-MARIO SANDOVAL OUVE

"ALGORITMO DE COMPRESIN DE IMGENES DE ALTA RESOLUCIN Y POCOS


COLORES SIN PRDIDAS".

DESARROLLAR UNA ALGORITMO QUE REALICE LA COMPRESIN SIN PRDIDAS DE


INFORMACIN, DE IMGENES DE ALTA RESOLUCIN Y POCOS COLORES, UTILIZANDO EL
LENGUAJE DE PROGRAMACIN C#.

ANLISIS DE LOS ALGORITMOS EXISTENTE: COMPRESIN SIN PRDIDAS


COMPRESIN CON PRDIDAS

MTODO PROPUESTO: COMPRESIN RSI (RECORRIDO SOBRE LA IMGEN)

DESARROLLO DEL MTODO

PRUEBAS

MXICO D.F., 10 DE NOVIEMBRE DE 2009

-\~~\L,

ASESORES

DRA. MARA ELENA ACEVEDO MOSQUEDA.

DE Le.E.

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

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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

VII

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.

BMP = Archivo de mapa de bits. Ver glosario.

ESIME Zacatenco

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 compression2", 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
compression3"), 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
3

Lossless data compression = Compresin de datos sin prdidas. Ver glosario.


Lossy data compression = Compresin de datos con prdidas. Ver glosario

ESIME Zacatenco

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 Huffman4) 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.

El algoritmo Huffman, permite la compresin de datos a travs de una tabla de cdigos de longitud
variable. Ver captulo 2.

ESIME Zacatenco

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

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

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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

Algoritmo/
Caracterstica
Memoria
Tasa de
compresin
Operaciones
complejas
Tipo imgenes

LZW

Huffman

RLE

Aritmtica

Gzip

Basados en
TDC

Basadas
en
wavelets

Baja

Alta

Muy baja

Media

Baja

Media

Baja

Media

Media

Baja - Media

Baja - Media

Media

Media - Alta

Alta

No

Punto flotante

No

Algunos casos

No

Construccin
rbol

Algunos
casos
Casi

Colores

Colores

Colores

Tonos

Colores

No tan

uniformes

uniformes

uniformes

continuos

uniformes

importante

NA

NA

NA

NA

NA

NA

Si

NA

NA

NA

NA

Si

NA

Si

NA

NA

NA

NA

NA

Si

Si

Si

Si

Si

Si

Si

Si

Si

cualquier
tipo

Codificacin de
regiones de
inters (ROI)
Manejo de
errores
Con prdida de
informacin
Sin prdida de
informacin

Figura 1.3. Cuadro comparativo de los diferentes mtodos de compresin existentes en la


actualidad.

ESIME Zacatenco

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

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

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
224 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.

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

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.
JPEG.
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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

12

compresin ms utilizado actualmente para la compresin de imgenes con


prdida. Este mtodo utiliza la transformada discreta del coseno5 (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.

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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

14

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 DWT6 para obtener resultados satisfactorios en la compresin: un gran
porcentaje de coeficientes wavelets7 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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

15

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 (zerotrees8) 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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

16

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 quadtree9 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.

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

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.

El final de la imagen (00 00). Ver figura 2.13 b.

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 00H.

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
24DECIMAL 4DECIMAL.
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 = 512DECIMAL 256DECIMAL 131072DECIMAL
24DECIMAL 4DECIMAL
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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

30

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

256

131072

24

Blanco

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

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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

34

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 Labels10, TextBoxes11 y un PictureBoxes12, 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.


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
11

ESIME Zacatenco

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

35

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 pic113 (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

Compresin
Tamao
Numero
por mtodo
Compresin
de la
Compresin
de
de
por el Cdigo
imagen
por JPEG
colores
recorridos
Huffman
Original
RSI

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)
}
...
}
ALMACENAMIENTO DE LA INFORMACIN EN CADENA.
vector_cadena =

String.Concat(BaseBinaria(_bits1),
BaseBinaria(0),
BaseBinaria(_bits2),
BaseBinaria(0),
BaseBinaria(_bits_),
colores)

SECCIN DEL PROGRAMA QUE OBTIENE EL NMERO DE BITS, LO


COLOCA EN CADENA Y HACE LA CONVERSIN A BINARIO PARA LA
CREACIN DEL RSI.
cad1=Convert.ToString(ancho_de_la_imagen)
cad2=Convert.ToString(alto_de_la_imagen)
_bits1 = Convert.ToInt32(cad1)
_bits2 = Convert.ToInt32(cad1)
FASE FINAL DE COMPRESIN DE LA IMAGEN
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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

59

{
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)
int g = Convert.ToInt32 (aux2)
int b = Convert.ToInt32 (aux3)

Color rojo
Color verde
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 RN -> RN 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

ALGORITMO DE COMPRESIN DE IMAGENES DE ALTA RESOLUCIN SIN PRDIDAS.

63

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;
System.arraycopy(output, 0, input, 0, length<<1);
}
}

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
[5] ZDNet Definition for: Lossless Compression,
http://images.google.com.mx/imgres
[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

ESIME Zacatenco

También podría gustarte