Estrutura Lógica e Arquitectura da Codificação com H.264/AVC - Codificação de Vídeo HD - Codec H.264/AVC

Go to content

Main menu

Estrutura Lógica e Arquitectura da Codificação com H.264/AVC

Codec H.264/AVC & Vídeo HD

De modo a reagir à necessidade de flexibilização e customização face à multitude de plataformas e ambientes onde o H.264/AVC pode ser aplicado, o projecto deste codec engloba duas camadas principais, interrelacionadas: a Video Coding Layer (VCL) e a Network Abstraction Layer (NAL).
A VCL é uma camada projectada para representar de forma eficiente o conteúdo do vídeo codificado, sendo o resultado à saída desta macroblocos codificados.

A NAL é uma camada em que é executada a formatação da representação de vídeo que sai da VCL e atribuição de informação em cabeçalhos ao mesmo conteúdo de forma a o condicionar da melhor forma possível ao tipo de meio em que vai ser transmitido ou armazenado. A camada NAL é facilmente encapsulada em diferentes formatos de ficheiros e protocolos como o RTP, sistemas MPEG-2 e o formato MPEG-4. A camada NAL é o resultado do desejo de adaptação do H.264/VLC a diferentes plataformas, permitindo customizações eficazes do vídeo proveniente da VLC para diferentes plataformas.

A camada VLC segue o modelo de codificadores anteriores de predição de movimento em loop, em que cada frama após o processo de codificação é representada em unidades em forma de blocos associados a uma luminância e duas crominâncias designados por macroblocos.


No diagrama de blocos da figura 3 é possível observar as alterações principais introduzidas pelo H.264/AVC face a codecs anteriores:

  • De modo a reduzir o efeito de bloco, é introduzido um filtro anti-bloco adaptativo dentro do ciclo de predição. O macro-bloco descodificado é armazenado em memória e é utilizado para prever macroblocos futuros;

  • O H.264/AVC possibilita, graças ao aumento da memória disponível, armazenamento de várias frames para serem empregues no processo de predição

  • O esquema de predição utilizado no H.264/AVC é também aplicado em tramas Intra.

  • A DCT é substituída por uma transformada inteira


Usar tópicos e explicação da página 10 do artigo enorme para explicar melhor a figura de diagrama de blocos

Na próxima secção, serão analisadas as ferramentas implementadas pelo codec H.264/AVC que tornam possível as melhorias de desempenho, quer a nível da compressão, quer da qualidade final de vídeo codificado pelo H.264/AVC em relação aos codecs anteriores.

  • Transformada DCT Inteira

  • Transformadad de Hadamard

  • Quantização

  • Predição e Codificação de Tramas Intra



De modo a ser possível obter ganhos de codificação da ordem dos 50% face aos codecs anteriores, o H.264/AVC implementa um conjunto de ferramentas que procuram explorar de forma mais eficiente a predição de movimento de uma sequência. Estas ferramentas apresentam uma utilidade acrescida aquando a codificação de vídeo de alta definição, dado que resoluções superiores requerem uma quantidade substancialmente superior de cálculos dos vectores de compensação de movimento. Neste sentido, são descritas seguidamente as ferramentas implementadas mais relevantes:

  • Compensação de movimento com blocos de tamanho variável, podendo ser reduzido o tamanho dos blocos a comparar (em sequências com conteúdo mais rico e transições mais rápidas), sendo o tamanho mínimo de 4x4 amostras;

  • Precisão dos vectores de compensação de movimento até ¼ da amostra com complexidade reduzida do processamento da interpolação face a implementações anteriores (MPEG-2 Visual Part 2);

  • Obtenção de melhores resultados nas técnicas de compensação de movimento,  com a possibilidade de predição de uma trama "P" com base numa das N tramas armazenadas num dado instante no buffer do descodificador;

  • A possibilidade de atribuição de um "peso" e de realizar um offset ao sinal gerado por predição aquando a compensação de movimento permite aumentar consideravelmente a eficiência de codificação em cenas mais complexas, nomeadamente com desvanecimentos;

  • Transformada de blocos hierárquica, permitindo explorar a correlações existentes em maiores áreas de imagem;

  • Predição espacial de tramas Intra em todas as direcções, permitindo obter vectores de movimento optimizados;

  • Introdução de um filtro de efeito de bloco no loop de codificação, permitindo melhorar substancialmente a qualidade subjectiva e objectiva do vídeo final. Esta característica tem especial importância em vídeo de alta definição devido ao facto de, em ecrãs com dimensões superiores, qualquer efeito de bloco seria facilmente detectado pelo utilizador;

  • Codificação entrópica adaptável ao contexto de uma sequência, conduzindo a elevadas compressões de ritmo binário. Os códigos mais adoptados são os CAVLC (Context Adaptive VLCs), utilizados para codificar os coeficicentes da transformada, e os CABAC (Context-based Adaptive Binary Arithmetic Codes), sendo este mais versátil  que o primeiro.


 
Back to content | Back to main menu