-
Huffman:
-
O algoritmo de Huffman recebe um fluxo de bits e devolve um fluxo de bits comprimido que representa o fluxo original. Em geral, o fluxo comprimido é mais curto que o original.
-
Para ser feito a compressão, são realizados os passos:
- São contados quantos símbolos(Folhas) contem o arquivo;
- Com os símbolos, agora é criada a arvoré binária com as probabilidades de cada símbolo;
- Tendo a árvore, próximo passo é podá-la;
- Agora entra o Encoding;
- Temos a função encode para retornar os valores de cada símbolo.
- É pego a stream de bits;
- Encode do Header, da árvore e dos pixels da imagem.
- O bitstream é escrito em um arquivo.
- Agora o Decoding;
-
-
DCT:
- É aplicado o DCT, seguido da quantização.
- É feito o zigzag;
- É feito o Encoding da imagem e o bitstream é escrito em um arquivo.
- To be continued...
Para a execução do programa:
Baixar a code nas releases e seguir o passo á passo a seguir:
./codec <entrada> <saída> <método> <opção>
<entrada> caminho da imagem a ser comprimida/descomprimida
<saída> caminho da imagem/arquivo que será criada
<método> huff para Huffman, dct para DCT
<opção> cod ou dec, cod para codificar e dec para decodificar.
Exemplo:
./codec imagem.bmp imagem.huff huff cod
./codec imagem.huff imagem.bmp huff dec Feito por Daniel Vitor & Adriano César