Escolar Documentos
Profissional Documentos
Cultura Documentos
Alexandre Souza Francisco Mesqui5a Simoni Krger Carla Pires Fabrcio Ferreira
Denio
Representao
de
uma
fonte
de
dados
da
maneira
mais
precisa
possvel
uElizando
um
menor
nmero
de
bits;
Fazer
com
que
a
mesma
quanEdade
de
informao
caiba
em
um
espao
menor;
Eliminar
as
redundncias:
recorrncias
de
letras,
dgitos
ou
pixels;
Receptor
deve
ser
capaz
de
decodicar
os
dados
para
acessar
a
informao;
Exemplos:
EBCDIC
de
8
bits
para
o
formato
ASCII
de
7
bits;
AAAAAA,
que
ocupa
6
bytes,
poderia
ser
comprimida
para
6A,
que
ocupa
2
bytes
);
AATTTT
representa-se
por:
*4T
(decodica
por
meio
de
uma
tabela).
Histrico
A
compresso
oriunda
da
criptograa:
algoritmo
de
compresso
um
codicador
e
um
decodicador;
Relatos
de
encriptao
por
volta
de
1500
a.C.
(escrita
cifrada
para
guardar
segredos);
Gregos
e
espartanos
usavam
cdigos
em
movimentos
blicos
durante
as
guerras
(475
a.C);
No
sculo
XIX
a
inveno
do
telgrafo
e
do
Cdigo
Morse
abriu
espao
para
a
criptograa
moderna
que
deixou
de
ser
processos
altamente
manuais;
Histrico
1a
Guerra
Mundial
(1914
a
1918):
mquinas
de
codicao
mecnicas
usadas
para
codicar
e
decodicar
textos
usando
encriptaes
sosEcadas
e
complexas;
2a
Guerra
Mundial
(1939
a
1945):
codicao
da
mensagem
para
esconder
a
informao
do
inimigo
e
reduzir
a
quanEdade
de
informaes
que
eram
passadas
atravs
dos
rdios
(surge
a
compactao
de
dados);
Advento
dos
computadores
digitais:
necessidade
da
criao
de
cdigos
seguros
e
inquebrveis;
necessidade
de
reduzir
espao
nos
meios
de
armazenamento
e
transmisso
de
dados,
reduzindo
custos
e
viabilizando
projetos.
4
Velocidade
de
processamento
dos
computadores
aumentou;
Tempo
de
acesso
a
discos
magnEcos
tem
se
manEdo
praEcamente
constante;
mais
vantajoso
invesEr
em
poder
de
computao
em
compresso
de
dados
em
troca
de
menos
espao
para
armazenamento
de
dados
em
disco
ou
em
menor
tempo
transmisso
de
dados
pela
rede;
Reduz
custos
operacionais:
OEmizao
do
espao
em
disco
para
armazenamento;
Reduo
do
trco
da
rede;
Desvantagens
Custo
de
processamento
na
compresso
e
na
descompresso;
Custo
para
armazenar
a
tabela
de
smbolos
ou
dicionrio;
Ganhos
expressivos
so
obEdos
apenas
com
mtodos
de
compresso
que
no
permitem
reconstruir
os
dados
exatamente
da
maneira
como
eram
antes
da
compresso.
Tcnicas
Lossless
Sem
perda
de
dados;
Permite
a
reconstruo
exata
do
contedo
original
a
parEr
da
fonte
comprimida;
Explora
a
redundncia
dos
dados;
Aplicvel
maioria
das
fontes
de
informao:
Imagens
mdicas
digitais;
Transmisso
de
textos;
Programas
executveis;
Banco
de
dados;
Informaes
bancrias.
Ex.:
transformao
de
Burrows-Wheeler,
codicao
de
Human,
LZ77,
LZ78,
LZW,
ZIP,
RAR,
ARJ,
PNG,
GIF,
PNG.
8
Tcnicas
Lossless
Classicao:
Codicao
estDca:
o
mapeamento
entre
as
mensagens
e
o
conjunto
de
palavras-cdigo
determinado
antes
do
incio
da
transmisso
(requer
duas
passagens
pela
fonte
de
dados);
Codicao
adaptaDva:
o
mapeamento
entre
as
mensagens
e
o
conjunto
das
palavras
cdigo
muda
com
o
tempo
(uma
nica
passagem
sobre
a
fonte
de
dados);
Codicao
hbrida:
usa
conceitos
tanto
da
codicao
estEca
quanto
da
adaptaEva.
9
Tcnicas
Lossy
Com
perda
de
dados
(a
informao
descomprimida
diferente
da
original);
Comprime
os
dados
eliminando
deniEvamente
certas
redundncias;
Perdem-se
dados
sucessivamente,
medida
em
que
se
aplica
o
algoritmo
vrias
vezes;
Explora
redundncias
temporais
e
espaciais
presentes
nas
fontes
de
dados;
Leva
em
considerao
a
percepo
humana,
que
incapaz
de
perceber
certas
perdas
em
imagens,
udio
e
vdeo:
Sons
de
frequncias
muito
altas
ou
muito
baixas
que
os
humanos
no
ouvem;
Detalhes
muito
suEs
como
a
diferena
de
cores;
Movimentos
muito
rpidos
que
no
conseguimos
acompanhar
em
um
lme;
Taxas de compresso melhores que das tcnicas lossless (50:1 a 10000:1); Exemplos: JPEG, MPEG, DIVx, MP3.
10
Tcnicas
Lossy
Classicao:
Mtodos de transformao: amostras de guras ou sons so transformados em pequenos segmentos, os quais so transformados em um novo espao base e quanEdades (limitao de possveis valores). Os valores quanEzados so codicados para entropia (trata de cadeias de bits sem levar em conta seu signicado); Mtodos prediDvos: informaes decodicadas so usadas para prever qual ser o prximo pacote. O erro entre o dado previsto e o dado real, junto com qualquer informao extra necessria para reproduzir a previso, so quanEzados e codicados. Ex.: prximo frame de imagem; Mtodos hbridos: uso de ambas tcnicas.
11
Histrico
Codicao
de
Human
O
que
?
um
mtodo
de
compactao
que
usa
as
probabilidades
de
ocorrncia
dos
smbolos
no
conjunto
de
dados
a
ser
compactado
para
determinar
cdigos
de
tamanho
varivel
para
cada
smbolo.
Codicao
de
Human
ObjeJvo
Tem
por
objeDvo
a
construo
de
uma
rvore
binria
baseada
na
frequncia
de
uso
das
letras
do
alfabeto
de
modo
que
as
mais
frequentemente
uDlizadas
apaream
mais
perto
da
raiz.
Codicao
de
Human
ObjeJvo
Esta
rvore
binria
construda
da
baixo
para
cima
(das
folhas
para
a
raiz)
,
comeando
a
parDr
das
letras
menos
usadas
at
aDngir
a
raiz.
Codicao
de
Human
Etapas
Clculo
da
frequncia
de
cada
caracter
no
arquivo
Execuo
do
algoritmo
de
Human
para
construo
de
uma
rvore
binria
(rvore
de
Human)
Codicao
Propriamente
dita
6
Codicao
de
Human
Como
Funciona
No
incio
do
algortmo,
cada
uma
das
letras
forma
uma
rvore
que
composta
apenas
pela
raiz
e
cujo
contedo
a
frequncia
com
que
esta
letra
ocorre
no
texto
em
questo.
Em
seguida,
so
escolhidas
as
duas
rvores
com
as
menores
frequncias
associadas
e
elas
so
unidas
em
uma
s
rvore
cujo
valor
da
raz
a
soma
do
valor
destas
duas.
Este
processo
repeDdo
at
a
existncia
de
uma
nica
rvore.
7
Codicao
de
Human
(exemplo)
Sequncia
de
caracteres:
FAAFEEEAAAAEEEECCAAAAAAAAACFFCCAAAACCCBAAAB
BBBAAAAAAAADDDDBBBBBBDDDDAAAAAADDDDDDAAA
AEE
Caracteres:
FECBDA
Frequncia:
5
9
12
13
16
45
(respecDvamente)
Dados
iniciais
ordenados
por
frequencia
de
ocorrncia
F
5
E
9
C
12
B
13
D
16
A
45
14
C 12
B 13
D 16
A 45
F 5
E
9
9
F 5
E 9 D 16 A 45
25
14
C 12
B 13
F 5
E 9
10
14
25
F 5
E 9
C 12
B 13
11
14
D 16
C 12
B 13
F 5
E
9
12
25
30
C 12
B
13
13
14
D 16 E 9
F 5
13
30
C 12
B 13 F 5
14
D 16 E 9
14
15
ASCII 0100 0001 0100 0011 0100 0010 0100 0100 0100 0110 0100 0101
16
Codicao
de
Human
Comparao
entre
a
sequncia
de
caracteres
propostas
uJlizando
a
codicao
ASCII
(8
bits)
e
uJlizando
a
codicao
de
Human.
Sem
compactao
(ASCII)
Com
compactao
1100001100110111011101000011011101110111011001000000000001001100110010010000001001001001 0100010110110110100000000111111111111101101101101101101111111111111000000111111111111111 111000011011101
17
Codicao
de
Human
Decodicao
Para
decodicar
uma
mensagem
obDda,
basta
ir
uDlizando
cada
bit
da
mensagem
para
percorrer
a
arvore
de
Human
desde
a
raiz
at
alguma
folha,
quando
se
obtm
o
smbolo
decodicado.
Volte
ento
para
a
raiz
e
conDnue
a
percorrer
a
rvore
para
decodicar
o
prximo
smbolo.
18
Codicao
Shannon-Fano
Codicao
Shannon-Fano
Codicao
Shannon-Fano
Codicao Shannon-Fano
Codicao Shannon-Fano
Codicao Shannon-Fano
Codicao Shannon-Fano
Codicao Shannon-Fano
Codicao Shannon-Fano
10
11
A idia que sempre que uma frase repetida, na rea de pesquisa, substituir a ocorrncia original da frase por uma referncia armazenada no dicionrio.
LZ78
LZC, LZT e LZW - Variao do LZ78
LZW - Lempel-Ziv-Welch
Desenvolvida por Terry Welch em 1984; Usa a compactao baseada em dicionrio; baseado na construo de um dicionrio de smbolos a partir do uxo de entrada; A variao introduzida foi iniciar o dicionrio com todas as frases que contm apenas um smbolo no alfabeto que est sendo usado.
Compresso LZW
LZW - Lempel-Ziv-Welch
Para se obter a codicao atravs do mtodo LZW devem ser seguidos os seguintes passos:
1 2
3 4
Inicialize o dicionrio com todos os smbolos; Procure, no cdigo a ser comprimido, pelo bloco mais longo que tenha registro no dicionrio; Codique o bloco com o ndice que consta no dicionrio, Adicione o bloco, seguido pelo prximo caractere da sequncia, ao dicionrio, e volte ao passo 2; Parada.
Para decodicar o cdigo gerado, basta trocar os ndices pelas frases a eles associadas.
M. Soares, P. Martins, R. Pereira e D. Coutinho..
Funcionamento
Exemplo:
codicao do texto: BABABABABABAB, a partir de trs smbolos (A, B, C) a tabela de sequncias inicializada com os trs smbolos: A, B e C.
Funcionamento
Exemplo:
BABABABABABAB
Protocolo V42bis
Usa uma variante do LZW (LZT);
Zip e gzip usam uma variante do LZ77 combinada com Huffman; ARJ usa a codicao de Huffman e o algoritmo LZSS; Winrar usa o LZ77 e o Hufman; Winzip entre outros algoritimo usa o LZW; o LZ77 usado no PKZIP, GZIP e no formato de imagens PNG;
Notas nais
Notas:
LZ77 no tem patente, razo pela qual usado em, muitos compactadores. LZ78 e LZW possuem patente; O problema bsico dos algoritmos que usam dicionrio a memria usada para guardar o dicionrio; Atualmente existem algoritmos com taxas de compresso signicantemente melhores que os Lempel-Zivs, porm devido a vantajosa simplicidade computacional, este tipo de codicador ainda largamente usado.
Referncias
Literatura consultada
M. Pasin. Uma Breve Introduo Compresso de Dados, 2007 M. Camara. Criptograa e Compresso de Dados. 2004. M. Soares, P. Martins, R. Pereira e D. Coutinho. Compresso de Dados com o Algoritmo Lempel-Ziv: Um caso Estudado. 2002. A. L Brasil. O Algoritmo LZW
Algoritmos
Adaptados
Algoritmos
de
codicao
(LZSS)
baseada
em
dicionrio
sem
perda
de
dados;
Codicao
de
sequncias
vs
codicao
de
smbolos;
2
Algoritmos
Adaptados
1977
LZ77
:
Jacob
Ziv
e
Abraham
Lempel;
1978
LZ78
:
por
Jacob
Ziv
e
Abraham
Lempel;
1982
LZSS:
Storer
e
Szymanski;
1984
LSW
:
Terry
Welch;
LZ77
O Dicionrio contm os smbolos j codificados; O look-ahead contm os smbolos a serem codificados, janela futura; Janela deslizante de dimenso fixa.
LZ77
Procura-se
uma
cadeia
a
parSr
do
primeiro
caracter
da
janela
futura
que
tambm
esteja
presente
na
janela
de
texto.
Sendo
encontrada
alguma
coincidncia,
a
cadeia
passa
a
ser
codicada
em
um
bloco
de
trs
parmetros
(i,
n,
p).
i
-
Posio
do
inicio
da
cadeia
na
janela
de
texto;
n-
O
comprimento
da
cadeia;
p-
Primeiro
caracter
da
janela
futura
aps
o
m
da
cadeia.
5
LZ78
Abraham
Lempel
e
Jacob
Ziv
evoluram
LZ77.
Novo
algoritmo
LZ78,
criando
uma
estrutura
em
rvore,
onde
cada
n
pode
possuir
um
nmero
de
ramicaes
igual
ao
comprimento
do
alfabeto
uSlizado.
Compresso
LZSS
Variante do LZ77 e LZ78 proposta por Storer e Szymanski em 1982.! ! Na codicao! ! No inclui o smbolo que se segue frase na rea !de look-ahead, janela futura.! ! Usa dois formatos:! ! ! !- Um token com (n, i), ou! !- S um smbolo.! ! Usa um bit extra para distinguir os dois formatos.! Sempre que a frase a codicar j existir no dicionrio e o !nmero de elementos coincidentes for pelo menos 3 !usado o primeiro formato, seno !usado o segundo. !
8
Descompresso
O processo de decodicao.! !
!Reverso do processo de codicao, usa uma tabela buscando o !apontador do dicionrio da palavra-cdigo entrada.! !Ao mesmo tempo, o dicionrio cresce de forma idntica quele !do codicador. ! !Descodicao sem perda em virtude da propriedade do prexo !do dicionrio garantir.! !So limitado o nmero de caracteres que podem ser enviados !para o decodicador em um cdigo.! !Decodicador pode ser determinstico, predizer o dicionrio do !codicador conforme as palavras-cdigo entradas.!
9
Aplicao
! ! ! O Zip e o gzip usam uma variante do LZ77 combinada com Huffman esttico.! ! ! O ARJ usa a codicao de Huffman e o algoritmo LZSS.! ! ! ! O WINRAR usa o LZ77 e Huffman.! ! !
!
10
Burrows-Wheeler
O mtodo de compresso de Burrows-Wheeler foi descrito em 1994.! ! Ele baseado em uma pesquisa (no publicada) de Wheeler em 1983. ! ! Sendo uma combinao de trs algoritmos: ! ! !Uma funo de transformao BWT, que reordena os bytes !originais, tornando-os bastante propcios para compresso. ! Aplica uma funo heurstica MTF. Faz com que os !dados de !sada contenham muitos zeros e grande tendncia para !nmeros positivos pequenos. ! Por m submete os dados resultantes a algum mtodo de !compresso que atue sobre estatsticas dos dados !(por !exemplo, cdigo de Huffman).!
11
" !
Burrows-Wheeler
! Descrio do algoritmo "Burrows-Wheeler Transform! ! !Diferente dos algoritmos da famlia "LZ", o BWT opera em blocos !de dados.! !Quanto maior o tamanho dos blocos, maior a taxa de !compresso atingida.! ! Ideia bsica: dada uma sequncia S de n smbolos, reordenar os smbolos formando outra sequncia L, que verica duas condies:! ! A probabilidade de um smbolo ser igual ao anterior muito elevada;! possvel reconstruir S a partir de L.! ! !
12
Aplicao
! O mtodo de Burrows-Wheeler foi difundido principalmente pelo ! utilitrio de compactao de dados bzip2.!
! ! utilizado em:! ! Imagens;! Sons;! Texto.! !
! !
13
Concluses
A
compresso
de
dados
surgiu
das
pesquisas
de
criptograa;
A
compresso
sem
perdas
permite
a
recuperao
total
dos
dados
originais,
contudo
apresenta
baixa
taxa
de
compresso
se
comparada
aos
mtodos
com
perdas;
Para
que
comprimir?
Com
o
advento
dos
computadores
digitais,
a
compactao
de
dados
passou
a
ser
obrigatria;
Compresso
baseada
em
dicionrio
possuem
as
tcnicas
mais
ecientes.
Para
reduo
do
espao
=sico
u>lizado;
Para
agilizao
na
transmisso
de
dados.
OBRIGADO!
PERGUNTAS?
2