Beruflich Dokumente
Kultur Dokumente
Natureza da Informa
Informao
Compresso de Dados
Parte 2
Guiou Kobayashi
guiou.kobayashi@ufabc.edu.br
3o Quadrimestre, 2013
Natureza da Informao
Informa o
Tipos
Tipos de
de Compresso
Compresso
Natureza da Informao
Informa o
Tipos de Compresso
Sem perda ou reversvel
Smbolo original/codificado pode ser reconstrudo
exatamente a partir da verso comprimida
Usualmente explora redundncias
Ex. tem padres de bits no usados ou tem alguns
smbolos mais usados que outros
Natureza da Informao
Informa o
Tipos de Compresso
Exemplo: mensagem 25.888888888
Pode ser comprimida sem perda como: 25.[9]8
vinte e cinco ponto 9 oitos
Cadeia original pode ser perfeitamente recriada
Natureza da Informao
Informa o
Compresso
Compresso Sem
Sem Perda
Perda
Natureza da Informao
Informa o
Natureza da Informao
Informa o
Codificao run-length
Suponha mensagem com sequncias
longas de repeties de smbolos
Pode codificar mensagem como lista do
smbolo e nmero de vezes que ele ocorre
Ex.: mensagem a B B B B B B a a a B B a a a a
poderia ser codificada como a[1] B[6] a[3] B[2]
a[4]
Natureza da Informao
Informa o
Codificao run-length
Exemplos:
Bandeira da Alemanha
X pixels pretos, X pixels vermelhos, X pixels amarelos
Fax
Documento escaneado em preto e branco
Longos grupos de pixels brancos ou pretos so
transmitidos como o nmero desses pixels
Natureza da Informao
Informa o
Codificao run-length
No funciona bem para mensagens sem
repeties de sequncias de um mesmo
smbolo
Ex.: fotografias, em que pequenas mudanas
em sombreamento de um pixel a outro requer
o uso de vrios smbolos
Natureza da Informao
Informa o
10
Natureza da Informao
Informa o
11
Natureza da Informao
Informa o
12
Natureza da Informao
Informa o
H(X )
=
1
L(C )
13
Natureza da Informao
Informa o
14
Natureza da Informao
Informa o
15
Natureza da Informao
Informa o
- log2(P(A)) = - log2(1/2) = 1
- log2(P(B)) = - log2(1/4) = 2
- log2(P(C)) = - log2(1/8) = 3
- log2(P(D)) = - log2(1/8) = 3
1
A=0
B = 01
C = 110
D = 111
Compresso de Dados Parte 2
Nvel 1
Nvel 2
Nvel 3
D
16
Natureza da Informao
Informa o
17
Natureza da Informao
Informa o
Codificao Shannon-Fano
L(C )
18
Natureza da Informao
Informa o
Codificao Shannon-Fano
Analogia com jogo das perguntas
Queremos adivinhar um objeto em um conjunto,
com uma srie de perguntas com resposta
sim/no.
Quais as melhores perguntas?
19
Natureza da Informao
Informa o
Codificao Shannon-Fano
Descrio do algoritmo:
1 - Ordenao: listar os smbolos segundo ordem
de probabilidade decrescente
2 - Partio: dividir em dois grupos to
equiprovveis quanto possvel
2-a) Atribuir 0 ao primeiro grupo e 1 ao segundo
2-b) Repetir o procedimento at que cada grupo
contenha um nico smbolo
20
Natureza da Informao
Informa o
Codificao Shannon-Fano
Exemplo:
si
s1
s2
s3
s4
s5
s6
Cdigo
00
01
10
110
1110
1111
21
Natureza da Informao
Informa o
Codificao Shannon-Fano
rvore de deciso equivalente:
s1 s2 s3 s4 s5 s6
0
0
30%
s1 s2
55%
s1
100%
s3 s4 s5 s6
25%
s2
s3
s4 s5 s6
20%
0
12%
45%
s4
s5 s6 13%
0
8%
25%
s5
s6 5%
22
Natureza da Informao
Informa o
Codificao Shannon-Fano
Calculando o tamanho mdio do cdigo formado:
si
Cdigo
Prob
Pk
Tamanho do cdigo
lk
Contribuio mdia
pklk
s1 00
0,30 2
0,60
s2 01
0,25 2
0,50
s3 10
0,20 2
0,40
s4 110
0,12 3
0,36
s5 1110
0,08 4
0,32
s6 1111
0,05 4
0,20
Total
1,00
2,38
L(C) = 2,38
23
Natureza da Informao
Informa o
Codificao Shannon-Fano
Calculando a entropia da fonte:
si
Prob
Pk
s1
0,30 1,74
s2
0,25 2,00
s3
0,20 2,32
s4
0,12 3,06
s5
0,08 3,64
0,29
s6
0,05 4,32
0,21
Total
1,00
2,36
Informao individual
log2(1/pk)
Nveis da
rvore
sugeridos
pela
entropia
Contribuio mdia
pklog2(1/pk)
0,52
0,50
0,46
0,38
H(X) = 2,36
24
Natureza da Informao
Informa o
Codificao Shannon-Fano
Calculando a eficincia da codificao:
25
Natureza da Informao
Informa o
Codificao de Huffman
Desenvolvido por David A. Huffman em 1952
Atribuio de cdigos menores a smbolos mais
frequentes (assim como Shannon-Fano)
Constri-se uma rvore binria (rvore de
Huffmann) recursivamente a partir da juno
dos smbolos de menor probabilidade
Cada aresta da rvore possui um bit (0 ou 1)
(assim como Shannon-Fano)
26
Natureza da Informao
Informa o
Codificao de Huffman
Supe-se que cada estado gerado
independente dos anteriores, como no
Shannon-Fano
a distribuio das probabilidades sempre a mesma
27
Natureza da Informao
Informa o
Codificao de Huffman
Exemplo: Suponha um alfabeto de 7 letras (A, B,
C, D, E, F, G), e uma linguagem na qual essas
letras possuem as seguintes probabilidades
(frequncias):
A: 0.30
E: 0.22
C: 0.17
D: 0.12
B: 0.09
F: 0.06
G: 0.04
Compresso de Dados Parte 2
28
Natureza da Informao
Informa o
Codificao de Huffman
Incio do algoritmo de construo do cdigo
Ordena-se os smbolos pelas suas
frequncias (ordem decrescente)
AA
EA
CA
DA
BA
FA
0.30
0.22
0.17
0.12
0.09
0.06
GA
0.04
29
Natureza da Informao
Informa o
Codificao de Huffman
Primeiro passo
0.10
0
AA
EA
CA
DA
BA
FA
0.30
0.22
0.17
0.12
0.09
0.06
1
GA
0.04
Dois ns de menor
frequncia
30
Natureza da Informao
Informa o
Codificao de Huffman
Segundo passo
0.19
0
AA
EA
CA
DA
BA
0.30
0.22
0.17
0.12
0.09
Reordena: dois ns
de menor frequncia
1
0.10
0
FA
0.06
1
GA
0.04
31
Natureza da Informao
Informa o
Codificao de Huffman
Terceiro passo
0.29
0
0.19
1
AA
EA
CA
DA
BA
0.30
0.22
0.17
0.12
0.09
Dois ns de menor
frequncia
1
0.10
0
FA
0.06
1
GA
0.04
32
Natureza da Informao
Informa o
Codificao de Huffman
Quarto passo
Cria-se um novo n contendo a soma
das probabilidades
0.29
0
0.41
1
AA
CA
DA
EA
0.30
0.17
0.12
0.22
Dois ns de menor
frequncia
1
0.19
0
BA
0.09
0.10
0
FA
0.06
1
GA
0.04
33
Natureza da Informao
Informa o
Codificao de Huffman
Quinto passo
Cria-se um novo n contendo a soma
das probabilidades
0.59
0
AA
0.30
Dois ns de
menor frequncia
0.41
0
EA
0.29
0
CA
DA
0.17
0.12
0.22
0.19
0
BA
0.09
0.10
0
FA
0.06
1
GA
0.04
34
Natureza da Informao
Informa o
Codificao de Huffman
Passo Final
1.00
0
0.59
0
AA
0.30
0.41
0
EA
0.29
0
CA
DA
0.17
0.12
0.22
0.19
0
BA
0.09
0.10
0
FA
0.06
1
GA
0.04
35
Natureza da Informao
Informa o
Codificao de Huffman
Para obter o cdigo a partir da rvore, basta
percorrer todos os seus caminhos possveis
A: 00
Propriedade:
Um smbolo nunca prefixo de outro
B: 110
C: 010
No h ambiguidade
D: 011
E: 10
No h necessidade de um cdigo
F: 1110
especial para separar um smbolo
G: 1111
do outro
Compresso de Dados Parte 2
36
Natureza da Informao
Informa o
37
Natureza da Informao
Informa o
Dicionrio Esttico
Apropriado para mensagens de texto
Se um cdigo tem padres no usados, eles
podem ser atribudos a sequncias que ocorrem
frequentemente
Por exemplo: abreviaes
E essas sequncias passam a requerer menos bits do
que a transmisso smbolo a smbolo
Ex.: DEL em ASCII pode ser desnecessrio
atribuir cdigo 127 (DEL) palavra the
38
Natureza da Informao
Informa o
Dicionrio Esttico
Uso de abreviaes para comprimir
mensagens implica necessidade de
dicionrio
E de transmit-lo antes da primeira mensagem
Deve ser cuidadosamente construdo e no pode ser
alterado com frequncia
39
Natureza da Informao
Informa o
Dicionrio Semi-adaptativo
Se um novo dicionrio pudesse ser definido para
cada mensagem, a compresso seria maior
Sequncias de smbolos da mensagem em particular
poderiam ser entradas do dicionrio
Problemas:
Novo dicionrio teria que ser transmitido junto mensagem
Mensagem deve ser analisada antes para descobrir as
melhores entradas para o dicionrio
Deve ser conhecida antes e armazenada como um todo
antes
Uso limitado
Compresso de Dados Parte 2
40
Natureza da Informao
Informa o
Dicionrio Dinmico
Calculado medida que a mensagem
processada
No precisa acompanhar a mensagem
Pode ser usado antes do fim da
mensagem ser processada
Compresso de Dados Parte 2
41
Natureza da Informao
Informa o
Dicionrio Dinmico
Ex. tcnica de compresso LZW
Abraham Lempel, Jacob Ziv, Terry Welch
42
Natureza da Informao
Informa o
Compresso LZW
Aplicado a arquivos de:
Textos: reduz tipicamente a metade do tamanho
Imagens, com grandes reas com mesma cor: pode reduzir a
menos da metade
GIF usa compresso LZW
43
Natureza da Informao
Informa o
Compresso LZW
Dicionrio dinmico, codificado em 9 bits
Dicionrio inicialmente contm caracteres isolados, mas
novas entradas com dois ou mais caracteres vo sendo
definidas a medida que a mensagem analisada
O dicionrio construdo medida que a mensagem
enviada, no sendo necessria a anlise prvia de todos
os dados ou o envio prvio do dicionrio para a
decodificao.
44
Natureza da Informao
Informa o
Compresso LZW
Codificao:
nova_entrada = novas entradas do dicionrio
Manda cdigo de incio (256)
Adiciona a nova_entrada os caracteres, um a um,
da mensagem sendo comprimida
Assim que nova_entrada se torna diferente de qualquer
outra cadeia j no dicionrio, coloca-a no dicionrio e
manda cdigo da cadeia sem o ltimo caractere
45
Natureza da Informao
Informa o
Compresso LZW
Decodificao:
Se recebe cdigo de incio (256), limpa dicionrio e
nova_entrada =
Para o cdigo seguinte recebido, produz como sada o
caractere representado pelo cdigo e coloca-o em
nova_entrada
Para cdigos subsequentes recebidos
Se conhece o cdigo:
Adiciona o primeiro caractere da cadeia representada pelo cdigo a
nova_entrada, insere resultado no dicionrio e produz como sada a
cadeia do cdigo recebido
Se no conhece o cdigo:
Repete em nova_entrada primeiro caractere do cdigo recebido
anteriormente, insere resultado no dicionrio e produz como sada a
cadeia do cdigo recebido
46
Natureza da Informao
Informa o
nova_entrada
dicionrio
Transmisso
9 bits
Decodificao
nova_entrada
dicionrio
Sada
47
Natureza da Informao
Informa o
Compresso LZW
Exemplo 2: mensagem aaaaaa
Codificao
Entrada
nova_entrada
dicionrio
97 a
- 97 a
258 aa
97 a
- 1) nova_entrada =
97 a
259 aaa
97 a
- 97 a
- -= a
4)- nova_entrada
- - -
Transmisso
9 bits
256 (incio)
97 (a)
- 2) Manda
258 (aa)
cdigo -de-incio
- 259 (aaa)
257 (parada)
Decodificao
nova_entrada
dicionrio
Sada
- - a
- 3)
Recebendo
258 aa
aa
cdigo
de
incio,
- limpa- dicionrio
e
faz
nova_entrada
= aaa
259
aaa
- -
48
Natureza da Informao
Informa o
Compresso LZW
Exemplo 2: mensagem aaaaaa
Codificao
Entrada
nova_entrada
dicionrio
97 a
- 97 a
258 aa
97 a
- 97 a
1) nova_entrada
=259
aa aaa
97 tem
a no dicionrio)
- (no
a no dicionrio
- 2)97Insere
- - - - 4) nova_entrada = a
(ltimo caractere recebido)
Compresso de Dados Parte 2
Transmisso
9 bits
256 (incio)
97 (a)
- 258 (aa)
3) Manda
cdigo
- de nova_entrada,
sem o -caractere
final259
a (aaa)
257 (parada)
Decodificao
nova_entrada
dicionrio
Sada
- - a
- 258
aa como sadaaao
5)
Produz
- caractere
do cdigo- recebido
a
259
aaa
6) nova_entrada
= a aaa
- -
49
Natureza da Informao
Informa o
Compresso LZW
Exemplo 2: mensagem aaaaaa
Codificao
Entrada
nova_entrada
dicionrio
97 a
- 97 a
258 aa
97 a
- 97 a
259 aaa
97 a
- 1) nova_entrada
= aa
97 a
- (tem
- no
- dicionrio)- 2) nova_entrada
= aaa
- - (no
tem)
3) Insere no dicionrio
5) nova_entrada
Compresso
de Dados Parte=
2
Transmisso
9 bits
256 (incio)
97 (a)
- 258 (aa)
- 4) Manda
- -cdigo
de nova_entrada,
259 (aaa)
sem257
o caractere
(parada)
final aa
Decodificao
nova_entrada
dicionrio
Sada
- - a
- 258 aa
aa
- 6) No
- -conhece cdigo -258:
repete
1o caracter anterior
259 aaa
aaa
7) nova_entrada
= aa - 8) Insere nova_entrada no
dicionrio
9) Produz sada = cadeia do
cdigo recebido aa
50
Natureza da Informao
Informa o
Compresso LZW
Exemplo 2: mensagem aaaaaaa
Codificao
Entrada
nova_entrada
dicionrio
97 a
- 97 a
258 aa
97 a
- 97 a
259 aaa
97 a
- 97 a
- - - 1) nova_entrada
=a- - (tem no dicionrio)
2) nova_entrada = aa (tem)
3) nova_entrada = aaa (tem)
Compresso de Dados Parte 2
Transmisso
9 bits
256
97
258
259
257
(incio)
(a)
(aa)
(aaa)
(parada)
Decodificao
nova_entrada
dicionrio
258
259
-
aa
aaa
-
Sada
a
aa
aaa
-
51
Natureza da Informao
Informa o
Compresso LZW
Exemplo 2: mensagem aaaaaaa
Codificao
Entrada
97
97
97
97
97
97
-
a
a
a
a
a
a
-
Transmisso
nova_entrada
dicionrio
258
259
-
1) Recebeu parada
Compresso de Dados Parte 2
aa
aaa
-
nova_entrada
dicionrio
9 bits
256
97
258
259
257
(incio)
(a)
(aa)
(aaa)
(parada)
2) Manda cdigo de
nova_entrada,
seguido por parada
Decodificao
258
259
-
aa
aaa
-
Sada
a
aa
aaa
-
Natureza da Informao
Informa o
Compresso LZW
Codificador e decodificador criam dicionrio a
medida que processamento feito
Dicionrio no precisa ser transmitido explicitamente
Codificador lida com o texto em um nico passo
Exemplo 2:
Manda 6 caracteres de 8 bits (48 bits) em 5
transmisses de 9 bits (45 bits)
Reduo de 6,25%
Compresso de Dados Parte 2
53
Natureza da Informao
Informa o
54
Natureza da Informao
Informa o
55
Natureza da Informao
Informa o
Compresso
Compresso Com
Com Perda
Perda
56
Natureza da Informao
Informa o
57
Natureza da Informao
Informa o
58
Natureza da Informao
Informa o
59
Natureza da Informao
Informa o
Quantizao Escalar
Reduzir conjunto de mensagens possveis
S a um conjunto menor S
Mapeando cada elemento de S em um
elemento em S
Ex. dividir inteiros de 8 bits por 4 (descartar dois
menores bits)
Ex. se h letras maisculas e minsculas,
transformar todas maisculas em minsculas
Mapeamento de muitos-para-um
irreversvel (com perda)
Compresso de Dados Parte 2
60
Natureza da Informao
Informa o
Quantizao Escalar
Usada em:
Reduzir nmero de bits em cores de nveis de
escala de cinza em imagens
Usada para economizar memria em vrios
monitores de computador
61
Natureza da Informao
Informa o
Quantizao Escalar
Uniforme: mapeamento linear
Ex. dividir inteiros de 8 bits por 4
62
Natureza da Informao
Informa o
Quantizao Escalar
Uniforme
No uniforme
63
Natureza da Informao
Informa o
Quantizao Escalar
Ex. quantizando imagem de 8 bits por canal RGB em
6 bits, 5 bits, 4 bits, 3 bits, 2 bits, e 1 bit
8 bits
www.ic.unicamp.br/~cpg/material-didatico/mo442/200101/matlab/entregues/grupo1/lab1/exercicio_3/index.html
64
Natureza da Informao
Informa o
Quantizao Vetorial
Quantizao escalar permite mapeameno
individual de cada cor em uma imagem
colorida em um conjunto menor de valores
Na prtica, pode ser mais efetivo mapear
regies tridimensionais do espao de cores
65
Natureza da Informao
Informa o
Quantizao Vetorial
Tipicamente:
Seleo de conjuntos representativos do
espao de entrada;
Mapeamento de todos os outros pontos para o
representante mais prximo
66
Natureza da Informao
Informa o
Quantizao Vetorial
Como escolher representantes?
Tipicamente: algoritmos de agrupamento
Encontra grupos de pontos nos dados
Um representante escolhido para cada grupo
67
Natureza da Informao
Informa o
Quantizao Vetorial
Mais efetiva quando variveis no espao multidimensional so correlacionadas
Ex.: conjunto de exemplos peso x altura
H clara correlao de peso e altura
Representantes podem se concentrar em
reas que tenham sentido fsico (maiores
densidades em regies mais comuns)
Mais efetivo que quantizao escalar
separada de peso e altura
68
Natureza da Informao
Informa o
Quantizao Vetorial
Sem compresso
http://www.steckles.com/compression.html
Compresso de Dados Parte 2
69
Natureza da Informao
Informa o
Transformadas
Transformar entrada em forma diferente
Para melhor compresso
Perda de alguns termos sem muita perda qualitativa
na sada
Algumas transformadas comuns: seno, cosseno,
polinmios, harmnicas esfricas, funes Bessel,
wavelets
70
Natureza da Informao
Informa o
Transformadas
Propriedades para compresso:
Descorrelacionar os dados
Vrios coeficientes de transformada pequenos
Passveis de serem descartados
71
Natureza da Informao
Informa o
72
Natureza da Informao
Informa o
original
Qualidade 50
Qualidade 20
Qualidade 10
http://www.dip.ee.uct.ac.za/~nicolls/lectures/eee401f/projects/dct.pdf
73
Natureza da Informao
Informa o
74