Um Trabalho
Instituto de Informática - Departamento de Ciência da Computação
Disciplina: Algoritmos e Estruturas de Dados III
TRABALHO PRÁTICO EM LABORATÓRIO Nº 02
O objetivo deste trabalho é implementar em Java a codificação (e decodificação) de Huffman para compressão de imagens em tons de cinza. Para tanto, cada grupo (com no máximo 03 alunos) deverá implementar tal método tanto para codificação quanto para decodificação de imagens armazenadas em formato PGM “simples” (Plain/Raw PGM Format). Maiores detalhes sobre tal formato podem ser obtidos na URL: http://netpbm.sourceforge.net/doc/pgm.html.
Juntamente com esta especificação, você irá encontrar algumas imagens para teste de sua implementação (já codificadas em PGM). Caso deseje testar sua aplicação com outras imagens, você deve utilizar um programa de conversão como, por exemplo, IrfanView (disponível em http://www.irfanview.com). Sua implementação deve permitir ao usuário especificar o nome do arquivo a ser codificado. Todas as informações para decodificação (incluindo dados sobre o tamanho da imagem, freqüência de tons de cinza, etc) devem ser armazenadas em um único arquivo juntamente com as informações codificadas
(isto é, comprimidas). Caso existam comentários no arquivo original (linhas iniciadas pelo símbolo ‘#’) eles devem ser ignorados, ou melhor, os comentários não serão codificados e nem poderão ser obtidos a partir da decodificação de um arquivo que tenha sido comprimido. Para facilitar a identificação de arquivos que já foram comprimidos ou não, seu programa deverá acrescentar o sufixo “.Z” ao nome de arquivo original (fornecido pelo usuário). Dessa forma, se o arquivo a ser comprimido for chamado de
“exemplo.pgm” então após sua compressão será criado outro arquivo denominado “exemplo.pgm.Z”.
Todos os programas implementados devem ser entregues via SGA. Eventuais cópias e trabalhos muito similares apresentados por grupos