Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Compressão de Huffman

Compressão de Huffman

Apresentação sobre o algoritmo de compressão de Huffman

Helder Oliveira

April 10, 2012
Tweet

More Decks by Helder Oliveira

Other Decks in Research

Transcript

  1. 1 Complexidade de Algoritmos - Huffman Huffman Huffman Denilson Grosa

    Fernando Kaway Helder Cesar Complexidade de Algoritmos
  2. 2 Complexidade de Algoritmos - Huffman Algoritmo de Huffman? Algoritmo

    de Huffman? Compressão de dados; Técnicas estatísticas; Conceitos básicos de Estrutura de Dados: Lista com Prioridade; Árvore Binária.
  3. 3 Complexidade de Algoritmos - Huffman Algoritmo de Huffman? Algoritmo

    de Huffman? Algumas aplicações: JPEG; MP3; Zip. Variações: Codificação n-ária de Huffman; Codificação Adaptativa de Huffman;
  4. 4 Complexidade de Algoritmos - Huffman JPEG JPEG Transformada DCT

    Quantizador Codificador R.L.E. Codificador Estatístico Tabela de Quantização Tabela de Codificação Bloco 8x8px Compressão: Fator de Compressão Imagem Comprimida
  5. 5 Complexidade de Algoritmos - Huffman JPEG JPEG Descompressão: Transformada

    DCT Inversa Desquantizador Decodif. R.L.E. Decodif. Estatístico Bloco 8x8px Tabela de Quantização Fator de Compressão Tabela de Codificação Imagem Comprimida
  6. 6 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação Vamos codificar a mensagem: “CASA PAPEL HOTEL PASTEL” Tabela de frequências: Letra Frequencia C 1 A 4 S 2 P 3 E 3 L 3 H 1 O 1 T 2 Espaço 3
  7. 7 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação Texto original: “CASA_PAPEL_HOTEL_PASTEL” Texto codificado: “000000010010000110010011000100110100010110010110 01111000010001011001001100010010100001000101” Letra Código C 0000 A 0001 S 0010 P 0011 E 0100 L 0101 H 0110 O 0111 T 1000 Espaço 1001 23*4 = 92bits
  8. 8 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação Lista com prioridade: C A S P E L H O T Esp 1 4 2 3 3 3 1 1 2 3 Lista com prioridade ordenada: Maior prioridade. C H O S T P E L Esp A 1 1 1 2 2 3 3 3 3 4
  9. 9 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação Construção da árvore: C H C H O S T P E L Esp A 1 1 1 2 2 3 3 3 3 4 C+H O S T P E L Esp A 2 1 2 2 3 3 3 3 4
  10. 10 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação C H O S T C+H P E L Esp A 1 2 2 2 3 3 3 3 4 T C+H P E L Esp O+S A 2 2 3 3 3 3 3 4 S O C H
  11. 11 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação P E L Esp O+S A T+C+H 3 3 3 3 3 4 4 C H T 2 P+E L+Esp O+S A T+C+H 6 6 3 4 4 C H T 2 ' ' L E P S O S O
  12. 12 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação O+S A T+C+H P+E L+' ' 3 4 4 6 6 C H T 2 ' ' L E P S O T+C+H P+E L+' ' O+S+A 4 6 6 7 C H T 2 ' ' L E P S O A 3
  13. 13 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação L+' ' O+S+A T+C+H+P+E 6 7 10 C H T 2 ' ' L E P 6 4 S O A 3
  14. 14 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação T+C+H+P+E L+' '+A+O+S 10 13 C H T 2 ' ' L E P 6 4 S O A 3 7 6
  15. 15 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação T+C+H+P+E+L+' '+A+O+S 23 C H T 2 ' ' L E P 6 4 S O A 3 7 6 13 10
  16. 16 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação C H T 2 ' ' L E P 6 4 S O A 3 7 6 13 10 0 Letra Código C 0010 A 111 S 1101 P 010 E 011 L 100 H 0011 O 1100 T 000 Esp. 101 23 Atribuição de código: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
  17. 17 Complexidade de Algoritmos - Huffman Exemplo de Codificação Exemplo

    de Codificação Comparando o “antes” e o “depois”: Texto original: “CASA_PAPEL_HOTEL_PASTEL” Texto codificado (antes): “00000001001000011001001 100010011010001011001011 001111000010001011001001 100010010100001000101” Tam. Total: 92bits Texto codificado (depois): “001011111011111010101110 100111001010011110000001 110010101011111010000111 00” Tam. Total: 74bits!!!! Taxa de Compressão ~ 20%
  18. 18 Complexidade de Algoritmos - Huffman Decodificação Decodificação Texto codificado:

    “001011111011111 010101110100111 001010011110000 001110010101011 11101000011100” Letra Código C 0010 A 111 S 1101 P 010 E 011 L 100 H 0011 O 1100 T 000 Esp. 101 Texto decodificado: “CASA_PAPEL_H OTEL_PASTEL” + =
  19. 19 Complexidade de Algoritmos - Huffman Fontes Consultadas Fontes Consultadas

    Goodrich, M. T.; Tamassia, R.; Projeto de Algoritmos, Bookman, 2002; Huffman, D. A.; Method for the Construction of Minimum- Redundancy Codes, In: Proceedings of the Institute of Radio Engineers, Vol. 40, Nr. 9 (September 1952) , p. 1098-1101. http://www.cprogramming.com/tutorial/computersciencetheory/huffman.html http://algs4.cs.princeton.edu/55compression/Huffman.java.html http://www.ics.uci.edu/~dan/pubs/DC-Sec3.html http://en.wikipedia.org/wiki/Huffman_coding