Codificação Huffman
Um programa de compactação e descompactação C++ baseado na codificação Huffman.
Introdução
Este projeto visa projetar programas de compressão e descompressão baseados na codificação Huffman. A ideia da Codificação Huffman é minimizar o comprimento esperado ponderado do código por meio da atribuição de códigos mais curtos a caracteres usados com frequência e códigos mais longos a códigos raramente usados.
Detalhes de implementação
Os programas podem compactar e descompactar arquivos de texto compostos por 128 caracteres ASCII.
Compressão
- Abra o arquivo de entrada, conte e armazene as frequências de diferentes caracteres;
- Construa a Fila de Prioridade e depois a Árvore de Huffman;
- Calcular tabela de codificação Huffman;
- Codifique o arquivo, armazene a tabela de codificação Huffman e codifique no arquivo desejado.
Descompressão
- Abra o arquivo, recrie a Huffman Tree com base na Huffman Encode Table;
- Decodifique o arquivo com base na árvore e armazene-o no arquivo desejado.