Resumo
A quantificação é em processamento de sinais digitais um conjunto de métodos que englobam processos de compressão de qualquer tipo de conteúdos mídia com perda sem que esta seja perceptível aos sensores humanos como os olhos e os ouvidos.
Introdução
O mundo dos quantificadores divide-se em três categorias de quantificadores: os lineares, os não-lineares e os vectoriais. Um exemplo de método de compressão que usa um quantificador linear é o DPCM, enquanto que o compressor de audio A-low recorre a um quantificador não linear.O MPEG-4 recorre a um quantificador vectorial.
Objectivo do trabalho
Este artigo tem por objectivo permitir compreender de forma simples os métodos mais populares de quantificação escalar : o mid-thread e o mid-raise.
Justificação:
Temas como a compressão de mídia carecem de meios de exposição de forma acessível a grupos de indivíduos com curiosidade em obter conhecimentos que vão para lá do simples clique no icon. Justifica-se então a realização deste projecto de forma a facultar um meio de aquisição de conhecimento numa abordagem clara e comum.
Áreas de aplicação
Como foi explicado anteriormente, os métodos explicados neste projecto podem ser utilizados em qualquer tipo de mídia, dependendo do método a aplicar. Um dos exemplos mais comuns é o JPEG. Ao usar o DCT no JPEG vai ser possível tirar partido de um dos aspectos mais fortes do quantificador escalar: a compressão de zeros . Isto de acordo com referências bibliográficas.
Quantificação escalar
O quantificador escalar tem como característica interpretar valores escalares aos dados do ficheiro a comprimir (caso de uma imagem os dados são pixeis) e solicitar o número de níveis a aplicar ao ficheiro. É neste momento que ocorre a separação dos dois quantificadores mais comuns o mid-thread e o mid-rise. Caso o número de níveis seja par, será aplicado o mid-thread. Caso seja impar o mid-raise.
O objectivo é combinar o valor original com o numero de níveis através de uma expressão analítica de forma a obter novos valores (valores codificados), que estará sempre entre o máximo e o mínimo do intervalo obtido.
O erro de quantificação (ou ruído) é chamado de distorção granular. A distorção granular ocorre porque como o valor codificado para um intervalo é delimitado pelo delta(valor constante do intervalo), é sempre o valor intermédio desse intervalo, ou seja será introduzidos erros na quantificação. Para calcular esse erro existe a seguinte formula:
Algoritmo:
O algoritmo começa por alocar um ficheiro mídia e solicitar o número de níveis a aplicar. Do ficheiro deve obter o maior e o menos valor, determinando assim a largura do intervalo. De seguida determina o numero de bits por nível através da expressão:
Nºde bits=Log(2) N (arredondado para cima)
Também é determinado o valor do delta:
delta= 2 * Vmax/ N
Mid-thread:
Exemplo:
Uma imagem de 8bpp;
Intervalo: ]-10; 10[
N= 5
Nºde bits= Log(2) 5 = 3 bpnível
Aplica-se a seguinte formula analítica:
e obtem-se uma matriz bi-dimensional similar á seguinte:
Mid-rise:
Para este caso o número de níveis terá de ser par.
Exemplo:
Uma imagem de 8bpp;
Intervalo: ]-10; 10[
N= 6
Nºde bits= Log(2) 5 = 3 bpnível
Aplica-se a seguinte formula analítica:
e obtem-se uma matriz bi-dimensional similar á seguinte:
De reparar que o valor ‘zero’ não tem valores, tal como expectável no mid-rise.
Descodificação:
A partir da matriz que contém os pixéis codificados, a descodificação é realizada através altura e a largura da matriz . Associando a matriz obtida, com a matriz que contém os valores dos pixéis(ou outro tipo de dados) correspondentes aos códigos, como por exemplo a que se segue:
codigos[i][0]223.5625
codigos[i][1]111
codigos[i][0]159.6875
codigos[i][1]110
codigos[i][0]95.8125
codigos[i][1]101
codigos[i][0]31.9375
codigos[i][1]100
Como a matriz de pixéis codificados, apenas contém os conjuntos de bits, e já com as posições correctas, basta verificar a que valor corresponde e através de uma função já existente criar a cor do pixel em RGB.
Comparação
Este tipo de quantificador tem a vantagem de ser de simples implementação e de ser “leve” em termos de processamento o que constitui uma vantagem. No entanto o nível de ruído tende a ser elevado de tal forma que a informação eliminada pode ser mais do que a desejada.
Conclusão
O artigo demonstra de forma sucinta as diversas fases da compressão e descompressão do quantificador. O objectivo de transparecer os processos não visíveis da compressão permite um conhecimento mais aprofundado e esclarecedor dos algoritmos de compressão. Obviamente muito mais poderia ser escrito sobre este tipo de métodos, alguns deles mais eficazes até, mas com outro nível de complexidade.
Bibliografia:
Sayood, K., “Introduction.to.Data.Compression”, Morgan.Kauffman, 2006.
Salomon, D., “A.Concise.Introduction.to.Data.Compression”, Springer, 2008.
Ribeiro, N.,Torres,J.,”Tecnologias Compressão Multimédia”,FCA,2009