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

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

Embed Size (px)

Citation preview

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

1

Prof. Marcus Vinicius Lamar

Fundamentos de Fundamentos de Codificação de SinaisCodificação de Sinais

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

TE073 – Processamento Digital de Sinais II 2

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 ouexplorando características do usuário final.

Objetivo: Transmissão ou Armazenamento eficiente.

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

TE073 – Processamento Digital de Sinais II 3

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Ex.:3 minutos de música qualidade de CD – estéreo necessita:

Mibytesbytescanaisseg amostrabytes

segamostras 28,30000.752.312244100603

10 Fotos 10x15cm com resolução de 600dpi(240dpc) coloridas:

10 10 240 15 240 3 247,19pixel pixel bytescm cm pixelfotos cm cm Mibytes

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

TE073 – Processamento Digital de Sinais II 4

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

2 horas de vídeo tamanho VGA true color necessita:

Gibytessegsegquadros

quadropixel

pixelbits 32,148606022448064024

Ou

segMibitssegquadros

quadropixel

pixelbits /75,1682448064024

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

TE073 – Processamento Digital de Sinais II 5

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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ídoArmazenamento: limites físicos (átomo, elétron, sub-atômicas)

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

TE073 – Processamento Digital de Sinais II 6

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 26=64 símbolos, 26 letrasBraille 2 usa os 38 restantes para codificar números e palavras freqüentemente

usadas.

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

TE073 – Processamento Digital de Sinais II 7

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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á umaestrutura 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 finaldo sinal.Ex.: Humanos: não conseguem ouvir altas frequência. que cães podem.Visão humana também é limitada em resolução espacial, temporale de crominâncias.

Se algo não é perceptível para que preservá-lo?

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

TE073 – Processamento Digital de Sinais II 8

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

1.1. Técnicas de Compressão

2 algoritmos: Codificador/Compressor e Decodificador/Descompressor

coder decoderX Xc YCanals/ ruído

X=Y

XY

Codificação sem perdas (lossless compression)

Codificação com perdas (lossy compression)

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

TE073 – Processamento Digital de Sinais II 9

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

1.1.1. 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édicasVidas em risco

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

TE073 – Processamento Digital de Sinais II 10

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

1.1.2. 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 serrecuperado.

O ganho de ter distorção no dado recuperado é um ganho decodificaçã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.

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

TE073 – Processamento Digital de Sinais II 11

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

1.1.3. 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.

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

TE073 – Processamento Digital de Sinais II 12

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

-Ganho de codificação (taxa de compressão)

Ex.: imagem 256x256 pixels a 8 bits/pixel (gray) necessita 65536 bytes comprimido resultou um arquivo de 16384 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ésde EMQ, SNR, PSNR, distâncias: Euclidiana, Mahalanobis, etc.

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

TE073 – Processamento Digital de Sinais II 13

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

1.2. 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.

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

TE073 – Processamento Digital de Sinais II 14

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Exemplo 1:

Considere a seguinte seqüência de números {x1,x2,x3,...}:9 , 11 , 11 , 11 , 14 , 13 , 15 , 17 , 16 , 17 , 20 , 21

Para transmitir esta sequência necessitamos representar cada umusando 5 bits por amostra. Totalizando: 12x5=60 bits

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

TE073 – Processamento Digital de Sinais II 15

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

0

5

10

15

20

25

0 2 4 6 8 10 12 14

Observando sua representação gráfica:

Nota-se que podemos modelar estes dados como: 8ˆ nxn

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

TE073 – Processamento Digital de Sinais II 16

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Logo a estrutura dos dados pode ser caracterizada por uma eq.O resíduo do dado real e o modelo pode ser calculado como:

nnn xxe ˆ 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 bitsCompressão de 2,22:1 ou 2,25 bits/amostra

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

TE073 – Processamento Digital de Sinais II 17

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Ex. 2: Considere a sequência27 , 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:

0

5

10

15

20

25

30

35

40

0 2 4 6 8 10 12 14

Requerendo: 13 x 6 = 78 bits

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

TE073 – Processamento Digital de Sinais II 18

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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: 5 + 3 x 12=41 bits

Técnica chamada: Codificação Preditiva

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

TE073 – Processamento Digital de Sinais II 19

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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çãoResultando em 41x3=123 bits

a 1

_ 001

b 01100

f 0100

n 0111

r 000

w 01101

y 0101

Porém, se utilizarmos a tabela:

Necessitamos 106 bits p/ representar asequência,O que gera uma taxa de 2.58 bits/símbolo

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

TE073 – Processamento Digital de Sinais II 20

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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...

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

TE073 – Processamento Digital de Sinais II 21

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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:379-423, 623-656, 1948

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

TE073 – Processamento Digital de Sinais II 22

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Quantidade de Informação: )(log)(

1log)( AP

APAi bb

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)=0P(A)=0 (evento nunca ocorre) i(A)=infinito

Dado 2 eventos independentes A e B: P(A,B)=P(A).P(B)

)()()(

)(log)(log)(

))()((log)()(

1log)(

BiAiABi

BPAPABi

BPAPBPAP

ABi

bb

bb

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

TE073 – Processamento Digital de Sinais II 23

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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

1)()( KPCP

Logo: bitKiCi 1)(log)()( 21

2

Ex.2: Lançamento de uma moeda viciada:8

7)(

8

1)( KPCP

Logo:bitsKi

bitsCi

193.0)(log)(

3)(log)(

87

2

81

2

Maior informação

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

TE073 – Processamento Digital de Sinais II 24

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Considere um conjunto de eventos independentes Ai que sãoResultados de um experimento S iAS

A média da quantidade de informação associada com este experimento aleatório é dado por:

)(log).()().( ibiii APAPAiAPH

H é chamada de Entropia associada ao experimento.

Shannon demonstrou que se o experimento é uma fonte que gera como saídas símbolos Ai 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.

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

TE073 – Processamento Digital de Sinais II 25

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

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

TE073 – Processamento Digital de Sinais II 26

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Para uma fonte S com alfabeto A={1,2,...,m} que gera umasequência {X1,X2,...} a entropia é dado por:

nn

Gn

SH1

lim)(

mi

i

mi

i

mi

innbnnn

n

n

iXiXiXPiXiXiXPG1

1

2

21 1 122112211 ,...,log.,...,...

Onde:

e {X1,X2,...,Xn} é uma sequência de tamanho n gerada pela fonte.

Se cada elemento for independente e identicamente distribuído (iid), prova-se:

mi

ibn iXPiXPnG

1

1 11111 log.

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

TE073 – Processamento Digital de Sinais II 27

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Logo a expressão para a entropia da fonte torna-se:

)(log).()( 11 XPXPsH b Entropia de primeira-ordem

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

TE073 – Processamento Digital de Sinais II 28

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Assumindo que a sequência é iid, a entropia da sequência é adada pela entropia de primeira-ordem:

símbolobitsiPiPHi

/25.3)(log).(10

12

Ex.: Estimando a entropiaConsidere a sequência: 1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10

Assumindo que a frequência de ocorrência de cada número érefletido pelo número que o mesmo aparece na sequência, podemosestimar a probabilidade de cada símbolo como:

16

2)9()8()5()4()3()2(

16

1)10()7()6()1(

PPPPPP

PPPP

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

TE073 – Processamento Digital de Sinais II 29

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Entretanto, supondo que exista uma correlação entre uma amostra e a anterior, pode-se remover esta correlação fazendo adiferença entre a atual e a anterior obtendo o sinal residual:

1 1 1 –1 1 1 1 –1 1 1 1 1 1 –1 1 1

Esta sequência tem apenas 2 símbolos com probabilidades:

16

3)1(

16

13)1( PP

Resultando em uma entropia:

simbolobitsH /69621.016

3log.

16

3

16

13log.

16

1322

Obviamente o receptor deve conhecer o modelo utilizado.

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

TE073 – Processamento Digital de Sinais II 30

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 dadospode 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 ajudaa estimar a real entropia da fonte. ninfinito

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

TE073 – Processamento Digital de Sinais II 31

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Ex.2: Considere a sequência: 1 2 1 2 3 3 3 3 1 2 3 3 3 3 1 2 3 3 1 2

Qual a estrutura?

2

1)3(

4

1)2()1( PPP Resultando em 1.5 bits/símbolo de entropia

Se considerarmos blocos de 2 teremos apenas 2 blocos:

2

1)33(

2

1)21( PP 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.

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

TE073 – Processamento Digital de Sinais II 32

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

A teoria diz que podemos sempre extrair a estrutura dosdados 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 codificara fonte com respeito a este modelo.

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

TE073 – Processamento Digital de Sinais II 33

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

2.3. Modelos

Quanto mais o modelo se aproxima do real modelo paraa 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

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

TE073 – Processamento Digital de Sinais II 34

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

• Modelo de Markov•Andrei Andrevich Markov (1856-1922)•Tipo específico de processo de Markov:

Cadeia de Markov a tempo discreto

Seja {xn} uma sequência de observações.

Esta sequência é dita seguir o modelo de Markov de k-ésima ordem, se:

,....),...|(),...|( 11 knnnknnn xxxPxxxP

Isto é, o conhecimento das últimos k símbolos é equivalente ao conhecimento de todo o passado do processo.

Os valores tirados do conjunto {xn-1,...,xn-k} são os estados do processo

Se o alfabeto tem tamanho l, então teremos lk estados.

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

TE073 – Processamento Digital de Sinais II 35

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

O modelo mais popularmente usado é o Modelo de Markovde primeira ordem, isto é:

...),,|()|( 3211 nnnnnn xxxxPxxP

O modelo diz que a amostra atual depende de alguma formaapenas da amostra anterior, sem especificar essa dependência.

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

TE073 – Processamento Digital de Sinais II 36

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 Sw e Sb 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(Sb) e P(Sw)

Sw Sb

P(w|w) P(w|b)

P(b|w)

P(b|b)

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

TE073 – Processamento Digital de Sinais II 37

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

A entropia de um processo de estados finitos é dada pelamédia da entropia de cada estado:

M

iii SHSPH

1

)().(

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

TE073 – Processamento Digital de Sinais II 38

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

No exemplo da imagem binária:

)|(log).|()|(log).|()( 22 wwPwwPwbPwbPSH w

Onde: )|(1)|( wbPwwP

Analogamente:

)|(log).|()|(log).|()( 22 bbPbbPbwPbwPSH b

Onde: )|(1)|( bwPbbP

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

TE073 – Processamento Digital de Sinais II 39

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Numericamente, dados:31

1)(

31

30)( bw SPSP

3.0)|(7.0)|(01.0)|(99.0)|( bwPbbPwbPwwP

Calculo da Entropia usando o modelo Probabilístico:

simbolobitsH /20559.031

1log.

31

1

31

30log.

31

3022

Calculo da Entropia usando o modelo de Markov:

08079.001.0log01.099.0log99.0)(

88129.07.0log7.03.0log3.0)(

22

22

w

b

SH

SH

Logo:

símbolobitsH /10661.088129.031

108079.0

31

30

Logo modelo de Markov modelou melhor a entropia da fonte

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

TE073 – Processamento Digital de Sinais II 40

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

2.3.4. Modelo de fonte composta

Em muitas aplicações é difícil usar um único modelo paradescrever 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

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

TE073 – Processamento Digital de Sinais II 41

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

2.4. CodificaçãoAlocaçã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ímbolosmais frequentes, de modo a diminuir a taxa.

Problema: Unicidade da decodificação

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

TE073 – Processamento Digital de Sinais II 42

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Ex.:

Símbolo Probabilidade

Código 1

Código 2

Código 3

Código 4

a1 0.5 0 0 0 0

a2 0.25 0 1 10 01

a3 0.125 1 00 110 011

a4 0.125 10 11 111 0111Comprimento Médio(l) 1.125 1.25 1.75 1.875

4

1

)().(i

ii anaPl

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

43

Codificação de HuffmanCodificação de Huffman

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

TE073 – Processamento Digital de Sinais II 44

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

BAZZO
A primeira afirmação é fácil observar, pois se desejamos codificar, àquele símbolo que possui uma maior probabilidade de ocorrer vamos designar um código menor.A segunda afirmação pode ser mostrada como, se o código de a=0001 (penúltimo código) então b=0000 (último código). Mudando apenas o último bit e possuem o mesmo tamanho.
Page 45: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 45

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Codificação Huffman com Probabilidade da Fonte Conhecida

Exemplo 3.2.1: Dado um alfabeto A com as seguintes letras {a1, a2, a3, a4, a5} com a distribuição de probabilidade mostrada na tabela abaixo:

Letra Probabilidade Códigoa2 0.4 c(a2)a1 0.2 c(a1)a3 0.2 c(a3)a4 0.1 c(a4)a5 0.1 c(a5)

Entropia: 2.122 bits/símbolo

BAZZO
A entropia desta fonte é H=2.1222 bits/símbolos (é a taxa mínima que podemos chegar na codificação). Para implementar o código de Huffman, primeiro distribuimos as letras ordenando da maior probabilidade para a menor.Exercício será feito no quadro ou mostrado pelo livro.Após o exercício, encontramos uma entropia de H=2.2 bits/símbolo. Uma medida da eficiência do código é a redundância que é H(obtido)-H(ótimo).Portanto: 2.2-2.122=0.78bits/símbolo.
Page 46: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 46

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

2

1

3

4

5

(0.4)

(0.2)

(0.2)

(0.1)

(0.1)

a

a

a

a

a

2

1

3

4

(0.4)

(0.2)

(0.2)

(0.2)

a

a

a

a

3

2

(0.6)

(0.4)

a

a

2

3

1

(0.4)

(0.4)

(0.2)

a

a

a

1

2

1

3

4

5

(0.4)

(0.2)

(0.2)

(0.1)

(0.1)

a

a

a

a

a

2

1

3

4

(0.4)

(0.2)

(0.2)

(0.2)

a

a

a

a

3

2

(0.6)

(0.4)

a

a

2

3

1

(0.4)

(0.4)

(0.2)

a

a

a

0

1

10

0

01

Huffman coder

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

TE073 – Processamento Digital de Sinais II 47

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Mínima Variância no Código de Huffman

Letra Probabilidade Código

a2 0.4 1

a1 0.2 01

a3 0.2 000

a4 0.1 0010

a5 0.1 0011

Letra Probabilidade Código

a2 0.4 10

a1 0.2 00

a3 0.2 11

a4 0.1 010

a5 0.1 011

Forma 1 Forma 2

Exemplo: Qual a melhor forma de codificação para se transmitir 10.000 símbolos/s do alfabeto em um canal de 22.000 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!

BAZZO
Para os mesmos símbolos do alfabeto podemos obter 2 formas de implementação. Se ao invés de colocarmos a4` como sendo o último da lista colocarmos ele como sendo primeiro e assim com os outros (a3`... etc...) então obteremos o código mostrado na tabela 2 (forma 2).Neste caso há uma menor variância no código. O tamanho médio do código também permanece o mesmo: l=2.2bits/símbolo.A grande vantagem da forma 2 é respondida no exemplo: Se transmitirmos 10.000 a5 na forma 1 teremos um utilização de 40000 bits/segundo e teremos que armazenar em buffer 18.000 bits. Na forma 2 será necessário armazenar apenas 8.000bits. Se desejarmos transmitir 10.000 a1, terei 10.000 bits/s e terei que gerar mais 12.000bits/s para preencher o canal. Na forma 2 terei que completar apenas com 2.000 bits/s
Page 48: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 48

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

BAZZO
Mostrar como encontrar os códigos através do diagrama de árvore.
Page 49: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 49

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

BAZZO
A codificação Huffman requer que a probabilidade da seqüência da fonte seja conhecida. Se não for possível, o código de Huffman procede de 2 formas...Para não funcionar do modo 1 Faller e Gallagher...Para o modo 1: Teoricamente se eu quero codificar o(k+1)-ésimo símbolo usando a estatística dos k símbolos, nós precisamos recomputar o código usando a codificação Huffman cada vez que o símbolo é transmitido. Isto não é praticado pelo elevado custo computacional.
Page 50: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 50

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

3.8.1 - Aplicações – Compressão de Imagens sem perdas

Imagem

bits/pixel Tamanho(bytes)

Razão deCompressão

Sena 7.01 57.504 1.14

Sensin 7.49 61.430 1.07

Terra 4.94 40.534 1.62

Omaha 7.12 58.374 1.12

Compressão usando codificação Huffman sobre os valores do pixel

BAZZO
Nesta seção será descrito algumas aplicações da codificação Huffman.Uma simples aplicação da codificação de Huffman para compressão de imagens poderia ser gerar um código de Huffman para um conjuntos de valores que o pixel pode ter. Para imagens monocromáticas, este conjunto consiste de inteiros de 0 a 255.Utilizando programas em anexo conseguimos o resultado mostrado na tabela deste slide. A imagem consistem de 256x256 pixels com 8bits/pixel gerando portanto arquivos de 65536bytes.Note que a razão de compressão é diferente para diferentes imagens. Isto pode causar problemas quando é necessário saber com antecedência quantos bytes são necessários para representar um particular conjunto de dados.Os resultados da tabela foram decepcionanetes pois conseguimos de 1/2 a 1 bit/pixel somente após compressão. Para algumas aplicações isso é aceitável.
Page 51: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 51

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Compressão de Imagens sem perdas (Continuação)

Imagem

bits/pixel Tamanho(bytes)

Razão deCompressão

Sena 4.02 32.968 1.99

Sensin 4.70 38.541 1.70

Terra 4.13 33.880 1.93

Omaha 6.42 52.643 1.24

Imagem bits/pixel Tamanho(bytes)

Razão deCompressão

Sena 3.93 32.261 2.03

Sensin 4.63 37.896 1.73

Terra 4.82 39.504 1.66

Omaha 6.39 52.321 1.25

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

BAZZO
Veja que utilizando a codificação, levando-se em conta os pixels vizinhos, houve um incremento considerável na razão de compressão.O resultado das tabelas 3.23 (slide anterior) e 3.24 foram obtidas com um sistema de 2 passos, onde a estatística é coletada num primeiro passo e a tabela de huffman é gerada.Ao invés disso, na tabela 3.25 foi usado um codificador adaptadivo de Huffman de 1 passo.Note que há uma pequena diferença na razão de compressão.Adicionalmente, o fato que o codificador de Huffman adaptativo pode ser usado como um codificador de tempo-real faz com que o codificador de Huffman adaptativo torne-se mais atrativo em muitas aplicações. No entanto o codificador adaptativo é mais vulnerável a erros e pode também ser mais difícil de implementar. Finalmente, uma particular aplicação irá determinar qual aproximação é mais adequada.
Page 52: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 52

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

Letra Prob. Letra Prob.

A 0.057305

N 0.056035

B 0.014876

O 0.058215

C 0.025775

P 0.021034

D 0.026811

Q 0.000973

E 0.112578

R 0.048819

F 0.022875

S 0.060289

G 0.009523

T 0.078085

H 0.042915

U 0.018474

I 0.053475

V 0.009882

J 0.002031

W 0.007576

K 0.001016

X 0.002264

L 0.031403

Y 0.011702

M 0.015892

Z 0.001502

BAZZO
Foi codificado o capítulo e obteve-se uma redução de 70.000 bytes para 43.000.Isto poderia ainda ser menor se levassemos em conta a correlação (ex. Huf+fman). Isto é mais complexo e será melhor visto no capítulo 5 e 6.
Page 53: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 53

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Aplicação: Compressão de Áudio

Nome doArquivo

Tamanho Original(bytes)

Entropia(bits)

Tamanho estimado do arquivo

compactado (bytes)

Razão deCompress

ão

Mozart 939.862 12.8 725.420 1.30

Cohn 402.442 13.8 349.300 1.15

Mir 884.020 13.7 759.540 1.16

Nome doArquivo

Tamanho Original(bytes)

Entropia(bits)

Tamanho estimado do arquivo

compactado (bytes)

Razão deCompress

ão

Mozart 939.862 9.7 569.792 1.65

Cohn 402.442 10.4 261.590 1.54

Mir 884.020 10.9 602.240 1.47

3.28 - Utilizando codificação Huffman

3.29 - Utilizando codificação Huffman com diferença entre amostras

BAZZO
O sinal de áudio para cada canal estereo é amostrada em 44.1kHz e cada amostra é representada em 16bits. Se fossemos transmitir todos esses dados!!!Existem outras formas de tratar alfabetos longos (será visto no capítulo 8).
Page 54: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

54

Codificação AritméticaCodificação Aritmética

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

TE073 – Processamento Digital de Sinais II 55

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

Letra Probabilidade

Código

a1 0.95 1

a2 0.02 11

a3 0.03 10Diferença de 0.715 bits/símbolo que é 213 % da

entropia!!!

H=0.335 bits/símbolo

Tamanho médio=1.05 bits/símbolo

BAZZO
Para a codificação Huffman quando o alfabeto é grande e a probabilidade dos símbolos é bem distribuida, o código de Huffman não tornava-se tão ineficiente mas em determinados casos como o mostrado abaixo...
Page 56: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 56

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Codificação AritméticaIdé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.

BAZZO
Na ultima observação, faz referencia ao Huffman. No Huffman.... Para gerar um código Huffman para uma sequencia de tamanho m, onde o código não é uma concatenação de palavras de códigos para um símbolo individual, nós necessitamos obter o código de Huffman para toda a sequencia de comprimento m.
Page 57: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 57

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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=2367.5 e coroa=-190.2).

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

TE073 – Processamento Digital de Sinais II 58

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Formulação MatemáticaPrecisamos mapear os símbolos da fonte ou letras para

números. Por conveniência, iremos usar o mapeamento:

iaX i )( Aai

Onde A={a1, a2,..., am} é 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)()( iaPiXP

e a função de densidade acumulativa pode ser definida como:

i

kx kXPiF

1

)()( Note que para cada símbolo ai nós teremos um distinto valor de Fx(i).

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

TE073 – Processamento Digital de Sinais II 59

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Gerando uma Tag

Exemplo 4.3.1: Considere um alfabeto de 3 letras A={a1, a2, a3} com

P(a1)=0.7, P(a2)=0.1 e P(a3)=0.2. Usando a função de densidade

acumulativa obtemos Fx(1)=0.7, Fx(2)=0.8 e Fx(3)=1. Isto particiona o

intervalo unitário como mostrado na figura abaixo:

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

TE073 – Processamento Digital de Sinais II 60

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia ElétricaProcedimento 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= {a1, a2, a3}. Podemos mapear os

símbolos {ai} para números reais {i}. Definimos )(_

ix aT como:

)(2

1)()(

1

1

_

iXPkXPaTi

kix

)(

2

1)1()(

_

iXPiFaT xix Portanto:

Para cada valor de ai, )(_

ix aT tem um único valor. Esse valor pode ser

usado como a tag para ai.

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

TE073 – Processamento Digital de Sinais II 61

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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:

6

1)( kXP 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:

25.012

1

6

1)2(

2

1)1()2(

_

XPXPTx

E para X=5 como sendo:

75.0)5(2

1)1()5(

_4

1

XPXPTxk

As tags para os outros valores são:

Resultado

Tag

1 0.0833

3 0.4166

4 0.5833

6 0.9166

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

TE073 – Processamento Digital de Sinais II 62

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 xi temos:

)(2

1)()(

_)(

ixy

im

x xPyPxTi

Onde y<x significa que y procede x na ordem, e o sobrescrito

significa o tamanho da seqüência.

[4.4]

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

TE073 – Processamento Digital de Sinais II 63

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Procedimento Matemático para Geração de uma Tag (continuação)Exemplo 4.3.3: Uma derivação do ex. 4.3.2, agora a seqüência

consiste de 2 jogadas dos dados. O resultado (em ordem) pode ser

11 12 13 ... 66. Utilizando a eq. 4.4, a tag para a seqüência pode ser:

)13(2

1)12()11()13(

_

XPXPXPTx

)36/1(2/136/136/1

72/5

MESTRADO-TELECO
Note que para gerar a tag 13 não foi necessário gerar a tag para todas as outras possíveis mensagens.Lembre-se que o intervalo contendo o valor da tag para uma dada sequencia é separado (em partes) do intervalo contendo o valor da tag de todas as outras sequencias. Então, para finalizar, é necessário apenas encontrar o valor superior e inferior e selecionar algum valor naquele intervalo (este será a tag).Como determinar o limite superior e inferior será mostrado em seguida.
Page 64: 1 Prof. Marcus Vinicius Lamar Fundamentos de Codificação de Sinais

TE073 – Processamento Digital de Sinais II 64

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 aCodificação Huffman e Aritmética

mXHlXH

mXHlXH

H

A

1)()(

2)()(

No entanto: Sequência de 20 símbolos de um alfabeto de 16 símbolos requer tabela de Huffman de tamanho 1620!

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

TE073 – Processamento Digital de Sinais II 65

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Comparação entre aCodificação Huffman e Aritmética

Veja a seguinte equação: 086.0 máxmáx pHT

- 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.

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

66

Codificação baseada em Codificação baseada em dicionáriodicionário

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

TE073 – Processamento Digital de Sinais II 67

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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

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

TE073 – Processamento Digital de Sinais II 68

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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)

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

TE073 – Processamento Digital de Sinais II 69

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Exemplo: Texto de 4 caracteres (26 letras + ; : , . ? !)

32 caracteres (5 bits) 32^4 = 1.048.576 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)= 21 - 12p (taxa de bits média) Será eficiente quando R<20 logo : P0,083333 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)

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

TE073 – Processamento Digital de Sinais II 70

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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.

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

TE073 – Processamento Digital de Sinais II 71

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 100 - r 001 – b 101 - ab 010 – c 110 - ac 011 – d 111 – ad

abracadabra : 101 100 110 111 010 101 100 000 Original: 3 bits/símbolo codificado:2,18 bits/símbolo (sem

dicionário!)

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

TE073 – Processamento Digital de Sinais II 72

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Dicionário Adaptativo Teoria baseada em dois artigos:

Jacob Ziv (LZ77 ou familia LZ1) Abraham Lempel (LZ78 ou família LZ2)

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

TE073 – Processamento Digital de Sinais II 73

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 <O,L,C> onde

O = offset L = length C = codeword do símbolo Envia <0,0,C> caso o símbolo não esteja presente

no buffer.

(7,4,p)

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

TE073 – Processamento Digital de Sinais II 74

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Dicionário Adaptativo – LZ77 S – tamanho do buffer W - tamanho da janela A – tamanho do alfabeto

Numero de bits necessários usando tamanho fixo

][log][log][log 222 AWS

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

TE073 – Processamento Digital de Sinais II 75

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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

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

TE073 – Processamento Digital de Sinais II 76

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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

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

TE073 – Processamento Digital de Sinais II 77

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

Aplicações GIF (Graphics Interchange Format)

LZW Semelhante ao UNIX-compress Tamanho máximo de 4096 2n Símbolos (bitmap)

Imagem GIF Cod. Aritmética Cod. Aritmética da diferença

Sena 51.085 53.431 31.847

Sensin 60.649 58.306 37.126

Earth 34.276 38.248 32.137

Omaha 61.580 56.061 51.393

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

TE073 – Processamento Digital de Sinais II 78

Setor de TecnologiaUniversidade Federal do ParanáDep. Engenharia Elétrica

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 2048 3 símbolos para controle