Compressão de Vídeo (MPEG II)
FARIAS, Marcelo Soares
MELEK, Luiz Alberto Pasini
SOUZA, Ricardo Sanfelice de
WANG, Rodrigo Rontze
Disciplina de Processamento Digital de Sinais
Departamento de Eletricidade
Setor de Tecnologia
Universidade Federal do Paraná
Resumo
Este trabalho trata das técnicas usadas para compressão (algoritmo) de imagens em movimento, destacando principalmente a técnica de compressão MPEG II, que deve surgir como padrão de HDTV.
Abstract
This work deals with the used techniques for compression (algorithm) to pictures in movement, detaching mainly the technique of compression MPEG II, that it must appear as standard of HDTV.
Palavra-chave:
MPEG
Curitiba
1998
Algoritmos de Compressão de Vídeo (MPEG 2)
Vídeo é uma seqüência de imagens estáticas. Quando apresentadas a uma taxa suficientemente alta, a seqüência de imagens (frames) dá uma ilusão de movimento. Os filmes em cinema são apresentados no Brasil a uma taxa de 24 frames por segundo (fps) e a programação na televisão é apresentada a uma taxa de 30 fps.
Todas as técnicas usadas para codificação de imagens estáticas podem ser utilizadas para codificação de imagens em movimento.
Desktop Videoconferencing usa vídeo como entrada. Este vídeo pode vir de uma câmera, VCR, ou outro dispositivo de vídeo. Um sinal de vídeo analógico precisa ser codificado para a forma digital para que ele possa ser manipulado em um computador. Para compreender codificação digital, é preciso entender alguma informação sobre vídeo analógico, como teoria das cores básicas e formatos de codificação analógica.
Teoria das cores
O olho humano possui três tipos de células foto-receptoras de cores, chamadas cones. Devido a isso, três componentes numéricos são suficientes para representar a cor (Poynton95). O espaço de cor é um sistema de coordenada, de três dimensões, cujos eixos correspondem aos três componentes de cor. Diferentes espaços de cor são usados para diferentes propósitos e transformações que mapeam dados de um espaço de cor para outro.
O sistema de codificação de cor usado para vídeo deriva do espaço de cor RGB. RGB é um sistema que usa combinações das cores primárias vermelho, verde e azul. O sistema RGB é transformado para outro sistema que permite técnicas de codificação de vídeo para explorar as características de percepção de cores do olho humano.
O brilho e as informações de cores são tratados diferentemente pelo sistema visual humano. Os seres humanos são mais sensíveis a mudanças no brilho do que a mudanças na cor.
Devido a isso, um componente especial é usado para representar informações de brilho. Este componente é chamado luminância e é denotado pelo símbolo Y. Em codificação de vídeo, uma versão não linear de luminância, denominada luma, é usada e denotado pelo símbolo Y'. Os dois componentes restantes são usados para representar cor e são chamados crominância. Esses componentes de crominância são chamados diferenças de cor e são os componentes azul e vermelho removidos do luma, (B'-Y') e (R'-Y'). Consequentemente, o espaço RGB é transformado no espaço Y', (B'-Y'), (R'-Y'). A versão matricial desta transformação é mostrada na equação abaixo. A faixa de valores de R', G' e B' varia de 0 a 1.
Com as cores separadas desta maneira, as diferenças de cor (B'-Y') e (R'-Y') podem ser sub-amostradas de uma forma tal que as mesmas informações visuais são codificadas em uma menor banda passante.
Fig. 1 |
Ref. Coeficientes de Transformação de Crominância |
Diferentes sistemas de cores tem sido definidos (YPbPr, YCbCr, PhotoYCC). Todos esses sistemas são derivados da equação citada, com diferentes fatores. Y'PbPr é usado para vídeo analógico. YCbCr é usado para esquemas de compressão e codificação de vídeo digital como JPEG e MPEG. PhotoYCC é usado em formato Photo CD da Kodak. A notação YUV é freqüentemente usada genericamente para um espaço de cor representado por luminância e duas diferenças de cor.
Formatos de Vídeo
Existem dois formatos largamente usados para vídeo analógico: NTSC e PAL Estes são formatos compostos que combinam os três componentes de vídeo em um sinal. Inicialmente, as duas componentes de diferença de cor são combinadas em um único sinal (croma) usando uma técnica chamada modulação em quadratura. Em seguida, luma e croma são combinados usando uma técnica chamada Frequency Interleaving.
O formato NTSC (National Television Standard Committee) é usado na América do Norte e no Japão. Este padrão foi aprovado em 1953 pela Federal Communications Commission (FCC) para transmissões comerciais. O formato NTSC tem uma resolução de 525 linhas por frame e 60 (na verdade 59,94) inter-frames por segundo (60 Hz), que resultam em 30 frames por segundo.
O formato PAL (Phase Alteration Line) é usado no Oeste da Europa e na Austrália. Ele possui uma resolução de 625 linhas por frame e 50 inter-frames por segundo, resultando em 25 fps.
Existe um terceiro formato de vídeo usado na França, Rússia e no Leste europeu chamado SECAM (Sequential Couler A Memoire, significando cor seqüencial com memória). Ele possui a mesma resolução que o PAL, mas a informação de vídeo é codificada diferentemente.
Técnicas de Compressão de Vídeo Digital
O sinal de vídeo analógico precisa ser digitalizado para que possa ser manipulado por um computador.
Imagens estáticas e vídeo necessitam de muitos bytes para serem armazenados ou enviados pelas vias tradicionais. Por isso, torna-se necessário o uso de alguma técnica de compressão. Duas importantes métricas de compressão são a taxa de compressão e o número de bits de cada pixel de um frame.
As técnicas de compressão de vídeo tipicamente causam perdas de informação. Entretanto, isto é aceitável, porque os algoritmos de codificação são designados para descartar informações que não são perceptíveis pelos humanos ou informações que são redundantes. Existem algumas técnicas comuns à maioria dos algoritmos de compressão de vídeo, como Color Space Sampling e Redundancy Reduction.
Color Space Sampling é uma técnica usada para reduzir a quantidade de dados necessários para codificação. Se uma imagem está codificada em espaço YUV, as componentes U e V podem ser sub-amostradas porque o olho humano possui baixa sensibilidade às informações de crominância.
Redundancy Reduction é outra técnica usada para diminuir a quantidade de informação codificada. A codificação Intraframe promove compressão reduzindo a redundância espacial interna a uma figura. Esta técnica funciona porque pixels vizinhos em uma imagem são usualmente similares. A codificação Interframe promove compressão por redução da redundância entre imagens. Esta técnica funciona porque frames vizinhos em uma seqüência de imagens são normalmente similares.
Algumas importantes técnicas de codificação e compressão relacionadas a Desktop Videoconferencing são discutidas a seguir.
MJPEG
JPEG é um padrão de codificação para imagens estáticas desenvolvido pelo ITU-T. Apesar de ser designado para imagens estáticas, com hardware especial, é possível codificar e decodificar uma série de imagens JPEG em tempo-real para gerar vídeo em movimento. Este uso de codificação JPEG é tipicamente referenciado como Motion JPEG ou MJPEG. Entretanto, não existe um padrão oficial para MJPEG.
JPEG utiliza uma técnica de compressão espacial denominada codificação DCT Discrete Cosine Transform. Esta técnica é usada por outros métodos de codificação, como H.261. Os passos básicos da codificação DTC são mostrados na figura abaixo.
Fig. 2 |
Ref. Codificação Imagem MPEG |
A discussão de JPEG desta seção assume a codificação de uma imagem de componente única (escala de cinza). Para imagens de múltiplas componentes de cor, a informação da componente é intercalada. A codificação JPEG é independente do espaço de cores, apesar dos sistemas poderem converter as imagens para o espaço YUV e sub-amostrar as componentes de crominância.
O primeiro passo do processo de codificação é executar um DTC em blocos de 8x8 amostras de componentes. Este passo transforma a informação para o domínio da freqüência. A saída deste passo são 64 coeficientes DTC. O DTC possui o efeito de concentrar a maioria das informações no bloco no canto superior esquerdo. O valor médio do bloco, chamado o componente DC, esta no coeficiente superior esquerdo do bloco. Os outros coeficientes são chamados coeficientes AC. Nenhuma informação é perdida durante este passo. Os dados são apenas transformados em outro domínio e podem ser recuperados executando um DTC inverso.
O próximo passo do processo de codificação é a quantização. Os coeficientes DTC são divididos por uma matriz de quantização de 8x8. Esta matriz é designada para reduzir a amplitude dos coeficientes e aumentar o número de coeficientes de valor 0. O passo de quantização introduz perdas no processo de codificação.
Após a quantização, uma corrente de bits é formada a partir do bloco. O coeficiente DC é codificado como a diferença entre o coeficiente DC corrente e o coeficiente DC do bloco anterior. Os coeficientes AC são codificados em uma seqüência em forma de zig-zag da parte esquerda superior do bloco até a parte direita inferior. A figura abaixo ilustra um bloco 8x8 de coeficientes e a seqüência zig-zag. Os componentes AC são codificados removendo as longas sequências de coeficientes de valor zero (este passo é chamado Run-length Encoded) e utilizando uma técnica como a de Huffman (este passo é chamado Entropy Encoded), baseado em características estatísticas. Tipos que são estatisticamente mais comuns do que outros são codificados com palavras de tamanho menor. O processo de decodificação é basicamente o inverso do processo de codificação. A codificação JPEG tipicamente produz compressão da ordem de 10:1 a 20:1. Entretanto, altas taxas de compressão resultam em uma baixa qualidade de imagem.
Fig. 3 |
Ref. Codificação Zig - zag |
MPEG
O MPEG (Moving Pictures Expert Group) é um grupo de pessoas que se reúnem sobre o ISO (International Standards Organization) para gerar padrões para compressão de vídeo digital e áudio.
O trabalho desenvolvido por este grupo divide-se em três: MPEG-Vídeo, MPEG-Áudio e MPEG-Sistema. O objetivo em vídeo é uma resolução de 320x240 pixels a uma taxa de 1,2 Mbps. O algoritmo em desenvolvimento utiliza DCT em blocos 8x8, estimativa de movimento em blocos de 16x16, codificação preditiva e codificação por entropia. Alguns quadros são codificados sem qualquer referência aos anteriores para possibilitar o acesso aleatório à seqüência. Os quadros intermediários utilizam codificação preditiva.
O método MPEG de compressão e codificação integra a compressão de vídeo e áudio síncrono através da eliminação de informação repetida. A compressão MPEG pode "encolher" os dados de vídeo até um fator de 200. MPEG oferece a melhor qualidade por byte.
O formato MPEG pode suportar o formato (640x480) com 30 frames por segundo com áudio em computadores equipados com decodificadores hardware de MPEG.
O MPEG 1 direciona-se para aplicações que usam taxas de transferência de dados de 1,2 Mbits/s, que é a velocidade do CD-Rom comum. Pode ser usado em aplicações multimídia interativas que requeiram qualidade de vídeo comparável á obtida com um vulgar vídeo VCR (ou até um pouco melhor dependendo da forma de codificação do vídeo) e qualidade de áudio comparável a dos CDs. As especificações MPEG cobrem, de igual modo, a sincronização das pistas de vídeo e áudio.
Milhares de computadores incorporam hoje tecnologia MPEG, particularmente a nível de placas de compressão e leitura, bem como a nível de software, para PC’s e MAC’s. O MPEG 1 é usado ainda nos sistemas CDI da Philips-Sony para os mercados de negócio e de consumo.
O MPEG 2 possibilita uma taxa de transferência maior que o seu antecessor, bem como uma maior qualidade de som, o que permite a sua utilização em aplicações que requeiram imagens de grande definição, tais como as que são exigidas pela televisão de alta definição, e serviços que usem aplicações em redes de alto desempenho.
Outro padrão MPEG a ser atualmente especificado é o MPEG 4, que visa atuar a bit-rates muito baixas de forma a utilizar um mínimo de recursos. Em tempo, a especificação MPEG 3 foi pensada com o objetivo de suportar código para a HDTV (High Definition TeleVision), mas tal objetivo foi cumprido pelo MPEG 2, o que levou a obsolescência desta norma, passando-se de imediato para a definição do MPEG 4. Este, visa definir bases para aplicações como vídeo-telefones, acesso a bases de dados vídeo e vigilância remota.
MPEG 2
O padrão MPEG 2 (IS – 13818) foi originalmente projetado para comprimir vídeo em sistemas de difusão, a taxas de 4 a 6 Mbps, e seria apropriado em canais de difusão NTSC ou PAL. Mais tarde, MPEG 2 foi expandido para suportar altas resoluções, incluindo HDTV (High Definition TV). Originalmente foi criado MPEG 3 para HDTV, mas o projeto foi cancelado, e MPEG 2 incorporou a televisão de alta definição nos seus objetivos.
Os princípios básicos de MPEG 1 e MPEG 2 são similares, mas os detalhes são diferentes. Para uma primeira aproximação, MPEG 2 é um super conjunto de MPEG 1, com características adicionais, formatos de quadros e opções de codificação. É provável que MPEG 1 domine filmes para CD-ROM e MPEG 2 domine a transmissão de vídeo em redes de longa distância.
A codificação MPEG 2 é semelhante a codificação MPEG 1, com quadros I, P e B. A Transformada Discreta do Coseno é com blocos de 10x10 pixels ao invés de 8x8. MPEG 2 foi direcionado para TV por difusão, bem como para aplicações em CD-Rom, ele suporta imagens progressivas e interlaçadas, enquanto MPEG 1 suporta somente imagens progressivas.
MPEG 2 suporta quatro níveis de resolução: baixa (352x240), principal (729x480), alta-1440 (1440x1152), e alta (1920x1080). Baixa resolução é para videocassete e para ter compatibilidade com MPEG 1. Principal e normal é para NTSC Broadcasting. A outra é para HDTV.
MPEG 2 suporta cinco tipos de perfis. Cada perfil está relacionado a alguma área de aplicação. O perfil principal é para uso de geral, e provavelmente a maioria dos chips serão otimizados para este perfil e para o nível de resolução principal. O perfil simples é semelhante ao principal, exceto que exclui os quadros B, tornando a codificação/decodificação mais fácil. Os outros perfis lidam com escalabilidade e HDTV. Os perfis diferem em termos da presença ou ausência de quadros B, resolução de crominância e escalabilidade do fluxo de bits codificado para outros formatos.
A taxa de dados comprimidos para cada combinação de resolução e perfil é diferente. O intervalo é de 3 Mbps até 100 Mbps para HDTV. O caso normal é de 3 a 4 Mbps.
MPEG 2 tem uma forma mais geral de multiplexação de áudio e vídeo do que o MPEG 1. Ele define um número ilimitado de fluxos de bits elementares, incluindo áudio e vídeo, mas também incluindo fluxos de bits que devem sincronizados com o áudio e vídeo, por exemplo, subtítulos em múltiplas linguagens. Cada um dos fluxos de bits é primeiro empacotado com estampas de tempo.
A saída de cada empacotador é um fluxo de bits elementar empacotado (PES –Packetized Elementary Stream). Cada pacote PES tem um cabeçalho que contém tamanho do fluxo de bits, identificador do fluxo de bits, controle de criptografia, estampas de tempo, etc. Os fluxos de bits PES para áudio, vídeo e possivelmente dados são multiplexados juntos em um único fluxo de bits de saída para transmissão.
A sintaxe do MPEG 2, foi considerada eficiente para outras aplicações, tais como aquelas com bit-rates mais elevadas. A melhoria mais significativa sobre o MPEG 1 é a adição de sintaxe para a codificação de vídeo interlaçado (16x8 de tamanho de bloco).
Outras das características do MPEG 2 são as extensões escalonáveis, o que permite a divisão de um sinal de vídeo continuo em duas ou mais cadeias de bits representando o vídeo a diferentes resoluções, qualidade imagem ou taxa de imagem.
Exemplos típicos do tamanho das frames em bits :
|
Tipo de Imagem |
|||
I |
P |
B |
Média |
|
MPEG 1 – SIF 1,15 Mbit/Seg. |
50000 |
50000 |
20000 |
38000 |
MPEG 2 – 601 4,99 Mbit/Seg. |
400000 |
200000 |
80000 |
130000 |
Nota : Frame I -> Distância 15 e Frame P -> Distância 3
MPEG 2 Vídeo
O padrão MPEG 2 Vídeo especifica a cadeia de bits codificada para o vídeo digital de alta qualidade. O MPEG 2 tem numerosas potencialidades, como sendo o suporte de vídeo interlaçado e HDTV.
O MPEG 2 Vídeo é ótimo às seguintes bitrates:
352x480x24 Hz (Progressivo) 2 Mbit/seg
544x480x30 Hz (Interlaçado) 4 Mbit/seg
704x480x30 Hz (Interlaçado) 6 Mbit/seg
O MPEG 2 poderá ser visto em todo tipo de mídia onde se vê vídeo hoje, desde a TV Cabo, até ao DigiCipher, passando pela HDTV (High Definition TeleVision).
MPEG 2 Áudio
O MPEG está desenvolvendo o MPEG 2 Áudio para bit-rates baixas com multicanais de áudio. MPEG 2 Áudio dará a possibilidade de se ter 5 canais (esquerdo, direito, centro, e dois canais Surround) e mais um adicional de baixa freqüência e/ou mais de sete para comentário/multilíngue. O standard de áudio MPEG 2 estende-se as capacidades de codificação mono e stereo do MPEG 1 para freqüências intermédias (16 kHz, 22,05 kHz e 24 kHz), de forma a melhorar substancialmente a qualidade para bitrates inferiores a 64 bits por canal.
O MPEG 2 Áudio tenta manter tanta compatibilidade com o MPEG 1 quanto possível, em termos de sintaxe. Enquanto adiciona discretamente canais de Surround, os canais principais(esquerdo e direito) mantêm-se compatíveis, ao passo que novos métodos de codificação e sintaxe são usados para os canais surround.
A figura abaixo ilustra a estrutura de um bloco de dados de um MPEG 2 Áudio. A figura mostra de forma clara, que o MPEG 2 é uma extensão multicanal com compatibilidade retroativa com o MPEG 1.
Fig. 4 |
Ref. Áudio MPEG2 |
MPEG2 Systems
O MPEG está desenvolvendo também o MPEG 2 Systems para desenvolver código de áudio multiplexado, vídeo e outros dados para uma forma confortável de serem transportados e armazenados. Há duas cadeias de dados já definidas: a cadeia de transporte, que pode transportar múltiplos programas simultaneamente, que é ideal para o uso em aplicações onde a perda de dados pode ser bastante provável e a cadeia de programa, que é ideal para aplicações multimídia, para atuar em processamento de sistemas em software e para compatibilidade com o MPEG 1.
Natureza do Tráfego de Vídeo
Tal qual a mídia de áudio, a mídia de vídeo se caracteriza por gerar um tráfego contínuo com taxa constante. Aqui também, mesmo quando no sinal é realizada alguma técnica de compactação ou compressão e o tráfego gerado para comunicação se caracterizar como um tráfego com taxas variáveis, o sinal deve ser reproduzido no destino a uma taxa constante. O retardo de transferência máximo tem grande importância, e a variação estatística do retardo deve ser compensada.
A taxa de erro de bit pode ser maior que a taxa de erro de pacote, em vídeo. Como a imagem não é estática e devem ser gerados vários quadros por segundo, a taxa de erro de pacote não é tão crítica. Entretanto, quando é utilizada alguma técnica de compressão, um erro pode se propagar. Desta forma, alguns quadros em que o erro não se propaga podem tolerar erros de bits e de pacotes. Porém, nos quadros em que o erro se propaga, às vezes até um único bit pode ser intolerável.
MPEG 4
O grupo MPEG iniciou oficialmente a fase de padronização MPEG 4 em setembro de 1993.
O padrão MPEG 4 está em desenvolvimento, apontando as necessidades em torno do aumento da disponibilidade de conteúdo áudio-visual em forma digital. Diferente da codificação linear de áudio e vídeo do MPEG 1/2, a codificação MPEG 4 é baseada em objetos, isto é, as cenas áudio-visuais são codificadas em termos de objetos. Um objeto pode ser uma imagem ou um vídeo: um carro em movimento, uma fotografia de um cão. Também pode ser um objeto de áudio: um instrumento de uma orquestra, um latido de um cão. A associação de um áudio e um vídeo é chamado de objeto áudio-visual . A imagem de um cão junto com o som do seu latido é um exemplo de um objeto áudio-visual.
No MPEG 1/2, o comitê padronizou um tipo particular de algoritmo. MPEG 4 está padronizando um conjunto de algoritmos.
O hardware que suporta MPEG 4 deve ser flexível a fim de executar diferentes conjuntos de algoritmos, não como em MPEG 1/2 que o hardware suporta um algoritmo fixo. Uma das vantagens é que o MPEG 4 pode ser adaptado no futuro para se adequar as novas tecnologias de codificação.
No início do trabalho, o objetivo do MPEG 4 era a utilização em aplicações com baixas taxas de bits. Entretanto, MPEG adotou um plano de trabalho para as mudanças no ambiente áudio-visual e modificou suas finalidades consideravelmente.
Um novo conjunto de aplicações usarão MPEG 4, tais como vídeoconferência, comunicações móveis, acesso à vídeo de servidores remotos para aplicações multimídia, jogos, etc. Atualmente, o grupo MPEG 4 está direcionando os trabalhos para televisão digital, aplicações gráficas interativas e World Wide Web.
As aplicações com baixas taxas de bits, as taxas serão de 5 a 64 Kbits/s com dimensões de amostras de 176x144x10 Hz. Para aplicações de TV, as taxas serão de 2 Mbps.
MPEG 4 fornecerá tecnologias para comunicações multimídia. Isto significa que fornecerá suporte a informação áudio-visual que:
Para alcançar a padronização do MPEG, o comitê lança primeiro as Chamadas para Propostas. Depois identifica os requisitos preliminares e especifica as funcionalidades que necessitam serem apontadas pelas propostas. Então define sequências de testes e condições de codificação a serem usadas. Atualmente uma variedade de algoritmos estão sendo desenvolvidos por centros de pesquisas de universidades e empresas.
Algumas técnicas então serão selecionadas, marcando o final da fase competitiva e iniciando o esforço colaborativo. Para fazer isto, o grupo MPEG estabelece Modelos de Verificação – MV. O MV MPEG 4 descreve um conjunto de algoritmos de codificação de vídeo: codificador, decodificador, sintaxe e semântica do fluxo de bits (bit stream). Um número de experimentos são estabelecidos para garantir eficiência do MV MPEG 4 com respeito as funcionalidades já suportadas e para identificar novas técnicas de codificação que permitem provisões para funcionalidades ainda não suportadas. Novas ferramentas poderão ser produzidas para MPEG 4 e serão avaliadas dentro do processo MV.
MPEG 4 é recente e muito abrangente. Não está estabelecido o limite de atuação deste padrão sobre televisão digital com o MPEG 2.
Conclusão:
O padrão MPEG 2 tornar-se-á mais conhecido a partir da expansão e utilização da HDTV, para o qual é o padrão de compressão utilizado devido ao seu tamanho de frame, alta taxa de compressão (até 200 vezes), e desenvolvimento do hardware que facilita sua descompressão.
Referência:
Ref.: Coeficientes de Transformação de Crominância
Ref.: Audio MPEG2
http://www.di.uminho.pt/~vjs/aulas/96-97/mm/trbsteo/g6/figura2.html
http://www.di.uminho.pt/~vjs/aulas/96-97/mm/trbsteo/g6/mtgrupo6.html
http://www.di.uminho.pt/~vjs/aulas/96-97/mm/trbsteo/g6/mpeg2.html
http://www.inf.puc-rio.br/~claudiol/projects/vidconf/st/indice.html
http://www.gta.ufrj.br/~vidal/mpeg/mpeg.html
http://www.gta.ufrj.br/~vidal/mpeg/node3.html