Codificação Diferencial 1 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Introdução Formas de quantização (perdas): Quantização Escalar Uniforme / não-uniforme Side information Quantização Vetorial Codebook e Codeword Ótimas taxas Complexo computacionalmente TE073 – Processamento Digital de Sinais II 2 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Introdução Codificação Diferencial Codificação das diferenças Aplicação: Voz Sinal amostrado {xn} Ex 1. Senóide dn = { xn – xn-1 } Menor Faixa Dinâmica Menor Variância: Amostras mais centradas em zero. TE073 – Processamento Digital de Sinais II 3 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Ex 2. Imagem Sinan Histograma original Histograma das diferenças 8 bits 7 bits 99%-> 5bits TE073 – Processamento Digital de Sinais II 4 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Exemplo 3: Considere a sequência: x={6.2 9.7 13.2 5.9 8.0 7.4 4.2 1.8} A sequência diferença será: d [n] x[n] x[n 1] d={6.2 3.5 3.5 -7.3 2.1 -0.6 -3.2 -2.4} Se codificarmos sem perdas, voltamos à seqüência original fazendo: Porém: Quantizando com perdas [-6 -4 -2 0 2 4 6]: x[n] x[n 1] d [n] d={6 4 4 -6 2 0 -4 -2} Reconstruindo temos: xq={6 10 14 8 10 10 6 4} n Que corresponde ao erro de quantização: xq [n] x[n] q[k ] {0.2 -0.3 -0.8 -2.1 -2.0 -2.6 -1.8 -2.2} k 1 crescente! TE073 – Processamento Digital de Sinais II 5 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Mesmo erro de quantização tendo média zero, pode causar overflow x[n] + d[n] Q - z-1 dq[n] dq[n] Q-1 + xq[n-1] x[n-1] xq[n] + z-1 d [n] x[n] x[n 1] •Solução: x[n] + d[n] - Q dq[n] + + z-1 xq[n-1] d[n] x[n] xq [n 1] dq[n] xq[n] + Q-1 + xq[n-1] z-1 xq[n] TE073 – Processamento Digital de Sinais II 6 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Ex 4. Sinal senoidal Aproximação I • Intervalo dinâmico de diferenças: [-0,2 0,2] • Passo do quantizador = 0,1 Aproximação II • Intervalo dinâmico de diferenças: [-0,4 0,4] • Passo do quantizador = 0,2 TE073 – Processamento Digital de Sinais II 7 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Generalização: Preditor: Se: p[n] f xq [n 1], xq [n 2], xq [n 3],...., xq [0] p[n] xq [n 1] Temos o DPCM (Differential Pulse Code Modulation) TE073 – Processamento Digital de Sinais II 8 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Adaptativo Direto Side information transmitida ao decodificador Separação em blocos (estimativas por bloco) Reverso Não há necessidade de side info – adaptação obtida da saída do decodificador. Mais utilizado Algoritmo de Jayant TE073 – Processamento Digital de Sinais II 9 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Modulação Delta Quantizador de 1-bit (2 níveis) Variação da taxa de amostragem Slope overload TE073 – Processamento Digital de Sinais II 10 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Ex.: Codificação de Voz Principal aplicação de codificadores diferenciais (ADPCM) Vários padrões ITU (G.721, G.723, G.722,...) G.726 Quantização adaptativa reversa Algoritmo de quantização similar a Jayant Predição reversa adaptativa Combinação linear dos 2 últimos valores reconstruídos Uso dos 6 últimos diferenças quantizadas para a predição (40, 32, 24 e 16 kbits) 8000 amostras 5, 4, 3, 2 bits/amostra Comparando com PCM (8bits /amostra): Taxas de compressão 1,6:1 2:1 2,67:1 4:1 respectivamente TE073 – Processamento Digital de Sinais II 11 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Codificação de Imagem Comparação com JPEG PSNR=31.42dB PSNR=41.60dB TE073 – Processamento Digital de Sinais II 12 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica PSNR=38.28dB PSNR=41.60dB TE073 – Processamento Digital de Sinais II 13 Conceitos Básicos para Transformadas, Subbandas e Wavelets 14 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Para entendermos os conceitos utilizados em codificação por transformada, subbandas e wavelets é necessário um conhecimento prévio dos seguintes assuntos: • Espaços Vetoriais • Série de Fourier • Transformada de Fourier • Sistemas Lineares • Amostragem • DFT • Transformada Z Já vistos em DSP-I TE073 – Processamento Digital de Sinais II 15 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3. Espaços Vetoriais Representação de um vetor no espaço 2-D: v 4.u x 3u y 3 4 v 3 4 Logo: um vetor pode ser representado como uma decomposição em vetores base (ux, uy). Qualquer vetor neste espaço 2-D pode ser decomposto. TE073 – Processamento Digital de Sinais II 16 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Então, dado um vetor A e um conjunto base, a decomposição significa encontrar os coeficientes os quais ponderam os vetores unitários do conjunto base. Ferramenta matemática: Produto Escalar ou Interno TE073 – Processamento Digital de Sinais II 17 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.1. Produto Escalar ou Produto Interno Dado dos vetores: a1 a a2 O produto interno é definido por: e b1 b b2 a b a1b1 a2b2 Dois vetores são ditos ortogonais se seu produto interno é zero. Um conjunto de vetores é dito ortogonal se cada vetor for ortogonal a todos os outros vetores do conjunto. TE073 – Processamento Digital de Sinais II 18 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica O produto interno entre um vetor e um vetor unitário de um conjunto base ortogonal nos fornece o coeficiente correspondente a aquele vetor. E pode ser visto também como a projeção do vetor sobre o vetor da base. 1 0 Ex.: Seja a base ortogonal: u x , u y 0 1 Claramente: ux u y 0 E um vetor a pode ser decomposto em: a u x a1 1 a2 0 a1 a u y a1 0 a2 1 a2 TE073 – Processamento Digital de Sinais II 19 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica u y b a ux O produto interno entre dois vetores pode representar, com um certo cuidado, uma medida de similaridade entre eles a é mais próximo de ux logo: a ux a u y TE073 – Processamento Digital de Sinais II 20 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.2. Espaço Vetorial Generalizando os conceitos vistos em 2-D e 3-D: Espaço vetorial consiste em um conjunto de elementos chamados vetores que têm as operações de adição vetorial e multiplicação escalar definidas. Os resultados destas operações são também elementos deste espaço vetorial TE073 – Processamento Digital de Sinais II 21 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Adição Vetorial: Sejam os vetores: Definimos: a1 a a2 , a3 b1 b b2 b3 a1 b1 a b a2 b2 a3 b3 Multiplicação Escalar: Multiplicação de um vetor por um numero real ou complexo. Para que o conjunto de elementos seja um espaço vetorial é necessário que cumpra os seguintes axiomas: TE073 – Processamento Digital de Sinais II 22 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Seja: V um espaço vetorial x,y,z vetores e e números escalares 1. x+y=y+x comutatividade 2. (x+y)+z=x+(y+z) e ()x= (x) associatividade 3. Existe elemento em V tal que x+ =x para todo x V 4. (x+y)= x+ y e (+)x= x+x distributividade 5. 1.x=x e 0.x= 6. Para todo x V existe elemento (-x) tal que x+(-x)= Ex.: Um exemplo de espaço vetorial são os números reais, neste conjunto: zero= TE073 – Processamento Digital de Sinais II 23 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Outro exemplo de espaço vetorial: conjunto das funções f(t) 2 que possuem energia finita: f (t ) dt Neste caso: (t)=0 E o espaço vetorial é chamado L2 TE073 – Processamento Digital de Sinais II 24 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.3. Subespaço Um subespaço S de um espaço vetorial V é um subconjunto de V cujos membros satisfazem todos os axiomas do espaço vetorial e têm a propriedade adicional que se x e y S, e é um escalar, então x+y e x estão também em S. Ex.: Considere S o conjunto das funções limitadas ao intervalo [0,1]. Então S é um subspaço de L2 TE073 – Processamento Digital de Sinais II 25 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.4. Bases Uma das formas de se gerar um subespaço é fazendo combinações lineares de um conjunto de vetores. Se o conjunto de vetores for linearmente independente, o conjunto é chamado de base para o subespaço. Um conjunto de vetores {x1,x2,...} é dito linearmente independente se nenhum vetor do conjunto puder ser escrito como uma combinação linear dos outros vetores do conjunto. TE073 – Processamento Digital de Sinais II 26 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Teorema: Um conjunto de vetores X={x1,x2,...,xN} é linearmente independente N Se e somente se a expressão i x i i 1 Implicar que i 0 para todo i=1,2,...,N TE073 – Processamento Digital de Sinais II 27 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica T, Seja o espaço vetorial V dos vetores definidos por [a b] Ex.: onde a e b são números reais. 1 0 X 1 , 0 1 e 1 0 X 2 , 1 1 São bases de V. Quaisquer 2 vetores não paralelos formam uma base para V. O número de vetores necessários para gerar o espaço é chamado dimensão do espaço vetorial. No exemplo: Dimensão 2 No exemplo anterior, espaço das funções limitadas [0,1] de L2 possui dimensão infinita. TE073 – Processamento Digital de Sinais II 28 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 3 Ex.: Seja o vetor a 4 1 0 a 3 4 0 1 1 1 a 4 (1) 1 0 Então a representação de a na base X1 é (3,4) e na base X2 é (4,-1) TE073 – Processamento Digital de Sinais II 29 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.5. Definição formal do produto interno O produto interno pode ser denotado como: x y x, y Satisfaz os seguintes axiomas: 1. 2. 3. 4. <x,y>=<y,x>* <x+y,z>=<x,z>+<y,z> <x,y>= <x,y> <x,x>0 com equalidade se e somente se x= x, x x É chamada norma de x e é análogo à distância TE073 – Processamento Digital de Sinais II 30 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 11.3.6. Conjuntos Ortogonais e Ortonormais No espaço Euclidiano, dois vetores são ditos ortogonais se seu produto interno for zero. Se selecionarmos conjunto base formada por vetores ortogonais e ainda se a norma desses vetores for unitária, o conjunto é chamado Base Ortonormal. TE073 – Processamento Digital de Sinais II 31 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Dada um espaço vetorial SN com uma base ortonormal {xi} i=1,2..N. Dado um vetor y no espaço SN podemos escrever y como uma combinação linear dos vetores xi N y i x i i 1 Para encontrar os coeficientes i , podemos tirar o produto Interno de ambos os lados com respeito a xi N y, x k i x i , x k i 1 TE073 – Processamento Digital de Sinais II 32 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Como a base é ortonormal: Logo: xi , x k 1, i k 0, i k y,x k k TE073 – Processamento Digital de Sinais II 33 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Conclusões: • Vetores não são simplesmente pontos nos espaços 2-D e 3-D. Funções do tempo podem serem vistas como elementos de um espaço vetorial. • Conjuntos de vetores que satisfazem a certos axiomas formam um espaço vetorial •Todos os membros de um espaço vetorial podem ser representados como combinações lineares dos vetores bases (podem ter diferentes bases para um mesmo espaço). As bases formadas por vetores de magnitude unitária e ortogonais são conhecidas como bases ortonormais. •Se uma base é ortonormal os coeficientes podem ser obtidos tirando o produto interno do vetor com cada vetor da base. TE073 – Processamento Digital de Sinais II 34 Codificação Por Transformada 35 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Introdução Fonte é decomposta ou transformada em componentes de modo que a energia fique concentrada em poucas amostras. Para uma fonte gaussiana a entropia é dada por: 1 log 2e 2 2 O aumento da variância causa um aumento na entropia, o que mede a quantidade de informação contida no sinal. TE073 – Processamento Digital de Sinais II 36 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Ex: Analisando a sequência de dois números, representando peso e altura: Peso Altura 65 170 75 188 60 150 70 170 56 130 80 203 68 160 50 110 40 80 50 153 69 148 62 140 76 164 64 120 TE073 – Processamento Digital de Sinais II 37 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Podemos observar que os valores estão ao redor da reta y=2.5x Podemos rotacionar o conjunto de valores usando: Ax cos sin A sin cos x0 x x1 0 1 Onde é o ângulo da reta com eixo x arctan 2.5 68o TE073 – Processamento Digital de Sinais II 38 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica 0,37139068 0,92847669 A 0 , 92847669 0 , 37139068 Peso Altura 1o 2o 65 170 182 3 75 188 202 0 60 150 162 0 70 170 184 -2 56 130 141 -4 80 203 218 1 68 160 174 -4 50 110 121 -6 40 80 90 -7 50 153 161 10 69 148 163 -9 62 140 153 -6 76 164 181 -9 64 120 135 -15 A.x TE073 – Processamento Digital de Sinais II 39 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A energia foi compactada no primeiro elemento. Desenhando o gráfico temos: Podemos ignorar a segunda coordenada de , causando um erro, porém reduzindo a quantidade de dados pela metade! TE073 – Processamento Digital de Sinais II 40 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Fazendo a anti-transformação podemos recuperar os dados x. cos sin A1 sin cos Reconstruído Original 1o 2o Peso Altura Peso Altura 182 0 68 169 65 170 202 0 75 188 75 188 162 0 60 150 60 150 184 0 68 171 70 170 141 0 53 131 56 130 218 0 81 203 80 203 174 0 65 162 68 160 121 0 45 112 50 110 90 0 34 84 40 80 161 0 60 150 50 153 163 0 61 151 69 148 153 0 57 142 62 140 181 0 67 168 76 164 135 0 50 125 64 120 x A . 1 TE073 – Processamento Digital de Sinais II 41 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica O erro de reconstrução foi pequeno pois nessa transformação em particular temos: N 1 xi xˆi i 0 2 N 1 i ˆi i 0 2 Neste exemplo foi utilizada apenas duas dimensões, mas o princípio pode ser expandido para mais dimensões. Com duas dimensões podemos reduzir os dados em um fator de 2, com mais dimensões esse fator pode aumentar. Descartar as componentes com menor quantidade de informação (menor entropia) (menor variância) TE073 – Processamento Digital de Sinais II 42 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Prova-se que a melhor compactação ocorre quando descorrelacionamos as amostras da transformada. A descorrelação de dados discretos foi introduzida em 1933 por Hotteling. Em 1947, Karhunen e em seguida, 1948, Loève desenvolveram a transformação para funções contínuas. Kramer e Mathew em 1956 utilizaram esses conceitos da descorrelação, para codificação de sinais, gerando então o termo codificação por transformada. TE073 – Processamento Digital de Sinais II 43 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A codificação por transformada consiste em três passos: A seqüência de dados é dividida em blocos de tamanho N e mapeada em seqüências transformadas, usando um mapeamento reversível. Quantizar a seqüência transformada Taxa de bits que eu desejo conseguir? A estatística dos elementos transformados? Efeitos de distorções causados pela quantização? Binary encoding TE073 – Processamento Digital de Sinais II 44 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A Transformada Todas as transformadas que veremos são transformadas lineares, podendo serem representadas por: N 1 n xi an,i i 0 N 1 xn i bn,i i 0 O tamanho N do bloco é definido por considerações práticas, tais como: Taxa de compressão versus complexidade computacional Em sinal de voz mudanças radicais como a passagem do silêncio para a conversa dificultam a implementação de N grandes. O mesmo acontece em imagem. TE073 – Processamento Digital de Sinais II 45 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A transformada pode ser escrita na forma matricial: Ax x B onde A e B são matrizes N×N A : Matriz Transformada Direta B : Matriz Transformada Inversa [ A]i , j ai , j [ B]i , j bi , j AB BA I Se a transformada é ortonormal ela tem a propriedade de que a inversa é a própria transposta. B A 1 A T TE073 – Processamento Digital de Sinais II 46 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A eficiência da transformada depende da compactação de energia. Uma das maneiras de medir a compactação é tirar a média aritmética da variância dos coeficientes de transformação. GTC 1 N 2 i 0 i N 1 N 1 i 0 1 2 i N Ganho de Codificação da Transformada TE073 – Processamento Digital de Sinais II 48 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Ex: Considere a matriz 1 1 1 A 1 1 2 Note que a primeira linha representa um filtro passa-baixa e a segunda um passa alta Supondo a sequência de entrada sendo ( , ) 0 1 1 1 2 1 1 2 0 1 TE073 – Processamento Digital de Sinais II Coeficiente de baixa-frequência 49 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Analisando duas outras seqüências (3,1) e (3,-1) A segunda é mais alta frequência que a primeira, pois difere de 4 enquanto a outra de 2. Teremos: 0 1 1 1 3 2 2 1 1 1 2 2 1 0 1 1 1 3 2 1 1 1 2 2 2 1 Observe que a energia da sequência transformada é igual a da original, caracterizando uma transformada ortonormal. 2 2 ( 2 2 ) 2 12 32 TE073 – Processamento Digital de Sinais II 50 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Transformada Karhunen-Loéve As linhas da transformada discreta KLT consiste nos autovetores da matriz de autocorrelação da sequência. A matriz de autocorrelação para um processo randômico X é dada por: [ R]ij E X n X n i j A matriz construída desta forma reduz a variância dos coeficientes da transformada. Resultando na Transformada Ótima do ponto de vista de compactação da energia. Transformada dependente do sinal: Grande informação Lateral TE073 – Processamento Digital de Sinais II 51 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Transformada Karhunen-Loéve Ex: KLT tamanho 2 A matriz de autocorrelação de tamanho 2 é: Rxx (0) Rxx (1) R R ( 1 ) R ( 0 ) xx xx Resolvendo a equação I R 0 Temos os autovalores 1 Rxx (0) Rxx (1) 2 Rxx (0) Rxx (1) TE073 – Processamento Digital de Sinais II 52 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Transformada Karhunen-Loéve Os autovetores associados são V1 V2 Impondo as condições de ortonormalidade 1 2 1 1 1 A matriz da transformada é K 1 1 2 TE073 – Processamento Digital de Sinais II 53 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Discrete Cosine Transform (DCT) Tem este nome porque a matriz de transformada é obtida em função do cosseno, segundo a regra: C i, j 1 (2 j 1)i cos N 2N i 0, j 0...N 1 2 (2 j 1)i cos N 2N i 1...N 1, j 0...N 1 TE073 – Processamento Digital de Sinais II 54 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Funções base da DCT: TE073 – Processamento Digital de Sinais II 55 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Parecida com a DFT porém a DCT é melhor para efeitos de compactação A DFT considera que a seqüência é periódica de período N, introduzindo descontinuidades no final da seqüência, interferindo nas altas frequências. TE073 – Processamento Digital de Sinais II 56 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica A DCT duplica a seqüência N porém em espelho, não gerando descontinuidades e gerando periodicidade na seqüência 2N. TE073 – Processamento Digital de Sinais II 57 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Discrete Sine Transform (DST) A DCT obtém performance tendendo a KLT para coeficientes de correlação altos e a DST para valores baixos de correlação. É utilizada de forma complementar a DCT em aplicações de áudio e image S ij 2 (i 1)( j 1) sin N 1 N 1 i, j 0,...N 1 TE073 – Processamento Digital de Sinais II 58 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Discrete Walsh-Hadamard Transform (DWHT) Baixa complexidade computacional Não tão eficiente quanto a DCT Matrizes de Hadamard DWHT: Ortonormal logo: 1 H1 1 1 1 1 1 H2 2 1 1 H2N H N H N HN H N 1 1 1 1 1 1 1 1 1 H4 4 1 1 1 1 1 1 1 1 TE073 – Processamento Digital de Sinais II 59 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Quantização dos Coeficientes Cada coeficiente possui uma quantidade de informação diferente, logo alocar diferentes números de bits para quantizar escalarmente cada coeficiente. Duas approaches: Alocar o número de bits baseado em estatísticas dos coeficientes (variância). Coeficiente com > variância recebe mais bits. Classificar várias matrizes de quantização de acordo com características do sinal de entrada. Quantizar vetorialmente o bloco de transformada: Medida da distância ponderada pela variância dos coeficientes. TE073 – Processamento Digital de Sinais II 60 Codificação por Subbandas 61 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Introdução Do que vamos tratar? Uma descrição geral de sistemas de codificação subbandas. Uma descrição de uma aproximação popular de alocação de bit. Aplicações de compressão de áudio e vídeo. TE073 – Processamento Digital de Sinais II 62 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Introdução Nós vimos: Quantização Vetorial Quantização Escalar Codificação Diferencial Porém, existem fontes que combinam várias características e é difícil determinar qual tipo de codificação utilizar. Codificação por Transformada = decompõe o sinal em uma estrutura (bloco) artificial, gerando efeitos indesejáveis de blocagem (Lapped Orthogonal Transform (LOT) - Malvar 92) TE073 – Processamento Digital de Sinais II 63 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Decompor o sinal em diferentes partes sem uma imposição de estrutura. Usar a técnica de codificação que mais se adeque a cada parte. Adequar a alocação de bits de acordo com características da percepção humana TE073 – Processamento Digital de Sinais II 64 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Fazendo: Filtragem PB xn xn 1 yn 2 Filtragem PA xn xn 1 xn xn 1 z n xn y n xn 2 2 Desta forma a seqüência {yn} e {zn} podem ser codificadas independentemente, usando o esquema de compressão que é mais adequado para cada seqüência. TE073 – Processamento Digital de Sinais II 65 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Exemplo: Suponha que quiséssemos codificar a seqüência: xn = {10, 14, 10, 12, 14, 8, 14, 12, 10, 8, 10, 12} Utilizando DPCM: xn –xn-1= {10, 4, -4, 2, 2, -6, 6, -2, -2, -2, 2, 2} Então utilizaremos M=2m níveis de quantização, Faixa dinâmica [-6,6] e o intervalo de quantização (delta) será: 12 M e o erro máximo de quantização: TE073 – Processamento Digital de Sinais II 6 2 M 66 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Vamos gerar então duas novas seqüências {yn} e {zn}: xn=yn+zn Então para yn temos: {10, 12, 12, 11, 13, 11, 11, 13, 11, 10, 9, 11} A sequência yn é mais suave que xn. TE073 – Processamento Digital de Sinais II 67 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Considerando a seqüência das diferenças de yn: {10, 2, 0, -1, 2, -2, 0, 2, -2, -1, -1, 2} Note que a faixa dinâmica reduziu de [-6,6] para [-2,2] TE073 – Processamento Digital de Sinais II 68 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Notamos que o passo de quantização agora é 4/M e portanto o máximo erro de quantização será 2/M. No entanto precisamos ainda transmitir zn {0, 2, -2, 1, 1, -3, 3, -1, -1, -1, 1, 1} Faixa dinâmica: 6, metade da faixa de {xn}. Precisamos apenas 6/M níveis. Dando um erro máximo de quantização de 3/M. Erro de quantização total = 5/M TE073 – Processamento Digital de Sinais II 69 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Então: Para um mesmo número de bits teremos menos erro! PORÉM Teremos o dobro da taxa de bits! Pois temos o dobro do número de amostras a quantizar e transmitir. Como evitar? Transmitindo apenas os número pares. x2 n x2 n 1 2 x x z 2 n 2 n 2 n 1 2 y2 n Na reconstrução: y2 n z2 n x2 n y2 n z2 n x2 n1 TE073 – Processamento Digital de Sinais II 70 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Exemplo – (Conclusão) Decompondo a seqüência {xn} em subseqüência, não resulta num incremento dos valores a serem transmitidos. As duas subsequencias são distintas e podem ser codificadas diferentemente. Nós podemos usar a mesma aproximação na decomposição das duas seqüências. TE073 – Processamento Digital de Sinais II 71 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Então: xn xn 1 yn 2 xn xn 1 zn 2 Podemos implementar estas operações usando filtros discretos. TE073 – Processamento Digital de Sinais II 72 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtros Magnitude da Função de Transferência – relação da magnitude da entrada e saída do filtro em função da freqüência. Filtro Ideal x Filtro Real TE073 – Processamento Digital de Sinais II 73 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtros Critério de Nyquist : fa = 2.fo Sinais Passa-Banda: fa=2.B Aliasing. Forma geral da relação de entrada-saída de um filtro: FIR IIR N M i 0 i 1 yn ai xn i bi yn i TE073 – Processamento Digital de Sinais II 74 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Alguns Filtros Usados na Codificação Subbanda Filtros QMF (Quadrature Mirror Filter) – PR (Perfect Reconstruction) Filtros Espelhados em Quadratura de Reconstrução Perfeita Propriedades do Filtro QMF - Johnston: Passa baixa -> {hn} n Passa alta -> {(-1) .hN-1-n} O filtro é simétrico ou seja: hN-1-n = hn n=0,1,...,N/2 -1 TE073 – Processamento Digital de Sinais II 75 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Passa Baixas {hn } Passa Altas TE073 – Processamento Digital de Sinais II 1 n hN 1n 76 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 77 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtro Johnston Filtro Smith-Barnwell A freqüência de corte do filtro smith-barnwell é bem melhor definida do que a freq. do filtro de Johnston. TE073 – Processamento Digital de Sinais II 78 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Algoritmo de Codificação Subbanda TE073 – Processamento Digital de Sinais II 79 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Quantização e Codificação Alocação de bits entre as subbandas. Cada subbanda possui uma quantidade diferente de informação. Exemplo: Forma de alocar 4 bits em 4 subbandas. TE073 – Processamento Digital de Sinais II 80 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Síntese Upsampling – insere zeros – filtragem pelos filtros de reconstrução- Soma das componentes 3 maiores componentes do sistema: análise e síntese de filtros; esquema de alocação de bits; esquema de codificação. Separação em bandas ->Possibilidade de formas inovadora para o uso dos algoritmos de compressão. Percepção humana (audio e visual) depende da frequência, logo podemos alocar melhor os bits. TE073 – Processamento Digital de Sinais II 81 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Design de Bancos de Filtros Vamos analisar: downsampling upsamplig síntese de operação TE073 – Processamento Digital de Sinais II 82 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Design de Bancos de Filtros TE073 – Processamento Digital de Sinais II 83 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Design de Bancos de Filtros TE073 – Processamento Digital de Sinais II 84 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Dowsampling e Upsampling TE073 – Processamento Digital de Sinais II 85 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Dowsampling e Upsampling TE073 – Processamento Digital de Sinais II 86 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Reconstrução Perfeita Usando Bancos de Filtros de 2 Canais TE073 – Processamento Digital de Sinais II 87 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtros de QMF-PR de dois canais. TE073 – Processamento Digital de Sinais II 88 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtros FIR Fortemente Simétricos Neste método o aliasing, distorção de amplitude e fase podem ser completamente eliminados. TE073 – Processamento Digital de Sinais II 89 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Banco de Filtros QMF com M-Bandas TE073 – Processamento Digital de Sinais II 90 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Banco de Filtros QMF com M-Bandas Somente é viável utilizá-los quando a característica espectral do filtro é boa. Quando o número de estágios aumentam ocorre a sobreposição entre as bandas e consequentemente aliasing. TE073 – Processamento Digital de Sinais II 91 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Banco de Filtros QMF com M-Bandas o conjunto de filtros pode ser substituído por apenas um filtro e em seguida ser feito a redução das amostras. A( z) H L ( z).H L ( z 2 ).H L ( z 4 ) TE073 – Processamento Digital de Sinais II 92 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Alocação de Bits Quanto recurso de codificação deve ser usado para codificar a saída de cada filtro sintetizado. Em outras palavras, precisamos alocar os bits entre as subbandas. Suponhamos um sistema dividido em M subbandas onde a média de bits por amostra é conhecida, então: 1 R M M R k 1 k Desejamos encontra Rk tal que R seja minimizado e o erro de reconstrução seja mínimo. Onde na curva de distorção eu devo operar para que eu possa minimizar a distorção média? TE073 – Processamento Digital de Sinais II 93 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Alocação de Bits Yaacov Shoham e Allen Gersho (1988) J k Dk .Rk Como deve ser o valor de λ e como ele deve variar entre as subbandas? Deve-se buscar o lambda que melhor cumpra os requerimentos do seu problema. Mesmo lambda para todas as subbandas TE073 – Processamento Digital de Sinais II 94 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Alocação de Bits Normalmente não temos a curva de taxa de distorção. Caso o número de amostras em cada subbanda é o mesmo. Do contrário: É dado peso para cada subbanda, então: J k Dk . k Rk De forma geral: J k wk Dk . k Rk TE073 – Processamento Digital de Sinais II 95 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Aplicação para Codificação de Voz – G.722 Padrão da ITU para codificação em bandalarga. Codificação de alta qualidade à 64kbps (56kbps e 48kbps). Processo: Saída de áudio passa por um filtro de 7kHz para prevenir aliasing em seguida é amostrada em 16.000 amostras/s. Cada amostra é quantizada com 14bits/amostra através de uma quantizador uniforme. As amostras são passadas em um banco de filtros (2 filtros FIR) de 24 coeficientes cada. TE073 – Processamento Digital de Sinais II 96 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Aplicação para Codificação de Voz – G.722 P.B -> freqüências menores que 4kHz. P.A. outras. A saída do filtro é decimada por um fator de 2. A sequencia decimada é codificada utilizando ADPCM. O sistema ADPCM usa 6 bits/amostra para o filtro P.B. e 2 bits/amostra para o P.A. O sistema portanto possui: Tx (6[bits] 2[bits]).8k[amostras/ s] 64kbps TE073 – Processamento Digital de Sinais II 97 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Aplicação para Codificação de Áudio – MPEG Áudio Esquema de codificação de áudio proposto pelo MPEG. Atualmente já propôs 3 esquemas de codificação: Layer 1, Layer 2 e Layer 3 – Todos com back compatibility (decoder layer N pode decodificar os anteriores). Layers 1 e 2 – Banco de 32 filtros, dividindo a entrada em 32 bandas, cada um com uma banda de fs/64. fs permitidas são: 32k, 44,1k e 48k amostras/s. A saída é quantizada utilizando um quantizador uniforme com um número variado de bits. Número de bits é determinado pelo modelo psicoacústico. Sinal de amplitude alta em uma freq. afeta a audibilidade do sinal em outra freq., então podemos tolerar mais erros de quantização nas bandas vizinhas e usar poucos bits. TE073 – Processamento Digital de Sinais II 98 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Aplicações na Compressão de Imagens. O que fazer quando temos seqüências de dados bidimensionais? Utilizar filtros bidimensionais, ou seja, que separem a saída da fonte em componentes baseadas nas freq. verticais e horizontais. Normalmente implementado em 2 x 1 dimensional. Chamados filtros “separáveis”. Filtros bidimensionais não-separáveis são extremamente complexos. Geralmente a imagem é filtrada linha a linha utilizando filtros P.A. e P.B. A saída do filtro é decimada por um fator de 2. O mesmo é feito com as colunas. Resultando numa imagem N/2 x N/2. TE073 – Processamento Digital de Sinais II 99 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 100 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 101 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 102 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 103 Codificação baseada em wavelets 104 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica INTRODUÇÃO Por que wavelets? Transformada de Fourier Apenas resolução na freqüência, sem resolução no tempo. Função temporal f(t) Apenas resolução no tempo, sem resolução na freqüência. Problema com a STFT (Short-Term Fourier Transform) Largura fixa da janela TE073 – Processamento Digital de Sinais II 105 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica STFT WAVELETS TE073 – Processamento Digital de Sinais II Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Representação de função em termos de wavelets localização no tempo e na freqüência alta resolução em freqüência em baixas freqüências (janela de tempo maior) alta resolução no tempo em altas freqüências (janela de tempo menor) TE073 – Processamento Digital de Sinais II 107 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Itens: construção de wavelets; descrição de como obter uma decomposição de um sinal utilizando análise em multiresolução; descrição de alguns esquemas populares para compressão de imagens TE073 – Processamento Digital de Sinais II 108 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Transformada wavelet contínua w s, s , (t ), f (t ) f (t ) s , (t )dt s = variável escala = variável translação Transformada wavelet inversa: f (t ) w( s, ) dds s , TE073 – Processamento Digital de Sinais II 109 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica As wavelets são geradas a partir de uma única wavelet básica (wavelet mãe), (t), através de translações e escalamentos: 1 t s, (t ) s s s = fator de escala = fator de translação s = normalização de energia As funções base wavelets não são especificadas. Esta é uma diferença entre a transformada wavelet e outras transformadas TE073 – Processamento Digital de Sinais II 110 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Propriedades de wavelets Condição de admissibilidade ( ) d 2 Pode ser utilizada para analisar e reconstruir um sinal sem perda de informação. Implica que: Wavelets têm espectro de potência passa-faixa ( ) 2 0 0 O valor médio da wavelet no domínio do tempo é zero (tem que ser oscilatória). (t )dt 0 TE073 – Processamento Digital de Sinais II 111 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • Condição de regularidade • A função wavelet deve ser suave • diminuir rapidamente com a escala s • ter concentração nos domínios do tempo e da freqüência. • Exemplo de wavelet mãe Wavelet de Haar: 1 (t ) 1 0 t 0,5 0,5 t 1 TE073 – Processamento Digital de Sinais II 112 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Wavelets discretas As versões discretas dos parâmetros de escala e de translação devem estar relacionadas entre si: se a escala é tal que as funções de base são estreitas, o passo de translação deve ser pequeno, e vice-versa. s s0 j Selecionaremos s e da seguinte maneira: j k s 0 0 Portanto: j ,k (t ) s0 ( s0 t k 0 ) j/2 j j, k Z TE073 – Processamento Digital de Sinais II 113 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • Normalmente, escolhemos s0=2, de tal maneira que a amostragem do eixo da freqüência seja diádica. • Escolhemos o fator de translação como 0=1, de modo que a amostragem no eixo do tempo também seja diádica. j ,k (t ) 2 (2 t k ) j/2 j Os coeficientes wavelet são dados por: w j ,k f (t ), j ,k (t ) A função f(t) pode ser reconstruída a partir dos coeficientes wavelet: f (t ) w j ,k j ,k (t ) j k TE073 – Processamento Digital de Sinais II 114 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Filtro passa-faixa É necessário um número infinito de escalamentos e translações para calcular a transformada wavelet. As translações das wavelets são limitadas superiormente pela duração do sinal em questão. Quantas escalas precisamos para analisar o sinal? Como conseguimos uma fronteira inferior? A wavelet tem um espectro de freqüências passafaixa. Sabemos que a compressão no tempo equivale ao alargamento do espectro e a um deslocamento para frente. 1 F f at F |a| a TE073 – Processamento Digital de Sinais II 115 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • Isso significa que uma compressão no tempo por um fator 2 alargará o espectro da wavelet e deslocará todos os componentes de freqüência por um fator 2. • Podemos, então, cobrir o espectro finito do sinal com os espectros de wavelets dilatadas, da mesma forma que cobrimos o sinal no domínio do tempo com wavelets transladadas TE073 – Processamento Digital de Sinais II 116 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • Logo, se uma wavelet pode ser vista como um filtro passa-faixa, uma série de wavelets dilatadas pode ser vista como um banco de filtros passa-faixas. • A razão entre a freqüência central de um espectro de wavelet e a largura deste espectro é a mesma para todas as wavelets. • Esta razão é normalmente chamada fator de fidelidade Q de um filtro. No caso das wavelets, temos, então, um banco de filtros com fator Q constante. TE073 – Processamento Digital de Sinais II 117 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Função de escalamento Como cobrir o espectro até a freqüência zero? Neste caso, seria necessário um número infinito de wavelets. Solução: Utilizar uma espécie de “rolha” para tapar o buraco, quando ele for suficientemente pequeno: um espectro passa-baixas, que pertence à função de escalamento. TE073 – Processamento Digital de Sinais II 118 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Podemos considerar a função de escalamento como um sinal com um espectro passa-baixas. Desta forma, podemos decompô-lo em componentes wavelet: (t ) w j ,k j ,k (t ) j ,k A expressão acima utiliza um número infinito de wavelets até uma determinada escala j. Se analisarmos um sinal utilizando uma combinação de função de escalamento e wavelets, a função de escalamento cobre o espectro até a escala j, enquanto o restante do espectro é coberto por wavelets. Se uma wavelet pode ser vista como um filtro passa-faixa e uma função de escalamento é um filtro passa-baixas, então (uma série de wavelets dilatadas + uma função de escalamento) pode ser vista como um banco de filtros. TE073 – Processamento Digital de Sinais II 119 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Codificação sub-banda Transformada wavelet banco de filtros Transformada de um sinal pode ser feita passando o sinal através deste banco de filtros. As saídas dos diferentes estágios de filtros são os coeficientes das funções wavelet e escalamento. Codificação sub-banda Análise de um sinal através de sua passagem por um banco de filtros. TE073 – Processamento Digital de Sinais II 120 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • Dividimos o espectro do sinal em duas partes iguais: uma passa-baixas e outra passa-altas. • A parte passa-altas contém os detalhes menores nos quais estamos interessados e podemos parar aqui. • Agora há duas faixas. Apesar disso, a parte passa-baixas ainda contém alguns detalhes e podemos dividi-la novamente. • E novamente, até estarmos satisfeitos com o número de faixas de freqüência criadas. • Desta maneira, construímos o banco de filtros. Vantagem – Temos que projetar apenas dois filtros. Desvantagem – A cobertura do espectro do sinal é fixa. TE073 – Processamento Digital de Sinais II 121 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Banco de filtros dividindo o espectro de freqüências do sinal TE073 – Processamento Digital de Sinais II 122 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Observamos, na figura anterior, que, após a repetida divisão do espectro de freqüências, temos uma série de bandas passa-faixa com duplicação da largura de faixa e uma banda passa-baixas. Isto é o mesmo que aplicar a transformada wavelet ao sinal. As wavelets nos dão as bandas passa-faixa, com duplicação da largura de faixa, e a função de escala fornece a banda passa-baixa. A partir disso, conclui-se que a transformada wavelet é equivalente ao esquema de codificação sub-banda, utilizando um banco de filtros com Q constante. Logo, se implementarmos a transformada wavelet como um banco de filtros iterado, não é necessário especificar as wavelets explicitamente. TE073 – Processamento Digital de Sinais II 123 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Transformada wavelet discreta Em aplicações práticas (como compressão de imagens), o sinal de interesse é amostrado. É necessário, portanto, que a transformada wavelet seja também discreta. As wavelets discretas não são discretas no tempo (somente os passos de translação e de escala são discretos). Intuitivamente, deve-se implementar o banco de filtros como um banco de filtros digitais TE073 – Processamento Digital de Sinais II 124 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Se adicionarmos um espectro de wavelet ao espectro de função de escala, teremos uma nova função de escala, duas vezes mais larga que a primeira. Podemos, então, expressar a primeira função de escala em termos da segunda. Formulação de multiresolução ou relação entre duas escalas: (2 j t ) h j 1 (k ) (2 j 1 t k ) (*) k Podemos expressar,também, as wavelets nesta escala em termos das funções de escala transladadas da escala anterior: (2 t ) g j 1 (k ) (2 t k ) j 1 j (**) k TE073 – Processamento Digital de Sinais II 125 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Uma vez que o sinal f(t) pode ser expresso em termos de wavelets dilatadas e transladadas até uma escala j-1, f(t) pode ser expressa em termos de funções de escala dilatadas e transladadas em uma escala j: f (t ) j (k ) (2 t k ) j k Se utilizarmos uma escala de j-1, temos que adicionar wavelets, a fim de que tenhamos o mesmo nível de detalhes: f (t ) j 1 (k ) (2 j 1 t k ) w j 1 (k ) (2 j 1 t k ) k k TE073 – Processamento Digital de Sinais II 126 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Se a função de escalamento j ,k (t ) e as wavelets j ,k (t ) forem ortonormais, os coeficientes j1 (k ) e wj1 (k ) são encontrados a partir dos produtos internos: j 1 (k ) f (t ), j ,k (t ) w j 1 (k ) f (t ), j ,k (t ) Se substituirmos j ,k (t ) e j ,k (t ) nos produtos internos por versões escaladas e transladadas de (*) e (**) e manipular um bit, levando em consideração que o produto interno também pode ser escrito como integração, chegamos a: j 1 (k ) h(m 2k ) j (m) m w j 1 (k ) g (m 2k ) w j (m) m TE073 – Processamento Digital de Sinais II 127 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica • h(k) Filtro passa-baixas Filtro de escalamento • g(k) Filtro passa-altas Filtro wavelet • É possível implementar a transformada wavelet como um banco de filtros digitais. • Os filtros de escalamento e wavelet têm um passo de 2 na variável k. Portanto, o número de amostras do estágio seguinte é metade do número de amostras do estágio atual. • Normalmente, as iterações param quando o número de amostras é menor que o tamanho do filtro de escalamento ou do filtro wavelet. TE073 – Processamento Digital de Sinais II 128 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Compressão de imagens Uma das aplicações mais populares de wavelets é na compressão de imagens. O padrão JPEG 2000 utiliza wavelets ao invés de DCT para fazer a decomposição da imagem. Na discussão anterior, sempre nos referimos a um sinal unidimensional. Imagens, porém, são sinais bidimensionais. Há duas maneiras de se fazer decomposição sub-banda de um sinal bidimensional: utilizando filtros bidimensionais ou transformadas separadas, que podem ser implementadas usando filtros unidimensionais primeiro nas linhas e depois nas colunas (como o JPEG 2000) TE073 – Processamento Digital de Sinais II 129 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Começamos com uma imagem N X M. Filtramos cada coluna e sub-amostramos, obtendo duas imagens N X M/2. Então filtramos cada coluna e sub-amostramos as saídas dos filtros, obtendo 4 imagens N/2 X M/2. TE073 – Processamento Digital de Sinais II 130 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TRANSFORMADA WAVELET DIRETA TE073 – Processamento Digital de Sinais II 131 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TRANSFORMADA WAVELET INVERSA TE073 – Processamento Digital de Sinais II 132 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Exemplo: Utilizando o filtro 4-tap Daubechies (Decomposição de primeiro nível) TE073 – Processamento Digital de Sinais II 133 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Imagem de Sinan codificada com 0,5 bits/pixel, utilizando o filtro 8-tap Johnson (codificação sub-banda) Imagem de Sinan codificada com 0,5 bits/pixel, utilizando o filtro wavelet 4-tap Daubechies TE073 – Processamento Digital de Sinais II 134 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Uma das decomposições mais populares é a (a). Após cada decomposição, a imagem LL é decomposta em mais 4 sub-imagens, resultando em 10 sub-imagens (organização de Mallat). TE073 – Processamento Digital de Sinais II 135 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica ORGANIZAÇÃO DE MALLAT TE073 – Processamento Digital de Sinais II 136 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica EXEMPLO DE ORGANIZAÇÃO DE MALLAT TE073 – Processamento Digital de Sinais II 137 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica SISTEMA DE COMPRESSÃO WAVELET BÁSICO TE073 – Processamento Digital de Sinais II 138 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Embedded Zerotree Wavelet (EZW) Coder • Uma característica particular utilizada pelo EZW é que há coeficientes de wavelets em diferentes sub-bandas que representam a mesma localização espacial na imagem. • Se a decomposição é tal que os tamanhos das subbandas são diferentes (caso da organização de Mallat), um único coeficiente na sub-banda menor pode representar a mesma localização espacial que múltiplos coeficientes nas outras sub-bandas. TE073 – Processamento Digital de Sinais II 139 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica a – raiz da árvore com descendentes – a1, a2, a3 a1 – tem descendentes a11, a12, a13, a14 a2 a21, a22, a23, a24 a3 a31, a32, a33, a34 Cada um desses coeficientes tem 4 descendentes – total de 64 coeficientes nesta árvore. TE073 – Processamento Digital de Sinais II 140 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica TE073 – Processamento Digital de Sinais II 141 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Limiar T0 – Freqüentemente, um coeficiente tem magnitude menor que um determinado limiar, e todos os seus descendentes também são menores que T0. TE073 – Processamento Digital de Sinais II 142 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Se determinarmos que todos os coeficientes partindo de uma determinada raiz têm magnitudes menores que T0 e informarmos o decodificador, então necessitamos apenas de 2 bits por amostra para este ramo da árvore. Na figura anterior, o primeiro bit é o bit de sinal e o segundo bit é o bit mais significativo da magnitude. A informação de que um conjunto de coeficientes tem valor menor que T0 equivale a dizer que o bit mais significativo é 0. Se há N coeficientes na árvore, isto poupará N bits. TE073 – Processamento Digital de Sinais II 143 Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica JPEG 2000 O padrão atual JPEG tem excelente performance em taxas acima de 0,25 bits/pixel. Apesar disso, em pequenas taxas, há uma grande degradação na qualidade da imagem reconstruída. O padrão JPEG-2000 é baseado na transformada wavelet discreta, utilizando wavelets biortogonais de Daubechies. O padrão JPEG-2000 também utiliza modos recentes de quantização escalar, modelamento no contexto e codificação aritmética. TE073 – Processamento Digital de Sinais II 144