SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Complexidade de Algoritmos
Huffman

 Denilson Grosa
 Fernando Kaway
 Helder Cesar



                                                                1
                             Complexidade de Algoritmos - 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.




                                                                          2
                                       Complexidade de Algoritmos - Huffman
Algoritmo de Huffman?

 Algumas aplicações:
  JPEG;
  MP3;
  Zip.

 Variações:
  Codificação n-ária de Huffman;
  Codificação Adaptativa de Huffman;




                                                                          3
                                       Complexidade de Algoritmos - Huffman
JPEG

 Compressão:




Bloco   Transformada                         Codificador        Codificador
                            Quantizador
8x8px       DCT                                R.L.E.           Estatístico




                                                                 Tabela de
                       Fator de Compressão                      Codificação
                                                                                 Imagem
                                                                               Comprimida


                            Tabela de
                           Quantização



                                                                                          4
                                                       Complexidade de Algoritmos - Huffman
JPEG

Descompressão:
    Imagem
  Comprimida




   Decodif.     Decodif.                         Transformada          Bloco
                              Desquantizador
  Estatístico    R.L.E.                          DCT Inversa           8x8px




   Tabela de
                           Fator de Compressão
  Codificação



                                Tabela de
                               Quantização



                                                                                      5
                                                   Complexidade de Algoritmos - Huffman
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




                                                                             6
                                          Complexidade de Algoritmos - Huffman
Exemplo de Codificação

 Texto original: “CASA_PAPEL_HOTEL_PASTEL”
 Texto codificado:
 “000000010010000110010011000100110100010110010110
   01111000010001011001001100010010100001000101”
                     Letra   Código


                      C       0000
                      A       0001

   23*4 = 92bits      S       0010
                      P       0011
                      E       0100
                      L       0101
                      H       0110
                      O       0111
                      T       1000
                    Espaço    1001

                                                                         7
                                      Complexidade de Algoritmos - Huffman
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


       Maior prioridade.


 Lista com prioridade ordenada:

  C      H        O        S   T   P   E        L       Esp         A
  1      1        1        2   2   3   3        3         3         4




                                                                              8
                                           Complexidade de Algoritmos - Huffman
Exemplo de Codificação

 Construção da árvore:
   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



   C         H




                                                                        9
                                     Complexidade de Algoritmos - Huffman
Exemplo de Codificação

  O   S          T       C+H       P   E           L         Esp       A
  1   2          2        2        3    3          3          3        4



                     C         H



  T        C+H       P         E   L   Esp              O+S            A
  2         2        3         3   3    3                3             4



       C         H                                  O         S




                                                                               10
                                             Complexidade de Algoritmos - Huffman
Exemplo de Codificação

  P          E   L         Esp       O+S       A                T+C+H
  3          3   3           3        3        4                    4



                                 O         S                    T       2



                                                                    C       H

       P+E           L+Esp           O+S       A                T+C+H
        6              6              3        4                    4



   P         E   L         ''    O         S                    T       2



                                                                    C       H
                                                                                     11
                                                   Complexidade de Algoritmos - Huffman
Exemplo de Codificação

      O+S           A   T+C+H                 P+E                            L+' '
       3            4       4                  6                              6



  O         S           T         2       P           E                  L           ''


                            C         H

       T+C+H                P+E               L+' '                      O+S+A
            4                6                 6                              7



       T        2       P         E       L           ''                 3                A


            C       H                                                O        S
                                                                                             12
                                                           Complexidade de Algoritmos - Huffman
Exemplo de Codificação

          L+' '                O+S+A                   T+C+H+P+E
           6                       7                        10



      L           ''       3           A          4                      6


                       O       S           T            2            P        E



                                                   C        H




                                                                                 13
                                               Complexidade de Algoritmos - Huffman
Exemplo de Codificação

           T+C+H+P+E                    L+' '+A+O+S
               10                                13



       4                6           6                          7



   T       2        P       E   L       ''                3         A



       C       H                                      O       S




                                                                               14
                                             Complexidade de Algoritmos - Huffman
Exemplo de Codificação

                            T+C+H+P+E+L+' '+A+O+S
                                     23



                   10                                        13


       4                     6                 6                           7



   T       2            P        E         L        ''                3         A



       C       H                                                  O       S




                                                                                           15
                                                         Complexidade de Algoritmos - Huffman
Exemplo de Codificação

 Atribuição de código:
                                                          23
                                              0                        1                                             Letra   Código

                             10                                                     13
                                                                                                                      C       0010
                     0            1
                                                                                0                1                    A       111
                                                                                                                      S       1101
         4                                    6                        6                                 7
                                                                                                                      P       010
     0       1                            0       1                0       1                         0       1        E       011
                                                                                                                      L       100
 T               2                    P               E        L               ''                3               A    H       0011

             0       1                                                                       0       1                O       1100
                                                                                                                      T       000
         C               H                                                               O               S           Esp.     101




                                                                                                                               16
                                                                                             Complexidade de Algoritmos - Huffman
Exemplo de Codificação

 Comparando o “antes” e o “depois”:
 Texto original: “CASA_PAPEL_HOTEL_PASTEL”

 Texto codificado (antes):    Texto codificado (depois):

“00000001001000011001001     “001011111011111010101110
100010011010001011001011     100111001010011110000001
001111000010001011001001     110010101011111010000111
100010010100001000101”       00”

     Tam. Total: 92bits          Tam. Total: 74bits!!!!
               Taxa de Compressão ~ 20%
                                                                      17
                                    Complexidade de Algoritmos - Huffman
Decodificação



                        Letra   Código



Texto codificado:        C       0010
                         A       111
“001011111011111
010101110100111
                         S       1101
                                              Texto decodificado:
001010011110000
001110010101011
                    +    P
                         E
                         L
                                 010
                                 011
                                 100
                                         =    “CASA_PAPEL_H
                                              OTEL_PASTEL”
                         H       0011
11101000011100”          O       1100
                         T       000
                        Esp.     101




                                                                           18
                                         Complexidade de Algoritmos - Huffman
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




                                                                                   19
                                                 Complexidade de Algoritmos - Huffman

Weitere ähnliche Inhalte

Was ist angesagt?

Mini Curso - Gestão de Infraestrutura de TI
Mini Curso - Gestão de Infraestrutura de TIMini Curso - Gestão de Infraestrutura de TI
Mini Curso - Gestão de Infraestrutura de TI
Paulo Nascimento
 

Was ist angesagt? (20)

Mini Curso - Gestão de Infraestrutura de TI
Mini Curso - Gestão de Infraestrutura de TIMini Curso - Gestão de Infraestrutura de TI
Mini Curso - Gestão de Infraestrutura de TI
 
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
 
Governança de TI - Aula8 - introdução ao ITIL
Governança de TI - Aula8 - introdução ao  ITILGovernança de TI - Aula8 - introdução ao  ITIL
Governança de TI - Aula8 - introdução ao ITIL
 
Exemplo de Requisição de Mudança ITIL
Exemplo de Requisição de Mudança ITILExemplo de Requisição de Mudança ITIL
Exemplo de Requisição de Mudança ITIL
 
Catálogo de serviços ITIL template
Catálogo de serviços ITIL templateCatálogo de serviços ITIL template
Catálogo de serviços ITIL template
 
Implantação de Central de Serviços - Servicedesk
Implantação de Central de Serviços - ServicedeskImplantação de Central de Serviços - Servicedesk
Implantação de Central de Serviços - Servicedesk
 
Governança itil
Governança itilGovernança itil
Governança itil
 
2. sistema fuzzy
2. sistema fuzzy2. sistema fuzzy
2. sistema fuzzy
 
Governança cobit
Governança cobitGovernança cobit
Governança cobit
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Gerenciamento e Monitoramento de Rede.pdf
Gerenciamento e Monitoramento de Rede.pdfGerenciamento e Monitoramento de Rede.pdf
Gerenciamento e Monitoramento de Rede.pdf
 
Relatório de gerenciamento de mudanças
Relatório de gerenciamento de mudançasRelatório de gerenciamento de mudanças
Relatório de gerenciamento de mudanças
 
ITIL 4
ITIL 4ITIL 4
ITIL 4
 
Exercício redes cap 3
Exercício redes cap 3Exercício redes cap 3
Exercício redes cap 3
 
projecto de rede computadores
projecto de rede computadoresprojecto de rede computadores
projecto de rede computadores
 
TCC em ITIL: Gestão de serviços de TI - dois estudos de caso
TCC em ITIL: Gestão de serviços de TI - dois estudos de casoTCC em ITIL: Gestão de serviços de TI - dois estudos de caso
TCC em ITIL: Gestão de serviços de TI - dois estudos de caso
 
Projeto integradoriv versao-final
Projeto integradoriv versao-finalProjeto integradoriv versao-final
Projeto integradoriv versao-final
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Ebook ITIL Na Prática
Ebook ITIL Na PráticaEbook ITIL Na Prática
Ebook ITIL Na Prática
 
Métricas e Indicadores baseados na ITIL
Métricas e Indicadores baseados na ITILMétricas e Indicadores baseados na ITIL
Métricas e Indicadores baseados na ITIL
 

Andere mochten auch (10)

Trabalho Estrutura De Dados Algoritmos De CompactaçãO
Trabalho Estrutura De Dados   Algoritmos De CompactaçãOTrabalho Estrutura De Dados   Algoritmos De CompactaçãO
Trabalho Estrutura De Dados Algoritmos De CompactaçãO
 
Compactação e Compressão de Dados
Compactação e Compressão de DadosCompactação e Compressão de Dados
Compactação e Compressão de Dados
 
Técnicas de compressão de dados
Técnicas de compressão de dadosTécnicas de compressão de dados
Técnicas de compressão de dados
 
compressao de dados
compressao de dadoscompressao de dados
compressao de dados
 
Radiotelegrafia código morse
Radiotelegrafia   código morseRadiotelegrafia   código morse
Radiotelegrafia código morse
 
Método de compressão de Huffman
Método de compressão de Huffman Método de compressão de Huffman
Método de compressão de Huffman
 
Compressão de dados
Compressão de dadosCompressão de dados
Compressão de dados
 
Código de Huffman
Código de HuffmanCódigo de Huffman
Código de Huffman
 
Algoritimo de Huffman
Algoritimo de HuffmanAlgoritimo de Huffman
Algoritimo de Huffman
 
ITI Slides
ITI SlidesITI Slides
ITI Slides
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Compressão Huffman

  • 1. Complexidade de Algoritmos Huffman Denilson Grosa Fernando Kaway Helder Cesar 1 Complexidade de Algoritmos - Huffman
  • 2. Algoritmo de Huffman? Compressão de dados; Técnicas estatísticas; Conceitos básicos de Estrutura de Dados: Lista com Prioridade; Árvore Binária. 2 Complexidade de Algoritmos - Huffman
  • 3. Algoritmo de Huffman? Algumas aplicações: JPEG; MP3; Zip. Variações: Codificação n-ária de Huffman; Codificação Adaptativa de Huffman; 3 Complexidade de Algoritmos - Huffman
  • 4. JPEG Compressão: Bloco Transformada Codificador Codificador Quantizador 8x8px DCT R.L.E. Estatístico Tabela de Fator de Compressão Codificação Imagem Comprimida Tabela de Quantização 4 Complexidade de Algoritmos - Huffman
  • 5. JPEG Descompressão: Imagem Comprimida Decodif. Decodif. Transformada Bloco Desquantizador Estatístico R.L.E. DCT Inversa 8x8px Tabela de Fator de Compressão Codificação Tabela de Quantização 5 Complexidade de Algoritmos - Huffman
  • 6. 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 6 Complexidade de Algoritmos - Huffman
  • 7. Exemplo de Codificação Texto original: “CASA_PAPEL_HOTEL_PASTEL” Texto codificado: “000000010010000110010011000100110100010110010110 01111000010001011001001100010010100001000101” Letra Código C 0000 A 0001 23*4 = 92bits S 0010 P 0011 E 0100 L 0101 H 0110 O 0111 T 1000 Espaço 1001 7 Complexidade de Algoritmos - Huffman
  • 8. 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 Maior prioridade. Lista com prioridade ordenada: C H O S T P E L Esp A 1 1 1 2 2 3 3 3 3 4 8 Complexidade de Algoritmos - Huffman
  • 9. Exemplo de Codificação Construção da árvore: 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 C H 9 Complexidade de Algoritmos - Huffman
  • 10. Exemplo de Codificação O S T C+H P E L Esp A 1 2 2 2 3 3 3 3 4 C H T C+H P E L Esp O+S A 2 2 3 3 3 3 3 4 C H O S 10 Complexidade de Algoritmos - Huffman
  • 11. Exemplo de Codificação P E L Esp O+S A T+C+H 3 3 3 3 3 4 4 O S T 2 C H P+E L+Esp O+S A T+C+H 6 6 3 4 4 P E L '' O S T 2 C H 11 Complexidade de Algoritmos - Huffman
  • 12. Exemplo de Codificação O+S A T+C+H P+E L+' ' 3 4 4 6 6 O S T 2 P E L '' C H T+C+H P+E L+' ' O+S+A 4 6 6 7 T 2 P E L '' 3 A C H O S 12 Complexidade de Algoritmos - Huffman
  • 13. Exemplo de Codificação L+' ' O+S+A T+C+H+P+E 6 7 10 L '' 3 A 4 6 O S T 2 P E C H 13 Complexidade de Algoritmos - Huffman
  • 14. Exemplo de Codificação T+C+H+P+E L+' '+A+O+S 10 13 4 6 6 7 T 2 P E L '' 3 A C H O S 14 Complexidade de Algoritmos - Huffman
  • 15. Exemplo de Codificação T+C+H+P+E+L+' '+A+O+S 23 10 13 4 6 6 7 T 2 P E L '' 3 A C H O S 15 Complexidade de Algoritmos - Huffman
  • 16. Exemplo de Codificação Atribuição de código: 23 0 1 Letra Código 10 13 C 0010 0 1 0 1 A 111 S 1101 4 6 6 7 P 010 0 1 0 1 0 1 0 1 E 011 L 100 T 2 P E L '' 3 A H 0011 0 1 0 1 O 1100 T 000 C H O S Esp. 101 16 Complexidade de Algoritmos - Huffman
  • 17. Exemplo de Codificação Comparando o “antes” e o “depois”: Texto original: “CASA_PAPEL_HOTEL_PASTEL” Texto codificado (antes): Texto codificado (depois): “00000001001000011001001 “001011111011111010101110 100010011010001011001011 100111001010011110000001 001111000010001011001001 110010101011111010000111 100010010100001000101” 00” Tam. Total: 92bits Tam. Total: 74bits!!!! Taxa de Compressão ~ 20% 17 Complexidade de Algoritmos - Huffman
  • 18. Decodificação Letra Código Texto codificado: C 0010 A 111 “001011111011111 010101110100111 S 1101 Texto decodificado: 001010011110000 001110010101011 + P E L 010 011 100 = “CASA_PAPEL_H OTEL_PASTEL” H 0011 11101000011100” O 1100 T 000 Esp. 101 18 Complexidade de Algoritmos - Huffman
  • 19. 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 19 Complexidade de Algoritmos - Huffman