ITI Slides

3.001 visualizações

Publicada em

Slides da disciplina Introdução a Teoria da Informação do curso de Ciência da Computação da UFPB.

Publicada em: Educação
  • Seja o primeiro a comentar

ITI Slides

  1. 1. Introdução à Teoria da Informação / Compressão de Dados Prof. Leonardo Vidal Batista DI/PPGI/PPGEM leonardo@di.ufpb.br leovidal@terra.com.br http://www.di.ufpb.br/~leonardo
  2. 2. O Que É “Teoria da Informação”? Claude Shannon, 1948, “A Mathematical Theory of Communications” Área que estuda as comunicações Alicerçada na conceituação formal de “informação” e capacidade de transmissão de informação pelos canais de comunicação Compressão de Dados: aplicação de Teoria da Informação.
  3. 3. Sistemas de comunicação Mensagem Fonte M De Transmissor Sinal Informação s Canal Ruído Mensagem Sinal Destinatário ~ ~s M Da Receptor Informação
  4. 4. Questões Pode-se garantir comunicação perfeita? Pode-se garantir comunicação confiável? Comunicação equivale a quot;transmissão de dadosquot;?
  5. 5. Respostas de Shannon: Não Sim. Pode-se projetar e construir sistemas de comunicação tão confiáveis quanto se deseje: 1 bit errado em 1 bilhão, 1 em 1 trilhão,... Não. Comunicação envolve transmissão de informação. Compressores sem perdas reduzem a quantidade de dados em uma mensagem, preservando a informação
  6. 6. O Que É “Informação”? Informação (ou entropia) é uma medida da incerteza ou surpresa relacionada a um evento O processo de comunicação é inerentemente probabilístico Informação é relativa!
  7. 7. Informação e Incerteza Tarefa para a próxima aula: decorar letra por letra o livro “Os Sertões” Na próxima aula, farei apenas a leitura de “Os Sertões” Quem virá? Transmitirei informação? Ocorrerá comunicação?
  8. 8. Teoria da Informação e Física A equação de entropia (informação) de Shannon é análoga à entropia da termodinâmica Era Newton: matéria, energia e informação Era Einstein: energia e informação Era Shannon: informação
  9. 9. Relatividade da informação 010101010101... Pedro Álvares Cabra... Marcela amou-me durante quinze meses e onze ... 14159265... 27033903618375114...
  10. 10. Entropia e Compressão A entropia é um limite para o grau de compressão máxima que se pode obter Entropia elevada => grau de compressão reduzido Entropia reduzida => grau de compressão elevado Procurar construir modelos que reduzam a entropia!
  11. 11. Modelagem e Compressão Um bom modelo prevê com precisão os símbolos sucessivos da mensagem Portanto: Bom modelo => surpresa reduzida => entropia reduzida => compressão elevada Compressão elevada=> entropia reduzida => surpresa reduzida => Bom modelo Bom modelo equivale a boa compressão Grau de compressão é uma medida da qualidade de um modelo
  12. 12. Entropia da Língua Inglesa Qual é a entropia da Língua Inglesa? O que é a língua inglesa??? Qual é a entropia da língua inglesa nos livros de Swift?
  13. 13. Entropia da Língua Inglesa Qual é a entropia da língua inglesa nos livros de Swift? Por um especialista em Literatura Inglesa? Por um engenheiro inglês? Por um modelo computacional? Por uma criança recém-alfabetizada em inglês?
  14. 14. Entropia da Língua Inglesa Shannon, 1952: entropia da quot;língua inglesaquot; escrita, por americanos adultos: aprox. 1 bit/símbolo Vários estudos posteriores confirmaram esta estimativa Melhores modelos computacionais: aprox. 1,2 bit/símbolo Quando um modelo computacional tornar- se tão bom quanto um humano, o computador terá quot;entendidoquot; os textos??
  15. 15. Entropia da Língua Inglesa Aplicações para um bom modelo computacional para um idioma: OCR; conversão de voz para texto; síntese de voz; atribuição de autoria etc Dificuldade: Pedro Álvares Cabra...
  16. 16. Entropia de outras mensagens Língua portuguesa DNA IBOVESPA Dados sísmicos Etc
  17. 17. Compressão para Não Comprimir! Compressores modernos possuem excelente capacidade de modelagem Os modelos podem ser utilizados para vários outros fins que não compressão: reconhecimento de locutor, face, microorganismos, textura, atribuição de autoria, etc.
  18. 18. Compressão para Comprimir! Compressão é tecnologia-chave em: DVDs TV digital MP3 Câmeras fotográficas e de vídeo Redes de comunicação Etc
  19. 19. Fonte de Informação Fonte de informação: elemento de um processo de comunicação que produz informação Fonte S: produz mensagens que são seqüências de elementos selecionados de um conjunto A = {a0, a1, a2,...} A: alfabeto da fonte ai: símbolo ou letra
  20. 20. Fontes decimais e binárias Fonte de dígitos decimais: A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Mensagem M = 590126885122380546 Fonte binária: A = {0, 1}
  21. 21. Representação da Informação Semáforo de três cores: informação de interesse são cores Representação da informação: Texto em inglês: {R, Y, G}; {Red, Yellow, Green} Texto em português: {Vermelho, Amarelo, Verde} Computador: {00, 01, 10} Outras aplicações: {0, 1, 2}; sons; sinais elétricos
  22. 22. Codificação Codificação: representação da informação Palavra-código: representação de um símbolo ou seqüência de símbolos Código de fonte: conjunto de palavras-código capaz de representar qualquer mensagem emitida pela fonte
  23. 23. Codificação Alguns códigos para fonte de dígitos decimais Decimal ASCII Binário 1 Binário 2 Binário 3 Octal Alfabético 0 3016 00002 002 1111112 008 a 1 3116 00012 012 1111102 018 f 2 3216 00102 102 1111012 028 k 3 3316 00112 11002 1111002 038 m 4 3416 01002 11012 11102 048 n 5 3516 01012 11102 11012 058 b 6 3616 01102 1111002 11002 068 z 7 3716 01112 1111012 102 078 x 8 3816 10002 1111102 012 108 p 9 3916 10012 1111112 002 118 s
  24. 24. Codificador e Decodificador Codificador: elemento (ser humano, circuito, programa, etc) que representa as mensagens geradas pela fonte empregando um código específico. Decodificador: elemento responsável por desfazer o mapeamento realizado por um codificador.
  25. 25. Códigos de Propósito Específico Códigos de propósito específico: Códigos de transmissão (Morse, códigos corretores de erros, etc) Códigos de criptografia Códigos de compressão: representar a informação da forma mais eficiente possível Códigos binários -> usar o menor número de bits possível
  26. 26. Códigos de Compressão Em termos de compressão, qual é o melhor código binário? Decimal ASCII Binário 1 Binário 2 Binário 3 Octal Alfabético 0 3016 00002 002 1111112 008 a 1 3116 00012 012 1111102 018 f 2 3216 00102 102 1111012 028 k 3 3316 00112 11002 1111002 038 m 4 3416 01002 11012 11102 048 n 5 3516 01012 11102 11012 058 b 6 3616 01102 1111002 11002 068 z 7 3716 01112 1111012 102 078 x 8 3816 10002 1111102 012 108 p 9 3916 10012 1111112 002 118 s
  27. 27. Códigos de Compressão Resposta: Depende da freqüência relativa (probabilidade) com que a fonte produz cada símbolo.
  28. 28. Exemplo: Codificação/Decodificação Codificar e decodificar a mensagem RGBRBRR usando RGB1, RGB2, RGB3 Símbolo Código RGB1 Código RGB2 Código RGB3 Cor vermelha 00 0 0 Cor verde 01 1 10 Cor azul 10 00 11 RGB1 Codificar: 00011000100000 (14 bits) Decodificar: RGBRBRR
  29. 29. Exemplo: Codificação/Decodificação Codificar e decodificar a mensagem RGBRBRR usando RGB1, RGB2, RGB3 Símbolo Código RGB1 Código RGB2 Código RGB3 Cor vermelha 00 0 0 Cor verde 01 1 10 Cor azul 10 00 11 RGB2 Codificar: 010000000 (9 bits) Decodificar: RG ?
  30. 30. Exemplo: Codificação/Decodificação Codificar e decodificar a mensagem RGBRBRR usando RGB1, RGB2, RGB3 Símbolo Código RGB1 Código RGB2 Código RGB3 Cor vermelha 00 0 0 Cor verde 01 1 10 Cor azul 10 00 11 RGB3: Codificar: 0101101100 (10 bits) Decodificar: RGBRBRR
  31. 31. Códigos de Prefixo RGB1 e RGB3 são códigos de prefixo: nenhuma palavra-código é prefixo de outra. Códigos unicamente decodificáveis. RGB2 não é um código de prefixo.
  32. 32. Exemplo: comprimento médio Codificar a mensagem W usando Bin2 W= 10245001021100070306 00900024502330040500 60078600007688000785 Alfabeto: {0, 1, ..., 9} N = 60 símbolos Ni: No. de ocorrências de ai N0 = 29; N1 = 4; N2 = 4; N3 = 3; N4 = 3; N5 = 4; N6 = 4; N7 = 4; N8 = 4; N9 = 1
  33. 33. Exemplo: comprimento médio Binário 2 002 012 102 bi: Número de bits da palavra- 11002 código associada a ai: 11012 b0 = 2; b1 = 2; b2 = 2; b3 = 4; 11102 b4 = 4; b5 = 4; b6 = 6; b7 = 6; 1111002 b8 = 6; b9 = 6 1111012 1111102 1111112
  34. 34. Exemplo: comprimento médio Total de bits: l = 29x2 + 4x2 + 4x2 + 3x4 + 3x4 + 4x4 + 4x6+ 4x6+ 4x6+ 1x6 = 192 bits Número médio de bits por símbolo: l = (29x2 + 4x2 + 4x2 + 3x4 + 3x4 + 4x4 + 4x6+ 4x6+ 4x6+ 1x6)/60 = (29/60)x2 + (4/60)x2 + (4/60)x2 + (3/60)x4 + (3/60)x4 + (4/60)x4 + (4/60)x6+ (4/60)x6+ (4/60)x6+ (1/60)x6 = 3,2 bits/símbolo.
  35. 35. Exemplo: comprimento médio Para alfabeto A = {a0, a1, ... aM-1} Pi = estimativa da probabilidade de ai = freqüência relativa de ai = Ni/N l = P0 b0+ P1 b1+… PM-1 bM-1 M −1 l= ∑ Pibi i =0
  36. 36. Exemplo: comprimento médio Codificar a mensagem W usando Bin3 b0 = 6; b1 = 6; b2 = 6; b3 = 6; b4 = 4; b5 = 4; b6 = 4; b7 = 2; b8 = 2; b9 = l = 29x6 + 4x6 + 4x6 + 3x6 + 3x4 + 4x4 + 4x4 + 4x2 + 4x2 + 2x1)/60 = 5,03 bits/símbolo Para compressão, qual é o melhor código, BIN2 ou BIN3? Há algum código de prefixo melhor?
  37. 37. Problema da Codificação para Compressão Dado um modelo probabilístico para a fonte, encontrar um código unicamente decodificável ótimo, ou seja, que represente a saída da fonte l com o menor no. possível de bits. Encontrar bi de forma a minimizar M −1 l= ∑ Pibi i =0
  38. 38. Informação Solução: bi = Informação Ii associada ao símbolo ai: 1 bi = Ii = log Pi Se log2 -> informação em bits Se log3 -> informação em trits Se ln -> informação em nats Se log10 -> informação em dígitos decimais
  39. 39. Entropia M −1 1 H = lmin = ∑ Pi log 2 i =0 Pi Unidade (para base 2): bits/símbolo Entropia da fonte ou da mensagem? Shannon, 1948: entropia e compressão Huffman, 1952: codificação ótima de comprimento inteiro Pesquisadores da IBM, 1978: codificação ótima
  40. 40. Exemplo: Informação e entropia W =1 0 2 4 5 0 0 1 0 2 1 1 0 0 0 7 0 3 0 6 00900024502330040500 60078600007688000785 P0 = 29/60 => I0 = log2 60/29 =1,05 bit P1 = P2 = P5 = P6 = P7 = P8 = 4/60 => I1=I2=I5=I6=I7=I8= log2 60/4 =3,91 bits P3= P4 = 3/60 => I3=I4= log2 60/3=4,32 bits P9 = 1/60 => I9 = log2 60 = 5,91 bits H = (29/60)*1,05 +(4/60)*3,91 +…+(1/60)*5,91 = 2,602 bits/símbolo
  41. 41. Exemplo: Informação e entropia Comparar H = 2,602 bits/símbolo com codificação por Bin2 e Bin3 (3,2 bits/símbolo e 5,03 bits/símbolo) Código eficiente? Comparar sempre com a entropia!
  42. 42. Código de Hufmann Código de comprimento inteiro ótimo Para mensagem dos exemplos anteriores: Símbolo Código de Comprimento Informação Huffman Palavra-código 0 1 1 1,05 1 0111 4 3,91 2 0110 4 3,91 5 0101 4 3,91 6 0100 4 3,91 7 0011 4 3,91 8 0010 4 3,91 3 0001 4 4,32 4 00001 5 4,32 9 00000 5 5,91
  43. 43. Código de Hufmann lHuff = 29x1 + 4x4 + 4x4 + …+ 1x5 = 157 bits Compr. Médio = (29x1 + 4x4 + 4x4 + …+ 1x5)/60 = 2,62 bits/símbolo. Entropia H = 2,60 Eficiência? Código binário de comprimento fixo de 4 bits/símbolo: RC = 60x4/(60x2,62) = 1,53 (1,53:1)
  44. 44. Código de Hufmann Outras árvores de Huffman? Como quebrar empates? Que informação passar ao decodificador para permitir decodificação? Tabela de códigos OU a árvore OU contadores Quando o Huffman se torna ineficiente?
  45. 45. Código de Hufmann Quando o Huffman se torna ineficiente? Pi >> 0,5 Redundância do código de Huffman: R Huff = l Huff − H Pode-se mostrar que R Huff ≤ 1 Ou seja: l Huff ≤ H + 1
  46. 46. Código de Hufmann - Exemplo A = {a, b, c, d, r} P(a) = 0,99 => I(a) = 0,0145 P(b)=P(c)=P(d)=0,003 => I(b) = I(c) = I(d) = 8,3817 P(r) = 0,001 => I(r) = 9,9668 lHuff =0,99x1 + 3x 0,003x3 + 0,001x3 = 1,02 bits/símbolo RC= 3/1,02 = 2,94:1 H = 0,0998 bits/símbolo.
  47. 47. Código de Hufmann - Exemplo R Huff = 0,9202 bit/símbolo l Huff / H = 10,22 RCmax= 3/0,0998 = 30,06:1 RCmax = 10,22 x RCHuff O que fazer para aplicar o código de Huffman eficientemente nestes casos? RLE, por exemplo. Huffman para alfabetos binários?
  48. 48. Código de Hufmann Programação = estrutura de dados + algoritmos Compressão = modelagem + codificação Equiprobablidade <=> Entropia máxima: H = log2 |A|. Se |A| = 2k, H = k. P(ai) = 1, para algum i <=> Entropia mínima: H = 0.
  49. 49. Modelos probabilísticos Estáticos: probabilidades estáticas durante todo o processo de codificação Semiadaptativos: probabilidades estimadas para cada mensagem a ser codificada, e mantidas estáticas durante a codificação Adaptativos: probabilidades atualizadas durante a codificação
  50. 50. Modelos probabilísticos Não-contextuais: símbolos independentes, probabilidades não condicionais. Contextuais: símbolos dependentes, probabilidades condicionais. Modelos contextuais estáticos, não- contextuais semi-adaptativos, etc. Modelagem + Codificação: Huffman não- contextual semi-adaptativo, aritmético contextual adaptativo, etc
  51. 51. Modelos probabilísticos Família LZ (contextuais adaptativos) PPMs (contextuais adaptativos) Equivalência entre compressores baseados em dicionários e compressores estatísticos
  52. 52. Modelos probabilísticos Exemplo: Huffman adaptativo de decremento para abracadabra. Exemplo: Huffman adaptativo de incremento para abracadabra. O que ocorre se codificarmos por Huffman uma mensagem já codificada por Huffman?
  53. 53. Modelos Contextuais Fonte S com A = {ao, a1,..., aM-1} Elemento x gerado por S é uma variável aleatória Modelos não-contextuais: P(x = ai) Modelos contextuais: P(xn=ai|xn-1,xn-2,...) Modelo de Markov de k-ésima ordem: P(xn=ai | xn-1, xn-2,..., xn-k) Modelos de memória finita
  54. 54. Modelos Contextuais xk = xn-1, xn-2,..., xn-k Define-se informação condicional associada a ai, dado um contexto xk como: k 1 I(a i | x ) = log 2 P( x n = a i | x k )
  55. 55. Modelos Contextuais Exemplo: Huffman semi-adaptativo contextual de ordem 1 Mensagem: abracadabra
  56. 56. Modelos Contextuais Solução: O símbolo a ocorre 5 vezes na mensagem, mas apenas em 4 é contexto de outro. Quatro ocorrências do contexto a: em 2 o símbolo subseqüente é b em 1 o símbolo subseqüente é c em 1 o símbolo subseqüente é d Portanto, P(b | a) = 2/4 -> I(b | a) = 1 P(c | a) = 1/4 -> I(c | a) = 2 P(d | a) = 1/4 -> I(d | a) = 2
  57. 57. Modelos Contextuais Solução (cont.) Árvore de Huffman (. | a) Por um raciocínio análogo: P(r | b) = 1 -> I(r | b) = 0 P(a | c) = 1 -> I(a | c) = 0 P(a | d) = 1 -> I(a | d) = 0 P(a | r) = 1 -> I(a | r) = 0
  58. 58. Modelos Contextuais Primeiro símbolo: não codificar. Comprimento médio atingido = (1 + 1 + 1 + 2 + 2) / 11 = 0,6363 bits/símbolo. O Huffman atingiu desempenho ótimo porque as probabilidades eram todas potências de 2. O uso de modelos contextuais tende a produzir muitos valores de informação condicional bem inferiores a 1, mas não nulos e o Huffman se torna ineficiente
  59. 59. Modelos Contextuais Exemplo: Huffman semi-adaptativo contextual de ordem 1 Mensagem: abracadabraabraabarcabraba
  60. 60. Modelos Contextuais Exemplo: A = {0,1}, Mensagem: 101010101010101010101010101010101 0101010101010101010101010 Modelo não-contextual: H=1 bit/símbolo (1 bit/bit!) Modelo contextual: H aprox. 0 bit/símbolo
  61. 61. Modelos Contextuais Se uma fonte gera símbolos que dependem dos valores presentes em um contexto de tamanho L, um modelo de Markov de ordem k, com k <= L, é melhor que um modelo de ordem k-1 e, conseqüentemente, conduz a uma redução na entropia. Seria natural empregar modelos de ordem muito elevada para obter boas compressões, mas alguns problemas práticos limitam a aplicabilidade da idéia.
  62. 62. Modelos Contextuais Com um modelo de ordem k e um alfabeto de tamanho M, tem-se Mk possíveis contextos, ou seja, o número de contextos diferentes cresce exponencialmente com a ordem do modelo. Quantos contadores devem ser passados ao decodificador utilizando um modelo semi-adaptativo?
  63. 63. Modelos Contextuais Se M = 256 e k = 5: aproximadamente um trilhão de contextos diversos. Problemas práticos: memória, tempo de processamento, estimativas de probabilidades, transmissão para o decodificador das probabilidades condicionais. Usar modelos adaptativos elimina apenas o último dos problemas citados! Na prática, para M = 256, k = 0, 1,..., 10
  64. 64. Modelos Contextuais Exemplo: Huffman adaptativo contextual de ordem 1. Mensagem: abracadabra
  65. 65. Entropia de Modelo De Markov de Ordem 1 Fonte com alfabeto A = {a0, a1,...aM-1}. Bigrama: par ordenado de símbolos consecutivos gerados pela fonte. Bigrama (ai, aj) é diferente do bigrama (aj ai), para i diferente de j. Experimento probabilístico: observar um bigrama da mensagem. Eventos de interesse: Ai: ai é o 1o. elemento do bigrama Bi: ai é o 2o. elemento do bigrama
  66. 66. Entropia de Modelo De Markov de Ordem 1 Probabilidade de ocorrência simultânea dos eventos Ai e Bj: P(Ai, Bj) = P(Bj, Ai) Probabilidade de ocorrência de Bj dada a ocorrência de Ai: P( B j | Ai ) ≠ P( Ai | B j )
  67. 67. Entropia de Modelo De Markov de Ordem 1 Regra da probabilidade condicional: P ( Ai , B j ) P ( B j | Ai ) = P ( Ai )
  68. 68. Exemplo Mensagem W = abracadabraabraabarcabraba. A = {a, b, c, d, r}. Evento B2: símbolo c na 2a. posição de um bigrama Evento A0: símbolo a na primeira posição de um bigrama
  69. 69. Exemplo (Cont) W: 26 símbolos, 25 bigramas (ab, br, ra, ...ba). A0 ocorre 11 vezes na mensagem B2 ocorre 2 vezes. Estimando-se as probabilidades pela freqüência relativa, tem-se:
  70. 70. Exemplo (Cont) A0 ocorreu 11 vezes em 25 bigramas: P(A0)=11/25 B2 ocorreu 2 vezes em 25 bigramas: P(B2)=2/25 A0 ocorreu 11 vezes; destas, em uma B2 ocorreu: P(B2 | A0) = 1/11 B2 ocorreu 2 vezes; destas, em uma A0 ocorreu: P(A0 | B2) = ½ A0 e B2 ocorreram 1 vez nos 25 bigramas observados: P(A0, B2) = P(B2, A0) = 1/25
  71. 71. Exemplo (Cont) Observe que: P( A0 , B2 ) 1 / 25 1 P( B2 | A0 ) = = = P( A0 ) 11 / 25 11 P( A0 , B2 ) 1 / 25 1 P( A0 | B2 ) = = = P ( B2 ) 2 / 25 2
  72. 72. Exemplo (Cont) Distribuição de probabilidades conjuntas: 1 o símbolo 2 o símbolo do bigrama do bigrama a b c d r a 2/25 6/25 1/25 1/25 1/25 b 2/25 0 0 0 4/25 c 2/25 0 0 0 0 d 1/25 0 0 0 0 r 4/25 0 1/25 0 0 Observe que o somatório de todas as células da tabela resulta em 1
  73. 73. Exemplo (Cont) Distribuição de probabilidades condicionais P(Bj | Ai) 1o símbolo 2o símbolo do bigrama do bigrama a b c d r a 2/11 6/11 1/11 1/11 1/11 b 2/6 0 0 0 4/6 c 2/2 0 0 0 0 d 1/1 0 0 0 0 r 4/5 0 1/5 0 0 O somatório de todas as células de cada linha da tabela resulta em 1
  74. 74. Entropia de Modelo De Markov de Ordem 1 Markov de ordem 1=>entropia de ordem 2 I(Bj|Ai)=log2[1/P(Bj|Ai)]: informação associada a aj dado o contexto ai Nij: no. De ocorrências de aj no contexto ai = no. ocorrências de aiaj Nb: total de bigramas em uma mensagem 1 H2 = − × [ N 00 log 2 P( B0 | A0 ) + N 01 log 2 P ( B1 | A0 ) + Nb N 02 log 2 P( B2 | A0 ) + ... + N M −1, M −1 log 2 P ( BM −1 | AM −1 )]
  75. 75. Entropia de Modelo De Markov de Ordem 1 Estimando probabilidades por freqüência relativa: H 2 = −[ P ( A0 , B0 ) log 2 P ( B0 | A0 ) + P( A0 , B1 ) log 2 P( B1 | A0 ) + ... + P( AM −1 , BM −1 ) log 2 P( BM −1 | AM −1 )] M −1 M −1 H2 = − ∑ ∑ P( Ai , B j ) log 2 P( B j | Ai ) i =0 j =0
  76. 76. Entropia de Ordem N (Markov de Ordem N-1) Contexto vi: N-1 símbolos consecutivos Alfabeto A = {a0, a1,...aM-1}: C = MN-1 contextos distintos v0 = a0 a0 a0...a0 v1 = a0 a0 a0... a1 ... vC-1 = aM-1 aM-1 aM-1... aM-1
  77. 77. Entropia de Ordem N (Markov de Ordem N-1) Eventos Ai: o contexto vi ocorre no início de um N-grama Bi: o símbolo ai ocorre na última posição de um N-grama Valem as mesmas equações de probabilidades condicionais anteriormente apresentadas.
  78. 78. Entropia de Ordem N (Markov de Ordem N-1) Distribuição de probabilidades conjuntas: Contexto símbolo a0 a1 ... aM-1 v0 v1 … vC-1 Observe que o somatório de todas as células da tabela resulta em 1
  79. 79. Entropia de Ordem N (Markov de Ordem N-1) Distribuição de probabilidades condicionais P(Bj | Ai) Contexto símbolo a0 a1 ... aM-1 v0 v1 … vC-1 O somatório de todas as células de cada linha da tabela resulta em 1
  80. 80. Entropia de Ordem N (Markov de Ordem N-1) Entropia de ordem N: C −1 M −1 HN = − ∑ ∑ P( Ai , B j ) log 2 P( B j | Ai ) i =0 j =0 Entropia (fonte estacionária): H = lim H N N →∞
  81. 81. PPM Prediction by Partial Matching Cleary, J.G. and Witten, I.H. (1984) “Data compression using adaptive coding and partial string matching,quot; IEEE Transactions on Communications,32(4), 396-402
  82. 82. Codificação Baseada em Dicionário Ziv e Lempel, 1976: Complexidade de sistemas dinâmicos Ziv e Lempel, 1977: LZ77 Ziv e Lempel, 1978: LZ78 Welch, 1984: LZW LZA, LZM, LZFA, ...
  83. 83. Codificação Baseada em Dicionário Ziv e Lempel, 1976: Complexidade de sistemas dinâmicos Ziv e Lempel, 1977: LZ77 Ziv e Lempel, 1978: LZ78 D-1 LZ77 0 L-1 (Elementos previamente codificados) (Próx. Elem.) dicionário área de previsão
  84. 84. Exemplo LZW Exemplo:W = abracadabra; alfabeto = {a, b, c, d, r} Codificação Dicionário inicial: 0a 1b 2c 3d 4r
  85. 85. Exemplo LZW (Cont.) Frase ‘a’ está no dicionário Frase ‘ab’ não está no dicionário Mensagem codificada = 0 (última frase encontrada no dicionário) Dicionário: 0a 5 ab 1b 2c 3d 4r
  86. 86. Exemplo LZW (Cont.) ‘b’ está no dicionário; ‘br’ não está no dicionário Mensagem codificada = 01 Dicionário: 0a 5 ab 1b 6 br 2c 3d 4r
  87. 87. Exemplo LZW (Cont.) ‘r’ está no dicionário; ‘ra’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ Dicionário: 0a 5 ab 1b 6 br 2c 7 ra 3d 4r
  88. 88. Exemplo LZW (Cont.) ‘a’ está no dicionário; ‘ac’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ Dicionário: 0a 5 ab 1b 6 br 2c 7 ra 3d 8 ac 4r
  89. 89. Exemplo LZW (Cont.) ‘c’ está no dicionário; ‘ca’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ Dicionário: 0a 5 ab 1b 6 br 2c 7 ra 3d 8 ac 4r 9 ca
  90. 90. Exemplo LZW (Cont.) ‘a’ está no dicionário; ‘ad’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ Dicionário: 0a 5 ab 10 ad 1b 6 br 2c 7 ra 3d 8 ac 4r 9 ca
  91. 91. Exemplo LZW (Cont.) ‘d’ está no dicionário; ‘da’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ Dicionário: 0a 5 ab 10 ad 1b 6 br 11 da 2c 7 ra 3d 8 ac 4r 9 ca
  92. 92. Exemplo LZW (Cont.) ‘a’ está no dicionário; ‘ab’ está no dicionário; ‘abr’ não está no dicionário Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ Dicionário: 0a 5 ab 10 ad 1b 6 br 11 da 2c 7 ra 12 abr 3d 8 ac 4r 9 ca
  93. 93. Exemplo LZW (Cont.) ‘r’ está no dicionário; ‘ra’ está no dicionário; EOF Mensagem codificada = ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ Dicionário: 0a 5 ab 10 ad 1b 6 br 11 da 2c 7 ra 12 abr 3d 8 ac 13 raEOF 4r 9 ca
  94. 94. Exemplo LZW (Cont.) Decodificação W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ Dicionário inicial: 0a 1b 2c 3d 4r
  95. 95. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a Dicionário : 0a 5 a? 1b 2c 3d 4r
  96. 96. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b Dicionário : 0a 5 ab 1b 6 b? 2c 3d 4r
  97. 97. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r Dicionário : 0a 5 ab 1b 6 br 2c 7 r? 3d 4r
  98. 98. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a Dicionário : 0a 5 ab 1b 6 br 2c 7 ra 3d 8 a? 4r
  99. 99. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a c Dicionário : 0a 5 ab 1b 6 br 2c 7 ra 3d 8 ac 4r 9 c?
  100. 100. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a c a Dicionário : 0a 5 ab 10 a? 1b 6 br 2c 7 ra 3d 8 ac 4r 9 ca
  101. 101. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a c a d Dicionário : 0a 5 ab 10 ad 1b 6 br 11 d? 2c 7 ra 3d 8 ac 4r 9 ca
  102. 102. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a c a d ab Dicionário : 0a 5 ab 10 ad 1b 6 br 11 da 2c 7 ra 12 ab? 3d 8 ac 4r 9 ca
  103. 103. Exemplo LZW (Cont.) W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’ W: a b r a c a d ab ra Dicionário : 0a 5 ab 10 ad 1b 6 br 11 da 2c 7 ra 12 abr 3d 8 ac 13 raEOF 4r 9 ca
  104. 104. LZW - Exemplo 2 Exemplo:W = aabababaaa; alfabeto = {a, b} Codificação Dicionário inicial: 0a 1b
  105. 105. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘a’ está no dicionário; ‘aa’ não está no dicionário Mensagem codificada: 0 Dicionário: 0a 1b 2 aa
  106. 106. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘a’ está no dicionário; ‘ab’ não está no dicionário Mensagem codificada: ‘0’ ‘0’ Dicionário: 0a 1b 2 aa 3 ab
  107. 107. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘b’ está no dicionário; ‘ba’ não está no dicionário Mensagem codificada: ‘0’ ‘0’ ‘1’ Dicionário: 0a 4 ba 1b 2 aa 3 ab
  108. 108. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘a’ está no dicionário; ‘ab’ está no dicionário; ‘aba’ não está no dicionário Mensagem codificada: ‘0’ ‘0’ ‘1’ ‘3’ Dicionário: 0a 4 ba 1b 5 aba 2 aa 3 ab
  109. 109. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘a’ está no dic.; ‘ab’ está no dic.; ‘aba’ está no dic.; ‘abaa’ não está no dic. Mensagem codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ Dicionário: 0a 4 ba 1b 5 aba 2 aa 6 abaa 3 ab
  110. 110. LZW - Exemplo 2 (Cont.) W = aabababaaa ‘a’ está no dic.; ‘aa’ está no dic.; aaEOF não está no dic. Mensagem codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ Dicionário: 0a 4 ba 1b 5 aba 2 aa 6 abaa 3 ab 7 aaEOF
  111. 111. LZW - Exemplo 2 (Cont.) Decodificação W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ Dicionário inicial: 0a 1b
  112. 112. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a Dicionário: 0a 1b 2 a?
  113. 113. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a a Dicionário: 0a 1b 2 aa 3 a?
  114. 114. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a a b Dicionário: 0a 4 b? 1b 2 aa 3 ab
  115. 115. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a a b ab Dicionário: 0a 4 ba 1b 5 ab? 2 aa 3 ab
  116. 116. LZW - Exemplo 2 (Cont.) Mas 1o símbolo da frase em 5 é o último símbolo da última frase (5): W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a a b ab aba Dicionário: 0a 4 ba 1b 5 aba 2 aa 6 aba? 3 ab
  117. 117. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a a b ab aba aa Dicionário: 0a 4 ba 1b 5 aba 2 aa 6 abaa 3 ab 7 aaEOF
  118. 118. LZW - Observações Dicionário de tamanho limitado a P frases Número de bits, b, dos índices das frases pode crescer conforme necessário, a medida em que novas frases são inseridas No LZW padrão, índices de tamanho fixo b = log2P
  119. 119. LZW - Observações O que fazer quando o dicionário enche? Eliminar frases LRU Eliminar frases menos utilizadas Manter dicionário estático Reiniciar dicionário Monitorar compressão e, caso se detecte redução na RC, reiniciar dicionário.
  120. 120. Burrows-Wheeler Transform (BWT) Transformada reversível criada por Wheeler in 1983, mas não publicada Aplicação para compressão: Michael Burrows and David Wheeler, 1994 BWT não comprime, mas torna a seqüência mais apropriada à compressão por métodos simples
  121. 121. Burrows-Wheeler Transform (BWT) Mensagem com N símbolos Passos: 1. Listar as N mensagens diferentes obtidas por rotações (deslocamentos cíclicos) da mensagem original 2. Ordenar lexicograficamente as N mensagens obtidas com as rotações e indexar a lista ordenada 3. Reter o índice da mensagem original e o último símbolos das mensagens da lista ordenada, preservando a ordem
  122. 122. BWT Exemplo: W = quequalquasequando (N = 18); Alfabeto = {a, d, e, l, n, o, q, s, u} Rotações: quequalquasequando oquequalquasequand doquequalquasequan ...
  123. 123. BWT – Rotações quequalquasequando oquequalquasequand doquequalquasequan ndoquequalquasequa andoquequalquasequ uandoquequalquaseq quandoquequalquase equandoquequalquas sequandoquequalqua asequandoquequalqu uasequandoquequalq quasequandoquequal lquasequandoquequa alquasequandoquequ ualquasequandoqueq qualquasequandoque equalquasequandoqu uequalquasequandoq
  124. 124. BWT – Ordenação e Indexação 0 alquasequandoquequ 1 andoquequalquasequ 2 asequandoquequalqu 3 doquequalquasequan 4 equalquasequandoqu 5 equandoquequalquas 6 lquasequandoquequa 7 ndoquequalquasequa 8 oquequalquasequand 9 qualquasequandoque 10 quandoquequalquase 11 quasequandoquequal 12 quequalquasequando 13 sequandoquequalqua 14 ualquasequandoqueq 15 uandoquequalquaseq 16 uasequandoquequalq 17 uequalquasequandoq
  125. 125. BWT – Passo 3 Mensagem transformada: 12 uuunusaadeeloaqqqq
  126. 126. BWT – Passo 3 A BWT informa explicitamente o último símbolo de cada rotação na lista ordenada Lista ordenada -> sabe-se o símbolo que se segue a cada um destes símbolos finais, na mensagem original
  127. 127. BWT – Passo 3 O 1o símbolo da 1a rotação (‘a’) encontra-se na última posição da rotação de índice 6, e é o símbolo que se segue ao último símbolo da 1a rotação (‘u’) O 1o símbolo da 2a rotação (‘a’) encontra-se na última posição da rotação de índice 7, e é o símbolo que se segue ao último símbolo da 2a rotação (‘u’)
  128. 128. BWT – Passo 3 O 1o símbolo da 3a rotação (‘a’) encontra-se na última posição da rotação de índice 13, e é o símbolo que se segue ao último símbolo da 3a rotação (‘u’) O 1o símbolo da 4a rotação (‘d’) encontra-se na última posição da rotação de índice 8, e é o símbolo que se segue ao último símbolo da 4a rotação (‘n’) ...
  129. 129. BWT – Passo 3 Localizam-se os símbolos seguintes observando-se apenas a BWT: uuunusaadeeloaqqqq
  130. 130. BWT – Passo 3 Índice do símbolo na BWT->índice do símbolo seguinte na mensagem original: uu u nu s a a d e e l o a q q q q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6 7 13 8 9 10 11 3 12 14 15 16 17 5 0 1 2 4
  131. 131. BWT – Decodificação Índice da mensagem original informa a posição, na BWT, do último símbolo da mensagem Mapeamento informa o índice do símbolo seguinte, ou seja, do 1o símbolo da mensagem Seguindo-se o mapeamento, encontram-se todos os símbolos seguintes
  132. 132. BWT – Decodificação uu u nu s a a d e e l o a q q q q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6 7 13 8 9 10 11 3 12 14 15 16 17 5 0 1 2 4 12 -> 17 (q) -> 4 (u) -> 9(e) -> 14(q) -> 0(u) -> 6(a) -> 11(l) -> 16(q) -> 2(u) -> 13(a) -> 5(s) -> 10(e) -> 15(q) -> 1(u) -> 7(a) -> 3(n) -> 8(d) -> 12(o)
  133. 133. Compressão com BWT Passos: 1. BWT 2. Move-To-Front 3. Codificação de entropia (aritmético)
  134. 134. Move-To-Front (MTF) Inicialmente, símbolos são ordenados e indexados (índices 0, 1, ...) Na codificação, cada símbolo da mensagem é substituído pelo seu índice, e então passa a ocupar a 1a posição na lista
  135. 135. MTF - exemplo W = quequalquasequando BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo a d e l n o q s u Codificação do 1o símbolo: 8
  136. 136. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo u a d e l n o q s Codificação do 2o símbolo: 0 Codificação do 3o símbolo: 0 Codificação do 4o símbolo: 5
  137. 137. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo n u a d e l o q s Codificação do 5o símbolo: 1
  138. 138. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo u n a d e l o q s Codificação do 6o símbolo: 8
  139. 139. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo s u n a d e l o q Codificação do 7o símbolo: 3
  140. 140. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo a s u n d e l o q Codificação do 8o símbolo: 0 Codificação do 9o símbolo: 4
  141. 141. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo d a s u n e l o q Codificação do 10o símbolo: 5
  142. 142. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo e d a s u n l o q Codificação do 11o símbolo: 0 Codificação do 12o símbolo: 6
  143. 143. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo l e d a s u n o q Codificação do 13o símbolo: 7
  144. 144. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo o l e d a s u n q Codificação do 14o símbolo: 4
  145. 145. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo a o l e d s u n q Codificação do 15o símbolo: 8
  146. 146. MTF - exemplo BWT(W) = uuunusaadeeloaqqqq Índice 0 1 2 3 4 5 6 7 8 Símbolo q a o l e d s u n Codificação do 16o símbolo: 0 Codificação do 17o símbolo: 0 Codificação do 18o símbolo: 0
  147. 147. MTF - exemplo MTF(BWT(W)) = 8 0 0 5 1 8 3 0 4 5 0 6 748000 No exemplo, Huffman semi-adaptativo não- contextual produz 53 bits sobre W, e 48 bits sobre MTF(BWT(W)) O ganho de compressão tende a aumentar com o aumento de W Modelos não-contextuais são eficientes com a BWT, que já explora informação contextual
  148. 148. Modelos Determinísticos Modelos estatísticos contextuais: número de contextos diferentes cresce exponencialmente com o aumento do tamanho do contexto Alternativa: modelos determinísticos de predição Para sinais físicos: predição polinomial de ordem K
  149. 149. Predição Polinomial de Ordem K Predição do próximo símbolo baseada nos últimos K símbolos Mensagem: W = w0w1...wi-1 Predição para o próximo símbolo: vi Valor real do próximo símbolo: wi Erro de predição: ei = wi – vi
  150. 150. Predição Polinomial de Ordem K K vi ei 1 wi-1 wi-wi-1 2 2wi-1- wi-2 wi-2wi-1+wi-2 3 3wi-1-3wi-2+ wi-3 wi-3wi-1+3wi-2- wi-3
  151. 151. Predição Polinomial de Ordem K Exemplo (mensagem com 32 símbolos) W=76544434321000012321 123555666777 N0= N1= N2= ... = N7 -> H = 3 bits/símbolo = comprimento médio do código de Huffman
  152. 152. Predição Polinomial de Ordem K Exemplo (mensagem com 32 símbolos) K = 1 -> V = 7 -1 -1 -1 0 0 -1 1 -1 -1 -1 –1 0 0 0 1 1 1 -1 -1 0 1 1 2 0 0 1 00100 N0=12; N-1=10; N1=8; N2=1; N7=1 H = 1,87 bits/símbolo Compr. médio código de Huffman = 2 bits/símbolo Neste caso, não codificar 1o símbolo aumenta RC
  153. 153. Predição Polinomial de Ordem K Exemplo (mensagem com 32 símbolos) K = 2 -> V = 7 6 0 0 1 0 -1 2 -2 0 0 0 1 0 0 1 0 0 -2 0 1 1 0 1 -2 0 1 -1 0 1 -1 0 N0=15; N1=8; N-1=3; N-2=3; N2=1; N6=1; N7=1 -> H = 1, 76 bits/símbolo Compr. médio código de Huffman = 2,16 bits/símbolo
  154. 154. Predição Polinomial de Ordem K Exemplo (mensagem com 32 símbolos) K = 3 -> V = 7 6 5 4 3 5 ... H=? Compr. médio código de Huffman = ?
  155. 155. Compressão com perdas Em alguns casos, distorções introduzidas pela compressão são aceitáveis Ex: vídeo, imagens, som, outros sinais Imagens e sinais críticos (e. g. utilizados no diagnóstico médico): distorções devem ser cuidadosamente controladas Eficácia medida pelo compromisso entre RC e distorção Sub-amostragem ou quantização (redução de alfabeto)
  156. 156. Compressão com perdas Compressor/descompressor genérico x (n bits) ~ x Canal Compressor Descompressor x x (m bits)
  157. 157. Amostragem e Quantização Sinal analógico Sinal digital ... Amplitude 2q q 0 -q -2q ... Erros de quantização 0 T 2T 3T ... Tempo ou espaço
  158. 158. Quantização Vetorial (QV) Complexidade computacional extremamente elevada para compressão Complexidade computacional extremamente reduzida para descompressão Shannon, 1948: codificar elementos agrupados em vetores é mais eficiente (do ponto de vista de compressão) que codificá-los isoladamente.
  159. 159. Quantização Vetorial (QV) Mensagens são particionadas em blocos ou vetores com L elementos consecutivos K vetores (vetores-código) são selecionados, dentre aqueles que podem ser gerados pela fonte, e armazenados em uma tabela (codebook) disponível para o compressor e para o descompressor Espera-se que os vetores-código representem adequadamente a fonte
  160. 160. Quantização Vetorial (QV) Alfabeto original com cardinalidade M: V = ML vetores diferentes M = 8 e L = 3 => V = 83 = 512 M = 16 e L = 4 => V = 64K M = 256 e L = 4 => V = 4G
  161. 161. Quantização Vetorial (QV) ck, k = 0, 1,..., K-1: k-ésimo vetor- código do codebook ckj, j = 0, 1,..., L-1: j-ésimo elemento de ck vi, i = 0, 1,...: i-ésimo vetor na mensagem produzida pela fonte vij, j = 0, 1,..., L-1: j-ésimo elemento de vi.
  162. 162. Quantização Vetorial (QV) Um codebook exemplo k ck0 ck1 … ck,L-1 0 100 110 … 99 1 45 225 … 230 … … … … … K 2 0 … 3
  163. 163. Quantização Vetorial (QV) Para codificar vi, o QV calcula a distorção D(vi, ck), k = 0, 1, ..., K-1. Erro médio quadrático: L −1 1 D( v i , c k ) = ∑ (vij − c kj ) 2 L j =0 Se D(vi, ck) é mínima para k = k’, índice k’ é anexado à mensagem comprimida. Na descompressão, k’ é substituído pelo vetor-código ck’
  164. 164. Quantização Vetorial (QV) Se os índices são codificados com log2(K) bits, a taxa resultante é de log2(K)/L bits/elemento. Alfabeto original com cardinalidade M: RC = log2(ML)/log2(K) Ex: M = 256, L = 4, K = 128 RC = log2(2564)/log2(128) = 4,57
  165. 165. Quantização Vetorial (QV) Teoricamente, quanto maior L, mais eficiente a quantização. Dimensão dos vetores é limitada na prática. Desempenho depende ainda do tamanho do codebook, da escolha dos vetores-código e da medida de distorção. Como selecionar vetores-código?
  166. 166. Quantização Vetorial (QV) O codebook é gerado por treinamento. No treinamento, uma quantidade elevada de mensagens é examinada. Vetores mais representativos são selecionados como vetores-código. O algoritmo LBG é um método de treinamento popular, mas uma grande variedade de técnicas tem sido apresentada, incluindo redes neurais Codebooks estáticos x dinâmicos
  167. 167. Quantização Escalar Como QV, opera por redução de alfabeto Símbolos tratados individualmente Quantização uniforme: divisão seguida por arredondamento para inteiro: x = x // q ˆ Valor “dequantizado”: ~ = qx x ˆ q: tamanho do passo de quantização
  168. 168. Quantização Escalar Ex: Alfabeto A = {0, 1, ..., 255} q = 2 -> Q2 = {0, 1, ... 128} -> D2 = {0, 2, 4, ... 256} q = 3 -> Q3 = {0, 1, ... 85} -> D3 = {0, 3, 6, ... 255} q = 4 -> Q4 = {0, 1, ... 64} -> D4 = {0, 4, 8, ... 256} E max = ⎣q / 2⎦
  169. 169. Paradigma Transformada, Quantização, Codificação (TQC) Transformadas: Cosseno Discreta (DCT) e wavelets, principalmente Quantização: normalmente, escalar Comparado com QV, TQC apresenta baixo custo computacional e compromisso taxa- distorção semelhante Utilizado nos padrões JPEG, JPEG2000, MPEG2, MPEG4, MPEG7, MP3...

×