compressão de dados - final (completo rev 2)

63
1 Alexandre Souza Francisco Mesqui5a Simoni Krüger Carla Pires Fabrício Ferreira Algoritmos e Estruturas de Dados

Upload: alexandre-souza

Post on 25-Jul-2015

60 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Compressão de Dados - Final (Completo rev 2)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

1  

Algoritmos e Estruturas de Dados!

Page 13: Compressão de Dados - Final (Completo rev 2)

Histórico  

2  

David  Albert  Huffman  (09-­‐08-­‐1925  –  07-­‐10-­‐1999)  

Page 14: Compressão de Dados - Final (Completo rev 2)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

1  

Algoritmos e Estruturas de Dados!

Page 31: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano    

2  

Page 32: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

 

3  

Page 33: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano    

4  

Page 34: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

5  

!

Page 35: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

6  

!

Page 36: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

7  

!

Page 37: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

8  

!

Page 38: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

9  

!

Page 39: Compressão de Dados - Final (Completo rev 2)

           Codificação  Shannon-­‐Fano  

10  

!

Page 40: Compressão de Dados - Final (Completo rev 2)

11  

Algoritmos e Estruturas de Dados!

Page 41: Compressão de Dados - Final (Completo rev 2)

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)

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)

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)

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)

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)

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)

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)

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)

1  

Algoritmos e Estruturas de Dados!

Page 50: Compressão de Dados - Final (Completo rev 2)

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)

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)

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)

        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)

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

                   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)

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)

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)

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)

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)

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)

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)

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)

OBRIGADO!    

PERGUNTAS?    

2