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

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

1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais.

Apresentações semelhantes


Apresentação em tema: "1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais."— Transcrição da apresentação:

1 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

2 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II2 1. Introdução - -Importância da codificação nos dias de hoje: - -Internet, TV, telefone, celular, modem,... Compressão de Dados: Arte ou Ciência de representar a informação de uma forma compacta. Identificando e usando estruturas presentes nos dados ou explorando características do usuário final. Objetivo: Transmissão ou Armazenamento eficiente.

3 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II3 Ex.: 3 minutos de música qualidade de CD – estéreo necessita: 10 Fotos 10x15cm com resolução de 600dpi(240dpc) coloridas:

4 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II4 2 horas de vídeo tamanho VGA true color necessita: Ou

5 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II5 A tecnologia que define a capacidade de armazenamento e/ou transmissão está em constante crescimento, porém a necessidade humana cresce 2 vezes mais rápido. Lei de Parkinson: O trabalho se expande de modo a ocupar todo tempo disponível Além do mais, existem limites a serem atingidos. Transmissão: propriedades do canal (banda) e ruído Armazenamento: limites físicos (átomo, elétron, sub-atômicas)

6 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II6 Primeira forma de codificação/compressão de sinais: Código Morse (Samuel Morse, metade século XIX) - -A cada letra é alocado um símbolo (pontos e linhas) cujo comprimento é inversamente proporcional à sua probabilidade de ocorrência. Aumentando assim a velocidade média da transmissão Ex: e: a: – q: – – – j: – – – >Inspirou o código de Huffman Outros: Alfabeto Braille (array 2x3) Logo posso representar 2 6 =64 símbolos, 26 letras Braille 2 usa os 38 restantes para codificar números e palavras freqüentemente usadas.

7 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II7 Usou-se nesses exemplos a estrutura estatística para fazer a compressão. Outros tipos de estruturas: - -Voz: produzida pelo aparelho vocal humano é limitada, logo há uma estrutura que pode ser utilizada. Vocoder LPC (1936/39, Bell Labs.) Ex.:Spelling&Spell (E.T.) Outra forma de compressão explora as limitações do consumidor final do sinal. Ex.: Humanos: não conseguem ouvir altas frequência. que cães podem. Visão humana também é limitada em resolução espacial, temporal e de crominâncias. Se algo não é perceptível para que preservá-lo?

8 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Técnicas de Compressão 2 algoritmos: Codificador/Compressor e Decodificador/Descompressor coder decoder X Xc Y Canal s/ ruído X=Y X Y Codificação sem perdas (lossless compression) Codificação com perdas (lossy compression)

9 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Codificação sem Perdas Não há perda de informação durante o processo de Codificação/Decodificação. Usado em sistemas onde erros não são tolerados: - Compressão de arquivos de texto, executáveis, dados Alteraxão da enforcação não é bolerada - Compressão de imagens médicas Vidas em risco

10 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Codificação com Perdas Há algum tipo de perda de informação durante o processo de Codificação/Decodificação. O dado original dificilmente pode ser recuperado. O ganho de ter distorção no dado recuperado é um ganho de codificação muito maior (maior compressão). Ex.: Voz, não necessita ser exatamente igual, basta ser inteligível. Imagem, basta ter qualidade aceitável Necessitamos de meios para medir o desempenho.

11 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Medidas do desempenho Medidas de desempenho de um algoritmo de codificação: - -Complexidade computacional - -Aplicabilidade em tempo-real (ex:celular, HDTV,etc) - -Medida pelo tempo gasto em uma determinada máquina -Medida pelo número e tipo de operações matemáticas e lógicas (,,,log,raiz, sen, if, etc) e memória requerida.

12 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II12 - -Ganho de codificação (taxa de compressão) Ex.: imagem 256x256 pixels a 8 bits/pixel (gray) necessita bytes comprimido resultou um arquivo de bytes - -Porcentagem do resultante em relação ao original: 75% - -Proporção 4:1 - -Taxa de bits: 2 bits/pixel -Qualidade da Reconstrução: Sem Perdas: Qualidade total Com perdas: Há distorção do sinal recuperado, medida através de EMQ, SNR, PSNR, distâncias: Euclidiana, Mahalanobis, etc.

13 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Modelagem e Codificação Um sistema de codificação pode ser dividido em 2 partes: - -Modelagem - -Codificação Criar um modelo para o dado e uma descrição sobre como o dado real difere do modelo.

14 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II14 Exemplo 1: Considere a seguinte seqüência de números {x 1,x 2,x 3,...}: 9, 11, 11, 11, 14, 13, 15, 17, 16, 17, 20, 21 Para transmitir esta sequência necessitamos representar cada um usando 5 bits por amostra. Totalizando: 12x5=60 bits

15 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II15 Observando sua representação gráfica: Nota-se que podemos modelar estes dados como:

16 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II16 Logo a estrutura dos dados pode ser caracterizada por uma eq. O resíduo do dado real e o modelo pode ser calculado como: Que resulta na sequência: 0, 1, 0, –1, 1, –1, 0, 1, –1, –1, 1, 1 Que pode ser representada com apenas 2 bits / amostra Assim, codificamos o sinal através do armazenamento/transmissão do modelo e do resíduo. Resultado: 3 bits modelo + 12x2 resíduo: total: 27 bits Compressão de 2,22:1 ou 2,25 bits/amostra

17 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II17 Ex. 2: Considere a sequência 27, 28, 29, 28, 26, 27, 29, 28, 30, 32, 34, 36, 38 Não há um modelo simples para representar. Porém observa-se pelo gráfico que os valores seguintes são próximos dos anteriores: Requerendo: 13 x 6 = 78 bits

18 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II18 Enviando o primeiro valor e depois as diferenças entre o atual e o seguinte obtemos a sequência: 27, 1, 1, -1, -2, 1, 2, -1, 2, 2, 2, 2, 2 Que pode ser enviada usando: x 12=41 bits Técnica chamada: Codificação Preditiva

19 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II19 Ex.3: Modelo estatístico Considere a seguinte sequência: a_barayaran_array_ran_far_faar_faaar_away Há 8 diferentes símbolos, que requerem 3 bits p/ representação Resultando em 41x3=123 bits a1 _001 b01100 f0100 n0111 r000 w01101 y0101 Porém, se utilizarmos a tabela: Necessitamos 106 bits p/ representar a sequência, O que gera uma taxa de 2.58 bits/símbolo

20 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II20 Em textos é comum encontrarmos palavras que se repetem com frequência, que podem ser agrupadas em um dicionário e representadas apenas pelo índice neste dicionário. (LZ77, LZW) Decompor os dados em diversas componentes, analisando os modelos para cada componente, é outra alternativa (Subbandas, Transformadas, Wavelets) Padrões internacionais foram criados de modo a permitir que diferentes pudessem implementações de codificadores comunicar- se entre si. JPEG, MPEG, H.261, H.263, etc...

21 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II21 2. Conceitos Matemáticos Importantes - Pré-requisito: Conhecimentos de Probabilidade e Estatística 2.1. Introdução à Teoria da Informação: Claude Elwood Shannon (Bell Labs) criou esta área do conhecimento em 1948 com a publicação de um artigo que define os conceitos mais básicos da Teoria da Informação. C.E.Shannon. A Mathematical Theory of Communication. Bell System Technical Journal. 27: , , 1948

22 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II22 Quantidade de Informação: Indicando que dado um evento A com probabilidade de ocorrência P(A). A quantidade de informação que ele carrega é inversamente proporcional à sua probabilidade: P(A)=1 (evento sempre ocorre) i(A)=0 P(A)=0 (evento nunca ocorre) i(A)=infinito Dado 2 eventos independentes A e B: P(A,B)=P(A).P(B)

23 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II23 A unidade de informação depende da base do log: base 2 bits base e nats base 10 hartleys Ex.1: Lançamento de uma moeda: Logo: Ex.2: Lançamento de uma moeda viciada: Logo: Maior informação

24 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II24 Considere um conjunto de eventos independentes A i que são Resultados de um experimento S A média da quantidade de informação associada com este experimento aleatório é dado por: H é chamada de Entropia associada ao experimento. Shannon demonstrou que se o experimento é uma fonte que gera como saídas símbolos A i a partir de um conjunto A, então a entropia é uma medida da média do número de símbolos binários necessários para codificar a saída desta fonte.

25 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II25 Shannon mostrou, ainda, que o melhor que um sistema de compressão sem perdas pode fazer é codificar a saída de uma fonte com o número de bits médio igual a entropia da fonte. O conjunto de símbolos A é chamado alfabeto da fonte e os símbolos são chamados letras.

26 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II26 Para uma fonte S com alfabeto A ={1,2,...,m} que gera uma sequência {X 1,X 2,...} a entropia é dado por: Onde: e {X 1,X 2,...,X n } é uma sequência de tamanho n gerada pela fonte. Se cada elemento for independente e identicamente distribuído (iid), prova-se:

27 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II27 Logo a expressão para a entropia da fonte torna-se: Entropia de primeira-ordem

28 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II28 Assumindo que a sequência é iid, a entropia da sequência é a dada pela entropia de primeira-ordem: Ex.: Estimando a entropia Considere a sequência: Assumindo que a frequência de ocorrência de cada número é refletido pelo número que o mesmo aparece na sequência, podemos estimar a probabilidade de cada símbolo como:

29 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II29 Entretanto, supondo que exista uma correlação entre uma amostra e a anterior, pode-se remover esta correlação fazendo a diferença entre a atual e a anterior obtendo o sinal residual: – – –1 1 1 Esta sequência tem apenas 2 símbolos com probabilidades: Resultando em uma entropia: Obviamente o receptor deve conhecer o modelo utilizado.

30 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II30 Um modelo pode ser: -Estático: quando não varia com n -Adaptativo: quando variar com n Logo: conhecendo alguma coisa sobre a estrutura dos dados pode ajudar a reduzir a entropia. Na verdade a Entropia não é alterada, pois ela é uma medida da quantidade de informação gerada pela fonte, que não é conhecível. O que se reduz é a nossa estimativa da entropia, uma vez que qualquer pista que se tenha sobre a estrutura dos dados nos ajuda a estimar a real entropia da fonte. n infinito

31 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II31 Ex.2: Considere a sequência: Qual a estrutura? Resultando em 1.5 bits/símbolo de entropia Se considerarmos blocos de 2 teremos apenas 2 blocos: Resultando em uma entropia de 1 bit/símbolo Como temos 20 símbolos, necessitamos de 30 bits p/ representa-la. Como temos 10 símbolos, logo necessitamos 10 bits p/ representa-la.

32 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II32 A teoria diz que podemos sempre extrair a estrutura dos dados considerando blocos de tamanho cada vez maiores. Na prática há limitações. Na prática, podemos tentar superar estas limitações obtendo um modelo preciso para os dados e codificar a fonte com respeito a este modelo.

33 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Modelos Quanto mais o modelo se aproxima do real modelo para a fonte dos dados, melhor será a codificação. Modelos Físicos: Baseados em características físicas da fonte. Difíceis de serem extraídos Ex.: Modelo do trato vocal Modelos Probabilísticos: Baseados na observação das características estatísticas dos dados Pode ser complexo se fontes forem não independentes e formas de correlacionar as amostras forem necessárias

34 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II34 Modelo de Markov Andrei Andrevich Markov ( ) Tipo específico de processo de Markov: Cadeia de Markov a tempo discreto Seja {x n } uma sequência de observações. Esta sequência é dita seguir o modelo de Markov de k-ésima ordem, se: Isto é, o conhecimento das últimos k símbolos é equivalente ao conhecimento de todo o passado do processo. Os valores tirados do conjunto {x n-1,...,x n-k } são os estados do processo Se o alfabeto tem tamanho l, então teremos l k estados.

35 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II35 O modelo mais popularmente usado é o Modelo de Markov de primeira ordem, isto é: O modelo diz que a amostra atual depende de alguma forma apenas da amostra anterior, sem especificar essa dependência.

36 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II36 Ex.: Codificação de imagem binária (preto e branco) (1 bit/pixel) Sabemos que a ocorrência de um pixel branco depende, em algum grau, se o pixel atual é branco ou preto. Então podemos modelar o processo como uma cadeia de Markov Discreta, Definindo: 2 estados S w e S b para designar que o pixel atual é branco ou preto. Probabilidades de transição de estados: P(w|b) P(b|w) Probabilidade de cada estado: P(S b ) e P(S w ) SwSw SbSb P(w|w)P(w|b) P(b|w) P(b|b)

37 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II37 A entropia de um processo de estados finitos é dada pela média da entropia de cada estado:

38 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II38 No exemplo da imagem binária: Onde: Analogamente: Onde:

39 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II39 Numericamente, dados: Calculo da Entropia usando o modelo Probabilístico: Calculo da Entropia usando o modelo de Markov: Logo: Logo modelo de Markov modelou melhor a entropia da fonte

40 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Modelo de fonte composta Em muitas aplicações é difícil usar um único modelo para descrever a fonte. Pode-se usar então a composição de vários modelos de fontes de modo a representar uma fonte mais complexa Fonte 1 Fonte 2 Fonte n

41 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Codificação Alocação de um código binário a um símbolo de um alfabeto. Idéia do código Morse, alocar menores códigos para símbolos mais frequentes, de modo a diminuir a taxa. Problema: Unicidade da decodificação

42 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II42 Ex.: SímboloProbabilidadeCódigo 1Código 2Código 3Código 4 a a a a Comprimento Médio(l)

43 43 Codificação de Huffman

44 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II44 Codificação Huffman O processo de Huffman é baseado em 2 observações: Símbolos que ocorrem mais freqüentemente terão um código menor que os símbolos que ocorrem menos freqüentemente. Os dois símbolos que ocorrem com menor freqüência terão o mesmo tamanho.

45 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II45 Codificação Huffman com Probabilidade da Fonte Conhecida Exemplo 3.2.1: Dado um alfabeto A com as seguintes letras {a 1, a 2, a 3, a 4, a 5 } com a distribuição de probabilidade mostrada na tabela abaixo: LetraProbabilidadeCódigo a2a2 0.4c( a 2 ) a1a1 0.2c( a 1 ) a3a3 0.2c( a 3 ) a4a4 0.1c( a 4 ) a5a5 0.1c( a 5 ) Entropia: bits/símbolo

46 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Huffman coder

47 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II47 Mínima Variância no Código de Huffman LetraProbabilidadeCódigo a2a a1a a3a a4a a5a LetraProbabilidadeCódigo a2a a1a a3a a4a a5a Forma 1 Forma 2 Exemplo: Qual a melhor forma de codificação para se transmitir símbolos/s do alfabeto em um canal de bits/s? Redundância: Diferença entre a entropia e o tamanho médio do código. Se a redundância é zero -> as probabilidades são potência de 2!

48 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II48 Diagrama em Forma de Árvore - Decoder Diagrama em forma de árvore das 2 formas de implementação. Através dele podemos encontrar qual código representa cada símbolo.

49 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II49 Codificação Huffman com Probabilidade da Fonte desconhecida Modo 1: Dois passos A estatística dos dados é coletada num primeiro passo e depois a fonte é codificada. Modo 2: Um passo Faller e Gallagher desenvolveram um algoritmo adaptativo para construir o código de Huffman baseado em estatísticas de símbolos previamente encontrados.

50 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II Aplicações – Compressão de Imagens sem perdas Imagembits/pixelTamanho (bytes) Razão de Compressão Sena Sensin Terra Omaha Compressão usando codificação Huffman sobre os valores do pixel

51 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II51 Compressão de Imagens sem perdas (Continuação) Imagembits/pixelTamanho (bytes) Razão de Compressão Sena Sensin Terra Omaha Imagembits/pixelTamanho (bytes) Razão de Compressão Sena Sensin Terra Omaha Compressão usando codificação Huffman sobre a diferença nos valores de pixel Compressão usando codificação Huffman adaptativa sobre a diferença nos valores de pixel

52 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II52 Aplicação: Compressão de Texto Através da tabela ao lado podemos ver a probabilidade de ocorrência das letras na constituição dos EUA. Note que a probabilidade a letra E é a maior dentre as outras. LetraProb.LetraProb. A N B O C P D Q E R F S G T H U I V J W K X L Y M Z

53 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II53 Aplicação: Compressão de Áudio Nome do Arquivo Tamanho Original (bytes) Entropia (bits) Tamanho estimado do arquivo compactado (bytes) Razão de Compressão Mozart Cohn Mir Nome do Arquivo Tamanho Original (bytes) Entropia (bits) Tamanho estimado do arquivo compactado (bytes) Razão de Compressão Mozart Cohn Mir Utilizando codificação Huffman Utilizando codificação Huffman com diferença entre amostras

54 54 Codificação Aritmética

55 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II55 Por que Codificação Aritmética? Exemplo 4.2.1: Considere uma fonte com alfabeto A={a1, a2, a3) com P(a1)=0.95, P(a2)=0.02 e P(a3)=0.03. Encontre a entropia, o código de huffman e o tamanho médio do código. LetraProbabilidadeCódigo a1a a2a a3a Diferença de bits/símbolo que é 213 % da entropia!!! H=0.335 bits/símbolo Tamanho médio=1.05 bits/símbolo

56 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II56 Codificação Aritmética Idéia Vamos ver que é mais eficiente designar uma palavra de código para uma seqüência em particular do que ter que gerar palavra de código para cada símbolo na seqüências. Um único identificador ou tag é gerada para toda a seqüência a ser codificada. Esta tag corresponde a uma fração binária, que torna-se um código binário para a seqüência. Um único código aritmético pode ser gerado para uma seqüência de tamanho m sem a necessidade de gerar palavras de código para todas as seqüências de tamanho m.

57 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II57 Codificando uma seqüência Para distinguir uma seqüência de símbolos, é necessário criar uma tag com um único identificador. Uma tag para representar uma seqüência de símbolos pode ser qualquer número no intervalo unitário de [0,1). É necessário então uma função que mapeie seqüências neste intervalo unitário. A função chama-se função de distribuição acumulativa (cdf) de variáveis randômicas associadas com a fonte. Esta é a função que será utilizada na codificação aritmética. Exemplo: Lançamento de uma moeda: Podemos designar cara=1 e coroa=0, como também podemos designar cara= e coroa=-190.2).

58 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II58 Formulação Matemática Precisamos mapear os símbolos da fonte ou letras para números. Por conveniência, iremos usar o mapeamento: Onde A={a 1, a 2,..., a m } é o alfabeto para uma fonte discreta e X é a variável randômica. Este mapeamento significa que dada um modelo de probabilidade P para a fonte, nós temos uma função densidade de probabilidade para a variável randômica e a função de densidade acumulativa pode ser definida como: Note que para cada símbolo a i nós teremos um distinto valor de F x (i).

59 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II59 Gerando uma Tag Exemplo 4.3.1: Considere um alfabeto de 3 letras A={a 1, a 2, a 3 } com P(a 1 )=0.7, P(a 2 )=0.1 e P(a 3 )=0.2. Usando a função de densidade acumulativa obtemos F x (1)=0.7, F x (2)=0.8 e F x (3)=1. Isto particiona o intervalo unitário como mostrado na figura abaixo:

60 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II60 Procedimento Matemático para Geração de uma Tag Para entendermos como a geração de uma tag funciona matematicamente, começaremos com uma seqüência de comprimento unitário. Suponha uma alfabeto A= {a 1, a 2, a 3 }. Podemos mapear os símbolos {a i } para números reais {i}. Definimos como: Portanto: Para cada valor de a i, tem um único valor. Esse valor pode ser usado como a tag para a i.

61 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II61 Exemplo 4.3.2: Considere o experimento de jogar um dado. O resultado pode ser mapeado nos números {1, 2,..., 6}. Para um dado não viciado: para k=1,2,...,6 Procedimento Matemático para Geração de uma Tag (continuação) Então, por exemplo, podemos encontrar a tag para X=2 como sendo: E para X=5 como sendo: As tags para os outros valores são: ResultadoTag

62 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II62 Procedimento Matemático para Geração de uma Tag (continuação) Vamos ver agora o procedimento para a geração de uma tag de uma seqüência de comprimento inteiro qualquer. Para uma particular seqüência x i temos: Onde y

63 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II63 Procedimento Matemático para Geração de uma Tag (continuação) Exemplo 4.3.3: Uma derivação do ex , agora a seqüência consiste de 2 jogadas dos dados. O resultado (em ordem) pode ser Utilizando a eq. 4.4, a tag para a seqüência pode ser:

64 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II64 Codificação Aritmética é mais complicada que a Huffman porém permite que sejam codificados seqüências de símbolos. Quão bem um tipo trabalha melhor que o outro depende. Para a codificação aritmética, quanto maior for a sequência, mais o código se aproxima da entropia. Porém devemos escolher o tamanho da seqüência de forma que torne-se viável. A tamanho médio da codificação aritmética e Huffman é dado pelas equações abaixo: onde m é o tamanho da seqüência. Comparação entre a Codificação Huffman e Aritmética No entanto: Sequência de 20 símbolos de um alfabeto de 16 símbolos requer tabela de Huffman de tamanho !

65 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II65 Comparação entre a Codificação Huffman e Aritmética Veja a seguinte equação: - A eq. acima diz qual é a taxa máxima que se pode obter com a codificação Huffman. Se o alfabeto for grande, a probabilidade máxima é baixa e portanto o código de Huffman se comporta melhor que o código aritmético. - Uma grande vantagem da codificação aritmética é a facilidade de se implementar sistemas com múltiplos codificadores aritméticos. – – É muito mais simples adaptar o código aritmético para mudar a estatística. Somente o que precisamos é estimar a probabilidade do alfabeto de entrada. Não há necessidade de preservar a árvore como na codificação Huffman.

66 66 Codificação baseada em dicionário

67 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II67 Técnicas Baseadas em Dicionários Até agora estudamos técnicas que assumem que a fonte gera seqüências de símbolos independentes Porém a maioria das fontes possuem alto grau de correlação entre os símbolos adjacentes. Portanto é comum usar técnicas de descorrelação em um passo anterior (ex. DPCM). A idéia aqui é incorporar a estrutura dos dados ao codificador. Duas metodologias: Estática Adaptativa (dinâmica) Muito utilizados em fontes que repetem um pequeno número de sequências padrões muito frequentemente (ex. Texto, C). Exemplos de utilização: UNIX compress, modem V.42, GIF

68 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II68 Introdução Em muitas aplicações temos padrões que se repetem muito: Dar fundamentos teóricos e práticos de forma profundamente, completamente e razoavelmente condescendente com quem mente. Ou que são muito improváveis: Supercalifragilisticexpialidocious é improvável (2940) porém VictorBenso é muito mais improvável (3). Dividido em duas classes: Quando o padrão existe no dicionário é codificado com uma referência ao dicionário. (padrões que ocorrem muito) Quando não existe no dicionário é codificado com uma forma menos eficiente. (padrões que ocorrem pouco)

69 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II69 Exemplo: Texto de 4 caracteres (26 letras + ; :,. ? !) 32 caracteres (5 bits) 32^4 = combinações diferentes Selecionado as 256 sequências mais comuns (8 bits) O primeiro bit indica se a sequência é conhecida. 4x5=20 bits por sequência sem codificação 9 bits caso a sequência seja conhecida (2,25 bits) 21 bits caso não seja conhecida (5,25 bits) P- probabilidade de encontrar sequência no dicionário R=9.p + 21.(1 - p)= p (taxa de bits média) Será eficiente quando R<20 logo : P 0, Não parece tão grande. Porém: Caso a probabilidade seja igualmente distribuída a probabilidade de 1 padrão no dicionário é: P<0,00025 Conhecer a fonte (estático) ou criar um dicionário específico (dinâmico)

70 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II70 Dicionário estático Fonte previamente conhecida Aplicações específicas: Armazenar receitas: sal açúcar batata xícara colher de chá Mexa constantemente em banho maria até dissolver bem. Se usar este esquema para codificação de um livro de software não ajudaria muito, podendo até causar expansão no volume de dados.

71 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II71 Código de diagrama – Dic. Estático Alfabeto é formado por letras e completado por sequências freqüentes. Ex: para ASCII caracteres poderíamos usar os 95 primeiros números para letras imprimíveis e os outros 161 para sequências, completando 256 Ex: Fonte A = {a,b,c,d,r} 000 – a r 001 – b101 - ab 010 – c110 - ac 011 – d111 – ad abracadabra : Original: 3 bits/símbolo codificado:2,18 bits/símbolo (sem dicionário!)

72 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II72 Dicionário Adaptativo Teoria baseada em dois artigos: Jacob Ziv (LZ77 ou familia LZ1) Abraham Lempel (LZ78 ou família LZ2)

73 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II73 Dicionário Adaptativo – LZ77 Divide as amostras em duas janelas Search buffer (amostra codificada atual) Look-Ahead buffer (amostra a ser codificada) Procura sequências repetidas nas amostras Quando encontra substitui por onde O = offset L = length C = codeword do símbolo Envia caso o símbolo não esteja presente no buffer. (7,4,p)

74 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II74 Dicionário Adaptativo – LZ77 S – tamanho do buffer W - tamanho da janela A – tamanho do alfabeto Numero de bits necessários usando tamanho fixo

75 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II75 Dicionário Adaptativo – LZ77 Variações do LZ77 Podemos usar tamanho de código variável Semi-Adaptativo (2 métodos) PKZip Zip LHarc PNG Gzip ARJ Adição de um bit flag para indicar quando existe o tripple

76 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II76 Aplicações Compressão de arquivos – UNIX Compress LZW Tamanho do dicionário variável Começa com 512 (9 bits) Dobra quando é completado Até Máximo A partir deste momento o dicionário se torna estático Analisa a taxa de compressão, quando cai abaixo de um threshold o processo é reiniciado

77 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II77 Aplicações GIF (Graphics Interchange Format) LZW Semelhante ao UNIX-compress Tamanho máximo de n Símbolos (bitmap) ImagemGIFCod. AritméticaCod. Aritmética da diferença Sena Sensin Earth Omaha

78 Setor de Tecnologia Universidade Federal do Paraná Dep. Engenharia Elétrica TE073 – Processamento Digital de Sinais II78 Aplicações MODEM – V.42 bis Não compactado Compactado – LZW As vezes a fonte não repete dados, expandindo o arquivo já que o número de bits para o dicionário é maior que somente para um símbolo isolado. Testes periódicos para verificar se não está expandindo Tamanho Inicial de 512 máximo símbolos para controle


Carregar ppt "1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais."

Apresentações semelhantes


Anúncios Google