Esta norma é apresentada em 1998 pelo ISO e é similar às suas versões anteriores, MPEG-1 e MPEG-2, pois, tal como estas, baseia-se na compressão por DCT. A norma basicamente divide-se em 19 perfis [6], entre os quais se destacam o Perfil Simples – Simple Profile (SP) e o Perfil Simples Avançado – Advanced Simple Profile (ASP).
7.1.1. SPEste perfil, o mais básico da norma MPEG-4, é, de certo modo, similar à: norma H.263. Suporta só o varrimento progressivo e disponibiliza as seguintes novas ferramentas: compensação de movimento usando blocos de tamanho variável, predição dos coeficientes DCT em modo Intra, manuseamento de quatro fluxos na maioria dos níveis e algumas ferramentas de resiliência a erros. É usado normalmente quando certas condições de aplicações, como o tamanho de certos dispositivos ou a largura de banda de uma rede, exigem uma resolução e débito baixos. Como exemplos de aplicações que fazem uso deste perfil temos: câmaras de vídeo, telemóveis, sistemas de vigilância, etc.
7.1.2. ASPO perfil suporta o entrelaçamento e faz uso de tramas B. Estas técnicas são desenhadas, basicamente, de uma maneira similar às já
descritas aquando da norma MPEG-2. São suportadas as resoluções até à resolução da Standard Definition Television (720 × 576).
MPEG-4 ASP acrescenta uma compensação de movimento global e de ¼ de pixel. A primeira destas técnicas não é, actualmente,
suportada na maioria das implementações, apesar de oficialmente a norma requerer que os descodificadores a suportem. A maior parte dos codificadores
também não a suporta e alguns especialistas dizem que, normalmente, a técnica não traz nenhum benefício em termos de compressão. Quando utilizada, a
compensação de movimento global do ASP, apresenta um grande impacto negativo na velocidade e acrescenta uma considerável complexidade à aplicação. A
compensação de movimento de ¼ de pixel é também omissa em algumas aplicações (embora não tanto como a técnica anterior), uma vez que apresenta, também,
um certo prejuízo na velocidade nem sempre compensada em termos de qualidade de visualização.
Outros perfis disponibilizam codificação de vídeos de forma variável, representação integrada de sequências mono, stereo ou
com múltiplas vistas (incluindo representações 3D), com possibilidade de novas perspectivas nomeadamente em termos do “realismo” das aplicações [8].
MPEG-4 parte Visual é cerca 1,4 vezes mais eficiente da MPEG-2.
Em 1998 o VCEG (Video Coding Experts Group) começou a desenvolver uma norma com um débito binário mais baixo do que o
disponibilizado na MPEG-2. Em 2001 o VCEG juntou-se ao MPEG e esses formaram a Joint Video Team, que publicou a norma H.264/AVC em Março de 2003.
A norma disponibiliza um novo nível na hierarquia duma sequência de vídeo: um grupo de slices, que pode conter desde um ou mais slices.
A dimensão dos slices é flexível, como na norma MPEG-1 e ao contrário da MPEG-2. Em relação ao entrelaçamento, são definidos três tipos de
codificação: um tipo de codificação campo e dois tipos de codificação trama. Com a codificação campo, cada campo é codificado como uma imagem separada,
usando os campos para a compensação de movimento. Para a codificação trama do primeiro tipo, é a trama completa que vem codificada como uma imagem
separada; para a do segundo tipo, em cada par de MB há uma mudança entre codificação trama e campo.
Existem várias diferenças com as normas anteriores em relação à compensação de movimento. Agora os blocos utilizados têm uma
dimensão e uma forma variável, com uma dimensão mínima de 4 x 4. Como na MPEG-4 Visual, mas apresentando uma complexidade menor, existe uma compensação
de movimento com precisão de ¼ de pixel, em vez da precisão de ½ pixel presente na MPEG-2. Existem vectores de movimento que apontam para fora dos
limiares da imagem, como na H.263. As tramas P podem ser codificadas em referência a mais de uma imagem anterior, como ilustrado na ilustração 6; as
tramas B podem ser codificadas em referência a mais de uma imagem anterior e mais de uma imagem seguinte. Não existe uma dependência forte entre a ordem
das imagens para compensação de movimento e a ordem das imagens para a visualização. Na AVC também as tramas B podem ser usadas como referência para
outras imagens.
Ilustração 6. A compensação de movimento na H.264/AVC.
É presente uma predição pesada para a compensação de movimento, com a qual o sinal de predição pode ser pesado e deslocado,
segundo quantidades especificadas pelo codificador. A H.264 AVC deduz o movimento nas áreas saltadas, uma vez que estas contêm pouco movimento, em vez
de deixar a área fixa. A norma melhora o método de inferência de movimento para slices B, conhecido como “compensação de movimento directa”, já
presente na H.263+ e na MPEG-4 visual. O filtro de deblocking, útil para eliminar o efeito de bloco e melhorar a qualidade subjectiva do vídeo,
é usado agora na malha de predição para a compensação de movimento, com melhores resultados do que um filtro usado em processamento posterior,
melhorando também a capacidade de predição.
Existem outras diferenças, relativamente às normas anteriores, na exploração da redundância espacial. Na predição Intra, se
forem do mesmo slice (para garantir a independência dos slices), os MB podem ser codificados em relação aos blocos ou MB adjacentes na
mesma imagem. É também possível codificar um MB Intra em relação a um MB Inter; com o modo Constrained Intra Coding Mode, só os MB Intra são
usados como predição.
A norma disponibiliza três tipos de transformada, usadas em relação ao tipo de resíduo a codificar:
A transformada de Hadamard (mais eficiente mas também muito mais complexa que a transformada DCT) 4 x 4 é usada para codificar os coeficientes DC da luminância num MB codificado no modo Intra 16 x 16, portanto, sem subdivisão do MB;
A transformada de Hadamard 2 x 2 é usada para codificar os coeficientes DC da crominância em todos os MB;
A transformada DCT inteira (mais fácil da implementar do que a DCT normal) 4 x 4 é usada para codificar todos os outros blocos.
A transformada DCT é aplicada não só aos blocos de dimensão 8 x 8, mas também aos blocos de dimensão 4 x 4
e 16 x 16. Para a computação dos coeficientes DCT, os codificadores e descodificadores que usam esta norma precisam de uma aritmética a 16-bit e não a
32-bit, como naqueles que usam as normas anteriores. O uso da transformada DCT inteira garante que todos os descodificadores descodifiquem o mesmo vídeo
com a mesma qualidade.
Na exploração da redundância estatística, a novidade é o uso duma codificação entrópica Context-Adaptive Binary Arithmetic
Coding, uma técnica de codificação aritmética que se adapta ao conteúdo e, por isso, mais eficiente do que a usada pela norma H.263.
A uma qualidade fixada, o débito binário dum vídeo codificado H.264/AVC é metade da dum vídeo codificado em MPEG-2. A norma
foi produzida para muitas aplicações, como:
Televisão;
Gravação em DVD e similares;
Vídeotelefonia e videoconferência em LAN, DSL, redes sem fios e móveis;
Video-on-demand e streaming em ISDN, DSL, redes sem fios.
A sua difusão ainda é limitada principalmente à Internet e dispositivos móveis que oferecem uma banda
mais pequena daquela disponível em canais broadcast. Nas outras aplicações, como a televisão e a gravação em DVD, ainda existe uma inércia em
aderir à norma MPEG-4, em parte devido ao bom desempenho que a MPEG-2 ainda oferece.
Existem depois algumas extensões da AVC, como a SVC (Scalable Vídeo Coding), a MVC (Multiview Vídeo Coding).
A primeira tem como objectivo fornecer várias formas de escalabilidade, com um débito binário e uma complexidade parecidas a da norma AVC básica. Já as
normas MPEG-2 e MPEG-4 garantiam escalabilidade, mas com a necessidade dum débito binário e duma complexidade do descodificador demasiado altos. A MVC
quer oferecer a possibilidade de ver o mesmo vídeo com diferentes pontos de vista.