Está en la página 1de 25

Wavelets

H. Andrea Hijar C. 43145


Juan Pablo Newman A. 43420
Ma. Ángeles Rodríguez B. 45547
Rafael Peñaloza N. 48448

Equipo 1
Índice General
1 Introducción 2

2 Base de Haar 3

3 Wavelet simple de Haar 6


3.1 Transformada básica de Haar . . . . . . . . . . . . . . . . . . 8
3.1.1 Contracciones y dilataciones . . . . . . . . . . . . . . . 9
3.2 Transformada rápida ordenada con wavelet de Haar . . . . . . 10
3.2.1 Inicialización . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2 Transformada rápida ordenada . . . . . . . . . . . . . 12

4 Wavelets de Haar en varias dimensiones 14


4.1 Construcción estándar . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Construcción no-estándar . . . . . . . . . . . . . . . . . . . . . 15

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

distinta a la base de Fourier construida con senos y cosenos. La base que


construiremos ahora es conocida como base de Haar, por su creador Alfred
Haar. Existen muchas bases de este tipo que tienen utilidad en distintas
áreas; nosotros presentamos esta por ser una de las más sencillas.
Para definir la base de Haar en el intervalo [0,1), comenzaremos con la
función indicadora φ : [0, 1) → [0, 1] dada por
½
1 si x ∈ [0, 1)
φ (x) =
0 en otro caso.

Como ya mencionamos antes, para definir una familia de wavelets, es


suficiente con definir al wavelet madre y tras él una regla para obtener a

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.

Para definir a los demás integrantes de la familia, hay que observar


primero que todo número n ∈ N puede ser escrito de forma única como
la suma de una potencia de 2 y un entero positivo menor a la potencia usa-
da, i.e. n = 2j + k, 0 ≤ k < 2j ; j ≥ 0. Así, definimos el n-ésimo wavelet de la
familia como
¡ ¢
ψ n (x) = 2j/2 ψ 2j x − k

donde j y k cumplen que n = 2j + k, 0 ≤ k < 2j ; j ≥ 0. Este conjunto no


está completo, pues aún no forma una base de las funciones en L2 ([0, 1]).
Para eso, agregamos la función ψ 0 (x) = φ (x).
No daremos una demostración formal de que las funciones de Haar for-
man una base ortonormal de L2 ([0, 1]), sin embargo daremos argumentos
intuitivos que, creemos, son suficientemente convincentes:
Primero veamos que el intervalo donde las funciones toman valores dis-
tintos de cero se reduce a la mitad cada vez que n es una potencia
√ de 2 y, al
mismo tiempo, el valor de la función crece en un factor de 2 (tanto para
el lado positivo, como para el negativo), por lo que al hacer la función al
cuadrado, será toda positiva, a una altura de una potencia de 2 y el soporte3
será el recíproco de esa potencia, por lo que la norma de la función es 1.
Además, si tomamos dos funciones ψ n , ψ m , donde podemos suponer que
n < m, entonces el soporte de ψ m tiene longitud menor o igual a la del soporte
de ψ n . Además, por la forma en que se definen las funciones, si el soporte de
ψ m está contenido en el de ψ n , entonces estará en la mitad positiva de ψ n o
en la mitad negativa. Así, el producto interior dará 0. Por otro lado, si los
soportes son ajenos, el producto de funciones será 0, por lo que el producto
interior será a su vez 0.
Lo que falta ver es por qué forman una base de L2 ([0, 1]), es decir, por
qué es posible escribir cualquier función de L2 ([0, 1]) como una serie de estas
funciones multiplicadas por ciertos coeficientes reales. Pero esta familia de
3
Llamamos soporte al intervalo donde la función toma valores distintos de cero.

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

donde la convergencia es de acuerdo a la métrica inducida por este producto


interno, es decir,
Z 1 ¯¯ XN
¯2
¯
¯ ¯
¯f − hf, ψ n i ψ n (x)¯ dx → 0.
0 ¯ n=0
¯ si N →∞

A partir de este resultado, se obtiene la identidad de Parseval que se


muestra a continuación.
2
P∞ 1 (Identidad de Parseval) Sean f, g ∈ L ([0, 1]), entonces
Proposición
hf, gi = n=0 hf, ψ n i hg, ψ n i .

La demostración se realiza haciendo uso de la linealidad del producto


interior; de esta forma, usando la ortogonalidad, obtenemos que
*∞ +
X X

hf, gi = hf, ψ n i ψ n , hg, ψ n i ψ n
n=0 n=0
X
∞ X

= hhf, ψ n i ψ n , hg, ψ m i ψ m i
n=0 m=0
X∞
= hf, ψ n i hg, ψ n i .
n=0

No justificaremos el intercambio entre la integral y la serie, pero esto se puede


hacer gracias a la convergencia de las funciones.

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

3 Wavelet simple de Haar


Debido a que las mediciones prácticas de fenómenos reales requieren tiempo
y recursos, no proveen de todos los valores sino de una secuencia finita de
valores (una muestra de la función). El primer paso para el análisis de una
función por wavelets consiste en aproximar esta función utilizando la muestra
con la que se cuenta. Antes de hacer el análisis por medio de los wavelets
de Haar, presentaremos uno de los métodos más simples que consiste en
utilizar la función escalonada extendida en cada punto de la muestra, como
se muestra en la figura 1. Así se forma una nueva función f˜ llamada función

Figura 1: una muestra de una función y la función escalonada que la aproxi-


ma.

simple que aproxima a la función original f .


Para poder realizar el análisis de aproximación por medio de wavelets, es
necesario un etiquetamiento de cada “escalón” por medio de contracciones y

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.

Finalmente, para construir una función simple de diferente altura c, em-


pezando en u y terminando en w, simplemente hacemos el producto c ·
φ[u,w) (x). Así, si se tiene el punto (rj , sj ) tal que sj = f (rj ), donde sj
es la altura y rj es la abcisa, entonces a este punto muestral corresponde a la
función simple sj · φ[rj ,rj+1 ) que aproxima a la función f con una altura sj en
el intervalo [rj , rj+1 ). Sumando todas las funciones simples correspondientes
a todos los puntos en la muestra, se obtiene una fórmula simple de la forma

X
n−1
f˜ = sj · φ[rj ,rj+1 ) .
j=0

Figura 2: Un ejemplo de una función simple.

A partir de ahora, para simplificar el análisis, supondremos que xi+1 − xi


es constante para toda i = 0, . . . , n − 1.

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

Su fórmula está dada por

5 · φ[0,1/4) + 1 · φ[1/4,1/2) + 2 · φ[1/2,3/4) + 8 · φ[3/4,1) .

3.1 Transformada básica de Haar


La transformada básica de Haar expresa a la función f˜ con wavelets reem-
plazando un par adyacente de “escalones” por un escalón más ancho y un
wavelet. Este escalón mide el promedio del par inicial de escalones, mientras
que el wavelet formado por dos escalones alternantes mide la diferencia del
par inicial de escalones.
Por ejemplo, la suma de dos escalones adyacentes de longitud 1/2 produce
la función φ

φ[0,1) = φ[0,1/2) + φ[1/2,1) .

Del mismo modo, la diferencia de los mismos produce al wavelet básico que
definimos antes y denotamos por ψ [0,1) :

ψ [0,1) = φ[0,1/2) − φ[1/2,1) .

El wavelet ψ [0,1) es una función escalonada, con el primer escalón de altura


1 y el segundo de altura −1 (ver figura 3), por lo tanto, hay un brinco de
tamaño −2 del primer al segundo escalón.
Si sumamos y restamos las dos ecuaciones que acabamos de obtener ob-
tenemos la relación inversa, que expresa los pasos angostos φ[0,1/2) , φ[1/2,1) en
términos de φ[0,1) y ψ [0,1) .
½ 1
¡ ¢
2
φ
¡ [0,1) + ψ [0,1) ¢ = φ[0,1/2) ,
1
2
φ[0,1) − ψ [0,1) = φ[1/2,1) .

8
Figura 3: el wavelet ψ [0,1) .

Para dos escalones de alturas s0 y s1 , las ecuaciones anteriores producen


la siguiente representación con un escalón más ancho y un wavelet:

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
.

3.1.1 Contracciones y dilataciones


Para aplicar la transformada básica empezando en un punto u 6= 0 en un
intervalo extendido hasta w 6= 1, se define al wavelet contraído y dilatado
ψ [u,w) por el punto medio v := (u + w) /2
½
1 si u ≤ x < v
ψ [u,w) (x) :=
−1 si v ≤ x < w.

De nuevo, la suma y la diferencia de dos escalones angostos dan un escalón


ancho y un wavelet
½
φ[u,w) = φ[u,v) + φ[v,w) ,
ψ [u,w) = φ[u,v) − φ[v,w) .

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.

Ejemplo 3 Supongamos que tenemos los mismos datos que en el ejemplo


2. Recordemos que por medio de la aproximación con una función simple
obtenemos que f˜ = 5φ[0,1/4) + 1φ[1/4,1/2) + 2φ[1/2,3/4) + 8φ[3/4,1) . Aplicando la
transformación básica al primer par de puntos se obtiene que
5+1 5−1
5φ[0,1/4) + 1φ[1/4,1/2) = φ[0,1/2) + ψ [0,1/2) .
2 2
Del mismo modo, realizamos la transformación básica al otro par de puntos,
con lo que obtenemos que

f˜ = 3φ[0,1/2) + 2ψ [0,1/2) + 5φ[1/2,1) + (−3) ψ [1/2,1) .

¿Cómo se interpretan estos coeficientes?


El primer y tercer coeficientes (3 y 5 respectivamente) indican que en
el intervalo [0,1/2) f˜ tiene un promedio de 3, mientras que en el intervalo
[1/2,1) el promedio es de 5. Los otros dos coeficientes muestran el tamaño
de los brincos de la función en los puntos medios de los intervalos anteriores.
Es decir, en el punto x = 1/4, f˜ tiene un brinco del tamaño de 2 veces el de
la función ψ [0,1/2) , que es de tamaño -2. Por lo tanto, la diferencia en ese
punto es de 2 ∗ (−2) = −4. Análogamente, en el punto x = 3/4, el brinco es
de tamaño (−3) ∗ (−2) = 6.

Como supusimos que la distancia entre una abcisa y la siguiente es siempre


igual, si tenemos n muestras en el intervalo [0, 1), podemos suponer que se
encuentran en puntos de la forma x = i/n con i = 0, 1, 2, . . . , n − 1.

3.2 Transformada rápida ordenada con wavelet de Haar


Para analizar una señal o una función en términos de wavelets, la transfor-
mada rápida ordenada de Haar comienza con un arreglo de 2n elementos, y
procede con n iteraciones de la transformada básica explicada en la sección
anterior.
Para esta sección utilizaremos unas funciones semejantes a los wavelets
que formaron la base ortogonal de Haar en el primer capítulo, pero sin el

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 .

Definición 4 Para cada entero positivo n y cada índice l ∈ {0, . . . , n}, se


definen las funciones simples φn−l
k y wavelets ψ n−l
k por
¡ ¢
φn−l
k (x) : = φ[0,1) 2n−1 [x − k2l−n ]
½
1 si k2l−n ≤ x < (k + 1) 2l−n
=
0 en otro caso.
n−l
¡ ¢
ψk : = ψ [0,1) 2n−1 [x − k2l−n ]
 l−n
¡ 1
¢ l−n
 1 si k2 ¡ ≤
¢ x < k + 2
2
= −1 si k + 12 2l−n ≤ x < (k + 1) 2l−n

0 en otro caso.

Como se puede ver, si tenemos que m = 2n−l k , entonces ψ m definida en la


n−l
sección anterior es idéntica a ψ k multiplicada por el factor de escala 2(n−l)/2 .

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 ) ,

donde el superíndice (n) indica que la muestra consta


P de 2n valores. Este
n −1 (n) (n)
vector corresponde a la función escalonada f˜ = j=0 aj φj .
(n) 2

Más adelante se mostrará la necesidad de que el tamaño de la muestra


sea de una potencia de 2.

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 ,

que tienen la siguiente interpretación:


El vector inicial a(n−[k−1]) muestra los valores de una función simple que
aproxima a la función real por medio de 2(n−[k−1]) pasos de tamaño 2(k−1)−n ,
es decir,
2n−[k−1]
X −1
˜(n−[k−1]) (n−[k−1]) (n−[k−1])
f = aj φj .
j=0

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

La forma en que colocamos los coeficientes en este ejemplo no es única.


Existe otra forma que coloca los coeficientes intercalados, es decir, reemplaza
el vector a(n−[l−1]) por³el vector s que contiene los coeficientes de ´ a(n−l) y
(n−l) (n−l) (n−l) (n−l) (n−l) (n−l)
c(n−l) de la forma s = a1 , c1 , a2 , c2 , . . . , a2n−1 −1 , c2n−l −1 . Esta
representación se conoce como Transformada de Reemplazo de Wavelet de
Haar5 y se utiliza mucho debido a que su implementación computacional es
más sencilla (pues por cada pareja calcula el promedio y la diferencia y lo
almacena en el vector, sin tener que buscar un mayor orden). Sin embargo,
nosotros no la utilizamos pues la Transformada Rápida Ordenada es más
fácil de comprender y ambas transformadas son idénticas en esencia (el único
cambio es el orden de los elementos).
En el vector final que se obtiene, el primer elemento, que se relaciona con
(0)
la función φ0 , se conoce como coeficiente de promedio, pues es idéntico al
promedio de los valores funcionales de las muestras; el resto de los elementos
son los coeficientes de detalle, ya que son los que indican cuánto difiere la
función del promedio en cada sección, agregando la información necesaria
para obtener la muestra inicial. Entre más grandes sean estos coeficientes,
más grande es la diferencia entre el promedio y los datos, por lo que agrega
mayor información. De esta forma, es posible eliminar los coeficientes más
pequeños para ahorrar espacio de almacenamiento y aún tener una buena
aproximación a la función. Este es el principio que se utiliza en la compresión
de imágenes.

4 Wavelets de Haar en varias dimensiones


La noción del wavelet simple puede ser fácilmente generalizada a varias di-
mensiones. Cuando trabajamos con una dimensión, supusimos que xk+1 − xk
5
In-Place Fast Haar Wavelet Transform

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.

4.1 Construcción estándar


La construcción estándar de la base de wavelets bidimensional consiste sim-
plemente en los productos tensoriales de las funciones que se encuentran en la
base unidimensional. Dicho de otra manera, para construir la base bidimen-
sional se comienza con la función constante en el cuadrado unitario y, a partir
de ella, se construyen las demás dejando fija una dimensión y aplicando un
wavelet sobre la otra. Repitiendo este proceso para todos los wavelets y para
ambas dimensiones, se obtiene la base. Ejemplos de esta base se muestran
en la figura 4. Para hacer más claro el concepto de producto tensorial, en la
figura 5 se muestran 16 elementos de la base estándar.

4.2 Construcción no-estándar


La construcción no-estándar se realiza definiendo la función de escalamiento
y tres wavelets
φφ (x, y) = φ (x) φ (y)
φψ (x, y) = φ (x) ψ (y)
ψφ (x, y) = ψ (x) φ (y)
ψψ (x, y) = ψ (x) ψ (y) .
A partir de ella se denotarán los niveles de escala con un superíndice y las
translaciones horizontales y verticales por un par de subíndices, k y l, de

15
Figura 4: cuatro elementos de la base estándar de wavelets de Haar bidimen-
sionales.

forma análoga al caso unidimensional. De esta forma obtenemos la base


bidimensional dada por
¡ ¢
φψ jk,l (x, y) = φψ 2j x − k, 2j y − l
¡ ¢
ψφjk,l (x, y) = ψφ 2j x − k, 2j y − l
¡ ¢
ψψ jk,l (x, y) = ψψ 2j x − k, 2j y − l .

En la figura 6 se muestra esta construcción.


Como se puede ver, las funciones en la base no-estándar tienen un soporte
cuadrado, mientras que algunas de las funciones en la base estándar tienen un
soporte que no es cuadrado. Esto puede resultar en ventajas o inconvenientes,
dependiendo de la aplicación, por lo que una base puede ser preferible sobre
la otra, o al revés, en distintas circunstancias.
En la siguiente sección presentamos una aplicación de la base bidimen-
sional de wavelets de Haar, construidos en forma estándar.

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.

una señal sea concentrada en un pequeño subconjunto de coeficientes que, al


ser recodificados, pueden ser reconocidas por un ser humano.
La compresión que utiliza wavelets es un método “lossy”, es decir, que
pierde una parte de la información original al realizar el proceso de compre-
sión (la información menos relevante), aumentando así la razón de compre-
sión. Este tipo de métodos no son siempre útiles, pues existen casos donde
los errores no son permitidos, por ejemplo en el registro de datos financieros.
Las imágenes están conformadas de pequeños cuadros de color llamados
pixeles cuyo color queda definido por un valor numérico que depende de la
codificación utilizada. Por ejemplo, en escalas de grises, los valores están
generalmente entre 0 y 64, donde el 0 representa al negro y el 64 al blanco,
pasando por 63 tonos distintos de gris (más claro mientras más alto sea el
número) llamados niveles de brillo; sin embargo hay aplicaciones que con-
tienen 256 o hasta 4096 niveles de brillo. Para imágenes a color existen
diversas codificaciones como RBG y Pantone.
Todas estas codificaciones guardan la información en una o más matrices
con los datos que conforman a cada pixel en la posición adecuada, por lo que
el problema de comprimir una imagen se reduce a almacenar la mayor infor-
mación de esas matrices en el menor espacio posible. Para esto se utiliza la
transformada ordenada con wavelets de Haar bidimensionales, como veremos

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.

5.2 Proceso de compresión


El proceso para comprimir una imagen es muy sencillo: se comienza con la
matriz que contiene la información de la imagen y se aplica el proceso de pro-
mediar y diferenciar en dos etapas, primero sobre los renglones de la matriz y
después sobre sus columnas. De esta forma obtenemos una representación de
los datos en una matriz cuyos elementos son los coeficientes de los wavelets
bidimensionales de forma estándar. En este punto, para reducir un poco
la información, existen dos perspectivas. La primera es establecer un um-
bral y transformar en cero a todos los coeficientes que en valor absoluto sean
menores a el, mientras que la otra es establecer una cantidad de coeficientes a
eliminar, por ejemplo, eliminar el 20% de los coeficientes. Después, es posible
utilizar cualquier método para almacenar matrices ralas, es decir, con pocos
elementos distintos de cero, o utilizar métodos de compresión como RLE6 ,
que ha probado funcionar bien en este tipo de matrices7 .
El último paso en la compresión consiste en ser capaces de recuperar la
imagen original (o una aproximación a ella). Esto se realiza utilizando el
proceso inverso a promediar y diferenciar, que consiste en utilizar los prome-
dios y las diferencias para calcular los valores originales por medio de simples
sumas y restas. Si se eliminaron elementos de la matriz, el resultado no será
6
RLE (Run Length Encoding) es una técnica de compresión usada cuando hay cadenas
largas de valores repetidos. Para codificar una cadena de valores idénticos, se utiliza un
valor especial (de escape) que se inserta al principio de la cadena, seguido por el número
de veces que se repite el valor y el valor que se repite. Por ejemplo, si se utiliza como valor
escape a 0, la cadena

333333333555555874444444420

se puede codificar como

093065870842010

ahorrando así mucho espacio de almacenamiento.


7
http://symbolcraft.com/graphics/haar/

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.

Ejemplo 6 8 Supongamos que deseamos comprimir la imagen de tamaño 8×


8 de la figura 7, con su matriz de tonos de gris M.

Figura 7: una imagen en tonos de gris de tamaño 8 × 8 con su matriz M.

Tras aplicar el proceso de promedio y diferenciación sobre los renglones se


obtiene la matriz presentada en la figura 8 (a), luego se aplica sobre las colum-
nas, por lo que obtenemos la matriz que aparece en (b). Ahora supongamos
que definimos un umbral de 5; entonces, tras eliminar aquellos coeficientes
cuyo valor absoluto está por debajo del umbral, obtenemos la matriz

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

Esta es la matriz que almacenamos como información de la imagen.


Ahora, si queremos recuperar la imagen, simplemente aplicamos el proceso
inverso a promediar y diferenciar, obteniendo así la matriz

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.

5.3 Aplicación en Matlab


En [11] encontramos una función de Matlab que realizaba la compresión de
la imagen utilizando wavelets de Haar, donde los parámetros de entrada son
una imagen con escalas de grises codificada en una matriz y el umbral deseado
para eliminar a los elementos de la matriz de coeficientes de los wavelets. La
salida del programa consiste en resumen de la densidad de la nueva matriz y

21
Figura 9: (a) la imagen original y (b) la recuperada tras la compresión.

la razón de compresión, así como la imagen original y la imagen recuperada


tras la transformación.
Nosotros adaptamos este programa para que diera los resultados en es-
pañol y, en lugar de solo dos imágenes, desplegara 6 imágenes: la original y
otras 5 utilizando como umbrales a 0.25, 0.5, 1, 2.5 y 5. Además le agregamos
algunas imágenes, para mostrar el ejemplo en distintos casos. La figura 10
muestra uno de los resultados. Como se puede ver, manteniendo un umbral
de 0.25, la diferencia entre las figuras es casi imperceptible, y aún así la tasa
de compresión es de aproximadamente 5:1; es decir, el espacio necesario para
almacenar la información de la imagen original es 5 veces el espacio necesario
para almacenar a la imagen comprimida con ese umbral.

Referencias
[1] Chui, C.K. (1997). Wavelets: A Mathematical Tool for Signal Analysis.
SIAM

[2] Hernández Vera, C. (2002). Bases de soporte compacto para L2 (R),


aplicaciones en aproximación de funciones y movimiento Browniano.
Tesis de licenciatura en Matemáticas Aplicadas. ITAM, México.

[3] Nievergelt, Y. (1999). Wavelets Made Easy. Birkhäuser, Boston, MA.


EUA.

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.

[5] Saha, S. (2000). Image Compression - from DCT to Wavelets: A review.


ACM Crossroads Student Magazine.9

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

[8] Wickerhauser, M.V. (1994). Adapted Wavelet Analysis from Theory to


Software. A K Peters, Wellesley, MA. EUA

[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

También podría gustarte