SlideShare uma empresa Scribd logo
1 de 8
Código de Huffman
Gustavo Pinoti
Leonardo Matias Baldo
Leopoldo Ferreira de Paula
Lorenna de Araújo Martins
Murillo Cuervo Tarôuco
•Principio do Huffman seria usar menos bits para letras mais populares, casos
que seriam mais comuns de ocorrer, como exemplo A e E sendo mais
populares e Z ou K menos, assim como é usado em arquivos .zip, a
compactação de arquivos depende do uso de um menor número de bits que
o normal para representar dados.
Se você quer codificar
informações eficientemente, pode
se usar o bem conhecido Código
de Morse, podemos observar que
a letra mais comum E, possui
apenas 1 bip curto, o problema
desta codificação é que não se
pode decodificar imediatamente
pois se por exemplo ouvisse um
bip curto e um longo, pode
representar tanto A, quanto E
seguido de T, poderia se pausar
em cada letra para melhor
identificação, mas, qual o sentido
de pausar se o objetivo é acelerar
o envio de informação?
Código Morse
Foi então que David Albert Huffman criou uma codificação que fizesse
com que os padrões de letras mais populares fosse menor, e menos populares
maiores, porém, sem a falha que o código morse pode causar sendo uma
representação prefixo de outra.
Baseado em Árvores Binárias onde há talvez um filho a esquerda, talvez
um a direito e só, por exemplo, se uma pessoa queira enviar uma mensagem
assim:
“ECEABEADCAEDEEEECEADEEEEEDBAAEABDBBAAEAAACDDCCEABEEDCBEEDEAEE
EEEAEEDBCEBEEADEAEEDAEBCDEDEAEEDCEEAEEE”
Caso conte a frequência das letras e as dividir pelo número total de
letras, obtemos a seguinte tabela:
Carácter A B C D E
Frequência 0.2 0.1 0.1 0.15 0.45
Como podemos obter uma decodificação em binário para cada uma
dessas letras de um jeito que os “E”s tenham um padrão pequeno e “B”s e
“C”s tenham um padrão um pouco mais longo?
De um jeito mais rudimentar podemos pensar na linguagem C como
variáveis float representando as frequências e variáveis char representando
as letras, no nível maior, representa uma floresta de cinco árvores onde cada
uma delas tem apenas um Nó, o que Huffman propõe é combinar essas
árvores que tem menores frequências em árvores um pouco maiores as
fundindo por uma nova árvore que recebe um filho a esquerda e um a direita,
após isso repete o processo buscando os dois menores nós, os juntam até que
se obtenha uma única árvore.
Assim obtemos a codificação de Huffman onde a letra E, é
representado por 1, pois deve-se apenas mover a direita para se chegar, já o
A, será representado por 01, pois deve-se mover a esquerda depois a direita
para se chegar até ele, seguindo essa lógica obtemos:
10001101000010100100010110011111000110100111111001000001011010
00000100000000010110101010001001001000100011010000110010001000
01100110111111011100100000001100001101001101110010110000000100
110011011100100011101111
Não tem como se confundir ou conflitar entre as letras pois estão
todas sendo construídas da raiz para as folhas, os padrões são determinantes
e únicos para cada letra resolvendo a ambiguidade de Morse.
A sua grande utilidade é que se caso você queira enviar uma
mensagem prensada pela internet, melhor que usar a comum tabela ASCII,
pode-se enviar uma “mensagem Huffman codificada” onde caso queira enviar
a letra E, utilizará apenas 1 bit, contrário aos comuns 8 bits seguidos de
outros 8 bits. O problema desta codificação é que a escolha entre frequências
iguais é feito de forma arbitrária (B e C = 10%) portanto receptor da
mensagem codificada não consegue codificá-la sem antes ser informado o
mapeamento da árvore. A sacada do uso do codificação de Huffman vem de
que seja enviada apenas mensagens médias ou grandes pois enviar uma
mensagem pequena como Oi, seria enviado apenas 3 bits, porém informar o
mapeamento da árvore daria muito mais trabalho e “pesar mais” que apenas
enviar os 16 bits de uma vez, podemos ver o caso de arquivos Zips que se
forem muito pequenos, eles podem até aumentar o tamanho para
compressão, mas o zip identifica e não executa nada.

Mais conteúdo relacionado

Destaque (8)

Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
 
Compressão Huffman
Compressão HuffmanCompressão Huffman
Compressão Huffman
 
Sistema 4G
Sistema 4GSistema 4G
Sistema 4G
 
Codificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlabCodificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlab
 
Entropía y código de Huffman del mismo texto en diferentes idiomas.
Entropía y código de Huffman del mismo texto en diferentes idiomas.Entropía y código de Huffman del mismo texto en diferentes idiomas.
Entropía y código de Huffman del mismo texto en diferentes idiomas.
 
Arbol De Huffman
Arbol De HuffmanArbol De Huffman
Arbol De Huffman
 
CODIGO DE HUFFMAN
CODIGO DE HUFFMANCODIGO DE HUFFMAN
CODIGO DE HUFFMAN
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 

Último

5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......suporte24hcamin
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholacleanelima11
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 

Último (20)

5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 

Código de Huffman

  • 1. Código de Huffman Gustavo Pinoti Leonardo Matias Baldo Leopoldo Ferreira de Paula Lorenna de Araújo Martins Murillo Cuervo Tarôuco
  • 2. •Principio do Huffman seria usar menos bits para letras mais populares, casos que seriam mais comuns de ocorrer, como exemplo A e E sendo mais populares e Z ou K menos, assim como é usado em arquivos .zip, a compactação de arquivos depende do uso de um menor número de bits que o normal para representar dados.
  • 3. Se você quer codificar informações eficientemente, pode se usar o bem conhecido Código de Morse, podemos observar que a letra mais comum E, possui apenas 1 bip curto, o problema desta codificação é que não se pode decodificar imediatamente pois se por exemplo ouvisse um bip curto e um longo, pode representar tanto A, quanto E seguido de T, poderia se pausar em cada letra para melhor identificação, mas, qual o sentido de pausar se o objetivo é acelerar o envio de informação? Código Morse
  • 4. Foi então que David Albert Huffman criou uma codificação que fizesse com que os padrões de letras mais populares fosse menor, e menos populares maiores, porém, sem a falha que o código morse pode causar sendo uma representação prefixo de outra. Baseado em Árvores Binárias onde há talvez um filho a esquerda, talvez um a direito e só, por exemplo, se uma pessoa queira enviar uma mensagem assim: “ECEABEADCAEDEEEECEADEEEEEDBAAEABDBBAAEAAACDDCCEABEEDCBEEDEAEE EEEAEEDBCEBEEADEAEEDAEBCDEDEAEEDCEEAEEE” Caso conte a frequência das letras e as dividir pelo número total de letras, obtemos a seguinte tabela: Carácter A B C D E Frequência 0.2 0.1 0.1 0.15 0.45
  • 5. Como podemos obter uma decodificação em binário para cada uma dessas letras de um jeito que os “E”s tenham um padrão pequeno e “B”s e “C”s tenham um padrão um pouco mais longo? De um jeito mais rudimentar podemos pensar na linguagem C como variáveis float representando as frequências e variáveis char representando as letras, no nível maior, representa uma floresta de cinco árvores onde cada uma delas tem apenas um Nó, o que Huffman propõe é combinar essas árvores que tem menores frequências em árvores um pouco maiores as fundindo por uma nova árvore que recebe um filho a esquerda e um a direita, após isso repete o processo buscando os dois menores nós, os juntam até que se obtenha uma única árvore.
  • 6.
  • 7. Assim obtemos a codificação de Huffman onde a letra E, é representado por 1, pois deve-se apenas mover a direita para se chegar, já o A, será representado por 01, pois deve-se mover a esquerda depois a direita para se chegar até ele, seguindo essa lógica obtemos: 10001101000010100100010110011111000110100111111001000001011010 00000100000000010110101010001001001000100011010000110010001000 01100110111111011100100000001100001101001101110010110000000100 110011011100100011101111 Não tem como se confundir ou conflitar entre as letras pois estão todas sendo construídas da raiz para as folhas, os padrões são determinantes e únicos para cada letra resolvendo a ambiguidade de Morse.
  • 8. A sua grande utilidade é que se caso você queira enviar uma mensagem prensada pela internet, melhor que usar a comum tabela ASCII, pode-se enviar uma “mensagem Huffman codificada” onde caso queira enviar a letra E, utilizará apenas 1 bit, contrário aos comuns 8 bits seguidos de outros 8 bits. O problema desta codificação é que a escolha entre frequências iguais é feito de forma arbitrária (B e C = 10%) portanto receptor da mensagem codificada não consegue codificá-la sem antes ser informado o mapeamento da árvore. A sacada do uso do codificação de Huffman vem de que seja enviada apenas mensagens médias ou grandes pois enviar uma mensagem pequena como Oi, seria enviado apenas 3 bits, porém informar o mapeamento da árvore daria muito mais trabalho e “pesar mais” que apenas enviar os 16 bits de uma vez, podemos ver o caso de arquivos Zips que se forem muito pequenos, eles podem até aumentar o tamanho para compressão, mas o zip identifica e não executa nada.