UNIVERSIDADE FEDERAL DO PARANÁ

Setor de Tecnologia

Departamento de Eletricidade

Curso de Engenharia Elétrica

Disciplina: Processamento Digital de Sinais

Professor: Eduardo Parente Ribeiro

Alunos: Marcos Olavo dos Santos Carvalho

Marcos Vinícius Melhoretto

 

 

 

 

 

 

COMPRESSÃO DIGITAL DE VÍDEO – PADRÃO MPEG-2 (complemento a MPEG-1)

 

 

 

 

 

 

 

 

INTRODUÇÃO

A pesquisa seguinte transcorre com uma descrição do modo de compressão MPEG para vídeo, baseados nas normas ISO 11172-2 (MPEG-1 vídeo) e 13818-2 (MPEG-2 Video). Primeiramente é necessário que se apresente a técnica de compressão, por sinal bastante complexa, no padrão MPEG-1. O padrão MPEG-2 é, na verdade, um aumento de capacidade em relação ao MPEG-1, sendo o algoritmo de compressão praticamente o mesmo, apresentando algum adendo.

 

PADRÃO MPEG –1 E MPEG –2 DE CODIFIÇÃO DIGITAL DE VÍDEO

 

Genericamente falando, uma seqüência de vídeo contém uma quantidade de redundâncias em seus frames (quadros). O objetivo maior usado na redução da taxa de bits para armazenamento e transmissão que explora ambas as redundâncias estatísticas e subjetivas e codifica a informação com o mínimo de tamanho de informação, usa técnicas de codificação por entropia (verificação de erros). A performance da compressão de vídeo naturalmente depende da quantidade de redundâncias que a imagem contém.

Uma das aplicações do algoritmo de compressão MPEG é para a transmissão de um sinal de vídeo por um canal de comunicação de pequena largura de banda. Neste caso uma boa compressão é obtida tendo-se perda da qualidade do vídeo.

Quanto menor a taxa de bits requerida pelo canal mais se faz necessário a compressão.

As técnicas de compressão procuram otimizar a compressão de modo a minimizar as perdas para uma dada taxa de bits requerida.

 

(A) O Modelo Codificador MPEG Vídeo

As técnicas MPEG de codificação digital são de naturezas estatísticas.

Informações de vídeo geralmente possuem muitas redundâncias em ambas as direções temporal e espacial.

Usa-se uma técnica de codificação por correlação entre pixels de um mesmo frame (Intra-frame) para se prever um pixel através dos pixels mais próximos contidos no mesmo frame, ou entre pixels de frames próximos (técnicas de codificação Inter-frames).

Os algoritmos de compressão MPEG empregam a técnica de codificação por Transformada Discreta De Coseno (DCT) em blocos de imagem de 8x8 pixels para explorar eficientemente correlações espaciais entre pixels em frames próximos de uma mesma imagem.

Contudo, no caso em que a correlação entre frames próximos é alta, ou seja , onde existem frames consecutivos iguais ou muito parecidos, se torna desejável o uso da técnica de codificação inter-frames DPCM empregando previsão temporal. Na codificação de vídeo MPEG usa-se uma combinação de ambas as técnicas de previsão compensada de movimento temporal seguida pela codificação transformada da informação espacial remanescente para alcançar alta compressão dos dados (híbrido: codificações DPCM e DCT).

A figura 1 descreve um exemplo de propriedade de correlação pixel-a-pixel de uma imagem.

Figura 1: Correlação inter-elemento espacial com alta correlação pixel-a-pixel. As variáveis X e Y descrevem a distância entre pixels na imagem horizontal e vertical, respectivamente.

 

(B) Subamostragem e Interpolação

Quase todas as técnicas de codificação de vídeo fazem uso exaustivo de subamostragens e quantização antes da codificação. O conceito básico de subamostragem é o de reduzir as dimensões de entrada do vídeo ( horizontal e vertical) e desta forma o número de pixels a serem codificados antes do processo de codificação.

No receptor as imagens codificadas são interpoladas para a exibição. Esta técnica pode ser considerada como uma das técnicas mais elementares e faz uso de características fisiológicas específicas do olho humano, e assim, remove redundâncias subjetivas de um dado de vídeo.

O olho humano é mais sensível a mudanças de brilho do que a mudanças de cor. No entanto os sistemas MPEG primeiramente dividem a imagem em componentes YUV ( componentes de luminância (Y) e crominância (U, V)), com descrição mais adiante.

Em seguida os componentes de crominância são subamostrados em relação aos componentes de luminância com uma relação Y:U:V específica para aplicações particulares. Com o padrão MPEG-2 é usada uma relação de 4:1:1 ou 4:2:2.

(C) Previsão Por Compensação De Movimento

É uma ferramenta poderosa para reduzir redundâncias temporais entre frames e é usada extensivamente nos padrões de codificação de vídeo MPEG-1 e MPEG-2 como uma técnica de previsão para codificação temporal DPCM. O conceito de compensação de movimento é baseado na estimativa de movimento entre frames de vídeo. O movimento entre frames pode ser descrito por um número limitado de parâmetros de movimento (pelo vetor de movimento de translação de pixels).

Neste exemplo simples a melhor previsão para um pixel atual é dado pela previsão de movimento compensado de um pixel de um frame codificado anteriormente. De qualquer forma a codificação de uma informação de movimento com cada pixel da imagem codificada, geralmente não é desejável nem necessário. Já que a correlação espacial entre vetores de movimento é frequentemente alta, assume-se que um vetor de movimento representa o movimento de um "bloco" de pixels adjacentes.

Nos algoritmos de compressão, as técnicas de previsão por compensação de movimento são usadas para reduzir as redundâncias temporais e somente as imagens de previsão de erros - a diferença entre imagens originais e imagens compensadas por previsão – são codificadas. Geralmente a correlação entre pixels numa imagem obtida por compensação de movimento inter-frame é menor que a propriedade de correlação no caso da compensação por intra-frames devido à previsão baseada em frames codificados anteriores.

 

Figura 2 : comparação de blocos por aproximação de compensação de movimento. Um vetor de movimento (vm) é estimado por um bloco em um frame atual N a ser codificado. Os pontos do vetor de movimento para um dado bloco de mesmo tamanho num frame codificado anteriormente N-1. O erro por compensação por previsão de movimento é calculado subtraindo-se cada pixel em um bloco com seu movimento desviado duplicado no bloco referido do frame anterior.

(D) Codificação No Domínio Da Transformada

Codificação por transformada tem sido estudada extensivamente durante as duas últimas décadas e tornou-se um método de compressão muito popular para codificação de imagens fotográficas e codificação de vídeo. O objetivo da codificação por transformada é descorrelacionar o conteúdo de imagens de intra ou inter-frames e codificar coeficientes de transformada particulares dos pixels originais da imagem.

Para este propósito as imagens de entrada são divididas em blocos separados de pixels b (blocos de NxN pixels).

A transformação pode ser representada como uma operação de matriz usando NxN transformações na matriz A para obter os NxN coeficientes da transformada c baseado numa transformação linear separável e de sentido unitário.

C = A b AT

Onde AT é a transposta da matriz de transformação A. A transformação é reversível, já que o bloco original NxN de pixels b pode ser reconstruído usando uma transformação linear e separável inversa

b = ATc A.

Em meio a diversas possíveis alternativas a Transformada Discreta de Coseno (DCT) aplicada a blocos menores de imagem, usualmente 8x8 pixels tem sido a transformada de melhor performance para imagens fotográficas e codificação de vídeo. Implementações baseadas em DCT são usadas em muitos padrões de codificação de imagens e vídeo devido à sua alta performance de descorrelação e a disponibilidade de algoritmos rápidos de DCT exigidos pelas implementações em tempo real. Um dos maiores objetivos da codificação por transformada é fazer os coeficientes da Transformada possivelmente pequenos o bastante para que eles sejam insignificantes (em termos de medidas estatísticas e subjetivas) e não necessitem ser codificados para transmissão. Ao mesmo tempo é desejável minimizar dependências estatísticas entre coeficientes com o objetivo de reduzir a quantidade de bits necessários para codificar os coeficientes remanescentes. A Figura 3 ilustra a variância (energia) de um bloco de 8x8 de coeficientes de DCT intra-frames baseado num modelo estatístico simples hipoteticamente já discutido na figura 1. Aqui a variância para cada coeficiente representa a incerteza do coeficiente como variou dentre um grande número de frames.

Coeficientes com pequenas variâncias são menos significativos para a reconstrução dos blocos de imagem que coeficientes com maiores variâncias. Como deve ser percebido na figura 3, na variação somente um reduzido número de coeficientes DCT precisa ser transmitido para o receptor para se obter uma reconstrução valorosa dos blocos de imagem. Além disso, os coeficientes DCT mais significativos estão concentrados próximos do canto esquerdo superior (coeficientes DCT baixos) e o significado da queda dos coeficientes com o aumento da distância. Isto implica que quanto maior o coeficiente DCT menor sua importância para a reconstrução que os menores coeficientes. Também aplicando compensação por previsão de movimento a transformação usando o DCT geralmente resulta numa apresentação compacta do sinal DPCM temporal no domínio DCT – o qual herda a coerência estatística similar ao do sinal no domínio DCT para os sinais intra-frames da Figura 3 (embora com redução de energia) - a razão pela qual os algoritmos MPEG aplicam codificação DCT também para compressão inter-frames satisfatoriamente.

Figura 3 : A figura ilustra a distribuição de variância dos coeficientes DCT calculadas tipicamente como a variação sobre um grande número de blocos de imagem. As variâncias dos coeficientes DCT foram calculadas baseadas no modelo estatístico usado na figura 1, u e v descrevem as variáveis horizontal e vertical da imagem no domínio da transformada dentro do bloco de 8x8. A maior parte da variância total está concentrada próxima do coeficiente DC do DCT (u=0, v=0).

O DCT é fortemente relacionado com a Transformada Discreta de Fourier (DFT) e isto tem alguma importância para compreender que os coeficientes DCT podem ser dados pela interpretação de freqüência próxima ao DFT. Desta forma coeficientes DCT baixos estão relacionados com baixas freqüências espaciais dentro de blocos de imagem e altos coeficientes DCT com freqüências mais altas. Esta propriedade é usada em esquemas de codificação MPEG para remover redundâncias subjetivas nos dados da imagem baseados em critérios do sistema de visão humano. Já que o observador humano é mais sensível a erros de reconstrução relacionados à baixas freqüências espaciais do que para altas freqüências, uma freqüência adaptativa ponderada (quantização) de acordo com a percepção visual humana (quantização percentual) é geralmente aplicada para aperfeiçoar a qualidade visual das imagens decodificadas para uma dada taxa de bits.

A combinação das duas técnicas descritas acima – compensação por previsão de movimento temporal e codificação no domínio da transformada – pode ser vista como o elemento chave do padrão de codificação MPEG. Um terceiro elemento característico dos algoritmos MPEG é que estas duas técnicas são processadas num pequeno bloco de imagem (de tipicamente 16x16 pixels para compensação por movimento e 8x8 pixels para codificação por DCT). Por este motivo os algoritmos de codificação MPEG são geralmente referenciados como algoritmos DPCM/DCT baseados em blocos híbridos.

Os blocos de imagem utilizados pela compensação de movimento são constituídos de 16x16 pixels e chamados de macroblocos. A equação 1 abaixo é calculada em diversos lugares do quadro para o casamento de macroblocos em quadros diferentes. A fórmula é a diferença absoluta (AE – Absolute Difference):

Na equação, f(i,j) representa o macrobloco do quadro corrente, e g(i,j) representa o mesmo macrobloco de um quadro de referência. O macrobloco de referência é deslocado por um vetor (dx, dy), representando a procura da localidade. O AE é validado em muitos pixels na área de procura. Há um algoritmo que direciona esta procura chamado de Three-Step-Search (TSS), que valida a AE no centro e em oito locais que o cercam, de uma área de 32x32 pixels. O local que produz o menor AE torna-se o centro do próximo quadro, e a escala de procura é reduzida pela metade. Esta seqüência é repetida três vezes.

MPEG-1 – PADRÃO GENÉRICO PARA CODIFICAÇÃO DE FIGURAS EM MOVIMENTO E AUDIO ASSOCIADO PARA ARMAZENAMENTO DE MÍDIA DIGITAL ATÉ 1.5Mbits/s

A técnica de compressão de vídeo desenvolvida por MPEG-1 cobre muitas aplicações em sistemas interativos em CD-ROM para a distribuição de vídeo em uma rede de telecomunicações. O padrão de codificação de vídeo MPEG-1 foi desenvolvido para ser genérico. Para suportar a grande gama de aplicações possui um perfil diversificado de parâmetros de entrada incluindo tamanhos flexíveis de figuras e a taxa de frames pode ser especificado pelo usuário. MPEG sugere um conjunto de parâmetros restritivos: todo decodificador MPEG-1 deve ser apto a suportar pelo menos parâmetros de entrada de uma fonte de vídeo como os de uma TV: incluindo um número mínimo de 720 pixels por linha, um número mínimo de 576 linhas por figura, uma taxa mínima de 30 frames por segundo e uma taxa mínima de bits de 1.86Mbits/s. O padrão de entrada de vídeo consiste em um formato de figura de vídeo não entrelaçado. Deve-se notar que de nenhuma forma a aplicação do MPEG-1 está limitada a este conjunto de parâmetros restritivos.

O algoritmo de vídeo MPEG-1 foi desenvolvido com base na atividade do JPEG e H.261. Procurou-se manter um alto grau de associatividade com o padrão CCITT H.261 de forma que implementações com ambas as normas são suportadas. Contudo, MPEG-1 foi objetivado inicialmente para aplicações em CD-ROM de multimídia, requerendo funcionalidade adicional suportada por ambos codificador e decodificador.

Características importantes providas pelo MPEG-1 incluindo acesso randômico de vídeo baseado em frames, avanço e retrocesso rápidos (FF/FR) procura entre seqüências de bits comprimidos, reprodução reversa de vídeo e editabilidade de seqüências de bits comprimidos.

(A) Esquema Básico de Codificação Inter-frame Mpeg-1

A técnica básica de codificação MPEG-1 (igualmente ao MPEG-2) é baseada numa estrutura macrobloco, compensação de movimento e renovação condicional de macroblocos. Como desenhado na Figura 4a o algoritmo de codificação MPEG-1 codifica o primeiro frame em uma seqüência de vídeo em modo de codificação intra-frame (I-picture). Cada frame subsequente é codificado usando previsão inter-frame (P-picture) – somente o dado do frame codificado imediatamente anterior I- ou P-frame é usado para a previsão. O algoritmo MPEG-1 processa os frames de uma seqüência de vídeo baseada em bloco. Cada frame colorido de entrada em uma seqüência de vídeo é particionado em macroblocos não sobrepostos como ilustrado na figura 4b. Cada macrobloco contém blocos de dados de ambos luminância e bandas coexistentes de crominância – quatro blocos de luminância (Y1, Y2, Y3, Y4) e dois blocos de crominância (U, V) cada um com 8x8 pixels. A relação de amostragem entre luminância e crominância dos pixels Y:U:V é 4:1:1.

FIGURA 4: A.) Ilustração de I-pictures (I) e P-pictures (P) numa sequência de vídeo.

Os P-pictures são codificados usando compensação por previsão de movimento baseada no frame anterior mais próximo. Cada frame é dividido em macroblocos separados (MB).

B.) Com cada macrobloco (MB), a informação relacionada com quatro blocos de luminância (Y1, Y2., Y3, Y4) e dois blocos de crominância (U, V) é codificada. Cada bloco contém 8x8 pixels.

O diagrama de bloco do sistema híbrido básico MPEG-1 DPCM/DCT de codificação e decodificação está ilustrado na figura 5. O primeiro frame numa seqüência de vídeo (I-picture) é codificado em modo Intra sem referência a nenhum frame passado ou futuro. No codificador a DCT é aplicada para cada bloco de luminância e crominância de 8x8 pixels e após a saída da DCT cada um dos 64 coeficientes DCT é quantizado uniformemente (Q). A largura de passo do quantizador (sz) usada para quantizar os coeficientes DCT dentro de um macrobloco é transmitida ao receptor. Depois de quantização o coeficiente DCT mais Baixo (coeficiente DC) é tratado diferenciadamente dos demais coeficientes remanescentes (coeficientes AC). O coeficiente DC corresponde à média de intensidade dos componentes do bloco e é codificado usando um método de previsão DC diferente. Os valores dos coeficientes DCT remanescentes do quantizador não zero estão então em rastreados em zig-zag e codificados por entropia corrida usando tabelas de código de comprimento de variável (VLC).

Figura 5: Diagrama de blocos de um sistema híbrido básico DCT/DPCM – codificador e decodificador.

O conceito de rastreamento zig-zag está esquematizado na Figura 6. O rastreamento do sinal de 2 dimensões do domínio DCT seguido pelas informações de tamanho de variável e palavra de sincronismo para os coeficientes servem de mapeamento para um sinal de imagem de duas dimensões em uma seqüência de bits de uma dimensão. Os valores dos coeficientes AC do quantizador "não zero" (comprimentos) são detectados ao longo da linha de rastreamento bem como a distância corrida entre dois coeficientes "não zero" consecutivos. Cada par consecutivo (run, length) de somente uma palavra de código VLC. O objetivo do rastreamento zig-zag é traçar os coeficientes DCT de baixa freqüência.

Figura 6 : Rastreamento zig-zag dos coeficientes DCT quantizados num bloco de 8x8 pixels. Somente os coeficientes DCT "não zero" são codificados. As possíveis localizações dos coeficientes DCT de acordo com a sua significância. Com referência à Figura 3 o coeficiente DCT mais baixo (0,0) contém a maior parte da energia do bloco e a energia está concentrada próxima dos coeficientes DCT mais baixos.

O decodificador realiza a operação reversa, primeiro extraindo e decodificando os códigos de tamanho de variável (VLD) da seqüência de bits para determinar as localizações e os valores de quantização dos coeficientes DCT "não zero" para cada bloco. Com a reconstrução (Q*) de todos os coeficientes DCT "não zero" pertencentes a um bloco e em seguida com a transformada DCT inversa (DCT-1) os valores dos pixels do bloco quantizado são obtidos. Pelo processamento da imagem inteira, todos os blocos de imagem são decodificados e reconstruídos.

Para a codificação P-picture, o frame anterior I- ou P-picture (frame N-1) é armazenado num depósito de frame (FS) em ambos codificador e decodificador. A compensação de movimento (MC) é realizada com base em um macrobloco – somente o vetor de movimento é estimado entre os frames N e N-1 para um dado macrobloco a ser codificado. Estes vetores de movimento são codificados e transmitidos ao receptor. O erro de compensação por previsão de movimento é calculado pela subtração de cada pixel num macrobloco pela sua cópia desviada em movimento do frame anterior. Um bloco de 8x8 DCT é então aplicado para cada um dos blocos de 8x8 contidos no macrobloco seguidos pela quantização (Q) dos coeficientes DCT com subsequente codificação de run-length e codificação de entropia (VLC). Um buffer de vídeo (VB) é necessário para assegurar que uma desejada taxa de bit constante seja produzida na saída do codificador. A largura de passo da quantização (sz) pode ser ajustada para cada macrobloco em um frame para alcançar a taxa de bits desejada e para evitar a saturação (overflow) do buffer (e underflow).

O codificador usa o processo inverso para produzir um macrobloco do frame N no receptor. Após a decodificação a palavra de tamanho de variável (VLD) contida no buffer do decodificador de vídeo (VB) os valores de pixel da previsão de erros são reconstruídos (operações Q*, e DCT-1). Os pixels compensados em movimento do frame anterior N-1 contidos no depósito de frames (FS) são somados aos da previsão de erro para recuperar o monobloco particular do frame N.

A fórmula 2 abaixo representa a DCT bi-dimensional de 8x8 escrita em termos de valores de bits f(i,j) e os coeficientes da transformada no domínio da freqüência F(u,v):

 

Onde

Os coeficientes da DCT F(u,v) são então quantizados para reduzir o número de bits para representá-los e também o número de coeficientes de valores-zero.

A vantagem da codificação de vídeo usando a compensação por previsão de movimento do frame anteriormente reconstruído N-1 num codificador MPEG está ilustrado nas Figuras 7a até 7d para uma seqüência de teste típica. A figura 7a mostra um frame no instante de tempo N a ser codificado e a figura 7b o frame reconstruído no instante N-1 o qual é armazenado num depósito de frames (FS) em ambos codificador e decodificador. Os vetores de movimento do bloco (mv, ver também a figura 2) ilustrado na figura 7b foi estimado através de um procedimento de estimativa de movimento feito pelo codificador e fornece uma previsão do deslocamento de translação de cada macrobloco em um frame N com relação ao frame N-1. A figura 7b ilustra o sinal de diferença puro entre os frames (N e N-1) que é obtido sem nenhuma compensação por previsão de movimento no processo de codificação – desta forma todos os vetores de movimento são considerados como zero. A figura 7b ilustra a diferença entre os sinais de frames compensados por movimento quando os vetores de movimento na figura 7b são usados para a previsão. Aparentemente o sinal residual a ser codificado é enormemente reduzido usando a compensação de movimento com a codificação por diferença pura entre

frames da figura 7c.

 

FIGURA 7a

FIGURA 7b

FIGURA 7c

FIGURA 7d

 

Figura 7: (A) Frame no instante N a ser codificado. (B) Frame no instante N-1 usado para prever o conteúdo do frame N (note que os vetores de movimento ilustrados na imagem não fazem parte da imagem reconstruída armazenada no codificador e decodificador). (C) A imagem obtida por previsão de erro sem o uso da previsão de movimento – todos os vetores de movimento são considerados como zero. (D) A imagem de previsão de erro a ser codificada com o emprego da compensação por previsão de movimento.

(B) Renovação Condicional

Uma característica suportada pelo MPEG-1 é a possibilidade de atualizar a informação do Macrobloco no decodificador somente se necessário – se o conteúdo do Macrobloco mudou em comparação ao conteúdo do mesmo Macrobloco do frame anterior. (Renovação de Macrobloco Condicional). A chave para a codificação eficiente de uma seqüência de vídeo a uma taxa de transmissão de bits mais baixa, é a seleção do modo de previsão apropriada para garantir Renovação Condicional. O padrão MPEG distingue principalmente três tipos diferentes de codificação Macrobloco(tipos MB):

Skipped MB – previsão do frame anterior com vetor de movimento zero. Nenhuma informação sobre o Macrobloco é codificada nem transmitida para o receptor.

Inter MB – previsão de movimento compensado do frame anterior é usado. O tipo MB, o endereço MB e, se requerido, o vetor de movimento, os coeficientes DCT e

o progresso de quantização são transmitidos.

Intra MB – nenhuma previsão é usada do frame anterior (somente previsão Intra-frame). Somente o tipo MB, o endereço MB e os coeficientes DCT e o progresso de quantização são transmitidos para o receptor.

 

(C) Funcionalidades Específicas de Mídia Gravável

Algumas funcionalidades de armazenamento são características do MPEG-1 como, acesso aleatório, avanço rápido (FF) e retrocesso rápido (FR). Desta maneira, faz o uso do conceito B-Pictures (previsão bi-direcional/quadros bi-direcionais interpolados). A Figura 8 mostra o conceito para um grupo de quadros consecutivos em uma seqüência de vídeo. Três tipos de quadro são considerados: Intra-picture (I-picture) são codificados sem referência a outros quadros contidos na seqüência de vídeo, como visto na Figura 4. I-pictures permitem acesso a pontos para acesso aleatório e FF/FR na seqüência de bits, mas permite somente baixa compressão. Quadros com previsão Inter-frame (P-pictures) são codificados com referência ao I-picture ou P-picture anteriormente codificado e mais próximo, normalmente incorporando compensação de movimento para aumentar eficiência. As P-pictures são usados como referência para previsão passada e futura de frames, e não são adequados para acessar pontos aleatórios. As B-pictures necessitam de frames passados e futuros como referência. Para garantir alta compressão, a compensação de movimentopode ser empregada baseado nos mais próximos P-pictures e I-pictures passados e futuros. As B-pictures nunca são usadas como referência.

 

Figura 8: I-pictures (I), P-pictures (P) e B-pictures (B) em uma seqüência de vídeo. As B-pictures podem ser codificadas usando a previsão de movimento compensado baseado nos dois frames mais próximos já codificados (tanto I-picture como P-picture). A direção para previsões de quadro são indicados na figura.

Como regra geral, uma seqüência de vídeo codificada usando I-pictures somente (I I I I I ...) permite o mais alto grau de acesso randômico, FF/FR e editbilidade, mas dispõe apenas de baixa compressão. Uma seqüência codificada com uma atualização regular I-picture e nenhum B-picture (ex. I P P P P P P I P P P P ...) dispõe de compressão moderada um certo grau de acesso aleatório e funcionalidade FF/FR. A junção dos três tipos de quadros, como na figura 8 (I B B P B B P B B I B B P ...), dispõe de alta compressão e acesso aleatório razoável e funcionalidade FF/FR, mas também aumenta o atraso de codificação. Para, por exemplo, videotelefonia e videoconferência este atraso não é tolerável.

(D) Controle de Taxa de Compressão

O padrão MPEG permite que se ajuste o stepsize (sz) da Figura 5 para quantização dos coeficientes DCT. Pode-se selecionar diferentes valores de quantização para cada Macrobloco, podendo-se gerar tanto taxa de compressão constante ou variável.

A compressão de vídeo é variável por natureza. Para que se armazene ou transmita a uma taxa de bits constante, é necessário que o video buffer (VB) da Figura 5 armazene temporariamente a seqüência de bits variável.

Há um algoritmo de controle de taxa de compressão no codificador que ajusta o stepsize garantindo-se que o buffer nunca vai "transbordar".

O algoritmo de controle de taxa de compressão não é parte do padrão MPEG-1 e é deixado para cada desenvolvedor usar de acordo com a necessidade de eficiência. Este algoritmo pode significar em grande melhoria na reconstrução do vídeo no decodificador.

 

MPEG-2 STANDARD FOR GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO

O universo de estudo do MPEG-1 é o desenvolvimento dentro de um padrão de codificação de vídeo de sucesso com um aumento de produtos disponíveis no mercado. Um fator chave para este sucesso é a estrutura genérica do padrão que suporta uma larga escala de aplicações e parâmetros de aplicações específicas. Contudo, o MPEG continuou seu esforço para padronização em1991 com uma segunda fase (MPEG-2) para promover uma solução para codificação de vídeo para aplicações não previstas originalmente ou encaradas pelo padrão MPEG-1. O padrão MPEG-2 foi especificamente desenvolvido para garantir a qualidade de compressão de vídeo que não fosse menor que NTSC/PAL e até a qualidade CCIR 601. As aplicações emergentes, como TV a cabo, transmissão ATM para redes, aplicações VTR e transmissão digital por satélite e terrestre, foram amparadas pela nova padronização. Em 1994 o Padrão MPEG-2 foi publicado.

Basicamente o MPEG-2 pode ser visto como um adendo ao padrão de codificação MPEG-1 e é compatível ao mesmo. Um decodificador MPEG-2 pode decodificar uma seqüência de bits codificada pelo padrão MPEG-1. Algumas características de codificação foram adicionadas ao padrão MPEG-2 para suportar principalmente codificação de vídeo entrelaçado. Além disso, extensões de código para vídeo scalable video foram introduzidos para codificação de TV digital e HDTV.

O escopo de utilização do padrão MPEG-2 é conforme com codificação não-escalável de vídeo digital para parâmetros de TV digital com um máximo de 720 amostras por linha e 576 linhas por frame, uma taxa de frames máxima de 30 frames por segundo e uma taxa de bit máximoa de 15 Mbit/s.

 

(A) Modos não-escaláveis de codificação MPEG-2

Idêntico ao padrão MPEG-1, o algoritmo de codificação é baseado na codificação híbrida DCT/DPCM como esquematizado na Figura 5, incorporando uma estrutura de Macroblocos, compensação de movimento e modos de codificação para renovação condicional de Macroblocos. O conceito de I-pictures, P-pictures e B-pictures, como apresentado na Figura 8 é mantido no MPEG-2.

Field e Frame Pictures: o padrão MPEG-2 introduziu o conceito de frame pictures e field pictures para acomodar a codificação para vídeo entrelaçado. Para seqüências entrelaçadas, assume-se que a entrada para a codificação consista de uma série de campos diferentes (topo) e campos parecidos (abaixo) que são separados em tempo por um período de campo. Dois campos de um frame podem ser codificados separadamente (field pictures, Figura 9). Neste caso cada campo é separado em Macroblocos adjacentes de não-superposição e a DCT é aplicada no campo. De maneira alternativa, dois campos podem ser codificados juntos como um frame (frame pictures), similar à codificação de seqüências de vídeo gradual. Aqui, linhas consecutivas dos campos do topo e abaixo são simplesmente unidos para formar um frame. Ambos frame pictures e field pictures podem ser usados em uma seqüência de vídeo única.

Figura 9: O conceito de field pictures e um exemplo de previsão de campo. Os campos do topo e os campos abaixo são codificados separadamente. Entretanto, cada campo abaixo é codificado usando-se previsão Inter-field de movimento compensado baseado no campo de topo codificado anteriormente. Os campos de topo são codificados usando-se previsão Inter-field de movimento compensado tanto no campo de topo codificado como no campo abaixo codificado. Este conceito pode ser estendido para incorporar B-pictures.

Field e Frame Prediction: novos modos de previsão de campos de movimentos compensados foram introduzidos pelo MPEG-2 para codificar eficientemente os field pictures e os frame pictures. O exemplo da Figura 9 mostra simplificadamente uma seqüência de vídeo entrelaçada, contendo aqui apenas três field pictures e nenhum B-pictures. Na previsão de campos, as previsões são feitas independentemente para cada campo usando-se dados de um ou mais campos previamente decodificados, ou seja, para um campo de topo um campo prévio pode ser obtido tanto por um campo de topo prévio (usando-se a previsão de movimento compensado) ou de um campo abaixo decodificado, pertencendo à mesma cena (quadro). Geralmente a previsão Inter-field de um campo decodificado no mesmo quadro é preferível se nenhum movimento ocorre entre campos. Uma indicação para que tipo de campo é usado para previsão é transmitido com a seqüência de bits. Dentro de um field picture todas as previsões são field predictions.

O padrão MPEG-2 introduziu novos modos de compensação de movimento para explorar eficientemente as redundâncias temporais entre campos, nomeado de previsão Dual Prime e a compensação de movimento baseado em 16x8 blocos.

Formato de crominância: o MPEG-2 tem um formato de taxa de subamostragem específico para luminância e crominância Y:U:V, para garantir seu uso com transmissões de vídeo de alta qualidade. Próximo ao formato já suportado pelo MPEG-1 de 4:2:0, a especificação do MPEG-2 é estendida para 4:2:2.

(B) Extensões Mpeg-2 Para Codificação Escalável

As ferramentas de escalabilidade normatizadas pelo MPEG-2 suportam aplicações além daqueles enderessados pelo perfil básico algoritmo de codificação básico. O objetivo da codificação escalável é permitir interoperacionalidade entre diferentes serviços e suportar flexivelmente com capacidade diferente de exibição. Receptores mesmo não capazes ou concordantes com a resolução de vídeo podem decodificar subconjuntos de arquiteturas de seqüências de bits para exibir vídeo com baixa resolução espacial ou temporal ou com menor qualidade. Outro objetivo importante da codificação escalável é permitir que uma seqüência de vídeo arquitetada seja sobreposta por transmissão prioritária.

A maior desafio aqui é distribuir sinais vídeo realisticamente na presença de erros de canal, como erros de celula em transmissões em redes baseadas em ATM ou em interferências co-canais em transmissão digital terrestre.

Suportar flexivelmente multiplas resoluções é de interesse particular para interações entre HDTV e definição de padrão de televisão (SDTV), em cujo caso este fato é importante para o receptor de HDTV ser compatível com os produtos SDTV. A compatibilidade pode ser alcançada em termos de codificação escalável da fonte de HDTV e a evitar o desperdício de se fazer transmissão de duas seqüências de vídeo para dois receptores de HDTV e SDTV. Outras aplicações importantes para a codificação escalável inclui a procura de base de dados de vídeo e reprodução de vídeo com equipamentos de vídeo de multiresolução.

A figura 10 ilustra a filosofia geral de um esquema de codificação multiescala. Dois arquiteturas são disponíveis, cada arquitetura suportando vídeo numa escala diferente, ou seja , uma representação de multiresolução pode ser reduzindo-se um sinal de entrada de vídeo em um vídeo de menor resolução (subamostrando espacialmente ou temporalmente). A versão reduzida é codificada em um layer básico de seqüência de bits com taxa de bits reduzido. O layer básico de vídeo reconstruído ampliado (superamostrado espacialmente ou temporariamente) é usado como previsão para a codificação do sinal original de entrada. O erro de previsão é codificado com um layer melhor de seqüência de bits. Se um receptor não é capaz ou não é compatível de exibir o vídeo com qualidade total, um vídeo de menor qualidade pode ser reconstruído pela decodificação do layer mais básico da seqüência de bits. É importante notificar, contudo, que a exibição do vídeo à resoluções mais altas com qualidade reduzida também é possível somente pela decodificação dos layers de menor taxas de bits. Desta forma a codificação escalável pode ser usada para codificar vídeo com uma taxa de bits desejada alocado em cada layer a fornecer os requisitos de largura de banda específicos dos canais de transmissão e da mídia de armazenamento. A procura através de bases de dados de vídeo e transmissão de vídeo por redes heterogêneas são aplicações esperadas para o benefício desta funcionalidade.

Figura 10: Codificação de vídeo escalável

Durante a fase de padronização do MPEG-2 foi dado como impossível desenvolver um esquema de codificação escalável genérico capaz de satisfazer todos os requisitos de diversas aplicações. Enquanto algumas aplicações estavam limitadas a pequenas complexidades de implementações, outras pediam eficiência muito maior de codificação. Como conseqüência o MPEG-2 padronizou três esquemas de códigos escaláveis: SNR (qualidade) escalabilidade, Escalabilidade espacial e temporal – cada uma delas objetivando atender especificações de aplicações particulares. As ferramentas de escalabilidade forneceram extensões algorítmicas para esquemas não escaláveis definidos no perfil principal. É possível combinar diferentes ferramentas de escalabilidade num esquema de codificação híbrido, isto é permitir interoperabilidade entre serviços com resoluções espaciais diferentes e taxas de frames podem ser suportadas no sentido da combinação de ferramentas de escalabilidade espacial e temporal num esquema de codificação com arquitetura híbrida. A interoperabilidade entre HDTV e SDTV pode ser obtida embora com uma certa suceptância a erros de canal combinando as extensões de escalabilidade espacial com as ferramentas de escalabilidade SNR. A sintaxe MPEG-2 suporta até três diferentes layers escaláveis.

A escalabilidade espacial foi desenvolvida para suportar displays com diferentes resoluções espaciais no receptor – resoluções espaciais de vídeo mais baixas podem ser reconstruídos do layer básico. Esta funcionalidade é vantajosa para aplicações incluindo codificações embutidas para sistemas HDTV/TV, permitindo uma migração de um serviço de TV digital para serviços de HDTV de alta fidelidade espacial. O algoritmo é baseado em uma aproximação piramidal clássica para codificação progressiva de imagem.

A ferramenta de escabilidade SNR foi desenvolvida para garantir escalabilidade de qualidade. Se o layer básico pode ser protegido de erros de transmissão, uma versão do vídeo com qualidade reduzida pode ser obtida decodificando-se o sinal do layer básico apenas. O algoritmo usado para se conseguir uma degradação "polida" é baseado em uma técnica de escalabilidade por freqüência (no domínio DCT). Ambos os layers na Figura 11 codificam o sinal de vídeo na mesma resolução espacial. As Figuras 11a e 11b mostram um detalhe da implementação possível de um codificador e de um decodificador de escalabilidade SNR.

No layer básico os coeficientes DCT são grosseiramente quantizados e transmitidos para se conseguir uma qualidade de imagem moderada a uma taxa de transmissão de bits reduzida. O layer codifica e transmite a diferença entre os coeficientes DCT não-quantizados e os coeficientes quantizados do layer básico com um processo de quantização melhorado. No decodificador, a mais alta qualidade do sinal de vídeo é reconstruída decodificando-se ambas as seqüências de bits do layer mais baixo e do layer mais alto.

É também possível usar este método também para se obter vídeo com resolução espacial menor no receptor. Se o decodificador seleciona os coeficientes DCT mais baixos da matriz NxN da seqüência de bits do layer básico, DCTs inversas não padronizadas de tamanho NxN podem ser usadas para reconstruir o vídeo a uma resolução espacial reduzida.

 

Figura 11 (a)

 

Figura 11 (b)

Figura 11: (a) Uma implementação possível de um codificador de dois layers para codificação SNR-escalável de vídeo. (b) Decodificador.

A escalabilidade temporal foi desenvolvida com o objetivo similar da escalabilidade espacial – vídeo estereoscópico pode ser suportado com uma seqüência de bits layered prático para receptores com displays que possuem essas funcionalidades. Os layers são conseguidos provendo-se uma previsão de uma das imagens do vídeo estereoscópico (ex. Vista esquerda) no layer melhorado baseado nas imagens codificadas da vista oposta transmitida no layer básico.

Partição de dados é utilizado como cancelamento de erros na presença de erros de transmissão ou erros de canal no ATM, transmissão terrestre ou ambientes de gravação magnética. Esta ferramenta não foi formalmente padronizada ainda para o MPEG-2 pelo fato de poder ser uma ferramenta de pré-processamento ou pós-processamento para qualquer esquemático de layer único. O algoritmo é similar à escalabilidade SNR e baseada na separação dos coeficientes DCT e implementada com complexidade muito baixa se comparada aos outros esquemas de escalabilidade. Para garantir proteção contra erro, os coeficientes DCT na seqüência de bits são simplesmente separados e transmitidos em dois layers com probabilidade de erro diferente.

 

 

REFERÊNCIAS

http://www.mpeg2.de

http://icsl.ee.washington.edu/~woobin/papers/General/node2.html

http://www.cstv.to.cnr.it/