Sie sind auf Seite 1von 74

BC-0504

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

Compresso de Dados Parte 2

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

Com perda ou irreversvel


Smbolo original/codificado no pode ser reconstrudo
exatamente a partir da verso comprimida
Expansor produz aproximao
Compresso de Dados Parte 2

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

Ou comprimida com perda como: 26


O dado exato perdido, porm h o benefcio de uma
codificao menor

Compresso de Dados Parte 2

Natureza da Informao
Informa o

Compresso
Compresso Sem
Sem Perda
Perda

Compresso de Dados Parte 2

Natureza da Informao
Informa o

Compresso Sem Perda


Permitem reconstruo exata da mensagem:
Codificao run-length
Codificao de tamanho varivel
Dicionrio esttico
Dicionrio semi-adaptativo
Dicionrio dinmico

Compresso de Dados Parte 2

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]

Funciona bem em poucas circunstncias


Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

Natureza da Informao
Informa o

Codificao de tamanho varivel


Atribuio de cdigos menores a smbolos mais
frequentes
E cdigos maiores para smbolos menos
frequentes
Codificaes de Shannon-Fano e Huffman

Compresso de Dados Parte 2

10

Natureza da Informao
Informa o

Codificao de tamanho varivel


Shannon-Fano e Huffman assumem que a distribuio de
probabilidades dos smbolos no muda ao longo da
sequncia de emisses
Exemplo: se a probabilidade de sair cara em um lanamento de uma
moeda for igual a 0,4, ela ser sempre 0,4, seja no 1, no 2, no 114
ou no ensimo lanamento
Huffman timo nessa situao

Porm, em muitas situaes, a distribuio de


probabilidades dos smbolos pode depender de um histrico
de emisses
Exemplo: a distribuio de probabilidades torna-se mais concentrada
do que o normal nas vogais a, e, i, o, aps a emisso das letras
q e u considerando a lngua portuguesa (a probabilidade de ser
uma consoante zero aps qu)
Textos em geral
Compresso de Dados Parte 2

11

Natureza da Informao
Informa o

Codificao de tamanho varivel

Cdigos podem ser usados para representar dados de


forma mais compacta: Cdigos mais eficientes

Se as palavras cdigo forem menores, em mdia, do que os


dados iniciais.

Texto ASCII 8 bits/letra

Podemos fazer melhor que isso com um cdigo


Huffman?

Se soubermos as probabilidades das letras => SIM

E se a probabilidade da emisso da prxima letra


depende da histria anterior?

LZW melhor nesse contexto (probabilidades de emisso dos


smbolos so dependentes da histria anterior)

Compresso de Dados Parte 2

12

Natureza da Informao
Informa o

Codificao Shannon-Fano e Huffman

Algoritmos de Shannon-Fano e de Huffman


Produzem cdigos relativamente eficientes:

H(X )
=
1
L(C )

Mtodos que constroem uma rvore de deciso,


tentando dividir o espao das probabilidades de
maneira mais equiprovvel possvel (aprox 50%
de um lado, e 50% do outro)

Compresso de Dados Parte 2

13

Natureza da Informao
Informa o

Codificao Shannon-Fano e Huffman

Cada smbolo a ser codificado se situa numa


das folhas da rvore
Ou seja, nenhum smbolo pode ser ancestral de
outro na rvore
Consequncia: Como um smbolo nunca pode
ser ancestral de outro na rvore, nenhum
smbolo prefixo de outro
Portanto, produzem cdigos de prefixo
(instantneos ou auto-pontuveis)

Compresso de Dados Parte 2

14

Natureza da Informao
Informa o

Codificao Shannon-Fano e Huffman


Relao da entropia com rvores de deciso

Quantidade de informao: indica exatamente


em que nvel cada smbolo deve se situar para
que se obtenha a melhor rvore de deciso
possvel (codificao tima)

Consequncia: a entropia o limite mnimo


para a quantidade de informao mdia por
smbolo que uma fonte transmite (Primeiro
Teorema de Shannon)
Compresso de Dados Parte 2

15

Natureza da Informao
Informa o

Codificao Shannon-Fano e Huffman

Exemplo: P(A) = 1/2, P(B) = 1/4, P(C) = 1/8, P(D) = 1/8

- 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

Codificao Shannon-Fano e Huffman

Ou seja, quanto menos provvel (mais raro)


um smbolo, mais para o fundo da rvore
(mais bits para codific-lo)
Em mdia, transmitimos o menor nmero de bits
possvel por mensagem atravs dessa
estratgia

Compresso de Dados Parte 2

17

Natureza da Informao
Informa o

Codificao Shannon-Fano

Um procedimento para se construir uma rvore de deciso


Cada estado gerado independente dos anteriores.
P(x) nunca muda
H (X )
1
Fornece cdigo eficiente =

L(C )

Idia: agrupar smbolos em pares de grupos


aproximadamente equiprovveis
A codificao de cada grupo consiste em simplesmente
atribuir um dgito binrio a cada grupo
Ex. 0 para o primeiro e 1 para o segundo

Compresso de Dados Parte 2

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?

Aquelas que dividem o universo pela metade

Quantas perguntas timas so necessrias?

Mnimo log2(numero de objetos)


Se a diviso didica (perguntas dividem no meio)

Compresso de Dados Parte 2

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

3 - O cdigo corresponde ao conjunto de dgitos


(0 ou 1) atribudos a cada smbolo
Compresso de Dados Parte 2

20

Natureza da Informao
Informa o

Codificao Shannon-Fano
Exemplo:
si
s1
s2
s3
s4
s5
s6

P(si) Passo 1 Passo 2 Passo 3 Passo 4


0
0
0,30
0,25
0
1
0,20
1
0
0,12
1
1
0
0,08
1
1
1
0
0,05
1
1
1
1

Compresso de Dados Parte 2

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%

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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:

Eficincia = H(X)/L(C) = 2,36/2,38 = 0,99

Compresso de Dados Parte 2

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)

Compresso de Dados Parte 2

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

Eficincia=1 se possvel (L(C)=H(X))


Igualmente ou mais eficiente do que Shannon-Fano

Cdigo de Huffman timo

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

GA
0.04

29

Natureza da Informao
Informa o

Codificao de Huffman
Primeiro passo

Cria-se um novo n contendo a soma


das probabilidades

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

Compresso de Dados Parte 2

30

Natureza da Informao
Informa o

Codificao de Huffman
Segundo passo

Cria-se um novo n contendo a soma


das probabilidades

0.19
0
AA

EA

CA

DA

BA

0.30

0.22

0.17

0.12

0.09

Reordena: dois ns
de menor frequncia

Compresso de Dados Parte 2

1
0.10
0
FA
0.06

1
GA
0.04

31

Natureza da Informao
Informa o

Codificao de Huffman
Terceiro passo

Cria-se um novo n contendo a soma


das probabilidades

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Codificao Shannon-Fano X Huffman

Shannon-Fano um algoritmo top-down: a rvore


construda de cima para baixo (no sentido da raiz para
as folhas)
Huffman um algoritmo bottom-up: a rvore
construda de baixo para cima (no sentido das folhas
para a raiz)
Shannon-Fano sub-timo, mas em geral se aproxima
bastante do timo
Huffman timo
Ver artigo na Wikipedia que compara esses dois
mtodos:
http://en.wikipedia.org/wiki/Shannon%E2%80%93Fano_coding

Compresso de Dados Parte 2

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

Lista de cdigos e seus significados chamada livro de


cdigos ou dicionrio
Compresso de Dados Parte 2

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

Bom para conjuntos de mensagens similares


No adequado para mensagens diversas
Compresso de Dados Parte 2

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

Lempel e Ziv: vrias tcnicas de compresso,


LZ77 e LZ78
Modificaes de Welch em 1984
Compresso de Dados Parte 2

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

Reversvel: no perde informao, decodificador


reconstri mensagem original sem perdas
Dicionrio inicial: 8 bits (0 a 255)
ASCII nos primeiros caracteres

Mensagem codificada 9 bits = sequncia de nmeros


Cdigos representando as entradas no dicionrio
Entrada 256: comeo da transmisso (limpar dicionrio)
Entrada 257: fim de transmisso ou parada
Compresso de Dados Parte 2

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.

Compresso de Dados Parte 2

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

Quando mensagem termina, manda cdigo de


nova_entrada e cdigo de parada (257)
Compresso de Dados Parte 2

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

Quando o cdigo de parada (257) recebido, finaliza


Compresso de Dados Parte 2

46

Natureza da Informao
Informa o

Exemplo 1: mensagem itty bitty bit bin


Codificao
Entrada

nova_entrada
dicionrio

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

a (ltimo caractere recebido)

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
-

3) No conhece cdigo 259 repete


1o carac. cd. ant. nova_entrada =
aaa; Insere no dicionrio; sada: aaa52

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

O nmero de bits transmitido reduzido?


Exemplo 1:
Manda 18 caracteres de 8 bits (144 bits) em 14
transmisses de 9 bits (126 bits)
Reduo de 12,5%

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

Compresso Sem Perda


usada em vrias aplicaes
Ex.: formato zip do Unix, formato GIF

usada em casos em que importante que os dados


originais e descomprimidos sejam idnticos (ou desvios
nos dados originais podem ser prejudiciais)
Ex.: programas executveis, programa fonte, texto,
registros de banco, artigos, etc.

No h algoritmo sem perda eficiente para todos os


tipos de dados possveis
Sequncias de dados completamente aleatrias no
podem ser comprimidas
Compresso de Dados Parte 2

54

Natureza da Informao
Informa o

Compresso Sem Perda


Fundamentos matemticos
Qualquer algoritmo de compresso pode ser
visto como uma funo que mapeia
sequncias a outras sequncias
Compresso tem sucesso quando a sequncia
resultante menor que a sequncia original
Incluindo o mapa necessrio para descompresso

Compresso sem perda exige um mapeamento


reverso das sequncias comprimidas para as
originais (reverso / bijeo)
Compresso de Dados Parte 2

55

Natureza da Informao
Informa o

Compresso
Compresso Com
Com Perda
Perda

Compresso de Dados Parte 2

56

Natureza da Informao
Informa o

Compresso Com Perda


Compresso em que alguma informao da
mensagem original perdida
Sequncias originais no podem ser geradas
novamente a partir da sequncia comprimida
No necessariamente implica que a qualidade do
resultado reduzida
Ex. Rudo aleatrio frequente em imagens e som
Algumas perdas em imagens e som tambm so
imperceptveis para o humano
Ex. Perda de frequncias bastante altas

Compresso de Dados Parte 2

57

Natureza da Informao
Informa o

Compresso Com Perda


Para dados visuais ou auditivos, alguma perda
de qualidade pode ser tolerada
Sem perder a natureza essencial dos dados
Levando em considerao limitaes da fisiologia
humana

Compresso com perda usada


frequentemente na Internet e em
produtos de consumo
Cmera, DVD, MP3 Player, celular

Compresso de Dados Parte 2

58

Natureza da Informao
Informa o

Compresso Com Perda


Tcnicas de compresso com perdas:
Quantizao escalar
Quantizao vetorial
Transformadas

Compresso de Dados Parte 2

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

Classificar intensidade de frequncia de


componentes em imagens ou som em grupos
Usada em JPEG

Compresso de Dados Parte 2

61

Natureza da Informao
Informa o

Quantizao Escalar
Uniforme: mapeamento linear
Ex. dividir inteiros de 8 bits por 4

No uniforme: mapeamento no linear


Em geral melhor que a uniforme
Ex. olho mais sensvel a valores baixos de
vermelho do que altos
Tornar regies com valores baixos menores que regies
com valores maiores

Outra alternativa: basear mapeamento na


probabilidade de diferentes entradas
Compresso de Dados Parte 2

62

Natureza da Informao
Informa o

Quantizao Escalar

Uniforme

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Quantizao vetorial: mapear espao


multidimensional em conjunto menor de
mensagens S
Compresso de Dados Parte 2

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

Representante pode ser:


Fixo
Determinado para cada arquivo / mensagem
Enviado como parte da sequncia
Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

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

Compresso de Dados Parte 2

68

Natureza da Informao
Informa o

Quantizao Vetorial
Sem compresso

Aps quantizao vetorial

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

Compresso de Dados Parte 2

70

Natureza da Informao
Informa o

Transformadas
Propriedades para compresso:
Descorrelacionar os dados
Vrios coeficientes de transformada pequenos
Passveis de serem descartados

Para percepo, alguns termos so mais


importantes do que outros
Menos importantes: tambm passveis de descartar

Compresso de Dados Parte 2

71

Natureza da Informao
Informa o

Transformada Discreta de Cossenos


Transformada Discreta de Cossenos (DCT) em
imagens
Separa imagem em partes de frequncias
diferentes
Frequncias menos importantes podem ser
descartadas
Quantizao
As mais importantes so usadas para recuperar a imagem na
descompresso

JPEG usa DCT como base


Reduz drasticamente o espao ocupado pela imagem
Compresso de Dados Parte 2

72

Natureza da Informao
Informa o

Transformada Discreta de Cossenos

original

Qualidade 50

Qualidade 20

Qualidade 10

Compresso de Dados Parte 2

http://www.dip.ee.uct.ac.za/~nicolls/lectures/eee401f/projects/dct.pdf

73

Natureza da Informao
Informa o

Compresso Com Perda


No existe uma tcnica geral, melhor que todas
As tcnicas devero ser adequadas ao tipo e a
natureza dos dados. As melhores tcnicas de
compresso so diferentes para udio e vdeo
porque a fisiologia humana do ouvido diferente
a do olho => naturezas diferentes
Compresses tpicas (com perdas)
Imagens (JPEG) 1:8
Vdeo (MPEG-2) 1:6
Vdeo (MPEG-4) 1:10
Audio (MP3) 1:10
Compresso de Dados Parte 2

74

Das könnte Ihnen auch gefallen