Técnicas de Compressão de Dados
4.1.2 Transformadas Wavelet
4.1.2.3 Transformação de Haar usando Bancos de Filtros
Principalmente em dispositivos embarcados e casos de sinais multidimensionais com
uma grande quantidade de amostras, um custo em memória de ordem Θ(︀
𝑛2)︀
para o
cálculo de DWTs usando operações matriciais pode ser proibitivo. Esta seção descreve como uma DWT pode ser escrita no formato de um Banco de Filtros.
Segundo Salomon (2006), um filtro é um operador linear definido de acordo com seus
coeficientes ℎ(0), ℎ(1), ℎ(2), ..., ℎ(𝑁−1). Um filtro com 𝑁 coeficientes é chamado de um filtro com 𝑁 taps. Ainda de acordo com Salomon (2006), um filtro pode ser aplicado a um sinal digital de entrada𝑥e produzir um sinal digital de saída𝑦de acordo com a Equação 4.22, na qual o operador ⋆indica uma convolução:
𝑦[𝑛] =∑︁ 𝑘
ℎ[𝑘]𝑥[𝑛−𝑘] =ℎ ⋆ 𝑥. (4.22) Os vetores𝑥[𝜏],ℎ[𝜏] e𝑦[𝜏] são vistos como funções discretas temporais com infinitos valores, nas quais a amostra central representa o tempo 𝜏 = 0. Na prática, as entradas são sempre finitas, então o vetor infinito 𝑥 terá apenas um número finito de elementos não nulos (Salomon, 2006) que precisam ser armazenados.
Capítulo 4. Técnicas de Compressão de Dados 56
se considerar a simples entrada 𝑥 = [...,0,0,1,0,0, ...]. Essa entrada é zero em todos os tempos, exceto em 𝜏 = 0. Ela é chamada de pulso unitário ou impulso unitário (Salomon, 2006). Nota-se que 𝑦[𝑛] = ℎ[𝑛]𝑥[0] = ℎ[𝑛] para essa entrada. A saída
𝑦[𝑛] =ℎ[𝑛] no tempo𝜏 =𝑛é a resposta no tempo𝑛 ao impulso𝑥[0] = 1. Como ℎ[𝑖] é finito, esse filtro é uma Resposta de Impulso Finita (Finite Impulse Response – FIR).
Um Banco de Filtros de Análise (Analysis Filter Bank – AFB) é definido, então, como uma coleção de 𝑁 filtros 𝐻 = ℎ0, ℎ1, ..., ℎ𝑁−1 que, aplicados a um sinal de entrada 𝑥[𝑛] com 𝑛amostras, produzem 𝑁 saídas𝑌 =𝑦0[𝑛], 𝑦1[𝑛], ..., 𝑦𝑁−1[𝑛], cada uma com𝑛amostras. Um Banco de Filtros de Síntese (Synthesis Filter Bank – SFB), analogamente, é um Banco de Filtros composto por𝑀 filtros𝐹 =𝑓0, 𝑓1, ..., 𝑓𝑀−1 que – aplicados a um conjunto de entradas 𝑋=𝑥0[𝑚], 𝑥1[𝑚], ..., 𝑥𝑀−1[𝑚], cada uma com
𝑚 amostras – gera uma única saída 𝑦[𝑚], também com 𝑚 amostras. A Figura 4.5 demonstra o funcionamento de um AFB e a Figura 4.6 exemplifica um SFB.
𝑥[𝑛] ℎ0 ℎ1 ... ℎ𝑁−1 𝑦0[𝑛] 𝑦1[𝑛] ... 𝑦𝑁−1[𝑛]
Figura 4.5: Exemplo de um AFB com 𝑁 filtros.
𝑥0[𝑚] 𝑥1[𝑚] ... 𝑥𝑀−1[𝑚] 𝑓0 𝑓1 ... 𝑓𝑀−1 𝑦[𝑚]
57 4.1. Transformações
No escopo das DHTs, os AFBs e os SFBs são compostos por dois filtrosℎ0 e ℎ1. Os AFBs incorporam passos de subamostragem por um fator 2 (↓2) após as operações de convolução, enquanto os SFBs executam passos de interpolação por um fator 2 (↑2) após seu cálculo. O filtroℎ0 no AFB de uma DWT é um filtro passa-baixa, ou seja, ele deixa apenas as frequências de baixo valor serem expressas no sinal de saída𝑦0[𝑛], que, seguindo a convenção das últimas seções, chamar-se-á de 𝑐 (coarse). O filtro ℎ1, por sua vez, permite a passagem apenas das altas frequências para o sinal 𝑦1[𝑛], chamado de 𝑑(detail). Os filtros usados no AFB de uma DHT ortonormal são ℎ0 =(︁√1
2,√1 2 )︁ e ℎ1=(︁−√1 2,√1 2 )︁
, os quais operam sobre o sinal de entrada e produzem respectivamente
os coeficientes que compõem𝑐 e 𝑑. A Figura 4.7 demonstra um AFB de uma DHT.
𝑆 ℎ0 ℎ1 ↓2 ↓2 𝑐 𝑑
Figura 4.7: Exemplo de um AFB executando o cálculo de um passo de uma DWT.
Os vetores 𝑐 e 𝑑podem passar por uma etapa de codificação de entropia (ver Se-ção 4.3) e serem armazenados num arquivo ou transmitidos por um canal de informaSe-ção
que tenha uma operação de IDWT incorporada à sua recepção. Os filtros usados no SFB de uma IDHT ortonormal são 𝑓0=(︁√1
2,√1 2 )︁ e 𝑓1=(︁√1 2,−√1 2 )︁ .𝑓0 age sobre os coeficientes de 𝑐 e 𝑓1 age sobre os coeficientes de 𝑑, compondo o sinal reconstruído 𝑆. Um passo de uma operação de IDWT é modelado usando, além dos filtros, dois passos
de interpolação, como mostra a Figura 4.8.
𝑐 𝑑 ↑2 ↑2 𝑓0 𝑓1 𝑆
Figura 4.8: Exemplo de um SFB executando o cálculo de um passo de uma IDWT.
As operações de interpolação num SFB de uma IDWT acontecem da forma mais
coefi-Capítulo 4. Técnicas de Compressão de Dados 58
cientes do sinal, que, somados, totalizam o tamanho 𝑛do sinal antes da transformação. Como mostrado por Salomon (2006), as operações de subamostragem e interpolação
de um sinal𝑦 são definidas nas Equações 4.23 e 4.24.
(↓𝑦) = (..., 𝑦(−4), 𝑦(−2), 𝑦(0), 𝑦(2), 𝑦(4), ...) , (4.23) (↑𝑦) = (..., 𝑦(−4),0, 𝑦(−2),0, 𝑦(0),0, 𝑦(2),0, 𝑦(4),0, ...) . (4.24) A subamostragem, porém, causa perda de dados potencialmente importantes para
a reconstrução exata da mensagem, de modo que usar simplesmente uma interpolação
não compensa essa perda. Esse fator limita a escolha de filtros a certas categorias que
minimizem a perda de dados causada pela subamostragem, preservando a informação
contida na mensagem. Uma característica que é comumente usada na construção de
bons filtros é a ortogonalidade (Salomon, 2006). Outra categoria de filtros usada é o conjunto de filtros biortogonais, os quais também podem resultar numa reconstrução
perfeita da mensagem 𝑆.
Como foi introduzido na Seção 4.1.2, DWTs geralmente são operações realizadas em
vários níveis diferentes, transformando hierarquicamente os coeficientescoarse restantes. Uma DWT, então, é representada por um conjunto de AFBs que transferem a saída𝑐de um AFB para outro AFB semelhante, o que pode ser visto na Figura 4.9. Analogamente,
uma IDWT pode ser calculada por um conjunto de SFBs organizados hierarquicamente, como mostrado na Figura 4.10. Como cada nó de uma árvore de AFBs produz metade
do número de saídas que o seu predecessor, essa árvore é chamada de Árvore Logarítmica
(Salomon, 2006).
As regras completas de derivação para definir os filtros ortogonais para o cálculo
de DWTs, usando AFBs e SFBs, são matematicamente densas e extensas, podendo ser
59 4.1. Transformações 𝑆 ℎ0 ↓2 ℎ1 ↓2 ℎ0 ↓2 ℎ1 ↓2 ℎ0 ↓2 ℎ1 ↓2 𝑑1 𝑑2 𝑑3 𝑐3
Figura 4.9: Exemplo de um AFB executando o cálculo de três passos de uma DWT.
𝑐3 𝑑3 𝑑2 𝑑1 ↑2 𝑓0 ↑2 𝑓1 ↑2 𝑓0 ↑2 𝑓1 ↑2 𝑓0 ↑2 𝑓1 𝑆
Figura 4.10: Exemplo de um SFB executando o cálculo de três passos de uma IDWT.
unitários de ℎ0 pré-calculados para alguns filtros ortogonais podem ser vistos em Dau-bechies (1988), Cohen et al. (1992) e Salomon (2006). É importante ressaltar que os
coeficientes deℎ0 são suficientes para calcular os filtrosℎ1,𝑓0 e𝑓1– caso a basewavelet em questão seja ortogonal – como demonstrado pela Equação 4.25:
ℎ1=−ℎ0(𝑁−1), ..., ℎ0(2), −ℎ0(1), ℎ0(0), 𝑓0 =ℎ0(𝑁−1), ..., ℎ0(2), ℎ0(1), ℎ0(0), 𝑓1 =ℎ0(0), −ℎ0(1), ℎ0(2), ..., −ℎ0(𝑁 −1),
para𝑁 par.
(4.25)
Todas as transformadaswavelet que foram apresentadas até esse momento são do tipo ortogonais. Isso implica que essas DWTs usam modificações de um filtro de entrada
para gerar os outros filtros que compõem o AFB e o SFB. As wavelets biortogonais, por sua vez, não são ligadas a um único conjunto de coeficientes que forma os Bancos
de Filtros, mas, sim, a dois. A transformada wavelet biortogonal 9/7 (Cohen et al., 1992), por exemplo, usa um filtro passa-baixa com 9 coeficientes e um filtro passa-alta
Capítulo 4. Técnicas de Compressão de Dados 60
Esses tipos de filtros ganharam popularidade especialmente com a inclusão das bases
biortogonais 9/7 e 5/3 nas variações lossy e lossless do compressor de imagens JPEG 2000 (JPEG 2000 Organization, 2000). A Figura 4.11 demonstra um nível de uma
transformada wavelet biortogonal que usa os filtros𝐻0,𝐻1,𝐹0 e 𝐹1 como bases.
𝑥(𝑛) 16𝑥(𝑛−3) 𝐻0 𝐻1 𝐹0 𝐹1 −1,2,6,2,−1 1,−2,1 1,2,1 1,2,−6,2,1 ↓2 ↓2 ↑2 ↑2
Figura 4.11: Exemplo de um passo de transformadawaveletbiortogonal. Fonte: Salomon (2006).
É notável a semelhança do filtro 𝐻0 com o 𝐹1 e do filtro𝐻1 com o 𝐹0. Isso se dá porque, emwaveletsbiortogonais, o filtro passa-alta da transformada direta gera o filtro passa-baixa da transformada inversa, enquanto o filtro passa-baixa da transformada direta gera o filtro passa-alta da transformada inversa.