Documente Academic
Documente Profesional
Documente Cultură
CENTRO DE INFORMTICA
CURSO DE ENGENHARIA DE COMPUTAO
RELATRIO:
CODIFICADOR - HUFFMAN ADAPTATIVO DE DECREMENTO
JOO PESSOA
2014
RELATRIO:
CODIFICADOR - HUFFMAN ADAPTATIVO DE DECREMENTO
JOO PESSOA
2014
Introduo
Neste relatrio ser explicado o desenvolvimento da implementao do codificador
de huffman adaptativo de decremento, mostrando como cada funo foi criada, para uma
melhor compreenso do mtodo. A IDE utilizada foi o CodeBlocks, todo o cdigo foi
desenvolvido na plataforma Windows, verso 8.
decrementada em 1, e volta-se ao passo 2, criando uma lista encadeada com a nova tabela de
frequncia, liberando a Arvore de Huffman e recriando-a com a nova lista encadeada.
7 - Ao chegar o fim do arquivo, se o buffer no tiver completo com 8 caracteres,
ento inserido um padding com 1s, para preencher os 8 caracteres, para poder ser gravado
no novo arquivo, pois s podemos gravar 8 bits por vez num arquivo, ou seja, 1 byte.
Cada byte lido do arquivo, a varivel lm incrementada para calcular o
comprimento mdio do arquivo e a razo de compresso. A probabilidade e a informao
tambm calculada e acumulada na varivel H que calcula a Entropia.
Ao final, obtemos o valor da razo de compresso, o comprimento mdio e a
Entropia da mensagem.
Execuo do Cdigo
O cdigo foi executado numa mquina com processador core 2 duo - E7500,
2.94GHz , memria 4GB, Inicialmente foi testado com um arquivo texto puro com o nome
ABRACADABRA, para analisar se a compresso estava ocorrendo corretamente, o tempo
de codificao foi de 15ms, quase instantaneo. A razo de compresso foi de 5,18, o
comprimento mdio de 1,55 bits por smbolo e a Entropia de 1,49 bits por smbolo. Portanto a
codificao ocorreu corretamente.
Em seguida foi usado um arquivo de 14,9MB de texto puro, o tempo de codificao
foi de 22 minutos e 17 segundos, a razo de compresso foi 1,77, o comprimento mdio foi
4,52 bits por smbolo, e a Entropia foi de 4,48 bits por smbolo. O arquivo codificado foi
reduzido para 8,41MB.
Concluso
O cdigo de Huffman Adaptativo de Decremento mostrou-se bastante eficiente,
podendo comprimir um arquivo, de maneira eficaz. A causa da lentido para arquivos grandes
se d ao fato de recriar a lista encadeada, liberar a rvore, alocar novo espao de memria e
criar tabela de cdigos a cada leitura de um byte no arquivo. Poderia ter uma melhoria,
utilizando a rvore para decrementar o byte lido e recri-la readaptando-a sem a necessidade
de liberar memria e alocar novamente. No entanto, como esse algoritmo foi apenas para
aprendizado, essa implementao fica para projetos futuros.