A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Codificação Diferencial

Apresentações semelhantes


Apresentação em tema: "Codificação Diferencial"— Transcrição da apresentação:

1 Codificação Diferencial

2 TE073 – Processamento Digital de Sinais II
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 Resgatar os pontos de codif com perdas vistas até agora e situar quanto a codif que vai se falar (diferencial) Lembrar ascaracterísticas de quantização escalar (uniforme e não uniforme) Lembrar que a side information é “transmitida” em separado Lembrar as características de quantização vetorial. Codebooks, codewords, complexidade. Para o projeto de um quantizador, o tamanho e intervalo de quantização depende da variância da entrada (sinal p.ex) O intervalo de quantização é que define o erro/perda obtido com o quantizador. Existem fontes/sinais quando amostrados, não há muita variação entre amostras -> variância das amostras é pequena. Um exemplo é o sinal de voz TE073 – Processamento Digital de Sinais II

3 TE073 – Processamento Digital de Sinais II
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. Para as fontes onde há correlação entre as amostras, pode-se usar uma codificação onde isso é aproveitado: Codificação Diferencial Conhecido como DPCM (differential pulse code modulation) desenvolvido pelo Bell Labs. Técnica mais popular para codificação de voz, usado amplamente em telecom. Dado sinal amostrado xn a diferença entre as amostras pode ser dada por dn A codificação diferencial parte desse princípio- codificar as diferenças. Para a fonte de entrada senoidal da figura (intervalo de[-1 , 1]); usando um quantizador de 4 níveis (passo de 0,5) temos erro de quantização igual a [-0,25, 0,25] Para a mesma fonte senoidal as diferenças são representadas pela linha tracejada. O intervalo é de [-0,25 a 0,25]. O intervalo das diferenças entre as amostras é [-0,05 0,05]. TE073 – Processamento Digital de Sinais II

4 TE073 – Processamento Digital de Sinais II
Ex 2. Imagem Sinan Histograma original Histograma das diferenças 8 bits 7 bits 99%-> 5bits O segundo exemplo para análise é a imagem do Sinan. O gráfico do histograma demonstra que os tons de cinza [0, 255] estão distribuídos em todos níveis. Para representar sem perdas, são necessários 8 bits Podemos representar com perdas usando 7 bits desprezando o LSB. A fig 2 apresenta o histograma das diferenças. Nesse histograma, 99% dos valores estão entre [-31, 31]. Podemos amostrar esse intervalo com 5 bits. TE073 – Processamento Digital de Sinais II

5 TE073 – Processamento Digital de Sinais II
Exemplo 3: Considere a sequência: x={ } A sequência diferença será: d={ } Se codificarmos sem perdas, voltamos à seqüência original fazendo: Porém: Quantizando com perdas [ ]: d={ } Reconstruindo temos: xq={ } Que corresponde ao erro de quantização: { } crescente! TE073 – Processamento Digital de Sinais II

6 TE073 – Processamento Digital de Sinais II
Mesmo erro de quantização tendo média zero, pode causar overflow Q z-1 + - x[n] x[n-1] d[n] dq[n] Q-1 z-1 + dq[n] xq[n] xq[n-1] Solução: Q z-1 + - x[n] xq[n] d[n] dq[n] xq[n-1] Q-1 TE073 – Processamento Digital de Sinais II

7 TE073 – Processamento Digital de Sinais II
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 Como exemplo é apresentado o sinal senoidal codificado diferencialmente, considerando duas aproximações acima Análise- No primeiro caso a reconstrução diverge do sinal original. Apesar do segundo caso usar uma precisão menor no quantizador, aproxima-se melhor do sinal original. TE073 – Processamento Digital de Sinais II

8 TE073 – Processamento Digital de Sinais II
Generalização: Preditor: Explicar o diagrama de blocos. Ressaltar a importância de P(predicction) e Q(quantizer): Predição de xn (bloco P) X^n-1 deve ser o mais próximo possível de xn Se: Temos o DPCM (Differential Pulse Code Modulation) TE073 – Processamento Digital de Sinais II

9 TE073 – Processamento Digital de Sinais II
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 O sinal anterior possui: Entre 700 e 2000 parece periódico Entre 2200 e 3500 Baixa amplitude, parecido com um ruído Sinal típico com diferentes características e diferentes cenários podem ser utilizados para codificá-lo. (cenários adaptativos) Para um formato adaptativo, os blocos do quantizador e do predictor devem ser adaptativos. Dois tipos: Forward- parâmetros do sistema são atualizados de acordo com a entrada do codificador, não disponíveis ao decodificador. Devem ser enviados como side information. Backward- a adaptação é obtida da saída com decodificador,( não precisa de side information ser enviada) TE073 – Processamento Digital de Sinais II

10 TE073 – Processamento Digital de Sinais II
Modulação Delta Quantizador de 1-bit (2 níveis) Variação da taxa de amostragem Slope overload DPCM Muito utilizado para codificação de voz. O gráfico apresenta o mesmo sinal amostrado a duas diferentes taxas. No mínimo deve ser o dobro da taxa de amostragem Acho que CD player é assim. Também há o cenário de modulação delta adaptativa, usado para corrigir situações de alta variação (slope overload), onde essencialmente a taxa de amosytragem é alterada para evitar erros. O problema é saber quando alterar esse passo / taxa Existem 2 tipos de moduladores delta adaptativo: CFDM – (constant Factor Adaptive delta modulation) - histórico de 1 amostra para decidir se o sinal está granulado ou sobrecarregado para alterar o passo/taxa. Usado na Space shuttle com histórico de 7 amostras. CVSD –(continiously variable slope delta modulation) – bom para baixas taxas. TE073 – Processamento Digital de Sinais II

11 TE073 – Processamento Digital de Sinais II
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 respectivamente TE073 – Processamento Digital de Sinais II

12 TE073 – Processamento Digital de Sinais II
Codificação de Imagem Comparação com JPEG PSNR=41.60dB PSNR=31.42dB TE073 – Processamento Digital de Sinais II

13 TE073 – Processamento Digital de Sinais II
PSNR=41.60dB PSNR=38.28dB TE073 – Processamento Digital de Sinais II

14 Conceitos Básicos para
Transformadas, Subbandas e Wavelets

15 TE073 – Processamento Digital de Sinais II
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

16 TE073 – Processamento Digital de Sinais II
11.3. Espaços Vetoriais Representação de um vetor no espaço 2-D: 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

17 TE073 – Processamento Digital de Sinais II
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

18 TE073 – Processamento Digital de Sinais II
Produto Escalar ou Produto Interno Dado dos vetores: O produto interno é definido por: 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

19 TE073 – Processamento Digital de Sinais II
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. Ex.: Seja a base ortogonal: Claramente: E um vetor a pode ser decomposto em: TE073 – Processamento Digital de Sinais II

20 TE073 – Processamento Digital de Sinais II
uy 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: TE073 – Processamento Digital de Sinais II

21 TE073 – Processamento Digital de Sinais II
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

22 TE073 – Processamento Digital de Sinais II
Adição Vetorial: Sejam os vetores: Definimos: 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

23 TE073 – Processamento Digital de Sinais II
Seja: V um espaço vetorial x,y,z vetores e  e  números escalares x+y=y+x comutatividade (x+y)+z=x+(y+z) e ()x= (x) associatividade Existe elemento  em V tal que x+ =x para todo x V (x+y)= x+ y e (+)x= x+x distributividade 1.x=x e 0.x=  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

24 TE073 – Processamento Digital de Sinais II
Outro exemplo de espaço vetorial: conjunto das funções f(t) que possuem energia finita: Neste caso: (t)=0 E o espaço vetorial é chamado L2 TE073 – Processamento Digital de Sinais II

25 TE073 – Processamento Digital de Sinais II
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

26 TE073 – Processamento Digital de Sinais II
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

27 TE073 – Processamento Digital de Sinais II
Teorema: Um conjunto de vetores X={x1,x2,...,xN} é linearmente independente Se e somente se a expressão Implicar que para todo i=1,2,...,N TE073 – Processamento Digital de Sinais II

28 TE073 – Processamento Digital de Sinais II
Seja o espaço vetorial V dos vetores definidos por [a b]T, onde a e b são números reais. Ex.: 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

29 TE073 – Processamento Digital de Sinais II
Ex.: Seja o vetor Então a representação de a na base X1 é (3,4) e na base X2 é (4,-1) TE073 – Processamento Digital de Sinais II

30 TE073 – Processamento Digital de Sinais II
Definição formal do produto interno O produto interno pode ser denotado como: Satisfaz os seguintes axiomas: <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= É chamada norma de x e é análogo à distância TE073 – Processamento Digital de Sinais II

31 TE073 – Processamento Digital de Sinais II
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

32 TE073 – Processamento Digital de Sinais II
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 Para encontrar os coeficientes i , podemos tirar o produto Interno de ambos os lados com respeito a xi TE073 – Processamento Digital de Sinais II

33 TE073 – Processamento Digital de Sinais II
Como a base é ortonormal: Logo: TE073 – Processamento Digital de Sinais II

34 TE073 – Processamento Digital de Sinais II
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

35 Codificação Por Transformada

36 TE073 – Processamento Digital de Sinais II
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: 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

37 TE073 – Processamento Digital de Sinais II
Ex: Analisando a sequência de dois números, representando peso e altura: Peso Altura 65 170 75 188 60 150 70 56 130 80 203 68 160 50 110 40 153 69 148 62 140 76 164 64 120 TE073 – Processamento Digital de Sinais II

38 TE073 – Processamento Digital de Sinais II
Podemos observar que os valores estão ao redor da reta y=2.5x Podemos rotacionar o conjunto de valores usando: Onde  é o ângulo da reta com eixo x TE073 – Processamento Digital de Sinais II

39 TE073 – Processamento Digital de Sinais II
Peso Altura 65 170 75 188 60 150 70 56 130 80 203 68 160 50 110 40 153 69 148 62 140 76 164 64 120 1o 2o 182 3 202 162 184 -2 141 -4 218 1 174 121 -6 90 -7 161 10 163 -9 153 181 135 -15 TE073 – Processamento Digital de Sinais II

40 TE073 – Processamento Digital de Sinais II
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

41 TE073 – Processamento Digital de Sinais II
Fazendo a anti-transformação podemos recuperar os dados x. Reconstruído Original 1o 2o 182 202 162 184 141 218 174 121 90 161 163 153 181 135 Peso Altura 68 169 75 188 60 150 171 53 131 81 203 65 162 45 112 34 84 61 151 57 142 67 168 50 125 Peso Altura 65 170 75 188 60 150 70 56 130 80 203 68 160 50 110 40 153 69 148 62 140 76 164 64 120 TE073 – Processamento Digital de Sinais II

42 TE073 – Processamento Digital de Sinais II
O erro de reconstrução foi pequeno pois nessa transformação em particular temos: 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

43 TE073 – Processamento Digital de Sinais II
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

44 TE073 – Processamento Digital de Sinais II
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

45 TE073 – Processamento Digital de Sinais II
A Transformada Todas as transformadas que veremos são transformadas lineares, podendo serem representadas por: 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. O tamanho N do bloco é definido por considerações práticas, tais como: Taxa de compressão versus complexidade computacional TE073 – Processamento Digital de Sinais II

46 TE073 – Processamento Digital de Sinais II
A transformada pode ser escrita na forma matricial: onde A e B são matrizes N×N A : Matriz Transformada Direta B : Matriz Transformada Inversa Se a transformada é ortonormal ela tem a propriedade de que a inversa é a própria transposta. TE073 – Processamento Digital de Sinais II

47 TE073 – Processamento Digital de Sinais II
Transformadas ortonormais preservam a energia, ou seja, a soma dos quadrados da seqüência transformada é igual a soma dos quadrados da original. TE073 – Processamento Digital de Sinais II

48 TE073 – Processamento Digital de Sinais II
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. Ganho de Codificação da Transformada TE073 – Processamento Digital de Sinais II

49 TE073 – Processamento Digital de Sinais II
Ex: Considere a matriz Note que a primeira linha representa um filtro passa-baixa e a segunda um passa alta Supondo a sequência de entrada sendo Coeficiente de baixa-frequência TE073 – Processamento Digital de Sinais II

50 TE073 – Processamento Digital de Sinais II
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: Observe que a energia da sequência transformada é igual a da original, caracterizando uma transformada ortonormal. TE073 – Processamento Digital de Sinais II

51 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: 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

52 Transformada Karhunen-Loéve
Ex: KLT tamanho 2 A matriz de autocorrelação de tamanho 2 é: Resolvendo a equação Temos os autovalores TE073 – Processamento Digital de Sinais II

53 Transformada Karhunen-Loéve
Os autovetores associados são Impondo as condições de ortonormalidade A matriz da transformada é TE073 – Processamento Digital de Sinais II

54 Discrete Cosine Transform (DCT)
Tem este nome porque a matriz de transformada é obtida em função do cosseno, segundo a regra: TE073 – Processamento Digital de Sinais II

55 TE073 – Processamento Digital de Sinais II
Funções base da DCT: TE073 – Processamento Digital de Sinais II

56 TE073 – Processamento Digital de Sinais II
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

57 TE073 – Processamento Digital de Sinais II
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

58 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 TE073 – Processamento Digital de Sinais II

59 Discrete Walsh-Hadamard Transform (DWHT)
Baixa complexidade computacional Não tão eficiente quanto a DCT Matrizes de Hadamard DWHT: Ortonormal logo: TE073 – Processamento Digital de Sinais II

60 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

61 Codificação por Subbandas

62 TE073 – Processamento Digital de Sinais II
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. Nós vamos descrever uma técnica na qual a saída da fonte será decomposta, ou transformada, em componentes que então serão codificados de acordo com suas características individuais. A aproximação descrita nesse capítulo, refere-se a separar a saída da fonte em diferentes bandas de frequencias usando filtros digitais. Vamos tratar da seguinte forma: Uma descrição.... -> Para aqueles que conhecem um pouco de transformada z. TE073 – Processamento Digital de Sinais II

63 TE073 – Processamento Digital de Sinais II
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) Quantização vetorial mostrava que quanto mais agrupado estavam os dados melhor era a codificação. Codificação diferencial mostrava que quanto menor era a diferença das amostras, melhor era a codificação. Quantização escalar e quantização vetorial em rede era usada quando os dados eram randomicamente distribuidos. Então se a fonte possui uma característica bem definida podemos escolher o tipo de compressao mais adequada para utilizar. TE073 – Processamento Digital de Sinais II

64 TE073 – Processamento Digital de Sinais II
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 Portanto, cada componente da saída pode ter diferentes características percentuais. Um bloco pode ter maior erro de quantização, podemos utilizar poucos bits para codificar componentes menos importantes, etc... Na figura vemos que há uma significante variação de amostra para amostra. Mas a longo prazo a curva varia lentamente. TE073 – Processamento Digital de Sinais II

65 TE073 – Processamento Digital de Sinais II
Fazendo: Filtragem PB Filtragem PA yn= curva tracejada, xn=valores das amostras. Podemo gerar {yn} pela média das amostras vizinhas. Porém gostariamos de codificar a sequencia xn e não a sequencia yn. Então podemos codificar yn, pela sequencia da diferença {zn}. 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

66 TE073 – Processamento Digital de Sinais II
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á: e o erro máximo de quantização: TE073 – Processamento Digital de Sinais II

67 TE073 – Processamento Digital de Sinais II
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} Podemos notar que a seqüência yn é mais “suave” que a seqüencia {xn}. A sequência yn é mais suave que xn. TE073 – Processamento Digital de Sinais II

68 TE073 – Processamento Digital de Sinais II
Considerando a seqüência das diferenças de yn: {10, 2, 0, -1, 2, -2, 0, 2, -2, -1, -1, 2} Na figura xn-xn-1 e yn-yn-1 estão plotados. Note que a faixa dinâmica reduziu de [-6,6] para [-2,2] TE073 – Processamento Digital de Sinais II

69 TE073 – Processamento Digital de Sinais II
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

70 TE073 – Processamento Digital de Sinais II
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. A banda dobrou -> yn e zn possuem o mesmo número de bits. yn e zn possuem o mesmo número de elementos de xn, então estaremos transmitindo 2x as mesmas amostras e portanto dobrando a banda. Podemo evitar da seguinte forma: transmitindo apenas os número pares. Então transmitimos a mesma sequencia {xn}, mandando o mesmo número de bits quanto requerido para transmitir a sequencia original, no entanto com uma distorção menor. Na reconstrução: TE073 – Processamento Digital de Sinais II

71 TE073 – Processamento Digital de Sinais II
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. Enquanto este exemplo tem um específico conjunto de valores, nós podemos ver que decompondo um sinal pode gerar diferentes formas de se ver como resolver o problema de compressão. Esta flexibilidade adicional pode levar numa melhora na perfomance de compressão. TE073 – Processamento Digital de Sinais II

72 TE073 – Processamento Digital de Sinais II
Podemos implementar estas operações usando filtros discretos. TE073 – Processamento Digital de Sinais II

73 TE073 – Processamento Digital de Sinais II
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

74 TE073 – Processamento Digital de Sinais II
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: Fórmula: {xn} é a entrada do filtro, a sequencia {yn} é a saída do filtro e os valores {ai} e {bi} são chamados coeficientes do filtro. Se a sequencia for somente 1 seguido de zeros. A saída é chamado de resposta ao impulso. Se bi= 0, a saída irá terminar em N amostras e o filtro é chamado FIR – Resposta ao Impulso Finita. N é chamado de taps do filtro –>> Taps -1 = ordem do filtro. Se algum dos valores bi tiverem valore diferentes de zero, a resposta ao impulso pode continuar, em teoria, eternamente. Filtros com valores diferentes para alguns valores de bi são chamados filtros IIR – Resposta ao impulso infinita. FIR IIR TE073 – Processamento Digital de Sinais II

75 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} Passa alta -> {(-1)n.hN-1-n} O filtro é simétrico ou seja: hN-1-n = hn n=0,1,...,N/2 -1 Os mais frequentes bancos de filtros usados na codificacao subbanda consiste em uma cascata de estágios, onde cada estágio consiste de um filtro passa baixas e passa altas. O filtro mais popular destes é o Quadrature Mirror Filter (QMF) . O filtro QMF é usado numa infinidade de aplicações. Filtros com menos taps são menos eficientes que filtros com um número de taps maior. TE073 – Processamento Digital de Sinais II

76 TE073 – Processamento Digital de Sinais II

77 TE073 – Processamento Digital de Sinais II

78 TE073 – Processamento Digital de Sinais II
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. Os mais frequentes bancos de filtros usados na codificacao subbanda consiste em uma cascata de estágios, onde cada estágio consiste de um filtro passa baixas e passa altas. O filtro mais popular destes é o Quadrature Mirror Filter (QMF) . O filtro QMF é usado numa infinidade de aplicações. Filtros com menos taps são menos eficientes que filtros com um número de taps maior. Veremos as diferenças mais claramente no final do capítulo. TE073 – Processamento Digital de Sinais II

79 Algoritmo de Codificação Subbanda
A entrada da fonte é passada através de um banco de filtros, chamado banco de filtro de análise, que cobre todo o range de frequencias para compor a saída da fonte. A banda de passagem do filtro pode ser sem-sobreposição ou com sobreposição – Fig. 13.8 A redução da frequencia de amostragem também pode ser chamado de “compressão” ou downsampling ou decimação. Isto somente funciona se a frequencia de amostragem se obedece a relação 2 *(f2 – f1). Se a banda de saída do filtro tiver 1/M da banda de entrada do filtro então poderemos decimar a saída por um fator de M. Uma vez que o sinal de entrada foi decimado, a saída é codificada utilizando um dos diversos esquemas de codificação, incluindo ADPCM, PCM ou quantização vetorial. TE073 – Processamento Digital de Sinais II

80 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. A alocação de bits pode ter um impacto significante na qualidade do sinal reconstruído, especialmente quando o conteúdo da informação de diferentes bandas é muito diferente. Se nós usarmos a variância da saída do filtro como medida de informação, e assumirmos que o esquema de compressão é uma quantização escalar, nós podemos chegar a diversos esquemas de alocação de bits (Seção 12.5). Se usarmos esquemas de alocação de bits um pouco mais sofisticados, nós podemos chegar a procedimentos de alocação de bits um pouco melhor (Seção 13.9). TE073 – Processamento Digital de Sinais II

81 TE073 – Processamento Digital de Sinais II
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. Os coeficientes quantizados e codificados são usados para reconstruir a representação do sinal original no decodificador. Primeiro, as amostras codificadas de cada subbanda são decodificadas no receptor. Estes valores decodificados são então upsampled pela inserção de apropriados 0s entre as amostras. Uma vez que o número de amostras/s é alcançado a taxa original, o sinal upsampled é passado pelo banco de filtros de reconstrução. O sistema de subbandas básico é simples. Os 3 maiores componentes do sistema... Próximas seções: esquema breve de design de filtros.... Alguns esquemas de alocação de bits (alguns já vistos na seção 12.5) e outros. Inovação na compressão -> Podemos selecionar diferentes esquemas de compressão para cada entrada (subbanda). Percepção humana de áudio e vídeo é dependente da frequencia. Podemos usar um método onde frequencias mais significantes podem ser codificadas mais eficientemente. TE073 – Processamento Digital de Sinais II

82 Design de Bancos de Filtros
Vamos analisar: downsampling upsamplig síntese de operação Os coeficientes quantizados e codificados são usados para reconstruir a representação do sinal original no decodificador. Primeiro, as amostras codificadas de cada subbanda são decodificadas no receptor. Estes valores decodificados são então upsampled pela inserção de apropriados 0s entre as amostras. Uma vez que o número de amostras/s é alcançado a taxa original, o sinal upsampled é passado pelo banco de filtros de reconstrução. Primeiro: Notação (veja fig. 13.9). A seq. é atrasada e em seguida dividida em 2. ->Downsampling Fig – Upsampling – são adicionados 0s, um sinal é atrasado e em seguida somado e reconstruido. ->Upsampling Neste caso, dividimos a seq. em 2 e não tem muito razão disto, queremos dividir em partes que tem características similares. TE073 – Processamento Digital de Sinais II

83 Design de Bancos de Filtros
TE073 – Processamento Digital de Sinais II

84 Design de Bancos de Filtros
Forma geral -> 2 filtros: 1 PA com freq. corte pi/2, e outro PB c/ freq. de corte em pi/2. Obedecendo o critério de nyquist podemos decimar por um fator de 2 sem perda de informação. Agora vamos ver como o sistema opera no domínio da freq. TE073 – Processamento Digital de Sinais II

85 Dowsampling e Upsampling
TE073 – Processamento Digital de Sinais II

86 Dowsampling e Upsampling
TE073 – Processamento Digital de Sinais II

87 Reconstrução Perfeita Usando Bancos de Filtros de 2 Canais
Suponha que substituimos o filtro passa baixa ideal pelo abaixo. Agora temos valores diferentes de 0 para valores>pi/2 então se diminuirmos por um fator de 2, na reconstrução teremos aliasing. Isto pode acontecer também num filtro PA. No processamento de imagens devemos evitar o aliasing. Devemos impor algumas condições aos filtros H1(z), H2(z), K1(z) e K2(z) -> veja fig Essas condições são chamadas Condições de Perfeita Reconstrução (PR). Para aplicações em compressão de dados eles sofrem uma grande problema pois normalmente os filtros possuem bandas diferentes, a saída da larga banda do filtro pode sofrer severos problemas de aliasing, então criou-se uma categoria de filtros chamada QMF (Quadrature Mirror Filters). TE073 – Processamento Digital de Sinais II

88 Filtros de QMF-PR de dois canais.
O gráfico representa as respostas ao impulso de um filtro P.A. e P.B. em particular, utilizando este método. O autor mostra alguns métodos para reduzir a distorção de fase ou amplietude por um fator J – Johnso para que seja evidado o aliasing. TE073 – Processamento Digital de Sinais II

89 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

90 Banco de Filtros QMF com M-Bandas
Até agora tinhamos visto em dividir a entrada em 2 subbandas, mas pode ser necessário dividir em várias bandas. TE073 – Processamento Digital de Sinais II

91 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

92 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. Até agora tinhamos visto em dividir a entrada em 2 subbandas, mas pode ser necessário dividir em várias bandas. Se HL é um filtro de 4 taps, então o filtro resultante A terá 3 x 4 x 12 = 216 taps (veremos no cap. 13.8). Vantagem de se ter um filtro dessa ordem é que nós podemos escolher os coeficientes com mais libertade. Por outro lado primeiramente nós só tinhamos um filtro de 4 coeficientes. TE073 – Processamento Digital de Sinais II

93 TE073 – Processamento Digital de Sinais II
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: Uma vez separado a saída da fonte nas sequencias constituintes, nós precisamos decidir 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. No último capítulo usamos o procedimento de alocação de bits que usa a variancia dos coeficientes transformados. Nesta seção nós descreveremos a aproximação de alocação de bits que tenta usar tão mais informação sobre as subbandas quanto possível para distribuir os bits. Suponha que R corresponda a taxa média de bits por amostra de todo sistema, e Rk é a taxa média para a subbanda k. Finalmente vamos assumir que sabemos a função de da taxa de distorção para cada subbanda (Cap. 7). Cada valor de Rk é um ponto na curva de distorção. 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

94 TE073 – Processamento Digital de Sinais II
Alocação de Bits Yaacov Shoham e Allen Gersho (1988) 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 Há uma relação entre a taxa de bits por amostra e a distorção. Precisamos de uma relação para encontrarmos o melhor valor da curva “ou não”... Foi então criado a função Jk... Onde Dk é a contribuição da distorção da késima subbanda e (lambda) é o parâmetro de Lagrange (autovalor). Esta é a quantidade que deseja-se diminuir. Se o interesse for minimizar a distorção, podemos atribuir a lambda um pequeno valor. Assim, dado um valor de (lambda) e a função da taxa de distorção, nós podemos imediatamente identificar os valore sde Rk e Dk. Como ...? -> Primeiro a segunda questão - Nós devemos alocar os bits de tal forma que algum incremento em alguma das taxas tenham o mesmo efeito na distorção. Isto acontece quando escolhemos Rk num ponto onde a inclinação da função de taxa de distorção tem o mesmo impacto nas diferentes subbandas, isto é, queremos usar o mesmo (lambda) para cada subbanda. Vamos ver o que acontece se isso nao ocorre: Na figura – um peq. incremento em deltaR em R1 causa uma grande variação na distorção. Dado um conjunto de funções taxa de distorção e um valor de (lambda), nós automaticamente buscamos um conjunto de taxas Rk. Nós podemos computar a média e checar se satisfaz nosso problema do total de bits que dispomos. Se não, nós modificamos o valor de (lambda) até conseguir o conjunto de taxas que satisfaz nosso problema. TE073 – Processamento Digital de Sinais II

95 TE073 – Processamento Digital de Sinais II
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: Quando não temos a curva de taxa de distorção, então encontramos/buscamos a curvas operacionais, ou seja, “operacional” são curvas de performance para um particular tipo de codificadores operando num especificado tipo de fonte. (ver ex. livro). Finalmente, discutiremos sobre a situação onde o numero de amostras em cada subbanda é exatamente a mesma, então a taxa total é simplesmente a soma das taxas individuais. Se isso não for verdade, nós damos peso as taxas das individuais subbandas. De forma geral: TE073 – Processamento Digital de Sinais II

96 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 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. 56kbps e 8kbps são empregados quando é necessário um canal auxiliar (+8kbps e +16kbps) de banda. Note que a freq. de corte é 7kHz e não 8kHz pois eu estou tratando com filtros reais e não ideiais. Embora a freq. de amostragem é 16kamostras/s. TE073 – Processamento Digital de Sinais II

97 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: TE073 – Processamento Digital de Sinais II

98 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. MPEG – Moving Picture Experts Group. Sinal de amplietude alta em uma freq. afeta a audiabilidade do sinal em outra freq.. Em particular, um sinal alto em uma frequencia pode provocar ruído de quantização em outras freq. inaudíveis. TE073 – Processamento Digital de Sinais II

99 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. Nós discutimos como separar uma sequencia em seus componentes. Até agora só usamos exemplos unidimensionais. TE073 – Processamento Digital de Sinais II

100 TE073 – Processamento Digital de Sinais II

101 TE073 – Processamento Digital de Sinais II

102 TE073 – Processamento Digital de Sinais II

103 TE073 – Processamento Digital de Sinais II

104 Codificação baseada em wavelets

105 TE073 – Processamento Digital de Sinais II
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

106 TE073 – Processamento Digital de Sinais II
STFT WAVELETS TE073 – Processamento Digital de Sinais II

107 TE073 – Processamento Digital de Sinais II
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

108 TE073 – Processamento Digital de Sinais II
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

109 Transformada wavelet contínua
s = variável escala = variável translação  Transformada wavelet inversa: TE073 – Processamento Digital de Sinais II

110 TE073 – Processamento Digital de Sinais II
As wavelets são geradas a partir de uma única wavelet básica (wavelet mãe), (t), através de translações e escalamentos: s = fator de escala = fator de translação = 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

111 Propriedades de wavelets
Condição de admissibilidade 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 O valor médio da wavelet no domínio do tempo é zero (tem que ser oscilatória). TE073 – Processamento Digital de Sinais II

112 TE073 – Processamento Digital de Sinais II
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: TE073 – Processamento Digital de Sinais II

113 TE073 – Processamento Digital de Sinais II
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. Selecionaremos s e  da seguinte maneira: Portanto: TE073 – Processamento Digital de Sinais II

114 TE073 – Processamento Digital de Sinais II
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. Os coeficientes wavelet são dados por: A função f(t) pode ser reconstruída a partir dos coeficientes wavelet: TE073 – Processamento Digital de Sinais II

115 TE073 – Processamento Digital de Sinais II
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 passa-faixa. Sabemos que a compressão no tempo equivale ao alargamento do espectro e a um deslocamento para frente. TE073 – Processamento Digital de Sinais II

116 TE073 – Processamento Digital de Sinais II
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

117 TE073 – Processamento Digital de Sinais II
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

118 TE073 – Processamento Digital de Sinais II
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

119 TE073 – Processamento Digital de Sinais II
Podemos considerar a função de escalamento como um sinal com um espectro passa-baixas. Desta forma, podemos decompô-lo em componentes wavelet: 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

120 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

121 TE073 – Processamento Digital de Sinais II
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

122 TE073 – Processamento Digital de Sinais II
Banco de filtros dividindo o espectro de freqüências do sinal TE073 – Processamento Digital de Sinais II

123 TE073 – Processamento Digital de Sinais II
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

124 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

125 TE073 – Processamento Digital de Sinais II
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: (*) Podemos expressar,também, as wavelets nesta escala em termos das funções de escala transladadas da escala anterior: (**) TE073 – Processamento Digital de Sinais II

126 TE073 – Processamento Digital de Sinais II
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: Se utilizarmos uma escala de j-1, temos que adicionar wavelets, a fim de que tenhamos o mesmo nível de detalhes: TE073 – Processamento Digital de Sinais II

127 TE073 – Processamento Digital de Sinais II
Se a função de escalamento e as wavelets forem ortonormais, os coeficientes e são encontrados a partir dos produtos internos: Se substituirmos e 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: TE073 – Processamento Digital de Sinais II

128 TE073 – Processamento Digital de Sinais II
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

129 TE073 – Processamento Digital de Sinais II
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

130 TE073 – Processamento Digital de Sinais II
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

131 TE073 – Processamento Digital de Sinais II
TRANSFORMADA WAVELET DIRETA TE073 – Processamento Digital de Sinais II

132 TE073 – Processamento Digital de Sinais II
TRANSFORMADA WAVELET INVERSA TE073 – Processamento Digital de Sinais II

133 TE073 – Processamento Digital de Sinais II
Exemplo: Utilizando o filtro 4-tap Daubechies (Decomposição de primeiro nível) TE073 – Processamento Digital de Sinais II

134 TE073 – Processamento Digital de Sinais II
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

135 TE073 – Processamento Digital de Sinais II
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

136 TE073 – Processamento Digital de Sinais II
ORGANIZAÇÃO DE MALLAT TE073 – Processamento Digital de Sinais II

137 TE073 – Processamento Digital de Sinais II
EXEMPLO DE ORGANIZAÇÃO DE MALLAT TE073 – Processamento Digital de Sinais II

138 TE073 – Processamento Digital de Sinais II
SISTEMA DE COMPRESSÃO WAVELET BÁSICO TE073 – Processamento Digital de Sinais II

139 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 sub-bandas 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

140 TE073 – Processamento Digital de Sinais II
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

141 TE073 – Processamento Digital de Sinais II

142 TE073 – Processamento Digital de Sinais II
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

143 TE073 – Processamento Digital de Sinais II
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

144 TE073 – Processamento Digital de Sinais II
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


Carregar ppt "Codificação Diferencial"

Apresentações semelhantes


Anúncios Google