Professional Documents
Culture Documents
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
3. Transformada Wavelet
3.1 Introduo
As transformaes matemticas so empregadas no mapeamento de funes de um domnio para outro.
As transformaes so particularmente importantes em processamento e anlise de sinais porque no
domnio transformado algumas propriedades relevantes do sinal ficam mais evidentes. Para a compresso
de imagens, um dos mtodos mais utilizados a codificao por transformada, cujo objetivo principal da
transformada produzir um conjunto de valores representando os pixels reordenados, evidenciando a
maior concentrao de energia possvel em menor nmero de coeficientes.
Como j vimos, no captulo anterior, existe vrios mtodos de transformaes que podem ser aplicados a
um sinal, entre os quais a transformada de Fourier a mais popular. A transformada de Fourier utiliza
funes bases (senos e cossenos) para analisar e reconstruir um sinal, alm disso, elas so funes
ortogonais, as quais possuem propriedades desejveis para a sua reconstruo. Tanto a transformada de
Fourier quanto a transformada wavelet so ambas reversveis, porm, a transformada de Fourier possui
algumas limitaes. Como veremos a seguir a transformada wavelet possui algumas vantagens, em
especial nos casos onde a transformada de Fourier no apresenta bons resultados.
{x(t)} =
( 3.1 )
ou seja, um produto interno do sinal x(t) com um conjunto de exponenciais complexas, que constituem
uma base ortonormal. Na equao acima, t usado para representar o tempo, f a freqncia e j igual a
.
Dado X( f ), x(t) pode ser obtido usando a transformada inversa de Fourier (inverse Fourier transform
IFT) definida pela equao:
-1{X( f )} =
( 3.2 )
1 de 22
17/03/2015 00:39
Captulo 3
2 de 22
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
A transformada de Fourier pode ser facilmente estendida para uma funo de duas varveis f(x, y). Se f(x,
y) continua e integrvel e F(u, v) integrvel, a transformada de Fourier definida pela equao
{f(x, y)} =
( 3.3 )
-1{F(u, v)} =
( 3.4 )
( 3.5 )
onde x(t) o sinal, g(t-t ) a funo janela centrado em t .
Quando baixas freqncias so observadas em um sinal necessrio uma longa observao no tempo. Ao
contrrio, quando altas freqncias so observadas, somente uma curta observao no tempo necessria.
O princpio da incerteza de Heisenberg, da fsica quntica, estabelece que no podemos obter a
informao exata da freqncia de um sinal e o instante/local exato no tempo/espao onde esta freqncia
ocorreu. O que podemos saber o intervalo de tempo os quais certas bandas de freqncia existem. Com
isso, no possvel obter alta resoluo em tempo e freqncia simultaneamente. Em outras palavras, um
17/03/2015 00:39
Captulo 3
3 de 22
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
( 3.6 )
As funes wavelets (y a,b) so geradas de uma nica funo y (t), denominada wavelet me (mother
wavelet) ou wavelet bsica, atravs de operaes de dilataes e translaes definida como
( 3.7 )
onde a, b R, a 0, o parmetro b representa o deslocamento no tempo/espao, a o fator de escala (a > 0
corresponde a dilatao e a < 0 para a contrao de y (t)). O fator de multiplicao
para
2
normalizao da energia atravs das diferentes escalas. Alm disso, y , y L (R), satisfaz a seguinte
condio
( 3.8 )
Para a transformada wavelet ser invertvel, a funo y (t) deve satisfazer condio de admissibilidade
Cy =
onde
( 3.9 )
a transformada de Fourier,
. ( 3.10 )
Se a condio de admissibilidade for satisfeita, a transformada wavelet contnua W(a, b) invertvel e a
transformada inversa dada pela relao
. ( 3.11 )
A condio de admissibilidade implica que a transformada de Fourier de y (t) se anula na freqncia zero,
ou seja
4 de 22
17/03/2015 00:39
Captulo 3
5 de 22
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
( 3.12 )
e a funo wavelet y (t) deve oscilar. Em outras palavras, y (t) deve ser uma onda.
3.3.1 Transformada Discreta Wavelet
Na transformada discreta wavelet (DWT) os parmetros de dilatao e translao no variam
continuamente, como no caso da transformada wavelet contnua, mas sim discretamente. Em certas
aplicaes, incluindo aquelas em anlise de sinal, podemos restringir os valores dos parmetros a, b (da
equao 1.7) a uma grade discreta, fixando um passo de dilatao a0 > 1 e uma passo de translao b0 0.
A famlia de wavelets de interesse, para j, k Z, torna-se ento [11]
, ou ( 3.13 )
( 3.14 )
Note que isto corresponde para
, ( 3.15 )
( 3.16 )
indicando que o parmetro de translao b depende da taxa de dilatao escolhida. Para j grande e
positivo, a funo y j,0 bastante dilatada, e os passos de translao grandes (
) so adaptados a esta
grande largura. Para j grande e negativo ocorre o contrrio; a funo y j,0 bastante contrada e os passos
de translao pequenos
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
( 3.20 )
c. Propriedade de escala
f(t) Vj f(2t) Vj+1 " j Z ( 3.21 )
d. Propriedade de invarincia do deslocamento
f(t) V0 f(t - n) V0 " n Z ( 3.22 )
e. Existncia de uma funo de escala
$ j Vo tal que {j (t k) | k Z} uma base de Riesz de V0. ( 3.23 )
Se {j (t k) | k Z} uma base ortonormal para V0, temos uma anlise em multiresoluo e as bases
wavelet construdas de j (t) so chamadas wavelets ortonormais. A funo j chamada de funo de
escala e usada para construir bases wavelets. Multiresoluo requer uma base para cada espao Vj. Para
os outros subespaos Vj (para j 0) definimos
j j,k(t) = 2j/2j (2j t k) ( 3.24 )
onde o ndice j denota a escala e k indica o deslocamento inteiro.
Desde que j V0 V1, ento existe um conjunto finito de coeficientes hk tal que a funo de escala satisfaz
j (t) =
. ( 3.25 )
Esta equao conhecida por vrios nomes diferentes: equao de refinamento (refinement equation),
equao de dilatao (dilation equation) ou equao de diferena de escala-dois (two-scale difference
equation).
A funo j (t) usualmente normalizada, ento temos
. ( 3.26 )
Uma base de Riesz de um espao de Hilbert H um subconjunto {e1, e2, ..., en, ...} de H tal que [e1, e2, ...,
en, ...] denso em H e existem constantes 0 < A < B < tais que para toda seqncia de escalares a 0, a 1,
a 2, ... tem se: [9, 19]
( 3.27 )
6 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
Vj+1 =
, e L2(R) =
( 3.29 )
y (t) =
7 de 22
, ( 3.32 )
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
. ( 3.34 )
Vimos at momento os aspectos tericos da transformada wavelet, todavia tudo isso seria de pouca
importncia prtica se no fosse pelo fato de podermos computar eficientemente os coeficientes wavelets
e reconstruir funes a partir desses coeficientes. Estes algoritmos, conhecidos como transformada
wavelet rpida (fast wavelet transform FWT), so anlogos a transformada rpida de Fourier e seguem
da equao de refinamento mencionada acima.
Veremos a seguir a funo wavelet de Haar, uma funo ortonormal que apresenta suporte compacto e a
forma mais simples de wavelets. A funo de Haar gerada diretamente da funo me e constitui uma
base ortonormal de L2(R).
j (t) =
( 3.36 )
8 de 22
17/03/2015 00:39
Captulo 3
9 de 22
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
y (t) =
As funo wavelet y (t) mostrada na figura abaixo.
<j , f> =
, ( 3.38 )
o valor da mdia de f sobre o intervalo [0, 1). Aplicando y (t) para f(t) teremos
<y , f> =
. ( 3.39 )
O filtro j um operador de mdia que serve para suavizar o sinal e o filtro y um operador diferena que
utilizado para reconstruir o sinal.
Segue abaixo as rotinas, codificadas na linguagem C, para calcular a transformada de Haar e sua inversa,
de um sinal unidimensinal armazenado no vetor M. A decomposio do sinal efetuado
vezes,
que corresponde a transformar o sinal at obter a menor resoluo possvel. O nmero de amostras do
sinal definido em size, os quais deve ser potncia de 2.
void Haar(int size)
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
{
int i;
while (size>1)
{
for (i=0; i<size/2; i++)
{
S[i]=(M[2*i]+M[2*i+1])/2; /* filtro passa baixa (mdia) */
S[size/2+i]=(M[2*i]-M[2*i+1])/2; /* filtro passa alta (diferena) */
}
for (i=0; i<size; i++)
M[i]=S[i];
size=size/2;
}
}
void InvHaar(int size)
{
int i,j=1;
while (j<size)
{
for (i=0; i<j; i++)
{
M[2*i]=S[i]+(S[j+i]); /* recupera as amostras pares */
M[2*i+1]=S[i]-(S[j+i]); /* recupera as amostras impares */
}
j=j*2;
for (i=0; i<j; i++)
S[i]=M[i];
}
}
Computacionalmente, a transformada de Haar tem uma complexidade linear, requerendo apenas O(n)
operaes aritmticas. De fato, se aplicarmos o banco de filtros de sntese para um sinal com n amostras
ser necessrio kn operaes para alguma constante k, ento o nmero total de operaes para computar a
transformada wavelet ser
. ( 340 )
A cada etapa do processo de decomposio hierrquica o custo computacional reduzido pela metade,
com exceo da primeira etapa, decorrente da subamostragem por 2. O custo inicial de kn operaes,
que ser reduzido para k que corresponde a metade da etapa anterior, porque utilizamos apenas a
metade dos coeficientes (coeficientes passa baixa), e assim por diante, limitando a um custo
computacional de no mximo 2kn operaes.
10 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
11 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
e um filtro passa alta . Depois da filtragem do sinal, a metade das amostras podem ser eliminadas
por um subamostrador de fator 2 (2 ). O resultado ser um sinal passa baixa (sj-1) e um sinal passa alta
(dj-1), cada um deles contendo a metade das amostras do sinal de entrada sj.
e so chamados de filtros de quadratura espelhada
Em processamento digital de sinais, os filtros
(quadrature mirror filters QMF). Esses filtros foram estudados antes da teoria wavelet.
Esta decomposio reduz pela metade a resoluo no tempo dado que somente a metade do nmero de
amostras agora caracterizam o sinal de entrada. O procedimento acima, que tambm conhecido como
codificao por sub-banda, pode ser repetida para obter uma decomposio adicional [44].
Podemos construir uma representao hierrquica de um sinal filtrando recursivamente a sada passa
baixa do banco de filtros. Este processo ilustrado graficamente na figura 3.8 para quatro nveis de
resoluo (os filtros aplicados quatro vezes), onde sj o sinal original que ser decomposto (ou
transformado) e e so filtros passa baixa e passa alta, respectivamente. Este esquema conhecido
tambm como decomposio piramidal.
12 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
(passa baixa) e
13 de 22
+G
= I, ( 3.41 )
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
G = 0,
H = 0,
G = I. ( 3.42 )
A teoria de banco de filtros estabelece que para eliminar aliasing a relao [66]
g1(n) = (- 1)n+1h0(n) e h1(n) = (- 1)ng0(n) ( 3.43 )
devem ser satisfeitas, onde g0(n) e g1(n) so os filtros de sntese e h0(n) e h1(n) os filtros de anlise. Neste
caso, temos os filtros de sntese definidos em termos dos filtros de anlise.
14 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
Finalmente, a matriz M dever ser multiplicado por A3. Como a decomposio binria, podemos ter,
, isto , 3 nveis de decomposio didica. Chamaremos de N o resultado do produto da
no mximo
matriz de entrada pelas matrizes A1, A2 e A3, que consiste em decompor o subespao V0 em V-3, W-3, W-2
e W-1. A matriz A3 mostrada a seguir.
A seqncia final formada pelo vetor N corresponde ao sinal original transformado. O primeiro elemento
dessa seqncia chamado de coeficiente de escala (ou aproximao) e os demais elementos dessa
seqncia so os coeficientes detalhe, ou coeficientes wavelets.
Este processo aplicado seqncia original para a obteno de verses de mais baixa resoluo
chamado de anlise ou decomposio e o processo para a obteno dos coeficientes da transformada
conhecido como transformada wavelet.
15 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
Chamaremos de W a matriz formada pela multiplicao das matrizes A1, A2 e A3, respectivamente. Uma
representao da matriz W apresentada a seguir.
Como as colunas das matrizes Ai so ortogonais, cada uma destas matrizes so inversveis. Denotaremos
por
a transformada wavelet inversa de Haar, onde
abaixo.
. A matriz
mostrada
16 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
as constantes iguais a
e todos os coeficientes iguais a 2, das matrizes Ai, por
e
,
respectivamente. As colunas de cada matriz Ai formam ento uma base ortonormal. Consequentemente, o
mesmo verdade para a matriz W.
3.8.1 Transformada Wavelet Bidimensional
Existem duas maneiras pelo qual podemos usar wavelets para decompor uma imagem bidimensional [57]:
decomposio padro e decomposio no-padro.
Para obter a decomposio padro de uma imagem, primeiro aplicamos a transformada wavelet
unidimensional em cada uma das linhas da imagem. Esta operao fornece um coeficiente de mdia e os
coeficientes detalhe para cada linha. Em seguida, tratamos estas linhas transformadas como se elas fossem
uma nova imagem e aplicamos mais uma vez a transformada unidimensional para cada coluna da
imagem. O resultado destas operaes sero todos coeficientes detalhe, exceto o primeiro pixel, que
corresponde ao nico coeficiente aproximao (mdia). Neste caso, estamos levando em considerao a
aplicao da transformada at obter o menor nvel de resoluo possvel.
17 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
Figura 3.15 Estgios de decomposio wavelet bidimensional padro com 5 nveis de resoluo.
A seguir mostraremos a aplicao da transformada wavelet padro, usando a imagem Lenna. Inicialmente
a transformada aplicado apenas nas linhas da imagem, e em seguida apenas nas colunas.
Linhas
Colunas
18 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
A figura 3.17 ilustra os cinco primeiros nveis de resoluo de uma imagem bidimensional aps a
aplicao da transformada wavelet no padro. Em (a) temos a imagem original, (b) a imagem aps a
aplicao da transformada em suas linhas, (c) aplicao da transformada nas linhas e nas colunas, um
nvel de resoluo, (d) a imagem com dois nveis de resoluo e finalmente em (e) a imagem aps cinco
nveis de resoluo.
A seguir mostraremos a aplicao da decomposio wavelet no padro, usando a imagem Lenna.
Podemos verificar que a transformada wavelet permite armazenar uma imagem em diversas resolues,
ilustrado tambm na figura 3.19. Dessa maneira, podemos transmitir inicialmente os coeficientes da
imagem com menor resoluo, permitindo assim a visualizao de uma aproximao da imagem. Com
isso, possvel efetuar a reconstruo gradual da imagem pelo receptor. Em seguida, somente a
informao necessria para derivar uma verso mais detalhada da imagem, a partir da imagem de mais
baixa resoluo, transmitida. Aps a transmisso de todos os coeficientes detalhe, o receptor ter uma
cpia completa da imagem. Este tipo de transmisso conhecido como transmisso progressiva
(progressive transmission). Para a transmisso progressiva os coeficientes wavelet precisam ser
arranjados em ordem de importncia. A decomposio em multiresoluo da transformada torna-se ideal
para isso.
19 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
(a)
(b)
(c)
(d)
(e)
20 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
(a)
(b)
Figura 3.23 (a) Imagem original. (b) Representao wavelet com um nvel de resoluo.
Como vimos anteriormente, a aplicao da transformada wavelet divide a imagem em quatro novas
subimagens, (LL, HL, LH e HH). As subimagens detalhes (HL, LH e HH) enfatizam, respectivamente, as
caractersticas vertical, horizontal e diagonal da imagem, conforme pode ser observado na figura 3.23.
O processo padro para a realizao da compresso (figura 2.1) constitui na aplicao da DWT, quantizar
os coeficientes wavelets resultantes (para compresso sem perdas os coeficientes no so quantizados) e
codificao sem perdas dos coeficientes quantizados. O mtodo mais simples para codificar esses
coeficientes percorrer cada uma das linhas (da imagem bidimensional), partindo do canto superior
esquerdo e finalizando no canto inferior direito. Esta ordem conhecida como raster scan. O problema
com o raster scan que as informaes relativas as correlaes na vertical so perdidas e apresenta uma
descontinuidade ao passar de uma linha para outra.
21 de 22
17/03/2015 00:39
Captulo 3
http://www.dainf.ct.utfpr.edu.br/~ionildo/wavelet/cap3.htm
Uma outra tcnica de codificao, que pode ser aplicada na imagem transformada, a curva de Hilbert
[40, 58]. A Curva de Hilbert permite percorrer a imagem seguindo uma trajetria alternativa e tomar
vantagem da correlao dos pixels na horizontal e vertical, de cada um dos quadrantes da imagem
separadamente.
A curva de Hilbert quebra a direcionalidade dos mtodos convencionais para o caso bidimensional,
conforme ilustrado na figura 3.24. Uma propriedade desta curva a diviso dos espaos dentro de
quadrantes. Somente aps um dos quadrantes ter sido totalmente percorrido, que o prximo dever ser
percorrido, e assim sucessivamente at a imagem ter sido completamente percorrida.
Um esquema alternativo para codificao dos coeficientes wavelets foi recentemente proposto por
Shapiro [55] e aprimorado por Said e Pearlman [50], conforme apresentado na seo 1.3.
3.8.2 Compresso de Imagens Coloridas
O processo de compresso de imagens coloridas utilizando a transformada wavelet se divide em duas
etapas [40]: uma sendo a converso da imagem do sistema RGB para o sistema YCbCr (Y o canal de
luminncia e CbCr so os dois canais de crominncia correspondente ao azul e ao vermelho tambm
chamado YUV) e outra associada as operaes de decomposio, enumerao, quantizao e codificao
de cada um dos canais.
Como neste trabalho estamos interessados na compresso de imagens com nveis de cinza no iremos
detalhar as tcnicas usadas para compresso deste tipo de imagem.
22 de 22
17/03/2015 00:39