• Nenhum resultado encontrado

Transformação de Haar usando Bancos de Filtros

No documento Compressão de Sinais Biomédicos (páginas 88-93)

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 filtros0 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 filtro0 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 de0 são suficientes para calcular os filtros1,𝑓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.

No documento Compressão de Sinais Biomédicos (páginas 88-93)

Documentos relacionados