SlideShare une entreprise Scribd logo
1  sur  169
Télécharger pour lire hors ligne
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
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.
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
Questões

 Pode-se garantir comunicação
 perfeita?
 Pode-se garantir comunicação
 confiável?
 Comunicação equivale a
 quot;transmissão de dadosquot;?
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
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!
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?
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
Relatividade da informação

 010101010101...

 Pedro Álvares Cabra...
 Marcela amou-me durante quinze
meses e onze ...
 14159265...

 27033903618375114...
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!
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
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?
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?
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??
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...
Entropia de outras
mensagens
Língua portuguesa
DNA
IBOVESPA
Dados sísmicos
Etc
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.
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
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
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}
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
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
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
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.
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
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
Códigos de Compressão
Resposta: Depende da freqüência relativa
(probabilidade) com que a fonte produz
cada símbolo.
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
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 ?
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
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.
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
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
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.
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
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?
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
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
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
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
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!
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
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)
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?
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
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.
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?
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.
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
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
Modelos probabilísticos
Família LZ (contextuais adaptativos)
PPMs (contextuais adaptativos)
Equivalência entre compressores
baseados em dicionários e compressores
estatísticos
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?
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
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 )
Modelos Contextuais

Exemplo: Huffman semi-adaptativo
contextual de ordem 1
Mensagem: abracadabra
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
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
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
Modelos Contextuais
Exemplo: Huffman semi-adaptativo
contextual de ordem 1
Mensagem:
abracadabraabraabarcabraba
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
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.
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?
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
Modelos Contextuais
Exemplo:
Huffman adaptativo contextual de ordem
1.
Mensagem: abracadabra
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
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 )
Entropia de Modelo De
Markov de Ordem 1

Regra da probabilidade condicional:



                       P ( Ai , B j )
    P ( B j | Ai ) =
                         P ( Ai )
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
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:
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
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
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
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
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 )]
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
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
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.
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
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
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 →∞
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
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, ...
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
Exemplo LZW
Exemplo:W = abracadabra; alfabeto =
{a, b, c, d, r}
Codificação
Dicionário inicial:
0a
1b
2c
3d
4r
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
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
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
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
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
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
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
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
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
Exemplo LZW (Cont.)
Decodificação
W codificada: ‘0’ ‘1’ ‘4’ ‘0’ ‘2’ ‘0’ ‘3’ ‘5’ ‘7’
Dicionário inicial:
0a
1b
2c
3d
4r
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
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
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
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
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?
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
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
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
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
LZW - Exemplo 2
Exemplo:W = aabababaaa; alfabeto =
{a, b}
Codificação
Dicionário inicial:
0a
1b
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
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
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
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
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
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
LZW - Exemplo 2 (Cont.)
Decodificação
W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’
Dicionário inicial:
0a
1b
LZW - Exemplo 2 (Cont.)
W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’
W:             a
Dicionário:
0a
1b
2 a?
LZW - Exemplo 2 (Cont.)
W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’
W:             a a
Dicionário:
0a
1b
2 aa
3 a?
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
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
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
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
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
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.
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
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
BWT
  Exemplo:
  W = quequalquasequando (N = 18);
  Alfabeto = {a, d, e, l, n, o, q, s, u}
  Rotações:
quequalquasequando
oquequalquasequand
doquequalquasequan
...
BWT – Rotações
        quequalquasequando
        oquequalquasequand
        doquequalquasequan
        ndoquequalquasequa
        andoquequalquasequ
        uandoquequalquaseq
        quandoquequalquase
        equandoquequalquas
        sequandoquequalqua
        asequandoquequalqu
        uasequandoquequalq
        quasequandoquequal
        lquasequandoquequa
        alquasequandoquequ
        ualquasequandoqueq
        qualquasequandoque
        equalquasequandoqu
        uequalquasequandoq
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
BWT – Passo 3
Mensagem transformada:

      12 uuunusaadeeloaqqqq
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
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’)
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’)
...
BWT – Passo 3
Localizam-se os símbolos seguintes
observando-se apenas a BWT:



  uuunusaadeeloaqqqq
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
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
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)
Compressão com BWT

 Passos:
1.   BWT
2.   Move-To-Front
3.   Codificação de entropia (aritmético)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 = ?
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)
Compressão com perdas

 Compressor/descompressor genérico
     x
 (n bits)                                ~
                                         x

                        Canal
Compressor                          Descompressor
                x               x
             (m bits)
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
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.
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
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
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.
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
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’
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
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?
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
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
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⎦
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...

Contenu connexe

Tendances

IMS Naming Identity
IMS Naming IdentityIMS Naming Identity
IMS Naming IdentityKent Loh
 
BSS Call setup Flow Diagrams
BSS Call setup Flow DiagramsBSS Call setup Flow Diagrams
BSS Call setup Flow Diagramscraig682
 
Near Field Communications (NFC) Technology & Measurements
Near Field Communications (NFC) Technology & MeasurementsNear Field Communications (NFC) Technology & Measurements
Near Field Communications (NFC) Technology & MeasurementsRohde & Schwarz North America
 
205583569 gb-interface-detailed-planning-final
205583569 gb-interface-detailed-planning-final205583569 gb-interface-detailed-planning-final
205583569 gb-interface-detailed-planning-finalOlivier Rostaing
 
F01 beam forming_srs
F01 beam forming_srsF01 beam forming_srs
F01 beam forming_srsLuciano Motta
 
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdmaMery Muklis
 
AIRCOM LTE Webinar 4 - LTE Coverage
AIRCOM LTE Webinar 4 - LTE CoverageAIRCOM LTE Webinar 4 - LTE Coverage
AIRCOM LTE Webinar 4 - LTE CoverageAIRCOM International
 
Voice Over Internet Protocol (VOIP)
Voice Over Internet Protocol (VOIP)Voice Over Internet Protocol (VOIP)
Voice Over Internet Protocol (VOIP)Aakura Pyakura
 
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기Chris Ohk
 
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบ
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบสอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบ
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบdarknetv
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
How will sidelink bring a new level of 5G versatility.pdf
How will sidelink bring a new level of 5G versatility.pdfHow will sidelink bring a new level of 5G versatility.pdf
How will sidelink bring a new level of 5G versatility.pdfQualcomm Research
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기YEONG-CHEON YOU
 
Binary Pass-Band Modulation Techniques
Binary Pass-Band Modulation TechniquesBinary Pass-Band Modulation Techniques
Binary Pass-Band Modulation TechniquesSugeng Widodo
 
Secure Optical LAN: TechNet Augusta 2015
Secure Optical LAN: TechNet Augusta 2015Secure Optical LAN: TechNet Augusta 2015
Secure Optical LAN: TechNet Augusta 2015AFCEA International
 
umts point-systemes_radio
umts point-systemes_radioumts point-systemes_radio
umts point-systemes_radioMohammed ARBANE
 
EEL316: CDMA with DSSS
EEL316: CDMA with DSSSEEL316: CDMA with DSSS
EEL316: CDMA with DSSSUmang Gupta
 
Chap 2. lte channel structure .eng
Chap 2. lte  channel structure .engChap 2. lte  channel structure .eng
Chap 2. lte channel structure .engsivakumar D
 

Tendances (20)

IMS Naming Identity
IMS Naming IdentityIMS Naming Identity
IMS Naming Identity
 
BSS Call setup Flow Diagrams
BSS Call setup Flow DiagramsBSS Call setup Flow Diagrams
BSS Call setup Flow Diagrams
 
Near field communication
Near field communicationNear field communication
Near field communication
 
Near Field Communications (NFC) Technology & Measurements
Near Field Communications (NFC) Technology & MeasurementsNear Field Communications (NFC) Technology & Measurements
Near Field Communications (NFC) Technology & Measurements
 
Gb over ip
Gb over ipGb over ip
Gb over ip
 
205583569 gb-interface-detailed-planning-final
205583569 gb-interface-detailed-planning-final205583569 gb-interface-detailed-planning-final
205583569 gb-interface-detailed-planning-final
 
F01 beam forming_srs
F01 beam forming_srsF01 beam forming_srs
F01 beam forming_srs
 
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma
163027027 location-routing-service-and-utran-area-planning-aspects-in-wcdma
 
AIRCOM LTE Webinar 4 - LTE Coverage
AIRCOM LTE Webinar 4 - LTE CoverageAIRCOM LTE Webinar 4 - LTE Coverage
AIRCOM LTE Webinar 4 - LTE Coverage
 
Voice Over Internet Protocol (VOIP)
Voice Over Internet Protocol (VOIP)Voice Over Internet Protocol (VOIP)
Voice Over Internet Protocol (VOIP)
 
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
 
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบ
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบสอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบ
สอนประกอบโดรน[Part 1] - Introduction to โดรนประกอบ
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
How will sidelink bring a new level of 5G versatility.pdf
How will sidelink bring a new level of 5G versatility.pdfHow will sidelink bring a new level of 5G versatility.pdf
How will sidelink bring a new level of 5G versatility.pdf
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
Binary Pass-Band Modulation Techniques
Binary Pass-Band Modulation TechniquesBinary Pass-Band Modulation Techniques
Binary Pass-Band Modulation Techniques
 
Secure Optical LAN: TechNet Augusta 2015
Secure Optical LAN: TechNet Augusta 2015Secure Optical LAN: TechNet Augusta 2015
Secure Optical LAN: TechNet Augusta 2015
 
umts point-systemes_radio
umts point-systemes_radioumts point-systemes_radio
umts point-systemes_radio
 
EEL316: CDMA with DSSS
EEL316: CDMA with DSSSEEL316: CDMA with DSSS
EEL316: CDMA with DSSS
 
Chap 2. lte channel structure .eng
Chap 2. lte  channel structure .engChap 2. lte  channel structure .eng
Chap 2. lte channel structure .eng
 

En vedette

Ibet tgd - 2012 teoria da linguagem ii - dra clarice araújo
Ibet   tgd - 2012 teoria da linguagem ii - dra clarice araújoIbet   tgd - 2012 teoria da linguagem ii - dra clarice araújo
Ibet tgd - 2012 teoria da linguagem ii - dra clarice araújoTacio Lacerda Gama
 
Compressão de dados
Compressão de dadosCompressão de dados
Compressão de dadosmidleofmidle
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasPedro De Almeida
 
Imagens sobre a teoria da informação
Imagens sobre a teoria da informaçãoImagens sobre a teoria da informação
Imagens sobre a teoria da informação43714
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Diego Souza Silva
 
Class 3 What Is Design
Class 3 What Is DesignClass 3 What Is Design
Class 3 What Is DesignYoungjin Yoo
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignUTFPR
 
Ciências do Artificial, Design Science Research
Ciências do Artificial, Design Science ResearchCiências do Artificial, Design Science Research
Ciências do Artificial, Design Science ResearchMariano Pimentel
 
compressao de dados
compressao de dadoscompressao de dados
compressao de dadosmidleofmidle
 
Decantação e centrifugação
Decantação e centrifugaçãoDecantação e centrifugação
Decantação e centrifugaçãoAmanda Barp
 
Teoria Da Informação 2010
Teoria Da Informação 2010Teoria Da Informação 2010
Teoria Da Informação 2010UNIP
 
Técnicas de compressão de dados
Técnicas de compressão de dadosTécnicas de compressão de dados
Técnicas de compressão de dadosSergio10INF
 
Design de informação e de interação
Design de informação e de interaçãoDesign de informação e de interação
Design de informação e de interaçãoPaula Faria
 
Dados Informacao Conhecimento E Saber
Dados Informacao Conhecimento E SaberDados Informacao Conhecimento E Saber
Dados Informacao Conhecimento E SaberGrupoBass
 
Aula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informaçãoAula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informaçãoDalton Martins
 
Compactação e Compressão de Dados
Compactação e Compressão de DadosCompactação e Compressão de Dados
Compactação e Compressão de DadosDaniel Rossi
 

En vedette (20)

Ibet tgd - 2012 teoria da linguagem ii - dra clarice araújo
Ibet   tgd - 2012 teoria da linguagem ii - dra clarice araújoIbet   tgd - 2012 teoria da linguagem ii - dra clarice araújo
Ibet tgd - 2012 teoria da linguagem ii - dra clarice araújo
 
Torres Gémeas
Torres GémeasTorres Gémeas
Torres Gémeas
 
Compressão de dados
Compressão de dadosCompressão de dados
Compressão de dados
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e Entropias
 
Imagens sobre a teoria da informação
Imagens sobre a teoria da informaçãoImagens sobre a teoria da informação
Imagens sobre a teoria da informação
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
 
Class 3 What Is Design
Class 3 What Is DesignClass 3 What Is Design
Class 3 What Is Design
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no Design
 
Ciências do Artificial, Design Science Research
Ciências do Artificial, Design Science ResearchCiências do Artificial, Design Science Research
Ciências do Artificial, Design Science Research
 
compressao de dados
compressao de dadoscompressao de dados
compressao de dados
 
Compressão Huffman
Compressão HuffmanCompressão Huffman
Compressão Huffman
 
Decantação e centrifugação
Decantação e centrifugaçãoDecantação e centrifugação
Decantação e centrifugação
 
Teoria Da Informação 2010
Teoria Da Informação 2010Teoria Da Informação 2010
Teoria Da Informação 2010
 
Torres Gemeas
Torres GemeasTorres Gemeas
Torres Gemeas
 
Técnicas de compressão de dados
Técnicas de compressão de dadosTécnicas de compressão de dados
Técnicas de compressão de dados
 
Design de informação e de interação
Design de informação e de interaçãoDesign de informação e de interação
Design de informação e de interação
 
Dados Informacao Conhecimento E Saber
Dados Informacao Conhecimento E SaberDados Informacao Conhecimento E Saber
Dados Informacao Conhecimento E Saber
 
Aula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informaçãoAula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informação
 
Compactação e Compressão de Dados
Compactação e Compressão de DadosCompactação e Compressão de Dados
Compactação e Compressão de Dados
 
Eco rio 92
Eco rio 92Eco rio 92
Eco rio 92
 

Similaire à Teoria da Informação e Compressão de Dados

Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)Daniel Barão
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informaçãoLuis Lino Ferreira
 
Introducao Computacao Slide 2
Introducao Computacao Slide 2Introducao Computacao Slide 2
Introducao Computacao Slide 2Duílio Andrade
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografiafelipetsi
 
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º MóduloTecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º MóduloIgor Santos
 
IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2Ramon Mayor Martins
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)Daniel Barão
 
Aula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxAula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxriodurval
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisJorge Ávila Miranda
 
Apresentação circuitos digitais resumida
 Apresentação circuitos digitais resumida Apresentação circuitos digitais resumida
Apresentação circuitos digitais resumidaMarcioRodrigues173060
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Mauro Tapajós
 
Interligados Apresentação 1
Interligados   Apresentação 1Interligados   Apresentação 1
Interligados Apresentação 1Hugo Leonardo
 
Apostila de práticas_de_eletrônica_digital_ii2
Apostila de práticas_de_eletrônica_digital_ii2Apostila de práticas_de_eletrônica_digital_ii2
Apostila de práticas_de_eletrônica_digital_ii2sinohara
 
descodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitaisdescodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas DigitaisCarlos Pereira
 
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisCircuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisRafaelRocha658505
 

Similaire à Teoria da Informação e Compressão de Dados (20)

Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)
 
Tic conc bas_1
Tic conc bas_1Tic conc bas_1
Tic conc bas_1
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informação
 
Introducao Computacao Slide 2
Introducao Computacao Slide 2Introducao Computacao Slide 2
Introducao Computacao Slide 2
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografia
 
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º MóduloTecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
 
IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)
 
Aula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptxAula 10 - Códigos BCD.pptx
Aula 10 - Códigos BCD.pptx
 
Sistemas_Digitais_2017.pdf
Sistemas_Digitais_2017.pdfSistemas_Digitais_2017.pdf
Sistemas_Digitais_2017.pdf
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionais
 
APDS- Apresentaçao.pptx
APDS- Apresentaçao.pptxAPDS- Apresentaçao.pptx
APDS- Apresentaçao.pptx
 
Apresentação circuitos digitais resumida
 Apresentação circuitos digitais resumida Apresentação circuitos digitais resumida
Apresentação circuitos digitais resumida
 
Códigos BCD, Gray e ASCII
Códigos  BCD, Gray e ASCIICódigos  BCD, Gray e ASCII
Códigos BCD, Gray e ASCII
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)
 
Tabela de conversao
Tabela de conversaoTabela de conversao
Tabela de conversao
 
Interligados Apresentação 1
Interligados   Apresentação 1Interligados   Apresentação 1
Interligados Apresentação 1
 
Apostila de práticas_de_eletrônica_digital_ii2
Apostila de práticas_de_eletrônica_digital_ii2Apostila de práticas_de_eletrônica_digital_ii2
Apostila de práticas_de_eletrônica_digital_ii2
 
descodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitaisdescodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitais
 
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimaisCircuitos de portas logicas - Conversão de sistemas binarios e decimais
Circuitos de portas logicas - Conversão de sistemas binarios e decimais
 

Dernier

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 

Dernier (20)

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 

Teoria da Informação e Compressão de Dados

  • 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. 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. 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. 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. 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. 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. 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. 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. Relatividade da informação 010101010101... Pedro Álvares Cabra... Marcela amou-me durante quinze meses e onze ... 14159265... 27033903618375114...
  • 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. 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. 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. 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. 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. 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. Entropia de outras mensagens Língua portuguesa DNA IBOVESPA Dados sísmicos Etc
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Códigos de Compressão Resposta: Depende da freqüência relativa (probabilidade) com que a fonte produz cada símbolo.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Modelos probabilísticos Família LZ (contextuais adaptativos) PPMs (contextuais adaptativos) Equivalência entre compressores baseados em dicionários e compressores estatísticos
  • 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. 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. 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. Modelos Contextuais Exemplo: Huffman semi-adaptativo contextual de ordem 1 Mensagem: abracadabra
  • 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. 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. 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. Modelos Contextuais Exemplo: Huffman semi-adaptativo contextual de ordem 1 Mensagem: abracadabraabraabarcabraba
  • 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. 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. 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. 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. Modelos Contextuais Exemplo: Huffman adaptativo contextual de ordem 1. Mensagem: abracadabra
  • 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. 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. Entropia de Modelo De Markov de Ordem 1 Regra da probabilidade condicional: P ( Ai , B j ) P ( B j | Ai ) = P ( Ai )
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Exemplo LZW Exemplo:W = abracadabra; alfabeto = {a, b, c, d, r} Codificação Dicionário inicial: 0a 1b 2c 3d 4r
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. LZW - Exemplo 2 Exemplo:W = aabababaaa; alfabeto = {a, b} Codificação Dicionário inicial: 0a 1b
  • 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. 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. 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. 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. 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. 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. LZW - Exemplo 2 (Cont.) Decodificação W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ Dicionário inicial: 0a 1b
  • 112. LZW - Exemplo 2 (Cont.) W codificada: ‘0’ ‘0’ ‘1’ ‘3’ ‘5’ ‘2’ W: a Dicionário: 0a 1b 2 a?
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. BWT Exemplo: W = quequalquasequando (N = 18); Alfabeto = {a, d, e, l, n, o, q, s, u} Rotações: quequalquasequando oquequalquasequand doquequalquasequan ...
  • 123. BWT – Rotações quequalquasequando oquequalquasequand doquequalquasequan ndoquequalquasequa andoquequalquasequ uandoquequalquaseq quandoquequalquase equandoquequalquas sequandoquequalqua asequandoquequalqu uasequandoquequalq quasequandoquequal lquasequandoquequa alquasequandoquequ ualquasequandoqueq qualquasequandoque equalquasequandoqu uequalquasequandoq
  • 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. BWT – Passo 3 Mensagem transformada: 12 uuunusaadeeloaqqqq
  • 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. 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. 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. BWT – Passo 3 Localizam-se os símbolos seguintes observando-se apenas a BWT: uuunusaadeeloaqqqq
  • 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. 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. 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. Compressão com BWT Passos: 1. BWT 2. Move-To-Front 3. Codificação de entropia (aritmético)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Compressão com perdas Compressor/descompressor genérico x (n bits) ~ x Canal Compressor Descompressor x x (m bits)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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...