Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Equipo 1
Índice General
1 Introducción 2
2 Base de Haar 3
5 Compresión de imágenes 17
5.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Proceso de compresión . . . . . . . . . . . . . . . . . . . . . . 19
5.3 Aplicación en Matlab . . . . . . . . . . . . . . . . . . . . . . . 21
1
1 Introducción
Los wavelets1 han tomado una enorme popularidad recientemente. Sin em-
bargo, sus raíces datan de 1873, cuando el trabajo de Karl Weierstrass des-
cribió una familia de funciones que son construidas por una superposición
de copias escaladas de una función base dada. Las funciones que el definió
son fractales, en el sentido de que son continuas en todos sus puntos y di-
ferenciables en ninguno. Otro trabajo importante fue el de Alfred Haar en
1909, cuando construyó el primer sistema ortonormal de funciones con so-
porte compacto, ahora llamada base de Haar. Esta base aún sirve como el
fundamento para la moderna teoría del wavelet.
Otro avance significativo vino en 1946, cuando Dennis Gabor describió
una base no-ortogonal de lo que ahora se llaman wavelets con soporte no
acotado, basado en funciones gaussianas trasladadas.
El término wavelet proviene del campo de la sismología, donde fue bauti-
zado por Ricker en 1940 para describir el disturbio resultante de un impulso
sísmico agudo o una carga explosiva. En 1982, Morlet mostró como estos
wavelets sísmicos podrían ser modelados eficientemente con las funciones
matemáticas que Gabor definió.
Posteriormente, Grossman y Morlet mostraron cómo señales arbitarias
pueden ser analizadas en términos de escalamientos y traslaciones de una
función wavelet madre. Yves Meyer y Stephane Mallat ampliaron esta noción
a una teoría llamada “multiresolution analysis”. En 1989 Mallat mostró cómo
esta teoría se puede utilizar en el procesamiento de imágenes y en el análisis
de señales.
Una definición bastante sencilla de los wavelets es la que da Subhasis
Saha: “Los wavelets son funciones definidas en intervalos finitos que tienen
un valor promedio de cero”2 . Los wavelets se definen por medio de una
o varias funciones iniciales, llamadas wavelets madre, y un algoritmo para
obtener el resto de las funciones que conformarán la base a partir de las
funciones madre (algunos se refieren a este algoritmo como wavelet padre)
Otra propiedad que será deseable en estas funciones es que sean ortonormales.
Estas bases de funciones han sido aplicadas a distintas áreas, como las
1
Algunos autores utilizan la palabra ondeleta para traducir la palabra en inglés wavelet
o en francés ondelette, sin embargo, nosotros decidimos utilizar el término en inglés en
este trabajo.
2
Saha, S., Image Compresion - from DCT to wavelets: A review. ACM Crossroads
Student Magazine.
2
ecuaciones diferenciales parciales, la física y el procesamiento de señales y
gráficas computarizadas. La aplicación más popular es, probablemente, la
compresión de imágenes.
En este trabajo se presentarán dos enfoques para utilizar los wavelets. El
primero, más teórico, se refiere a la formación de una base ortonormal de
funciones para realizar aproximaciones a las funciones reales definidas en el
intervalo [0, 1] que son cuadrado integrables; el conjunto de estas funciones
es conocido como L2 ([0, 1]). Esta base se propone como una alternativa
a la aproximación por medio de series de Fourier, en especial para datos
multidimensionales.
El segundo enfoque, el más usado, se refiere a aproximar a una función
definida en el mismo intervalo [0, 1], con la diferencia de que sólo conocemos
a esta función por medio de una muestra finita de valores, repartida a lo
largo del intervalo. Por medio de este enfoque, describiremos una aplicación
de los wavelets, relacionada con la compresión de imágenes.
Es claro que los enfoques no son ajenos, sino que tienen el mismo origen
y solo difieren en el tipo de datos de entrada que requieren.
2 Base de Haar
La finalidad de esta sección es construir una base ortonormal de funciones
f ∈ L2 ([0, 1]) con respecto al producto interior
Z 1
hf, gi = f (x) g (x) dx
0
3
todos los demás wavelets. Siguiendo esta idea, definimos al wavelet básico (o
wavelet madre) ψ dado por
1 si x ∈ [0, 1/2)
ψ (x) = −1 si x ∈ [1/2, 1)
0 en otro caso.
4
funciones es muy semejante a funciones características (salvo por la sección
negativa, pero esta puede ser eliminada utilizando funciones de Haar con
un índice mayor o la función indicadora), por lo que si tomamos una canti-
dad suficiente de ellas, multiplicadas por factores adecuados, tendremos una
aproximación tan buena como queramos a la función; y en el límite tendremos
a la función original.
De hecho, esta base no es distinta a aquellas que se encuentran en el espa-
cios vectoriales en el sentido de que los coeficientes serán iguales al producto
interno entre la función original y la función de Haar correspondiente. De
esta forma, si f ∈ L2 ([0, 1]), entonces
X
∞
f (x) = hf, ψ n i ψ n (x) ,
n=0
5
Ya construimos la familia de funciones de Haar, que forma una base
ortonormal de L2 ([0, 1]). Sin embargo, para muchas aplicaciones es posible
que no conozcamos una expresión explícita de la función, sino que solo tenga-
mos algunos puntos por donde esta pasa. En esos casos sigue siendo posible
aproximar la función; es más, podemos usar las mismas funciones de Haar
para hacer eso. En la siguiente sección presentaremos una forma de hacerlo.
Las ideas principales fueron obtenidas de [3].
6
dilataciones de la función básica φ. Cuando es necesario utilizar un soporte
distinto al intervalo [0, 1), digamos [u, w), se utiliza la contracción de la
función φ definida por
½
1 x ∈ [u, w)
φ[u,w) (x) =
0 en otro caso.
X
n−1
f˜ = sj · φ[rj ,rj+1 ) .
j=0
7
Ejemplo 2 La muestra de la siguiente tabla corresponde a la función simple
g̃ que aparece en la figura 2.
j 0 1 2 3
rj 0 1/4 1/2 3/4
sj 5 1 2 8
Del mismo modo, la diferencia de los mismos produce al wavelet básico que
definimos antes y denotamos por ψ [0,1) :
8
Figura 3: el wavelet ψ [0,1) .
f˜ = s0 φ[0,1/2) + s1 φ[1/2,1)
1¡ ¢ 1¡ ¢
= s0 φ[0,1) + ψ [0,1) + s1 φ[0,1) − ψ [0,1)
2 2
s0 + s1 s0 − s1
= φ[0,1) + ψ [0,1) .
2 2
¡ ¢
Así, tenemos el promedio de f˜, dado por s0 +s1 y el cambio dado por
¡ s0 −s1 ¢ 2
2
.
9
y sumando y restando estas dos ecuaciones se obtiene la relación inversa.
La transformada básica contraída y dilatada se aplica entonces a las pare-
jas consecutivas de valores en una muestra con una cantidad par de valores.
10
factor de escalamiento. Para no confundir ambos tipos de funciones, y para
simplificar la explicación de esta transformada, utilizaremos una nueva no-
tación, idéntica a aquella que aparece en [3].
Para cada índice l ∈ {1, . . . , n}, antes de la iteración l, el arreglo con-
(n−[l−1])
sistirá de 2n−(l−1) coeficientes de 2n−(l−1) funciones simples φk , que
definiremos más adelante. Después de la iteración l, el arreglo consistirá de
la mitad de esos coeficientes (2n−l ) con 2n−l funciones simples φn−l k y 2n−l
n−l
coeficientes de wavelets ψ k .
3.2.1 Inicialización
Para las wavelets de Haar, la inicialización consiste únicamente en generar
un vector de los valores de la muestra de la forma
³ ´
(n) (n) (n)
a(n) = a0 , a1 , . . . , a2n −1
= (s0 , s1 , . . . , s2n −1 ) ,
11
3.2.2 Transformada rápida ordenada
En la sección anterior se mostró una forma de aplicar la transformada básica
a todos los pares consecutivos del vector de muestras en una iteración. En
general, es posible realizar varias iteraciones de la transformada básica, donde
en la k-ésima de ellas se comienza con un vector de 2n−[k−1]³ valores a
(n−[k−1])
y
´
(n−[k−1]) (n−[k−1])
se aplica la transformada básica a cada par consecutivo a2l , a2l+1
con lo que se obtienen dos nuevos coeficientes de wavelet
(n−[k−1]) (n−[k−1])
(n−k) a2l + a2l+1
al = ,
2
(n−[k−1]) (n−[k−1])
(n−k) a2l − a2l+1
cl = .
2
De esta forma tenemos en total 2(n−k) coeficientes nuevos en la k-ésima
iteración. Estos pueden ser representados por medio de dos vectores
³ ´
(n−k) (n−k) (n−k) (n−k)
a = a0 , a1 , . . . , a2n−k −1 ,
³ ´
(n−k) (n−k) (n−k)
c(n−k) = c0 , c1 , . . . , c2n−k −1 ,
La iteración produce dos nuevos vectores: a(n−k) y c(n−k) que forman los
coeficientes de una aproximación a la función por medio de pasos más anchos,
(n−k)
de tamaño 2k−n y los coeficientes de los wavelets ψ j , respectivamente, de
tal forma que, al igual que cuando se realiza una sola iteración, mantenemos
la misma aproximación simple de la función inicial, pero expresada de un
modo distinto, es decir
2n−k
X−1 2n−k
X−1
˜(n−[k−1]) (n−k) (n−k) (n−k) (n−k)
f = aj φj + aj ψj .
j=0 j=0
12
Entonces, podemos aprovechar estas iteraciones para reescribir sucesiva-
mente las aproximaciones por funciones simples y mantener los coeficientes
de los wavelets utilizados. De esta forma, al final tendremos una aproxi-
mación de la función que utiliza únicamente wavelets. La aproximación final
se conoce como la Transformada en Wavelets de Haar de los datos.
En general, necesitamos únicamente los coeficientes de los wavelets uti-
lizados para tener la aproximación original. Es posible tomar un vector que
contenga los valores de la función en los puntos e ir calculando en cada paso
los promedios y diferencias (los vectores a y c). Cada uno de estos vectores
tiene una longitud igual a la mitad de la longitud del vector original, por
lo que la información puede ser almacenada en un vector siempre del mis-
mo tamaño. Todo el proceso, que también se conoce como ‘promediar y
diferenciar’ se ilustra en el siguiente ejemplo.
Ejemplo 5 Supongamos que tenemos los mismos datos del ejemplo 2. Estos
pueden ser almacenados en el vector s = (5, 1, 2, 8). El almacenamiento de
el resultado final se ordenará por medio de frecuencias crecientes: desde las
frecuencias más bajas (las producidas al final) hasta las frecuencias altas que
se almacenan en los últimos espacios del vector. En un principio tenemos a
a(2) = s que tiene los 4 valores de la muestra.
En la primera iteración obtenemos los vectores
µ ¶
(2−1) 5+1 2+8
a = , = (3, 5) ,
2 2
µ ¶
(2−1) 5−1 2−8
c = , = (2, −3) .
2 2
Como ya se mencionó antes, estos datos los podemos almacenar en un vector
de tamaño 44
s(2−1) = (3, 5, 2, −3) .
En la segunda iteración, lo que se hace es mantener sin cambios a c(2−1)
y modificar a a(2−1) de la misma forma que lo hemos estado haciendo:
a(2−2) = (4) ,
c(2−2) = (−1) .
4
Utilizaremos “negritas” para los números correspondientes al vector de los coeficientes
de las funciones escalón (a) para hacer más sencilla la explicación al distinguirlos de
los elementos de c, sin embargo, esta distinción puede hacerse sabiendo el número de
iteraciones que se han realizado.
13
Esto se puede almacenar en un vector de tamaño 2, o utilizar el espacio que
utilizaba a(2−1) en el vector anterior. Así, tenemos
s(2−2) = (4, −1, 2, −3) .
Este vector contiene los coeficientes necesarios para aproximar a la fun-
ción por medio de wavelets. De esta forma, la función de aproximación dada
por los datos es
(0) (0) (1) (1)
f˜ = 4φ + (−1)ψ + 2ψ + (−3) ψ .
0 0 0 1
14
era una constante para toda k. En este caso, necesitamos extender este
supuesto para varias, digamos n, dimensiones por lo que pediremos que
xi1 ,i2 ,... ,ij +1,... ,in − xi1 ,i2 ,... ,ij ,... ,in
sea una constante para toda ij , para toda j = 1, . . . , n. Dicho gráficamente,
queremos que los puntos donde se toman las muestras formen una cuadrícula.
Para simplificar el desarrollo, hablaremos exclusivamente de los wavelets
en dos dimensiones, sin embargo el proceso es análogo para tres o más di-
mensiones.
Hay dos formas que se utilizan para extender los wavelets de Haar a dos
dimensiones: la construcción estándar y la no-estándar. Presentaremos las
dos construcciones porque ambas se utilizan para aplicaciones dependiendo
de las necesidades.
15
Figura 4: cuatro elementos de la base estándar de wavelets de Haar bidimen-
sionales.
16
Figura 5: la construcción estándar de wavelets de Haar bidimensionales. Las
funciones tienen valor de 1 donde aparece el signo “+”, -1 donde está el signo
“-” y 0 en el resto.
5 Compresión de imágenes
5.1 Antecedentes
El ojo y oído humanos captan una cantidad impresionante de datos cada
segundo, muchos más de los que el cerebro puede considerar. El primer
paso para hacer que lo que se ve sea disponible para el cerebro consiste
en seleccionar y omitir la información menos importante. Esta compresión
automática que se realiza en las redes neuronales que interconectan al ojo con
el cerebro reduce el monto de información que llega al cerebro en un factor
de al menos 100; es decir, mucha de la información física representada en las
señales de luz que llegan a los ojos no son necesarias para el cerebro. De aquí
surge una justificación para reducir la información contenida en una imagen
para ahorrar espacio de almacenamiento, o para transferir esta información
de forma eficiente.
La idea básica de la compresión de datos en general (y en particular de
imágenes) es la de usar la menor cantidad de bits posibles para representar
la mayor cantidad de la información original. El uso de wavelets permite que
17
Figura 6: la construcción no-estándar de wavelets de Haar bidimensionales.
18
más adelante.
El error de una imagen recuperada se calcula por medio del error cuadráti-
co medio, definido como la suma de los cuadrados de las diferencias entre los
valores de los pixeles de la imagen original y la imagen tras efectuar el proceso
de compresión y recuperación.
333333333555555874444444420
093065870842010
19
idéntico al original, pero será una buena aproximación, como se verá en los
ejemplos.
También es posible realizar el método de promediar y diferenciar alter-
nando un renglón y una columna en lugar de todos los renglones y todas
las columnas. En ese caso, los elementos de la matriz resultantes serán los
coeficientes de los wavelets de Haar bidimensionales en forma no-estándar.
Todo el proceso anterior puede ser repetido para estas matrices.
8
Este ejemplo es expuesto por Peggy Morton (ver [9]).
20
Figura 8: las matrices que se obtienen tras aplicar el proceso de promedio
y diferenciación, primero sobre los renglones (a) y luego sobre las columnas
(b).
Ahora hay que reinterpretar esta matriz como imagen. En la figura 9 (a)
se muestra la imagen original, y en (b) la imagen reconstruida tras comprimir
con wavelets de Haar y el umbral de 5.
21
Figura 9: (a) la imagen original y (b) la recuperada tras la compresión.
Referencias
[1] Chui, C.K. (1997). Wavelets: A Mathematical Tool for Signal Analysis.
SIAM
22
Figura 10: resultados de aplicar compresiones con wavelets de Haar a la
imagen original (esquina superior izquierda), con distintos umbrales.
[4] Resnikoff, H.L. y Wells, R. Jr. (1998). Wavelet analysis, the scalable
structure of information. Springer-Verlag. New York, EUA.
[6] Stollnitz, E.J., Derose, T.D. y Salesin, D.H. (1996). Wavelets for Com-
puter Graphics. Morgan Kaufmann, San Francisco, CA, EUA.
9
Esta es una publicación electrónica. Su dirección es http://www.acm.org/crossroads/
23
[7] Strang, G. y Nguyen, T. (1996). Wavelets and filter banks. Wellesley-
Cambridge Press. USA.
[9] http://online.redwoods.cc.ca.us/instruct/darnold/laproj/
Fall97/PMorton/imageComp3/index.htm
[10] http://symbolcraft.com/graphics/haar/
[11] http://www.spelman.edu/~colm/wav.html
24