TopGlossário técnicoCompressão

Compressão

Questões básicas

 

Os dados originais que representam imagens e sequências visuais gravadas no formato RGB contêm informações redundantes e irrelevantes. As informações redundantes podem ser restauradas a partir de outros relativos à mesma imagem. No entanto, as informações irrelevantes são aquelas cuja remoção não implica uma deterioração notável na qualidade da imagem. A estrutura dos algoritmos de compressão permite uma avaliação automática das informações consideradas irrelevantes que implicam distorções que são pouco visíveis para um observador. O nível de compressão obtido depende, em grande parte, do conteúdo da imagem e uma perda aceitável da qualidade da imagem. O seguinte gráfico (fig. 1) apresenta uma relação teórica entre o fluxo de dados e a distorção.

 

Fig. 1. Distorção da imagem em função do tamanho do fluxo de dados

 

A - Fluxo de dados B - Distorção

A compressão é dividida em compressão intraquadro e interquadro. No primeiro caso, é codificada toda a imagem, independentemente de outros quadros da sequência. No segundo caso, a codificação depende dos quadros anteriores e seguintes.

 

Representação de cores

 

Normalmente, são comprimidas as imagens a cores. Em monitores, as imagens são obtidas misturando as três cores primárias: vermelho, verde e azul (RGB). Cada pixel é representado pela soma destes três componentes. Infelizmente, os dados guardados, desta forma, têm um grande volume. Devido à natureza do olho humano, é melhor guardar os dados em forma de luminância Y e duas crominâncias diferenciais Cr e Cb, onde:

 

Y = 0.299R + 0.587G + 0.114B,
Cb = 0.564(B-Y), Cr = 0.713(R-Y). 

A vantagem é que o olho humano é mais sensível à variação da luminosidade dos pontos representados pela luminância e menos sensível à variação da cor representada pela crominância. Portanto, o sinal de crominância pode ser dizimado. Esta propriedade foi aproveitada já em sistemas de televisão analógica, tais como PAL, SECAM ou NTSC, e cerca de metade da banda foi utilizada para a transmissão do sinal de crominância sem perder, significativamente, a qualidade da imagem.

 

Compressão intraquadro

 

A essência das técnicas contemporâneas de compressão intraquadro é o facto de que o espectro do sinal visual é altamente concentrado em torno das frequências mais baixas. Portanto, há que calcular o espectro do sinal e registar, exactamente, uma pequena quantidade de coeficientes de relevância (nomeadamente, com as frequências mais baixas), o outros (nomeadamente, correspondentes às frequências mais altas) podem ser registados em uma quantidade muito pequena de bits.

 

Na prática, as imagens são divididas em blocos de 8x8 pontos e é calculada a transformada de cosseno (transformada de Fourier modificada). A sequência numérica resultante é dividida por uma tabela de quantização especial. Como resultado desta operação, são obtidos muitos zeros repetidos. A representação resultante é registada nos seguintes pares: número de zeros, valor do coeficiente diferente de zero. Os resultados são registados por meio de códigos de bits de comprimento variável. Isto significa que os códigos com menos bits são atribuídos aos pares mais comuns, no entanto, os códigos com mais bits são atribuídos aos pares que ocorrem menos frequentemente.

 

Compressão interquadro

 

A codificação interquadro consiste em aproveitar o facto de que, em uma sequência de vídeo, o quadro anterior e o seguinte são, geralmente, muito semelhantes. Então só é necessário enviar o erro de predição, ou seja, a diferença entre uma imagem e a sua previsão. No caso mais simples, espera-se que a seguinte imagem é idêntica à anterior.

 

Em codificadores mais avançados, a compensação de movimento é usada para a predição. Para os quadrados de 16x16 amostras de luminância, são pesquisados os quadrados mais semelhantes a eles na seguinte imagem. As diferenças de localização destes quadrados são os vectores de movimento. Usando a compensação de movimento ou sem ela, dependendo do codificador, a imagem prevista é gerada e comparada com a imagem real. A diferença, codificada tal como na codificação intraquadro, é enviada para o receptor.

 

Fig. 2. Princípio de predição de movimento na codificação interquadro

 

A - Bloco de 16x16 píxeis na imagem anterior B - Bloco mais semelhante de 16x16 píxeis na imagem actual