top of page
MPEG-4
 

MPEG-4 é um formato standard desenvolvido pela ISO, como sucessor do MPEG-2. Alguns dos objetivos iniciais eram aumentar a robustez contra ao erro, melhor suporte para aplicações de baixo débito e uma variedade de novas ferramentas que suportam melhor o grafismo dos vídeos. Este codec, sendo muito mais eficiente que o MPEG-2, faz uso de tramas do tipo B, Quarter Pixel e Global Motion Estimation.

 

Introduz outras ferramentas bastante importantes, no que diz respeito à melhoria da eficiência de compressão:

Unrestricted Motion Vectors :

Suporta a previsão, em objetos que se movem parcialmente para fora dos limites da trama.

Variable Block Size Motion Compensation:

Permite a compensação de movimento em blocos com tamanhos 16x16 e 8x8.

Intra DCT DC/AC Prediction:

Permite com que os coeficientes DC/AC sejam previstos dos blocos vizinhos à esquerda ou por cima do bloco atual.

 

Também foram adicionadas novas ferramentas contras erros, de forma a ajudar na recuperação de pacotes perdidos, tais como:

Slice Resynchronization:

Estabelece “fatias” dentro da imagem que permitem uma ressincronização mais rápida depois de ter ocorrido um erro.

Data Partitioning :

Permite repartir os dados dentro do pacote de vídeo em motion part e DCT data part.

Reversible VLC:

As tabelas de código VLC foram implementadas de forma a permitir a descodificação tanto para trás como para a frente. Isto permite sincronizar com a próxima “fatia” e recomeçar atrás no ponto onde ocorreu o erro.[7]

 

H.264

 

É um padrão de compressão de vídeo baseado, de certa forma, no MPEG-4 Part10. Este codec permite obter vídeos de elevada qualidade, com um débito relativamente reduzido. É considerado o sucessor de vários formatos já existentes, tais como MPEG-2 e o MPEG-4.

 

O H.264 oferece o dobro da eficiência criando assim, novas oportunidades no mercado, como a possibilidade de qualidade de vídeo VHS de 600Kbp, permitindo a distribuição de vídeo através das linhas ADSL e de um filme em HD que consegue ser armazenado num DVD sem necessitar de novas técnicas de lasers óticos.

 

Apesar de o H.264 usar as mesmas técnicas de codificação que os formatos anteriores, contém novos detalhes que o distinguem. Essas diferenças estão seguidamente sumarizadas:

Intra Prediction and Coding:

Quando se usa intra coding, com intra prediction tenta-se prever o bloco atual dos pixéis vizinhos nos blocos adjacentes numa série de direções definidas. A diferença entre o bloco e a melhor previsão resultante é codificada em vez de o bloco atual. Isto resulta num melhoramento da eficiência do intra coding.

Inter Prediction and Coding:

No que diz respeito a Inter-frame coding, o H.264 adiciona flexibilidade e funcionalidade, incluindo vários tamanhos de blocos para a motion compensaton, quarter-pel motion compensation, multipple-reference frames, e adaptative loop deblocking.

Block sizes:

Motion compensation pode atuar usando um número de blocos com diferentes tamanhos. Individual motion vectors podem ser transmitidos por blocos de 4x4, e desta forma um macrobloco pode transportar até 32 motion vectors.

Quarter-Pel Motion Estimation:

Motion estimation é melhorada ao permitir o uso de vetores com resoluções de half-pel e quarter-pel.

Multiple Reference Picture selection: podem ser usadas até cinco tramas de referência para inter coding, resultando assim numa melhor qualidade subjetiva do vídeo e uma codificação mais eficiente. Provendo várias tramas de referência, apesar de exigir mais memória, ajuda o H.264 a ser mais resistente a erros de bitstream.

Adaptative Loop Deblocking Filter:

O H.264 utiliza um adaptative deblocking filter que opera nos limites horizontais e verticais dos blocos, que por sua vez estão inseridos num loop de predição que remove “resíduos” causados por possíveis erros.

Quantization and Transform Coefficient scanning:

Os coeficientes são quantizados usando quantização escalar. Podem ser escolhidos 32 diferentes passos de quantização num macrobloco, tal como nos formatos anteriores. No entanto, o tamanho dos passos vai aumentando a um ritmo de aproximadamente 12,5%, em vez de um crescimento constante.

Entropy Coding:

O perfil base do H.264 usa uma combinação entre Universal VLC(UVLC) e Context Adaptative VLC (CAVLC) e também suporta o Context-Adaptative Binary Arithmetic Coder (CABAC). [7]

 

Todos estes componentes anteriormente referidos estão aglomerados na Figura 4, que representa a arquitetura do H.264.

High Efficiency Video Coding(HEVC)

 

Atualmente, o HEVC (High Efficiency Video Coding) é considerado um formato de excelência no que diz respeito à compressão de vídeo, projetado para suceder o H.264 e o MPEG-4.

 

O HEVC possui o dobro da taxa de compressão comparativamente ao H.264 e MPEG-4. Para além disso fornece uma melhoria substancial na qualidade de vídeo, mantendo o mesmo débito, suportando 8K UHD e resoluções até 8192x4320.

 

Algumas das suas características as que mais se destacam são:

Coding Tree Unit:

Este formato substitui os macroblocos de tamanho 16x16, que eram usados pelos formatos anteriores, por Coding Tree Units que conseguem usar blocos com tamanhos muito superiores, até 64x64, podendo assim repartir a imagem de uma forma muito mais fácil, de acordo com o que for necessário.

Entropy coding:

O HEVC usa um algoritmo CABAC (context-adaptative binary aritmetic coding) semelhante ao usado pelo H.264. CABAC é o único codificador entrópico usado pelo HEVC, enquanto o H.264 pode usar dois métodos.

Intra prediction:

Este codec especifica 33 modos direcionais, enquanto que o H.264 especifica apenas 8.

Loop Filters:

O HEVC especifica dois tipos de filtros que são aplicados sequencialmente. Sendo o Deblocking Filter (DBF) aplicado primeiro e o Sample Adaptative Offset (SAO) aplicado posteriormente. Depois de aplicados, a imagem filtrada é armazenada no Decoded Picture Buffer (DPB) como referência para a inter-picture prediction. [4]

 

Na Figura 5. podemos observar as diferenças entre o H.264 e o HEVC, causadas devido a estas características, durante a divisão das tramas em macroblocos.

Os Codec's mais utilizados

 

Nesta secção serão abordados os codec’s mais utilizados mundialmente, sendo que estas são as soluções mais recentes e mais interessantes de serem alvo de estudo. Os codec’s selecionados, foram divididos em duas subsecções: Normas internacionais e codec’s proprietários.

Normas Internacionais

 

Atualmente, existem codec’s que são normas internacionais, ou seja, são formatos standard reconhecidos mundialmente e usados em vários componentes de multimédia. Estes foram desenvolvidos por uma instituição ou grupo internacional. As normas internacionais alvo deste estudo são o MPEG-4, o H.264 e o High Efficiency Vídeo Coding (HEVC)

Windows Media Video 9
 

É um formato de compressão de vídeo desenvolvido pela Microsoft. É considerado o formato líder para serviços de streaming via internet, tanto de música como de vídeo. Todas as versões do WMV suportam tanto débitos variáveis como débitos constantes. No entanto, a última versão, o WMV 9, introduziu várias técnicas importantes que melhoram significativamente a eficiência de compressão.

 

Tal como o H.264, inclui diversas ferramentas avançadas, mas devido à sua reduzida complexidade, possui alguns detalhes diferentes, tais como:

Multiple VLC Tables:

O WMV9 contém uma série de Tabelas VLC que são otimizadas para diferentes tipos de conteúdo. Estas tabelas podem ser trocadas ao nível das tramas, de forma a ajustar-se às características do vídeo.

DCT/IDCT Transform Switch:

 O WMV9 suporta blocos DCT de vários tamanhos, tais como 8x8, 8x4, 4x8 e 4x4.

Quarter-Pel Motion Compensation:

Adição de ¼ interpolação cúbica apoiando a interpolação bilinear de ½ pixel.

 

O WMV9 está a ganhar bastante interesse pela indústria cinematográfica, inclusive Hollywood.

 

Real Video 10

 

É um formato de compressão de vídeo desenvolvido pela Real Networks, usado maioritariamente para streaming, nomeadamente live TV. Este formato é suportado por várias plataformas, tais como Windows, Mac, Linux, Solaris e até mesmo telemóveis. A primeira versão lançada era baseada no formato H.263, assim comos as seguintes versões, até à 8ª.

 

A última versão lançada foi a 10ª (RealVideo10), que possui algumas caraterísticas importantes:

Débito Constante:

De forma a facilitar o real-time streaming, este formato normalmente usa um bitrate constante, que permite enviar a mesma quantidade de dados para a rede, em cada segundo.

Débito Variável:

Recentemente, a RealNetworks introduziu um débito variável, o que permitiu obter melhor qualidade, no entanto não é muito adequado para streaming. Uma vez que é difícil prever a capacidade que cada vídeo irá precisar, se for um vídeo com mudança de sequências abruptas e rápidas, este irá precisar de um débito maior. Se o débito do vídeo aumentar significativamente, poderá exceder a capacidade a rede, levando à interrupção do vídeo. [4]

Indeo Video

 

É um codec de vídeo desenvolvido pela Intel, mais tarde vendido à Ligos Corporation. Ficou conhecido por ser um dos primeiros codecs a permitir playback em full-speed sem usar hardwares de aceleração.

 

O codec original era bastante assimétrico, isto é, exigia bastante mais computação para descodificar um vídeo do que para codificá-lo, utilizando, inicialmente, um esquema de compressão 4:2:0, tal como o H.261 e o MPEG-1. Este codec foi bastante usado em animações de videojogos.

Codecs Proprietários

 

Os codec’s proprietários foram criados por empresas privadas para uso dos seus produtos. Irão ser abordados nesta subsecção o Windows Media Video 9, o Real Video 10, o Indeo Vídeo, o VP8 e o VP9.

VP8
 

É um formato de compressão de vídeo desenvolvido pela On2 Technologies, e que atualmente pertence à Google. Apesar de ser um codec proprietário, o VP8 possui licença livre, ou seja é de uso livre, até porque foi desenhado a pensar em aplicações de vídeo em Web.

 

Quanto ao tipo de tramas disponíveis, o VP8 utiliza Intra-frames (I) e predicted-frames (P), sendo que esta última utiliza para sua referência três tramas do passado.

 

Por outro lado, o VP8 introduziu três novos tipos de tramas:

Golden Frames:

São tramas que retêm informação de um passado arbitrário e que servem como referência para as tramas seguintes, podendo ser atualizadas a qualquer momento.

Alt Ref Frames:

São utilizadas para compensar a ausência de tramas do tipo B.

Last Frames:

Guardam a trama imediatamente anterior à trama a ser codificada. [4],[6]

 

Na Figura 6 pode-se observar graficamente como estas tramas se relacionam entre si.
VP9

 

É um formato aberto e livre de acesso, desenvolvido e patenteado pela Google, que sucedeu ao VP8. Um dos objetivos do VP9 era reduzir o débito em 50% comparativamente com o VP8, mantendo a mesma qualidade. Outro objetivo era desenvolvê-lo e melhorá-lo ao ponto de ser melhor que o HEVC.

 

O VP9 tem muitos melhoramentos em relação ao VP8, podendo suportar superblocos com tamanhos de 64x64. Sendo usada uma estrutura de codificação quadtree com esses superblocos. Uma quadtree é uma estrutura de dados que usa quatro ramos. [4]

Figura 5. Diferença entre o H.264 (em cima) e o HEVC (em baixo), durante a divisão da trama por macroblocos.

Figura 4. Arquitetura do H.264

Figura 6. Esquema de tramas do VP8

bottom of page