Compressão de Dados - Final (Completo rev 2)
-
Upload
alexandre-souza -
Category
Documents
-
view
60 -
download
3
Transcript of Compressão de Dados - Final (Completo rev 2)
![Page 1: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/1.jpg)
1
Alexandre Souza Francisco Mesqui5a
Simoni Krüger Carla Pires
Fabrício Ferreira
Algoritmos e Estruturas de Dados!
![Page 2: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/2.jpg)
Definição • Representação de uma fonte de dados da maneira mais precisa
possível uElizando um menor número de bits; • Fazer com que a mesma quanEdade de informação caiba em um
espaço menor; • Eliminar as redundâncias: recorrências de letras, dígitos ou pixels; • Receptor deve ser capaz de decodificar os dados para acessar a
informação; • 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 (decodifica por meio de uma tabela).
2
![Page 3: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/3.jpg)
Histórico • A compressão é oriunda da criptografia: algoritmo de
compressão é um codificador e um decodificador; • Relatos de encriptação por volta de 1500 a.C. (escrita cifrada
para guardar segredos); • Gregos e espartanos usavam códigos em movimentos bélicos
durante as guerras (475 a.C); • No século XIX a invenção do telégrafo e do Código Morse abriu
espaço para a criptografia moderna que deixou de ser processos altamente manuais;
3
![Page 4: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/4.jpg)
Histórico • 1a Guerra Mundial (1914 a 1918): máquinas de codificação
mecânicas usadas para codificar e decodificar textos usando encriptações sofisEcadas e complexas;
• 2a Guerra Mundial (1939 a 1945): codificação da mensagem para esconder a informação do inimigo e reduzir a quanEdade de informações que eram passadas através dos rádios (surge a compactação de dados);
• Advento dos computadores digitais: – necessidade da criação de códigos seguros e inquebráveis; – necessidade de reduzir espaço nos meios de armazenamento e
transmissão de dados, reduzindo custos e viabilizando projetos.
4
![Page 5: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/5.jpg)
Por que comprimir?
• Velocidade de processamento dos computadores aumentou; Tempo de acesso a discos magnéEcos tem se manEdo praEcamente constante;
• É mais vantajoso invesEr em poder de computação em compressão de dados em troca de menos espaço para armazenamento de dados em disco ou em menor tempo transmissão de dados pela rede;
• Reduz custos operacionais: – OEmização do espaço em disco para armazenamento; – Redução do tráfico da rede;
5
![Page 6: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/6.jpg)
Por que comprimir? • Internet e o uso intensivo de sistemas computacionais criaram
uma necessidade incremental de armazenar e transferir grande volume dados sobre uma infraestrutura existente (redes de computadores);
• Aumento da autonomia da bateria de disposiEvos portáteis devido a redução da quanEdade de dados a serem transmiEdos;
• Tecnologias como telefonia 3G, fotos geradas por câmeras digitais, música digital, TV digital, bibliotecas digitais;
• EsEma-‐se que em uma biblioteca digital é possível uma economia de 50 a 60% de espaço uElizando compressão de dados;
• Tornou viável a aplicações de videoconferência; • Redução do espaço necessário para backups; • Emails e downloads da internet.
6
![Page 7: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/7.jpg)
Desvantagens
• Custo de processamento na compressão e na descompressão;
• Custo para armazenar a tabela de símbolos ou dicionário;
• Ganhos expressivos são obEdos apenas com métodos de compressão que não permitem reconstruir os dados exatamente da maneira como eram antes da compressão.
7
![Page 8: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/8.jpg)
Técnicas Lossless • Sem perda de dados; • Permite a reconstrução exata do conteúdo original a
parEr da fonte comprimida; • Explora a redundância dos dados; • Aplicável à maioria das fontes de informação:
– Imagens médicas digitais; – Transmissão de textos; – Programas executáveis; – Banco de dados; – Informações bancárias.
• Ex.: transformação de Burrows-‐Wheeler, codificação de Huffman, LZ77, LZ78, LZW, ZIP, RAR, ARJ, PNG, GIF, PNG.
8
![Page 9: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/9.jpg)
Técnicas Lossless • Classificação: – Codificação estáDca: o mapeamento entre as mensagens e o conjunto de palavras-‐código é determinado antes do início da transmissão (requer duas passagens pela fonte de dados);
– Codificação adaptaDva: o mapeamento entre as mensagens e o conjunto das palavras código muda com o tempo (uma única passagem sobre a fonte de dados);
– Codificação híbrida: usa conceitos tanto da codificação estáEca quanto da adaptaEva.
9
![Page 10: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/10.jpg)
Técnicas Lossy
• Com perda de dados (a informação descomprimida é diferente da original);
• Comprime os dados eliminando definiEvamente certas redundâncias; • Perdem-‐se dados sucessivamente, à medida em que se aplica o algoritmo
várias vezes; • Explora redundâncias temporais e espaciais presentes nas fontes de
dados; • Leva em consideração a percepção humana, que é incapaz de perceber
certas perdas em imagens, áudio e vídeo: – Sons de frequências muito altas ou muito baixas que os humanos não ouvem; – Detalhes muito suEs como a diferença de cores; – Movimentos muito rápidos que não conseguimos acompanhar em um filme;
• Taxas de compressão melhores que das técnicas lossless (50:1 a 10000:1); • Exemplos: JPEG, MPEG, DIVx, MP3.
10
![Page 11: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/11.jpg)
Técnicas Lossy
• Classificação: – Métodos de transformação: amostras de figuras ou sons são
transformados em pequenos segmentos, os quais são transformados em um novo espaço base e quanEdades (limitação de possíveis valores). Os valores quanEzados são codificados para entropia (trata de cadeias de bits sem levar em conta seu significado);
– Métodos prediDvos: informações decodificadas são usadas para prever qual será o próximo pacote. O erro entre o dado previsto e o dado real, junto com qualquer informação extra necessária para reproduzir a previsão, são quanEzados e codificados. Ex.: próximo frame de imagem;
– Métodos híbridos: uso de ambas técnicas.
11
![Page 12: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/12.jpg)
1
Algoritmos e Estruturas de Dados!
![Page 13: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/13.jpg)
Histórico
2
David Albert Huffman (09-‐08-‐1925 – 07-‐10-‐1999)
![Page 14: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/14.jpg)
Codificação de Huffman
O que é? É um método de compactação que usa as probabilidades de ocorrência dos símbolos no conjunto de dados a ser compactado para determinar códigos de tamanho variável para cada símbolo.
3
![Page 15: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/15.jpg)
Codificação de Huffman
4
ObjeJvo Tem por objeDvo a construção de uma árvore binária baseada na frequência de uso das letras do a l fabeto de modo que as mais frequentemente uDlizadas apareçam mais perto da raiz.
![Page 16: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/16.jpg)
Codificação de Huffman
5
ObjeJvo Esta árvore binária é construída da baixo para cima (das folhas para a raiz) , começando a parDr das letras menos usadas até aDngir a raiz.
![Page 17: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/17.jpg)
Codificação de Huffman
Etapas
• Cálculo da frequência de cada caracter no arquivo
• Execução do algoritmo de Huffman para construção de uma árvore binária (árvore de Huffman) • Codificação Propriamente dita
6
![Page 18: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/18.jpg)
Codificação de Huffman
7
Como Funciona
No início do algorítmo, cada uma das letras forma uma árvore que é composta apenas pela raiz e cujo conteúdo é a frequência com que esta letra ocorre no texto em questão. Em seguida, são escolhidas as duas árvores com as menores frequências associadas e elas são unidas em uma só árvore cujo valor da raíz é a soma do valor destas duas. Este processo é repeDdo até a existência de uma única árvore.
![Page 19: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/19.jpg)
Codificação de Huffman (exemplo)
Sequência de caracteres: FAAFEEEAAAAEEEECCAAAAAAAAACFFCCAAAACCCBAAAB BBBAAAAAAAADDDDBBBBBBDDDDAAAAAADDDDDDAAA AEE Caracteres: FECBDA Frequência: 5 9 12 13 16 45 (respecDvamente) Dados iniciais ordenados por frequencia de ocorrência
8
F 5
E 9
C 12
B 13
D 16
A 45
![Page 20: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/20.jpg)
Codificação de Huffman (exemplo)
9
F 5
E 9
C 12
B 13
D 16
A 45
F 5
E 9
C 12
B 13
D 16
A 45 14
![Page 21: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/21.jpg)
Codificação de Huffman (exemplo)
10
F 5
E 9
C 12
B 13
D 16
A 45 14
F 5
E 9
C 12
B 13
D 16
A 45 14 25
![Page 22: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/22.jpg)
Codificação de Huffman (exemplo)
11
F 5
E 9
C 12
B 13
D 16
A 45 14 25
![Page 23: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/23.jpg)
Codificação de Huffman (exemplo)
12
F 5
E 9
C 12
B 13
D 16
A 45
14
25 30
![Page 24: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/24.jpg)
Codificação de Huffman (exemplo)
13
F 5
E 9
C 12
B 13
D 16
A 45
14
25 30
55
13
![Page 25: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/25.jpg)
Codificação de Huffman (exemplo)
14
F 5
E 9
C 12
B 13
D 16
A 45
14
25 30
55
100 0! 1!
0! 1!
1!
1!
0!
0!
0!1!
![Page 26: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/26.jpg)
Codificação de Huffman (Codificação)
15
A tabela de codificação resultante
Caracter Huffman A 0 C 100 B 101 D 111 F 1100 E 1101
![Page 27: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/27.jpg)
Codificação de Huffman (Codificação)
16
A tabela de codificação resultante
Caracter Huffman ASCII A 0 0100 0001 C 100 0100 0011 B 101 0100 0010 D 111 0100 0100 F 1100 0100 0110 E 1101 0100 0101
![Page 28: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/28.jpg)
Codificação de Huffman
17
Comparação entre a sequência de caracteres propostas uJlizando a codificação ASCII (8 bits) e uJlizando a codificação de Huffman.
Sem compactação (ASCII)
01000110010000010100000101000110010001010100010101000101010000010100000101000001010000010100010101000101010001010100010101000011010000110100000101000001010000010100000101000001010000010100000101000001010000010100001101000110010001100100001101000011010000010100000101000001010000010100001101000011010000110100001001000001010000010100000101000010010000100100001001000100100000101000001010000010100000101000001010000010100000101000001010010001000100010001000100010001000010010000100100001001000010010000100100001001000100010001000100010001000100010000010100000101000001010000010100000101000001010001000100010001000100010001000100010001000100010000010100000101000001010000010100010101000101
Com compactação
11000011001101110111010000110111011101110110010000000000010011001100100100000010010010010100010110110110100000000111111111111101101101101101101111111111111000000111111111111111111000011011101
![Page 29: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/29.jpg)
Codificação de Huffman
18
Decodificação Para decodificar uma mensagem obDda, basta ir uDlizando cada bit da mensagem para percorrer a arvore de Huffman desde a raiz até alguma folha, quando se obtém o símbolo decodificado. Volte então para a raiz e conDnue a percorrer a árvore para decodificar o próximo símbolo.
![Page 30: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/30.jpg)
1
Algoritmos e Estruturas de Dados!
![Page 31: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/31.jpg)
Codificação Shannon-‐Fano
2
![Page 32: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/32.jpg)
Codificação Shannon-‐Fano
3
![Page 33: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/33.jpg)
Codificação Shannon-‐Fano
4
![Page 34: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/34.jpg)
Codificação Shannon-‐Fano
5
!
![Page 35: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/35.jpg)
Codificação Shannon-‐Fano
6
!
![Page 36: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/36.jpg)
Codificação Shannon-‐Fano
7
!
![Page 37: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/37.jpg)
Codificação Shannon-‐Fano
8
!
![Page 38: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/38.jpg)
Codificação Shannon-‐Fano
9
!
![Page 39: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/39.jpg)
Codificação Shannon-‐Fano
10
!
![Page 40: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/40.jpg)
11
Algoritmos e Estruturas de Dados!
![Page 41: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/41.jpg)
Família LZ - Compressão por Substituição
IntroduçãoJacob Ziv e Abraham Lempel desenvolveram algoritmospara compressão de dados na década de 70;
Os algoritmos Lempel-Ziv baseiam-se no princípio decompressão por substituição;
Esses algoritmos usam duas estruturas:
1 Dicionário2 Área de Pesquisa
A idéia é que sempre que uma frase é repetida, na área depesquisa, substituir a ocorrência original da frase por umareferência armazenada no dicionário.
![Page 42: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/42.jpg)
Compressão - LZW (Lempel-Ziv-Welch)
Família LZ - Exploram Redundância de dados
LZ77LZSS e LZH - Variação do LZ77
LZ78LZC, LZT e LZW - Variação do LZ78
LZW - Lempel-Ziv-WelchDesenvolvida por Terry Welch em 1984;Usa a compactação baseada em dicionário;É baseado na construção de um dicionário de símbolos apartir do fluxo de entrada;A variação introduzida foi iniciar o dicionário com todas asfrases que contém apenas um símbolo no alfabeto que estásendo usado.
![Page 43: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/43.jpg)
Compressão LZW
LZW - Lempel-Ziv-WelchPara se obter a codificação através do método LZW devemser seguidos os seguintes passos:
1 Inicialize o dicionário com todos os símbolos;2 Procure, no código a ser comprimido, pelo bloco mais longo
que tenha registro no dicionário;3 Codifique o bloco com o índice que consta no dicionário,4 Adicione o bloco, seguido pelo próximo caractere da
sequência, ao dicionário, e volte ao passo 2;5 Parada.
Para decodificar o código gerado, basta trocar os índices pelasfrases a eles associadas.
M. Soares, P. Martins, R. Pereira e D. Coutinho..
![Page 44: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/44.jpg)
Funcionamento
Exemplo:codificação do texto: BABABABABABAB, a partir de trêssímbolos (A, B, C)
a tabela de sequências é inicializada com os três símbolos:A, B e C.
![Page 45: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/45.jpg)
Funcionamento
Exemplo: BABABABABABAB
A tabela e a informação codificada obtidas após a aplicaçãodo algoritmo são:
![Page 46: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/46.jpg)
Aplicações que usam LZ ou variantes
Notas:Unix Compression
O algoritmo LZC é utilizado pelo utilitário do UNIX;GIF (Graphics Interchange Format)
Muito similar ao compress do UNIX também usa LZC;Protocolo V42bis
Usa uma variante do LZW (LZT);
Zip e gzip usam uma variante do LZ77 combinada comHuffman;ARJ usa a codificação 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 imagensPNG;
![Page 47: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/47.jpg)
Notas finais
Notas:LZ77 não tem patente, razão pela qual é usado em, muitoscompactadores.LZ78 e LZW possuem patente;O problema básico dos algoritmos que usam dicionário é amemória usada para guardar o dicionário;Atualmente existem algoritmos com taxas de compressãosignificantemente melhores que os Lempel-Ziv’s, porémdevido a vantajosa simplicidade computacional, este tipo decodificador ainda é largamente usado.
![Page 48: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/48.jpg)
Referências
Literatura consultadaM. Pasin. Uma Breve Introdução à Compressão de Dados,2007M. Camara. Criptografia e Compressão de Dados. 2004.M. Soares, P. Martins, R. Pereira e D. Coutinho.Compressão de Dados com o Algoritmo Lempel-Ziv: Umcaso Estudado. 2002.A. L Brasil. O Algoritmo LZW
![Page 49: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/49.jpg)
1
Algoritmos e Estruturas de Dados!
![Page 50: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/50.jpg)
Algoritmos de codificação (LZSS) baseada em dicionário sem perda de dados;
Codificação de sequências vs codificação de símbolos;
2
Algoritmos Adaptados
![Page 51: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/51.jpg)
1977 • LZ77 : Jacob Ziv e Abraham Lempel;
1978 • LZ78 : por Jacob Ziv e Abraham
Lempel;
1982 • LZSS: Storer e Szymanski;
1984 • LSW : Terry Welch;
3
Algoritmos Adaptados
![Page 52: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/52.jpg)
4
LZ77 • O Dicionário contém os símbolos já codificados;
• O look-ahead contém os símbolos a serem codificados, “janela futura”;
• “Janela deslizante” de dimensão fixa.
![Page 53: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/53.jpg)
Procura-‐se uma cadeia a parSr do primeiro caracter da janela futura que também esteja presente na janela de texto.
Sendo encontrada alguma coincidência, a cadeia passa a ser
codificada em um bloco de três parâmetros (i, n, p). i -‐ Posição do inicio da cadeia na janela de texto; n-‐ O comprimento da cadeia; p-‐ Primeiro caracter da janela futura após o fim da cadeia.
5
LZ77
![Page 54: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/54.jpg)
• A dimensão do dicionário condiciona até onde se pode pesquisar;
• A dimensão do look-‐ahead, janela futura, condiciona a máxima dimensão da sequência a codificar;
• Se aumentar o tamanho da janela futura, maior compressão "vantagem", por exemplo, de 128 caracteres para 1024, torna-‐se oito vezes mais lento.
• É ineficiente pesquisar com frases de 2 ou menos símbolos (devido aos bits gastos para o índice e dimensão da frase);
6
Deficiências do Algoritmo LZ77
![Page 55: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/55.jpg)
Abraham Lempel e Jacob Ziv evoluíram LZ77. Novo algoritmo LZ78, criando uma estrutura em árvore, onde cada nó pode possuir um número de ramificações igual ao comprimento do alfabeto uSlizado.
7
LZ78
![Page 56: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/56.jpg)
8
Compressão LZSS Variante do LZ77 e LZ78 proposta por Storer e Szymanski em 1982.! ! Na codificação!!
ü Não inclui o símbolo que se segue à frase na área !de look-ahead, janela futura.!
!ü Usa dois formatos:!
! ! !- Um token com (n, i), ou! !- Só um símbolo.!!
ü Usa um bit extra para distinguir os dois formatos.!
ü Sempre que a frase a codificar já existir no dicionário e o !número de elementos coincidentes for pelo menos 3 é !usado o primeiro formato, senão é!usado o segundo. !
![Page 57: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/57.jpg)
9
Descompressão O processo de decodificação.!!• !Reverso do processo de codificação, usa uma tabela buscando o !apontador do dicionário da palavra-código entrada.!
• !Ao mesmo tempo, o dicionário cresce de forma idêntica àquele !do codificador. !
• !Descodificação sem perda em virtude da propriedade do prefixo !do dicionário garantir.!
• !São limitado o número de caracteres que podem ser enviados !para o decodificador em um código.!
• !Decodificador pode ser determinístico, predizer o dicionário do !codificador conforme as palavras-código entradas.!
![Page 58: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/58.jpg)
10
Aplicação !!!
O Zip e o gzip usam uma variante do LZ77 combinada com Huffman estático.!
!!O ARJ usa a codificação de Huffman e o algoritmo LZSS.!!!!O WINRAR usa o LZ77 e Huffman.!!!!
![Page 59: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/59.jpg)
11
Burrows-‐Wheeler O método de compressão de Burrows-Wheeler foi descrito em 1994.!!Ele é baseado em uma pesquisa (não publicada) de Wheeler em 1983. !!Sendo uma combinação de três algoritmos: !!• !Uma função de transformação BWT, que reordena os bytes !originais, tornando-os bastante propícios para compressão. !
• Aplica uma função heurística MTF. Faz com que os !dados de !saída contenham muitos zeros e grande tendência para !números
positivos pequenos. !
• Por fim submete os dados resultantes a algum método de !compressão que atue sobre estatísticas dos dados !(por !exemplo, código de Huffman).!
" !
!
![Page 60: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/60.jpg)
12
Burrows-‐Wheeler
! Descrição do algoritmo "Burrows-Wheeler Transform“!!• !Diferente dos algoritmos da família "LZ", o BWT opera em blocos !de dados.!
• !Quanto maior o tamanho dos blocos, maior a taxa de !compressão atingida.!
!Ideia básica: dada uma sequência S de n símbolos, reordenar os símbolos formando outra sequência L, que verifica duas condições:!!• A probabilidade de um símbolo ser igual ao anterior é muito elevada;!• É possível reconstruir S a partir de L.!
!!
!
![Page 61: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/61.jpg)
13
Aplicação !!
!!!
O método de Burrows-Wheeler foi difundido principalmente pelo utilitário de compactação de dados bzip2.!!É utilizado em:!!• Imagens;!• Sons;!• Texto.!
!
![Page 62: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/62.jpg)
Conclusões
• A compressão de dados surgiu das pesquisas de criptografia; • A compressão sem perdas permite a recuperação total dos
dados originais, contudo apresenta baixa taxa de compressão se comparada aos métodos com perdas;
• Para que comprimir? – Para redução do espaço =sico u>lizado; – Para agilização na transmissão de dados.
• Com o advento dos computadores digitais, a compactação de dados passou a ser obrigatória;
• Compressão baseada em dicionário possuem as técnicas mais eficientes.
1
![Page 63: Compressão de Dados - Final (Completo rev 2)](https://reader036.fdocuments.net/reader036/viewer/2022081401/5572027a4979599169a39692/html5/thumbnails/63.jpg)
OBRIGADO!
PERGUNTAS?
2