Trabalho
de "Compressão e Codificação de Dados"
2004/2005
Este trabalho
destina-se aos alunos de licenciatura e deve ser realizado por grupos de
dois alunos.
O prazo de
entrega coincide com o último dia da época de avaliação do 1º semestre.
A implementação
pode ser levada a cabo em qualquer linguagem de programação à escolha. Embora
se sugira MATLAB, qualquer aluno com alguma experiência não terá nenhuma
dificuldade em realizar o trabalho com outra linguagem, tal como C, C++, Visual
Basic, etc...
O relatório
deverá incluir, para além dos resultados pedidos, a sua análise crítica bem
como uma descrição dos algoritmos implementados. Com o relatório, o qual deve
ser entregue impresso (não se aceitam entregas por “email”), deve ser entregue
um CD ou “diskette” com todos os programas implementados.
O trabalho fica
sujeito a uma possível discussão oral,
para a qual serão convocados os grupos que o professor responsável da
disciplina entender. Nesta discussão pode ser avaliada a total compreensão, por
ambos os elementos do grupo, de todos os programas implementados e resultados
obtidos.
A classificação
obtida no trabalho tem peso 50% na nota final da disciplina.
·
Estime para a sequência cadeiaDeMarkov as probabilidades {p1,...,
p10} de cada um dos símbolos do alfabeto A e a matriz de
transição. Estime a taxa de
entropia da cadeia de Markov e
compare com a entropia de uma
fonte independente e identicamente
distribuída com probabilidade estimadas {p1,..., p10}.
·
Implemente o algoritmo de compressão LZ77. O algoritmo deve aceitar
como parâmetros a dimensão das
janelas de procura e de codificação. Pode usar tripletos ou dupletos e “flags”.
Pode ainda aplicar codificação entrópica à sequência gerada. Com o algoritmo
obtido, comprima o ficheiro cadeiaDeMarkov.txt. Estude a taxa de
compressão obtida em função das dimensões das janelas. Compare as taxas de compressão obtidas
com a taxa de entropia estimada.
·
Com o algoritmo desenvolvido
na alínea anterior, comprima o ficheiro texto.txt para diferentes dimensões de janelas.
Compare com os resultados obtidos com as taxas de compressão, sobre o mesmo
texto, dos algoritmo ZIP ou PKZIP.
·
Desenhe, implemente e teste um esquema de compressão preditiva em que o preditor de x(i,j) , i.e.
elemento de imagem da linha i e coluna j, é uma função dos elementos de imagem
x(i,j-1), x(i-1,j) e x(i-,j-1).
Trate as fronteiras considerando que a primeira linha e coluna da imagem
é constituída por zeros. A figura abaixo
esquematiza o preditor descrito. O quantizador escalar deve ter em conta a estatística do erro de predição.
· Considere que o preditor
é a média aritmética de x(i,j-1), x(i-1,j) e x(i-,j-1). Estime, para o conjunto de imagens
obtido utilizando quantizadores de 1 a 8 bits, o erro médio quadrático das
imagens depois de descodificadas.
· Proceda como na alínea
anterior, mas agora com o preditor linear óptimo dado pela equação de
Yule-Walker.