VC-1: PADRÃO DE COMPRESSÃO DE VÍDEO

SMPTE
VC-1: PADRÃO DE COMPRESSÃO DE VÍDEO
COMO OS PCS E OUTROS DISPOSITIVOS DIGITAIS SÃO CADA VEZ MAIS USADOS NA MANIPULAÇÃO, ENTREGA E ADMINISTRAÇÃO DO VÍDEO DIGITAL, COMEÇA A NÃO EXISTIR DISTINÇÃO ENTRE EQUIPAMENTOS ELETRÔNICOS DE CONSUMO E COMPUTADORES.
Por Shankar L. Regunathan, Ann Marie Rohaly, Regis Crinon e Patrick Griffis

Codificação entrelaçada
O conteúdo de vídeo entrelaçado é predominante na indústria da TV aberta. Cada quadro entrelaçado tem dados a partir de dois intervalos de tempo diferentes, onde todas as linhas pares (topo do campo) são provenientes de um intervalo de tempo e todas as linhas ímpares (base inferior) são provenientes de um intervalo de tempo diferente. Há dois tipos de imagens entrelaçadas que o VC-1 aceita: a codificação de imagem de campo e a de quadro.

a – Codificação de imagem de campo
Nessa codificação, os dois campos que formam um quadro são codificados separadamente. Um campo é dividido em macroblocos, que podem ser codificados tanto como intra ou inter. Um macrobloco codificado como intra em um campo é codificado da mesma forma que uma imagem progressiva de um macrobloco codificado como intra. Os macroblocos codificados como inter contêm vetores de movimento que podem ser referência para qualquer um dos dois campos codificados previamente para compensação do movimento.

b – Codificação de imagem de quadro
Na codificação do quadro, ambos os campos do quadro entrelaçado são codificados juntos. Cada macrobloco contém amostras a partir de dois instantes de tempo (isto é, 8 linhas da parte superior e oito da inferior). Para um macrobloco intra, o codificador tem a opção de reordenar a porção de luminância, de acordo com os campos, para tentar aumentar a correlação espacial antes de codificar a transformada. Um macrobloco inter-codificado pode ser compensado em movimento de dois modos.
No modo de compensação de movimento no quadro, cada macrobloco é compensado em movimento sem levar em conta a estrutura do campo e é semelhante à codificação progressiva.
No modo de compensação de movimento no campo, os que estão dentro de um macrobloco são compensados separadamente, usando dois ou quatro vetores de movimento de campo ou quatro vetores de movimento de campo. Após a compensação do movimento, o resíduo pode também ser reordenado antes da transformada, e esse processo é independente do tipo de compensação de movimento.

Codificação do quadro B avançado
Os quadros bidirecionais ou B empregam a estimativa e compensação de movimento a partir de ambas as direções: anterior e posterior. As principais inovações no VC-1 que aumentaram a eficiência da compensação dos quadros B são:
A explícita codificação da posição temporal do quadro B em relação aos dois quadros de referência. Isso não precisa ser a posição real no tempo, mas pode ser qualquer fração que forneça a melhor escala dos vetores de movimento com o modo direto.

Os quadros B codificados como intra (conhecidos como quadros B/I) são permitidos no VC-1. Esses campos ocorrem, tipicamente, nas mudanças de cenas onde é mais econômico codificar os dados como intra. No entanto, esse tipo de quadro é distinguido dos quadros I verdadeiros por não permitir que sejam referenciados por outros quadros.
A eficiência da codificação do vetor de movimento (MV) é devida à regra de predição “posterior prevê posterior e anterior prevê anterior” – isso envolve armazenar (em buffers) os componentes posterior e anterior de cada MV, separadamente, incluindo aqueles correspondentes ao modo direto.
Permite que a parte inferior do campo B (na codificação entrelaçada) se referencie aos campos superiores da mesma imagem.
Fig. 5 – Alisamento superposto aplicado nos contornos dos blocos.

Suavizando a superposição
A suavização da superposição é uma técnica usada para reduzir artefatos dos blocos em dados intra – tanto nos quadros intra, quanto nas áreas intra dos quadros previstos (P e B).
A fig. 5 mostra os pixels nos quais a amortização da superposição é aplicada. Os blocos intra são marcados em cinza e os pixels amortizados são padronizados. Na mesma figura são duas superposições, e dois pixels serão reprocessados, cada um a partir dos dois blocos adjacentes mostrados. A operação no encoder compensa a suavização na decodificação. A principal vantagem da realização no domínio espacial da transformada superposta é que a existência de um codec, baseado em blocos, pode ser novamente conformada com um estagio de pré e pós-processamento para deduzir os benefícios da transformada superposta. O pós-processamento é um filtro de alisamento linear aplicado na reconstrução da transformada inversa, dentro do loop do decoder. O pré-processamento é o inverso do pós.

Ferramentas de baixas taxas
O codec VC-1 de vídeo especifica ferramentas que são próprias para acomodar cenários de taxas de bits baixas (LBR- low bit rates), por exemplo abaixo de 100 kbits/s. Uma dessas ferramentas é a capacidade de codificar quadros em múltiplas resoluções, reduzindo as dimensões de cada quadro codificado. O VC-1 permite fatores arbitrários para redimensionar, mas o tamanho do quadro codificado é mantido para dois quadros I consecutivos. O decodificador é informado que esses quadros foram reduzidos e irá recuperar o tamanho verdadeiro da imagem decodificada antes de mostrá-la no monitor. O filtro para superamostragem está fora do loop de codificação e o usuário poderá usar qualquer fator para esse filtro. Quando operando em um nível de redução, a faixa de quantização é estendida além da normal.

Compensação da Intensidade
As seqüências de vídeo com atenuações (fadings) ou mudanças de iluminação total devido a efeitos tais como fade para preto, fade a partir do preto, cross-fading e dissolução (dissolves) requerem quantidades de bits relativamente grandes para codificação, porque as técnicas padrão de compensação de movimento são ineficazes.
A intensidade da compensação é usada pelo VC-1 para melhorar o desempenho da compensação de movimento nas seqüências de vídeo que incluem fading. O codificador VC-1 detecta fading antes da compensação de movimento. Se o fading é detectado, o codificador calcula os parâmetros dele os quais especificam uma transformada linear, de primeira ordem e com pixels adequados para a imagem de referência.
Os parâmetros do fading são quantizados e sinalizados para o decodificador. O codificador e o decodificador usam esses parâmetros para transformar o quadro original em um outro quadro de referência. O processo permite a compensação de movimento para encontrar melhores preditores, e a eficiência da compressão como, um todo, é ampliada.

Perfis e níveis
Um perfil é um subconjunto definido da sintaxe de um padrão com um conjunto especifico de ferramentas de codificação, algoritmos e sintaxe associada a ele. O nível é um conjunto definido de restrições sobre os valores que podem ser atribuídos aos parâmetros (tais como taxa de bits e tamanho do buffer) dentro de um perfil, em particular. Dentro do mesmo perfil, níveis altos, geralmente implicam em altas exigências na velocidade de processamento e memória.
Os codificadores produzem bit streams conforme o perfil e o nível especificados, e os decodificadores recuperam os bit streams de acordo com um conjunto de perfis e níveis. Os perfis e níveis são cruciais para assegurar a interoperacionalidade entre encoders, bit streams codificados e decodificadores.
Observe que um bit streams conformado para uma determinada combinação perfil/ nível, em particular, é também conformado para todos os níveis mais altos do mesmo perfil.
Há três perfis no VC-1: simples, principal e avançado.
O simples atende a aplicações de Internet em baixa velocidade e aplicações de baixa complexidade, tais como comunicações móveis ou reprodução de mídia em PDAs (Personal Digital Assistants). Há dois níveis nesse perfil.
O perfil principal atende as aplicações de Internet em banda larga, tais como streaming, Cinema/IP ou TV/ VoD (Video on Demand) sobre IP. Este perfil contém três níveis.
O perfil avançado atende a aplicações broadcast, tais com TV digital, HD DVD para aplicações em PC ou HDTV. É o único perfil que suporta conteúdo entrelaçado. Além do mais este perfil contem os elementos de sintaxe necessários para transmitir bit streams de vídeo em sistemas genéricos, tais como transporte com MPEG-2 ou streams de programas (ISO/ IEC 138180-2). Esse perfil tem cinco níveis.

Adequação do VC-1
1 – Decodificador de referência
O software decodificador de referência do VC-1 está agora disponível na SMPTE. O decoder de referência foi implementado independentemente pela ARM Ltda., Cambridge, Inglaterra, com toda a codificação escrita a partir de um rascunho e inteiramente baseado no padrão SMPTE 421M proposto. Ele foi projetado para suportar todas as funções definidas nas especificações, e como tal ser capaz de decodificar quadros I, P, B, BI e saltar quadros em todos os perfis válidos. Foi escrito em C, pensando em portabilidade e simplicidade. Não é otimizado para desempenho, apesar de cuidados terem sido tomados para manter a estrutura dos dados em tamanhos razoáveis . Como bônus ele inclui muitas ferramentas para solucionar problemas, ajudando os implementadores do padrão proposto.
O decodificador de referência VC-1 comprime mais do que 100 mil linhas do código ANSI C, fazendo um mínimo uso de funções de biblioteca C, para assegurar a portabilidade através de uma ampla variedade de sistemas.

2 – Operação do decoder de referência
A decodificação de imagens I envolve “desempacotar” a imagem, o macrobloco, e as camadas dos blocos; prever a informação sobre o bloco atual a partir dos blocos anteriores; decodificar os coeficientes DC e AC; retirar o zigue-zague; desquantizar os coeficientes de transformada e finalmente realizar uma transformada inversa. As operações de processamento podem ser aplicadas à imagem no buffer do display.
Decodificar uma imagem P envolve: “desempacotar” a imagem, o macrobloco e as camadas de blocos prevendo a informação sobre o bloco atual, a partir dos blocos anteriores; decodificar os coeficientes AC; decodificar os MV do bloco previsto retirar o zigue-zague; desquantizar os coeficientes da transformada; realizar a transformada inversa, e finalmente combinar o bloco diferença com o vetor movimento do bloco previsto.
Decodificar uma imagem B é similar ao caso da imagem P, porém até dois MVs são decodificados, os quais são usados para prever blocos a partir de até duas imagens de referência.
Um macrobloco completo é decodificado antes de mover-se para o próximo, dentro de cada macrobloco todos os blocos são “desempacotados”, decodificados, previstos e transformados em imagem. Observe que a operação anterior a formação dos blocos (de-blocking) não é incluída nessa decodificação. Ela é realizada como um passo separado.
Mais detalhes do projeto e operação do decodificador de referência podem ser encontrados no Manual de Referência Técnica de 140 páginas, que acompanha o software do decodificador.

O VC-1 como referência para testar decoders
O decodificador de referência VC-1 tem um papel importante na implementação dos testes feitos nos decoders terceirados para que eles sejam compatíveis com o as especificações do VC-1. Outro elemento necessário é um conjunto de características de adequação dos bit streams. Para atender esse objetivo foi feito um conjunto de 240 regras para adequação deles, as quais estão na Recomendação Prática7 (RP) do VC-1. O conjunto completo dessas regras já existe e acompanha o software de referência do decodificador VC-1.
Além disso, para auxiliar nos testes de adequação dos bit streams gerados nas implementações do codificador VC-1, o software do decodificador de referência VC-1 inclui uma opção de reparar (debug) que pode ser configurada para mostrar na saída os dados corrigidos em todos os níveis do bit stream, a partir da seqüência de níveis que foi abaixada até o nível de blocos. Por favor, veja a RP2287 para mais detalhes sobre decoder e adequação do bit streamàs normas do VC-1.

VC-1 – Mapeando transporte para MPEG-2
O VC-1 sobre MPEG-2 (VC-1/MPEG-2) e streams de Programas estão sendo definidos em uma Recomendação Prática da SMPTE para que o VC-1 possa ter essa opção8. Essa é uma especificação tipo RP feita para o núcleo das especificações SMPTE VC-1.
A RP 227 proposta define o transporte de streams elementares de vídeo VC-1 com perfis Simples, Principal ou Avançado em um stream de transporte ou de programa MPEG-2. A RP mostra que os princípios fundamentais de empacotamento e sincronização dos sistemas MPEG-2 são aplicáveis aos streams elementares VC-1. Em particular, a sinalização de streams elementares VC-1 se baseia na emenda 2 da ISO/ IEC 13818-1: 2000, que descreve um mecanismo de extensão de identificação do stream, para valores identificados no cabeçalho PES (Packetized Elementary stream – MPEG-2).
Qualquer sinalização VC-1, incluindo o valor do stream que descreve o tipo de campo e os identificadores específicos VC-1, é retirada de um Descritor Registrado MPEG-2, localizado na Tabela de Mapa de Programa ou no Mapa de streams de Programa, no caso de Transporte MPEG-2 ou streams de Programas respectivamente.
O valor do identificador de formato no registro da descrição MPEG-2 é definido como “VC-1”, o qual na conclusão do padrão necessitará ser registrado pela Autoridade responsável da SMPTE. A RP também inclui uma definição para modelos de buffers: (T-STD (Transport System Target decoder – Decodificador Alvo de Sistemas de Transporte)) e (P-STD (Program System Target decoder – Decodificador Alvo de Sistema de Programa)), que os sistemas MPEG-2 estabelecem como contrato de entrega entre um codificador e seus decodificadores. Nesses modelos de buffers, as entregas das unidades de acesso de vídeo VC-1 para o decodificador são governadas pelo valor do MPEG-2 Decoding Time Stamps (Um selo para decodificação dos tempos padronizados) conforme especificado em sistemas MPEG-2.
A RP 2278 (VC-1 Transport Bindings) fornece as bases para mapear os streams elementares de VC-1 para os sistemas HD-DVD (programa MPEG-2 baseado em stream) e Blu-ray (transporte MPEG-2 baseado em streams).

Conclusão
O padrão VC-1 proposto pela SMPTE 421 M, oferece desempenho de alta compressão, com estado d’arte em eficiência computacional, viabilizando software de decodificação de vídeo em alta definição, mesmo em simples PCs. A especificação da sintaxe do bit stream VC-1 tem mais de 475 páginas, fornecendo uma imensa quantidade de detalhes, conforme se espera de um padrão de qualidade. O documento teve múltiplas revisões e foi melhorado de forma representativa, com base nos comentários e esclarecimentos de muitos revisores como parte de um processo de padrão aberto. Todos os três documentos do VC-1 (especificação e as RPs associadas) recentemente arquivados com o status de Final Committee Draft (Esboço de Padrão) preparam para a etapa que é uma votação onde o documento se transforma em Draft Standard (Padrão pronto).

Os Autores
Shanker l. Regunathan recebeu o título de B. Tech em eletrônica e comunicações no Indian Institute of Technology, em Madras, em 1994 e os graus de M. S. e PhD em engenharia elétrica na Universidade da Califórnia, santa Bárbara, em 1996 e 2001 respectivamente. Atualmente trabalha na Microsoft Corp. Redmond, WA.
Ann Marie Rohaly é uma gerente de programa na Digital Media Division of Microsoft responsável pelos programas Windows Media Vídeo e Adequação do VC-1. Antes de vir para a Microsoft em 2003, ela trabalhou por 5 anos na Tektronix, Inc. em diversas posições gerenciais (sênior) inclusive a de tecnologia estratégica para a linha de produtos de vídeo.
É uma participante ativa no Grupo ITU de Experts em Qualidade de Vídeo. Ela foi escolhida como editora-chefe do grupo “Phase I Final Report on the Validation of Objective Models of Vídeo Quality Assessment” e descreveu um ponto diferenciador na padronização do ITU para o prêmio Emmy que a Tektronix ganhou com o PQA300, que é uma tecnologia para medir a qualidade de imagens. Ela é também juíza da “World Airline Entertrainment Association’s Avion Awards” desde 2004. Rohaly tem o B. E. S. em engenharia biomédica do John Hopkins University e o PhD em bioengenharia da University of Pennsylvania.
Regis J. Crinon recebeu o grau de PhD em engenharia elétrica e computacional na Oregon State University, Corvallis, OR. Iniciou sua carreira na Tektronix Inc. onde foi um dos projetistas do Filtro 3D para separar Luminância da Crominância em NTSC e PAL. Esse trabalho recebeu um prêmio Emmy Profile em sistemas de edição de vídeo. Trabalha na Microsoft desde 2002 onde lidera um grupo que desenvolve programas para áudio/vídeo/Imagem usando Windows Media.
Participante ativo no processo de padronização dos sistemas MPEG. Em 1999 ele foi duas vezes reconhecido pelas contribuições brilhantes para esses padrões. Ele foi também o presidente do ATSC T3/S13 Data Broadcast Specialist Group de 2000 a 2002 e recebeu o prêmio Bernard J. Lechner Outstanding Technical Contributor em 2002. Crinon é também co-autor do livro “Data Broadcasting: Understanding the ATSC Data Broadcast Standard”. Ele é um membro do Corpo Docente da Oregon State University onde tem lecionado vários cursos sobre Processamento Digital de Vídeo.
Patrick Griffis é Diretor sênior de padrões internacionais de mídia para a Windows Client Division of Microsoft, a qual é responsável pela estratégia dos padrões de mídia digital, a nível global. Antes da Microsoft ele trabalhou 15 anos na Panasonic em posições gerenciais de chefia incluindo Vice-Presidente estratégico de desenvolvimento de produtos na Panasonic Broadcast, onde ajudou a lançar o DVCPRO e impulsionou a HDTV nos EUA.
Iniciou sua carreira na RCA onde obteve oito patentes desenvolvendo projetos para produtos de TV. É atualmente membro do grupo Digital Living Network Alliance onde já foi Vice-Presidente. Ele também pertence ao Grupo de Diretores do SMPTE Foundation and ATSC Forum e já foi membro da Diretoria do ATSC. Griffis também trabalhou, por duas vezes, como presidente do IEEE Consumer Electronics Society. Ele tem o BSEE da Tufts University e um MSEE da Purdue University.

Referências
Proposed SMPTE 421, “VC-1 Compressed Video bitsream Format for Decoding Process”, www.smpte.org.
N. Ranganthan, S. G. Romaniuk, and K. R. Namuduri, “A Lossless Image Compression Algorithm Using Variable Size Block Segmentation,” IEEE Trans. Image Processing, 4(10):1396-1407, 1995.
Y. Huh, K. Panusopone, and K. R. Rao, “Variable Block Size Coding of Images with Hybrid Quantization,” IEEE Transactions on Circuits and Systems for Video Technology, 6:679-685, Dec. 1996.
J. Ribas-Corbera and D. L. Neuhof, “Optimizing Motion Vector Accuracy in Block-Based Vídeo Coding” IEEE Trans. On Circuits and Systems for Video technology”, 11(4):497-511,April 2001.
J. Ribas-Corbera and D. L. Neuhof, “Optimizing Blosk Size in Motion Compensation,”Journal of Electronic Imaging, 1:155-165, Jan. 1998.
T. D. Tran, J. Liang, and C. Tu, “Lapped Transform via Time-Domain Pre- and Post-Filtering,” IEEE Trans on Signal Processing, 51(6):1557-1571, June 2003.
Proposed SMPTE RP 228, “VC-1 decoder and bitstreams Conformance,” www.smpte.org .
Proposed SMPTE RP 227, “VC-1 bitstreams Transport Encodings” www.smpte.org .

Nota do Tradutor
A idéia é que os equipamentos domésticos decodifiquem qualquer mídia, ou falando mais sofisticado, estão se tornando interoperáveis.
O autor usou o termo blocky cuja tradução mais adequada para a operação seria um contorno serrilhado, mas nós costumamos chamar de Efeito Bloco como sendo o aparecimento de blocos quadrados dentro do vídeo. Isso está muito ligado à taxa de compressão.