Especificação



Baixar 2,81 Mb.
Página22/24
Encontro01.07.2018
Tamanho2,81 Mb.
1   ...   16   17   18   19   20   21   22   23   24

B3 Compressão de Imagem


Existe um grande número de algoritmos de compressão para vídeo. Nesta seção serão vistos apenas dois deles cujo funcionamento é similar a vários outros. São eles os algoritmos JPEG e MPEG-1.



B3.1 O Padrão JPEG

O padrão JPEG é um padrão ISO originário do "Joint Photographic Expert Group" da ISO/IEC JTC1/Subcomitê 2 [46]. Ele foi desenvolvido em colaboração com a ITU.

O JPEG é um padrão de compressão para imagens coloridas ou com níveis de cinza. Para a compressão, ele usa uma combinação de DCT, quantização, supressão de sequências repetitivas e codificação de Huffman, permitindo os seguintes modos de operação:


  • codificação sequencial: é realizada uma única varredura na imagem, da esquerda para a direita, do topo para a base. Esse modo de operação é com perdas;

  • codificação progressiva: a codificação é feita através de múltiplas varreduras na imagem. Esse modo de operação também é com perdas;

  • codificação sem perdas: o processo de compressão é reversível; e

  • codificação hierárquica: a codificação contempla vários níveis de resolução que podem ser descomprimidos separadamente.



B3.1.1 Passos da Codificação Progressiva

Para ilustrar como o algoritmo de compressão JPEG usa as técnicas de codificação vistas nas seções anteriores, serão vistos os passos usados por ele para a codificação progressiva e mostrados na Figura AnB1.


Figura AnB.1 - Passos para compressão de imagens usando o algoritmo JPEG com o modo de operação sequencial.


O primeiro passo é a preparação dos blocos, na qual a imagem é dividida em blocos de 88 pixels. Seja, por exemplo, uma imagem de 640480 pixels representada por três componentes: a luminância Y e as diferenças de cores U e V. Se a relação entre esses componentes é 4:1:1, então o componente Y consiste de uma matriz 640480 e os outros dois consistem de matrizes 320240. A preparação dos blocos irá fornecer para o passo seguinte 4800 blocos para o componente Y, 1200 para U e 1200 para V.

O segundo passo consiste na transformação dos blocos usando DCT. A submissão dos blocos à transformação ocorre componente por componente e, dentro de um componente, da esquerda para a direita, do topo para a base, em um esquema chamado de ordenamento não-entrelaçado. Os blocos são compostos de 64 valores que representam a amplitude do sinal amostrado que é função de duas coordenadas espaciais, ou seja, a = f(x,y) onde x e y são as duas dimensões. Após a transformação, obtém-se a função c= g(Fx,Fy) onde c é um coeficiente e Fx e Fy são as frequências espaciais para cada direção. O resultado é outro bloco de 64 valores onde cada valor representa um coeficiente DCT - isto é, uma determinada frequência - e não mais a amplitude do sinal na posição amostrada (x,y). O coeficiente g(0,0), correspondente às frequências zero, é chamado de coeficiente DC. Ele representa o valor médio das 64 amostras. Como em um bloco representando uma porção da imagem os valores amostrados geralmente variam pouco de um ponto para outro, os coeficientes de mais baixa frequência serão altos e os de média e alta frequência terão valores baixos ou zero, podendo ser descartados. A energia do sinal é concentrada nas frequências espaciais mais baixas. A Figura AnB.2 [31] é uma representação tridimensional da transformação DCT.


Figura AnB.2 – Representação tridimensional da transformação DCT: antes da transformação (esquerda); depois da transformação (direita).

Em uma imagem, os coeficientes de média e baixa frequência ocorrerão quando há uma mudança brusca (em um desenho preto-e-branco, a mudança de uma zona totalmente branca para um zona com uma linha preta representando parte da figura, por exemplo). Em fotografias - o tipo de imagem-alvo do JPEG -, as transições entre as zonas da imagem são suaves.

O terceiro passo é a quantização. Nesse passo, são introduzidas perdas (até o passo da transformação, o processo era totalmente reversível1). O passo da quantização consiste em normalizar cada coeficiente DCT através de sua divisão por valores pré-definidos, armazenados em uma tabela chamada tabela de quantização. Cada elemento da tabela pode ter um valor de 1 a 255. A tabela determina quais coeficientes serão mantidos ou descartados e quais serão representados com mais ou menos precisão (se todos os elementos da tabela têm valor 1, a quantização não terá nenhum efeito). O incremento dos valores dos coeficientes aumenta a taxa de compressão e reduz a fidelidade da imagem resultante. A sequência de coeficientes DC de cada bloco (g(0,0)) também é codificada usando DPCM, o que significa calcular o termo de erro existente entre os coeficientes DC de blocos adjacentes.

O último passo antes da transmissão ou armazenamento consiste na aplicação de algum esquema de codificação de entropia. Nesse passo, o algoritmo JPEG aplica ou a codificação de Huffman ou alguma técnica mais dinâmica. A ordem com que os coeficientes são pegos é em ziguezague, visando maximizar a probabilidade de ocorrência de valores idênticos sucessivos.

O algoritmo JPEG foi concebido para compressão de imagens estáticas mas ele pode ser usado também para compressão de vídeo, sendo referenciado como M-JPEG ("motion''-JPEG). Os resultados são bons em termos da qualidade da imagem, mas a largura de banda requerida é alta (entre 8 e 10 Mbps).






1   ...   16   17   18   19   20   21   22   23   24


©livred.info 2017
enviar mensagem

    Página principal